@univerjs/sheets 0.1.0-alpha.2 → 0.1.0-beta.0

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 (61) hide show
  1. package/lib/cjs/index.js +1 -3
  2. package/lib/es/index.js +3403 -4183
  3. package/lib/types/basics/interfaces/mutation-interface.d.ts +29 -29
  4. package/lib/types/basics/interfaces/selection-config.d.ts +1 -1
  5. package/lib/types/commands/commands/add-worksheet-merge.command.d.ts +2 -2
  6. package/lib/types/commands/commands/clear-selection-format.command.d.ts +2 -2
  7. package/lib/types/commands/commands/copy-to-worksheet.command.d.ts +3 -3
  8. package/lib/types/commands/commands/copy-worksheet.command.d.ts +2 -2
  9. package/lib/types/commands/commands/delete-range-move-left.command.d.ts +1 -1
  10. package/lib/types/commands/commands/delete-range-move-up.command.d.ts +1 -1
  11. package/lib/types/commands/commands/insert-range-move-down.command.d.ts +1 -1
  12. package/lib/types/commands/commands/insert-range-move-right.command.d.ts +1 -1
  13. package/lib/types/commands/commands/insert-row-col.command.d.ts +7 -5
  14. package/lib/types/commands/commands/insert-sheet.command.d.ts +2 -2
  15. package/lib/types/commands/commands/remove-row-col.command.d.ts +1 -1
  16. package/lib/types/commands/commands/remove-sheet.command.d.ts +2 -2
  17. package/lib/types/commands/commands/set-col-visible.command.d.ts +2 -2
  18. package/lib/types/commands/commands/set-hide-gridlines.command.d.ts +2 -2
  19. package/lib/types/commands/commands/set-range-values.command.d.ts +5 -5
  20. package/lib/types/commands/commands/set-row-visible.command.d.ts +2 -2
  21. package/lib/types/commands/commands/set-style.command.d.ts +2 -2
  22. package/lib/types/commands/commands/set-worksheet-activate.command.d.ts +2 -2
  23. package/lib/types/commands/commands/set-worksheet-hide.command.d.ts +1 -1
  24. package/lib/types/commands/commands/set-worksheet-name.command.d.ts +2 -2
  25. package/lib/types/commands/commands/set-worksheet-order.command.d.ts +2 -2
  26. package/lib/types/commands/commands/set-worksheet-right-to-left.command.d.ts +2 -2
  27. package/lib/types/commands/commands/set-worksheet-row-height.command.d.ts +2 -1
  28. package/lib/types/commands/commands/utils/selection-utils.d.ts +42 -0
  29. package/lib/types/commands/mutations/delete-range.mutation.d.ts +1 -1
  30. package/lib/types/commands/mutations/insert-range.mutation.d.ts +2 -2
  31. package/lib/types/commands/mutations/move-range.mutation.d.ts +5 -5
  32. package/lib/types/commands/mutations/move-rows-cols.mutation.d.ts +4 -4
  33. package/lib/types/commands/mutations/numfmt-mutation.d.ts +5 -5
  34. package/lib/types/commands/mutations/set-col-visible.mutation.d.ts +8 -8
  35. package/lib/types/commands/mutations/set-frozen.mutation.d.ts +2 -2
  36. package/lib/types/commands/mutations/set-hide-gridlines.mutatiom.d.ts +2 -2
  37. package/lib/types/commands/mutations/set-range-values.mutation.d.ts +4 -4
  38. package/lib/types/commands/mutations/set-row-visible.mutation.d.ts +8 -8
  39. package/lib/types/commands/mutations/set-tab-color.mutation.d.ts +2 -2
  40. package/lib/types/commands/mutations/set-worksheet-col-width.mutation.d.ts +4 -5
  41. package/lib/types/commands/mutations/set-worksheet-config.mutation.d.ts +2 -2
  42. package/lib/types/commands/mutations/set-worksheet-hide.mutation.d.ts +2 -2
  43. package/lib/types/commands/mutations/set-worksheet-name.mutation.d.ts +2 -2
  44. package/lib/types/commands/mutations/set-worksheet-order.mutation.d.ts +2 -2
  45. package/lib/types/commands/mutations/set-worksheet-right-to-left.mutation.d.ts +2 -2
  46. package/lib/types/commands/mutations/set-worksheet-row-height.mutation.d.ts +9 -10
  47. package/lib/types/commands/operations/selection.operation.d.ts +2 -2
  48. package/lib/types/commands/operations/set-worksheet-active.operation.d.ts +2 -2
  49. package/lib/types/commands/utils/interface.d.ts +2 -2
  50. package/lib/types/index.d.ts +5 -5
  51. package/lib/types/locale/en-US.d.ts +5 -1
  52. package/lib/types/locale/zh-CN.d.ts +5 -1
  53. package/lib/types/services/numfmt/numfmt.service.d.ts +5 -5
  54. package/lib/types/services/numfmt/type.d.ts +7 -7
  55. package/lib/types/services/permission/permission-point.d.ts +3 -3
  56. package/lib/types/services/permission/sheet-permission.service.d.ts +3 -3
  57. package/lib/types/services/ref-range/ref-range.service.d.ts +3 -3
  58. package/lib/types/services/sheet-interceptor/utils/interceptor.d.ts +2 -2
  59. package/lib/umd/index.js +1 -3
  60. package/package.json +10 -12
  61. package/lib/types/commands/commands/utils/selection-util.d.ts +0 -66
package/lib/umd/index.js CHANGED
@@ -1,3 +1 @@
1
- (function(S,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("@ctrl/tinycolor"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","@ctrl/tinycolor","@univerjs/engine-render"],s):(S=typeof globalThis<"u"?globalThis:S||self,s(S.UniverSheets={},S.UniverCore,S["@wendellhu/redi"],S.rxjs,S.UniverEngineFormula,S.tinycolor,S.UniverEngineRender))})(this,function(S,s,V,Be,pt,So,fo){"use strict";var Vs=Object.defineProperty;var Ls=(S,s,V)=>s in S?Vs(S,s,{enumerable:!0,configurable:!0,writable:!0,value:V}):S[s]=V;var N=(S,s,V)=>(Ls(S,typeof s!="symbol"?s+"":s,V),V);var en;var Co=Object.defineProperty,Io=Object.getOwnPropertyDescriptor,wo=(t,e,o,n)=>{for(var r=n>1?void 0:n?Io(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&Co(e,o,r),r},Ro=(t,e)=>(o,n)=>e(o,n,t);const X="normalSelectionPluginName";var tn=(t=>(t[t.MOVE_START=0]="MOVE_START",t[t.MOVING=1]="MOVING",t[t.MOVE_END=2]="MOVE_END",t))(tn||{});S.SelectionManagerService=class{constructor(e){N(this,"_selectionInfo",new Map);N(this,"_currentSelection",null);N(this,"_selectionMoveStart$",new Be.Subject);N(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());N(this,"_selectionMoving$",new Be.Subject);N(this,"selectionMoving$",this._selectionMoving$.asObservable());N(this,"_selectionMoveEnd$",new Be.BehaviorSubject(null));N(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());N(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,n;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,n;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId})}reset(){var e,o;this._currentSelection!=null&&(this._currentSelection={pluginName:X,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=X,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:2,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},n)=>e.some(({range:r},i)=>n===i?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:o,unitId:n,sheetId:r}=e;return(a=(i=this._selectionInfo.get(o))==null?void 0:i.get(n))==null?void 0:a.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:n,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const l=this._selectionInfo.get(n);l.has(r)||l.set(r,new Map);const c=l.get(r);c.has(i)?c.get(i).push(...a):c.set(i,[...a]),o&&this._refresh({pluginName:n,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:o,unitId:n,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const a=this._selectionInfo.get(o);a.has(n)||a.set(n,new Map);const l=a.get(n);if(!l.has(r))l.set(r,i);else{const c=l.get(r);c.splice(0,c.length,...i)}}_clearByParam(e){const o=this._getSelectionDatas(e);o==null||o.splice(0),this._refresh(e)}_removeByParam(e,o){const n=this._getSelectionDatas(o);n==null||n.splice(e,1),this._refresh(o)}},S.SelectionManagerService=wo([Ro(0,V.Inject(s.ThemeService))],S.SelectionManagerService);const Mo=s.createInterceptorKey("CELL_CONTENT"),po=s.createInterceptorKey("PERMISSION"),_e={CELL_CONTENT:Mo,PERMISSION:po};var yo=Object.defineProperty,ko=Object.getOwnPropertyDescriptor,bo=(t,e,o,n)=>{for(var r=n>1?void 0:n?ko(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&yo(e,o,r),r},_o=(t,e)=>(o,n)=>e(o,n,t);S.SheetInterceptorService=class extends s.Disposable{constructor(o){super();N(this,"_interceptorsByName",new Map);N(this,"_commandInterceptors",[]);N(this,"_workbookDisposables",new Map);N(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(n=>{this._interceptWorkbook(n)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(n=>this._disposeWorkbookInterceptor(n)))),this.intercept(_e.CELL_CONTENT,{priority:-1,handler(n,r){const i=r.worksheet.getCellRaw(r.row,r.col);return n?{...i,...n}:i}}),this.intercept(_e.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((n,r)=>(r.priority??0)-(n.priority??0)),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const n=this._commandInterceptors.map(r=>r.getMutations(o));return{undos:n.map(r=>r.undos).flat(),redos:n.map(r=>r.redos).flat()}}intercept(o,n){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(n),this._interceptorsByName.set(r,i.sort((a,l)=>(l.priority??0)-(a.priority??0))),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(o){const n=o,r=this._interceptorsByName.get(n);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const n=new s.DisposableCollection,r=o.getUnitId(),i=this,a=l=>{const c=l.getSheetId();l.__interceptViewModel(d=>{const u=new s.DisposableCollection,m=d.registerCellContentInterceptor({getCell(h,g){return i.fetchThroughInterceptors(_e.CELL_CONTENT)(l.getCellRaw(h,g),{workbookId:r,worksheetId:c,row:h,col:g,worksheet:l,workbook:o})}});u.add(m),i._worksheetDisposables.set(nn(r,l),u)})};o.getSheets().forEach(l=>a(l)),n.add(s.toDisposable(o.sheetCreated$.subscribe(l=>a(l)))),n.add(s.toDisposable(o.sheetDisposed$.subscribe(l=>this._disposeSheetInterceptor(r,l)))),n.add(s.toDisposable(()=>o.getSheets().forEach(l=>this._disposeSheetInterceptor(r,l))))}_disposeWorkbookInterceptor(o){const n=o.getUnitId(),r=this._workbookDisposables.get(n);r&&(r.dispose(),this._workbookDisposables.delete(n))}_disposeSheetInterceptor(o,n){const r=nn(o,n),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}},S.SheetInterceptorService=bo([s.OnLifecycle(s.LifecycleStages.Starting,S.SheetInterceptorService),_o(0,s.IUniverInstanceService)],S.SheetInterceptorService);function nn(t,e){return`${t}|${e.getSheetId()}`}const Se=(t,e)=>{const{workbookId:o,worksheetId:n,cellValue:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(a==null)throw new Error("workbook is null error!");const l=a.getSheetBySheetId(n);if(l==null)throw new Error("worksheet is null error!");const c=l.getCellMatrix(),d=a.getStyles(),u=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((h,g,v)=>{const f=s.Tools.deepClone(c==null?void 0:c.getValue(h,g))||{},C=d.getStyleByCell(f),w=Do(C,v&&v.s?v.s:null);f.s=w,u.setValue(h,g,Uo(f))}),{...s.Tools.deepClone(e),options:{},cellValue:u.getData()}};function Uo(t){return t==null?null:(t.f===void 0&&(t.f=null),t.si===void 0&&(t.si=null),t.p===void 0&&(t.p=null),t.v===void 0&&(t.v=null),t.t===void 0&&(t.t=null),t.s===void 0&&(t.s=null),t)}const q={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(t,e)=>{const{cellValue:o,worksheetId:n,workbookId:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const l=a.getSheetBySheetId(n);if(!l)return!1;const c=l.getCellMatrix(),d=a.getStyles();return new s.ObjectMatrix(o).forValue((m,h,g)=>{if(!g)c==null||c.setValue(m,h,{});else{const v=c.getValue(m,h)||{},f=g.t===s.CellValueType.FORCE_STRING?g.t:To(g.v===void 0?v.v:g.v);if(g.f!==void 0&&(v.f=g.f),g.si!==void 0&&(v.si=g.si),g.p!==void 0&&(v.p=g.p),g.v!==void 0&&(v.v=f===s.CellValueType.NUMBER?Number(g.v):g.v),v.v!==void 0&&(v.t=f),g.s!==void 0){const C=d.getStyleByCell(v);C==null&&delete v.s,typeof g.s=="string"&&(g.s=d.get(g.s));const w=on(C,g.s?g.s:null);w&&s.Tools.removeNull(w),s.Tools.isEmptyObject(w)?delete v.s:v.s=d.setValue(w),!g.p&&v.p&&Po(v.p,g.s?g.s:null)}c.setValue(m,h,s.Tools.removeNull(v))}}),!0}};function To(t){return t===null?null:typeof t=="string"?No(t)?s.CellValueType.NUMBER:s.CellValueType.STRING:typeof t=="number"?s.CellValueType.NUMBER:typeof t=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function Do(t,e){return Eo(t,e)}function Eo(t,e){if(!e||!Object.keys(e).length)return t;const o=s.Tools.deepClone(t)||{};for(const n in e)n==="bd"?o[n]=Oo(o[n]||{},e[n]):n in o||(o[n]=null);return o}function Oo(t,e){if(!e||!Object.keys(e).length)return t;for(const o in e)o in t||(t[o]=null);return t}function on(t,e,o=!1){if(e===null)return e;if(e===void 0)return t;const n=s.Tools.deepClone(t)||{};if(n){for(const r in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in n&&r==="bd"?n[r]=Object.assign(n[r],e[r]):n[r]=e[r]);return"cl"in n&&("ul"in n&&(n.ul.cl=n.cl),"ol"in n&&(n.ol.cl=n.cl),"st"in n&&(n.st.cl=n.cl)),n}}function Po(t,e){var o,n;(n=(o=t.body)==null?void 0:o.textRuns)==null||n.forEach(r=>{r.ts||(r.ts={});const i=r.ts||{},a=on(i,e,!0);a&&s.Tools.removeNull(a),s.Tools.isEmptyObject(a)?delete r.ts:r.ts=a})}function Ao(t){return/^-?\d+(\.\d+)?$/.test(t)}function No(t){return Ao(t)?Number(t)<=Number.MAX_SAFE_INTEGER:!1}const Ze={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),n=t.get(S.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(S.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),l=a.getUnitId(),d=a.getActiveSheet().getSheetId(),u=n.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m=[],h=[],g={worksheetId:d,workbookId:l,cellValue:Vo(u)},v=Se(t,g);m.push({id:q.id,params:g}),h.push({id:q.id,params:v});const f=i.onCommandExecute({id:Ze.id});return m.push(...f.redos),h.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:m}),!0):!1}};function Vo(t){const e=new s.ObjectMatrix;return t.forEach(o=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=o;for(let l=n;l<=i;l++)for(let c=r;c<=a;c++)e.setValue(l,c,null)}),e.getData()}const yt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),n=t.get(S.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(S.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),l=a.getUnitId(),d=a.getActiveSheet().getSheetId(),u=n.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m={worksheetId:d,workbookId:l,cellValue:Lo(u)},h=Se(t,m),g=i.onCommandExecute({id:yt.id}),v=[{id:q.id,params:m},...g.redos],f=[...g.undos,{id:q.id,params:h}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:v}),!0):!1}};function Lo(t){const e=new s.ObjectMatrix;return t.forEach(o=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=o;for(let l=n;l<=i;l++)for(let c=r;c<=a;c++)e.setValue(l,c,{v:null,p:null,f:null,si:null})}),e.getData()}const Qe={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),n=t.get(S.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(S.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),l=a.getUnitId(),d=a.getActiveSheet().getSheetId(),u=n.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m=[],h=[],g={worksheetId:d,workbookId:l,cellValue:Bo(u)},v=Se(t,g);m.push({id:q.id,params:g}),h.push({id:q.id,params:v});const f=i.onCommandExecute({id:Qe.id});return m.push(...f.redos),h.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:m}),!0):!1}};function Bo(t){const e=new s.ObjectMatrix;return t.forEach(o=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=o;for(let l=n;l<=i;l++)for(let c=r;c<=a;c++)e.setValue(l,c,{s:null})}),e.getData()}const kt=(t,e)=>({worksheetId:e.sheet.id,workbookId:e.workbookId}),fe={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService),{sheet:n,index:r,workbookId:i}=e,a=o.getUniverSheetInstance(i);return a?a.addWorksheet(n.id,r,n):!1}},rn=(t,e)=>{const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{worksheetId:r,workbookId:i}=e,a=n.getSheetBySheetId(r).getConfig();return{index:n.getConfig().sheetOrder.findIndex(d=>d===r),sheet:a,workbookId:i}},We={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService),{worksheetId:n,workbookId:r}=e,i=o.getUniverSheetInstance(r);if(!i)return!1;const a=i.getWorksheets(),l=i.getConfig(),{sheets:c}=l;if(c[n]==null)throw new Error(`Remove sheet fail ${n} does not exist`);const d=l.sheetOrder.findIndex(u=>u===n);return delete c[n],l.sheetOrder.splice(d,1),a.delete(n),!0}},sn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService);let i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=e.workbookId??i,a=e.worksheetId??a);const l=r.getUniverSheetInstance(i);if(!l)return!1;const c=l.getSheetBySheetId(a);if(!c)return!1;const d=s.Tools.deepClone(c.getConfig());d.name+="副本",d.id=s.Tools.generateRandomId();const m={index:l.getSheetIndex(c)+1,sheet:d,workbookId:i},h=kt(t,m);return o.syncExecuteCommand(fe.id,m)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:h}],redoMutations:[{id:fe.id,params:m}]}),!0):!1}},et=(t,e)=>{const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.worksheetId);if(!n)return null;const r=n.getCellMatrix(),i=new s.ObjectMatrix,a=n.getConfig().rowCount,l=n.getConfig().columnCount;for(let c=0;c<e.ranges.length;c++){const{startRow:d,endRow:u,startColumn:m,endColumn:h}=e.ranges[c];if(e.shiftDimension===s.Dimension.ROWS){for(let g=d;g<=a;g++)for(let v=m;v<=h;v++)if(g<=u){const f=r.getValue(g,v);i.setValue(g,v,f)}}else if(e.shiftDimension===s.Dimension.COLUMNS)for(let g=d;g<=u;g++)for(let v=m;v<=l;v++)if(v<=h){const f=r.getValue(g,v);i.setValue(g,v,f)}else for(let f=0;f<=h;f++){const C=r.getValue(g,v);i.setValue(g,v+f,C)}}return{...s.Tools.deepClone(e),cellValue:i.getData()}},ee={id:"sheet.mutation.delete-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r,shiftDimension:i}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!l)return!1;const c=l.getSheetBySheetId(n);if(!c)return!1;const d=c.getCellMatrix(),u=c.getLastRowWithContent(),m=c.getLastColumnWithContent();return an(d,r,u,m,i),!0}};function an(t,e,o,n,r){for(let i=0;i<e.length;i++){const{startRow:a,endRow:l,startColumn:c,endColumn:d}=e[i],u=l-a+1,m=d-c+1;if(r===s.Dimension.ROWS)for(let h=a;h<=o;h++)for(let g=c;g<=d;g++){const v=t.getValue(h+u,g);v==null?t.realDeleteValue(h,g):t.setValue(h,g,v)}else if(r===s.Dimension.COLUMNS)for(let h=a;h<=l;h++)for(let g=c;g<=n;g++){const v=t.getValue(h,g+m);v==null?t.realDeleteValue(h,g):t.setValue(h,g,v)}}}const tt=(t,e)=>({workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges,shiftDimension:e.shiftDimension}),te={id:"sheet.mutation.insert-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r,cellValue:i,shiftDimension:a}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)return!1;const d=c.getSheetBySheetId(n);if(!d)return!1;const u=d.getCellMatrix(),m=d.getLastRowWithContent(),h=d.getLastColumnWithContent();return ln(u,r,m,h,a,i),!0}};function ln(t,e,o,n,r,i){for(let a=0;a<e.length;a++){const{startRow:l,endRow:c,startColumn:d,endColumn:u}=e[a];if(r===s.Dimension.ROWS){const m=c-l+1;for(let h=o;h>=l;h--)for(let g=d;g<=u;g++){const v=t.getValue(h,g);v==null?t.realDeleteValue(h+m,g):t.setValue(h+m,g,v)}for(let h=c;h>=l;h--)for(let g=d;g<=u;g++)i?t.setValue(h,g,i[h][g]):t.realDeleteValue(h,g)}else if(r===s.Dimension.COLUMNS){const m=u-d+1;for(let h=l;h<=c;h++)for(let g=n;g>=d;g--){const v=t.getValue(h,g);v==null?t.realDeleteValue(h,g+m):t.setValue(h,g+m,v)}for(let h=l;h<=c;h++)for(let g=u;g>=d;g--)i?t.setValue(h,g,i[h][g]):t.realDeleteValue(h,g)}}}const cn="sheet.command.delete-range-move-left",nt={type:s.CommandType.COMMAND,id:cn,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(S.SelectionManagerService),a=t.get(S.SheetInterceptorService),l=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.ranges;if(d||(d=i.getSelectionRanges()||[]),!(d!=null&&d.length))return!1;const u=r.getUniverSheetInstance(l);if(!u||!u.getSheetBySheetId(c))return!1;const h={ranges:d,worksheetId:c,workbookId:l,shiftDimension:s.Dimension.COLUMNS},g=et(t,h);if(!g)return!1;const v=a.onCommandExecute({id:nt.id,params:{ranges:d}}),f=[{id:ee.id,params:h}],C=[{id:te.id,params:g}];return f.push(...v.redos),C.push(...v.undos),s.sequenceExecute(f,o).result?(n.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},un="sheet.command.delete-range-move-up",ot={type:s.CommandType.COMMAND,id:un,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(S.SelectionManagerService),a=t.get(S.SheetInterceptorService),l=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.ranges;if(d||(d=i.getSelectionRanges()||[]),!(d!=null&&d.length))return!1;const u=r.getUniverSheetInstance(l);if(!u||!u.getSheetBySheetId(c))return!1;const h={ranges:d,worksheetId:c,workbookId:l,shiftDimension:s.Dimension.ROWS},g=et(t,h);if(!g)return!1;const v=a.onCommandExecute({id:ot.id,params:{ranges:d}}),f=[{id:ee.id,params:h}],C=[{id:te.id,params:g}];return f.push(...v.redos),C.push(...v.undos),await s.sequenceExecute(f,o).result?(n.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},bt=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId)==null)throw new Error("universheet is null error!");return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges.map(r=>s.Rectangle.clone(r))}},Ce={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r,rowInfo:i}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(l==null)throw new Error("universheet is null error!");const c=l.getSheetBySheetId(n);if(c==null)throw new Error("worksheet is null error!");const d=c.getRowManager().getRowData(),u={h:c.getConfig().defaultRowHeight,hd:0};for(let m=0;m<r.length;m++){const h=r[m],g=h.startRow,v=h.endRow-h.startRow+1;for(let f=g;f<g+v;f++)i?d.insert(f,i.get(f-h.startRow)??u):d.insert(f,u)}return c.setRowCount(c.getRowCount()+r.reduce((m,h)=>m+h.endRow-h.startRow+1,0)),!0}},_t=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId)==null)throw new Error("universheet is null error!");return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges.map(r=>s.Rectangle.clone(r))}},Ie={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(!r)return!1;const i=r.getColumnManager(),{ranges:a,colInfo:l}=e,c=i.getColumnData().toJSON(),d=new s.ObjectArray(c);for(let u=0;u<a.length;u++){const m=a[u],h=m.startColumn,g=m.endColumn-m.startColumn+1,v=r.getConfig().defaultColumnWidth;for(let f=h;f<h+g;f++){const C={w:v,hd:0};l?d.insert(f,l.get(f-m.startColumn)??C):d.insert(f,C)}}return r.setColumnCount(r.getColumnCount()+a.reduce((u,m)=>u+m.endColumn-m.startColumn+1,0)),!0}},Wo=(t,e)=>{const n=e.getRowManager().getRowData().toJSON(),r=new s.ObjectArray(n),i=new s.ObjectArray;for(let a=0;a<t.ranges.length;a++){const l=t.ranges[a],c=r.slice(l.startRow,l.endRow);i.concat(c)}return{workbookId:t.workbookId,worksheetId:t.worksheetId,ranges:t.ranges,rowInfo:i}},we={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getRowManager().getRowData().toJSON(),l=new s.ObjectArray(a);for(let c=0;c<e.ranges.length;c++){const d=e.ranges[c],u=d.startRow,m=d.endRow;for(let h=u;h<=m;h++)l.splice(h,1)}return r.setRowCount(r.getRowCount()-e.ranges.reduce((c,d)=>c+d.endRow-d.startRow+1,0)),!0}},jo=(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(r==null)throw new Error("worksheet is null error!");const a=r.getColumnManager().getColumnData().toJSON(),l=new s.ObjectArray(a),c=new s.ObjectArray;for(let d=0;d<e.ranges.length;d++){const u=e.ranges[d],m=l.slice(u.startColumn,u.endColumn);c.concat(m)}return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges,colInfo:c}},Re={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getColumnManager().getColumnData().toJSON(),l=new s.ObjectArray(a);for(let c=0;c<e.ranges.length;c++){const d=e.ranges[c],u=d.startColumn,m=d.endColumn;for(let h=u;h<=m;h++)l.splice(h,1)}return r.setColumnCount(r.getColumnCount()-e.ranges.reduce((c,d)=>c+d.endColumn-d.startColumn+1,0)),!0}};function Fo(t,e,o){let n=null;return o.getMatrixWithMergedCells(t,e,t,e).forValue((i,a,l)=>(n={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:l.rowSpan!==void 0||l.colSpan!==void 0,isMergedMainCell:l.rowSpan!==void 0&&l.colSpan!==void 0,endRow:i+(l.rowSpan!==void 0?l.rowSpan-1:0),endColumn:a+(l.colSpan!==void 0?l.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),n||{actualColumn:e,actualRow:t,startRow:t,startColumn:e,endRow:t,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function Ue(t,e,o,n,r=!0,i=1,a=!0){let l={...t};n==null&&(n={startRow:0,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1});let c;switch(e){case s.Direction.UP:for(c=t.startRow-i;c>-1&&!o.getRowVisible(c);)c-=1;c>=n.startRow?(l.startRow=c,l.endRow=c):a&&(l.startRow=n.endRow,l.endRow=n.endRow,r&&(l=Ue(l,s.Direction.LEFT,o,n,!1)));break;case s.Direction.DOWN:for(c=t.endRow+i;c<o.getRowCount()&&!o.getRowVisible(c);)c+=1;c<=n.endRow?(l.startRow=c,l.endRow=c):a&&(l.startRow=n.startRow,l.endRow=n.startRow,r&&(l=Ue(l,s.Direction.RIGHT,o,n,!1)));break;case s.Direction.LEFT:for(c=t.startColumn-i;c>-1&&!o.getColVisible(c);)c-=1;c>=n.startColumn?(l.startColumn=c,l.endColumn=c):a&&(l.startColumn=n.endColumn,l.endColumn=n.endColumn,r&&(l=Ue(l,s.Direction.UP,o,n,!1)));break;case s.Direction.RIGHT:for(c=t.endColumn+i;c<o.getColumnCount()&&!o.getColVisible(c);)c+=1;c<=n.endColumn?(l.startColumn=c,l.endColumn=c):a&&(l.startColumn=n.startColumn,l.endColumn=n.startColumn,r&&(l=Ue(l,s.Direction.DOWN,o,n,!1)));break}return l}function Ut(t,e,o){const n={...t},{startRow:r,startColumn:i,endRow:a,endColumn:l}=je(t,e,o);let c=Fe(o,r,i,a,l).hasValue,d=!0,u=!0;for(;u;){if(s.Direction.UP===e){let m=n.startRow-1;for(;m>-1&&!o.getRowVisible(m);)m-=1;if(m===-1){u=!1;break}const{hasValue:h,matrix:g}=Fe(o,m,n.startColumn,m,n.endColumn);if(c&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue(f=>{v=Math.min(f,v)}),n.startRow=v}else n.startRow=m;if(n.endRow=n.startRow,!c&&h){u=!1;break}c=h,d=!1}}if(s.Direction.DOWN===e){let m=n.endRow+1;for(;m<o.getRowCount()&&!o.getRowVisible(m);)m+=1;if(m===o.getRowCount()){u=!1;break}const{hasValue:h,matrix:g}=Fe(o,m,n.startColumn,m,n.endColumn);if(c&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue((f,C,w)=>{v=Math.max(f+(w.rowSpan||1)-1,v)}),n.endRow=v}else n.endRow=m;if(n.startRow=n.endRow,!c&&h){u=!1;break}c=h,d=!1}}if(s.Direction.LEFT===e){let m=n.startColumn-1;for(;m>-1&&!o.getColVisible(m);)m-=1;if(m===-1){u=!1;break}const{hasValue:h,matrix:g}=Fe(o,n.startRow,m,n.endRow,m);if(c&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue((f,C)=>{v=Math.min(C,v)}),n.startColumn=v}else n.startColumn=m;if(n.endColumn=n.startColumn,!c&&h){u=!1;break}c=h,d=!1}}if(s.Direction.RIGHT===e){let m=n.endColumn+1;for(;m<o.getColumnCount()&&!o.getColVisible(m);)m+=1;if(m===o.getColumnCount()){u=!1;break}const{hasValue:h,matrix:g}=Fe(o,n.startRow,m,n.endRow,m);if(c&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue((f,C,w)=>{v=Math.max(C+(w.colSpan||1)-1,v)}),n.endColumn=v}else n.endColumn=m;if(n.startColumn=n.endColumn,!c&&h){u=!1;break}c=h,d=!1}}}return ne(n,o,!0)}function dn(t,e,o){return Ue(t,e,o,void 0,!1,1,!1)}function Ho(t,e,o){const n=Ut(t,e,o);return ne(s.Rectangle.union(n,t),o,!0)}function ne(t,e,o=!0){const n=e.getMatrixWithMergedCells(...s.selectionToArray(t)),r=[];if(n.forValue((a,l,c)=>{if(c.colSpan!==void 0&&c.rowSpan!==void 0){const d={startRow:a,startColumn:l,endRow:a+c.rowSpan-1,endColumn:l+c.colSpan-1};s.Rectangle.contains(t,d)||r.push(d)}}),r.length===0)return t;const i=s.Rectangle.union(t,...r);return o?ne(i,e,o):i}function $o(t,e,o){const n=dn(t,e,o),r={startRow:Math.min(t.startRow,n.startRow),startColumn:Math.min(t.startColumn,n.startColumn),endRow:Math.max(t.endRow,n.endRow),endColumn:Math.max(t.endColumn,n.endColumn)};return ne(s.Rectangle.union(t,r),o)}function xo(t,e,o,n){const r=s.getReverseDirection(o),i=Ut(je(t,r,n),o,n);return o===s.Direction.UP&&i.startRow<=t.startRow?ne({...e,startColumn:t.startColumn,endColumn:t.endColumn},n,!0):o===s.Direction.DOWN&&i.endRow>=t.endRow?ne({...e,startColumn:t.startColumn,endColumn:t.endColumn},n,!0):o===s.Direction.LEFT&&i.startColumn<=t.startColumn?ne({...e,startRow:t.startRow,endRow:t.endRow},n,!0):o===s.Direction.RIGHT&&i.endColumn>=t.endColumn?ne({...e,startRow:t.startRow,endRow:t.endRow},n,!0):s.Rectangle.union(s.Rectangle.clone(e),i)}function Go(t,e,o){const n=s.getReverseDirection(e),r=je(t,n,o),i=je(t,e,o),a=dn(r,e,o);return ne(s.Rectangle.union(i,a),o,!1)}function zo(t,e,o){const{left:n,right:r,up:i,down:a}=e,l=o.getMaxRows(),c=o.getMaxColumns();let d=!0;const u={...t};for(;d;){if(d=!1,i&&u.startRow!==0){const m=u.startRow-1;o.getMatrixWithMergedCells(m,u.startColumn,m,u.endColumn).forValue((g,v,f)=>{f.v&&(u.startRow=Math.min(g,u.startRow),u.startColumn=Math.min(v,u.startColumn),u.endColumn=Math.max(v,u.endColumn),d=!0)})}if(a&&u.endRow!==l-1){const m=u.endRow+1;o.getMatrixWithMergedCells(m,u.startColumn,m,u.endColumn).forValue((g,v,f)=>{f.v&&(u.endRow=Math.max(g+(f.rowSpan!==void 0?f.rowSpan-1:0),u.endRow),u.startColumn=Math.min(v,u.startColumn),u.endColumn=Math.max(v,u.endColumn),d=!0)})}if(n&&u.startRow!==0){const m=u.startColumn-1;o.getMatrixWithMergedCells(u.startRow,m,u.endRow,m).forValue((g,v,f)=>{f.v&&(u.startColumn=Math.min(v,u.startColumn),u.startRow=Math.min(g,u.startRow),u.endRow=Math.max(g,u.endRow),d=!0)})}if(r&&u.endColumn!==c-1){const m=u.endColumn+1;o.getMatrixWithMergedCells(u.startRow,m,u.endRow,m).forValue((g,v,f)=>{f.v&&(u.endColumn=Math.max(v+(f.colSpan!==void 0?f.colSpan-1:0),u.endColumn),u.startRow=Math.min(g,u.startRow),u.endRow=Math.max(g,u.endRow),d=!0)})}}return u}function qo(t){return{startRow:0,startColumn:0,endRow:t.getMaxRows()-1,endColumn:t.getMaxColumns()-1,rangeType:s.RANGE_TYPE.NORMAL}}function je(t,e,o){let n;switch(e){case s.Direction.UP:n={startRow:t.startRow,startColumn:t.startColumn,endRow:t.startRow,endColumn:t.endColumn,rangeType:s.RANGE_TYPE.NORMAL};break;case s.Direction.DOWN:n={startRow:t.endRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:s.RANGE_TYPE.NORMAL};break;case s.Direction.LEFT:n={startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL};break;case s.Direction.RIGHT:n={startRow:t.startRow,startColumn:t.endColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:s.RANGE_TYPE.NORMAL};break;default:throw new Error("Invalid direction")}return ne(n,o,!1)}function Fe(t,e,o,n,r){let i=!1;const a=t.getMatrixWithMergedCells(e,o,n,r).forValue((l,c,d)=>{if(d.v)return i=!0,!1});return{hasValue:i,matrix:a}}function Yo(t,e,o){const n=s.Rectangle.clone(t);if(e==null)return n;switch(o){case s.Direction.UP:case s.Direction.DOWN:n.startColumn=n.endColumn=e.actualColumn;break;case s.Direction.LEFT:case s.Direction.RIGHT:n.startRow=n.endRow=e.actualRow;break}return n}function Ko(t,e,o){const{primary:n,range:r}=t,i=s.Rectangle.clone(r);switch(e){case s.Direction.UP:case s.Direction.DOWN:i.startRow=n.startRow,i.endRow=n.endRow;break;case s.Direction.LEFT:case s.Direction.RIGHT:i.startColumn=n.startColumn,i.endColumn=n.endColumn;break}const a=je(i,e,o);switch(e){case s.Direction.DOWN:return r.startRow<a.startRow;case s.Direction.UP:return r.endRow>a.endRow;case s.Direction.LEFT:return a.endColumn<r.endColumn;case s.Direction.RIGHT:return a.startColumn>r.startColumn}}function ie(t,e){const o=e.getMergedCell(t.startRow,t.startColumn);return o?{...o,actualRow:t.startRow,actualColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.startRow,endColumn:t.startColumn,actualRow:t.startRow,actualColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}function mn(t){const e=[];Object.keys(t).forEach(n=>{const[r,i]=t[n];e.push(r,i)}),e.sort((n,r)=>n-r);let o=0;for(let n=0;n<e.length-1;n++){const r=e[n],a=e[n+1]-r;o+=a}return o+1}const Jo="sheet.command.insert-range-move-down",rt={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(S.SelectionManagerService),l=t.get(S.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const c=r.getCurrentUniverSheetInstance().getUnitId(),d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let u=e==null?void 0:e.ranges;if(u||(u=a.getSelectionRanges()||[]),!(u!=null&&u.length))return!1;const m=r.getUniverSheetInstance(c);if(!m)return!1;const h=m.getSheetBySheetId(d);if(!h)return!1;const g=[],v=[],f=new s.ObjectMatrix;for(let y=0;y<u.length;y++){const{startRow:T,endRow:L,startColumn:P,endColumn:G}=u[y];for(let H=T;H<=L;H++)for(let _=P;_<=G;_++)f.setValue(H,_,{v:""})}const C={ranges:u,worksheetId:d,workbookId:c,shiftDimension:s.Dimension.ROWS,cellValue:f.getData()};g.push({id:te.id,params:C});const w=tt(t,C);v.push({id:ee.id,params:w});let R=!1,k=0;const M=h.getMaxRows()-1,p={};for(let y=0;y<u.length;y++){const{startRow:T,endRow:L,startColumn:P,endColumn:G}=u[y];p[`${y}`]=[T,L];for(let H=P;H<=G;H++){const _=h.getCell(M,H),$=_==null?void 0:_.v;if($&&$!==""){R=!0,k=h.getRowHeight(M);break}}}const I=mn(p);if(R){const y={startRow:M,endRow:M,startColumn:u[0].startColumn,endColumn:u[0].endColumn},T={workbookId:c,worksheetId:d,ranges:[y],rowInfo:new s.ObjectArray(new Array(I).fill(void 0).map(()=>({h:k,hd:s.BooleanNumber.FALSE})))};g.push({id:Ce.id,params:T});const L=bt(t,T);v.push({id:we.id,params:L})}const b=l.onCommandExecute({id:rt.id,params:{ranges:u}});return g.push(...b.redos),v.push(...b.undos),s.sequenceExecute(g,o)?(n.pushUndoRedo({unitID:c,undoMutations:v.reverse(),redoMutations:g}),!0):!1}},hn="sheet.command.insert-range-move-right",st={type:s.CommandType.COMMAND,id:hn,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(S.SelectionManagerService),l=t.get(S.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const c=r.getCurrentUniverSheetInstance().getUnitId(),d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let u=e==null?void 0:e.ranges;if(u||(u=a.getSelectionRanges()||[]),!(u!=null&&u.length))return!1;const m=r.getUniverSheetInstance(c);if(!m)return!1;const h=m.getSheetBySheetId(d);if(!h)return!1;const g=[],v=[],f=new s.ObjectMatrix;for(let y=0;y<u.length;y++){const{startRow:T,endRow:L,startColumn:P,endColumn:G}=u[y];for(let H=T;H<=L;H++)for(let _=P;_<=G;_++)f.setValue(H,_,{v:""})}const C={ranges:u,worksheetId:d,workbookId:c,shiftDimension:s.Dimension.COLUMNS,cellValue:f.getData()};g.push({id:te.id,params:C});const w=tt(t,C);v.push({id:ee.id,params:w});let R=!1,k=0;const M=h.getMaxColumns()-1,p={};for(let y=0;y<u.length;y++){const{startRow:T,endRow:L,startColumn:P,endColumn:G}=u[y];p[`${y}`]=[P,G];for(let H=T;H<=L;H++){const _=h.getCell(H,M),$=_==null?void 0:_.v;if($&&$!==""){R=!0,k=h.getColumnWidth(M);break}}}const I=mn(p);if(R){const y={startRow:u[0].startRow,endRow:u[0].endRow,startColumn:M,endColumn:M},T={workbookId:c,worksheetId:d,ranges:[y],colInfo:new s.ObjectArray(new Array(I).fill(void 0).map(()=>({w:k,hd:s.BooleanNumber.FALSE})))};g.push({id:Ie.id,params:T});const L=_t(t,T);v.push({id:Re.id,params:L})}const b=l.onCommandExecute({id:st.id,params:{ranges:u}});return g.push(...b.redos),v.push(...b.undos),s.sequenceExecute(g,o).result?(n.pushUndoRedo({unitID:c,undoMutations:v.reverse(),redoMutations:g}),!0):!1}},gn="sheet.command.insert-row",Te={type:s.CommandType.COMMAND,id:gn,handler:async(t,e)=>{var T;const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),a=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId).getSheetBySheetId(e.worksheetId),{range:l,direction:c,workbookId:d,worksheetId:u}=e,{startRow:m,endRow:h,startColumn:g,endColumn:v}=l,f=c===s.Direction.UP?m:m-1,C=a.getRowHeight(f),w={workbookId:d,worksheetId:u,ranges:[l],rowInfo:new s.ObjectArray(new Array(h-m+1).fill(void 0).map(()=>({h:C,hd:s.BooleanNumber.FALSE})))},R=bt(t,w),k=new s.ObjectMatrix,M=a.getCellMatrix(),p=new Map;for(let L=m;L<=h;L++)for(let P=g;P<=v;P++){p.has(P)||p.set(P,(T=M.getValue(f,P))==null?void 0:T.s);const G=p.get(P);k.setValue(L,P,{v:"",s:G})}const I={workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:[e.range],shiftDimension:s.Dimension.ROWS,cellValue:k.getData()},b=tt(t,I),O=t.get(S.SheetInterceptorService).onCommandExecute({id:Te.id,params:e});return s.sequenceExecute([{id:Ce.id,params:w},{id:te.id,params:I},...O.redos],o).result?(n.pushUndoRedo({unitID:e.workbookId,undoMutations:[...O.undos,{id:ee.id,params:b},{id:we.id,params:R}],redoMutations:[{id:Ce.id,params:w},{id:te.id,params:I},...O.redos]}),!0):!1}},vn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async t=>{var m;const o=(m=t.get(S.SelectionManagerService).getSelections())==null?void 0:m.map(h=>h.range);let n;if((o==null?void 0:o.length)===1)n=o[0];else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const l=i.getUnitId(),c=a.getSheetId(),d=n.endRow-n.startRow+1,u={workbookId:l,worksheetId:c,direction:s.Direction.UP,range:{startRow:n.startRow,endRow:n.startRow+d-1,startColumn:0,endColumn:a.getColumnCount()-1}};return t.get(s.ICommandService).executeCommand(Te.id,u)}},Sn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async t=>{var m;const o=(m=t.get(S.SelectionManagerService).getSelections())==null?void 0:m.map(h=>h.range);let n;if((o==null?void 0:o.length)===1)n=o[0];else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const l=i.getUnitId(),c=a.getSheetId(),d=n.endRow-n.startRow+1,u={workbookId:l,worksheetId:c,direction:s.Direction.DOWN,range:{startRow:n.endRow+1,endRow:n.endRow+d,startColumn:0,endColumn:a.getColumnCount()-1}};return t.get(s.ICommandService).executeCommand(Te.id,u)}},fn="sheet.command.insert-col",De={type:s.CommandType.COMMAND,id:fn,handler:async(t,e)=>{var L;const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(S.SheetInterceptorService),{range:a,direction:l,worksheetId:c,workbookId:d}=e,{startRow:u,endRow:m,startColumn:h,endColumn:g}=e.range,f=r.getUniverSheetInstance(e.workbookId).getSheetBySheetId(e.worksheetId),C=l===s.Direction.LEFT?h:h-1,w=f.getColumnWidth(C),R={workbookId:d,worksheetId:c,ranges:[a],colInfo:new s.ObjectArray(new Array(g-h+1).fill(void 0).map(()=>({w,hd:s.BooleanNumber.FALSE})))},k=_t(t,R),M=new s.ObjectMatrix,p=f.getCellMatrix(),I=new Map;for(let P=u;P<=m;P++)for(let G=h;G<=g;G++){I.has(P)||I.set(P,(L=p.getValue(P,C))==null?void 0:L.s);const H=I.get(P);M.setValue(P,G,{v:"",s:H})}const b={workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:[e.range],shiftDimension:s.Dimension.COLUMNS,cellValue:M.getData()},O=tt(t,b),y=i.onCommandExecute({id:De.id,params:e});return s.sequenceExecute([{id:Ie.id,params:R},{id:te.id,params:b},...y.redos],o).result?(n.pushUndoRedo({unitID:e.workbookId,undoMutations:[...y.undos,{id:ee.id,params:O},{id:Re.id,params:k}],redoMutations:[{id:Ie.id,params:R},{id:te.id,params:b},...y.redos]}),!0):!1}},Cn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async t=>{const o=t.get(S.SelectionManagerService).getSelections();let n;if((o==null?void 0:o.length)===1)n=o[0].range;else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const l=i.getUnitId(),c=a.getSheetId(),d=n.endColumn-n.startColumn+1,u={workbookId:l,worksheetId:c,direction:s.Direction.LEFT,range:{startColumn:n.startColumn,endColumn:n.startColumn+d-1,startRow:0,endRow:a.getLastColumnWithContent()}};return t.get(s.ICommandService).executeCommand(De.id,u)}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async t=>{const o=t.get(S.SelectionManagerService).getSelections();let n;if((o==null?void 0:o.length)===1)n=o[0].range;else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const l=i.getUnitId(),c=a.getSheetId(),d=n.endColumn-n.startColumn+1,u={workbookId:l,worksheetId:c,direction:s.Direction.RIGHT,range:{startColumn:n.endColumn+1,endColumn:n.endColumn+d,startRow:0,endRow:a.getLastRowWithContent()}};return t.get(s.ICommandService).executeCommand(De.id,u)}},wn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService);let i=r.getCurrentUniverSheetInstance().getUnitId();e&&(i=e.workbookId??i);const a=r.getUniverSheetInstance(i);if(!a)return!1;let l=a.getSheets().length,c=s.Tools.deepClone(s.DEFAULT_WORKSHEET);e?(l=e.index??l,e.sheet?c=e.sheet:(c.id=s.Tools.generateRandomId(),c.name=`工作表${++a.getSheets().length}`)):(c.id=s.Tools.generateRandomId(),c.name=`工作表${++a.getSheets().length}`);const d={index:l,sheet:c,workbookId:i},u=kt(t,d);return o.syncExecuteCommand(fe.id,d)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:u}],redoMutations:[{id:fe.id,params:d}]}),!0):!1}},He={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{from:o,to:n}=e;if(!o||!n)return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getSheetBySheetId(e.worksheetId);if(!a)return!1;const l=a.getCellMatrix();return new s.ObjectMatrix(o).forValue((c,d,u)=>{l.setValue(c,d,u)}),new s.ObjectMatrix(n).forValue((c,d,u)=>{l.setValue(c,d,u)}),!0}},Y={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(t,e)=>{const o=t.get(S.SelectionManagerService);if(!e)return!1;const{selections:n,type:r}=e;return o.replace(n,r),!0}},Rn="sheet.command.move-range",it={type:s.CommandType.COMMAND,id:Rn,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(S.SheetInterceptorService),a=r.getCurrentUniverSheetInstance(),l=a.getActiveSheet(),c=a.getUnitId(),d=l.getSheetId(),u=l.getRange(e.fromRange).getValues(),m=u.reduce((p,I,b)=>(I.forEach((O,y)=>{p.setValue(e.fromRange.startRow+b,e.fromRange.startColumn+y,null)}),p),new s.ObjectMatrix),h=u.reduce((p,I,b)=>(I.forEach((O,y)=>{p.setValue(e.fromRange.startRow+b,e.fromRange.startColumn+y,O)}),p),new s.ObjectMatrix),g=u.reduce((p,I,b)=>(I.forEach((O,y)=>{p.setValue(e.toRange.startRow+b,e.toRange.startColumn+y,O)}),p),new s.ObjectMatrix),v=l.getRange(e.toRange).getValues().reduce((p,I,b)=>(I.forEach((O,y)=>{p.setValue(e.toRange.startRow+b,e.toRange.startColumn+y,O)}),p),new s.ObjectMatrix),f={from:m.getMatrix(),to:g.getMatrix(),workbookId:c,worksheetId:d},C={from:h.getMatrix(),to:v.getMatrix(),workbookId:c,worksheetId:d},w=i.onCommandExecute({id:it.id,params:e}),R=[{id:He.id,params:f},...w.redos,{id:Y.id,params:{unitId:c,sheetId:d,pluginName:X,selections:[{range:e.toRange}]}}],k=[{id:Y.id,params:{unitId:c,sheetId:d,pluginName:X,selections:[{range:e.fromRange}]}},...w.undos,{id:He.id,params:C}];return await s.sequenceExecute(R,o).result?(n.pushUndoRedo({unitID:c,undoMutations:k,redoMutations:R}),!0):!1}},ae=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId)==null)throw new Error("universheet is null error!");return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges}},W={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getConfig().mergeData,l=e.ranges;console.log("config merge data",l);for(let c=0;c<l.length;c++)a.push(l[c]);return!0}};function Xo(t,e){const{workbookId:o,worksheetId:n,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,l=r.endRow-r.startRow+1;return a?{workbookId:o,worksheetId:n,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+l,startRow:r.startRow+l}}:{workbookId:o,worksheetId:n,targetRange:s.Rectangle.clone(r),sourceRange:s.Rectangle.clone(i)}}const $e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,sourceRange:r,targetRange:i}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!l)throw new Error("[MoveRowMutation] univerSheet is null!");const c=l.getSheetBySheetId(n);if(!c)throw new Error("[MoveRowMutation] worksheet is null!");const d=r.startRow,u=r.endRow-r.startRow+1,m=i.startRow;return c.getRowManager().getRowData().move(d,u,m),c.getCellMatrix().moveRows(d,u,m),!0}};function Zo(t,e){const{workbookId:o,worksheetId:n,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,l=r.endColumn-r.startColumn+1;return a?{workbookId:o,worksheetId:n,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+l,startColumn:r.startColumn+l}}:{workbookId:o,worksheetId:n,targetRange:s.Rectangle.clone(r),sourceRange:s.Rectangle.clone(i)}}const xe={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,sourceRange:r,targetRange:i}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!l)throw new Error("[MoveColumnMutation] univerSheet is null!");const c=l.getSheetBySheetId(n);if(!c)throw new Error("[MoveColumnMutation] worksheet is null!");const d=r.startColumn,u=r.endColumn-r.startColumn+1,m=i.startColumn;return c.getColumnManager().getColumnData().move(d,u,m),c.getCellMatrix().moveColumns(d,u,m),!0}},Q=(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,l=e.ranges,c=[];for(let d=0;d<l.length;d++)for(let u=a.length-1;u>=0;u--){const m=a[u],h=l[d];s.Rectangle.intersects(m,h)&&c.push(a[u])}return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:c}},j={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getConfig().mergeData,l=e.ranges;for(let c=0;c<l.length;c++)for(let d=a.length-1;d>=0;d--){const u=a[d],m=l[c];s.Rectangle.intersects(u,m)&&a.splice(d,1)}return!0}};function Qo(t,e){return e.getMergeData().some(o=>o.startRow<t&&t<=o.endRow)}function er(t,e){return e.getMergeData().some(o=>o.startColumn<t&&t<=o.endColumn)}const Tt={id:"sheet.command.move-rows",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(S.SelectionManagerService).getSelections(),{fromRow:r,toRow:i}=e,a=n==null?void 0:n.filter(K=>K.range.rangeType===s.RANGE_TYPE.ROW&&K.range.startRow<=r&&r<=K.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const l=t.get(S.SheetInterceptorService),d=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!d)return!1;const u=d.getActiveSheet();if(!u)return!1;const m=d.getUnitId(),h=u.getSheetId(),g=t.get(s.ErrorService),v=a[0].range,f=a[0].primary,C=ne(v,u,!1);if(!s.Rectangle.equals(v,C))return g.emit("Only part of a merged cell is selected."),!1;if(Qo(i,u))return g.emit("Across a merged cell."),!1;const w={...v,startRow:i,endRow:i+v.endRow-v.startRow},R={workbookId:m,worksheetId:h,sourceRange:v,targetRange:w},k=Xo(t,R),M=i-r,p=M<0,I=v.endRow-v.startRow+1,b=s.Tools.deepClone(u.getMergeData());for(let K=0;K<b.length;K++){const x=b[K],{startRow:D,endRow:U}=x;p?s.Rectangle.contains(v,x)?(x.startRow+=M,x.endRow+=M):U<v.startRow&&D>=w.startRow&&(x.startRow+=I,x.endRow+=I):s.Rectangle.contains(v,x)?(x.startRow+=M,x.endRow+=M):v.endRow<D&&U<w.startRow&&(x.startRow-=I,x.endRow-=I)}const O={workbookId:m,worksheetId:h,ranges:s.Tools.deepClone(u.getMergeData())},y=Q(t,O),T={workbookId:m,worksheetId:h,ranges:b},L=ae(t,T),P=p?w:{...w,startRow:w.startRow-I,endRow:w.endRow-I},G={workbookId:m,worksheetId:h,pluginName:X,selections:[{range:P,primary:ie(P,u),style:null}]},H={workbookId:m,worksheetId:h,pluginName:X,selections:[{range:v,primary:f,style:null}]},_=t.get(s.ICommandService),$=l.onCommandExecute({id:Tt.id,params:e}),ce=[{id:$e.id,params:R},{id:j.id,params:O},{id:W.id,params:T},{id:Y.id,params:G},...$.redos],z=[{id:$e.id,params:k},{id:j.id,params:L},{id:W.id,params:y},{id:Y.id,params:H},...$.undos];return s.sequenceExecute(ce,_).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:z,redoMutations:ce}),!0):!1}},Dt={id:"sheet.command.move-cols",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(S.SelectionManagerService).getSelections(),{fromCol:r,toCol:i}=e,a=n==null?void 0:n.filter(K=>K.range.rangeType===s.RANGE_TYPE.COLUMN&&K.range.startColumn<=r&&r<=K.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const l=t.get(S.SheetInterceptorService),d=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!d)return!1;const u=d.getActiveSheet();if(!u)return!1;const m=d.getUnitId(),h=u.getSheetId(),g=t.get(s.ErrorService),v=a[0].range,f=a[0].primary,C=ne(v,u,!1);if(!s.Rectangle.equals(v,C))return g.emit("Only part of a merged cell is selected."),!1;if(er(i,u))return g.emit("Across a merged cell."),!1;const w={...v,startColumn:i,endColumn:i+v.endColumn-v.startColumn},R={workbookId:m,worksheetId:h,sourceRange:v,targetRange:w},k=Zo(t,R),M=v.endColumn-v.startColumn+1,p=i-r,I=p<0,b=s.Tools.deepClone(u.getMergeData());for(let K=0;K<b.length;K++){const x=b[K],{startColumn:D,endColumn:U}=x;I?s.Rectangle.contains(v,x)?(x.startColumn+=p,x.endColumn+=p):U<v.startColumn&&D>=w.startColumn&&(x.startColumn+=M,x.endColumn+=M):s.Rectangle.contains(v,x)?(x.startColumn+=p,x.endColumn+=p):v.endColumn<D&&U<w.startColumn&&(x.startColumn-=M,x.endColumn-=M)}const O={workbookId:m,worksheetId:h,ranges:s.Tools.deepClone(u.getMergeData())},y=Q(t,O),T={workbookId:m,worksheetId:h,ranges:b},L=ae(t,T),P=I?w:{...w,startColumn:w.startColumn-M,endColumn:w.endColumn-M},G={workbookId:m,worksheetId:h,pluginName:X,selections:[{range:P,primary:ie(P,u),style:null}]},H={workbookId:m,worksheetId:h,pluginName:X,selections:[{range:v,primary:f,style:null}]},_=t.get(s.ICommandService),$=l.onCommandExecute({id:Dt.id,params:e}),ce=[{id:xe.id,params:R},{id:j.id,params:O},{id:W.id,params:T},{id:Y.id,params:G},...$.redos],z=[{id:xe.id,params:k},{id:j.id,params:L},{id:W.id,params:y},{id:Y.id,params:H},...$.undos];return s.sequenceExecute(ce,_).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:z,redoMutations:ce}),!0}},Mn="sheet.command.remove-row",at={type:s.CommandType.COMMAND,id:Mn,handler:async(t,e)=>{const o=t.get(S.SelectionManagerService),n=t.get(S.SheetInterceptorService);let r=e==null?void 0:e.ranges;if(!r){const R=o.getSelections();if(!(R!=null&&R.length))return!1;r=R.map(k=>s.Rectangle.clone(k.range))}const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),l=a.getActiveSheet(),c=a.getUnitId(),d=l.getSheetId(),u=l.getMaxColumns()-1;r.forEach(R=>{R.startColumn=0,R.endColumn=u});const m={workbookId:c,worksheetId:d,ranges:r},h=Wo(m,l),g={workbookId:c,worksheetId:d,ranges:r,shiftDimension:s.Dimension.ROWS},v=et(t,g);if(!v)return!1;const f=n.onCommandExecute({id:at.id,params:{ranges:r}}),C=t.get(s.ICommandService);return s.sequenceExecute([{id:ee.id,params:g},{id:we.id,params:m},...f.redos],C).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...f.undos,{id:Ce.id,params:h},{id:te.id,params:v}],redoMutations:[{id:ee.id,params:g},{id:we.id,params:m},...f.redos]}),!0):!1}},pn="sheet.command.remove-col",lt={type:s.CommandType.COMMAND,id:pn,handler:async(t,e)=>{const o=t.get(S.SelectionManagerService),n=t.get(S.SheetInterceptorService);let r=e==null?void 0:e.ranges;if(!r){const R=o.getSelections();if(!(R!=null&&R.length))return!1;r=R.map(k=>s.Rectangle.clone(k.range))}const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),l=a.getActiveSheet(),c=a.getUnitId(),d=l.getSheetId(),u=l.getMaxRows()-1;r.forEach(R=>{R.startRow=0,R.endRow=u});const m={workbookId:c,worksheetId:d,ranges:r},h=jo(t,m),g={workbookId:c,worksheetId:d,ranges:r,shiftDimension:s.Dimension.COLUMNS},v=et(t,g);if(!v)throw new Error;const f=n.onCommandExecute({id:lt.id,params:{ranges:r}}),C=t.get(s.ICommandService);return s.sequenceExecute([{id:Re.id,params:m},{id:ee.id,params:g},...f.redos],C).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...f.undos,{id:Ie.id,params:h},{id:te.id,params:v}],redoMutations:[{id:Re.id,params:m},{id:ee.id,params:g},...f.redos]}),!0):!1}},Et={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(S.SheetInterceptorService);let a=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.workbookId??a,l=e.worksheetId??l);const c=r.getUniverSheetInstance(a);if(!c)return!1;const d=c.getSheetBySheetId(l);if(!d||c.getSheets().length<=1)return!1;const u=c.getSheetIndex(d);c.getConfig().sheetOrder[u+1];const m={worksheetId:l,workbookId:a},h=rn(t,m),g=i.onCommandExecute({id:Et.id,params:{workbookId:a,worksheetId:l}}),v=[{id:We.id,params:m},...g.redos],f=[...g.undos,{id:fe.id,params:h}];return s.sequenceExecute(v,o)?(n.pushUndoRedo({unitID:a,undoMutations:f,redoMutations:v}),!0):!1}},yn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async t=>{const e=t.get(S.SelectionManagerService),o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const d=c.getSheetBySheetId(l);if(!d)return!1;const u={workbookId:a,worksheetId:l,ranges:i};let m=!1;const h=d.getConfig().mergeData;if(i.forEach(f=>{h.forEach(C=>{s.Rectangle.intersects(f,C)&&(m=!0)})}),!m)return!1;const g=Q(t,u);return o.syncExecuteCommand(j.id,u)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:W.id,params:g}],redoMutations:[{id:j.id,params:u}]}),!0):!1}};class Me{constructor(){N(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});N(this,"_borderInfo$",new Be.BehaviorSubject(this._borderInfo));N(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 ct(t,e){const{startRow:o,startColumn:n,endRow:r,endColumn:i}=t;for(let a=o;a<=r;a++)for(let l=n;l<=i;l++)e(a,l)}const kn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(t,e)=>{const{type:o,color:n,style:r}=e.value,i=t.get(s.ICommandService),a=t.get(Me);return a.setType(o),a.setColor(n),a.setStyle(r),i.executeCommand(Ee.id)}},bn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(t,e)=>{if(!e.value)return!1;const o=t.get(s.ICommandService);return t.get(Me).setType(e.value),o.executeCommand(Ee.id)}},_n={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService);return t.get(Me).setStyle(e.value),o.executeCommand(Ee.id)}},Un={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService);return t.get(Me).setColor(e.value),o.executeCommand(Ee.id)}},Ee={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),n=t.get(s.IUniverInstanceService),r=t.get(S.SelectionManagerService),i=t.get(Me),a=r.getSelectionRanges(),l=n.getCurrentUniverSheetInstance(),c=l.getUnitId(),d=l.getActiveSheet(),u=d.getSheetId(),m=d.getConfig().mergeData;if(!(a!=null&&a.length))return!1;const{style:h,color:g,type:v,activeBorderType:f}=i.getBorderInfo();if(!f)return!1;const C=v===s.BorderType.TOP||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,w=v===s.BorderType.LEFT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,R=v===s.BorderType.BOTTOM||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,k=v===s.BorderType.RIGHT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,M=v===s.BorderType.VERTICAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,p=v===s.BorderType.HORIZONTAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,I=a[0],b={startRow:I.startRow-1,startColumn:I.startColumn,endRow:I.startRow-1,endColumn:I.endColumn},O={startRow:I.startRow,startColumn:I.startColumn-1,endRow:I.endRow,endColumn:I.startColumn-1},y={startRow:I.endRow+1,startColumn:I.startColumn,endRow:I.endRow+1,endColumn:I.endColumn},T={startRow:I.startRow,startColumn:I.endColumn+1,endRow:I.endRow,endColumn:I.endColumn+1},L={startRow:I.startRow,startColumn:I.startColumn,endRow:I.startRow,endColumn:I.endColumn},P={startRow:I.startRow,startColumn:I.startColumn,endRow:I.endRow,endColumn:I.startColumn},G={startRow:I.endRow,startColumn:I.startColumn,endRow:I.endRow,endColumn:I.endColumn},H={startRow:I.startRow,startColumn:I.endColumn,endRow:I.endRow,endColumn:I.endColumn},_=new s.ObjectMatrix,$={s:h,cl:{rgb:g}},ce=(D,U)=>{let B=null;return m.forEach(Z=>{s.Rectangle.intersects(Z,{startColumn:U,endColumn:U,startRow:D,endRow:D})&&(B=Z)}),B};function z(D,U,B){D.startRow<0||D.startColumn<0||ct(D,(Z,re)=>{var Je,Xe;const F=ce(Z,re);let be=U;if(F){if(B){const se=s.Tools.deepClone((Je=_.getValue(F.startRow,F.startColumn))==null?void 0:Je.s);be=se!=null&&se.bd?Object.assign(se.bd,U):U}_.setValue(F.startRow,F.startColumn,{s:{bd:be}})}else{if(B){const se=s.Tools.deepClone((Xe=_.getValue(Z,re))==null?void 0:Xe.s);be=se!=null&&se.bd?Object.assign(se.bd,U):U}_.setValue(Z,re,{s:{bd:be}})}})}C&&(z(b,{b:null}),z(L,{t:s.Tools.deepClone($)},!0)),R&&(z(y,{t:null}),z(G,{b:s.Tools.deepClone($)},!0)),w&&(z(O,{r:null}),z(P,{l:s.Tools.deepClone($)},!0)),k&&(z(T,{l:null}),z(H,{r:s.Tools.deepClone($)},!0)),M&&ct(I,(D,U)=>{var Z,re;const B=ce(D,U);if(B){if(B.endColumn!==I.endColumn){const F=(Z=_.getValue(B.startRow,B.startColumn))==null?void 0:Z.s;_.setValue(D,U,{s:{bd:F!=null&&F.bd?Object.assign(F.bd,{r:s.Tools.deepClone($)}):{r:s.Tools.deepClone($)}}})}}else if(U!==I.endColumn){const F=(re=_.getValue(D,U))==null?void 0:re.s;_.setValue(D,U,{s:{bd:F!=null&&F.bd?Object.assign(F.bd,{r:s.Tools.deepClone($)}):{r:s.Tools.deepClone($)}}})}}),p&&ct(I,(D,U)=>{var Z,re;const B=ce(D,U);if(B){if(B.endRow!==I.endRow){const F=(Z=_.getValue(B.startRow,B.startColumn))==null?void 0:Z.s;_.setValue(D,U,{s:{bd:F!=null&&F.bd?Object.assign(F.bd,{b:s.Tools.deepClone($)}):{b:s.Tools.deepClone($)}}})}}else if(D!==I.endRow){const F=(re=_.getValue(D,U))==null?void 0:re.s;_.setValue(D,U,{s:{bd:F!=null&&F.bd?Object.assign(F.bd,{b:s.Tools.deepClone($)}):{b:s.Tools.deepClone($)}}})}}),!C&&!R&&!w&&!k&&!M&&!p&&(z(b,{b:null}),z(L,{t:null},!0),z(y,{t:null}),z(G,{b:null},!0),z(O,{r:null}),z(P,{l:null},!0),z(T,{l:null}),z(H,{r:null},!0),ct(I,(D,U)=>{var Z,re,F,be,Je,Xe,se,vo;const B=ce(D,U);if(B){if(B.endColumn!==I.endColumn){const E=(Z=_.getValue(B.startRow,B.startColumn))==null?void 0:Z.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:null}):{r:null}}})}if(B.startColumn!==I.startColumn){const E=(re=_.getValue(B.startRow,B.startColumn))==null?void 0:re.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:null}):{l:null}}})}if(B.endRow!==I.endRow){const E=(F=_.getValue(B.startRow,B.startColumn))==null?void 0:F.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:null}):{b:null}}})}if(B.startRow!==I.startRow){const E=(be=_.getValue(B.startRow,B.startColumn))==null?void 0:be.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:null}):{t:null}}})}}else{if(U!==I.endColumn){const E=(Je=_.getValue(D,U))==null?void 0:Je.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:null}):{r:null}}})}if(U!==I.startColumn){const E=(Xe=_.getValue(D,U))==null?void 0:Xe.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:null}):{l:null}}})}if(D!==I.endRow){const E=(se=_.getValue(D,U))==null?void 0:se.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:null}):{b:null}}})}if(D!==I.startRow){const E=(vo=_.getValue(D,U))==null?void 0:vo.s;_.setValue(D,U,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:null}):{t:null}}})}}}));const Ke={workbookId:c,worksheetId:u,cellValue:_.getData()},K=Se(t,Ke);return e.syncExecuteCommand(q.id,Ke)?(o.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:K}],redoMutations:[{id:q.id,params:Ke}]}),!0):!1}},tr=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId)==null)throw new Error("universheet is null error!");return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges}},Oe={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!n)return!1;const r=n.getSheetBySheetId(e.worksheetId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let l=a.startColumn;l<a.endColumn+1;l++){const c=r.getColumnOrCreate(l);c!=null&&(c.hd=s.BooleanNumber.TRUE)}}return!0}},nr=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId)==null)throw new Error("universheet is null error!");return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges}},Pe={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!n)return!1;const r=n.getSheetBySheetId(e.worksheetId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let l=a.startColumn;l<a.endColumn+1;l++){const c=r.getColumnOrCreate(l);c!=null&&(c.hd=s.BooleanNumber.FALSE)}}return!0}},Ot={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(n),a={workbookId:o,worksheetId:n,ranges:r},l=nr(t,a),c={workbookId:o,worksheetId:n,pluginName:X,selections:r.map(h=>({range:h,primary:ie(h,i),style:null}))},d={workbookId:o,worksheetId:n,pluginName:X,selections:En(r).map(h=>({range:h,primary:ie(h,i),style:null}))},u=t.get(s.ICommandService);return s.sequenceExecute([{id:Pe.id,params:a},{id:Y.id,params:c}],u).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:l},{id:Y.id,params:d}],redoMutations:[{id:Pe.id,params:a},{id:Y.id,params:c}]}),!0}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async t=>{var d;const o=(d=t.get(S.SelectionManagerService).getSelections())==null?void 0:d.map(u=>u.range).filter(u=>u.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),l=i.getSheetId(),c=o.map(u=>i.getHiddenCols(u.startColumn,u.endColumn)).flat();return t.get(s.ICommandService).executeCommand(Ot.id,{workbookId:a,worksheetId:l,ranges:c})}},Dn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async t=>{var g;const o=(g=t.get(S.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),l=i.getSheetId(),c={workbookId:a,worksheetId:l,ranges:o},d={workbookId:a,worksheetId:l,pluginName:X,selections:En(o).map(v=>({range:v,primary:ie(v,i),style:null}))},u={workbookId:a,worksheetId:l,pluginName:X,selections:o.map(v=>({range:v,primary:ie(v,i),style:null}))},m=t.get(s.ICommandService);if(s.sequenceExecute([{id:Oe.id,params:c},{id:Y.id,params:d}],m).result){const v=t.get(s.IUndoRedoService),f=tr(t,c);return v.pushUndoRedo({unitID:a,undoMutations:[{id:Pe.id,params:f},{id:Y.id,params:u}],redoMutations:[{id:Oe.id,params:c},{id:Y.id,params:d}]}),!0}return!1}};function En(t){return or(t).map(o=>{const n=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:n,endColumn:n}})}function or(t){const e=[];let o;return t.sort((n,r)=>n.startColumn-r.startColumn).forEach(n=>{if(!o){o=n;return}o.endColumn===n.startColumn-1?o.endColumn=n.endColumn:(e.push(o),o=n)}),e.push(o),e}const Pt=(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{workbookId:e.workbookId,worksheetId:e.worksheetId,...a}},ge={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:l,ySplit:c,xSplit:d}=e;return i.freeze={startRow:a,startColumn:l,ySplit:c,xSplit:d},!0}},On={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),l=r.getUniverSheetInstance(i);if(!l)return!1;const c=l.getSheetBySheetId(a);if(!c)return!1;const{startColumn:d,startRow:u,xSplit:m,ySplit:h}=e;if(u>=c.getRowCount()||d>=c.getColumnCount()||m>=c.getColumnCount()||h>=c.getRowCount())return!1;const g={workbookId:i,worksheetId:a,...e},v=Pt(t,g);return o.syncExecuteCommand(ge.id,g)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:ge.id,params:v}],redoMutations:[{id:ge.id,params:g}]}),!0):!1}},rr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async t=>{const e=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),n=t.get(s.IUniverInstanceService),r=n.getCurrentUniverSheetInstance().getUnitId(),i=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),a=n.getUniverSheetInstance(r);if(!a||!a.getSheetBySheetId(i))return!1;const c={workbookId:r,worksheetId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},d=Pt(t,c);return e.syncExecuteCommand(ge.id,c)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:ge.id,params:d}],redoMutations:[{id:ge.id,params:c}]}),!0):!1}},Ge={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(S.SelectionManagerService),a=t.get(S.SheetInterceptorService),{value:l,range:c,workbookId:d=r.getCurrentUniverSheetInstance().getUnitId(),worksheetId:u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,m=c?[c]:i.getSelectionRanges();if(!m||!m.length)return!1;const h=new s.ObjectMatrix;let g;if(s.Tools.isArray(l))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:I,endRow:b,endColumn:O}=m[M];for(let y=0;y<=b-p;y++)for(let T=0;T<=O-I;T++)h.setValue(y+p,T+I,l[y][T])}else if(s.isICellData(l))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:I}=m[M];h.setValue(p,I,l)}else g=l;const v={worksheetId:u,workbookId:d,cellValue:g??h.getMatrix()},f=Se(t,v);if(!a.fetchThroughInterceptors(_e.PERMISSION)(null,{id:Ge.id,params:v}))return!1;const C=o.syncExecuteCommand(q.id,v),{undos:w,redos:R}=a.onCommandExecute({id:Ge.id,params:{...v,range:m}}),k=await s.sequenceExecute([...R],o);return C&&k.result?(n.pushUndoRedo({unitID:d,undoMutations:[{id:q.id,params:f},...w],redoMutations:[{id:q.id,params:v},...R]}),!0):!1}},sr=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId)==null)throw new Error("universheet is null error!");return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges}},Ae={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let l=a.startRow;l<a.endRow+1;l++){const c=r.getRowOrCreate(l);c!=null&&(c.hd=0)}}return!0}},ir=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId)==null)throw new Error("universheet is null error!");return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges}},Ne={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let l=a.startRow;l<a.endRow+1;l++){const c=r.getRowOrCreate(l);c!=null&&(c.hd=1)}}return!0}},At={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r}=e,i=t.get(s.ICommandService),a=t.get(s.IUndoRedoService),l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(n),c={workbookId:o,worksheetId:n,ranges:r},d=sr(t,c),u={workbookId:o,worksheetId:n,pluginName:X,selections:r.map(g=>({range:g,primary:ie(g,l),style:null}))},m={workbookId:o,worksheetId:n,pluginName:X,selections:Nn(r).map(g=>({range:g,primary:ie(g,l),style:null}))};return s.sequenceExecute([{id:Ae.id,params:c},{id:Y.id,params:u}],i).result&&a.pushUndoRedo({unitID:o,undoMutations:[{id:Ne.id,params:d},{id:Y.id,params:m}],redoMutations:[{id:Ae.id,params:c},{id:Y.id,params:u}]}),!0}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async t=>{var d;const e=t.get(S.SelectionManagerService),o=t.get(s.IUniverInstanceService),n=(d=e.getSelections())==null?void 0:d.map(u=>u.range).filter(u=>u.rangeType===s.RANGE_TYPE.ROW);if(!(n!=null&&n.length))return!1;const r=o.getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),l=i.getSheetId(),c=n.map(u=>i.getHiddenRows(u.startRow,u.endRow)).flat();return t.get(s.ICommandService).executeCommand(At.id,{workbookId:a,worksheetId:l,ranges:c})}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async t=>{var f;const e=t.get(S.SelectionManagerService),o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=(f=e.getSelections())==null?void 0:f.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const d=c.getSheetBySheetId(l);if(!d)return!1;const u={workbookId:a,worksheetId:l,ranges:i},m={workbookId:a,worksheetId:l,pluginName:X,selections:Nn(i).map(C=>({range:C,primary:ie(C,d),style:null}))},h={workbookId:a,worksheetId:l,pluginName:X,selections:i.map(C=>({range:C,primary:ie(C,d),style:null}))},g=ir(t,u);return s.sequenceExecute([{id:Ne.id,params:u},{id:Y.id,params:m}],o).result&&n.pushUndoRedo({unitID:a,undoMutations:[{id:Ae.id,params:g},{id:Y.id,params:h}],redoMutations:[{id:Ne.id,params:u},{id:Y.id,params:m}]}),!0}};function Nn(t){return ar(t).map(o=>{const n=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:n,endRow:n}})}function ar(t){const e=[];let o;return t.sort((n,r)=>n.startRow-r.startRow).forEach(n=>{if(!o){o=n;return}n.startRow===o.endRow+1?o.endRow=n.endRow:(e.push(o),o=n)}),e.push(o),e}const J={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(t,e)=>{const o=t.get(s.IUniverInstanceService),{workbookId:n=o.getCurrentUniverSheetInstance().getUnitId(),worksheetId:r=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:i,style:a}=e,l=t.get(s.ICommandService),c=t.get(s.IUndoRedoService),d=t.get(S.SelectionManagerService),u=i?[i]:d.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m=o.getUniverSheetInstance(n);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const g=new s.ObjectMatrix;if(s.Tools.isArray(a.value))for(let M=0;M<u.length;M++){const{startRow:p,endRow:I,startColumn:b,endColumn:O}=u[M];for(let y=0;y<=I-p;y++)for(let T=0;T<=O-b;T++)g.setValue(y+p,T+b,{s:{[a.type]:a.value[y][T]}})}else for(let M=0;M<u.length;M++){const{startRow:p,endRow:I,startColumn:b,endColumn:O}=u[M],y={s:{[a.type]:a.value}};for(let T=p;T<=I;T++)for(let L=b;L<=O;L++)g.setValue(T,L,y)}const v={worksheetId:r,workbookId:n,cellValue:g.getMatrix()},f=Se(t,v),C=l.syncExecuteCommand(q.id,v),{undos:w,redos:R}=t.get(S.SheetInterceptorService).onCommandExecute({id:J.id,params:e}),k=s.sequenceExecute([...R],l);return C&&k.result?(c.pushUndoRedo({unitID:n,undoMutations:[{id:q.id,params:f},...w],redoMutations:[{id:q.id,params:v},...R]}),!0):!1}},lr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async t=>{const e=t.get(S.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:n,actualColumn:r}=e.primary,a={style:{type:"bl",value:o.getRange(n,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(J.id,a)}},cr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async t=>{const e=t.get(S.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let n=!0;if(e.primary){const{startRow:i,startColumn:a}=e.primary;n=o.getRange(i,a).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:n?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(J.id,r)}},ur={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async t=>{const e=t.get(S.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let n=!0;e.primary&&(n=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:n?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(J.id,r)}},dr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async t=>{const e=t.get(S.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let n=!0;e.primary&&(n=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:n?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(J.id,r)}};s.CommandType.COMMAND;const mr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"ff",value:e.value}};return o.executeCommand(J.id,n)}},hr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"fs",value:e.value}};return o.executeCommand(J.id,n)}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const o=t.get(s.ICommandService),n={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(J.id,n)}},Ln={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async t=>{const e=t.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(J.id,o)}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const o=t.get(s.ICommandService),n={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(J.id,n)}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async t=>{const e=t.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(J.id,o)}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"vt",value:e.value}};return o.executeCommand(J.id,n)}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"ht",value:e.value}};return o.executeCommand(J.id,n)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"tb",value:e.value}};return o.executeCommand(J.id,n)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(t,e)=>{if(!e)return!1;const o=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},n=t.get(s.ICommandService),r={style:{type:"tr",value:o}};return n.executeCommand(J.id,r)}},gr=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId).getSheetBySheetId(e.worksheetId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},ze={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!o)return!1;const n=o.getSheetBySheetId(e.worksheetId);return n?(n.getConfig().tabColor=e.color,!0):!1}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),l=r.getUniverSheetInstance(i);if(!l||!l.getSheetBySheetId(a))return!1;const d={color:e.value,workbookId:i,worksheetId:a},u=gr(t,d);return o.syncExecuteCommand(ze.id,d)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:ze.id,params:u}],redoMutations:[{id:ze.id,params:d}]}),!0):!1}},qe={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!o)return!1;const n=o.getWorksheets();for(const[,r]of n)r.getSheetId()===e.worksheetId?r.getConfig().status=s.BooleanNumber.TRUE:r.getConfig().status=s.BooleanNumber.FALSE;return!0}},Nt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUniverInstanceService);let r=n.getCurrentUniverSheetInstance().getUnitId(),i=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(r=e.workbookId??r,i=e.worksheetId??i);const a={workbookId:r,worksheetId:i};return o.syncExecuteCommand(qe.id,a)}},Vt=(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(r==null)throw new Error("universheet is null error!");const i=new s.ObjectArray,a=r.getColumnManager(),l=e.ranges;for(let c=0;c<l.length;c++){const d=l[c];for(let u=d.startColumn;u<d.endColumn+1;u++){const m=a.getColumnOrCreate(u);i.set(u,m.w)}}return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges,colWidth:i}},ue={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.worksheetId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),l=e.ranges;for(let c=0;c<l.length;c++){const d=l[c];for(let u=d.startColumn;u<d.endColumn+1;u++){const m=a.getColumnOrCreate(u);typeof e.colWidth=="number"?m.w=e.colWidth:m.w=e.colWidth.get(u-d.startColumn)??i}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(t,e)=>{const n=t.get(S.SelectionManagerService).getSelections();if(!(n!=null&&n.length))return!1;const r=t.get(s.ICommandService),i=t.get(s.IUndoRedoService),l=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=l.getActiveSheet(),d=l.getUnitId(),u=c.getSheetId(),{anchorCol:m,deltaX:h}=e,v=c.getColumnWidth(m)+h,f=n.filter(b=>b.range.rangeType===s.RANGE_TYPE.COLUMN),C=f.some(({range:b})=>{const{startColumn:O,endColumn:y}=b;return O<=m&&m<=y})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let w;C===s.RANGE_TYPE.COLUMN?w={worksheetId:u,workbookId:d,ranges:f.map(b=>s.Rectangle.clone(b.range)),colWidth:v}:w={worksheetId:u,workbookId:d,colWidth:v,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:m,endColumn:m}]};const R=Vt(t,w),k=r.syncExecuteCommand(ue.id,w),{undos:M,redos:p}=t.get(S.SheetInterceptorService).onCommandExecute({id:Lt.id,params:w}),I=s.sequenceExecute([...p],r);return k&&I.result&&i.pushUndoRedo({unitID:d,undoMutations:[{id:ue.id,params:R},...M],redoMutations:[{id:ue.id,params:w},...p]}),!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(t,e)=>{const o=t.get(S.SelectionManagerService),n=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(s.IUniverInstanceService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const l=i.getCurrentUniverSheetInstance().getUnitId(),d={worksheetId:i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),workbookId:l,ranges:a,colWidth:e.value},u=Vt(t,d),m=n.syncExecuteCommand(ue.id,d),{undos:h,redos:g}=t.get(S.SheetInterceptorService).onCommandExecute({id:Bt.id,params:d}),v=s.sequenceExecute([...g],n);return m&&v.result?(r.pushUndoRedo({unitID:l,undoMutations:[{id:ue.id,params:u},...h],redoMutations:[{id:ue.id,params:d},...g]}),!0):!1}},Gn=(t,e)=>{const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.worksheetId);if(n==null)throw new Error("worksheet is null error!");return{hidden:n.isSheetHidden(),workbookId:e.workbookId,worksheetId:n.getSheetId()}},ve={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)return!1;const n=o.getSheetBySheetId(e.worksheetId);return n?(n.getConfig().hidden=e.hidden,!0):!1}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ErrorService),a=r.getCurrentUniverSheetInstance().getUnitId();let l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(l=e.worksheetId??l);const c=r.getUniverSheetInstance(a);if(!c)return!1;const d=c.getSheetBySheetId(l);if(!d||d.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={workbookId:a,worksheetId:l,hidden:s.BooleanNumber.TRUE},h=Gn(t,m);return c.getSheets().filter(C=>C.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(i.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(ve.id,m)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:h}],redoMutations:[{id:ve.id,params:m}]}),!0):!1}},vr=(t,e)=>{const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.worksheetId);if(n==null)throw new Error("worksheet is null error!");return{workbookId:e.workbookId,name:n.getName(),worksheetId:n.getSheetId()}},ut={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)return!1;const n=o.getSheetBySheetId(e.worksheetId);return n?(n.getConfig().name=e.name,!0):!1}},Wt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(S.SheetInterceptorService),a=e.workbookId||r.getCurrentUniverSheetInstance().getUnitId(),c={worksheetId:e.worksheetId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,workbookId:a},d=vr(t,c),u=i.onCommandExecute({id:Wt.id,params:e}),m=[{id:ut.id,params:c},...u.redos],h=[...u.undos,{id:ut.id,params:d}];return await s.sequenceExecute(m,o).result?(n.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},Sr=(t,e)=>{const r=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId).getConfig().sheetOrder.findIndex(i=>i===e.worksheetId);return{...s.Tools.deepClone(e),order:r}},Ye={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!o)return!1;const n=o.getConfig(),r=n.sheetOrder.filter(i=>i!==e.worksheetId);return r.splice(e.order,0,e.worksheetId),n.sheetOrder=r,!0}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=e.workbookId||r.getCurrentUniverSheetInstance().getUnitId(),a=e.worksheetId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),l=r.getUniverSheetInstance(i);if(!l||!l.getSheetBySheetId(a))return!1;const d={order:e.order,workbookId:i,worksheetId:a},u=Sr(t,d);return o.syncExecuteCommand(Ye.id,d)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:Ye.id,params:u}],redoMutations:[{id:Ye.id,params:d}]}),!0):!1}},fr=2e3,Yn=(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),l=a==null?void 0:a.getSheetBySheetId(n);if(l==null)throw new Error("worksheet is null error!");const c=new s.ObjectArray,d=l.getRowManager();for(const{startRow:u,endRow:m}of r)for(let h=u;h<m+1;h++){const g=d.getRowOrCreate(h);c.set(h,g.h)}return{workbookId:o,worksheetId:n,ranges:r,rowHeight:c}},jt=(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(n),c=new s.ObjectArray,d=l.getRowManager();for(const{startRow:u,endRow:m}of r)for(let h=u;h<=m;h++){const g=d.getRowOrCreate(h);c.set(h,g.isAutoHeight)}return{workbookId:o,worksheetId:n,ranges:r,autoHeightInfo:c}},Cr=(t,e)=>{const{workbookId:o,worksheetId:n,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),l=a==null?void 0:a.getSheetBySheetId(n),c=[],d=l.getRowManager();for(const u of r){const{row:m}=u,{ah:h}=d.getRowOrCreate(m);c.push({row:m,autoHeight:h})}return{workbookId:o,worksheetId:n,rowsAutoHeightInfo:c}},de={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r,rowHeight:i}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=l==null?void 0:l.getSheetBySheetId(n);if(!c)return!1;const d=c.getConfig().defaultRowHeight,u=c.getRowManager();for(const{startRow:m,endRow:h}of r)for(let g=m;g<=h;g++){const v=u.getRowOrCreate(g);typeof i=="number"?v.h=i:v.h=i.get(g)??d,v.h=Math.min(fr,v.h)}return!0}},oe={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,ranges:r,autoHeightInfo:i}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=l==null?void 0:l.getSheetBySheetId(n);if(!c)return!1;const d=void 0,u=c.getRowManager();for(const{startRow:m,endRow:h}of r)for(let g=m;g<=h;g++){const v=u.getRowOrCreate(g);typeof i=="boolean"?v.isAutoHeight=i:v.isAutoHeight=i.get(g-m)??d}return!0}},Ft={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:o,worksheetId:n,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),l=a==null?void 0:a.getSheetBySheetId(n);if(!l||!a)return!1;const c=l.getRowManager();for(const{row:d,autoHeight:u}of r){const m=c.getRowOrCreate(d);m.ah=u}return!0}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(t,e)=>{const n=t.get(S.SelectionManagerService).getSelections();if(!(n!=null&&n.length))return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),a=i.getActiveSheet(),l=i.getUnitId(),c=a.getSheetId(),{anchorRow:d,deltaY:u}=e,h=a.getRowHeight(d)+u,g=n.filter(I=>I.range.rangeType===s.RANGE_TYPE.ROW),v=g.some(({range:I})=>{const{startRow:b,endRow:O}=I;return b<=d&&d<=O})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;v===s.RANGE_TYPE.ROW?f={worksheetId:c,workbookId:l,ranges:g.map(I=>s.Rectangle.clone(I.range)),rowHeight:h}:f={worksheetId:c,workbookId:l,rowHeight:h,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=Yn(t,f),w={workbookId:l,worksheetId:c,ranges:f.ranges,autoHeightInfo:!1},R=jt(t,w),k=t.get(s.ICommandService),M=t.get(s.IUndoRedoService);return(await s.sequenceExecute([{id:de.id,params:f},{id:oe.id,params:w}],k)).result?(M.pushUndoRedo({unitID:l,undoMutations:[{id:de.id,params:C},{id:oe.id,params:R}],redoMutations:[{id:de.id,params:f},{id:oe.id,params:w}]}),!0):!1}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:async(t,e)=>{const o=t.get(S.SelectionManagerService),n=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(s.IUniverInstanceService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const l=i.getCurrentUniverSheetInstance(),c=l.getUnitId(),d=l.getActiveSheet().getSheetId(),u={worksheetId:d,workbookId:c,ranges:a,rowHeight:e.value},m=Yn(t,u),h={workbookId:c,worksheetId:d,ranges:u.ranges,autoHeightInfo:!1},g=jt(t,h);return(await s.sequenceExecute([{id:de.id,params:u},{id:oe.id,params:h}],n)).result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:de.id,params:m},{id:oe.id,params:g}],redoMutations:[{id:de.id,params:u},{id:oe.id,params:h}]}),!0):!1}},Ht={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async t=>{const e=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(S.SelectionManagerService).getSelectionRanges();if(!(r!=null&&r.length))return!1;const i=t.get(s.IUniverInstanceService),a=i.getCurrentUniverSheetInstance().getUnitId(),l=i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c={workbookId:a,worksheetId:l,ranges:r,autoHeightInfo:!0},d=jt(t,c),u=e.syncExecuteCommand(oe.id,c),{undos:m,redos:h}=t.get(S.SheetInterceptorService).onCommandExecute({id:Ht.id,params:c}),g=s.sequenceExecute([...h],e);return u&&g.result?(o.pushUndoRedo({unitID:a,undoMutations:[{id:oe.id,params:d},...m],redoMutations:[{id:oe.id,params:c},...h]}),!0):!1}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId();let a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.value??a);const l=r.getUniverSheetInstance(i);if(!l)return!1;const c=l.getSheetBySheetId(a);if(!c||c.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const u={workbookId:i,worksheetId:a,hidden:s.BooleanNumber.FALSE},m=Gn(t,u),h=o.syncExecuteCommand(ve.id,u),g={workbookId:i,worksheetId:a},v=o.syncExecuteCommand(qe.id,g);return h&&v?(n.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:m}],redoMutations:[{id:ve.id,params:u}]}),!0):!1}},Ir=t=>{const e=new s.ObjectMatrix;return t.forEach(o=>{s.Range.foreach(o,(n,r)=>{e.setValue(n,r,1)})}),e.forValue((o,n)=>{const r=e.getValue(o-1,n);r&&e.setValue(o,n,r+1)}),e},Zn=t=>{const e={area:0},o=(n,r)=>e.area<n?(e.area=n,e.range=r,!0):!1;return t.forValue((n,r,i)=>{let a=1,l=i;o(a*l,{startRow:n-l+1,endRow:n,startColumn:r,endColumn:r});const c={startRow:n-l+1,endRow:n,startColumn:0,endColumn:r};for(let d=r-1;d>=0&&t.getValue(n,d);d--){l=Math.min(t.getValue(n,d)||0,l),a++;const u=l*a;c.startColumn=d,c.startRow=n-l+1,o(u,c)}}),e},wr=(t,e)=>(s.Range.foreach(e,(o,n)=>{t.realDeleteValue(o,n);let r=o+1,i=t.getValue(r,n)||0;for(;i>1;)t.setValue(r,n,i-1),r+=1,i=t.getValue(r,n)||0}),t),Rr=t=>{const e=[];let o=Zn(t);for(;o.area>0;)o.range&&(e.push(o.range),wr(t,o.range)),o=Zn(t);return e},$t=t=>{const e=Ir(t);return Rr(e)},Mr=(t,e,o="")=>t.reduce((n,r)=>{const i=r&&r[e];return typeof i!="string"?(console.log(r,`${e} is not string`),n):(i?(n[i]||(n[i]=[]),n[i].push(r)):n[o].push(r),n)},{}),pr=(t=0)=>{let e=t;return function(){return e++}},pe=V.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,pe);const yr=(t,e)=>{const o=t.get(pe),{values:n,workbookId:r,worksheetId:i}=e,a=[],l=[],c=o.getModel(r,i)||void 0;Object.keys(n).forEach(u=>{n[u].ranges.forEach(h=>{s.Range.foreach(h,(g,v)=>{const f=o.getValue(r,i,g,v,c);f?a.push({pattern:f.pattern,type:f.type,row:g,col:v}):l.push({startColumn:v,endColumn:v,startRow:g,endRow:g})})})});const d=[];if(a){const u=mt(r,i,a);Object.keys(u.values).forEach(m=>{const h=u.values[m];h.ranges=$t(h.ranges)}),d.push({id:dt.id,params:mt(r,i,a)})}return l&&d.push({id:xt.id,params:{workbookId:r,worksheetId:i,ranges:l}}),d},dt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{values:o,refMap:n}=e,r=t.get(pe),i=e.workbookId,a=e.worksheetId,l=Object.keys(o).reduce((c,d)=>{const u=n[d],m=o[d].ranges;return u&&c.push({...u,ranges:m}),c},[]);return r.setValues(i,a,l),!0}},xt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{workbookId:o,worksheetId:n,ranges:r}=e;return t.get(pe).deleteValues(o,n,r),!0}},kr=(t,e)=>{const o=t.get(pe),{ranges:n,workbookId:r,worksheetId:i}=e,a=[],l=o.getModel(r,i)||void 0;n.forEach(d=>{s.Range.foreach(d,(u,m)=>{const h=o.getValue(r,i,u,m,l);h&&a.push({pattern:h.pattern,type:h.type,row:u,col:m})})});const c=mt(r,i,a);return Object.keys(c.values).forEach(d=>{const u=c.values[d];u.ranges=$t(u.ranges)}),[{id:dt.id,params:c}]},mt=(t,e,o)=>{const n=Mr(o,"pattern"),r={},i={},a=pr();return Object.keys(n).forEach(l=>{const c=n[l],d=c[0],u=a();r[u]={pattern:l,type:d.type},c.forEach(m=>{i[u]||(i[u]={ranges:[]}),i[u].ranges.push(br(m.row,m.col))})}),{workbookId:t,worksheetId:e,refMap:r,values:i}},br=(t,e)=>({startRow:t,endRow:t,startColumn:e,endColumn:e}),Qn="maxCellsPerSheet",_r=3e6;var Ur=Object.defineProperty,Tr=Object.getOwnPropertyDescriptor,Dr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Tr(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&Ur(e,o,r),r},eo=(t,e)=>(o,n)=>e(o,n,t);let ht=class extends s.Disposable{constructor(t,e){super(),this._commandService=t,this._configService=e,[W,Ze,yt,Qe,sn,nt,ot,ee,Lt,Kn,In,Cn,De,Ie,rt,st,te,Sn,vn,Te,Ce,wn,fe,Dt,xe,it,He,Tt,$e,lt,Re,at,we,Et,We,yn,j,Wn,Ln,Bn,kn,Un,Ee,bn,_n,Dn,Oe,Pe,Bt,rr,On,ge,Fn,Ge,q,Jn,An,Ne,Ae,Tn,Pn,Ot,At,J,xn,ze,Vn,$n,Hn,jn,Nt,qe,ue,zn,ve,Wt,ut,qn,Ye,Ft,de,Ht,oe,Xn,dt,xt].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(Qn,_r)}};ht=Dr([s.OnLifecycle(s.LifecycleStages.Starting,ht),eo(0,s.ICommandService),eo(1,s.IConfigService)],ht);var Er=Object.defineProperty,Or=Object.getOwnPropertyDescriptor,Pr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Or(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&Er(e,o,r),r},Ar=(t,e)=>(o,n)=>e(o,n,t);let gt=class extends s.Disposable{constructor(t){super(),this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id!==pt.SetFormulaCalculationResultMutation.id)return;const e=t.params,{unitData:o,unitOtherData:n}=e,r=Object.keys(o),i=[];return r.forEach(l=>{const c=o[l];Object.keys(c).forEach(u=>{const m=c[u];if(m==null)return!0;const h={worksheetId:u,workbookId:l,cellValue:m.getData()};i.push({id:q.id,params:h})})}),i.every(l=>this._commandService.executeCommand(l.id,l.params,{local:!0}))}))}};gt=Pr([s.OnLifecycle(s.LifecycleStages.Ready,gt),Ar(0,s.ICommandService)],gt);var Nr=Object.defineProperty,Vr=Object.getOwnPropertyDescriptor,Lr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Vr(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&Nr(e,o,r),r},vt=(t,e)=>(o,n)=>e(o,n,t);let St=class extends s.Disposable{constructor(t,e,o,n){super(),this._commandService=t,this._featureCalculationManagerService=e,this._currentUniverService=o,this._formulaDataModel=n,this._initialize()}_initialize(){const t="test",e="workbook-01",o="sheet-0011",n={[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(t,{unitId:e,subComponentId:o,dependencyRanges:[{unitId:e,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>(console.log("test reference executor register"),{runtimeCellData:n,dirtyRanges:r})})}};St=Lr([s.OnLifecycle(s.LifecycleStages.Ready,St),vt(0,s.ICommandService),vt(1,pt.IFeatureCalculationManagerService),vt(2,s.IUniverInstanceService),vt(3,V.Inject(pt.FormulaDataModel))],St);const le={MoveRangeCommandId:Rn,InsertRowCommandId:gn,InsertColCommandId:fn,RemoveColCommandId:pn,RemoveRowCommandId:Mn,DeleteRangeMoveLeftCommandId:cn,DeleteRangeMoveUpCommandId:un,InsertRangeMoveDownCommandId:Jo,InsertRangeMoveRightCommandId:hn};var A=(t=>(t[t.Set=0]="Set",t[t.Delete=1]="Delete",t[t.HorizontalMove=2]="HorizontalMove",t[t.VerticalMove=3]="VerticalMove",t[t.Unknown=4]="Unknown",t))(A||{}),Br=Object.defineProperty,Wr=Object.getOwnPropertyDescriptor,jr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Wr(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&Br(e,o,r),r},Gt=(t,e)=>(o,n)=>e(o,n,t);const Fr=s.createInterceptorKey("MERGE_REDO"),Hr=s.createInterceptorKey("MERGE_UNDO");S.RefRangeService=class extends s.Disposable{constructor(o,n,r){super();N(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Fr,MERGE_UNDO:Hr}));N(this,"_refRangeManagerMap",new Map);N(this,"_serializer",$r());N(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const n=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=to(this._univerInstanceService),i=no(this._univerInstanceService),c=((()=>{var m,h;switch(o.id){case le.MoveRangeCommandId:{const g=o;return this._checkRange([g.params.fromRange,g.params.toRange],r,i)}case le.InsertRowCommandId:{const f={startRow:o.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([f],r,i)}case le.InsertColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:n.getRowCount()-1,startColumn:v,endColumn:n.getColumnCount()-1};return this._checkRange([f],r,i)}case le.RemoveRowCommandId:{const v=((m=o.params)==null?void 0:m.ranges)||[],C={startRow:Math.min(...v.map(w=>w.startRow)),endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([C],r,i)}case le.RemoveColCommandId:{const v=((h=o.params)==null?void 0:h.ranges)||[],f=Math.min(...v.map(w=>w.startColumn)),C={startRow:0,endRow:n.getRowCount()-1,startColumn:f,endColumn:n.getColumnCount()-1};return this._checkRange([C],r,i)}case le.DeleteRangeMoveUpCommandId:case le.InsertRangeMoveDownCommandId:{const f=(o.params.ranges||oo(this._selectionManagerService)).map(C=>({startRow:C.startRow,startColumn:C.startColumn,endColumn:C.endColumn,endRow:n.getRowCount()-1}));return this._checkRange(f,r,i)}case le.DeleteRangeMoveLeftCommandId:case le.InsertRangeMoveRightCommandId:{const f=(o.params.ranges||oo(this._selectionManagerService)).map(C=>({startRow:C.startRow,startColumn:C.startColumn,endColumn:n.getColumnCount()-1,endRow:C.endRow}));return this._checkRange(f,r,i)}}})()||[]).reduce((m,h)=>{const g=h(o);return m.push(g),m},[]).reduce((m,h)=>(m.redos.push(...h.redos),m.undos.push(...h.undos),m),{redos:[],undos:[]}),d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(c.redos,null)||[],u=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(c.undos,null)||[];return{redos:d,undos:u}}})});N(this,"_checkRange",(o,n,r)=>{const i=ro(n,r),a=this._refRangeManagerMap.get(i);if(a){const l=new Set;return[...a.keys()].forEach(d=>{const u=a.get(d),m=this._serializer.deserialize(d);o.some(h=>s.Rectangle.intersects(h,m))&&u&&u.forEach(h=>{l.add(h)})}),[...l]}return[]});N(this,"registerRefRange",(o,n,r,i)=>{const a=r||to(this._univerInstanceService),l=i||no(this._univerInstanceService),c=ro(a,l),d=this._serializer.serialize(o);let u=this._refRangeManagerMap.get(c);u||(u=new Map,this._refRangeManagerMap.set(c,u));const m=u.get(d);return m?m.add(n):u.set(d,new Set([n])),s.toDisposable(()=>{const h=u.get(d);h&&(h.delete(n),h.size||(u.delete(d),u.size||this._refRangeManagerMap.delete(c)))})});this._sheetInterceptorService=o,this._univerInstanceService=n,this._selectionManagerService=r,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}},S.RefRangeService=jr([s.OnLifecycle(s.LifecycleStages.Steady,S.RefRangeService),Gt(0,V.Inject(S.SheetInterceptorService)),Gt(1,V.Inject(s.IUniverInstanceService)),Gt(2,V.Inject(S.SelectionManagerService))],S.RefRangeService);function to(t){return t.getCurrentUniverSheetInstance().getUnitId()}function no(t){return t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function oo(t){return t.getSelectionRanges()||[]}function ro(t,e){return`${t}_${e}`}function $r(){const t=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const n=t.reduce((i,a,l)=>(i[String(l)]=a,i),{});return o.split(e).reduce((i,a,l)=>{const c=String(l);return a&&n[c]&&(i[n[c]]=a),i},{})},serialize:o=>t.reduce((n,r,i)=>{const a=o[r];return a!==void 0?`${n}${i>0?e:""}${a}`:`${n}`},"")}}var xr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,zr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Gr(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&xr(e,o,r),r},Ve=(t,e)=>(o,n)=>e(o,n,t);function so(t,e){let o=t;if(e!==void 0){const n=[];for(let r=0;r<o.length;r++){const{startRow:i,endRow:a,startColumn:l,endColumn:c}=o[r];if(e===s.Dimension.ROWS)for(let d=i;d<=a;d++){const u={startRow:d,endRow:d,startColumn:l,endColumn:c};n.push(u)}else if(e===s.Dimension.COLUMNS)for(let d=l;d<=c;d++){const u={startRow:i,endRow:a,startColumn:d,endColumn:d};n.push(u)}}o=n}return o}let ft=class extends s.Disposable{constructor(t,e,o,n,r,i){super(),this._commandService=t,this._refRangeService=e,this._univerInstanceService=o,this._injector=n,this._sheetInterceptorService=r,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const t=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case Ze.id:case Qe.id:{const o=t._univerInstanceService.getCurrentUniverSheetInstance(),n=o.getUnitId(),r=o.getActiveSheet(),i=r.getSheetId(),a=r.getConfig().mergeData,l=t._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(d=>a.some(u=>s.Rectangle.intersects(u,d)))){const d={workbookId:n,worksheetId:i,ranges:l},u=Q(t._injector,d),m=[{id:j.id,params:d}],h=[{id:W.id,params:u}];return{redos:m,undos:h}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const t=new s.DisposableCollection,e=(r,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(r);if(!a)return;const l=a==null?void 0:a.getSheetBySheetId(i);if(!l)return;t.dispose();const c=l.getMergeData(),d=u=>{switch(u.id){case it.id:{const m=u.params;return this._handleMoveRangeCommand(m,r,i)}case Te.id:{const m=u.params,h=m.workbookId||r,g=m.worksheetId||i;return this._handleInsertRowCommand(m,h,g)}case De.id:{const m=u.params,h=m.workbookId||r,g=m.worksheetId||i;return this._handleInsertColCommand(m,h,g)}case lt.id:{const m=u.params;return this._handleRemoveColCommand(m,r,i)}case at.id:{const m=u.params;return this._handleRemoveRowCommand(m,r,i)}case st.id:{const m=u.params;return this._handleInsertRangeMoveRightCommand(m,r,i)}case rt.id:{const m=u.params;return this._handleInsertRangeMoveDownCommand(m,r,i)}case ot.id:{const m=u.params;return this._handleDeleteRangeMoveUpCommand(m,r,i)}case nt.id:{const m=u.params;return this._handleDeleteRangeMoveLeftCommand(m,r,i)}}return{redos:[],undos:[]}};c.forEach(u=>{t.add(this._refRangeService.registerRefRange(u,d,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Nt.id){const i=r.params,a=i.worksheetId,l=i.workbookId;if(!a||!l)return;e(l,a)}if(r.id===W.id){const i=r.params,a=i.worksheetId,l=i.workbookId;if(!a||!l)return;e(i.workbookId,i.worksheetId)}}));const o=this._univerInstanceService.getCurrentUniverSheetInstance(),n=o.getActiveSheet();e(o.getUnitId(),n.getSheetId())}_handleMoveRangeCommand(t,e,o){const n=me(this._univerInstanceService,e);if(!n)return this._handleNull();const r=he(n,o);if(!r)return this._handleNull();const i=r.getMergeData(),a=i.filter(h=>s.Rectangle.intersects(h,t.fromRange)),l=i.filter(h=>s.Rectangle.intersects(h,t.toRange)),c=a.map(h=>s.Rectangle.getRelativeRange(h,t.fromRange)).map(h=>s.Rectangle.getPositionRange(h,t.toRange)),d=so(c).filter(h=>!i.some(g=>s.Rectangle.equals(h,g))),u=[{id:j.id,params:{workbookId:e,worksheetId:o,ranges:a}},{id:j.id,params:{workbookId:e,worksheetId:o,ranges:l}},{id:W.id,params:{workbookId:e,worksheetId:o,ranges:d}}],m=[{id:j.id,params:{workbookId:e,worksheetId:o,ranges:d}},{id:W.id,params:{workbookId:e,worksheetId:o,ranges:l}},{id:W.id,params:{workbookId:e,worksheetId:o,ranges:a}}];return{redos:u,undos:m}}_handleInsertRowCommand(t,e,o){const n=me(this._univerInstanceService,e);if(!n)return this._handleNull();const r=he(n,o);if(!r)return this._handleNull();const{range:i}=t,{startRow:a,endRow:l}=i,c=s.Tools.deepClone(r.getMergeData()),d=s.Tools.deepClone(r.getMergeData()).map(C=>{const w=l-a+1;return a>C.endRow?C:a<=C.startRow?s.Rectangle.moveVertical(C,w):(C.endRow+=w,C)}),u={workbookId:e,worksheetId:o,ranges:c},m=Q(this._injector,u),h={workbookId:e,worksheetId:o,ranges:d},g=ae(this._injector,h),v=[{id:j.id,params:u},{id:W.id,params:h}],f=[{id:j.id,params:g},{id:W.id,params:m}];return{redos:v,undos:f}}_handleInsertColCommand(t,e,o){const{range:n}=t,r=me(this._univerInstanceService,e);if(!r)return this._handleNull();const i=he(r,o);if(!i)return this._handleNull();const{startColumn:a,endColumn:l}=n,c=s.Tools.deepClone(i.getMergeData()),d=s.Tools.deepClone(i.getMergeData()).map(C=>{const w=l-a+1;return a>C.endColumn?C:a<=C.startColumn?s.Rectangle.moveHorizontal(C,w):(C.endColumn+=w,C)}),u={workbookId:e,worksheetId:o,ranges:c},m=Q(this._injector,u),h={workbookId:e,worksheetId:o,ranges:d},g=ae(this._injector,h),v=[{id:j.id,params:u},{id:W.id,params:h}],f=[{id:j.id,params:g},{id:W.id,params:m}];return{redos:v,undos:f}}_handleRemoveColCommand(t,e,o){const n=me(this._univerInstanceService,e);if(!n)return this._handleNull();const r=he(n,o);if(!r)return this._handleNull();const{ranges:i}=t,a=s.Tools.deepClone(r.getMergeData());for(let g=0;g<a.length;g++){const v=a[g],{startColumn:f,endColumn:C}=v,w=C-f+1;for(let R=0;R<i.length;R++){const{startColumn:k,endColumn:M}=i[R],p=M-k+1;if(M<v.startColumn)v.startColumn-=p,v.endColumn-=p;else{if(k>v.endColumn)continue;if(k<=v.startColumn&&M>=v.endColumn)a.splice(g,1),g--;else{const I=s.Rectangle.getIntersects(i[R],v);I.endColumn-I.startColumn+1===w-1?(a.splice(g,1),g--):v.endColumn-=I.endColumn-I.startColumn+1}}}}const l={workbookId:e,worksheetId:o,ranges:s.Tools.deepClone(r.getMergeData())},c=Q(this._injector,l),d={workbookId:e,worksheetId:o,ranges:a},u=ae(this._injector,d),m=[{id:j.id,params:l},{id:W.id,params:d}],h=[{id:j.id,params:u},{id:W.id,params:c}];return{redos:m,undos:h}}_handleRemoveRowCommand(t,e,o){const{ranges:n}=t,r=me(this._univerInstanceService,e);if(!r)return this._handleNull();const i=he(r,o);if(!i)return this._handleNull();const a=s.Tools.deepClone(i.getMergeData());for(let g=0;g<a.length;g++){const v=a[g],{startRow:f,endRow:C}=v,w=C-f+1;for(let R=0;R<n.length;R++){const{startRow:k,endRow:M}=n[R],p=M-k+1;if(M<f)v.startRow-=p,v.endRow-=p;else{if(k>C)continue;if(k<=f&&M>=C)a.splice(g,1),g--;else{const I=s.Rectangle.getIntersects(n[R],v);I.endRow-I.startRow+1===w-1?(a.splice(g,1),g--):v.endRow-=I.endRow-I.startRow+1}}}}const l={workbookId:e,worksheetId:o,ranges:s.Tools.deepClone(i.getMergeData())},c=Q(this._injector,l),d={workbookId:e,worksheetId:o,ranges:a},u=ae(this._injector,d),m=[{id:j.id,params:l},{id:W.id,params:d}],h=[{id:j.id,params:u},{id:W.id,params:c}];return{redos:m,undos:h}}_handleInsertRangeMoveRightCommand(t,e,o){const n=me(this._univerInstanceService,e);if(!n)return this._handleNull();const r=he(n,o);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxColumns()-1,l=r.getMergeData(),c=[],d=[];l.forEach(v=>{for(let f=0;f<i.length;f++){const{startRow:C,endRow:w,startColumn:R,endColumn:k}=i[f];if(s.Rectangle.intersects({startRow:C,startColumn:R,endRow:w,endColumn:a},v)&&(c.push(v),s.Rectangle.contains({startRow:C,startColumn:R,endRow:w,endColumn:a},v))){const I=k-R+1;d.push({startRow:v.startRow,startColumn:v.startColumn+I,endRow:v.endRow,endColumn:v.endColumn+I});break}}});const u={workbookId:e,worksheetId:o,ranges:c},m=Q(this._injector,u),h={workbookId:e,worksheetId:o,ranges:d},g=ae(this._injector,h);return{redos:[{id:j.id,params:u},{id:W.id,params:h}],undos:[{id:W.id,params:m},{id:j.id,params:g}]}}_handleInsertRangeMoveDownCommand(t,e,o){const n=me(this._univerInstanceService,e);if(!n)return this._handleNull();const r=he(n,o);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxRows()-1,l=r.getMergeData(),c=[],d=[];l.forEach(C=>{for(let w=0;w<i.length;w++){const{startRow:R,startColumn:k,endColumn:M,endRow:p}=i[w];if(s.Rectangle.intersects({startRow:R,startColumn:k,endRow:a,endColumn:M},C)&&(c.push(C),s.Rectangle.contains({startRow:R,startColumn:k,endRow:a,endColumn:M},C))){const O=p-R+1;d.push({startRow:C.startRow+O,startColumn:C.startColumn,endRow:C.endRow+O,endColumn:C.endColumn});break}}});const u={workbookId:e,worksheetId:o,ranges:c},m=Q(this._injector,u),h={workbookId:e,worksheetId:o,ranges:d},g=ae(this._injector,h),v=[{id:j.id,params:u},{id:W.id,params:h}],f=[{id:W.id,params:m},{id:j.id,params:g}];return{redos:v,undos:f}}_handleDeleteRangeMoveUpCommand(t,e,o){const n=me(this._univerInstanceService,e);if(!n)return this._handleNull();const r=he(n,o);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxRows()-1,l=r.getMergeData(),c=[],d=[];l.forEach(C=>{for(let w=0;w<i.length;w++){const{startRow:R,startColumn:k,endColumn:M,endRow:p}=i[w];if(s.Rectangle.intersects({startRow:R,startColumn:k,endRow:a,endColumn:M},C)&&(c.push(C),s.Rectangle.contains({startRow:R,startColumn:k,endRow:a,endColumn:M},C))){const O=p-R+1,y=s.Rectangle.moveVertical(C,-O);d.push(y);break}}});const u={workbookId:e,worksheetId:o,ranges:c},m=Q(this._injector,u),h={workbookId:e,worksheetId:o,ranges:d},g=ae(this._injector,h),v=[{id:j.id,params:u},{id:W.id,params:h}],f=[{id:W.id,params:m},{id:j.id,params:g}];return{redos:v,undos:f}}_handleDeleteRangeMoveLeftCommand(t,e,o){const n=me(this._univerInstanceService,e);if(!n)return this._handleNull();const r=he(n,o);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxColumns()-1,l=r.getMergeData(),c=[],d=[];l.forEach(v=>{for(let f=0;f<i.length;f++){const{startRow:C,endRow:w,startColumn:R,endColumn:k}=i[f];if(s.Rectangle.intersects({startRow:C,startColumn:R,endRow:w,endColumn:a},v)&&(c.push(v),s.Rectangle.contains({startRow:C,startColumn:R,endRow:w,endColumn:a},v))){const I=k-R+1;d.push({startRow:v.startRow,startColumn:v.startColumn-I,endRow:v.endRow,endColumn:v.endColumn-I});break}}});const u={workbookId:e,worksheetId:o,ranges:c},m=Q(this._injector,u),h={workbookId:e,worksheetId:o,ranges:d},g=ae(this._injector,h);return{redos:[{id:j.id,params:u},{id:W.id,params:h}],undos:[{id:W.id,params:m},{id:j.id,params:g}]}}_handleNull(){return{redos:[],undos:[]}}};ft=zr([s.OnLifecycle(s.LifecycleStages.Steady,ft),Ve(0,V.Inject(s.ICommandService)),Ve(1,V.Inject(S.RefRangeService)),Ve(2,V.Inject(s.IUniverInstanceService)),Ve(3,V.Inject(V.Injector)),Ve(4,V.Inject(S.SheetInterceptorService)),Ve(5,V.Inject(S.SelectionManagerService))],ft);function me(t,e){return e?t.getUniverSheetInstance(e):t.getCurrentUniverSheetInstance()}function he(t,e){return e?t.getSheetBySheetId(e):t.getActiveSheet()}const qr={},io={};var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Jr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Kr(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&Yr(e,o,r),r},Ct=(t,e)=>(o,n)=>e(o,n,t);const Xr="SHEET_NUMFMT_PLUGIN";let It=class extends s.Disposable{constructor(e,o,n,r){super();N(this,"_numfmtModel",new Map);N(this,"_refAliasModel",new Map);N(this,"_modelReplace$",new Be.Subject);N(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=e,this._resourceManagerService=o,this._univerInstanceService=n,this._logService=r,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const e=n=>{const r=n.getUnitId();this._resourceManagerService.registerPluginResource(r,Xr,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,a)=>{const{model:l,refModel:c}=a;if(l){const d=Object.keys(l).reduce((u,m)=>(u.set(m,new s.ObjectMatrix(l[m])),u),new Map);this._numfmtModel.set(i,d)}c&&this._refAliasModel.set(i,new s.RefAlias(c,["pattern","i"])),this._modelReplace$.next(i)}})};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(e))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(n=>{const r=n.getUnitId();this._numfmtModel.get(r)&&this._numfmtModel.delete(r),this._refAliasModel.get(r)&&this._refAliasModel.delete(r)})));const o=this._univerInstanceService.getCurrentUniverSheetInstance();e(o)}_toJson(e){const o=this._numfmtModel.get(e),n=this._refAliasModel.get(e);if(!o||!n)return"";const r=[...o.keys()].reduce((l,c)=>{const d=o.get(c);return l[c]=d.toJSON(),l},{}),i=n.getValues().filter(l=>l.count>0);return JSON.stringify({model:r,refModel:i})}_parseJson(e){try{return JSON.parse(e)}catch{return{model:{},refModel:[]}}}_setValue(e,o,n,r,i){let a=this.getModel(e,o);if(!a){const l=this._numfmtModel.get(e)||new Map,c=l.get(o)||new s.ObjectMatrix;l.set(o,c),this._numfmtModel.set(e,l),a=c}if(i)a.setValue(n,r,i);else if(a.realDeleteValue(n,r),!a.getSizeOf()){const c=this._numfmtModel.get(e);c==null||c.delete(o)}}_getUniqueRefId(e){const o=this._refAliasModel.get(e);if(!o)return"0";const n=o.getKeyMap("i");return`${Math.max(...n.map(i=>Number(i||0)),0)+1}`}getValue(e,o,n,r,i){const a=i||this.getModel(e,o);if(!a)return null;const l=this._refAliasModel.get(e),c=a.getValue(n,r);if(c&&l){const d=l.getValue(c==null?void 0:c.i);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(e,o,n){let r=this._refAliasModel.get(e);const i=this.getModel(e,o);r||(r=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(e,r)),n.forEach(a=>{s.Range.foreach(a,(l,c)=>{const d=this.getValue(e,o,l,c,i);if(d&&d.pattern){const u=r.getValue(d.pattern);u&&u.count--}this._setValue(e,o,l,c,null)})})}setValues(e,o,n){const r=this.getModel(e,o);let i=this._refAliasModel.get(e);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(e,i)),n.forEach(a=>{let l=i.getValue(a.pattern);l||(l={count:0,i:this._getUniqueRefId(e),pattern:a.pattern,type:n[0].type},i.addValue(l)),a.ranges.forEach(c=>{s.Range.foreach(c,(d,u)=>{if(r){const m=this.getValue(e,o,d,u,r);if(m&&m.pattern){const h=i.getValue(m.pattern);h&&h.count--}}this._setValue(e,o,d,u,{i:l.i}),l.count++})})})}getModel(e,o){const n=this._numfmtModel.get(e);return n==null?void 0:n.get(o)}getRefModel(e){return this._refAliasModel.get(e)}};It=Jr([s.OnLifecycle(s.LifecycleStages.Starting,It),Ct(0,V.Inject(s.ICommandService)),Ct(1,V.Inject(s.IResourceManagerService)),Ct(2,V.Inject(s.IUniverInstanceService)),Ct(3,V.Inject(s.ILogService))],It);const ao="univer.sheet.editable";class ye extends s.PermissionPoint{constructor(o,n){super();N(this,"id",ao);N(this,"value",!0);N(this,"unitID");this._workbookId=o,this._worksheetId=n,this.unitID=o,this.id=`${ao}_${o}_${n}`}}function ke(t){return typeof t=="function"}function Zr(t){return ke(t==null?void 0:t.lift)}function Qr(t){return function(e){if(Zr(e))return e.lift(function(o){try{return t(o,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}var zt=function(t,e){return zt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,n){o.__proto__=n}||function(o,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(o[r]=n[r])},zt(t,e)};function qt(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");zt(t,e);function o(){this.constructor=t}t.prototype=e===null?Object.create(e):(o.prototype=e.prototype,new o)}function lo(t){var e=typeof Symbol=="function"&&Symbol.iterator,o=e&&t[e],n=0;if(o)return o.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function wt(t,e){var o=typeof Symbol=="function"&&t[Symbol.iterator];if(!o)return t;var n=o.call(t),r,i=[],a;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)i.push(r.value)}catch(l){a={error:l}}finally{try{r&&!r.done&&(o=n.return)&&o.call(n)}finally{if(a)throw a.error}}return i}function Rt(t,e,o){if(o||arguments.length===2)for(var n=0,r=e.length,i;n<r;n++)(i||!(n in e))&&(i||(i=Array.prototype.slice.call(e,0,n)),i[n]=e[n]);return t.concat(i||Array.prototype.slice.call(e))}typeof SuppressedError=="function"&&SuppressedError;function es(t){var e=function(n){Error.call(n),n.stack=new Error().stack},o=t(e);return o.prototype=Object.create(Error.prototype),o.prototype.constructor=o,o}var Yt=es(function(t){return function(o){t(this),this.message=o?o.length+` errors occurred during unsubscription:
2
- `+o.map(function(n,r){return r+1+") "+n.toString()}).join(`
3
- `):"",this.name="UnsubscriptionError",this.errors=o}});function co(t,e){if(t){var o=t.indexOf(e);0<=o&&t.splice(o,1)}}var Kt=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,o,n,r,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var l=lo(a),c=l.next();!c.done;c=l.next()){var d=c.value;d.remove(this)}}catch(f){e={error:f}}finally{try{c&&!c.done&&(o=l.return)&&o.call(l)}finally{if(e)throw e.error}}else a.remove(this);var u=this.initialTeardown;if(ke(u))try{u()}catch(f){i=f instanceof Yt?f.errors:[f]}var m=this._finalizers;if(m){this._finalizers=null;try{for(var h=lo(m),g=h.next();!g.done;g=h.next()){var v=g.value;try{uo(v)}catch(f){i=i??[],f instanceof Yt?i=Rt(Rt([],wt(i)),wt(f.errors)):i.push(f)}}}catch(f){n={error:f}}finally{try{g&&!g.done&&(r=h.return)&&r.call(h)}finally{if(n)throw n.error}}}if(i)throw new Yt(i)}},t.prototype.add=function(e){var o;if(e&&e!==this)if(this.closed)uo(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(o=this._finalizers)!==null&&o!==void 0?o:[]).push(e)}},t.prototype._hasParent=function(e){var o=this._parentage;return o===e||Array.isArray(o)&&o.includes(e)},t.prototype._addParent=function(e){var o=this._parentage;this._parentage=Array.isArray(o)?(o.push(e),o):o?[o,e]:e},t.prototype._removeParent=function(e){var o=this._parentage;o===e?this._parentage=null:Array.isArray(o)&&co(o,e)},t.prototype.remove=function(e){var o=this._finalizers;o&&co(o,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}();Kt.EMPTY;function ts(t){return t instanceof Kt||t&&"closed"in t&&ke(t.remove)&&ke(t.add)&&ke(t.unsubscribe)}function uo(t){ke(t)?t():t.unsubscribe()}var ns={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Jt={setTimeout:function(t,e){for(var o=[],n=2;n<arguments.length;n++)o[n-2]=arguments[n];var r=Jt.delegate;return r!=null&&r.setTimeout?r.setTimeout.apply(r,Rt([t,e],wt(o))):setTimeout.apply(void 0,Rt([t,e],wt(o)))},clearTimeout:function(t){var e=Jt.delegate;return((e==null?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function os(t){Jt.setTimeout(function(){throw t})}function mo(){}var ho=function(t){qt(e,t);function e(o){var n=t.call(this)||this;return n.isStopped=!1,o?(n.destination=o,ts(o)&&o.add(n)):n.destination=ls,n}return e.create=function(o,n,r){return new is(o,n,r)},e.prototype.next=function(o){this.isStopped||this._next(o)},e.prototype.error=function(o){this.isStopped||(this.isStopped=!0,this._error(o))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(o){this.destination.next(o)},e.prototype._error=function(o){try{this.destination.error(o)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(Kt),rs=Function.prototype.bind;function Xt(t,e){return rs.call(t,e)}var ss=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var o=this.partialObserver;if(o.next)try{o.next(e)}catch(n){Mt(n)}},t.prototype.error=function(e){var o=this.partialObserver;if(o.error)try{o.error(e)}catch(n){Mt(n)}else Mt(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(o){Mt(o)}},t}(),is=function(t){qt(e,t);function e(o,n,r){var i=t.call(this)||this,a;if(ke(o)||!o)a={next:o??void 0,error:n??void 0,complete:r??void 0};else{var l;i&&ns.useDeprecatedNextContext?(l=Object.create(o),l.unsubscribe=function(){return i.unsubscribe()},a={next:o.next&&Xt(o.next,l),error:o.error&&Xt(o.error,l),complete:o.complete&&Xt(o.complete,l)}):a=o}return i.destination=new ss(a),i}return e}(ho);function Mt(t){os(t)}function as(t){throw t}var ls={closed:!0,next:mo,error:as,complete:mo};function cs(t,e,o,n,r){return new us(t,e,o,n,r)}var us=function(t){qt(e,t);function e(o,n,r,i,a,l){var c=t.call(this,o)||this;return c.onFinalize=a,c.shouldUnsubscribe=l,c._next=n?function(d){try{n(d)}catch(u){o.error(u)}}:t.prototype._next,c._error=i?function(d){try{i(d)}catch(u){o.error(u)}finally{this.unsubscribe()}}:t.prototype._error,c._complete=r?function(){try{r()}catch(d){o.error(d)}finally{this.unsubscribe()}}:t.prototype._complete,c}return e.prototype.unsubscribe=function(){var o;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;t.prototype.unsubscribe.call(this),!n&&((o=this.onFinalize)===null||o===void 0||o.call(this))}},e}(ho);function ds(t,e){return Qr(function(o,n){var r=0;o.subscribe(cs(n,function(i){n.next(t.call(e,i,r++))}))})}var ms=Object.defineProperty,hs=Object.getOwnPropertyDescriptor,gs=(t,e,o,n)=>{for(var r=n>1?void 0:n?hs(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&ms(e,o,r),r},Zt=(t,e)=>(o,n)=>e(o,n,t);S.SheetPermissionService=class extends s.Disposable{constructor(e,o,n){super(),this._permissionService=e,this._univerInstanceService=o,this._sheetInterceptorService=n,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),o=e.getUnitId();e.getSheets().forEach(n=>{const r=n.getSheetId(),i=new ye(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(n=>{const r=n.getSheetId(),i=new ye(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(n=>{const r=n.getSheetId(),i=new ye(o,r);this._permissionService.deletePermissionPoint(e.getUnitId(),i.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(_e.PERMISSION,{priority:99,handler:(e,o,n)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=r==null?void 0:r.getActiveSheet(),a=r==null?void 0:r.getUnitId(),l=i==null?void 0:i.getSheetId();if(!a||!l)return!1;switch(o.id){case Ge.id:return this.getSheetEditable(a,l)}return n()}}))}getEditable$(e,o){const n=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||n.getUnitId(),i=n.getActiveSheet(),a=o||i.getSheetId(),l=new ye(r,a);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,l.id]).pipe(ds(([c,d])=>{const u=c.value&&d.value,m=s.getTypeFromPermissionItemList([c,d]);return{value:u,status:m}}))}getSheetEditable(e,o){const n=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||n.getUnitId(),i=n.getActiveSheet(),a=o||i.getSheetId(),l=new ye(r,a);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,l.id]).every(c=>c.value)}setSheetEditable(e,o,n){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=o||r.getUnitId(),a=r.getActiveSheet(),l=n||a.getSheetId(),c=new ye(i,l);this._permissionService.updatePermissionPoint(i,c.id,e)}},S.SheetPermissionService=gs([s.OnLifecycle(s.LifecycleStages.Ready,S.SheetPermissionService),Zt(0,V.Inject(s.IPermissionService)),Zt(1,V.Inject(s.IUniverInstanceService)),Zt(2,V.Inject(S.SheetInterceptorService))],S.SheetPermissionService);var vs=Object.defineProperty,Ss=Object.getOwnPropertyDescriptor,fs=(t,e,o,n)=>{for(var r=n>1?void 0:n?Ss(e,o):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(n?a(e,o,r):a(r))||r);return n&&r&&vs(e,o,r),r},Qt=(t,e)=>(o,n)=>e(o,n,t);const Cs="sheet";S.UniverSheetsPlugin=(en=class extends s.Plugin{constructor(e,o,n,r){super(Cs),this._config=e,this._commandService=o,this._localeService=n,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:io})}_initializeDependencies(e){var n;const o=[[Me],[S.SelectionManagerService],[S.RefRangeService],[S.SheetPermissionService],[pe,{useClass:It}],[S.SheetInterceptorService],[ht],[ft]];(n=this._config)!=null&&n.notExecuteFormula||o.push([gt],[St]),o.forEach(r=>{e.add(r)})}},N(en,"type",s.PluginType.Sheet),en),S.UniverSheetsPlugin=fs([Qt(1,s.ICommandService),Qt(2,V.Inject(s.LocaleService)),Qt(3,V.Inject(V.Injector))],S.UniverSheetsPlugin);const Is=[de.id,oe.id,Ft.id,ue.id,qe.id,Ce.id,we.id,Ie.id,Re.id,$e.id,xe.id,Oe.id,Pe.id,Ne.id,Ae.id],ws=[q.id,He.id],Rs=1,Ms="rgba(255,255,255, 0.01)";function ps(t){const e=t.getCurrentTheme(),o=new So.TinyColor(e.colorBlack).setAlpha(.1).toString();return{strokeWidth:2,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 ys(t){const{rangeWithCoord:e,primaryWithCoord:o,style:n}=t,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:n};return o!=null&&(r.primary=go(o)),r}function go(t){const{actualRow:e,actualColumn:o,isMerged:n,isMergedMainCell:r}=t,{startRow:i,startColumn:a,endRow:l,endColumn:c}=t.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:n,isMergedMainCell:r,startRow:i,startColumn:a,endRow:l,endColumn:c}}function ks(t,e,o){const n=fo.getCellInfoInMergeData(t,e,o),r=s.makeCellRangeToRangeData(n);if(r)return{range:r,primary:n,style:null}}const Le=Number.MAX_SAFE_INTEGER,bs=(t,e)=>{var i,a;const o=(i=t.params)==null?void 0:i.toRange,n=(a=t.params)==null?void 0:a.fromRange;if(!o||!n)return[];const r=[];if(s.Rectangle.intersects(n,e)){if(r.push({type:A.Delete}),s.Rectangle.contains(n,e)){const l=s.Rectangle.getRelativeRange(e,n),c=s.Rectangle.getPositionRange(l,o);return[{type:A.Set,range:c}]}}else s.Rectangle.intersects(o,e)&&r.push({type:A.Delete});return r},_s=(t,e)=>{var r;const o=(r=t.params)==null?void 0:r.ranges;if(!o)return[];const n=[];for(let i=0;i<o.length;i++){const a=o[i];if(a.endColumn<e.startColumn){const l={type:A.HorizontalMove,step:-(a.endColumn-a.startColumn+1)};n.push(l)}else{if(a.startColumn<=e.startColumn&&a.endColumn>=e.endColumn||a.startColumn>=e.startColumn&&a.endColumn<=e.endColumn)return[{type:A.Delete}];if(a.startColumn<=e.startColumn&&a.endColumn>=e.startColumn&&a.endColumn<=e.endColumn){const l={type:A.HorizontalMove,step:-(e.startColumn-a.startColumn),length:-(a.endColumn-e.startColumn+1)};n.push(l)}else if(a.startColumn>=e.startColumn&&a.startColumn<=e.endColumn&&a.endColumn>=e.endColumn){const l={type:A.HorizontalMove,step:0,length:-(e.endColumn-a.startColumn+1)};n.push(l)}}}return n},Us=(t,e)=>{var r;const o=(r=t.params)==null?void 0:r.ranges;if(!o)return[];const n=[];for(let i=0;i<o.length;i++){const a=o[i];if(a.endRow<e.startRow){const l={type:A.VerticalMove,step:-(a.endRow-a.startRow+1)};n.push(l)}else{if(a.startRow<=e.startRow&&a.endRow>=e.endRow||a.startRow>=e.startRow&&a.endRow<=e.endRow)return[{type:A.Delete}];if(a.startRow<=e.startRow&&a.endRow>=e.startRow&&a.endRow<=e.endRow){const l={type:A.VerticalMove,step:-(e.startRow-a.startRow),length:-(a.endRow-e.startRow+1)};n.push(l)}else if(a.startRow>=e.startRow&&a.startRow<=e.endRow&&a.endRow>=e.endRow){const l={type:A.VerticalMove,step:0,length:-(e.endRow-a.startRow+1)};n.push(l)}}}return n},Ts=(t,e)=>{var n;const o=(n=t.params)==null?void 0:n.range;return o?o.endRow<=e.startRow||o.startRow<=e.startRow&&o.endRow>=e.endRow?[{type:A.VerticalMove,step:o.endRow-o.startRow+1}]:o.startRow>=e.startRow&&o.endRow<=e.endRow?[{type:A.VerticalMove,step:0,length:o.endRow-o.startRow+1}]:s.Rectangle.intersects({...o,endRow:Le},e)?[{type:A.Delete}]:[]:[]},Ds=(t,e)=>{var n;const o=(n=t.params)==null?void 0:n.range;return o?o.endColumn<e.startColumn||o.startColumn<=e.startColumn&&o.endColumn>=e.endColumn?[{type:A.HorizontalMove,step:o.endColumn-o.startColumn+1}]:o.startColumn>=e.startColumn&&o.endColumn<=e.endColumn?[{type:A.HorizontalMove,step:0,length:o.endColumn-o.startColumn+1}]:s.Rectangle.intersects({...o,endColumn:Le},e)?[{type:A.Delete}]:[]:[]},Es=(t,e)=>{var r;const o=(r=t.params)==null?void 0:r.ranges;if(!o||o.length!==1)return[];const n=o[0];return n.startColumn<=e.startColumn&&n.endColumn>=e.endColumn&&n.endRow<=e.startRow&&n.startRow<=e.startRow?[{type:A.VerticalMove,step:n.endRow-n.startRow+1}]:s.Rectangle.intersects({...n,endRow:Le},e)?[{type:A.Delete}]:[]},Os=(t,e)=>{var r;const o=(r=t.params)==null?void 0:r.ranges;if(!o||o.length!==1)return[];const n=o[0];return n.startRow<=e.startRow&&n.endRow>=e.endRow&&n.startColumn<=e.startColumn?[{type:A.HorizontalMove,step:n.endColumn-n.startColumn+1}]:s.Rectangle.intersects({...n,endColumn:Le},e)?[{type:A.Delete}]:[]},Ps=(t,e)=>{var r;const o=(r=t.params)==null?void 0:r.ranges;if(!o||o.length!==1)return[];const n=o[0];return n.startRow<=e.startRow&&n.endRow>=e.endRow&&n.endColumn<e.startColumn?[{type:A.HorizontalMove,step:-(n.endColumn-n.startColumn+1)}]:s.Rectangle.intersects({...n,endColumn:Le},e)?[{type:A.Delete}]:[]},As=(t,e)=>{var r;const o=(r=t.params)==null?void 0:r.ranges;if(!o||o.length!==1)return[];const n=o[0];return n.startColumn<=e.startColumn&&n.endColumn>=e.endColumn&&n.endRow<e.startRow?[{type:A.VerticalMove,step:-(n.endRow-n.startRow+1)}]:s.Rectangle.intersects({...n,endRow:Le},e)?[{type:A.Delete}]:[]},Ns=(t,e)=>{let o={...e};return t.forEach(n=>{switch(n.type){case A.Delete:{o=null;break}case A.HorizontalMove:{if(!o)return;o.startColumn+=n.step,o.endColumn+=n.step+(n.length||0);break}case A.VerticalMove:{if(!o)return;o.startRow+=n.step,o.endRow+=n.step+(n.length||0);break}case A.Set:{o=n.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o};S.AddMergeUndoMutationFactory=ae,S.AddWorksheetMergeMutation=W,S.BorderStyleManagerService=Me,S.COMMAND_LISTENER_SKELETON_CHANGE=Is,S.COMMAND_LISTENER_VALUE_CHANGE=ws,S.ClearSelectionAllCommand=Ze,S.ClearSelectionContentCommand=yt,S.ClearSelectionFormatCommand=Qe,S.CopySheetCommand=sn,S.DeleteRangeMoveLeftCommand=nt,S.DeleteRangeMoveUpCommand=ot,S.DeleteRangeMutation=ee,S.DeltaColumnWidthCommand=Lt,S.DeltaRowHeightCommand=Kn,S.EffectRefRangId=le,S.INTERCEPTOR_POINT=_e,S.INumfmtService=pe,S.InsertColAfterCommand=In,S.InsertColBeforeCommand=Cn,S.InsertColCommand=De,S.InsertColMutation=Ie,S.InsertColMutationUndoFactory=_t,S.InsertRangeMoveDownCommand=rt,S.InsertRangeMoveRightCommand=st,S.InsertRangeMutation=te,S.InsertRowAfterCommand=Sn,S.InsertRowBeforeCommand=vn,S.InsertRowCommand=Te,S.InsertRowMutation=Ce,S.InsertRowMutationUndoFactory=bt,S.InsertSheetCommand=wn,S.InsertSheetMutation=fe,S.InsertSheetUndoMutationFactory=kt,S.MAX_CELL_PER_SHEET_KEY=Qn,S.MoveColsCommand=Dt,S.MoveColsMutation=xe,S.MoveRangeCommand=it,S.MoveRangeMutation=He,S.MoveRowsCommand=Tt,S.MoveRowsMutation=$e,S.NORMAL_SELECTION_PLUGIN_NAME=X,S.OperatorType=A,S.RemoveColCommand=lt,S.RemoveColMutation=Re,S.RemoveMergeUndoMutationFactory=Q,S.RemoveNumfmtMutation=xt,S.RemoveRowCommand=at,S.RemoveRowMutation=we,S.RemoveSheetCommand=Et,S.RemoveSheetMutation=We,S.RemoveSheetUndoMutationFactory=rn,S.RemoveWorksheetMergeCommand=yn,S.RemoveWorksheetMergeMutation=j,S.ResetBackgroundColorCommand=Wn,S.ResetTextColorCommand=Ln,S.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Ms,S.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Rs,S.SelectionMoveType=tn,S.SetBackgroundColorCommand=Bn,S.SetBoldCommand=lr,S.SetBorderBasicCommand=kn,S.SetBorderColorCommand=Un,S.SetBorderCommand=Ee,S.SetBorderPositionCommand=bn,S.SetBorderStyleCommand=_n,S.SetColHiddenCommand=Dn,S.SetColHiddenMutation=Oe,S.SetColVisibleMutation=Pe,S.SetColWidthCommand=Bt,S.SetFontFamilyCommand=mr,S.SetFontSizeCommand=hr,S.SetFrozenCommand=On,S.SetFrozenMutation=ge,S.SetFrozenMutationFactory=Pt,S.SetHorizontalTextAlignCommand=Fn,S.SetItalicCommand=cr,S.SetNumfmtMutation=dt,S.SetRangeValuesCommand=Ge,S.SetRangeValuesMutation=q,S.SetRangeValuesUndoMutationFactory=Se,S.SetRowHeightCommand=Jn,S.SetRowHiddenCommand=An,S.SetRowHiddenMutation=Ne,S.SetRowVisibleMutation=Ae,S.SetSelectedColsVisibleCommand=Tn,S.SetSelectedRowsVisibleCommand=Pn,S.SetSelectionsOperation=Y,S.SetSpecificColsVisibleCommand=Ot,S.SetSpecificRowsVisibleCommand=At,S.SetStrikeThroughCommand=dr,S.SetStyleCommand=J,S.SetTabColorCommand=xn,S.SetTabColorMutation=ze,S.SetTextColorCommand=Vn,S.SetTextRotationCommand=$n,S.SetTextWrapCommand=Hn,S.SetUnderlineCommand=ur,S.SetVerticalTextAlignCommand=jn,S.SetWorksheetActivateCommand=Nt,S.SetWorksheetActiveOperation=qe,S.SetWorksheetColWidthMutation=ue,S.SetWorksheetColWidthMutationFactory=Vt,S.SetWorksheetHideCommand=zn,S.SetWorksheetHideMutation=ve,S.SetWorksheetNameCommand=Wt,S.SetWorksheetNameMutation=ut,S.SetWorksheetOrderCommand=qn,S.SetWorksheetOrderMutation=Ye,S.SetWorksheetRowAutoHeightMutation=Ft,S.SetWorksheetRowAutoHeightMutationFactory=Cr,S.SetWorksheetRowHeightMutation=de,S.SetWorksheetRowIsAutoHeightCommand=Ht,S.SetWorksheetRowIsAutoHeightMutation=oe,S.SetWorksheetShowCommand=Xn,S.SheetEditablePermission=ye,S.checkIfShrink=Ko,S.convertPrimaryWithCoordToPrimary=go,S.convertSelectionDataToRange=ys,S.enUS=qr,S.expandToContinuousRange=zo,S.expandToNextCell=$o,S.expandToNextGapRange=Ho,S.expandToWholeSheet=qo,S.factoryRemoveNumfmtUndoMutation=kr,S.factorySetNumfmtUndoMutation=yr,S.findNextGapRange=Ut,S.findNextRange=Ue,S.getAddMergeMutationRangeByType=so,S.getCellAtRowCol=Fo,S.getNormalSelectionStyle=ps,S.getPrimaryForRange=ie,S.getStartRange=Yo,S.handleDeleteRangeMoveLeft=Ps,S.handleDeleteRangeMoveUp=As,S.handleDeleteRangeMutation=an,S.handleIRemoveCol=_s,S.handleIRemoveRow=Us,S.handleInsertCol=Ds,S.handleInsertRangeMoveDown=Es,S.handleInsertRangeMoveRight=Os,S.handleInsertRangeMutation=ln,S.handleInsertRow=Ts,S.handleMoveRange=bs,S.rangeMerge=$t,S.runRefRangeMutations=Ns,S.shrinkToNextCell=Go,S.shrinkToNextGapRange=xo,S.transformCellDataToSelectionData=ks,S.transformCellsToRange=mt,S.zhCN=io,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/engine-render"],s):(h=typeof globalThis<"u"?globalThis:h||self,s(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,s,W,We,ft,Zn,Qn){"use strict";var Zs=Object.defineProperty;var Qs=(h,s,W)=>s in h?Zs(h,s,{enumerable:!0,configurable:!0,writable:!0,value:W}):h[s]=W;var B=(h,s,W)=>(Qs(h,typeof s!="symbol"?s+"":s,W),W);var $t;var eo=Object.defineProperty,to=Object.getOwnPropertyDescriptor,no=(t,e,n,o)=>{for(var r=o>1?void 0:o?to(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&eo(e,n,r),r},oo=(t,e)=>(n,o)=>e(n,o,t);const J="normalSelectionPluginName";var Gt=(t=>(t[t.MOVE_START=0]="MOVE_START",t[t.MOVING=1]="MOVING",t[t.MOVE_END=2]="MOVE_END",t))(Gt||{});h.SelectionManagerService=class{constructor(e){B(this,"_selectionInfo",new Map);B(this,"_currentSelection",null);B(this,"_selectionMoveStart$",new We.Subject);B(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());B(this,"_selectionMoving$",new We.Subject);B(this,"selectionMoving$",this._selectionMoving$.asObservable());B(this,"_selectionMoveEnd$",new We.BehaviorSubject(null));B(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());B(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 n,o;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var n,o;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId})}reset(){var e,n;this._currentSelection!=null&&(this._currentSelection={pluginName:J,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=J,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(n=>n.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,n=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),n===0?this._refreshStart(this._currentSelection):n===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:n},o)=>e.some(({range:r},i)=>o===i?!1:n.startRow<=r.endRow&&n.endRow>=r.startRow&&n.startColumn<=r.endColumn&&n.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:n,unitId:o,sheetId:r}=e;return(a=(i=this._selectionInfo.get(n))==null?void 0:i.get(o))==null?void 0:a.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 n=this._getSelectionDatas(e);return n==null?void 0:n[0]}_getLastByParam(e){const n=this._getSelectionDatas(e);return n==null?void 0:n[n.length-1]}_addByParam(e,n=!0){const{pluginName:o,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const u=this._selectionInfo.get(o);u.has(r)||u.set(r,new Map);const d=u.get(r);if(!d.has(i))d.set(i,[...a]);else{let l=d.get(i);l==null&&(l=[],d.set(i,l)),l.push(...a)}n&&this._refresh({pluginName:o,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:n,unitId:o,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const a=this._selectionInfo.get(n);a.has(o)||a.set(o,new Map);const u=a.get(o);if(!u.has(r))u.set(r,i);else{let d=u.get(r);d==null&&(d=[],u.set(r,d)),d.splice(0,d.length,...i)}}_clearByParam(e){const n=this._getSelectionDatas(e);n==null||n.splice(0),this._refresh(e)}_removeByParam(e,n){const o=this._getSelectionDatas(n);o==null||o.splice(e,1),this._refresh(n)}},h.SelectionManagerService=no([oo(0,W.Inject(s.ThemeService))],h.SelectionManagerService);const so=s.createInterceptorKey("CELL_CONTENT"),ro=s.createInterceptorKey("PERMISSION"),Te={CELL_CONTENT:so,PERMISSION:ro};var io=Object.defineProperty,ao=Object.getOwnPropertyDescriptor,uo=(t,e,n,o)=>{for(var r=o>1?void 0:o?ao(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&io(e,n,r),r},co=(t,e)=>(n,o)=>e(n,o,t);h.SheetInterceptorService=class extends s.Disposable{constructor(n){super();B(this,"_interceptorsByName",new Map);B(this,"_commandInterceptors",[]);B(this,"_workbookDisposables",new Map);B(this,"_worksheetDisposables",new Map);this._currentUniverService=n,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(o=>{this._interceptWorkbook(o)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(o=>this._disposeWorkbookInterceptor(o)))),this.intercept(Te.CELL_CONTENT,{priority:-1,handler(o,r){const i=r.worksheet.getCellRaw(r.row,r.col);return o?{...i,...o}:i}}),this.intercept(Te.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(n=>n.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(n){if(this._commandInterceptors.includes(n))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(n),this._commandInterceptors.sort((o,r)=>(r.priority??0)-(o.priority??0)),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,n)))}onCommandExecute(n){const o=this._commandInterceptors.map(r=>r.getMutations(n));return{undos:o.map(r=>r.undos).flat(),redos:o.map(r=>r.redos).flat()}}intercept(n,o){const r=n;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(o),this._interceptorsByName.set(r,i.sort((a,u)=>(u.priority??0)-(a.priority??0))),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),o)))}fetchThroughInterceptors(n){const o=n,r=this._interceptorsByName.get(o);return s.composeInterceptors(r||[])}_interceptWorkbook(n){const o=new s.DisposableCollection,r=n.getUnitId(),i=this,a=u=>{const d=u.getSheetId();u.__interceptViewModel(l=>{const c=new s.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,v){return i.fetchThroughInterceptors(Te.CELL_CONTENT)(u.getCellRaw(g,v),{unitId:r,subUnitId:d,row:g,col:v,worksheet:u,workbook:n})}});c.add(m),i._worksheetDisposables.set(qt(r,u),c)})};n.getSheets().forEach(u=>a(u)),o.add(s.toDisposable(n.sheetCreated$.subscribe(u=>a(u)))),o.add(s.toDisposable(n.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(r,u)))),o.add(s.toDisposable(()=>n.getSheets().forEach(u=>this._disposeSheetInterceptor(r,u))))}_disposeWorkbookInterceptor(n){const o=n.getUnitId(),r=this._workbookDisposables.get(o);r&&(r.dispose(),this._workbookDisposables.delete(o))}_disposeSheetInterceptor(n,o){const r=qt(n,o),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}},h.SheetInterceptorService=uo([s.OnLifecycle(s.LifecycleStages.Starting,h.SheetInterceptorService),co(0,s.IUniverInstanceService)],h.SheetInterceptorService);function qt(t,e){return`${t}|${e.getSheetId()}`}const Ce=(t,e)=>{const{unitId:n,subUnitId:o,cellValue:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(a==null)throw new Error("workbook is null error!");const u=a.getSheetBySheetId(o);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),l=a.getStyles(),c=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,v,S)=>{const C=s.Tools.deepClone(d==null?void 0:d.getValue(g,v))||{},I=l.getStyleByCell(C),f=go(I,S&&S.s?S.s:null);C.s=f,c.setValue(g,v,lo(C))}),{...e,options:{},cellValue:c.getMatrix()}};function lo(t){return t==null?null:(t.f===void 0&&(t.f=null),t.si===void 0&&(t.si=null),t.p===void 0&&(t.p=null),t.v===void 0&&(t.v=null),t.t===void 0&&(t.t=null),t.s===void 0&&(t.s=null),t)}const Y={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(t,e)=>{const{cellValue:n,subUnitId:o,unitId:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const u=a.getSheetBySheetId(o);if(!u)return!1;const d=u.getCellMatrix(),l=a.getStyles();return new s.ObjectMatrix(n).forValue((m,g,v)=>{if(!v)d==null||d.setValue(m,g,{});else{const S=d.getValue(m,g)||{},C=v.t===s.CellValueType.FORCE_STRING?v.t:mo(v.v===void 0?S.v:v.v);if(v.f!==void 0&&(S.f=v.f),v.si!==void 0&&(S.si=v.si),v.p!==void 0&&(S.p=v.p),v.v!==void 0&&(S.v=C===s.CellValueType.NUMBER?Number(v.v):v.v),S.v!==void 0&&(S.t=C),v.s!==void 0){const I=l.getStyleByCell(S);I==null&&delete S.s,typeof v.s=="string"&&(v.s=l.get(v.s));const f=Yt(I,v.s?v.s:null);f&&s.Tools.removeNull(f),s.Tools.isEmptyObject(f)?delete S.s:S.s=l.setValue(f),!v.p&&S.p&&So(S.p,v.s?v.s:null)}d.setValue(m,g,s.Tools.removeNull(S))}}),!0}};function mo(t){return t===null?null:typeof t=="string"?Co(t)?s.CellValueType.NUMBER:s.CellValueType.STRING:typeof t=="number"?s.CellValueType.NUMBER:typeof t=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function go(t,e){return ho(t,e)}function ho(t,e){if(!e||!Object.keys(e).length)return t;const n=t||{};for(const o in e)o==="bd"?n[o]=vo(n[o]||{},e[o]):o in n||(n[o]=null);return n}function vo(t,e){if(!e||!Object.keys(e).length)return t;for(const n in e)n in t||(t[n]=null);return t}function Yt(t,e,n=!1){if(e===null)return e;if(e===void 0)return t;const o=s.Tools.deepClone(t)||{};if(o){for(const r in e)n&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in o&&r==="bd"?o[r]=Object.assign(o[r],e[r]):o[r]=e[r]);return"cl"in o&&("ul"in o&&(o.ul.cl=o.cl),"ol"in o&&(o.ol.cl=o.cl),"st"in o&&(o.st.cl=o.cl)),o}}function So(t,e){var n,o;(o=(n=t.body)==null?void 0:n.textRuns)==null||o.forEach(r=>{r.ts||(r.ts={});const i=r.ts||{},a=Yt(i,e,!0);a&&s.Tools.removeNull(a),s.Tools.isEmptyObject(a)?delete r.ts:r.ts=a})}function Io(t){return/^-?\d+(\.\d+)?$/.test(t)}function Co(t){return Io(t)?Number(t)<=Number.MAX_SAFE_INTEGER:!1}const xe={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(h.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(h.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),u=a.getUnitId(),l=a.getActiveSheet().getSheetId(),c=o.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:fo(c)},S=Ce(t,v);m.push({id:Y.id,params:v}),g.push({id:Y.id,params:S});const C=i.onCommandExecute({id:xe.id});return m.push(...C.redos),g.unshift(...C.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function fo(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let u=o;u<=i;u++)for(let d=r;d<=a;d++)e.setValue(u,d,null)}),e.getData()}const Rt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(h.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(h.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),u=a.getUnitId(),l=a.getActiveSheet().getSheetId(),c=o.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={subUnitId:l,unitId:u,cellValue:Ro(c)},g=Ce(t,m),v=i.onCommandExecute({id:Rt.id}),S=[{id:Y.id,params:m},...v.redos],C=[...v.undos,{id:Y.id,params:g}];return s.sequenceExecute(S,n).result?(r.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function Ro(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let u=o;u<=i;u++)for(let d=r;d<=a;d++)e.setValue(u,d,{v:null,p:null,f:null,si:null})}),e.getData()}const Je={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(h.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(h.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),u=a.getUnitId(),l=a.getActiveSheet().getSheetId(),c=o.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:Mo(c)},S=Ce(t,v);m.push({id:Y.id,params:v}),g.push({id:Y.id,params:S});const C=i.onCommandExecute({id:Je.id});return m.push(...C.redos),g.unshift(...C.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Mo(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let u=o;u<=i;u++)for(let d=r;d<=a;d++)e.setValue(u,d,{s:null})}),e.getData()}const Mt=(t,e)=>({subUnitId:e.sheet.id,unitId:e.unitId}),fe={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService),{sheet:o,index:r,unitId:i}=e,a=n.getUniverSheetInstance(i);return a?a.addWorksheet(o.id,r,o):!1}},Kt=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:i}=e,a=o.getSheetBySheetId(r).getConfig();return{index:o.getConfig().sheetOrder.findIndex(l=>l===r),sheet:a,unitId:i}},je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=n.getUniverSheetInstance(r);if(!i)return!1;const a=i.getWorksheets(),u=i.getConfig(),{sheets:d}=u;if(d[o]==null)throw new Error(`Remove sheet fail ${o} does not exist`);const l=u.sheetOrder.findIndex(c=>c===o);return delete d[o],u.sheetOrder.splice(l,1),a.delete(o),!0}},xt={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.LocaleService);let a=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.unitId??a,u=e.subUnitId??u);const d=r.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c=s.Tools.deepClone(l.getConfig());c.name+=i.t("sheets.sheetCopy"),c.id=s.Tools.generateRandomId();const g={index:d.getSheetIndex(l)+1,sheet:c,unitId:a},v=Mt(t,g);return n.syncExecuteCommand(fe.id,g)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:je.id,params:v}],redoMutations:[{id:fe.id,params:g}]}),!0):!1}},Xe=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(!o)return null;const r=o.getCellMatrix(),i=new s.ObjectMatrix,a=o.getConfig().rowCount,u=o.getConfig().columnCount,{startRow:d,endRow:l,startColumn:c,endColumn:m}=e.range;if(e.shiftDimension===s.Dimension.ROWS){for(let g=d;g<=a;g++)for(let v=c;v<=m;v++)if(g<=l){const S=r.getValue(g,v);i.setValue(g,v,S)}}else if(e.shiftDimension===s.Dimension.COLUMNS)for(let g=d;g<=l;g++)for(let v=c;v<=u;v++)if(v<=m){const S=r.getValue(g,v);i.setValue(g,v,S)}else for(let S=0;S<=m;S++){const C=r.getValue(g,v);i.setValue(g,v+S,C)}return{...s.Tools.deepClone(e),cellValue:i.getData()}},ee={id:"sheet.mutation.delete-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,range:r,shiftDimension:i}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!u)return!1;const d=u.getSheetBySheetId(o);if(!d)return!1;const l=d.getCellMatrix(),c=d.getLastRowWithContent(),m=d.getLastColumnWithContent();return Jt(l,r,c,m,i),!0}};function Jt(t,e,n,o,r){const{startRow:i,endRow:a,startColumn:u,endColumn:d}=e,l=a-i+1,c=d-u+1;if(r===s.Dimension.ROWS)for(let m=i;m<=n;m++)for(let g=u;g<=d;g++){const v=t.getValue(m+l,g);v==null?t.realDeleteValue(m,g):t.setValue(m,g,v)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let g=u;g<=o;g++){const v=t.getValue(m,g+c);v==null?t.realDeleteValue(m,g):t.setValue(m,g,v)}}const Ze=(t,e)=>({unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,shiftDimension:e.shiftDimension}),te={id:"sheet.mutation.insert-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,range:r,cellValue:i,shiftDimension:a}=e,d=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!d)return!1;const l=d.getSheetBySheetId(o);if(!l)return!1;const c=l.getCellMatrix(),m=l.getLastRowWithContent(),g=l.getLastColumnWithContent();return Xt(c,r,m,g,a,i),!0}};function Xt(t,e,n,o,r,i){const{startRow:a,endRow:u,startColumn:d,endColumn:l}=e;if(r===s.Dimension.ROWS){const c=u-a+1;for(let m=n;m>=a;m--)for(let g=d;g<=l;g++){const v=t.getValue(m,g);v==null?t.realDeleteValue(m+c,g):t.setValue(m+c,g,v)}for(let m=u;m>=a;m--)for(let g=d;g<=l;g++)i&&i[m]&&i[m][g]?t.setValue(m,g,i[m][g]):t.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const c=l-d+1;for(let m=a;m<=u;m++)for(let g=o;g>=d;g--){const v=t.getValue(m,g);v==null?t.realDeleteValue(m,g+c):t.setValue(m,g+c,v)}for(let m=a;m<=u;m++)for(let g=l;g>=d;g--)i&&i[m]&&i[m][g]?t.setValue(m,g,i[m][g]):t.realDeleteValue(m,g)}}const Zt="sheet.command.delete-range-move-left",Qe={type:s.CommandType.COMMAND,id:Zt,handler:async(t,e)=>{var M;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(h.SelectionManagerService),a=t.get(h.SheetInterceptorService),u=r.getCurrentUniverSheetInstance().getUnitId(),d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(M=i.getLast())==null?void 0:M.range),!l)return!1;const c=r.getUniverSheetInstance(u);if(!c||!c.getSheetBySheetId(d))return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:s.Dimension.COLUMNS},v=Xe(t,g);if(!v)return!1;const S=a.onCommandExecute({id:Qe.id,params:{range:l}}),C=[{id:ee.id,params:g}],I=[{id:te.id,params:v}];return C.push(...S.redos),I.push(...S.undos),s.sequenceExecute(C,n).result?(o.pushUndoRedo({unitID:u,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},Qt="sheet.command.delete-range-move-up",et={type:s.CommandType.COMMAND,id:Qt,handler:async(t,e)=>{var M;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(h.SelectionManagerService),a=t.get(h.SheetInterceptorService),u=r.getCurrentUniverSheetInstance().getUnitId(),d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(M=i.getLast())==null?void 0:M.range),!l)return!1;const c=r.getUniverSheetInstance(u);if(!c||!c.getSheetBySheetId(d))return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:s.Dimension.ROWS},v=Xe(t,g);if(!v)return!1;const S=a.onCommandExecute({id:et.id,params:{range:l}}),C=[{id:ee.id,params:g}],I=[{id:te.id,params:v}];return C.push(...S.redos),I.push(...S.undos),await s.sequenceExecute(C,n).result?(o.pushUndoRedo({unitID:u,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},wt=(t,e)=>{if(t.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-row",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,range:r,rowInfo:i}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(o);if(d==null)throw new Error("worksheet is null error!");const l=d.getRowManager().getRowData(),c={h:d.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let v=m;v<m+g;v++)i?s.insertMatrixArray(v,i[v-r.startRow]??c,l):s.insertMatrixArray(v,c,l);return d.setRowCount(d.getRowCount()+r.endRow-r.startRow+1),!0}},pt=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Me={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getColumnManager(),{range:a,colInfo:u}=e,l=i.getColumnData(),c=a.startColumn,m=a.endColumn-a.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let v=c;v<c+m;v++){const S={w:g,hd:0};u?s.insertMatrixArray(v,u[v-a.startColumn]??S,l):s.insertMatrixArray(v,S,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),!0}},wo=(t,e)=>{const r=e.getRowManager().getRowData(),i={},a=t.range,u=s.sliceMatrixArray(a.startRow,a.endRow,r);return s.concatMatrixArray(i,u),{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,rowInfo:i}},we={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,u=r.getRowManager().getRowData(),d=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,d,u),r.setRowCount(r.getRowCount()-d),!0}},po=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const u=r.getColumnManager().getColumnData(),d={},l=e.range,c=s.sliceMatrixArray(l.startColumn,l.endColumn,u);return s.concatMatrixArray(d,c),{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:d}},pe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,u=r.getColumnManager().getColumnData(),d=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,d,u),r.setColumnCount(r.getColumnCount()-d),!0}},yo="sheet.command.insert-range-move-down",tt={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(t,e)=>{var R;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(h.SelectionManagerService),u=t.get(h.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const d=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=e==null?void 0:e.range;if(c||(c=(R=a.getLast())==null?void 0:R.range),!c)return!1;const m=r.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],S=[],C={};s.Range.foreach(c,(H,$)=>{const G=g.getCell(H,$);!G||!G.s||(C[H]||(C[H]={}),C[H][$]={s:G.s})});const I={range:c,subUnitId:l,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:C};v.push({id:te.id,params:I});const f=Ze(t,I);S.push({id:ee.id,params:f});let M=!1,_=0;const w=g.getMaxRows()-1,{startRow:p,endRow:E,startColumn:b,endColumn:A}=c;for(let H=b;H<=A;H++){const $=g.getCell(w,H),G=$==null?void 0:$.v;if(G&&G!==""){M=!0,_=g.getRowHeight(w);break}}const P=E-p+1;if(M){const H={startRow:w,endRow:w,startColumn:c.startColumn,endColumn:c.endColumn},$={unitId:d,subUnitId:l,range:H,rowInfo:new Array(P).fill(void 0).map(()=>({h:_,hd:s.BooleanNumber.FALSE}))};v.push({id:Re.id,params:$});const G=wt(t,$);S.push({id:we.id,params:G})}const N=u.onCommandExecute({id:tt.id,params:{range:c}});return v.push(...N.redos),S.push(...N.undos),s.sequenceExecute(v,n)?(o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:v}),!0):!1}},en="sheet.command.insert-range-move-right",nt={type:s.CommandType.COMMAND,id:en,handler:async(t,e)=>{var R;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(h.SelectionManagerService),u=t.get(h.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const d=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=e==null?void 0:e.range;if(c||(c=(R=a.getLast())==null?void 0:R.range),!c)return!1;const m=r.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],S=[],C={};s.Range.foreach(c,(H,$)=>{const G=g.getCell(H,$);!G||!G.s||(C[H]||(C[H]={}),C[H][$]={s:G.s})});const I={range:c,subUnitId:l,unitId:d,shiftDimension:s.Dimension.COLUMNS,cellValue:C};v.push({id:te.id,params:I});const f=Ze(t,I);S.push({id:ee.id,params:f});let M=!1,_=0;const w=g.getMaxColumns()-1,{startRow:p,endRow:E,startColumn:b,endColumn:A}=c;for(let H=p;H<=E;H++){const $=g.getCell(H,w),G=$==null?void 0:$.v;if(G&&G!==""){M=!0,_=g.getColumnWidth(w);break}}const P=A-b+1;if(M){const H={startRow:c.startRow,endRow:c.endRow,startColumn:w,endColumn:w},$={unitId:d,subUnitId:l,range:H,colInfo:new Array(P).fill(void 0).map(()=>({w:_,hd:s.BooleanNumber.FALSE}))};v.push({id:Me.id,params:$});const G=pt(t,$);S.push({id:pe.id,params:G})}const N=u.onCommandExecute({id:nt.id,params:{range:c}});return v.push(...N.redos),S.push(...N.undos),s.sequenceExecute(v,n).result?(o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:v}),!0):!1}},tn="sheet.command.insert-row",Ee={type:s.CommandType.COMMAND,id:tn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),a=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId),{range:u,direction:d,unitId:l,subUnitId:c,cellValue:m}=e,{startRow:g,endRow:v}=u,S=d===s.Direction.UP?g:g-1,C=a.getRowHeight(S),I={unitId:l,subUnitId:c,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:C,hd:s.BooleanNumber.FALSE}))},f=wt(t,I),M={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,shiftDimension:s.Dimension.ROWS,cellValue:m},_=Ze(t,M),w=t.get(h.SheetInterceptorService).onCommandExecute({id:Ee.id,params:e});return s.sequenceExecute([{id:Re.id,params:I},{id:te.id,params:M},...w.redos],n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[...w.undos,{id:ee.id,params:_},{id:we.id,params:f}],redoMutations:[{id:Re.id,params:I},{id:te.id,params:M},...w.redos]}),!0):!1}},nn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async t=>{var g;const n=(g=t.get(h.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range);let o;if((n==null?void 0:n.length)===1)o=n[0];else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=o.endRow-o.startRow+1,c={};s.Range.foreach(o,(v,S)=>{const C=a.getCell(v,S);!C||!C.s||(c[v]||(c[v]={}),c[v][S]={s:C.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.UP,range:{startRow:o.startRow,endRow:o.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:c};return t.get(s.ICommandService).executeCommand(Ee.id,m)}},on={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async t=>{var m;const n=(m=t.get(h.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let o;if((n==null?void 0:n.length)===1)o=n[0];else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=o.endRow-o.startRow+1,c={unitId:u,subUnitId:d,direction:s.Direction.DOWN,range:{startRow:o.endRow+1,endRow:o.endRow+l,startColumn:0,endColumn:a.getColumnCount()-1}};return t.get(s.ICommandService).executeCommand(Ee.id,c)}},sn="sheet.command.insert-col",De={type:s.CommandType.COMMAND,id:sn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(h.SheetInterceptorService),{range:a,direction:u,subUnitId:d,unitId:l,cellValue:c}=e,{startColumn:m,endColumn:g}=e.range,S=r.getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId),C=u===s.Direction.LEFT?m:m-1,I=S.getColumnWidth(C),f={unitId:l,subUnitId:d,range:a,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:I,hd:s.BooleanNumber.FALSE}))},M=pt(t,f),_={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,shiftDimension:s.Dimension.COLUMNS,cellValue:c},w=Ze(t,_),p=i.onCommandExecute({id:De.id,params:e});return s.sequenceExecute([{id:Me.id,params:f},{id:te.id,params:_},...p.redos],n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[...p.undos,{id:ee.id,params:w},{id:pe.id,params:M}],redoMutations:[{id:Me.id,params:f},{id:te.id,params:_},...p.redos]}),!0):!1}},rn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async t=>{const n=t.get(h.SelectionManagerService).getSelections();let o;if((n==null?void 0:n.length)===1)o=n[0].range;else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=o.endColumn-o.startColumn+1,c={};s.Range.foreach(o,(g,v)=>{const S=a.getCell(g,v);!S||!S.s||(c[g]||(c[g]={}),c[g][v]={s:S.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.LEFT,range:{startColumn:o.startColumn,endColumn:o.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent()},cellValue:c};return t.get(s.ICommandService).executeCommand(De.id,m)}},an={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async t=>{const n=t.get(h.SelectionManagerService).getSelections();let o;if((n==null?void 0:n.length)===1)o=n[0].range;else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=o.endColumn-o.startColumn+1,c={unitId:u,subUnitId:d,direction:s.Direction.RIGHT,range:{startColumn:o.endColumn+1,endColumn:o.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return t.get(s.ICommandService).executeCommand(De.id,c)}},un={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService);let i=r.getCurrentUniverSheetInstance().getUnitId();e&&(i=e.unitId??i);const a=r.getUniverSheetInstance(i);if(!a)return!1;let u=a.getSheets().length,d=s.Tools.deepClone(s.DEFAULT_WORKSHEET);e?(u=e.index??u,e.sheet?d=e.sheet:(d.id=s.Tools.generateRandomId(),d.name=`工作表${++a.getSheets().length}`)):(d.id=s.Tools.generateRandomId(),d.name=`工作表${++a.getSheets().length}`);const l={index:u,sheet:d,unitId:i},c=Mt(t,l);return n.syncExecuteCommand(fe.id,l)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:c}],redoMutations:[{id:fe.id,params:l}]}),!0):!1}},Fe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{from:n,to:o}=e;if(!n||!o)return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getSheetBySheetId(e.subUnitId);if(!a)return!1;const u=a.getCellMatrix();return new s.ObjectMatrix(n).forValue((d,l,c)=>{u.setValue(d,l,c)}),new s.ObjectMatrix(o).forValue((d,l,c)=>{u.setValue(d,l,c)}),!0}},K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(t,e)=>{const n=t.get(h.SelectionManagerService);if(!e)return!1;const{selections:o,type:r}=e;return n.replace(o,r),!0}},dn="sheet.command.move-range",ot={type:s.CommandType.COMMAND,id:dn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(h.SheetInterceptorService),a=r.getCurrentUniverSheetInstance(),u=a.getActiveSheet(),d=a.getUnitId(),l=u.getSheetId(),c=u.getRange(e.fromRange).getValues(),m=c.reduce((p,E,b)=>(E.forEach((A,P)=>{p.setValue(e.fromRange.startRow+b,e.fromRange.startColumn+P,null)}),p),new s.ObjectMatrix),g=c.reduce((p,E,b)=>(E.forEach((A,P)=>{p.setValue(e.fromRange.startRow+b,e.fromRange.startColumn+P,A)}),p),new s.ObjectMatrix),v=c.reduce((p,E,b)=>(E.forEach((A,P)=>{p.setValue(e.toRange.startRow+b,e.toRange.startColumn+P,A)}),p),new s.ObjectMatrix),S=u.getRange(e.toRange).getValues().reduce((p,E,b)=>(E.forEach((A,P)=>{p.setValue(e.toRange.startRow+b,e.toRange.startColumn+P,A)}),p),new s.ObjectMatrix),C={from:m.getMatrix(),to:v.getMatrix(),unitId:d,subUnitId:l},I={from:g.getMatrix(),to:S.getMatrix(),unitId:d,subUnitId:l},f=i.onCommandExecute({id:ot.id,params:e}),M=[{id:Fe.id,params:C},...f.redos,{id:K.id,params:{unitId:d,sheetId:l,pluginName:J,selections:[{range:e.toRange}]}}],_=[{id:K.id,params:{unitId:d,sheetId:l,pluginName:J,selections:[{range:e.fromRange}]}},...f.undos,{id:Fe.id,params:I}];return await s.sequenceExecute(M,n).result?(o.pushUndoRedo({unitID:d,undoMutations:_,redoMutations:M}),!0):!1}},ae=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},j={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,u=e.ranges;for(let d=0;d<u.length;d++)a.push(u[d]);return!0}};function Uo(t,e){const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,u=r.endRow-r.startRow+1;return a?{unitId:n,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+u,startRow:r.startRow+u}}:{unitId:n,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:s.Rectangle.clone(i)}}const He={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(o);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,c=r.endRow-r.startRow+1,m=i.startRow,g=d.getRowManager().getRowData();return s.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveRows(l,c,m),!0}};function _o(t,e){const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,u=r.endColumn-r.startColumn+1;return a?{unitId:n,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+u,startColumn:r.startColumn+u}}:{unitId:n,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:s.Rectangle.clone(i)}}const $e={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(o);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,c=r.endColumn-r.startColumn+1,m=i.startColumn,g=d.getColumnManager().getColumnData();return s.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveColumns(l,c,m),!0}},ne=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,u=e.ranges,d=[];for(let l=0;l<u.length;l++)for(let c=a.length-1;c>=0;c--){const m=a[c],g=u[l];s.Rectangle.intersects(m,g)&&d.push(a[c])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,u=e.ranges;for(let d=0;d<u.length;d++)for(let l=a.length-1;l>=0;l--){const c=a[l],m=u[d];s.Rectangle.intersects(c,m)&&a.splice(l,1)}return!0}};function bo(t,e){return e.getMergeData().some(n=>n.startRow<t&&t<=n.endRow)}function To(t,e){return e.getMergeData().some(n=>n.startColumn<t&&t<=n.endColumn)}function st(t,e,n=!0){const o=e.getMatrixWithMergedCells(...s.selectionToArray(t)),r=[];if(o.forValue((a,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const l={startRow:a,startColumn:u,endRow:a+d.rowSpan-1,endColumn:u+d.colSpan-1};s.Rectangle.contains(t,l)||r.push(l)}}),r.length===0)return t;const i=s.Rectangle.union(t,...r);return n?st(i,e,n):i}function Eo(t,e,n){let o=null;return n.getMatrixWithMergedCells(t,e,t,e).forValue((i,a,u)=>(o={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:i+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:a+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),o||{actualColumn:e,actualRow:t,startRow:t,startColumn:e,endRow:t,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ue(t,e){const n=e.getMergedCell(t.startRow,t.startColumn);return n?{...n,actualRow:t.startRow,actualColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.startRow,endColumn:t.startColumn,actualRow:t.startRow,actualColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const yt={id:"sheet.command.move-rows",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(h.SelectionManagerService).getSelections(),{fromRow:r,toRow:i}=e,a=o==null?void 0:o.filter(q=>q.range.rangeType===s.RANGE_TYPE.ROW&&q.range.startRow<=r&&r<=q.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const u=t.get(h.SheetInterceptorService),l=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),v=t.get(s.ErrorService),S=a[0].range,C=a[0].primary,I=st(S,c,!1);if(!s.Rectangle.equals(S,I))return v.emit("Only part of a merged cell is selected."),!1;if(bo(i,c))return v.emit("Across a merged cell."),!1;const f={...S,startRow:i,endRow:i+S.endRow-S.startRow},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:f},_=Uo(t,M),w=i-r,p=w<0,E=S.endRow-S.startRow+1,b=s.Tools.deepClone(c.getMergeData());for(let q=0;q<b.length;q++){const y=b[q],{startRow:L,endRow:ce}=y;p?s.Rectangle.contains(S,y)?(y.startRow+=w,y.endRow+=w):ce<S.startRow&&L>=f.startRow&&(y.startRow+=E,y.endRow+=E):s.Rectangle.contains(S,y)?(y.startRow+=w,y.endRow+=w):S.endRow<L&&ce<f.startRow&&(y.startRow-=E,y.endRow-=E)}const A={unitId:m,subUnitId:g,ranges:s.Tools.deepClone(c.getMergeData())},P=ne(t,A),N={unitId:m,subUnitId:g,ranges:b},Z=ae(t,N),R=p?f:{...f,startRow:f.startRow-E,endRow:f.endRow-E},H={unitId:m,subUnitId:g,pluginName:J,selections:[{range:R,primary:ue(R,c),style:null}]},$={unitId:m,subUnitId:g,pluginName:J,selections:[{range:S,primary:C,style:null}]},G=t.get(s.ICommandService),be=u.onCommandExecute({id:yt.id,params:e}),Ie=[{id:He.id,params:M},{id:F.id,params:A},{id:j.id,params:N},{id:K.id,params:H},...be.redos],Be=[{id:He.id,params:_},{id:F.id,params:Z},{id:j.id,params:P},{id:K.id,params:$},...be.undos];return s.sequenceExecute(Ie,G).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:Be,redoMutations:Ie}),!0):!1}},Ut={id:"sheet.command.move-cols",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(h.SelectionManagerService).getSelections(),{fromCol:r,toCol:i}=e,a=o==null?void 0:o.filter(q=>q.range.rangeType===s.RANGE_TYPE.COLUMN&&q.range.startColumn<=r&&r<=q.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const u=t.get(h.SheetInterceptorService),l=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),v=t.get(s.ErrorService),S=a[0].range,C=a[0].primary,I=st(S,c,!1);if(!s.Rectangle.equals(S,I))return v.emit("Only part of a merged cell is selected."),!1;if(To(i,c))return v.emit("Across a merged cell."),!1;const f={...S,startColumn:i,endColumn:i+S.endColumn-S.startColumn},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:f},_=_o(t,M),w=S.endColumn-S.startColumn+1,p=i-r,E=p<0,b=s.Tools.deepClone(c.getMergeData());for(let q=0;q<b.length;q++){const y=b[q],{startColumn:L,endColumn:ce}=y;E?s.Rectangle.contains(S,y)?(y.startColumn+=p,y.endColumn+=p):ce<S.startColumn&&L>=f.startColumn&&(y.startColumn+=w,y.endColumn+=w):s.Rectangle.contains(S,y)?(y.startColumn+=p,y.endColumn+=p):S.endColumn<L&&ce<f.startColumn&&(y.startColumn-=w,y.endColumn-=w)}const A={unitId:m,subUnitId:g,ranges:s.Tools.deepClone(c.getMergeData())},P=ne(t,A),N={unitId:m,subUnitId:g,ranges:b},Z=ae(t,N),R=E?f:{...f,startColumn:f.startColumn-w,endColumn:f.endColumn-w},H={unitId:m,subUnitId:g,pluginName:J,selections:[{range:R,primary:ue(R,c),style:null}]},$={unitId:m,subUnitId:g,pluginName:J,selections:[{range:S,primary:C,style:null}]},G=t.get(s.ICommandService),be=u.onCommandExecute({id:Ut.id,params:e}),Ie=[{id:$e.id,params:M},{id:F.id,params:A},{id:j.id,params:N},{id:K.id,params:H},...be.redos],Be=[{id:$e.id,params:_},{id:F.id,params:Z},{id:j.id,params:P},{id:K.id,params:$},...be.undos];return s.sequenceExecute(Ie,G).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:Be,redoMutations:Ie}),!0}},cn="sheet.command.remove-row",rt={type:s.CommandType.COMMAND,id:cn,handler:async(t,e)=>{var f;const n=t.get(h.SelectionManagerService),o=t.get(h.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(f=n.getLast())==null?void 0:f.range),!r)return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=a.getActiveSheet(),d=a.getUnitId(),l=u.getSheetId();r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const c={unitId:d,subUnitId:l,range:r},m=wo(c,u),g={unitId:d,subUnitId:l,range:r,shiftDimension:s.Dimension.ROWS},v=Xe(t,g);if(!v)return!1;const S=o.onCommandExecute({id:rt.id,params:{range:r}}),C=t.get(s.ICommandService);return s.sequenceExecute([{id:ee.id,params:g},{id:we.id,params:c},...S.redos],C).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...S.undos,{id:Re.id,params:m},{id:te.id,params:v}],redoMutations:[{id:ee.id,params:g},{id:we.id,params:c},...S.redos]}),!0):!1}},ln="sheet.command.remove-col",it={type:s.CommandType.COMMAND,id:ln,handler:async(t,e)=>{var f;const n=t.get(h.SelectionManagerService),o=t.get(h.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(f=n.getLast())==null?void 0:f.range),!r)return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=a.getActiveSheet(),d=a.getUnitId(),l=u.getSheetId();r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const c={unitId:d,subUnitId:l,range:r},m=po(t,c),g={unitId:d,subUnitId:l,range:r,shiftDimension:s.Dimension.COLUMNS},v=Xe(t,g);if(!v)throw new Error;const S=o.onCommandExecute({id:it.id,params:{range:r}}),C=t.get(s.ICommandService);return s.sequenceExecute([{id:pe.id,params:c},{id:ee.id,params:g},...S.redos],C).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...S.undos,{id:Me.id,params:m},{id:te.id,params:v}],redoMutations:[{id:pe.id,params:c},{id:ee.id,params:g},...S.redos]}),!0):!1}},_t={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(h.SheetInterceptorService);let a=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.unitId??a,u=e.subUnitId??u);const d=r.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||d.getSheets().length<=1)return!1;const c=d.getSheetIndex(l);d.getConfig().sheetOrder[c+1];const m={subUnitId:u,unitId:a},g=Kt(t,m),v=i.onCommandExecute({id:_t.id,params:{unitId:a,subUnitId:u}}),S=[{id:je.id,params:m},...v.redos],C=[...v.undos,{id:fe.id,params:g}];return s.sequenceExecute(S,n)?(o.pushUndoRedo({unitID:a,undoMutations:C,redoMutations:S}),!0):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async t=>{const e=t.get(h.SelectionManagerService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=r.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:a,subUnitId:u,ranges:i};let m=!1;const g=l.getConfig().mergeData;if(i.forEach(C=>{g.forEach(I=>{s.Rectangle.intersects(C,I)&&(m=!0)})}),!m)return!1;const v=ne(t,c);return n.syncExecuteCommand(F.id,c)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:j.id,params:v}],redoMutations:[{id:F.id,params:c}]}),!0):!1}};class ye{constructor(){B(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});B(this,"_borderInfo$",new We.BehaviorSubject(this._borderInfo));B(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 at(t,e){const{startRow:n,startColumn:o,endRow:r,endColumn:i}=t;for(let a=n;a<=r;a++)for(let u=o;u<=i;u++)e(a,u)}const gn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(t,e)=>{const{type:n,color:o,style:r}=e.value,i=t.get(s.ICommandService),a=t.get(ye);return a.setType(n),a.setColor(o),a.setStyle(r),i.executeCommand(Oe.id)}},hn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(t,e)=>{if(!e.value)return!1;const n=t.get(s.ICommandService);return t.get(ye).setType(e.value),n.executeCommand(Oe.id)}},vn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get(ye).setStyle(e.value),n.executeCommand(Oe.id)}},Sn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get(ye).setColor(e.value),n.executeCommand(Oe.id)}},Oe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),o=t.get(s.IUniverInstanceService),r=t.get(h.SelectionManagerService),i=t.get(ye),a=r.getSelectionRanges(),u=o.getCurrentUniverSheetInstance(),d=u.getUnitId(),l=u.getActiveSheet(),c=l.getSheetId(),m=l.getConfig().mergeData;if(!(a!=null&&a.length))return!1;const{style:g,color:v,type:S,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,f=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,M=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,_=S===s.BorderType.RIGHT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,w=S===s.BorderType.VERTICAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,p=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,E=S.indexOf("tlbr")>-1,b=S.indexOf("tlbc")>-1,A=S.indexOf("tlmr")>-1,P=S.indexOf("bltr")>-1,N=S.indexOf("mltr")>-1,Z=S.indexOf("bctr")>-1,R=a[0],H={startRow:R.startRow-1,startColumn:R.startColumn,endRow:R.startRow-1,endColumn:R.endColumn},$={startRow:R.startRow,startColumn:R.startColumn-1,endRow:R.endRow,endColumn:R.startColumn-1},G={startRow:R.endRow+1,startColumn:R.startColumn,endRow:R.endRow+1,endColumn:R.endColumn},be={startRow:R.startRow,startColumn:R.endColumn+1,endRow:R.endRow,endColumn:R.endColumn+1},Ie={startRow:R.startRow,startColumn:R.startColumn,endRow:R.startRow,endColumn:R.endColumn},Be={startRow:R.startRow,startColumn:R.startColumn,endRow:R.endRow,endColumn:R.startColumn},Ct={startRow:R.endRow,startColumn:R.startColumn,endRow:R.endRow,endColumn:R.endColumn},q={startRow:R.startRow,startColumn:R.endColumn,endRow:R.endRow,endColumn:R.endColumn},y=new s.ObjectMatrix,L={s:g,cl:{rgb:v}},ce=(D,T)=>{let k=null;return m.forEach(X=>{s.Rectangle.intersects(X,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&(k=X)}),k};function z(D,T,k){D.startRow<0||D.startColumn<0||at(D,(X,re)=>{var U,Ke;const Q=ce(X,re);let oe=T;if(Q){if(k){const ie=s.Tools.deepClone((U=y.getValue(Q.startRow,Q.startColumn))==null?void 0:U.s);oe=ie!=null&&ie.bd?Object.assign(ie.bd,T):T}y.setValue(Q.startRow,Q.startColumn,{s:{bd:oe}})}else{if(k){const ie=s.Tools.deepClone((Ke=y.getValue(X,re))==null?void 0:Ke.s);oe=ie!=null&&ie.bd?Object.assign(ie.bd,T):T}y.setValue(X,re,{s:{bd:oe}})}})}I&&z(Ie,{t:s.Tools.deepClone(L)},!0),M&&z(Ct,{b:s.Tools.deepClone(L)},!0),f&&z(Be,{l:s.Tools.deepClone(L)},!0),_&&z(q,{r:s.Tools.deepClone(L)},!0),E?z(R,{tl_br:s.Tools.deepClone(L)},!0):z(R,{tl_br:null},!0),b?z(R,{tl_bc:s.Tools.deepClone(L)},!0):z(R,{tl_bc:null},!0),A?z(R,{tl_mr:s.Tools.deepClone(L)},!0):z(R,{tl_mr:null},!0),P?z(R,{bl_tr:s.Tools.deepClone(L)},!0):z(R,{bl_tr:null},!0),N?z(R,{ml_tr:s.Tools.deepClone(L)},!0):z(R,{ml_tr:null},!0),Z?z(R,{bc_tr:s.Tools.deepClone(L)},!0):z(R,{bc_tr:null},!0),w&&at(R,(D,T)=>{var X,re,Q,oe;const k=ce(D,T);if(k){if(k.endColumn!==R.endColumn){const U=(X=y.getValue(k.startRow,k.startColumn))==null?void 0:X.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{r:s.Tools.deepClone(L)}):{r:s.Tools.deepClone(L)}}})}if(k.startColumn!==R.startColumn){const U=(re=y.getValue(k.startRow,k.startColumn))==null?void 0:re.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{l:s.Tools.deepClone(L)}):{l:s.Tools.deepClone(L)}}})}}else{if(T!==R.endColumn){const U=(Q=y.getValue(D,T))==null?void 0:Q.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{r:s.Tools.deepClone(L)}):{r:s.Tools.deepClone(L)}}})}if(T!==R.startColumn){const U=(oe=y.getValue(D,T))==null?void 0:oe.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{l:s.Tools.deepClone(L)}):{l:s.Tools.deepClone(L)}}})}}}),p&&at(R,(D,T)=>{var X,re,Q,oe;const k=ce(D,T);if(k){if(k.endRow!==R.endRow){const U=(X=y.getValue(k.startRow,k.startColumn))==null?void 0:X.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{b:s.Tools.deepClone(L)}):{b:s.Tools.deepClone(L)}}})}if(k.startRow!==R.startRow){const U=(re=y.getValue(k.startRow,k.startColumn))==null?void 0:re.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{t:s.Tools.deepClone(L)}):{t:s.Tools.deepClone(L)}}})}}else{if(D!==R.endRow){const U=(Q=y.getValue(D,T))==null?void 0:Q.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{b:s.Tools.deepClone(L)}):{b:s.Tools.deepClone(L)}}})}if(D!==R.startRow){const U=(oe=y.getValue(D,T))==null?void 0:oe.s;y.setValue(D,T,{s:{bd:U!=null&&U.bd?Object.assign(U.bd,{t:s.Tools.deepClone(L)}):{t:s.Tools.deepClone(L)}}})}}}),!I&&!M&&!f&&!_&&!w&&!p&&(z(H,{b:null}),z(Ie,{t:null},!0),z(G,{t:null}),z(Ct,{b:null},!0),z($,{r:null}),z(Be,{l:null},!0),z(be,{l:null}),z(q,{r:null},!0),at(R,(D,T)=>{var X,re,Q,oe,U,Ke,ie,Xn;const k=ce(D,T);if(k){if(k.endColumn!==R.endColumn){const O=(X=y.getValue(k.startRow,k.startColumn))==null?void 0:X.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(k.startColumn!==R.startColumn){const O=(re=y.getValue(k.startRow,k.startColumn))==null?void 0:re.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(k.endRow!==R.endRow){const O=(Q=y.getValue(k.startRow,k.startColumn))==null?void 0:Q.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(k.startRow!==R.startRow){const O=(oe=y.getValue(k.startRow,k.startColumn))==null?void 0:oe.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==R.endColumn){const O=(U=y.getValue(D,T))==null?void 0:U.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==R.startColumn){const O=(Ke=y.getValue(D,T))==null?void 0:Ke.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(D!==R.endRow){const O=(ie=y.getValue(D,T))==null?void 0:ie.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(D!==R.startRow){const O=(Xn=y.getValue(D,T))==null?void 0:Xn.s;y.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const zt={unitId:d,subUnitId:c,cellValue:y.getData()},Xs=Ce(t,zt);return e.syncExecuteCommand(Y.id,zt)?(n.pushUndoRedo({unitID:d,undoMutations:[{id:Y.id,params:Xs}],redoMutations:[{id:Y.id,params:zt}]}),!0):!1}},Do=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ae={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startColumn;u<a.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.TRUE)}}return!0}},Oo=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Pe={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startColumn;u<a.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.FALSE)}}return!0}},bt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),a={unitId:n,subUnitId:o,ranges:r},u=Oo(t,a),d={unitId:n,subUnitId:o,pluginName:J,selections:r.map(g=>({range:g,primary:ue(g,i),style:null}))},l={unitId:n,subUnitId:o,pluginName:J,selections:fn(r).map(g=>({range:g,primary:ue(g,i),style:null}))},c=t.get(s.ICommandService);return s.sequenceExecute([{id:Pe.id,params:a},{id:K.id,params:d}],c).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Ae.id,params:u},{id:K.id,params:l}],redoMutations:[{id:Pe.id,params:a},{id:K.id,params:d}]}),!0}},In={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async t=>{var l;const n=(l=t.get(h.SelectionManagerService).getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const r=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),u=i.getSheetId(),d=n.map(c=>i.getHiddenCols(c.startColumn,c.endColumn)).flat();return t.get(s.ICommandService).executeCommand(bt.id,{unitId:a,subUnitId:u,ranges:d})}},Cn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async t=>{var v;const n=(v=t.get(h.SelectionManagerService).getSelections())==null?void 0:v.map(S=>S.range).filter(S=>S.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const r=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),u=i.getSheetId(),d={unitId:a,subUnitId:u,ranges:n},l={unitId:a,subUnitId:u,pluginName:J,selections:fn(n).map(S=>({range:S,primary:ue(S,i),style:null}))},c={unitId:a,subUnitId:u,pluginName:J,selections:n.map(S=>({range:S,primary:ue(S,i),style:null}))},m=t.get(s.ICommandService);if(s.sequenceExecute([{id:Ae.id,params:d},{id:K.id,params:l}],m).result){const S=t.get(s.IUndoRedoService),C=Do(t,d);return S.pushUndoRedo({unitID:a,undoMutations:[{id:Pe.id,params:C},{id:K.id,params:c}],redoMutations:[{id:Ae.id,params:d},{id:K.id,params:l}]}),!0}return!1}};function fn(t){return Ao(t).map(n=>{const o=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:o,endColumn:o}})}function Ao(t){const e=[];let n;return t.sort((o,r)=>o.startColumn-r.startColumn).forEach(o=>{if(!n){n=o;return}n.endColumn===o.startColumn-1?n.endColumn=o.endColumn:(e.push(n),n=o)}),e.push(n),e}const Tt=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...a}},ve={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:u,ySplit:d,xSplit:l}=e;return i.freeze={startRow:a,startColumn:u,ySplit:d,xSplit:l},!0}},Rn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const d=u.getSheetBySheetId(a);if(!d)return!1;const{startColumn:l,startRow:c,xSplit:m,ySplit:g}=e;if(c>=d.getRowCount()||l>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const v={unitId:i,subUnitId:a,...e},S=Tt(t,v);return n.syncExecuteCommand(ve.id,v)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:S}],redoMutations:[{id:ve.id,params:v}]}),!0):!1}},Po={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async t=>{const e=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),o=t.get(s.IUniverInstanceService),r=o.getCurrentUniverSheetInstance().getUnitId(),i=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),a=o.getUniverSheetInstance(r);if(!a||!a.getSheetBySheetId(i))return!1;const d={unitId:r,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=Tt(t,d);return e.syncExecuteCommand(ve.id,d)?(n.pushUndoRedo({unitID:r,undoMutations:[{id:ve.id,params:l}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},ze={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(h.SelectionManagerService),a=t.get(h.SheetInterceptorService),{value:u,range:d,unitId:l=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,m=d?[d]:i.getSelectionRanges();if(!m||!m.length)return!1;const g=new s.ObjectMatrix;let v;if(s.Tools.isArray(u))for(let w=0;w<m.length;w++){const{startRow:p,startColumn:E,endRow:b,endColumn:A}=m[w];for(let P=0;P<=b-p;P++)for(let N=0;N<=A-E;N++)g.setValue(P+p,N+E,u[P][N])}else if(s.isICellData(u))for(let w=0;w<m.length;w++){const{startRow:p,startColumn:E}=m[w];g.setValue(p,E,u)}else v=u;const S={subUnitId:c,unitId:l,cellValue:v??g.getMatrix()},C=Ce(t,S);if(!a.fetchThroughInterceptors(Te.PERMISSION)(null,{id:ze.id,params:S}))return!1;const I=n.syncExecuteCommand(Y.id,S),{undos:f,redos:M}=a.onCommandExecute({id:ze.id,params:{...S,range:m}}),_=await s.sequenceExecute([...M],n);return I&&_.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Y.id,params:C},...f],redoMutations:[{id:Y.id,params:S},...M]}),!0):!1}},ko=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},ke={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startRow;u<a.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},No=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ne={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startRow;u<a.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Et={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,i=t.get(s.ICommandService),a=t.get(s.IUndoRedoService),u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),d={unitId:n,subUnitId:o,ranges:r},l=ko(t,d),c={unitId:n,subUnitId:o,pluginName:J,selections:r.map(v=>({range:v,primary:ue(v,u),style:null}))},m={unitId:n,subUnitId:o,pluginName:J,selections:pn(r).map(v=>({range:v,primary:ue(v,u),style:null}))};return s.sequenceExecute([{id:ke.id,params:d},{id:K.id,params:c}],i).result&&a.pushUndoRedo({unitID:n,undoMutations:[{id:Ne.id,params:l},{id:K.id,params:m}],redoMutations:[{id:ke.id,params:d},{id:K.id,params:c}]}),!0}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async t=>{var l;const e=t.get(h.SelectionManagerService),n=t.get(s.IUniverInstanceService),o=(l=e.getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===s.RANGE_TYPE.ROW);if(!(o!=null&&o.length))return!1;const r=n.getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),u=i.getSheetId(),d=o.map(c=>i.getHiddenRows(c.startRow,c.endRow)).flat();return t.get(s.ICommandService).executeCommand(Et.id,{unitId:a,subUnitId:u,ranges:d})}},wn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async t=>{var C;const e=t.get(h.SelectionManagerService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=(C=e.getSelections())==null?void 0:C.map(I=>I.range).filter(I=>I.rangeType===s.RANGE_TYPE.ROW);if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=r.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:a,subUnitId:u,ranges:i},m={unitId:a,subUnitId:u,pluginName:J,selections:pn(i).map(I=>({range:I,primary:ue(I,l),style:null}))},g={unitId:a,subUnitId:u,pluginName:J,selections:i.map(I=>({range:I,primary:ue(I,l),style:null}))},v=No(t,c);return s.sequenceExecute([{id:Ne.id,params:c},{id:K.id,params:m}],n).result&&o.pushUndoRedo({unitID:a,undoMutations:[{id:ke.id,params:v},{id:K.id,params:g}],redoMutations:[{id:Ne.id,params:c},{id:K.id,params:m}]}),!0}};function pn(t){return Lo(t).map(n=>{const o=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:o,endRow:o}})}function Lo(t){const e=[];let n;return t.sort((o,r)=>o.startRow-r.startRow).forEach(o=>{if(!n){n=o;return}o.startRow===n.endRow+1?n.endRow=o.endRow:(e.push(n),n=o)}),e.push(n),e}const x={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(t,e)=>{const n=t.get(s.IUniverInstanceService),{unitId:o=n.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:i,style:a}=e,u=t.get(s.ICommandService),d=t.get(s.IUndoRedoService),l=t.get(h.SelectionManagerService),c=i?[i]:l.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=n.getUniverSheetInstance(o);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const v=new s.ObjectMatrix;if(s.Tools.isArray(a.value))for(let w=0;w<c.length;w++){const{startRow:p,endRow:E,startColumn:b,endColumn:A}=c[w];for(let P=0;P<=E-p;P++)for(let N=0;N<=A-b;N++)v.setValue(P+p,N+b,{s:{[a.type]:a.value[P][N]}})}else for(let w=0;w<c.length;w++){const{startRow:p,endRow:E,startColumn:b,endColumn:A}=c[w],P={s:{[a.type]:a.value}};for(let N=p;N<=E;N++)for(let Z=b;Z<=A;Z++)v.setValue(N,Z,P)}const S={subUnitId:r,unitId:o,cellValue:v.getMatrix()},C=Ce(t,S),I=u.syncExecuteCommand(Y.id,S),{undos:f,redos:M}=t.get(h.SheetInterceptorService).onCommandExecute({id:x.id,params:e}),_=s.sequenceExecute([...M],u);return I&&_.result?(d.pushUndoRedo({unitID:o,undoMutations:[{id:Y.id,params:C},...f],redoMutations:[{id:Y.id,params:S},...M]}),!0):!1}},Vo={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async t=>{const e=t.get(h.SelectionManagerService).getLast();if(!e)return!1;const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:o,actualColumn:r}=e.primary,a={style:{type:"bl",value:n.getRange(o,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(x.id,a)}},Bo={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async t=>{const e=t.get(h.SelectionManagerService).getLast();if(!e)return!1;const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let o=!0;if(e.primary){const{startRow:i,startColumn:a}=e.primary;o=n.getRange(i,a).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:o?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(x.id,r)}},Wo={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async t=>{const e=t.get(h.SelectionManagerService).getLast();if(!e)return!1;const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let o=!0;e.primary&&(o=!!n.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:o?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(x.id,r)}},jo={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async t=>{const e=t.get(h.SelectionManagerService).getLast();if(!e)return!1;const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let o=!0;e.primary&&(o=!!n.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:o?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(x.id,r)}};s.CommandType.COMMAND;const Fo={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={style:{type:"ff",value:e.value}};return n.executeCommand(x.id,o)}},Ho={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={style:{type:"fs",value:e.value}};return n.executeCommand(x.id,o)}},yn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const n=t.get(s.ICommandService),o={style:{type:"cl",value:{rgb:e.value}}};return n.executeCommand(x.id,o)}},Un={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async t=>{const e=t.get(s.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(x.id,n)}},_n={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const n=t.get(s.ICommandService),o={style:{type:"bg",value:{rgb:e.value}}};return n.executeCommand(x.id,o)}},bn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async t=>{const e=t.get(s.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(x.id,n)}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={style:{type:"vt",value:e.value}};return n.executeCommand(x.id,o)}},En={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={style:{type:"ht",value:e.value}};return n.executeCommand(x.id,o)}},Dn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={style:{type:"tb",value:e.value}};return n.executeCommand(x.id,o)}},On={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(t,e)=>{if(!e)return!1;const n=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},o=t.get(s.ICommandService),r={style:{type:"tr",value:n}};return o.executeCommand(x.id,r)}},$o=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},Ge={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().tabColor=e.color,!0):!1}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u||!u.getSheetBySheetId(a))return!1;const l={color:e.value,unitId:i,subUnitId:a},c=$o(t,l);return n.syncExecuteCommand(Ge.id,l)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Ge.id,params:c}],redoMutations:[{id:Ge.id,params:l}]}),!0):!1}},qe={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getWorksheets();for(const[,r]of o)r.getSheetId()===e.subUnitId?(r.getConfig().status=s.BooleanNumber.TRUE,n.__setActiveSheet(r)):r.getConfig().status=s.BooleanNumber.FALSE;return!0}},Dt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUniverInstanceService);let r=o.getCurrentUniverSheetInstance().getUnitId(),i=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(r=e.unitId??r,i=e.subUnitId??i);const a={unitId:r,subUnitId:i};return n.syncExecuteCommand(qe.id,a)}},Ot=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const i={},a=r.getColumnManager(),u=e.ranges;for(let d=0;d<u.length;d++){const l=u[d];for(let c=l.startColumn;c<l.endColumn+1;c++){const m=a.getColumnOrCreate(c);i[c]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},le={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),u=e.ranges;for(let d=0;d<u.length;d++){const l=u[d];for(let c=l.startColumn;c<l.endColumn+1;c++){const m=a.getColumnOrCreate(c);typeof e.colWidth=="number"?m.w=e.colWidth:m.w=e.colWidth[c-l.startColumn]??i}}return!0}},At={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(t,e)=>{const o=t.get(h.SelectionManagerService).getSelections();if(!(o!=null&&o.length))return!1;const r=t.get(s.ICommandService),i=t.get(s.IUndoRedoService),u=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),d=u.getActiveSheet(),l=u.getUnitId(),c=d.getSheetId(),{anchorCol:m,deltaX:g}=e,S=d.getColumnWidth(m)+g,C=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,I=o.filter(A=>A.range.rangeType===s.RANGE_TYPE.COLUMN),f=C?s.RANGE_TYPE.ALL:I.some(({range:A})=>{const{startColumn:P,endColumn:N}=A;return P<=m&&m<=N})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let M;if(f===s.RANGE_TYPE.ALL){const A=d.getRowCount(),P=new Array(d.getColumnCount()).fill(void 0).map((N,Z)=>({startRow:0,endRow:A-1,startColumn:Z,endColumn:Z}));M={subUnitId:c,unitId:l,colWidth:S,ranges:P}}else f===s.RANGE_TYPE.COLUMN?M={subUnitId:c,unitId:l,ranges:I.map(A=>s.Rectangle.clone(A.range)),colWidth:S}:M={subUnitId:c,unitId:l,colWidth:S,ranges:[{startRow:0,endRow:d.getMaxRows()-1,startColumn:m,endColumn:m}]};const _=Ot(t,M),w=r.syncExecuteCommand(le.id,M),{undos:p,redos:E}=t.get(h.SheetInterceptorService).onCommandExecute({id:At.id,params:M}),b=s.sequenceExecute([...E],r);return w&&b.result&&i.pushUndoRedo({unitID:l,undoMutations:[{id:le.id,params:_},...p],redoMutations:[{id:le.id,params:M},...E]}),!0}},Pt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(t,e)=>{const n=t.get(h.SelectionManagerService),o=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(s.IUniverInstanceService),a=n.getSelectionRanges();if(!(a!=null&&a.length))return!1;const u=i.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:u,ranges:a,colWidth:e.value},c=Ot(t,l),m=o.syncExecuteCommand(le.id,l),{undos:g,redos:v}=t.get(h.SheetInterceptorService).onCommandExecute({id:Pt.id,params:l}),S=s.sequenceExecute([...v],o);return m&&S.result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:le.id,params:c},...g],redoMutations:[{id:le.id,params:l},...v]}),!0):!1}},Pn=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(o==null)throw new Error("worksheet is null error!");return{hidden:o.isSheetHidden(),unitId:e.unitId,subUnitId:o.getSheetId()}},Se={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const o=n.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().hidden=e.hidden,!0):!1}},kn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ErrorService),a=r.getCurrentUniverSheetInstance().getUnitId();let u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(u=e.subUnitId??u);const d=r.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||l.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={unitId:a,subUnitId:u,hidden:s.BooleanNumber.TRUE},g=Pn(t,m);return d.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(i.emit("No visible sheet after you hide this."),!1):n.syncExecuteCommand(Se.id,m)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Se.id,params:g}],redoMutations:[{id:Se.id,params:m}]}),!0):!1}},zo=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(o==null)throw new Error("worksheet is null error!");return{unitId:e.unitId,name:o.getName(),subUnitId:o.getSheetId()}},ut={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const o=n.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().name=e.name,!0):!1}},kt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(h.SheetInterceptorService),a=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),d={subUnitId:e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:a},l=zo(t,d),c=i.onCommandExecute({id:kt.id,params:e}),m=[{id:ut.id,params:d},...c.redos],g=[...c.undos,{id:ut.id,params:l}];return await s.sequenceExecute(m,n).result?(o.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:m}),!0):!1}},Go=(t,e)=>{const r=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getConfig().sheetOrder.findIndex(i=>i===e.subUnitId);return{...s.Tools.deepClone(e),order:r}},Ye={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getConfig(),r=o.sheetOrder.filter(i=>i!==e.subUnitId);return r.splice(e.order,0,e.subUnitId),o.sheetOrder=r,!0}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),a=e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u||!u.getSheetBySheetId(a))return!1;const l={order:e.order,unitId:i,subUnitId:a},c=Go(t,l);return n.syncExecuteCommand(Ye.id,l)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Ye.id,params:c}],redoMutations:[{id:Ye.id,params:l}]}),!0):!1}},qo=2e3,Ln=(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=a==null?void 0:a.getSheetBySheetId(o);if(u==null)throw new Error("worksheet is null error!");const d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of r)for(let g=c;g<m+1;g++){const v=l.getRowOrCreate(g);d[g]=v.h}return{unitId:n,subUnitId:o,ranges:r,rowHeight:d}},Nt=(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of r)for(let g=c;g<=m;g++){const v=l.getRowOrCreate(g);d[g]=v.isAutoHeight}return{unitId:n,subUnitId:o,ranges:r,autoHeightInfo:d}},Yo=(t,e)=>{const{unitId:n,subUnitId:o,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=a==null?void 0:a.getSheetBySheetId(o),d=[],l=u.getRowManager();for(const c of r){const{row:m}=c,{ah:g}=l.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:n,subUnitId:o,rowsAutoHeightInfo:d}},me={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,ranges:r,rowHeight:i}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),d=u==null?void 0:u.getSheetBySheetId(o);if(!d)return!1;const l=d.getConfig().defaultRowHeight,c=d.getRowManager();for(const{startRow:m,endRow:g}of r)for(let v=m;v<=g;v++){const S=c.getRowOrCreate(v);typeof i=="number"?S.h=i:S.h=i[v]??l,S.h=Math.min(qo,S.h)}return!0}},se={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,ranges:r,autoHeightInfo:i}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),d=u==null?void 0:u.getSheetBySheetId(o);if(!d)return!1;const l=void 0,c=d.getRowManager();for(const{startRow:m,endRow:g}of r)for(let v=m;v<=g;v++){const S=c.getRowOrCreate(v);typeof i=="boolean"?S.isAutoHeight=i:S.isAutoHeight=i[v-m]??l}return!0}},Lt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=a==null?void 0:a.getSheetBySheetId(o);if(!u||!a)return!1;const d=u.getRowManager();for(const{row:l,autoHeight:c}of r){const m=d.getRowOrCreate(l);m.ah=c}return!0}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(t,e)=>{const o=t.get(h.SelectionManagerService).getSelections();if(!(o!=null&&o.length))return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),a=i.getActiveSheet(),u=i.getUnitId(),d=a.getSheetId(),{anchorRow:l,deltaY:c}=e,g=a.getRowHeight(l)+c,v=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,S=o.filter(b=>b.range.rangeType===s.RANGE_TYPE.ROW),C=v?s.RANGE_TYPE.ALL:S.some(({range:b})=>{const{startRow:A,endRow:P}=b;return A<=l&&l<=P})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let I;if(C===s.RANGE_TYPE.ALL){const b=a.getRowCount(),A=new Array(a.getColumnCount()).fill(void 0).map((P,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:b-1}));I={subUnitId:d,unitId:u,rowHeight:g,ranges:A}}else C===s.RANGE_TYPE.ROW?I={subUnitId:d,unitId:u,ranges:S.map(b=>s.Rectangle.clone(b.range)),rowHeight:g}:I={subUnitId:d,unitId:u,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const f=Ln(t,I),M={unitId:u,subUnitId:d,ranges:I.ranges,autoHeightInfo:!1},_=Nt(t,M),w=t.get(s.ICommandService),p=t.get(s.IUndoRedoService);return(await s.sequenceExecute([{id:me.id,params:I},{id:se.id,params:M}],w)).result?(p.pushUndoRedo({unitID:u,undoMutations:[{id:me.id,params:f},{id:se.id,params:_}],redoMutations:[{id:me.id,params:I},{id:se.id,params:M}]}),!0):!1}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(t,e)=>{const n=t.get(h.SelectionManagerService),o=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(s.IUniverInstanceService),a=n.getSelectionRanges();if(!(a!=null&&a.length))return!1;const u=i.getCurrentUniverSheetInstance(),d=u.getUnitId(),l=u.getActiveSheet().getSheetId(),c={subUnitId:l,unitId:d,ranges:a,rowHeight:e.value},m=Ln(t,c),g={unitId:d,subUnitId:l,ranges:c.ranges,autoHeightInfo:!1},v=Nt(t,g);return s.sequenceExecute([{id:me.id,params:c},{id:se.id,params:g}],o).result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:me.id,params:m},{id:se.id,params:v}],redoMutations:[{id:me.id,params:c},{id:se.id,params:g}]}),!0):!1}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(h.SelectionManagerService),i=t.get(s.IUniverInstanceService),a=i.getCurrentUniverSheetInstance().getUnitId(),u=i.getCurrentUniverSheetInstance().getActiveSheet(),d=u.getSheetId(),{anchorRow:l}=e??{},c=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:u.getMaxColumns()-1}]:r.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={unitId:a,subUnitId:d,ranges:c,autoHeightInfo:!0},g=Nt(t,m),v=n.syncExecuteCommand(se.id,m),{undos:S,redos:C}=t.get(h.SheetInterceptorService).onCommandExecute({id:Vt.id,params:m}),I=s.sequenceExecute([...C],n);return v&&I.result?(o.pushUndoRedo({unitID:a,undoMutations:[{id:se.id,params:g},...S],redoMutations:[{id:se.id,params:m},...C]}),!0):!1}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId();let a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.value??a);const u=r.getUniverSheetInstance(i);if(!u)return!1;const d=u.getSheetBySheetId(a);if(!d||d.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const c={unitId:i,subUnitId:a,hidden:s.BooleanNumber.FALSE},m=Pn(t,c),g=n.syncExecuteCommand(Se.id,c),v={unitId:i,subUnitId:a},S=n.syncExecuteCommand(qe.id,v);return g&&S?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Se.id,params:m}],redoMutations:[{id:Se.id,params:c}]}),!0):!1}},Ko=t=>{const e=new s.ObjectMatrix;return t.forEach(n=>{s.Range.foreach(n,(o,r)=>{e.setValue(o,r,1)})}),e.forValue((n,o)=>{const r=e.getValue(n-1,o);r&&e.setValue(n,o,r+1)}),e},jn=t=>{const e={area:0},n=(o,r)=>e.area<o?(e.area=o,e.range=r,!0):!1;return t.forValue((o,r,i)=>{let a=1,u=i;n(a*u,{startRow:o-u+1,endRow:o,startColumn:r,endColumn:r});const d={startRow:o-u+1,endRow:o,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&t.getValue(o,l);l--){u=Math.min(t.getValue(o,l)||0,u),a++;const c=u*a;d.startColumn=l,d.startRow=o-u+1,n(c,d)}}),e},xo=(t,e)=>(s.Range.foreach(e,(n,o)=>{t.realDeleteValue(n,o);let r=n+1,i=t.getValue(r,o)||0;for(;i>1;)t.setValue(r,o,i-1),r+=1,i=t.getValue(r,o)||0}),t),Jo=t=>{const e=[];let n=jn(t);for(;n.area>0;)n.range&&(e.push(n.range),xo(t,n.range)),n=jn(t);return e},Bt=t=>{const e=Ko(t);return Jo(e)},Xo=(t,e,n="")=>t.reduce((o,r)=>{const i=r&&r[e];return typeof i!="string"?(console.log(r,`${e} is not string`),o):(i?(o[i]||(o[i]=[]),o[i].push(r)):o[n].push(r),o)},{}),Zo=(t=0)=>{let e=t;return function(){return e++}},Ue=W.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,Ue);const Qo=(t,e)=>{const n=t.get(Ue),{values:o,unitId:r,subUnitId:i}=e,a=[],u=[],d=n.getModel(r,i)||void 0;Object.keys(o).forEach(c=>{o[c].ranges.forEach(g=>{s.Range.foreach(g,(v,S)=>{const C=n.getValue(r,i,v,S,d);C?a.push({pattern:C.pattern,type:C.type,row:v,col:S}):u.push({startColumn:S,endColumn:S,startRow:v,endRow:v})})})});const l=[];if(a){const c=ct(r,i,a);Object.keys(c.values).forEach(m=>{const g=c.values[m];g.ranges=Bt(g.ranges)}),l.push({id:dt.id,params:ct(r,i,a)})}return u&&l.push({id:Wt.id,params:{unitId:r,subUnitId:i,ranges:u}}),l},dt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{values:n,refMap:o}=e,r=t.get(Ue),i=e.unitId,a=e.subUnitId,u=Object.keys(n).reduce((d,l)=>{const c=o[l],m=n[l].ranges;return c&&d.push({...c,ranges:m}),d},[]);return r.setValues(i,a,u),!0}},Wt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{unitId:n,subUnitId:o,ranges:r}=e;return t.get(Ue).deleteValues(n,o,r),!0}},es=(t,e)=>{const n=t.get(Ue),{ranges:o,unitId:r,subUnitId:i}=e,a=[],u=n.getModel(r,i)||void 0;o.forEach(l=>{s.Range.foreach(l,(c,m)=>{const g=n.getValue(r,i,c,m,u);g&&a.push({pattern:g.pattern,type:g.type,row:c,col:m})})});const d=ct(r,i,a);return Object.keys(d.values).forEach(l=>{const c=d.values[l];c.ranges=Bt(c.ranges)}),[{id:dt.id,params:d}]},ct=(t,e,n)=>{const o=Xo(n,"pattern"),r={},i={},a=Zo();return Object.keys(o).forEach(u=>{const d=o[u],l=d[0],c=a();r[c]={pattern:u,type:l.type},d.forEach(m=>{i[c]||(i[c]={ranges:[]}),i[c].ranges.push(ts(m.row,m.col))})}),{unitId:t,subUnitId:e,refMap:r,values:i}},ts=(t,e)=>({startRow:t,endRow:t,startColumn:e,endColumn:e}),Fn="maxCellsPerSheet",ns=3e6;var os=Object.defineProperty,ss=Object.getOwnPropertyDescriptor,rs=(t,e,n,o)=>{for(var r=o>1?void 0:o?ss(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&os(e,n,r),r},Hn=(t,e)=>(n,o)=>e(n,o,t);let lt=class extends s.Disposable{constructor(t,e){super(),this._commandService=t,this._configService=e,[j,xe,Rt,Je,xt,Qe,et,ee,At,Vn,an,rn,De,Me,tt,nt,te,on,nn,Ee,Re,un,fe,Ut,$e,ot,Fe,yt,He,it,pe,rt,we,_t,je,mn,F,bn,Un,_n,gn,Sn,Oe,hn,vn,Cn,Ae,Pe,Pt,Po,Rn,ve,En,ze,Y,Bn,wn,Ne,ke,In,Mn,bt,Et,x,An,Ge,yn,On,Dn,Tn,Dt,qe,le,kn,Se,kt,ut,Nn,Ye,Lt,me,Vt,se,Wn,dt,Wt].forEach(n=>this.disposeWithMe(this._commandService.registerCommand(n))),this._configService.setConfig(Fn,ns)}};lt=rs([s.OnLifecycle(s.LifecycleStages.Starting,lt),Hn(0,s.ICommandService),Hn(1,s.IConfigService)],lt);var is=Object.defineProperty,as=Object.getOwnPropertyDescriptor,us=(t,e,n,o)=>{for(var r=o>1?void 0:o?as(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&is(e,n,r),r},ds=(t,e)=>(n,o)=>e(n,o,t);let mt=class extends s.Disposable{constructor(t){super(),this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id!==ft.SetFormulaCalculationResultMutation.id)return;const e=t.params,{unitData:n,unitOtherData:o}=e,r=Object.keys(n),i=[];return r.forEach(u=>{const d=n[u];Object.keys(d).forEach(c=>{const m=d[c];if(m==null)return!0;const g={subUnitId:c,unitId:u,cellValue:m.getData()};i.push({id:Y.id,params:g})})}),i.every(u=>this._commandService.executeCommand(u.id,u.params,{onlyLocal:!0}))}))}};mt=us([s.OnLifecycle(s.LifecycleStages.Ready,mt),ds(0,s.ICommandService)],mt);var cs=Object.defineProperty,ls=Object.getOwnPropertyDescriptor,ms=(t,e,n,o)=>{for(var r=o>1?void 0:o?ls(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&cs(e,n,r),r},gt=(t,e)=>(n,o)=>e(n,o,t);let ht=class extends s.Disposable{constructor(t,e,n,o){super(),this._commandService=t,this._featureCalculationManagerService=e,this._currentUniverService=n,this._formulaDataModel=o,this._initialize()}_initialize(){const t="test",e="workbook-01",n="sheet-0011",o={[e]:{[n]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[n]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(t,{unitId:e,subComponentId:n,dependencyRanges:[{unitId:e,sheetId:n,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>(console.log("test reference executor register"),{runtimeCellData:o,dirtyRanges:r})})}};ht=ms([s.OnLifecycle(s.LifecycleStages.Ready,ht),gt(0,s.ICommandService),gt(1,ft.IFeatureCalculationManagerService),gt(2,s.IUniverInstanceService),gt(3,W.Inject(ft.FormulaDataModel))],ht);const de={MoveRangeCommandId:dn,InsertRowCommandId:tn,InsertColCommandId:sn,RemoveColCommandId:ln,RemoveRowCommandId:cn,DeleteRangeMoveLeftCommandId:Zt,DeleteRangeMoveUpCommandId:Qt,InsertRangeMoveDownCommandId:yo,InsertRangeMoveRightCommandId:en};var V=(t=>(t[t.Set=0]="Set",t[t.Delete=1]="Delete",t[t.HorizontalMove=2]="HorizontalMove",t[t.VerticalMove=3]="VerticalMove",t[t.Unknown=4]="Unknown",t))(V||{}),gs=Object.defineProperty,hs=Object.getOwnPropertyDescriptor,vs=(t,e,n,o)=>{for(var r=o>1?void 0:o?hs(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&gs(e,n,r),r},jt=(t,e)=>(n,o)=>e(n,o,t);const Ss=s.createInterceptorKey("MERGE_REDO"),Is=s.createInterceptorKey("MERGE_UNDO");h.RefRangeService=class extends s.Disposable{constructor(n,o,r){super();B(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Ss,MERGE_UNDO:Is}));B(this,"_refRangeManagerMap",new Map);B(this,"_serializer",Cs());B(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const o=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=$n(this._univerInstanceService),i=zn(this._univerInstanceService),d=((()=>{switch(n.id){case de.MoveRangeCommandId:{const m=n;return this._checkRange([m.params.fromRange,m.params.toRange],r,i)}case de.InsertRowCommandId:{const v={startRow:n.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1};return this._checkRange([v],r,i)}case de.InsertColCommandId:{const g=n.params.range.startColumn,v={startRow:0,endRow:o.getRowCount()-1,startColumn:g,endColumn:o.getColumnCount()-1};return this._checkRange([v],r,i)}case de.RemoveRowCommandId:{const v={startRow:n.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1};return this._checkRange([v],r,i)}case de.RemoveColCommandId:{const g=n.params.range.startColumn,v={startRow:0,endRow:o.getRowCount()-1,startColumn:g,endColumn:o.getColumnCount()-1};return this._checkRange([v],r,i)}case de.DeleteRangeMoveUpCommandId:case de.InsertRangeMoveDownCommandId:{const g=n.params.range||Gn(this._selectionManagerService)[0],v={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:o.getRowCount()-1};return this._checkRange([v],r,i)}case de.DeleteRangeMoveLeftCommandId:case de.InsertRangeMoveRightCommandId:{const g=n.params.range||Gn(this._selectionManagerService)[0],v={startRow:g.startRow,startColumn:g.startColumn,endColumn:o.getColumnCount()-1,endRow:g.endRow};return this._checkRange([v],r,i)}}})()||[]).reduce((m,g)=>{const v=g(n);return m.push(v),m},[]).reduce((m,g)=>(m.redos.push(...g.redos),m.undos.push(...g.undos),m),{redos:[],undos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:l,undos:c}}})});B(this,"_checkRange",(n,o,r)=>{const i=qn(o,r),a=this._refRangeManagerMap.get(i);if(a){const u=new Set;return[...a.keys()].forEach(l=>{const c=a.get(l),m=this._serializer.deserialize(l);n.some(g=>s.Rectangle.intersects(g,m))&&c&&c.forEach(g=>{u.add(g)})}),[...u]}return[]});B(this,"registerRefRange",(n,o,r,i)=>{const a=r||$n(this._univerInstanceService),u=i||zn(this._univerInstanceService),d=qn(a,u),l=this._serializer.serialize(n);let c=this._refRangeManagerMap.get(d);c||(c=new Map,this._refRangeManagerMap.set(d,c));const m=c.get(l);return m?m.add(o):c.set(l,new Set([o])),s.toDisposable(()=>{const g=c.get(l);g&&(g.delete(o),g.size||(c.delete(l),c.size||this._refRangeManagerMap.delete(d)))})});this._sheetInterceptorService=n,this._univerInstanceService=o,this._selectionManagerService=r,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}},h.RefRangeService=vs([s.OnLifecycle(s.LifecycleStages.Steady,h.RefRangeService),jt(0,W.Inject(h.SheetInterceptorService)),jt(1,W.Inject(s.IUniverInstanceService)),jt(2,W.Inject(h.SelectionManagerService))],h.RefRangeService);function $n(t){return t.getCurrentUniverSheetInstance().getUnitId()}function zn(t){return t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function Gn(t){return t.getSelectionRanges()||[]}function qn(t,e){return`${t}_${e}`}function Cs(){const t=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:n=>{const o=t.reduce((i,a,u)=>(i[String(u)]=a,i),{});return n.split(e).reduce((i,a,u)=>{const d=String(u);return a&&o[d]&&(i[o[d]]=a),i},{})},serialize:n=>t.reduce((o,r,i)=>{const a=n[r];return a!==void 0?`${o}${i>0?e:""}${a}`:`${o}`},"")}}var fs=Object.defineProperty,Rs=Object.getOwnPropertyDescriptor,Ms=(t,e,n,o)=>{for(var r=o>1?void 0:o?Rs(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&fs(e,n,r),r},Le=(t,e)=>(n,o)=>e(n,o,t);function Yn(t,e){let n=t;if(e!==void 0){const o=[];for(let r=0;r<n.length;r++){const{startRow:i,endRow:a,startColumn:u,endColumn:d}=n[r];if(e===s.Dimension.ROWS)for(let l=i;l<=a;l++){const c={startRow:l,endRow:l,startColumn:u,endColumn:d};o.push(c)}else if(e===s.Dimension.COLUMNS)for(let l=u;l<=d;l++){const c={startRow:i,endRow:a,startColumn:l,endColumn:l};o.push(c)}}n=o}return n}let vt=class extends s.Disposable{constructor(t,e,n,o,r,i){super(),this._commandService=t,this._refRangeService=e,this._univerInstanceService=n,this._injector=o,this._sheetInterceptorService=r,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const t=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case xe.id:case Je.id:{const n=t._univerInstanceService.getCurrentUniverSheetInstance(),o=n.getUnitId(),r=n.getActiveSheet(),i=r.getSheetId(),a=r.getConfig().mergeData,u=t._selectionManagerService.getSelectionRanges();if(u&&u.length>0&&u.some(l=>a.some(c=>s.Rectangle.intersects(c,l)))){const l={unitId:o,subUnitId:i,ranges:u},c=ne(t._injector,l),m=[{id:F.id,params:l}],g=[{id:j.id,params:c}];return{redos:m,undos:g}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const t=new s.DisposableCollection,e=(r,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(r);if(!a)return;const u=a==null?void 0:a.getSheetBySheetId(i);if(!u)return;t.dispose();const d=u.getMergeData(),l=c=>{switch(c.id){case ot.id:{const m=c.params;return this._handleMoveRangeCommand(m,r,i)}case Ee.id:{const m=c.params,g=m.unitId||r,v=m.subUnitId||i;return this._handleInsertRowCommand(m,g,v)}case De.id:{const m=c.params,g=m.unitId||r,v=m.subUnitId||i;return this._handleInsertColCommand(m,g,v)}case it.id:{const m=c.params;return this._handleRemoveColCommand(m,r,i)}case rt.id:{const m=c.params;return this._handleRemoveRowCommand(m,r,i)}case nt.id:{const m=c.params;return this._handleInsertRangeMoveRightCommand(m,r,i)}case tt.id:{const m=c.params;return this._handleInsertRangeMoveDownCommand(m,r,i)}case et.id:{const m=c.params;return this._handleDeleteRangeMoveUpCommand(m,r,i)}case Qe.id:{const m=c.params;return this._handleDeleteRangeMoveLeftCommand(m,r,i)}}return{redos:[],undos:[]}};d.forEach(c=>{t.add(this._refRangeService.registerRefRange(c,l,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Dt.id){const i=r.params,a=i.subUnitId,u=i.unitId;if(!a||!u)return;e(u,a)}if(r.id===j.id){const i=r.params,a=i.subUnitId,u=i.unitId;if(!a||!u)return;e(i.unitId,i.subUnitId)}}));const n=this._univerInstanceService.getCurrentUniverSheetInstance(),o=n.getActiveSheet();e(n.getUnitId(),o.getSheetId())}_handleMoveRangeCommand(t,e,n){const o=ge(this._univerInstanceService,e);if(!o)return this._handleNull();const r=he(o,n);if(!r)return this._handleNull();const i=r.getMergeData(),a=i.filter(g=>s.Rectangle.intersects(g,t.fromRange)),u=i.filter(g=>s.Rectangle.intersects(g,t.toRange)),d=a.map(g=>s.Rectangle.getRelativeRange(g,t.fromRange)).map(g=>s.Rectangle.getPositionRange(g,t.toRange)),l=Yn(d).filter(g=>!i.some(v=>s.Rectangle.equals(g,v))),c=[{id:F.id,params:{unitId:e,subUnitId:n,ranges:a}},{id:F.id,params:{unitId:e,subUnitId:n,ranges:u}},{id:j.id,params:{unitId:e,subUnitId:n,ranges:l}}],m=[{id:F.id,params:{unitId:e,subUnitId:n,ranges:l}},{id:j.id,params:{unitId:e,subUnitId:n,ranges:u}},{id:j.id,params:{unitId:e,subUnitId:n,ranges:a}}];return{redos:c,undos:m}}_handleInsertRowCommand(t,e,n){const o=ge(this._univerInstanceService,e);if(!o)return this._handleNull();const r=he(o,n);if(!r)return this._handleNull();const{range:i}=t,{startRow:a,endRow:u}=i,d=s.Tools.deepClone(r.getMergeData()),l=s.Tools.deepClone(r.getMergeData()).map(I=>{const f=u-a+1;return a>I.endRow?I:a<=I.startRow?s.Rectangle.moveVertical(I,f):(I.endRow+=f,I)}),c={unitId:e,subUnitId:n,ranges:d},m=ne(this._injector,c),g={unitId:e,subUnitId:n,ranges:l},v=ae(this._injector,g),S=[{id:F.id,params:c},{id:j.id,params:g}],C=[{id:F.id,params:v},{id:j.id,params:m}];return{redos:S,undos:C}}_handleInsertColCommand(t,e,n){const{range:o}=t,r=ge(this._univerInstanceService,e);if(!r)return this._handleNull();const i=he(r,n);if(!i)return this._handleNull();const{startColumn:a,endColumn:u}=o,d=s.Tools.deepClone(i.getMergeData()),l=s.Tools.deepClone(i.getMergeData()).map(I=>{const f=u-a+1;return a>I.endColumn?I:a<=I.startColumn?s.Rectangle.moveHorizontal(I,f):(I.endColumn+=f,I)}),c={unitId:e,subUnitId:n,ranges:d},m=ne(this._injector,c),g={unitId:e,subUnitId:n,ranges:l},v=ae(this._injector,g),S=[{id:F.id,params:c},{id:j.id,params:g}],C=[{id:F.id,params:v},{id:j.id,params:m}];return{redos:S,undos:C}}_handleRemoveColCommand(t,e,n){const o=ge(this._univerInstanceService,e);if(!o)return this._handleNull();const r=he(o,n);if(!r)return this._handleNull();const{range:i}=t,a=s.Tools.deepClone(r.getMergeData());for(let v=0;v<a.length;v++){const S=a[v],{startColumn:C,endColumn:I}=S,f=I-C+1,{startColumn:M,endColumn:_}=i,w=_-M+1;if(_<S.startColumn)S.startColumn-=w,S.endColumn-=w;else{if(M>S.endColumn)continue;if(M<=S.startColumn&&_>=S.endColumn)a.splice(v,1),v--;else{const p=s.Rectangle.getIntersects(i,S);p.endColumn-p.startColumn+1===f-1?(a.splice(v,1),v--):S.endColumn-=p.endColumn-p.startColumn+1}}}const u={unitId:e,subUnitId:n,ranges:s.Tools.deepClone(r.getMergeData())},d=ne(this._injector,u),l={unitId:e,subUnitId:n,ranges:a},c=ae(this._injector,l),m=[{id:F.id,params:u},{id:j.id,params:l}],g=[{id:F.id,params:c},{id:j.id,params:d}];return{redos:m,undos:g}}_handleRemoveRowCommand(t,e,n){const{range:o}=t,r=ge(this._univerInstanceService,e);if(!r)return this._handleNull();const i=he(r,n);if(!i)return this._handleNull();const a=s.Tools.deepClone(i.getMergeData());for(let v=0;v<a.length;v++){const S=a[v],{startRow:C,endRow:I}=S,f=I-C+1,{startRow:M,endRow:_}=o,w=_-M+1;if(_<C)S.startRow-=w,S.endRow-=w;else{if(M>I)continue;if(M<=C&&_>=I)a.splice(v,1),v--;else{const p=s.Rectangle.getIntersects(o,S);p.endRow-p.startRow+1===f-1?(a.splice(v,1),v--):S.endRow-=p.endRow-p.startRow+1}}}const u={unitId:e,subUnitId:n,ranges:s.Tools.deepClone(i.getMergeData())},d=ne(this._injector,u),l={unitId:e,subUnitId:n,ranges:a},c=ae(this._injector,l),m=[{id:F.id,params:u},{id:j.id,params:l}],g=[{id:F.id,params:c},{id:j.id,params:d}];return{redos:m,undos:g}}_handleInsertRangeMoveRightCommand(t,e,n){const o=ge(this._univerInstanceService,e);if(!o)return this._handleNull();const r=he(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxColumns()-1,u=r.getMergeData(),d=[],l=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:a},S)&&(d.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:a},S))){const p=M-f+1;l.push({startRow:S.startRow,startColumn:S.startColumn+p,endRow:S.endRow,endColumn:S.endColumn+p})}});const c={unitId:e,subUnitId:n,ranges:d},m=ne(this._injector,c),g={unitId:e,subUnitId:n,ranges:l},v=ae(this._injector,g);return{redos:[{id:F.id,params:c},{id:j.id,params:g}],undos:[{id:j.id,params:m},{id:F.id,params:v}]}}_handleInsertRangeMoveDownCommand(t,e,n){const o=ge(this._univerInstanceService,e);if(!o)return this._handleNull();const r=he(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxRows()-1,u=r.getMergeData(),d=[],l=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:_,endRow:w}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:a,endColumn:_},I)&&(d.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:a,endColumn:_},I))){const b=w-f+1;l.push({startRow:I.startRow+b,startColumn:I.startColumn,endRow:I.endRow+b,endColumn:I.endColumn})}});const c={unitId:e,subUnitId:n,ranges:d},m=ne(this._injector,c),g={unitId:e,subUnitId:n,ranges:l},v=ae(this._injector,g),S=[{id:F.id,params:c},{id:j.id,params:g}],C=[{id:j.id,params:m},{id:F.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveUpCommand(t,e,n){const o=ge(this._univerInstanceService,e);if(!o)return this._handleNull();const r=he(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxRows()-1,u=r.getMergeData(),d=[],l=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:_,endRow:w}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:a,endColumn:_},I)&&(d.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:a,endColumn:_},I))){const b=w-f+1,A=s.Rectangle.moveVertical(I,-b);l.push(A)}});const c={unitId:e,subUnitId:n,ranges:d},m=ne(this._injector,c),g={unitId:e,subUnitId:n,ranges:l},v=ae(this._injector,g),S=[{id:F.id,params:c},{id:j.id,params:g}],C=[{id:j.id,params:m},{id:F.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveLeftCommand(t,e,n){const o=ge(this._univerInstanceService,e);if(!o)return this._handleNull();const r=he(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxColumns()-1,u=r.getMergeData(),d=[],l=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:a},S)&&(d.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:a},S))){const p=M-f+1;l.push({startRow:S.startRow,startColumn:S.startColumn-p,endRow:S.endRow,endColumn:S.endColumn-p})}});const c={unitId:e,subUnitId:n,ranges:d},m=ne(this._injector,c),g={unitId:e,subUnitId:n,ranges:l},v=ae(this._injector,g);return{redos:[{id:F.id,params:c},{id:j.id,params:g}],undos:[{id:j.id,params:m},{id:F.id,params:v}]}}_handleNull(){return{redos:[],undos:[]}}};vt=Ms([s.OnLifecycle(s.LifecycleStages.Steady,vt),Le(0,W.Inject(s.ICommandService)),Le(1,W.Inject(h.RefRangeService)),Le(2,W.Inject(s.IUniverInstanceService)),Le(3,W.Inject(W.Injector)),Le(4,W.Inject(h.SheetInterceptorService)),Le(5,W.Inject(h.SelectionManagerService))],vt);function ge(t,e){return e?t.getUniverSheetInstance(e):t.getCurrentUniverSheetInstance()}function he(t,e){return e?t.getSheetBySheetId(e):t.getActiveSheet()}const ws={sheets:{sheetCopy:"(Copy)"}},Kn={sheets:{sheetCopy:"(副本)"}};var ps=Object.defineProperty,ys=Object.getOwnPropertyDescriptor,Us=(t,e,n,o)=>{for(var r=o>1?void 0:o?ys(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ps(e,n,r),r},St=(t,e)=>(n,o)=>e(n,o,t);const _s="SHEET_NUMFMT_PLUGIN";let It=class extends s.Disposable{constructor(e,n,o,r){super();B(this,"_numfmtModel",new Map);B(this,"_refAliasModel",new Map);B(this,"_modelReplace$",new We.Subject);B(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=e,this._resourceManagerService=n,this._univerInstanceService=o,this._logService=r,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const e=o=>{const r=o.getUnitId();this._resourceManagerService.registerPluginResource(r,_s,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,a)=>{const{model:u,refModel:d}=a;if(u){const l=Object.keys(u).reduce((c,m)=>(c.set(m,new s.ObjectMatrix(u[m])),c),new Map);this._numfmtModel.set(i,l)}d&&this._refAliasModel.set(i,new s.RefAlias(d,["pattern","i"])),this._modelReplace$.next(i)}})};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(e))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(o=>{const r=o.getUnitId();this._numfmtModel.get(r)&&this._numfmtModel.delete(r),this._refAliasModel.get(r)&&this._refAliasModel.delete(r)})));const n=this._univerInstanceService.getCurrentUniverSheetInstance();e(n)}_toJson(e){const n=this._numfmtModel.get(e),o=this._refAliasModel.get(e);if(!n||!o)return"";const r=[...n.keys()].reduce((u,d)=>{const l=n.get(d);return u[d]=l.toJSON(),u},{}),i=o.getValues().filter(u=>u.count>0);return JSON.stringify({model:r,refModel:i})}_parseJson(e){try{return JSON.parse(e)}catch{return{model:{},refModel:[]}}}_setValue(e,n,o,r,i){let a=this.getModel(e,n);if(!a){const u=this._numfmtModel.get(e)||new Map,d=u.get(n)||new s.ObjectMatrix;u.set(n,d),this._numfmtModel.set(e,u),a=d}if(i)a.setValue(o,r,i);else if(a.realDeleteValue(o,r),!a.getSizeOf()){const d=this._numfmtModel.get(e);d==null||d.delete(n)}}_getUniqueRefId(e){const n=this._refAliasModel.get(e);if(!n)return"0";const o=n.getKeyMap("i");return`${Math.max(...o.map(i=>Number(i||0)),0)+1}`}getValue(e,n,o,r,i){const a=i||this.getModel(e,n);if(!a)return null;const u=this._refAliasModel.get(e),d=a.getValue(o,r);if(d&&u){const l=u.getValue(d==null?void 0:d.i);return l?{pattern:l.pattern,type:l.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(e,n,o){let r=this._refAliasModel.get(e);const i=this.getModel(e,n);r||(r=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(e,r)),o.forEach(a=>{s.Range.foreach(a,(u,d)=>{const l=this.getValue(e,n,u,d,i);if(l&&l.pattern){const c=r.getValue(l.pattern);c&&c.count--}this._setValue(e,n,u,d,null)})})}setValues(e,n,o){const r=this.getModel(e,n);let i=this._refAliasModel.get(e);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(e,i)),o.forEach(a=>{let u=i.getValue(a.pattern);u||(u={count:0,i:this._getUniqueRefId(e),pattern:a.pattern,type:o[0].type},i.addValue(u)),a.ranges.forEach(d=>{s.Range.foreach(d,(l,c)=>{if(r){const m=this.getValue(e,n,l,c,r);if(m&&m.pattern){const g=i.getValue(m.pattern);g&&g.count--}}this._setValue(e,n,l,c,{i:u.i}),u.count++})})})}getModel(e,n){const o=this._numfmtModel.get(e);return o==null?void 0:o.get(n)}getRefModel(e){return this._refAliasModel.get(e)}};It=Us([s.OnLifecycle(s.LifecycleStages.Starting,It),St(0,W.Inject(s.ICommandService)),St(1,W.Inject(s.IResourceManagerService)),St(2,W.Inject(s.IUniverInstanceService)),St(3,W.Inject(s.ILogService))],It);const xn="univer.sheet.editable";class _e extends s.PermissionPoint{constructor(n,o){super();B(this,"id",xn);B(this,"value",!0);B(this,"unitID");this._unitId=n,this._subUnitId=o,this.unitID=n,this.id=`${xn}_${n}_${o}`}}var bs=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,Es=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ts(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&bs(e,n,r),r},Ft=(t,e)=>(n,o)=>e(n,o,t);h.SheetPermissionService=class extends s.Disposable{constructor(e,n,o){super(),this._permissionService=e,this._univerInstanceService=n,this._sheetInterceptorService=o,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),n=e.getUnitId();e.getSheets().forEach(o=>{const r=o.getSheetId(),i=new _e(n,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(o=>{const r=o.getSheetId(),i=new _e(n,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(o=>{const r=o.getSheetId(),i=new _e(n,r);this._permissionService.deletePermissionPoint(e.getUnitId(),i.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(Te.PERMISSION,{priority:99,handler:(e,n,o)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=r==null?void 0:r.getActiveSheet(),a=r==null?void 0:r.getUnitId(),u=i==null?void 0:i.getSheetId();if(!a||!u)return!1;switch(n.id){case ze.id:return this.getSheetEditable(a,u)}return o()}}))}getEditable$(e,n){const o=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||o.getUnitId(),i=o.getActiveSheet(),a=n||i.getSheetId(),u=new _e(r,a);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,u.id]).pipe(Zn.map(([d,l])=>{const c=d.value&&l.value,m=s.getTypeFromPermissionItemList([d,l]);return{value:c,status:m}}))}getSheetEditable(e,n){const o=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||o.getUnitId(),i=o.getActiveSheet(),a=n||i.getSheetId(),u=new _e(r,a);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,u.id]).every(d=>d.value)}setSheetEditable(e,n,o){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=n||r.getUnitId(),a=r.getActiveSheet(),u=o||a.getSheetId(),d=new _e(i,u);this._permissionService.updatePermissionPoint(i,d.id,e)}},h.SheetPermissionService=Es([s.OnLifecycle(s.LifecycleStages.Ready,h.SheetPermissionService),Ft(0,W.Inject(s.IPermissionService)),Ft(1,W.Inject(s.IUniverInstanceService)),Ft(2,W.Inject(h.SheetInterceptorService))],h.SheetPermissionService);var Ds=Object.defineProperty,Os=Object.getOwnPropertyDescriptor,As=(t,e,n,o)=>{for(var r=o>1?void 0:o?Os(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&Ds(e,n,r),r},Ht=(t,e)=>(n,o)=>e(n,o,t);const Ps="sheet";h.UniverSheetsPlugin=($t=class extends s.Plugin{constructor(e,n,o,r){super(Ps),this._config=e,this._commandService=n,this._localeService=o,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:Kn})}_initializeDependencies(e){var o;const n=[[ye],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[Ue,{useClass:It}],[h.SheetInterceptorService],[lt],[vt]];(o=this._config)!=null&&o.notExecuteFormula||n.push([mt],[ht]),n.forEach(r=>{e.add(r)})}},B($t,"type",s.PluginType.Sheet),$t),h.UniverSheetsPlugin=As([Ht(1,s.ICommandService),Ht(2,W.Inject(s.LocaleService)),Ht(3,W.Inject(W.Injector))],h.UniverSheetsPlugin);const ks=[me.id,se.id,Lt.id,le.id,qe.id,He.id,$e.id,Ae.id,Pe.id,Ne.id,ke.id,te.id,ee.id,Me.id,Re.id,pe.id,we.id],Ns=[Y.id,Fe.id,F.id,j.id],Ls=1,Vs="rgba(255,255,255, 0.01)";function Bs(t){const e=t.getCurrentTheme(),n=new s.ColorKit(e.colorBlack).setAlpha(.1).toRgbString();return{strokeWidth:1.5,stroke:e.primaryColor,fill:n,widgets:{},widgetSize:8,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:8,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function Ws(t){const{rangeWithCoord:e,primaryWithCoord:n,style:o}=t,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:o};return n!=null&&(r.primary=Jn(n)),r}function Jn(t){const{actualRow:e,actualColumn:n,isMerged:o,isMergedMainCell:r}=t,{startRow:i,startColumn:a,endRow:u,endColumn:d}=t.mergeInfo;return{actualRow:e,actualColumn:n,isMerged:o,isMergedMainCell:r,startRow:i,startColumn:a,endRow:u,endColumn:d}}function js(t,e,n){const o=Qn.getCellInfoInMergeData(t,e,n),r=s.makeCellRangeToRangeData(o);if(r)return{range:r,primary:o,style:null}}const Ve=Number.MAX_SAFE_INTEGER,Fs=(t,e)=>{var i,a;const n=(i=t.params)==null?void 0:i.toRange,o=(a=t.params)==null?void 0:a.fromRange;if(!n||!o)return[];const r=[];if(s.Rectangle.intersects(o,e)){if(r.push({type:V.Delete}),s.Rectangle.contains(o,e)){const u=s.Rectangle.getRelativeRange(e,o),d=s.Rectangle.getPositionRange(u,n);return[{type:V.Set,range:d}]}}else s.Rectangle.intersects(n,e)&&r.push({type:V.Delete});return r},Hs=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.range;if(!n)return[];const o=[];if(n.endColumn<e.startColumn){const i={type:V.HorizontalMove,step:-(n.endColumn-n.startColumn+1)};o.push(i)}else{if(n.startColumn<=e.startColumn&&n.endColumn>=e.endColumn||n.startColumn>=e.startColumn&&n.endColumn<=e.endColumn)return[{type:V.Delete}];if(n.startColumn<=e.startColumn&&n.endColumn>=e.startColumn&&n.endColumn<=e.endColumn){const i={type:V.HorizontalMove,step:-(e.startColumn-n.startColumn),length:-(n.endColumn-e.startColumn+1)};o.push(i)}else if(n.startColumn>=e.startColumn&&n.startColumn<=e.endColumn&&n.endColumn>=e.endColumn){const i={type:V.HorizontalMove,step:0,length:-(e.endColumn-n.startColumn+1)};o.push(i)}}return o},$s=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.range;if(!n)return[];const o=[];if(n.endRow<e.startRow){const i={type:V.VerticalMove,step:-(n.endRow-n.startRow+1)};o.push(i)}else{if(n.startRow<=e.startRow&&n.endRow>=e.endRow||n.startRow>=e.startRow&&n.endRow<=e.endRow)return[{type:V.Delete}];if(n.startRow<=e.startRow&&n.endRow>=e.startRow&&n.endRow<=e.endRow){const i={type:V.VerticalMove,step:-(e.startRow-n.startRow),length:-(n.endRow-e.startRow+1)};o.push(i)}else if(n.startRow>=e.startRow&&n.startRow<=e.endRow&&n.endRow>=e.endRow){const i={type:V.VerticalMove,step:0,length:-(e.endRow-n.startRow+1)};o.push(i)}}return o},zs=(t,e)=>{var o;const n=(o=t.params)==null?void 0:o.range;return n?n.endRow<=e.startRow||n.startRow<=e.startRow&&n.endRow>=e.endRow?[{type:V.VerticalMove,step:n.endRow-n.startRow+1}]:n.startRow>=e.startRow&&n.endRow<=e.endRow?[{type:V.VerticalMove,step:0,length:n.endRow-n.startRow+1}]:s.Rectangle.intersects({...n,endRow:Ve},e)?[{type:V.Delete}]:[]:[]},Gs=(t,e)=>{var o;const n=(o=t.params)==null?void 0:o.range;return n?n.endColumn<e.startColumn||n.startColumn<=e.startColumn&&n.endColumn>=e.endColumn?[{type:V.HorizontalMove,step:n.endColumn-n.startColumn+1}]:n.startColumn>=e.startColumn&&n.endColumn<=e.endColumn?[{type:V.HorizontalMove,step:0,length:n.endColumn-n.startColumn+1}]:s.Rectangle.intersects({...n,endColumn:Ve},e)?[{type:V.Delete}]:[]:[]},qs=(t,e)=>{var o;const n=(o=t.params)==null?void 0:o.range;return n?n.startColumn<=e.startColumn&&n.endColumn>=e.endColumn&&n.endRow<=e.startRow&&n.startRow<=e.startRow?[{type:V.VerticalMove,step:n.endRow-n.startRow+1}]:s.Rectangle.intersects({...n,endRow:Ve},e)?[{type:V.Delete}]:[]:[]},Ys=(t,e)=>{var o;const n=(o=t.params)==null?void 0:o.range;return n?n.startRow<=e.startRow&&n.endRow>=e.endRow&&n.startColumn<=e.startColumn?[{type:V.HorizontalMove,step:n.endColumn-n.startColumn+1}]:s.Rectangle.intersects({...n,endColumn:Ve},e)?[{type:V.Delete}]:[]:[]},Ks=(t,e)=>{var o;const n=(o=t.params)==null?void 0:o.range;return n?n.startRow<=e.startRow&&n.endRow>=e.endRow&&n.endColumn<e.startColumn?[{type:V.HorizontalMove,step:-(n.endColumn-n.startColumn+1)}]:s.Rectangle.intersects({...n,endColumn:Ve},e)?[{type:V.Delete}]:[]:[]},xs=(t,e)=>{var o;const n=(o=t.params)==null?void 0:o.range;return n?n.startColumn<=e.startColumn&&n.endColumn>=e.endColumn&&n.endRow<e.startRow?[{type:V.VerticalMove,step:-(n.endRow-n.startRow+1)}]:s.Rectangle.intersects({...n,endRow:Ve},e)?[{type:V.Delete}]:[]:[]},Js=(t,e)=>{let n={...e};return t.forEach(o=>{switch(o.type){case V.Delete:{n=null;break}case V.HorizontalMove:{if(!n)return;n.startColumn+=o.step,n.endColumn+=o.step+(o.length||0);break}case V.VerticalMove:{if(!n)return;n.startRow+=o.step,n.endRow+=o.step+(o.length||0);break}case V.Set:{n=o.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n};h.AddMergeUndoMutationFactory=ae,h.AddWorksheetMergeMutation=j,h.BorderStyleManagerService=ye,h.COMMAND_LISTENER_SKELETON_CHANGE=ks,h.COMMAND_LISTENER_VALUE_CHANGE=Ns,h.ClearSelectionAllCommand=xe,h.ClearSelectionContentCommand=Rt,h.ClearSelectionFormatCommand=Je,h.CopySheetCommand=xt,h.DeleteRangeMoveLeftCommand=Qe,h.DeleteRangeMoveUpCommand=et,h.DeleteRangeMutation=ee,h.DeltaColumnWidthCommand=At,h.DeltaRowHeightCommand=Vn,h.EffectRefRangId=de,h.INTERCEPTOR_POINT=Te,h.INumfmtService=Ue,h.InsertColAfterCommand=an,h.InsertColBeforeCommand=rn,h.InsertColCommand=De,h.InsertColMutation=Me,h.InsertColMutationUndoFactory=pt,h.InsertRangeMoveDownCommand=tt,h.InsertRangeMoveRightCommand=nt,h.InsertRangeMutation=te,h.InsertRowAfterCommand=on,h.InsertRowBeforeCommand=nn,h.InsertRowCommand=Ee,h.InsertRowMutation=Re,h.InsertRowMutationUndoFactory=wt,h.InsertSheetCommand=un,h.InsertSheetMutation=fe,h.InsertSheetUndoMutationFactory=Mt,h.MAX_CELL_PER_SHEET_KEY=Fn,h.MoveColsCommand=Ut,h.MoveColsMutation=$e,h.MoveRangeCommand=ot,h.MoveRangeMutation=Fe,h.MoveRowsCommand=yt,h.MoveRowsMutation=He,h.NORMAL_SELECTION_PLUGIN_NAME=J,h.OperatorType=V,h.RemoveColCommand=it,h.RemoveColMutation=pe,h.RemoveMergeUndoMutationFactory=ne,h.RemoveNumfmtMutation=Wt,h.RemoveRowCommand=rt,h.RemoveRowMutation=we,h.RemoveSheetCommand=_t,h.RemoveSheetMutation=je,h.RemoveSheetUndoMutationFactory=Kt,h.RemoveWorksheetMergeCommand=mn,h.RemoveWorksheetMergeMutation=F,h.ResetBackgroundColorCommand=bn,h.ResetTextColorCommand=Un,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Vs,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Ls,h.SelectionMoveType=Gt,h.SetBackgroundColorCommand=_n,h.SetBoldCommand=Vo,h.SetBorderBasicCommand=gn,h.SetBorderColorCommand=Sn,h.SetBorderCommand=Oe,h.SetBorderPositionCommand=hn,h.SetBorderStyleCommand=vn,h.SetColHiddenCommand=Cn,h.SetColHiddenMutation=Ae,h.SetColVisibleMutation=Pe,h.SetColWidthCommand=Pt,h.SetFontFamilyCommand=Fo,h.SetFontSizeCommand=Ho,h.SetFrozenCommand=Rn,h.SetFrozenMutation=ve,h.SetFrozenMutationFactory=Tt,h.SetHorizontalTextAlignCommand=En,h.SetItalicCommand=Bo,h.SetNumfmtMutation=dt,h.SetRangeValuesCommand=ze,h.SetRangeValuesMutation=Y,h.SetRangeValuesUndoMutationFactory=Ce,h.SetRowHeightCommand=Bn,h.SetRowHiddenCommand=wn,h.SetRowHiddenMutation=Ne,h.SetRowVisibleMutation=ke,h.SetSelectedColsVisibleCommand=In,h.SetSelectedRowsVisibleCommand=Mn,h.SetSelectionsOperation=K,h.SetSpecificColsVisibleCommand=bt,h.SetSpecificRowsVisibleCommand=Et,h.SetStrikeThroughCommand=jo,h.SetStyleCommand=x,h.SetTabColorCommand=An,h.SetTabColorMutation=Ge,h.SetTextColorCommand=yn,h.SetTextRotationCommand=On,h.SetTextWrapCommand=Dn,h.SetUnderlineCommand=Wo,h.SetVerticalTextAlignCommand=Tn,h.SetWorksheetActivateCommand=Dt,h.SetWorksheetActiveOperation=qe,h.SetWorksheetColWidthMutation=le,h.SetWorksheetColWidthMutationFactory=Ot,h.SetWorksheetHideCommand=kn,h.SetWorksheetHideMutation=Se,h.SetWorksheetNameCommand=kt,h.SetWorksheetNameMutation=ut,h.SetWorksheetOrderCommand=Nn,h.SetWorksheetOrderMutation=Ye,h.SetWorksheetRowAutoHeightMutation=Lt,h.SetWorksheetRowAutoHeightMutationFactory=Yo,h.SetWorksheetRowHeightMutation=me,h.SetWorksheetRowIsAutoHeightCommand=Vt,h.SetWorksheetRowIsAutoHeightMutation=se,h.SetWorksheetShowCommand=Wn,h.SheetEditablePermission=_e,h.alignToMergedCellsBorders=st,h.convertPrimaryWithCoordToPrimary=Jn,h.convertSelectionDataToRange=Ws,h.enUS=ws,h.factoryRemoveNumfmtUndoMutation=es,h.factorySetNumfmtUndoMutation=Qo,h.getAddMergeMutationRangeByType=Yn,h.getCellAtRowCol=Eo,h.getNormalSelectionStyle=Bs,h.getPrimaryForRange=ue,h.handleDeleteRangeMoveLeft=Ks,h.handleDeleteRangeMoveUp=xs,h.handleDeleteRangeMutation=Jt,h.handleIRemoveCol=Hs,h.handleIRemoveRow=$s,h.handleInsertCol=Gs,h.handleInsertRangeMoveDown=qs,h.handleInsertRangeMoveRight=Ys,h.handleInsertRangeMutation=Xt,h.handleInsertRow=zs,h.handleMoveRange=Fs,h.rangeMerge=Bt,h.runRefRangeMutations=Js,h.transformCellDataToSelectionData=js,h.transformCellsToRange=ct,h.zhCN=Kn,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});