@univerjs/sheets 0.1.4 → 0.1.5

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 (102) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +900 -901
  3. package/lib/types/basics/const/default-spreadsheet-plugin-data.d.ts +2 -16
  4. package/lib/types/basics/interfaces/i-ruler-manager.d.ts +2 -16
  5. package/lib/types/basics/interfaces/mutation-interface.d.ts +2 -16
  6. package/lib/types/basics/interfaces/selection-config.d.ts +2 -16
  7. package/lib/types/basics/interfaces/spreadsheet-config.d.ts +2 -16
  8. package/lib/types/basics/rangeMerge.d.ts +2 -17
  9. package/lib/types/basics/selection.d.ts +2 -16
  10. package/lib/types/basics/sheet-header.d.ts +2 -16
  11. package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +3 -19
  12. package/lib/types/commands/commands/add-worksheet-merge.command.d.ts +2 -17
  13. package/lib/types/commands/commands/clear-selection-all.command.d.ts +2 -16
  14. package/lib/types/commands/commands/clear-selection-content.command.d.ts +2 -16
  15. package/lib/types/commands/commands/clear-selection-format.command.d.ts +2 -16
  16. package/lib/types/commands/commands/copy-to-worksheet.command.d.ts +2 -16
  17. package/lib/types/commands/commands/copy-worksheet.command.d.ts +2 -16
  18. package/lib/types/commands/commands/delete-range-move-left.command.d.ts +2 -16
  19. package/lib/types/commands/commands/delete-range-move-up.command.d.ts +2 -16
  20. package/lib/types/commands/commands/insert-range-move-down.command.d.ts +2 -16
  21. package/lib/types/commands/commands/insert-range-move-right.command.d.ts +2 -16
  22. package/lib/types/commands/commands/insert-row-col.command.d.ts +2 -17
  23. package/lib/types/commands/commands/insert-sheet.command.d.ts +2 -16
  24. package/lib/types/commands/commands/move-range.command.d.ts +3 -17
  25. package/lib/types/commands/commands/move-rows-cols.command.d.ts +2 -16
  26. package/lib/types/commands/commands/remove-row-col.command.d.ts +2 -16
  27. package/lib/types/commands/commands/remove-sheet.command.d.ts +2 -16
  28. package/lib/types/commands/commands/remove-worksheet-merge.command.d.ts +2 -16
  29. package/lib/types/commands/commands/set-border-command.d.ts +3 -18
  30. package/lib/types/commands/commands/set-col-visible.command.d.ts +2 -16
  31. package/lib/types/commands/commands/set-frozen-cancel.command.d.ts +2 -16
  32. package/lib/types/commands/commands/set-frozen.command.d.ts +2 -16
  33. package/lib/types/commands/commands/set-hide-gridlines.command.d.ts +2 -17
  34. package/lib/types/commands/commands/set-range-values.command.d.ts +3 -17
  35. package/lib/types/commands/commands/set-row-visible.command.d.ts +2 -16
  36. package/lib/types/commands/commands/set-style.command.d.ts +2 -16
  37. package/lib/types/commands/commands/set-tab-color.command.d.ts +2 -16
  38. package/lib/types/commands/commands/set-worksheet-activate.command.d.ts +2 -16
  39. package/lib/types/commands/commands/set-worksheet-col-width.command.d.ts +2 -16
  40. package/lib/types/commands/commands/set-worksheet-hide.command.d.ts +2 -16
  41. package/lib/types/commands/commands/set-worksheet-name.command.d.ts +2 -16
  42. package/lib/types/commands/commands/set-worksheet-order.command.d.ts +2 -16
  43. package/lib/types/commands/commands/set-worksheet-right-to-left.command.d.ts +2 -17
  44. package/lib/types/commands/commands/set-worksheet-row-height.command.d.ts +2 -16
  45. package/lib/types/commands/commands/set-worksheet-show.command.d.ts +2 -16
  46. package/lib/types/commands/commands/utils/merged-cell-util.d.ts +2 -16
  47. package/lib/types/commands/commands/utils/selection-utils.d.ts +4 -17
  48. package/lib/types/commands/mutations/__tests__/create-command-test-bed.d.ts +3 -19
  49. package/lib/types/commands/mutations/add-worksheet-merge.mutation.d.ts +4 -18
  50. package/lib/types/commands/mutations/empty.mutation.d.ts +2 -16
  51. package/lib/types/commands/mutations/insert-row-col.mutation.d.ts +4 -18
  52. package/lib/types/commands/mutations/insert-sheet.mutation.d.ts +4 -18
  53. package/lib/types/commands/mutations/move-range.mutation.d.ts +2 -16
  54. package/lib/types/commands/mutations/move-rows-cols.mutation.d.ts +3 -17
  55. package/lib/types/commands/mutations/numfmt-mutation.d.ts +4 -18
  56. package/lib/types/commands/mutations/remove-row-col.mutation.d.ts +4 -18
  57. package/lib/types/commands/mutations/remove-sheet.mutation.d.ts +4 -18
  58. package/lib/types/commands/mutations/remove-worksheet-merge.mutation.d.ts +4 -18
  59. package/lib/types/commands/mutations/set-col-visible.mutation.d.ts +3 -17
  60. package/lib/types/commands/mutations/set-frozen.mutation.d.ts +3 -17
  61. package/lib/types/commands/mutations/set-hide-gridlines.mutatiom.d.ts +3 -17
  62. package/lib/types/commands/mutations/set-range-values.mutation.d.ts +3 -17
  63. package/lib/types/commands/mutations/set-row-visible.mutation.d.ts +3 -17
  64. package/lib/types/commands/mutations/set-tab-color.mutation.d.ts +3 -17
  65. package/lib/types/commands/mutations/set-worksheet-col-width.mutation.d.ts +3 -17
  66. package/lib/types/commands/mutations/set-worksheet-config.mutation.d.ts +3 -17
  67. package/lib/types/commands/mutations/set-worksheet-hide.mutation.d.ts +3 -17
  68. package/lib/types/commands/mutations/set-worksheet-name.mutation.d.ts +3 -17
  69. package/lib/types/commands/mutations/set-worksheet-order.mutation.d.ts +5 -18
  70. package/lib/types/commands/mutations/set-worksheet-right-to-left.mutation.d.ts +3 -17
  71. package/lib/types/commands/mutations/set-worksheet-row-height.mutation.d.ts +4 -18
  72. package/lib/types/commands/operations/selection.operation.d.ts +4 -18
  73. package/lib/types/commands/operations/set-worksheet-active.operation.d.ts +2 -16
  74. package/lib/types/commands/utils/get-target.d.ts +2 -16
  75. package/lib/types/commands/utils/handle-merge-operation.d.ts +5 -19
  76. package/lib/types/commands/utils/handle-range-mutation.d.ts +4 -19
  77. package/lib/types/controllers/__tests__/util.d.ts +10 -25
  78. package/lib/types/controllers/basic-worksheet.controller.d.ts +3 -18
  79. package/lib/types/controllers/calculate-result-apply.controller.d.ts +1 -15
  80. package/lib/types/controllers/feature-calculation.controller.d.ts +2 -16
  81. package/lib/types/controllers/merge-cell.controller.d.ts +5 -20
  82. package/lib/types/index.d.ts +1 -1
  83. package/lib/types/locale/en-US.d.ts +2 -16
  84. package/lib/types/services/__tests__/util.d.ts +10 -25
  85. package/lib/types/services/border-style-manager.service.d.ts +3 -17
  86. package/lib/types/services/numfmt/numfmt.service.d.ts +5 -19
  87. package/lib/types/services/numfmt/type.d.ts +5 -18
  88. package/lib/types/services/permission/permission-point.d.ts +1 -15
  89. package/lib/types/services/permission/sheet-permission.service.d.ts +3 -18
  90. package/lib/types/services/permission/tool.d.ts +2 -16
  91. package/lib/types/services/ref-range/__tests__/util.d.ts +10 -25
  92. package/lib/types/services/ref-range/ref-range.service.d.ts +7 -22
  93. package/lib/types/services/ref-range/type.d.ts +10 -32
  94. package/lib/types/services/ref-range/util.d.ts +7 -22
  95. package/lib/types/services/selection-manager.service.d.ts +7 -21
  96. package/lib/types/services/sheet-interceptor/__tests__/create-core-test-bed.d.ts +10 -25
  97. package/lib/types/services/sheet-interceptor/interceptor-const.d.ts +5 -19
  98. package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +4 -19
  99. package/lib/types/services/sheet-interceptor/utils/interceptor.d.ts +2 -16
  100. package/lib/types/sheets-plugin.d.ts +2 -16
  101. package/lib/umd/index.js +2 -2
  102. package/package.json +10 -10
package/lib/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var Ro=Object.defineProperty;var po=(n,e,o)=>e in n?Ro(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var x=(n,e,o)=>(po(n,typeof e!="symbol"?e+"":e,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),H=require("@wendellhu/redi"),_e=require("rxjs"),ft=require("@univerjs/engine-formula"),Mo=require("rxjs/operators"),wo=require("@univerjs/engine-render");var yo=Object.defineProperty,Uo=Object.getOwnPropertyDescriptor,_o=(n,e,o,t)=>{for(var r=t>1?void 0:t?Uo(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&yo(e,o,r),r},bo=(n,e)=>(o,t)=>e(o,t,n);const q="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||{});exports.SelectionManagerService=class{constructor(e){x(this,"_selectionInfo",new Map);x(this,"_currentSelection",null);x(this,"_selectionMoveStart$",new _e.Subject);x(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());x(this,"_selectionMoving$",new _e.Subject);x(this,"selectionMoving$",this._selectionMoving$.asObservable());x(this,"_selectionMoveEnd$",new _e.BehaviorSubject(null));x(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());x(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId})}reset(){var e,o;this._currentSelection!=null&&(this._currentSelection={pluginName:q,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=q,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,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 e=this.getSelections();return e==null?!1:e.some(({range:o},t)=>e.some(({range:r},a)=>t===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(e){var a,i;if(e==null)return;const{pluginName:o,unitId:t,sheetId:r}=e;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(t))==null?void 0:i.get(r)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[0]}_getLastByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[o.length-1]}_addByParam(e,o=!0){const{pluginName:t,unitId:r,sheetId:a,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const c=this._selectionInfo.get(t);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let m=u.get(a);m==null&&(m=[],u.set(a,m)),m.push(...i)}o&&this._refresh({pluginName:t,unitId:r,sheetId:a})}_replaceByParam(e){const{pluginName:o,unitId:t,sheetId:r,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(t)||i.set(t,new Map);const c=i.get(t);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(e){const o=this._getSelectionDatas(e);o==null||o.splice(0),this._refresh(e)}_removeByParam(e,o){const t=this._getSelectionDatas(o);t==null||t.splice(e,1),this._refresh(o)}};exports.SelectionManagerService=_o([bo(0,H.Inject(s.ThemeService))],exports.SelectionManagerService);const To=s.createInterceptorKey("CELL_CONTENT"),Eo=s.createInterceptorKey("PERMISSION"),be={CELL_CONTENT:To,PERMISSION:Eo};var Do=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,Ao=(n,e,o,t)=>{for(var r=t>1?void 0:t?Oo(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Do(e,o,r),r},No=(n,e)=>(o,t)=>e(o,t,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();x(this,"_interceptorsByName",new Map);x(this,"_commandInterceptors",[]);x(this,"_workbookDisposables",new Map);x(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(t=>{this._interceptWorkbook(t)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(t=>this._disposeWorkbookInterceptor(t)))),this.intercept(be.CELL_CONTENT,{priority:-1,handler(t,r){const a=r.worksheet.getCellRaw(r.row,r.col);return t?{...a,...t}:a}}),this.intercept(be.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((t,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=t.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const t=this._commandInterceptors.map(r=>r.getMutations(o));return{undos:t.map(r=>r.undos).flat(),redos:t.map(r=>r.redos).flat()}}intercept(o,t){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(t),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,m;return((u=c.priority)!=null?u:0)-((m=i.priority)!=null?m:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),t)))}fetchThroughInterceptors(o){const t=o,r=this._interceptorsByName.get(t);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const t=new s.DisposableCollection,r=o.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(m=>{const d=new s.DisposableCollection,l=m.registerCellContentInterceptor({getCell(g,h){return a.fetchThroughInterceptors(be.CELL_CONTENT)(c.getCellRaw(g,h),{unitId:r,subUnitId:u,row:g,col:h,worksheet:c,workbook:o})}});d.add(l),a._worksheetDisposables.set(Qt(r,c),d)})};o.getSheets().forEach(c=>i(c)),t.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),t.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),t.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(o){const t=o.getUnitId(),r=this._workbookDisposables.get(t);r&&(r.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(o,t){const r=Qt(o,t),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Ao([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),No(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Qt(n,e){return`${n}|${e.getSheetId()}`}const le=(n,e)=>{const{unitId:o,subUnitId:t,cellValue:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),m=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,h,v)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,h))||{},C=m.getStyleByCell(S),I=xo(C,v&&v.s?v.s:null);S.s=I,d.setValue(g,h,Po(S))}),{...e,options:{},cellValue:d.getMatrix()}};function Po(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n)}const $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:o,subUnitId:t,unitId:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(t);if(!c)return!1;const u=c.getCellMatrix(),m=i.getStyles();return new s.ObjectMatrix(o).forValue((l,g,h)=>{if(!h)u==null||u.setValue(l,g,{});else{const v=u.getValue(l,g)||{},S=h.t===s.CellValueType.FORCE_STRING?h.t:ko(h.v===void 0?v.v:h.v);if(h.f!==void 0&&(v.f=h.f),h.si!==void 0&&(v.si=h.si),h.p!==void 0&&(v.p=h.p),h.v!==void 0&&(v.v=S===s.CellValueType.NUMBER?Number(h.v):S===s.CellValueType.BOOLEAN?h.v.toString().toUpperCase()==="TRUE"?1:0:h.v),v.v!==void 0&&(v.t=S),h.s!==void 0){const C=m.getStyleByCell(v);C==null&&delete v.s,typeof h.s=="string"&&(h.s=m.get(h.s));const I=Xe(C,h.s?h.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=m.setValue(I),!h.p&&v.p&&Vo(v.p,h.s?h.s:null)}u.setValue(l,g,s.Tools.removeNull(v))}}),!0}};function ko(n){return n===null?null:typeof n=="string"?jo(n)?s.CellValueType.NUMBER:Fo(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function xo(n,e){return Lo(n,e)}function Lo(n,e){if(!e||!Object.keys(e).length)return n;const o=n||{};for(const t in e)t==="bd"?o[t]=Bo(o[t]||{},e[t]):t in o||(o[t]=null);return o}function Bo(n,e){if(!e||!Object.keys(e).length)return n;for(const o in e)o in n||(n[o]=null);return n}function Xe(n,e,o=!1){if(e===null)return e;if(e===void 0)return n;const t=s.Tools.deepClone(n)||{};if(t){for(const r in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in t&&r==="bd"?t[r]=Object.assign(t[r],e[r]):t[r]=e[r]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}}function dn(n,e){return n.some(o=>o.startIndex===e)?dn(n,e+1):e}function Vo(n,e){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const t=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:m,ts:d={}}=c;if(o<u){const g={st:o,ed:u},h=Xe({},e,!0);h&&s.Tools.removeNull(h),s.Tools.isEmptyObject(h)||(g.ts=h),t.push(g)}const l=Xe(d,e,!0);l&&s.Tools.removeNull(l),s.Tools.isEmptyObject(l)?delete c.ts:c.ts=l,t.push(c),o=dn(r,m)}const a=n.body.dataStream.endsWith(`\r
2
- `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const c={st:o,ed:a},u=Xe({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),t.push(c)}n.body.textRuns=t}function Wo(n){return/^-?\d+(\.\d+)?$/.test(n)}function jo(n){return Wo(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Fo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const rt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Ho(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:rt.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Ho(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const Rt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={subUnitId:m,unitId:c,cellValue:$o(d)},g=le(n,l),h=a.onCommandExecute({id:Rt.id}),v=[{id:$.id,params:l},...h.redos],S=[...h.undos,{id:$.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:v}),!0):!1}};function $o(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null})}),e.getData()}const st={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Go(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:st.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Go(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{s:null})}),e.getData()}const pt=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),Ce={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{sheet:t,index:r,unitId:a}=e,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(t.id,r,t):!1}},ln=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:a}=e,i=t.getSheetBySheetId(r).getConfig();return{index:t.getConfig().sheetOrder.findIndex(m=>m===r),sheet:i,unitId:a}},je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:t,unitId:r}=e,a=o.getUniverSheetInstance(r);return a?a.removeSheet(t):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{var S,C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.unitId)!=null?S:i,c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d=s.Tools.deepClone(m.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(m)+1,sheet:d,unitId:i},h=pt(n,g);return o.syncExecuteCommand(Ce.id,g)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:h}],redoMutations:[{id:Ce.id,params:g}]}),!0):!1}},Be={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{from:o,to:t}=e;if(!o||!t)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(e.from.subUnitId),c=a.getSheetBySheetId(e.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),m=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,l,g)=>{u.setValue(d,l,g)}),new s.ObjectMatrix(t.value).forValue((d,l,g)=>{m.setValue(d,l,g)}),!0}},G={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(exports.SelectionManagerService);if(!e)return!1;const{selections:t,type:r}=e;return o.replace(t,r),!0}};function Fe(n,e,o=!0){const t=e.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(t.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const m={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,m)||r.push(m)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Fe(a,e,o):a}function zo(n,e,o){let t=null;return o.getMatrixWithMergedCells(n,e,n,e).forValue((a,i,c)=>(t={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),t||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function X(n,e){const o=e.getMergedCell(n.startRow,n.startColumn);return o?{...o,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.startColumn,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const me=(n,e,o)=>({id:G.id,params:{unitId:e.getUnitId(),subUnitId:o.getSheetId(),pluginName:q,selections:[{range:n,primary:X(n,o)}]}}),gn="sheet.command.move-range",it={type:s.CommandType.COMMAND,id:gn,handler:(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId(),d=Mt(n,{unitId:u,subUnitId:m,range:e.fromRange},{unitId:u,subUnitId:m,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=n.get(exports.SheetInterceptorService).onCommandExecute({id:it.id,params:{...e}}),h=[...d.redos,...g.redos,{id:G.id,params:{unitId:u,subUnitId:m,pluginName:q,selections:[{range:e.toRange,primary:X(e.toRange,c)}]}}],v=[{id:G.id,params:{unitId:u,subUnitId:m,pluginName:q,selections:[{range:e.fromRange,primary:X(e.fromRange,c)}]}},...d.undos,...g.undos];return s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:h}),!0):!1}};function Mt(n,e,o,t=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=e,{range:m,subUnitId:d}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),h=g==null?void 0:g.getSheetBySheetId(d),v=g==null?void 0:g.getSheetBySheetId(c),S=h==null?void 0:h.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(h&&v&&S&&C){const I=Fe(m,h,!1);if(!s.Rectangle.equals(m,I)&&!t)return null;const f=new s.ObjectMatrix,R=new s.ObjectMatrix,p=(b,U)=>({startRow:b,endRow:b,startColumn:U,endColumn:U});s.Range.foreach(i,(b,U)=>{f.setValue(b,U,C.getValue(b,U)),R.setValue(b,U,null)});const y=new s.ObjectMatrix;s.Range.foreach(m,(b,U)=>{y.setValue(b,U,S.getValue(b,U))});const w=new s.ObjectMatrix;s.Range.foreach(i,(b,U)=>{const k=p(b,U),M=s.Rectangle.getRelativeRange(k,i),z=s.Rectangle.getPositionRange(M,m);w.setValue(z.startRow,z.startColumn,C.getValue(b,U))});const T={from:{value:R.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:d},unitId:u},_={from:{value:f.getMatrix(),subUnitId:c},to:{value:y.getMatrix(),subUnitId:d},unitId:u};r.push({id:Be.id,params:T}),a.push({id:Be.id,params:_})}return{redos:r,undos:a}}const Ie={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),{value:c,range:u,unitId:m=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,l=u?[u]:a.getSelectionRanges();if(!l||!l.length)return!1;const g=new s.ObjectMatrix;let h;if(s.Tools.isArray(c))for(let p=0;p<l.length;p++){const{startRow:y,startColumn:w,endRow:T,endColumn:_}=l[p];for(let b=0;b<=T-y;b++)for(let U=0;U<=_-w;U++)g.setValue(b+y,U+w,c[b][U])}else if(s.isICellData(c))for(let p=0;p<l.length;p++){const{startRow:y,startColumn:w,endRow:T,endColumn:_}=l[p];for(let b=y;b<=T;b++)for(let U=w;U<=_;U++)g.setValue(b,U,c)}else h=c;const v={subUnitId:d,unitId:m,cellValue:h!=null?h:g.getMatrix()},S=le(n,v);if(!i.fetchThroughInterceptors(be.PERMISSION)(null,{id:Ie.id,params:v}))return!1;const C=o.syncExecuteCommand($.id,v),{undos:I,redos:f}=i.onCommandExecute({id:Ie.id,params:{...v,range:l}}),R=s.sequenceExecute([...f],o);return C&&R.result?(t.pushUndoRedo({unitID:m,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}};function wt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=e,m=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),l=m.getUniverSheetInstance(r),g=l==null?void 0:l.getSheetBySheetId(a);if(g){const h=g.getCellMatrix(),v=h.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let R,p;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,v.endRow);let T=0;for(let b=i.startRow;b<=w;b++){const U=h.getRow(b),k=U?s.getArrayLength(U)-1:0;T=Math.max(T,k)}R={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:T};const _=i.endColumn-i.startColumn+1;p={startRow:i.startRow,startColumn:R.startColumn+_,endRow:w,endColumn:R.endColumn+_}}else{const w=Math.min(i.endColumn,v.endColumn),T=v.endRow;R={startRow:i.startRow,startColumn:i.startColumn,endRow:T,endColumn:w};const _=i.endRow-i.startRow+1;p={startRow:R.startRow+_,startColumn:i.startColumn,endRow:R.endRow+_,endColumn:w}}const y=Mt(n,{unitId:r,subUnitId:a,range:R},{unitId:r,subUnitId:a,range:p},!0);y&&(o.push(...y.redos),t.push(...y.undos))}if(Object.entries(u).length===0)for(let R=i.startRow;R<=i.endRow;R++){u[R]||(u[R]={});for(let p=i.startColumn;p<=i.endColumn;p++)u[R][p]=null}const S={subUnitId:a,unitId:r,cellValue:u},C=le(n,S),{undos:I,redos:f}=d.onCommandExecute({id:Ie.id,params:{...S,range:i}});o.push({id:$.id,params:S},...f),t.push({id:$.id,params:C},...I)}return{redo:o,undo:t}}function yt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=e,u=n.get(s.IUniverInstanceService),m=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),l=d==null?void 0:d.getSheetBySheetId(a);if(l){const g=l.getCellMatrix(),h=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:Ko([i])},S=le(n,v),C=m.onCommandExecute({id:Ie.id,params:v});if(o.push({id:$.id,params:v},...C.redos),t.push(...C.undos,{id:$.id,params:S}),i.startColumn<=h.endColumn||i.startRow<=h.endRow){let I=null,f=null;if(c===s.Dimension.COLUMNS&&i.endColumn<h.endColumn){const R=Math.min(i.endRow,h.endRow);let p=0;for(let w=i.startRow;w<=R;w++){const T=g.getRow(w),_=T?s.getArrayLength(T)-1:0;p=Math.max(p,_)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:R,endColumn:p};const y=i.endColumn-i.startColumn+1;f={startRow:i.startRow,startColumn:I.startColumn-y,endRow:R,endColumn:I.endColumn-y}}if(c===s.Dimension.ROWS&&i.endRow<h.endRow){const R=Math.min(i.endColumn,h.endColumn),p=h.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:p,endColumn:R};const y=i.endRow-i.startRow+1;f={startRow:I.startRow-y,startColumn:i.startColumn,endRow:I.endRow-y,endColumn:R}}if(I&&f){const R=Mt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:f},!0);R&&(o.push(...R.redos),t.push(...R.undos))}}}return{redo:o,undo:t}}function qo(n,e,o,t,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:m}=e;if(r===s.Dimension.ROWS){const d=c-i+1;for(let l=o;l>=i;l--)for(let g=u;g<=m;g++){const h=n.getValue(l,g);h==null?n.realDeleteValue(l+d,g):n.setValue(l+d,g,h)}for(let l=c;l>=i;l--)for(let g=u;g<=m;g++)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}else if(r===s.Dimension.COLUMNS){const d=m-u+1;for(let l=i;l<=c;l++)for(let g=t;g>=u;g--){const h=n.getValue(l,g);h==null?n.realDeleteValue(l,g+d):n.setValue(l,g+d,h)}for(let l=i;l<=c;l++)for(let g=m;g>=u;g--)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}}function Yo(n,e,o,t,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=e,m=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let l=a;l<=o;l++)for(let g=c;g<=u;g++){const h=n.getValue(l+m,g);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}else if(r===s.Dimension.COLUMNS)for(let l=a;l<=i;l++)for(let g=c;g<=t;g++){const h=n.getValue(l,g+d);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}}function Ko(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const hn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:hn,handler:async(n,e)=>{var R;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let m=e==null?void 0:e.range;if(m||(m=(R=a.getLast())==null?void 0:R.range),!m)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:at.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},vn="sheet.command.delete-range-move-up",ct={type:s.CommandType.COMMAND,id:vn,handler:async(n,e)=>{var R;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let m=e==null?void 0:e.range;if(m||(m=(R=a.getLast())==null?void 0:R.range),!m)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:ct.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),await s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},Ut=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},fe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,e)=>{var v;const{unitId:o,subUnitId:t,range:r,rowInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const m=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},l=r.startRow,g=r.endRow-r.startRow+1;for(let S=l;S<l+g;S++)a?s.insertMatrixArray(S,(v=a[S-r.startRow])!=null?v:d,m):s.insertMatrixArray(S,d,m);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},_t=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Re={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,e)=>{var v;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:c}=e,m=a.getColumnData(),d=i.startColumn,l=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+l;S++){const C={w:g,hd:0};c?s.insertMatrixArray(S,(v=c[S-i.startColumn])!=null?v:C,m):s.insertMatrixArray(S,C,m)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,l),!0}},Jo=(n,e)=>{const r=e.getRowManager().getRowData(),a={},i=n.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},pe={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getRowManager().getRowData(),u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Xo=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},m=e.range,d=s.sliceMatrixArray(m.startColumn,m.endColumn,c),l=s.concatMatrixArray(u,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:l}},Me={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},Zo="sheet.command.insert-range-move-down",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var U;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(U=i.getLast())==null?void 0:U.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,R=Math.max(f+(d.endRow-d.startRow+1)-C.endRow,0);if(R>0){const k=d.startRow-1,M=g.getRowHeight(k),z={unitId:u,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+R,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(R).fill(void 0).map(()=>({h:M,hd:s.BooleanNumber.FALSE}))};h.push({id:fe.id,params:z});const ge=Ut(n,z);v.push({id:pe.id,params:ge})}const p={};s.Range.foreach(d,(k,M)=>{const z=g.getCell(k,M);z&&(p[k]||(p[k]={}),p[k][M]={s:z.s})});const y={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:p},{redo:w,undo:T}=wt(n,y);h.push(...w),v.push(...T);const _=c.onCommandExecute({id:ut.id,params:{range:d}});return h.push(..._.redos),h.push(me(d,l,g)),v.push(..._.undos),s.sequenceExecute(h,o)?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Sn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Sn,handler:async(n,e)=>{var U;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(U=i.getLast())==null?void 0:U.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,R=Math.max(f+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(R>0){const k=d.startColumn-1,M=g.getColumnWidth(k),z={unitId:u,subUnitId:m,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+R},colInfo:new Array(R).fill(void 0).map(()=>({w:M,hd:s.BooleanNumber.FALSE}))};h.push({id:Re.id,params:z});const ge=_t(n,z);v.push({id:Me.id,params:ge})}const p={};s.Range.foreach(d,(k,M)=>{const z=g.getCell(k,M);!z||!z.s||(p[k]||(p[k]={}),p[k][M]={s:z.s})});const y={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:p},{redo:w,undo:T}=wt(n,y);h.push(...w),v.push(...T);const _=c.onCommandExecute({id:dt.id,params:{range:d}});return h.push(..._.redos),h.push(me(d,l,g)),v.push(..._.undos),s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Cn="sheet.command.insert-row",Ae={type:s.CommandType.COMMAND,id:Cn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(e.unitId),c=i.getSheetBySheetId(e.subUnitId),{range:u,direction:m,unitId:d,subUnitId:l}=e,{startRow:g,endRow:h}=u,v=m===s.Direction.UP?g:g-1,S=c.getRowHeight(v),C={unitId:d,subUnitId:l,range:u,rowInfo:new Array(h-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=Ut(n,C),f=a.onCommandExecute({id:Ae.id,params:e});return s.sequenceExecute([{id:fe.id,params:C},...f.redos,me(u,i,c)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...f.undos,{id:pe.id,params:I}],redoMutations:[{id:fe.id,params:C},...f.redos]}),!0):!1}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(h=>h.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endRow-t.startRow+1,d={};s.Range.foreach(t,(h,v)=>{const S=i.getCell(h,v);!S||!S.s||(d[h]||(d[h]={}),d[h][v]={s:S.s})});const l={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+m-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(Ae.id,l)}},fn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var l;const o=(l=n.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(g=>g.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endRow-t.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+m,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Ae.id,d)}},Rn="sheet.command.insert-col",Ne={type:s.CommandType.COMMAND,id:Rn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:m,cellValue:d}=e,{startColumn:l,endColumn:g}=e.range,h=r.getUniverSheetInstance(e.unitId),v=h.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?l:l-1,C=v.getColumnWidth(S),I={unitId:m,subUnitId:u,range:i,colInfo:new Array(g-l+1).fill(void 0).map(()=>({w:C,hd:s.BooleanNumber.FALSE}))},f=_t(n,I);e.unitId,e.subUnitId,e.range,s.Dimension.COLUMNS;const R=a.onCommandExecute({id:Ne.id,params:e});return s.sequenceExecute([{id:Re.id,params:I},...R.redos,me(i,h,v)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...R.undos,{id:Me.id,params:f}],redoMutations:[{id:Re.id,params:I},...R.redos]}),!0):!1}},pn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={};s.Range.foreach(t,(g,h)=>{const v=i.getCell(g,h);!v||!v.s||(d[g]||(d[g]={}),d[g][h]={s:v.s})});const l={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+m-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(Ne.id,l)}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+m,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Ne.id,d)}},wn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,e)=>{var h,v;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=(h=e==null?void 0:e.unitId)!=null?h:r.getCurrentUniverSheetInstance().getUnitId(),c=r.getUniverSheetInstance(i);if(!c)return!1;let u=c.getSheets().length,m=s.mergeWorksheetSnapshotWithDefault({});e?(u=(v=e.index)!=null?v:u,e.sheet?m=e.sheet:(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`))):(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:u,sheet:m,unitId:i},l=pt(n,d);return o.syncExecuteCommand(Ce.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:l}],redoMutations:[{id:Ce.id,params:d}]}),!0):!1}};function Qo(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const Ve={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const m=r.startRow,d=r.endRow-r.startRow+1,l=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveRows(m,d,l),!0}};function er(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const We={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const m=r.startColumn,d=r.endColumn-r.startColumn+1,l=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveColumns(m,d,l),!0}};function tr(n,e){return e.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function nr(n,e){return e.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const yn="sheet.command.move-rows",bt={id:yn,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=e,i=t==null?void 0:t.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 c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(tr(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startRow:a,endRow:a+v.endRow-v.startRow},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},R=Qo(n,f),y=a-r<0,w=v.endRow-v.startRow+1,T=y?I:{...I,startRow:I.startRow-w,endRow:I.endRow-w},_={unitId:l,subUnitId:g,pluginName:q,selections:[{range:T,primary:X(T,d),style:null}]},b={unitId:l,subUnitId:g,pluginName:q,selections:[{range:v,primary:S,style:null}]},U=n.get(s.ICommandService),k=c.onCommandExecute({id:bt.id,params:e}),M=[{id:Ve.id,params:f},{id:G.id,params:_},...k.redos],z=[{id:Ve.id,params:R},{id:G.id,params:b},...k.undos];return s.sequenceExecute(M,U).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:z,redoMutations:M}),!0):!1}},Un="sheet.command.move-cols",Tt={id:Un,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=e,i=t==null?void 0:t.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 c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(nr(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startColumn:a,endColumn:a+v.endColumn-v.startColumn},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},R=er(n,f),p=v.endColumn-v.startColumn+1,T=a-r<0?I:{...I,startColumn:I.startColumn-p,endColumn:I.endColumn-p},_={unitId:l,subUnitId:g,pluginName:q,selections:[{range:T,primary:X(T,d),style:null}]},b={unitId:l,subUnitId:g,pluginName:q,selections:[{range:v,primary:S,style:null}]},U=n.get(s.ICommandService),k=c.onCommandExecute({id:Tt.id,params:e}),M=[{id:We.id,params:f},{id:G.id,params:_},...k.redos],z=[{id:We.id,params:R},{id:G.id,params:b},...k.undos];return s.sequenceExecute(M,U).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:z,redoMutations:M}),!0}},_n="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:_n,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Jo(d,c),g=t.onCommandExecute({id:lt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:pe.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:fe.id,params:l}],redoMutations:[{id:pe.id,params:d},...g.redos]}),!0):!1}},bn="sheet.command.remove-col",mt={type:s.CommandType.COMMAND,id:bn,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Xo(n,d),g=t.onCommandExecute({id:mt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:Me.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:Re.id,params:l}],redoMutations:[{id:Me.id,params:d},...g.redos]}),!0):!1}},Et={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,e)=>{var I,f;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(I=e.unitId)!=null?I:i,c=(f=e.subUnitId)!=null?f:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(m);u.getConfig().sheetOrder[d+1];const l={subUnitId:c,unitId:i,subUnitName:m.getName()},g=ln(n,l),h=a.onCommandExecute({id:Et.id,params:{unitId:i,subUnitId:c}}),v=[{id:je.id,params:l},...h.redos],S=[...h.undos,{id:Ce.id,params:g}];return s.sequenceExecute(v,o)?(t.pushUndoRedo({unitID:i,undoMutations:S,redoMutations:v}),!0):!1}},ie=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},Q=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=e.ranges,u=[];for(let m=0;m<c.length;m++)for(let d=i.length-1;d>=0;d--){const l=i[d],g=c[m];s.Rectangle.intersects(l,g)&&u.push(i[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},B={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let m=i.length-1;m>=0;m--){const d=i[m],l=c[u];s.Rectangle.intersects(d,l)&&i.splice(m,1)}return!0}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a};let l=!1;const g=m.getConfig().mergeData;if(a.forEach(S=>{g.forEach(C=>{s.Rectangle.intersects(S,C)&&(l=!0)})}),!l)return!1;const h=Q(n,d);return o.syncExecuteCommand(B.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:h}],redoMutations:[{id:B.id,params:d}]}),!0):!1}};class we{constructor(){x(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});x(this,"_borderInfo$",new _e.BehaviorSubject(this._borderInfo));x(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function or(n,e,o){const t=e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance();if(!t)throw new Error;const r=o?t.getSheetBySheetId(o):t.getActiveSheet();if(!r)throw new Error;return{workbook:t,worksheet:r,unitId:e!=null?e:t.getUnitId(),subUnitId:o!=null?o:r.getSheetId()}}function qe(n,e){const{startRow:o,startColumn:t,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=t;c<=a;c++)e(i,c)}const En={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:o,subUnitId:t,value:r}=e,{type:a,color:i,style:c}=r,u=n.get(s.ICommandService),m=n.get(we);return m.setType(a),m.setColor(i),m.setStyle(c),u.executeCommand(Pe.id,{unitId:o,subUnitId:t})}},Dn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const o=n.get(s.ICommandService);return n.get(we).setType(e.value),o.executeCommand(Pe.id)}},On={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setStyle(e.value),o.executeCommand(Pe.id)}},An={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setColor(e.value),o.executeCommand(Pe.id)}},Pe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(we),{worksheet:c,unitId:u,subUnitId:m}=or(r,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),l=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:h,type:v,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const C=v===s.BorderType.TOP||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,I=v===s.BorderType.LEFT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,f=v===s.BorderType.BOTTOM||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,R=v===s.BorderType.RIGHT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,p=v===s.BorderType.VERTICAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,y=v===s.BorderType.HORIZONTAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,w=v.indexOf("tlbr")>-1,T=v.indexOf("tlbc")>-1,_=v.indexOf("tlmr")>-1,b=v.indexOf("bltr")>-1,U=v.indexOf("mltr")>-1,k=v.indexOf("bctr")>-1,M=d[0],z={startRow:M.startRow-1,startColumn:M.startColumn,endRow:M.startRow-1,endColumn:M.endColumn},ge={startRow:M.startRow,startColumn:M.startColumn-1,endRow:M.endRow,endColumn:M.startColumn-1},ee={startRow:M.endRow+1,startColumn:M.startColumn,endRow:M.endRow+1,endColumn:M.endColumn},qt={startRow:M.startRow,startColumn:M.endColumn+1,endRow:M.endRow,endColumn:M.endColumn+1},Yt={startRow:M.startRow,startColumn:M.startColumn,endRow:M.startRow,endColumn:M.endColumn},Kt={startRow:M.startRow,startColumn:M.startColumn,endRow:M.endRow,endColumn:M.startColumn},Jt={startRow:M.endRow,startColumn:M.startColumn,endRow:M.endRow,endColumn:M.endColumn},Xt={startRow:M.startRow,startColumn:M.endColumn,endRow:M.endRow,endColumn:M.endColumn},N=new s.ObjectMatrix,j={s:g,cl:{rgb:h}},ze=(O,E)=>{let P=null;return l.forEach(K=>{s.Rectangle.intersects(K,{startColumn:E,endColumn:E,startRow:O,endRow:O})&&(P=K)}),P};function V(O,E,P){O.startRow<0||O.startColumn<0||qe(O,(K,te)=>{var D,ke;const J=ze(K,te);let Z=E;if(J&&(E.bc_tr||E.ml_tr||E.bl_tr||E.tl_mr||E.tl_bc||E.tl_br)){if(P){const ne=s.Tools.deepClone((D=N.getValue(J.startRow,J.startColumn))==null?void 0:D.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,E):E}N.setValue(J.startRow,J.startColumn,{s:{bd:Z}})}else{if(P){const ne=s.Tools.deepClone((ke=N.getValue(K,te))==null?void 0:ke.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,E):E}N.setValue(K,te,{s:{bd:Z}})}})}C&&(V(z,{b:null}),V(Yt,{t:s.Tools.deepClone(j)},!0)),f&&(V(ee,{t:null}),V(Jt,{b:s.Tools.deepClone(j)},!0)),I&&(V(ge,{r:null}),V(Kt,{l:s.Tools.deepClone(j)},!0)),R&&(V(qt,{l:null}),V(Xt,{r:s.Tools.deepClone(j)},!0)),w&&V(M,{tl_br:s.Tools.deepClone(j)},!0),T&&V(M,{tl_bc:s.Tools.deepClone(j)},!0),_&&V(M,{tl_mr:s.Tools.deepClone(j)},!0),b&&V(M,{bl_tr:s.Tools.deepClone(j)},!0),U&&V(M,{ml_tr:s.Tools.deepClone(j)},!0),k&&V(M,{bc_tr:s.Tools.deepClone(j)},!0),p&&qe(M,(O,E)=>{var K,te,J,Z;const P=ze(O,E);if(P){if(P.endColumn!==M.endColumn){const D=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(P.startColumn!==M.startColumn){const D=(te=N.getValue(P.startRow,P.startColumn))==null?void 0:te.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(E!==M.endColumn){const D=(J=N.getValue(O,E))==null?void 0:J.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(E!==M.startColumn){const D=(Z=N.getValue(O,E))==null?void 0:Z.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),y&&qe(M,(O,E)=>{var K,te,J,Z;const P=ze(O,E);if(P){if(P.endRow!==M.endRow){const D=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(P.startRow!==M.startRow){const D=(te=N.getValue(P.startRow,P.startColumn))==null?void 0:te.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(O!==M.endRow){const D=(J=N.getValue(O,E))==null?void 0:J.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(O!==M.startRow){const D=(Z=N.getValue(O,E))==null?void 0:Z.s;N.setValue(O,E,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!C&&!f&&!I&&!R&&!p&&!y&&!w&&!T&&!_&&!b&&!U&&!k&&(V(z,{b:null}),V(Yt,{t:null},!0),V(ee,{t:null}),V(Jt,{b:null},!0),V(ge,{r:null}),V(Kt,{l:null},!0),V(qt,{l:null}),V(Xt,{r:null},!0),V(M,{tl_br:null},!0),V(M,{tl_bc:null},!0),V(M,{tl_mr:null},!0),V(M,{bl_tr:null},!0),V(M,{ml_tr:null},!0),V(M,{bc_tr:null},!0),qe(M,(O,E)=>{var K,te,J,Z,D,ke,ne,Zt;const P=ze(O,E);if(P){if(P.endColumn!==M.endColumn){const A=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(P.startColumn!==M.startColumn){const A=(te=N.getValue(P.startRow,P.startColumn))==null?void 0:te.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(P.endRow!==M.endRow){const A=(J=N.getValue(P.startRow,P.startColumn))==null?void 0:J.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(P.startRow!==M.startRow){const A=(Z=N.getValue(P.startRow,P.startColumn))==null?void 0:Z.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(E!==M.endColumn){const A=(D=N.getValue(O,E))==null?void 0:D.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(E!==M.startColumn){const A=(ke=N.getValue(O,E))==null?void 0:ke.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(O!==M.endRow){const A=(ne=N.getValue(O,E))==null?void 0:ne.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(O!==M.startRow){const A=(Zt=N.getValue(O,E))==null?void 0:Zt.s;N.setValue(O,E,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const ht={unitId:u,subUnitId:m,cellValue:N.getData()},fo=le(n,ht);return o.syncExecuteCommand($.id,ht)?(t.pushUndoRedo({unitID:u,undoMutations:[{id:$.id,params:fo}],redoMutations:[{id:$.id,params:ht}]}),!0):!1}},rr=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Te={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},sr=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ee={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Dt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),i={unitId:o,subUnitId:t,ranges:r},c=sr(n,i),u={unitId:o,subUnitId:t,pluginName:q,selections:r.map(g=>({range:g,primary:X(g,a),style:null}))},m={unitId:o,subUnitId:t,pluginName:q,selections:kn(r).map(g=>({range:g,primary:X(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ee.id,params:i},{id:G.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Te.id,params:c},{id:G.id,params:m}],redoMutations:[{id:Ee.id,params:i},{id:G.id,params:u}]}),!0}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var m;const o=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(s.ICommandService).executeCommand(Dt.id,{unitId:i,subUnitId:c,ranges:u})}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var h;const o=(h=n.get(exports.SelectionManagerService).getSelections())==null?void 0:h.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).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:o},m={unitId:i,subUnitId:c,pluginName:q,selections:kn(o).map(v=>({range:v,primary:X(v,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:q,selections:o.map(v=>({range:v,primary:X(v,a),style:null}))},l=n.get(s.ICommandService);if(s.sequenceExecute([{id:Te.id,params:u},{id:G.id,params:m}],l).result){const v=n.get(s.IUndoRedoService),S=rr(n,u);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:S},{id:G.id,params:d}],redoMutations:[{id:Te.id,params:u},{id:G.id,params:m}]}),!0}return!1}};function kn(n){return ir(n).map(o=>{const t=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:t,endColumn:t}})}function ir(n){const e=[];let o;return n.sort((t,r)=>t.startColumn-r.startColumn).forEach(t=>{if(!o){o=t;return}o.endColumn===t.startColumn-1?o.endColumn=t.endColumn:(e.push(o),o=t)}),e.push(o),e}const Ot=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...i}},he={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:m}=e;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:m},!0}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u)return!1;const{startColumn:m,startRow:d,xSplit:l,ySplit:g}=e;if(d>=u.getRowCount()||m>=u.getColumnCount()||l>=u.getColumnCount()||g>=u.getRowCount())return!1;const h={unitId:a,subUnitId:i,...e},v=Ot(n,h);return o.syncExecuteCommand(he.id,h)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:he.id,params:v}],redoMutations:[{id:he.id,params:h}]}),!0):!1}},ar={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),t=n.get(s.IUniverInstanceService),r=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=t.getUniverSheetInstance(r);if(!i||!i.getSheetBySheetId(a))return!1;const u={unitId:r,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},m=Ot(n,u);return e.syncExecuteCommand(he.id,u)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:he.id,params:m}],redoMutations:[{id:he.id,params:u}]}),!0):!1}},cr=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},De={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},ur=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Oe={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},At={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={unitId:o,subUnitId:t,ranges:r},m=cr(n,u),d={unitId:o,subUnitId:t,pluginName:q,selections:r.map(h=>({range:h,primary:X(h,c),style:null}))},l={unitId:o,subUnitId:t,pluginName:q,selections:Vn(r).map(h=>({range:h,primary:X(h,c),style:null}))};return s.sequenceExecute([{id:De.id,params:u},{id:G.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:m},{id:G.id,params:l}],redoMutations:[{id:De.id,params:u},{id:G.id,params:d}]}),!0}},Ln={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var m;const e=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),t=(m=e.getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const r=o.getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=t.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(At.id,{unitId:i,subUnitId:c,ranges:u})}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(S=e.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a},l={unitId:i,subUnitId:c,pluginName:q,selections:Vn(a).map(C=>({range:C,primary:X(C,m),style:null}))},g={unitId:i,subUnitId:c,pluginName:q,selections:a.map(C=>({range:C,primary:X(C,m),style:null}))},h=ur(n,d);return s.sequenceExecute([{id:Oe.id,params:d},{id:G.id,params:l}],o).result&&t.pushUndoRedo({unitID:i,undoMutations:[{id:De.id,params:h},{id:G.id,params:g}],redoMutations:[{id:Oe.id,params:d},{id:G.id,params:l}]}),!0}};function Vn(n){return dr(n).map(o=>{const t=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:t,endRow:t}})}function dr(n){const e=[];let o;return n.sort((t,r)=>t.startRow-r.startRow).forEach(t=>{if(!o){o=t;return}t.startRow===o.endRow+1?o.endRow=t.endRow:(e.push(o),o=t)}),e.push(o),e}const Y={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const o=n.get(s.IUniverInstanceService),{unitId:t=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=e,c=n.get(s.ICommandService),u=n.get(s.IUndoRedoService),m=n.get(exports.SelectionManagerService),d=a?[a]:m.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=o.getUniverSheetInstance(t);if((l==null?void 0:l.getSheetBySheetId(r))==null)return!1;const h=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let p=0;p<d.length;p++){const{startRow:y,endRow:w,startColumn:T,endColumn:_}=d[p];for(let b=0;b<=w-y;b++)for(let U=0;U<=_-T;U++)h.setValue(b+y,U+T,{s:{[i.type]:i.value[b][U]}})}else for(let p=0;p<d.length;p++){const{startRow:y,endRow:w,startColumn:T,endColumn:_}=d[p],b={s:{[i.type]:i.value}};for(let U=y;U<=w;U++)for(let k=T;k<=_;k++)h.setValue(U,k,b)}const v={subUnitId:r,unitId:t,cellValue:h.getMatrix()},S=le(n,v),C=c.syncExecuteCommand($.id,v),{undos:I,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Y.id,params:e}),R=s.sequenceExecute([...f],c);return C&&R.result?(u.pushUndoRedo({unitID:t,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}},lr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:t,actualColumn:r}=e.primary,i={style:{type:"bl",value:o.getRange(t,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,i)}},mr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;if(e.primary){const{startRow:a,startColumn:i}=e.primary;t=o.getRange(a,i).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},gr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},hr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}};s.CommandType.COMMAND;const vr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ff",value:e.value}};return o.executeCommand(Y.id,t)}},Sr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"fs",value:e.value}};return o.executeCommand(Y.id,t)}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},jn={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"vt",value:e.value}};return o.executeCommand(Y.id,t)}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ht",value:e.value}};return o.executeCommand(Y.id,t)}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"tb",value:e.value}};return o.executeCommand(Y.id,t)}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,e)=>{if(!e)return!1;const o=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},t=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return t.executeCommand(Y.id,r)}},Cr=(n,e)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const m={color:e.value,unitId:a,subUnitId:i},d=Cr(n,m);return o.syncExecuteCommand(xe.id,m)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:m}]}),!0):!1}},He={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getWorksheets();for(const[,r]of t)if(r.getSheetId()===e.subUnitId)return o.setActiveSheet(r),!0;return!1}},Ir=4,Nt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e,o)=>{var c,u;const t=n.get(s.ICommandService),r=n.get(s.IUniverInstanceService);let a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return e&&(a=(c=e.unitId)!=null?c:a,i=(u=e.subUnitId)!=null?u:i),new Promise(m=>{setTimeout(()=>{const d=t.syncExecuteCommand(He.id,{unitId:a,subUnitId:i},o);m(d)},Ir)})}},Pt=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const m=c[u];for(let d=m.startColumn;d<m.endColumn+1;d++){const l=i.getColumnOrCreate(d);a[d]=l.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:a}},ce={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,e)=>{var u;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),c=e.ranges;for(let m=0;m<c.length;m++){const d=c[m];for(let l=d.startColumn;l<d.endColumn+1;l++){const g=i.getColumnOrCreate(l);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(u=e.colWidth[l-d.startColumn])!=null?u:a}}return!0}},kt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),m=c.getUnitId(),d=u.getSheetId(),{anchorCol:l,deltaX:g}=e,v=u.getColumnWidth(l)+g,S=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,C=t.filter(_=>_.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:_})=>{const{startColumn:b,endColumn:U}=_;return b<=l&&l<=U})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let f;if(I===s.RANGE_TYPE.ALL){const _=u.getRowCount(),b=new Array(u.getColumnCount()).fill(void 0).map((U,k)=>({startRow:0,endRow:_-1,startColumn:k,endColumn:k}));f={subUnitId:d,unitId:m,colWidth:v,ranges:b}}else I===s.RANGE_TYPE.COLUMN?f={subUnitId:d,unitId:m,ranges:C.map(_=>s.Rectangle.clone(_.range)),colWidth:v}:f={subUnitId:d,unitId:m,colWidth:v,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const R=Pt(n,f),p=r.syncExecuteCommand(ce.id,f),{undos:y,redos:w}=n.get(exports.SheetInterceptorService).onCommandExecute({id:kt.id,params:f}),T=s.sequenceExecute([...w],r);return p&&T.result&&a.pushUndoRedo({unitID:m,undoMutations:[{id:ce.id,params:R},...y],redoMutations:[{id:ce.id,params:f},...w]}),!0}},xt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance().getUnitId(),m={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:e.value},d=Pt(n,m),l=t.syncExecuteCommand(ce.id,m),{undos:g,redos:h}=n.get(exports.SheetInterceptorService).onCommandExecute({id:xt.id,params:m}),v=s.sequenceExecute([...h],t);return l&&v.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ce.id,params:d},...g],redoMutations:[{id:ce.id,params:m},...h]}),!0):!1}},Kn=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{hidden:t.isSheetHidden(),unitId:e.unitId,subUnitId:t.getSheetId()}},ve={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{var C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m||m.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const l={unitId:i,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=Kn(n,l);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(ve.id,l)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:g}],redoMutations:[{id:ve.id,params:l}]}),!0):!1}},fr=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{unitId:e.unitId,name:t.getName(),subUnitId:t.getSheetId()}},tt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:i},m=fr(n,u),d=a.onCommandExecute({id:Lt.id,params:e}),l=[{id:tt.id,params:u},...d.redos],g=[...d.undos,{id:tt.id,params:m}];return await s.sequenceExecute(l,o).result?(t.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:l}),!0):!1}},Rr=(n,e)=>{const r=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getConfig().sheetOrder.findIndex(a=>a===e.subUnitId);return{...s.Tools.deepClone(e),order:r}},Le={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getConfig(),r=t.sheetOrder.filter(a=>a!==e.subUnitId);return r.splice(e.order,0,e.subUnitId),t.sheetOrder=r,!0}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),i=e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const m={order:e.order,unitId:a,subUnitId:i},d=Rr(n,m);return o.syncExecuteCommand(Le.id,m)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Le.id,params:d}],redoMutations:[{id:Le.id,params:m}]}),!0):!1}},pr=2e3,Zn=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<l+1;g++){const h=m.getRowOrCreate(g);u[g]=h.h}return{unitId:o,subUnitId:t,ranges:r,rowHeight:u}},Bt=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<=l;g++){const h=m.getRowOrCreate(g);u[g]=h.ia}return{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:u}},Mr=(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t),u=[],m=c.getRowManager();for(const d of r){const{row:l}=d,{ah:g}=m.getRowOrCreate(l);u.push({row:l,autoHeight:g})}return{unitId:o,subUnitId:t,rowsAutoHeightInfo:u}},ue={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:r,rowHeight:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const m=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.h=a:S.h=(l=a[v])!=null?l:m,S.h=Math.min(pr,S.h)}return!0}},oe={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const m=void 0,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.ia=a:S.ia=(l=a[v-g])!=null?l:m}return!0}},Vt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:m,autoHeight:d}of r){const l=u.getRowOrCreate(m);l.ah=d}return!0}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),c=a.getUnitId(),u=i.getSheetId(),{anchorRow:m,deltaY:d}=e,g=i.getRowHeight(m)+d,h=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,v=t.filter(T=>T.range.rangeType===s.RANGE_TYPE.ROW),S=h?s.RANGE_TYPE.ALL:v.some(({range:T})=>{const{startRow:_,endRow:b}=T;return _<=m&&m<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const T=i.getRowCount(),_=new Array(i.getColumnCount()).fill(void 0).map((b,U)=>({startRow:U,endRow:U,startColumn:0,endColumn:T-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:_}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:v.map(T=>s.Rectangle.clone(T.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:m,endRow:m,startColumn:0,endColumn:i.getMaxColumns()-1}]};const I=Zn(n,C),f={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},R=Bt(n,f),p=n.get(s.ICommandService),y=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:ue.id,params:C},{id:oe.id,params:f}],p).result?(y.pushUndoRedo({unitID:c,undoMutations:[{id:ue.id,params:I},{id:oe.id,params:R}],redoMutations:[{id:ue.id,params:C},{id:oe.id,params:f}]}),!0):!1}},eo={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance(),u=c.getUnitId(),m=c.getActiveSheet().getSheetId(),d={subUnitId:m,unitId:u,ranges:i,rowHeight:e.value},l=Zn(n,d),g={unitId:u,subUnitId:m,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},h=Bt(n,g);return s.sequenceExecute([{id:ue.id,params:d},{id:oe.id,params:g}],t).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:l},{id:oe.id,params:h}],redoMutations:[{id:ue.id,params:d},{id:oe.id,params:g}]}),!0):!1}},Wt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),c=a.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:m}=e!=null?e:{},d=m!=null?[{startRow:m,endRow:m,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={unitId:i,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=Bt(n,l),h=o.syncExecuteCommand(oe.id,l),{undos:v,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Wt.id,params:l}),C=s.sequenceExecute([...S],o);return h&&C.result?(t.pushUndoRedo({unitID:i,undoMutations:[{id:oe.id,params:g},...v],redoMutations:[{id:oe.id,params:l},...S]}),!0):!1}},to={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{var S;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId();let i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.value)!=null?S:i);const c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:s.BooleanNumber.FALSE},l=Kn(n,d),g=o.syncExecuteCommand(ve.id,d),h={unitId:a,subUnitId:i},v=o.syncExecuteCommand(He.id,h);return g&&v?(t.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:l}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},no=n=>{const e=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(t,r)=>{e.setValue(t,r,1)})}),e.forValue((o,t)=>{const r=e.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},oo=n=>{const e=n;return e.forValue((o,t)=>{const r=n.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},en=n=>{const e={area:0},o=(t,r)=>e.area<t?(e.area=t,e.range=r,!0):!1;return n.forValue((t,r,a)=>{let i=1,c=a;o(i*c,{startRow:t-c+1,endRow:t,startColumn:r,endColumn:r});const u={startRow:t-c+1,endRow:t,startColumn:0,endColumn:r};for(let m=r-1;m>=0&&n.getValue(t,m);m--){c=Math.min(n.getValue(t,m)||0,c),i++;const d=c*i;u.startColumn=m,u.startRow=t-c+1,o(d,u)}}),e},wr=(n,e)=>(s.Range.foreach(e,(o,t)=>{n.realDeleteValue(o,t);let r=o+1,a=n.getValue(r,t)||0;for(;a>1;)n.setValue(r,t,a-1),r+=1,a=n.getValue(r,t)||0}),n),jt=n=>{const e=[];let o=en(n);for(;o.area>0;)o.range&&(e.push(o.range),wr(n,o.range)),o=en(n);return e},Ft=n=>{const e=no(n);return jt(e)};class yr{constructor(){x(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.setValue(t,r,1)})}),this}subtract(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.realDeleteValue(t,r)})}),this}merge(){const e=oo(this._matrix);return jt(e)}}const Ur=(n,e,o="")=>n.reduce((t,r)=>{const a=r&&r[e];return typeof a!="string"?(console.warn(r,`${e} is not string`),t):(a?(t[a]||(t[a]=[]),t[a].push(r)):t[o].push(r),t)},{}),_r=(n=0)=>{let e=n;return function(){return e++}},ye=H.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,ye);const br=(n,e)=>{const o=n.get(ye),{values:t,unitId:r,subUnitId:a}=e,i=[],c=[],u=o.getModel(r,a)||void 0;Object.keys(t).forEach(d=>{t[d].ranges.forEach(g=>{s.Range.foreach(g,(h,v)=>{const S=o.getValue(r,a,h,v,u);S?i.push({pattern:S.pattern,type:S.type,row:h,col:v}):c.push({startColumn:v,endColumn:v,startRow:h,endRow:h})})})});const m=[];if(i.length){const d=nt(r,a,i);Object.keys(d.values).forEach(l=>{const g=d.values[l];g.ranges=Ft(g.ranges)}),m.push({id:gt.id,params:nt(r,a,i)})}return c.length&&m.push({id:Ht.id,params:{unitId:r,subUnitId:a,ranges:c}}),m},gt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:o,refMap:t}=e,r=n.get(ye),a=e.unitId,i=e.subUnitId,c=Object.keys(o).reduce((u,m)=>{const d=t[m],l=o[m].ranges;return d&&u.push({...d,ranges:l}),u},[]);return r.setValues(a,i,c),!0}},Ht={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:o,subUnitId:t,ranges:r}=e;return n.get(ye).deleteValues(o,t,r),!0}},Tr=(n,e)=>{const o=n.get(ye),{ranges:t,unitId:r,subUnitId:a}=e,i=[],c=o.getModel(r,a)||void 0;if(t.forEach(m=>{s.Range.foreach(m,(d,l)=>{const g=o.getValue(r,a,d,l,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:l})})}),!i.length)return[];const u=nt(r,a,i);return Object.keys(u.values).forEach(m=>{const d=u.values[m];d.ranges=Ft(d.ranges)}),[{id:gt.id,params:u}]},nt=(n,e,o)=>{const t=Ur(o,"pattern"),r={},a={},i=_r();return Object.keys(t).forEach(c=>{const u=t[c],m=u[0],d=i();r[d]={pattern:c,type:m.type},u.forEach(l=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(Er(l.row,l.col))})}),{unitId:n,subUnitId:e,refMap:r,values:a}},Er=(n,e)=>({startRow:n,endRow:n,startColumn:e,endColumn:e}),ro={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},so="maxCellsPerSheet",Dr=3e6;var Or=Object.defineProperty,Ar=Object.getOwnPropertyDescriptor,Nr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Ar(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Or(e,o,r),r},tn=(n,e)=>(o,t)=>e(o,t,n);let Ze=class extends s.Disposable{constructor(n,e){super(),this._commandService=n,this._configService=e,[L,rt,Rt,st,mn,at,ct,kt,Qn,Mn,pn,Ne,Re,ut,dt,fn,In,Ae,fe,wn,Ce,Tt,We,it,Be,bt,Ve,mt,Me,lt,pe,Et,je,Tn,B,Hn,jn,Fn,En,An,Pe,Dn,On,Pn,Te,Ee,xt,ar,xn,he,Gn,Ie,$,eo,Bn,Oe,De,Nn,Ln,Dt,At,Y,Yn,xe,Wn,qn,zn,$n,Nt,He,ce,Jn,ve,Lt,tt,Xn,Le,Vt,ue,Wt,oe,to,gt,G,Ht,ro].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(so,Dr)}};Ze=Nr([s.OnLifecycle(s.LifecycleStages.Starting,Ze),tn(0,s.ICommandService),tn(1,s.IConfigService)],Ze);var Pr=Object.defineProperty,kr=Object.getOwnPropertyDescriptor,xr=(n,e,o,t)=>{for(var r=t>1?void 0:t?kr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Pr(e,o,r),r},Lr=(n,e)=>(o,t)=>e(o,t,n);let Qe=class extends s.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ft.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:o,unitOtherData:t}=e,r=Object.keys(o),a=[];return r.forEach(c=>{const u=o[c];if(u==null)return!0;Object.keys(u).forEach(d=>{const l=u[d];if(l==null)return!0;const g={subUnitId:d,unitId:c,cellValue:l};a.push({id:$.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};Qe=xr([s.OnLifecycle(s.LifecycleStages.Ready,Qe),Lr(0,s.ICommandService)],Qe);var Br=Object.defineProperty,Vr=Object.getOwnPropertyDescriptor,Wr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Vr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Br(e,o,r),r},Ye=(n,e)=>(o,t)=>e(o,t,n);let et=class extends s.Disposable{constructor(n,e,o,t){super(),this._commandService=n,this._featureCalculationManagerService=e,this._currentUniverService=o,this._formulaDataModel=t}_initialize(){const n="test",e="workbook-01",o="sheet-0011",t={[e]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:e,subUnitId:o,dependencyRanges:[{unitId:e,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:t,dirtyRanges:r})})}};et=Wr([s.OnLifecycle(s.LifecycleStages.Ready,et),Ye(0,s.ICommandService),Ye(1,ft.IFeatureCalculationManagerService),Ye(2,s.IUniverInstanceService),Ye(3,H.Inject(ft.FormulaDataModel))],et);const W={MoveRangeCommandId:gn,InsertRowCommandId:Cn,InsertColCommandId:Rn,RemoveColCommandId:bn,RemoveRowCommandId:_n,DeleteRangeMoveLeftCommandId:hn,DeleteRangeMoveUpCommandId:vn,InsertRangeMoveDownCommandId:Zo,InsertRangeMoveRightCommandId:Sn,MoveColsCommandId:Un,MoveRowsCommandId:yn};var F=(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))(F||{}),jr=Object.defineProperty,Fr=Object.getOwnPropertyDescriptor,Hr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Fr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&jr(e,o,r),r},vt=(n,e)=>(o,t)=>e(o,t,n);const $r=s.createInterceptorKey("MERGE_REDO"),Gr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(o,t,r){super();x(this,"interceptor",new s.InterceptorManager({MERGE_REDO:$r,MERGE_UNDO:Gr}));x(this,"_refRangeManagerMap",new Map);x(this,"_serializer",zr());x(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const t=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=nn(this._univerInstanceService),a=on(this._univerInstanceService),u=((()=>{switch(o.id){case W.MoveColsCommandId:{const l=o.params,g=Math.min(l.fromRange.startColumn,l.toRange.startColumn);return this._checkRange([{...l.fromRange,startColumn:g,endColumn:t.getColumnCount()-1}],r,a)}case W.MoveRowsCommandId:{const l=o.params,g=Math.min(l.fromRange.startRow,l.toRange.startRow);return this._checkRange([{...l.fromRange,startRow:g,endRow:t.getRowCount()-1}],r,a)}case W.MoveRangeCommandId:{const l=o;return this._checkRange([l.params.fromRange,l.params.toRange],r,a)}case W.InsertRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.InsertColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.RemoveRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.RemoveColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.DeleteRangeMoveUpCommandId:case W.InsertRangeMoveDownCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([h],r,a)}case W.DeleteRangeMoveLeftCommandId:case W.InsertRangeMoveRightCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([h],r,a)}}})()||[]).reduce((l,g)=>{const h=g(o);return l.push(h),l},[]).reduce((l,g)=>(l.redos.push(...g.redos),l.undos.push(...g.undos),l),{redos:[],undos:[]}),m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:m,undos:d}}})});x(this,"_checkRange",(o,t,r)=>{const a=sn(t,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(m=>{const d=i.get(m),l=this._serializer.deserialize(m);o.some(g=>s.Rectangle.intersects(g,l))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});x(this,"registerRefRange",(o,t,r,a)=>{const i=r||nn(this._univerInstanceService),c=a||on(this._univerInstanceService),u=sn(i,c),m=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const l=d.get(m);return l?l.add(t):d.set(m,new Set([t])),s.toDisposable(()=>{const g=d.get(m);g&&(g.delete(t),g.size||(d.delete(m),d.size||this._refRangeManagerMap.delete(u)))})});this._sheetInterceptorService=o,this._univerInstanceService=t,this._selectionManagerService=r,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}};exports.RefRangeService=Hr([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),vt(0,H.Inject(exports.SheetInterceptorService)),vt(1,H.Inject(s.IUniverInstanceService)),vt(2,H.Inject(exports.SelectionManagerService))],exports.RefRangeService);function nn(n){return n.getCurrentUniverSheetInstance().getUnitId()}function on(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function rn(n){return n.getSelectionRanges()||[]}function sn(n,e){return`${n}_${e}`}function zr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const t=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(e).reduce((a,i,c)=>{const u=String(c);return i&&t[u]&&(a[t[u]]=i),a},{})},serialize:o=>n.reduce((t,r,a)=>{const i=o[r];return i!==void 0?`${t}${a>0?e:""}${i}`:`${t}`},"")}}const Ke=Number.MAX_SAFE_INTEGER,ae=n=>{const e={...n};return e.rangeType===s.RANGE_TYPE.COLUMN&&(e.startRow=0,e.endRow=Ke),e.rangeType===s.RANGE_TYPE.ROW&&(e.startColumn=0,e.endColumn=Ke),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=Ke,e.startRow=0,e.endRow=Ke),e},de=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),$t=(n,e,o)=>{const t={...o},r={...e},a=(S,C)=>{const I=Math.max(S.start,C.start),f=Math.min(S.end,C.end);return f<I?null:{start:I,end:f}},i=S=>S.end-S.start+1,c=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),u=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),m=e.start>n.start;if(m){const S=Math.min(n.end,e.start)-n.start+1;r.start-=S,r.end-=S}const d=i(n),l=d,g=a(n,t),h=g&&i(g)>=i(t);if(n.end<t.start)t.start-=d,t.end-=d;else if(g){const S=i(g);if(h){const C=c(t,n),I=u(C,r);t.start=I.start,t.end=I.end}else g.start>n.start||m?t.end-=S:(t.start-=d,t.end-=d+S)}const v=a(r,t);if(r.start<=t.start&&!h)t.start+=l,t.end+=l;else if(v){const S=r.start;if(i(v)<=i(t))return{step:t.start-o.start,length:0};S<t.start?(t.start+=l,t.end+=l):S>=t.start&&S<=t.end&&(t.end+=l,t.start+=l)}return{step:t.start-o.start,length:i(t)-i(o)}},Gt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:F.Delete}]:[{type:F.VerticalMove,step:c.step||0,length:c.length||0}]},zt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:F.Delete}]:[{type:F.HorizontalMove,step:c.step||0,length:c.length||0}]},io=(n,e)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,t=(i=n.params)==null?void 0:i.fromRange;if(!o||!t)return[];const r=[];if(s.Rectangle.contains(o,e)&&r.push({type:F.Delete}),s.Rectangle.contains(t,e)){r.push({type:F.Delete});const c=s.Rectangle.getRelativeRange(e,t),u=s.Rectangle.getPositionRange(c,o);return[{type:F.Set,range:u}]}return r},$e=(n,e)=>{const o=ae(n),t=ae(e),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(t,o);if(i)return{step:0,length:-r(i)}}if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn&&a(o)>=a(t))return null;if(t.startColumn>=o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(t,o);if(i){const c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(t.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},ao=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.HorizontalMove,step:i,length:c})}return t},co=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.VerticalMove,step:i,length:c})}return t},Ge=(n,e)=>{const o=ae(n),t=ae(e),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn)return{step:0,length:r(o)};if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn>o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn||t.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}},uo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:F.VerticalMove,step:a,length:i}),t},lo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:F.HorizontalMove,step:a,length:i}),t},mo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:F.VerticalMove,step:a,length:i}),t},go=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:F.HorizontalMove,step:a,length:i}),t},ho=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.HorizontalMove,step:i,length:c})}return t},vo=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.VerticalMove,step:i,length:c})}return t},ot=(n,e)=>{let o={...e};return n.forEach(t=>{switch(t.type){case F.Delete:{o=null;break}case F.HorizontalMove:{if(!o)return;o.startColumn+=t.step,o.endColumn+=t.step+(t.length||0);break}case F.VerticalMove:{if(!o)return;o.startRow+=t.step,o.endRow+=t.step+(t.length||0);break}case F.Set:{o=t.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},qr=(n,e)=>{let o=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:{o=ho(e,n);break}case W.DeleteRangeMoveUpCommandId:{o=vo(e,n);break}case W.InsertColCommandId:{o=lo(e,n);break}case W.InsertRangeMoveDownCommandId:{o=mo(e,n);break}case W.InsertRangeMoveRightCommandId:{o=go(e,n);break}case W.InsertRowCommandId:{o=uo(e,n);break}case W.MoveColsCommandId:{o=zt(e,n);break}case W.MoveRangeCommandId:{o=io(e,n);break}case W.MoveRowsCommandId:{o=Gt(e,n);break}case W.RemoveColCommandId:{o=ao(e,n);break}case W.RemoveRowCommandId:{o=co(e,n);break}}return ot(o,n)};var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Jr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Kr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Yr(e,o,r),r},Ue=(n,e)=>(o,t)=>e(o,t,n);function So(n,e){let o=n;if(e!==void 0){const t=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(e===s.Dimension.ROWS)for(let m=a;m<=i;m++){const d={startRow:m,endRow:m,startColumn:c,endColumn:u};t.push(d)}else if(e===s.Dimension.COLUMNS)for(let m=c;m<=u;m++){const d={startRow:a,endRow:i,startColumn:m,endColumn:m};t.push(d)}}o=t}return o}exports.MergeCellController=class extends s.Disposable{constructor(e,o,t,r,a,i){super(),this._commandService=e,this._refRangeService=o,this._univerInstanceService=t,this._injector=r,this._sheetInterceptorService=a,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const e=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case rt.id:case st.id:{const t=e._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getUnitId(),a=t.getActiveSheet(),i=a.getSheetId(),c=a.getConfig().mergeData,u=e._selectionManagerService.getSelectionRanges();if(u&&u.length>0&&u.some(d=>c.some(l=>s.Rectangle.intersects(l,d)))){const d={unitId:r,subUnitId:i,ranges:u},l=Q(e._injector,d),g=[{id:B.id,params:d}],h=[{id:L.id,params:l}];return{redos:g,undos:h}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const e=new s.DisposableCollection,o=(a,i)=>{const c=this._univerInstanceService.getUniverSheetInstance(a);if(!c)return;const u=c==null?void 0:c.getSheetBySheetId(i);if(!u)return;e.dispose();const m=u.getMergeData(),d=l=>{switch(l.id){case it.id:{const g=l.params;return this._handleMoveRangeCommand(g,a,i)}case Ae.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertRowCommand(g,h,v)}case Ne.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertColCommand(g,h,v)}case mt.id:{const g=l.params;return this._handleRemoveColCommand(g,a,i)}case lt.id:{const g=l.params;return this._handleRemoveRowCommand(g,a,i)}case dt.id:{const g=l.params;return this._handleInsertRangeMoveRightCommand(g,a,i)}case ut.id:{const g=l.params;return this._handleInsertRangeMoveDownCommand(g,a,i)}case ct.id:{const g=l.params;return this._handleDeleteRangeMoveUpCommand(g,a,i)}case at.id:{const g=l.params;return this._handleDeleteRangeMoveLeftCommand(g,a,i)}case W.MoveColsCommandId:{const g=l.params;return this._handleMoveColsCommand(g,a,i)}case W.MoveRowsCommandId:{const g=l.params;return this._handleMoveRowsCommand(g,a,i)}}return{redos:[],undos:[]}};m.forEach(l=>{e.add(this._refRangeService.registerRefRange(l,d,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===Nt.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(u,c)}if(a.id===L.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getActiveSheet();o(t.getUnitId(),r.getSheetId())}_handleMoveRowsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=Gt({id:W.MoveRowsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:m}]}}_handleMoveColsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=zt({id:W.MoveColsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:m}]}}_handleMoveRangeCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=a.getMergeData(),c=i.filter(h=>s.Rectangle.intersects(h,e.fromRange)),u=i.filter(h=>s.Rectangle.intersects(h,e.toRange)),m=c.map(h=>s.Rectangle.getRelativeRange(h,e.fromRange)).map(h=>s.Rectangle.getPositionRange(h,e.toRange)),d=So(m).filter(h=>!i.some(v=>s.Rectangle.equals(h,v))),l=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:B.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:d}}],g=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:d}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:c}}];return{redos:l,undos:g}}_handleInsertRowCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,{startRow:c,endRow:u}=i,m=s.Tools.deepClone(a.getMergeData()),d=s.Tools.deepClone(a.getMergeData()).map(I=>{const f=u-c+1;return c>I.endRow?I:c<=I.startRow?s.Rectangle.moveVertical(I,f):(I.endRow+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleInsertColCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const{startColumn:c,endColumn:u}=r,m=s.Tools.deepClone(i.getMergeData()),d=s.Tools.deepClone(i.getMergeData()).map(I=>{const f=u-c+1;return c>I.endColumn?I:c<=I.startColumn?s.Rectangle.moveHorizontal(I,f):(I.endColumn+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleRemoveColCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,c=s.Tools.deepClone(a.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startColumn:C,endColumn:I}=S,f=I-C+1,{startColumn:R,endColumn:p}=i,y=p-R+1;if(p<S.startColumn)S.startColumn-=y,S.endColumn-=y;else{if(R>S.endColumn)continue;if(R<=S.startColumn&&p>=S.endColumn)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(i,S),T=w.endColumn-w.startColumn+1,_=w.endRow-w.startRow===0;T===f-1&&_?(c.splice(v,1),v--):S.endColumn-=w.endColumn-w.startColumn+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(a.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];return{redos:g,undos:h}}_handleRemoveRowCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const c=s.Tools.deepClone(i.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startRow:C,endRow:I}=S,f=I-C+1,{startRow:R,endRow:p}=r,y=p-R+1;if(p<C)S.startRow-=y,S.endRow-=y;else{if(R>I)continue;if(R<=C&&p>=I)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(r,S),T=w.endRow-w.startRow+1,_=w.endColumn-w.startColumn===0;T===f-1&&_?(c.splice(v,1),v--):S.endRow-=w.endRow-w.startRow+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(i.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];return{redos:g,undos:h}}_handleInsertRangeMoveRightCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:R}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=R-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn+w,endRow:S.endRow,endColumn:S.endColumn+w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleInsertRangeMoveDownCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:R,endColumn:p,endRow:y}=i;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:c,endColumn:p},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:R,endRow:c,endColumn:p},I))){const _=y-f+1;d.push({startRow:I.startRow+_,startColumn:I.startColumn,endRow:I.endRow+_,endColumn:I.endColumn})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveUpCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:R,endColumn:p,endRow:y}=i;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:c,endColumn:p},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:R,endRow:c,endColumn:p},I))){const _=y-f+1,b=s.Rectangle.moveVertical(I,-_);d.push(b)}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveLeftCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:R}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=R-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn-w,endRow:S.endRow,endColumn:S.endColumn-w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleNull(){return{redos:[],undos:[]}}};exports.MergeCellController=Jr([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Ue(0,H.Inject(s.ICommandService)),Ue(1,H.Inject(exports.RefRangeService)),Ue(2,H.Inject(s.IUniverInstanceService)),Ue(3,H.Inject(H.Injector)),Ue(4,H.Inject(exports.SheetInterceptorService)),Ue(5,H.Inject(exports.SelectionManagerService))],exports.MergeCellController);function re(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance()}function se(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}const Xr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},Co={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Zr=Object.defineProperty,Qr=Object.getOwnPropertyDescriptor,es=(n,e,o,t)=>{for(var r=t>1?void 0:t?Qr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Zr(e,o,r),r},Je=(n,e)=>(o,t)=>e(o,t,n);const an="SHEET_NUMFMT_PLUGIN";exports.NumfmtService=class extends s.Disposable{constructor(o,t,r,a){super();x(this,"_numfmtModel",new Map);x(this,"_refAliasModel",new Map);x(this,"_modelReplace$",new _e.Subject);x(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=t,this._univerInstanceService=r,this._logService=a,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,an,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,c)=>{const{model:u,refModel:m}=c;if(u){const d=Object.keys(u).reduce((l,g)=>(l.set(g,new s.ObjectMatrix(u[g])),l),new Map);this._numfmtModel.set(i,d)}m&&this._refAliasModel.set(i,new s.RefAlias(m,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,an)})));const t=this._univerInstanceService.getCurrentUniverSheetInstance();o(t)}_toJson(o){const t=this._numfmtModel.get(o),r=this._refAliasModel.get(o);if(!t||!r)return"";const a=[...t.keys()].reduce((u,m)=>{const d=t.get(m);return u[m]=d.toJSON(),u},{}),i=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,t,r,a,i){let c=this.getModel(o,t);if(!c){const u=this._numfmtModel.get(o)||new Map,m=u.get(t)||new s.ObjectMatrix;u.set(t,m),this._numfmtModel.set(o,u),c=m}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.getSizeOf()){const m=this._numfmtModel.get(o);m==null||m.delete(t)}}_getUniqueRefId(o){const t=this._refAliasModel.get(o);if(!t)return"0";const r=t.getKeyMap("i");return`${Math.max(...r.map(i=>Number(i||0)),0)+1}`}getValue(o,t,r,a,i){const c=i||this.getModel(o,t);if(!c)return null;const u=this._refAliasModel.get(o),m=c.getValue(r,a);if(m&&u){const d=u.getValue(m==null?void 0:m.i);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,t,r){let a=this._refAliasModel.get(o);const i=this.getModel(o,t);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),r.forEach(c=>{s.Range.foreach(c,(u,m)=>{const d=this.getValue(o,t,u,m,i);if(d&&d.pattern){const l=a.getValue(d.pattern);l&&l.count--}this._setValue(o,t,u,m,null)})})}setValues(o,t,r){const a=this.getModel(o,t);let i=this._refAliasModel.get(o);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),r.forEach(c=>{let u=i.getValue(c.pattern);u||(u={count:0,i:this._getUniqueRefId(o),pattern:c.pattern,type:r[0].type},i.addValue(u)),c.ranges.forEach(m=>{s.Range.foreach(m,(d,l)=>{if(a){const g=this.getValue(o,t,d,l,a);if(g&&g.pattern){const h=i.getValue(g.pattern);h&&h.count--}}this._setValue(o,t,d,l,{i:u.i}),u.count++})})})}getModel(o,t){const r=this._numfmtModel.get(o);return r==null?void 0:r.get(t)}getRefModel(o){return this._refAliasModel.get(o)}};exports.NumfmtService=es([s.OnLifecycle(s.LifecycleStages.Starting,exports.NumfmtService),Je(0,H.Inject(s.ICommandService)),Je(1,H.Inject(s.IResourceManagerService)),Je(2,H.Inject(s.IUniverInstanceService)),Je(3,H.Inject(s.ILogService))],exports.NumfmtService);const cn="univer.sheet.editable";class Se extends s.PermissionPoint{constructor(o,t){super();x(this,"id",cn);x(this,"value",!0);x(this,"unitID");this._unitId=o,this._subUnitId=t,this.unitID=o,this.id=`${cn}_${o}_${t}`}}var ts=Object.defineProperty,ns=Object.getOwnPropertyDescriptor,os=(n,e,o,t)=>{for(var r=t>1?void 0:t?ns(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&ts(e,o,r),r},St=(n,e)=>(o,t)=>e(o,t,n);exports.SheetPermissionService=class extends s.Disposable{constructor(e,o,t){super(),this._permissionService=e,this._univerInstanceService=o,this._sheetInterceptorService=t,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),o=e.getUnitId();e.getSheets().forEach(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.deletePermissionPoint(e.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(be.PERMISSION,{priority:99,handler:(e,o,t)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=r==null?void 0:r.getActiveSheet(),i=r==null?void 0:r.getUnitId(),c=a==null?void 0:a.getSheetId();if(!i||!c)return!1;switch(o.id){case Ie.id:return this.getSheetEditable(i,c)}return t()}}))}getEditable$(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(Mo.map(([u,m])=>{const d=u.value&&m.value,l=s.getTypeFromPermissionItemList([u,m]);return{value:d,status:l}}))}getSheetEditable(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(e,o,t){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=o||r.getUnitId(),i=r.getActiveSheet(),c=t||i.getSheetId(),u=new Se(a,c);this._permissionService.updatePermissionPoint(a,u.id,e)}};exports.SheetPermissionService=os([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),St(0,H.Inject(s.IPermissionService)),St(1,H.Inject(s.IUniverInstanceService)),St(2,H.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function rs(n){const e=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),t=e.getCurrentUniverSheetInstance().getUnitId(),r=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new _e.Observable(a=>{var c;const i=(c=o.getEditable$(t,r))==null?void 0:c.subscribe(u=>{a.next(!u.value)});return()=>{i==null||i.unsubscribe()}})}var ss=Object.defineProperty,is=Object.getOwnPropertyDescriptor,as=(n,e,o,t)=>{for(var r=t>1?void 0:t?is(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&ss(e,o,r),r},Ct=(n,e)=>(o,t)=>e(o,t,n);const cs="sheet";var It;exports.UniverSheetsPlugin=(It=class extends s.Plugin{constructor(e,o,t,r){super(cs),this._config=e,this._commandService=o,this._localeService=t,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:Co})}_initializeDependencies(e){var t;const o=[[we],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[ye,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[Ze],[exports.MergeCellController]];(t=this._config)!=null&&t.notExecuteFormula||o.push([Qe],[et]),o.forEach(r=>{e.add(r)})}},x(It,"type",s.PluginType.Sheet),It);exports.UniverSheetsPlugin=as([Ct(1,s.ICommandService),Ct(2,H.Inject(s.LocaleService)),Ct(3,H.Inject(H.Injector))],exports.UniverSheetsPlugin);const us=[ue.id,oe.id,Vt.id,ce.id,He.id,Ve.id,We.id,Te.id,Ee.id,Oe.id,De.id,Re.id,fe.id,Me.id,pe.id],ds=[$.id,Be.id,B.id,L.id],ls=1.5,ms="rgba(255,255,255, 0.01)";function gs(n){const e=n.getCurrentTheme(),o=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1.5,stroke:e.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function hs(n){const{rangeWithCoord:e,primaryWithCoord:o,style:t}=n,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return o!=null&&(r.primary=Io(o)),r}function Io(n){const{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function vs(n,e,o){const t=wo.getCellInfoInMergeData(n,e,o),r=s.makeCellRangeToRangeData(t);if(r)return{range:r,primary:t,style:null}}const Ss=(n,e,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=e;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:l,actualRow:g}=d;let{startRow:h,startColumn:v,endRow:S,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const p=o.find(y=>y.startColumn===l&&y.endColumn===l&&g===y.startRow);p&&(C=p.endColumn,h=p.startRow,S=p.endRow)}else if(a===s.Dimension.ROWS){const p=o.find(y=>y.startRow===g&&y.endRow===g&&l===y.startColumn);p&&(S=p.endRow,v=p.startColumn,C=p.endColumn)}const I={startRow:h,startColumn:v,endRow:S,endColumn:C,actualRow:g,actualColumn:l,isMerged:!0,isMergedMainCell:h===g&&v===l},f=r.map((p,y,w)=>({range:p.range,style:null,primary:y===w.length-1?I:null})),R={unitId:c,subUnitId:u,pluginName:q,selections:f};return{id:G.id,params:R}}return null}return null},Cs=(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=e;if(t&&t[(t==null?void 0:t.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:q,selections:[...t]};return{id:G.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Ss;exports.AddMergeUndoMutationFactory=ie;exports.AddMergeUndoSelectionsOperationFactory=Cs;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=we;exports.COMMAND_LISTENER_SKELETON_CHANGE=us;exports.COMMAND_LISTENER_VALUE_CHANGE=ds;exports.ClearSelectionAllCommand=rt;exports.ClearSelectionContentCommand=Rt;exports.ClearSelectionFormatCommand=st;exports.CopySheetCommand=mn;exports.DeleteRangeMoveLeftCommand=at;exports.DeleteRangeMoveUpCommand=ct;exports.DeltaColumnWidthCommand=kt;exports.DeltaRowHeightCommand=Qn;exports.EffectRefRangId=W;exports.EmptyMutation=ro;exports.INTERCEPTOR_POINT=be;exports.INumfmtService=ye;exports.InsertColAfterCommand=Mn;exports.InsertColBeforeCommand=pn;exports.InsertColCommand=Ne;exports.InsertColMutation=Re;exports.InsertColMutationUndoFactory=_t;exports.InsertRangeMoveDownCommand=ut;exports.InsertRangeMoveRightCommand=dt;exports.InsertRowAfterCommand=fn;exports.InsertRowBeforeCommand=In;exports.InsertRowCommand=Ae;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=Ut;exports.InsertSheetCommand=wn;exports.InsertSheetMutation=Ce;exports.InsertSheetUndoMutationFactory=pt;exports.MAX_CELL_PER_SHEET_KEY=so;exports.MoveColsCommand=Tt;exports.MoveColsMutation=We;exports.MoveRangeCommand=it;exports.MoveRangeMutation=Be;exports.MoveRowsCommand=bt;exports.MoveRowsMutation=Ve;exports.NORMAL_SELECTION_PLUGIN_NAME=q;exports.OperatorType=F;exports.RangeMergeUtil=yr;exports.RemoveColCommand=mt;exports.RemoveColMutation=Me;exports.RemoveMergeUndoMutationFactory=Q;exports.RemoveNumfmtMutation=Ht;exports.RemoveRowCommand=lt;exports.RemoveRowMutation=pe;exports.RemoveSheetCommand=Et;exports.RemoveSheetMutation=je;exports.RemoveSheetUndoMutationFactory=ln;exports.RemoveWorksheetMergeCommand=Tn;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=Hn;exports.ResetTextColorCommand=jn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=ms;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=ls;exports.SelectionMoveType=un;exports.SetBackgroundColorCommand=Fn;exports.SetBoldCommand=lr;exports.SetBorderBasicCommand=En;exports.SetBorderColorCommand=An;exports.SetBorderCommand=Pe;exports.SetBorderPositionCommand=Dn;exports.SetBorderStyleCommand=On;exports.SetColHiddenCommand=Pn;exports.SetColHiddenMutation=Te;exports.SetColVisibleMutation=Ee;exports.SetColWidthCommand=xt;exports.SetFontFamilyCommand=vr;exports.SetFontSizeCommand=Sr;exports.SetFrozenCommand=xn;exports.SetFrozenMutation=he;exports.SetFrozenMutationFactory=Ot;exports.SetHorizontalTextAlignCommand=Gn;exports.SetItalicCommand=mr;exports.SetNumfmtMutation=gt;exports.SetRangeValuesCommand=Ie;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=le;exports.SetRowHeightCommand=eo;exports.SetRowHiddenCommand=Bn;exports.SetRowHiddenMutation=Oe;exports.SetRowVisibleMutation=De;exports.SetSelectedColsVisibleCommand=Nn;exports.SetSelectedRowsVisibleCommand=Ln;exports.SetSelectionsOperation=G;exports.SetSpecificColsVisibleCommand=Dt;exports.SetSpecificRowsVisibleCommand=At;exports.SetStrikeThroughCommand=hr;exports.SetStyleCommand=Y;exports.SetTabColorCommand=Yn;exports.SetTabColorMutation=xe;exports.SetTextColorCommand=Wn;exports.SetTextRotationCommand=qn;exports.SetTextWrapCommand=zn;exports.SetUnderlineCommand=gr;exports.SetVerticalTextAlignCommand=$n;exports.SetWorksheetActivateCommand=Nt;exports.SetWorksheetActiveOperation=He;exports.SetWorksheetColWidthMutation=ce;exports.SetWorksheetColWidthMutationFactory=Pt;exports.SetWorksheetHideCommand=Jn;exports.SetWorksheetHideMutation=ve;exports.SetWorksheetNameCommand=Lt;exports.SetWorksheetNameMutation=tt;exports.SetWorksheetOrderCommand=Xn;exports.SetWorksheetOrderMutation=Le;exports.SetWorksheetRowAutoHeightMutation=Vt;exports.SetWorksheetRowAutoHeightMutationFactory=Mr;exports.SetWorksheetRowHeightMutation=ue;exports.SetWorksheetRowIsAutoHeightCommand=Wt;exports.SetWorksheetRowIsAutoHeightMutation=oe;exports.SetWorksheetShowCommand=to;exports.SheetEditablePermission=Se;exports.alignToMergedCellsBorders=Fe;exports.convertPrimaryWithCoordToPrimary=Io;exports.convertSelectionDataToRange=hs;exports.createTopMatrixFromMatrix=oo;exports.createTopMatrixFromRanges=no;exports.enUS=Xr;exports.factoryRemoveNumfmtUndoMutation=Tr;exports.factorySetNumfmtUndoMutation=br;exports.findAllRectangle=jt;exports.followSelectionOperation=me;exports.getAddMergeMutationRangeByType=So;exports.getCellAtRowCol=zo;exports.getCurrentSheetDisabled$=rs;exports.getInsertRangeMutations=wt;exports.getNormalSelectionStyle=gs;exports.getPrimaryForRange=X;exports.getRemoveRangeMutations=yt;exports.handleBaseInsertRange=Ge;exports.handleBaseMoveRowsCols=$t;exports.handleBaseRemoveRange=$e;exports.handleDefaultRangeChangeWithEffectRefCommands=qr;exports.handleDeleteRangeMoveLeft=ho;exports.handleDeleteRangeMoveUp=vo;exports.handleDeleteRangeMutation=Yo;exports.handleIRemoveCol=ao;exports.handleIRemoveRow=co;exports.handleInsertCol=lo;exports.handleInsertRangeMoveDown=mo;exports.handleInsertRangeMoveRight=go;exports.handleInsertRangeMutation=qo;exports.handleInsertRow=uo;exports.handleMoveCols=zt;exports.handleMoveRange=io;exports.handleMoveRows=Gt;exports.rangeMerge=Ft;exports.rotateRange=de;exports.runRefRangeMutations=ot;exports.transformCellDataToSelectionData=vs;exports.transformCellsToRange=nt;exports.zhCN=Co;
1
+ "use strict";var Ro=Object.defineProperty;var po=(n,e,o)=>e in n?Ro(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var x=(n,e,o)=>(po(n,typeof e!="symbol"?e+"":e,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),H=require("@wendellhu/redi"),_e=require("rxjs"),ft=require("@univerjs/engine-formula"),Mo=require("rxjs/operators"),wo=require("@univerjs/engine-render");var yo=Object.defineProperty,Uo=Object.getOwnPropertyDescriptor,_o=(n,e,o,t)=>{for(var r=t>1?void 0:t?Uo(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&yo(e,o,r),r},bo=(n,e)=>(o,t)=>e(o,t,n);const z="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||{});exports.SelectionManagerService=class{constructor(e){x(this,"_selectionInfo",new Map);x(this,"_currentSelection",null);x(this,"_selectionMoveStart$",new _e.Subject);x(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());x(this,"_selectionMoving$",new _e.Subject);x(this,"selectionMoving$",this._selectionMoving$.asObservable());x(this,"_selectionMoveEnd$",new _e.BehaviorSubject(null));x(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());x(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId})}reset(){var e,o;this._currentSelection!=null&&(this._currentSelection={pluginName:z,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=z,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,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 e=this.getSelections();return e==null?!1:e.some(({range:o},t)=>e.some(({range:r},a)=>t===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(e){var a,i;if(e==null)return;const{pluginName:o,unitId:t,sheetId:r}=e;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(t))==null?void 0:i.get(r)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[0]}_getLastByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[o.length-1]}_addByParam(e,o=!0){const{pluginName:t,unitId:r,sheetId:a,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const c=this._selectionInfo.get(t);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let m=u.get(a);m==null&&(m=[],u.set(a,m)),m.push(...i)}o&&this._refresh({pluginName:t,unitId:r,sheetId:a})}_replaceByParam(e){const{pluginName:o,unitId:t,sheetId:r,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(t)||i.set(t,new Map);const c=i.get(t);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(e){const o=this._getSelectionDatas(e);o==null||o.splice(0),this._refresh(e)}_removeByParam(e,o){const t=this._getSelectionDatas(o);t==null||t.splice(e,1),this._refresh(o)}};exports.SelectionManagerService=_o([bo(0,H.Inject(s.ThemeService))],exports.SelectionManagerService);const To=s.createInterceptorKey("CELL_CONTENT"),Eo=s.createInterceptorKey("PERMISSION"),be={CELL_CONTENT:To,PERMISSION:Eo};var Do=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,No=(n,e,o,t)=>{for(var r=t>1?void 0:t?Oo(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Do(e,o,r),r},Ao=(n,e)=>(o,t)=>e(o,t,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();x(this,"_interceptorsByName",new Map);x(this,"_commandInterceptors",[]);x(this,"_workbookDisposables",new Map);x(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(t=>{this._interceptWorkbook(t)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(t=>this._disposeWorkbookInterceptor(t)))),this.intercept(be.CELL_CONTENT,{priority:-1,handler(t,r){const a=r.worksheet.getCellRaw(r.row,r.col);return t?{...a,...t}:a}}),this.intercept(be.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((t,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=t.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const t=this._commandInterceptors.map(r=>r.getMutations(o));return{undos:t.map(r=>r.undos).flat(),redos:t.map(r=>r.redos).flat()}}intercept(o,t){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(t),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,m;return((u=c.priority)!=null?u:0)-((m=i.priority)!=null?m:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),t)))}fetchThroughInterceptors(o){const t=o,r=this._interceptorsByName.get(t);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const t=new s.DisposableCollection,r=o.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(m=>{const d=new s.DisposableCollection,l=m.registerCellContentInterceptor({getCell(g,h){return a.fetchThroughInterceptors(be.CELL_CONTENT)(c.getCellRaw(g,h),{unitId:r,subUnitId:u,row:g,col:h,worksheet:c,workbook:o})}});d.add(l),a._worksheetDisposables.set(Qt(r,c),d)})};o.getSheets().forEach(c=>i(c)),t.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),t.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),t.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(o){const t=o.getUnitId(),r=this._workbookDisposables.get(t);r&&(r.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(o,t){const r=Qt(o,t),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=No([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Ao(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Qt(n,e){return`${n}|${e.getSheetId()}`}const le=(n,e)=>{const{unitId:o,subUnitId:t,cellValue:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),m=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,h,v)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,h))||{},C=m.getStyleByCell(S),I=xo(C,v&&v.s?v.s:null);S.s=I,d.setValue(g,h,Po(S))}),{...e,options:{},cellValue:d.getMatrix()}};function Po(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n)}const $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:o,subUnitId:t,unitId:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(t);if(!c)return!1;const u=c.getCellMatrix(),m=i.getStyles();return new s.ObjectMatrix(o).forValue((l,g,h)=>{if(!h)u==null||u.setValue(l,g,{});else{const v=u.getValue(l,g)||{},S=h.t===s.CellValueType.FORCE_STRING?h.t:ko(h.v===void 0?v.v:h.v);if(h.f!==void 0&&(v.f=h.f),h.si!==void 0&&(v.si=h.si),h.p!==void 0&&(v.p=h.p),h.v!==void 0&&(v.v=S===s.CellValueType.NUMBER?Number(h.v):S===s.CellValueType.BOOLEAN?h.v.toString().toUpperCase()==="TRUE"?1:0:h.v),v.v!==void 0&&(v.t=S),h.s!==void 0){const C=m.getStyleByCell(v);C==null&&delete v.s,typeof h.s=="string"&&(h.s=m.get(h.s));const I=Xe(C,h.s?h.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=m.setValue(I),!h.p&&v.p&&Vo(v.p,h.s?h.s:null)}u.setValue(l,g,s.Tools.removeNull(v))}}),!0}};function ko(n){return n===null?null:typeof n=="string"?jo(n)?s.CellValueType.NUMBER:Fo(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function xo(n,e){return Lo(n,e)}function Lo(n,e){if(!e||!Object.keys(e).length)return n;const o=n||{};for(const t in e)t==="bd"?o[t]=Bo(o[t]||{},e[t]):t in o||(o[t]=null);return o}function Bo(n,e){if(!e||!Object.keys(e).length)return n;for(const o in e)o in n||(n[o]=null);return n}function Xe(n,e,o=!1){if(e===null)return e;if(e===void 0)return n;const t=s.Tools.deepClone(n)||{};if(t){for(const r in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in t&&r==="bd"?t[r]=Object.assign(t[r],e[r]):t[r]=e[r]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}}function dn(n,e){return n.some(o=>o.startIndex===e)?dn(n,e+1):e}function Vo(n,e){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const t=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:m,ts:d={}}=c;if(o<u){const g={st:o,ed:u},h=Xe({},e,!0);h&&s.Tools.removeNull(h),s.Tools.isEmptyObject(h)||(g.ts=h),t.push(g)}const l=Xe(d,e,!0);l&&s.Tools.removeNull(l),s.Tools.isEmptyObject(l)?delete c.ts:c.ts=l,t.push(c),o=dn(r,m)}const a=n.body.dataStream.endsWith(`\r
2
+ `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const c={st:o,ed:a},u=Xe({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),t.push(c)}n.body.textRuns=t}function Wo(n){return/^-?\d+(\.\d+)?$/.test(n)}function jo(n){return Wo(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Fo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const rt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Ho(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:rt.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Ho(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const Rt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={subUnitId:m,unitId:c,cellValue:$o(d)},g=le(n,l),h=a.onCommandExecute({id:Rt.id}),v=[{id:$.id,params:l},...h.redos],S=[...h.undos,{id:$.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:v}),!0):!1}};function $o(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null})}),e.getData()}const st={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Go(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:st.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Go(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{s:null})}),e.getData()}const pt=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),Ce={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{sheet:t,index:r,unitId:a}=e,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(t.id,r,t):!1}},ln=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:a}=e,i=t.getSheetBySheetId(r).getConfig();return{index:t.getConfig().sheetOrder.findIndex(m=>m===r),sheet:i,unitId:a}},je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:t,unitId:r}=e,a=o.getUniverSheetInstance(r);return a?a.removeSheet(t):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{var S,C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.unitId)!=null?S:i,c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d=s.Tools.deepClone(m.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(m)+1,sheet:d,unitId:i},h=pt(n,g);return o.syncExecuteCommand(Ce.id,g)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:h}],redoMutations:[{id:Ce.id,params:g}]}),!0):!1}},Be={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{from:o,to:t}=e;if(!o||!t)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(e.from.subUnitId),c=a.getSheetBySheetId(e.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),m=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,l,g)=>{u.setValue(d,l,g)}),new s.ObjectMatrix(t.value).forValue((d,l,g)=>{m.setValue(d,l,g)}),!0}},G={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(exports.SelectionManagerService);if(!e)return!1;const{selections:t,type:r}=e;return o.replace(t,r),!0}};function Fe(n,e,o=!0){const t=e.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(t.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const m={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,m)||r.push(m)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Fe(a,e,o):a}function zo(n,e,o){let t=null;return o.getMatrixWithMergedCells(n,e,n,e).forValue((a,i,c)=>(t={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),t||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function qo(n,e,o){const{startRow:t,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(t)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=e),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o),n}function X(n,e){const o=Number.isNaN(n.startRow)?0:n.startRow,t=Number.isNaN(n.startColumn)?0:n.startColumn,r=e.getMergedCell(o,t);return r?{...r,actualRow:o,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:t,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const me=(n,e,o)=>({id:G.id,params:{unitId:e.getUnitId(),subUnitId:o.getSheetId(),pluginName:z,selections:[{range:n,primary:X(n,o)}]}}),gn="sheet.command.move-range",it={type:s.CommandType.COMMAND,id:gn,handler:(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId(),d=Mt(n,{unitId:u,subUnitId:m,range:e.fromRange},{unitId:u,subUnitId:m,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=n.get(exports.SheetInterceptorService).onCommandExecute({id:it.id,params:{...e}}),h=[...d.redos,...g.redos,{id:G.id,params:{unitId:u,subUnitId:m,pluginName:z,selections:[{range:e.toRange,primary:X(e.toRange,c)}]}}],v=[{id:G.id,params:{unitId:u,subUnitId:m,pluginName:z,selections:[{range:e.fromRange,primary:X(e.fromRange,c)}]}},...d.undos,...g.undos];return s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:h}),!0):!1}};function Mt(n,e,o,t=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=e,{range:m,subUnitId:d}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),h=g==null?void 0:g.getSheetBySheetId(d),v=g==null?void 0:g.getSheetBySheetId(c),S=h==null?void 0:h.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(h&&v&&S&&C){const I=Fe(m,h,!1);if(!s.Rectangle.equals(m,I)&&!t)return null;const f=new s.ObjectMatrix,M=new s.ObjectMatrix;s.Range.foreach(i,(y,T)=>{f.setValue(y,T,C.getValue(y,T)),M.setValue(y,T,null)});const R=new s.ObjectMatrix;s.Range.foreach(m,(y,T)=>{R.setValue(y,T,S.getValue(y,T))});const U=new s.ObjectMatrix;s.Range.foreach(i,(y,T)=>{const D=s.cellToRange(y,T),k=s.Rectangle.getRelativeRange(D,i),p=s.Rectangle.getPositionRange(k,m);U.setValue(p.startRow,p.startColumn,C.getValue(y,T))});const w={from:{value:M.getMatrix(),subUnitId:c},to:{value:U.getMatrix(),subUnitId:d},unitId:u},_={from:{value:f.getMatrix(),subUnitId:c},to:{value:R.getMatrix(),subUnitId:d},unitId:u};r.push({id:Be.id,params:w}),a.push({id:Be.id,params:_})}return{redos:r,undos:a}}const Ie={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),{value:c,range:u,unitId:m=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,l=u?[u]:a.getSelectionRanges();if(!l||!l.length)return!1;const g=new s.ObjectMatrix;let h;if(s.Tools.isArray(c))for(let R=0;R<l.length;R++){const{startRow:U,startColumn:w,endRow:_,endColumn:y}=l[R];for(let T=0;T<=_-U;T++)for(let D=0;D<=y-w;D++)g.setValue(T+U,D+w,c[T][D])}else if(s.isICellData(c))for(let R=0;R<l.length;R++){const{startRow:U,startColumn:w,endRow:_,endColumn:y}=l[R];for(let T=U;T<=_;T++)for(let D=w;D<=y;D++)g.setValue(T,D,c)}else h=c;const v={subUnitId:d,unitId:m,cellValue:h!=null?h:g.getMatrix()},S=le(n,v);if(!i.fetchThroughInterceptors(be.PERMISSION)(null,{id:Ie.id,params:v}))return!1;const C=o.syncExecuteCommand($.id,v),{undos:I,redos:f}=i.onCommandExecute({id:Ie.id,params:{...v,range:l}}),M=s.sequenceExecute([...f],o);return C&&M.result?(t.pushUndoRedo({unitID:m,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}};function wt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=e,m=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),l=m.getUniverSheetInstance(r),g=l==null?void 0:l.getSheetBySheetId(a);if(g){const h=g.getCellMatrix(),v=h.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let M,R;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,v.endRow);let _=0;for(let T=i.startRow;T<=w;T++){const D=h.getRow(T),k=D?s.getArrayLength(D)-1:0;_=Math.max(_,k)}M={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:_};const y=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:M.startColumn+y,endRow:w,endColumn:M.endColumn+y}}else{const w=Math.min(i.endColumn,v.endColumn),_=v.endRow;M={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:w};const y=i.endRow-i.startRow+1;R={startRow:M.startRow+y,startColumn:i.startColumn,endRow:M.endRow+y,endColumn:w}}const U=Mt(n,{unitId:r,subUnitId:a,range:M},{unitId:r,subUnitId:a,range:R},!0);U&&(o.push(...U.redos),t.push(...U.undos))}if(Object.entries(u).length===0)for(let M=i.startRow;M<=i.endRow;M++){u[M]||(u[M]={});for(let R=i.startColumn;R<=i.endColumn;R++)u[M][R]=null}const S={subUnitId:a,unitId:r,cellValue:u},C=le(n,S),{undos:I,redos:f}=d.onCommandExecute({id:Ie.id,params:{...S,range:i}});o.push({id:$.id,params:S},...f),t.push({id:$.id,params:C},...I)}return{redo:o,undo:t}}function yt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=e,u=n.get(s.IUniverInstanceService),m=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),l=d==null?void 0:d.getSheetBySheetId(a);if(l){const g=l.getCellMatrix(),h=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:Jo([i])},S=le(n,v),C=m.onCommandExecute({id:Ie.id,params:v});if(o.push({id:$.id,params:v},...C.redos),t.push(...C.undos,{id:$.id,params:S}),i.startColumn<=h.endColumn||i.startRow<=h.endRow){let I=null,f=null;if(c===s.Dimension.COLUMNS&&i.endColumn<h.endColumn){const M=Math.min(i.endRow,h.endRow);let R=0;for(let w=i.startRow;w<=M;w++){const _=g.getRow(w),y=_?s.getArrayLength(_)-1:0;R=Math.max(R,y)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:M,endColumn:R};const U=i.endColumn-i.startColumn+1;f={startRow:i.startRow,startColumn:I.startColumn-U,endRow:M,endColumn:I.endColumn-U}}if(c===s.Dimension.ROWS&&i.endRow<h.endRow){const M=Math.min(i.endColumn,h.endColumn),R=h.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:R,endColumn:M};const U=i.endRow-i.startRow+1;f={startRow:I.startRow-U,startColumn:i.startColumn,endRow:I.endRow-U,endColumn:M}}if(I&&f){const M=Mt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:f},!0);M&&(o.push(...M.redos),t.push(...M.undos))}}}return{redo:o,undo:t}}function Yo(n,e,o,t,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:m}=e;if(r===s.Dimension.ROWS){const d=c-i+1;for(let l=o;l>=i;l--)for(let g=u;g<=m;g++){const h=n.getValue(l,g);h==null?n.realDeleteValue(l+d,g):n.setValue(l+d,g,h)}for(let l=c;l>=i;l--)for(let g=u;g<=m;g++)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}else if(r===s.Dimension.COLUMNS){const d=m-u+1;for(let l=i;l<=c;l++)for(let g=t;g>=u;g--){const h=n.getValue(l,g);h==null?n.realDeleteValue(l,g+d):n.setValue(l,g+d,h)}for(let l=i;l<=c;l++)for(let g=m;g>=u;g--)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}}function Ko(n,e,o,t,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=e,m=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let l=a;l<=o;l++)for(let g=c;g<=u;g++){const h=n.getValue(l+m,g);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}else if(r===s.Dimension.COLUMNS)for(let l=a;l<=i;l++)for(let g=c;g<=t;g++){const h=n.getValue(l,g+d);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}}function Jo(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const hn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:hn,handler:async(n,e)=>{var M;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let m=e==null?void 0:e.range;if(m||(m=(M=a.getLast())==null?void 0:M.range),!m)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:at.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},vn="sheet.command.delete-range-move-up",ct={type:s.CommandType.COMMAND,id:vn,handler:async(n,e)=>{var M;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let m=e==null?void 0:e.range;if(m||(m=(M=a.getLast())==null?void 0:M.range),!m)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:ct.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),await s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},Ut=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},fe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,e)=>{var v;const{unitId:o,subUnitId:t,range:r,rowInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const m=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},l=r.startRow,g=r.endRow-r.startRow+1;for(let S=l;S<l+g;S++)a?s.insertMatrixArray(S,(v=a[S-r.startRow])!=null?v:d,m):s.insertMatrixArray(S,d,m);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},_t=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Re={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,e)=>{var v;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:c}=e,m=a.getColumnData(),d=i.startColumn,l=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+l;S++){const C={w:g,hd:0};c?s.insertMatrixArray(S,(v=c[S-i.startColumn])!=null?v:C,m):s.insertMatrixArray(S,C,m)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,l),!0}},Xo=(n,e)=>{const r=e.getRowManager().getRowData(),a={},i=n.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},pe={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getRowManager().getRowData(),u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Zo=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},m=e.range,d=s.sliceMatrixArray(m.startColumn,m.endColumn,c),l=s.concatMatrixArray(u,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:l}},Me={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},Qo="sheet.command.insert-range-move-down",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var D;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(D=i.getLast())==null?void 0:D.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,M=Math.max(f+(d.endRow-d.startRow+1)-C.endRow,0);if(M>0){const k=d.startRow-1,p=g.getRowHeight(k),q={unitId:u,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+M,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:p,hd:s.BooleanNumber.FALSE}))};h.push({id:fe.id,params:q});const ge=Ut(n,q);v.push({id:pe.id,params:ge})}const R={};s.Range.foreach(d,(k,p)=>{const q=g.getCell(k,p);q&&(R[k]||(R[k]={}),R[k][p]={s:q.s})});const U={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:R},{redo:w,undo:_}=wt(n,U);h.push(...w),v.push(..._);const y=c.onCommandExecute({id:ut.id,params:{range:d}});return h.push(...y.redos),h.push(me(d,l,g)),v.push(...y.undos),s.sequenceExecute(h,o)?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Sn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Sn,handler:async(n,e)=>{var D;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(D=i.getLast())==null?void 0:D.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,M=Math.max(f+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(M>0){const k=d.startColumn-1,p=g.getColumnWidth(k),q={unitId:u,subUnitId:m,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:p,hd:s.BooleanNumber.FALSE}))};h.push({id:Re.id,params:q});const ge=_t(n,q);v.push({id:Me.id,params:ge})}const R={};s.Range.foreach(d,(k,p)=>{const q=g.getCell(k,p);!q||!q.s||(R[k]||(R[k]={}),R[k][p]={s:q.s})});const U={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:R},{redo:w,undo:_}=wt(n,U);h.push(...w),v.push(..._);const y=c.onCommandExecute({id:dt.id,params:{range:d}});return h.push(...y.redos),h.push(me(d,l,g)),v.push(...y.undos),s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Cn="sheet.command.insert-row",Ne={type:s.CommandType.COMMAND,id:Cn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(e.unitId),c=i.getSheetBySheetId(e.subUnitId),{range:u,direction:m,unitId:d,subUnitId:l}=e,{startRow:g,endRow:h}=u,v=m===s.Direction.UP?g:g-1,S=c.getRowHeight(v),C={unitId:d,subUnitId:l,range:u,rowInfo:new Array(h-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=Ut(n,C),f=a.onCommandExecute({id:Ne.id,params:e});return s.sequenceExecute([{id:fe.id,params:C},...f.redos,me(u,i,c)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...f.undos,{id:pe.id,params:I}],redoMutations:[{id:fe.id,params:C},...f.redos]}),!0):!1}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(h=>h.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endRow-t.startRow+1,d={};s.Range.foreach(t,(h,v)=>{const S=i.getCell(h,v);!S||!S.s||(d[h]||(d[h]={}),d[h][v]={s:S.s})});const l={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+m-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(Ne.id,l)}},fn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var l;const o=(l=n.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(g=>g.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endRow-t.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+m,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Ne.id,d)}},Rn="sheet.command.insert-col",Ae={type:s.CommandType.COMMAND,id:Rn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:m,cellValue:d}=e,{startColumn:l,endColumn:g}=e.range,h=r.getUniverSheetInstance(e.unitId),v=h.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?l:l-1,C=v.getColumnWidth(S),I={unitId:m,subUnitId:u,range:i,colInfo:new Array(g-l+1).fill(void 0).map(()=>({w:C,hd:s.BooleanNumber.FALSE}))},f=_t(n,I);e.unitId,e.subUnitId,e.range,s.Dimension.COLUMNS;const M=a.onCommandExecute({id:Ae.id,params:e});return s.sequenceExecute([{id:Re.id,params:I},...M.redos,me(i,h,v)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...M.undos,{id:Me.id,params:f}],redoMutations:[{id:Re.id,params:I},...M.redos]}),!0):!1}},pn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={};s.Range.foreach(t,(g,h)=>{const v=i.getCell(g,h);!v||!v.s||(d[g]||(d[g]={}),d[g][h]={s:v.s})});const l={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+m-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(Ae.id,l)}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+m,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Ae.id,d)}},wn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,e)=>{var h,v;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=(h=e==null?void 0:e.unitId)!=null?h:r.getCurrentUniverSheetInstance().getUnitId(),c=r.getUniverSheetInstance(i);if(!c)return!1;let u=c.getSheets().length,m=s.mergeWorksheetSnapshotWithDefault({});e?(u=(v=e.index)!=null?v:u,e.sheet?m=e.sheet:(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`))):(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:u,sheet:m,unitId:i},l=pt(n,d);return o.syncExecuteCommand(Ce.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:l}],redoMutations:[{id:Ce.id,params:d}]}),!0):!1}};function er(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const Ve={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const m=r.startRow,d=r.endRow-r.startRow+1,l=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveRows(m,d,l),!0}};function tr(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const We={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const m=r.startColumn,d=r.endColumn-r.startColumn+1,l=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveColumns(m,d,l),!0}};function nr(n,e){return e.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function or(n,e){return e.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const yn="sheet.command.move-rows",bt={id:yn,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=e,i=t==null?void 0:t.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 c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(nr(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startRow:a,endRow:a+v.endRow-v.startRow},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},M=er(n,f),U=a-r<0,w=v.endRow-v.startRow+1,_=U?I:{...I,startRow:I.startRow-w,endRow:I.endRow-w},y={unitId:l,subUnitId:g,pluginName:z,selections:[{range:_,primary:X(_,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:z,selections:[{range:v,primary:S,style:null}]},D=n.get(s.ICommandService),k=c.onCommandExecute({id:bt.id,params:e}),p=[{id:Ve.id,params:f},{id:G.id,params:y},...k.redos],q=[{id:Ve.id,params:M},{id:G.id,params:T},...k.undos];return s.sequenceExecute(p,D).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:q,redoMutations:p}),!0):!1}},Un="sheet.command.move-cols",Tt={id:Un,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=e,i=t==null?void 0:t.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 c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(or(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startColumn:a,endColumn:a+v.endColumn-v.startColumn},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},M=tr(n,f),R=v.endColumn-v.startColumn+1,_=a-r<0?I:{...I,startColumn:I.startColumn-R,endColumn:I.endColumn-R},y={unitId:l,subUnitId:g,pluginName:z,selections:[{range:_,primary:X(_,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:z,selections:[{range:v,primary:S,style:null}]},D=n.get(s.ICommandService),k=c.onCommandExecute({id:Tt.id,params:e}),p=[{id:We.id,params:f},{id:G.id,params:y},...k.redos],q=[{id:We.id,params:M},{id:G.id,params:T},...k.undos];return s.sequenceExecute(p,D).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:q,redoMutations:p}),!0}},_n="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:_n,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Xo(d,c),g=t.onCommandExecute({id:lt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:pe.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:fe.id,params:l}],redoMutations:[{id:pe.id,params:d},...g.redos]}),!0):!1}},bn="sheet.command.remove-col",mt={type:s.CommandType.COMMAND,id:bn,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Zo(n,d),g=t.onCommandExecute({id:mt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:Me.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:Re.id,params:l}],redoMutations:[{id:Me.id,params:d},...g.redos]}),!0):!1}},Et={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,e)=>{var I,f;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(I=e.unitId)!=null?I:i,c=(f=e.subUnitId)!=null?f:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(m);u.getConfig().sheetOrder[d+1];const l={subUnitId:c,unitId:i,subUnitName:m.getName()},g=ln(n,l),h=a.onCommandExecute({id:Et.id,params:{unitId:i,subUnitId:c}}),v=[{id:je.id,params:l},...h.redos],S=[...h.undos,{id:Ce.id,params:g}];return s.sequenceExecute(v,o)?(t.pushUndoRedo({unitID:i,undoMutations:S,redoMutations:v}),!0):!1}},ie=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},Q=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=e.ranges,u=[];for(let m=0;m<c.length;m++)for(let d=i.length-1;d>=0;d--){const l=i[d],g=c[m];s.Rectangle.intersects(l,g)&&u.push(i[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},B={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let m=i.length-1;m>=0;m--){const d=i[m],l=c[u];s.Rectangle.intersects(d,l)&&i.splice(m,1)}return!0}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a};let l=!1;const g=m.getConfig().mergeData;if(a.forEach(S=>{g.forEach(C=>{s.Rectangle.intersects(S,C)&&(l=!0)})}),!l)return!1;const h=Q(n,d);return o.syncExecuteCommand(B.id,h)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:h}],redoMutations:[{id:B.id,params:h}]}),!0):!1}};class we{constructor(){x(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});x(this,"_borderInfo$",new _e.BehaviorSubject(this._borderInfo));x(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function rr(n,e,o){const t=e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance();if(!t)throw new Error;const r=o?t.getSheetBySheetId(o):t.getActiveSheet();if(!r)throw new Error;return{workbook:t,worksheet:r,unitId:e!=null?e:t.getUnitId(),subUnitId:o!=null?o:r.getSheetId()}}function qe(n,e){const{startRow:o,startColumn:t,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=t;c<=a;c++)e(i,c)}const En={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:o,subUnitId:t,value:r}=e,{type:a,color:i,style:c}=r,u=n.get(s.ICommandService),m=n.get(we);return m.setType(a),m.setColor(i),m.setStyle(c),u.executeCommand(Pe.id,{unitId:o,subUnitId:t})}},Dn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const o=n.get(s.ICommandService);return n.get(we).setType(e.value),o.executeCommand(Pe.id)}},On={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setStyle(e.value),o.executeCommand(Pe.id)}},Nn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setColor(e.value),o.executeCommand(Pe.id)}},Pe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(we),{worksheet:c,unitId:u,subUnitId:m}=rr(r,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),l=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:h,type:v,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const C=v===s.BorderType.TOP||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,I=v===s.BorderType.LEFT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,f=v===s.BorderType.BOTTOM||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,M=v===s.BorderType.RIGHT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,R=v===s.BorderType.VERTICAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,U=v===s.BorderType.HORIZONTAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,w=v.indexOf("tlbr")>-1,_=v.indexOf("tlbc")>-1,y=v.indexOf("tlmr")>-1,T=v.indexOf("bltr")>-1,D=v.indexOf("mltr")>-1,k=v.indexOf("bctr")>-1,p=d[0],q={startRow:p.startRow-1,startColumn:p.startColumn,endRow:p.startRow-1,endColumn:p.endColumn},ge={startRow:p.startRow,startColumn:p.startColumn-1,endRow:p.endRow,endColumn:p.startColumn-1},ee={startRow:p.endRow+1,startColumn:p.startColumn,endRow:p.endRow+1,endColumn:p.endColumn},qt={startRow:p.startRow,startColumn:p.endColumn+1,endRow:p.endRow,endColumn:p.endColumn+1},Yt={startRow:p.startRow,startColumn:p.startColumn,endRow:p.startRow,endColumn:p.endColumn},Kt={startRow:p.startRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.startColumn},Jt={startRow:p.endRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.endColumn},Xt={startRow:p.startRow,startColumn:p.endColumn,endRow:p.endRow,endColumn:p.endColumn},A=new s.ObjectMatrix,j={s:g,cl:{rgb:h}},ze=(O,b)=>{let P=null;return l.forEach(K=>{s.Rectangle.intersects(K,{startColumn:b,endColumn:b,startRow:O,endRow:O})&&(P=K)}),P};function V(O,b,P){O.startRow<0||O.startColumn<0||qe(O,(K,te)=>{var E,ke;const J=ze(K,te);let Z=b;if(J&&(b.bc_tr||b.ml_tr||b.bl_tr||b.tl_mr||b.tl_bc||b.tl_br)){if(P){const ne=s.Tools.deepClone((E=A.getValue(J.startRow,J.startColumn))==null?void 0:E.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,b):b}A.setValue(J.startRow,J.startColumn,{s:{bd:Z}})}else{if(P){const ne=s.Tools.deepClone((ke=A.getValue(K,te))==null?void 0:ke.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,b):b}A.setValue(K,te,{s:{bd:Z}})}})}C&&(V(q,{b:null}),V(Yt,{t:s.Tools.deepClone(j)},!0)),f&&(V(ee,{t:null}),V(Jt,{b:s.Tools.deepClone(j)},!0)),I&&(V(ge,{r:null}),V(Kt,{l:s.Tools.deepClone(j)},!0)),M&&(V(qt,{l:null}),V(Xt,{r:s.Tools.deepClone(j)},!0)),w&&V(p,{tl_br:s.Tools.deepClone(j)},!0),_&&V(p,{tl_bc:s.Tools.deepClone(j)},!0),y&&V(p,{tl_mr:s.Tools.deepClone(j)},!0),T&&V(p,{bl_tr:s.Tools.deepClone(j)},!0),D&&V(p,{ml_tr:s.Tools.deepClone(j)},!0),k&&V(p,{bc_tr:s.Tools.deepClone(j)},!0),R&&qe(p,(O,b)=>{var K,te,J,Z;const P=ze(O,b);if(P){if(P.endColumn!==p.endColumn){const E=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(P.startColumn!==p.startColumn){const E=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(b!==p.endColumn){const E=(J=A.getValue(O,b))==null?void 0:J.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(b!==p.startColumn){const E=(Z=A.getValue(O,b))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),U&&qe(p,(O,b)=>{var K,te,J,Z;const P=ze(O,b);if(P){if(P.endRow!==p.endRow){const E=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(P.startRow!==p.startRow){const E=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(O!==p.endRow){const E=(J=A.getValue(O,b))==null?void 0:J.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(O!==p.startRow){const E=(Z=A.getValue(O,b))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!C&&!f&&!I&&!M&&!R&&!U&&!w&&!_&&!y&&!T&&!D&&!k&&(V(q,{b:null}),V(Yt,{t:null},!0),V(ee,{t:null}),V(Jt,{b:null},!0),V(ge,{r:null}),V(Kt,{l:null},!0),V(qt,{l:null}),V(Xt,{r:null},!0),V(p,{tl_br:null},!0),V(p,{tl_bc:null},!0),V(p,{tl_mr:null},!0),V(p,{bl_tr:null},!0),V(p,{ml_tr:null},!0),V(p,{bc_tr:null},!0),qe(p,(O,b)=>{var K,te,J,Z,E,ke,ne,Zt;const P=ze(O,b);if(P){if(P.endColumn!==p.endColumn){const N=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(P.startColumn!==p.startColumn){const N=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(P.endRow!==p.endRow){const N=(J=A.getValue(P.startRow,P.startColumn))==null?void 0:J.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(P.startRow!==p.startRow){const N=(Z=A.getValue(P.startRow,P.startColumn))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}else{if(b!==p.endColumn){const N=(E=A.getValue(O,b))==null?void 0:E.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(b!==p.startColumn){const N=(ke=A.getValue(O,b))==null?void 0:ke.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(O!==p.endRow){const N=(ne=A.getValue(O,b))==null?void 0:ne.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(O!==p.startRow){const N=(Zt=A.getValue(O,b))==null?void 0:Zt.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}}));const ht={unitId:u,subUnitId:m,cellValue:A.getData()},fo=le(n,ht);return o.syncExecuteCommand($.id,ht)?(t.pushUndoRedo({unitID:u,undoMutations:[{id:$.id,params:fo}],redoMutations:[{id:$.id,params:ht}]}),!0):!1}},sr=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Te={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},ir=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ee={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Dt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),i={unitId:o,subUnitId:t,ranges:r},c=ir(n,i),u={unitId:o,subUnitId:t,pluginName:z,selections:r.map(g=>({range:g,primary:X(g,a),style:null}))},m={unitId:o,subUnitId:t,pluginName:z,selections:kn(r).map(g=>({range:g,primary:X(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ee.id,params:i},{id:G.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Te.id,params:c},{id:G.id,params:m}],redoMutations:[{id:Ee.id,params:i},{id:G.id,params:u}]}),!0}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var m;const o=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(s.ICommandService).executeCommand(Dt.id,{unitId:i,subUnitId:c,ranges:u})}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var h;const o=(h=n.get(exports.SelectionManagerService).getSelections())==null?void 0:h.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).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:o},m={unitId:i,subUnitId:c,pluginName:z,selections:kn(o).map(v=>({range:v,primary:X(v,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:z,selections:o.map(v=>({range:v,primary:X(v,a),style:null}))},l=n.get(s.ICommandService);if(s.sequenceExecute([{id:Te.id,params:u},{id:G.id,params:m}],l).result){const v=n.get(s.IUndoRedoService),S=sr(n,u);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:S},{id:G.id,params:d}],redoMutations:[{id:Te.id,params:u},{id:G.id,params:m}]}),!0}return!1}};function kn(n){return ar(n).map(o=>{const t=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:t,endColumn:t}})}function ar(n){const e=[];let o;return n.sort((t,r)=>t.startColumn-r.startColumn).forEach(t=>{if(!o){o=t;return}o.endColumn===t.startColumn-1?o.endColumn=t.endColumn:(e.push(o),o=t)}),e.push(o),e}const Ot=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...i}},he={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:m}=e;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:m},!0}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u)return!1;const{startColumn:m,startRow:d,xSplit:l,ySplit:g}=e;if(d>=u.getRowCount()||m>=u.getColumnCount()||l>=u.getColumnCount()||g>=u.getRowCount())return!1;const h={unitId:a,subUnitId:i,...e},v=Ot(n,h);return o.syncExecuteCommand(he.id,h)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:he.id,params:v}],redoMutations:[{id:he.id,params:h}]}),!0):!1}},cr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),t=n.get(s.IUniverInstanceService),r=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=t.getUniverSheetInstance(r);if(!i||!i.getSheetBySheetId(a))return!1;const u={unitId:r,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},m=Ot(n,u);return e.syncExecuteCommand(he.id,u)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:he.id,params:m}],redoMutations:[{id:he.id,params:u}]}),!0):!1}},ur=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},De={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},dr=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Oe={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Nt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={unitId:o,subUnitId:t,ranges:r},m=ur(n,u),d={unitId:o,subUnitId:t,pluginName:z,selections:r.map(h=>({range:h,primary:X(h,c),style:null}))},l={unitId:o,subUnitId:t,pluginName:z,selections:Vn(r).map(h=>({range:h,primary:X(h,c),style:null}))};return s.sequenceExecute([{id:De.id,params:u},{id:G.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:m},{id:G.id,params:l}],redoMutations:[{id:De.id,params:u},{id:G.id,params:d}]}),!0}},Ln={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var m;const e=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),t=(m=e.getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const r=o.getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=t.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Nt.id,{unitId:i,subUnitId:c,ranges:u})}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(S=e.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a},l={unitId:i,subUnitId:c,pluginName:z,selections:Vn(a).map(C=>({range:C,primary:X(C,m),style:null}))},g={unitId:i,subUnitId:c,pluginName:z,selections:a.map(C=>({range:C,primary:X(C,m),style:null}))},h=dr(n,d);return s.sequenceExecute([{id:Oe.id,params:d},{id:G.id,params:l}],o).result&&t.pushUndoRedo({unitID:i,undoMutations:[{id:De.id,params:h},{id:G.id,params:g}],redoMutations:[{id:Oe.id,params:d},{id:G.id,params:l}]}),!0}};function Vn(n){return lr(n).map(o=>{const t=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:t,endRow:t}})}function lr(n){const e=[];let o;return n.sort((t,r)=>t.startRow-r.startRow).forEach(t=>{if(!o){o=t;return}t.startRow===o.endRow+1?o.endRow=t.endRow:(e.push(o),o=t)}),e.push(o),e}const Y={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const o=n.get(s.IUniverInstanceService),{unitId:t=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=e,c=n.get(s.ICommandService),u=n.get(s.IUndoRedoService),m=n.get(exports.SelectionManagerService),d=a?[a]:m.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=o.getUniverSheetInstance(t);if((l==null?void 0:l.getSheetBySheetId(r))==null)return!1;const h=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let R=0;R<d.length;R++){const{startRow:U,endRow:w,startColumn:_,endColumn:y}=d[R];for(let T=0;T<=w-U;T++)for(let D=0;D<=y-_;D++)h.setValue(T+U,D+_,{s:{[i.type]:i.value[T][D]}})}else for(let R=0;R<d.length;R++){const{startRow:U,endRow:w,startColumn:_,endColumn:y}=d[R],T={s:{[i.type]:i.value}};for(let D=U;D<=w;D++)for(let k=_;k<=y;k++)h.setValue(D,k,T)}const v={subUnitId:r,unitId:t,cellValue:h.getMatrix()},S=le(n,v),C=c.syncExecuteCommand($.id,v),{undos:I,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Y.id,params:e}),M=s.sequenceExecute([...f],c);return C&&M.result?(u.pushUndoRedo({unitID:t,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}},mr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:t,actualColumn:r}=e.primary,i={style:{type:"bl",value:o.getRange(t,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,i)}},gr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;if(e.primary){const{startRow:a,startColumn:i}=e.primary;t=o.getRange(a,i).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},hr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},vr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}};s.CommandType.COMMAND;const Sr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ff",value:e.value}};return o.executeCommand(Y.id,t)}},Cr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"fs",value:e.value}};return o.executeCommand(Y.id,t)}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},jn={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"vt",value:e.value}};return o.executeCommand(Y.id,t)}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ht",value:e.value}};return o.executeCommand(Y.id,t)}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"tb",value:e.value}};return o.executeCommand(Y.id,t)}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,e)=>{if(!e)return!1;const o=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},t=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return t.executeCommand(Y.id,r)}},Ir=(n,e)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const m={color:e.value,unitId:a,subUnitId:i},d=Ir(n,m);return o.syncExecuteCommand(xe.id,m)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:m}]}),!0):!1}},He={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getWorksheets();for(const[,r]of t)if(r.getSheetId()===e.subUnitId)return o.setActiveSheet(r),!0;return!1}},fr=4,At={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e,o)=>{var c,u;const t=n.get(s.ICommandService),r=n.get(s.IUniverInstanceService);let a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return e&&(a=(c=e.unitId)!=null?c:a,i=(u=e.subUnitId)!=null?u:i),new Promise(m=>{setTimeout(()=>{const d=t.syncExecuteCommand(He.id,{unitId:a,subUnitId:i},o);m(d)},fr)})}},Pt=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const m=c[u];for(let d=m.startColumn;d<m.endColumn+1;d++){const l=i.getColumnOrCreate(d);a[d]=l.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:a}},ce={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,e)=>{var u;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),c=e.ranges;for(let m=0;m<c.length;m++){const d=c[m];for(let l=d.startColumn;l<d.endColumn+1;l++){const g=i.getColumnOrCreate(l);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(u=e.colWidth[l-d.startColumn])!=null?u:a}}return!0}},kt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),m=c.getUnitId(),d=u.getSheetId(),{anchorCol:l,deltaX:g}=e,v=u.getColumnWidth(l)+g,S=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,C=t.filter(y=>y.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:y})=>{const{startColumn:T,endColumn:D}=y;return T<=l&&l<=D})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let f;if(I===s.RANGE_TYPE.ALL){const y=u.getRowCount(),T=new Array(u.getColumnCount()).fill(void 0).map((D,k)=>({startRow:0,endRow:y-1,startColumn:k,endColumn:k}));f={subUnitId:d,unitId:m,colWidth:v,ranges:T}}else I===s.RANGE_TYPE.COLUMN?f={subUnitId:d,unitId:m,ranges:C.map(y=>s.Rectangle.clone(y.range)),colWidth:v}:f={subUnitId:d,unitId:m,colWidth:v,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const M=Pt(n,f),R=r.syncExecuteCommand(ce.id,f),{undos:U,redos:w}=n.get(exports.SheetInterceptorService).onCommandExecute({id:kt.id,params:f}),_=s.sequenceExecute([...w],r);return R&&_.result&&a.pushUndoRedo({unitID:m,undoMutations:[{id:ce.id,params:M},...U],redoMutations:[{id:ce.id,params:f},...w]}),!0}},xt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance().getUnitId(),m={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:e.value},d=Pt(n,m),l=t.syncExecuteCommand(ce.id,m),{undos:g,redos:h}=n.get(exports.SheetInterceptorService).onCommandExecute({id:xt.id,params:m}),v=s.sequenceExecute([...h],t);return l&&v.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ce.id,params:d},...g],redoMutations:[{id:ce.id,params:m},...h]}),!0):!1}},Kn=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{hidden:t.isSheetHidden(),unitId:e.unitId,subUnitId:t.getSheetId()}},ve={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{var C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m||m.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const l={unitId:i,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=Kn(n,l);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(ve.id,l)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:g}],redoMutations:[{id:ve.id,params:l}]}),!0):!1}},Rr=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{unitId:e.unitId,name:t.getName(),subUnitId:t.getSheetId()}},tt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:i},m=Rr(n,u),d=a.onCommandExecute({id:Lt.id,params:e}),l=[{id:tt.id,params:u},...d.redos],g=[...d.undos,{id:tt.id,params:m}];return await s.sequenceExecute(l,o).result?(t.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:l}),!0):!1}},pr=(n,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),Le={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getConfig();return t.sheetOrder.splice(e.fromOrder,1),t.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),i=e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const d={fromOrder:c.getConfig().sheetOrder.indexOf(i),toOrder:e.order,unitId:a,subUnitId:i},l=pr(n,d);return o.syncExecuteCommand(Le.id,d)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Le.id,params:l}],redoMutations:[{id:Le.id,params:d}]}),!0):!1}},Mr=2e3,Zn=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<l+1;g++){const h=m.getRowOrCreate(g);u[g]=h.h}return{unitId:o,subUnitId:t,ranges:r,rowHeight:u}},Bt=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<=l;g++){const h=m.getRowOrCreate(g);u[g]=h.ia}return{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:u}},wr=(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t),u=[],m=c.getRowManager();for(const d of r){const{row:l}=d,{ah:g}=m.getRowOrCreate(l);u.push({row:l,autoHeight:g})}return{unitId:o,subUnitId:t,rowsAutoHeightInfo:u}},ue={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:r,rowHeight:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const m=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.h=a:S.h=(l=a[v])!=null?l:m,S.h=Math.min(Mr,S.h)}return!0}},oe={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const m=void 0,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.ia=a:S.ia=(l=a[v-g])!=null?l:m}return!0}},Vt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:m,autoHeight:d}of r){const l=u.getRowOrCreate(m);l.ah=d}return!0}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),c=a.getUnitId(),u=i.getSheetId(),{anchorRow:m,deltaY:d}=e,g=i.getRowHeight(m)+d,h=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,v=t.filter(_=>_.range.rangeType===s.RANGE_TYPE.ROW),S=h?s.RANGE_TYPE.ALL:v.some(({range:_})=>{const{startRow:y,endRow:T}=_;return y<=m&&m<=T})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const _=i.getRowCount(),y=new Array(i.getColumnCount()).fill(void 0).map((T,D)=>({startRow:D,endRow:D,startColumn:0,endColumn:_-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:y}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:v.map(_=>s.Rectangle.clone(_.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:m,endRow:m,startColumn:0,endColumn:i.getMaxColumns()-1}]};const I=Zn(n,C),f={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},M=Bt(n,f),R=n.get(s.ICommandService),U=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:ue.id,params:C},{id:oe.id,params:f}],R).result?(U.pushUndoRedo({unitID:c,undoMutations:[{id:ue.id,params:I},{id:oe.id,params:M}],redoMutations:[{id:ue.id,params:C},{id:oe.id,params:f}]}),!0):!1}},eo={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance(),u=c.getUnitId(),m=c.getActiveSheet().getSheetId(),d={subUnitId:m,unitId:u,ranges:i,rowHeight:e.value},l=Zn(n,d),g={unitId:u,subUnitId:m,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},h=Bt(n,g);return s.sequenceExecute([{id:ue.id,params:d},{id:oe.id,params:g}],t).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:l},{id:oe.id,params:h}],redoMutations:[{id:ue.id,params:d},{id:oe.id,params:g}]}),!0):!1}},Wt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),c=a.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:m}=e!=null?e:{},d=m!=null?[{startRow:m,endRow:m,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={unitId:i,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=Bt(n,l),h=o.syncExecuteCommand(oe.id,l),{undos:v,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Wt.id,params:l}),C=s.sequenceExecute([...S],o);return h&&C.result?(t.pushUndoRedo({unitID:i,undoMutations:[{id:oe.id,params:g},...v],redoMutations:[{id:oe.id,params:l},...S]}),!0):!1}},to={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{var S;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId();let i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.value)!=null?S:i);const c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:s.BooleanNumber.FALSE},l=Kn(n,d),g=o.syncExecuteCommand(ve.id,d),h={unitId:a,subUnitId:i},v=o.syncExecuteCommand(He.id,h);return g&&v?(t.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:l}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},no=n=>{const e=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(t,r)=>{e.setValue(t,r,1)})}),e.forValue((o,t)=>{const r=e.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},oo=n=>{const e=n;return e.forValue((o,t)=>{const r=n.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},en=n=>{const e={area:0},o=(t,r)=>e.area<t?(e.area=t,e.range=r,!0):!1;return n.forValue((t,r,a)=>{let i=1,c=a;o(i*c,{startRow:t-c+1,endRow:t,startColumn:r,endColumn:r});const u={startRow:t-c+1,endRow:t,startColumn:0,endColumn:r};for(let m=r-1;m>=0&&n.getValue(t,m);m--){c=Math.min(n.getValue(t,m)||0,c),i++;const d=c*i;u.startColumn=m,u.startRow=t-c+1,o(d,u)}}),e},yr=(n,e)=>(s.Range.foreach(e,(o,t)=>{n.realDeleteValue(o,t);let r=o+1,a=n.getValue(r,t)||0;for(;a>1;)n.setValue(r,t,a-1),r+=1,a=n.getValue(r,t)||0}),n),jt=n=>{const e=[];let o=en(n);for(;o.area>0;)o.range&&(e.push(o.range),yr(n,o.range)),o=en(n);return e},Ft=n=>{const e=no(n);return jt(e)};class Ur{constructor(){x(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.setValue(t,r,1)})}),this}subtract(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.realDeleteValue(t,r)})}),this}merge(){const e=oo(this._matrix);return jt(e)}}const _r=(n,e,o="")=>n.reduce((t,r)=>{const a=r&&r[e];return typeof a!="string"?(console.warn(r,`${e} is not string`),t):(a?(t[a]||(t[a]=[]),t[a].push(r)):t[o].push(r),t)},{}),br=(n=0)=>{let e=n;return function(){return e++}},ye=H.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,ye);const Tr=(n,e)=>{const o=n.get(ye),{values:t,unitId:r,subUnitId:a}=e,i=[],c=[],u=o.getModel(r,a)||void 0;Object.keys(t).forEach(d=>{t[d].ranges.forEach(g=>{s.Range.foreach(g,(h,v)=>{const S=o.getValue(r,a,h,v,u);S?i.push({pattern:S.pattern,type:S.type,row:h,col:v}):c.push({startColumn:v,endColumn:v,startRow:h,endRow:h})})})});const m=[];if(i.length){const d=nt(r,a,i);Object.keys(d.values).forEach(l=>{const g=d.values[l];g.ranges=Ft(g.ranges)}),m.push({id:gt.id,params:nt(r,a,i)})}return c.length&&m.push({id:Ht.id,params:{unitId:r,subUnitId:a,ranges:c}}),m},gt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:o,refMap:t}=e,r=n.get(ye),a=e.unitId,i=e.subUnitId,c=Object.keys(o).reduce((u,m)=>{const d=t[m],l=o[m].ranges;return d&&u.push({...d,ranges:l}),u},[]);return r.setValues(a,i,c),!0}},Ht={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:o,subUnitId:t,ranges:r}=e;return n.get(ye).deleteValues(o,t,r),!0}},Er=(n,e)=>{const o=n.get(ye),{ranges:t,unitId:r,subUnitId:a}=e,i=[],c=o.getModel(r,a)||void 0;if(t.forEach(m=>{s.Range.foreach(m,(d,l)=>{const g=o.getValue(r,a,d,l,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:l})})}),!i.length)return[];const u=nt(r,a,i);return Object.keys(u.values).forEach(m=>{const d=u.values[m];d.ranges=Ft(d.ranges)}),[{id:gt.id,params:u}]},nt=(n,e,o)=>{const t=_r(o,"pattern"),r={},a={},i=br();return Object.keys(t).forEach(c=>{const u=t[c],m=u[0],d=i();r[d]={pattern:c,type:m.type},u.forEach(l=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:e,refMap:r,values:a}},ro={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},so="maxCellsPerSheet",Dr=3e6;var Or=Object.defineProperty,Nr=Object.getOwnPropertyDescriptor,Ar=(n,e,o,t)=>{for(var r=t>1?void 0:t?Nr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Or(e,o,r),r},tn=(n,e)=>(o,t)=>e(o,t,n);let Ze=class extends s.Disposable{constructor(n,e){super(),this._commandService=n,this._configService=e,[L,rt,Rt,st,mn,at,ct,kt,Qn,Mn,pn,Ae,Re,ut,dt,fn,In,Ne,fe,wn,Ce,Tt,We,it,Be,bt,Ve,mt,Me,lt,pe,Et,je,Tn,B,Hn,jn,Fn,En,Nn,Pe,Dn,On,Pn,Te,Ee,xt,cr,xn,he,Gn,Ie,$,eo,Bn,Oe,De,An,Ln,Dt,Nt,Y,Yn,xe,Wn,qn,zn,$n,At,He,ce,Jn,ve,Lt,tt,Xn,Le,Vt,ue,Wt,oe,to,gt,G,Ht,ro].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(so,Dr)}};Ze=Ar([s.OnLifecycle(s.LifecycleStages.Starting,Ze),tn(0,s.ICommandService),tn(1,s.IConfigService)],Ze);var Pr=Object.defineProperty,kr=Object.getOwnPropertyDescriptor,xr=(n,e,o,t)=>{for(var r=t>1?void 0:t?kr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Pr(e,o,r),r},Lr=(n,e)=>(o,t)=>e(o,t,n);let Qe=class extends s.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ft.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:o,unitOtherData:t}=e,r=Object.keys(o),a=[];return r.forEach(c=>{const u=o[c];if(u==null)return!0;Object.keys(u).forEach(d=>{const l=u[d];if(l==null)return!0;const g={subUnitId:d,unitId:c,cellValue:l};a.push({id:$.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};Qe=xr([s.OnLifecycle(s.LifecycleStages.Ready,Qe),Lr(0,s.ICommandService)],Qe);var Br=Object.defineProperty,Vr=Object.getOwnPropertyDescriptor,Wr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Vr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Br(e,o,r),r},Ye=(n,e)=>(o,t)=>e(o,t,n);let et=class extends s.Disposable{constructor(n,e,o,t){super(),this._commandService=n,this._featureCalculationManagerService=e,this._currentUniverService=o,this._formulaDataModel=t}_initialize(){const n="test",e="workbook-01",o="sheet-0011",t={[e]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:e,subUnitId:o,dependencyRanges:[{unitId:e,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:t,dirtyRanges:r})})}};et=Wr([s.OnLifecycle(s.LifecycleStages.Ready,et),Ye(0,s.ICommandService),Ye(1,ft.IFeatureCalculationManagerService),Ye(2,s.IUniverInstanceService),Ye(3,H.Inject(ft.FormulaDataModel))],et);const W={MoveRangeCommandId:gn,InsertRowCommandId:Cn,InsertColCommandId:Rn,RemoveColCommandId:bn,RemoveRowCommandId:_n,DeleteRangeMoveLeftCommandId:hn,DeleteRangeMoveUpCommandId:vn,InsertRangeMoveDownCommandId:Qo,InsertRangeMoveRightCommandId:Sn,MoveColsCommandId:Un,MoveRowsCommandId:yn};var F=(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))(F||{}),jr=Object.defineProperty,Fr=Object.getOwnPropertyDescriptor,Hr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Fr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&jr(e,o,r),r},vt=(n,e)=>(o,t)=>e(o,t,n);const $r=s.createInterceptorKey("MERGE_REDO"),Gr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(o,t,r){super();x(this,"interceptor",new s.InterceptorManager({MERGE_REDO:$r,MERGE_UNDO:Gr}));x(this,"_refRangeManagerMap",new Map);x(this,"_serializer",zr());x(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const t=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=nn(this._univerInstanceService),a=on(this._univerInstanceService),u=((()=>{switch(o.id){case W.MoveColsCommandId:{const l=o.params,g=Math.min(l.fromRange.startColumn,l.toRange.startColumn);return this._checkRange([{...l.fromRange,startColumn:g,endColumn:t.getColumnCount()-1}],r,a)}case W.MoveRowsCommandId:{const l=o.params,g=Math.min(l.fromRange.startRow,l.toRange.startRow);return this._checkRange([{...l.fromRange,startRow:g,endRow:t.getRowCount()-1}],r,a)}case W.MoveRangeCommandId:{const l=o;return this._checkRange([l.params.fromRange,l.params.toRange],r,a)}case W.InsertRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.InsertColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.RemoveRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.RemoveColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.DeleteRangeMoveUpCommandId:case W.InsertRangeMoveDownCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([h],r,a)}case W.DeleteRangeMoveLeftCommandId:case W.InsertRangeMoveRightCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([h],r,a)}}})()||[]).reduce((l,g)=>{const h=g(o);return l.push(h),l},[]).reduce((l,g)=>(l.redos.push(...g.redos),l.undos.push(...g.undos),l),{redos:[],undos:[]}),m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:m,undos:d}}})});x(this,"_checkRange",(o,t,r)=>{const a=sn(t,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(m=>{const d=i.get(m),l=this._serializer.deserialize(m);o.some(g=>s.Rectangle.intersects(g,l))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});x(this,"registerRefRange",(o,t,r,a)=>{const i=r||nn(this._univerInstanceService),c=a||on(this._univerInstanceService),u=sn(i,c),m=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const l=d.get(m);return l?l.add(t):d.set(m,new Set([t])),s.toDisposable(()=>{const g=d.get(m);g&&(g.delete(t),g.size||(d.delete(m),d.size||this._refRangeManagerMap.delete(u)))})});this._sheetInterceptorService=o,this._univerInstanceService=t,this._selectionManagerService=r,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}};exports.RefRangeService=Hr([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),vt(0,H.Inject(exports.SheetInterceptorService)),vt(1,H.Inject(s.IUniverInstanceService)),vt(2,H.Inject(exports.SelectionManagerService))],exports.RefRangeService);function nn(n){return n.getCurrentUniverSheetInstance().getUnitId()}function on(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function rn(n){return n.getSelectionRanges()||[]}function sn(n,e){return`${n}_${e}`}function zr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const t=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(e).reduce((a,i,c)=>{const u=String(c);return i&&t[u]&&(a[t[u]]=i),a},{})},serialize:o=>n.reduce((t,r,a)=>{const i=o[r];return i!==void 0?`${t}${a>0?e:""}${i}`:`${t}`},"")}}const Ke=Number.MAX_SAFE_INTEGER,ae=n=>{const e={...n};return e.rangeType===s.RANGE_TYPE.COLUMN&&(e.startRow=0,e.endRow=Ke),e.rangeType===s.RANGE_TYPE.ROW&&(e.startColumn=0,e.endColumn=Ke),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=Ke,e.startRow=0,e.endRow=Ke),e},de=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),$t=(n,e,o)=>{const t={...o},r={...e},a=(S,C)=>{const I=Math.max(S.start,C.start),f=Math.min(S.end,C.end);return f<I?null:{start:I,end:f}},i=S=>S.end-S.start+1,c=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),u=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),m=e.start>n.start;if(m){const S=Math.min(n.end,e.start)-n.start+1;r.start-=S,r.end-=S}const d=i(n),l=d,g=a(n,t),h=g&&i(g)>=i(t);if(n.end<t.start)t.start-=d,t.end-=d;else if(g){const S=i(g);if(h){const C=c(t,n),I=u(C,r);t.start=I.start,t.end=I.end}else g.start>n.start||m?t.end-=S:(t.start-=d,t.end-=d+S)}const v=a(r,t);if(r.start<=t.start&&!h)t.start+=l,t.end+=l;else if(v){const S=r.start;if(i(v)<=i(t))return{step:t.start-o.start,length:0};S<t.start?(t.start+=l,t.end+=l):S>=t.start&&S<=t.end&&(t.end+=l,t.start+=l)}return{step:t.start-o.start,length:i(t)-i(o)}},Gt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:F.Delete}]:[{type:F.VerticalMove,step:c.step||0,length:c.length||0}]},zt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:F.Delete}]:[{type:F.HorizontalMove,step:c.step||0,length:c.length||0}]},io=(n,e)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,t=(i=n.params)==null?void 0:i.fromRange;if(!o||!t)return[];const r=[];if(s.Rectangle.contains(o,e)&&r.push({type:F.Delete}),s.Rectangle.contains(t,e)){r.push({type:F.Delete});const c=s.Rectangle.getRelativeRange(e,t),u=s.Rectangle.getPositionRange(c,o);return[{type:F.Set,range:u}]}return r},$e=(n,e)=>{const o=ae(n),t=ae(e),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(t,o);if(i)return{step:0,length:-r(i)}}if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn&&a(o)>=a(t))return null;if(t.startColumn>=o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(t,o);if(i){const c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(t.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},ao=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.HorizontalMove,step:i,length:c})}return t},co=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.VerticalMove,step:i,length:c})}return t},Ge=(n,e)=>{const o=ae(n),t=ae(e),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn)return{step:0,length:r(o)};if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn>o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn||t.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}},uo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:F.VerticalMove,step:a,length:i}),t},lo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:F.HorizontalMove,step:a,length:i}),t},mo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:F.VerticalMove,step:a,length:i}),t},go=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:F.HorizontalMove,step:a,length:i}),t},ho=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.HorizontalMove,step:i,length:c})}return t},vo=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.VerticalMove,step:i,length:c})}return t},ot=(n,e)=>{let o={...e};return n.forEach(t=>{switch(t.type){case F.Delete:{o=null;break}case F.HorizontalMove:{if(!o)return;o.startColumn+=t.step,o.endColumn+=t.step+(t.length||0);break}case F.VerticalMove:{if(!o)return;o.startRow+=t.step,o.endRow+=t.step+(t.length||0);break}case F.Set:{o=t.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},qr=(n,e)=>{let o=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:{o=ho(e,n);break}case W.DeleteRangeMoveUpCommandId:{o=vo(e,n);break}case W.InsertColCommandId:{o=lo(e,n);break}case W.InsertRangeMoveDownCommandId:{o=mo(e,n);break}case W.InsertRangeMoveRightCommandId:{o=go(e,n);break}case W.InsertRowCommandId:{o=uo(e,n);break}case W.MoveColsCommandId:{o=zt(e,n);break}case W.MoveRangeCommandId:{o=io(e,n);break}case W.MoveRowsCommandId:{o=Gt(e,n);break}case W.RemoveColCommandId:{o=ao(e,n);break}case W.RemoveRowCommandId:{o=co(e,n);break}}return ot(o,n)};var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Jr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Kr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Yr(e,o,r),r},Ue=(n,e)=>(o,t)=>e(o,t,n);function So(n,e){let o=n;if(e!==void 0){const t=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(e===s.Dimension.ROWS)for(let m=a;m<=i;m++){const d={startRow:m,endRow:m,startColumn:c,endColumn:u};t.push(d)}else if(e===s.Dimension.COLUMNS)for(let m=c;m<=u;m++){const d={startRow:a,endRow:i,startColumn:m,endColumn:m};t.push(d)}}o=t}return o}exports.MergeCellController=class extends s.Disposable{constructor(e,o,t,r,a,i){super(),this._commandService=e,this._refRangeService=o,this._univerInstanceService=t,this._injector=r,this._sheetInterceptorService=a,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const e=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case rt.id:case st.id:{const t=e._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getUnitId(),a=t.getActiveSheet(),i=a.getSheetId(),c=a.getConfig().mergeData,u=e._selectionManagerService.getSelectionRanges();if(u&&u.length>0&&u.some(d=>c.some(l=>s.Rectangle.intersects(l,d)))){const d={unitId:r,subUnitId:i,ranges:u},l=Q(e._injector,d),g=[{id:B.id,params:d}],h=[{id:L.id,params:l}];return{redos:g,undos:h}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const e=new s.DisposableCollection,o=(a,i)=>{const c=this._univerInstanceService.getUniverSheetInstance(a);if(!c)return;const u=c==null?void 0:c.getSheetBySheetId(i);if(!u)return;e.dispose();const m=u.getMergeData(),d=l=>{switch(l.id){case it.id:{const g=l.params;return this._handleMoveRangeCommand(g,a,i)}case Ne.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertRowCommand(g,h,v)}case Ae.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertColCommand(g,h,v)}case mt.id:{const g=l.params;return this._handleRemoveColCommand(g,a,i)}case lt.id:{const g=l.params;return this._handleRemoveRowCommand(g,a,i)}case dt.id:{const g=l.params;return this._handleInsertRangeMoveRightCommand(g,a,i)}case ut.id:{const g=l.params;return this._handleInsertRangeMoveDownCommand(g,a,i)}case ct.id:{const g=l.params;return this._handleDeleteRangeMoveUpCommand(g,a,i)}case at.id:{const g=l.params;return this._handleDeleteRangeMoveLeftCommand(g,a,i)}case W.MoveColsCommandId:{const g=l.params;return this._handleMoveColsCommand(g,a,i)}case W.MoveRowsCommandId:{const g=l.params;return this._handleMoveRowsCommand(g,a,i)}}return{redos:[],undos:[]}};m.forEach(l=>{e.add(this._refRangeService.registerRefRange(l,d,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===At.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(u,c)}if(a.id===L.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getActiveSheet();o(t.getUnitId(),r.getSheetId())}_handleMoveRowsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=Gt({id:W.MoveRowsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:m}]}}_handleMoveColsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=zt({id:W.MoveColsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:m}]}}_handleMoveRangeCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=a.getMergeData(),c=i.filter(h=>s.Rectangle.intersects(h,e.fromRange)),u=i.filter(h=>s.Rectangle.intersects(h,e.toRange)),m=c.map(h=>s.Rectangle.getRelativeRange(h,e.fromRange)).map(h=>s.Rectangle.getPositionRange(h,e.toRange)),d=So(m).filter(h=>!i.some(v=>s.Rectangle.equals(h,v))),l=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:B.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:d}}],g=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:d}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:c}}];return{redos:l,undos:g}}_handleInsertRowCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,{startRow:c,endRow:u}=i,m=s.Tools.deepClone(a.getMergeData()),d=s.Tools.deepClone(a.getMergeData()).map(I=>{const f=u-c+1;return c>I.endRow?I:c<=I.startRow?s.Rectangle.moveVertical(I,f):(I.endRow+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleInsertColCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const{startColumn:c,endColumn:u}=r,m=s.Tools.deepClone(i.getMergeData()),d=s.Tools.deepClone(i.getMergeData()).map(I=>{const f=u-c+1;return c>I.endColumn?I:c<=I.startColumn?s.Rectangle.moveHorizontal(I,f):(I.endColumn+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleRemoveColCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,c=s.Tools.deepClone(a.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startColumn:C,endColumn:I}=S,f=I-C+1,{startColumn:M,endColumn:R}=i,U=R-M+1;if(R<S.startColumn)S.startColumn-=U,S.endColumn-=U;else{if(M>S.endColumn)continue;if(M<=S.startColumn&&R>=S.endColumn)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(i,S),_=w.endColumn-w.startColumn+1,y=w.endRow-w.startRow===0;_===f-1&&y?(c.splice(v,1),v--):S.endColumn-=w.endColumn-w.startColumn+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(a.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];return{redos:g,undos:h}}_handleRemoveRowCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const c=s.Tools.deepClone(i.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startRow:C,endRow:I}=S,f=I-C+1,{startRow:M,endRow:R}=r,U=R-M+1;if(R<C)S.startRow-=U,S.endRow-=U;else{if(M>I)continue;if(M<=C&&R>=I)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(r,S),_=w.endRow-w.startRow+1,y=w.endColumn-w.startColumn===0;_===f-1&&y?(c.splice(v,1),v--):S.endRow-=w.endRow-w.startRow+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(i.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];return{redos:g,undos:h}}_handleInsertRangeMoveRightCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=M-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn+w,endRow:S.endRow,endColumn:S.endColumn+w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleInsertRangeMoveDownCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:R,endRow:U}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:c,endColumn:R},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:c,endColumn:R},I))){const y=U-f+1;d.push({startRow:I.startRow+y,startColumn:I.startColumn,endRow:I.endRow+y,endColumn:I.endColumn})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveUpCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:R,endRow:U}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:c,endColumn:R},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:c,endColumn:R},I))){const y=U-f+1,T=s.Rectangle.moveVertical(I,-y);d.push(T)}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveLeftCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=M-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn-w,endRow:S.endRow,endColumn:S.endColumn-w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleNull(){return{redos:[],undos:[]}}};exports.MergeCellController=Jr([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Ue(0,H.Inject(s.ICommandService)),Ue(1,H.Inject(exports.RefRangeService)),Ue(2,H.Inject(s.IUniverInstanceService)),Ue(3,H.Inject(H.Injector)),Ue(4,H.Inject(exports.SheetInterceptorService)),Ue(5,H.Inject(exports.SelectionManagerService))],exports.MergeCellController);function re(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance()}function se(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}const Xr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},Co={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Zr=Object.defineProperty,Qr=Object.getOwnPropertyDescriptor,es=(n,e,o,t)=>{for(var r=t>1?void 0:t?Qr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Zr(e,o,r),r},Je=(n,e)=>(o,t)=>e(o,t,n);const an="SHEET_NUMFMT_PLUGIN",ts=24*60*60*1e3;exports.NumfmtService=class extends s.Disposable{constructor(o,t,r,a){super();x(this,"_numfmtModel",new Map);x(this,"_refAliasModel",new Map);x(this,"_modelReplace$",new _e.Subject);x(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=t,this._univerInstanceService=r,this._logService=a,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,an,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,c)=>{const{model:u,refModel:m}=c;if(u){const d=Object.keys(u).reduce((l,g)=>(l.set(g,new s.ObjectMatrix(u[g])),l),new Map);this._numfmtModel.set(i,d)}m&&this._refAliasModel.set(i,new s.RefAlias(m,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,an)})));const t=this._univerInstanceService.getCurrentUniverSheetInstance();o(t)}_toJson(o){const t=this._numfmtModel.get(o),r=this._refAliasModel.get(o);if(!t||!r)return"";const a=[...t.keys()].reduce((u,m)=>{const d=t.get(m);return u[m]=d.toJSON(),u},{}),i=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,t,r,a,i){let c=this.getModel(o,t);if(!c){const u=this._numfmtModel.get(o)||new Map,m=u.get(t)||new s.ObjectMatrix;u.set(t,m),this._numfmtModel.set(o,u),c=m}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.getSizeOf()){const m=this._numfmtModel.get(o);m==null||m.delete(t)}}_getUniqueRefId(o){const t=this._refAliasModel.get(o);if(!t)return"0";const r=t.getKeyMap("i");return`${Math.max(...r.map(i=>Number(i||0)),0)+1}`}getValue(o,t,r,a,i){const c=i||this.getModel(o,t);if(!c)return null;const u=this._refAliasModel.get(o),m=c.getValue(r,a);if(m&&u){const d=u.getValue(m==null?void 0:m.i,["i"]);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,t,r){let a=this._refAliasModel.get(o);const i=this.getModel(o,t);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),r.forEach(c=>{s.Range.foreach(c,(u,m)=>{const d=this.getValue(o,t,u,m,i);if(d&&d.pattern){const l=a.getValue(d.pattern,["pattern"]);l&&l.count--}this._setValue(o,t,u,m,null)})})}setValues(o,t,r){const a=this.getModel(o,t);let i=this._refAliasModel.get(o);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),r.forEach(c=>{let u=i.getValue(c.pattern,["pattern"]);u||(u={count:0,i:this._getUniqueRefId(o),pattern:c.pattern,type:r[0].type},i.addValue(u)),c.ranges.forEach(m=>{s.Range.foreach(m,(d,l)=>{if(a){const g=this.getValue(o,t,d,l,a);if(g&&g.pattern){const h=i.getValue(g.pattern,["pattern"]);h&&h.count--}}this._setValue(o,t,d,l,{i:u.i}),u.count++})})})}getModel(o,t){const r=this._numfmtModel.get(o);return r==null?void 0:r.get(t)}getRefModel(o){return this._refAliasModel.get(o)}serialTimeToTimestamp(o,t=!0){const r=new Date("1900-01-01").getTime();return(o-(t?25569:24107))*ts+r}};exports.NumfmtService=es([s.OnLifecycle(s.LifecycleStages.Starting,exports.NumfmtService),Je(0,H.Inject(s.ICommandService)),Je(1,H.Inject(s.IResourceManagerService)),Je(2,H.Inject(s.IUniverInstanceService)),Je(3,H.Inject(s.ILogService))],exports.NumfmtService);const cn="univer.sheet.editable";class Se extends s.PermissionPoint{constructor(o,t){super();x(this,"id",cn);x(this,"value",!0);x(this,"unitID");this._unitId=o,this._subUnitId=t,this.unitID=o,this.id=`${cn}_${o}_${t}`}}var ns=Object.defineProperty,os=Object.getOwnPropertyDescriptor,rs=(n,e,o,t)=>{for(var r=t>1?void 0:t?os(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&ns(e,o,r),r},St=(n,e)=>(o,t)=>e(o,t,n);exports.SheetPermissionService=class extends s.Disposable{constructor(e,o,t){super(),this._permissionService=e,this._univerInstanceService=o,this._sheetInterceptorService=t,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),o=e.getUnitId();e.getSheets().forEach(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.deletePermissionPoint(e.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(be.PERMISSION,{priority:99,handler:(e,o,t)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=r==null?void 0:r.getActiveSheet(),i=r==null?void 0:r.getUnitId(),c=a==null?void 0:a.getSheetId();if(!i||!c)return!1;switch(o.id){case Ie.id:return this.getSheetEditable(i,c)}return t()}}))}getEditable$(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(Mo.map(([u,m])=>{const d=u.value&&m.value,l=s.getTypeFromPermissionItemList([u,m]);return{value:d,status:l}}))}getSheetEditable(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(e,o,t){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=o||r.getUnitId(),i=r.getActiveSheet(),c=t||i.getSheetId(),u=new Se(a,c);this._permissionService.updatePermissionPoint(a,u.id,e)}};exports.SheetPermissionService=rs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),St(0,H.Inject(s.IPermissionService)),St(1,H.Inject(s.IUniverInstanceService)),St(2,H.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function ss(n){const e=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),t=e.getCurrentUniverSheetInstance().getUnitId(),r=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new _e.Observable(a=>{var c;const i=(c=o.getEditable$(t,r))==null?void 0:c.subscribe(u=>{a.next(!u.value)});return()=>{i==null||i.unsubscribe()}})}var is=Object.defineProperty,as=Object.getOwnPropertyDescriptor,cs=(n,e,o,t)=>{for(var r=t>1?void 0:t?as(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&is(e,o,r),r},Ct=(n,e)=>(o,t)=>e(o,t,n);const us="sheet";var It;exports.UniverSheetsPlugin=(It=class extends s.Plugin{constructor(e,o,t,r){super(us),this._config=e,this._commandService=o,this._localeService=t,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:Co})}_initializeDependencies(e){var t;const o=[[we],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[ye,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[Ze],[exports.MergeCellController]];(t=this._config)!=null&&t.notExecuteFormula||o.push([Qe],[et]),o.forEach(r=>{e.add(r)})}},x(It,"type",s.PluginType.Sheet),It);exports.UniverSheetsPlugin=cs([Ct(1,s.ICommandService),Ct(2,H.Inject(s.LocaleService)),Ct(3,H.Inject(H.Injector))],exports.UniverSheetsPlugin);const ds=[ue.id,oe.id,Vt.id,ce.id,He.id,Ve.id,We.id,Te.id,Ee.id,Oe.id,De.id,Re.id,fe.id,Me.id,pe.id],ls=[$.id,Be.id,B.id,L.id],ms=1.5,gs="rgba(255,255,255, 0.01)";function hs(n){const e=n.getCurrentTheme(),o=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1.5,stroke:e.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function vs(n){const{rangeWithCoord:e,primaryWithCoord:o,style:t}=n,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return o!=null&&(r.primary=Io(o)),r}function Io(n){const{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function Ss(n,e,o){const t=wo.getCellInfoInMergeData(n,e,o),r=s.makeCellRangeToRangeData(t);if(r)return{range:r,primary:t,style:null}}const Cs=(n,e,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=e;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:l,actualRow:g}=d;let{startRow:h,startColumn:v,endRow:S,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const R=o.find(U=>U.startColumn===l&&U.endColumn===l&&g===U.startRow);R&&(C=R.endColumn,h=R.startRow,S=R.endRow)}else if(a===s.Dimension.ROWS){const R=o.find(U=>U.startRow===g&&U.endRow===g&&l===U.startColumn);R&&(S=R.endRow,v=R.startColumn,C=R.endColumn)}const I={startRow:h,startColumn:v,endRow:S,endColumn:C,actualRow:g,actualColumn:l,isMerged:!0,isMergedMainCell:h===g&&v===l},f=r.map((R,U,w)=>({range:R.range,style:null,primary:U===w.length-1?I:null})),M={unitId:c,subUnitId:u,pluginName:z,selections:f};return{id:G.id,params:M}}return null}return null},Is=(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=e;if(t&&t[(t==null?void 0:t.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:z,selections:[...t]};return{id:G.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Cs;exports.AddMergeUndoMutationFactory=ie;exports.AddMergeUndoSelectionsOperationFactory=Is;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=we;exports.COMMAND_LISTENER_SKELETON_CHANGE=ds;exports.COMMAND_LISTENER_VALUE_CHANGE=ls;exports.ClearSelectionAllCommand=rt;exports.ClearSelectionContentCommand=Rt;exports.ClearSelectionFormatCommand=st;exports.CopySheetCommand=mn;exports.DeleteRangeMoveLeftCommand=at;exports.DeleteRangeMoveUpCommand=ct;exports.DeltaColumnWidthCommand=kt;exports.DeltaRowHeightCommand=Qn;exports.EffectRefRangId=W;exports.EmptyMutation=ro;exports.INTERCEPTOR_POINT=be;exports.INumfmtService=ye;exports.InsertColAfterCommand=Mn;exports.InsertColBeforeCommand=pn;exports.InsertColCommand=Ae;exports.InsertColMutation=Re;exports.InsertColMutationUndoFactory=_t;exports.InsertRangeMoveDownCommand=ut;exports.InsertRangeMoveRightCommand=dt;exports.InsertRowAfterCommand=fn;exports.InsertRowBeforeCommand=In;exports.InsertRowCommand=Ne;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=Ut;exports.InsertSheetCommand=wn;exports.InsertSheetMutation=Ce;exports.InsertSheetUndoMutationFactory=pt;exports.MAX_CELL_PER_SHEET_KEY=so;exports.MoveColsCommand=Tt;exports.MoveColsMutation=We;exports.MoveRangeCommand=it;exports.MoveRangeMutation=Be;exports.MoveRowsCommand=bt;exports.MoveRowsMutation=Ve;exports.NORMAL_SELECTION_PLUGIN_NAME=z;exports.OperatorType=F;exports.RangeMergeUtil=Ur;exports.RemoveColCommand=mt;exports.RemoveColMutation=Me;exports.RemoveMergeUndoMutationFactory=Q;exports.RemoveNumfmtMutation=Ht;exports.RemoveRowCommand=lt;exports.RemoveRowMutation=pe;exports.RemoveSheetCommand=Et;exports.RemoveSheetMutation=je;exports.RemoveSheetUndoMutationFactory=ln;exports.RemoveWorksheetMergeCommand=Tn;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=Hn;exports.ResetTextColorCommand=jn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=gs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=ms;exports.SelectionMoveType=un;exports.SetBackgroundColorCommand=Fn;exports.SetBoldCommand=mr;exports.SetBorderBasicCommand=En;exports.SetBorderColorCommand=Nn;exports.SetBorderCommand=Pe;exports.SetBorderPositionCommand=Dn;exports.SetBorderStyleCommand=On;exports.SetColHiddenCommand=Pn;exports.SetColHiddenMutation=Te;exports.SetColVisibleMutation=Ee;exports.SetColWidthCommand=xt;exports.SetFontFamilyCommand=Sr;exports.SetFontSizeCommand=Cr;exports.SetFrozenCommand=xn;exports.SetFrozenMutation=he;exports.SetFrozenMutationFactory=Ot;exports.SetHorizontalTextAlignCommand=Gn;exports.SetItalicCommand=gr;exports.SetNumfmtMutation=gt;exports.SetRangeValuesCommand=Ie;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=le;exports.SetRowHeightCommand=eo;exports.SetRowHiddenCommand=Bn;exports.SetRowHiddenMutation=Oe;exports.SetRowVisibleMutation=De;exports.SetSelectedColsVisibleCommand=An;exports.SetSelectedRowsVisibleCommand=Ln;exports.SetSelectionsOperation=G;exports.SetSpecificColsVisibleCommand=Dt;exports.SetSpecificRowsVisibleCommand=Nt;exports.SetStrikeThroughCommand=vr;exports.SetStyleCommand=Y;exports.SetTabColorCommand=Yn;exports.SetTabColorMutation=xe;exports.SetTextColorCommand=Wn;exports.SetTextRotationCommand=qn;exports.SetTextWrapCommand=zn;exports.SetUnderlineCommand=hr;exports.SetVerticalTextAlignCommand=$n;exports.SetWorksheetActivateCommand=At;exports.SetWorksheetActiveOperation=He;exports.SetWorksheetColWidthMutation=ce;exports.SetWorksheetColWidthMutationFactory=Pt;exports.SetWorksheetHideCommand=Jn;exports.SetWorksheetHideMutation=ve;exports.SetWorksheetNameCommand=Lt;exports.SetWorksheetNameMutation=tt;exports.SetWorksheetOrderCommand=Xn;exports.SetWorksheetOrderMutation=Le;exports.SetWorksheetRowAutoHeightMutation=Vt;exports.SetWorksheetRowAutoHeightMutationFactory=wr;exports.SetWorksheetRowHeightMutation=ue;exports.SetWorksheetRowIsAutoHeightCommand=Wt;exports.SetWorksheetRowIsAutoHeightMutation=oe;exports.SetWorksheetShowCommand=to;exports.SheetEditablePermission=Se;exports.alignToMergedCellsBorders=Fe;exports.convertPrimaryWithCoordToPrimary=Io;exports.convertSelectionDataToRange=vs;exports.createTopMatrixFromMatrix=oo;exports.createTopMatrixFromRanges=no;exports.enUS=Xr;exports.factoryRemoveNumfmtUndoMutation=Er;exports.factorySetNumfmtUndoMutation=Tr;exports.findAllRectangle=jt;exports.followSelectionOperation=me;exports.getAddMergeMutationRangeByType=So;exports.getCellAtRowCol=zo;exports.getCurrentSheetDisabled$=ss;exports.getInsertRangeMutations=wt;exports.getNormalSelectionStyle=hs;exports.getPrimaryForRange=X;exports.getRemoveRangeMutations=yt;exports.handleBaseInsertRange=Ge;exports.handleBaseMoveRowsCols=$t;exports.handleBaseRemoveRange=$e;exports.handleDefaultRangeChangeWithEffectRefCommands=qr;exports.handleDeleteRangeMoveLeft=ho;exports.handleDeleteRangeMoveUp=vo;exports.handleDeleteRangeMutation=Ko;exports.handleIRemoveCol=ao;exports.handleIRemoveRow=co;exports.handleInsertCol=lo;exports.handleInsertRangeMoveDown=mo;exports.handleInsertRangeMoveRight=go;exports.handleInsertRangeMutation=Yo;exports.handleInsertRow=uo;exports.handleMoveCols=zt;exports.handleMoveRange=io;exports.handleMoveRows=Gt;exports.rangeMerge=Ft;exports.rotateRange=de;exports.runRefRangeMutations=ot;exports.setEndForRange=qo;exports.transformCellDataToSelectionData=Ss;exports.transformCellsToRange=nt;exports.zhCN=Co;