@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/cjs/index.js CHANGED
@@ -1,3 +1 @@
1
- "use strict";var vo=Object.defineProperty;var So=(t,e,n)=>e in t?vo(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var P=(t,e,n)=>(So(t,typeof e!="symbol"?e+"":e,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),H=require("@wendellhu/redi"),je=require("rxjs"),Ut=require("@univerjs/engine-formula"),fo=require("@ctrl/tinycolor"),Co=require("@univerjs/engine-render");var Io=Object.defineProperty,wo=Object.getOwnPropertyDescriptor,Ro=(t,e,n,o)=>{for(var r=o>1?void 0:o?wo(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},po=(t,e)=>(n,o)=>e(n,o,t);const J="normalSelectionPluginName";var gn=(t=>(t[t.MOVE_START=0]="MOVE_START",t[t.MOVING=1]="MOVING",t[t.MOVE_END=2]="MOVE_END",t))(gn||{});exports.SelectionManagerService=class{constructor(e){P(this,"_selectionInfo",new Map);P(this,"_currentSelection",null);P(this,"_selectionMoveStart$",new je.Subject);P(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());P(this,"_selectionMoving$",new je.Subject);P(this,"selectionMoving$",this._selectionMoving$.asObservable());P(this,"_selectionMoveEnd$",new je.BehaviorSubject(null));P(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());P(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: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: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 c=this._selectionInfo.get(o);c.has(r)||c.set(r,new Map);const l=c.get(r);l.has(i)?l.get(i).push(...a):l.set(i,[...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 c=a.get(o);if(!c.has(r))c.set(r,i);else{const l=c.get(r);l.splice(0,l.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)}};exports.SelectionManagerService=Ro([po(0,H.Inject(s.ThemeService))],exports.SelectionManagerService);const Mo=s.createInterceptorKey("CELL_CONTENT"),yo=s.createInterceptorKey("PERMISSION"),Ue={CELL_CONTENT:Mo,PERMISSION:yo};var ko=Object.defineProperty,bo=Object.getOwnPropertyDescriptor,_o=(t,e,n,o)=>{for(var r=o>1?void 0:o?bo(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&&ko(e,n,r),r},Uo=(t,e)=>(n,o)=>e(n,o,t);exports.SheetInterceptorService=class extends s.Disposable{constructor(n){super();P(this,"_interceptorsByName",new Map);P(this,"_commandInterceptors",[]);P(this,"_workbookDisposables",new Map);P(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(Ue.CELL_CONTENT,{priority:-1,handler(o,r){const i=r.worksheet.getCellRaw(r.row,r.col);return o?{...i,...o}:i}}),this.intercept(Ue.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,c)=>(c.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=c=>{const l=c.getSheetId();c.__interceptViewModel(d=>{const u=new s.DisposableCollection,m=d.registerCellContentInterceptor({getCell(h,g){return i.fetchThroughInterceptors(Ue.CELL_CONTENT)(c.getCellRaw(h,g),{workbookId:r,worksheetId:l,row:h,col:g,worksheet:c,workbook:n})}});u.add(m),i._worksheetDisposables.set(tn(r,c),u)})};n.getSheets().forEach(c=>a(c)),o.add(s.toDisposable(n.sheetCreated$.subscribe(c=>a(c)))),o.add(s.toDisposable(n.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),o.add(s.toDisposable(()=>n.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(n){const o=n.getUnitId(),r=this._workbookDisposables.get(o);r&&(r.dispose(),this._workbookDisposables.delete(o))}_disposeSheetInterceptor(n,o){const r=tn(n,o),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=_o([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Uo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function tn(t,e){return`${t}|${e.getSheetId()}`}const Me=(t,e)=>{const{workbookId:n,worksheetId:o,cellValue:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const l=c.getCellMatrix(),d=a.getStyles(),u=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((h,g,v)=>{const S=s.Tools.deepClone(l==null?void 0:l.getValue(h,g))||{},f=d.getStyleByCell(S),I=Eo(f,v&&v.s?v.s:null);S.s=I,u.setValue(h,g,To(S))}),{...s.Tools.deepClone(e),options:{},cellValue:u.getData()}};function To(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:n,worksheetId:o,workbookId:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(o);if(!c)return!1;const l=c.getCellMatrix(),d=a.getStyles();return new s.ObjectMatrix(n).forValue((m,h,g)=>{if(!g)l==null||l.setValue(m,h,{});else{const v=l.getValue(m,h)||{},S=g.t===s.CellValueType.FORCE_STRING?g.t:Do(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=S===s.CellValueType.NUMBER?Number(g.v):g.v),v.v!==void 0&&(v.t=S),g.s!==void 0){const f=d.getStyleByCell(v);f==null&&delete v.s,typeof g.s=="string"&&(g.s=d.get(g.s));const I=vn(f,g.s?g.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=d.setValue(I),!g.p&&v.p&&Ao(v.p,g.s?g.s:null)}l.setValue(m,h,s.Tools.removeNull(v))}}),!0}};function Do(t){return t===null?null:typeof t=="string"?xo(t)?s.CellValueType.NUMBER:s.CellValueType.STRING:typeof t=="number"?s.CellValueType.NUMBER:typeof t=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function Eo(t,e){return Oo(t,e)}function Oo(t,e){if(!e||!Object.keys(e).length)return t;const n=s.Tools.deepClone(t)||{};for(const o in e)o==="bd"?n[o]=Po(n[o]||{},e[o]):o in n||(n[o]=null);return n}function Po(t,e){if(!e||!Object.keys(e).length)return t;for(const n in e)n in t||(t[n]=null);return t}function vn(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 Ao(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=vn(i,e,!0);a&&s.Tools.removeNull(a),s.Tools.isEmptyObject(a)?delete r.ts:r.ts=a})}function No(t){return/^-?\d+(\.\d+)?$/.test(t)}function xo(t){return No(t)?Number(t)<=Number.MAX_SAFE_INTEGER:!1}const ut={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(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),c=a.getUnitId(),d=a.getActiveSheet().getSheetId(),u=o.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m=[],h=[],g={worksheetId:d,workbookId:c,cellValue:Vo(u)},v=Me(t,g);m.push({id:q.id,params:g}),h.push({id:q.id,params:v});const S=i.onCommandExecute({id:ut.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function Vo(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let l=r;l<=a;l++)e.setValue(c,l,null)}),e.getData()}const Et={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(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),c=a.getUnitId(),d=a.getActiveSheet().getSheetId(),u=o.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m={worksheetId:d,workbookId:c,cellValue:Lo(u)},h=Me(t,m),g=i.onCommandExecute({id:Et.id}),v=[{id:q.id,params:m},...g.redos],S=[...g.undos,{id:q.id,params:h}];return s.sequenceExecute(v,n).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:v}),!0):!1}};function Lo(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let l=r;l<=a;l++)e.setValue(c,l,{v:null,p:null,f:null,si:null})}),e.getData()}const dt={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(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),c=a.getUnitId(),d=a.getActiveSheet().getSheetId(),u=o.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m=[],h=[],g={worksheetId:d,workbookId:c,cellValue:Bo(u)},v=Me(t,g);m.push({id:q.id,params:g}),h.push({id:q.id,params:v});const S=i.onCommandExecute({id:dt.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function Bo(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let l=r;l<=a;l++)e.setValue(c,l,{s:null})}),e.getData()}const Ot=(t,e)=>({worksheetId:e.sheet.id,workbookId:e.workbookId}),Ce={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService),{sheet:o,index:r,workbookId:i}=e,a=n.getUniverSheetInstance(i);return a?a.addWorksheet(o.id,r,o):!1}},Sn=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{worksheetId:r,workbookId:i}=e,a=o.getSheetBySheetId(r).getConfig();return{index:o.getConfig().sheetOrder.findIndex(d=>d===r),sheet:a,workbookId:i}},Ke={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService),{worksheetId:o,workbookId:r}=e,i=n.getUniverSheetInstance(r);if(!i)return!1;const a=i.getWorksheets(),c=i.getConfig(),{sheets:l}=c;if(l[o]==null)throw new Error(`Remove sheet fail ${o} does not exist`);const d=c.sheetOrder.findIndex(u=>u===o);return delete l[o],c.sheetOrder.splice(d,1),a.delete(o),!0}},fn={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);let i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=e.workbookId??i,a=e.worksheetId??a);const c=r.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(a);if(!l)return!1;const d=s.Tools.deepClone(l.getConfig());d.name+="副本",d.id=s.Tools.generateRandomId();const m={index:c.getSheetIndex(l)+1,sheet:d,workbookId:i},h=Ot(t,m);return n.syncExecuteCommand(Ce.id,m)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Ke.id,params:h}],redoMutations:[{id:Ce.id,params:m}]}),!0):!1}},mt=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.worksheetId);if(!o)return null;const r=o.getCellMatrix(),i=new s.ObjectMatrix,a=o.getConfig().rowCount,c=o.getConfig().columnCount;for(let l=0;l<e.ranges.length;l++){const{startRow:d,endRow:u,startColumn:m,endColumn:h}=e.ranges[l];if(e.shiftDimension===s.Dimension.ROWS){for(let g=d;g<=a;g++)for(let v=m;v<=h;v++)if(g<=u){const S=r.getValue(g,v);i.setValue(g,v,S)}}else if(e.shiftDimension===s.Dimension.COLUMNS)for(let g=d;g<=u;g++)for(let v=m;v<=c;v++)if(v<=h){const S=r.getValue(g,v);i.setValue(g,v,S)}else for(let S=0;S<=h;S++){const f=r.getValue(g,v);i.setValue(g,v+S,f)}}return{...s.Tools.deepClone(e),cellValue:i.getData()}},oe={id:"sheet.mutation.delete-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r,shiftDimension:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)return!1;const l=c.getSheetBySheetId(o);if(!l)return!1;const d=l.getCellMatrix(),u=l.getLastRowWithContent(),m=l.getLastColumnWithContent();return Cn(d,r,u,m,i),!0}};function Cn(t,e,n,o,r){for(let i=0;i<e.length;i++){const{startRow:a,endRow:c,startColumn:l,endColumn:d}=e[i],u=c-a+1,m=d-l+1;if(r===s.Dimension.ROWS)for(let h=a;h<=n;h++)for(let g=l;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<=c;h++)for(let g=l;g<=o;g++){const v=t.getValue(h,g+m);v==null?t.realDeleteValue(h,g):t.setValue(h,g,v)}}}const ht=(t,e)=>({workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges,shiftDimension:e.shiftDimension}),re={id:"sheet.mutation.insert-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r,cellValue:i,shiftDimension:a}=e,l=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!l)return!1;const d=l.getSheetBySheetId(o);if(!d)return!1;const u=d.getCellMatrix(),m=d.getLastRowWithContent(),h=d.getLastColumnWithContent();return In(u,r,m,h,a,i),!0}};function In(t,e,n,o,r,i){for(let a=0;a<e.length;a++){const{startRow:c,endRow:l,startColumn:d,endColumn:u}=e[a];if(r===s.Dimension.ROWS){const m=l-c+1;for(let h=n;h>=c;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=l;h>=c;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=c;h<=l;h++)for(let g=o;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=c;h<=l;h++)for(let g=u;g>=d;g--)i?t.setValue(h,g,i[h][g]):t.realDeleteValue(h,g)}}}const wn="sheet.command.delete-range-move-left",gt={type:s.CommandType.COMMAND,id:wn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),l=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(c);if(!u||!u.getSheetBySheetId(l))return!1;const h={ranges:d,worksheetId:l,workbookId:c,shiftDimension:s.Dimension.COLUMNS},g=mt(t,h);if(!g)return!1;const v=a.onCommandExecute({id:gt.id,params:{ranges:d}}),S=[{id:oe.id,params:h}],f=[{id:re.id,params:g}];return S.push(...v.redos),f.push(...v.undos),s.sequenceExecute(S,n).result?(o.pushUndoRedo({unitID:c,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Rn="sheet.command.delete-range-move-up",vt={type:s.CommandType.COMMAND,id:Rn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),l=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(c);if(!u||!u.getSheetBySheetId(l))return!1;const h={ranges:d,worksheetId:l,workbookId:c,shiftDimension:s.Dimension.ROWS},g=mt(t,h);if(!g)return!1;const v=a.onCommandExecute({id:vt.id,params:{ranges:d}}),S=[{id:oe.id,params:h}],f=[{id:re.id,params:g}];return S.push(...v.redos),f.push(...v.undos),await s.sequenceExecute(S,n).result?(o.pushUndoRedo({unitID:c,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Pt=(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-row",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r,rowInfo:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(c==null)throw new Error("universheet is null error!");const l=c.getSheetBySheetId(o);if(l==null)throw new Error("worksheet is null error!");const d=l.getRowManager().getRowData(),u={h:l.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 S=g;S<g+v;S++)i?d.insert(S,i.get(S-h.startRow)??u):d.insert(S,u)}return l.setRowCount(l.getRowCount()+r.reduce((m,h)=>m+h.endRow-h.startRow+1,0)),!0}},At=(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))}},we={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(!r)return!1;const i=r.getColumnManager(),{ranges:a,colInfo:c}=e,l=i.getColumnData().toJSON(),d=new s.ObjectArray(l);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 S=h;S<h+g;S++){const f={w:v,hd:0};c?d.insert(S,c.get(S-m.startColumn)??f):d.insert(S,f)}}return r.setColumnCount(r.getColumnCount()+a.reduce((u,m)=>u+m.endColumn-m.startColumn+1,0)),!0}},Wo=(t,e)=>{const o=e.getRowManager().getRowData().toJSON(),r=new s.ObjectArray(o),i=new s.ObjectArray;for(let a=0;a<t.ranges.length;a++){const c=t.ranges[a],l=r.slice(c.startRow,c.endRow);i.concat(l)}return{workbookId:t.workbookId,worksheetId:t.worksheetId,ranges:t.ranges,rowInfo:i}},Re={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getRowManager().getRowData().toJSON(),c=new s.ObjectArray(a);for(let l=0;l<e.ranges.length;l++){const d=e.ranges[l],u=d.startRow,m=d.endRow;for(let h=u;h<=m;h++)c.splice(h,1)}return r.setRowCount(r.getRowCount()-e.ranges.reduce((l,d)=>l+d.endRow-d.startRow+1,0)),!0}},jo=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(r==null)throw new Error("worksheet is null error!");const a=r.getColumnManager().getColumnData().toJSON(),c=new s.ObjectArray(a),l=new s.ObjectArray;for(let d=0;d<e.ranges.length;d++){const u=e.ranges[d],m=c.slice(u.startColumn,u.endColumn);l.concat(m)}return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:e.ranges,colInfo:l}},pe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getColumnManager().getColumnData().toJSON(),c=new s.ObjectArray(a);for(let l=0;l<e.ranges.length;l++){const d=e.ranges[l],u=d.startColumn,m=d.endColumn;for(let h=u;h<=m;h++)c.splice(h,1)}return r.setColumnCount(r.getColumnCount()-e.ranges.reduce((l,d)=>l+d.endColumn-d.startColumn+1,0)),!0}};function Fo(t,e,n){let o=null;return n.getMatrixWithMergedCells(t,e,t,e).forValue((i,a,c)=>(o={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:i+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:a+(c.colSpan!==void 0?c.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 _e(t,e,n,o,r=!0,i=1,a=!0){let c={...t};o==null&&(o={startRow:0,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1});let l;switch(e){case s.Direction.UP:for(l=t.startRow-i;l>-1&&!n.getRowVisible(l);)l-=1;l>=o.startRow?(c.startRow=l,c.endRow=l):a&&(c.startRow=o.endRow,c.endRow=o.endRow,r&&(c=_e(c,s.Direction.LEFT,n,o,!1)));break;case s.Direction.DOWN:for(l=t.endRow+i;l<n.getRowCount()&&!n.getRowVisible(l);)l+=1;l<=o.endRow?(c.startRow=l,c.endRow=l):a&&(c.startRow=o.startRow,c.endRow=o.startRow,r&&(c=_e(c,s.Direction.RIGHT,n,o,!1)));break;case s.Direction.LEFT:for(l=t.startColumn-i;l>-1&&!n.getColVisible(l);)l-=1;l>=o.startColumn?(c.startColumn=l,c.endColumn=l):a&&(c.startColumn=o.endColumn,c.endColumn=o.endColumn,r&&(c=_e(c,s.Direction.UP,n,o,!1)));break;case s.Direction.RIGHT:for(l=t.endColumn+i;l<n.getColumnCount()&&!n.getColVisible(l);)l+=1;l<=o.endColumn?(c.startColumn=l,c.endColumn=l):a&&(c.startColumn=o.startColumn,c.endColumn=o.startColumn,r&&(c=_e(c,s.Direction.DOWN,n,o,!1)));break}return c}function Nt(t,e,n){const o={...t},{startRow:r,startColumn:i,endRow:a,endColumn:c}=$e(t,e,n);let l=We(n,r,i,a,c).hasValue,d=!0,u=!0;for(;u;){if(s.Direction.UP===e){let m=o.startRow-1;for(;m>-1&&!n.getRowVisible(m);)m-=1;if(m===-1){u=!1;break}const{hasValue:h,matrix:g}=We(n,m,o.startColumn,m,o.endColumn);if(l&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue(S=>{v=Math.min(S,v)}),o.startRow=v}else o.startRow=m;if(o.endRow=o.startRow,!l&&h){u=!1;break}l=h,d=!1}}if(s.Direction.DOWN===e){let m=o.endRow+1;for(;m<n.getRowCount()&&!n.getRowVisible(m);)m+=1;if(m===n.getRowCount()){u=!1;break}const{hasValue:h,matrix:g}=We(n,m,o.startColumn,m,o.endColumn);if(l&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue((S,f,I)=>{v=Math.max(S+(I.rowSpan||1)-1,v)}),o.endRow=v}else o.endRow=m;if(o.startRow=o.endRow,!l&&h){u=!1;break}l=h,d=!1}}if(s.Direction.LEFT===e){let m=o.startColumn-1;for(;m>-1&&!n.getColVisible(m);)m-=1;if(m===-1){u=!1;break}const{hasValue:h,matrix:g}=We(n,o.startRow,m,o.endRow,m);if(l&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue((S,f)=>{v=Math.min(f,v)}),o.startColumn=v}else o.startColumn=m;if(o.endColumn=o.startColumn,!l&&h){u=!1;break}l=h,d=!1}}if(s.Direction.RIGHT===e){let m=o.endColumn+1;for(;m<n.getColumnCount()&&!n.getColVisible(m);)m+=1;if(m===n.getColumnCount()){u=!1;break}const{hasValue:h,matrix:g}=We(n,o.startRow,m,o.endRow,m);if(l&&!h&&!d){u=!1;break}else{if(g.getLength()!==0){let v=m;g.forValue((S,f,I)=>{v=Math.max(f+(I.colSpan||1)-1,v)}),o.endColumn=v}else o.endColumn=m;if(o.startColumn=o.endColumn,!l&&h){u=!1;break}l=h,d=!1}}}return te(o,n,!0)}function pn(t,e,n){return _e(t,e,n,void 0,!1,1,!1)}function Ho(t,e,n){const o=Nt(t,e,n);return te(s.Rectangle.union(o,t),n,!0)}function te(t,e,n=!0){const o=e.getMatrixWithMergedCells(...s.selectionToArray(t)),r=[];if(o.forValue((a,c,l)=>{if(l.colSpan!==void 0&&l.rowSpan!==void 0){const d={startRow:a,startColumn:c,endRow:a+l.rowSpan-1,endColumn:c+l.colSpan-1};s.Rectangle.contains(t,d)||r.push(d)}}),r.length===0)return t;const i=s.Rectangle.union(t,...r);return n?te(i,e,n):i}function $o(t,e,n){const o=pn(t,e,n),r={startRow:Math.min(t.startRow,o.startRow),startColumn:Math.min(t.startColumn,o.startColumn),endRow:Math.max(t.endRow,o.endRow),endColumn:Math.max(t.endColumn,o.endColumn)};return te(s.Rectangle.union(t,r),n)}function Go(t,e,n,o){const r=s.getReverseDirection(n),i=Nt($e(t,r,o),n,o);return n===s.Direction.UP&&i.startRow<=t.startRow?te({...e,startColumn:t.startColumn,endColumn:t.endColumn},o,!0):n===s.Direction.DOWN&&i.endRow>=t.endRow?te({...e,startColumn:t.startColumn,endColumn:t.endColumn},o,!0):n===s.Direction.LEFT&&i.startColumn<=t.startColumn?te({...e,startRow:t.startRow,endRow:t.endRow},o,!0):n===s.Direction.RIGHT&&i.endColumn>=t.endColumn?te({...e,startRow:t.startRow,endRow:t.endRow},o,!0):s.Rectangle.union(s.Rectangle.clone(e),i)}function zo(t,e,n){const o=s.getReverseDirection(e),r=$e(t,o,n),i=$e(t,e,n),a=pn(r,e,n);return te(s.Rectangle.union(i,a),n,!1)}function qo(t,e,n){const{left:o,right:r,up:i,down:a}=e,c=n.getMaxRows(),l=n.getMaxColumns();let d=!0;const u={...t};for(;d;){if(d=!1,i&&u.startRow!==0){const m=u.startRow-1;n.getMatrixWithMergedCells(m,u.startColumn,m,u.endColumn).forValue((g,v,S)=>{S.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!==c-1){const m=u.endRow+1;n.getMatrixWithMergedCells(m,u.startColumn,m,u.endColumn).forValue((g,v,S)=>{S.v&&(u.endRow=Math.max(g+(S.rowSpan!==void 0?S.rowSpan-1:0),u.endRow),u.startColumn=Math.min(v,u.startColumn),u.endColumn=Math.max(v,u.endColumn),d=!0)})}if(o&&u.startRow!==0){const m=u.startColumn-1;n.getMatrixWithMergedCells(u.startRow,m,u.endRow,m).forValue((g,v,S)=>{S.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!==l-1){const m=u.endColumn+1;n.getMatrixWithMergedCells(u.startRow,m,u.endRow,m).forValue((g,v,S)=>{S.v&&(u.endColumn=Math.max(v+(S.colSpan!==void 0?S.colSpan-1:0),u.endColumn),u.startRow=Math.min(g,u.startRow),u.endRow=Math.max(g,u.endRow),d=!0)})}}return u}function Yo(t){return{startRow:0,startColumn:0,endRow:t.getMaxRows()-1,endColumn:t.getMaxColumns()-1,rangeType:s.RANGE_TYPE.NORMAL}}function $e(t,e,n){let o;switch(e){case s.Direction.UP:o={startRow:t.startRow,startColumn:t.startColumn,endRow:t.startRow,endColumn:t.endColumn,rangeType:s.RANGE_TYPE.NORMAL};break;case s.Direction.DOWN:o={startRow:t.endRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:s.RANGE_TYPE.NORMAL};break;case s.Direction.LEFT:o={startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL};break;case s.Direction.RIGHT:o={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 te(o,n,!1)}function We(t,e,n,o,r){let i=!1;const a=t.getMatrixWithMergedCells(e,n,o,r).forValue((c,l,d)=>{if(d.v)return i=!0,!1});return{hasValue:i,matrix:a}}function Ko(t,e,n){const o=s.Rectangle.clone(t);if(e==null)return o;switch(n){case s.Direction.UP:case s.Direction.DOWN:o.startColumn=o.endColumn=e.actualColumn;break;case s.Direction.LEFT:case s.Direction.RIGHT:o.startRow=o.endRow=e.actualRow;break}return o}function Jo(t,e,n){const{primary:o,range:r}=t,i=s.Rectangle.clone(r);switch(e){case s.Direction.UP:case s.Direction.DOWN:i.startRow=o.startRow,i.endRow=o.endRow;break;case s.Direction.LEFT:case s.Direction.RIGHT:i.startColumn=o.startColumn,i.endColumn=o.endColumn;break}const a=$e(i,e,n);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 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}}function Mn(t){const e=[];Object.keys(t).forEach(o=>{const[r,i]=t[o];e.push(r,i)}),e.sort((o,r)=>o-r);let n=0;for(let o=0;o<e.length-1;o++){const r=e[o],a=e[o+1]-r;n+=a}return n+1}const Xo="sheet.command.insert-range-move-down",St={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(exports.SelectionManagerService),c=t.get(exports.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const l=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(l);if(!m)return!1;const h=m.getSheetBySheetId(d);if(!h)return!1;const g=[],v=[],S=new s.ObjectMatrix;for(let M=0;M<u.length;M++){const{startRow:U,endRow:N,startColumn:O,endColumn:$}=u[M];for(let W=U;W<=N;W++)for(let b=O;b<=$;b++)S.setValue(W,b,{v:""})}const f={ranges:u,worksheetId:d,workbookId:l,shiftDimension:s.Dimension.ROWS,cellValue:S.getData()};g.push({id:re.id,params:f});const I=ht(t,f);v.push({id:oe.id,params:I});let w=!1,y=0;const R=h.getMaxRows()-1,p={};for(let M=0;M<u.length;M++){const{startRow:U,endRow:N,startColumn:O,endColumn:$}=u[M];p[`${M}`]=[U,N];for(let W=O;W<=$;W++){const b=h.getCell(R,W),j=b==null?void 0:b.v;if(j&&j!==""){w=!0,y=h.getRowHeight(R);break}}}const C=Mn(p);if(w){const M={startRow:R,endRow:R,startColumn:u[0].startColumn,endColumn:u[0].endColumn},U={workbookId:l,worksheetId:d,ranges:[M],rowInfo:new s.ObjectArray(new Array(C).fill(void 0).map(()=>({h:y,hd:s.BooleanNumber.FALSE})))};g.push({id:Ie.id,params:U});const N=Pt(t,U);v.push({id:Re.id,params:N})}const k=c.onCommandExecute({id:St.id,params:{ranges:u}});return g.push(...k.redos),v.push(...k.undos),s.sequenceExecute(g,n)?(o.pushUndoRedo({unitID:l,undoMutations:v.reverse(),redoMutations:g}),!0):!1}},yn="sheet.command.insert-range-move-right",ft={type:s.CommandType.COMMAND,id:yn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(exports.SelectionManagerService),c=t.get(exports.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const l=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(l);if(!m)return!1;const h=m.getSheetBySheetId(d);if(!h)return!1;const g=[],v=[],S=new s.ObjectMatrix;for(let M=0;M<u.length;M++){const{startRow:U,endRow:N,startColumn:O,endColumn:$}=u[M];for(let W=U;W<=N;W++)for(let b=O;b<=$;b++)S.setValue(W,b,{v:""})}const f={ranges:u,worksheetId:d,workbookId:l,shiftDimension:s.Dimension.COLUMNS,cellValue:S.getData()};g.push({id:re.id,params:f});const I=ht(t,f);v.push({id:oe.id,params:I});let w=!1,y=0;const R=h.getMaxColumns()-1,p={};for(let M=0;M<u.length;M++){const{startRow:U,endRow:N,startColumn:O,endColumn:$}=u[M];p[`${M}`]=[O,$];for(let W=U;W<=N;W++){const b=h.getCell(W,R),j=b==null?void 0:b.v;if(j&&j!==""){w=!0,y=h.getColumnWidth(R);break}}}const C=Mn(p);if(w){const M={startRow:u[0].startRow,endRow:u[0].endRow,startColumn:R,endColumn:R},U={workbookId:l,worksheetId:d,ranges:[M],colInfo:new s.ObjectArray(new Array(C).fill(void 0).map(()=>({w:y,hd:s.BooleanNumber.FALSE})))};g.push({id:we.id,params:U});const N=At(t,U);v.push({id:pe.id,params:N})}const k=c.onCommandExecute({id:ft.id,params:{ranges:u}});return g.push(...k.redos),v.push(...k.undos),s.sequenceExecute(g,n).result?(o.pushUndoRedo({unitID:l,undoMutations:v.reverse(),redoMutations:g}),!0):!1}},kn="sheet.command.insert-row",Pe={type:s.CommandType.COMMAND,id:kn,handler:async(t,e)=>{var U;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),a=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId).getSheetBySheetId(e.worksheetId),{range:c,direction:l,workbookId:d,worksheetId:u}=e,{startRow:m,endRow:h,startColumn:g,endColumn:v}=c,S=l===s.Direction.UP?m:m-1,f=a.getRowHeight(S),I={workbookId:d,worksheetId:u,ranges:[c],rowInfo:new s.ObjectArray(new Array(h-m+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE})))},w=Pt(t,I),y=new s.ObjectMatrix,R=a.getCellMatrix(),p=new Map;for(let N=m;N<=h;N++)for(let O=g;O<=v;O++){p.has(O)||p.set(O,(U=R.getValue(S,O))==null?void 0:U.s);const $=p.get(O);y.setValue(N,O,{v:"",s:$})}const C={workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:[e.range],shiftDimension:s.Dimension.ROWS,cellValue:y.getData()},k=ht(t,C),E=t.get(exports.SheetInterceptorService).onCommandExecute({id:Pe.id,params:e});return s.sequenceExecute([{id:Ie.id,params:I},{id:re.id,params:C},...E.redos],n).result?(o.pushUndoRedo({unitID:e.workbookId,undoMutations:[...E.undos,{id:oe.id,params:k},{id:Re.id,params:w}],redoMutations:[{id:Ie.id,params:I},{id:re.id,params:C},...E.redos]}),!0):!1}},bn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async t=>{var m;const n=(m=t.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(h=>h.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 c=i.getUnitId(),l=a.getSheetId(),d=o.endRow-o.startRow+1,u={workbookId:c,worksheetId:l,direction:s.Direction.UP,range:{startRow:o.startRow,endRow:o.startRow+d-1,startColumn:0,endColumn:a.getColumnCount()-1}};return t.get(s.ICommandService).executeCommand(Pe.id,u)}},_n={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async t=>{var m;const n=(m=t.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(h=>h.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 c=i.getUnitId(),l=a.getSheetId(),d=o.endRow-o.startRow+1,u={workbookId:c,worksheetId:l,direction:s.Direction.DOWN,range:{startRow:o.endRow+1,endRow:o.endRow+d,startColumn:0,endColumn:a.getColumnCount()-1}};return t.get(s.ICommandService).executeCommand(Pe.id,u)}},Un="sheet.command.insert-col",Ae={type:s.CommandType.COMMAND,id:Un,handler:async(t,e)=>{var N;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService),{range:a,direction:c,worksheetId:l,workbookId:d}=e,{startRow:u,endRow:m,startColumn:h,endColumn:g}=e.range,S=r.getUniverSheetInstance(e.workbookId).getSheetBySheetId(e.worksheetId),f=c===s.Direction.LEFT?h:h-1,I=S.getColumnWidth(f),w={workbookId:d,worksheetId:l,ranges:[a],colInfo:new s.ObjectArray(new Array(g-h+1).fill(void 0).map(()=>({w:I,hd:s.BooleanNumber.FALSE})))},y=At(t,w),R=new s.ObjectMatrix,p=S.getCellMatrix(),C=new Map;for(let O=u;O<=m;O++)for(let $=h;$<=g;$++){C.has(O)||C.set(O,(N=p.getValue(O,f))==null?void 0:N.s);const W=C.get(O);R.setValue(O,$,{v:"",s:W})}const k={workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:[e.range],shiftDimension:s.Dimension.COLUMNS,cellValue:R.getData()},E=ht(t,k),M=i.onCommandExecute({id:Ae.id,params:e});return s.sequenceExecute([{id:we.id,params:w},{id:re.id,params:k},...M.redos],n).result?(o.pushUndoRedo({unitID:e.workbookId,undoMutations:[...M.undos,{id:oe.id,params:E},{id:pe.id,params:y}],redoMutations:[{id:we.id,params:w},{id:re.id,params:k},...M.redos]}),!0):!1}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async t=>{const n=t.get(exports.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 c=i.getUnitId(),l=a.getSheetId(),d=o.endColumn-o.startColumn+1,u={workbookId:c,worksheetId:l,direction:s.Direction.LEFT,range:{startColumn:o.startColumn,endColumn:o.startColumn+d-1,startRow:0,endRow:a.getLastColumnWithContent()}};return t.get(s.ICommandService).executeCommand(Ae.id,u)}},Dn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async t=>{const n=t.get(exports.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 c=i.getUnitId(),l=a.getSheetId(),d=o.endColumn-o.startColumn+1,u={workbookId:c,worksheetId:l,direction:s.Direction.RIGHT,range:{startColumn:o.endColumn+1,endColumn:o.endColumn+d,startRow:0,endRow:a.getLastRowWithContent()}};return t.get(s.ICommandService).executeCommand(Ae.id,u)}},En={id:"sheet.command.insert-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);let i=r.getCurrentUniverSheetInstance().getUnitId();e&&(i=e.workbookId??i);const a=r.getUniverSheetInstance(i);if(!a)return!1;let c=a.getSheets().length,l=s.Tools.deepClone(s.DEFAULT_WORKSHEET);e?(c=e.index??c,e.sheet?l=e.sheet:(l.id=s.Tools.generateRandomId(),l.name=`工作表${++a.getSheets().length}`)):(l.id=s.Tools.generateRandomId(),l.name=`工作表${++a.getSheets().length}`);const d={index:c,sheet:l,workbookId:i},u=Ot(t,d);return n.syncExecuteCommand(Ce.id,d)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Ke.id,params:u}],redoMutations:[{id:Ce.id,params:d}]}),!0):!1}},Ge={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.worksheetId);if(!a)return!1;const c=a.getCellMatrix();return new s.ObjectMatrix(n).forValue((l,d,u)=>{c.setValue(l,d,u)}),new s.ObjectMatrix(o).forValue((l,d,u)=>{c.setValue(l,d,u)}),!0}},Y={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(t,e)=>{const n=t.get(exports.SelectionManagerService);if(!e)return!1;const{selections:o,type:r}=e;return n.replace(o,r),!0}},On="sheet.command.move-range",Ct={type:s.CommandType.COMMAND,id:On,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService),a=r.getCurrentUniverSheetInstance(),c=a.getActiveSheet(),l=a.getUnitId(),d=c.getSheetId(),u=c.getRange(e.fromRange).getValues(),m=u.reduce((p,C,k)=>(C.forEach((E,M)=>{p.setValue(e.fromRange.startRow+k,e.fromRange.startColumn+M,null)}),p),new s.ObjectMatrix),h=u.reduce((p,C,k)=>(C.forEach((E,M)=>{p.setValue(e.fromRange.startRow+k,e.fromRange.startColumn+M,E)}),p),new s.ObjectMatrix),g=u.reduce((p,C,k)=>(C.forEach((E,M)=>{p.setValue(e.toRange.startRow+k,e.toRange.startColumn+M,E)}),p),new s.ObjectMatrix),v=c.getRange(e.toRange).getValues().reduce((p,C,k)=>(C.forEach((E,M)=>{p.setValue(e.toRange.startRow+k,e.toRange.startColumn+M,E)}),p),new s.ObjectMatrix),S={from:m.getMatrix(),to:g.getMatrix(),workbookId:l,worksheetId:d},f={from:h.getMatrix(),to:v.getMatrix(),workbookId:l,worksheetId:d},I=i.onCommandExecute({id:Ct.id,params:e}),w=[{id:Ge.id,params:S},...I.redos,{id:Y.id,params:{unitId:l,sheetId:d,pluginName:J,selections:[{range:e.toRange}]}}],y=[{id:Y.id,params:{unitId:l,sheetId:d,pluginName:J,selections:[{range:e.fromRange}]}},...I.undos,{id:Ge.id,params:f}];return await s.sequenceExecute(w,n).result?(o.pushUndoRedo({unitID:l,undoMutations:y,redoMutations:w}),!0):!1}},se=(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}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;console.log("config merge data",c);for(let l=0;l<c.length;l++)a.push(c[l]);return!0}};function Zo(t,e){const{workbookId:n,worksheetId:o,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{workbookId:n,worksheetId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{workbookId:n,worksheetId:o,targetRange:s.Rectangle.clone(r),sourceRange:s.Rectangle.clone(i)}}const ze={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,sourceRange:r,targetRange:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const l=c.getSheetBySheetId(o);if(!l)throw new Error("[MoveRowMutation] worksheet is null!");const d=r.startRow,u=r.endRow-r.startRow+1,m=i.startRow;return l.getRowManager().getRowData().move(d,u,m),l.getCellMatrix().moveRows(d,u,m),!0}};function Qo(t,e){const{workbookId:n,worksheetId:o,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{workbookId:n,worksheetId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{workbookId:n,worksheetId:o,targetRange:s.Rectangle.clone(r),sourceRange:s.Rectangle.clone(i)}}const qe={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,sourceRange:r,targetRange:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const l=c.getSheetBySheetId(o);if(!l)throw new Error("[MoveColumnMutation] worksheet is null!");const d=r.startColumn,u=r.endColumn-r.startColumn+1,m=i.startColumn;return l.getColumnManager().getColumnData().move(d,u,m),l.getCellMatrix().moveColumns(d,u,m),!0}},Z=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,c=e.ranges,l=[];for(let d=0;d<c.length;d++)for(let u=a.length-1;u>=0;u--){const m=a[u],h=c[d];s.Rectangle.intersects(m,h)&&l.push(a[u])}return{workbookId:e.workbookId,worksheetId:e.worksheetId,ranges:l}},B={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let l=0;l<c.length;l++)for(let d=a.length-1;d>=0;d--){const u=a[d],m=c[l];s.Rectangle.intersects(u,m)&&a.splice(d,1)}return!0}};function er(t,e){return e.getMergeData().some(n=>n.startRow<t&&t<=n.endRow)}function tr(t,e){return e.getMergeData().some(n=>n.startColumn<t&&t<=n.endColumn)}const xt={id:"sheet.command.move-rows",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections(),{fromRow:r,toRow:i}=e,a=o==null?void 0:o.filter(z=>z.range.rangeType===s.RANGE_TYPE.ROW&&z.range.startRow<=r&&r<=z.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=t.get(exports.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,S=a[0].primary,f=te(v,u,!1);if(!s.Rectangle.equals(v,f))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 I={...v,startRow:i,endRow:i+v.endRow-v.startRow},w={workbookId:m,worksheetId:h,sourceRange:v,targetRange:I},y=Zo(t,w),R=i-r,p=R<0,C=v.endRow-v.startRow+1,k=s.Tools.deepClone(u.getMergeData());for(let z=0;z<k.length;z++){const F=k[z],{startRow:T,endRow:_}=F;p?s.Rectangle.contains(v,F)?(F.startRow+=R,F.endRow+=R):_<v.startRow&&T>=I.startRow&&(F.startRow+=C,F.endRow+=C):s.Rectangle.contains(v,F)?(F.startRow+=R,F.endRow+=R):v.endRow<T&&_<I.startRow&&(F.startRow-=C,F.endRow-=C)}const E={workbookId:m,worksheetId:h,ranges:s.Tools.deepClone(u.getMergeData())},M=Z(t,E),U={workbookId:m,worksheetId:h,ranges:k},N=se(t,U),O=p?I:{...I,startRow:I.startRow-C,endRow:I.endRow-C},$={workbookId:m,worksheetId:h,pluginName:J,selections:[{range:O,primary:ie(O,u),style:null}]},W={workbookId:m,worksheetId:h,pluginName:J,selections:[{range:v,primary:S,style:null}]},b=t.get(s.ICommandService),j=c.onCommandExecute({id:xt.id,params:e}),ae=[{id:ze.id,params:w},{id:B.id,params:E},{id:L.id,params:U},{id:Y.id,params:$},...j.redos],G=[{id:ze.id,params:y},{id:B.id,params:N},{id:L.id,params:M},{id:Y.id,params:W},...j.undos];return s.sequenceExecute(ae,b).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:G,redoMutations:ae}),!0):!1}},Vt={id:"sheet.command.move-cols",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections(),{fromCol:r,toCol:i}=e,a=o==null?void 0:o.filter(z=>z.range.rangeType===s.RANGE_TYPE.COLUMN&&z.range.startColumn<=r&&r<=z.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=t.get(exports.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,S=a[0].primary,f=te(v,u,!1);if(!s.Rectangle.equals(v,f))return g.emit("Only part of a merged cell is selected."),!1;if(tr(i,u))return g.emit("Across a merged cell."),!1;const I={...v,startColumn:i,endColumn:i+v.endColumn-v.startColumn},w={workbookId:m,worksheetId:h,sourceRange:v,targetRange:I},y=Qo(t,w),R=v.endColumn-v.startColumn+1,p=i-r,C=p<0,k=s.Tools.deepClone(u.getMergeData());for(let z=0;z<k.length;z++){const F=k[z],{startColumn:T,endColumn:_}=F;C?s.Rectangle.contains(v,F)?(F.startColumn+=p,F.endColumn+=p):_<v.startColumn&&T>=I.startColumn&&(F.startColumn+=R,F.endColumn+=R):s.Rectangle.contains(v,F)?(F.startColumn+=p,F.endColumn+=p):v.endColumn<T&&_<I.startColumn&&(F.startColumn-=R,F.endColumn-=R)}const E={workbookId:m,worksheetId:h,ranges:s.Tools.deepClone(u.getMergeData())},M=Z(t,E),U={workbookId:m,worksheetId:h,ranges:k},N=se(t,U),O=C?I:{...I,startColumn:I.startColumn-R,endColumn:I.endColumn-R},$={workbookId:m,worksheetId:h,pluginName:J,selections:[{range:O,primary:ie(O,u),style:null}]},W={workbookId:m,worksheetId:h,pluginName:J,selections:[{range:v,primary:S,style:null}]},b=t.get(s.ICommandService),j=c.onCommandExecute({id:Vt.id,params:e}),ae=[{id:qe.id,params:w},{id:B.id,params:E},{id:L.id,params:U},{id:Y.id,params:$},...j.redos],G=[{id:qe.id,params:y},{id:B.id,params:N},{id:L.id,params:M},{id:Y.id,params:W},...j.undos];return s.sequenceExecute(ae,b).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:G,redoMutations:ae}),!0}},Pn="sheet.command.remove-row",It={type:s.CommandType.COMMAND,id:Pn,handler:async(t,e)=>{const n=t.get(exports.SelectionManagerService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.ranges;if(!r){const w=n.getSelections();if(!(w!=null&&w.length))return!1;r=w.map(y=>s.Rectangle.clone(y.range))}const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=a.getActiveSheet(),l=a.getUnitId(),d=c.getSheetId(),u=c.getMaxColumns()-1;r.forEach(w=>{w.startColumn=0,w.endColumn=u});const m={workbookId:l,worksheetId:d,ranges:r},h=Wo(m,c),g={workbookId:l,worksheetId:d,ranges:r,shiftDimension:s.Dimension.ROWS},v=mt(t,g);if(!v)return!1;const S=o.onCommandExecute({id:It.id,params:{ranges:r}}),f=t.get(s.ICommandService);return s.sequenceExecute([{id:oe.id,params:g},{id:Re.id,params:m},...S.redos],f).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...S.undos,{id:Ie.id,params:h},{id:re.id,params:v}],redoMutations:[{id:oe.id,params:g},{id:Re.id,params:m},...S.redos]}),!0):!1}},An="sheet.command.remove-col",wt={type:s.CommandType.COMMAND,id:An,handler:async(t,e)=>{const n=t.get(exports.SelectionManagerService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.ranges;if(!r){const w=n.getSelections();if(!(w!=null&&w.length))return!1;r=w.map(y=>s.Rectangle.clone(y.range))}const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=a.getActiveSheet(),l=a.getUnitId(),d=c.getSheetId(),u=c.getMaxRows()-1;r.forEach(w=>{w.startRow=0,w.endRow=u});const m={workbookId:l,worksheetId:d,ranges:r},h=jo(t,m),g={workbookId:l,worksheetId:d,ranges:r,shiftDimension:s.Dimension.COLUMNS},v=mt(t,g);if(!v)throw new Error;const S=o.onCommandExecute({id:wt.id,params:{ranges:r}}),f=t.get(s.ICommandService);return s.sequenceExecute([{id:pe.id,params:m},{id:oe.id,params:g},...S.redos],f).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...S.undos,{id:we.id,params:h},{id:re.id,params:v}],redoMutations:[{id:pe.id,params:m},{id:oe.id,params:g},...S.redos]}),!0):!1}},Lt={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(exports.SheetInterceptorService);let a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.workbookId??a,c=e.worksheetId??c);const l=r.getUniverSheetInstance(a);if(!l)return!1;const d=l.getSheetBySheetId(c);if(!d||l.getSheets().length<=1)return!1;const u=l.getSheetIndex(d);l.getConfig().sheetOrder[u+1];const m={worksheetId:c,workbookId:a},h=Sn(t,m),g=i.onCommandExecute({id:Lt.id,params:{workbookId:a,worksheetId:c}}),v=[{id:Ke.id,params:m},...g.redos],S=[...g.undos,{id:Ce.id,params:h}];return s.sequenceExecute(v,n)?(o.pushUndoRedo({unitID:a,undoMutations:S,redoMutations:v}),!0):!1}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async t=>{const e=t.get(exports.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(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),l=r.getUniverSheetInstance(a);if(!l)return!1;const d=l.getSheetBySheetId(c);if(!d)return!1;const u={workbookId:a,worksheetId:c,ranges:i};let m=!1;const h=d.getConfig().mergeData;if(i.forEach(S=>{h.forEach(f=>{s.Rectangle.intersects(S,f)&&(m=!0)})}),!m)return!1;const g=Z(t,u);return n.syncExecuteCommand(B.id,u)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:L.id,params:g}],redoMutations:[{id:B.id,params:u}]}),!0):!1}};class ye{constructor(){P(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});P(this,"_borderInfo$",new je.BehaviorSubject(this._borderInfo));P(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 Xe(t,e){const{startRow:n,startColumn:o,endRow:r,endColumn:i}=t;for(let a=n;a<=r;a++)for(let c=o;c<=i;c++)e(a,c)}const xn={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(Ne.id)}},Vn={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(Ne.id)}},Ln={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(Ne.id)}},Bn={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(Ne.id)}},Ne={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(exports.SelectionManagerService),i=t.get(ye),a=r.getSelectionRanges(),c=o.getCurrentUniverSheetInstance(),l=c.getUnitId(),d=c.getActiveSheet(),u=d.getSheetId(),m=d.getConfig().mergeData;if(!(a!=null&&a.length))return!1;const{style:h,color:g,type:v,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const f=v===s.BorderType.TOP||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,I=v===s.BorderType.LEFT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,w=v===s.BorderType.BOTTOM||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,y=v===s.BorderType.RIGHT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,R=v===s.BorderType.VERTICAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,p=v===s.BorderType.HORIZONTAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,C=a[0],k={startRow:C.startRow-1,startColumn:C.startColumn,endRow:C.startRow-1,endColumn:C.endColumn},E={startRow:C.startRow,startColumn:C.startColumn-1,endRow:C.endRow,endColumn:C.startColumn-1},M={startRow:C.endRow+1,startColumn:C.startColumn,endRow:C.endRow+1,endColumn:C.endColumn},U={startRow:C.startRow,startColumn:C.endColumn+1,endRow:C.endRow,endColumn:C.endColumn+1},N={startRow:C.startRow,startColumn:C.startColumn,endRow:C.startRow,endColumn:C.endColumn},O={startRow:C.startRow,startColumn:C.startColumn,endRow:C.endRow,endColumn:C.startColumn},$={startRow:C.endRow,startColumn:C.startColumn,endRow:C.endRow,endColumn:C.endColumn},W={startRow:C.startRow,startColumn:C.endColumn,endRow:C.endRow,endColumn:C.endColumn},b=new s.ObjectMatrix,j={s:h,cl:{rgb:g}},ae=(T,_)=>{let x=null;return m.forEach(X=>{s.Rectangle.intersects(X,{startColumn:_,endColumn:_,startRow:T,endRow:T})&&(x=X)}),x};function G(T,_,x){T.startRow<0||T.startColumn<0||Xe(T,(X,Q)=>{var Le,Be;const V=ae(X,Q);let ve=_;if(V){if(x){const ee=s.Tools.deepClone((Le=b.getValue(V.startRow,V.startColumn))==null?void 0:Le.s);ve=ee!=null&&ee.bd?Object.assign(ee.bd,_):_}b.setValue(V.startRow,V.startColumn,{s:{bd:ve}})}else{if(x){const ee=s.Tools.deepClone((Be=b.getValue(X,Q))==null?void 0:Be.s);ve=ee!=null&&ee.bd?Object.assign(ee.bd,_):_}b.setValue(X,Q,{s:{bd:ve}})}})}f&&(G(k,{b:null}),G(N,{t:s.Tools.deepClone(j)},!0)),w&&(G(M,{t:null}),G($,{b:s.Tools.deepClone(j)},!0)),I&&(G(E,{r:null}),G(O,{l:s.Tools.deepClone(j)},!0)),y&&(G(U,{l:null}),G(W,{r:s.Tools.deepClone(j)},!0)),R&&Xe(C,(T,_)=>{var X,Q;const x=ae(T,_);if(x){if(x.endColumn!==C.endColumn){const V=(X=b.getValue(x.startRow,x.startColumn))==null?void 0:X.s;b.setValue(T,_,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}}else if(_!==C.endColumn){const V=(Q=b.getValue(T,_))==null?void 0:Q.s;b.setValue(T,_,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}}),p&&Xe(C,(T,_)=>{var X,Q;const x=ae(T,_);if(x){if(x.endRow!==C.endRow){const V=(X=b.getValue(x.startRow,x.startColumn))==null?void 0:X.s;b.setValue(T,_,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}}else if(T!==C.endRow){const V=(Q=b.getValue(T,_))==null?void 0:Q.s;b.setValue(T,_,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}}),!f&&!w&&!I&&!y&&!R&&!p&&(G(k,{b:null}),G(N,{t:null},!0),G(M,{t:null}),G($,{b:null},!0),G(E,{r:null}),G(O,{l:null},!0),G(U,{l:null}),G(W,{r:null},!0),Xe(C,(T,_)=>{var X,Q,V,ve,Le,Be,ee,en;const x=ae(T,_);if(x){if(x.endColumn!==C.endColumn){const D=(X=b.getValue(x.startRow,x.startColumn))==null?void 0:X.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(x.startColumn!==C.startColumn){const D=(Q=b.getValue(x.startRow,x.startColumn))==null?void 0:Q.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(x.endRow!==C.endRow){const D=(V=b.getValue(x.startRow,x.startColumn))==null?void 0:V.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(x.startRow!==C.startRow){const D=(ve=b.getValue(x.startRow,x.startColumn))==null?void 0:ve.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}else{if(_!==C.endColumn){const D=(Le=b.getValue(T,_))==null?void 0:Le.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(_!==C.startColumn){const D=(Be=b.getValue(T,_))==null?void 0:Be.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(T!==C.endRow){const D=(ee=b.getValue(T,_))==null?void 0:ee.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(T!==C.startRow){const D=(en=b.getValue(T,_))==null?void 0:en.s;b.setValue(T,_,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}}));const Ve={workbookId:l,worksheetId:u,cellValue:b.getData()},z=Me(t,Ve);return e.syncExecuteCommand(q.id,Ve)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:q.id,params:z}],redoMutations:[{id:q.id,params:Ve}]}),!0):!1}},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}},Te={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!o)return!1;const r=o.getSheetBySheetId(e.worksheetId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const l=r.getColumnOrCreate(c);l!=null&&(l.hd=s.BooleanNumber.TRUE)}}return!0}},or=(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}},De={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!o)return!1;const r=o.getSheetBySheetId(e.worksheetId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const l=r.getColumnOrCreate(c);l!=null&&(l.hd=s.BooleanNumber.FALSE)}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),a={workbookId:n,worksheetId:o,ranges:r},c=or(t,a),l={workbookId:n,worksheetId:o,pluginName:J,selections:r.map(h=>({range:h,primary:ie(h,i),style:null}))},d={workbookId:n,worksheetId:o,pluginName:J,selections:Fn(r).map(h=>({range:h,primary:ie(h,i),style:null}))},u=t.get(s.ICommandService);return s.sequenceExecute([{id:De.id,params:a},{id:Y.id,params:l}],u).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Te.id,params:c},{id:Y.id,params:d}],redoMutations:[{id:De.id,params:a},{id:Y.id,params:l}]}),!0}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async t=>{var d;const n=(d=t.get(exports.SelectionManagerService).getSelections())==null?void 0:d.map(u=>u.range).filter(u=>u.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(),c=i.getSheetId(),l=n.map(u=>i.getHiddenCols(u.startColumn,u.endColumn)).flat();return t.get(s.ICommandService).executeCommand(Bt.id,{workbookId:a,worksheetId:c,ranges:l})}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async t=>{var g;const n=(g=t.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range).filter(v=>v.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(),c=i.getSheetId(),l={workbookId:a,worksheetId:c,ranges:n},d={workbookId:a,worksheetId:c,pluginName:J,selections:Fn(n).map(v=>({range:v,primary:ie(v,i),style:null}))},u={workbookId:a,worksheetId:c,pluginName:J,selections:n.map(v=>({range:v,primary:ie(v,i),style:null}))},m=t.get(s.ICommandService);if(s.sequenceExecute([{id:Te.id,params:l},{id:Y.id,params:d}],m).result){const v=t.get(s.IUndoRedoService),S=nr(t,l);return v.pushUndoRedo({unitID:a,undoMutations:[{id:De.id,params:S},{id:Y.id,params:u}],redoMutations:[{id:Te.id,params:l},{id:Y.id,params:d}]}),!0}return!1}};function Fn(t){return rr(t).map(n=>{const o=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:o,endColumn:o}})}function rr(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 Wt=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.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}},he={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:c,ySplit:l,xSplit:d}=e;return i.freeze={startRow:a,startColumn:c,ySplit:l,xSplit:d},!0}},Hn={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(),c=r.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(a);if(!l)return!1;const{startColumn:d,startRow:u,xSplit:m,ySplit:h}=e;if(u>=l.getRowCount()||d>=l.getColumnCount()||m>=l.getColumnCount()||h>=l.getRowCount())return!1;const g={workbookId:i,worksheetId:a,...e},v=Wt(t,g);return n.syncExecuteCommand(he.id,g)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:he.id,params:v}],redoMutations:[{id:he.id,params:g}]}),!0):!1}},sr={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 l={workbookId:r,worksheetId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},d=Wt(t,l);return e.syncExecuteCommand(he.id,l)?(n.pushUndoRedo({unitID:r,undoMutations:[{id:he.id,params:d}],redoMutations:[{id:he.id,params:l}]}),!0):!1}},Ye={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(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),{value:c,range:l,workbookId:d=r.getCurrentUniverSheetInstance().getUnitId(),worksheetId:u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,m=l?[l]:i.getSelectionRanges();if(!m||!m.length)return!1;const h=new s.ObjectMatrix;let g;if(s.Tools.isArray(c))for(let R=0;R<m.length;R++){const{startRow:p,startColumn:C,endRow:k,endColumn:E}=m[R];for(let M=0;M<=k-p;M++)for(let U=0;U<=E-C;U++)h.setValue(M+p,U+C,c[M][U])}else if(s.isICellData(c))for(let R=0;R<m.length;R++){const{startRow:p,startColumn:C}=m[R];h.setValue(p,C,c)}else g=c;const v={worksheetId:u,workbookId:d,cellValue:g??h.getMatrix()},S=Me(t,v);if(!a.fetchThroughInterceptors(Ue.PERMISSION)(null,{id:Ye.id,params:v}))return!1;const f=n.syncExecuteCommand(q.id,v),{undos:I,redos:w}=a.onCommandExecute({id:Ye.id,params:{...v,range:m}}),y=await s.sequenceExecute([...w],n);return f&&y.result?(o.pushUndoRedo({unitID:d,undoMutations:[{id:q.id,params:S},...I],redoMutations:[{id:q.id,params:v},...w]}),!0):!1}},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}},Ee={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const l=r.getRowOrCreate(c);l!=null&&(l.hd=0)}}return!0}},ar=(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-row-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const l=r.getRowOrCreate(c);l!=null&&(l.hd=1)}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r}=e,i=t.get(s.ICommandService),a=t.get(s.IUndoRedoService),c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),l={workbookId:n,worksheetId:o,ranges:r},d=ir(t,l),u={workbookId:n,worksheetId:o,pluginName:J,selections:r.map(g=>({range:g,primary:ie(g,c),style:null}))},m={workbookId:n,worksheetId:o,pluginName:J,selections:zn(r).map(g=>({range:g,primary:ie(g,c),style:null}))};return s.sequenceExecute([{id:Ee.id,params:l},{id:Y.id,params:u}],i).result&&a.pushUndoRedo({unitID:n,undoMutations:[{id:Oe.id,params:d},{id:Y.id,params:m}],redoMutations:[{id:Ee.id,params:l},{id:Y.id,params:u}]}),!0}},$n={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async t=>{var d;const e=t.get(exports.SelectionManagerService),n=t.get(s.IUniverInstanceService),o=(d=e.getSelections())==null?void 0:d.map(u=>u.range).filter(u=>u.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(),c=i.getSheetId(),l=o.map(u=>i.getHiddenRows(u.startRow,u.endRow)).flat();return t.get(s.ICommandService).executeCommand(jt.id,{workbookId:a,worksheetId:c,ranges:l})}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async t=>{var S;const e=t.get(exports.SelectionManagerService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=(S=e.getSelections())==null?void 0:S.map(f=>f.range).filter(f=>f.rangeType===s.RANGE_TYPE.ROW);if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),l=r.getUniverSheetInstance(a);if(!l)return!1;const d=l.getSheetBySheetId(c);if(!d)return!1;const u={workbookId:a,worksheetId:c,ranges:i},m={workbookId:a,worksheetId:c,pluginName:J,selections:zn(i).map(f=>({range:f,primary:ie(f,d),style:null}))},h={workbookId:a,worksheetId:c,pluginName:J,selections:i.map(f=>({range:f,primary:ie(f,d),style:null}))},g=ar(t,u);return s.sequenceExecute([{id:Oe.id,params:u},{id:Y.id,params:m}],n).result&&o.pushUndoRedo({unitID:a,undoMutations:[{id:Ee.id,params:g},{id:Y.id,params:h}],redoMutations:[{id:Oe.id,params:u},{id:Y.id,params:m}]}),!0}};function zn(t){return cr(t).map(n=>{const o=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:o,endRow:o}})}function cr(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 K={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(t,e)=>{const n=t.get(s.IUniverInstanceService),{workbookId:o=n.getCurrentUniverSheetInstance().getUnitId(),worksheetId:r=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:i,style:a}=e,c=t.get(s.ICommandService),l=t.get(s.IUndoRedoService),d=t.get(exports.SelectionManagerService),u=i?[i]:d.getSelectionRanges();if(!(u!=null&&u.length))return!1;const m=n.getUniverSheetInstance(o);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const g=new s.ObjectMatrix;if(s.Tools.isArray(a.value))for(let R=0;R<u.length;R++){const{startRow:p,endRow:C,startColumn:k,endColumn:E}=u[R];for(let M=0;M<=C-p;M++)for(let U=0;U<=E-k;U++)g.setValue(M+p,U+k,{s:{[a.type]:a.value[M][U]}})}else for(let R=0;R<u.length;R++){const{startRow:p,endRow:C,startColumn:k,endColumn:E}=u[R],M={s:{[a.type]:a.value}};for(let U=p;U<=C;U++)for(let N=k;N<=E;N++)g.setValue(U,N,M)}const v={worksheetId:r,workbookId:o,cellValue:g.getMatrix()},S=Me(t,v),f=c.syncExecuteCommand(q.id,v),{undos:I,redos:w}=t.get(exports.SheetInterceptorService).onCommandExecute({id:K.id,params:e}),y=s.sequenceExecute([...w],c);return f&&y.result?(l.pushUndoRedo({unitID:o,undoMutations:[{id:q.id,params:S},...I],redoMutations:[{id:q.id,params:v},...w]}),!0):!1}},lr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async t=>{const e=t.get(exports.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(K.id,a)}},ur={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async t=>{const e=t.get(exports.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(K.id,r)}},dr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async t=>{const e=t.get(exports.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(K.id,r)}},mr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async t=>{const e=t.get(exports.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(K.id,r)}};s.CommandType.COMMAND;const hr={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(K.id,o)}},gr={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(K.id,o)}},qn={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(K.id,o)}},Yn={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(K.id,n)}},Kn={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(K.id,o)}},Jn={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(K.id,n)}},Xn={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(K.id,o)}},Zn={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(K.id,o)}},Qn={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(K.id,o)}},eo={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(K.id,r)}},vr=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId).getSheetBySheetId(e.worksheetId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},Fe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!n)return!1;const o=n.getSheetBySheetId(e.worksheetId);return o?(o.getConfig().tabColor=e.color,!0):!1}},to={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(),c=r.getUniverSheetInstance(i);if(!c||!c.getSheetBySheetId(a))return!1;const d={color:e.value,workbookId:i,worksheetId:a},u=vr(t,d);return n.syncExecuteCommand(Fe.id,d)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Fe.id,params:u}],redoMutations:[{id:Fe.id,params:d}]}),!0):!1}},Je={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!n)return!1;const o=n.getWorksheets();for(const[,r]of o)r.getSheetId()===e.worksheetId?r.getConfig().status=s.BooleanNumber.TRUE:r.getConfig().status=s.BooleanNumber.FALSE;return!0}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:async(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.workbookId??r,i=e.worksheetId??i);const a={workbookId:r,worksheetId:i};return n.syncExecuteCommand(Je.id,a)}},Ht=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(r==null)throw new Error("universheet is null error!");const i=new s.ObjectArray,a=r.getColumnManager(),c=e.ranges;for(let l=0;l<c.length;l++){const d=c[l];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}},de={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.worksheetId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),c=e.ranges;for(let l=0;l<c.length;l++){const d=c[l];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}},$t={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections();if(!(o!=null&&o.length))return!1;const r=t.get(s.ICommandService),i=t.get(s.IUndoRedoService),c=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),l=c.getActiveSheet(),d=c.getUnitId(),u=l.getSheetId(),{anchorCol:m,deltaX:h}=e,v=l.getColumnWidth(m)+h,S=o.filter(k=>k.range.rangeType===s.RANGE_TYPE.COLUMN),f=S.some(({range:k})=>{const{startColumn:E,endColumn:M}=k;return E<=m&&m<=M})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;f===s.RANGE_TYPE.COLUMN?I={worksheetId:u,workbookId:d,ranges:S.map(k=>s.Rectangle.clone(k.range)),colWidth:v}:I={worksheetId:u,workbookId:d,colWidth:v,ranges:[{startRow:0,endRow:l.getMaxRows()-1,startColumn:m,endColumn:m}]};const w=Ht(t,I),y=r.syncExecuteCommand(de.id,I),{undos:R,redos:p}=t.get(exports.SheetInterceptorService).onCommandExecute({id:$t.id,params:I}),C=s.sequenceExecute([...p],r);return y&&C.result&&i.pushUndoRedo({unitID:d,undoMutations:[{id:de.id,params:w},...R],redoMutations:[{id:de.id,params:I},...p]}),!0}},Gt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(t,e)=>{const n=t.get(exports.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 c=i.getCurrentUniverSheetInstance().getUnitId(),d={worksheetId:i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),workbookId:c,ranges:a,colWidth:e.value},u=Ht(t,d),m=o.syncExecuteCommand(de.id,d),{undos:h,redos:g}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Gt.id,params:d}),v=s.sequenceExecute([...g],o);return m&&v.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:de.id,params:u},...h],redoMutations:[{id:de.id,params:d},...g]}),!0):!1}},no=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.worksheetId);if(o==null)throw new Error("worksheet is null error!");return{hidden:o.isSheetHidden(),workbookId:e.workbookId,worksheetId:o.getSheetId()}},ge={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)return!1;const o=n.getSheetBySheetId(e.worksheetId);return o?(o.getConfig().hidden=e.hidden,!0):!1}},oo={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 c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(c=e.worksheetId??c);const l=r.getUniverSheetInstance(a);if(!l)return!1;const d=l.getSheetBySheetId(c);if(!d||d.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={workbookId:a,worksheetId:c,hidden:s.BooleanNumber.TRUE},h=no(t,m);return l.getSheets().filter(f=>f.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(i.emit("No visible sheet after you hide this."),!1):n.syncExecuteCommand(ge.id,m)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ge.id,params:h}],redoMutations:[{id:ge.id,params:m}]}),!0):!1}},Sr=(t,e)=>{const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.worksheetId);if(o==null)throw new Error("worksheet is null error!");return{workbookId:e.workbookId,name:o.getName(),worksheetId:o.getSheetId()}},it={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(n==null)return!1;const o=n.getSheetBySheetId(e.worksheetId);return o?(o.getConfig().name=e.name,!0):!1}},zt={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(exports.SheetInterceptorService),a=e.workbookId||r.getCurrentUniverSheetInstance().getUnitId(),l={worksheetId:e.worksheetId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,workbookId:a},d=Sr(t,l),u=i.onCommandExecute({id:zt.id,params:e}),m=[{id:it.id,params:l},...u.redos],h=[...u.undos,{id:it.id,params:d}];return await s.sequenceExecute(m,n).result?(o.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},fr=(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}},He={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.workbookId);if(!n)return!1;const o=n.getConfig(),r=o.sheetOrder.filter(i=>i!==e.worksheetId);return r.splice(e.order,0,e.worksheetId),o.sheetOrder=r,!0}},ro={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.workbookId||r.getCurrentUniverSheetInstance().getUnitId(),a=e.worksheetId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(i);if(!c||!c.getSheetBySheetId(a))return!1;const d={order:e.order,workbookId:i,worksheetId:a},u=fr(t,d);return n.syncExecuteCommand(He.id,d)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:He.id,params:u}],redoMutations:[{id:He.id,params:d}]}),!0):!1}},Cr=2e3,so=(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const l=new s.ObjectArray,d=c.getRowManager();for(const{startRow:u,endRow:m}of r)for(let h=u;h<m+1;h++){const g=d.getRowOrCreate(h);l.set(h,g.h)}return{workbookId:n,worksheetId:o,ranges:r,rowHeight:l}},qt=(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),l=new s.ObjectArray,d=c.getRowManager();for(const{startRow:u,endRow:m}of r)for(let h=u;h<=m;h++){const g=d.getRowOrCreate(h);l.set(h,g.isAutoHeight)}return{workbookId:n,worksheetId:o,ranges:r,autoHeightInfo:l}},Ir=(t,e)=>{const{workbookId:n,worksheetId:o,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(o),l=[],d=c.getRowManager();for(const u of r){const{row:m}=u,{ah:h}=d.getRowOrCreate(m);l.push({row:m,autoHeight:h})}return{workbookId:n,worksheetId:o,rowsAutoHeightInfo:l}},me={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r,rowHeight:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),l=c==null?void 0:c.getSheetBySheetId(o);if(!l)return!1;const d=l.getConfig().defaultRowHeight,u=l.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(Cr,v.h)}return!0}},ne={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,ranges:r,autoHeightInfo:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),l=c==null?void 0:c.getSheetBySheetId(o);if(!l)return!1;const d=void 0,u=l.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}},Yt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{workbookId:n,worksheetId:o,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(o);if(!c||!a)return!1;const l=c.getRowManager();for(const{row:d,autoHeight:u}of r){const m=l.getRowOrCreate(d);m.ah=u}return!0}},io={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections();if(!(o!=null&&o.length))return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),a=i.getActiveSheet(),c=i.getUnitId(),l=a.getSheetId(),{anchorRow:d,deltaY:u}=e,h=a.getRowHeight(d)+u,g=o.filter(C=>C.range.rangeType===s.RANGE_TYPE.ROW),v=g.some(({range:C})=>{const{startRow:k,endRow:E}=C;return k<=d&&d<=E})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let S;v===s.RANGE_TYPE.ROW?S={worksheetId:l,workbookId:c,ranges:g.map(C=>s.Rectangle.clone(C.range)),rowHeight:h}:S={worksheetId:l,workbookId:c,rowHeight:h,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const f=so(t,S),I={workbookId:c,worksheetId:l,ranges:S.ranges,autoHeightInfo:!1},w=qt(t,I),y=t.get(s.ICommandService),R=t.get(s.IUndoRedoService);return(await s.sequenceExecute([{id:me.id,params:S},{id:ne.id,params:I}],y)).result?(R.pushUndoRedo({unitID:c,undoMutations:[{id:me.id,params:f},{id:ne.id,params:w}],redoMutations:[{id:me.id,params:S},{id:ne.id,params:I}]}),!0):!1}},ao={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:async(t,e)=>{const n=t.get(exports.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 c=i.getCurrentUniverSheetInstance(),l=c.getUnitId(),d=c.getActiveSheet().getSheetId(),u={worksheetId:d,workbookId:l,ranges:a,rowHeight:e.value},m=so(t,u),h={workbookId:l,worksheetId:d,ranges:u.ranges,autoHeightInfo:!1},g=qt(t,h);return(await s.sequenceExecute([{id:me.id,params:u},{id:ne.id,params:h}],o)).result?(r.pushUndoRedo({unitID:l,undoMutations:[{id:me.id,params:m},{id:ne.id,params:g}],redoMutations:[{id:me.id,params:u},{id:ne.id,params:h}]}),!0):!1}},Kt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async t=>{const e=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(exports.SelectionManagerService).getSelectionRanges();if(!(r!=null&&r.length))return!1;const i=t.get(s.IUniverInstanceService),a=i.getCurrentUniverSheetInstance().getUnitId(),c=i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),l={workbookId:a,worksheetId:c,ranges:r,autoHeightInfo:!0},d=qt(t,l),u=e.syncExecuteCommand(ne.id,l),{undos:m,redos:h}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Kt.id,params:l}),g=s.sequenceExecute([...h],e);return u&&g.result?(n.pushUndoRedo({unitID:a,undoMutations:[{id:ne.id,params:d},...m],redoMutations:[{id:ne.id,params:l},...h]}),!0):!1}},co={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 c=r.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(a);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const u={workbookId:i,worksheetId:a,hidden:s.BooleanNumber.FALSE},m=no(t,u),h=n.syncExecuteCommand(ge.id,u),g={workbookId:i,worksheetId:a},v=n.syncExecuteCommand(Je.id,g);return h&&v?(o.pushUndoRedo({unitID:i,undoMutations:[{id:ge.id,params:m}],redoMutations:[{id:ge.id,params:u}]}),!0):!1}},wr=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},nn=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,c=i;n(a*c,{startRow:o-c+1,endRow:o,startColumn:r,endColumn:r});const l={startRow:o-c+1,endRow:o,startColumn:0,endColumn:r};for(let d=r-1;d>=0&&t.getValue(o,d);d--){c=Math.min(t.getValue(o,d)||0,c),a++;const u=c*a;l.startColumn=d,l.startRow=o-c+1,n(u,l)}}),e},Rr=(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),pr=t=>{const e=[];let n=nn(t);for(;n.area>0;)n.range&&(e.push(n.range),Rr(t,n.range)),n=nn(t);return e},Jt=t=>{const e=wr(t);return pr(e)},Mr=(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)},{}),yr=(t=0)=>{let e=t;return function(){return e++}},ke=H.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,ke);const kr=(t,e)=>{const n=t.get(ke),{values:o,workbookId:r,worksheetId:i}=e,a=[],c=[],l=n.getModel(r,i)||void 0;Object.keys(o).forEach(u=>{o[u].ranges.forEach(h=>{s.Range.foreach(h,(g,v)=>{const S=n.getValue(r,i,g,v,l);S?a.push({pattern:S.pattern,type:S.type,row:g,col:v}):c.push({startColumn:v,endColumn:v,startRow:g,endRow:g})})})});const d=[];if(a){const u=at(r,i,a);Object.keys(u.values).forEach(m=>{const h=u.values[m];h.ranges=Jt(h.ranges)}),d.push({id:Rt.id,params:at(r,i,a)})}return c&&d.push({id:Xt.id,params:{workbookId:r,worksheetId:i,ranges:c}}),d},Rt={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(ke),i=e.workbookId,a=e.worksheetId,c=Object.keys(n).reduce((l,d)=>{const u=o[d],m=n[d].ranges;return u&&l.push({...u,ranges:m}),l},[]);return r.setValues(i,a,c),!0}},Xt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{workbookId:n,worksheetId:o,ranges:r}=e;return t.get(ke).deleteValues(n,o,r),!0}},br=(t,e)=>{const n=t.get(ke),{ranges:o,workbookId:r,worksheetId:i}=e,a=[],c=n.getModel(r,i)||void 0;o.forEach(d=>{s.Range.foreach(d,(u,m)=>{const h=n.getValue(r,i,u,m,c);h&&a.push({pattern:h.pattern,type:h.type,row:u,col:m})})});const l=at(r,i,a);return Object.keys(l.values).forEach(d=>{const u=l.values[d];u.ranges=Jt(u.ranges)}),[{id:Rt.id,params:l}]},at=(t,e,n)=>{const o=Mr(n,"pattern"),r={},i={},a=yr();return Object.keys(o).forEach(c=>{const l=o[c],d=l[0],u=a();r[u]={pattern:c,type:d.type},l.forEach(m=>{i[u]||(i[u]={ranges:[]}),i[u].ranges.push(_r(m.row,m.col))})}),{workbookId:t,worksheetId:e,refMap:r,values:i}},_r=(t,e)=>({startRow:t,endRow:t,startColumn:e,endColumn:e}),lo="maxCellsPerSheet",Ur=3e6;var Tr=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Er=(t,e,n,o)=>{for(var r=o>1?void 0:o?Dr(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&&Tr(e,n,r),r},on=(t,e)=>(n,o)=>e(n,o,t);let tt=class extends s.Disposable{constructor(t,e){super(),this._commandService=t,this._configService=e,[L,ut,Et,dt,fn,gt,vt,oe,$t,io,Dn,Tn,Ae,we,St,ft,re,_n,bn,Pe,Ie,En,Ce,Vt,qe,Ct,Ge,xt,ze,wt,pe,It,Re,Lt,Ke,Nn,B,Jn,Yn,Kn,xn,Bn,Ne,Vn,Ln,jn,Te,De,Gt,sr,Hn,he,Zn,Ye,q,ao,Gn,Oe,Ee,Wn,$n,Bt,jt,K,to,Fe,qn,eo,Qn,Xn,Ft,Je,de,oo,ge,zt,it,ro,He,Yt,me,Kt,ne,co,Rt,Xt].forEach(n=>this.disposeWithMe(this._commandService.registerCommand(n))),this._configService.setConfig(lo,Ur)}};tt=Er([s.OnLifecycle(s.LifecycleStages.Starting,tt),on(0,s.ICommandService),on(1,s.IConfigService)],tt);var Or=Object.defineProperty,Pr=Object.getOwnPropertyDescriptor,Ar=(t,e,n,o)=>{for(var r=o>1?void 0:o?Pr(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&&Or(e,n,r),r},Nr=(t,e)=>(n,o)=>e(n,o,t);let nt=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!==Ut.SetFormulaCalculationResultMutation.id)return;const e=t.params,{unitData:n,unitOtherData:o}=e,r=Object.keys(n),i=[];return r.forEach(c=>{const l=n[c];Object.keys(l).forEach(u=>{const m=l[u];if(m==null)return!0;const h={worksheetId:u,workbookId:c,cellValue:m.getData()};i.push({id:q.id,params:h})})}),i.every(c=>this._commandService.executeCommand(c.id,c.params,{local:!0}))}))}};nt=Ar([s.OnLifecycle(s.LifecycleStages.Ready,nt),Nr(0,s.ICommandService)],nt);var xr=Object.defineProperty,Vr=Object.getOwnPropertyDescriptor,Lr=(t,e,n,o)=>{for(var r=o>1?void 0:o?Vr(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&&xr(e,n,r),r},Ze=(t,e)=>(n,o)=>e(n,o,t);let ot=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})})}};ot=Lr([s.OnLifecycle(s.LifecycleStages.Ready,ot),Ze(0,s.ICommandService),Ze(1,Ut.IFeatureCalculationManagerService),Ze(2,s.IUniverInstanceService),Ze(3,H.Inject(Ut.FormulaDataModel))],ot);const ce={MoveRangeCommandId:On,InsertRowCommandId:kn,InsertColCommandId:Un,RemoveColCommandId:An,RemoveRowCommandId:Pn,DeleteRangeMoveLeftCommandId:wn,DeleteRangeMoveUpCommandId:Rn,InsertRangeMoveDownCommandId:Xo,InsertRangeMoveRightCommandId:yn};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,n,o)=>{for(var r=o>1?void 0:o?Wr(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&&Br(e,n,r),r},pt=(t,e)=>(n,o)=>e(n,o,t);const Fr=s.createInterceptorKey("MERGE_REDO"),Hr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(n,o,r){super();P(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Fr,MERGE_UNDO:Hr}));P(this,"_refRangeManagerMap",new Map);P(this,"_serializer",$r());P(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const o=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=rn(this._univerInstanceService),i=sn(this._univerInstanceService),l=((()=>{var m,h;switch(n.id){case ce.MoveRangeCommandId:{const g=n;return this._checkRange([g.params.fromRange,g.params.toRange],r,i)}case ce.InsertRowCommandId:{const S={startRow:n.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1};return this._checkRange([S],r,i)}case ce.InsertColCommandId:{const v=n.params.range.startColumn,S={startRow:0,endRow:o.getRowCount()-1,startColumn:v,endColumn:o.getColumnCount()-1};return this._checkRange([S],r,i)}case ce.RemoveRowCommandId:{const v=((m=n.params)==null?void 0:m.ranges)||[],f={startRow:Math.min(...v.map(I=>I.startRow)),endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1};return this._checkRange([f],r,i)}case ce.RemoveColCommandId:{const v=((h=n.params)==null?void 0:h.ranges)||[],S=Math.min(...v.map(I=>I.startColumn)),f={startRow:0,endRow:o.getRowCount()-1,startColumn:S,endColumn:o.getColumnCount()-1};return this._checkRange([f],r,i)}case ce.DeleteRangeMoveUpCommandId:case ce.InsertRangeMoveDownCommandId:{const S=(n.params.ranges||an(this._selectionManagerService)).map(f=>({startRow:f.startRow,startColumn:f.startColumn,endColumn:f.endColumn,endRow:o.getRowCount()-1}));return this._checkRange(S,r,i)}case ce.DeleteRangeMoveLeftCommandId:case ce.InsertRangeMoveRightCommandId:{const S=(n.params.ranges||an(this._selectionManagerService)).map(f=>({startRow:f.startRow,startColumn:f.startColumn,endColumn:o.getColumnCount()-1,endRow:f.endRow}));return this._checkRange(S,r,i)}}})()||[]).reduce((m,h)=>{const g=h(n);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)(l.redos,null)||[],u=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(l.undos,null)||[];return{redos:d,undos:u}}})});P(this,"_checkRange",(n,o,r)=>{const i=cn(o,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(d=>{const u=a.get(d),m=this._serializer.deserialize(d);n.some(h=>s.Rectangle.intersects(h,m))&&u&&u.forEach(h=>{c.add(h)})}),[...c]}return[]});P(this,"registerRefRange",(n,o,r,i)=>{const a=r||rn(this._univerInstanceService),c=i||sn(this._univerInstanceService),l=cn(a,c),d=this._serializer.serialize(n);let u=this._refRangeManagerMap.get(l);u||(u=new Map,this._refRangeManagerMap.set(l,u));const m=u.get(d);return m?m.add(o):u.set(d,new Set([o])),s.toDisposable(()=>{const h=u.get(d);h&&(h.delete(o),h.size||(u.delete(d),u.size||this._refRangeManagerMap.delete(l)))})});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})}};exports.RefRangeService=jr([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),pt(0,H.Inject(exports.SheetInterceptorService)),pt(1,H.Inject(s.IUniverInstanceService)),pt(2,H.Inject(exports.SelectionManagerService))],exports.RefRangeService);function rn(t){return t.getCurrentUniverSheetInstance().getUnitId()}function sn(t){return t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function an(t){return t.getSelectionRanges()||[]}function cn(t,e){return`${t}_${e}`}function $r(){const t=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:n=>{const o=t.reduce((i,a,c)=>(i[String(c)]=a,i),{});return n.split(e).reduce((i,a,c)=>{const l=String(c);return a&&o[l]&&(i[o[l]]=a),i},{})},serialize:n=>t.reduce((o,r,i)=>{const a=n[r];return a!==void 0?`${o}${i>0?e:""}${a}`:`${o}`},"")}}var Gr=Object.defineProperty,zr=Object.getOwnPropertyDescriptor,qr=(t,e,n,o)=>{for(var r=o>1?void 0:o?zr(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&&Gr(e,n,r),r},be=(t,e)=>(n,o)=>e(n,o,t);function uo(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:c,endColumn:l}=n[r];if(e===s.Dimension.ROWS)for(let d=i;d<=a;d++){const u={startRow:d,endRow:d,startColumn:c,endColumn:l};o.push(u)}else if(e===s.Dimension.COLUMNS)for(let d=c;d<=l;d++){const u={startRow:i,endRow:a,startColumn:d,endColumn:d};o.push(u)}}n=o}return n}let rt=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 ut.id:case dt.id:{const n=t._univerInstanceService.getCurrentUniverSheetInstance(),o=n.getUnitId(),r=n.getActiveSheet(),i=r.getSheetId(),a=r.getConfig().mergeData,c=t._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(d=>a.some(u=>s.Rectangle.intersects(u,d)))){const d={workbookId:o,worksheetId:i,ranges:c},u=Z(t._injector,d),m=[{id:B.id,params:d}],h=[{id:L.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 c=a==null?void 0:a.getSheetBySheetId(i);if(!c)return;t.dispose();const l=c.getMergeData(),d=u=>{switch(u.id){case Ct.id:{const m=u.params;return this._handleMoveRangeCommand(m,r,i)}case Pe.id:{const m=u.params,h=m.workbookId||r,g=m.worksheetId||i;return this._handleInsertRowCommand(m,h,g)}case Ae.id:{const m=u.params,h=m.workbookId||r,g=m.worksheetId||i;return this._handleInsertColCommand(m,h,g)}case wt.id:{const m=u.params;return this._handleRemoveColCommand(m,r,i)}case It.id:{const m=u.params;return this._handleRemoveRowCommand(m,r,i)}case ft.id:{const m=u.params;return this._handleInsertRangeMoveRightCommand(m,r,i)}case St.id:{const m=u.params;return this._handleInsertRangeMoveDownCommand(m,r,i)}case vt.id:{const m=u.params;return this._handleDeleteRangeMoveUpCommand(m,r,i)}case gt.id:{const m=u.params;return this._handleDeleteRangeMoveLeftCommand(m,r,i)}}return{redos:[],undos:[]}};l.forEach(u=>{t.add(this._refRangeService.registerRefRange(u,d,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Ft.id){const i=r.params,a=i.worksheetId,c=i.workbookId;if(!a||!c)return;e(c,a)}if(r.id===L.id){const i=r.params,a=i.worksheetId,c=i.workbookId;if(!a||!c)return;e(i.workbookId,i.worksheetId)}}));const n=this._univerInstanceService.getCurrentUniverSheetInstance(),o=n.getActiveSheet();e(n.getUnitId(),o.getSheetId())}_handleMoveRangeCommand(t,e,n){const o=le(this._univerInstanceService,e);if(!o)return this._handleNull();const r=ue(o,n);if(!r)return this._handleNull();const i=r.getMergeData(),a=i.filter(h=>s.Rectangle.intersects(h,t.fromRange)),c=i.filter(h=>s.Rectangle.intersects(h,t.toRange)),l=a.map(h=>s.Rectangle.getRelativeRange(h,t.fromRange)).map(h=>s.Rectangle.getPositionRange(h,t.toRange)),d=uo(l).filter(h=>!i.some(g=>s.Rectangle.equals(h,g))),u=[{id:B.id,params:{workbookId:e,worksheetId:n,ranges:a}},{id:B.id,params:{workbookId:e,worksheetId:n,ranges:c}},{id:L.id,params:{workbookId:e,worksheetId:n,ranges:d}}],m=[{id:B.id,params:{workbookId:e,worksheetId:n,ranges:d}},{id:L.id,params:{workbookId:e,worksheetId:n,ranges:c}},{id:L.id,params:{workbookId:e,worksheetId:n,ranges:a}}];return{redos:u,undos:m}}_handleInsertRowCommand(t,e,n){const o=le(this._univerInstanceService,e);if(!o)return this._handleNull();const r=ue(o,n);if(!r)return this._handleNull();const{range:i}=t,{startRow:a,endRow:c}=i,l=s.Tools.deepClone(r.getMergeData()),d=s.Tools.deepClone(r.getMergeData()).map(f=>{const I=c-a+1;return a>f.endRow?f:a<=f.startRow?s.Rectangle.moveVertical(f,I):(f.endRow+=I,f)}),u={workbookId:e,worksheetId:n,ranges:l},m=Z(this._injector,u),h={workbookId:e,worksheetId:n,ranges:d},g=se(this._injector,h),v=[{id:B.id,params:u},{id:L.id,params:h}],S=[{id:B.id,params:g},{id:L.id,params:m}];return{redos:v,undos:S}}_handleInsertColCommand(t,e,n){const{range:o}=t,r=le(this._univerInstanceService,e);if(!r)return this._handleNull();const i=ue(r,n);if(!i)return this._handleNull();const{startColumn:a,endColumn:c}=o,l=s.Tools.deepClone(i.getMergeData()),d=s.Tools.deepClone(i.getMergeData()).map(f=>{const I=c-a+1;return a>f.endColumn?f:a<=f.startColumn?s.Rectangle.moveHorizontal(f,I):(f.endColumn+=I,f)}),u={workbookId:e,worksheetId:n,ranges:l},m=Z(this._injector,u),h={workbookId:e,worksheetId:n,ranges:d},g=se(this._injector,h),v=[{id:B.id,params:u},{id:L.id,params:h}],S=[{id:B.id,params:g},{id:L.id,params:m}];return{redos:v,undos:S}}_handleRemoveColCommand(t,e,n){const o=le(this._univerInstanceService,e);if(!o)return this._handleNull();const r=ue(o,n);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:S,endColumn:f}=v,I=f-S+1;for(let w=0;w<i.length;w++){const{startColumn:y,endColumn:R}=i[w],p=R-y+1;if(R<v.startColumn)v.startColumn-=p,v.endColumn-=p;else{if(y>v.endColumn)continue;if(y<=v.startColumn&&R>=v.endColumn)a.splice(g,1),g--;else{const C=s.Rectangle.getIntersects(i[w],v);C.endColumn-C.startColumn+1===I-1?(a.splice(g,1),g--):v.endColumn-=C.endColumn-C.startColumn+1}}}}const c={workbookId:e,worksheetId:n,ranges:s.Tools.deepClone(r.getMergeData())},l=Z(this._injector,c),d={workbookId:e,worksheetId:n,ranges:a},u=se(this._injector,d),m=[{id:B.id,params:c},{id:L.id,params:d}],h=[{id:B.id,params:u},{id:L.id,params:l}];return{redos:m,undos:h}}_handleRemoveRowCommand(t,e,n){const{ranges:o}=t,r=le(this._univerInstanceService,e);if(!r)return this._handleNull();const i=ue(r,n);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:S,endRow:f}=v,I=f-S+1;for(let w=0;w<o.length;w++){const{startRow:y,endRow:R}=o[w],p=R-y+1;if(R<S)v.startRow-=p,v.endRow-=p;else{if(y>f)continue;if(y<=S&&R>=f)a.splice(g,1),g--;else{const C=s.Rectangle.getIntersects(o[w],v);C.endRow-C.startRow+1===I-1?(a.splice(g,1),g--):v.endRow-=C.endRow-C.startRow+1}}}}const c={workbookId:e,worksheetId:n,ranges:s.Tools.deepClone(i.getMergeData())},l=Z(this._injector,c),d={workbookId:e,worksheetId:n,ranges:a},u=se(this._injector,d),m=[{id:B.id,params:c},{id:L.id,params:d}],h=[{id:B.id,params:u},{id:L.id,params:l}];return{redos:m,undos:h}}_handleInsertRangeMoveRightCommand(t,e,n){const o=le(this._univerInstanceService,e);if(!o)return this._handleNull();const r=ue(o,n);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxColumns()-1,c=r.getMergeData(),l=[],d=[];c.forEach(v=>{for(let S=0;S<i.length;S++){const{startRow:f,endRow:I,startColumn:w,endColumn:y}=i[S];if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:I,endColumn:a},v)&&(l.push(v),s.Rectangle.contains({startRow:f,startColumn:w,endRow:I,endColumn:a},v))){const C=y-w+1;d.push({startRow:v.startRow,startColumn:v.startColumn+C,endRow:v.endRow,endColumn:v.endColumn+C});break}}});const u={workbookId:e,worksheetId:n,ranges:l},m=Z(this._injector,u),h={workbookId:e,worksheetId:n,ranges:d},g=se(this._injector,h);return{redos:[{id:B.id,params:u},{id:L.id,params:h}],undos:[{id:L.id,params:m},{id:B.id,params:g}]}}_handleInsertRangeMoveDownCommand(t,e,n){const o=le(this._univerInstanceService,e);if(!o)return this._handleNull();const r=ue(o,n);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxRows()-1,c=r.getMergeData(),l=[],d=[];c.forEach(f=>{for(let I=0;I<i.length;I++){const{startRow:w,startColumn:y,endColumn:R,endRow:p}=i[I];if(s.Rectangle.intersects({startRow:w,startColumn:y,endRow:a,endColumn:R},f)&&(l.push(f),s.Rectangle.contains({startRow:w,startColumn:y,endRow:a,endColumn:R},f))){const E=p-w+1;d.push({startRow:f.startRow+E,startColumn:f.startColumn,endRow:f.endRow+E,endColumn:f.endColumn});break}}});const u={workbookId:e,worksheetId:n,ranges:l},m=Z(this._injector,u),h={workbookId:e,worksheetId:n,ranges:d},g=se(this._injector,h),v=[{id:B.id,params:u},{id:L.id,params:h}],S=[{id:L.id,params:m},{id:B.id,params:g}];return{redos:v,undos:S}}_handleDeleteRangeMoveUpCommand(t,e,n){const o=le(this._univerInstanceService,e);if(!o)return this._handleNull();const r=ue(o,n);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxRows()-1,c=r.getMergeData(),l=[],d=[];c.forEach(f=>{for(let I=0;I<i.length;I++){const{startRow:w,startColumn:y,endColumn:R,endRow:p}=i[I];if(s.Rectangle.intersects({startRow:w,startColumn:y,endRow:a,endColumn:R},f)&&(l.push(f),s.Rectangle.contains({startRow:w,startColumn:y,endRow:a,endColumn:R},f))){const E=p-w+1,M=s.Rectangle.moveVertical(f,-E);d.push(M);break}}});const u={workbookId:e,worksheetId:n,ranges:l},m=Z(this._injector,u),h={workbookId:e,worksheetId:n,ranges:d},g=se(this._injector,h),v=[{id:B.id,params:u},{id:L.id,params:h}],S=[{id:L.id,params:m},{id:B.id,params:g}];return{redos:v,undos:S}}_handleDeleteRangeMoveLeftCommand(t,e,n){const o=le(this._univerInstanceService,e);if(!o)return this._handleNull();const r=ue(o,n);if(!r)return this._handleNull();const i=t.ranges,a=r.getMaxColumns()-1,c=r.getMergeData(),l=[],d=[];c.forEach(v=>{for(let S=0;S<i.length;S++){const{startRow:f,endRow:I,startColumn:w,endColumn:y}=i[S];if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:I,endColumn:a},v)&&(l.push(v),s.Rectangle.contains({startRow:f,startColumn:w,endRow:I,endColumn:a},v))){const C=y-w+1;d.push({startRow:v.startRow,startColumn:v.startColumn-C,endRow:v.endRow,endColumn:v.endColumn-C});break}}});const u={workbookId:e,worksheetId:n,ranges:l},m=Z(this._injector,u),h={workbookId:e,worksheetId:n,ranges:d},g=se(this._injector,h);return{redos:[{id:B.id,params:u},{id:L.id,params:h}],undos:[{id:L.id,params:m},{id:B.id,params:g}]}}_handleNull(){return{redos:[],undos:[]}}};rt=qr([s.OnLifecycle(s.LifecycleStages.Steady,rt),be(0,H.Inject(s.ICommandService)),be(1,H.Inject(exports.RefRangeService)),be(2,H.Inject(s.IUniverInstanceService)),be(3,H.Inject(H.Injector)),be(4,H.Inject(exports.SheetInterceptorService)),be(5,H.Inject(exports.SelectionManagerService))],rt);function le(t,e){return e?t.getUniverSheetInstance(e):t.getCurrentUniverSheetInstance()}function ue(t,e){return e?t.getSheetBySheetId(e):t.getActiveSheet()}const Yr={},mo={};var Kr=Object.defineProperty,Jr=Object.getOwnPropertyDescriptor,Xr=(t,e,n,o)=>{for(var r=o>1?void 0:o?Jr(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&&Kr(e,n,r),r},Qe=(t,e)=>(n,o)=>e(n,o,t);const Zr="SHEET_NUMFMT_PLUGIN";let st=class extends s.Disposable{constructor(e,n,o,r){super();P(this,"_numfmtModel",new Map);P(this,"_refAliasModel",new Map);P(this,"_modelReplace$",new je.Subject);P(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,Zr,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,a)=>{const{model:c,refModel:l}=a;if(c){const d=Object.keys(c).reduce((u,m)=>(u.set(m,new s.ObjectMatrix(c[m])),u),new Map);this._numfmtModel.set(i,d)}l&&this._refAliasModel.set(i,new s.RefAlias(l,["pattern","i"])),this._modelReplace$.next(i)}})};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(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((c,l)=>{const d=n.get(l);return c[l]=d.toJSON(),c},{}),i=o.getValues().filter(c=>c.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 c=this._numfmtModel.get(e)||new Map,l=c.get(n)||new s.ObjectMatrix;c.set(n,l),this._numfmtModel.set(e,c),a=l}if(i)a.setValue(o,r,i);else if(a.realDeleteValue(o,r),!a.getSizeOf()){const l=this._numfmtModel.get(e);l==null||l.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 c=this._refAliasModel.get(e),l=a.getValue(o,r);if(l&&c){const d=c.getValue(l==null?void 0:l.i);return d?{pattern:d.pattern,type:d.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,(c,l)=>{const d=this.getValue(e,n,c,l,i);if(d&&d.pattern){const u=r.getValue(d.pattern);u&&u.count--}this._setValue(e,n,c,l,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 c=i.getValue(a.pattern);c||(c={count:0,i:this._getUniqueRefId(e),pattern:a.pattern,type:o[0].type},i.addValue(c)),a.ranges.forEach(l=>{s.Range.foreach(l,(d,u)=>{if(r){const m=this.getValue(e,n,d,u,r);if(m&&m.pattern){const h=i.getValue(m.pattern);h&&h.count--}}this._setValue(e,n,d,u,{i:c.i}),c.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)}};st=Xr([s.OnLifecycle(s.LifecycleStages.Starting,st),Qe(0,H.Inject(s.ICommandService)),Qe(1,H.Inject(s.IResourceManagerService)),Qe(2,H.Inject(s.IUniverInstanceService)),Qe(3,H.Inject(s.ILogService))],st);const ln="univer.sheet.editable";class Se extends s.PermissionPoint{constructor(n,o){super();P(this,"id",ln);P(this,"value",!0);P(this,"unitID");this._workbookId=n,this._worksheetId=o,this.unitID=n,this.id=`${ln}_${n}_${o}`}}function fe(t){return typeof t=="function"}function Qr(t){return fe(t==null?void 0:t.lift)}function es(t){return function(e){if(Qr(e))return e.lift(function(n){try{return t(n,this)}catch(o){this.error(o)}});throw new TypeError("Unable to lift unknown Observable type")}}var Tt=function(t,e){return Tt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n[r]=o[r])},Tt(t,e)};function Zt(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Tt(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function un(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function ct(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var o=n.call(t),r,i=[],a;try{for(;(e===void 0||e-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(c){a={error:c}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function lt(t,e,n){if(n||arguments.length===2)for(var o=0,r=e.length,i;o<r;o++)(i||!(o in e))&&(i||(i=Array.prototype.slice.call(e,0,o)),i[o]=e[o]);return t.concat(i||Array.prototype.slice.call(e))}function ts(t){var e=function(o){Error.call(o),o.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Mt=ts(function(t){return function(n){t(this),this.message=n?n.length+` errors occurred during unsubscription:
2
- `+n.map(function(o,r){return r+1+") "+o.toString()}).join(`
3
- `):"",this.name="UnsubscriptionError",this.errors=n}});function dn(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var Qt=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,n,o,r,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var c=un(a),l=c.next();!l.done;l=c.next()){var d=l.value;d.remove(this)}}catch(S){e={error:S}}finally{try{l&&!l.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}else a.remove(this);var u=this.initialTeardown;if(fe(u))try{u()}catch(S){i=S instanceof Mt?S.errors:[S]}var m=this._finalizers;if(m){this._finalizers=null;try{for(var h=un(m),g=h.next();!g.done;g=h.next()){var v=g.value;try{mn(v)}catch(S){i=i??[],S instanceof Mt?i=lt(lt([],ct(i)),ct(S.errors)):i.push(S)}}}catch(S){o={error:S}}finally{try{g&&!g.done&&(r=h.return)&&r.call(h)}finally{if(o)throw o.error}}}if(i)throw new Mt(i)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)mn(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(e)}},t.prototype._hasParent=function(e){var n=this._parentage;return n===e||Array.isArray(n)&&n.includes(e)},t.prototype._addParent=function(e){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e},t.prototype._removeParent=function(e){var n=this._parentage;n===e?this._parentage=null:Array.isArray(n)&&dn(n,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&dn(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}();Qt.EMPTY;function ns(t){return t instanceof Qt||t&&"closed"in t&&fe(t.remove)&&fe(t.add)&&fe(t.unsubscribe)}function mn(t){fe(t)?t():t.unsubscribe()}var os={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Dt={setTimeout:function(t,e){for(var n=[],o=2;o<arguments.length;o++)n[o-2]=arguments[o];var r=Dt.delegate;return r!=null&&r.setTimeout?r.setTimeout.apply(r,lt([t,e],ct(n))):setTimeout.apply(void 0,lt([t,e],ct(n)))},clearTimeout:function(t){var e=Dt.delegate;return((e==null?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function rs(t){Dt.setTimeout(function(){throw t})}function hn(){}var ho=function(t){Zt(e,t);function e(n){var o=t.call(this)||this;return o.isStopped=!1,n?(o.destination=n,ns(n)&&n.add(o)):o.destination=ls,o}return e.create=function(n,o,r){return new as(n,o,r)},e.prototype.next=function(n){this.isStopped||this._next(n)},e.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},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(n){this.destination.next(n)},e.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(Qt),ss=Function.prototype.bind;function yt(t,e){return ss.call(t,e)}var is=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var n=this.partialObserver;if(n.next)try{n.next(e)}catch(o){et(o)}},t.prototype.error=function(e){var n=this.partialObserver;if(n.error)try{n.error(e)}catch(o){et(o)}else et(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(n){et(n)}},t}(),as=function(t){Zt(e,t);function e(n,o,r){var i=t.call(this)||this,a;if(fe(n)||!n)a={next:n??void 0,error:o??void 0,complete:r??void 0};else{var c;i&&os.useDeprecatedNextContext?(c=Object.create(n),c.unsubscribe=function(){return i.unsubscribe()},a={next:n.next&&yt(n.next,c),error:n.error&&yt(n.error,c),complete:n.complete&&yt(n.complete,c)}):a=n}return i.destination=new is(a),i}return e}(ho);function et(t){rs(t)}function cs(t){throw t}var ls={closed:!0,next:hn,error:cs,complete:hn};function us(t,e,n,o,r){return new ds(t,e,n,o,r)}var ds=function(t){Zt(e,t);function e(n,o,r,i,a,c){var l=t.call(this,n)||this;return l.onFinalize=a,l.shouldUnsubscribe=c,l._next=o?function(d){try{o(d)}catch(u){n.error(u)}}:t.prototype._next,l._error=i?function(d){try{i(d)}catch(u){n.error(u)}finally{this.unsubscribe()}}:t.prototype._error,l._complete=r?function(){try{r()}catch(d){n.error(d)}finally{this.unsubscribe()}}:t.prototype._complete,l}return e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var o=this.closed;t.prototype.unsubscribe.call(this),!o&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},e}(ho);function ms(t,e){return es(function(n,o){var r=0;n.subscribe(us(o,function(i){o.next(t.call(e,i,r++))}))})}var hs=Object.defineProperty,gs=Object.getOwnPropertyDescriptor,vs=(t,e,n,o)=>{for(var r=o>1?void 0:o?gs(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&&hs(e,n,r),r},kt=(t,e)=>(n,o)=>e(n,o,t);exports.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 Se(n,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(o=>{const r=o.getSheetId(),i=new Se(n,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(o=>{const r=o.getSheetId(),i=new Se(n,r);this._permissionService.deletePermissionPoint(e.getUnitId(),i.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(Ue.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(),c=i==null?void 0:i.getSheetId();if(!a||!c)return!1;switch(n.id){case Ye.id:return this.getSheetEditable(a,c)}return o()}}))}getEditable$(e,n){const o=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||o.getUnitId(),i=o.getActiveSheet(),a=n||i.getSheetId(),c=new Se(r,a);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(ms(([l,d])=>{const u=l.value&&d.value,m=s.getTypeFromPermissionItemList([l,d]);return{value:u,status:m}}))}getSheetEditable(e,n){const o=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||o.getUnitId(),i=o.getActiveSheet(),a=n||i.getSheetId(),c=new Se(r,a);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(l=>l.value)}setSheetEditable(e,n,o){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=n||r.getUnitId(),a=r.getActiveSheet(),c=o||a.getSheetId(),l=new Se(i,c);this._permissionService.updatePermissionPoint(i,l.id,e)}};exports.SheetPermissionService=vs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),kt(0,H.Inject(s.IPermissionService)),kt(1,H.Inject(s.IUniverInstanceService)),kt(2,H.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);var Ss=Object.defineProperty,fs=Object.getOwnPropertyDescriptor,Cs=(t,e,n,o)=>{for(var r=o>1?void 0:o?fs(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&&Ss(e,n,r),r},bt=(t,e)=>(n,o)=>e(n,o,t);const Is="sheet";var _t;exports.UniverSheetsPlugin=(_t=class extends s.Plugin{constructor(e,n,o,r){super(Is),this._config=e,this._commandService=n,this._localeService=o,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:mo})}_initializeDependencies(e){var o;const n=[[ye],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[ke,{useClass:st}],[exports.SheetInterceptorService],[tt],[rt]];(o=this._config)!=null&&o.notExecuteFormula||n.push([nt],[ot]),n.forEach(r=>{e.add(r)})}},P(_t,"type",s.PluginType.Sheet),_t);exports.UniverSheetsPlugin=Cs([bt(1,s.ICommandService),bt(2,H.Inject(s.LocaleService)),bt(3,H.Inject(H.Injector))],exports.UniverSheetsPlugin);const ws=[me.id,ne.id,Yt.id,de.id,Je.id,Ie.id,Re.id,we.id,pe.id,ze.id,qe.id,Te.id,De.id,Oe.id,Ee.id],Rs=[q.id,Ge.id],ps=1,Ms="rgba(255,255,255, 0.01)";function ys(t){const e=t.getCurrentTheme(),n=new fo.TinyColor(e.colorBlack).setAlpha(.1).toString();return{strokeWidth:2,stroke:e.primaryColor,fill:n,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function ks(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=go(n)),r}function go(t){const{actualRow:e,actualColumn:n,isMerged:o,isMergedMainCell:r}=t,{startRow:i,startColumn:a,endRow:c,endColumn:l}=t.mergeInfo;return{actualRow:e,actualColumn:n,isMerged:o,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:l}}function bs(t,e,n){const o=Co.getCellInfoInMergeData(t,e,n),r=s.makeCellRangeToRangeData(o);if(r)return{range:r,primary:o,style:null}}const xe=Number.MAX_SAFE_INTEGER,_s=(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:A.Delete}),s.Rectangle.contains(o,e)){const c=s.Rectangle.getRelativeRange(e,o),l=s.Rectangle.getPositionRange(c,n);return[{type:A.Set,range:l}]}}else s.Rectangle.intersects(n,e)&&r.push({type:A.Delete});return r},Us=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.ranges;if(!n)return[];const o=[];for(let i=0;i<n.length;i++){const a=n[i];if(a.endColumn<e.startColumn){const c={type:A.HorizontalMove,step:-(a.endColumn-a.startColumn+1)};o.push(c)}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 c={type:A.HorizontalMove,step:-(e.startColumn-a.startColumn),length:-(a.endColumn-e.startColumn+1)};o.push(c)}else if(a.startColumn>=e.startColumn&&a.startColumn<=e.endColumn&&a.endColumn>=e.endColumn){const c={type:A.HorizontalMove,step:0,length:-(e.endColumn-a.startColumn+1)};o.push(c)}}}return o},Ts=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.ranges;if(!n)return[];const o=[];for(let i=0;i<n.length;i++){const a=n[i];if(a.endRow<e.startRow){const c={type:A.VerticalMove,step:-(a.endRow-a.startRow+1)};o.push(c)}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 c={type:A.VerticalMove,step:-(e.startRow-a.startRow),length:-(a.endRow-e.startRow+1)};o.push(c)}else if(a.startRow>=e.startRow&&a.startRow<=e.endRow&&a.endRow>=e.endRow){const c={type:A.VerticalMove,step:0,length:-(e.endRow-a.startRow+1)};o.push(c)}}}return o},Ds=(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:A.VerticalMove,step:n.endRow-n.startRow+1}]:n.startRow>=e.startRow&&n.endRow<=e.endRow?[{type:A.VerticalMove,step:0,length:n.endRow-n.startRow+1}]:s.Rectangle.intersects({...n,endRow:xe},e)?[{type:A.Delete}]:[]:[]},Es=(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:A.HorizontalMove,step:n.endColumn-n.startColumn+1}]:n.startColumn>=e.startColumn&&n.endColumn<=e.endColumn?[{type:A.HorizontalMove,step:0,length:n.endColumn-n.startColumn+1}]:s.Rectangle.intersects({...n,endColumn:xe},e)?[{type:A.Delete}]:[]:[]},Os=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.ranges;if(!n||n.length!==1)return[];const o=n[0];return o.startColumn<=e.startColumn&&o.endColumn>=e.endColumn&&o.endRow<=e.startRow&&o.startRow<=e.startRow?[{type:A.VerticalMove,step:o.endRow-o.startRow+1}]:s.Rectangle.intersects({...o,endRow:xe},e)?[{type:A.Delete}]:[]},Ps=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.ranges;if(!n||n.length!==1)return[];const o=n[0];return o.startRow<=e.startRow&&o.endRow>=e.endRow&&o.startColumn<=e.startColumn?[{type:A.HorizontalMove,step:o.endColumn-o.startColumn+1}]:s.Rectangle.intersects({...o,endColumn:xe},e)?[{type:A.Delete}]:[]},As=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.ranges;if(!n||n.length!==1)return[];const o=n[0];return o.startRow<=e.startRow&&o.endRow>=e.endRow&&o.endColumn<e.startColumn?[{type:A.HorizontalMove,step:-(o.endColumn-o.startColumn+1)}]:s.Rectangle.intersects({...o,endColumn:xe},e)?[{type:A.Delete}]:[]},Ns=(t,e)=>{var r;const n=(r=t.params)==null?void 0:r.ranges;if(!n||n.length!==1)return[];const o=n[0];return o.startColumn<=e.startColumn&&o.endColumn>=e.endColumn&&o.endRow<e.startRow?[{type:A.VerticalMove,step:-(o.endRow-o.startRow+1)}]:s.Rectangle.intersects({...o,endRow:xe},e)?[{type:A.Delete}]:[]},xs=(t,e)=>{let n={...e};return t.forEach(o=>{switch(o.type){case A.Delete:{n=null;break}case A.HorizontalMove:{if(!n)return;n.startColumn+=o.step,n.endColumn+=o.step+(o.length||0);break}case A.VerticalMove:{if(!n)return;n.startRow+=o.step,n.endRow+=o.step+(o.length||0);break}case A.Set:{n=o.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n};exports.AddMergeUndoMutationFactory=se;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=ye;exports.COMMAND_LISTENER_SKELETON_CHANGE=ws;exports.COMMAND_LISTENER_VALUE_CHANGE=Rs;exports.ClearSelectionAllCommand=ut;exports.ClearSelectionContentCommand=Et;exports.ClearSelectionFormatCommand=dt;exports.CopySheetCommand=fn;exports.DeleteRangeMoveLeftCommand=gt;exports.DeleteRangeMoveUpCommand=vt;exports.DeleteRangeMutation=oe;exports.DeltaColumnWidthCommand=$t;exports.DeltaRowHeightCommand=io;exports.EffectRefRangId=ce;exports.INTERCEPTOR_POINT=Ue;exports.INumfmtService=ke;exports.InsertColAfterCommand=Dn;exports.InsertColBeforeCommand=Tn;exports.InsertColCommand=Ae;exports.InsertColMutation=we;exports.InsertColMutationUndoFactory=At;exports.InsertRangeMoveDownCommand=St;exports.InsertRangeMoveRightCommand=ft;exports.InsertRangeMutation=re;exports.InsertRowAfterCommand=_n;exports.InsertRowBeforeCommand=bn;exports.InsertRowCommand=Pe;exports.InsertRowMutation=Ie;exports.InsertRowMutationUndoFactory=Pt;exports.InsertSheetCommand=En;exports.InsertSheetMutation=Ce;exports.InsertSheetUndoMutationFactory=Ot;exports.MAX_CELL_PER_SHEET_KEY=lo;exports.MoveColsCommand=Vt;exports.MoveColsMutation=qe;exports.MoveRangeCommand=Ct;exports.MoveRangeMutation=Ge;exports.MoveRowsCommand=xt;exports.MoveRowsMutation=ze;exports.NORMAL_SELECTION_PLUGIN_NAME=J;exports.OperatorType=A;exports.RemoveColCommand=wt;exports.RemoveColMutation=pe;exports.RemoveMergeUndoMutationFactory=Z;exports.RemoveNumfmtMutation=Xt;exports.RemoveRowCommand=It;exports.RemoveRowMutation=Re;exports.RemoveSheetCommand=Lt;exports.RemoveSheetMutation=Ke;exports.RemoveSheetUndoMutationFactory=Sn;exports.RemoveWorksheetMergeCommand=Nn;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=Jn;exports.ResetTextColorCommand=Yn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Ms;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=ps;exports.SelectionMoveType=gn;exports.SetBackgroundColorCommand=Kn;exports.SetBoldCommand=lr;exports.SetBorderBasicCommand=xn;exports.SetBorderColorCommand=Bn;exports.SetBorderCommand=Ne;exports.SetBorderPositionCommand=Vn;exports.SetBorderStyleCommand=Ln;exports.SetColHiddenCommand=jn;exports.SetColHiddenMutation=Te;exports.SetColVisibleMutation=De;exports.SetColWidthCommand=Gt;exports.SetFontFamilyCommand=hr;exports.SetFontSizeCommand=gr;exports.SetFrozenCommand=Hn;exports.SetFrozenMutation=he;exports.SetFrozenMutationFactory=Wt;exports.SetHorizontalTextAlignCommand=Zn;exports.SetItalicCommand=ur;exports.SetNumfmtMutation=Rt;exports.SetRangeValuesCommand=Ye;exports.SetRangeValuesMutation=q;exports.SetRangeValuesUndoMutationFactory=Me;exports.SetRowHeightCommand=ao;exports.SetRowHiddenCommand=Gn;exports.SetRowHiddenMutation=Oe;exports.SetRowVisibleMutation=Ee;exports.SetSelectedColsVisibleCommand=Wn;exports.SetSelectedRowsVisibleCommand=$n;exports.SetSelectionsOperation=Y;exports.SetSpecificColsVisibleCommand=Bt;exports.SetSpecificRowsVisibleCommand=jt;exports.SetStrikeThroughCommand=mr;exports.SetStyleCommand=K;exports.SetTabColorCommand=to;exports.SetTabColorMutation=Fe;exports.SetTextColorCommand=qn;exports.SetTextRotationCommand=eo;exports.SetTextWrapCommand=Qn;exports.SetUnderlineCommand=dr;exports.SetVerticalTextAlignCommand=Xn;exports.SetWorksheetActivateCommand=Ft;exports.SetWorksheetActiveOperation=Je;exports.SetWorksheetColWidthMutation=de;exports.SetWorksheetColWidthMutationFactory=Ht;exports.SetWorksheetHideCommand=oo;exports.SetWorksheetHideMutation=ge;exports.SetWorksheetNameCommand=zt;exports.SetWorksheetNameMutation=it;exports.SetWorksheetOrderCommand=ro;exports.SetWorksheetOrderMutation=He;exports.SetWorksheetRowAutoHeightMutation=Yt;exports.SetWorksheetRowAutoHeightMutationFactory=Ir;exports.SetWorksheetRowHeightMutation=me;exports.SetWorksheetRowIsAutoHeightCommand=Kt;exports.SetWorksheetRowIsAutoHeightMutation=ne;exports.SetWorksheetShowCommand=co;exports.SheetEditablePermission=Se;exports.checkIfShrink=Jo;exports.convertPrimaryWithCoordToPrimary=go;exports.convertSelectionDataToRange=ks;exports.enUS=Yr;exports.expandToContinuousRange=qo;exports.expandToNextCell=$o;exports.expandToNextGapRange=Ho;exports.expandToWholeSheet=Yo;exports.factoryRemoveNumfmtUndoMutation=br;exports.factorySetNumfmtUndoMutation=kr;exports.findNextGapRange=Nt;exports.findNextRange=_e;exports.getAddMergeMutationRangeByType=uo;exports.getCellAtRowCol=Fo;exports.getNormalSelectionStyle=ys;exports.getPrimaryForRange=ie;exports.getStartRange=Ko;exports.handleDeleteRangeMoveLeft=As;exports.handleDeleteRangeMoveUp=Ns;exports.handleDeleteRangeMutation=Cn;exports.handleIRemoveCol=Us;exports.handleIRemoveRow=Ts;exports.handleInsertCol=Es;exports.handleInsertRangeMoveDown=Os;exports.handleInsertRangeMoveRight=Ps;exports.handleInsertRangeMutation=In;exports.handleInsertRow=Ds;exports.handleMoveRange=_s;exports.rangeMerge=Jt;exports.runRefRangeMutations=xs;exports.shrinkToNextCell=zo;exports.shrinkToNextGapRange=Go;exports.transformCellDataToSelectionData=bs;exports.transformCellsToRange=at;exports.zhCN=mo;
1
+ "use strict";var Zn=Object.defineProperty;var Qn=(t,e,n)=>e in t?Zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var x=(t,e,n)=>(Qn(t,typeof e!="symbol"?e+"":e,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),$=require("@wendellhu/redi"),Be=require("rxjs"),wt=require("@univerjs/engine-formula"),eo=require("rxjs/operators"),to=require("@univerjs/engine-render");var no=Object.defineProperty,oo=Object.getOwnPropertyDescriptor,ro=(t,e,n,o)=>{for(var r=o>1?void 0:o?oo(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&&no(e,n,r),r},so=(t,e)=>(n,o)=>e(n,o,t);const K="normalSelectionPluginName";var Qt=(t=>(t[t.MOVE_START=0]="MOVE_START",t[t.MOVING=1]="MOVING",t[t.MOVE_END=2]="MOVE_END",t))(Qt||{});exports.SelectionManagerService=class{constructor(e){x(this,"_selectionInfo",new Map);x(this,"_currentSelection",null);x(this,"_selectionMoveStart$",new Be.Subject);x(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());x(this,"_selectionMoving$",new Be.Subject);x(this,"selectionMoving$",this._selectionMoving$.asObservable());x(this,"_selectionMoveEnd$",new Be.BehaviorSubject(null));x(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());x(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var 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:K,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=K,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 c=this._selectionInfo.get(o);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(i))u.set(i,[...a]);else{let l=u.get(i);l==null&&(l=[],u.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 c=a.get(o);if(!c.has(r))c.set(r,i);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.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)}};exports.SelectionManagerService=ro([so(0,$.Inject(s.ThemeService))],exports.SelectionManagerService);const io=s.createInterceptorKey("CELL_CONTENT"),ao=s.createInterceptorKey("PERMISSION"),De={CELL_CONTENT:io,PERMISSION:ao};var co=Object.defineProperty,uo=Object.getOwnPropertyDescriptor,lo=(t,e,n,o)=>{for(var r=o>1?void 0:o?uo(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&&co(e,n,r),r},mo=(t,e)=>(n,o)=>e(n,o,t);exports.SheetInterceptorService=class extends s.Disposable{constructor(n){super();x(this,"_interceptorsByName",new Map);x(this,"_commandInterceptors",[]);x(this,"_workbookDisposables",new Map);x(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(De.CELL_CONTENT,{priority:-1,handler(o,r){const i=r.worksheet.getCellRaw(r.row,r.col);return o?{...i,...o}:i}}),this.intercept(De.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,c)=>(c.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=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,h){return i.fetchThroughInterceptors(De.CELL_CONTENT)(c.getCellRaw(g,h),{unitId:r,subUnitId:u,row:g,col:h,worksheet:c,workbook:n})}});d.add(m),i._worksheetDisposables.set(zt(r,c),d)})};n.getSheets().forEach(c=>a(c)),o.add(s.toDisposable(n.sheetCreated$.subscribe(c=>a(c)))),o.add(s.toDisposable(n.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),o.add(s.toDisposable(()=>n.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(n){const o=n.getUnitId(),r=this._workbookDisposables.get(o);r&&(r.dispose(),this._workbookDisposables.delete(o))}_disposeSheetInterceptor(n,o){const r=zt(n,o),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=lo([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),mo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function zt(t,e){return`${t}|${e.getSheetId()}`}const ye=(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 c=a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=a.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,h,S)=>{const I=s.Tools.deepClone(u==null?void 0:u.getValue(g,h))||{},v=l.getStyleByCell(I),C=So(v,S&&S.s?S.s:null);I.s=C,d.setValue(g,h,go(I))}),{...e,options:{},cellValue:d.getMatrix()}};function go(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 G={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 c=a.getSheetBySheetId(o);if(!c)return!1;const u=c.getCellMatrix(),l=a.getStyles();return new s.ObjectMatrix(n).forValue((m,g,h)=>{if(!h)u==null||u.setValue(m,g,{});else{const S=u.getValue(m,g)||{},I=h.t===s.CellValueType.FORCE_STRING?h.t:ho(h.v===void 0?S.v:h.v);if(h.f!==void 0&&(S.f=h.f),h.si!==void 0&&(S.si=h.si),h.p!==void 0&&(S.p=h.p),h.v!==void 0&&(S.v=I===s.CellValueType.NUMBER?Number(h.v):h.v),S.v!==void 0&&(S.t=I),h.s!==void 0){const v=l.getStyleByCell(S);v==null&&delete S.s,typeof h.s=="string"&&(h.s=l.get(h.s));const C=en(v,h.s?h.s:null);C&&s.Tools.removeNull(C),s.Tools.isEmptyObject(C)?delete S.s:S.s=l.setValue(C),!h.p&&S.p&&Co(S.p,h.s?h.s:null)}u.setValue(m,g,s.Tools.removeNull(S))}}),!0}};function ho(t){return t===null?null:typeof t=="string"?Ro(t)?s.CellValueType.NUMBER:s.CellValueType.STRING:typeof t=="number"?s.CellValueType.NUMBER:typeof t=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function So(t,e){return vo(t,e)}function vo(t,e){if(!e||!Object.keys(e).length)return t;const n=t||{};for(const o in e)o==="bd"?n[o]=Io(n[o]||{},e[o]):o in n||(n[o]=null);return n}function Io(t,e){if(!e||!Object.keys(e).length)return t;for(const n in e)n in t||(t[n]=null);return t}function en(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 Co(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=en(i,e,!0);a&&s.Tools.removeNull(a),s.Tools.isEmptyObject(a)?delete r.ts:r.ts=a})}function fo(t){return/^-?\d+(\.\d+)?$/.test(t)}function Ro(t){return fo(t)?Number(t)<=Number.MAX_SAFE_INTEGER:!1}const st={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(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=o.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],h={subUnitId:l,unitId:c,cellValue:po(d)},S=ye(t,h);m.push({id:G.id,params:h}),g.push({id:G.id,params:S});const I=i.onCommandExecute({id:st.id});return m.push(...I.redos),g.unshift(...I.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function po(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.getData()}const yt={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(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=o.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:Mo(d)},g=ye(t,m),h=i.onCommandExecute({id:yt.id}),S=[{id:G.id,params:m},...h.redos],I=[...h.undos,{id:G.id,params:g}];return s.sequenceExecute(S,n).result?(r.pushUndoRedo({unitID:c,undoMutations:I,redoMutations:S}),!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 c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null})}),e.getData()}const it={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(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUniverSheetInstance(),c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=o.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],h={subUnitId:l,unitId:c,cellValue:wo(d)},S=ye(t,h);m.push({id:G.id,params:h}),g.push({id:G.id,params:S});const I=i.onCommandExecute({id:it.id});return m.push(...I.redos),g.unshift(...I.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function wo(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{s:null})}),e.getData()}const Ut=(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}},tn=(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}},Ge={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(),c=i.getConfig(),{sheets:u}=c;if(u[o]==null)throw new Error(`Remove sheet fail ${o} does not exist`);const l=c.sheetOrder.findIndex(d=>d===o);return delete u[o],c.sheetOrder.splice(l,1),a.delete(o),!0}},nn={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(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.unitId??a,c=e.subUnitId??c);const u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d=s.Tools.deepClone(l.getConfig());d.name+=i.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(l)+1,sheet:d,unitId:a},h=Ut(t,g);return n.syncExecuteCommand(fe.id,g)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Ge.id,params:h}],redoMutations:[{id:fe.id,params:g}]}),!0):!1}},at=(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,c=o.getConfig().columnCount,{startRow:u,endRow:l,startColumn:d,endColumn:m}=e.range;if(e.shiftDimension===s.Dimension.ROWS){for(let g=u;g<=a;g++)for(let h=d;h<=m;h++)if(g<=l){const S=r.getValue(g,h);i.setValue(g,h,S)}}else if(e.shiftDimension===s.Dimension.COLUMNS)for(let g=u;g<=l;g++)for(let h=d;h<=c;h++)if(h<=m){const S=r.getValue(g,h);i.setValue(g,h,S)}else for(let S=0;S<=m;S++){const I=r.getValue(g,h);i.setValue(g,h+S,I)}return{...s.Tools.deepClone(e),cellValue:i.getData()}},te={id:"sheet.mutation.delete-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,range:r,shiftDimension:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)return!1;const u=c.getSheetBySheetId(o);if(!u)return!1;const l=u.getCellMatrix(),d=u.getLastRowWithContent(),m=u.getLastColumnWithContent();return on(l,r,d,m,i),!0}};function on(t,e,n,o,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=e,l=a-i+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=n;m++)for(let g=c;g<=u;g++){const h=t.getValue(m+l,g);h==null?t.realDeleteValue(m,g):t.setValue(m,g,h)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let g=c;g<=o;g++){const h=t.getValue(m,g+d);h==null?t.realDeleteValue(m,g):t.setValue(m,g,h)}}const ct=(t,e)=>({unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,shiftDimension:e.shiftDimension}),ne={id:"sheet.mutation.insert-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,range:r,cellValue:i,shiftDimension:a}=e,u=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!u)return!1;const l=u.getSheetBySheetId(o);if(!l)return!1;const d=l.getCellMatrix(),m=l.getLastRowWithContent(),g=l.getLastColumnWithContent();return rn(d,r,m,g,a,i),!0}};function rn(t,e,n,o,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:l}=e;if(r===s.Dimension.ROWS){const d=c-a+1;for(let m=n;m>=a;m--)for(let g=u;g<=l;g++){const h=t.getValue(m,g);h==null?t.realDeleteValue(m+d,g):t.setValue(m+d,g,h)}for(let m=c;m>=a;m--)for(let g=u;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 d=l-u+1;for(let m=a;m<=c;m++)for(let g=o;g>=u;g--){const h=t.getValue(m,g);h==null?t.realDeleteValue(m,g+d):t.setValue(m,g+d,h)}for(let m=a;m<=c;m++)for(let g=l;g>=u;g--)i&&i[m]&&i[m][g]?t.setValue(m,g,i[m][g]):t.realDeleteValue(m,g)}}const sn="sheet.command.delete-range-move-left",ut={type:s.CommandType.COMMAND,id:sn,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(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(R=i.getLast())==null?void 0:R.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d||!d.getSheetBySheetId(u))return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},h=at(t,g);if(!h)return!1;const S=a.onCommandExecute({id:ut.id,params:{range:l}}),I=[{id:te.id,params:g}],v=[{id:ne.id,params:h}];return I.push(...S.redos),v.push(...S.undos),s.sequenceExecute(I,n).result?(o.pushUndoRedo({unitID:c,undoMutations:v.reverse(),redoMutations:I}),!0):!1}},an="sheet.command.delete-range-move-up",dt={type:s.CommandType.COMMAND,id:an,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(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(R=i.getLast())==null?void 0:R.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d||!d.getSheetBySheetId(u))return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},h=at(t,g);if(!h)return!1;const S=a.onCommandExecute({id:dt.id,params:{range:l}}),I=[{id:te.id,params:g}],v=[{id:ne.id,params:h}];return I.push(...S.redos),v.push(...S.undos),await s.sequenceExecute(I,n).result?(o.pushUndoRedo({unitID:c,undoMutations:v.reverse(),redoMutations:I}),!0):!1}},_t=(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,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(o);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let h=m;h<m+g;h++)i?s.insertMatrixArray(h,i[h-r.startRow]??d,l):s.insertMatrixArray(h,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),!0}},bt=(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}},pe={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:c}=e,l=i.getColumnData(),d=a.startColumn,m=a.endColumn-a.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let h=d;h<d+m;h++){const S={w:g,hd:0};c?s.insertMatrixArray(h,c[h-a.startColumn]??S,l):s.insertMatrixArray(h,S,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),!0}},yo=(t,e)=>{const r=e.getRowManager().getRowData(),i={},a=t.range,c=s.sliceMatrixArray(a.startRow,a.endRow,r);return s.concatMatrixArray(i,c),{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,rowInfo:i}},Me={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,c=r.getRowManager().getRowData(),u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.setRowCount(r.getRowCount()-u),!0}},Uo=(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 c=r.getColumnManager().getColumnData(),u={},l=e.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c);return s.concatMatrixArray(u,d),{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:u}},we={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,c=r.getColumnManager().getColumnData(),u=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),!0}},_o="sheet.command.insert-range-move-down",lt={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(t,e)=>{var f;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(exports.SelectionManagerService),c=t.get(exports.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(f=a.getLast())==null?void 0:f.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const h=[],S=[],I={};s.Range.foreach(d,(W,j)=>{const H=g.getCell(W,j);!H||!H.s||(I[W]||(I[W]={}),I[W][j]={s:H.s})});const v={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:I};h.push({id:ne.id,params:v});const C=ct(t,v);S.push({id:te.id,params:C});let R=!1,U=0;const p=g.getMaxRows()-1,{startRow:M,endRow:T,startColumn:_,endColumn:O}=d;for(let W=_;W<=O;W++){const j=g.getCell(p,W),H=j==null?void 0:j.v;if(H&&H!==""){R=!0,U=g.getRowHeight(p);break}}const A=T-M+1;if(R){const W={startRow:p,endRow:p,startColumn:d.startColumn,endColumn:d.endColumn},j={unitId:u,subUnitId:l,range:W,rowInfo:new Array(A).fill(void 0).map(()=>({h:U,hd:s.BooleanNumber.FALSE}))};h.push({id:Re.id,params:j});const H=_t(t,j);S.push({id:Me.id,params:H})}const k=c.onCommandExecute({id:lt.id,params:{range:d}});return h.push(...k.redos),S.push(...k.undos),s.sequenceExecute(h,n)?(o.pushUndoRedo({unitID:u,undoMutations:S.reverse(),redoMutations:h}),!0):!1}},cn="sheet.command.insert-range-move-right",mt={type:s.CommandType.COMMAND,id:cn,handler:async(t,e)=>{var f;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ILogService),a=t.get(exports.SelectionManagerService),c=t.get(exports.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(f=a.getLast())==null?void 0:f.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const h=[],S=[],I={};s.Range.foreach(d,(W,j)=>{const H=g.getCell(W,j);!H||!H.s||(I[W]||(I[W]={}),I[W][j]={s:H.s})});const v={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:I};h.push({id:ne.id,params:v});const C=ct(t,v);S.push({id:te.id,params:C});let R=!1,U=0;const p=g.getMaxColumns()-1,{startRow:M,endRow:T,startColumn:_,endColumn:O}=d;for(let W=M;W<=T;W++){const j=g.getCell(W,p),H=j==null?void 0:j.v;if(H&&H!==""){R=!0,U=g.getColumnWidth(p);break}}const A=O-_+1;if(R){const W={startRow:d.startRow,endRow:d.endRow,startColumn:p,endColumn:p},j={unitId:u,subUnitId:l,range:W,colInfo:new Array(A).fill(void 0).map(()=>({w:U,hd:s.BooleanNumber.FALSE}))};h.push({id:pe.id,params:j});const H=bt(t,j);S.push({id:we.id,params:H})}const k=c.onCommandExecute({id:mt.id,params:{range:d}});return h.push(...k.redos),S.push(...k.undos),s.sequenceExecute(h,n).result?(o.pushUndoRedo({unitID:u,undoMutations:S.reverse(),redoMutations:h}),!0):!1}},un="sheet.command.insert-row",ke={type:s.CommandType.COMMAND,id:un,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:c,direction:u,unitId:l,subUnitId:d,cellValue:m}=e,{startRow:g,endRow:h}=c,S=u===s.Direction.UP?g:g-1,I=a.getRowHeight(S),v={unitId:l,subUnitId:d,range:c,rowInfo:new Array(h-g+1).fill(void 0).map(()=>({h:I,hd:s.BooleanNumber.FALSE}))},C=_t(t,v),R={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,shiftDimension:s.Dimension.ROWS,cellValue:m},U=ct(t,R),p=t.get(exports.SheetInterceptorService).onCommandExecute({id:ke.id,params:e});return s.sequenceExecute([{id:Re.id,params:v},{id:ne.id,params:R},...p.redos],n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[...p.undos,{id:te.id,params:U},{id:Me.id,params:C}],redoMutations:[{id:Re.id,params:v},{id:ne.id,params:R},...p.redos]}),!0):!1}},dn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async t=>{var g;const n=(g=t.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(h=>h.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 c=i.getUnitId(),u=a.getSheetId(),l=o.endRow-o.startRow+1,d={};s.Range.foreach(o,(h,S)=>{const I=a.getCell(h,S);!I||!I.s||(d[h]||(d[h]={}),d[h][S]={s:I.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:o.startRow,endRow:o.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:d};return t.get(s.ICommandService).executeCommand(ke.id,m)}},ln={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async t=>{var m;const n=(m=t.get(exports.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 c=i.getUnitId(),u=a.getSheetId(),l=o.endRow-o.startRow+1,d={unitId:c,subUnitId:u,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(ke.id,d)}},mn="sheet.command.insert-col",Ne={type:s.CommandType.COMMAND,id:mn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService),{range:a,direction:c,subUnitId:u,unitId:l,cellValue:d}=e,{startColumn:m,endColumn:g}=e.range,S=r.getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId),I=c===s.Direction.LEFT?m:m-1,v=S.getColumnWidth(I),C={unitId:l,subUnitId:u,range:a,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:v,hd:s.BooleanNumber.FALSE}))},R=bt(t,C),U={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,shiftDimension:s.Dimension.COLUMNS,cellValue:d},p=ct(t,U),M=i.onCommandExecute({id:Ne.id,params:e});return s.sequenceExecute([{id:pe.id,params:C},{id:ne.id,params:U},...M.redos],n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[...M.undos,{id:te.id,params:p},{id:we.id,params:R}],redoMutations:[{id:pe.id,params:C},{id:ne.id,params:U},...M.redos]}),!0):!1}},gn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async t=>{const n=t.get(exports.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 c=i.getUnitId(),u=a.getSheetId(),l=o.endColumn-o.startColumn+1,d={};s.Range.foreach(o,(g,h)=>{const S=a.getCell(g,h);!S||!S.s||(d[g]||(d[g]={}),d[g][h]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:o.startColumn,endColumn:o.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent()},cellValue:d};return t.get(s.ICommandService).executeCommand(Ne.id,m)}},hn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async t=>{const n=t.get(exports.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 c=i.getUnitId(),u=a.getSheetId(),l=o.endColumn-o.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:o.endColumn+1,endColumn:o.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return t.get(s.ICommandService).executeCommand(Ne.id,d)}},Sn={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 c=a.getSheets().length,u=s.Tools.deepClone(s.DEFAULT_WORKSHEET);e?(c=e.index??c,e.sheet?u=e.sheet:(u.id=s.Tools.generateRandomId(),u.name=`工作表${++a.getSheets().length}`)):(u.id=s.Tools.generateRandomId(),u.name=`工作表${++a.getSheets().length}`);const l={index:c,sheet:u,unitId:i},d=Ut(t,l);return n.syncExecuteCommand(fe.id,l)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Ge.id,params:d}],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 c=a.getCellMatrix();return new s.ObjectMatrix(n).forValue((u,l,d)=>{c.setValue(u,l,d)}),new s.ObjectMatrix(o).forValue((u,l,d)=>{c.setValue(u,l,d)}),!0}},q={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(t,e)=>{const n=t.get(exports.SelectionManagerService);if(!e)return!1;const{selections:o,type:r}=e;return n.replace(o,r),!0}},vn="sheet.command.move-range",gt={type:s.CommandType.COMMAND,id:vn,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService),a=r.getCurrentUniverSheetInstance(),c=a.getActiveSheet(),u=a.getUnitId(),l=c.getSheetId(),d=c.getRange(e.fromRange).getValues(),m=d.reduce((M,T,_)=>(T.forEach((O,A)=>{M.setValue(e.fromRange.startRow+_,e.fromRange.startColumn+A,null)}),M),new s.ObjectMatrix),g=d.reduce((M,T,_)=>(T.forEach((O,A)=>{M.setValue(e.fromRange.startRow+_,e.fromRange.startColumn+A,O)}),M),new s.ObjectMatrix),h=d.reduce((M,T,_)=>(T.forEach((O,A)=>{M.setValue(e.toRange.startRow+_,e.toRange.startColumn+A,O)}),M),new s.ObjectMatrix),S=c.getRange(e.toRange).getValues().reduce((M,T,_)=>(T.forEach((O,A)=>{M.setValue(e.toRange.startRow+_,e.toRange.startColumn+A,O)}),M),new s.ObjectMatrix),I={from:m.getMatrix(),to:h.getMatrix(),unitId:u,subUnitId:l},v={from:g.getMatrix(),to:S.getMatrix(),unitId:u,subUnitId:l},C=i.onCommandExecute({id:gt.id,params:e}),R=[{id:Fe.id,params:I},...C.redos,{id:q.id,params:{unitId:u,sheetId:l,pluginName:K,selections:[{range:e.toRange}]}}],U=[{id:q.id,params:{unitId:u,sheetId:l,pluginName:K,selections:[{range:e.fromRange}]}},...C.undos,{id:Fe.id,params:v}];return await s.sequenceExecute(R,n).result?(o.pushUndoRedo({unitID:u,undoMutations:U,redoMutations:R}),!0):!1}},ie=(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}},V={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,c=e.ranges;for(let u=0;u<c.length;u++)a.push(c[u]);return!0}};function bo(t,e){const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:n,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{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,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=i.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function To(t,e){const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:n,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{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,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=i.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}},ee=(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,c=e.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=a.length-1;d>=0;d--){const m=a[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(a[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},B={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,c=e.ranges;for(let u=0;u<c.length;u++)for(let l=a.length-1;l>=0;l--){const d=a[l],m=c[u];s.Rectangle.intersects(d,m)&&a.splice(l,1)}return!0}};function Do(t,e){return e.getMergeData().some(n=>n.startRow<t&&t<=n.endRow)}function Eo(t,e){return e.getMergeData().some(n=>n.startColumn<t&&t<=n.endColumn)}function ht(t,e,n=!0){const o=e.getMatrixWithMergedCells(...s.selectionToArray(t)),r=[];if(o.forValue((a,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(t,l)||r.push(l)}}),r.length===0)return t;const i=s.Rectangle.union(t,...r);return n?ht(i,e,n):i}function Oo(t,e,n){let o=null;return n.getMatrixWithMergedCells(t,e,t,e).forValue((i,a,c)=>(o={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:i+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:a+(c.colSpan!==void 0?c.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 ae(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 Tt={id:"sheet.command.move-rows",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections(),{fromRow:r,toRow:i}=e,a=o==null?void 0:o.filter(z=>z.range.rangeType===s.RANGE_TYPE.ROW&&z.range.startRow<=r&&r<=z.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=t.get(exports.SheetInterceptorService),l=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),h=t.get(s.ErrorService),S=a[0].range,I=a[0].primary,v=ht(S,d,!1);if(!s.Rectangle.equals(S,v))return h.emit("Only part of a merged cell is selected."),!1;if(Do(i,d))return h.emit("Across a merged cell."),!1;const C={...S,startRow:i,endRow:i+S.endRow-S.startRow},R={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},U=bo(t,R),p=i-r,M=p<0,T=S.endRow-S.startRow+1,_=s.Tools.deepClone(d.getMergeData());for(let z=0;z<_.length;z++){const w=_[z],{startRow:N,endRow:ce}=w;M?s.Rectangle.contains(S,w)?(w.startRow+=p,w.endRow+=p):ce<S.startRow&&N>=C.startRow&&(w.startRow+=T,w.endRow+=T):s.Rectangle.contains(S,w)?(w.startRow+=p,w.endRow+=p):S.endRow<N&&ce<C.startRow&&(w.startRow-=T,w.endRow-=T)}const O={unitId:m,subUnitId:g,ranges:s.Tools.deepClone(d.getMergeData())},A=ee(t,O),k={unitId:m,subUnitId:g,ranges:_},X=ie(t,k),f=M?C:{...C,startRow:C.startRow-T,endRow:C.endRow-T},W={unitId:m,subUnitId:g,pluginName:K,selections:[{range:f,primary:ae(f,d),style:null}]},j={unitId:m,subUnitId:g,pluginName:K,selections:[{range:S,primary:I,style:null}]},H=t.get(s.ICommandService),Ie=c.onCommandExecute({id:Tt.id,params:e}),he=[{id:He.id,params:R},{id:B.id,params:O},{id:V.id,params:k},{id:q.id,params:W},...Ie.redos],be=[{id:He.id,params:U},{id:B.id,params:X},{id:V.id,params:A},{id:q.id,params:j},...Ie.undos];return s.sequenceExecute(he,H).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:be,redoMutations:he}),!0):!1}},Dt={id:"sheet.command.move-cols",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections(),{fromCol:r,toCol:i}=e,a=o==null?void 0:o.filter(z=>z.range.rangeType===s.RANGE_TYPE.COLUMN&&z.range.startColumn<=r&&r<=z.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=t.get(exports.SheetInterceptorService),l=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),h=t.get(s.ErrorService),S=a[0].range,I=a[0].primary,v=ht(S,d,!1);if(!s.Rectangle.equals(S,v))return h.emit("Only part of a merged cell is selected."),!1;if(Eo(i,d))return h.emit("Across a merged cell."),!1;const C={...S,startColumn:i,endColumn:i+S.endColumn-S.startColumn},R={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},U=To(t,R),p=S.endColumn-S.startColumn+1,M=i-r,T=M<0,_=s.Tools.deepClone(d.getMergeData());for(let z=0;z<_.length;z++){const w=_[z],{startColumn:N,endColumn:ce}=w;T?s.Rectangle.contains(S,w)?(w.startColumn+=M,w.endColumn+=M):ce<S.startColumn&&N>=C.startColumn&&(w.startColumn+=p,w.endColumn+=p):s.Rectangle.contains(S,w)?(w.startColumn+=M,w.endColumn+=M):S.endColumn<N&&ce<C.startColumn&&(w.startColumn-=p,w.endColumn-=p)}const O={unitId:m,subUnitId:g,ranges:s.Tools.deepClone(d.getMergeData())},A=ee(t,O),k={unitId:m,subUnitId:g,ranges:_},X=ie(t,k),f=T?C:{...C,startColumn:C.startColumn-p,endColumn:C.endColumn-p},W={unitId:m,subUnitId:g,pluginName:K,selections:[{range:f,primary:ae(f,d),style:null}]},j={unitId:m,subUnitId:g,pluginName:K,selections:[{range:S,primary:I,style:null}]},H=t.get(s.ICommandService),Ie=c.onCommandExecute({id:Dt.id,params:e}),he=[{id:$e.id,params:R},{id:B.id,params:O},{id:V.id,params:k},{id:q.id,params:W},...Ie.redos],be=[{id:$e.id,params:U},{id:B.id,params:X},{id:V.id,params:A},{id:q.id,params:j},...Ie.undos];return s.sequenceExecute(he,H).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:be,redoMutations:he}),!0}},In="sheet.command.remove-row",St={type:s.CommandType.COMMAND,id:In,handler:async(t,e)=>{var C;const n=t.get(exports.SelectionManagerService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(C=n.getLast())==null?void 0:C.range),!r)return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=a.getActiveSheet(),u=a.getUnitId(),l=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=yo(d,c),g={unitId:u,subUnitId:l,range:r,shiftDimension:s.Dimension.ROWS},h=at(t,g);if(!h)return!1;const S=o.onCommandExecute({id:St.id,params:{range:r}}),I=t.get(s.ICommandService);return s.sequenceExecute([{id:te.id,params:g},{id:Me.id,params:d},...S.redos],I).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...S.undos,{id:Re.id,params:m},{id:ne.id,params:h}],redoMutations:[{id:te.id,params:g},{id:Me.id,params:d},...S.redos]}),!0):!1}},Cn="sheet.command.remove-col",vt={type:s.CommandType.COMMAND,id:Cn,handler:async(t,e)=>{var C;const n=t.get(exports.SelectionManagerService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(C=n.getLast())==null?void 0:C.range),!r)return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=a.getActiveSheet(),u=a.getUnitId(),l=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=Uo(t,d),g={unitId:u,subUnitId:l,range:r,shiftDimension:s.Dimension.COLUMNS},h=at(t,g);if(!h)throw new Error;const S=o.onCommandExecute({id:vt.id,params:{range:r}}),I=t.get(s.ICommandService);return s.sequenceExecute([{id:we.id,params:d},{id:te.id,params:g},...S.redos],I).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...S.undos,{id:pe.id,params:m},{id:ne.id,params:h}],redoMutations:[{id:we.id,params:d},{id:te.id,params:g},...S.redos]}),!0):!1}},Et={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(exports.SheetInterceptorService);let a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(a=e.unitId??a,c=e.subUnitId??c);const u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(l);u.getConfig().sheetOrder[d+1];const m={subUnitId:c,unitId:a},g=tn(t,m),h=i.onCommandExecute({id:Et.id,params:{unitId:a,subUnitId:c}}),S=[{id:Ge.id,params:m},...h.redos],I=[...h.undos,{id:fe.id,params:g}];return s.sequenceExecute(S,n)?(o.pushUndoRedo({unitID:a,undoMutations:I,redoMutations:S}),!0):!1}},fn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async t=>{const e=t.get(exports.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(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:a,subUnitId:c,ranges:i};let m=!1;const g=l.getConfig().mergeData;if(i.forEach(I=>{g.forEach(v=>{s.Rectangle.intersects(I,v)&&(m=!0)})}),!m)return!1;const h=ee(t,d);return n.syncExecuteCommand(B.id,d)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:V.id,params:h}],redoMutations:[{id:B.id,params:d}]}),!0):!1}};class Ue{constructor(){x(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});x(this,"_borderInfo$",new Be.BehaviorSubject(this._borderInfo));x(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function Ke(t,e){const{startRow:n,startColumn:o,endRow:r,endColumn:i}=t;for(let a=n;a<=r;a++)for(let c=o;c<=i;c++)e(a,c)}const Rn={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(Ue);return a.setType(n),a.setColor(o),a.setStyle(r),i.executeCommand(xe.id)}},pn={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(Ue).setType(e.value),n.executeCommand(xe.id)}},Mn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get(Ue).setStyle(e.value),n.executeCommand(xe.id)}},wn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get(Ue).setColor(e.value),n.executeCommand(xe.id)}},xe={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(exports.SelectionManagerService),i=t.get(Ue),a=r.getSelectionRanges(),c=o.getCurrentUniverSheetInstance(),u=c.getUnitId(),l=c.getActiveSheet(),d=l.getSheetId(),m=l.getConfig().mergeData;if(!(a!=null&&a.length))return!1;const{style:g,color:h,type:S,activeBorderType:I}=i.getBorderInfo();if(!I)return!1;const v=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,C=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,R=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,U=S===s.BorderType.RIGHT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,p=S===s.BorderType.VERTICAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,M=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,T=S.indexOf("tlbr")>-1,_=S.indexOf("tlbc")>-1,O=S.indexOf("tlmr")>-1,A=S.indexOf("bltr")>-1,k=S.indexOf("mltr")>-1,X=S.indexOf("bctr")>-1,f=a[0],W={startRow:f.startRow-1,startColumn:f.startColumn,endRow:f.startRow-1,endColumn:f.endColumn},j={startRow:f.startRow,startColumn:f.startColumn-1,endRow:f.endRow,endColumn:f.startColumn-1},H={startRow:f.endRow+1,startColumn:f.startColumn,endRow:f.endRow+1,endColumn:f.endColumn},Ie={startRow:f.startRow,startColumn:f.endColumn+1,endRow:f.endRow,endColumn:f.endColumn+1},he={startRow:f.startRow,startColumn:f.startColumn,endRow:f.startRow,endColumn:f.endColumn},be={startRow:f.startRow,startColumn:f.startColumn,endRow:f.endRow,endColumn:f.startColumn},Ye={startRow:f.endRow,startColumn:f.startColumn,endRow:f.endRow,endColumn:f.endColumn},z={startRow:f.startRow,startColumn:f.endColumn,endRow:f.endRow,endColumn:f.endColumn},w=new s.ObjectMatrix,N={s:g,cl:{rgb:h}},ce=(D,b)=>{let P=null;return m.forEach(J=>{s.Rectangle.intersects(J,{startColumn:b,endColumn:b,startRow:D,endRow:D})&&(P=J)}),P};function F(D,b,P){D.startRow<0||D.startColumn<0||Ke(D,(J,oe)=>{var y,Ve;const Z=ce(J,oe);let Q=b;if(Z){if(P){const re=s.Tools.deepClone((y=w.getValue(Z.startRow,Z.startColumn))==null?void 0:y.s);Q=re!=null&&re.bd?Object.assign(re.bd,b):b}w.setValue(Z.startRow,Z.startColumn,{s:{bd:Q}})}else{if(P){const re=s.Tools.deepClone((Ve=w.getValue(J,oe))==null?void 0:Ve.s);Q=re!=null&&re.bd?Object.assign(re.bd,b):b}w.setValue(J,oe,{s:{bd:Q}})}})}v&&F(he,{t:s.Tools.deepClone(N)},!0),R&&F(Ye,{b:s.Tools.deepClone(N)},!0),C&&F(be,{l:s.Tools.deepClone(N)},!0),U&&F(z,{r:s.Tools.deepClone(N)},!0),T?F(f,{tl_br:s.Tools.deepClone(N)},!0):F(f,{tl_br:null},!0),_?F(f,{tl_bc:s.Tools.deepClone(N)},!0):F(f,{tl_bc:null},!0),O?F(f,{tl_mr:s.Tools.deepClone(N)},!0):F(f,{tl_mr:null},!0),A?F(f,{bl_tr:s.Tools.deepClone(N)},!0):F(f,{bl_tr:null},!0),k?F(f,{ml_tr:s.Tools.deepClone(N)},!0):F(f,{ml_tr:null},!0),X?F(f,{bc_tr:s.Tools.deepClone(N)},!0):F(f,{bc_tr:null},!0),p&&Ke(f,(D,b)=>{var J,oe,Z,Q;const P=ce(D,b);if(P){if(P.endColumn!==f.endColumn){const y=(J=w.getValue(P.startRow,P.startColumn))==null?void 0:J.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{r:s.Tools.deepClone(N)}):{r:s.Tools.deepClone(N)}}})}if(P.startColumn!==f.startColumn){const y=(oe=w.getValue(P.startRow,P.startColumn))==null?void 0:oe.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{l:s.Tools.deepClone(N)}):{l:s.Tools.deepClone(N)}}})}}else{if(b!==f.endColumn){const y=(Z=w.getValue(D,b))==null?void 0:Z.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{r:s.Tools.deepClone(N)}):{r:s.Tools.deepClone(N)}}})}if(b!==f.startColumn){const y=(Q=w.getValue(D,b))==null?void 0:Q.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{l:s.Tools.deepClone(N)}):{l:s.Tools.deepClone(N)}}})}}}),M&&Ke(f,(D,b)=>{var J,oe,Z,Q;const P=ce(D,b);if(P){if(P.endRow!==f.endRow){const y=(J=w.getValue(P.startRow,P.startColumn))==null?void 0:J.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{b:s.Tools.deepClone(N)}):{b:s.Tools.deepClone(N)}}})}if(P.startRow!==f.startRow){const y=(oe=w.getValue(P.startRow,P.startColumn))==null?void 0:oe.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{t:s.Tools.deepClone(N)}):{t:s.Tools.deepClone(N)}}})}}else{if(D!==f.endRow){const y=(Z=w.getValue(D,b))==null?void 0:Z.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{b:s.Tools.deepClone(N)}):{b:s.Tools.deepClone(N)}}})}if(D!==f.startRow){const y=(Q=w.getValue(D,b))==null?void 0:Q.s;w.setValue(D,b,{s:{bd:y!=null&&y.bd?Object.assign(y.bd,{t:s.Tools.deepClone(N)}):{t:s.Tools.deepClone(N)}}})}}}),!v&&!R&&!C&&!U&&!p&&!M&&(F(W,{b:null}),F(he,{t:null},!0),F(H,{t:null}),F(Ye,{b:null},!0),F(j,{r:null}),F(be,{l:null},!0),F(Ie,{l:null}),F(z,{r:null},!0),Ke(f,(D,b)=>{var J,oe,Z,Q,y,Ve,re,$t;const P=ce(D,b);if(P){if(P.endColumn!==f.endColumn){const E=(J=w.getValue(P.startRow,P.startColumn))==null?void 0:J.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:null}):{r:null}}})}if(P.startColumn!==f.startColumn){const E=(oe=w.getValue(P.startRow,P.startColumn))==null?void 0:oe.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:null}):{l:null}}})}if(P.endRow!==f.endRow){const E=(Z=w.getValue(P.startRow,P.startColumn))==null?void 0:Z.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:null}):{b:null}}})}if(P.startRow!==f.startRow){const E=(Q=w.getValue(P.startRow,P.startColumn))==null?void 0:Q.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:null}):{t:null}}})}}else{if(b!==f.endColumn){const E=(y=w.getValue(D,b))==null?void 0:y.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:null}):{r:null}}})}if(b!==f.startColumn){const E=(Ve=w.getValue(D,b))==null?void 0:Ve.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:null}):{l:null}}})}if(D!==f.endRow){const E=(re=w.getValue(D,b))==null?void 0:re.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:null}):{b:null}}})}if(D!==f.startRow){const E=($t=w.getValue(D,b))==null?void 0:$t.s;w.setValue(D,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:null}):{t:null}}})}}}));const Ct={unitId:u,subUnitId:d,cellValue:w.getData()},Xn=ye(t,Ct);return e.syncExecuteCommand(G.id,Ct)?(n.pushUndoRedo({unitID:u,undoMutations:[{id:G.id,params:Xn}],redoMutations:[{id:G.id,params:Ct}]}),!0):!1}},Ao=(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}},Ee={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 c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},Po=(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}},Oe={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 c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Ot={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},c=Po(t,a),u={unitId:n,subUnitId:o,pluginName:K,selections:r.map(g=>({range:g,primary:ae(g,i),style:null}))},l={unitId:n,subUnitId:o,pluginName:K,selections:_n(r).map(g=>({range:g,primary:ae(g,i),style:null}))},d=t.get(s.ICommandService);return s.sequenceExecute([{id:Oe.id,params:a},{id:q.id,params:u}],d).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Ee.id,params:c},{id:q.id,params:l}],redoMutations:[{id:Oe.id,params:a},{id:q.id,params:u}]}),!0}},yn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async t=>{var l;const n=(l=t.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const r=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u=n.map(d=>i.getHiddenCols(d.startColumn,d.endColumn)).flat();return t.get(s.ICommandService).executeCommand(Ot.id,{unitId:a,subUnitId:c,ranges:u})}},Un={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async t=>{var h;const n=(h=t.get(exports.SelectionManagerService).getSelections())==null?void 0:h.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(),c=i.getSheetId(),u={unitId:a,subUnitId:c,ranges:n},l={unitId:a,subUnitId:c,pluginName:K,selections:_n(n).map(S=>({range:S,primary:ae(S,i),style:null}))},d={unitId:a,subUnitId:c,pluginName:K,selections:n.map(S=>({range:S,primary:ae(S,i),style:null}))},m=t.get(s.ICommandService);if(s.sequenceExecute([{id:Ee.id,params:u},{id:q.id,params:l}],m).result){const S=t.get(s.IUndoRedoService),I=Ao(t,u);return S.pushUndoRedo({unitID:a,undoMutations:[{id:Oe.id,params:I},{id:q.id,params:d}],redoMutations:[{id:Ee.id,params:u},{id:q.id,params:l}]}),!0}return!1}};function _n(t){return ko(t).map(n=>{const o=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:o,endColumn:o}})}function ko(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 At=(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}},Se={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:c,ySplit:u,xSplit:l}=e;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:l},!0}},bn={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(),c=r.getUniverSheetInstance(i);if(!c)return!1;const u=c.getSheetBySheetId(a);if(!u)return!1;const{startColumn:l,startRow:d,xSplit:m,ySplit:g}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const h={unitId:i,subUnitId:a,...e},S=At(t,h);return n.syncExecuteCommand(Se.id,h)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Se.id,params:S}],redoMutations:[{id:Se.id,params:h}]}),!0):!1}},No={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 u={unitId:r,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=At(t,u);return e.syncExecuteCommand(Se.id,u)?(n.pushUndoRedo({unitID:r,undoMutations:[{id:Se.id,params:l}],redoMutations:[{id:Se.id,params:u}]}),!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(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),{value:c,range:u,unitId:l=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,m=u?[u]:i.getSelectionRanges();if(!m||!m.length)return!1;const g=new s.ObjectMatrix;let h;if(s.Tools.isArray(c))for(let p=0;p<m.length;p++){const{startRow:M,startColumn:T,endRow:_,endColumn:O}=m[p];for(let A=0;A<=_-M;A++)for(let k=0;k<=O-T;k++)g.setValue(A+M,k+T,c[A][k])}else if(s.isICellData(c))for(let p=0;p<m.length;p++){const{startRow:M,startColumn:T}=m[p];g.setValue(M,T,c)}else h=c;const S={subUnitId:d,unitId:l,cellValue:h??g.getMatrix()},I=ye(t,S);if(!a.fetchThroughInterceptors(De.PERMISSION)(null,{id:ze.id,params:S}))return!1;const v=n.syncExecuteCommand(G.id,S),{undos:C,redos:R}=a.onCommandExecute({id:ze.id,params:{...S,range:m}}),U=await s.sequenceExecute([...R],n);return v&&U.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:G.id,params:I},...C],redoMutations:[{id:G.id,params:S},...R]}),!0):!1}},xo=(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-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 c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},Lo=(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-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 c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Pt={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),c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),u={unitId:n,subUnitId:o,ranges:r},l=xo(t,u),d={unitId:n,subUnitId:o,pluginName:K,selections:r.map(h=>({range:h,primary:ae(h,c),style:null}))},m={unitId:n,subUnitId:o,pluginName:K,selections:En(r).map(h=>({range:h,primary:ae(h,c),style:null}))};return s.sequenceExecute([{id:Ae.id,params:u},{id:q.id,params:d}],i).result&&a.pushUndoRedo({unitID:n,undoMutations:[{id:Pe.id,params:l},{id:q.id,params:m}],redoMutations:[{id:Ae.id,params:u},{id:q.id,params:d}]}),!0}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async t=>{var l;const e=t.get(exports.SelectionManagerService),n=t.get(s.IUniverInstanceService),o=(l=e.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.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(),c=i.getSheetId(),u=o.map(d=>i.getHiddenRows(d.startRow,d.endRow)).flat();return t.get(s.ICommandService).executeCommand(Pt.id,{unitId:a,subUnitId:c,ranges:u})}},Dn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async t=>{var I;const e=t.get(exports.SelectionManagerService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=(I=e.getSelections())==null?void 0:I.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.ROW);if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:a,subUnitId:c,ranges:i},m={unitId:a,subUnitId:c,pluginName:K,selections:En(i).map(v=>({range:v,primary:ae(v,l),style:null}))},g={unitId:a,subUnitId:c,pluginName:K,selections:i.map(v=>({range:v,primary:ae(v,l),style:null}))},h=Lo(t,d);return s.sequenceExecute([{id:Pe.id,params:d},{id:q.id,params:m}],n).result&&o.pushUndoRedo({unitID:a,undoMutations:[{id:Ae.id,params:h},{id:q.id,params:g}],redoMutations:[{id:Pe.id,params:d},{id:q.id,params:m}]}),!0}};function En(t){return Vo(t).map(n=>{const o=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:o,endRow:o}})}function Vo(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 Y={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,c=t.get(s.ICommandService),u=t.get(s.IUndoRedoService),l=t.get(exports.SelectionManagerService),d=i?[i]:l.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=n.getUniverSheetInstance(o);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const h=new s.ObjectMatrix;if(s.Tools.isArray(a.value))for(let p=0;p<d.length;p++){const{startRow:M,endRow:T,startColumn:_,endColumn:O}=d[p];for(let A=0;A<=T-M;A++)for(let k=0;k<=O-_;k++)h.setValue(A+M,k+_,{s:{[a.type]:a.value[A][k]}})}else for(let p=0;p<d.length;p++){const{startRow:M,endRow:T,startColumn:_,endColumn:O}=d[p],A={s:{[a.type]:a.value}};for(let k=M;k<=T;k++)for(let X=_;X<=O;X++)h.setValue(k,X,A)}const S={subUnitId:r,unitId:o,cellValue:h.getMatrix()},I=ye(t,S),v=c.syncExecuteCommand(G.id,S),{undos:C,redos:R}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Y.id,params:e}),U=s.sequenceExecute([...R],c);return v&&U.result?(u.pushUndoRedo({unitID:o,undoMutations:[{id:G.id,params:I},...C],redoMutations:[{id:G.id,params:S},...R]}),!0):!1}},Bo={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async t=>{const e=t.get(exports.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(Y.id,a)}},Wo={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async t=>{const e=t.get(exports.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(Y.id,r)}},jo={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async t=>{const e=t.get(exports.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(Y.id,r)}},Fo={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async t=>{const e=t.get(exports.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(Y.id,r)}};s.CommandType.COMMAND;const Ho={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(Y.id,o)}},$o={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(Y.id,o)}},On={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(Y.id,o)}},An={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(Y.id,n)}},Pn={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(Y.id,o)}},kn={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(Y.id,n)}},Nn={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(Y.id,o)}},xn={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(Y.id,o)}},Ln={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(Y.id,o)}},Vn={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(Y.id,r)}},zo=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},We={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}},Bn={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(),c=r.getUniverSheetInstance(i);if(!c||!c.getSheetBySheetId(a))return!1;const l={color:e.value,unitId:i,subUnitId:a},d=zo(t,l);return n.syncExecuteCommand(We.id,l)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:d}],redoMutations:[{id:We.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}},kt={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)}},Nt=(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(),c=e.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=a.getColumnOrCreate(d);i[d]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},me={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(),c=e.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=a.getColumnOrCreate(d);typeof e.colWidth=="number"?m.w=e.colWidth:m.w=e.colWidth[d-l.startColumn]??i}}return!0}},xt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections();if(!(o!=null&&o.length))return!1;const r=t.get(s.ICommandService),i=t.get(s.IUndoRedoService),c=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),l=c.getUnitId(),d=u.getSheetId(),{anchorCol:m,deltaX:g}=e,S=u.getColumnWidth(m)+g,I=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,v=o.filter(O=>O.range.rangeType===s.RANGE_TYPE.COLUMN),C=I?s.RANGE_TYPE.ALL:v.some(({range:O})=>{const{startColumn:A,endColumn:k}=O;return A<=m&&m<=k})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let R;if(C===s.RANGE_TYPE.ALL){const O=u.getRowCount(),A=new Array(u.getColumnCount()).fill(void 0).map((k,X)=>({startRow:0,endRow:O-1,startColumn:X,endColumn:X}));R={subUnitId:d,unitId:l,colWidth:S,ranges:A}}else C===s.RANGE_TYPE.COLUMN?R={subUnitId:d,unitId:l,ranges:v.map(O=>s.Rectangle.clone(O.range)),colWidth:S}:R={subUnitId:d,unitId:l,colWidth:S,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:m,endColumn:m}]};const U=Nt(t,R),p=r.syncExecuteCommand(me.id,R),{undos:M,redos:T}=t.get(exports.SheetInterceptorService).onCommandExecute({id:xt.id,params:R}),_=s.sequenceExecute([...T],r);return p&&_.result&&i.pushUndoRedo({unitID:l,undoMutations:[{id:me.id,params:U},...M],redoMutations:[{id:me.id,params:R},...T]}),!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(t,e)=>{const n=t.get(exports.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 c=i.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:a,colWidth:e.value},d=Nt(t,l),m=o.syncExecuteCommand(me.id,l),{undos:g,redos:h}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Lt.id,params:l}),S=s.sequenceExecute([...h],o);return m&&S.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:me.id,params:d},...g],redoMutations:[{id:me.id,params:l},...h]}),!0):!1}},Wn=(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()}},ve={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}},jn={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 c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(c=e.subUnitId??c);const u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||l.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={unitId:a,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=Wn(t,m);return u.getSheets().filter(v=>v.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(i.emit("No visible sheet after you hide this."),!1):n.syncExecuteCommand(ve.id,m)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:g}],redoMutations:[{id:ve.id,params:m}]}),!0):!1}},Go=(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()}},ot={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}},Vt={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(exports.SheetInterceptorService),a=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:a},l=Go(t,u),d=i.onCommandExecute({id:Vt.id,params:e}),m=[{id:ot.id,params:u},...d.redos],g=[...d.undos,{id:ot.id,params:l}];return await s.sequenceExecute(m,n).result?(o.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:m}),!0):!1}},qo=(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}},je={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}},Fn={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(),c=r.getUniverSheetInstance(i);if(!c||!c.getSheetBySheetId(a))return!1;const l={order:e.order,unitId:i,subUnitId:a},d=qo(t,l);return n.syncExecuteCommand(je.id,l)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:d}],redoMutations:[{id:je.id,params:l}]}),!0):!1}},Yo=2e3,Hn=(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const h=l.getRowOrCreate(g);u[g]=h.h}return{unitId:n,subUnitId:o,ranges:r,rowHeight:u}},Bt=(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const h=l.getRowOrCreate(g);u[g]=h.isAutoHeight}return{unitId:n,subUnitId:o,ranges:r,autoHeightInfo:u}},Ko=(t,e)=>{const{unitId:n,subUnitId:o,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(o),u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:n,subUnitId:o,rowsAutoHeightInfo:u}},ge={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,ranges:r,rowHeight:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:m,endRow:g}of r)for(let h=m;h<=g;h++){const S=d.getRowOrCreate(h);typeof i=="number"?S.h=i:S.h=i[h]??l,S.h=Math.min(Yo,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,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:m,endRow:g}of r)for(let h=m;h<=g;h++){const S=d.getRowOrCreate(h);typeof i=="boolean"?S.isAutoHeight=i:S.isAutoHeight=i[h-m]??l}return!0}},Wt={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),c=a==null?void 0:a.getSheetBySheetId(o);if(!c||!a)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},$n={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections();if(!(o!=null&&o.length))return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),a=i.getActiveSheet(),c=i.getUnitId(),u=a.getSheetId(),{anchorRow:l,deltaY:d}=e,g=a.getRowHeight(l)+d,h=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,S=o.filter(_=>_.range.rangeType===s.RANGE_TYPE.ROW),I=h?s.RANGE_TYPE.ALL:S.some(({range:_})=>{const{startRow:O,endRow:A}=_;return O<=l&&l<=A})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let v;if(I===s.RANGE_TYPE.ALL){const _=a.getRowCount(),O=new Array(a.getColumnCount()).fill(void 0).map((A,k)=>({startRow:k,endRow:k,startColumn:0,endColumn:_-1}));v={subUnitId:u,unitId:c,rowHeight:g,ranges:O}}else I===s.RANGE_TYPE.ROW?v={subUnitId:u,unitId:c,ranges:S.map(_=>s.Rectangle.clone(_.range)),rowHeight:g}:v={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=Hn(t,v),R={unitId:c,subUnitId:u,ranges:v.ranges,autoHeightInfo:!1},U=Bt(t,R),p=t.get(s.ICommandService),M=t.get(s.IUndoRedoService);return(await s.sequenceExecute([{id:ge.id,params:v},{id:se.id,params:R}],p)).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:ge.id,params:C},{id:se.id,params:U}],redoMutations:[{id:ge.id,params:v},{id:se.id,params:R}]}),!0):!1}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(t,e)=>{const n=t.get(exports.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 c=i.getCurrentUniverSheetInstance(),u=c.getUnitId(),l=c.getActiveSheet().getSheetId(),d={subUnitId:l,unitId:u,ranges:a,rowHeight:e.value},m=Hn(t,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:!1},h=Bt(t,g);return s.sequenceExecute([{id:ge.id,params:d},{id:se.id,params:g}],o).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ge.id,params:m},{id:se.id,params:h}],redoMutations:[{id:ge.id,params:d},{id:se.id,params:g}]}),!0):!1}},jt={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(exports.SelectionManagerService),i=t.get(s.IUniverInstanceService),a=i.getCurrentUniverSheetInstance().getUnitId(),c=i.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:l}=e??{},d=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={unitId:a,subUnitId:u,ranges:d,autoHeightInfo:!0},g=Bt(t,m),h=n.syncExecuteCommand(se.id,m),{undos:S,redos:I}=t.get(exports.SheetInterceptorService).onCommandExecute({id:jt.id,params:m}),v=s.sequenceExecute([...I],n);return h&&v.result?(o.pushUndoRedo({unitID:a,undoMutations:[{id:se.id,params:g},...S],redoMutations:[{id:se.id,params:m},...I]}),!0):!1}},Gn={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 c=r.getUniverSheetInstance(i);if(!c)return!1;const u=c.getSheetBySheetId(a);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:i,subUnitId:a,hidden:s.BooleanNumber.FALSE},m=Wn(t,d),g=n.syncExecuteCommand(ve.id,d),h={unitId:i,subUnitId:a},S=n.syncExecuteCommand(qe.id,h);return g&&S?(o.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:m}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},Jo=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},Gt=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,c=i;n(a*c,{startRow:o-c+1,endRow:o,startColumn:r,endColumn:r});const u={startRow:o-c+1,endRow:o,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&t.getValue(o,l);l--){c=Math.min(t.getValue(o,l)||0,c),a++;const d=c*a;u.startColumn=l,u.startRow=o-c+1,n(d,u)}}),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),Zo=t=>{const e=[];let n=Gt(t);for(;n.area>0;)n.range&&(e.push(n.range),Xo(t,n.range)),n=Gt(t);return e},Ft=t=>{const e=Jo(t);return Zo(e)},Qo=(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)},{}),er=(t=0)=>{let e=t;return function(){return e++}},_e=$.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,_e);const tr=(t,e)=>{const n=t.get(_e),{values:o,unitId:r,subUnitId:i}=e,a=[],c=[],u=n.getModel(r,i)||void 0;Object.keys(o).forEach(d=>{o[d].ranges.forEach(g=>{s.Range.foreach(g,(h,S)=>{const I=n.getValue(r,i,h,S,u);I?a.push({pattern:I.pattern,type:I.type,row:h,col:S}):c.push({startColumn:S,endColumn:S,startRow:h,endRow:h})})})});const l=[];if(a){const d=rt(r,i,a);Object.keys(d.values).forEach(m=>{const g=d.values[m];g.ranges=Ft(g.ranges)}),l.push({id:It.id,params:rt(r,i,a)})}return c&&l.push({id:Ht.id,params:{unitId:r,subUnitId:i,ranges:c}}),l},It={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(_e),i=e.unitId,a=e.subUnitId,c=Object.keys(n).reduce((u,l)=>{const d=o[l],m=n[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},Ht={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(_e).deleteValues(n,o,r),!0}},nr=(t,e)=>{const n=t.get(_e),{ranges:o,unitId:r,subUnitId:i}=e,a=[],c=n.getModel(r,i)||void 0;o.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=n.getValue(r,i,d,m,c);g&&a.push({pattern:g.pattern,type:g.type,row:d,col:m})})});const u=rt(r,i,a);return Object.keys(u.values).forEach(l=>{const d=u.values[l];d.ranges=Ft(d.ranges)}),[{id:It.id,params:u}]},rt=(t,e,n)=>{const o=Qo(n,"pattern"),r={},i={},a=er();return Object.keys(o).forEach(c=>{const u=o[c],l=u[0],d=a();r[d]={pattern:c,type:l.type},u.forEach(m=>{i[d]||(i[d]={ranges:[]}),i[d].ranges.push(or(m.row,m.col))})}),{unitId:t,subUnitId:e,refMap:r,values:i}},or=(t,e)=>({startRow:t,endRow:t,startColumn:e,endColumn:e}),qn="maxCellsPerSheet",rr=3e6;var sr=Object.defineProperty,ir=Object.getOwnPropertyDescriptor,ar=(t,e,n,o)=>{for(var r=o>1?void 0:o?ir(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&&sr(e,n,r),r},qt=(t,e)=>(n,o)=>e(n,o,t);let Ze=class extends s.Disposable{constructor(t,e){super(),this._commandService=t,this._configService=e,[V,st,yt,it,nn,ut,dt,te,xt,$n,hn,gn,Ne,pe,lt,mt,ne,ln,dn,ke,Re,Sn,fe,Dt,$e,gt,Fe,Tt,He,vt,we,St,Me,Et,Ge,fn,B,kn,An,Pn,Rn,wn,xe,pn,Mn,Un,Ee,Oe,Lt,No,bn,Se,xn,ze,G,zn,Dn,Pe,Ae,yn,Tn,Ot,Pt,Y,Bn,We,On,Vn,Ln,Nn,kt,qe,me,jn,ve,Vt,ot,Fn,je,Wt,ge,jt,se,Gn,It,Ht].forEach(n=>this.disposeWithMe(this._commandService.registerCommand(n))),this._configService.setConfig(qn,rr)}};Ze=ar([s.OnLifecycle(s.LifecycleStages.Starting,Ze),qt(0,s.ICommandService),qt(1,s.IConfigService)],Ze);var cr=Object.defineProperty,ur=Object.getOwnPropertyDescriptor,dr=(t,e,n,o)=>{for(var r=o>1?void 0:o?ur(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&&cr(e,n,r),r},lr=(t,e)=>(n,o)=>e(n,o,t);let Qe=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!==wt.SetFormulaCalculationResultMutation.id)return;const e=t.params,{unitData:n,unitOtherData:o}=e,r=Object.keys(n),i=[];return r.forEach(c=>{const u=n[c];Object.keys(u).forEach(d=>{const m=u[d];if(m==null)return!0;const g={subUnitId:d,unitId:c,cellValue:m.getData()};i.push({id:G.id,params:g})})}),i.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};Qe=dr([s.OnLifecycle(s.LifecycleStages.Ready,Qe),lr(0,s.ICommandService)],Qe);var mr=Object.defineProperty,gr=Object.getOwnPropertyDescriptor,hr=(t,e,n,o)=>{for(var r=o>1?void 0:o?gr(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&&mr(e,n,r),r},Je=(t,e)=>(n,o)=>e(n,o,t);let et=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})})}};et=hr([s.OnLifecycle(s.LifecycleStages.Ready,et),Je(0,s.ICommandService),Je(1,wt.IFeatureCalculationManagerService),Je(2,s.IUniverInstanceService),Je(3,$.Inject(wt.FormulaDataModel))],et);const ue={MoveRangeCommandId:vn,InsertRowCommandId:un,InsertColCommandId:mn,RemoveColCommandId:Cn,RemoveRowCommandId:In,DeleteRangeMoveLeftCommandId:sn,DeleteRangeMoveUpCommandId:an,InsertRangeMoveDownCommandId:_o,InsertRangeMoveRightCommandId:cn};var L=(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))(L||{}),Sr=Object.defineProperty,vr=Object.getOwnPropertyDescriptor,Ir=(t,e,n,o)=>{for(var r=o>1?void 0:o?vr(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&&Sr(e,n,r),r},ft=(t,e)=>(n,o)=>e(n,o,t);const Cr=s.createInterceptorKey("MERGE_REDO"),fr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(n,o,r){super();x(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Cr,MERGE_UNDO:fr}));x(this,"_refRangeManagerMap",new Map);x(this,"_serializer",Rr());x(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const o=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=Yt(this._univerInstanceService),i=Kt(this._univerInstanceService),u=((()=>{switch(n.id){case ue.MoveRangeCommandId:{const m=n;return this._checkRange([m.params.fromRange,m.params.toRange],r,i)}case ue.InsertRowCommandId:{const h={startRow:n.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1};return this._checkRange([h],r,i)}case ue.InsertColCommandId:{const g=n.params.range.startColumn,h={startRow:0,endRow:o.getRowCount()-1,startColumn:g,endColumn:o.getColumnCount()-1};return this._checkRange([h],r,i)}case ue.RemoveRowCommandId:{const h={startRow:n.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1};return this._checkRange([h],r,i)}case ue.RemoveColCommandId:{const g=n.params.range.startColumn,h={startRow:0,endRow:o.getRowCount()-1,startColumn:g,endColumn:o.getColumnCount()-1};return this._checkRange([h],r,i)}case ue.DeleteRangeMoveUpCommandId:case ue.InsertRangeMoveDownCommandId:{const g=n.params.range||Jt(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:o.getRowCount()-1};return this._checkRange([h],r,i)}case ue.DeleteRangeMoveLeftCommandId:case ue.InsertRangeMoveRightCommandId:{const g=n.params.range||Jt(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:o.getColumnCount()-1,endRow:g.endRow};return this._checkRange([h],r,i)}}})()||[]).reduce((m,g)=>{const h=g(n);return m.push(h),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)(u.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:l,undos:d}}})});x(this,"_checkRange",(n,o,r)=>{const i=Xt(o,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(l=>{const d=a.get(l),m=this._serializer.deserialize(l);n.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});x(this,"registerRefRange",(n,o,r,i)=>{const a=r||Yt(this._univerInstanceService),c=i||Kt(this._univerInstanceService),u=Xt(a,c),l=this._serializer.serialize(n);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(o):d.set(l,new Set([o])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(o),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});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})}};exports.RefRangeService=Ir([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),ft(0,$.Inject(exports.SheetInterceptorService)),ft(1,$.Inject(s.IUniverInstanceService)),ft(2,$.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Yt(t){return t.getCurrentUniverSheetInstance().getUnitId()}function Kt(t){return t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function Jt(t){return t.getSelectionRanges()||[]}function Xt(t,e){return`${t}_${e}`}function Rr(){const t=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:n=>{const o=t.reduce((i,a,c)=>(i[String(c)]=a,i),{});return n.split(e).reduce((i,a,c)=>{const u=String(c);return a&&o[u]&&(i[o[u]]=a),i},{})},serialize:n=>t.reduce((o,r,i)=>{const a=n[r];return a!==void 0?`${o}${i>0?e:""}${a}`:`${o}`},"")}}var pr=Object.defineProperty,Mr=Object.getOwnPropertyDescriptor,wr=(t,e,n,o)=>{for(var r=o>1?void 0:o?Mr(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&&pr(e,n,r),r},Te=(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:c,endColumn:u}=n[r];if(e===s.Dimension.ROWS)for(let l=i;l<=a;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};o.push(d)}else if(e===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:i,endRow:a,startColumn:l,endColumn:l};o.push(d)}}n=o}return n}let tt=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 st.id:case it.id:{const n=t._univerInstanceService.getCurrentUniverSheetInstance(),o=n.getUnitId(),r=n.getActiveSheet(),i=r.getSheetId(),a=r.getConfig().mergeData,c=t._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(l=>a.some(d=>s.Rectangle.intersects(d,l)))){const l={unitId:o,subUnitId:i,ranges:c},d=ee(t._injector,l),m=[{id:B.id,params:l}],g=[{id:V.id,params:d}];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 c=a==null?void 0:a.getSheetBySheetId(i);if(!c)return;t.dispose();const u=c.getMergeData(),l=d=>{switch(d.id){case gt.id:{const m=d.params;return this._handleMoveRangeCommand(m,r,i)}case ke.id:{const m=d.params,g=m.unitId||r,h=m.subUnitId||i;return this._handleInsertRowCommand(m,g,h)}case Ne.id:{const m=d.params,g=m.unitId||r,h=m.subUnitId||i;return this._handleInsertColCommand(m,g,h)}case vt.id:{const m=d.params;return this._handleRemoveColCommand(m,r,i)}case St.id:{const m=d.params;return this._handleRemoveRowCommand(m,r,i)}case mt.id:{const m=d.params;return this._handleInsertRangeMoveRightCommand(m,r,i)}case lt.id:{const m=d.params;return this._handleInsertRangeMoveDownCommand(m,r,i)}case dt.id:{const m=d.params;return this._handleDeleteRangeMoveUpCommand(m,r,i)}case ut.id:{const m=d.params;return this._handleDeleteRangeMoveLeftCommand(m,r,i)}}return{redos:[],undos:[]}};u.forEach(d=>{t.add(this._refRangeService.registerRefRange(d,l,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===kt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;e(c,a)}if(r.id===V.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)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=de(this._univerInstanceService,e);if(!o)return this._handleNull();const r=le(o,n);if(!r)return this._handleNull();const i=r.getMergeData(),a=i.filter(g=>s.Rectangle.intersects(g,t.fromRange)),c=i.filter(g=>s.Rectangle.intersects(g,t.toRange)),u=a.map(g=>s.Rectangle.getRelativeRange(g,t.fromRange)).map(g=>s.Rectangle.getPositionRange(g,t.toRange)),l=Yn(u).filter(g=>!i.some(h=>s.Rectangle.equals(g,h))),d=[{id:B.id,params:{unitId:e,subUnitId:n,ranges:a}},{id:B.id,params:{unitId:e,subUnitId:n,ranges:c}},{id:V.id,params:{unitId:e,subUnitId:n,ranges:l}}],m=[{id:B.id,params:{unitId:e,subUnitId:n,ranges:l}},{id:V.id,params:{unitId:e,subUnitId:n,ranges:c}},{id:V.id,params:{unitId:e,subUnitId:n,ranges:a}}];return{redos:d,undos:m}}_handleInsertRowCommand(t,e,n){const o=de(this._univerInstanceService,e);if(!o)return this._handleNull();const r=le(o,n);if(!r)return this._handleNull();const{range:i}=t,{startRow:a,endRow:c}=i,u=s.Tools.deepClone(r.getMergeData()),l=s.Tools.deepClone(r.getMergeData()).map(v=>{const C=c-a+1;return a>v.endRow?v:a<=v.startRow?s.Rectangle.moveVertical(v,C):(v.endRow+=C,v)}),d={unitId:e,subUnitId:n,ranges:u},m=ee(this._injector,d),g={unitId:e,subUnitId:n,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:V.id,params:g}],I=[{id:B.id,params:h},{id:V.id,params:m}];return{redos:S,undos:I}}_handleInsertColCommand(t,e,n){const{range:o}=t,r=de(this._univerInstanceService,e);if(!r)return this._handleNull();const i=le(r,n);if(!i)return this._handleNull();const{startColumn:a,endColumn:c}=o,u=s.Tools.deepClone(i.getMergeData()),l=s.Tools.deepClone(i.getMergeData()).map(v=>{const C=c-a+1;return a>v.endColumn?v:a<=v.startColumn?s.Rectangle.moveHorizontal(v,C):(v.endColumn+=C,v)}),d={unitId:e,subUnitId:n,ranges:u},m=ee(this._injector,d),g={unitId:e,subUnitId:n,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:V.id,params:g}],I=[{id:B.id,params:h},{id:V.id,params:m}];return{redos:S,undos:I}}_handleRemoveColCommand(t,e,n){const o=de(this._univerInstanceService,e);if(!o)return this._handleNull();const r=le(o,n);if(!r)return this._handleNull();const{range:i}=t,a=s.Tools.deepClone(r.getMergeData());for(let h=0;h<a.length;h++){const S=a[h],{startColumn:I,endColumn:v}=S,C=v-I+1,{startColumn:R,endColumn:U}=i,p=U-R+1;if(U<S.startColumn)S.startColumn-=p,S.endColumn-=p;else{if(R>S.endColumn)continue;if(R<=S.startColumn&&U>=S.endColumn)a.splice(h,1),h--;else{const M=s.Rectangle.getIntersects(i,S);M.endColumn-M.startColumn+1===C-1?(a.splice(h,1),h--):S.endColumn-=M.endColumn-M.startColumn+1}}}const c={unitId:e,subUnitId:n,ranges:s.Tools.deepClone(r.getMergeData())},u=ee(this._injector,c),l={unitId:e,subUnitId:n,ranges:a},d=ie(this._injector,l),m=[{id:B.id,params:c},{id:V.id,params:l}],g=[{id:B.id,params:d},{id:V.id,params:u}];return{redos:m,undos:g}}_handleRemoveRowCommand(t,e,n){const{range:o}=t,r=de(this._univerInstanceService,e);if(!r)return this._handleNull();const i=le(r,n);if(!i)return this._handleNull();const a=s.Tools.deepClone(i.getMergeData());for(let h=0;h<a.length;h++){const S=a[h],{startRow:I,endRow:v}=S,C=v-I+1,{startRow:R,endRow:U}=o,p=U-R+1;if(U<I)S.startRow-=p,S.endRow-=p;else{if(R>v)continue;if(R<=I&&U>=v)a.splice(h,1),h--;else{const M=s.Rectangle.getIntersects(o,S);M.endRow-M.startRow+1===C-1?(a.splice(h,1),h--):S.endRow-=M.endRow-M.startRow+1}}}const c={unitId:e,subUnitId:n,ranges:s.Tools.deepClone(i.getMergeData())},u=ee(this._injector,c),l={unitId:e,subUnitId:n,ranges:a},d=ie(this._injector,l),m=[{id:B.id,params:c},{id:V.id,params:l}],g=[{id:B.id,params:d},{id:V.id,params:u}];return{redos:m,undos:g}}_handleInsertRangeMoveRightCommand(t,e,n){const o=de(this._univerInstanceService,e);if(!o)return this._handleNull();const r=le(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxColumns()-1,c=r.getMergeData(),u=[],l=[];c.forEach(S=>{const{startRow:I,endRow:v,startColumn:C,endColumn:R}=i;if(s.Rectangle.intersects({startRow:I,startColumn:C,endRow:v,endColumn:a},S)&&(u.push(S),s.Rectangle.contains({startRow:I,startColumn:C,endRow:v,endColumn:a},S))){const M=R-C+1;l.push({startRow:S.startRow,startColumn:S.startColumn+M,endRow:S.endRow,endColumn:S.endColumn+M})}});const d={unitId:e,subUnitId:n,ranges:u},m=ee(this._injector,d),g={unitId:e,subUnitId:n,ranges:l},h=ie(this._injector,g);return{redos:[{id:B.id,params:d},{id:V.id,params:g}],undos:[{id:V.id,params:m},{id:B.id,params:h}]}}_handleInsertRangeMoveDownCommand(t,e,n){const o=de(this._univerInstanceService,e);if(!o)return this._handleNull();const r=le(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxRows()-1,c=r.getMergeData(),u=[],l=[];c.forEach(v=>{const{startRow:C,startColumn:R,endColumn:U,endRow:p}=i;if(s.Rectangle.intersects({startRow:C,startColumn:R,endRow:a,endColumn:U},v)&&(u.push(v),s.Rectangle.contains({startRow:C,startColumn:R,endRow:a,endColumn:U},v))){const _=p-C+1;l.push({startRow:v.startRow+_,startColumn:v.startColumn,endRow:v.endRow+_,endColumn:v.endColumn})}});const d={unitId:e,subUnitId:n,ranges:u},m=ee(this._injector,d),g={unitId:e,subUnitId:n,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:V.id,params:g}],I=[{id:V.id,params:m},{id:B.id,params:h}];return{redos:S,undos:I}}_handleDeleteRangeMoveUpCommand(t,e,n){const o=de(this._univerInstanceService,e);if(!o)return this._handleNull();const r=le(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxRows()-1,c=r.getMergeData(),u=[],l=[];c.forEach(v=>{const{startRow:C,startColumn:R,endColumn:U,endRow:p}=i;if(s.Rectangle.intersects({startRow:C,startColumn:R,endRow:a,endColumn:U},v)&&(u.push(v),s.Rectangle.contains({startRow:C,startColumn:R,endRow:a,endColumn:U},v))){const _=p-C+1,O=s.Rectangle.moveVertical(v,-_);l.push(O)}});const d={unitId:e,subUnitId:n,ranges:u},m=ee(this._injector,d),g={unitId:e,subUnitId:n,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:V.id,params:g}],I=[{id:V.id,params:m},{id:B.id,params:h}];return{redos:S,undos:I}}_handleDeleteRangeMoveLeftCommand(t,e,n){const o=de(this._univerInstanceService,e);if(!o)return this._handleNull();const r=le(o,n);if(!r)return this._handleNull();const i=t.range,a=r.getMaxColumns()-1,c=r.getMergeData(),u=[],l=[];c.forEach(S=>{const{startRow:I,endRow:v,startColumn:C,endColumn:R}=i;if(s.Rectangle.intersects({startRow:I,startColumn:C,endRow:v,endColumn:a},S)&&(u.push(S),s.Rectangle.contains({startRow:I,startColumn:C,endRow:v,endColumn:a},S))){const M=R-C+1;l.push({startRow:S.startRow,startColumn:S.startColumn-M,endRow:S.endRow,endColumn:S.endColumn-M})}});const d={unitId:e,subUnitId:n,ranges:u},m=ee(this._injector,d),g={unitId:e,subUnitId:n,ranges:l},h=ie(this._injector,g);return{redos:[{id:B.id,params:d},{id:V.id,params:g}],undos:[{id:V.id,params:m},{id:B.id,params:h}]}}_handleNull(){return{redos:[],undos:[]}}};tt=wr([s.OnLifecycle(s.LifecycleStages.Steady,tt),Te(0,$.Inject(s.ICommandService)),Te(1,$.Inject(exports.RefRangeService)),Te(2,$.Inject(s.IUniverInstanceService)),Te(3,$.Inject($.Injector)),Te(4,$.Inject(exports.SheetInterceptorService)),Te(5,$.Inject(exports.SelectionManagerService))],tt);function de(t,e){return e?t.getUniverSheetInstance(e):t.getCurrentUniverSheetInstance()}function le(t,e){return e?t.getSheetBySheetId(e):t.getActiveSheet()}const yr={sheets:{sheetCopy:"(Copy)"}},Kn={sheets:{sheetCopy:"(副本)"}};var Ur=Object.defineProperty,_r=Object.getOwnPropertyDescriptor,br=(t,e,n,o)=>{for(var r=o>1?void 0:o?_r(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&&Ur(e,n,r),r},Xe=(t,e)=>(n,o)=>e(n,o,t);const Tr="SHEET_NUMFMT_PLUGIN";let nt=class extends s.Disposable{constructor(e,n,o,r){super();x(this,"_numfmtModel",new Map);x(this,"_refAliasModel",new Map);x(this,"_modelReplace$",new Be.Subject);x(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,Tr,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,a)=>{const{model:c,refModel:u}=a;if(c){const l=Object.keys(c).reduce((d,m)=>(d.set(m,new s.ObjectMatrix(c[m])),d),new Map);this._numfmtModel.set(i,l)}u&&this._refAliasModel.set(i,new s.RefAlias(u,["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((c,u)=>{const l=n.get(u);return c[u]=l.toJSON(),c},{}),i=o.getValues().filter(c=>c.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 c=this._numfmtModel.get(e)||new Map,u=c.get(n)||new s.ObjectMatrix;c.set(n,u),this._numfmtModel.set(e,c),a=u}if(i)a.setValue(o,r,i);else if(a.realDeleteValue(o,r),!a.getSizeOf()){const u=this._numfmtModel.get(e);u==null||u.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 c=this._refAliasModel.get(e),u=a.getValue(o,r);if(u&&c){const l=c.getValue(u==null?void 0:u.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,(c,u)=>{const l=this.getValue(e,n,c,u,i);if(l&&l.pattern){const d=r.getValue(l.pattern);d&&d.count--}this._setValue(e,n,c,u,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 c=i.getValue(a.pattern);c||(c={count:0,i:this._getUniqueRefId(e),pattern:a.pattern,type:o[0].type},i.addValue(c)),a.ranges.forEach(u=>{s.Range.foreach(u,(l,d)=>{if(r){const m=this.getValue(e,n,l,d,r);if(m&&m.pattern){const g=i.getValue(m.pattern);g&&g.count--}}this._setValue(e,n,l,d,{i:c.i}),c.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)}};nt=br([s.OnLifecycle(s.LifecycleStages.Starting,nt),Xe(0,$.Inject(s.ICommandService)),Xe(1,$.Inject(s.IResourceManagerService)),Xe(2,$.Inject(s.IUniverInstanceService)),Xe(3,$.Inject(s.ILogService))],nt);const Zt="univer.sheet.editable";class Ce extends s.PermissionPoint{constructor(n,o){super();x(this,"id",Zt);x(this,"value",!0);x(this,"unitID");this._unitId=n,this._subUnitId=o,this.unitID=n,this.id=`${Zt}_${n}_${o}`}}var Dr=Object.defineProperty,Er=Object.getOwnPropertyDescriptor,Or=(t,e,n,o)=>{for(var r=o>1?void 0:o?Er(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&&Dr(e,n,r),r},Rt=(t,e)=>(n,o)=>e(n,o,t);exports.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 Ce(n,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(o=>{const r=o.getSheetId(),i=new Ce(n,r);this._permissionService.addPermissionPoint(e.getUnitId(),i)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(o=>{const r=o.getSheetId(),i=new Ce(n,r);this._permissionService.deletePermissionPoint(e.getUnitId(),i.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(De.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(),c=i==null?void 0:i.getSheetId();if(!a||!c)return!1;switch(n.id){case ze.id:return this.getSheetEditable(a,c)}return o()}}))}getEditable$(e,n){const o=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||o.getUnitId(),i=o.getActiveSheet(),a=n||i.getSheetId(),c=new Ce(r,a);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(eo.map(([u,l])=>{const d=u.value&&l.value,m=s.getTypeFromPermissionItemList([u,l]);return{value:d,status:m}}))}getSheetEditable(e,n){const o=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||o.getUnitId(),i=o.getActiveSheet(),a=n||i.getSheetId(),c=new Ce(r,a);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(e,n,o){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=n||r.getUnitId(),a=r.getActiveSheet(),c=o||a.getSheetId(),u=new Ce(i,c);this._permissionService.updatePermissionPoint(i,u.id,e)}};exports.SheetPermissionService=Or([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),Rt(0,$.Inject(s.IPermissionService)),Rt(1,$.Inject(s.IUniverInstanceService)),Rt(2,$.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);var Ar=Object.defineProperty,Pr=Object.getOwnPropertyDescriptor,kr=(t,e,n,o)=>{for(var r=o>1?void 0:o?Pr(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&&Ar(e,n,r),r},pt=(t,e)=>(n,o)=>e(n,o,t);const Nr="sheet";var Mt;exports.UniverSheetsPlugin=(Mt=class extends s.Plugin{constructor(e,n,o,r){super(Nr),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=[[Ue],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[_e,{useClass:nt}],[exports.SheetInterceptorService],[Ze],[tt]];(o=this._config)!=null&&o.notExecuteFormula||n.push([Qe],[et]),n.forEach(r=>{e.add(r)})}},x(Mt,"type",s.PluginType.Sheet),Mt);exports.UniverSheetsPlugin=kr([pt(1,s.ICommandService),pt(2,$.Inject(s.LocaleService)),pt(3,$.Inject($.Injector))],exports.UniverSheetsPlugin);const xr=[ge.id,se.id,Wt.id,me.id,qe.id,He.id,$e.id,Ee.id,Oe.id,Pe.id,Ae.id,ne.id,te.id,pe.id,Re.id,we.id,Me.id],Lr=[G.id,Fe.id,B.id,V.id],Vr=1,Br="rgba(255,255,255, 0.01)";function Wr(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 jr(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:c,endColumn:u}=t.mergeInfo;return{actualRow:e,actualColumn:n,isMerged:o,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function Fr(t,e,n){const o=to.getCellInfoInMergeData(t,e,n),r=s.makeCellRangeToRangeData(o);if(r)return{range:r,primary:o,style:null}}const Le=Number.MAX_SAFE_INTEGER,Hr=(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:L.Delete}),s.Rectangle.contains(o,e)){const c=s.Rectangle.getRelativeRange(e,o),u=s.Rectangle.getPositionRange(c,n);return[{type:L.Set,range:u}]}}else s.Rectangle.intersects(n,e)&&r.push({type:L.Delete});return r},$r=(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:L.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:L.Delete}];if(n.startColumn<=e.startColumn&&n.endColumn>=e.startColumn&&n.endColumn<=e.endColumn){const i={type:L.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:L.HorizontalMove,step:0,length:-(e.endColumn-n.startColumn+1)};o.push(i)}}return o},zr=(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:L.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:L.Delete}];if(n.startRow<=e.startRow&&n.endRow>=e.startRow&&n.endRow<=e.endRow){const i={type:L.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:L.VerticalMove,step:0,length:-(e.endRow-n.startRow+1)};o.push(i)}}return o},Gr=(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:L.VerticalMove,step:n.endRow-n.startRow+1}]:n.startRow>=e.startRow&&n.endRow<=e.endRow?[{type:L.VerticalMove,step:0,length:n.endRow-n.startRow+1}]:s.Rectangle.intersects({...n,endRow:Le},e)?[{type:L.Delete}]:[]:[]},qr=(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:L.HorizontalMove,step:n.endColumn-n.startColumn+1}]:n.startColumn>=e.startColumn&&n.endColumn<=e.endColumn?[{type:L.HorizontalMove,step:0,length:n.endColumn-n.startColumn+1}]:s.Rectangle.intersects({...n,endColumn:Le},e)?[{type:L.Delete}]:[]:[]},Yr=(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:L.VerticalMove,step:n.endRow-n.startRow+1}]:s.Rectangle.intersects({...n,endRow:Le},e)?[{type:L.Delete}]:[]:[]},Kr=(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:L.HorizontalMove,step:n.endColumn-n.startColumn+1}]:s.Rectangle.intersects({...n,endColumn:Le},e)?[{type:L.Delete}]:[]:[]},Jr=(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:L.HorizontalMove,step:-(n.endColumn-n.startColumn+1)}]:s.Rectangle.intersects({...n,endColumn:Le},e)?[{type:L.Delete}]:[]:[]},Xr=(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:L.VerticalMove,step:-(n.endRow-n.startRow+1)}]:s.Rectangle.intersects({...n,endRow:Le},e)?[{type:L.Delete}]:[]:[]},Zr=(t,e)=>{let n={...e};return t.forEach(o=>{switch(o.type){case L.Delete:{n=null;break}case L.HorizontalMove:{if(!n)return;n.startColumn+=o.step,n.endColumn+=o.step+(o.length||0);break}case L.VerticalMove:{if(!n)return;n.startRow+=o.step,n.endRow+=o.step+(o.length||0);break}case L.Set:{n=o.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n};exports.AddMergeUndoMutationFactory=ie;exports.AddWorksheetMergeMutation=V;exports.BorderStyleManagerService=Ue;exports.COMMAND_LISTENER_SKELETON_CHANGE=xr;exports.COMMAND_LISTENER_VALUE_CHANGE=Lr;exports.ClearSelectionAllCommand=st;exports.ClearSelectionContentCommand=yt;exports.ClearSelectionFormatCommand=it;exports.CopySheetCommand=nn;exports.DeleteRangeMoveLeftCommand=ut;exports.DeleteRangeMoveUpCommand=dt;exports.DeleteRangeMutation=te;exports.DeltaColumnWidthCommand=xt;exports.DeltaRowHeightCommand=$n;exports.EffectRefRangId=ue;exports.INTERCEPTOR_POINT=De;exports.INumfmtService=_e;exports.InsertColAfterCommand=hn;exports.InsertColBeforeCommand=gn;exports.InsertColCommand=Ne;exports.InsertColMutation=pe;exports.InsertColMutationUndoFactory=bt;exports.InsertRangeMoveDownCommand=lt;exports.InsertRangeMoveRightCommand=mt;exports.InsertRangeMutation=ne;exports.InsertRowAfterCommand=ln;exports.InsertRowBeforeCommand=dn;exports.InsertRowCommand=ke;exports.InsertRowMutation=Re;exports.InsertRowMutationUndoFactory=_t;exports.InsertSheetCommand=Sn;exports.InsertSheetMutation=fe;exports.InsertSheetUndoMutationFactory=Ut;exports.MAX_CELL_PER_SHEET_KEY=qn;exports.MoveColsCommand=Dt;exports.MoveColsMutation=$e;exports.MoveRangeCommand=gt;exports.MoveRangeMutation=Fe;exports.MoveRowsCommand=Tt;exports.MoveRowsMutation=He;exports.NORMAL_SELECTION_PLUGIN_NAME=K;exports.OperatorType=L;exports.RemoveColCommand=vt;exports.RemoveColMutation=we;exports.RemoveMergeUndoMutationFactory=ee;exports.RemoveNumfmtMutation=Ht;exports.RemoveRowCommand=St;exports.RemoveRowMutation=Me;exports.RemoveSheetCommand=Et;exports.RemoveSheetMutation=Ge;exports.RemoveSheetUndoMutationFactory=tn;exports.RemoveWorksheetMergeCommand=fn;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=kn;exports.ResetTextColorCommand=An;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Br;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Vr;exports.SelectionMoveType=Qt;exports.SetBackgroundColorCommand=Pn;exports.SetBoldCommand=Bo;exports.SetBorderBasicCommand=Rn;exports.SetBorderColorCommand=wn;exports.SetBorderCommand=xe;exports.SetBorderPositionCommand=pn;exports.SetBorderStyleCommand=Mn;exports.SetColHiddenCommand=Un;exports.SetColHiddenMutation=Ee;exports.SetColVisibleMutation=Oe;exports.SetColWidthCommand=Lt;exports.SetFontFamilyCommand=Ho;exports.SetFontSizeCommand=$o;exports.SetFrozenCommand=bn;exports.SetFrozenMutation=Se;exports.SetFrozenMutationFactory=At;exports.SetHorizontalTextAlignCommand=xn;exports.SetItalicCommand=Wo;exports.SetNumfmtMutation=It;exports.SetRangeValuesCommand=ze;exports.SetRangeValuesMutation=G;exports.SetRangeValuesUndoMutationFactory=ye;exports.SetRowHeightCommand=zn;exports.SetRowHiddenCommand=Dn;exports.SetRowHiddenMutation=Pe;exports.SetRowVisibleMutation=Ae;exports.SetSelectedColsVisibleCommand=yn;exports.SetSelectedRowsVisibleCommand=Tn;exports.SetSelectionsOperation=q;exports.SetSpecificColsVisibleCommand=Ot;exports.SetSpecificRowsVisibleCommand=Pt;exports.SetStrikeThroughCommand=Fo;exports.SetStyleCommand=Y;exports.SetTabColorCommand=Bn;exports.SetTabColorMutation=We;exports.SetTextColorCommand=On;exports.SetTextRotationCommand=Vn;exports.SetTextWrapCommand=Ln;exports.SetUnderlineCommand=jo;exports.SetVerticalTextAlignCommand=Nn;exports.SetWorksheetActivateCommand=kt;exports.SetWorksheetActiveOperation=qe;exports.SetWorksheetColWidthMutation=me;exports.SetWorksheetColWidthMutationFactory=Nt;exports.SetWorksheetHideCommand=jn;exports.SetWorksheetHideMutation=ve;exports.SetWorksheetNameCommand=Vt;exports.SetWorksheetNameMutation=ot;exports.SetWorksheetOrderCommand=Fn;exports.SetWorksheetOrderMutation=je;exports.SetWorksheetRowAutoHeightMutation=Wt;exports.SetWorksheetRowAutoHeightMutationFactory=Ko;exports.SetWorksheetRowHeightMutation=ge;exports.SetWorksheetRowIsAutoHeightCommand=jt;exports.SetWorksheetRowIsAutoHeightMutation=se;exports.SetWorksheetShowCommand=Gn;exports.SheetEditablePermission=Ce;exports.alignToMergedCellsBorders=ht;exports.convertPrimaryWithCoordToPrimary=Jn;exports.convertSelectionDataToRange=jr;exports.enUS=yr;exports.factoryRemoveNumfmtUndoMutation=nr;exports.factorySetNumfmtUndoMutation=tr;exports.getAddMergeMutationRangeByType=Yn;exports.getCellAtRowCol=Oo;exports.getNormalSelectionStyle=Wr;exports.getPrimaryForRange=ae;exports.handleDeleteRangeMoveLeft=Jr;exports.handleDeleteRangeMoveUp=Xr;exports.handleDeleteRangeMutation=on;exports.handleIRemoveCol=$r;exports.handleIRemoveRow=zr;exports.handleInsertCol=qr;exports.handleInsertRangeMoveDown=Yr;exports.handleInsertRangeMoveRight=Kr;exports.handleInsertRangeMutation=rn;exports.handleInsertRow=Gr;exports.handleMoveRange=Hr;exports.rangeMerge=Ft;exports.runRefRangeMutations=Zr;exports.transformCellDataToSelectionData=Fr;exports.transformCellsToRange=rt;exports.zhCN=Kn;