@univerjs/sheets 0.1.12 → 0.1.13

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 (84) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +5300 -3785
  3. package/lib/locale/en-US.json +14 -0
  4. package/lib/locale/ru-RU.json +14 -0
  5. package/lib/locale/zh-CN.json +14 -0
  6. package/lib/types/commands/commands/add-range-protection.command.d.ts +8 -0
  7. package/lib/types/commands/commands/delete-range-protection.command.d.ts +9 -0
  8. package/lib/types/commands/commands/set-range-protection.command.d.ts +9 -0
  9. package/lib/types/commands/commands/set-worksheet-permission-points.command.d.ts +7 -0
  10. package/lib/types/commands/mutations/add-range-protection.mutation.d.ts +13 -0
  11. package/lib/types/commands/mutations/add-worksheet-protection.mutation.d.ts +8 -0
  12. package/lib/types/commands/mutations/delete-range-protection.mutation.d.ts +11 -0
  13. package/lib/types/commands/mutations/delete-worksheet-protection.mutation.d.ts +7 -0
  14. package/lib/types/commands/mutations/set-range-protection.mutation.d.ts +12 -0
  15. package/lib/types/commands/mutations/set-worksheet-permission-points.mutation.d.ts +9 -0
  16. package/lib/types/commands/mutations/set-worksheet-protection.mutation.d.ts +9 -0
  17. package/lib/types/controllers/config.d.ts +16 -0
  18. package/lib/types/index.d.ts +29 -5
  19. package/lib/types/model/range-protection-render.model.d.ts +18 -0
  20. package/lib/types/model/range-protection-rule.model.d.ts +48 -0
  21. package/lib/types/render/image/protect-background-img.d.ts +16 -0
  22. package/lib/types/render/range-protection/range-protection.render.d.ts +32 -0
  23. package/lib/types/render/worksheet-protection/worksheet-permission.render.d.ts +13 -0
  24. package/lib/types/services/permission/index.d.ts +1 -3
  25. package/lib/types/services/permission/permission-point/index.d.ts +51 -0
  26. package/lib/types/services/permission/permission-point/range/edit.d.ts +14 -0
  27. package/lib/types/services/permission/permission-point/range/view.d.ts +14 -0
  28. package/lib/types/services/permission/permission-point/workbook/comment.d.ts +12 -0
  29. package/lib/types/services/permission/permission-point/workbook/copy-sheet.d.ts +12 -0
  30. package/lib/types/services/permission/permission-point/workbook/copy.d.ts +12 -0
  31. package/lib/types/services/permission/permission-point/workbook/create-sheet.d.ts +12 -0
  32. package/lib/types/services/permission/permission-point/workbook/delete-sheet.d.ts +12 -0
  33. package/lib/types/services/permission/permission-point/workbook/duplicate.d.ts +12 -0
  34. package/lib/types/services/permission/permission-point/workbook/editable.d.ts +12 -0
  35. package/lib/types/services/permission/permission-point/workbook/export.d.ts +12 -0
  36. package/lib/types/services/permission/permission-point/workbook/hide-sheet.d.ts +12 -0
  37. package/lib/types/services/permission/permission-point/workbook/history.d.ts +12 -0
  38. package/lib/types/services/permission/permission-point/workbook/manage-collaborator.d.ts +12 -0
  39. package/lib/types/services/permission/permission-point/workbook/move-sheet.d.ts +12 -0
  40. package/lib/types/services/permission/permission-point/workbook/print.d.ts +12 -0
  41. package/lib/types/services/permission/permission-point/workbook/rename-sheet.d.ts +12 -0
  42. package/lib/types/services/permission/permission-point/workbook/share.d.ts +12 -0
  43. package/lib/types/services/permission/permission-point/workbook/view.d.ts +12 -0
  44. package/lib/types/services/permission/permission-point/worksheet/copy.d.ts +13 -0
  45. package/lib/types/services/permission/permission-point/worksheet/delete-column.d.ts +13 -0
  46. package/lib/types/services/permission/permission-point/worksheet/delete-row.d.ts +13 -0
  47. package/lib/types/services/permission/permission-point/worksheet/edit-extra-object.d.ts +13 -0
  48. package/lib/types/services/permission/permission-point/worksheet/edit.d.ts +13 -0
  49. package/lib/types/services/permission/permission-point/worksheet/filter.d.ts +13 -0
  50. package/lib/types/services/permission/permission-point/worksheet/insert-column.d.ts +13 -0
  51. package/lib/types/services/permission/permission-point/worksheet/insert-hyperlink.d.ts +13 -0
  52. package/lib/types/services/permission/permission-point/worksheet/insert-row.d.ts +13 -0
  53. package/lib/types/services/permission/permission-point/worksheet/manage-collaborator.d.ts +13 -0
  54. package/lib/types/services/permission/permission-point/worksheet/pivot-table.d.ts +13 -0
  55. package/lib/types/services/permission/permission-point/worksheet/select-protected-cells.d.ts +13 -0
  56. package/lib/types/services/permission/permission-point/worksheet/select-un-protected-cells.d.ts +13 -0
  57. package/lib/types/services/permission/permission-point/worksheet/set-cell-style.d.ts +13 -0
  58. package/lib/types/services/permission/permission-point/worksheet/set-cell-value.d.ts +13 -0
  59. package/lib/types/services/permission/permission-point/worksheet/set-column-style.d.ts +13 -0
  60. package/lib/types/services/permission/permission-point/worksheet/set-row-style.d.ts +13 -0
  61. package/lib/types/services/permission/permission-point/worksheet/sort.d.ts +13 -0
  62. package/lib/types/services/permission/permission-point/worksheet/view.d.ts +13 -0
  63. package/lib/types/services/permission/range-permission/range-protection.ref-range.d.ts +35 -0
  64. package/lib/types/services/permission/range-permission/range-protection.service.d.ts +11 -0
  65. package/lib/types/services/permission/range-permission/util.d.ts +7 -0
  66. package/lib/types/services/permission/type.d.ts +19 -0
  67. package/lib/types/{locale → services/permission/workbook-permission}/index.d.ts +1 -3
  68. package/lib/types/services/permission/workbook-permission/util.d.ts +5 -0
  69. package/lib/types/services/permission/workbook-permission/workbook-permission.service.d.ts +8 -0
  70. package/lib/types/services/permission/worksheet-permission/index.d.ts +19 -0
  71. package/lib/types/services/permission/worksheet-permission/type.d.ts +12 -0
  72. package/lib/types/services/permission/worksheet-permission/utils.d.ts +6 -0
  73. package/lib/types/services/permission/worksheet-permission/worksheet-permission-point.model.d.ts +18 -0
  74. package/lib/types/services/permission/worksheet-permission/worksheet-permission-render.service.d.ts +10 -0
  75. package/lib/types/services/permission/worksheet-permission/worksheet-permission-rule.model.d.ts +36 -0
  76. package/lib/types/services/permission/worksheet-permission/worksheet-permission.service.d.ts +22 -0
  77. package/lib/types/services/ref-range/ref-range.service.d.ts +1 -1
  78. package/lib/types/services/ref-range/util.d.ts +11 -1
  79. package/lib/types/sheets-plugin.d.ts +11 -3
  80. package/lib/umd/index.js +2 -2
  81. package/package.json +14 -10
  82. package/lib/types/services/permission/permission-point.d.ts +0 -10
  83. package/lib/types/services/permission/sheet-permission.service.d.ts +0 -16
  84. package/lib/types/services/permission/tool.d.ts +0 -3
package/lib/umd/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(h,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/engine-render"],s):(h=typeof globalThis<"u"?globalThis:h||self,s(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,s,z,ke,ne,an,ko){"use strict";var zr=Object.defineProperty;var qr=(h,s,z)=>s in h?zr(h,s,{enumerable:!0,configurable:!0,writable:!0,value:z}):h[s]=z;var W=(h,s,z)=>(qr(h,typeof s!="symbol"?s+"":s,z),z);var yt;var Ao=Object.defineProperty,Vo=Object.getOwnPropertyDescriptor,Lo=(n,t,o,e)=>{for(var r=e>1?void 0:e?Vo(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ao(t,o,r),r},Bo=(n,t)=>(o,e)=>t(o,e,n);const X="normalSelectionPluginName";var un=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(un||{});h.SelectionManagerService=class{constructor(t){W(this,"_selectionInfo",new Map);W(this,"_currentSelection",null);W(this,"_selectionMoveStart$",new ke.Subject);W(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());W(this,"_selectionMoving$",new ke.Subject);W(this,"selectionMoving$",this._selectionMoving$.asObservable());W(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));W(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());W(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=X,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:o},e)=>t.some(({range:r},a)=>e===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:o,unitId:e,sheetId:r}=t;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(e))==null?void 0:i.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[0]}_getLastByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[o.length-1]}_addByParam(t,o=!0){const{pluginName:e,unitId:r,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const u=this._selectionInfo.get(e);u.has(r)||u.set(r,new Map);const d=u.get(r);if(!d.has(a))d.set(a,[...i]);else{let c=d.get(a);c==null&&(c=[],d.set(a,c)),c.push(...i)}o&&this._refresh({pluginName:e,unitId:r,sheetId:a})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:r,selectionDatas:a}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(e)||i.set(e,new Map);const u=i.get(e);if(!u.has(r))u.set(r,a);else{let d=u.get(r);d==null&&(d=[],u.set(r,d)),d.splice(0,d.length,...a)}}_clearByParam(t){const o=this._getSelectionDatas(t);o==null||o.splice(0),this._refresh(t)}_removeByParam(t,o){const e=this._getSelectionDatas(o);e==null||e.splice(t,1),this._refresh(o)}},h.SelectionManagerService=Lo([Bo(0,z.Inject(s.ThemeService))],h.SelectionManagerService);const Wo=s.createInterceptorKey("CELL_CONTENT"),jo=s.createInterceptorKey("ROW_FILTERED"),Qe={CELL_CONTENT:Wo,ROW_FILTERED:jo};var Fo=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$o=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ho(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Fo(t,o,r),r},Go=(n,t)=>(o,e)=>t(o,e,n);h.SheetInterceptorService=class extends s.Disposable{constructor(o){super();W(this,"_interceptorsByName",new Map);W(this,"_commandInterceptors",[]);W(this,"_workbookDisposables",new Map);W(this,"_worksheetDisposables",new Map);this._univerInstanceService=o,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(Qe.CELL_CONTENT,{priority:-1,handler(e,r){const a=r.worksheet.getCellRaw(r.row,r.col);return e?{...a,...e}:a}})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(r=>r.getMutations(o));return{preUndos:e.map(r=>{var a;return(a=r.preUndos)!=null?a:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var a;return(a=r.preRedos)!=null?a:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(o,e){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(e),this._interceptorsByName.set(r,a.sort((i,u)=>{var d,c;return((d=u.priority)!=null?d:0)-((c=i.priority)!=null?c:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),e)))}fetchThroughInterceptors(o){const e=o,r=this._interceptorsByName.get(e);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const e=new s.DisposableCollection,r=o.getUnitId(),a=this,i=u=>{const d=u.getSheetId();u.__interceptViewModel(c=>{const l=new s.DisposableCollection;a._worksheetDisposables.set(dn(r,u),l),l.add(c.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(Qe.CELL_CONTENT)(u.getCellRaw(m,g),{unitId:r,subUnitId:d,row:m,col:g,worksheet:u,workbook:o})}})),l.add(c.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(Qe.ROW_FILTERED)(!1,{unitId:r,subUnitId:d,row:m,workbook:o,worksheet:u})}}))})};o.getSheets().forEach(u=>i(u)),e.add(s.toDisposable(o.sheetCreated$.subscribe(u=>i(u)))),e.add(s.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(r,u)))),e.add(s.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(r,u)))),this._workbookDisposables.set(r,e)}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const r=dn(o,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}},h.SheetInterceptorService=$o([s.OnLifecycle(s.LifecycleStages.Starting,h.SheetInterceptorService),Go(0,s.IUniverInstanceService)],h.SheetInterceptorService);function dn(n,t){return`${n}|${t.getSheetId()}`}const Se=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),c=i.getStyles(),l=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,S,v)=>{const f=s.Tools.deepClone(d==null?void 0:d.getValue(g,S))||{},C=c.getStyleByCell(f),I=xo(C,v&&v.s?v.s:null);f.s=I,l.setValue(g,S,zo(f))}),{...t,options:{},cellValue:l.getMatrix()}};function zo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const q={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const u=i.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),c=i.getStyles();return new s.ObjectMatrix(o).forValue((m,g,S)=>{if(!S)d==null||d.setValue(m,g,{});else{const v=d.getValue(m,g)||{},f=S.t?S.t:S.v!==void 0?ln(S.v,S.t):ln(v.v,v.t);if(S.f!==void 0&&(v.f=S.f),S.si!==void 0&&(v.si=S.si),S.p!==void 0&&(v.p=S.p),S.v!==void 0&&(v.v=f===s.CellValueType.NUMBER?Number(S.v):f===s.CellValueType.BOOLEAN?qo(S.v)?1:0:S.v),v.v!==void 0&&(v.t=f),S.s!==void 0){const C=c.getStyleByCell(v);C==null&&delete v.s,typeof S.s=="string"&&(S.s=c.get(S.s));const I=et(C,S.s?S.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=c.setValue(I),!S.p&&v.p&&Xo(v.p,S.s?S.s:null)}S.custom!==void 0&&(v.custom=S.custom),d.setValue(m,g,s.Tools.removeNull(v))}}),!0}};function ln(n,t){return n===null?null:typeof n=="string"?s.isSafeNumeric(n)?(+n==0||+n==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function qo(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function xo(n,t){return Yo(n,t)}function Yo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=Ko(o[e]||{},t[e]):e in o||(o[e]=null);return o}function Ko(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function et(n,t,o=!1){if(t===null)return t;if(t===void 0)return n;const e=s.Tools.deepClone(n)||{};if(e){for(const r in t)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in e&&r==="bd"?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function cn(n,t){return n.some(o=>o.startIndex===t)?cn(n,t+1):t}function Xo(n,t){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const u of n.body.textRuns){const{st:d,ed:c,ts:l={}}=u;if(o<d){const g={st:o,ed:d},S=et({},t,!0);S&&s.Tools.removeNull(S),s.Tools.isEmptyObject(S)||(g.ts=S),e.push(g)}const m=et(l,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),o=cn(r,c)}const a=n.body.dataStream.endsWith(`\r
2
- `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const u={st:o,ed:a},d=et({},t,!0);d&&s.Tools.removeNull(d),s.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}n.body.textRuns=s.normalizeTextRuns(e)}const tt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],S={subUnitId:c,unitId:u,cellValue:Jo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:tt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Jo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.clone()}const _t={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:c,unitId:u,cellValue:Zo(l)},g=Se(n,m),S=a.onCommandExecute({id:_t.id}),v=[{id:q.id,params:m},...S.redos],f=[...S.undos,{id:q.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:u,undoMutations:f,redoMutations:v}),!0):!1}};function Zo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}const nt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],S={subUnitId:c,unitId:u,cellValue:Qo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:nt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{s:null})}),t.clone()}const bt=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),_e={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}};function mn(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function B(n,t={}){const{unitId:o,subUnitId:e}=t,r=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const a=e?r.getSheetBySheetId(e):r.getActiveSheet();return a?{worksheet:a,workbook:r,unitId:r.getUnitId(),subUnitId:a.getSheetId()}:null}function ot(n,t){const{unitId:o,subUnitId:e}=t,r=n.getUniverSheetInstance(o);if(!r)return null;const a=r.getSheetBySheetId(e);return a?{worksheet:a,workbook:r}:null}const gn=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=ot(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:u}=a,d=u.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:d,unitId:r}},Ae={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=o.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},hn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=B(r,t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c}=i,l=s.Tools.deepClone(d.getConfig());l.name+=a.t("sheets.tabs.sheetCopy"),l.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(d)+1,sheet:l,unitId:c},S=bt(n,g);return o.syncExecuteCommand(_e.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ae.id,params:S}],redoMutations:[{id:_e.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),c=u.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),new s.ObjectMatrix(e.value).forValue((l,m,g)=>{c.setValue(l,m,g)}),!0}},$={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(h.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return o.replace(e,r),!0}};function ze(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((i,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const c={startRow:i,startColumn:u,endRow:i+d.rowSpan-1,endColumn:u+d.colSpan-1};s.Rectangle.contains(n,c)||r.push(c)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?ze(a,t,o):a}function es(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,u)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:a+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:i+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ts(n,t,o){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function oe(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const fe=(n,t,o)=>({id:$.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:X,selections:[{range:n,primary:oe(n,o)}]}});function ns(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}function os(n){function t(o,e){function r(a){for(let i=a.startRow;i<=a.endRow;i++)if(!n.getRowFiltered(i))for(let u=a.startColumn;u<=a.endColumn;u++)e(i,u,a)}r(o)}return{forOperableEach:t}}const vn="sheet.command.move-range",st={type:s.CommandType.COMMAND,id:vn,handler:(n,t)=>{var I,R;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=n.get(s.LocaleService),u=B(r);if(!u)return!1;const{worksheet:d,subUnitId:c,unitId:l}=u,m=rt(n,{unitId:l,subUnitId:c,range:t.fromRange},{unitId:l,subUnitId:c,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const S=n.get(h.SheetInterceptorService).onCommandExecute({id:st.id,params:{...t}}),v=[...(I=S.preRedos)!=null?I:[],...m.redos,...S.redos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.toRange,primary:oe(t.toRange,d)}]}}],f=[...(R=S.preUndos)!=null?R:[],...m.undos,...S.undos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.fromRange,primary:oe(t.fromRange,d)}]}}];return s.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:v}),!0):!1}};function rt(n,t,o,e=!1){const r=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:c,subUnitId:l}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(d),S=g==null?void 0:g.getSheetBySheetId(l),v=g==null?void 0:g.getSheetBySheetId(u),f=S==null?void 0:S.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(S&&v&&f&&C){const I=ze(c,S,!1);if(!s.Rectangle.equals(c,I)&&!e)return null;const R=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{R.setValue(_,N,C.getValue(_,N)),p.setValue(_,N,null)});const w=new s.ObjectMatrix;s.Range.foreach(c,(_,N)=>{w.setValue(_,N,f.getValue(_,N))});const M=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{const A=s.cellToRange(_,N),x=s.Rectangle.getRelativeRange(A,i),Y=s.Rectangle.getPositionRange(x,c);M.setValue(Y.startRow,Y.startColumn,C.getValue(_,N))});const y={from:{value:p.getMatrix(),subUnitId:u},to:{value:M.getMatrix(),subUnitId:l},unitId:d},b={from:{value:R.getMatrix(),subUnitId:u},to:{value:w.getMatrix(),subUnitId:l},unitId:d};r.push({id:Ve.id,params:y}),a.push({id:Ve.id,params:b})}return{redos:r,undos:a}}const qe={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r,{subUnitId:t.subUnitId,unitId:t.unitId});if(!u)return!1;const{subUnitId:d,unitId:c}=u,{value:l,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const S=new s.ObjectMatrix;let v;if(s.Tools.isArray(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=0;A<=_-y;A++)for(let x=0;x<=N-b;x++)S.setValue(A+y,x+b,l[A][x])}else if(s.isICellData(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=y;A<=_;A++)for(let x=b;x<=N;x++)S.setValue(A,x,l)}else v=l;const f={subUnitId:d,unitId:c,cellValue:v!=null?v:S.getMatrix()},C=Se(n,f),I=o.syncExecuteCommand(q.id,f),{undos:R,redos:p}=i.onCommandExecute({id:qe.id,params:{...f,range:g}}),w=s.sequenceExecute([...p],o);return I&&w.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}};function Tt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,c=n.get(s.IUniverInstanceService),l=n.get(h.SheetInterceptorService),m=c.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const S=g.getCellMatrix(),v=S.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let p,w;if(u===s.Dimension.COLUMNS){const y=Math.min(i.endRow,v.endRow);let b=0;for(let N=i.startRow;N<=y;N++){const A=S.getRow(N),x=A?s.getArrayLength(A)-1:0;b=Math.max(b,x)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:b};const _=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:p.startColumn+_,endRow:y,endColumn:p.endColumn+_}}else{const y=Math.min(i.endColumn,v.endColumn),b=v.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:y};const _=i.endRow-i.startRow+1;w={startRow:p.startRow+_,startColumn:i.startColumn,endRow:p.endRow+_,endColumn:y}}const M=rt(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:w},!0);M&&(o.push(...M.redos),e.push(...M.undos))}if(Object.entries(d).length===0)for(let p=i.startRow;p<=i.endRow;p++){d[p]||(d[p]={});for(let w=i.startColumn;w<=i.endColumn;w++)d[p][w]=null}const f={subUnitId:a,unitId:r,cellValue:d},C=Se(n,f),{undos:I,redos:R}=l.onCommandExecute({id:qe.id,params:{...f,range:i}});o.push({id:q.id,params:f},...R),e.push({id:q.id,params:C},...I)}return{redo:o,undo:e}}function Et(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u}=t,d=n.get(s.IUniverInstanceService),c=n.get(h.SheetInterceptorService),l=d.getUniverSheetInstance(r),m=l==null?void 0:l.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),S=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:as([i])},f=Se(n,v),C=c.onCommandExecute({id:qe.id,params:v});if(o.push({id:q.id,params:v},...C.redos),e.push(...C.undos,{id:q.id,params:f}),i.startColumn<=S.endColumn||i.startRow<=S.endRow){let I=null,R=null;if(u===s.Dimension.COLUMNS&&i.endColumn<S.endColumn){const p=Math.min(i.endRow,S.endRow);let w=0;for(let y=i.startRow;y<=p;y++){const b=g.getRow(y),_=b?s.getArrayLength(b)-1:0;w=Math.max(w,_)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:w};const M=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:I.startColumn-M,endRow:p,endColumn:I.endColumn-M}}if(u===s.Dimension.ROWS&&i.endRow<S.endRow){const p=Math.min(i.endColumn,S.endColumn),w=S.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:w,endColumn:p};const M=i.endRow-i.startRow+1;R={startRow:I.startRow-M,startColumn:i.startColumn,endRow:I.endRow-M,endColumn:p}}if(I&&R){const p=rt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:R},!0);p&&(o.push(...p.redos),e.push(...p.undos))}}}return{redo:o,undo:e}}function ss(n,t,o,e,r,a){const{startRow:i,endRow:u,startColumn:d,endColumn:c}=t;if(r===s.Dimension.ROWS){const l=u-i+1;for(let m=o;m>=i;m--)for(let g=d;g<=c;g++){const S=n.getValue(m,g);S==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,S)}for(let m=u;m>=i;m--)for(let g=d;g<=c;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const l=c-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const S=n.getValue(m,g);S==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,S)}for(let m=i;m<=u;m++)for(let g=c;g>=d;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function rs(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,c=i-a+1,l=d-u+1;if(r===s.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=u;g<=d;g++){const S=n.getValue(m+c,g);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const S=n.getValue(m,g+l);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}}function as(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const Sn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:Sn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);if(!u)return!1;const{worksheet:d,workbook:c,subUnitId:l,unitId:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const S={range:g,subUnitId:l,unitId:m,shiftDimension:s.Dimension.COLUMNS},v=i.onCommandExecute({id:at.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,c,d)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:m,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},fn="sheet.command.delete-range-move-up",it={type:s.CommandType.COMMAND,id:fn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);if(!u)return!1;const{unitId:d,subUnitId:c,workbook:l,worksheet:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const S={range:g,subUnitId:c,unitId:d,shiftDimension:s.Dimension.ROWS},v=i.onCommandExecute({id:it.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,l,m)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:d,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},Nt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(e);if(d==null)throw new Error("worksheet is null error!");const c=d.getRowManager().getRowData(),l={h:d.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let f=m;f<m+g;f++)a?s.insertMatrixArray(f,(v=a[f-r.startRow])!=null?v:l,c):s.insertMatrixArray(f,l,c);return d.setRowCount(d.getRowCount()+r.endRow-r.startRow+1),d.getCellMatrix().insertRows(r.startRow,g),!0}},Dt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Re={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:u}=t,c=a.getColumnData(),l=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let f=l;f<l+m;f++){const C={w:g,hd:0};u?s.insertMatrixArray(f,(v=u[f-i.startColumn])!=null?v:C,c):s.insertMatrixArray(f,C,c)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},is=(n,t)=>{const r=t.getRowManager().getRowData(),a={},i=n.range,u=s.sliceMatrixArray(i.startRow,i.endRow,r),d=s.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:d}},we={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getRowManager().getRowData();for(let l=a.startRow;l<=a.endRow;l++)r.getRowFiltered(l);const d=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,d,u),r.getCellMatrix().removeRows(a.startRow,d),r.setRowCount(r.getRowCount()-d),!0}},us=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const u=r.getColumnManager().getColumnData(),d={},c=t.range,l=s.sliceMatrixArray(c.startColumn,c.endColumn,u),m=s.concatMatrixArray(d,l);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getColumnManager().getColumnData(),d=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,d,u),r.setColumnCount(r.getColumnCount()-d),r.getCellMatrix().removeColumns(a.startColumn,d),!0}},ds="sheet.command.insert-range-move-down",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=g.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(R.startRow,R.endRow,v.startColumn,v.endColumn).getDataRange().endRow,M=Math.max(w+(v.endRow-v.startRow+1)-R.endRow,0);if(M>0){const Z=v.startRow-1,Q=g.getRowHeight(Z),K={unitId:l,subUnitId:m,range:{startRow:R.endRow+1,endRow:R.endRow+M,startColumn:R.startColumn,endColumn:R.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Ce.id,params:K});const ee=Nt(n,K);C.push({id:we.id,params:ee})}const y={};s.Range.foreach(v,(Z,Q)=>{const K=g.getCell(Z,Q);K&&(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:m,unitId:l,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:ut.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,S,g)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Cn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Cn,handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=m.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(v.startRow,v.endRow,R.startColumn,R.endColumn).getDataRange().endColumn,M=Math.max(w+(v.endColumn-v.startColumn+1)-R.endColumn,0);if(M>0){const Z=v.startColumn-1,Q=m.getColumnWidth(Z),K={unitId:g,subUnitId:S,range:{startRow:R.startRow+1,endRow:R.endRow,startColumn:R.endColumn+1,endColumn:R.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Re.id,params:K});const ee=Dt(n,K);C.push({id:Ie.id,params:ee})}const y={};s.Range.foreach(v,(Z,Q)=>{const K=m.getCell(Z,Q);!K||!K.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:S,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:dt.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,l,m)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o).result?(e.pushUndoRedo({unitID:g,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Rn="sheet.command.insert-row",Le={type:s.CommandType.COMMAND,id:Rn,handler:async(n,t)=>{var w,M;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:c,unitId:l,subUnitId:m}=t,{startRow:g,endRow:S}=d,v=c===s.Direction.UP?g:g-1,f=u.getRowHeight(v),C={unitId:l,subUnitId:m,range:d,rowInfo:new Array(S-g+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},I=Nt(n,C),R=a.onCommandExecute({id:Le.id,params:t});return s.sequenceExecute([{id:Ce.id,params:C},...R.redos,fe(d,i,u)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(w=R.preUndos)!=null?w:[],{id:we.id,params:I},...R.undos],redoMutations:[...(M=R.preRedos)!=null?M:[],{id:Ce.id,params:C},...R.redos]}),!0):!1}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(h.SelectionManagerService).getSelections())==null?void 0:g.map(S=>S.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={};s.Range.foreach(e,(S,v)=>{const f=i.getCell(S,v);!f||!f.s||(l[S]||(l[S]={}),l[S][v]={s:f.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+c-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:l};return n.get(s.ICommandService).executeCommand(Le.id,m)}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(h.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={unitId:u,subUnitId:d,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+c,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Le.id,l)}},pn="sheet.command.insert-col",Be={type:s.CommandType.COMMAND,id:pn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:c}=t,{startColumn:l,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),S=g.getSheetBySheetId(t.subUnitId),v=u===s.Direction.LEFT?l:l-1,f=S.getColumnWidth(v),C={unitId:c,subUnitId:d,range:i,colInfo:new Array(m-l+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},I=Dt(n,C),R=a.onCommandExecute({id:Be.id,params:t});return s.sequenceExecute([...(w=R.preRedos)!=null?w:[],{id:Re.id,params:C},...R.redos,fe(i,g,S)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=R.preUndos)!=null?M:[],{id:Ie.id,params:I},...R.undos].filter(Boolean),redoMutations:[...(y=R.preRedos)!=null?y:[],{id:Re.id,params:C},...R.redos].filter(Boolean)}),!0):!1}},wn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={};s.Range.foreach(e,(g,S)=>{const v=i.getCell(g,S);!v||!v.s||(l[g]||(l[g]={}),l[g][S]={s:v.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+c-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:l};return n.get(s.ICommandService).executeCommand(Be.id,m)}},yn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={unitId:u,subUnitId:d,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+c,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Be.id,l)}},Un={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var v;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=mn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:u,workbook:d}=i;let c=d.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});t?(c=(v=t.index)!=null?v:c,t.sheet?l=t.sheet:(l.id=s.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(l.id=s.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:c,sheet:l,unitId:u},g=bt(n,m);return o.syncExecuteCommand(_e.id,m)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:Ae.id,params:g}],redoMutations:[{id:_e.id,params:m}]}),!0):!1}};function ls(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,u=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+u,startRow:r.startRow+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const be={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const c=r.startRow,l=r.endRow-r.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveRows(c,l,m),!0}};function cs(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,u=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+u,startColumn:r.startColumn+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const Te={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const c=r.startColumn,l=r.endColumn-r.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveColumns(c,l,m),!0}};function ms(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function gs(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const _n="sheet.command.move-rows",Ot={id:_n,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.ROW&&ee.range.startRow<=r&&r<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(ms(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startRow:a,endRow:a+f.endRow-f.startRow},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=ls(n,p),y=a-r<0,b=f.endRow-f.startRow+1,_=y?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Ot.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:be.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:be.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0):!1}},bn="sheet.command.move-cols",Pt={id:bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.COLUMN&&ee.range.startColumn<=r&&r<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(gs(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startColumn:a,endColumn:a+f.endColumn-f.startColumn},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=cs(n,p),M=f.endColumn-f.startColumn+1,_=a-r<0?R:{...R,startColumn:R.startColumn-M,endColumn:R.endColumn-M},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Pt.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:Te.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:Te.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0}},Tn="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startColumn:0,endColumn:Math.max(d.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)d.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[r.startRow,...m.map(_=>_+1)],b=[...m.map(_=>_-1),r.endRow];for(let _=y.length-1;_>=0;_--)y[_]<=b[_]&&g.push({startRow:y[_],endRow:b[_],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const S=[],v=[];g.forEach(y=>{const b={unitId:l,subUnitId:c,range:y},_=d.getCellMatrix().getSlice(y.startRow,y.endRow,0,d.getColumnCount()-1),N={unitId:l,subUnitId:c,cellValue:_.getMatrix()},A=is(b,d);S.push({id:we.id,params:b}),v.unshift({id:Ce.id,params:A},{id:q.id,params:N})});const f=e.onCommandExecute({id:lt.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],...S,...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],...v,...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],...S,...f.redos]}),!0):!1}},En="sheet.command.remove-col",ct={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startRow:0,endRow:Math.max(d.getMaxRows()-1,0)};const m={unitId:l,subUnitId:c,range:r},g=us(n,m),S=d.getCellMatrix().getSlice(0,d.getRowCount()-1,r.startColumn,r.endColumn),v={unitId:l,subUnitId:c,cellValue:S.getMatrix()},f=e.onCommandExecute({id:ct.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],{id:Ie.id,params:m},...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],{id:Re.id,params:g},{id:q.id,params:v},...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],{id:Ie.id,params:m},...f.redos]}),!0):!1}},kt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var R,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=B(r,t);if(!i)return!1;const{unitId:u,subUnitId:d,workbook:c,worksheet:l}=i;if(c.getSheets().length<=1)return!1;const m=c.getSheetIndex(l);c.getConfig().sheetOrder[m+1];const g={subUnitId:d,unitId:u,subUnitName:l.getName()},S=gn(n,g),v=a.onCommandExecute({id:kt.id,params:{unitId:u,subUnitId:d}}),f=[...(R=v.preRedos)!=null?R:[],{id:Ae.id,params:g},...v.redos],C=[...(p=v.preUndos)!=null?p:[],{id:_e.id,params:S},...v.undos];return s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:f}),!0):!1}},me=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},j={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},re=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,u=t.ranges,d=[];for(let c=0;c<u.length;c++)for(let l=i.length-1;l>=0;l--){const m=i[l],g=u[c];s.Rectangle.intersects(m,g)&&d.push(i[l])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let c=i.length-1;c>=0;c--){const l=i[c],m=u[d];s.Rectangle.intersects(l,m)&&i.splice(c,1)}return!0}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(r);if(!i)return!1;const{subUnitId:u,unitId:d,worksheet:c}=i,l={unitId:d,subUnitId:u,ranges:a};let m=!1;const g=c.getConfig().mergeData;if(a.forEach(M=>{g.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const S=re(n,l),v=t.getSelections();if(!(v!=null&&v.length))return!1;const f=s.Tools.deepClone(v),C=s.Tools.deepClone(v),I=C[C.length-1],{startRow:R,startColumn:p}=I.range;return I.primary={startRow:R,startColumn:p,endRow:R,endColumn:p,actualRow:R,actualColumn:p,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:S},{id:$.id,params:{selections:C}}],o)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:j.id,params:S},{id:$.id,params:{selections:f}}],redoMutations:[{id:F.id,params:S},{id:$.id,params:{selections:C}}]}),!0):!1}};class Ee{constructor(){W(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});W(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));W(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mt(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let u=e;u<=a;u++)t(i,u)}const Dn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:a,color:i,style:u}=r,d=n.get(s.ICommandService),c=n.get(Ee);return c.setType(a),c.setColor(i),c.setStyle(u),d.executeCommand(We.id,{unitId:o,subUnitId:e})}},On={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(s.ICommandService);return n.get(Ee).setType(t.value),o.executeCommand(We.id)}},Pn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setStyle(t.value),o.executeCommand(We.id)}},kn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setColor(t.value),o.executeCommand(We.id)}},We={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(Ee),u=B(r,t);if(!u)return!1;const{worksheet:d,unitId:c,subUnitId:l}=u,m=a.getSelectionRanges(),g=d.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:S,color:v,type:f,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=f===s.BorderType.TOP||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,R=f===s.BorderType.LEFT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,p=f===s.BorderType.BOTTOM||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,w=f===s.BorderType.RIGHT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,M=f===s.BorderType.VERTICAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,y=f===s.BorderType.HORIZONTAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,b=f.indexOf("tlbr")>-1,_=f.indexOf("tlbc")>-1,N=f.indexOf("tlmr")>-1,A=f.indexOf("bltr")>-1,x=f.indexOf("mltr")>-1,Y=f.indexOf("bctr")>-1,U=m[0],de={startRow:U.startRow-1,startColumn:U.startColumn,endRow:U.startRow-1,endColumn:U.endColumn},Z={startRow:U.startRow,startColumn:U.startColumn-1,endRow:U.endRow,endColumn:U.startColumn-1},Q={startRow:U.endRow+1,startColumn:U.startColumn,endRow:U.endRow+1,endColumn:U.endColumn},K={startRow:U.startRow,startColumn:U.endColumn+1,endRow:U.endRow,endColumn:U.endColumn+1},ee={startRow:U.startRow,startColumn:U.startColumn,endRow:U.startRow,endColumn:U.endColumn},No={startRow:U.startRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.startColumn},Do={startRow:U.endRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.endColumn},Oo={startRow:U.startRow,startColumn:U.endColumn,endRow:U.endRow,endColumn:U.endColumn},V=new s.ObjectMatrix,G={s:S,cl:{rgb:v}},Ut=(D,T)=>{let L=null;return g.forEach(te=>{s.Rectangle.intersects(te,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&(L=te)}),L};function H(D,T,L){D.startRow<0||D.startColumn<0||mt(D,(te,le)=>{var E,Ze;const se=Ut(te,le);let ie=T;if(se&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(L){const ce=s.Tools.deepClone((E=V.getValue(se.startRow,se.startColumn))==null?void 0:E.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(se.startRow,se.startColumn,{s:{bd:ie}})}else{if(L){const ce=s.Tools.deepClone((Ze=V.getValue(te,le))==null?void 0:Ze.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(te,le,{s:{bd:ie}})}})}I&&(H(de,{b:null}),H(ee,{t:s.Tools.deepClone(G)},!0)),p&&(H(Q,{t:null}),H(Do,{b:s.Tools.deepClone(G)},!0)),R&&(H(Z,{r:null}),H(No,{l:s.Tools.deepClone(G)},!0)),w&&(H(K,{l:null}),H(Oo,{r:s.Tools.deepClone(G)},!0)),b&&H(U,{tl_br:s.Tools.deepClone(G)},!0),_&&H(U,{tl_bc:s.Tools.deepClone(G)},!0),N&&H(U,{tl_mr:s.Tools.deepClone(G)},!0),A&&H(U,{bl_tr:s.Tools.deepClone(G)},!0),x&&H(U,{ml_tr:s.Tools.deepClone(G)},!0),Y&&H(U,{bc_tr:s.Tools.deepClone(G)},!0),M&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(L.startColumn!==U.startColumn){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}else{if(T!==U.endColumn){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(T!==U.startColumn){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}}),y&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endRow!==U.endRow){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(L.startRow!==U.startRow){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}else{if(D!==U.endRow){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(D!==U.startRow){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}}),!I&&!p&&!R&&!w&&!M&&!y&&!b&&!_&&!N&&!A&&!x&&!Y&&(H(de,{b:null}),H(ee,{t:null},!0),H(Q,{t:null}),H(Do,{b:null},!0),H(Z,{r:null}),H(No,{l:null},!0),H(K,{l:null}),H(Oo,{r:null},!0),H(U,{tl_br:null},!0),H(U,{tl_bc:null},!0),H(U,{tl_mr:null},!0),H(U,{bl_tr:null},!0),H(U,{ml_tr:null},!0),H(U,{bc_tr:null},!0),mt(U,(D,T)=>{var te,le,se,ie,E,Ze,ce,Po;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const O=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(L.startColumn!==U.startColumn){const O=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(L.endRow!==U.endRow){const O=(se=V.getValue(L.startRow,L.startColumn))==null?void 0:se.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(L.startRow!==U.startRow){const O=(ie=V.getValue(L.startRow,L.startColumn))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==U.endColumn){const O=(E=V.getValue(D,T))==null?void 0:E.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==U.startColumn){const O=(Ze=V.getValue(D,T))==null?void 0:Ze.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(D!==U.endRow){const O=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(D!==U.startRow){const O=(Po=V.getValue(D,T))==null?void 0:Po.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const rn={unitId:c,subUnitId:l,cellValue:V.getData()},Gr=Se(n,rn);return o.syncExecuteCommand(q.id,rn)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:Gr}],redoMutations:[{id:q.id,params:rn}]}),!0):!1}},hs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},je={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.TRUE)}}return!0}},vs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Fe={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.FALSE)}}return!0}},At={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:r},u=vs(n,i),d={unitId:o,subUnitId:e,pluginName:X,selections:r.map(g=>({range:g,primary:oe(g,a),style:null}))},c={unitId:o,subUnitId:e,pluginName:X,selections:Ln(r).map(g=>({range:g,primary:oe(g,a),style:null}))},l=n.get(s.ICommandService);return s.sequenceExecute([{id:Fe.id,params:i},{id:$.id,params:d}],l).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:je.id,params:u},{id:$.id,params:c}],redoMutations:[{id:Fe.id,params:i},{id:$.id,params:d}]}),!0}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var c;const o=(c=n.get(h.SelectionManagerService).getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=o.map(l=>a.getHiddenCols(l.startColumn,l.endColumn)).flat();return n.get(s.ICommandService).executeCommand(At.id,{unitId:i,subUnitId:u,ranges:d})}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var S;const o=(S=n.get(h.SelectionManagerService).getSelections())==null?void 0:S.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d={unitId:i,subUnitId:u,ranges:o},c={unitId:i,subUnitId:u,pluginName:X,selections:Ln(o).map(v=>({range:v,primary:oe(v,a),style:null}))},l={unitId:i,subUnitId:u,pluginName:X,selections:o.map(v=>({range:v,primary:oe(v,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:je.id,params:d},{id:$.id,params:c}],m).result){const v=n.get(s.IUndoRedoService),f=hs(n,d);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Fe.id,params:f},{id:$.id,params:l}],redoMutations:[{id:je.id,params:d},{id:$.id,params:c}]}),!0}return!1}};function Ln(n){return Ss(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Ss(n){const t=[];let o;return n.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!o){o=e;return}o.endColumn===e.startColumn-1?o.endColumn=e.endColumn:(t.push(o),o=e)}),t.push(o),t}const Vt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},ye={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:c}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:c},!0}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=B(r);if(!a)return!1;const{unitId:i,subUnitId:u,worksheet:d}=a,{startColumn:c,startRow:l,xSplit:m,ySplit:g}=t;if(l>=d.getRowCount()||c>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const S={unitId:i,subUnitId:u,...t},v=Vt(n,S);return o.syncExecuteCommand(ye.id,S)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ye.id,params:v}],redoMutations:[{id:ye.id,params:S}]}),!0):!1}},fs={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),e=n.get(s.IUniverInstanceService),r=B(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,u={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},d=Vt(n,u);return t.syncExecuteCommand(ye.id,u)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ye.id,params:d}],redoMutations:[{id:ye.id,params:u}]}),!0):!1}},Cs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},He={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Rs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},$e={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={unitId:o,subUnitId:e,ranges:r},c=Cs(n,d),l={unitId:o,subUnitId:e,pluginName:X,selections:r.map(S=>({range:S,primary:oe(S,u),style:null}))},m={unitId:o,subUnitId:e,pluginName:X,selections:Fn(r).map(S=>({range:S,primary:oe(S,u),style:null}))};return s.sequenceExecute([{id:He.id,params:d},{id:$.id,params:l}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:$e.id,params:c},{id:$.id,params:m}],redoMutations:[{id:He.id,params:d},{id:$.id,params:l}]}),!0}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var c;const t=n.get(h.SelectionManagerService),o=n.get(s.IUniverInstanceService),e=(c=t.getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=e.map(l=>a.getHiddenRows(l.startRow,l.endRow)).flat();return n.get(s.ICommandService).executeCommand(Lt.id,{unitId:i,subUnitId:u,ranges:d})}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var f;const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(f=t.getSelections())==null?void 0:f.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=B(r);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,l={unitId:u,subUnitId:d,ranges:a},m={unitId:u,subUnitId:d,pluginName:X,selections:Fn(a).map(C=>({range:C,primary:oe(C,c),style:null}))},g={unitId:u,subUnitId:d,pluginName:X,selections:a.map(C=>({range:C,primary:oe(C,c),style:null}))},S=Rs(n,l);return s.sequenceExecute([{id:$e.id,params:l},{id:$.id,params:m}],o).result&&e.pushUndoRedo({unitID:u,undoMutations:[{id:He.id,params:S},{id:$.id,params:g}],redoMutations:[{id:$e.id,params:l},{id:$.id,params:m}]}),!0}};function Fn(n){return Is(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Is(n){const t=[];let o;return n.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!o){o=e;return}e.startRow===o.endRow+1?o.endRow=e.endRow:(t.push(o),o=e)}),t.push(o),t}const J={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=B(o);if(!e)return!1;const{unitId:r,subUnitId:a,worksheet:i}=e,{range:u,style:d}=t,c=n.get(s.ICommandService),l=n.get(s.IUndoRedoService),m=n.get(h.SelectionManagerService),g=u?[u]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const S=new s.ObjectMatrix,v=os(i);if(s.Tools.isArray(d.value))for(let M=0;M<g.length;M++)v.forOperableEach(g[M],(y,b,_)=>{S.setValue(y,b,{s:{[d.type]:d.value[y-_.startRow][b-_.startColumn]}})});else for(let M=0;M<g.length;M++){const y={s:{[d.type]:d.value}};v.forOperableEach(g[M],(b,_)=>S.setValue(b,_,y))}const f={subUnitId:a,unitId:r,cellValue:S.getMatrix()},C=Se(n,f),I=c.syncExecuteCommand(q.id,f),{undos:R,redos:p}=n.get(h.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),w=s.sequenceExecute([...p],c);return I&&w.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}},Ms={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,u={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,u)}},ps={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:u}=t.primary;r=e.getRange(i,u).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ws={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ys={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}};s.CommandType.COMMAND;const Us={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(J.id,e)}},_s={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(J.id,e)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(J.id,o)}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},zn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(J.id,o)}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(J.id,e)}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(J.id,e)}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(J.id,e)}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,t)=>{if(!t)return!1;const o=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return e.executeCommand(J.id,r)}},bs=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,u={color:t.value,unitId:a,subUnitId:i},d=bs(n,u);return o.syncExecuteCommand(xe.id,u)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:u}]}),!0):!1}},Ye={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return o.setActiveSheet(r),!0;return!1}},Ts=4,Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(u=>{setTimeout(()=>{const d=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},o);u(d)},Ts)})}},Wt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const c=u[d];for(let l=c.startColumn;l<c.endColumn+1;l++){const m=i.getColumnOrCreate(l);a[l]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},Me={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,t)=>{var d;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),u=t.ranges;for(let c=0;c<u.length;c++){const l=u[c];for(let m=l.startColumn;m<l.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-l.startColumn])!=null?d:a}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:u,unitId:d,subUnitId:c}=i,{anchorCol:l,deltaX:m}=t,S=u.getColumnWidth(l)+m,v=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,f=e.filter(b=>b.range.rangeType===s.RANGE_TYPE.COLUMN),C=v?s.RANGE_TYPE.ALL:f.some(({range:b})=>{const{startColumn:_,endColumn:N}=b;return _<=l&&l<=N})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(C===s.RANGE_TYPE.ALL){const b=u.getRowCount(),_=new Array(u.getColumnCount()).fill(void 0).map((N,A)=>({startRow:0,endRow:b-1,startColumn:A,endColumn:A}));I={subUnitId:c,unitId:d,colWidth:S,ranges:_}}else C===s.RANGE_TYPE.COLUMN?I={subUnitId:c,unitId:d,ranges:f.map(b=>s.Rectangle.clone(b.range)),colWidth:S}:I={subUnitId:c,unitId:d,colWidth:S,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const R=Wt(n,I),p=r.syncExecuteCommand(Me.id,I),{undos:w,redos:M}=n.get(h.SheetInterceptorService).onCommandExecute({id:jt.id,params:I}),y=s.sequenceExecute([...M],r);return p&&y.result&&a.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:R},...w],redoMutations:[{id:Me.id,params:I},...M]}),!0}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:u,unitId:d}=i,c={subUnitId:u,unitId:d,ranges:a,colWidth:t.value},l=Wt(n,c),m=e.syncExecuteCommand(Me.id,c),{undos:g,redos:S}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ft.id,params:c}),v=s.sequenceExecute([...S],e);return m&&v.result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:l},...g],redoMutations:[{id:Me.id,params:c},...S]}),!0):!1}},Jn=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Ue={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),a=n.get(s.LocaleService),i=B(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c,subUnitId:l}=i;if(d.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:c,subUnitId:l,hidden:s.BooleanNumber.TRUE},S=Jn(n,g);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:S}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Es=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},gt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Ht={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var v,f;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SheetInterceptorService),a=B(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:u}=a,d={subUnitId:u,name:t.name,unitId:i},c=Es(n,d),l=r.onCommandExecute({id:Ht.id,params:t}),m=[...(v=l.preRedos)!=null?v:[],{id:gt.id,params:d},...l.redos],g=[...(f=l.preUndos)!=null?f:[],{id:gt.id,params:c},...l.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Ns=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:u}=r,c={fromOrder:a.getConfig().sheetOrder.indexOf(u),toOrder:t.order,unitId:i,subUnitId:u},l=Ns(n,c);return o.syncExecuteCommand(Ke.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ke.id,params:l}],redoMutations:[{id:Ke.id,params:c}]}),!0):!1}},Ds=2e3,eo=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<m+1;g++){const S=c.getRowOrCreate(g);d[g]=S.h}return{unitId:o,subUnitId:e,ranges:r,rowHeight:d}},$t=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<=m;g++){const S=c.getRowOrCreate(g);d[g]=S.ia}return{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:d}},Os=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u)return{unitId:o,subUnitId:e,rowsAutoHeightInfo:[]};const d=[],c=u.getRowManager();for(const l of r){const{row:m}=l,{ah:g}=c.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:d}},pe={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=d.getConfig().defaultRowHeight,l=d.getRowManager();for(const{startRow:g,endRow:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.h=a:f.h=(m=a[v])!=null?m:c,f.h=Math.min(Ds,f.h)}return!0}},ue={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=void 0,l=d.getRowManager();for(const{startRow:g,endRow:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.ia=a:f.ia=(m=a[v-g])!=null?m:c}return!0}},Gt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUnit(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:c,autoHeight:l}of r){const m=d.getRowOrCreate(c);m.ah=l}return!0}},to={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:u}=r,{anchorRow:d,deltaY:c}=t,m=a.getRowHeight(d)+c,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,S=e.filter(y=>y.range.rangeType===s.RANGE_TYPE.ROW),v=g?s.RANGE_TYPE.ALL:S.some(({range:y})=>{const{startRow:b,endRow:_}=y;return b<=d&&d<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(v===s.RANGE_TYPE.ALL){const y=a.getRowCount(),b=new Array(a.getColumnCount()).fill(void 0).map((_,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:y-1}));f={subUnitId:i,unitId:u,rowHeight:m,ranges:b}}else v===s.RANGE_TYPE.ROW?f={subUnitId:i,unitId:u,ranges:S.map(y=>s.Rectangle.clone(y.range)),rowHeight:m}:f={subUnitId:i,unitId:u,rowHeight:m,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=eo(n,f),I={unitId:u,subUnitId:i,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},R=$t(n,I),p=n.get(s.ICommandService),w=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:pe.id,params:f},{id:ue.id,params:I}],p).result?(w.pushUndoRedo({unitID:u,undoMutations:[{id:pe.id,params:C},{id:ue.id,params:R}],redoMutations:[{id:pe.id,params:f},{id:ue.id,params:I}]}),!0):!1}},no={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=B(a);if(!u)return!1;const{unitId:d,subUnitId:c}=u,l={subUnitId:c,unitId:d,ranges:i,rowHeight:t.value},m=eo(n,l),g={unitId:d,subUnitId:c,ranges:l.ranges,autoHeightInfo:s.BooleanNumber.FALSE},S=$t(n,g);return s.sequenceExecute([{id:pe.id,params:l},{id:ue.id,params:g}],e).result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:pe.id,params:m},{id:ue.id,params:S}],redoMutations:[{id:pe.id,params:l},{id:ue.id,params:g}]}),!0):!1}},zt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,{anchorRow:l}=t!=null?t:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:u,subUnitId:d,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},S=$t(n,g),v=o.syncExecuteCommand(ue.id,g),{undos:f,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:zt.id,params:g}),I=s.sequenceExecute([...C],o);return v&&I.result?(e.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:S},...f],redoMutations:[{id:ue.id,params:g},...C]}),!0):!1}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const{unitId:o,subUnitId:e}=t,r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService);if(!B(n.get(s.IUniverInstanceService)))return!1;const d=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const c=d.getSheetBySheetId(e);if(!c||c.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:o,subUnitId:e,hidden:s.BooleanNumber.FALSE},g=Jn(n,m),S=r.syncExecuteCommand(Ue.id,m),v={unitId:o,subUnitId:e},f=r.syncExecuteCommand(Ye.id,v);return S&&f?(a.pushUndoRedo({unitID:o,undoMutations:[{id:Ue.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}},so=n=>{const t=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((o,e)=>{const r=t.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ro=n=>{const t=n;return t.forValue((o,e)=>{const r=n.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ao=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,a)=>{let i=1,u=a;o(i*u,{startRow:e-u+1,endRow:e,startColumn:r,endColumn:r});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:r};for(let c=r-1;c>=0&&n.getValue(e,c);c--){u=Math.min(n.getValue(e,c)||0,u),i++;const l=u*i;d.startColumn=c,d.startRow=e-u+1,o(l,d)}}),t},Ps=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,a=n.getValue(r,e)||0;for(;a>1;)n.setValue(r,e,a-1),r+=1,a=n.getValue(r,e)||0}),n),qt=n=>{const t=[];let o=ao(n);for(;o.area>0;)o.range&&(t.push(o.range),Ps(n,o.range)),o=ao(n);return t},xt=n=>{const t=so(n);return qt(t)};class ks{constructor(){W(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=ro(this._matrix);return qt(t)}}const As=(n,t,o="")=>n.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[o].push(r),e)},{}),Vs=(n=0)=>{let t=n;return function(){return t++}},Ne=z.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Ne);const Ls=(n,t)=>{const o=n.get(Ne),{values:e,unitId:r,subUnitId:a}=t,i=[],u=[];Object.keys(e).forEach(c=>{e[c].ranges.forEach(m=>{s.Range.foreach(m,(g,S)=>{const v=o.getValue(r,a,g,S);v?i.push({pattern:v.pattern,row:g,col:S}):u.push({startColumn:S,endColumn:S,startRow:g,endRow:g})})})});const d=[];if(i.length){const c=vt(r,a,i);Object.keys(c.values).forEach(l=>{const m=c.values[l];m.ranges=xt(m.ranges)}),d.push({id:ht.id,params:vt(r,a,i)})}return u.length&&d.push({id:Yt.id,params:{unitId:r,subUnitId:a,ranges:u}}),d},ht={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,r=n.get(Ne),a=t.unitId,i=t.subUnitId,u=Object.keys(o).reduce((d,c)=>{const l=e[c],m=o[c].ranges;return l&&d.push({...l,ranges:m}),d},[]);return r.setValues(a,i,u),!0}},Yt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:r}=t;return n.get(Ne).deleteValues(o,e,r),!0}},Bs=(n,t)=>{const o=n.get(Ne),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(d=>{s.Range.foreach(d,(c,l)=>{const m=o.getValue(r,a,c,l);m&&i.push({pattern:m.pattern,row:c,col:l})})}),!i.length)return[];const u=vt(r,a,i);return Object.keys(u.values).forEach(d=>{const c=u.values[d];c.ranges=xt(c.ranges)}),[{id:ht.id,params:u}]},vt=(n,t,o)=>{const e=As(o,"pattern"),r={},a={},i=Vs();return Object.keys(e).forEach(u=>{const d=e[u],c=i();r[c]={pattern:u},d.forEach(l=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},io={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},uo={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}]}),!0):!1}},lo={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},co={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ne.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},mo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Kt={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET);return o?(o.setName(t.name),!0):!1}},Xt={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,t)=>{var c;if(!n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const a=n.get(h.SheetInterceptorService).onCommandExecute({id:Xt.id,params:t}),i={name:t.name,unitId:t.unitId},u=[...(c=a.preRedos)!=null?c:[],{id:Kt.id,params:i},...a.redos],d=n.get(s.ICommandService);return s.sequenceExecute(u,d).result}},go="maxCellsPerSheet",Ws=3e6;var js=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Fs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&js(t,o,r),r},ho=(n,t)=>(o,e)=>t(o,e,n);let St=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[j,tt,_t,nt,hn,at,it,jt,to,yn,wn,Be,Re,ut,dt,Mn,In,Le,Ce,Un,_e,Pt,Te,st,Ve,Ot,be,ct,Ie,lt,we,kt,Ae,Nn,F,zn,$n,Gn,Dn,kn,We,On,Pn,Vn,je,Fe,Ft,fs,Bn,ye,xn,qe,q,no,jn,$e,He,An,Wn,At,Lt,J,Xn,xe,Hn,Kn,Yn,qn,Xt,Kt,Bt,Ye,Me,Zn,Ue,Ht,gt,Qn,Ke,Gt,pe,zt,ue,oo,ht,$,Yt,io,uo,lo,co,mo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(go,Ws)}};St=Hs([s.OnLifecycle(s.LifecycleStages.Starting,St),ho(0,s.ICommandService),ho(1,s.IConfigService)],St);var $s=Object.defineProperty,Gs=Object.getOwnPropertyDescriptor,zs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Gs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&$s(t,o,r),r},vo=(n,t)=>(o,e)=>t(o,e,n);let ft=class extends s.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ne.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),r=[];return e.forEach(i=>{const u=o[i];if(u==null)return!0;Object.keys(u).forEach(c=>{const l=u[c];if(l==null)return!0;const m=this._getMergedCellData(i,c,l),g={subUnitId:c,unitId:i,cellValue:m};r.push({id:q.id,params:g})})}),r.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),r=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),u=new s.ObjectMatrix(o);return u.forValue((d,c,l)=>{const m=i==null?void 0:i.getValue(d,c),g=ne.handleNumfmtInCell(m,l,r);u.setValue(d,c,g)}),u.clone()}};ft=zs([s.OnLifecycle(s.LifecycleStages.Ready,ft),vo(0,z.Inject(s.IUniverInstanceService)),vo(1,s.ICommandService)],ft);var qs=Object.defineProperty,xs=Object.getOwnPropertyDescriptor,Ys=(n,t,o,e)=>{for(var r=e>1?void 0:e?xs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&qs(t,o,r),r},Ct=(n,t)=>(o,e)=>t(o,e,n);let Rt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};Rt=Ys([s.OnLifecycle(s.LifecycleStages.Ready,Rt),Ct(0,s.ICommandService),Ct(1,ne.IFeatureCalculationManagerService),Ct(2,s.IUniverInstanceService),Ct(3,z.Inject(ne.FormulaDataModel))],Rt);const P={MoveRangeCommandId:vn,InsertRowCommandId:Rn,InsertColCommandId:pn,RemoveColCommandId:En,RemoveRowCommandId:Tn,DeleteRangeMoveLeftCommandId:Sn,DeleteRangeMoveUpCommandId:fn,InsertRangeMoveDownCommandId:ds,InsertRangeMoveRightCommandId:Cn,MoveColsCommandId:bn,MoveRowsCommandId:_n};var k=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(k||{});const It=Number.MAX_SAFE_INTEGER,ve=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=It),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=It),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=It,t.startRow=0,t.endRow=It),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Xe=(n,t,o)=>{const e={...o},r={...t},a=(f,C)=>{const I=Math.max(f.start,C.start),R=Math.min(f.end,C.end);return R<I?null:{start:I,end:R}},i=f=>f.end-f.start+1,u=(f,C)=>({start:f.start-C.start,end:f.start-C.start+f.end-f.start}),d=(f,C)=>({start:C.start+f.start,end:C.start+f.start+f.end-f.start}),c=t.start>n.start;if(c){const f=Math.min(n.end,t.start)-n.start+1;r.start-=f,r.end-=f}const l=i(n),m=l,g=a(n,e),S=g&&i(g)>=i(e);if(n.end<e.start)e.start-=l,e.end-=l;else if(g){const f=i(g);if(S){const C=u(e,n),I=d(C,r);e.start=I.start,e.end=I.end}else g.start>n.start?c?(e.end-=f+l,e.start-=l):e.end-=f:c?e.end-=f:e.start>n.start&&e.end>n.end?(e.start-=l,e.end-=l+f):e.end-=f}const v=a(r,e);return S||(r.start<=e.start?(e.start+=m,e.end+=m):v&&(c?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Jt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:k.Delete}]:[{type:k.VerticalMove,step:u.step||0,length:u.length||0}]},Ks=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:r}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(c,l)=>{u.setValue(c,l,1)}),u.moveRows(r,i,a),s.queryObjectMatrix(u,c=>c===1)},Zt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:k.Delete}]:[{type:k.HorizontalMove,step:u.step||0,length:u.length||0}]},Xs=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:r}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(d,c)=>{u.setValue(d,c,1)}),u.moveColumns(r,i,a),s.queryObjectMatrix(u,d=>d===1)},So=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:k.Delete}),s.Rectangle.contains(e,t)){r.push({type:k.Delete});const u=s.Rectangle.getRelativeRange(t,e),d=s.Rectangle.getPositionRange(u,o);return[{type:k.Set,range:d}]}return r},Js=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(o,t))return[t];if(s.Rectangle.contains(e,t)){const S=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(S,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(S,v)=>{r.setValue(S,v,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(S,v)=>{r.getValue(S,v)&&(r.setValue(S,v,void 0),a.setValue(S,v,1))});const u=o.startColumn-e.startColumn,d=o.startRow-e.startRow,c={startColumn:o.startColumn-u,endColumn:o.endColumn-u,startRow:o.startRow-d,endRow:o.endRow-d};return c&&s.Range.foreach(c,(S,v)=>{var I;const f=S+d,C=v+u;r.setValue(f,C,(I=a.getValue(S,v))!=null?I:0)}),s.queryObjectMatrix(r,S=>S===1)},De=(n,t)=>{const o=ve(n),e=ve(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i){const u=-r(i);return{step:-(r(o)-r(i)),length:u}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},Qt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},en=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},Oe=(n,t)=>{const o=ve(n),e=ve(t),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}};function Zs(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:k.Delete}),s.Rectangle.contains(n,o)){e.push({type:k.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:k.Set,range:a}]}return e}const tn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},nn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},fo=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},Qs=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endRow-o.startRow+1,r={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c+e,l,1)}),s.queryObjectMatrix(u,c=>c===1)},Co=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},er=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,r={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c,l+e,1)}),s.queryObjectMatrix(u,c=>c===1)},Ro=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},tr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},r=o.endColumn-o.startColumn+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l,m-r,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l,m-r,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Io=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},nr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},r=o.endRow-o.startRow+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l-r,m,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l-r,m,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Pe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case k.Delete:{o=null;break}case k.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case k.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},or=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{o=Ro(t,n);break}case P.DeleteRangeMoveUpCommandId:{o=Io(t,n);break}case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRangeMoveDownCommandId:{o=fo(t,n);break}case P.InsertRangeMoveRightCommandId:{o=Co(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:{o=Zt(t,n);break}case P.MoveRangeCommandId:{o=So(t,n);break}case P.MoveRowsCommandId:{o=Jt(t,n);break}case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)},sr=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:return tr(t,n);case P.DeleteRangeMoveUpCommandId:return nr(t,n);case P.InsertRangeMoveDownCommandId:return Qs(t,n);case P.InsertRangeMoveRightCommandId:return er(t,n);case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:return Xs(t,n);case P.MoveRangeCommandId:return Js(t,n);case P.MoveRowsCommandId:return Ks(t,n);case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)};function rr(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:k.Unknown};switch(o){case Ae.id:r.type=k.Delete;break;case be.id:r=Xe({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=k.VerticalMove;break;case Te.id:r=Xe({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Ie.id:r=De(e.range,n),r?r.type=k.HorizontalMove:r={step:0,length:0,type:k.Delete};break;case we.id:r=De(ae(e.range),ae(n)),r?r.type=k.VerticalMove:r={step:0,length:0,type:k.Delete};break;case Ce.id:r=Oe(ae(e.range),ae(n)),r.type=k.VerticalMove;break;case Re.id:r=Oe(e.range,n),r.type=k.HorizontalMove;break;case Ve.id:r=Zs(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Pe(r,n):Pe([r],n):n}var ar=Object.defineProperty,ir=Object.getOwnPropertyDescriptor,ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?ir(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&ar(t,o,r),r},Mt=(n,t)=>(o,e)=>t(o,e,n);const dr=s.createInterceptorKey("MERGE_REDO"),lr=s.createInterceptorKey("MERGE_UNDO");class cr extends s.Disposable{constructor(t,o,e,r){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=rr(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}h.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();W(this,"interceptor",new s.InterceptorManager({MERGE_REDO:dr,MERGE_UNDO:lr}));W(this,"_watchRanges",new Set);W(this,"_refRangeManagerMap",new Map);W(this,"_serializer",mr());W(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Mo(this._univerInstanceService),a=po(this._univerInstanceService),d=((()=>{switch(o.id){case P.MoveColsCommandId:{const S=o.params,v=Math.min(S.fromRange.startColumn,S.toRange.startColumn);return this._checkRange([{...S.fromRange,startColumn:v,endColumn:e.getColumnCount()-1}],r,a)}case P.MoveRowsCommandId:{const S=o.params,v=Math.min(S.fromRange.startRow,S.toRange.startRow);return this._checkRange([{...S.fromRange,startRow:v,endRow:e.getRowCount()-1}],r,a)}case P.MoveRangeCommandId:{const S=o;return this._checkRange([S.params.fromRange,S.params.toRange],r,a)}case P.InsertRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.InsertColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:v.endColumn,endRow:e.getRowCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:e.getColumnCount()-1,endRow:v.endRow};return this._checkRange([f],r,a)}}})()||[]).reduce((S,v)=>{const f=v(o);return S.push(f),S},[]).reduce((S,v)=>{var f,C;return S.redos.push(...v.redos),S.undos.push(...v.undos),S.preRedos.push(...(f=v.preRedos)!=null?f:[]),S.preUndos.push(...(C=v.preUndos)!=null?C:[]),S},{redos:[],undos:[],preUndos:[],preRedos:[]}),c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:l,undos:g,preRedos:c,preUndos:m}}})});W(this,"_checkRange",(o,e,r)=>{const a=yo(e,r),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(c=>{const l=i.get(c),m=this._serializer.deserialize(c);o.some(g=>s.Rectangle.intersects(g,m))&&l&&l.forEach(g=>{u.add(g)})}),[...u]}return[]});W(this,"registerRefRange",(o,e,r,a)=>{const i=r||Mo(this._univerInstanceService),u=a||po(this._univerInstanceService),d=yo(i,u),c=this._serializer.serialize(o);let l=this._refRangeManagerMap.get(d);l||(l=new Map,this._refRangeManagerMap.set(d,l));const m=l.get(c);return m?m.add(e):l.set(c,new Set([e])),s.toDisposable(()=>{const g=l.get(c);g&&(g.delete(e),g.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(d)))})});this._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(l=>{if(l.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(l)}));const u=new cr(o,e,r,a);this._watchRanges.add(u);const d=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),c=this.disposeWithMe(d);return s.toDisposable(()=>{c.dispose(),d.dispose()})}},h.RefRangeService=ur([s.OnLifecycle(s.LifecycleStages.Ready,h.RefRangeService),Mt(0,s.ICommandService),Mt(1,z.Inject(h.SheetInterceptorService)),Mt(2,z.Inject(s.IUniverInstanceService)),Mt(3,z.Inject(h.SelectionManagerService))],h.RefRangeService);function Mo(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function po(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function wo(n){return n.getSelectionRanges()||[]}function yo(n,t){return`${n}_${t}`}function mr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,u)=>(a[String(u)]=i,a),{});return o.split(t).reduce((a,i,u)=>{const d=String(u);return i&&e[d]&&(a[e[d]]=i),a},{})},serialize:o=>n.reduce((e,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var gr=Object.defineProperty,hr=Object.getOwnPropertyDescriptor,vr=(n,t,o,e)=>{for(var r=e>1?void 0:e?hr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&gr(t,o,r),r},Ge=(n,t)=>(o,e)=>t(o,e,n);const Sr=[Re.id,Ce.id,Ie.id,we.id],fr=[be.id,Te.id];function Uo(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=o[r];if(t===s.Dimension.ROWS)for(let c=a;c<=i;c++){const l={startRow:c,endRow:c,startColumn:u,endColumn:d};e.push(l)}else if(t===s.Dimension.COLUMNS)for(let c=u;c<=d;c++){const l={startRow:a,endRow:i,startColumn:c,endColumn:c};e.push(l)}}o=e}return o}h.MergeCellController=class extends s.Disposable{constructor(o,e,r,a,i,u){super();W(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case tt.id:case nt.id:{const r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,c=o._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(m=>d.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:c},g=re(o._injector,m),S=[{id:F.id,params:m}],v=[{id:j.id,params:g}];return{redos:S,undos:v}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case P.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case P.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case Le.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertRowCommand(a,i,u)}case Be.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertColCommand(a,i,u)}case ct.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case lt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,r)}case st.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,r)}case dt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case ut.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case it.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case at.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const u=i==null?void 0:i.getSheetBySheetId(a);if(!u)return;this.disposableCollection.dispose();const d=u.getMergeData(),c=l=>this.refRangeHandle(l,r,a);d.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,c,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Bt.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(u,i)}if(r.id===j.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(e){const r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startRow:m,endRow:g}=l;if(u.forEach(f=>{if(m<=f.startRow&&g>=f.endRow){d.ranges.push(f);const C=Jt({id:P.MoveRowsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveColsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startColumn:m,endColumn:g}=l;if(u.forEach(f=>{if(m<=f.startColumn&&g>=f.endColumn){d.ranges.push(f);const C=Zt({id:P.MoveColsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveRangeCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(v=>s.Rectangle.intersects(v,o.fromRange)),c=u.filter(v=>s.Rectangle.intersects(v,o.toRange)),l=d.map(v=>s.Rectangle.getRelativeRange(v,o.fromRange)).map(v=>s.Rectangle.getPositionRange(v,o.toRange)),m=Uo(l).filter(v=>!u.some(f=>s.Rectangle.equals(v,f))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:m}}],S=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:d}}];return{redos:g,undos:S}}_handleInsertRowCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startRow:d,endRow:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>(d>p.startRow&&d<=p.endRow&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>{if(d>p.startRow&&d<=p.endRow){const w=c-d+1;p.endRow+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startColumn:d,endColumn:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>(d>p.startColumn&&d<=p.endColumn&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>{if(d>p.startColumn&&d<=p.endColumn){const w=c-d+1;p.endColumn+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleRemoveColCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startColumn:d,endColumn:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(u,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(u,M)){if(d<=M.startColumn&&c>=M.endColumn)return w;d>=M.startColumn&&c<=M.endColumn?M.endColumn-=c-d+1:d<M.startColumn?(M.startColumn=d,M.endColumn-=c-d+1):c>M.endColumn&&(M.endColumn=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startRow:d,endRow:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(a,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(a,M)){if(d<=M.startRow&&c>=M.endRow)return w;d>=M.startRow&&c<=M.endRow?M.endRow-=c-d+1:d<M.startRow?(M.startRow=d,M.endRow-=c-d+1):c>M.endRow&&(M.endRow=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn+b,endRow:C.endRow,endColumn:C.endColumn+b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1;m.push({startRow:R.startRow+N,startColumn:R.startColumn,endRow:R.endRow+N,endColumn:R.endColumn})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1,A=s.Rectangle.moveVertical(R,-N);m.push(A)}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn-b,endRow:C.endRow,endColumn:C.endColumn-b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(fr.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=o.params,u=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,d=u?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,c=u?a.startRow:a.startColumn,l=u?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M}=C;s.Rectangle.intersects(C,a)||(u?c<I&&l>R?(I-=d,R-=d):c>R&&l<=I&&(I+=d,R+=d):c<p&&l>w?(p-=d,w-=d):c>w&&l<=p&&(p+=d,w+=d)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:S,subUnitId:v}=o.params,f=C=>this.refRangeHandle(C,S,v);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,f,S,v))})}if(Sr.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=o.params;if(!i)return;const{range:u}=i,d=o.id.includes("row"),c=o.id.includes("insert"),l=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-l+1,S=[];a.forEach(I=>{let{startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y}=I;c?d?l<=R&&(R+=g,p+=g):l<=w&&(w+=g,M+=g):d?m<R&&(R-=g,p-=g):m<w&&(w-=g,M-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||S.push({startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=S,this.disposableCollection.dispose();const{unitId:v,subUnitId:f}=o.params,C=I=>this.refRangeHandle(I,v,f);S.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,v,f))})}}))}},h.MergeCellController=vr([s.OnLifecycle(s.LifecycleStages.Steady,h.MergeCellController),Ge(0,z.Inject(s.ICommandService)),Ge(1,z.Inject(h.RefRangeService)),Ge(2,z.Inject(s.IUniverInstanceService)),Ge(3,z.Inject(z.Injector)),Ge(4,z.Inject(h.SheetInterceptorService)),Ge(5,z.Inject(h.SelectionManagerService))],h.MergeCellController);function ge(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function he(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const Cr={sheets:{tabs:{sheetCopy:"(Copy)",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}},_o={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}},Rr={sheets:{tabs:{sheetCopy:"(Копия)",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}};var Ir=Object.defineProperty,Mr=Object.getOwnPropertyDescriptor,pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Mr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ir(t,o,r),r},on=(n,t)=>(o,e)=>t(o,e,n);h.NumfmtService=class extends s.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,r){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const u=a.getStyles(),d=i.getCellRaw(e,r);if(d!=null&&d.s){const c=u.get(d.s);if(c!=null&&c.n)return c.n}return null}deleteValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles();e.forEach(u=>{s.Range.foreach(u,(d,c)=>{const l=a.getCellRaw(d,c);if(!l)return;const m=l==null?void 0:l.s,S={...m&&i.get(m)||{}};delete S.n;const v=i.setValue(S);l.s=v})})}setValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles(),u=a.getCellMatrix();e.forEach(d=>{d.ranges.forEach(c=>{s.Range.foreach(c,(l,m)=>{const g=a.getCellRaw(l,m);if(g){const v={...g.s&&i.get(g.s)||{},n:{pattern:d.pattern}},f=i.setValue(v);g.s=f}else{const S={n:{pattern:d.pattern}},v=i.setValue(S);v&&u.setValue(l,m,{s:v})}})})})}},h.NumfmtService=pr([on(0,s.IResourceManagerService),on(1,s.IUniverInstanceService),on(2,s.ILogService)],h.NumfmtService);const bo="univer.sheet.editable";class Je extends s.PermissionPoint{constructor(o,e){super();W(this,"id",bo);W(this,"value",!0);W(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${bo}_${o}_${e}`}}var wr=Object.defineProperty,yr=Object.getOwnPropertyDescriptor,Ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?yr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&wr(t,o,r),r},To=(n,t)=>(o,e)=>t(o,e,n);h.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();W(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>{var r;return(r=this._disposableByUnit.get(e.getUnitId()))==null?void 0:r.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),r=new s.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),u.id)}))),r.add(s.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,r)}getEditable$(o,e){return ke.of({value:!0,status:s.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,r){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),u=a.getActiveSheet(),d=r||u.getSheetId(),c=new Je(i,d);this._permissionService.updatePermissionPoint(i,c.id,o)}},h.SheetPermissionService=Ur([s.OnLifecycle(s.LifecycleStages.Ready,h.SheetPermissionService),To(0,z.Inject(s.IPermissionService)),To(1,z.Inject(s.IUniverInstanceService))],h.SheetPermissionService);function _r(n){var a,i,u;const t=n.get(s.IUniverInstanceService),o=n.get(h.SheetPermissionService),e=(a=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),r=(i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(u=o.getEditable$(e,r))==null?void 0:u.pipe(ke.map(d=>!d.value))}var br=Object.defineProperty,Tr=Object.getOwnPropertyDescriptor,Er=(n,t,o,e)=>{for(var r=e>1?void 0:e?Tr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&br(t,o,r),r},pt=(n,t)=>(o,e)=>t(o,e,n);const Nr="SHEET_DEFINED_NAME_PLUGIN";let wt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Nr,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};wt=Er([s.OnLifecycle(s.LifecycleStages.Ready,wt),pt(0,s.ICommandService),pt(1,s.IUniverInstanceService),pt(2,ne.IDefinedNamesService),pt(3,s.IResourceManagerService)],wt);var Dr=Object.defineProperty,Or=Object.getOwnPropertyDescriptor,Pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Or(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Dr(t,o,r),r},sn=(n,t)=>(o,e)=>t(o,e,n);const kr="SHEET_PLUGIN";h.UniverSheetsPlugin=(yt=class extends s.Plugin{constructor(t,o,e,r){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const o=[[Ee],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[Ne,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[St],[h.MergeCellController],[wt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ft],[Rt]),o.forEach(r=>{t.add(r)})}},W(yt,"pluginName",kr),W(yt,"type",s.UniverInstanceType.UNIVER_SHEET),yt),h.UniverSheetsPlugin=Pr([sn(1,s.ICommandService),sn(2,z.Inject(s.LocaleService)),sn(3,z.Inject(z.Injector))],h.UniverSheetsPlugin);const Ar=[pe.id,ue.id,Gt.id,Me.id,Ye.id,be.id,Te.id,je.id,Fe.id,$e.id,He.id,Re.id,Ce.id,Ie.id,we.id],Vr=[q.id,Ve.id,F.id,j.id],Lr=1.5,Br="rgba(255, 255, 255, 0.01)";function Wr(n){const t=n.getCurrentTheme(),o=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function jr(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(r.primary=Eo(o)),r}function Eo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:u,endColumn:d}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Fr(n,t,o){const e=ko.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const Hr=(n,t,o)=>{const r=n.get(h.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(r){const l=r[(r==null?void 0:r.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:S,startColumn:v,endRow:f,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const w=o.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);w&&(C=w.endColumn,S=w.startRow,f=w.endRow)}else if(a===s.Dimension.ROWS){const w=o.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);w&&(f=w.endRow,v=w.startColumn,C=w.endColumn)}const I={startRow:S,startColumn:v,endRow:f,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:S===g&&v===m},R=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?I:null})),p={unitId:u,subUnitId:d,pluginName:X,selections:R};return{id:$.id,params:p}}return null}return null},$r=(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:r,subUnitId:a,pluginName:X,selections:[...e]};return{id:$.id,params:d}}return null};h.AddMergeRedoSelectionsOperationFactory=Hr,h.AddMergeUndoMutationFactory=me,h.AddMergeUndoSelectionsOperationFactory=$r,h.AddWorksheetMergeMutation=j,h.BorderStyleManagerService=Ee,h.COMMAND_LISTENER_SKELETON_CHANGE=Ar,h.COMMAND_LISTENER_VALUE_CHANGE=Vr,h.ClearSelectionAllCommand=tt,h.ClearSelectionContentCommand=_t,h.ClearSelectionFormatCommand=nt,h.CopySheetCommand=hn,h.DeleteRangeMoveLeftCommand=at,h.DeleteRangeMoveUpCommand=it,h.DeltaColumnWidthCommand=jt,h.DeltaRowHeightCommand=to,h.EffectRefRangId=P,h.EmptyMutation=io,h.INTERCEPTOR_POINT=Qe,h.INumfmtService=Ne,h.InsertColAfterCommand=yn,h.InsertColBeforeCommand=wn,h.InsertColCommand=Be,h.InsertColMutation=Re,h.InsertColMutationUndoFactory=Dt,h.InsertDefinedNameCommand=uo,h.InsertRangeMoveDownCommand=ut,h.InsertRangeMoveRightCommand=dt,h.InsertRowAfterCommand=Mn,h.InsertRowBeforeCommand=In,h.InsertRowCommand=Le,h.InsertRowMutation=Ce,h.InsertRowMutationUndoFactory=Nt,h.InsertSheetCommand=Un,h.InsertSheetMutation=_e,h.InsertSheetUndoMutationFactory=bt,h.MAX_CELL_PER_SHEET_KEY=go,h.MoveColsCommand=Pt,h.MoveColsMutation=Te,h.MoveRangeCommand=st,h.MoveRangeMutation=Ve,h.MoveRowsCommand=Ot,h.MoveRowsMutation=be,h.NORMAL_SELECTION_PLUGIN_NAME=X,h.OperatorType=k,h.RangeMergeUtil=ks,h.RemoveColCommand=ct,h.RemoveColMutation=Ie,h.RemoveDefinedNameCommand=lo,h.RemoveMergeUndoMutationFactory=re,h.RemoveNumfmtMutation=Yt,h.RemoveRowCommand=lt,h.RemoveRowMutation=we,h.RemoveSheetCommand=kt,h.RemoveSheetMutation=Ae,h.RemoveSheetUndoMutationFactory=gn,h.RemoveWorksheetMergeCommand=Nn,h.RemoveWorksheetMergeMutation=F,h.ResetBackgroundColorCommand=zn,h.ResetTextColorCommand=$n,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Br,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Lr,h.ScrollToCellOperation=mo,h.SelectionMoveType=un,h.SetBackgroundColorCommand=Gn,h.SetBoldCommand=Ms,h.SetBorderBasicCommand=Dn,h.SetBorderColorCommand=kn,h.SetBorderCommand=We,h.SetBorderPositionCommand=On,h.SetBorderStyleCommand=Pn,h.SetColHiddenCommand=Vn,h.SetColHiddenMutation=je,h.SetColVisibleMutation=Fe,h.SetColWidthCommand=Ft,h.SetDefinedNameCommand=co,h.SetFontFamilyCommand=Us,h.SetFontSizeCommand=_s,h.SetFrozenCommand=Bn,h.SetFrozenMutation=ye,h.SetFrozenMutationFactory=Vt,h.SetHorizontalTextAlignCommand=xn,h.SetItalicCommand=ps,h.SetNumfmtMutation=ht,h.SetRangeValuesCommand=qe,h.SetRangeValuesMutation=q,h.SetRangeValuesUndoMutationFactory=Se,h.SetRowHeightCommand=no,h.SetRowHiddenCommand=jn,h.SetRowHiddenMutation=$e,h.SetRowVisibleMutation=He,h.SetSelectedColsVisibleCommand=An,h.SetSelectedRowsVisibleCommand=Wn,h.SetSelectionsOperation=$,h.SetSpecificColsVisibleCommand=At,h.SetSpecificRowsVisibleCommand=Lt,h.SetStrikeThroughCommand=ys,h.SetStyleCommand=J,h.SetTabColorCommand=Xn,h.SetTabColorMutation=xe,h.SetTextColorCommand=Hn,h.SetTextRotationCommand=Kn,h.SetTextWrapCommand=Yn,h.SetUnderlineCommand=ws,h.SetVerticalTextAlignCommand=qn,h.SetWorkbookNameCommand=Xt,h.SetWorkbookNameMutation=Kt,h.SetWorksheetActivateCommand=Bt,h.SetWorksheetActiveOperation=Ye,h.SetWorksheetColWidthMutation=Me,h.SetWorksheetColWidthMutationFactory=Wt,h.SetWorksheetHideCommand=Zn,h.SetWorksheetHideMutation=Ue,h.SetWorksheetNameCommand=Ht,h.SetWorksheetNameMutation=gt,h.SetWorksheetOrderCommand=Qn,h.SetWorksheetOrderMutation=Ke,h.SetWorksheetRowAutoHeightMutation=Gt,h.SetWorksheetRowAutoHeightMutationFactory=Os,h.SetWorksheetRowHeightMutation=pe,h.SetWorksheetRowIsAutoHeightCommand=zt,h.SetWorksheetRowIsAutoHeightMutation=ue,h.SetWorksheetShowCommand=oo,h.SheetEditablePermission=Je,h.alignToMergedCellsBorders=ze,h.convertPrimaryWithCoordToPrimary=Eo,h.convertSelectionDataToRange=jr,h.createTopMatrixFromMatrix=ro,h.createTopMatrixFromRanges=so,h.enUS=Cr,h.factoryRemoveNumfmtUndoMutation=Bs,h.factorySetNumfmtUndoMutation=Ls,h.findAllRectangle=qt,h.followSelectionOperation=fe,h.getAddMergeMutationRangeByType=Uo,h.getCellAtRowCol=es,h.getCurrentSheetDisabled$=_r,h.getInsertRangeMutations=Tt,h.getMoveRangeUndoRedoMutations=rt,h.getNormalSelectionStyle=Wr,h.getPrimaryForRange=oe,h.getRemoveRangeMutations=Et,h.getSheetCommandTarget=B,h.getSheetCommandTargetWorkbook=mn,h.getSheetMutationTarget=ot,h.handleBaseInsertRange=Oe,h.handleBaseMoveRowsCols=Xe,h.handleBaseRemoveRange=De,h.handleCommonDefaultRangeChangeWithEffectRefCommands=sr,h.handleDefaultRangeChangeWithEffectRefCommands=or,h.handleDeleteRangeMoveLeft=Ro,h.handleDeleteRangeMoveUp=Io,h.handleDeleteRangeMutation=rs,h.handleIRemoveCol=Qt,h.handleIRemoveRow=en,h.handleInsertCol=nn,h.handleInsertRangeMoveDown=fo,h.handleInsertRangeMoveRight=Co,h.handleInsertRangeMutation=ss,h.handleInsertRow=tn,h.handleMoveCols=Zt,h.handleMoveRange=So,h.handleMoveRows=Jt,h.isSingleCellSelection=ns,h.rangeMerge=xt,h.rotateRange=ae,h.ruRU=Rr,h.runRefRangeMutations=Pe,h.setEndForRange=ts,h.transformCellDataToSelectionData=Fr,h.transformCellsToRange=vt,h.zhCN=_o,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
1
+ (function(m,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/engine-render"],r):(m=typeof globalThis<"u"?globalThis:m||self,r(m.UniverSheets={},m.UniverCore,m["@wendellhu/redi"],m.rxjs,m.UniverEngineFormula,m.rxjs.operators,m.UniverEngineRender))})(this,function(m,r,O,me,ie,xe,dt){"use strict";var Va=Object.defineProperty;var La=(m,r,O)=>r in m?Va(m,r,{enumerable:!0,configurable:!0,writable:!0,value:O}):m[r]=O;var C=(m,r,O)=>(La(m,typeof r!="symbol"?r+"":r,O),O);var Ht;var Do=Object.defineProperty,Ao=Object.getOwnPropertyDescriptor,Wo=(s,e,n,t)=>{for(var o=t>1?void 0:t?Ao(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&Do(e,n,o),o},Vo=(s,e)=>(n,t)=>e(n,t,s);const Q="normalSelectionPluginName";var Pn=(s=>(s[s.MOVE_START=0]="MOVE_START",s[s.MOVING=1]="MOVING",s[s.MOVE_END=2]="MOVE_END",s))(Pn||{});m.SelectionManagerService=class{constructor(e){C(this,"_selectionInfo",new Map);C(this,"_currentSelection",null);C(this,"_selectionMoveStart$",new me.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new me.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new me.BehaviorSubject(null));C(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());C(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,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var t,o;if(this._currentSelection==null||this._currentSelection.pluginName===e)return;const n=this.getSelectionDatasByParam(this._currentSelection);this._currentSelection={pluginName:e,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},n!=null&&this.add([])}reset(){var e,n;this._currentSelection!=null&&(this._currentSelection={pluginName:Q,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=Q,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(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},t)=>e.some(({range:o},i)=>t===i?!1:n.startRow<=o.endRow&&n.endRow>=o.startRow&&n.startColumn<=o.endColumn&&n.endColumn>=o.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:n,unitId:t,sheetId:o}=e;return(a=(i=this._selectionInfo.get(n))==null?void 0:i.get(t))==null?void 0:a.get(o)}_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:t,unitId:o,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const u=this._selectionInfo.get(t);u.has(o)||u.set(o,new Map);const l=u.get(o);if(!l.has(i))l.set(i,[...a]);else{let d=l.get(i);d==null&&(d=[],l.set(i,d)),d.push(...a)}n&&this._refresh({pluginName:t,unitId:o,sheetId:i})}_replaceByParam(e){const{pluginName:n,unitId:t,sheetId:o,selectionDatas:i}=e;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const a=this._selectionInfo.get(n);a.has(t)||a.set(t,new Map);const u=a.get(t);if(!u.has(o))u.set(o,i);else{let l=u.get(o);l==null&&(l=[],u.set(o,l)),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 t=this._getSelectionDatas(n);t==null||t.splice(e,1),this._refresh(n)}},m.SelectionManagerService=Wo([Vo(0,O.Inject(r.ThemeService))],m.SelectionManagerService);const Lo=r.createInterceptorKey("CELL_CONTENT"),$o=r.createInterceptorKey("ROW_FILTERED"),ct={CELL_CONTENT:Lo,ROW_FILTERED:$o};var jo=Object.defineProperty,Bo=Object.getOwnPropertyDescriptor,Ho=(s,e,n,t)=>{for(var o=t>1?void 0:t?Bo(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&jo(e,n,o),o},Fo=(s,e)=>(n,t)=>e(n,t,s);m.SheetInterceptorService=class extends r.Disposable{constructor(n){super();C(this,"_interceptorsByName",new Map);C(this,"_commandInterceptors",[]);C(this,"_workbookDisposables",new Map);C(this,"_worksheetDisposables",new Map);this._univerInstanceService=n,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(r.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{this._interceptWorkbook(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).subscribe(t=>this._disposeWorkbookInterceptor(t))),this.intercept(ct.CELL_CONTENT,{priority:-1,handler(t,o){const i=o.worksheet.getCellRaw(o.row,o.col);return t?{...i,...t}:i}})}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((t,o)=>{var i,a;return((i=o.priority)!=null?i:0)-((a=t.priority)!=null?a:0)}),this.disposeWithMe(r.toDisposable(()=>r.remove(this._commandInterceptors,n)))}onCommandExecute(n){const t=this._commandInterceptors.map(o=>o.getMutations(n));return{preUndos:t.map(o=>{var i;return(i=o.preUndos)!=null?i:[]}).flat(),undos:t.map(o=>o.undos).flat(),preRedos:t.map(o=>{var i;return(i=o.preRedos)!=null?i:[]}).flat(),redos:t.map(o=>o.redos).flat()}}intercept(n,t){const o=n;this._interceptorsByName.has(o)||this._interceptorsByName.set(o,[]);const i=this._interceptorsByName.get(o);return i.push(t),this._interceptorsByName.set(o,i.sort((a,u)=>{var l,d;return((l=u.priority)!=null?l:0)-((d=a.priority)!=null?d:0)})),this.disposeWithMe(r.toDisposable(()=>r.remove(this._interceptorsByName.get(o),t)))}fetchThroughInterceptors(n){const t=n,o=this._interceptorsByName.get(t);return r.composeInterceptors(o||[])}_interceptWorkbook(n){const t=new r.DisposableCollection,o=n.getUnitId(),i=this,a=u=>{const l=u.getSheetId();u.__interceptViewModel(d=>{const c=new r.DisposableCollection;i._worksheetDisposables.set(Un(o,u),c),c.add(d.registerCellContentInterceptor({getCell(h,g){return i.fetchThroughInterceptors(ct.CELL_CONTENT)(u.getCellRaw(h,g),{unitId:o,subUnitId:l,row:h,col:g,worksheet:u,workbook:n})}})),c.add(d.registerRowFilteredInterceptor({getRowFiltered(h){return!!i.fetchThroughInterceptors(ct.ROW_FILTERED)(!1,{unitId:o,subUnitId:l,row:h,workbook:n,worksheet:u})}}))})};n.getSheets().forEach(u=>a(u)),t.add(r.toDisposable(n.sheetCreated$.subscribe(u=>a(u)))),t.add(r.toDisposable(()=>n.getSheets().forEach(u=>this._disposeSheetInterceptor(o,u)))),t.add(r.toDisposable(n.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(o,u)))),this._workbookDisposables.set(o,t)}_disposeWorkbookInterceptor(n){const t=n.getUnitId(),o=this._workbookDisposables.get(t);o&&(o.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(n,t){const o=Un(n,t),i=this._worksheetDisposables.get(o);i&&(i.dispose(),this._worksheetDisposables.delete(o))}},m.SheetInterceptorService=Ho([r.OnLifecycle(r.LifecycleStages.Starting,m.SheetInterceptorService),Fo(0,r.IUniverInstanceService)],m.SheetInterceptorService);function Un(s,e){return`${s}|${e.getSheetId()}`}const pe=(s,e)=>{const{unitId:n,subUnitId:t,cellValue:o}=e,a=s.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(a==null)throw new Error("workbook is null error!");const u=a.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const l=u.getCellMatrix(),d=a.getStyles(),c=new r.ObjectMatrix;return new r.ObjectMatrix(o).forValue((g,S,R)=>{const v=r.Tools.deepClone(l==null?void 0:l.getValue(g,S))||{},f=d.getStyleByCell(v);let p=d.getStyleByCell(R);p=Yo(f,p),v.s=p,c.setValue(g,S,Go(v))}),{...e,options:{},cellValue:c.getMatrix()}};function Go(s){return s==null?null:(s.f===void 0&&(s.f=null),s.si===void 0&&(s.si=null),s.p===void 0&&(s.p=null),s.v===void 0&&(s.v=null),s.t===void 0&&(s.t=null),s.s===void 0&&(s.s=null),s.custom===void 0&&(s.custom=null),s)}const K={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(s,e)=>{const{cellValue:n,subUnitId:t,unitId:o}=e,a=s.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!a)return!1;const u=a.getSheetBySheetId(t);if(!u)return!1;const l=u.getCellMatrix(),d=a.getStyles();return new r.ObjectMatrix(n).forValue((h,g,S)=>{if(!S)l==null||l.setValue(h,g,{});else{const R=l.getValue(h,g)||{},v=S.t?S.t:S.v!==void 0?Tn(S.v,S.t):Tn(R.v,R.t);if(S.f!==void 0&&(R.f=S.f),S.si!==void 0&&(R.si=S.si),S.p!==void 0&&(R.p=S.p),S.v!==void 0&&(R.v=v===r.CellValueType.NUMBER?Number(S.v):v===r.CellValueType.BOOLEAN?zo(S.v)?1:0:S.v),R.v!==void 0&&(R.t=v),S.s!==void 0){const f=d.getStyleByCell(R);f==null&&delete R.s,typeof S.s=="string"&&(S.s=d.get(S.s));const p=mt(f,S.s?S.s:null);p&&r.Tools.removeNull(p),r.Tools.isEmptyObject(p)?delete R.s:R.s=d.setValue(p),!S.p&&R.p&&Zo(R.p,S.s?S.s:null)}S.custom!==void 0&&(R.custom=S.custom),l.setValue(h,g,r.Tools.removeNull(R))}}),!0}};function Tn(s,e){return s===null?null:typeof s=="string"?r.isSafeNumeric(s)?(+s==0||+s==1)&&e===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:r.isBooleanString(s)?r.CellValueType.BOOLEAN:r.CellValueType.STRING:typeof s=="number"?(s===0||s===1)&&e===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:typeof s=="boolean"?r.CellValueType.BOOLEAN:r.CellValueType.FORCE_STRING}function zo(s){if(typeof s=="string"){if(s.toUpperCase()==="TRUE")return!0;if(s.toUpperCase()==="FALSE")return!1;if(r.isSafeNumeric(s)){if(Number(s)===0)return!1;if(Number(s)===1)return!0}}if(typeof s=="number"){if(s===0)return!1;if(s===1)return!0}return typeof s=="boolean"?s:null}function Yo(s,e){return qo(s,e)}function qo(s,e){if(!e||!Object.keys(e).length)return s;const n=s||{};for(const t in e)t==="bd"?n[t]=Ko(n[t]||{},e[t]):t in n||(n[t]=null);return n}function Ko(s,e){if(!e||!Object.keys(e).length)return s;for(const n in e)n in s||(s[n]=null);return s}function mt(s,e,n=!1){if(e===null)return e;if(e===void 0)return s;const t=r.Tools.deepClone(s)||{};if(t){for(const o in e)n&&["bd","tr","td","ht","vt","tb","pd"].includes(o)||(o in t&&o==="bd"?t[o]=Object.assign(t[o],e[o]):t[o]=e[o]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}}function En(s,e){return s.some(n=>n.startIndex===e)?En(s,e+1):e}function Zo(s,e){var a;if(s.body==null)return;Array.isArray(s.body.textRuns)||(s.body.textRuns=[]);let n=0;const t=[],o=((a=s.body)==null?void 0:a.paragraphs)||[];for(const u of s.body.textRuns){const{st:l,ed:d,ts:c={}}=u;if(n<l){const g={st:n,ed:l},S=mt({},e,!0);S&&r.Tools.removeNull(S),r.Tools.isEmptyObject(S)||(g.ts=S),t.push(g)}const h=mt(c,e,!0);h&&r.Tools.removeNull(h),r.Tools.isEmptyObject(h)?delete u.ts:u.ts=h,t.push(u),n=En(o,d)}const i=s.body.dataStream.endsWith(`\r
2
+ `)?s.body.dataStream.length-2:s.body.dataStream.length;if(n<i){const u={st:n,ed:i},l=mt({},e,!0);l&&r.Tools.removeNull(l),r.Tools.isEmptyObject(l)||(u.ts=l),t.push(u)}s.body.textRuns=r.normalizeTextRuns(t)}const ht={id:"sheet.command.clear-selection-all",type:r.CommandType.COMMAND,handler:async s=>{const e=s.get(r.IUniverInstanceService),n=s.get(r.ICommandService),t=s.get(m.SelectionManagerService),o=s.get(r.IUndoRedoService),i=s.get(m.SheetInterceptorService),a=e.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const u=a.getUnitId(),d=a.getActiveSheet().getSheetId(),c=t.getSelectionRanges();if(!(c!=null&&c.length))return!1;const h=[],g=[],S={subUnitId:d,unitId:u,cellValue:Xo(c)},R=pe(s,S);h.push({id:K.id,params:S}),g.push({id:K.id,params:R});const v=i.onCommandExecute({id:ht.id});return h.push(...v.redos),g.unshift(...v.undos),r.sequenceExecute(h,n)?(o.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}};function Xo(s){const e=new r.ObjectMatrix;return s.forEach(n=>{const{startRow:t,startColumn:o,endRow:i,endColumn:a}=n;for(let u=t;u<=i;u++)for(let l=o;l<=a;l++)e.setValue(u,l,null)}),e.clone()}const Gt={id:"sheet.command.clear-selection-content",type:r.CommandType.COMMAND,handler:async s=>{const e=s.get(r.IUniverInstanceService),n=s.get(r.ICommandService),t=s.get(m.SelectionManagerService),o=s.get(r.IUndoRedoService),i=s.get(m.SheetInterceptorService),a=e.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const u=a.getUnitId(),d=a.getActiveSheet().getSheetId(),c=t.getSelectionRanges();if(!(c!=null&&c.length))return!1;const h={subUnitId:d,unitId:u,cellValue:Jo(c)},g=pe(s,h),S=i.onCommandExecute({id:Gt.id}),R=[{id:K.id,params:h},...S.redos],v=[...S.undos,{id:K.id,params:g}];return r.sequenceExecute(R,n).result?(o.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:R}),!0):!1}};function Jo(s){const e=new r.ObjectMatrix;return s.forEach(n=>{const{startRow:t,startColumn:o,endRow:i,endColumn:a}=n;for(let u=t;u<=i;u++)for(let l=o;l<=a;l++)e.setValue(u,l,{v:null,p:null,f:null,si:null,custom:null})}),e.clone()}const gt={id:"sheet.command.clear-selection-format",type:r.CommandType.COMMAND,handler:async s=>{const e=s.get(r.IUniverInstanceService),n=s.get(r.ICommandService),t=s.get(m.SelectionManagerService),o=s.get(r.IUndoRedoService),i=s.get(m.SheetInterceptorService),a=e.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const u=a.getUnitId(),d=a.getActiveSheet().getSheetId(),c=t.getSelectionRanges();if(!(c!=null&&c.length))return!1;const h=[],g=[],S={subUnitId:d,unitId:u,cellValue:Qo(c)},R=pe(s,S);h.push({id:K.id,params:S}),g.push({id:K.id,params:R});const v=i.onCommandExecute({id:gt.id});return h.push(...v.redos),g.unshift(...v.undos),r.sequenceExecute(h,n)?(o.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}};function Qo(s){const e=new r.ObjectMatrix;return s.forEach(n=>{const{startRow:t,startColumn:o,endRow:i,endColumn:a}=n;for(let u=t;u<=i;u++)for(let l=o;l<=a;l++)e.setValue(u,l,{s:null})}),e.clone()}const zt=(s,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),De={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService),{sheet:t,index:o,unitId:i}=e,a=n.getUniverSheetInstance(i);return a?a.addWorksheet(t.id,o,t):!1}};function Nn(s,e){const{unitId:n}=e,t=n?s.getUniverSheetInstance(n):s.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);return t?{workbook:t,unitId:t.getUnitId()}:null}function F(s,e={}){const{unitId:n,subUnitId:t}=e,o=n?s.getUniverSheetInstance(n):s.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!o)return null;const i=t?o.getSheetBySheetId(t):o.getActiveSheet();return i?{worksheet:i,workbook:o,unitId:o.getUnitId(),subUnitId:i.getSheetId()}:null}function Rt(s,e){const{unitId:n,subUnitId:t}=e,o=s.getUniverSheetInstance(n);if(!o)return null;const i=o.getSheetBySheetId(t);return i?{worksheet:i,workbook:o}:null}const kn=(s,e)=>{const n=s.get(r.IUniverInstanceService),{subUnitId:t,unitId:o}=e,i=Rt(n,e);if(!i)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:a,worksheet:u}=i,l=u.getConfig();return{index:a.getConfig().sheetOrder.findIndex(h=>h===t),sheet:l,unitId:o}},Fe={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService),{subUnitId:t,unitId:o}=e,i=n.getUniverSheetInstance(o);return i?i.removeSheet(t):!1}},On={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(r.LocaleService),a=F(o,e);if(!a)return!1;const{workbook:u,worksheet:l,unitId:d}=a,c=r.Tools.deepClone(l.getConfig());c.name+=i.t("sheets.tabs.sheetCopy"),c.id=r.Tools.generateRandomId();const g={index:u.getSheetIndex(l)+1,sheet:c,unitId:d},S=zt(s,g);return n.syncExecuteCommand(De.id,g)?(t.pushUndoRedo({unitID:d,undoMutations:[{id:Fe.id,params:S}],redoMutations:[{id:De.id,params:g}]}),!0):!1}},Ge={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(s,e)=>{const{from:n,to:t}=e;if(!n||!t)return!1;const i=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getSheetBySheetId(e.from.subUnitId),u=i.getSheetBySheetId(e.to.subUnitId);if(!a||!u)return!1;const l=a.getCellMatrix(),d=u.getCellMatrix();return new r.ObjectMatrix(n.value).forValue((c,h,g)=>{l.setValue(c,h,g)}),new r.ObjectMatrix(t.value).forValue((c,h,g)=>{d.setValue(c,h,g)}),!0}},Z={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(s,e)=>{const n=s.get(m.SelectionManagerService);if(!e)return!1;const{selections:t,type:o}=e;return n.replace(t,o),!0}};function et(s,e,n=!0){const t=e.getMatrixWithMergedCells(...r.selectionToArray(s)),o=[];if(t.forValue((a,u,l)=>{if(l.colSpan!==void 0&&l.rowSpan!==void 0){const d={startRow:a,startColumn:u,endRow:a+l.rowSpan-1,endColumn:u+l.colSpan-1};r.Rectangle.contains(s,d)||o.push(d)}}),o.length===0)return s;const i=r.Rectangle.union(s,...o);return n?et(i,e,n):i}function xo(s,e,n){let t=null;return n.getMatrixWithMergedCells(s,e,s,e).forValue((i,a,u)=>(t={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:i+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:a+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:r.RANGE_TYPE.NORMAL},!1)),t||{actualColumn:e,actualRow:s,startRow:s,startColumn:e,endRow:s,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:r.RANGE_TYPE.NORMAL}}function er(s,e,n){const{startRow:t,startColumn:o,endRow:i,endColumn:a}=s;return Number.isNaN(t)&&(s.startRow=0),Number.isNaN(i)&&(s.endRow=e-1),Number.isNaN(o)&&(s.startColumn=0),Number.isNaN(a)&&(s.endColumn=n-1),s}function ae(s,e){const n=Number.isNaN(s.startRow)?0:s.startRow,t=Number.isNaN(s.startColumn)?0:s.startColumn,o=e.getMergedCell(n,t);return o?{...o,actualRow:n,actualColumn:t,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:t,endRow:s.startRow,endColumn:s.startColumn,actualRow:n,actualColumn:t,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Me=(s,e,n)=>({id:Z.id,params:{unitId:e.getUnitId(),subUnitId:n.getSheetId(),pluginName:Q,selections:[{range:s,primary:ae(s,n)}]}});function tr(s){if(!s)return!1;const{range:e,primary:n}=s;return r.Rectangle.equals(e,n)}function nr(s){function e(n,t){function o(i){for(let a=i.startRow;a<=i.endRow;a++)if(!s.getRowFiltered(a))for(let u=i.startColumn;u<=i.endColumn;u++)t(a,u,i)}o(n)}return{forOperableEach:e}}const Dn="sheet.command.move-range",St={type:r.CommandType.COMMAND,id:Dn,handler:(s,e)=>{var p,M;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(r.ErrorService),a=s.get(r.LocaleService),u=F(o);if(!u)return!1;const{worksheet:l,subUnitId:d,unitId:c}=u,h=vt(s,{unitId:c,subUnitId:d,range:e.fromRange},{unitId:c,subUnitId:d,range:e.toRange});if(h===null)return i.emit(a.t("sheets.info.acrossMergedCell")),!1;const S=s.get(m.SheetInterceptorService).onCommandExecute({id:St.id,params:{...e}}),R=[...(p=S.preRedos)!=null?p:[],...h.redos,...S.redos,{id:Z.id,params:{unitId:c,subUnitId:d,pluginName:Q,selections:[{range:e.toRange,primary:ae(e.toRange,l)}]}}],v=[...(M=S.preUndos)!=null?M:[],...h.undos,...S.undos,{id:Z.id,params:{unitId:c,subUnitId:d,pluginName:Q,selections:[{range:e.fromRange,primary:ae(e.fromRange,l)}]}}];return r.sequenceExecute(R,n).result?(t.pushUndoRedo({unitID:c,undoMutations:v,redoMutations:R}),!0):!1}};function vt(s,e,n,t=!1){const o=[],i=[],{range:a,subUnitId:u,unitId:l}=e,{range:d,subUnitId:c}=n,g=s.get(r.IUniverInstanceService).getUniverSheetInstance(l),S=g==null?void 0:g.getSheetBySheetId(c),R=g==null?void 0:g.getSheetBySheetId(u),v=S==null?void 0:S.getCellMatrix(),f=R==null?void 0:R.getCellMatrix();if(S&&R&&v&&f){const p=et(d,S,!1);if(!r.Rectangle.equals(d,p)&&!t)return null;const M=new r.ObjectMatrix,I=new r.ObjectMatrix;r.Range.foreach(a,(U,N)=>{M.setValue(U,N,f.getValue(U,N)),I.setValue(U,N,null)});const y=new r.ObjectMatrix;r.Range.foreach(d,(U,N)=>{y.setValue(U,N,v.getValue(U,N))});const w=new r.ObjectMatrix;r.Range.foreach(a,(U,N)=>{const A=r.cellToRange(U,N),Y=r.Rectangle.getRelativeRange(A,a),H=r.Rectangle.getPositionRange(Y,d);w.setValue(H.startRow,H.startColumn,f.getValue(U,N))});const _={from:{value:I.getMatrix(),subUnitId:u},to:{value:w.getMatrix(),subUnitId:c},unitId:l},T={from:{value:M.getMatrix(),subUnitId:u},to:{value:y.getMatrix(),subUnitId:c},unitId:l};o.push({id:Ge.id,params:_}),i.push({id:Ge.id,params:T})}return{redos:o,undos:i}}var Ct=(s=>(s[s.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",s[s.UNIVER_DOC=1]="UNIVER_DOC",s[s.UNIVER_SHEET=2]="UNIVER_SHEET",s[s.UNIVER_SLIDE=3]="UNIVER_SLIDE",s[s.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(Ct||{}),b=(s=>(s[s.View=0]="View",s[s.Edit=1]="Edit",s[s.ManageCollaborator=2]="ManageCollaborator",s[s.Print=3]="Print",s[s.Duplicate=4]="Duplicate",s[s.Comment=5]="Comment",s[s.Copy=6]="Copy",s[s.Share=7]="Share",s[s.Export=8]="Export",s[s.MoveWorksheet=9]="MoveWorksheet",s[s.DeleteWorksheet=10]="DeleteWorksheet",s[s.HideWorksheet=11]="HideWorksheet",s[s.RenameWorksheet=12]="RenameWorksheet",s[s.CreateWorksheet=13]="CreateWorksheet",s[s.SetWorksheetStyle=14]="SetWorksheetStyle",s[s.EditWorksheetCell=15]="EditWorksheetCell",s[s.InsertHyperlink=16]="InsertHyperlink",s[s.Sort=17]="Sort",s[s.Filter=18]="Filter",s[s.PivotTable=19]="PivotTable",s[s.FloatImg=20]="FloatImg",s[s.History=21]="History",s[s.RwHgtClWdt=22]="RwHgtClWdt",s[s.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",s[s.ViewFilter=24]="ViewFilter",s[s.MoveSheet=25]="MoveSheet",s[s.DeleteSheet=26]="DeleteSheet",s[s.HideSheet=27]="HideSheet",s[s.CopySheet=28]="CopySheet",s[s.RenameSheet=29]="RenameSheet",s[s.CreateSheet=30]="CreateSheet",s[s.SelectProtectedCells=31]="SelectProtectedCells",s[s.SelectUnProtectedCells=32]="SelectUnProtectedCells",s[s.SetCellStyle=33]="SetCellStyle",s[s.SetCellValue=34]="SetCellValue",s[s.SetRowStyle=35]="SetRowStyle",s[s.SetColumnStyle=36]="SetColumnStyle",s[s.InsertRow=37]="InsertRow",s[s.InsertColumn=38]="InsertColumn",s[s.DeleteRow=39]="DeleteRow",s[s.DeleteColumn=40]="DeleteColumn",s[s.EditExtraObject=41]="EditExtraObject",s[s.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(b||{}),D=(s=>(s[s.Unkonwn=0]="Unkonwn",s[s.Workbook=1]="Workbook",s[s.Worksheet=2]="Worksheet",s[s.SelectRange=3]="SelectRange",s[s.Document=4]="Document",s[s.Slide=5]="Slide",s[s.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(D||{});class An{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.Copy);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.Copy}_${e}_${n}`}}class sr{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.SelectProtectedCells);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.SelectProtectedCells}_${e}_${n}`}}class or{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.SelectUnProtectedCells);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.SelectUnProtectedCells}_${e}_${n}`}}class Wn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.SetCellStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.SetCellStyle}_${e}_${n}`}}class Vn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.SetCellValue);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.SetCellValue}_${e}_${n}`}}class Ln{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.View);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.View}_${e}_${n}`}}class $n{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.SetRowStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.SetRowStyle}_${e}_${n}`}}class jn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.SetColumnStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.SetColumnStyle}_${e}_${n}`}}class Bn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.InsertRow);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.InsertRow}_${e}_${n}`}}class Hn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.InsertColumn);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.InsertColumn}_${e}_${n}`}}class Fn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.InsertHyperlink);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.InsertHyperlink}_${e}_${n}`}}class Gn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.DeleteRow);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.DeleteRow}_${e}_${n}`}}class zn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.DeleteColumn);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.DeleteColumn}_${e}_${n}`}}class Yn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.Sort);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.Sort}_${e}_${n}`}}class qn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.Filter);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.Filter}_${e}_${n}`}}class Kn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.PivotTable);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.PivotTable}_${e}_${n}`}}class Zn{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.EditExtraObject);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.EditExtraObject}_${e}_${n}`}}class rr{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.ManageCollaborator);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.ManageCollaborator}_${e}_${n}`}}class Yt{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",r.PermissionStatus.INIT);C(this,"id");C(this,"subType",b.Edit);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${b.Edit}_${e}_${n}`}}class Xn{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.Comment}_${e}`}}class Jn{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.Edit}_${e}`}}class ir{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.Duplicate}_${e}`}}class Qn{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.Print}_${e}`}}class xn{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.Export}_${e}`}}class ar{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.MoveSheet}_${e}`}}class ur{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.DeleteSheet}_${e}`}}class lr{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.HideSheet}_${e}`}}class dr{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.RenameSheet}_${e}`}}class cr{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.CreateSheet}_${e}`}}class mr{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.History);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.History}_${e}`}}class es{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.View}_${e}`}}class hr{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.Share}_${e}`}}class ts{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.Copy}_${e}`}}class ns{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",r.PermissionStatus.INIT);C(this,"subType",b.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${b.ManageCollaborator}_${e}`}}class ss{constructor(e,n,t){C(this,"type",D.SelectRange);C(this,"subType",b.Edit);C(this,"status",r.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=n,this.permissionId=t,this.id=`${D.SelectRange}.${b.Edit}.${t}`}}class os{constructor(e,n,t){C(this,"type",D.SelectRange);C(this,"subType",b.View);C(this,"status",r.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=n,this.permissionId=t,this.id=`${D.SelectRange}.${b.View}.${t}`}}const tt={id:"sheet.command.set-range-values",type:r.CommandType.COMMAND,handler:(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SelectionManagerService),a=s.get(m.SheetInterceptorService),u=s.get(r.IPermissionService),l=F(o,{subUnitId:e.subUnitId,unitId:e.unitId});if(!l)return!1;const{subUnitId:d,unitId:c}=l,{value:h,range:g}=e,S=g?[g]:i.getSelectionRanges();if(!S||!S.length||!u.getPermissionPoint(new Yt(c,d).id))return!1;const R=new r.ObjectMatrix;let v;if(r.Tools.isArray(h))for(let _=0;_<S.length;_++){const{startRow:T,startColumn:U,endRow:N,endColumn:A}=S[_];for(let Y=0;Y<=N-T;Y++)for(let H=0;H<=A-U;H++)R.setValue(Y+T,H+U,h[Y][H])}else if(r.isICellData(h))for(let _=0;_<S.length;_++){const{startRow:T,startColumn:U,endRow:N,endColumn:A}=S[_];for(let Y=T;Y<=N;Y++)for(let H=U;H<=A;H++)R.setValue(Y,H,h)}else v=h;const f={subUnitId:d,unitId:c,cellValue:v!=null?v:R.getMatrix()},p=pe(s,f),M=n.syncExecuteCommand(K.id,f),{undos:I,redos:y}=a.onCommandExecute({id:tt.id,params:{...f,range:S}}),w=r.sequenceExecute([...y],n);return M&&w.result?(t.pushUndoRedo({unitID:c,undoMutations:[{id:K.id,params:p},...I],redoMutations:[{id:K.id,params:f},...y]}),!0):!1}};function qt(s,e){const n=[],t=[],{unitId:o,subUnitId:i,range:a,shiftDimension:u,cellValue:l={}}=e,d=s.get(r.IUniverInstanceService),c=s.get(m.SheetInterceptorService),h=d.getUniverSheetInstance(o),g=h==null?void 0:h.getSheetBySheetId(i);if(g){const S=g.getCellMatrix(),R=S.getDataRange();if(a.startColumn<=R.endColumn||a.startRow<=R.endRow){let I,y;if(u===r.Dimension.COLUMNS){const _=Math.min(a.endRow,R.endRow);let T=0;for(let N=a.startRow;N<=_;N++){const A=S.getRow(N),Y=A?r.getArrayLength(A)-1:0;T=Math.max(T,Y)}I={startRow:a.startRow,startColumn:a.startColumn,endRow:_,endColumn:T};const U=a.endColumn-a.startColumn+1;y={startRow:a.startRow,startColumn:I.startColumn+U,endRow:_,endColumn:I.endColumn+U}}else{const _=Math.min(a.endColumn,R.endColumn),T=R.endRow;I={startRow:a.startRow,startColumn:a.startColumn,endRow:T,endColumn:_};const U=a.endRow-a.startRow+1;y={startRow:I.startRow+U,startColumn:a.startColumn,endRow:I.endRow+U,endColumn:_}}const w=vt(s,{unitId:o,subUnitId:i,range:I},{unitId:o,subUnitId:i,range:y},!0);w&&(n.push(...w.redos),t.push(...w.undos))}if(Object.entries(l).length===0)for(let I=a.startRow;I<=a.endRow;I++){l[I]||(l[I]={});for(let y=a.startColumn;y<=a.endColumn;y++)l[I][y]=null}const v={subUnitId:i,unitId:o,cellValue:l},f=pe(s,v),{undos:p,redos:M}=c.onCommandExecute({id:tt.id,params:{...v,range:a}});n.push({id:K.id,params:v},...M),t.push({id:K.id,params:f},...p)}return{redo:n,undo:t}}function Kt(s,e){const n=[],t=[],{unitId:o,subUnitId:i,range:a,shiftDimension:u}=e,l=s.get(r.IUniverInstanceService),d=s.get(m.SheetInterceptorService),c=l.getUniverSheetInstance(o),h=c==null?void 0:c.getSheetBySheetId(i);if(h){const g=h.getCellMatrix(),S=g.getDataRange(),R={subUnitId:i,unitId:o,cellValue:Sr([a])},v=pe(s,R),f=d.onCommandExecute({id:tt.id,params:R});if(n.push({id:K.id,params:R},...f.redos),t.push(...f.undos,{id:K.id,params:v}),a.startColumn<=S.endColumn||a.startRow<=S.endRow){let p=null,M=null;if(u===r.Dimension.COLUMNS&&a.endColumn<S.endColumn){const I=Math.min(a.endRow,S.endRow);let y=0;for(let _=a.startRow;_<=I;_++){const T=g.getRow(_),U=T?r.getArrayLength(T)-1:0;y=Math.max(y,U)}p={startRow:a.startRow,startColumn:a.endColumn+1,endRow:I,endColumn:y};const w=a.endColumn-a.startColumn+1;M={startRow:a.startRow,startColumn:p.startColumn-w,endRow:I,endColumn:p.endColumn-w}}if(u===r.Dimension.ROWS&&a.endRow<S.endRow){const I=Math.min(a.endColumn,S.endColumn),y=S.endRow;p={startRow:a.endRow+1,startColumn:a.startColumn,endRow:y,endColumn:I};const w=a.endRow-a.startRow+1;M={startRow:p.startRow-w,startColumn:a.startColumn,endRow:p.endRow-w,endColumn:I}}if(p&&M){const I=vt(s,{unitId:o,subUnitId:i,range:p},{unitId:o,subUnitId:i,range:M},!0);I&&(n.push(...I.redos),t.push(...I.undos))}}}return{redo:n,undo:t}}function gr(s,e,n,t,o,i){const{startRow:a,endRow:u,startColumn:l,endColumn:d}=e;if(o===r.Dimension.ROWS){const c=u-a+1;for(let h=n;h>=a;h--)for(let g=l;g<=d;g++){const S=s.getValue(h,g);S==null?s.realDeleteValue(h+c,g):s.setValue(h+c,g,S)}for(let h=u;h>=a;h--)for(let g=l;g<=d;g++)i&&i[h]&&i[h][g]?s.setValue(h,g,i[h][g]):s.realDeleteValue(h,g)}else if(o===r.Dimension.COLUMNS){const c=d-l+1;for(let h=a;h<=u;h++)for(let g=t;g>=l;g--){const S=s.getValue(h,g);S==null?s.realDeleteValue(h,g+c):s.setValue(h,g+c,S)}for(let h=a;h<=u;h++)for(let g=d;g>=l;g--)i&&i[h]&&i[h][g]?s.setValue(h,g,i[h][g]):s.realDeleteValue(h,g)}}function Rr(s,e,n,t,o){const{startRow:i,endRow:a,startColumn:u,endColumn:l}=e,d=a-i+1,c=l-u+1;if(o===r.Dimension.ROWS)for(let h=i;h<=n;h++)for(let g=u;g<=l;g++){const S=s.getValue(h+d,g);S==null?s.realDeleteValue(h,g):s.setValue(h,g,S)}else if(o===r.Dimension.COLUMNS)for(let h=i;h<=a;h++)for(let g=u;g<=t;g++){const S=s.getValue(h,g+c);S==null?s.realDeleteValue(h,g):s.setValue(h,g,S)}}function Sr(s){const e=new r.ObjectMatrix;return s.forEach(n=>{const{startRow:t,startColumn:o,endRow:i,endColumn:a}=n;for(let u=t;u<=i;u++)for(let l=o;l<=a;l++)e.setValue(u,l,null)}),e.getData()}const rs="sheet.command.delete-range-move-left",ft={type:r.CommandType.COMMAND,id:rs,handler:async(s,e)=>{var y,w,_;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SelectionManagerService),a=s.get(m.SheetInterceptorService),u=F(o);if(!u)return!1;const{worksheet:l,workbook:d,subUnitId:c,unitId:h}=u;let g=e==null?void 0:e.range;if(g||(g=(y=i.getLast())==null?void 0:y.range),!g)return!1;const S={range:g,subUnitId:c,unitId:h,shiftDimension:r.Dimension.COLUMNS},R=a.onCommandExecute({id:ft.id,params:{range:g}}),{redo:v,undo:f}=Kt(s,S),p=[...(w=R.preRedos)!=null?w:[],...v],M=[...R.undos,...f];return p.push(...R.redos),p.push(Me(g,d,l)),M.push(...(_=R.preUndos)!=null?_:[]),r.sequenceExecute(p,n).result?(t.pushUndoRedo({unitID:h,undoMutations:M.reverse(),redoMutations:p}),!0):!1}},is="sheet.command.delete-range-move-up",It={type:r.CommandType.COMMAND,id:is,handler:async(s,e)=>{var y,w,_;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SelectionManagerService),a=s.get(m.SheetInterceptorService),u=F(o);if(!u)return!1;const{unitId:l,subUnitId:d,workbook:c,worksheet:h}=u;let g=e==null?void 0:e.range;if(g||(g=(y=i.getLast())==null?void 0:y.range),!g)return!1;const S={range:g,subUnitId:d,unitId:l,shiftDimension:r.Dimension.ROWS},R=a.onCommandExecute({id:It.id,params:{range:g}}),{redo:v,undo:f}=Kt(s,S),p=[...(w=R.preRedos)!=null?w:[],...v],M=[...R.undos,...f];return p.push(...R.redos),p.push(Me(g,c,h)),M.push(...(_=R.preUndos)!=null?_:[]),r.sequenceExecute(p,n).result?(t.pushUndoRedo({unitID:l,undoMutations:M.reverse(),redoMutations:p}),!0):!1}},Zt=(s,e)=>{if(s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},we={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(s,e)=>{var R;const{unitId:n,subUnitId:t,range:o,rowInfo:i}=e,u=s.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(u==null)throw new Error("universheet is null error!");const l=u.getSheetBySheetId(t);if(l==null)throw new Error("worksheet is null error!");const d=l.getRowManager().getRowData(),c={h:l.getConfig().defaultRowHeight,hd:0},h=o.startRow,g=o.endRow-o.startRow+1;for(let v=h;v<h+g;v++)i?r.insertMatrixArray(v,(R=i[v-o.startRow])!=null?R:c,d):r.insertMatrixArray(v,c,d);return l.setRowCount(l.getRowCount()+o.endRow-o.startRow+1),l.getCellMatrix().insertRows(o.startRow,g),!0}},Xt=(s,e)=>{if(s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},ye={id:"sheet.mutation.insert-col",type:r.CommandType.MUTATION,handler:(s,e)=>{var R;const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(!o)return!1;const i=o.getColumnManager(),{range:a,colInfo:u}=e,d=i.getColumnData(),c=a.startColumn,h=a.endColumn-a.startColumn+1,g=o.getConfig().defaultColumnWidth;for(let v=c;v<c+h;v++){const f={w:g,hd:0};u?r.insertMatrixArray(v,(R=u[v-a.startColumn])!=null?R:f,d):r.insertMatrixArray(v,f,d)}return o.setColumnCount(o.getColumnCount()+a.endColumn-a.startColumn+1),o.getCellMatrix().insertColumns(a.startColumn,h),!0}},vr=(s,e)=>{const o=e.getRowManager().getRowData(),i={},a=s.range,u=r.sliceMatrixArray(a.startRow,a.endRow,o),l=r.concatMatrixArray(i,u);return{unitId:s.unitId,subUnitId:s.subUnitId,range:s.range,rowInfo:l}},_e={id:"sheet.mutation.remove-rows",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(!o)return!1;const i=e.range,u=o.getRowManager().getRowData();for(let c=i.startRow;c<=i.endRow;c++)o.getRowFiltered(c);const l=i.endRow-i.startRow+1;return r.spliceArray(i.startRow,l,u),o.getCellMatrix().removeRows(i.startRow,l),o.setRowCount(o.getRowCount()-l),!0}},Cr=(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(o==null)throw new Error("worksheet is null error!");const u=o.getColumnManager().getColumnData(),l={},d=e.range,c=r.sliceMatrixArray(d.startColumn,d.endColumn,u),h=r.concatMatrixArray(l,c);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:h}},fe={id:"sheet.mutation.remove-col",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(!o)return!1;const i=e.range,u=o.getColumnManager().getColumnData(),l=i.endColumn-i.startColumn+1;return r.spliceArray(i.startColumn,l,u),o.setColumnCount(o.getColumnCount()-l),o.getCellMatrix().removeColumns(i.startColumn,l),!0}},fr="sheet.command.insert-range-move-down",pt={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(s,e)=>{var H,P,oe;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SelectionManagerService),a=s.get(m.SheetInterceptorService),u=s.get(r.ErrorService),l=s.get(r.LocaleService);if(i.isOverlapping())return u.emit(l.t("sheets.info.overlappingSelections")),!1;const d=F(o);if(!d)return!1;const{unitId:c,subUnitId:h,worksheet:g,workbook:S}=d;let R=e==null?void 0:e.range;if(R||(R=(H=i.getLast())==null?void 0:H.range),!R)return!1;const v=[],f=[],p=g.getCellMatrix(),M=p.getDataRange(),y=p.getSlice(M.startRow,M.endRow,R.startColumn,R.endColumn).getDataRange().endRow,w=Math.max(y+(R.endRow-R.startRow+1)-M.endRow,0);if(w>0){const te=R.startRow-1,ne=g.getRowHeight(te),J={unitId:c,subUnitId:h,range:{startRow:M.endRow+1,endRow:M.endRow+w,startColumn:M.startColumn,endColumn:M.endColumn},rowInfo:new Array(w).fill(void 0).map(()=>({h:ne,hd:r.BooleanNumber.FALSE}))};v.push({id:we.id,params:J});const se=Zt(s,J);f.push({id:_e.id,params:se})}const _={};r.Range.foreach(R,(te,ne)=>{const J=g.getCell(te,ne);J&&(_[te]||(_[te]={}),_[te][ne]={s:J.s})});const T={range:R,subUnitId:h,unitId:c,shiftDimension:r.Dimension.ROWS,cellValue:_},{redo:U,undo:N}=qt(s,T);v.push(...U),f.push(...N);const A=a.onCommandExecute({id:pt.id,params:{range:R}});return v.push(...A.redos),v.push(Me(R,S,g)),f.push(...(P=A.preUndos)!=null?P:[]),v.unshift(...(oe=A.preRedos)!=null?oe:[]),f.unshift(...A.undos),r.sequenceExecute(v,n)?(t.pushUndoRedo({unitID:c,undoMutations:f.reverse(),redoMutations:v}),!0):!1}},as="sheet.command.insert-range-move-right",Mt={type:r.CommandType.COMMAND,id:as,handler:async(s,e)=>{var H,P,oe;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SelectionManagerService),a=s.get(m.SheetInterceptorService),u=s.get(r.ErrorService),l=s.get(r.LocaleService);if(i.isOverlapping())return u.emit(l.t("sheets.info.overlappingSelections")),!1;const d=F(o);if(!d)return!1;const{workbook:c,worksheet:h,unitId:g,subUnitId:S}=d;let R=e==null?void 0:e.range;if(R||(R=(H=i.getLast())==null?void 0:H.range),!R)return!1;const v=[],f=[],p=h.getCellMatrix(),M=p.getDataRange(),y=p.getSlice(R.startRow,R.endRow,M.startColumn,M.endColumn).getDataRange().endColumn,w=Math.max(y+(R.endColumn-R.startColumn+1)-M.endColumn,0);if(w>0){const te=R.startColumn-1,ne=h.getColumnWidth(te),J={unitId:g,subUnitId:S,range:{startRow:M.startRow+1,endRow:M.endRow,startColumn:M.endColumn+1,endColumn:M.endColumn+w},colInfo:new Array(w).fill(void 0).map(()=>({w:ne,hd:r.BooleanNumber.FALSE}))};v.push({id:ye.id,params:J});const se=Xt(s,J);f.push({id:fe.id,params:se})}const _={};r.Range.foreach(R,(te,ne)=>{const J=h.getCell(te,ne);!J||!J.s||(_[te]||(_[te]={}),_[te][ne]={s:J.s})});const T={range:R,subUnitId:S,unitId:g,shiftDimension:r.Dimension.COLUMNS,cellValue:_},{redo:U,undo:N}=qt(s,T);v.push(...U),f.push(...N);const A=a.onCommandExecute({id:Mt.id,params:{range:R}});return v.push(...A.redos),v.push(Me(R,c,h)),f.push(...(P=A.preUndos)!=null?P:[]),v.unshift(...(oe=A.preRedos)!=null?oe:[]),f.unshift(...A.undos),r.sequenceExecute(v,n).result?(t.pushUndoRedo({unitID:g,undoMutations:f.reverse(),redoMutations:v}),!0):!1}},us="sheet.command.insert-row",Ae={type:r.CommandType.COMMAND,id:us,handler:async(s,e)=>{var T,U,N,A;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SheetInterceptorService),a=o.getUniverSheetInstance(e.unitId),u=a.getSheetBySheetId(e.subUnitId),{range:l,direction:d,unitId:c,subUnitId:h,cellValue:g}=e,{startRow:S,endRow:R}=l,v=d===r.Direction.UP?S:S-1,f=u.getRowHeight(v),p={unitId:c,subUnitId:h,range:l,rowInfo:new Array(R-S+1).fill(void 0).map(()=>({h:f,hd:r.BooleanNumber.FALSE}))},M=Zt(s,p),I=[{id:we.id,params:p}],y=[{id:_e.id,params:M}];g&&I.push({id:K.id,params:{unitId:c,subUnitId:h,cellValue:g}});const w=i.onCommandExecute({id:Ae.id,params:e});return I.unshift(...(T=w.preRedos)!=null?T:[]),I.push(...(U=w.redos)!=null?U:[]),I.push(Me(l,a,u)),y.unshift(...(N=w.preUndos)!=null?N:[]),y.push(...(A=w.undos)!=null?A:[]),r.sequenceExecute(I,n).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:y,redoMutations:I}),!0):!1}},ls={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async s=>{var g;const n=(g=s.get(m.SelectionManagerService).getSelections())==null?void 0:g.map(S=>S.range);let t;if((n==null?void 0:n.length)===1)t=n[0];else return!1;const i=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),l=a.getSheetId(),d=t.endRow-t.startRow+1,c={};r.Range.foreach(t,(S,R)=>{const v=a.getCell(S,R);!v||!v.s||(c[S]||(c[S]={}),c[S][R]={s:v.s})});const h={unitId:u,subUnitId:l,direction:r.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+d-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:c};return s.get(r.ICommandService).executeCommand(Ae.id,h)}},ds={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async s=>{var h;const n=(h=s.get(m.SelectionManagerService).getSelections())==null?void 0:h.map(g=>g.range);let t;if((n==null?void 0:n.length)===1)t=n[0];else return!1;const i=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),l=a.getSheetId(),d=t.endRow-t.startRow+1,c={unitId:u,subUnitId:l,direction:r.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+d,startColumn:0,endColumn:a.getColumnCount()-1}};return s.get(r.ICommandService).executeCommand(Ae.id,c)}},cs="sheet.command.insert-col",We={type:r.CommandType.COMMAND,id:cs,handler:async(s,e)=>{var T,U,N,A;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SheetInterceptorService),{range:a,direction:u,subUnitId:l,unitId:d,cellValue:c}=e,{startColumn:h,endColumn:g}=e.range,S=o.getUniverSheetInstance(e.unitId),R=S.getSheetBySheetId(e.subUnitId),v=u===r.Direction.LEFT?h:h-1,f=R.getColumnWidth(v),p={unitId:d,subUnitId:l,range:a,colInfo:new Array(g-h+1).fill(void 0).map(()=>({w:f,hd:r.BooleanNumber.FALSE}))},M=Xt(s,p),I=[{id:ye.id,params:p}],y=[{id:fe.id,params:M}];c&&I.push({id:K.id,params:{unitId:d,subUnitId:l,cellValue:c}});const w=i.onCommandExecute({id:We.id,params:e});return I.unshift(...(T=w.preRedos)!=null?T:[]),I.push(...(U=w.redos)!=null?U:[]),I.push(Me(a,S,R)),y.unshift(...(N=w.preUndos)!=null?N:[]),y.push(...(A=w.undos)!=null?A:[]),r.sequenceExecute(I,n).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:y.filter(Boolean),redoMutations:I.filter(Boolean)}),!0):!1}},ms={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async s=>{const n=s.get(m.SelectionManagerService).getSelections();let t;if((n==null?void 0:n.length)===1)t=n[0].range;else return!1;const i=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),l=a.getSheetId(),d=t.endColumn-t.startColumn+1,c={};r.Range.foreach(t,(g,S)=>{const R=a.getCell(g,S);!R||!R.s||(c[g]||(c[g]={}),c[g][S]={s:R.s})});const h={unitId:u,subUnitId:l,direction:r.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+d-1,startRow:0,endRow:a.getLastRowWithContent()},cellValue:c};return s.get(r.ICommandService).executeCommand(We.id,h)}},hs={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async s=>{const n=s.get(m.SelectionManagerService).getSelections();let t;if((n==null?void 0:n.length)===1)t=n[0].range;else return!1;const i=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),l=a.getSheetId(),d=t.endColumn-t.startColumn+1,c={unitId:u,subUnitId:l,direction:r.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+d,startRow:0,endRow:a.getLastRowWithContent()}};return s.get(r.ICommandService).executeCommand(We.id,c)}},gs={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(s,e)=>{var R;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(r.LocaleService),a=Nn(o,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:u,workbook:l}=a;let d=l.getSheets().length,c=r.mergeWorksheetSnapshotWithDefault({});e?(d=(R=e.index)!=null?R:d,e.sheet?c=e.sheet:(c.id=r.Tools.generateRandomId(),c.name=l.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`))):(c.id=r.Tools.generateRandomId(),c.name=l.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const h={index:d,sheet:c,unitId:u},g=zt(s,h);return n.syncExecuteCommand(De.id,h)?(t.pushUndoRedo({unitID:u,undoMutations:[{id:Fe.id,params:g}],redoMutations:[{id:De.id,params:h}]}),!0):!1}};function Rs(s,e){const{unitId:n,subUnitId:t,sourceRange:o,targetRange:i}=e,a=o.startRow>i.startRow,u=o.endRow-o.startRow+1;return a?{unitId:n,subUnitId:t,sourceRange:r.Rectangle.clone(i),targetRange:{...o,endRow:o.endRow+u,startRow:o.startRow+u}}:{unitId:n,subUnitId:t,targetRange:r.Rectangle.clone(o),sourceRange:{...i,endRow:i.endRow-u,startRow:i.startRow-u}}}const Ue={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t,sourceRange:o,targetRange:i}=e,u=s.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const l=u.getSheetBySheetId(t);if(!l)throw new Error("[MoveRowMutation] worksheet is null!");const d=o.startRow,c=o.endRow-o.startRow+1,h=i.startRow,g=l.getRowManager().getRowData();return r.moveMatrixArray(d,c,h,g),l.getCellMatrix().moveRows(d,c,h),!0}};function Ss(s,e){const{unitId:n,subUnitId:t,sourceRange:o,targetRange:i}=e,a=o.startColumn>i.startColumn,u=o.endColumn-o.startColumn+1;return a?{unitId:n,subUnitId:t,sourceRange:r.Rectangle.clone(i),targetRange:{...o,endColumn:o.endColumn+u,startColumn:o.startColumn+u}}:{unitId:n,subUnitId:t,targetRange:r.Rectangle.clone(o),sourceRange:{...i,startColumn:i.startColumn-u,endColumn:i.endColumn-u}}}const Te={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t,sourceRange:o,targetRange:i}=e,u=s.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const l=u.getSheetBySheetId(t);if(!l)throw new Error("[MoveColumnMutation] worksheet is null!");const d=o.startColumn,c=o.endColumn-o.startColumn+1,h=i.startColumn,g=l.getColumnManager().getColumnData();return r.moveMatrixArray(d,c,h,g),l.getCellMatrix().moveColumns(d,c,h),!0}};function Ir(s,e){return e.getMergeData().some(n=>n.startRow<s&&s<=n.endRow)}function pr(s,e){return e.getMergeData().some(n=>n.startColumn<s&&s<=n.endColumn)}const vs="sheet.command.move-rows",wt={id:vs,type:r.CommandType.COMMAND,handler:async(s,e)=>{var ne,J;const t=s.get(m.SelectionManagerService).getSelections(),{fromRange:{startRow:o},toRange:{startRow:i}}=e,a=t==null?void 0:t.filter(se=>se.range.rangeType===r.RANGE_TYPE.ROW&&se.range.startRow<=o&&o<=se.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const u=s.get(m.SheetInterceptorService),d=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const c=d.getActiveSheet();if(!c)return!1;const h=d.getUnitId(),g=c.getSheetId(),S=s.get(r.ErrorService),R=s.get(r.LocaleService),v=a[0].range,f=a[0].primary,p=et(v,c,!1);if(!r.Rectangle.equals(v,p))return S.emit(R.t("sheets.info.partOfCell")),!1;if(Ir(i,c))return S.emit(R.t("sheets.info.acrossMergedCell")),!1;const M={...v,startRow:i,endRow:i+v.endRow-v.startRow},I={unitId:h,subUnitId:g,sourceRange:v,targetRange:M},y=Rs(s,I),_=i-o<0,T=v.endRow-v.startRow+1,U=_?M:{...M,startRow:M.startRow-T,endRow:M.endRow-T},N={unitId:h,subUnitId:g,pluginName:Q,selections:[{range:U,primary:ae(U,c),style:null}]},A={unitId:h,subUnitId:g,pluginName:Q,selections:[{range:v,primary:f,style:null}]},Y=s.get(r.ICommandService),H=u.onCommandExecute({id:wt.id,params:e}),P=[...(ne=H.preRedos)!=null?ne:[],{id:Ue.id,params:I},{id:Z.id,params:N},...H.redos],oe=[...(J=H.preUndos)!=null?J:[],{id:Ue.id,params:y},{id:Z.id,params:A},...H.undos];return r.sequenceExecute(P,Y).result?(s.get(r.IUndoRedoService).pushUndoRedo({unitID:h,undoMutations:oe,redoMutations:P}),!0):!1}},Cs="sheet.command.move-cols",yt={id:Cs,type:r.CommandType.COMMAND,handler:async(s,e)=>{var ne,J;const t=s.get(m.SelectionManagerService).getSelections(),{fromRange:{startColumn:o},toRange:{startColumn:i}}=e,a=t==null?void 0:t.filter(se=>se.range.rangeType===r.RANGE_TYPE.COLUMN&&se.range.startColumn<=o&&o<=se.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const u=s.get(m.SheetInterceptorService),d=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const c=d.getActiveSheet();if(!c)return!1;const h=d.getUnitId(),g=c.getSheetId(),S=s.get(r.ErrorService),R=s.get(r.LocaleService),v=a[0].range,f=a[0].primary,p=et(v,c,!1);if(!r.Rectangle.equals(v,p))return S.emit(R.t("sheets.info.partOfCell")),!1;if(pr(i,c))return S.emit(R.t("sheets.info.acrossMergedCell")),!1;const M={...v,startColumn:i,endColumn:i+v.endColumn-v.startColumn},I={unitId:h,subUnitId:g,sourceRange:v,targetRange:M},y=Ss(s,I),w=v.endColumn-v.startColumn+1,U=i-o<0?M:{...M,startColumn:M.startColumn-w,endColumn:M.endColumn-w},N={unitId:h,subUnitId:g,pluginName:Q,selections:[{range:U,primary:ae(U,c),style:null}]},A={unitId:h,subUnitId:g,pluginName:Q,selections:[{range:v,primary:f,style:null}]},Y=s.get(r.ICommandService),H=u.onCommandExecute({id:yt.id,params:e}),P=[...(ne=H.preRedos)!=null?ne:[],{id:Te.id,params:I},{id:Z.id,params:N},...H.redos],oe=[...(J=H.preUndos)!=null?J:[],{id:Te.id,params:y},{id:Z.id,params:A},...H.undos];return r.sequenceExecute(P,Y).result&&s.get(r.IUndoRedoService).pushUndoRedo({unitID:h,undoMutations:oe,redoMutations:P}),!0}},fs="sheet.command.remove-row",nt={type:r.CommandType.COMMAND,id:fs,handler:async(s,e)=>{var M,I,y,w;const n=s.get(m.SelectionManagerService),t=s.get(m.SheetInterceptorService);let o=e==null?void 0:e.range;if(o||(o=(M=n.getLast())==null?void 0:M.range),!o)return!1;const i=s.get(r.IUniverInstanceService),a=F(i);if(!a)return!1;const{workbook:u,worksheet:l,subUnitId:d,unitId:c}=a;o={...o,startColumn:0,endColumn:Math.max(l.getMaxColumns()-1,0)};const h=[];for(let _=o.startRow;_<=o.endRow;_++)l.getRowFiltered(_)&&h.push(_);const g=[];if(h.length){const _=[o.startRow,...h.map(U=>U+1)],T=[...h.map(U=>U-1),o.endRow];for(let U=_.length-1;U>=0;U--)_[U]<=T[U]&&g.push({startRow:_[U],endRow:T[U],startColumn:o.startColumn,endColumn:o.endColumn})}else g.push(o);const S=[],R=[];g.forEach(_=>{const T={unitId:c,subUnitId:d,range:_},U=l.getCellMatrix().getSlice(_.startRow,_.endRow,0,l.getColumnCount()-1),N={unitId:c,subUnitId:d,cellValue:U.getMatrix()},A=vr(T,l);S.push({id:_e.id,params:T}),R.unshift({id:we.id,params:A},{id:K.id,params:N})});const v=t.onCommandExecute({id:nt.id,params:{range:o}}),f=s.get(r.ICommandService);return r.sequenceExecute([...(I=v.preRedos)!=null?I:[],...S,...v.redos,Me(o,u,l)],f).result?(s.get(r.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...(y=v.preUndos)!=null?y:[],...R,...v.undos],redoMutations:[...(w=v.preRedos)!=null?w:[],...S,...v.redos]}),!0):!1}},Is="sheet.command.remove-col",st={type:r.CommandType.COMMAND,id:Is,handler:async(s,e)=>{var M,I,y,w;const n=s.get(m.SelectionManagerService),t=s.get(m.SheetInterceptorService);let o=e==null?void 0:e.range;if(o||(o=(M=n.getLast())==null?void 0:M.range),!o)return!1;const i=s.get(r.IUniverInstanceService),a=F(i);if(!a)return!1;const{workbook:u,worksheet:l,subUnitId:d,unitId:c}=a;o={...o,startRow:0,endRow:Math.max(l.getMaxRows()-1,0)};const h={unitId:c,subUnitId:d,range:o},g=Cr(s,h),S=l.getCellMatrix().getSlice(0,l.getRowCount()-1,o.startColumn,o.endColumn),R={unitId:c,subUnitId:d,cellValue:S.getMatrix()},v=t.onCommandExecute({id:st.id,params:{range:o}}),f=s.get(r.ICommandService);return r.sequenceExecute([...(I=v.preRedos)!=null?I:[],{id:fe.id,params:h},...v.redos,Me(o,u,l)],f).result?(s.get(r.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...(y=v.preUndos)!=null?y:[],{id:ye.id,params:g},{id:K.id,params:R},...v.undos],redoMutations:[...(w=v.preRedos)!=null?w:[],{id:fe.id,params:h},...v.redos]}),!0):!1}},Jt={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(s,e)=>{var M,I;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SheetInterceptorService),a=F(o,e);if(!a)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:c}=a;if(d.getSheets().length<=1)return!1;const h=d.getSheetIndex(c);d.getConfig().sheetOrder[h+1];const g={subUnitId:l,unitId:u,subUnitName:c.getName()},S=kn(s,g),R=i.onCommandExecute({id:Jt.id,params:{unitId:u,subUnitId:l}}),v=[...(M=R.preRedos)!=null?M:[],{id:Fe.id,params:g},...R.redos],f=[...(I=R.preUndos)!=null?I:[],{id:De.id,params:S},...R.undos];return r.sequenceExecute(v,n)?(t.pushUndoRedo({unitID:u,undoMutations:f,redoMutations:v}),!0):!1}},Se=(s,e)=>{if(s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},G={id:"sheet.mutation.add-worksheet-merge",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(!o)return!1;const a=o.getConfig().mergeData,u=e.ranges;for(let l=0;l<u.length;l++)a.push(u[l]);return!0}},le=(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(o==null)throw new Error("worksheet is null error!");const a=o.getConfig().mergeData,u=e.ranges,l=[];for(let d=0;d<u.length;d++)for(let c=a.length-1;c>=0;c--){const h=a[c],g=u[d];r.Rectangle.intersects(h,g)&&l.push(a[c])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:l}},z={id:"sheet.mutation.remove-worksheet-merge",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(!o)return!1;const a=o.getConfig().mergeData,u=e.ranges;for(let l=0;l<u.length;l++)for(let d=a.length-1;d>=0;d--){const c=a[d],h=u[l];r.Rectangle.intersects(c,h)&&a.splice(d,1)}return!0}},ps={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async s=>{const e=s.get(m.SelectionManagerService),n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=F(o);if(!a)return!1;const{subUnitId:u,unitId:l,worksheet:d}=a,c={unitId:l,subUnitId:u,ranges:i};let h=!1;const g=d.getConfig().mergeData;if(i.forEach(w=>{g.forEach(_=>{r.Rectangle.intersects(w,_)&&(h=!0)})}),!h)return!1;const S=le(s,c),R=e.getSelections();if(!(R!=null&&R.length))return!1;const v=r.Tools.deepClone(R),f=r.Tools.deepClone(R),p=f[f.length-1],{startRow:M,startColumn:I}=p.range;return p.primary={startRow:M,startColumn:I,endRow:M,endColumn:I,actualRow:M,actualColumn:I,isMerged:!1,isMergedMainCell:!1},r.sequenceExecute([{id:z.id,params:S},{id:Z.id,params:{selections:f}}],n)?(t.pushUndoRedo({unitID:l,undoMutations:[{id:G.id,params:S},{id:Z.id,params:{selections:v}}],redoMutations:[{id:z.id,params:S},{id:Z.id,params:{selections:f}}]}),!0):!1}};class Ve{constructor(){C(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new me.BehaviorSubject(this._borderInfo));C(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 _t(s,e){const{startRow:n,startColumn:t,endRow:o,endColumn:i}=s;for(let a=n;a<=o;a++)for(let u=t;u<=i;u++)e(a,u)}const Ms={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(s,e)=>{const{unitId:n,subUnitId:t,value:o}=e,{type:i,color:a,style:u}=o,l=s.get(r.ICommandService),d=s.get(Ve);return d.setType(i),d.setColor(a),d.setStyle(u),l.executeCommand(ze.id,{unitId:n,subUnitId:t})}},ws={id:"sheet.command.set-border-position",type:r.CommandType.COMMAND,handler:async(s,e)=>{if(!e.value)return!1;const n=s.get(r.ICommandService);return s.get(Ve).setType(e.value),n.executeCommand(ze.id)}},ys={id:"sheet.command.set-border-style",type:r.CommandType.COMMAND,handler:async(s,e)=>{const n=s.get(r.ICommandService);return s.get(Ve).setStyle(e.value),n.executeCommand(ze.id)}},_s={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(s,e)=>{const n=s.get(r.ICommandService);return s.get(Ve).setColor(e.value),n.executeCommand(ze.id)}},ze={id:"sheet.command.set-border",type:r.CommandType.COMMAND,handler:async(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SelectionManagerService),a=s.get(Ve),u=F(o,e);if(!u)return!1;const{worksheet:l,unitId:d,subUnitId:c}=u,h=i.getSelectionRanges(),g=l.getConfig().mergeData;if(!(h!=null&&h.length))return!1;const{style:S,color:R,type:v,activeBorderType:f}=a.getBorderInfo();if(!f)return!1;const p=v===r.BorderType.TOP||v===r.BorderType.ALL||v===r.BorderType.OUTSIDE,M=v===r.BorderType.LEFT||v===r.BorderType.ALL||v===r.BorderType.OUTSIDE,I=v===r.BorderType.BOTTOM||v===r.BorderType.ALL||v===r.BorderType.OUTSIDE,y=v===r.BorderType.RIGHT||v===r.BorderType.ALL||v===r.BorderType.OUTSIDE,w=v===r.BorderType.VERTICAL||v===r.BorderType.ALL||v===r.BorderType.INSIDE,_=v===r.BorderType.HORIZONTAL||v===r.BorderType.ALL||v===r.BorderType.INSIDE,T=v.indexOf("tlbr")>-1,U=v.indexOf("tlbc")>-1,N=v.indexOf("tlmr")>-1,A=v.indexOf("bltr")>-1,Y=v.indexOf("mltr")>-1,H=v.indexOf("bctr")>-1,P=h[0],oe={startRow:P.startRow-1,startColumn:P.startColumn,endRow:P.startRow-1,endColumn:P.endColumn},te={startRow:P.startRow,startColumn:P.startColumn-1,endRow:P.endRow,endColumn:P.startColumn-1},ne={startRow:P.endRow+1,startColumn:P.startColumn,endRow:P.endRow+1,endColumn:P.endColumn},J={startRow:P.startRow,startColumn:P.endColumn+1,endRow:P.endRow,endColumn:P.endColumn+1},se={startRow:P.startRow,startColumn:P.startColumn,endRow:P.startRow,endColumn:P.endColumn},Eo={startRow:P.startRow,startColumn:P.startColumn,endRow:P.endRow,endColumn:P.startColumn},No={startRow:P.endRow,startColumn:P.startColumn,endRow:P.endRow,endColumn:P.endColumn},ko={startRow:P.startRow,startColumn:P.endColumn,endRow:P.endRow,endColumn:P.endColumn},j=new r.ObjectMatrix,X={s:S,cl:{rgb:R}},Ft=(W,E)=>{let B=null;return g.forEach(re=>{r.Rectangle.intersects(re,{startColumn:E,endColumn:E,startRow:W,endRow:W})&&(B=re)}),B};function q(W,E,B){W.startRow<0||W.startColumn<0||_t(W,(re,ge)=>{var k,lt;const ue=Ft(re,ge);let ce=E;if(ue&&(E.bc_tr||E.ml_tr||E.bl_tr||E.tl_mr||E.tl_bc||E.tl_br)){if(B){const Re=r.Tools.deepClone((k=j.getValue(ue.startRow,ue.startColumn))==null?void 0:k.s);ce=Re!=null&&Re.bd?Object.assign(Re.bd,E):E}j.setValue(ue.startRow,ue.startColumn,{s:{bd:ce}})}else{if(B){const Re=r.Tools.deepClone((lt=j.getValue(re,ge))==null?void 0:lt.s);ce=Re!=null&&Re.bd?Object.assign(Re.bd,E):E}j.setValue(re,ge,{s:{bd:ce}})}})}p&&(q(oe,{b:null}),q(se,{t:r.Tools.deepClone(X)},!0)),I&&(q(ne,{t:null}),q(No,{b:r.Tools.deepClone(X)},!0)),M&&(q(te,{r:null}),q(Eo,{l:r.Tools.deepClone(X)},!0)),y&&(q(J,{l:null}),q(ko,{r:r.Tools.deepClone(X)},!0)),T&&q(P,{tl_br:r.Tools.deepClone(X)},!0),U&&q(P,{tl_bc:r.Tools.deepClone(X)},!0),N&&q(P,{tl_mr:r.Tools.deepClone(X)},!0),A&&q(P,{bl_tr:r.Tools.deepClone(X)},!0),Y&&q(P,{ml_tr:r.Tools.deepClone(X)},!0),H&&q(P,{bc_tr:r.Tools.deepClone(X)},!0),w&&_t(P,(W,E)=>{var re,ge,ue,ce;const B=Ft(W,E);if(B){if(B.endColumn!==P.endColumn){const k=(re=j.getValue(B.startRow,B.startColumn))==null?void 0:re.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:r.Tools.deepClone(X)}):{r:r.Tools.deepClone(X)}}})}if(B.startColumn!==P.startColumn){const k=(ge=j.getValue(B.startRow,B.startColumn))==null?void 0:ge.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:r.Tools.deepClone(X)}):{l:r.Tools.deepClone(X)}}})}}else{if(E!==P.endColumn){const k=(ue=j.getValue(W,E))==null?void 0:ue.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:r.Tools.deepClone(X)}):{r:r.Tools.deepClone(X)}}})}if(E!==P.startColumn){const k=(ce=j.getValue(W,E))==null?void 0:ce.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:r.Tools.deepClone(X)}):{l:r.Tools.deepClone(X)}}})}}}),_&&_t(P,(W,E)=>{var re,ge,ue,ce;const B=Ft(W,E);if(B){if(B.endRow!==P.endRow){const k=(re=j.getValue(B.startRow,B.startColumn))==null?void 0:re.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:r.Tools.deepClone(X)}):{b:r.Tools.deepClone(X)}}})}if(B.startRow!==P.startRow){const k=(ge=j.getValue(B.startRow,B.startColumn))==null?void 0:ge.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:r.Tools.deepClone(X)}):{t:r.Tools.deepClone(X)}}})}}else{if(W!==P.endRow){const k=(ue=j.getValue(W,E))==null?void 0:ue.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:r.Tools.deepClone(X)}):{b:r.Tools.deepClone(X)}}})}if(W!==P.startRow){const k=(ce=j.getValue(W,E))==null?void 0:ce.s;j.setValue(W,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:r.Tools.deepClone(X)}):{t:r.Tools.deepClone(X)}}})}}}),!p&&!I&&!M&&!y&&!w&&!_&&!T&&!U&&!N&&!A&&!Y&&!H&&(q(oe,{b:null}),q(se,{t:null},!0),q(ne,{t:null}),q(No,{b:null},!0),q(te,{r:null}),q(Eo,{l:null},!0),q(J,{l:null}),q(ko,{r:null},!0),q(P,{tl_br:null},!0),q(P,{tl_bc:null},!0),q(P,{tl_mr:null},!0),q(P,{bl_tr:null},!0),q(P,{ml_tr:null},!0),q(P,{bc_tr:null},!0),_t(P,(W,E)=>{var re,ge,ue,ce,k,lt,Re,Oo;const B=Ft(W,E);if(B){if(B.endColumn!==P.endColumn){const V=(re=j.getValue(B.startRow,B.startColumn))==null?void 0:re.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{r:null}):{r:null}}})}if(B.startColumn!==P.startColumn){const V=(ge=j.getValue(B.startRow,B.startColumn))==null?void 0:ge.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{l:null}):{l:null}}})}if(B.endRow!==P.endRow){const V=(ue=j.getValue(B.startRow,B.startColumn))==null?void 0:ue.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{b:null}):{b:null}}})}if(B.startRow!==P.startRow){const V=(ce=j.getValue(B.startRow,B.startColumn))==null?void 0:ce.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{t:null}):{t:null}}})}}else{if(E!==P.endColumn){const V=(k=j.getValue(W,E))==null?void 0:k.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{r:null}):{r:null}}})}if(E!==P.startColumn){const V=(lt=j.getValue(W,E))==null?void 0:lt.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{l:null}):{l:null}}})}if(W!==P.endRow){const V=(Re=j.getValue(W,E))==null?void 0:Re.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{b:null}):{b:null}}})}if(W!==P.startRow){const V=(Oo=j.getValue(W,E))==null?void 0:Oo.s;j.setValue(W,E,{s:{bd:V!=null&&V.bd?Object.assign(V.bd,{t:null}):{t:null}}})}}}));const bn={unitId:d,subUnitId:c,cellValue:j.getData()},Wa=pe(s,bn);return n.syncExecuteCommand(K.id,bn)?(t.pushUndoRedo({unitID:d,undoMutations:[{id:K.id,params:Wa}],redoMutations:[{id:K.id,params:bn}]}),!0):!1}},Mr=(s,e)=>{if(s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ye={id:"sheet.mutation.set-col-hidden",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startColumn;u<a.endColumn+1;u++){const l=o.getColumnOrCreate(u);l!=null&&(l.hd=r.BooleanNumber.TRUE)}}return!0}},wr=(s,e)=>{if(s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},qe={id:"sheet.mutation.set-col-visible",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startColumn;u<a.endColumn+1;u++){const l=o.getColumnOrCreate(u);l!=null&&(l.hd=r.BooleanNumber.FALSE)}}return!0}},bt={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(s,e)=>{var v,f;const n=s.get(m.SheetInterceptorService),{unitId:t,subUnitId:o,ranges:i}=e,a=s.get(r.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(o),u={unitId:t,subUnitId:o,ranges:i},l=wr(s,u),d={unitId:t,subUnitId:o,pluginName:Q,selections:i.map(p=>({range:p,primary:ae(p,a),style:null}))},c={unitId:t,subUnitId:o,pluginName:Q,selections:Ps(i).map(p=>({range:p,primary:ae(p,a),style:null}))},h=s.get(r.ICommandService),g=r.sequenceExecute([{id:qe.id,params:u},{id:Z.id,params:d}],h),S=n.onCommandExecute({id:bt.id,params:e}),R=r.sequenceExecute([...S.redos],h);return g.result&&R.result&&s.get(r.IUndoRedoService).pushUndoRedo({unitID:t,undoMutations:[{id:Ye.id,params:l},{id:Z.id,params:c},...(v=S.undos)!=null?v:[]],redoMutations:[...(f=S.preRedos)!=null?f:[],{id:qe.id,params:u},{id:Z.id,params:d},...S.redos]}),!0}},bs={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async s=>{var d;const n=(d=s.get(m.SelectionManagerService).getSelections())==null?void 0:d.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const o=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!o)return!1;const i=o.getActiveSheet();if(!i)return!1;const a=o.getUnitId(),u=i.getSheetId(),l=n.map(c=>i.getHiddenCols(c.startColumn,c.endColumn)).flat();return s.get(r.ICommandService).executeCommand(bt.id,{unitId:a,subUnitId:u,ranges:l})}},Qt={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async s=>{var f,p,M;const e=s.get(m.SelectionManagerService),n=s.get(m.SheetInterceptorService),t=(f=e.getSelections())==null?void 0:f.map(I=>I.range).filter(I=>I.rangeType===r.RANGE_TYPE.COLUMN);if(!(t!=null&&t.length))return!1;const i=s.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),l=a.getSheetId(),d={unitId:u,subUnitId:l,ranges:t},c={unitId:u,subUnitId:l,pluginName:Q,selections:Ps(t).map(I=>({range:I,primary:ae(I,a),style:null}))},h={unitId:u,subUnitId:l,pluginName:Q,selections:t.map(I=>({range:I,primary:ae(I,a),style:null}))},g=s.get(r.ICommandService),S=r.sequenceExecute([{id:Ye.id,params:d},{id:Z.id,params:c}],g),R=n.onCommandExecute({id:Qt.id,params:d}),v=r.sequenceExecute([...R.redos],g);if(S.result&&v.result){const I=s.get(r.IUndoRedoService),y=Mr(s,d);return I.pushUndoRedo({unitID:u,undoMutations:[{id:qe.id,params:y},{id:Z.id,params:h},...(p=R.undos)!=null?p:[]],redoMutations:[...(M=R.preRedos)!=null?M:[],{id:Ye.id,params:d},{id:Z.id,params:c},...R.redos]}),!0}return!1}};function Ps(s){return yr(s).map(n=>{const t=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:t,endColumn:t}})}function yr(s){const e=[];let n;return s.sort((t,o)=>t.startColumn-o.startColumn).forEach(t=>{if(!n){n=t;return}n.endColumn===t.startColumn-1?n.endColumn=t.endColumn:(e.push(n),n=t)}),e.push(n),e}const xt=(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(o==null)throw new Error("worksheet is null error!");const a=o.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...a}},Ee={id:"sheet.mutation.set-frozen",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(!o)return!1;const i=o.getConfig(),{startRow:a,startColumn:u,ySplit:l,xSplit:d}=e;return i.freeze={startRow:a,startColumn:u,ySplit:l,xSplit:d},!0}},Us={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=F(o);if(!i)return!1;const{unitId:a,subUnitId:u,worksheet:l}=i,{startColumn:d,startRow:c,xSplit:h,ySplit:g}=e;if(c>=l.getRowCount()||d>=l.getColumnCount()||h>=l.getColumnCount()||g>=l.getRowCount())return!1;const S={unitId:a,subUnitId:u,...e},R=xt(s,S);return n.syncExecuteCommand(Ee.id,S)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Ee.id,params:R}],redoMutations:[{id:Ee.id,params:S}]}),!0):!1}},_r={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async s=>{const e=s.get(r.ICommandService),n=s.get(r.IUndoRedoService),t=s.get(r.IUniverInstanceService),o=F(t);if(!o)return!1;const{unitId:i,subUnitId:a}=o,u={unitId:i,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=xt(s,u);return e.syncExecuteCommand(Ee.id,u)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:l}],redoMutations:[{id:Ee.id,params:u}]}),!0):!1}},br=(s,e)=>{if(s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ke={id:"sheet.mutation.set-row-visible",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startRow;u<a.endRow+1;u++){const l=o.getRowOrCreate(u);l!=null&&(l.hd=0)}}return!0}},Pr=(s,e)=>{if(s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ze={id:"sheet.mutation.set-row-hidden",type:r.CommandType.MUTATION,handler:(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let u=a.startRow;u<a.endRow+1;u++){const l=o.getRowOrCreate(u);l!=null&&(l.hd=1)}}return!0}},Pt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(s,e)=>{var f,p,M;const{unitId:n,subUnitId:t,ranges:o}=e,i=s.get(r.ICommandService),a=s.get(r.IUndoRedoService),u=s.get(m.SheetInterceptorService),l=s.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(t),d={unitId:n,subUnitId:t,ranges:o},c=br(s,d),h={unitId:n,subUnitId:t,pluginName:Q,selections:o.map(I=>({range:I,primary:ae(I,l),style:null}))},g={unitId:n,subUnitId:t,pluginName:Q,selections:Es(o).map(I=>({range:I,primary:ae(I,l),style:null}))},S=r.sequenceExecute([{id:Ke.id,params:d},{id:Z.id,params:h}],i),R=u.onCommandExecute({id:Pt.id,params:e}),v=r.sequenceExecute([...R.redos],i);return S.result&&v.result&&a.pushUndoRedo({unitID:n,undoMutations:[...(f=R.preUndos)!=null?f:[],{id:Ze.id,params:c},{id:Z.id,params:g},...(p=R.undos)!=null?p:[]],redoMutations:[...(M=R.preRedos)!=null?M:[],{id:Ke.id,params:d},{id:Z.id,params:h},...R.redos]}),!0}},Ts={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async s=>{var d;const e=s.get(m.SelectionManagerService),n=s.get(r.IUniverInstanceService),t=(d=e.getSelections())==null?void 0:d.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const o=n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!o)return!1;const i=o.getActiveSheet();if(!i)return!1;const a=o.getUnitId(),u=i.getSheetId(),l=t.map(c=>i.getHiddenRows(c.startRow,c.endRow)).flat();return s.get(r.ICommandService).executeCommand(Pt.id,{unitId:a,subUnitId:u,ranges:l})}},en={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async s=>{var M,I,y,w;const e=s.get(m.SelectionManagerService),n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.IUniverInstanceService),i=s.get(m.SheetInterceptorService),a=(M=e.getSelections())==null?void 0:M.map(_=>_.range).filter(_=>_.rangeType===r.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const u=F(o);if(!u)return!1;const{unitId:l,subUnitId:d,worksheet:c}=u,h={unitId:l,subUnitId:d,ranges:a},g={unitId:l,subUnitId:d,pluginName:Q,selections:Es(a).map(_=>({range:_,primary:ae(_,c),style:null}))},S={unitId:l,subUnitId:d,pluginName:Q,selections:a.map(_=>({range:_,primary:ae(_,c),style:null}))},R=Pr(s,h),v=i.onCommandExecute({id:en.id,params:h});v.preRedos&&v.preRedos.length>0&&r.sequenceExecute([...v.preRedos],n);const f=r.sequenceExecute([{id:Ze.id,params:h},{id:Z.id,params:g}],n),p=r.sequenceExecute([...v.redos],n);return f.result&&p.result&&t.pushUndoRedo({unitID:l,undoMutations:[...(I=v.preUndos)!=null?I:[],{id:Ke.id,params:R},{id:Z.id,params:S},...(y=v.undos)!=null?y:[]],redoMutations:[...(w=v.preRedos)!=null?w:[],{id:Ze.id,params:h},{id:Z.id,params:g},...v.redos]}),!0}};function Es(s){return Ur(s).map(n=>{const t=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:t,endRow:t}})}function Ur(s){const e=[];let n;return s.sort((t,o)=>t.startRow-o.startRow).forEach(t=>{if(!n){n=t;return}t.startRow===n.endRow+1?n.endRow=t.endRow:(e.push(n),n=t)}),e.push(n),e}const x={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(s,e)=>{const n=s.get(r.IUniverInstanceService),t=F(n);if(!t)return!1;const{unitId:o,subUnitId:i,worksheet:a}=t,{range:u,style:l}=e,d=s.get(r.ICommandService),c=s.get(r.IUndoRedoService),h=s.get(m.SelectionManagerService),g=u?[u]:h.getSelectionRanges();if(!(g!=null&&g.length))return!1;const S=new r.ObjectMatrix,R=nr(a);if(r.Tools.isArray(l.value))for(let w=0;w<g.length;w++)R.forOperableEach(g[w],(_,T,U)=>{S.setValue(_,T,{s:{[l.type]:l.value[_-U.startRow][T-U.startColumn]}})});else for(let w=0;w<g.length;w++){const _={s:{[l.type]:l.value}};R.forOperableEach(g[w],(T,U)=>S.setValue(T,U,_))}const v={subUnitId:i,unitId:o,cellValue:S.getMatrix()},f=pe(s,v),p=d.syncExecuteCommand(K.id,v),{undos:M,redos:I}=s.get(m.SheetInterceptorService).onCommandExecute({id:x.id,params:e}),y=r.sequenceExecute([...I],d);return p&&y.result?(c.pushUndoRedo({unitID:o,undoMutations:[{id:K.id,params:f},...M],redoMutations:[{id:K.id,params:v},...I]}),!0):!1}},Tr={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async s=>{const e=s.get(m.SelectionManagerService).getLast();if(!e)return!1;const n=F(s.get(r.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n,{actualRow:o,actualColumn:i}=e.primary,u={style:{type:"bl",value:t.getRange(o,i).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return s.get(r.ICommandService).executeCommand(x.id,u)}},Er={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async s=>{const e=s.get(m.SelectionManagerService).getLast();if(!e)return!1;const n=F(s.get(r.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n;let o=!0;if(e.primary){const{startRow:a,startColumn:u}=e.primary;o=t.getRange(a,u).getFontStyle()===r.FontItalic.ITALIC}const i={style:{type:"it",value:o?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return s.get(r.ICommandService).executeCommand(x.id,i)}},Nr={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async s=>{const e=s.get(m.SelectionManagerService).getLast();if(!e)return!1;const n=F(s.get(r.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n;let o=!0;e.primary&&(o=!!t.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const i={style:{type:"ul",value:{s:o?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return s.get(r.ICommandService).executeCommand(x.id,i)}},kr={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async s=>{const e=s.get(m.SelectionManagerService).getLast();if(!e)return!1;const n=F(s.get(r.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n;let o=!0;e.primary&&(o=!!t.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const i={style:{type:"st",value:{s:o?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return s.get(r.ICommandService).executeCommand(x.id,i)}};r.CommandType.COMMAND;const Or={type:r.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(s,e)=>{if(!e)return!1;const n=s.get(r.ICommandService),t={style:{type:"ff",value:e.value}};return n.executeCommand(x.id,t)}},Dr={type:r.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(s,e)=>{if(!e)return!1;const n=s.get(r.ICommandService),t={style:{type:"fs",value:e.value}};return n.executeCommand(x.id,t)}},Ns={type:r.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(s,e)=>{if(!e||!e.value)return!1;const n=s.get(r.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return n.executeCommand(x.id,t)}},ks={type:r.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async s=>{const e=s.get(r.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(x.id,n)}},Os={type:r.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(s,e)=>{if(!e||!e.value)return!1;const n=s.get(r.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return n.executeCommand(x.id,t)}},Ds={type:r.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async s=>{const e=s.get(r.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(x.id,n)}},As={type:r.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(s,e)=>{if(!e)return!1;const n=s.get(r.ICommandService),t={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"vt",value:e.value}};return n.executeCommand(x.id,t)}},Ws={type:r.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(s,e)=>{if(!e)return!1;const n=s.get(r.ICommandService),t={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"ht",value:e.value}};return n.executeCommand(x.id,t)}},Vs={type:r.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(s,e)=>{if(!e)return!1;const n=s.get(r.ICommandService),t={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"tb",value:e.value}};return n.executeCommand(x.id,t)}},Ls={type:r.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(s,e)=>{if(!e)return!1;const n=typeof e.value=="number"?{a:e.value}:{a:0,v:r.BooleanNumber.TRUE},t=s.get(r.ICommandService),o={style:{type:"tr",value:n}};return t.executeCommand(x.id,o)}},Ar=(s,e)=>{const i=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(e),color:i}},ot={id:"sheet.mutation.set-tab-color",type:r.CommandType.MUTATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const t=n.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},$s={type:r.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=F(s.get(r.IUniverInstanceService));if(!o)return!1;const{unitId:i,subUnitId:a}=o,u={color:e.value,unitId:i,subUnitId:a},l=Ar(s,u);return n.syncExecuteCommand(ot.id,u)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:ot.id,params:l}],redoMutations:[{id:ot.id,params:u}]}),!0):!1}},rt={id:"sheet.operation.set-worksheet-active",type:r.CommandType.OPERATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const t=n.getWorksheets();for(const[,o]of t)if(o.getSheetId()===e.subUnitId)return n.setActiveSheet(o),!0;return!1}},Wr=4,Ut={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(s,e,n)=>{const t=s.get(r.ICommandService),o=F(s.get(r.IUniverInstanceService),e);if(!o)return!1;const{unitId:i,subUnitId:a}=o;return new Promise(u=>{setTimeout(()=>{const l=t.syncExecuteCommand(rt.id,{unitId:i,subUnitId:a},n);u(l)},Wr)})}},tn=(s,e)=>{const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(o==null)throw new Error("universheet is null error!");const i={},a=o.getColumnManager(),u=e.ranges;for(let l=0;l<u.length;l++){const d=u[l];for(let c=d.startColumn;c<d.endColumn+1;c++){const h=a.getColumnOrCreate(c);i[c]=h.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},be={id:"sheet.mutation.set-worksheet-col-width",type:r.CommandType.MUTATION,handler:(s,e)=>{var l;const t=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(e.subUnitId);if(!o)return!1;const i=o.getConfig().defaultColumnWidth,a=o.getColumnManager(),u=e.ranges;for(let d=0;d<u.length;d++){const c=u[d];for(let h=c.startColumn;h<c.endColumn+1;h++){const g=a.getColumnOrCreate(h);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(l=e.colWidth[h-c.startColumn])!=null?l:i}}return!0}},nn={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(s,e)=>{const t=s.get(m.SelectionManagerService).getSelections();if(s.get(m.SheetInterceptorService),!(t!=null&&t.length))return!1;const o=s.get(r.ICommandService),i=s.get(r.IUndoRedoService),a=F(s.get(r.IUniverInstanceService));if(!a)return!1;const{worksheet:u,unitId:l,subUnitId:d}=a,{anchorCol:c,deltaX:h}=e,S=u.getColumnWidth(c)+h,R=t.length===1&&t[0].range.rangeType===r.RANGE_TYPE.ALL,v=t.filter(T=>T.range.rangeType===r.RANGE_TYPE.COLUMN),f=R?r.RANGE_TYPE.ALL:v.some(({range:T})=>{const{startColumn:U,endColumn:N}=T;return U<=c&&c<=N})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let p;if(f===r.RANGE_TYPE.ALL){const T=u.getRowCount(),U=new Array(u.getColumnCount()).fill(void 0).map((N,A)=>({startRow:0,endRow:T-1,startColumn:A,endColumn:A}));p={subUnitId:d,unitId:l,colWidth:S,ranges:U}}else f===r.RANGE_TYPE.COLUMN?p={subUnitId:d,unitId:l,ranges:v.map(T=>r.Rectangle.clone(T.range)),colWidth:S}:p={subUnitId:d,unitId:l,colWidth:S,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:c,endColumn:c}]};const{undos:M,redos:I}=s.get(m.SheetInterceptorService).onCommandExecute({id:nn.id,params:p}),y=tn(s,p),w=o.syncExecuteCommand(be.id,p),_=r.sequenceExecute([...I],o);return w&&_.result&&i.pushUndoRedo({unitID:l,undoMutations:[{id:be.id,params:y},...M],redoMutations:[{id:be.id,params:p},...I]}),!0}},Tt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(s,e)=>{var p,M;const n=s.get(m.SelectionManagerService),t=s.get(r.ICommandService),o=s.get(r.IUndoRedoService),i=s.get(m.SheetInterceptorService),a=n.getSelectionRanges();if(!(a!=null&&a.length))return!1;const u=F(s.get(r.IUniverInstanceService));if(!u)return!1;const{subUnitId:l,unitId:d}=u,c={subUnitId:l,unitId:d,ranges:a,colWidth:e.value},h=tn(s,c),g=t.syncExecuteCommand(be.id,c),{undos:S,redos:R}=s.get(m.SheetInterceptorService).onCommandExecute({id:Tt.id,params:c}),v=i.onCommandExecute({id:Tt.id,params:c}),f=r.sequenceExecute([...R,...v.redos],t);return g&&f.result?(o.pushUndoRedo({unitID:d,undoMutations:[...(p=v.preUndos)!=null?p:[],{id:be.id,params:h},...S],redoMutations:[...(M=v.preRedos)!=null?M:[],{id:be.id,params:c},...R]}),!0):!1}},js=(s,e)=>{const n=Rt(s.get(r.IUniverInstanceService),e);if(!n)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:t}=n;return{hidden:t.isSheetHidden(),unitId:e.unitId,subUnitId:t.getSheetId()}},Ne={id:"sheet.mutation.set-worksheet-hidden",type:r.CommandType.MUTATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const t=n.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},Bs={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(r.ErrorService),i=s.get(r.LocaleService),a=F(s.get(r.IUniverInstanceService),e);if(!a)return!1;const{workbook:u,worksheet:l,unitId:d,subUnitId:c}=a;if(l.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const g={unitId:d,subUnitId:c,hidden:r.BooleanNumber.TRUE},S=js(s,g);return u.getSheets().filter(p=>p.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(o.emit(i.t("sheets.info.hideSheet")),!1):n.syncExecuteCommand(Ne.id,g)?(t.pushUndoRedo({unitID:d,undoMutations:[{id:Ne.id,params:S}],redoMutations:[{id:Ne.id,params:g}]}),!0):!1}},Vr=(s,e)=>{const n=Rt(s.get(r.IUniverInstanceService),e);if(!n)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:t}=n;return{unitId:e.unitId,name:t.getName(),subUnitId:t.getSheetId()}},Et={id:"sheet.mutation.set-worksheet-name",type:r.CommandType.MUTATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const t=n.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},sn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(s,e)=>{var R,v;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(m.SheetInterceptorService),i=F(s.get(r.IUniverInstanceService),e);if(!i)return!1;const{unitId:a,subUnitId:u}=i,l={subUnitId:u,name:e.name,unitId:a},d=Vr(s,l),c=o.onCommandExecute({id:sn.id,params:e}),h=[...(R=c.preRedos)!=null?R:[],{id:Et.id,params:l},...c.redos],g=[...(v=c.preUndos)!=null?v:[],{id:Et.id,params:d},...c.undos];return await r.sequenceExecute(h,n).result?(t.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:h}),!0):!1}},Lr=(s,e)=>({...r.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),it={id:"sheet.mutation.set-worksheet-order",type:r.CommandType.MUTATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const t=n.getConfig();return t.sheetOrder.splice(e.fromOrder,1),t.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},Hs={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=F(s.get(r.IUniverInstanceService),e);if(!o)return!1;const{workbook:i,unitId:a,subUnitId:u}=o,d={fromOrder:i.getConfig().sheetOrder.indexOf(u),toOrder:e.order,unitId:a,subUnitId:u},c=Lr(s,d);return n.syncExecuteCommand(it.id,d)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:it.id,params:c}],redoMutations:[{id:it.id,params:d}]}),!0):!1}},$r=2e3,Fs=(s,e)=>{const{unitId:n,subUnitId:t,ranges:o}=e,a=s.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=a==null?void 0:a.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const l={},d=u.getRowManager();for(const{startRow:c,endRow:h}of o)for(let g=c;g<h+1;g++){const S=d.getRowOrCreate(g);l[g]=S.h}return{unitId:n,subUnitId:t,ranges:o,rowHeight:l}},on=(s,e)=>{const{unitId:n,subUnitId:t,ranges:o}=e,u=s.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(t),l={},d=u.getRowManager();for(const{startRow:c,endRow:h}of o)for(let g=c;g<=h;g++){const S=d.getRowOrCreate(g);l[g]=S.ia}return{unitId:n,subUnitId:t,ranges:o,autoHeightInfo:l}},jr=(s,e)=>{const{unitId:n,subUnitId:t,rowsAutoHeightInfo:o}=e,a=s.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=a==null?void 0:a.getSheetBySheetId(t);if(!u)return{unitId:n,subUnitId:t,rowsAutoHeightInfo:[]};const l=[],d=u.getRowManager();for(const c of o){const{row:h}=c,{ah:g}=d.getRowOrCreate(h);l.push({row:h,autoHeight:g})}return{unitId:n,subUnitId:t,rowsAutoHeightInfo:l}},Pe={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(s,e)=>{var h;const{unitId:n,subUnitId:t,ranges:o,rowHeight:i}=e,u=s.get(r.IUniverInstanceService).getUniverSheetInstance(n),l=u==null?void 0:u.getSheetBySheetId(t);if(!l)return!1;const d=l.getConfig().defaultRowHeight,c=l.getRowManager();for(const{startRow:g,endRow:S}of o)for(let R=g;R<=S;R++){const v=c.getRowOrCreate(R);typeof i=="number"?v.h=i:v.h=(h=i[R])!=null?h:d,v.h=Math.min($r,v.h)}return!0}},he={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:r.CommandType.MUTATION,handler:(s,e)=>{var h;const{unitId:n,subUnitId:t,ranges:o,autoHeightInfo:i}=e,u=s.get(r.IUniverInstanceService).getUniverSheetInstance(n),l=u==null?void 0:u.getSheetBySheetId(t);if(!l)return!1;const d=void 0,c=l.getRowManager();for(const{startRow:g,endRow:S}of o)for(let R=g;R<=S;R++){const v=c.getRowOrCreate(R);typeof i=="number"?v.ia=i:v.ia=(h=i[R-g])!=null?h:d}return!0}},rn={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t,rowsAutoHeightInfo:o}=e,a=s.get(r.IUniverInstanceService).getUnit(n),u=a==null?void 0:a.getSheetBySheetId(t);if(!u||!a)return!1;const l=u.getRowManager();for(const{row:d,autoHeight:c}of o){const h=l.getRowOrCreate(d);h.ah=c}return!0}},an={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(s,e)=>{var N,A;const t=s.get(m.SelectionManagerService).getSelections(),o=s.get(m.SheetInterceptorService);if(!(t!=null&&t.length))return!1;const i=F(s.get(r.IUniverInstanceService));if(!i)return!1;const{worksheet:a,subUnitId:u,unitId:l}=i,{anchorRow:d,deltaY:c}=e,g=a.getRowHeight(d)+c,S=t.length===1&&t[0].range.rangeType===r.RANGE_TYPE.ALL,R=t.filter(Y=>Y.range.rangeType===r.RANGE_TYPE.ROW),v=S?r.RANGE_TYPE.ALL:R.some(({range:Y})=>{const{startRow:H,endRow:P}=Y;return H<=d&&d<=P})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let f;if(v===r.RANGE_TYPE.ALL){const Y=a.getRowCount(),H=new Array(a.getColumnCount()).fill(void 0).map((P,oe)=>({startRow:oe,endRow:oe,startColumn:0,endColumn:Y-1}));f={subUnitId:u,unitId:l,rowHeight:g,ranges:H}}else v===r.RANGE_TYPE.ROW?f={subUnitId:u,unitId:l,ranges:R.map(Y=>r.Rectangle.clone(Y.range)),rowHeight:g}:f={subUnitId:u,unitId:l,rowHeight:g,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const p=Fs(s,f),M={unitId:l,subUnitId:u,ranges:f.ranges,autoHeightInfo:r.BooleanNumber.FALSE},I=on(s,M),y=s.get(r.ICommandService),w=s.get(r.IUndoRedoService),_=o.onCommandExecute({id:an.id,params:f}),T=r.sequenceExecute([{id:Pe.id,params:f},{id:he.id,params:M}],y),U=r.sequenceExecute([..._.redos],y);return T.result&&U.result?(w.pushUndoRedo({unitID:l,undoMutations:[...(N=_.preUndos)!=null?N:[],{id:Pe.id,params:p},{id:he.id,params:I},..._.undos],redoMutations:[...(A=_.preRedos)!=null?A:[],{id:Pe.id,params:f},{id:he.id,params:M},..._.redos]}),!0):!1}},un={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(s,e)=>{var M,I;const n=s.get(m.SelectionManagerService),t=s.get(r.ICommandService),o=s.get(r.IUndoRedoService),i=s.get(r.IUniverInstanceService),a=s.get(m.SheetInterceptorService),u=n.getSelectionRanges();if(!(u!=null&&u.length))return!1;const l=F(i);if(!l)return!1;const{unitId:d,subUnitId:c}=l,h={subUnitId:c,unitId:d,ranges:u,rowHeight:e.value},g=Fs(s,h),S={unitId:d,subUnitId:c,ranges:h.ranges,autoHeightInfo:r.BooleanNumber.FALSE},R=on(s,S),v=r.sequenceExecute([{id:Pe.id,params:h},{id:he.id,params:S}],t),f=a.onCommandExecute({id:un.id,params:h}),p=r.sequenceExecute([...f.redos],t);return v.result&&p.result?(o.pushUndoRedo({unitID:d,undoMutations:[...(M=f.preRedos)!=null?M:[],{id:Pe.id,params:g},{id:he.id,params:R},...f.undos],redoMutations:[...(I=f.preRedos)!=null?I:[],{id:Pe.id,params:h},{id:he.id,params:S},...f.redos]}),!0):!1}},ln={type:r.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(m.SelectionManagerService),i=s.get(r.IUniverInstanceService),a=F(i);if(!a)return!1;const{unitId:u,subUnitId:l,worksheet:d}=a,{anchorRow:c}=e!=null?e:{},h=c!=null?[{startRow:c,endRow:c,startColumn:0,endColumn:d.getMaxColumns()-1}]:o.getSelectionRanges();if(!(h!=null&&h.length))return!1;const g={unitId:u,subUnitId:l,ranges:h,autoHeightInfo:r.BooleanNumber.TRUE},S=on(s,g),R=n.syncExecuteCommand(he.id,g),{undos:v,redos:f}=s.get(m.SheetInterceptorService).onCommandExecute({id:ln.id,params:g}),p=r.sequenceExecute([...f],n);return R&&p.result?(t.pushUndoRedo({unitID:u,undoMutations:[{id:he.id,params:S},...v],redoMutations:[{id:he.id,params:g},...f]}),!0):!1}},Gs={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(s,e)=>{const{unitId:n,subUnitId:t}=e,o=s.get(r.ICommandService),i=s.get(r.IUndoRedoService),a=s.get(r.IUniverInstanceService);if(!F(s.get(r.IUniverInstanceService)))return!1;const l=a.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getSheetBySheetId(t);if(!d||d.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const h={unitId:n,subUnitId:t,hidden:r.BooleanNumber.FALSE},g=js(s,h),S=o.syncExecuteCommand(Ne.id,h),R={unitId:n,subUnitId:t},v=o.syncExecuteCommand(rt.id,R);return S&&v?(i.pushUndoRedo({unitID:n,undoMutations:[{id:Ne.id,params:g}],redoMutations:[{id:Ne.id,params:h}]}),!0):!1}},zs=s=>{const e=new r.ObjectMatrix;return s.forEach(n=>{r.Range.foreach(n,(t,o)=>{e.setValue(t,o,1)})}),e.forValue((n,t)=>{const o=e.getValue(n-1,t);o&&e.setValue(n,t,o+1)}),e},Ys=s=>{const e=s;return e.forValue((n,t)=>{const o=s.getValue(n-1,t);o&&e.setValue(n,t,o+1)}),e},qs=s=>{const e={area:0},n=(t,o)=>e.area<t?(e.area=t,e.range=o,!0):!1;return s.forValue((t,o,i)=>{let a=1,u=i;n(a*u,{startRow:t-u+1,endRow:t,startColumn:o,endColumn:o});const l={startRow:t-u+1,endRow:t,startColumn:0,endColumn:o};for(let d=o-1;d>=0&&s.getValue(t,d);d--){u=Math.min(s.getValue(t,d)||0,u),a++;const c=u*a;l.startColumn=d,l.startRow=t-u+1,n(c,l)}}),e},Br=(s,e)=>(r.Range.foreach(e,(n,t)=>{s.realDeleteValue(n,t);let o=n+1,i=s.getValue(o,t)||0;for(;i>1;)s.setValue(o,t,i-1),o+=1,i=s.getValue(o,t)||0}),s),dn=s=>{const e=[];let n=qs(s);for(;n.area>0;)n.range&&(e.push(n.range),Br(s,n.range)),n=qs(s);return e},cn=s=>{const e=zs(s);return dn(e)};class Hr{constructor(){C(this,"_matrix",new r.ObjectMatrix)}add(...e){return e.forEach(n=>{r.Range.foreach(n,(t,o)=>{this._matrix.setValue(t,o,1)})}),this}subtract(...e){return e.forEach(n=>{r.Range.foreach(n,(t,o)=>{this._matrix.realDeleteValue(t,o)})}),this}merge(){const e=Ys(this._matrix);return dn(e)}}const Fr=(s,e,n="")=>s.reduce((t,o)=>{const i=o&&o[e];return typeof i!="string"?(console.warn(o,`${e} is not string`),t):(i?(t[i]||(t[i]=[]),t[i].push(o)):t[n].push(o),t)},{}),Gr=(s=0)=>{let e=s;return function(){return e++}},Le=O.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Ready,Le);const zr=(s,e)=>{const n=s.get(Le),{values:t,unitId:o,subUnitId:i}=e,a=[],u=[];Object.keys(t).forEach(d=>{t[d].ranges.forEach(h=>{r.Range.foreach(h,(g,S)=>{const R=n.getValue(o,i,g,S);R?a.push({pattern:R.pattern,row:g,col:S}):u.push({startColumn:S,endColumn:S,startRow:g,endRow:g})})})});const l=[];if(a.length){const d=kt(o,i,a);Object.keys(d.values).forEach(c=>{const h=d.values[c];h.ranges=cn(h.ranges)}),l.push({id:Nt.id,params:kt(o,i,a)})}return u.length&&l.push({id:mn.id,params:{unitId:o,subUnitId:i,ranges:u}}),l},Nt={id:"sheet.mutation.set.numfmt",type:r.CommandType.MUTATION,handler:(s,e)=>{if(!e)return!1;const{values:n,refMap:t}=e,o=s.get(Le),i=e.unitId,a=e.subUnitId,u=Object.keys(n).reduce((l,d)=>{const c=t[d],h=n[d].ranges;return c&&l.push({...c,ranges:h}),l},[]);return o.setValues(i,a,u),!0}},mn={id:"sheet.mutation.remove.numfmt",type:r.CommandType.MUTATION,handler:(s,e)=>{if(!e)return!1;const{unitId:n,subUnitId:t,ranges:o}=e;return s.get(Le).deleteValues(n,t,o),!0}},Yr=(s,e)=>{const n=s.get(Le),{ranges:t,unitId:o,subUnitId:i}=e,a=[];if(t.forEach(l=>{r.Range.foreach(l,(d,c)=>{const h=n.getValue(o,i,d,c);h&&a.push({pattern:h.pattern,row:d,col:c})})}),!a.length)return[];const u=kt(o,i,a);return Object.keys(u.values).forEach(l=>{const d=u.values[l];d.ranges=cn(d.ranges)}),[{id:Nt.id,params:u}]},kt=(s,e,n)=>{const t=Fr(n,"pattern"),o={},i={},a=Gr();return Object.keys(t).forEach(u=>{const l=t[u],d=a();o[d]={pattern:u},l.forEach(c=>{i[d]||(i[d]={ranges:[]}),i[d].ranges.push(r.cellToRange(c.row,c.col))})}),{unitId:s,subUnitId:e,refMap:o,values:i}},Ks={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0},Zs={id:"sheet.command.insert-defined-name",type:r.CommandType.COMMAND,handler:(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService);if(!e)return!1;const o={...e};return n.syncExecuteCommand(ie.SetDefinedNameMutation.id,o)?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.RemoveDefinedNameMutation.id,params:o}],redoMutations:[{id:ie.SetDefinedNameMutation.id,params:o}]}),!0):!1}},Xs={id:"sheet.command.remove-defined-name",type:r.CommandType.COMMAND,handler:(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService);if(!e)return!1;const o={...e};return n.syncExecuteCommand(ie.RemoveDefinedNameMutation.id,o)?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.SetDefinedNameMutation.id,params:o}],redoMutations:[{id:ie.RemoveDefinedNameMutation.id,params:o}]}),!0):!1}},Js={id:"sheet.command.set-defined-name",type:r.CommandType.COMMAND,handler:(s,e)=>{const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService);return e&&n.syncExecuteCommand(ie.SetDefinedNameMutation.id,e.newDefinedName)?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:ie.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},Qs={id:"sheet.operation.scroll-to-cell",type:r.CommandType.OPERATION,handler:()=>!0},hn={id:"sheet.mutation.set-workbook-name",type:r.CommandType.MUTATION,handler:(s,e)=>{const n=s.get(r.IUniverInstanceService).getUnit(e.unitId,r.UniverInstanceType.UNIVER_SHEET);return n?(n.setName(e.name),!0):!1}},gn={type:r.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(s,e)=>{var d;if(!s.get(r.IUniverInstanceService).getUnit(e.unitId,r.UniverInstanceType.UNIVER_SHEET))return!1;const i=s.get(m.SheetInterceptorService).onCommandExecute({id:gn.id,params:e}),a={name:e.name,unitId:e.unitId},u=[...(d=i.preRedos)!=null?d:[],{id:hn.id,params:a},...i.redos],l=s.get(r.ICommandService);return r.sequenceExecute(u,l).result}};var qr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Zr=(s,e,n,t)=>{for(var o=t>1?void 0:t?Kr(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&qr(e,n,o),o};m.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new me.Subject);C(this,"_ruleRefresh",new me.Subject);C(this,"_resetOrder",new me.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new me.BehaviorSubject(!1));C(this,"worksheetRuleInitStateChange$",this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}addRule(e,n){this._ensureSubUnitMap(e).set(n.subUnitId,n),this._ruleChange.next({unitId:e,rule:n,type:"add",subUnitId:n.subUnitId})}deleteRule(e,n){var o,i,a;const t=(i=(o=this._model)==null?void 0:o.get(e))==null?void 0:i.get(n);t&&((a=this._model.get(e))==null||a.delete(n),this._ruleChange.next({unitId:e,rule:t,type:"delete",subUnitId:n}))}setRule(e,n,t){var i,a;const o=this.getRule(e,n);o&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.set(n,t),this._ruleChange.next({unitId:e,oldRule:o,rule:t,type:"set",subUnitId:n}))}getRule(e,n){var t,o;return(o=(t=this._model)==null?void 0:t.get(e))==null?void 0:o.get(n)}toObject(){const e={};return[...this._model.keys()].forEach(t=>{const o=this._model.get(t);o!=null&&o.size&&(e[t]=[],[...o.keys()].forEach(a=>{const u=o.get(a);u&&e[t].push(u)}))}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(t=>{const o=e[t];if(o!=null&&o.length){const i=new Map;o.forEach(a=>{i.set(a.subUnitId,a)}),n.set(t,i)}}),this._model=n}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let n=this._model.get(e);return n||(n=new Map,this._model.set(e,n)),n}ruleRefresh(e){this._ruleRefresh.next(e)}resetOrder(){this._resetOrder.next(Math.random())}},m.WorksheetProtectionRuleModel=Zr([r.OnLifecycle(r.LifecycleStages.Starting,m.WorksheetProtectionRuleModel)],m.WorksheetProtectionRuleModel);const xs={id:"sheet.mutation.add-worksheet-protection",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,rule:t}=e;return s.get(m.WorksheetProtectionRuleModel).addRule(n,t),!0}},eo={id:"sheet.mutation.set-worksheet-protection",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t,rule:o}=e;return s.get(m.WorksheetProtectionRuleModel).setRule(n,t,o),!0}},to={id:"sheet.mutation.delete-worksheet-protection",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t}=e;return s.get(m.WorksheetProtectionRuleModel).deleteRule(n,t),!0}},ke=()=>[Ln,Yt],Ot=()=>[An,zn,Gn,Zn,qn,Hn,Fn,Bn,Kn,Wn,Vn,jn,$n,Yn],Xr=[b.Copy,b.SetCellStyle,b.SetCellValue,b.SetRowStyle,b.SetColumnStyle,b.InsertRow,b.InsertColumn,b.InsertHyperlink,b.DeleteRow,b.DeleteColumn,b.Sort,b.Filter,b.PivotTable,b.EditExtraObject];var Jr=Object.defineProperty,Qr=Object.getOwnPropertyDescriptor,xr=(s,e,n,t)=>{for(var o=t>1?void 0:t?Qr(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&Jr(e,n,o),o};m.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new me.Subject);C(this,"pointChange$",this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,n){var o,i,a;const t=(o=this._model.get(e))==null?void 0:o.get(n);t&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.delete(n),this._pointChange.next(t))}getRule(e,n){var t,o;return(o=(t=this._model)==null?void 0:t.get(e))==null?void 0:o.get(n)}toObject(){const e={};return[...this._model.keys()].forEach(t=>{const o=this._model.get(t);o!=null&&o.size&&(e[t]=[],[...o.keys()].forEach(a=>{const u=o.get(a);u&&e[t].push(u)}))}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(t=>{const o=e[t];if(o!=null&&o.length){const i=new Map;o.forEach(a=>{i.set(a.subUnitId,a)}),n.set(t,i)}}),this._model=n}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let n=this._model.get(e);return n||(n=new Map,this._model.set(e,n)),n}},m.WorksheetProtectionPointModel=xr([r.OnLifecycle(r.LifecycleStages.Starting,m.WorksheetProtectionPointModel)],m.WorksheetProtectionPointModel);var ei=Object.defineProperty,ti=Object.getOwnPropertyDescriptor,ni=(s,e,n,t)=>{for(var o=t>1?void 0:t?ti(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&ei(e,n,o),o},$e=(s,e)=>(n,t)=>e(n,t,s);const si="SHEET_WORKSHEET_PROTECTION_PLUGIN",oi="SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN";m.WorksheetPermissionService=class extends r.RxDisposable{constructor(e,n,t,o,i,a,u){super(),this._permissionService=e,this._univerInstanceService=n,this._injector=t,this._worksheetProtectionRuleModel=o,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._sheetInterceptorService=u,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){const e=n=>{const t=n.getUnitId(),o=i=>{const a=i.getSheetId();[...ke(),...Ot()].forEach(u=>{const l=new u(t,a);this._permissionService.addPermissionPoint(l)})};n.getSheets().forEach(i=>{o(i)}),n.sheetCreated$.subscribe(i=>{o(i)}),n.sheetDisposed$.subscribe(i=>{const a=i.getSheetId();[...ke(),...Ot()].forEach(u=>{const l=new u(t,a);this._permissionService.deletePermissionPoint(l.id)})})};this._univerInstanceService.getAllUnitsForType(r.UniverInstanceType.UNIVER_SHEET).forEach(n=>{e(n)}),this._univerInstanceService.getTypeOfUnitAdded$(r.UniverInstanceType.UNIVER_SHEET).pipe(xe.takeUntil(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).pipe(xe.takeUntil(this.dispose$)).subscribe(n=>{n.getSheets().forEach(t=>{const o=n.getUnitId(),i=t.getSheetId();ke().forEach(a=>{const u=new a(o,i);this._permissionService.deletePermissionPoint(u.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{ke().forEach(n=>{const t=new n(e.unitId,e.subUnitId);this._permissionService.addPermissionPoint(t)});break}case"delete":{ke().forEach(n=>{const t=new n(e.unitId,e.subUnitId);this._permissionService.deletePermissionPoint(t.id)});break}case"set":{ke().forEach(n=>{const t=new n(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(t.id,e.rule)});break}}}))}_initRuleSnapshot(){const e=()=>{const t=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(t)},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:si,businesses:[Ct.UNIVER_SHEET],onLoad:(t,o)=>{this._worksheetProtectionRuleModel.fromObject(o),Object.keys(o).forEach(i=>{ke().forEach(a=>{const u=new a(t,i);this._permissionService.addPermissionPoint(u)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:()=>{this._worksheetProtectionRuleModel.deleteUnitModel()}}))}_initPointSnapshot(){const e=()=>{const t=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(t)},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:oi,businesses:[Ct.UNIVER_SHEET],onLoad:(t,o)=>{this._worksheetProtectionPointRuleModel.fromObject(o),Object.keys(o).forEach(i=>{Ot().forEach(a=>{const u=new a(t,i);this._permissionService.addPermissionPoint(u)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}},m.WorksheetPermissionService=ni([r.OnLifecycle(r.LifecycleStages.Starting,m.WorksheetPermissionService),$e(0,O.Inject(r.IPermissionService)),$e(1,O.Inject(r.IUniverInstanceService)),$e(2,O.Inject(O.Injector)),$e(3,O.Inject(m.WorksheetProtectionRuleModel)),$e(4,O.Inject(m.WorksheetProtectionPointModel)),$e(5,O.Inject(r.IResourceManagerService)),$e(6,O.Inject(m.SheetInterceptorService))],m.WorksheetPermissionService);const no="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",so="worksheet-protection",oo=25,ri=80;class ii extends dt.SheetExtension{constructor(){super();C(this,"uKey",so);C(this,"Z_INDEX",oo);C(this,"_pattern");C(this,"_img",new Image);this._img.src=no}draw(n,t,o,i){const{rowHeightAccumulation:a,columnWidthAccumulation:u,worksheet:l,dataMergeCache:d}=o;if(!l)return!1;n.save(),this._pattern||(this._pattern=n.createPattern(this._img,"repeat"));const{startRow:c,startColumn:h,endRow:g,endColumn:S}=o.rowColumnSegment,R=this.getCellIndex(c,h,a,u,d),v=this.getCellIndex(g,S,a,u,d),{hasWorksheetRule:f=!1,selectionProtection:p=[]}=l.getCell(c,h)||{};if(this._pattern){if(p.length>0){const M=p[0];(M==null?void 0:M[b.View])?this.setZIndex(oo):this.setZIndex(ri)}n.fillStyle=this._pattern,f&&n.fillRect(R.startX,R.startY,v.endX-R.startX,v.endY-R.startY),n.restore()}}setZIndex(n){this.Z_INDEX=n}}var ai=Object.defineProperty,ui=Object.getOwnPropertyDescriptor,li=(s,e,n,t)=>{for(var o=t>1?void 0:t?ui(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&ai(e,n,o),o},ro=(s,e)=>(n,t)=>e(n,t,s);m.WorksheetProtectionRenderService=class extends r.Disposable{constructor(n,t){super();C(this,"_worksheetProtectionRenderExtension",new ii);this._renderManagerService=n,this._univerInstanceService=t,this._initRender()}_initRender(){const n=o=>{const i=o&&this._renderManagerService.getRenderById(o),a=i&&i.mainComponent;a&&(a.getExtensionByKey(so)||a.register(this._worksheetProtectionRenderExtension))};this.disposeWithMe(this._renderManagerService.currentRender$.subscribe(o=>{o&&n(o)}));const t=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);t&&n(t.getUnitId())}},m.WorksheetProtectionRenderService=li([r.OnLifecycle(r.LifecycleStages.Ready,m.WorksheetProtectionRenderService),ro(0,O.Inject(dt.IRenderManagerService)),ro(1,O.Inject(r.IUniverInstanceService))],m.WorksheetProtectionRenderService);const io={id:"sheet.mutation.set-worksheet-permission-points",type:r.CommandType.MUTATION,handler:(s,e)=>{const{rule:n}=e;return s.get(m.WorksheetProtectionPointModel).addRule(n),!0}},ao={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-permission-points",async handler(s,e){if(!e)return!1;const n=s.get(r.ICommandService),{rule:t}=e;return n.executeCommand(io.id,{rule:t,unitId:t.unitId,subUnitId:t.subUnitId}),!0}};var di=Object.defineProperty,ci=Object.getOwnPropertyDescriptor,mi=(s,e,n,t)=>{for(var o=t>1?void 0:t?ci(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&di(e,n,o),o};m.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new me.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new me.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new me.BehaviorSubject(!1));C(this,"rangeRuleInitStateChange$",this._rangeRuleInitStateChange.asObservable())}ruleRefresh(e){this._ruleRefresh.next(e)}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,n,t){this._ensureRuleMap(e,n).set(t.id,t),this._ruleChange.next({unitId:e,subUnitId:n,rule:t,type:"add"})}deleteRule(e,n,t){var i,a,u,l;const o=(a=(i=this._model.get(e))==null?void 0:i.get(n))==null?void 0:a.get(t);o&&((l=(u=this._model.get(e))==null?void 0:u.get(n))==null||l.delete(t),this._ruleChange.next({unitId:e,subUnitId:n,rule:o,type:"delete"}))}setRule(e,n,t,o){var a,u;const i=this.getRule(e,n,t);i&&((u=(a=this._model.get(e))==null?void 0:a.get(n))==null||u.set(t,o),this._ruleChange.next({unitId:e,subUnitId:n,oldRule:i,rule:o,type:"set"}))}getRule(e,n,t){var o,i;return(i=(o=this._model.get(e))==null?void 0:o.get(n))==null?void 0:i.get(t)}getSubunitRuleList(e,n){var o;return[...(((o=this._model.get(e))==null?void 0:o.get(n))||new Map).values()]}_ensureRuleMap(e,n){let t=this._model.get(e);t||(t=new Map,this._model.set(e,t));let o=t.get(n);return o||(o=new Map,t.set(n,o)),o}toObject(){const e={};return[...this._model.keys()].forEach(t=>{const o=this._model.get(t),i=[...o.keys()];e[t]={},i.forEach(a=>{const u=o.get(a);e[t][a]=[...u.values()]})}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(t=>{const o=e[t],i=new Map;Object.keys(o).forEach(a=>{const u=o[a].reduce((l,d)=>(l.set(d.id,d),l),new Map);i.set(a,u)}),n.set(t,i)}),this._model=n}deleteUnitModel(){this._model.clear()}createRuleId(e,n){let t=r.Tools.generateRandomId(4);const o=this._ensureRuleMap(e,n);for(;o.has(t);)t=r.Tools.generateRandomId(4);return t}},m.RangeProtectionRuleModel=mi([r.OnLifecycle(r.LifecycleStages.Starting,m.RangeProtectionRuleModel)],m.RangeProtectionRuleModel);const hi=(s,e)=>{const n=s.get(m.RangeProtectionRuleModel),t=e.ruleIds.map(i=>n.getRule(e.unitId,e.subUnitId,i)).filter(i=>!!i);return{id:Je.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:t}}},Xe={id:"sheet.mutation.delete-range-protection",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t,ruleIds:o}=e,i=s.get(m.RangeProtectionRuleModel);return o.forEach(a=>{i.deleteRule(n,t,a)}),!0}},gi=s=>{const e={...s,ruleIds:s.rules.map(n=>n.id)};return{id:Xe.id,params:e}},Je={id:"sheet.mutation.add-range-protection",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t,rules:o}=e,i=s.get(m.RangeProtectionRuleModel);return o.forEach(a=>{i.addRule(n,t,a)}),!0}},Rn={type:r.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(s,e){if(!e)return!1;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),o=s.get(m.RangeProtectionRuleModel),{rule:i,permissionId:a}=e,{unitId:u,subUnitId:l,ranges:d,name:c,description:h}=i,g=[{ranges:d,permissionId:a,id:o.createRuleId(u,l),name:c,description:h,unitType:i.unitType,unitId:u,subUnitId:l}];if(await n.executeCommand(Je.id,{unitId:u,subUnitId:l,rules:g})){const R=[{id:Je.id,params:{unitId:u,subUnitId:l,rules:g}}],v=[{id:Xe.id,params:{unitId:u,subUnitId:l,ruleIds:g.map(f=>f.id)}}];t.pushUndoRedo({unitID:u,redoMutations:R,undoMutations:v})}return!0}},uo={type:r.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(s,e){if(!e)return!1;const n=s.get(r.ICommandService),t=s.get(r.IUndoRedoService),{unitId:o,subUnitId:i,rule:a}=e,u={unitId:o,subUnitId:i,ruleIds:[a.id]};return await n.executeCommand(Xe.id,u)&&t.pushUndoRedo({unitID:o,redoMutations:[{id:Xe.id,params:u}],undoMutations:[{id:Je.id,params:{unitId:o,subUnitId:i,rules:[a]}}]}),!0}},ee={id:"sheet.mutation.set-range-protection",type:r.CommandType.MUTATION,handler:(s,e)=>{const{unitId:n,subUnitId:t,rule:o,ruleId:i}=e;return s.get(m.RangeProtectionRuleModel).setRule(n,t,i,o),!0}},Ri=(s,e)=>{const{unitId:n,subUnitId:t,ruleId:o}=e,a=s.get(m.RangeProtectionRuleModel).getRule(n,t,o);return a?{id:ee.id,params:{...e,rule:a}}:null},Sn={type:r.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(s,e){if(!e)return!1;const n=s.get(r.ICommandService),t=s.get(m.RangeProtectionRuleModel),o=s.get(r.IUndoRedoService),{rule:i,permissionId:a,oldRule:u}=e,{unitId:l,subUnitId:d,ranges:c,name:h,description:g}=i;if(i.id){const S={unitId:l,subUnitId:d,ruleId:i.id,rule:{ranges:c,permissionId:a,id:t.createRuleId(l,d),name:h,description:g}};if(await n.executeCommand(ee.id,S)){const v=[{id:ee.id,params:S}],f=[{id:ee.id,params:{unitId:l,subUnitId:d,ruleId:i.id,rule:u}}];o.pushUndoRedo({unitID:l,redoMutations:v,undoMutations:f})}}return!0}},lo="maxCellsPerSheet",Si=3e6,co="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var vi=Object.defineProperty,Ci=Object.getOwnPropertyDescriptor,fi=(s,e,n,t)=>{for(var o=t>1?void 0:t?Ci(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&vi(e,n,o),o},mo=(s,e)=>(n,t)=>e(n,t,s);let Dt=class extends r.Disposable{constructor(s,e){var t;super(),this._commandService=s,this._configService=e,[G,ht,Gt,gt,On,ft,It,nn,an,hs,ms,We,ye,pt,Mt,ds,ls,Ae,we,gs,De,yt,Te,St,Ge,wt,Ue,st,fe,nt,_e,Jt,Fe,ps,z,Ds,ks,Os,Ms,_s,ze,ws,ys,Qt,Ye,qe,Tt,_r,Us,Ee,Ws,tt,K,un,en,Ze,Ke,bs,Ts,bt,Pt,x,$s,ot,Ns,Ls,Vs,As,gn,hn,Ut,rt,be,Bs,Ne,sn,Et,Hs,it,rn,Pe,ln,he,Nt,Z,mn,Ks,Qs,Zs,Xs,Js,ao,xs,eo,to,io,Rn,uo,Sn,Je,Xe,ee].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),((t=this._configService.getConfig(co))!=null?t:!1)||[Gs].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(lo,Si)}};Dt=fi([r.OnLifecycle(r.LifecycleStages.Starting,Dt),mo(0,r.ICommandService),mo(1,r.IConfigService)],Dt);var Ii=Object.defineProperty,pi=Object.getOwnPropertyDescriptor,Mi=(s,e,n,t)=>{for(var o=t>1?void 0:t?pi(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&Ii(e,n,o),o},ho=(s,e)=>(n,t)=>e(n,t,s);let At=class extends r.Disposable{constructor(s,e){super(),this._univerInstanceService=s,this._commandService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(s=>{if(s.id!==ie.SetFormulaCalculationResultMutation.id)return;const e=s.params,{unitData:n}=e,t=Object.keys(n),o=[];return t.forEach(a=>{const u=n[a];if(u==null)return!0;Object.keys(u).forEach(d=>{const c=u[d];if(c==null)return!0;const h=this._getMergedCellData(a,d,c),g={subUnitId:d,unitId:a,cellValue:h};o.push({id:K.id,params:g})})}),o.every(a=>this._commandService.executeCommand(a.id,a.params,{onlyLocal:!0}))}))}_getMergedCellData(s,e,n){const t=this._univerInstanceService.getUniverSheetInstance(s),o=t==null?void 0:t.getStyles(),i=t==null?void 0:t.getSheetBySheetId(e),a=i==null?void 0:i.getCellMatrix(),u=new r.ObjectMatrix(n);return u.forValue((l,d,c)=>{const h=a==null?void 0:a.getValue(l,d),g=ie.handleNumfmtInCell(h,c,o);u.setValue(l,d,g)}),u.clone()}};At=Mi([r.OnLifecycle(r.LifecycleStages.Ready,At),ho(0,O.Inject(r.IUniverInstanceService)),ho(1,r.ICommandService)],At);var wi=Object.defineProperty,yi=Object.getOwnPropertyDescriptor,_i=(s,e,n,t)=>{for(var o=t>1?void 0:t?yi(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&wi(e,n,o),o},Wt=(s,e)=>(n,t)=>e(n,t,s);let Vt=class extends r.Disposable{constructor(s,e,n,t){super(),this._commandService=s,this._featureCalculationManagerService=e,this._univerInstanceService=n,this._formulaDataModel=t}_initialize(){const s="test",e="workbook-01",n="sheet-0011",t={[e]:{[n]:new r.ObjectMatrix({4:{0:{v:10,t:2}}})}},o={[e]:{[n]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(s,{unitId:e,subUnitId:n,dependencyRanges:[{unitId:e,sheetId:n,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:t,dirtyRanges:o})})}};Vt=_i([r.OnLifecycle(r.LifecycleStages.Ready,Vt),Wt(0,r.ICommandService),Wt(1,ie.IFeatureCalculationManagerService),Wt(2,r.IUniverInstanceService),Wt(3,O.Inject(ie.FormulaDataModel))],Vt);const L={MoveRangeCommandId:Dn,InsertRowCommandId:us,InsertColCommandId:cs,RemoveColCommandId:Is,RemoveRowCommandId:fs,DeleteRangeMoveLeftCommandId:rs,DeleteRangeMoveUpCommandId:is,InsertRangeMoveDownCommandId:fr,InsertRangeMoveRightCommandId:as,MoveColsCommandId:Cs,MoveRowsCommandId:vs};var $=(s=>(s[s.Set=0]="Set",s[s.Delete=1]="Delete",s[s.HorizontalMove=2]="HorizontalMove",s[s.VerticalMove=3]="VerticalMove",s[s.Unknown=4]="Unknown",s))($||{});const Lt=Number.MAX_SAFE_INTEGER,Ie=s=>{const e={...s},n=Number.isNaN(e.startRow)&&Number.isNaN(e.endRow)&&!Number.isNaN(e.startColumn)&&!Number.isNaN(e.endColumn),t=Number.isNaN(e.startColumn)&&Number.isNaN(e.endColumn)&&!Number.isNaN(e.startRow)&&!Number.isNaN(e.endRow);return(e.rangeType===r.RANGE_TYPE.COLUMN||n)&&(e.startRow=0,e.endRow=Lt),(e.rangeType===r.RANGE_TYPE.ROW||t)&&(e.startColumn=0,e.endColumn=Lt),e.rangeType===r.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=Lt,e.startRow=0,e.endRow=Lt),e},de=s=>{let e=s.rangeType;return s.rangeType===r.RANGE_TYPE.COLUMN?e=r.RANGE_TYPE.ROW:s.rangeType===r.RANGE_TYPE.ROW&&(e=r.RANGE_TYPE.COLUMN),{startRow:s.startColumn,endRow:s.endColumn,startColumn:s.startRow,endColumn:s.endRow,rangeType:e}},at=(s,e,n)=>{const t={...n},o={...e},i=(v,f)=>{const p=Math.max(v.start,f.start),M=Math.min(v.end,f.end);return M<p?null:{start:p,end:M}},a=v=>v.end-v.start+1,u=(v,f)=>({start:v.start-f.start,end:v.start-f.start+v.end-v.start}),l=(v,f)=>({start:f.start+v.start,end:f.start+v.start+v.end-v.start}),d=e.start>s.start;if(d){const v=Math.min(s.end,e.start)-s.start+1;o.start-=v,o.end-=v}const c=a(s),h=c,g=i(s,t),S=g&&a(g)>=a(t);if(s.end<t.start)t.start-=c,t.end-=c;else if(g){const v=a(g);if(S){const f=u(t,s),p=l(f,o);t.start=p.start,t.end=p.end}else g.start>s.start?d?(t.end-=v+c,t.start-=c):t.end-=v:d?t.end-=v:t.start>s.start&&t.end>s.end?(t.start-=c,t.end-=c+v):t.end-=v}const R=i(o,t);return S||(o.start<=t.start?(t.start+=h,t.end+=h):R&&(d?o.end<=t.start||o.start<=t.start&&o.end>=t.start?(t.start+=h,t.end+=h):o.start>=t.start&&o.start<=t.end&&(t.end+=h):t.start<o.start&&t.end>o.start?t.end+=h:(t.start>=o.end||t.start>=o.start&&t.start<=o.end)&&(t.end+=h,t.start+=h))),{step:t.start-n.start,length:a(t)-a(n)}},vn=(s,e)=>{const{fromRange:n,toRange:t}=s.params||{};if(!t||!n)return[];const o=Ie(n),i=Ie(t),a=Ie(e),u=at({start:o.startRow,end:o.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return u===null?[{type:$.Delete}]:[{type:$.VerticalMove,step:u.step||0,length:u.length||0}]},bi=(s,e)=>{const{fromRange:n,toRange:t}=s.params||{};if(!n||!t)return[e];const{startRow:o}=n,{startRow:i}=t,a=t.endRow-t.startRow+1,u=new r.ObjectMatrix;return r.Range.foreach(e,(d,c)=>{u.setValue(d,c,1)}),u.moveRows(o,a,i),r.queryObjectMatrix(u,d=>d===1)},Cn=(s,e)=>{const{fromRange:n,toRange:t}=s.params||{};if(!t||!n)return[];const o=Ie(n),i=Ie(t),a=Ie(e),u=at({start:o.startColumn,end:o.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return u===null?[{type:$.Delete}]:[{type:$.HorizontalMove,step:u.step||0,length:u.length||0}]},Pi=(s,e)=>{const{fromRange:n,toRange:t}=s.params||{};if(!n||!t)return[e];const{startColumn:o}=n,{startColumn:i}=t,a=t.endColumn-t.startColumn+1,u=new r.ObjectMatrix;return r.Range.foreach(e,(l,d)=>{u.setValue(l,d,1)}),u.moveColumns(o,a,i),r.queryObjectMatrix(u,l=>l===1)},go=(s,e)=>{var i,a;const n=(i=s.params)==null?void 0:i.toRange,t=(a=s.params)==null?void 0:a.fromRange;if(!n||!t)return[];const o=[];if(r.Rectangle.contains(n,e)&&o.push({type:$.Delete}),r.Rectangle.contains(t,e)){o.push({type:$.Delete});const u=r.Rectangle.getRelativeRange(e,t),l=r.Rectangle.getPositionRange(u,n);return[{type:$.Set,range:l}]}return o},Ui=(s,e)=>{var h,g;const n=(h=s.params)==null?void 0:h.toRange,t=(g=s.params)==null?void 0:g.fromRange;if(!n||!t)return[e];if(!r.Rectangle.intersects(t,e)&&!r.Rectangle.intersects(n,e))return[e];if(r.Rectangle.contains(t,e)){const S=r.Rectangle.getRelativeRange(e,t);return[r.Rectangle.getPositionRange(S,n)]}const o=new r.ObjectMatrix;r.Range.foreach(e,(S,R)=>{o.setValue(S,R,1)});const i=new r.ObjectMatrix,a=r.Rectangle.getIntersects(t,e);a&&r.Range.foreach(a,(S,R)=>{o.getValue(S,R)&&(o.setValue(S,R,void 0),i.setValue(S,R,1))});const u=n.startColumn-t.startColumn,l=n.startRow-t.startRow,d={startColumn:n.startColumn-u,endColumn:n.endColumn-u,startRow:n.startRow-l,endRow:n.endRow-l};return d&&r.Range.foreach(d,(S,R)=>{var p;const v=S+l,f=R+u;o.setValue(v,f,(p=i.getValue(S,R))!=null?p:0)}),r.queryObjectMatrix(o,S=>S===1)},je=(s,e)=>{const n=Ie(s),t=Ie(e),o=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(n.startRow<=t.startRow&&n.endRow>=t.endRow){if(t.startColumn<n.startColumn&&t.endColumn>=n.startColumn&&t.endColumn<=n.endColumn||t.startColumn<n.startColumn&&t.endColumn>=n.endColumn){const a=r.Rectangle.getIntersects(t,n);if(a)return{step:0,length:-o(a)}}if(t.startColumn>=n.startColumn&&t.endColumn<=n.endColumn&&i(n)>=i(t))return null;if(t.startColumn>=n.startColumn&&t.startColumn<=n.endColumn&&t.endColumn>n.endColumn){const a=r.Rectangle.getIntersects(t,n);if(a){const u=-o(a);return{step:-(o(n)-o(a)),length:u}}}if(t.startColumn>n.endColumn)return{step:-o(n),length:0}}return{step:0,length:0}},fn=(s,e)=>{var i;const n=(i=s.params)==null?void 0:i.range;if(!n)return[];const t=[],o=je(n,e);if(!o)t.push({type:$.Delete});else{const{step:a,length:u}=o;t.push({type:$.HorizontalMove,step:a,length:u})}return t},In=(s,e)=>{var i;const n=(i=s.params)==null?void 0:i.range;if(!n)return[];const t=[],o=je(de(n),de(e));if(!o)t.push({type:$.Delete});else{const{step:a,length:u}=o;t.push({type:$.VerticalMove,step:a,length:u})}return t},Be=(s,e)=>{const n=Ie(s),t=Ie(e),o=i=>i.endColumn-i.startColumn+1;if(n.startRow<=t.startRow&&n.endRow>=t.endRow){if(t.startColumn<n.startColumn&&t.endColumn>=n.startColumn&&t.endColumn<=n.endColumn||t.startColumn<n.startColumn&&t.endColumn>=n.endColumn)return{step:0,length:o(n)};if(t.startColumn>=n.startColumn&&t.endColumn<=n.endColumn||t.startColumn>n.startColumn&&t.startColumn<=n.endColumn&&t.endColumn>n.endColumn||t.startColumn>=n.endColumn)return{step:o(n),length:0}}return{step:0,length:0}};function Ti(s,e,n){const t=[];if(r.Rectangle.contains(e,n)&&t.push({type:$.Delete}),r.Rectangle.contains(s,n)){t.push({type:$.Delete});const o=r.Rectangle.getRelativeRange(n,s),i=r.Rectangle.getPositionRange(o,e);return[{type:$.Set,range:i}]}return t}const pn=(s,e)=>{var u;const n=(u=s.params)==null?void 0:u.range;if(!n)return[];const t=[],o=Be(de(n),de(e)),{step:i,length:a}=o;return t.push({type:$.VerticalMove,step:i,length:a}),t},Mn=(s,e)=>{var u;const n=(u=s.params)==null?void 0:u.range;if(!n)return[];const t=[],o=Be(n,e),{step:i,length:a}=o;return t.push({type:$.HorizontalMove,step:i,length:a}),t},Ro=(s,e)=>{var u;const n=(u=s.params)==null?void 0:u.range;if(!n)return[];const t=[],o=Be(de(n),de(e)),{step:i,length:a}=o;return t.push({type:$.VerticalMove,step:i,length:a}),t},Ei=(s,e)=>{var l;const n=(l=s.params)==null?void 0:l.range;if(!n)return[e];const t=n.endRow-n.startRow+1,o={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},i=r.Rectangle.subtract(e,o),a=r.Rectangle.getIntersects(o,e);if(!a)return[e];const u=new r.ObjectMatrix;return i.forEach(d=>{r.Range.foreach(d,(c,h)=>{u.setValue(c,h,1)})}),a&&r.Range.foreach(a,(d,c)=>{u.setValue(d+t,c,1)}),r.queryObjectMatrix(u,d=>d===1)},So=(s,e)=>{var u;const n=(u=s.params)==null?void 0:u.range;if(!n)return[];const t=[],o=Be(n,e),{step:i,length:a}=o;return t.push({type:$.HorizontalMove,step:i,length:a}),t},Ni=(s,e)=>{var l;const n=(l=s.params)==null?void 0:l.range;if(!n)return[e];const t=n.endColumn-n.startColumn+1,o={...n,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},i=r.Rectangle.subtract(e,o),a=r.Rectangle.getIntersects(o,e);if(!a)return[e];const u=new r.ObjectMatrix;return i.forEach(d=>{r.Range.foreach(d,(c,h)=>{u.setValue(c,h,1)})}),a&&r.Range.foreach(a,(d,c)=>{u.setValue(d,c+t,1)}),r.queryObjectMatrix(u,d=>d===1)},vo=(s,e)=>{var i;const n=(i=s.params)==null?void 0:i.range;if(!n)return[];const t=[],o=je(n,e);if(!o)t.push({type:$.Delete});else{const{step:a,length:u}=o;t.push({type:$.HorizontalMove,step:a,length:u})}return t},ki=(s,e)=>{var d;const n=(d=s.params)==null?void 0:d.range;if(!n)return[e];const t={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},o=n.endColumn-n.startColumn+1,i=r.Rectangle.getIntersects(n,e),a=r.Rectangle.subtract(e,t),u=r.Rectangle.getIntersects(t,e);if(!i&&!u)return[e];const l=new r.ObjectMatrix;return u&&r.Range.foreach(u,(c,h)=>{l.setValue(c,h-o,1)}),i&&r.Range.foreach(i,(c,h)=>{l.setValue(c,h-o,0)}),a.forEach(c=>{r.Range.foreach(c,(h,g)=>{l.setValue(h,g,1)})}),r.queryObjectMatrix(l,c=>c===1)},Co=(s,e)=>{var i;const n=(i=s.params)==null?void 0:i.range;if(!n)return[];const t=[],o=je(de(n),de(e));if(!o)t.push({type:$.Delete});else{const{step:a,length:u}=o;t.push({type:$.VerticalMove,step:a,length:u})}return t},Oi=(s,e)=>{var d;const n=(d=s.params)==null?void 0:d.range;if(!n)return[e];const t={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},o=n.endRow-n.startRow+1,i=r.Rectangle.getIntersects(n,e),a=r.Rectangle.subtract(e,t),u=r.Rectangle.getIntersects(t,e);if(!i&&!u)return[e];const l=new r.ObjectMatrix;return u&&r.Range.foreach(u,(c,h)=>{l.setValue(c-o,h,1)}),i&&r.Range.foreach(i,(c,h)=>{l.setValue(c-o,h,0)}),a.forEach(c=>{r.Range.foreach(c,(h,g)=>{l.setValue(h,g,1)})}),r.queryObjectMatrix(l,c=>c===1)},He=(s,e)=>{let n={...e};return s.forEach(t=>{switch(t.type){case $.Delete:{n=null;break}case $.HorizontalMove:{if(!n)return;n.startColumn+=t.step,n.endColumn+=t.step+(t.length||0);break}case $.VerticalMove:{if(!n)return;n.startRow+=t.step,n.endRow+=t.step+(t.length||0);break}case $.Set:{n=t.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Di=(s,e)=>{let n=[];switch(e.id){case L.DeleteRangeMoveLeftCommandId:{n=vo(e,s);break}case L.DeleteRangeMoveUpCommandId:{n=Co(e,s);break}case L.InsertColCommandId:{n=Mn(e,s);break}case L.InsertRangeMoveDownCommandId:{n=Ro(e,s);break}case L.InsertRangeMoveRightCommandId:{n=So(e,s);break}case L.InsertRowCommandId:{n=pn(e,s);break}case L.MoveColsCommandId:{n=Cn(e,s);break}case L.MoveRangeCommandId:{n=go(e,s);break}case L.MoveRowsCommandId:{n=vn(e,s);break}case L.RemoveColCommandId:{n=fn(e,s);break}case L.RemoveRowCommandId:{n=In(e,s);break}}return He(n,s)},Ai=(s,e)=>{let n=[];switch(e.id){case L.DeleteRangeMoveLeftCommandId:return ki(e,s);case L.DeleteRangeMoveUpCommandId:return Oi(e,s);case L.InsertRangeMoveDownCommandId:return Ei(e,s);case L.InsertRangeMoveRightCommandId:return Ni(e,s);case L.InsertColCommandId:{n=Mn(e,s);break}case L.InsertRowCommandId:{n=pn(e,s);break}case L.MoveColsCommandId:return Pi(e,s);case L.MoveRangeCommandId:return Ui(e,s);case L.MoveRowsCommandId:return bi(e,s);case L.RemoveColCommandId:{n=fn(e,s);break}case L.RemoveRowCommandId:{n=In(e,s);break}}return He(n,s)};function Wi(s,e){const{id:n,params:t}=e;let o={length:0,step:0,type:$.Unknown};switch(n){case Fe.id:o.type=$.Delete;break;case Ue.id:o=at({start:t.sourceRange.startRow,end:t.sourceRange.endRow},{start:t.targetRange.startRow,end:t.targetRange.endRow},{start:s.startRow,end:s.endRow}),o.type=$.VerticalMove;break;case Te.id:o=at({start:t.sourceRange.startColumn,end:t.sourceRange.endColumn},{start:t.targetRange.startColumn,end:t.targetRange.endColumn},{start:s.startColumn,end:s.endColumn});break;case fe.id:o=je(t.range,s),o?o.type=$.HorizontalMove:o={step:0,length:0,type:$.Delete};break;case _e.id:o=je(de(t.range),de(s)),o?o.type=$.VerticalMove:o={step:0,length:0,type:$.Delete};break;case we.id:o=Be(de(t.range),de(s)),o.type=$.VerticalMove;break;case ye.id:o=Be(t.range,s),o.type=$.HorizontalMove;break;case Ge.id:o=Ti(new r.ObjectMatrix(t.from).getRange(),new r.ObjectMatrix(t.to).getRange(),s);break}return o?Array.isArray(o)?He(o,s):He([o],s):s}var Vi=Object.defineProperty,Li=Object.getOwnPropertyDescriptor,$i=(s,e,n,t)=>{for(var o=t>1?void 0:t?Li(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&Vi(e,n,o),o},$t=(s,e)=>(n,t)=>e(n,t,s);const ji=r.createInterceptorKey("MERGE_REDO"),Bi=r.createInterceptorKey("MERGE_UNDO");class Hi extends r.Disposable{constructor(e,n,t,o,i=!1){super(),this._unitId=e,this._subUnitId=n,this._range=t,this._callback=o,this._skipIntersects=i}onMutation(e){if(e.params.unitId!==this._unitId||e.params.subUnitId!==this._subUnitId||!this._range)return;const n=Wi(this._range,e);if(n&&r.Rectangle.equals(n,this._range))return!1;const t=this._range;this._range=n,this._callback(t,n)}}m.RefRangeService=class extends r.Disposable{constructor(n,t,o,i){super();C(this,"interceptor",new r.InterceptorManager({MERGE_REDO:ji,MERGE_UNDO:Bi}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",Fi());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const t=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),o=fo(this._univerInstanceService),i=Io(this._univerInstanceService),l=((()=>{switch(n.id){case L.MoveColsCommandId:{const S=n.params,R=Math.min(S.fromRange.startColumn,S.toRange.startColumn);return this._checkRange([{...S.fromRange,startColumn:R,endColumn:t.getColumnCount()-1}],o,i)}case L.MoveRowsCommandId:{const S=n.params,R=Math.min(S.fromRange.startRow,S.toRange.startRow);return this._checkRange([{...S.fromRange,startRow:R,endRow:t.getRowCount()-1}],o,i)}case L.MoveRangeCommandId:{const S=n;return this._checkRange([S.params.fromRange,S.params.toRange],o,i)}case L.InsertRowCommandId:{const v={startRow:n.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([v],o,i)}case L.InsertColCommandId:{const R=n.params.range.startColumn,v={startRow:0,endRow:t.getRowCount()-1,startColumn:R,endColumn:t.getColumnCount()-1};return this._checkRange([v],o,i)}case L.RemoveRowCommandId:{const v={startRow:n.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([v],o,i)}case L.RemoveColCommandId:{const R=n.params.range.startColumn,v={startRow:0,endRow:t.getRowCount()-1,startColumn:R,endColumn:t.getColumnCount()-1};return this._checkRange([v],o,i)}case L.DeleteRangeMoveUpCommandId:case L.InsertRangeMoveDownCommandId:{const R=n.params.range||po(this._selectionManagerService)[0],v={startRow:R.startRow,startColumn:R.startColumn,endColumn:R.endColumn,endRow:t.getRowCount()-1};return this._checkRange([v],o,i)}case L.DeleteRangeMoveLeftCommandId:case L.InsertRangeMoveRightCommandId:{const R=n.params.range||po(this._selectionManagerService)[0],v={startRow:R.startRow,startColumn:R.startColumn,endColumn:t.getColumnCount()-1,endRow:R.endRow};return this._checkRange([v],o,i)}}})()||[]).reduce((S,R)=>{const v=R(n);return S.push(v),S},[]).reduce((S,R)=>{var v,f;return S.redos.push(...R.redos),S.undos.push(...R.undos),S.preRedos.push(...(v=R.preRedos)!=null?v:[]),S.preUndos.push(...(f=R.preUndos)!=null?f:[]),S},{redos:[],undos:[],preUndos:[],preRedos:[]}),d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(l.preRedos,null)||[],c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(l.redos,null)||[],h=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(l.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(l.undos,null)||[];return{redos:c,undos:g,preRedos:d,preUndos:h}}})});C(this,"_checkRange",(n,t,o)=>{const i=Mo(t,o),a=this._refRangeManagerMap.get(i);if(a){const u=new Set;return[...a.keys()].forEach(d=>{const c=a.get(d),h=this._serializer.deserialize(d),g={...h,startRow:+h.startRow,endRow:+h.endRow,startColumn:+h.startColumn,endColumn:+h.endColumn};n.some(S=>r.Rectangle.intersects(S,g))&&c&&c.forEach(S=>{u.add(S)})}),[...u]}return[]});C(this,"registerRefRange",(n,t,o,i)=>{const a=o||fo(this._univerInstanceService),u=i||Io(this._univerInstanceService),l=Mo(a,u),d=this._serializer.serialize(n);let c=this._refRangeManagerMap.get(l);c||(c=new Map,this._refRangeManagerMap.set(l,c));const h=c.get(d);return h?h.add(t):c.set(d,new Set([t])),r.toDisposable(()=>{const g=c.get(d);g&&(g.delete(t),g.size||(c.delete(d),c.size||this._refRangeManagerMap.delete(l)))})});this._commandService=n,this._sheetInterceptorService=t,this._univerInstanceService=o,this._selectionManagerService=i,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}watchRange(n,t,o,i,a){let u;this._watchRanges.size===0&&(u=this._commandService.onCommandExecuted(h=>{if(h.type!==r.CommandType.MUTATION)return!1;for(const g of this._watchRanges)g.onMutation(h)}));const l=new Hi(n,t,o,i,a);this._watchRanges.add(l);const d=r.toDisposable(()=>{this._watchRanges.delete(l),this._watchRanges.size===0&&(u==null||u.dispose(),u=null)}),c=this.disposeWithMe(d);return r.toDisposable(()=>{c.dispose(),d.dispose()})}},m.RefRangeService=$i([r.OnLifecycle(r.LifecycleStages.Ready,m.RefRangeService),$t(0,r.ICommandService),$t(1,O.Inject(m.SheetInterceptorService)),$t(2,O.Inject(r.IUniverInstanceService)),$t(3,O.Inject(m.SelectionManagerService))],m.RefRangeService);function fo(s){return s.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Io(s){return s.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function po(s){return s.getSelectionRanges()||[]}function Mo(s,e){return`${s}_${e}`}function Fi(){const s=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:n=>{const t=s.reduce((i,a,u)=>(i[String(u)]=a,i),{});return n.split(e).reduce((i,a,u)=>{const l=String(u);return a&&t[l]&&(i[t[l]]=a),i},{})},serialize:n=>s.reduce((t,o,i)=>{const a=n[o];return a!==void 0?`${t}${i>0?e:""}${a}`:`${t}`},"")}}var Gi=Object.defineProperty,zi=Object.getOwnPropertyDescriptor,Yi=(s,e,n,t)=>{for(var o=t>1?void 0:t?zi(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&Gi(e,n,o),o},Qe=(s,e)=>(n,t)=>e(n,t,s);const qi=[ye.id,we.id,fe.id,_e.id],Ki=[Ue.id,Te.id];function wo(s,e){let n=s;if(e!==void 0){const t=[];for(let o=0;o<n.length;o++){const{startRow:i,endRow:a,startColumn:u,endColumn:l}=n[o];if(e===r.Dimension.ROWS)for(let d=i;d<=a;d++){const c={startRow:d,endRow:d,startColumn:u,endColumn:l};t.push(c)}else if(e===r.Dimension.COLUMNS)for(let d=u;d<=l;d++){const c={startRow:i,endRow:a,startColumn:d,endColumn:d};t.push(c)}}n=t}return n}m.MergeCellController=class extends r.Disposable{constructor(n,t,o,i,a,u){super();C(this,"disposableCollection",new r.DisposableCollection);this._commandService=n,this._refRangeService=t,this._univerInstanceService=o,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(t){switch(t.id){case ht.id:case gt.id:{const o=n._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),i=o.getUnitId(),a=o.getActiveSheet(),u=a.getSheetId(),l=a.getConfig().mergeData,d=n._selectionManagerService.getSelectionRanges();if(d&&d.length>0&&d.some(h=>l.some(g=>r.Rectangle.intersects(g,h)))){const h={unitId:i,subUnitId:u,ranges:d},g=le(n._injector,h),S=[{id:z.id,params:h}],R=[{id:G.id,params:g}];return{redos:S,undos:R}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,t,o){switch(n.id){case L.MoveColsCommandId:{const i=n.params;return this._handleMoveColsCommand(i,t,o)}case L.MoveRowsCommandId:{const i=n.params;return this._handleMoveRowsCommand(i,t,o)}case Ae.id:{const i=n.params,a=i.unitId||t,u=i.subUnitId||o;return this._handleInsertRowCommand(i,a,u)}case We.id:{const i=n.params,a=i.unitId||t,u=i.subUnitId||o;return this._handleInsertColCommand(i,a,u)}case st.id:{const i=n.params;return this._handleRemoveColCommand(i,t,o)}case nt.id:{const i=n.params;return this._handleRemoveRowCommand(i,t,o)}case St.id:{const i=n.params;return this._handleMoveRangeCommand(i,t,o)}case Mt.id:{const i=n.params;return this._handleInsertRangeMoveRightCommand(i,t,o)}case pt.id:{const i=n.params;return this._handleInsertRangeMoveDownCommand(i,t,o)}case It.id:{const i=n.params;return this._handleDeleteRangeMoveUpCommand(i,t,o)}case ft.id:{const i=n.params;return this._handleDeleteRangeMoveLeftCommand(i,t,o)}}return{redos:[],undos:[]}}_onRefRangeChange(){const n=(o,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(o);if(!a)return;const u=a==null?void 0:a.getSheetBySheetId(i);if(!u)return;this.disposableCollection.dispose();const l=u.getMergeData(),d=c=>this.refRangeHandle(c,o,i);l.forEach(c=>{this.disposableCollection.add(this._refRangeService.registerRefRange(c,d,o,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id===Ut.id){const i=o.params,a=i.subUnitId,u=i.unitId;if(!a||!u)return;n(u,a)}if(o.id===G.id){const i=o.params,a=i.subUnitId,u=i.unitId;if(!a||!u)return;n(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(t){const o=t.getActiveSheet();n(t.getUnitId(),o.getSheetId())}}_handleMoveRowsCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const u=[...a.getMergeData()],l={unitId:t,subUnitId:o,ranges:[]},d={unitId:t,subUnitId:o,ranges:[]},{fromRange:c}=n,{startRow:h,endRow:g}=c;if(u.forEach(v=>{if(h<=v.startRow&&g>=v.endRow){l.ranges.push(v);const f=vn({id:L.MoveRowsCommandId,params:n},v),p=He(f,v);p&&d.ranges.push(p)}}),l.ranges.length===0)return this._handleNull();const S=le(this._injector,l),R=Se(this._injector,d);return{redos:[{id:z.id,params:l},{id:G.id,params:d}],undos:[{id:z.id,params:R},{id:G.id,params:S}]}}_handleMoveColsCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const u=[...a.getMergeData()],l={unitId:t,subUnitId:o,ranges:[]},d={unitId:t,subUnitId:o,ranges:[]},{fromRange:c}=n,{startColumn:h,endColumn:g}=c;if(u.forEach(v=>{if(h<=v.startColumn&&g>=v.endColumn){l.ranges.push(v);const f=Cn({id:L.MoveColsCommandId,params:n},v),p=He(f,v);p&&d.ranges.push(p)}}),l.ranges.length===0)return this._handleNull();const S=le(this._injector,l),R=Se(this._injector,d);return{redos:[{id:z.id,params:l},{id:G.id,params:d}],undos:[{id:z.id,params:R},{id:G.id,params:S}]}}_handleMoveRangeCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const u=a.getMergeData(),l=u.filter(R=>r.Rectangle.intersects(R,n.fromRange)),d=u.filter(R=>r.Rectangle.intersects(R,n.toRange)),c=l.map(R=>r.Rectangle.getRelativeRange(R,n.fromRange)).map(R=>r.Rectangle.getPositionRange(R,n.toRange)),h=wo(c).filter(R=>!u.some(v=>r.Rectangle.equals(R,v))),g=[{id:z.id,params:{unitId:t,subUnitId:o,ranges:l}},{id:z.id,params:{unitId:t,subUnitId:o,ranges:d}},{id:G.id,params:{unitId:t,subUnitId:o,ranges:h}}],S=[{id:z.id,params:{unitId:t,subUnitId:o,ranges:h}},{id:G.id,params:{unitId:t,subUnitId:o,ranges:d}},{id:G.id,params:{unitId:t,subUnitId:o,ranges:l}}];return{redos:g,undos:S}}_handleInsertRowCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const{range:u}=n,{startRow:l,endRow:d}=u,c=r.Tools.deepClone(a.getMergeData()).reduce((M,I)=>(l>I.startRow&&l<=I.endRow&&M.push(I),M),[]);if(c.length===0)return this._handleNull();const h=r.Tools.deepClone(a.getMergeData()).reduce((M,I)=>{if(l>I.startRow&&l<=I.endRow){const y=d-l+1;I.endRow+=y,this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R),f=[{id:z.id,params:g},{id:G.id,params:R}],p=[{id:z.id,params:v},{id:G.id,params:S}];return{redos:f,undos:p}}_handleInsertColCommand(n,t,o){const{range:i}=n,a=ve(this._univerInstanceService,t);if(!a)return this._handleNull();const u=Ce(a,o);if(!u)return this._handleNull();const{startColumn:l,endColumn:d}=i,c=r.Tools.deepClone(u.getMergeData()).reduce((M,I)=>(l>I.startColumn&&l<=I.endColumn&&M.push(I),M),[]);if(c.length===0)return this._handleNull();const h=r.Tools.deepClone(u.getMergeData()).reduce((M,I)=>{if(l>I.startColumn&&l<=I.endColumn){const y=d-l+1;I.endColumn+=y,this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R),f=[{id:z.id,params:g},{id:G.id,params:R}],p=[{id:z.id,params:v},{id:G.id,params:S}];return{redos:f,undos:p}}_handleRemoveColCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const{range:u}=n,{startColumn:l,endColumn:d}=u,c=r.Tools.deepClone(a.getMergeData()).reduce((y,w)=>(r.Rectangle.intersects(u,w)&&y.push(w),y),[]);if(c.length===0)return this._handleNull();const h=r.Tools.deepClone(a.getMergeData()).reduce((y,w)=>{if(r.Rectangle.intersects(u,w)){if(l<=w.startColumn&&d>=w.endColumn)return y;l>=w.startColumn&&d<=w.endColumn?w.endColumn-=d-l+1:l<w.startColumn?(w.startColumn=l,w.endColumn-=d-l+1):d>w.endColumn&&(w.endColumn=l-1),this._checkIsMergeCell(w)&&y.push(w)}return y},[]),g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R),f=[{id:z.id,params:g}],p=[{id:G.id,params:R}],M=[{id:z.id,params:v}],I=[{id:G.id,params:S}];return{preUndos:M,undos:I,preRedos:f,redos:p}}_handleRemoveRowCommand(n,t,o){const{range:i}=n,a=ve(this._univerInstanceService,t);if(!a)return this._handleNull();const u=Ce(a,o);if(!u)return this._handleNull();const{startRow:l,endRow:d}=i,c=r.Tools.deepClone(u.getMergeData()).reduce((y,w)=>(r.Rectangle.intersects(i,w)&&y.push(w),y),[]);if(c.length===0)return this._handleNull();const h=r.Tools.deepClone(u.getMergeData()).reduce((y,w)=>{if(r.Rectangle.intersects(i,w)){if(l<=w.startRow&&d>=w.endRow)return y;l>=w.startRow&&d<=w.endRow?w.endRow-=d-l+1:l<w.startRow?(w.startRow=l,w.endRow-=d-l+1):d>w.endRow&&(w.endRow=l-1),this._checkIsMergeCell(w)&&y.push(w)}return y},[]),g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R),f=[{id:z.id,params:g}],p=[{id:G.id,params:R}],M=[{id:z.id,params:v}],I=[{id:G.id,params:S}];return{preUndos:M,undos:I,preRedos:f,redos:p}}_handleInsertRangeMoveRightCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const u=n.range,l=a.getMaxColumns()-1,d=a.getMergeData(),c=[],h=[];d.forEach(f=>{const{startRow:p,endRow:M,startColumn:I,endColumn:y}=u;if(r.Rectangle.intersects({startRow:p,startColumn:I,endRow:M,endColumn:l},f)&&(c.push(f),r.Rectangle.contains({startRow:p,startColumn:I,endRow:M,endColumn:l},f))){const T=y-I+1;h.push({startRow:f.startRow,startColumn:f.startColumn+T,endRow:f.endRow,endColumn:f.endColumn+T})}});const g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R);return{redos:[{id:z.id,params:g},{id:G.id,params:R}],undos:[{id:G.id,params:S},{id:z.id,params:v}]}}_handleInsertRangeMoveDownCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const u=n.range,l=a.getMaxRows()-1,d=a.getMergeData(),c=[],h=[];d.forEach(M=>{const{startRow:I,startColumn:y,endColumn:w,endRow:_}=u;if(r.Rectangle.intersects({startRow:I,startColumn:y,endRow:l,endColumn:w},M)&&(c.push(M),r.Rectangle.contains({startRow:I,startColumn:y,endRow:l,endColumn:w},M))){const N=_-I+1;h.push({startRow:M.startRow+N,startColumn:M.startColumn,endRow:M.endRow+N,endColumn:M.endColumn})}});const g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R),f=[{id:z.id,params:g},{id:G.id,params:R}],p=[{id:G.id,params:S},{id:z.id,params:v}];return{redos:f,undos:p}}_handleDeleteRangeMoveUpCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const u=n.range,l=a.getMaxRows()-1,d=a.getMergeData(),c=[],h=[];d.forEach(M=>{const{startRow:I,startColumn:y,endColumn:w,endRow:_}=u;if(r.Rectangle.intersects({startRow:I,startColumn:y,endRow:l,endColumn:w},M)&&(c.push(M),r.Rectangle.contains({startRow:I,startColumn:y,endRow:l,endColumn:w},M))){const N=_-I+1,A=r.Rectangle.moveVertical(M,-N);h.push(A)}});const g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R),f=[{id:z.id,params:g},{id:G.id,params:R}],p=[{id:G.id,params:S},{id:z.id,params:v}];return{redos:f,undos:p}}_handleDeleteRangeMoveLeftCommand(n,t,o){const i=ve(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Ce(i,o);if(!a)return this._handleNull();const u=n.range,l=a.getMaxColumns()-1,d=a.getMergeData(),c=[],h=[];d.forEach(f=>{const{startRow:p,endRow:M,startColumn:I,endColumn:y}=u;if(r.Rectangle.intersects({startRow:p,startColumn:I,endRow:M,endColumn:l},f)&&(c.push(f),r.Rectangle.contains({startRow:p,startColumn:I,endRow:M,endColumn:l},f))){const T=y-I+1;h.push({startRow:f.startRow,startColumn:f.startColumn-T,endRow:f.endRow,endColumn:f.endColumn-T})}});const g={unitId:t,subUnitId:o,ranges:c},S=le(this._injector,g),R={unitId:t,subUnitId:o,ranges:h},v=Se(this._injector,R);return{redos:[{id:z.id,params:g},{id:G.id,params:R}],undos:[{id:G.id,params:S},{id:z.id,params:v}]}}_checkIsMergeCell(n){return!(n.startRow===n.endRow&&n.startColumn===n.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(Ki.includes(n.id)){if(!n.params)return;const t=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!t)return;const o=t.getSheetBySheetId(n.params.subUnitId);if(!o)return;const{sourceRange:i,targetRange:a}=n.params,u=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,l=u?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=u?i.startRow:i.startColumn,c=u?a.startRow:a.startColumn,h=o.getConfig().mergeData,g=[];h.forEach(f=>{let{startRow:p,endRow:M,startColumn:I,endColumn:y,rangeType:w}=f;r.Rectangle.intersects(f,i)||(u?d<p&&c>M?(p-=l,M-=l):d>M&&c<=p&&(p+=l,M+=l):d<I&&c>y?(I-=l,y-=l):d>y&&c<=I&&(I+=l,y+=l)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:p,endRow:M,startColumn:I,endColumn:y,rangeType:w})}),o.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:S,subUnitId:R}=n.params,v=f=>this.refRangeHandle(f,S,R);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,v,S,R))})}if(qi.includes(n.id)){const t=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!t)return;const o=t.getSheetBySheetId(n.params.subUnitId);if(!o)return;const i=o.getConfig().mergeData,a=n.params;if(!a)return;const{range:u}=a,l=n.id.includes("row"),d=n.id.includes("insert"),c=l?u.startRow:u.startColumn,h=l?u.endRow:u.endColumn,g=h-c+1,S=[];i.forEach(p=>{let{startRow:M,endRow:I,startColumn:y,endColumn:w,rangeType:_}=p;d?l?c<=M&&(M+=g,I+=g):c<=y&&(y+=g,w+=g):l?h<M&&(M-=g,I-=g):h<y&&(y-=g,w-=g),p.startRow===p.endRow&&p.startColumn===p.endColumn||S.push({startRow:M,endRow:I,startColumn:y,endColumn:w,rangeType:_})}),o.getConfig().mergeData=S,this.disposableCollection.dispose();const{unitId:R,subUnitId:v}=n.params,f=p=>this.refRangeHandle(p,R,v);S.forEach(p=>{this.disposableCollection.add(this._refRangeService.registerRefRange(p,f,R,v))})}}))}},m.MergeCellController=Yi([r.OnLifecycle(r.LifecycleStages.Steady,m.MergeCellController),Qe(0,O.Inject(r.ICommandService)),Qe(1,O.Inject(m.RefRangeService)),Qe(2,O.Inject(r.IUniverInstanceService)),Qe(3,O.Inject(O.Injector)),Qe(4,O.Inject(m.SheetInterceptorService)),Qe(5,O.Inject(m.SelectionManagerService))],m.MergeCellController);function ve(s,e){return e?s.getUniverSheetInstance(e):s.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET)}function Ce(s,e){return e?s.getSheetBySheetId(e):s.getActiveSheet()}var Zi=Object.defineProperty,Xi=Object.getOwnPropertyDescriptor,Ji=(s,e,n,t)=>{for(var o=t>1?void 0:t?Xi(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&Zi(e,n,o),o},wn=(s,e)=>(n,t)=>e(n,t,s);m.NumfmtService=class extends r.Disposable{constructor(e,n,t){super(),this._resourceManagerService=e,this._univerInstanceService=n,this._logService=t}getValue(e,n,t,o){const i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;const u=i.getStyles(),l=a.getCellRaw(t,o);if(l!=null&&l.s){const d=u.get(l.s);if(d!=null&&d.n)return d.n}return null}deleteValues(e,n,t){const o=this._univerInstanceService.getUniverSheetInstance(e);if(!o)return;const i=o==null?void 0:o.getSheetBySheetId(n);if(!i)return;const a=o.getStyles();t.forEach(u=>{r.Range.foreach(u,(l,d)=>{const c=i.getCellRaw(l,d);if(!c)return;const h=c==null?void 0:c.s,S={...h&&a.get(h)||{}};delete S.n;const R=a.setValue(S);c.s=R})})}setValues(e,n,t){const o=this._univerInstanceService.getUniverSheetInstance(e);if(!o)return;const i=o==null?void 0:o.getSheetBySheetId(n);if(!i)return;const a=o.getStyles(),u=i.getCellMatrix();t.forEach(l=>{l.ranges.forEach(d=>{r.Range.foreach(d,(c,h)=>{const g=i.getCellRaw(c,h);if(g){const R={...g.s&&a.get(g.s)||{},n:{pattern:l.pattern}},v=a.setValue(R);g.s=v}else{const S={n:{pattern:l.pattern}},R=a.setValue(S);R&&u.setValue(c,h,{s:R})}})})})}},m.NumfmtService=Ji([wn(0,r.IResourceManagerService),wn(1,r.IUniverInstanceService),wn(2,r.ILogService)],m.NumfmtService);const yn=()=>[Jn,Qn,Xn,es,ts,xn,ns],Qi=[b.Edit,b.View,b.Comment,b.Print,b.Copy,b.ManageCollaborator];var xi=Object.defineProperty,ea=Object.getOwnPropertyDescriptor,ta=(s,e,n,t)=>{for(var o=t>1?void 0:t?ea(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&xi(e,n,o),o},yo=(s,e)=>(n,t)=>e(n,t,s);m.WorkbookPermissionService=class extends r.Disposable{constructor(e,n){super(),this._permissionService=e,this._univerInstanceService=n,this._init()}_init(){const e=n=>{const t=n.getUnitId();yn().forEach(o=>{const i=new o(t);this._permissionService.addPermissionPoint(i)})};this._univerInstanceService.getAllUnitsForType(r.UniverInstanceType.UNIVER_SHEET).forEach(n=>{e(n)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(r.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{e(n)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{const t=n.getUnitId();yn().forEach(o=>{const i=new o(t);this._permissionService.deletePermissionPoint(i.id)})}))}},m.WorkbookPermissionService=ta([r.OnLifecycle(r.LifecycleStages.Starting,m.WorkbookPermissionService),yo(0,O.Inject(r.IPermissionService)),yo(1,O.Inject(r.IUniverInstanceService))],m.WorkbookPermissionService);var na=Object.defineProperty,sa=Object.getOwnPropertyDescriptor,oa=(s,e,n,t)=>{for(var o=t>1?void 0:t?sa(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&na(e,n,o),o},jt=(s,e)=>(n,t)=>e(n,t,s);const ra="SHEET_DEFINED_NAME_PLUGIN";m.DefinedNameDataController=class extends r.Disposable{constructor(e,n,t,o){super(),this._commandService=e,this._univerInstanceService=n,this._definedNamesService=t,this._resourceManagerService=o,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const e=t=>{const o=this._definedNamesService.getDefinedNameMap(t);return o?JSON.stringify(o):""},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:ra,businesses:[r.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:t=>n(t),onUnLoad:t=>{this._definedNamesService.removeUnitDefinedName(t)},onLoad:(t,o)=>{this._definedNamesService.registerDefinedNames(t,o)}}))}},m.DefinedNameDataController=oa([r.OnLifecycle(r.LifecycleStages.Ready,m.DefinedNameDataController),jt(0,r.ICommandService),jt(1,r.IUniverInstanceService),jt(2,ie.IDefinedNamesService),jt(3,r.IResourceManagerService)],m.DefinedNameDataController);const Oe=()=>[os,ss],ia=(s="unitId",e="subUnitId",n="permissionId")=>Oe().reduce((t,o)=>{const i=new o(s,e,n);return t[i.subType]=i.value,t},{});var aa=Object.defineProperty,ua=Object.getOwnPropertyDescriptor,la=(s,e,n,t)=>{for(var o=t>1?void 0:t?ua(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&aa(e,n,o),o},_o=(s,e)=>(n,t)=>e(n,t,s);m.RangeProtectionRenderModel=class{constructor(e,n){C(this,"_cache",new r.LRUMap(1e4));this._selectionProtectionRuleModel=e,this._permissionService=n,this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(xe.filter(e=>e.type===D.SelectRange),xe.filter(e=>Oe().some(n=>e instanceof n)),xe.map(e=>e)).subscribe(e=>{const n=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(const t of n)t.permissionId===e.permissionId&&t.ranges.forEach(o=>{r.Range.foreach(o,(i,a)=>{const u=this._createKey(e.unitId,e.subUnitId,i,a);this._cache.delete(u)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{var n;e.rule.ranges.forEach(t=>{r.Range.foreach(t,(o,i)=>{const a=this._createKey(e.unitId,e.subUnitId,o,i);this._cache.delete(a)})}),e.type==="set"&&((n=e.oldRule)==null||n.ranges.forEach(t=>{r.Range.foreach(t,(o,i)=>{const a=this._createKey(e.unitId,e.subUnitId,o,i);this._cache.delete(a)})}))})}_createKey(e,n,t,o){return`${e}_${n}_${t}_${o}`}getCellInfo(e,n,t,o){const i=this._createKey(e,n,t,o),a=this._cache.get(i);if(a)return a;const u=this._selectionProtectionRuleModel.getSubunitRuleList(e,n),l=[];if(!u||!u.length)return l;const d=[];for(const c of u)if(c.ranges.some(h=>h.startRow<=t&&h.endRow>=t&&h.startColumn<=o&&h.endColumn>=o)){const h=Oe().reduce((g,S)=>{var f;const R=new S(e,n,c.permissionId),v=this._permissionService.getPermissionPoint(R.id);return g[R.subType]=(f=v==null?void 0:v.value)!=null?f:R.value,g},{});d.push({...h,ruleId:c.id,ranges:c.ranges})}return this._cache.set(i,d),d}clear(){this._cache.clear()}},m.RangeProtectionRenderModel=la([r.OnLifecycle(r.LifecycleStages.Ready,m.RangeProtectionRenderModel),_o(0,O.Inject(m.RangeProtectionRuleModel)),_o(1,O.Inject(r.IPermissionService))],m.RangeProtectionRenderModel);var da=Object.defineProperty,ca=Object.getOwnPropertyDescriptor,ma=(s,e,n,t)=>{for(var o=t>1?void 0:t?ca(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&da(e,n,o),o},ut=(s,e)=>(n,t)=>e(n,t,s);const ha=[ye.id,we.id,fe.id,_e.id],ga=[Ue.id,Te.id];m.RangeProtectionRefRangeService=class extends r.Disposable{constructor(n,t,o,i,a){super();C(this,"disposableCollection",new r.DisposableCollection);this._selectionProtectionRuleModel=n,this._univerInstanceService=t,this._commandService=o,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._onRefRangeChange(),this._correctPermissionRange()}_onRefRangeChange(){const n=(o,i)=>{const a=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a||!(a==null?void 0:a.getSheetBySheetId(i)))return;this.disposableCollection.dispose();const l=c=>this.refRangeHandle(c,o,i);this._selectionProtectionRuleModel.getSubunitRuleList(o,i).reduce((c,h)=>[...c,...h.ranges],[]).forEach(c=>{this.disposableCollection.add(this._refRangeService.registerRefRange(c,l,o,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id===Ut.id){const i=o.params,a=i.subUnitId,u=i.unitId;if(!a||!u)return;n(u,a)}if(o.id===Rn.id||o.id===Sn.id){const i=o.params,a=i.rule.subUnitId,u=i.rule.unitId;if(!a||!u)return;n(u,a)}}));const t=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(t){const o=t.getActiveSheet();n(t.getUnitId(),o.getSheetId())}}refRangeHandle(n,t,o){switch(n.id){case wt.id:return this._getRefRangeMutationsByMoveRows(n.params,t,o);case yt.id:return this._getRefRangeMutationsByMoveCols(n.params,t,o);case Ae.id:return this._getRefRangeMutationsByInsertRows(n.params,t,o);case We.id:return this._getRefRangeMutationsByInsertCols(n.params,t,o);case st.id:return this._getRefRangeMutationsByDeleteCols(n.params,t,o);case nt.id:return this._getRefRangeMutationsByDeleteRows(n.params,t,o)}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(n,t,o){const i=this._selectionProtectionRuleModel.getSubunitRuleList(t,o).filter(u=>u.ranges.some(l=>r.Rectangle.intersects(l,n.range))),a=n.range;if(i.length){const u=[],l=[];return i.forEach(d=>{const c=r.Tools.deepClone(d),h=c.ranges.reduce((g,S)=>{if(r.Rectangle.intersects(S,a)){const R=r.Tools.deepClone(S),{startColumn:v,endColumn:f}=a;if(v<=R.startColumn&&f>=R.endColumn)return g;v>=R.startColumn&&f<=R.endColumn?R.endColumn-=f-v+1:v<R.startColumn?(R.startColumn=v,R.endColumn-=f-v+1):f>R.endColumn&&(R.endColumn=v-1),this._checkIsRightRange(R)&&g.push(R)}return g},[]);c.ranges=h,u.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:c,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:d,ruleId:d.id}})}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(n,t,o){const i=this._selectionProtectionRuleModel.getSubunitRuleList(t,o).filter(u=>u.ranges.some(l=>r.Rectangle.intersects(l,n.range))),a=n.range;if(i.length){const u=[],l=[];return i.forEach(d=>{const c=r.Tools.deepClone(d),h=c.ranges.reduce((g,S)=>{if(r.Rectangle.intersects(S,a)){const R=r.Tools.deepClone(S),{startRow:v,endRow:f}=a;if(v<=R.startRow&&f>=R.endRow)return g;v>=R.startRow&&f<=R.endRow?R.endRow-=f-v+1:v<R.startRow?(R.startRow=v,R.endRow-=f-v+1):f>R.endRow&&(R.endRow=v-1),this._checkIsRightRange(R)&&g.push(R)}return g},[]);c.ranges=h,u.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:c,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:d,ruleId:d.id}})}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(n,t,o){const i=n.range.startColumn,a=n.range.endColumn-n.range.startColumn+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(t,o).filter(l=>l.ranges.some(d=>i>d.startColumn&&i<=d.endColumn));if(u.length){const l=[],d=[];return u.forEach(c=>{const h=r.Tools.deepClone(c);let g=!1;h.ranges.forEach(S=>{i>S.startColumn&&i<=S.endColumn&&(S.endColumn+=a,g=!0)}),g&&(l.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:h,ruleId:c.id}}),d.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:c,ruleId:c.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(n,t,o){const i=n.range.startRow,a=n.range.endRow-n.range.startRow+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(t,o).filter(l=>l.ranges.some(d=>i>d.startRow&&i<=d.endRow));if(u.length){const l=[],d=[];return u.forEach(c=>{const h=r.Tools.deepClone(c);let g=!1;h.ranges.forEach(S=>{i>S.startRow&&i<=S.endRow&&(S.endRow+=a,g=!0)}),g&&(l.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:h,ruleId:c.id}}),d.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:c,ruleId:c.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(n,t,o){const i=n.toRange,a=i.startRow,u=i.endRow-i.startRow+1,l=this._selectionProtectionRuleModel.getSubunitRuleList(t,o).filter(d=>d.ranges.some(c=>a>c.startRow&&a<=c.endRow));if(l.length){const d=[],c=[];return l.forEach(h=>{const g=r.Tools.deepClone(h),R=n.fromRange.startRow;let v=!1;g.ranges.forEach(f=>{a>f.startRow&&a<=f.endRow&&(R<f.startRow&&(f.startRow=f.startRow-u,f.endRow=f.endRow-u),f.endRow+=u,v=!0)}),v&&(d.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:g,ruleId:h.id}}),c.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:h,ruleId:h.id}}))}),{redos:d,undos:c}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(n,t,o){const i=n.toRange,a=i.startColumn,u=i.endColumn-i.startColumn+1,l=this._selectionProtectionRuleModel.getSubunitRuleList(t,o).filter(d=>d.ranges.some(c=>a>c.startColumn&&a<=c.endColumn));if(l.length){const d=[],c=[];return l.forEach(h=>{const g=r.Tools.deepClone(h),R=n.fromRange.startColumn;let v=!1;g.ranges.forEach(f=>{a>f.startColumn&&a<=f.endColumn&&(R<f.startColumn&&(f.startColumn=f.startColumn-u,f.endColumn=f.endColumn-u),f.endColumn+=u,v=!0)}),v&&(d.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:g,ruleId:h.id}}),c.push({id:ee.id,params:{unitId:t,subUnitId:o,rule:h,ruleId:h.id}}))}),{redos:d,undos:c}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(ga.includes(n.id)){if(!n.params)return;const t=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!t)return;const o=t.getSheetBySheetId(n.params.subUnitId);if(!o)return;const{sourceRange:i,targetRange:a}=n.params,u=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,l=u?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=u?i.startRow:i.startColumn,c=u?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),o.getSheetId()).forEach(f=>{f.ranges.forEach(M=>{let{startRow:I,endRow:y,startColumn:w,endColumn:_}=M;r.Rectangle.intersects(M,i)||(u?d<I&&c>y?(I-=l,y-=l):d>y&&c<=I&&(I+=l,y+=l):d<w&&c>_?(w-=l,_-=l):d>_&&c<=w&&(w+=l,_+=l)),this._checkIsRightRange({startRow:I,endRow:y,startColumn:w,endColumn:_})&&(M.startColumn=w,M.endColumn=_,M.startRow=I,M.endRow=y)})}),this.disposableCollection.dispose();const{unitId:g,subUnitId:S}=n.params,R=f=>this.refRangeHandle(f,g,S);this._selectionProtectionRuleModel.getSubunitRuleList(g,S).reduce((f,p)=>[...f,...p.ranges],[]).forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,R,g,S))}),this._selectionProtectionRenderModel.clear()}if(ha.includes(n.id)){const t=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!t)return;const o=t.getSheetBySheetId(n.params.subUnitId);if(!o)return;const i=n.params;if(!i)return;const{range:a}=i,u=n.id.includes("row"),l=n.id.includes("insert"),d=u?a.startRow:a.startColumn,c=u?a.endRow:a.endColumn,h=c-d+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),o.getSheetId()).forEach(p=>{p.ranges.forEach(I=>{let{startRow:y,endRow:w,startColumn:_,endColumn:T}=I;l?u?d<=y&&(y+=h,w+=h):d<=_&&(_+=h,T+=h):u?c<y&&(y-=h,w-=h):c<_&&(_-=h,T-=h),this._checkIsRightRange({startRow:y,endRow:w,startColumn:_,endColumn:T})&&(I.startColumn=_,I.endColumn=T,I.startRow=y,I.endRow=w)})}),this.disposableCollection.dispose();const{unitId:S,subUnitId:R}=n.params,v=p=>this.refRangeHandle(p,S,R);this._selectionProtectionRuleModel.getSubunitRuleList(S,R).reduce((p,M)=>[...p,...M.ranges],[]).forEach(p=>{this.disposableCollection.add(this._refRangeService.registerRefRange(p,v,S,R))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(n){return n.startRow<=n.endRow&&n.startColumn<=n.endColumn}},m.RangeProtectionRefRangeService=ma([r.OnLifecycle(r.LifecycleStages.Starting,m.RangeProtectionRefRangeService),ut(0,O.Inject(m.RangeProtectionRuleModel)),ut(1,O.Inject(r.IUniverInstanceService)),ut(2,r.ICommandService),ut(3,O.Inject(m.RefRangeService)),ut(4,O.Inject(m.RangeProtectionRenderModel))],m.RangeProtectionRefRangeService);var Ra=Object.defineProperty,Sa=Object.getOwnPropertyDescriptor,va=(s,e,n,t)=>{for(var o=t>1?void 0:t?Sa(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&Ra(e,n,o),o},_n=(s,e)=>(n,t)=>e(n,t,s);const Ca="SHEET_RANGE_PROTECTION_PLUGIN";m.RangeProtectionService=class extends r.Disposable{constructor(e,n,t){super(),this._selectionProtectionRuleModel=e,this._permissionService=n,this._resourceManagerService=t,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Oe().forEach(n=>{const t=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(t)});break}case"delete":{Oe().forEach(n=>{const t=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(t.id)});break}case"set":{e.oldRule.permissionId!==e.rule.permissionId&&Oe().forEach(n=>{const t=new n(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(t.id);const o=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(o)});break}}}))}_initSnapshot(){const e=t=>{const i=this._selectionProtectionRuleModel.toObject()[t];return i?JSON.stringify(i):""},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:Ca,businesses:[Ct.UNIVER_SHEET],onLoad:(t,o)=>{const i=this._selectionProtectionRuleModel.toObject();i[t]=o,this._selectionProtectionRuleModel.fromObject(i);const a=[];Object.keys(o).forEach(u=>{const l=o[u];this._selectionProtectionRuleModel.getSubunitRuleList(t,u).forEach(d=>{a.push({objectID:d.permissionId,unitID:t,objectType:D.SelectRange,actions:[b.View,b.Edit]})}),l.forEach(d=>{Oe().forEach(c=>{const h=new c(t,u,d.permissionId);this._permissionService.addPermissionPoint(h)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}},m.RangeProtectionService=va([r.OnLifecycle(r.LifecycleStages.Starting,m.RangeProtectionService),_n(0,O.Inject(m.RangeProtectionRuleModel)),_n(1,O.Inject(r.IPermissionService)),_n(2,O.Inject(r.IResourceManagerService))],m.RangeProtectionService);var fa=Object.defineProperty,Ia=Object.getOwnPropertyDescriptor,pa=(s,e,n,t)=>{for(var o=t>1?void 0:t?Ia(e,n):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(o=(t?a(e,n,o):a(o))||o);return t&&o&&fa(e,n,o),o},Bt=(s,e)=>(n,t)=>e(n,t,s);const Ma="SHEET_PLUGIN";m.UniverSheetsPlugin=(Ht=class extends r.Plugin{constructor(e,n,t,o,i){super(),this._config=e,this._commandService=n,this._configService=t,this._localeService=o,this._injector=i,this._initConfig(),this._initDependencies(i)}onRendered(){}_initConfig(){var e;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(co,!0)}_initDependencies(e){var t,o;const n=[[Ve],[m.SelectionManagerService],[m.RefRangeService],[m.WorkbookPermissionService],[Le,{useClass:m.NumfmtService}],[m.SheetInterceptorService],[Dt],[m.MergeCellController],[m.DefinedNameDataController],[m.WorksheetPermissionService],[m.WorksheetProtectionRuleModel],[m.WorksheetProtectionPointModel],[m.RangeProtectionRenderModel],[m.RangeProtectionRuleModel],[m.RangeProtectionRefRangeService],[m.RangeProtectionService]];(t=this._config)!=null&&t.notExecuteFormula||n.push([At],[Vt]),r.mergeOverrideWithDependencies(n,(o=this._config)==null?void 0:o.override).forEach(i=>{e.add(i)})}},C(Ht,"pluginName",Ma),C(Ht,"type",r.UniverInstanceType.UNIVER_SHEET),Ht),m.UniverSheetsPlugin=pa([Bt(1,r.ICommandService),Bt(2,r.IConfigService),Bt(3,O.Inject(r.LocaleService)),Bt(4,O.Inject(O.Injector))],m.UniverSheetsPlugin);const wa=[Pe.id,he.id,rn.id,be.id,rt.id,Ue.id,Te.id,Ye.id,qe.id,Ze.id,Ke.id,ye.id,we.id,fe.id,_e.id],ya=[K.id,Ge.id,z.id,G.id],_a=1.5,ba="rgba(255, 255, 255, 0.01)";function Pa(s){const e=s.getCurrentTheme(),n=new r.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,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 Ua(s){const{rangeWithCoord:e,primaryWithCoord:n,style:t}=s,o={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return n!=null&&(o.primary=bo(n)),o}function bo(s){const{actualRow:e,actualColumn:n,isMerged:t,isMergedMainCell:o}=s,{startRow:i,startColumn:a,endRow:u,endColumn:l}=s.mergeInfo;return{actualRow:e,actualColumn:n,isMerged:t,isMergedMainCell:o,startRow:i,startColumn:a,endRow:u,endColumn:l}}function Ta(s,e,n){const t=dt.getCellInfoInMergeData(s,e,n),o=r.makeCellRangeToRangeData(t);if(o)return{range:o,primary:t,style:null}}const Ea=(s,e,n)=>{const o=s.get(m.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:u,subUnitId:l}=e;if(o){const c=o[(o==null?void 0:o.length)-1].primary;if(c){const{actualColumn:h,actualRow:g}=c;let{startRow:S,startColumn:R,endRow:v,endColumn:f}=a[a.length-1];if(i===r.Dimension.COLUMNS){const y=n.find(w=>w.startColumn===h&&w.endColumn===h&&g===w.startRow);y&&(f=y.endColumn,S=y.startRow,v=y.endRow)}else if(i===r.Dimension.ROWS){const y=n.find(w=>w.startRow===g&&w.endRow===g&&h===w.startColumn);y&&(v=y.endRow,R=y.startColumn,f=y.endColumn)}const p={startRow:S,startColumn:R,endRow:v,endColumn:f,actualRow:g,actualColumn:h,isMerged:!0,isMergedMainCell:S===g&&R===h},M=o.map((y,w,_)=>({range:y.range,style:null,primary:w===_.length-1?p:null})),I={unitId:u,subUnitId:l,pluginName:Q,selections:M};return{id:Z.id,params:I}}return null}return null},Na=(s,e)=>{const t=s.get(m.SelectionManagerService).getSelections(),{unitId:o,subUnitId:i}=e;if(t&&t[(t==null?void 0:t.length)-1].primary){const l={unitId:o,subUnitId:i,pluginName:Q,selections:[...t]};return{id:Z.id,params:l}}return null},Po="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",Uo="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",ka=25,Oa=80;class To extends dt.SheetExtension{constructor(){super();C(this,"_pattern",null);C(this,"_img",new Image);C(this,"renderCache",new Set);this._img.src=no}clearCache(){this.renderCache.clear()}draw(n,t,o,i){const{rowHeightAccumulation:a,columnWidthAccumulation:u,worksheet:l,dataMergeCache:d}=o;l&&(n.save(),this._pattern||(this._pattern=n.createPattern(this._img,"repeat")),this.renderCache.clear(),r.Range.foreach(o.rowColumnSegment,(c,h)=>{if(!l.getColVisible(h)||!l.getRowVisible(c))return;const{selectionProtection:g=[]}=l.getCell(c,h)||{};this._pattern&&(n.fillStyle=this._pattern,g.forEach(S=>{if(S.ruleId&&this.shouldRender(S)){if(this.renderCache.has(S.ruleId))return;this.renderCache.add(S.ruleId),S.ranges.forEach(R=>{const v=this.getCellIndex(R.startRow,R.startColumn,a,u,d),f=this.getCellIndex(R.endRow,R.endColumn,a,u,d);n.fillRect(v.startX,v.startY,f.endX-v.startX,f.endY-v.startY)})}}))}),n.restore())}}class Da extends To{constructor(){super();C(this,"uKey",Po);C(this,"Z_INDEX",ka)}shouldRender(n){return(n==null?void 0:n[b.View])!==!1}}class Aa extends To{constructor(){super();C(this,"uKey",Uo);C(this,"Z_INDEX",Oa)}shouldRender(n){return(n==null?void 0:n[b.View])===!1}}m.AddMergeRedoSelectionsOperationFactory=Ea,m.AddMergeUndoMutationFactory=Se,m.AddMergeUndoSelectionsOperationFactory=Na,m.AddRangeProtectionCommand=Rn,m.AddRangeProtectionMutation=Je,m.AddWorksheetMergeMutation=G,m.AddWorksheetProtectionMutation=xs,m.BorderStyleManagerService=Ve,m.COMMAND_LISTENER_SKELETON_CHANGE=wa,m.COMMAND_LISTENER_VALUE_CHANGE=ya,m.ClearSelectionAllCommand=ht,m.ClearSelectionContentCommand=Gt,m.ClearSelectionFormatCommand=gt,m.CopySheetCommand=On,m.DeleteRangeMoveLeftCommand=ft,m.DeleteRangeMoveUpCommand=It,m.DeleteRangeProtectionCommand=uo,m.DeleteRangeProtectionMutation=Xe,m.DeleteWorksheetProtectionMutation=to,m.DeltaColumnWidthCommand=nn,m.DeltaRowHeightCommand=an,m.EffectRefRangId=L,m.EmptyMutation=Ks,m.FactoryAddRangeProtectionMutation=gi,m.FactoryDeleteRangeProtectionMutation=hi,m.FactorySetRangeProtectionMutation=Ri,m.INTERCEPTOR_POINT=ct,m.INumfmtService=Le,m.InsertColAfterCommand=hs,m.InsertColBeforeCommand=ms,m.InsertColCommand=We,m.InsertColMutation=ye,m.InsertColMutationUndoFactory=Xt,m.InsertDefinedNameCommand=Zs,m.InsertRangeMoveDownCommand=pt,m.InsertRangeMoveRightCommand=Mt,m.InsertRowAfterCommand=ds,m.InsertRowBeforeCommand=ls,m.InsertRowCommand=Ae,m.InsertRowMutation=we,m.InsertRowMutationUndoFactory=Zt,m.InsertSheetCommand=gs,m.InsertSheetMutation=De,m.InsertSheetUndoMutationFactory=zt,m.MAX_CELL_PER_SHEET_KEY=lo,m.MoveColsCommand=yt,m.MoveColsMutation=Te,m.MoveColsMutationUndoFactory=Ss,m.MoveRangeCommand=St,m.MoveRangeMutation=Ge,m.MoveRowsCommand=wt,m.MoveRowsMutation=Ue,m.MoveRowsMutationUndoFactory=Rs,m.NORMAL_SELECTION_PLUGIN_NAME=Q,m.OperatorType=$,m.RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY=Uo,m.RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY=Po,m.RangeMergeUtil=Hr,m.RangeProtectionCanNotViewRenderExtension=Aa,m.RangeProtectionCanViewRenderExtension=Da,m.RangeProtectionPermissionEditPoint=ss,m.RangeProtectionPermissionViewPoint=os,m.RemoveColCommand=st,m.RemoveColMutation=fe,m.RemoveDefinedNameCommand=Xs,m.RemoveMergeUndoMutationFactory=le,m.RemoveNumfmtMutation=mn,m.RemoveRowCommand=nt,m.RemoveRowMutation=_e,m.RemoveSheetCommand=Jt,m.RemoveSheetMutation=Fe,m.RemoveSheetUndoMutationFactory=kn,m.RemoveWorksheetMergeCommand=ps,m.RemoveWorksheetMergeMutation=z,m.ResetBackgroundColorCommand=Ds,m.ResetTextColorCommand=ks,m.SELECTION_CONTROL_BORDER_BUFFER_COLOR=ba,m.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=_a,m.ScrollToCellOperation=Qs,m.SelectionMoveType=Pn,m.SetBackgroundColorCommand=Os,m.SetBoldCommand=Tr,m.SetBorderBasicCommand=Ms,m.SetBorderColorCommand=_s,m.SetBorderCommand=ze,m.SetBorderPositionCommand=ws,m.SetBorderStyleCommand=ys,m.SetColHiddenCommand=Qt,m.SetColHiddenMutation=Ye,m.SetColVisibleMutation=qe,m.SetColWidthCommand=Tt,m.SetDefinedNameCommand=Js,m.SetFontFamilyCommand=Or,m.SetFontSizeCommand=Dr,m.SetFrozenCommand=Us,m.SetFrozenMutation=Ee,m.SetFrozenMutationFactory=xt,m.SetHorizontalTextAlignCommand=Ws,m.SetItalicCommand=Er,m.SetNumfmtMutation=Nt,m.SetRangeProtectionCommand=Sn,m.SetRangeProtectionMutation=ee,m.SetRangeValuesCommand=tt,m.SetRangeValuesMutation=K,m.SetRangeValuesUndoMutationFactory=pe,m.SetRowHeightCommand=un,m.SetRowHiddenCommand=en,m.SetRowHiddenMutation=Ze,m.SetRowVisibleMutation=Ke,m.SetSelectedColsVisibleCommand=bs,m.SetSelectedRowsVisibleCommand=Ts,m.SetSelectionsOperation=Z,m.SetSpecificColsVisibleCommand=bt,m.SetSpecificRowsVisibleCommand=Pt,m.SetStrikeThroughCommand=kr,m.SetStyleCommand=x,m.SetTabColorCommand=$s,m.SetTabColorMutation=ot,m.SetTextColorCommand=Ns,m.SetTextRotationCommand=Ls,m.SetTextWrapCommand=Vs,m.SetUnderlineCommand=Nr,m.SetVerticalTextAlignCommand=As,m.SetWorkbookNameCommand=gn,m.SetWorkbookNameMutation=hn,m.SetWorksheetActivateCommand=Ut,m.SetWorksheetActiveOperation=rt,m.SetWorksheetColWidthMutation=be,m.SetWorksheetColWidthMutationFactory=tn,m.SetWorksheetHideCommand=Bs,m.SetWorksheetHideMutation=Ne,m.SetWorksheetNameCommand=sn,m.SetWorksheetNameMutation=Et,m.SetWorksheetOrderCommand=Hs,m.SetWorksheetOrderMutation=it,m.SetWorksheetPermissionPointsCommand=ao,m.SetWorksheetProtectionMutation=eo,m.SetWorksheetRowAutoHeightMutation=rn,m.SetWorksheetRowAutoHeightMutationFactory=jr,m.SetWorksheetRowHeightMutation=Pe,m.SetWorksheetRowIsAutoHeightCommand=ln,m.SetWorksheetRowIsAutoHeightMutation=he,m.SetWorksheetShowCommand=Gs,m.WorkbookCommentPermission=Xn,m.WorkbookCopyPermission=ts,m.WorkbookCreateSheetPermission=cr,m.WorkbookDeleteSheetPermission=ur,m.WorkbookDuplicatePermission=ir,m.WorkbookEditablePermission=Jn,m.WorkbookExportPermission=xn,m.WorkbookHideSheetPermission=lr,m.WorkbookHistoryPermission=mr,m.WorkbookManageCollaboratorPermission=ns,m.WorkbookMoveSheetPermission=ar,m.WorkbookPrintPermission=Qn,m.WorkbookRenameSheetPermission=dr,m.WorkbookSharePermission=hr,m.WorkbookViewPermission=es,m.WorksheetCopyPermission=An,m.WorksheetDeleteColumnPermission=zn,m.WorksheetDeleteRowPermission=Gn,m.WorksheetEditExtraObjectPermission=Zn,m.WorksheetEditPermission=Yt,m.WorksheetFilterPermission=qn,m.WorksheetInsertColumnPermission=Hn,m.WorksheetInsertHyperlinkPermission=Fn,m.WorksheetInsertRowPermission=Bn,m.WorksheetManageCollaboratorPermission=rr,m.WorksheetPivotTablePermission=Kn,m.WorksheetSelectProtectedCellsPermission=sr,m.WorksheetSelectUnProtectedCellsPermission=or,m.WorksheetSetCellStylePermission=Wn,m.WorksheetSetCellValuePermission=Vn,m.WorksheetSetColumnStylePermission=jn,m.WorksheetSetRowStylePermission=$n,m.WorksheetSortPermission=Yn,m.WorksheetViewPermission=Ln,m.alignToMergedCellsBorders=et,m.convertPrimaryWithCoordToPrimary=bo,m.convertSelectionDataToRange=Ua,m.createTopMatrixFromMatrix=Ys,m.createTopMatrixFromRanges=zs,m.defaultWorkbookPermissionPoints=Qi,m.defaultWorksheetPermissionPoint=Xr,m.factoryRemoveNumfmtUndoMutation=Yr,m.factorySetNumfmtUndoMutation=zr,m.findAllRectangle=dn,m.followSelectionOperation=Me,m.getAddMergeMutationRangeByType=wo,m.getAllRangePermissionPoint=Oe,m.getAllWorkbookPermissionPoint=yn,m.getAllWorksheetPermissionPoint=ke,m.getAllWorksheetPermissionPointByPointPanel=Ot,m.getCellAtRowCol=xo,m.getDefaultRangePermission=ia,m.getInsertRangeMutations=qt,m.getMoveRangeUndoRedoMutations=vt,m.getNormalSelectionStyle=Pa,m.getPrimaryForRange=ae,m.getRemoveRangeMutations=Kt,m.getSheetCommandTarget=F,m.getSheetCommandTargetWorkbook=Nn,m.getSheetMutationTarget=Rt,m.handleBaseInsertRange=Be,m.handleBaseMoveRowsCols=at,m.handleBaseRemoveRange=je,m.handleCommonDefaultRangeChangeWithEffectRefCommands=Ai,m.handleDefaultRangeChangeWithEffectRefCommands=Di,m.handleDeleteRangeMoveLeft=vo,m.handleDeleteRangeMoveUp=Co,m.handleDeleteRangeMutation=Rr,m.handleIRemoveCol=fn,m.handleIRemoveRow=In,m.handleInsertCol=Mn,m.handleInsertRangeMoveDown=Ro,m.handleInsertRangeMoveRight=So,m.handleInsertRangeMutation=gr,m.handleInsertRow=pn,m.handleMoveCols=Cn,m.handleMoveRange=go,m.handleMoveRows=vn,m.isSingleCellSelection=tr,m.rangeMerge=cn,m.rotateRange=de,m.runRefRangeMutations=He,m.setEndForRange=er,m.transformCellDataToSelectionData=Ta,m.transformCellsToRange=kt,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});