@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/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var ko=Object.defineProperty;var Ao=(n,t,o)=>t in n?ko(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var L=(n,t,o)=>(Ao(n,typeof t!="symbol"?t+"":t,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),K=require("@wendellhu/redi"),ke=require("rxjs"),ne=require("@univerjs/engine-formula"),dn=require("rxjs/operators"),xo=require("@univerjs/engine-render");var Vo=Object.defineProperty,Lo=Object.getOwnPropertyDescriptor,Bo=(n,t,o,e)=>{for(var r=e>1?void 0:e?Lo(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&&Vo(t,o,r),r},Fo=(n,t)=>(o,e)=>t(o,e,n);const Y="normalSelectionPluginName";var Mn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(Mn||{});exports.SelectionManagerService=class{constructor(t){L(this,"_selectionInfo",new Map);L(this,"_currentSelection",null);L(this,"_selectionMoveStart$",new ke.Subject);L(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());L(this,"_selectionMoving$",new ke.Subject);L(this,"selectionMoving$",this._selectionMoving$.asObservable());L(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));L(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());L(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:Y,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=Y,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 c=this._selectionInfo.get(e);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let l=u.get(a);l==null&&(l=[],u.set(a,l)),l.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 c=i.get(e);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(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)}};exports.SelectionManagerService=Bo([Fo(0,K.Inject(s.ThemeService))],exports.SelectionManagerService);const Wo=s.createInterceptorKey("CELL_CONTENT"),jo=s.createInterceptorKey("ROW_FILTERED"),st={CELL_CONTENT:Wo,ROW_FILTERED:jo};var Ho=Object.defineProperty,$o=Object.getOwnPropertyDescriptor,Go=(n,t,o,e)=>{for(var r=e>1?void 0:e?$o(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&&Ho(t,o,r),r},zo=(n,t)=>(o,e)=>t(o,e,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();L(this,"_interceptorsByName",new Map);L(this,"_commandInterceptors",[]);L(this,"_workbookDisposables",new Map);L(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(st.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,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=i.priority)!=null?l: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=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection;a._worksheetDisposables.set(ln(r,c),d),d.add(l.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(st.CELL_CONTENT)(c.getCellRaw(m,g),{unitId:r,subUnitId:u,row:m,col:g,worksheet:c,workbook:o})}})),d.add(l.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(st.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:o,worksheet:c})}}))})};o.getSheets().forEach(c=>i(c)),e.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),e.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),e.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),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=ln(o,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Go([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),zo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function ln(n,t){return`${n}|${t.getSheetId()}`}const Ie=(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 c=i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,v,h)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,v))||{},f=l.getStyleByCell(S),R=Ko(f,h&&h.s?h.s:null);S.s=R,d.setValue(g,v,qo(S))}),{...t,options:{},cellValue:d.getMatrix()}};function qo(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 $={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 c=i.getSheetBySheetId(e);if(!c)return!1;const u=c.getCellMatrix(),l=i.getStyles();return new s.ObjectMatrix(o).forValue((m,g,v)=>{if(!v)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},S=v.t?v.t:v.v!==void 0?mn(v.v,v.t):mn(h.v,h.t);if(v.f!==void 0&&(h.f=v.f),v.si!==void 0&&(h.si=v.si),v.p!==void 0&&(h.p=v.p),v.v!==void 0&&(h.v=S===s.CellValueType.NUMBER?Number(v.v):S===s.CellValueType.BOOLEAN?Yo(v.v)?1:0:v.v),h.v!==void 0&&(h.t=S),v.s!==void 0){const f=l.getStyleByCell(h);f==null&&delete h.s,typeof v.s=="string"&&(v.s=l.get(v.s));const R=at(f,v.s?v.s:null);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)?delete h.s:h.s=l.setValue(R),!v.p&&h.p&&Zo(h.p,v.s?v.s:null)}v.custom!==void 0&&(h.custom=v.custom),u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function mn(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 Yo(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 Ko(n,t){return Xo(n,t)}function Xo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=Jo(o[e]||{},t[e]):e in o||(o[e]=null);return o}function Jo(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function at(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 wn(n,t){return n.some(o=>o.startIndex===t)?wn(n,t+1):t}function Zo(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 c of n.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(o<u){const g={st:o,ed:u},v=at({},t,!0);v&&s.Tools.removeNull(v),s.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=at(d,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,e.push(c),o=wn(r,l)}const a=n.body.dataStream.endsWith(`\r
2
- `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const c={st:o,ed:a},u=at({},t,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),e.push(c)}n.body.textRuns=s.normalizeTextRuns(e)}const gt={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(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Qo(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:gt.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,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 c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.clone()}const Tt={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(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:er(d)},g=Ie(n,m),v=a.onCommandExecute({id:Tt.id}),h=[{id:$.id,params:m},...v.redos],S=[...v.undos,{id:$.id,params:g}];return s.sequenceExecute(h,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:h}),!0):!1}};function er(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}const ht={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(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:tr(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:ht.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function tr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{s:null})}),t.clone()}const Et=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Ue={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 yn(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 V(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 vt(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 Un=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=vt(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:c}=a,u=c.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:u,unitId:r}},Fe={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}},_n={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=V(r,t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l}=i,d=s.Tools.deepClone(u.getConfig());d.name+=a.t("sheets.tabs.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},v=Et(n,g);return o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:Fe.id,params:v}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Ae={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),c=a.getSheetBySheetId(t.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(e.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},H={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(exports.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return o.replace(e,r),!0}};function Ke(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,l)||r.push(l)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Ke(a,t,o):a}function nr(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,c)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function or(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 pe=(n,t,o)=>({id:H.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:Y,selections:[{range:n,primary:oe(n,o)}]}});function rr(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}function sr(n){function t(o,e){function r(a){for(let i=a.startRow;i<=a.endRow;i++)if(!n.getRowFiltered(i))for(let c=a.startColumn;c<=a.endColumn;c++)e(i,c,a)}r(o)}return{forOperableEach:t}}const bn="sheet.command.move-range",St={type:s.CommandType.COMMAND,id:bn,handler:(n,t)=>{var R,C;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),c=V(r);if(!c)return!1;const{worksheet:u,subUnitId:l,unitId:d}=c,m=ft(n,{unitId:d,subUnitId:l,range:t.fromRange},{unitId:d,subUnitId:l,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const v=n.get(exports.SheetInterceptorService).onCommandExecute({id:St.id,params:{...t}}),h=[...(R=v.preRedos)!=null?R:[],...m.redos,...v.redos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:oe(t.toRange,u)}]}}],S=[...(C=v.preUndos)!=null?C:[],...m.undos,...v.undos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:oe(t.fromRange,u)}]}}];return s.sequenceExecute(h,o).result?(e.pushUndoRedo({unitID:d,undoMutations:S,redoMutations:h}),!0):!1}};function ft(n,t,o,e=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=t,{range:l,subUnitId:d}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),v=g==null?void 0:g.getSheetBySheetId(d),h=g==null?void 0:g.getSheetBySheetId(c),S=v==null?void 0:v.getCellMatrix(),f=h==null?void 0:h.getCellMatrix();if(v&&h&&S&&f){const R=Ke(l,v,!1);if(!s.Rectangle.equals(l,R)&&!e)return null;const C=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(i,(U,E)=>{C.setValue(U,E,f.getValue(U,E)),p.setValue(U,E,null)});const M=new s.ObjectMatrix;s.Range.foreach(l,(U,E)=>{M.setValue(U,E,S.getValue(U,E))});const I=new s.ObjectMatrix;s.Range.foreach(i,(U,E)=>{const P=s.cellToRange(U,E),G=s.Rectangle.getRelativeRange(P,i),z=s.Rectangle.getPositionRange(G,l);I.setValue(z.startRow,z.startColumn,f.getValue(U,E))});const w={from:{value:p.getMatrix(),subUnitId:c},to:{value:I.getMatrix(),subUnitId:d},unitId:u},_={from:{value:C.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u};r.push({id:Ae.id,params:w}),a.push({id:Ae.id,params:_})}return{redos:r,undos:a}}const Xe={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(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r,{subUnitId:t.subUnitId,unitId:t.unitId});if(!c)return!1;const{subUnitId:u,unitId:l}=c,{value:d,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const v=new s.ObjectMatrix;let h;if(s.Tools.isArray(d))for(let I=0;I<g.length;I++){const{startRow:w,startColumn:_,endRow:U,endColumn:E}=g[I];for(let P=0;P<=U-w;P++)for(let G=0;G<=E-_;G++)v.setValue(P+w,G+_,d[P][G])}else if(s.isICellData(d))for(let I=0;I<g.length;I++){const{startRow:w,startColumn:_,endRow:U,endColumn:E}=g[I];for(let P=w;P<=U;P++)for(let G=_;G<=E;G++)v.setValue(P,G,d)}else h=d;const S={subUnitId:u,unitId:l,cellValue:h!=null?h:v.getMatrix()},f=Ie(n,S),R=o.syncExecuteCommand($.id,S),{undos:C,redos:p}=i.onCommandExecute({id:Xe.id,params:{...S,range:g}}),M=s.sequenceExecute([...p],o);return R&&M.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:f},...C],redoMutations:[{id:$.id,params:S},...p]}),!0):!1}};function Nt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=t,l=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(i.startColumn<=h.endColumn||i.startRow<=h.endRow){let p,M;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,h.endRow);let _=0;for(let E=i.startRow;E<=w;E++){const P=v.getRow(E),G=P?s.getArrayLength(P)-1:0;_=Math.max(_,G)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:_};const U=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:p.startColumn+U,endRow:w,endColumn:p.endColumn+U}}else{const w=Math.min(i.endColumn,h.endColumn),_=h.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:w};const U=i.endRow-i.startRow+1;M={startRow:p.startRow+U,startColumn:i.startColumn,endRow:p.endRow+U,endColumn:w}}const I=ft(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:M},!0);I&&(o.push(...I.redos),e.push(...I.undos))}if(Object.entries(u).length===0)for(let p=i.startRow;p<=i.endRow;p++){u[p]||(u[p]={});for(let M=i.startColumn;M<=i.endColumn;M++)u[p][M]=null}const S={subUnitId:a,unitId:r,cellValue:u},f=Ie(n,S),{undos:R,redos:C}=d.onCommandExecute({id:Xe.id,params:{...S,range:i}});o.push({id:$.id,params:S},...C),e.push({id:$.id,params:f},...R)}return{redo:o,undo:e}}function Dt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=t,u=n.get(s.IUniverInstanceService),l=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:r,cellValue:cr([i])},S=Ie(n,h),f=l.onCommandExecute({id:Xe.id,params:h});if(o.push({id:$.id,params:h},...f.redos),e.push(...f.undos,{id:$.id,params:S}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let R=null,C=null;if(c===s.Dimension.COLUMNS&&i.endColumn<v.endColumn){const p=Math.min(i.endRow,v.endRow);let M=0;for(let w=i.startRow;w<=p;w++){const _=g.getRow(w),U=_?s.getArrayLength(_)-1:0;M=Math.max(M,U)}R={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:M};const I=i.endColumn-i.startColumn+1;C={startRow:i.startRow,startColumn:R.startColumn-I,endRow:p,endColumn:R.endColumn-I}}if(c===s.Dimension.ROWS&&i.endRow<v.endRow){const p=Math.min(i.endColumn,v.endColumn),M=v.endRow;R={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:p};const I=i.endRow-i.startRow+1;C={startRow:R.startRow-I,startColumn:i.startColumn,endRow:R.endRow-I,endColumn:p}}if(R&&C){const p=ft(n,{unitId:r,subUnitId:a,range:R},{unitId:r,subUnitId:a,range:C},!0);p&&(o.push(...p.redos),e.push(...p.undos))}}}return{redo:o,undo:e}}function ar(n,t,o,e,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=t;if(r===s.Dimension.ROWS){const d=c-i+1;for(let m=o;m>=i;m--)for(let g=u;g<=l;g++){const v=n.getValue(m,g);v==null?n.realDeleteValue(m+d,g):n.setValue(m+d,g,v)}for(let m=c;m>=i;m--)for(let g=u;g<=l;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 d=l-u+1;for(let m=i;m<=c;m++)for(let g=e;g>=u;g--){const v=n.getValue(m,g);v==null?n.realDeleteValue(m,g+d):n.setValue(m,g+d,v)}for(let m=i;m<=c;m++)for(let g=l;g>=u;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function ir(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=t,l=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=c;g<=u;g++){const v=n.getValue(m+l,g);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=c;g<=e;g++){const v=n.getValue(m,g+d);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}}function cr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const Tn="sheet.command.delete-range-move-left",Ct={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:Ct.id,params:{range:g}}),{redo:S,undo:f}=Dt(n,v),R=[...(I=h.preRedos)!=null?I:[],...S],C=[...h.undos,...f];return R.push(...h.redos),R.push(pe(g,l,u)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:m,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},En="sheet.command.delete-range-move-up",Rt={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:Rt.id,params:{range:g}}),{redo:S,undo:f}=Dt(n,v),R=[...(I=h.preRedos)!=null?I:[],...S],C=[...h.undos,...f];return R.push(...h.redos),R.push(pe(g,d,m)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:u,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},Ot=(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}},fe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let S=m;S<m+g;S++)a?s.insertMatrixArray(S,(h=a[S-r.startRow])!=null?h:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},Pt=(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-col",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;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:c}=t,l=a.getColumnData(),d=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const f={w:g,hd:0};c?s.insertMatrixArray(S,(h=c[S-i.startColumn])!=null?h:f,l):s.insertMatrixArray(S,f,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},ur=(n,t)=>{const r=t.getRowManager().getRowData(),a={},i=n.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},ye={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,c=r.getRowManager().getRowData();for(let d=a.startRow;d<=a.endRow;d++)r.getRowFiltered(d);const u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},dr=(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 c=r.getColumnManager().getColumnData(),u={},l=t.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Re={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,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},lr="sheet.command.insert-range-move-down",It={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:g,workbook:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const S=[],f=[],R=g.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(C.startRow,C.endRow,h.startColumn,h.endColumn).getDataRange().endRow,I=Math.max(M+(h.endRow-h.startRow+1)-C.endRow,0);if(I>0){const X=h.startRow-1,J=g.getRowHeight(X),q={unitId:d,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+I,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(I).fill(void 0).map(()=>({h:J,hd:s.BooleanNumber.FALSE}))};S.push({id:fe.id,params:q});const Q=Ot(n,q);f.push({id:ye.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=g.getCell(X,J);q&&(w[X]||(w[X]={}),w[X][J]={s:q.s})});const _={range:h,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:w},{redo:U,undo:E}=Nt(n,_);S.push(...U),f.push(...E);const P=i.onCommandExecute({id:It.id,params:{range:h}});return S.push(...P.redos),S.push(pe(h,v,g)),f.push(...(y=P.preUndos)!=null?y:[]),S.unshift(...(ie=P.preRedos)!=null?ie:[]),f.unshift(...P.undos),s.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:d,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Nn="sheet.command.insert-range-move-right",pt={type:s.CommandType.COMMAND,id:Nn,handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:g,subUnitId:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const S=[],f=[],R=m.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(h.startRow,h.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,I=Math.max(M+(h.endColumn-h.startColumn+1)-C.endColumn,0);if(I>0){const X=h.startColumn-1,J=m.getColumnWidth(X),q={unitId:g,subUnitId:v,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+I},colInfo:new Array(I).fill(void 0).map(()=>({w:J,hd:s.BooleanNumber.FALSE}))};S.push({id:Ce.id,params:q});const Q=Pt(n,q);f.push({id:Re.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=m.getCell(X,J);!q||!q.s||(w[X]||(w[X]={}),w[X][J]={s:q.s})});const _={range:h,subUnitId:v,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:w},{redo:U,undo:E}=Nt(n,_);S.push(...U),f.push(...E);const P=i.onCommandExecute({id:pt.id,params:{range:h}});return S.push(...P.redos),S.push(pe(h,d,m)),f.push(...(y=P.preUndos)!=null?y:[]),S.unshift(...(ie=P.preRedos)!=null?ie:[]),f.unshift(...P.undos),s.sequenceExecute(S,o).result?(e.pushUndoRedo({unitID:g,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Dn="sheet.command.insert-row",We={type:s.CommandType.COMMAND,id:Dn,handler:async(n,t)=>{var M,I;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),c=i.getSheetBySheetId(t.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m}=t,{startRow:g,endRow:v}=u,h=l===s.Direction.UP?g:g-1,S=c.getRowHeight(h),f={unitId:d,subUnitId:m,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},R=Ot(n,f),C=a.onCommandExecute({id:We.id,params:t});return s.sequenceExecute([{id:fe.id,params:f},...C.redos,pe(u,i,c)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=C.preUndos)!=null?M:[],{id:ye.id,params:R},...C.undos],redoMutations:[...(I=C.preRedos)!=null?I:[],{id:fe.id,params:f},...C.redos]}),!0):!1}},On={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.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 c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={};s.Range.foreach(e,(v,h)=>{const S=i.getCell(v,h);!S||!S.s||(d[v]||(d[v]={}),d[v][h]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(We.id,m)}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(exports.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 c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(We.id,d)}},kn="sheet.command.insert-col",je={type:s.CommandType.COMMAND,id:kn,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l}=t,{startColumn:d,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),v=g.getSheetBySheetId(t.subUnitId),h=c===s.Direction.LEFT?d:d-1,S=v.getColumnWidth(h),f={unitId:l,subUnitId:u,range:i,colInfo:new Array(m-d+1).fill(void 0).map(()=>({w:S,hd:s.BooleanNumber.FALSE}))},R=Pt(n,f),C=a.onCommandExecute({id:je.id,params:t});return s.sequenceExecute([...(M=C.preRedos)!=null?M:[],{id:Ce.id,params:f},...C.redos,pe(i,g,v)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(I=C.preUndos)!=null?I:[],{id:Re.id,params:R},...C.undos].filter(Boolean),redoMutations:[...(w=C.preRedos)!=null?w:[],{id:Ce.id,params:f},...C.redos].filter(Boolean)}),!0):!1}},An={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(exports.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 c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={};s.Range.foreach(e,(g,v)=>{const h=i.getCell(g,v);!h||!h.s||(d[g]||(d[g]={}),d[g][v]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(je.id,m)}},xn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(exports.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 c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(je.id,d)}},Vn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var h;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=yn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:c,workbook:u}=i;let l=u.getSheets().length,d=s.mergeWorksheetSnapshotWithDefault({});t?(l=(h=t.index)!=null?h:l,t.sheet?d=t.sheet:(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:l,sheet:d,unitId:c},g=Et(n,m);return o.syncExecuteCommand(Ue.id,m)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Fe.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}};function mr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function gr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function hr(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function vr(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const Ln="sheet.command.move-rows",kt={id:Ln,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.ROW&&Q.range.startRow<=r&&r<=Q.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(s.ErrorService),h=n.get(s.LocaleService),S=i[0].range,f=i[0].primary,R=Ke(S,d,!1);if(!s.Rectangle.equals(S,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(hr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...S,startRow:a,endRow:a+S.endRow-S.startRow},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},M=mr(n,p),w=a-r<0,_=S.endRow-S.startRow+1,U=w?C:{...C,startRow:C.startRow-_,endRow:C.endRow-_},E={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:oe(U,d),style:null}]},P={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:S,primary:f,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:kt.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:_e.id,params:p},{id:H.id,params:E},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:_e.id,params:M},{id:H.id,params:P},...z.undos];return s.sequenceExecute(y,G).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0):!1}},Bn="sheet.command.move-cols",At={id:Bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.COLUMN&&Q.range.startColumn<=r&&r<=Q.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(s.ErrorService),h=n.get(s.LocaleService),S=i[0].range,f=i[0].primary,R=Ke(S,d,!1);if(!s.Rectangle.equals(S,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(vr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},M=gr(n,p),I=S.endColumn-S.startColumn+1,U=a-r<0?C:{...C,startColumn:C.startColumn-I,endColumn:C.endColumn-I},E={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:oe(U,d),style:null}]},P={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:S,primary:f,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:At.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:be.id,params:p},{id:H.id,params:E},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:be.id,params:M},{id:H.id,params:P},...z.undos];return s.sequenceExecute(y,G).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0}},Fn="sheet.command.remove-row",Mt={type:s.CommandType.COMMAND,id:Fn,handler:async(n,t)=>{var C,p,M,I;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let w=r.startRow;w<=r.endRow;w++)u.getRowFiltered(w)&&m.push(w);const g=[];if(m.length){const w=[r.startRow,...m.map(U=>U+1)],_=[...m.map(U=>U-1),r.endRow];for(let U=w.length-1;U>=0;U--)w[U]<=_[U]&&g.push({startRow:w[U],endRow:_[U],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const v=[],h=[];g.forEach(w=>{const _={unitId:d,subUnitId:l,range:w},U=u.getCellMatrix().getSlice(w.startRow,w.endRow,0,u.getColumnCount()-1),E={unitId:d,subUnitId:l,cellValue:U.getMatrix()},P=ur(_,u);v.push({id:ye.id,params:_}),h.unshift({id:fe.id,params:P},{id:$.id,params:E})});const S=e.onCommandExecute({id:Mt.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(p=S.preRedos)!=null?p:[],...v,...S.redos,pe(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=S.preUndos)!=null?M:[],...h,...S.undos],redoMutations:[...(I=S.preRedos)!=null?I:[],...v,...S.redos]}),!0):!1}},Wn="sheet.command.remove-col",wt={type:s.CommandType.COMMAND,id:Wn,handler:async(n,t)=>{var C,p,M,I;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:d,subUnitId:l,range:r},g=dr(n,m),v=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),h={unitId:d,subUnitId:l,cellValue:v.getMatrix()},S=e.onCommandExecute({id:wt.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(p=S.preRedos)!=null?p:[],{id:Re.id,params:m},...S.redos,pe(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=S.preUndos)!=null?M:[],{id:Ce.id,params:g},{id:$.id,params:h},...S.undos],redoMutations:[...(I=S.preRedos)!=null?I:[],{id:Re.id,params:m},...S.redos]}),!0):!1}},xt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var C,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=V(r,t);if(!i)return!1;const{unitId:c,subUnitId:u,workbook:l,worksheet:d}=i;if(l.getSheets().length<=1)return!1;const m=l.getSheetIndex(d);l.getConfig().sheetOrder[m+1];const g={subUnitId:u,unitId:c,subUnitName:d.getName()},v=Un(n,g),h=a.onCommandExecute({id:xt.id,params:{unitId:c,subUnitId:u}}),S=[...(C=h.preRedos)!=null?C:[],{id:Fe.id,params:g},...h.redos],f=[...(p=h.preUndos)!=null?p:[],{id:Ue.id,params:v},...h.undos];return s.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:S}),!0):!1}},ge=(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}},B={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,c=t.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},se=(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,c=t.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=i.length-1;d>=0;d--){const m=i[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(i[d])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:u}},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,c=t.ranges;for(let u=0;u<c.length;u++)for(let l=i.length-1;l>=0;l--){const d=i[l],m=c[u];s.Rectangle.intersects(d,m)&&i.splice(l,1)}return!0}},jn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(exports.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=V(r);if(!i)return!1;const{subUnitId:c,unitId:u,worksheet:l}=i,d={unitId:u,subUnitId:c,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(I=>{g.forEach(w=>{s.Rectangle.intersects(I,w)&&(m=!0)})}),!m)return!1;const v=se(n,d),h=t.getSelections();if(!(h!=null&&h.length))return!1;const S=s.Tools.deepClone(h),f=s.Tools.deepClone(h),R=f[f.length-1],{startRow:C,startColumn:p}=R.range;return R.primary={startRow:C,startColumn:p,endRow:C,endColumn:p,actualRow:C,actualColumn:p,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:v},{id:H.id,params:{selections:f}}],o)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:B.id,params:v},{id:H.id,params:{selections:S}}],redoMutations:[{id:F.id,params:v},{id:H.id,params:{selections:f}}]}),!0):!1}};class De{constructor(){L(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});L(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));L(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 Qe(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=e;c<=a;c++)t(i,c)}const Hn={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:c}=r,u=n.get(s.ICommandService),l=n.get(De);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand(He.id,{unitId:o,subUnitId:e})}},$n={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(De).setType(t.value),o.executeCommand(He.id)}},Gn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setStyle(t.value),o.executeCommand(He.id)}},zn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setColor(t.value),o.executeCommand(He.id)}},He={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(exports.SelectionManagerService),i=n.get(De),c=V(r,t);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=a.getSelectionRanges(),g=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:v,color:h,type:S,activeBorderType:f}=i.getBorderInfo();if(!f)return!1;const R=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,C=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,p=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,M=S===s.BorderType.RIGHT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,I=S===s.BorderType.VERTICAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,w=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,_=S.indexOf("tlbr")>-1,U=S.indexOf("tlbc")>-1,E=S.indexOf("tlmr")>-1,P=S.indexOf("bltr")>-1,G=S.indexOf("mltr")>-1,z=S.indexOf("bctr")>-1,y=m[0],ie={startRow:y.startRow-1,startColumn:y.startColumn,endRow:y.startRow-1,endColumn:y.endColumn},X={startRow:y.startRow,startColumn:y.startColumn-1,endRow:y.endRow,endColumn:y.startColumn-1},J={startRow:y.endRow+1,startColumn:y.startColumn,endRow:y.endRow+1,endColumn:y.endColumn},q={startRow:y.startRow,startColumn:y.endColumn+1,endRow:y.endRow,endColumn:y.endColumn+1},Q={startRow:y.startRow,startColumn:y.startColumn,endRow:y.startRow,endColumn:y.endColumn},sn={startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.startColumn},an={startRow:y.endRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn},cn={startRow:y.startRow,startColumn:y.endColumn,endRow:y.endRow,endColumn:y.endColumn},k=new s.ObjectMatrix,j={s:v,cl:{rgb:h}},Ze=(N,b)=>{let x=null;return g.forEach(ee=>{s.Rectangle.intersects(ee,{startColumn:b,endColumn:b,startRow:N,endRow:N})&&(x=ee)}),x};function W(N,b,x){N.startRow<0||N.startColumn<0||Qe(N,(ee,ce)=>{var T,$e;const te=Ze(ee,ce);let re=b;if(te&&(b.bc_tr||b.ml_tr||b.bl_tr||b.tl_mr||b.tl_bc||b.tl_br)){if(x){const ue=s.Tools.deepClone((T=k.getValue(te.startRow,te.startColumn))==null?void 0:T.s);re=ue!=null&&ue.bd?Object.assign(ue.bd,b):b}k.setValue(te.startRow,te.startColumn,{s:{bd:re}})}else{if(x){const ue=s.Tools.deepClone(($e=k.getValue(ee,ce))==null?void 0:$e.s);re=ue!=null&&ue.bd?Object.assign(ue.bd,b):b}k.setValue(ee,ce,{s:{bd:re}})}})}R&&(W(ie,{b:null}),W(Q,{t:s.Tools.deepClone(j)},!0)),p&&(W(J,{t:null}),W(an,{b:s.Tools.deepClone(j)},!0)),C&&(W(X,{r:null}),W(sn,{l:s.Tools.deepClone(j)},!0)),M&&(W(q,{l:null}),W(cn,{r:s.Tools.deepClone(j)},!0)),_&&W(y,{tl_br:s.Tools.deepClone(j)},!0),U&&W(y,{tl_bc:s.Tools.deepClone(j)},!0),E&&W(y,{tl_mr:s.Tools.deepClone(j)},!0),P&&W(y,{bl_tr:s.Tools.deepClone(j)},!0),G&&W(y,{ml_tr:s.Tools.deepClone(j)},!0),z&&W(y,{bc_tr:s.Tools.deepClone(j)},!0),I&&Qe(y,(N,b)=>{var ee,ce,te,re;const x=Ze(N,b);if(x){if(x.endColumn!==y.endColumn){const T=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(x.startColumn!==y.startColumn){const T=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(b!==y.endColumn){const T=(te=k.getValue(N,b))==null?void 0:te.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(b!==y.startColumn){const T=(re=k.getValue(N,b))==null?void 0:re.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),w&&Qe(y,(N,b)=>{var ee,ce,te,re;const x=Ze(N,b);if(x){if(x.endRow!==y.endRow){const T=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(x.startRow!==y.startRow){const T=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(N!==y.endRow){const T=(te=k.getValue(N,b))==null?void 0:te.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(N!==y.startRow){const T=(re=k.getValue(N,b))==null?void 0:re.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!R&&!p&&!C&&!M&&!I&&!w&&!_&&!U&&!E&&!P&&!G&&!z&&(W(ie,{b:null}),W(Q,{t:null},!0),W(J,{t:null}),W(an,{b:null},!0),W(X,{r:null}),W(sn,{l:null},!0),W(q,{l:null}),W(cn,{r:null},!0),W(y,{tl_br:null},!0),W(y,{tl_bc:null},!0),W(y,{tl_mr:null},!0),W(y,{bl_tr:null},!0),W(y,{ml_tr:null},!0),W(y,{bc_tr:null},!0),Qe(y,(N,b)=>{var ee,ce,te,re,T,$e,ue,un;const x=Ze(N,b);if(x){if(x.endColumn!==y.endColumn){const D=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(x.startColumn!==y.startColumn){const D=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(x.endRow!==y.endRow){const D=(te=k.getValue(x.startRow,x.startColumn))==null?void 0:te.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(x.startRow!==y.startRow){const D=(re=k.getValue(x.startRow,x.startColumn))==null?void 0:re.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}else{if(b!==y.endColumn){const D=(T=k.getValue(N,b))==null?void 0:T.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(b!==y.startColumn){const D=($e=k.getValue(N,b))==null?void 0:$e.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(N!==y.endRow){const D=(ue=k.getValue(N,b))==null?void 0:ue.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(N!==y.startRow){const D=(un=k.getValue(N,b))==null?void 0:un.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}}));const Ut={unitId:l,subUnitId:d,cellValue:k.getData()},Po=Ie(n,Ut);return o.syncExecuteCommand($.id,Ut)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:Po}],redoMutations:[{id:$.id,params:Ut}]}),!0):!1}},Sr=(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}},xe={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 c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},fr=(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}},Ve={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 c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Vt={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},c=fr(n,i),u={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(g=>({range:g,primary:oe(g,a),style:null}))},l={unitId:o,subUnitId:e,pluginName:Y,selections:Kn(r).map(g=>({range:g,primary:oe(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ve.id,params:i},{id:H.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:xe.id,params:c},{id:H.id,params:l}],redoMutations:[{id:Ve.id,params:i},{id:H.id,params:u}]}),!0}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var l;const o=(l=n.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(s.ICommandService).executeCommand(Vt.id,{unitId:i,subUnitId:c,ranges:u})}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var v;const o=(v=n.get(exports.SelectionManagerService).getSelections())==null?void 0:v.map(h=>h.range).filter(h=>h.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(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:o},l={unitId:i,subUnitId:c,pluginName:Y,selections:Kn(o).map(h=>({range:h,primary:oe(h,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:Y,selections:o.map(h=>({range:h,primary:oe(h,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:xe.id,params:u},{id:H.id,params:l}],m).result){const h=n.get(s.IUndoRedoService),S=Sr(n,u);return h.pushUndoRedo({unitID:i,undoMutations:[{id:Ve.id,params:S},{id:H.id,params:d}],redoMutations:[{id:xe.id,params:u},{id:H.id,params:l}]}),!0}return!1}};function Kn(n){return Cr(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Cr(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 Lt=(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}},Me={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:c,ySplit:u,xSplit:l}=t;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Xn={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=V(r);if(!a)return!1;const{unitId:i,subUnitId:c,worksheet:u}=a,{startColumn:l,startRow:d,xSplit:m,ySplit:g}=t;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const v={unitId:i,subUnitId:c,...t},h=Lt(n,v);return o.syncExecuteCommand(Me.id,v)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Me.id,params:h}],redoMutations:[{id:Me.id,params:v}]}),!0):!1}},Rr={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=V(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=Lt(n,c);return t.syncExecuteCommand(Me.id,c)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Me.id,params:u}],redoMutations:[{id:Me.id,params:c}]}),!0):!1}},Ir=(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}},Le={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 c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},pr=(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}},Be={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 c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Bt={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),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={unitId:o,subUnitId:e,ranges:r},l=Ir(n,u),d={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(v=>({range:v,primary:oe(v,c),style:null}))},m={unitId:o,subUnitId:e,pluginName:Y,selections:Qn(r).map(v=>({range:v,primary:oe(v,c),style:null}))};return s.sequenceExecute([{id:Le.id,params:u},{id:H.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Be.id,params:l},{id:H.id,params:m}],redoMutations:[{id:Le.id,params:u},{id:H.id,params:d}]}),!0}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const t=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.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(),c=a.getSheetId(),u=e.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Bt.id,{unitId:i,subUnitId:c,ranges:u})}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(S=t.getSelections())==null?void 0:S.map(f=>f.range).filter(f=>f.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=V(r);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,d={unitId:c,subUnitId:u,ranges:a},m={unitId:c,subUnitId:u,pluginName:Y,selections:Qn(a).map(f=>({range:f,primary:oe(f,l),style:null}))},g={unitId:c,subUnitId:u,pluginName:Y,selections:a.map(f=>({range:f,primary:oe(f,l),style:null}))},v=pr(n,d);return s.sequenceExecute([{id:Be.id,params:d},{id:H.id,params:m}],o).result&&e.pushUndoRedo({unitID:c,undoMutations:[{id:Le.id,params:v},{id:H.id,params:g}],redoMutations:[{id:Be.id,params:d},{id:H.id,params:m}]}),!0}};function Qn(n){return Mr(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Mr(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 Z={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=V(o);if(!e)return!1;const{unitId:r,subUnitId:a,worksheet:i}=e,{range:c,style:u}=t,l=n.get(s.ICommandService),d=n.get(s.IUndoRedoService),m=n.get(exports.SelectionManagerService),g=c?[c]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const v=new s.ObjectMatrix,h=sr(i);if(s.Tools.isArray(u.value))for(let I=0;I<g.length;I++)h.forOperableEach(g[I],(w,_,U)=>{v.setValue(w,_,{s:{[u.type]:u.value[w-U.startRow][_-U.startColumn]}})});else for(let I=0;I<g.length;I++){const w={s:{[u.type]:u.value}};h.forOperableEach(g[I],(_,U)=>v.setValue(_,U,w))}const S={subUnitId:a,unitId:r,cellValue:v.getMatrix()},f=Ie(n,S),R=l.syncExecuteCommand($.id,S),{undos:C,redos:p}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Z.id,params:t}),M=s.sequenceExecute([...p],l);return R&&M.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:$.id,params:f},...C],redoMutations:[{id:$.id,params:S},...p]}),!0):!1}},wr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,c={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,c)}},yr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:c}=t.primary;r=e.getRange(i,c).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,a)}},Ur={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(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(Z.id,a)}},_r={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(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(Z.id,a)}};s.CommandType.COMMAND;const br={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(Z.id,e)}},Tr={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(Z.id,e)}},eo={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(Z.id,e)}},to={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(Z.id,o)}},no={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(Z.id,e)}},oo={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(Z.id,o)}},ro={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(Z.id,e)}},so={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(Z.id,e)}},ao={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(Z.id,e)}},io={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(Z.id,r)}},Er=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},ze={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}},co={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=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={color:t.value,unitId:a,subUnitId:i},u=Er(n,c);return o.syncExecuteCommand(ze.id,c)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:ze.id,params:u}],redoMutations:[{id:ze.id,params:c}]}),!0):!1}},Je={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}},Nr=4,Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(c=>{setTimeout(()=>{const u=e.syncExecuteCommand(Je.id,{unitId:a,subUnitId:i},o);c(u)},Nr)})}},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(),c=t.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},ve={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,t)=>{var u;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(),c=t.ranges;for(let l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(u=t.colWidth[m-d.startColumn])!=null?u:a}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:c,unitId:u,subUnitId:l}=i,{anchorCol:d,deltaX:m}=t,v=c.getColumnWidth(d)+m,h=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,S=e.filter(_=>_.range.rangeType===s.RANGE_TYPE.COLUMN),f=h?s.RANGE_TYPE.ALL:S.some(({range:_})=>{const{startColumn:U,endColumn:E}=_;return U<=d&&d<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let R;if(f===s.RANGE_TYPE.ALL){const _=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((E,P)=>({startRow:0,endRow:_-1,startColumn:P,endColumn:P}));R={subUnitId:l,unitId:u,colWidth:v,ranges:U}}else f===s.RANGE_TYPE.COLUMN?R={subUnitId:l,unitId:u,ranges:S.map(_=>s.Rectangle.clone(_.range)),colWidth:v}:R={subUnitId:l,unitId:u,colWidth:v,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const C=Wt(n,R),p=r.syncExecuteCommand(ve.id,R),{undos:M,redos:I}=n.get(exports.SheetInterceptorService).onCommandExecute({id:jt.id,params:R}),w=s.sequenceExecute([...I],r);return p&&w.result&&a.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:C},...M],redoMutations:[{id:ve.id,params:R},...I]}),!0}},Ht={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(exports.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:c,unitId:u}=i,l={subUnitId:c,unitId:u,ranges:a,colWidth:t.value},d=Wt(n,l),m=e.syncExecuteCommand(ve.id,l),{undos:g,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Ht.id,params:l}),h=s.sequenceExecute([...v],e);return m&&h.result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:d},...g],redoMutations:[{id:ve.id,params:l},...v]}),!0):!1}},uo=(n,t)=>{const o=vt(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()}},we={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}},lo={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=V(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l,subUnitId:d}=i;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},v=uo(n,g);return c.getSheets().filter(R=>R.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(we.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:we.id,params:v}],redoMutations:[{id:we.id,params:g}]}),!0):!1}},Dr=(n,t)=>{const o=vt(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()}},lt={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}},$t={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var h,S;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(exports.SheetInterceptorService),a=V(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:c}=a,u={subUnitId:c,name:t.name,unitId:i},l=Dr(n,u),d=r.onCommandExecute({id:$t.id,params:t}),m=[...(h=d.preRedos)!=null?h:[],{id:lt.id,params:u},...d.redos],g=[...(S=d.preUndos)!=null?S:[],{id:lt.id,params:l},...d.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Or=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),qe={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}},mo={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=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:c}=r,l={fromOrder:a.getConfig().sheetOrder.indexOf(c),toOrder:t.order,unitId:i,subUnitId:c},d=Or(n,l);return o.syncExecuteCommand(qe.id,l)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:qe.id,params:d}],redoMutations:[{id:qe.id,params:l}]}),!0):!1}},Pr=2e3,go=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const v=l.getRowOrCreate(g);u[g]=v.h}return{unitId:o,subUnitId:e,ranges:r,rowHeight:u}},Gt=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const v=l.getRowOrCreate(g);u[g]=v.ia}return{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:u}},kr=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(e);if(!c)return{unitId:o,subUnitId:e,rowsAutoHeightInfo:[]};const u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:u}},Se={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,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.h=a:S.h=(m=a[h])!=null?m:l,S.h=Math.min(Pr,S.h)}return!0}},de={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,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.ia=a:S.ia=(m=a[h-g])!=null?m:l}return!0}},zt={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),c=i==null?void 0:i.getSheetBySheetId(e);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},ho={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:c}=r,{anchorRow:u,deltaY:l}=t,m=a.getRowHeight(u)+l,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,v=e.filter(w=>w.range.rangeType===s.RANGE_TYPE.ROW),h=g?s.RANGE_TYPE.ALL:v.some(({range:w})=>{const{startRow:_,endRow:U}=w;return _<=u&&u<=U})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let S;if(h===s.RANGE_TYPE.ALL){const w=a.getRowCount(),_=new Array(a.getColumnCount()).fill(void 0).map((U,E)=>({startRow:E,endRow:E,startColumn:0,endColumn:w-1}));S={subUnitId:i,unitId:c,rowHeight:m,ranges:_}}else h===s.RANGE_TYPE.ROW?S={subUnitId:i,unitId:c,ranges:v.map(w=>s.Rectangle.clone(w.range)),rowHeight:m}:S={subUnitId:i,unitId:c,rowHeight:m,ranges:[{startRow:u,endRow:u,startColumn:0,endColumn:a.getMaxColumns()-1}]};const f=go(n,S),R={unitId:c,subUnitId:i,ranges:S.ranges,autoHeightInfo:s.BooleanNumber.FALSE},C=Gt(n,R),p=n.get(s.ICommandService),M=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:Se.id,params:S},{id:de.id,params:R}],p).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:Se.id,params:f},{id:de.id,params:C}],redoMutations:[{id:Se.id,params:S},{id:de.id,params:R}]}),!0):!1}},vo={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(exports.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 c=V(a);if(!c)return!1;const{unitId:u,subUnitId:l}=c,d={subUnitId:l,unitId:u,ranges:i,rowHeight:t.value},m=go(n,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=Gt(n,g);return s.sequenceExecute([{id:Se.id,params:d},{id:de.id,params:g}],e).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:Se.id,params:m},{id:de.id,params:v}],redoMutations:[{id:Se.id,params:d},{id:de.id,params:g}]}),!0):!1}},qt={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(exports.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,{anchorRow:d}=t!=null?t:{},m=d!=null?[{startRow:d,endRow:d,startColumn:0,endColumn:l.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},v=Gt(n,g),h=o.syncExecuteCommand(de.id,g),{undos:S,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:qt.id,params:g}),R=s.sequenceExecute([...f],o);return h&&R.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:de.id,params:v},...S],redoMutations:[{id:de.id,params:g},...f]}),!0):!1}},So={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(!V(n.get(s.IUniverInstanceService)))return!1;const u=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const l=u.getSheetBySheetId(e);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:o,subUnitId:e,hidden:s.BooleanNumber.FALSE},g=uo(n,m),v=r.syncExecuteCommand(we.id,m),h={unitId:o,subUnitId:e},S=r.syncExecuteCommand(Je.id,h);return v&&S?(a.pushUndoRedo({unitID:o,undoMutations:[{id:we.id,params:g}],redoMutations:[{id:we.id,params:m}]}),!0):!1}},fo=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},Co=n=>{const t=n;return t.forValue((o,e)=>{const r=n.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},gn=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,c=a;o(i*c,{startRow:e-c+1,endRow:e,startColumn:r,endColumn:r});const u={startRow:e-c+1,endRow:e,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&n.getValue(e,l);l--){c=Math.min(n.getValue(e,l)||0,c),i++;const d=c*i;u.startColumn=l,u.startRow=e-c+1,o(d,u)}}),t},Ar=(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),Yt=n=>{const t=[];let o=gn(n);for(;o.area>0;)o.range&&(t.push(o.range),Ar(n,o.range)),o=gn(n);return t},Kt=n=>{const t=fo(n);return Yt(t)};class xr{constructor(){L(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=Co(this._matrix);return Yt(t)}}const Vr=(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)},{}),Lr=(n=0)=>{let t=n;return function(){return t++}},Oe=K.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Oe);const Br=(n,t)=>{const o=n.get(Oe),{values:e,unitId:r,subUnitId:a}=t,i=[],c=[];Object.keys(e).forEach(l=>{e[l].ranges.forEach(m=>{s.Range.foreach(m,(g,v)=>{const h=o.getValue(r,a,g,v);h?i.push({pattern:h.pattern,row:g,col:v}):c.push({startColumn:v,endColumn:v,startRow:g,endRow:g})})})});const u=[];if(i.length){const l=mt(r,a,i);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=Kt(m.ranges)}),u.push({id:yt.id,params:mt(r,a,i)})}return c.length&&u.push({id:Xt.id,params:{unitId:r,subUnitId:a,ranges:c}}),u},yt={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(Oe),a=t.unitId,i=t.subUnitId,c=Object.keys(o).reduce((u,l)=>{const d=e[l],m=o[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(a,i,c),!0}},Xt={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(Oe).deleteValues(o,e,r),!0}},Fr=(n,t)=>{const o=n.get(Oe),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=o.getValue(r,a,l,d);m&&i.push({pattern:m.pattern,row:l,col:d})})}),!i.length)return[];const c=mt(r,a,i);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=Kt(l.ranges)}),[{id:yt.id,params:c}]},mt=(n,t,o)=>{const e=Vr(o,"pattern"),r={},a={},i=Lr();return Object.keys(e).forEach(c=>{const u=e[c],l=i();r[l]={pattern:c},u.forEach(d=>{a[l]||(a[l]={ranges:[]}),a[l].ranges.push(s.cellToRange(d.row,d.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},Ro={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},Io={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}},po={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}},Mo={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}},wo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Jt={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}},Zt={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,t)=>{var l;if(!n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const a=n.get(exports.SheetInterceptorService).onCommandExecute({id:Zt.id,params:t}),i={name:t.name,unitId:t.unitId},c=[...(l=a.preRedos)!=null?l:[],{id:Jt.id,params:i},...a.redos],u=n.get(s.ICommandService);return s.sequenceExecute(c,u).result}},yo="maxCellsPerSheet",Wr=3e6;var jr=Object.defineProperty,Hr=Object.getOwnPropertyDescriptor,$r=(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&&jr(t,o,r),r},hn=(n,t)=>(o,e)=>t(o,e,n);let it=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[B,gt,Tt,ht,_n,Ct,Rt,jt,ho,xn,An,je,Ce,It,pt,Pn,On,We,fe,Vn,Ue,At,be,St,Ae,kt,_e,wt,Re,Mt,ye,xt,Fe,jn,F,oo,to,no,Hn,zn,He,$n,Gn,Yn,xe,Ve,Ht,Rr,Xn,Me,so,Xe,$,vo,Zn,Be,Le,qn,Jn,Vt,Bt,Z,co,ze,eo,io,ao,ro,Zt,Jt,Ft,Je,ve,lo,we,$t,lt,mo,qe,zt,Se,qt,de,So,yt,H,Xt,Ro,Io,po,Mo,wo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(yo,Wr)}};it=$r([s.OnLifecycle(s.LifecycleStages.Starting,it),hn(0,s.ICommandService),hn(1,s.IConfigService)],it);var Gr=Object.defineProperty,zr=Object.getOwnPropertyDescriptor,qr=(n,t,o,e)=>{for(var r=e>1?void 0:e?zr(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},vn=(n,t)=>(o,e)=>t(o,e,n);let ct=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 c=o[i];if(c==null)return!0;Object.keys(c).forEach(l=>{const d=c[l];if(d==null)return!0;const m=this._getMergedCellData(i,l,d),g={subUnitId:l,unitId:i,cellValue:m};r.push({id:$.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(),c=new s.ObjectMatrix(o);return c.forValue((u,l,d)=>{const m=i==null?void 0:i.getValue(u,l),g=ne.handleNumfmtInCell(m,d,r);c.setValue(u,l,g)}),c.clone()}};ct=qr([s.OnLifecycle(s.LifecycleStages.Ready,ct),vn(0,K.Inject(s.IUniverInstanceService)),vn(1,s.ICommandService)],ct);var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Xr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Kr(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&&Yr(t,o,r),r},et=(n,t)=>(o,e)=>t(o,e,n);let ut=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})})}};ut=Xr([s.OnLifecycle(s.LifecycleStages.Ready,ut),et(0,s.ICommandService),et(1,ne.IFeatureCalculationManagerService),et(2,s.IUniverInstanceService),et(3,K.Inject(ne.FormulaDataModel))],ut);const O={MoveRangeCommandId:bn,InsertRowCommandId:Dn,InsertColCommandId:kn,RemoveColCommandId:Wn,RemoveRowCommandId:Fn,DeleteRangeMoveLeftCommandId:Tn,DeleteRangeMoveUpCommandId:En,InsertRangeMoveDownCommandId:lr,InsertRangeMoveRightCommandId:Nn,MoveColsCommandId:Bn,MoveRowsCommandId:Ln};var A=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(A||{});const tt=Number.MAX_SAFE_INTEGER,he=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=tt),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=tt),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=tt,t.startRow=0,t.endRow=tt),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Ye=(n,t,o)=>{const e={...o},r={...t},a=(S,f)=>{const R=Math.max(S.start,f.start),C=Math.min(S.end,f.end);return C<R?null:{start:R,end:C}},i=S=>S.end-S.start+1,c=(S,f)=>({start:S.start-f.start,end:S.start-f.start+S.end-S.start}),u=(S,f)=>({start:f.start+S.start,end:f.start+S.start+S.end-S.start}),l=t.start>n.start;if(l){const S=Math.min(n.end,t.start)-n.start+1;r.start-=S,r.end-=S}const d=i(n),m=d,g=a(n,e),v=g&&i(g)>=i(e);if(n.end<e.start)e.start-=d,e.end-=d;else if(g){const S=i(g);if(v){const f=c(e,n),R=u(f,r);e.start=R.start,e.end=R.end}else g.start>n.start?l?(e.end-=S+d,e.start-=d):e.end-=S:l?e.end-=S:e.start>n.start&&e.end>n.end?(e.start-=d,e.end-=d+S):e.end-=S}const h=a(r,e);return v||(r.start<=e.start?(e.start+=m,e.end+=m):h&&(l?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)}},Qt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:A.Delete}]:[{type:A.VerticalMove,step:c.step||0,length:c.length||0}]},Jr=(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,c=new s.ObjectMatrix;return s.Range.foreach(t,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,l=>l===1)},en=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:A.Delete}]:[{type:A.HorizontalMove,step:c.step||0,length:c.length||0}]},Zr=(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,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Uo=(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:A.Delete}),s.Rectangle.contains(e,t)){r.push({type:A.Delete});const c=s.Rectangle.getRelativeRange(t,e),u=s.Rectangle.getPositionRange(c,o);return[{type:A.Set,range:u}]}return r},Qr=(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 v=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(v,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(v,h)=>{r.setValue(v,h,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(v,h)=>{r.getValue(v,h)&&(r.setValue(v,h,void 0),a.setValue(v,h,1))});const c=o.startColumn-e.startColumn,u=o.startRow-e.startRow,l={startColumn:o.startColumn-c,endColumn:o.endColumn-c,startRow:o.startRow-u,endRow:o.endRow-u};return l&&s.Range.foreach(l,(v,h)=>{var R;const S=v+u,f=h+c;r.setValue(S,f,(R=a.getValue(v,h))!=null?R:0)}),s.queryObjectMatrix(r,v=>v===1)},Te=(n,t)=>{const o=he(n),e=he(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 c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},tn=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},nn=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(ae(o),ae(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},Ee=(n,t)=>{const o=he(n),e=he(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 es(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:A.Delete}),s.Rectangle.contains(n,o)){e.push({type:A.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:A.Set,range:a}]}return e}const on=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},rn=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},_o=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},ts=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.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 c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l+e,d,1)}),s.queryObjectMatrix(c,l=>l===1)},bo=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},ns=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.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 c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l,d+e,1)}),s.queryObjectMatrix(c,l=>l===1)},To=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},os=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.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),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d,m-r,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Eo=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(ae(o),ae(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},rs=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.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),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d-r,m,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Ne=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case A.Delete:{o=null;break}case A.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case A.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case A.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},ss=(n,t)=>{let o=[];switch(t.id){case O.DeleteRangeMoveLeftCommandId:{o=To(t,n);break}case O.DeleteRangeMoveUpCommandId:{o=Eo(t,n);break}case O.InsertColCommandId:{o=rn(t,n);break}case O.InsertRangeMoveDownCommandId:{o=_o(t,n);break}case O.InsertRangeMoveRightCommandId:{o=bo(t,n);break}case O.InsertRowCommandId:{o=on(t,n);break}case O.MoveColsCommandId:{o=en(t,n);break}case O.MoveRangeCommandId:{o=Uo(t,n);break}case O.MoveRowsCommandId:{o=Qt(t,n);break}case O.RemoveColCommandId:{o=tn(t,n);break}case O.RemoveRowCommandId:{o=nn(t,n);break}}return Ne(o,n)},as=(n,t)=>{let o=[];switch(t.id){case O.DeleteRangeMoveLeftCommandId:return os(t,n);case O.DeleteRangeMoveUpCommandId:return rs(t,n);case O.InsertRangeMoveDownCommandId:return ts(t,n);case O.InsertRangeMoveRightCommandId:return ns(t,n);case O.InsertColCommandId:{o=rn(t,n);break}case O.InsertRowCommandId:{o=on(t,n);break}case O.MoveColsCommandId:return Zr(t,n);case O.MoveRangeCommandId:return Qr(t,n);case O.MoveRowsCommandId:return Jr(t,n);case O.RemoveColCommandId:{o=tn(t,n);break}case O.RemoveRowCommandId:{o=nn(t,n);break}}return Ne(o,n)};function is(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:A.Unknown};switch(o){case Fe.id:r.type=A.Delete;break;case _e.id:r=Ye({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=A.VerticalMove;break;case be.id:r=Ye({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Re.id:r=Te(e.range,n),r?r.type=A.HorizontalMove:r={step:0,length:0,type:A.Delete};break;case ye.id:r=Te(ae(e.range),ae(n)),r?r.type=A.VerticalMove:r={step:0,length:0,type:A.Delete};break;case fe.id:r=Ee(ae(e.range),ae(n)),r.type=A.VerticalMove;break;case Ce.id:r=Ee(e.range,n),r.type=A.HorizontalMove;break;case Ae.id:r=es(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Ne(r,n):Ne([r],n):n}var cs=Object.defineProperty,us=Object.getOwnPropertyDescriptor,ds=(n,t,o,e)=>{for(var r=e>1?void 0:e?us(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&&cs(t,o,r),r},nt=(n,t)=>(o,e)=>t(o,e,n);const ls=s.createInterceptorKey("MERGE_REDO"),ms=s.createInterceptorKey("MERGE_UNDO");class gs 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=is(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}exports.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();L(this,"interceptor",new s.InterceptorManager({MERGE_REDO:ls,MERGE_UNDO:ms}));L(this,"_watchRanges",new Set);L(this,"_refRangeManagerMap",new Map);L(this,"_serializer",hs());L(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Sn(this._univerInstanceService),a=fn(this._univerInstanceService),u=((()=>{switch(o.id){case O.MoveColsCommandId:{const v=o.params,h=Math.min(v.fromRange.startColumn,v.toRange.startColumn);return this._checkRange([{...v.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],r,a)}case O.MoveRowsCommandId:{const v=o.params,h=Math.min(v.fromRange.startRow,v.toRange.startRow);return this._checkRange([{...v.fromRange,startRow:h,endRow:e.getRowCount()-1}],r,a)}case O.MoveRangeCommandId:{const v=o;return this._checkRange([v.params.fromRange,v.params.toRange],r,a)}case O.InsertRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.InsertColCommandId:{const h=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.RemoveRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.RemoveColCommandId:{const h=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.DeleteRangeMoveUpCommandId:case O.InsertRangeMoveDownCommandId:{const h=o.params.range||Cn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],r,a)}case O.DeleteRangeMoveLeftCommandId:case O.InsertRangeMoveRightCommandId:{const h=o.params.range||Cn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([S],r,a)}}})()||[]).reduce((v,h)=>{const S=h(o);return v.push(S),v},[]).reduce((v,h)=>{var S,f;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(S=h.preRedos)!=null?S:[]),v.preUndos.push(...(f=h.preUndos)!=null?f:[]),v},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:g,preRedos:l,preUndos:m}}})});L(this,"_checkRange",(o,e,r)=>{const a=Rn(e,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(l=>{const d=i.get(l),m=this._serializer.deserialize(l);o.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});L(this,"registerRefRange",(o,e,r,a)=>{const i=r||Sn(this._univerInstanceService),c=a||fn(this._univerInstanceService),u=Rn(i,c),l=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(e):d.set(l,new Set([e])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(e),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});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(d=>{if(d.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(d)}));const c=new gs(o,e,r,a);this._watchRanges.add(c);const u=s.toDisposable(()=>{this._watchRanges.delete(c),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(u);return s.toDisposable(()=>{l.dispose(),u.dispose()})}};exports.RefRangeService=ds([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),nt(0,s.ICommandService),nt(1,K.Inject(exports.SheetInterceptorService)),nt(2,K.Inject(s.IUniverInstanceService)),nt(3,K.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Sn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function fn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function Cn(n){return n.getSelectionRanges()||[]}function Rn(n,t){return`${n}_${t}`}function hs(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(t).reduce((a,i,c)=>{const u=String(c);return i&&e[u]&&(a[e[u]]=i),a},{})},serialize:o=>n.reduce((e,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var vs=Object.defineProperty,Ss=Object.getOwnPropertyDescriptor,fs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ss(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&&vs(t,o,r),r},Pe=(n,t)=>(o,e)=>t(o,e,n);const Cs=[Ce.id,fe.id,Re.id,ye.id],Rs=[_e.id,be.id];function No(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:c,endColumn:u}=o[r];if(t===s.Dimension.ROWS)for(let l=a;l<=i;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};e.push(d)}else if(t===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:a,endRow:i,startColumn:l,endColumn:l};e.push(d)}}o=e}return o}exports.MergeCellController=class extends s.Disposable{constructor(o,e,r,a,i,c){super();L(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case gt.id:case ht.id:{const r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),c=i.getSheetId(),u=i.getConfig().mergeData,l=o._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:c,ranges:l},g=se(o._injector,m),v=[{id:F.id,params:m}],h=[{id:B.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case O.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case O.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case We.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertRowCommand(a,i,c)}case je.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertColCommand(a,i,c)}case wt.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case Mt.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 pt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case It.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case Rt.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case Ct.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 c=i==null?void 0:i.getSheetBySheetId(a);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),l=d=>this.refRangeHandle(d,r,a);u.forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,l,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Ft.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;o(c,i)}if(r.id===B.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)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=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=o,{startRow:m,endRow:g}=d;if(c.forEach(S=>{if(m<=S.startRow&&g>=S.endRow){u.ranges.push(S);const f=Qt({id:O.MoveRowsCommandId,params:o},S),R=Ne(f,S);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=se(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveColsCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=o,{startColumn:m,endColumn:g}=d;if(c.forEach(S=>{if(m<=S.startColumn&&g>=S.endColumn){u.ranges.push(S);const f=en({id:O.MoveColsCommandId,params:o},S),R=Ne(f,S);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=se(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveRangeCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=i.getMergeData(),u=c.filter(h=>s.Rectangle.intersects(h,o.fromRange)),l=c.filter(h=>s.Rectangle.intersects(h,o.toRange)),d=u.map(h=>s.Rectangle.getRelativeRange(h,o.fromRange)).map(h=>s.Rectangle.getPositionRange(h,o.toRange)),m=No(d).filter(h=>!c.some(S=>s.Rectangle.equals(h,S))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:u}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:m}}],v=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:u}}];return{redos:g,undos:v}}_handleInsertRowCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((C,p)=>(u>p.startRow&&u<=p.endRow&&C.push(p),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((C,p)=>{if(u>p.startRow&&u<=p.endRow){const M=l-u+1;p.endRow+=M,this._checkIsMergeCell(p)&&C.push(p)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:S},{id:B.id,params:v}];return{redos:f,undos:R}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((C,p)=>(u>p.startColumn&&u<=p.endColumn&&C.push(p),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((C,p)=>{if(u>p.startColumn&&u<=p.endColumn){const M=l-u+1;p.endColumn+=M,this._checkIsMergeCell(p)&&C.push(p)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:S},{id:B.id,params:v}];return{redos:f,undos:R}}_handleRemoveColCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((M,I)=>(s.Rectangle.intersects(c,I)&&M.push(I),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((M,I)=>{if(s.Rectangle.intersects(c,I)){if(u<=I.startColumn&&l>=I.endColumn)return M;u>=I.startColumn&&l<=I.endColumn?I.endColumn-=l-u+1:u<I.startColumn?(I.startColumn=u,I.endColumn-=l-u+1):l>I.endColumn&&(I.endColumn=u-1),this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:S}],p=[{id:B.id,params:v}];return{preUndos:C,undos:p,preRedos:f,redos:R}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((M,I)=>(s.Rectangle.intersects(a,I)&&M.push(I),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((M,I)=>{if(s.Rectangle.intersects(a,I)){if(u<=I.startRow&&l>=I.endRow)return M;u>=I.startRow&&l<=I.endRow?I.endRow-=l-u+1:u<I.startRow?(I.startRow=u,I.endRow-=l-u+1):l>I.endRow&&(I.endRow=u-1),this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:S}],p=[{id:B.id,params:v}];return{preUndos:C,undos:p,preRedos:f,redos:R}}_handleInsertRangeMoveRightCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:R,endRow:C,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:C,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:R,startColumn:p,endRow:C,endColumn:u},f))){const _=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn+_,endRow:f.endRow,endColumn:f.endColumn+_})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.id,params:S}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:p,startColumn:M,endColumn:I,endRow:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:I},C)&&(d.push(C),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:I},C))){const E=w-p+1;m.push({startRow:C.startRow+E,startColumn:C.startColumn,endRow:C.endRow+E,endColumn:C.endColumn})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:S}];return{redos:f,undos:R}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:p,startColumn:M,endColumn:I,endRow:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:I},C)&&(d.push(C),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:I},C))){const E=w-p+1,P=s.Rectangle.moveVertical(C,-E);m.push(P)}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:S}];return{redos:f,undos:R}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:R,endRow:C,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:C,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:R,startColumn:p,endRow:C,endColumn:u},f))){const _=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn-_,endRow:f.endRow,endColumn:f.endColumn-_})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.id,params:S}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(Rs.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,c=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,u=c?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=c?a.startRow:a.startColumn,d=c?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:R,endRow:C,startColumn:p,endColumn:M,rangeType:I}=f;s.Rectangle.intersects(f,a)||(c?l<R&&d>C?(R-=u,C-=u):l>C&&d<=R&&(R+=u,C+=u):l<p&&d>M?(p-=u,M-=u):l>M&&d<=p&&(p+=u,M+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:R,endRow:C,startColumn:p,endColumn:M,rangeType:I})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=o.params,S=f=>this.refRangeHandle(f,v,h);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,S,v,h))})}if(Cs.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:c}=i,u=o.id.includes("row"),l=o.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-d+1,v=[];a.forEach(R=>{let{startRow:C,endRow:p,startColumn:M,endColumn:I,rangeType:w}=R;l?u?d<=C&&(C+=g,p+=g):d<=M&&(M+=g,I+=g):u?m<C&&(C-=g,p-=g):m<M&&(M-=g,I-=g),R.startRow===R.endRow&&R.startColumn===R.endColumn||v.push({startRow:C,endRow:p,startColumn:M,endColumn:I,rangeType:w})}),r.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=o.params,f=R=>this.refRangeHandle(R,h,S);v.forEach(R=>{this.disposableCollection.add(this._refRangeService.registerRefRange(R,f,h,S))})}}))}};exports.MergeCellController=fs([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Pe(0,K.Inject(s.ICommandService)),Pe(1,K.Inject(exports.RefRangeService)),Pe(2,K.Inject(s.IUniverInstanceService)),Pe(3,K.Inject(K.Injector)),Pe(4,K.Inject(exports.SheetInterceptorService)),Pe(5,K.Inject(exports.SelectionManagerService))],exports.MergeCellController);function le(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function me(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const Is={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"}}},Do={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}},ps={sheets:{tabs:{sheetCopy:"(Копия)",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}};var Ms=Object.defineProperty,ws=Object.getOwnPropertyDescriptor,ys=(n,t,o,e)=>{for(var r=e>1?void 0:e?ws(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&&Ms(t,o,r),r},_t=(n,t)=>(o,e)=>t(o,e,n);exports.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 c=a.getStyles(),u=i.getCellRaw(e,r);if(u!=null&&u.s){const l=c.get(u.s);if(l!=null&&l.n)return l.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(c=>{s.Range.foreach(c,(u,l)=>{const d=a.getCellRaw(u,l);if(!d)return;const m=d==null?void 0:d.s,v={...m&&i.get(m)||{}};delete v.n;const h=i.setValue(v);d.s=h})})}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(),c=a.getCellMatrix();e.forEach(u=>{u.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=a.getCellRaw(d,m);if(g){const h={...g.s&&i.get(g.s)||{},n:{pattern:u.pattern}},S=i.setValue(h);g.s=S}else{const v={n:{pattern:u.pattern}},h=i.setValue(v);h&&c.setValue(d,m,{s:h})}})})})}};exports.NumfmtService=ys([_t(0,s.IResourceManagerService),_t(1,s.IUniverInstanceService),_t(2,s.ILogService)],exports.NumfmtService);const In="univer.sheet.editable";class Ge extends s.PermissionPoint{constructor(o,e){super();L(this,"id",In);L(this,"value",!0);L(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${In}_${o}_${e}`}}var Us=Object.defineProperty,_s=Object.getOwnPropertyDescriptor,bs=(n,t,o,e)=>{for(var r=e>1?void 0:e?_s(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&&Us(t,o,r),r},pn=(n,t)=>(o,e)=>t(o,e,n);exports.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();L(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(dn.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(dn.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(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),c.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(),c=a.getActiveSheet(),u=r||c.getSheetId(),l=new Ge(i,u);this._permissionService.updatePermissionPoint(i,l.id,o)}};exports.SheetPermissionService=bs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),pn(0,K.Inject(s.IPermissionService)),pn(1,K.Inject(s.IUniverInstanceService))],exports.SheetPermissionService);function Ts(n){var a,i,c;const t=n.get(s.IUniverInstanceService),o=n.get(exports.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(c=o.getEditable$(e,r))==null?void 0:c.pipe(ke.map(u=>!u.value))}var Es=Object.defineProperty,Ns=Object.getOwnPropertyDescriptor,Ds=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ns(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&&Es(t,o,r),r},ot=(n,t)=>(o,e)=>t(o,e,n);const Os="SHEET_DEFINED_NAME_PLUGIN";let dt=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:Os,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)}}))}};dt=Ds([s.OnLifecycle(s.LifecycleStages.Ready,dt),ot(0,s.ICommandService),ot(1,s.IUniverInstanceService),ot(2,ne.IDefinedNamesService),ot(3,s.IResourceManagerService)],dt);var Ps=Object.defineProperty,ks=Object.getOwnPropertyDescriptor,As=(n,t,o,e)=>{for(var r=e>1?void 0:e?ks(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&&Ps(t,o,r),r},bt=(n,t)=>(o,e)=>t(o,e,n);const xs="SHEET_PLUGIN";var rt;exports.UniverSheetsPlugin=(rt=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:Do})}_initializeDependencies(t){var e;const o=[[De],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[Oe,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[it],[exports.MergeCellController],[dt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ct],[ut]),o.forEach(r=>{t.add(r)})}},L(rt,"pluginName",xs),L(rt,"type",s.UniverInstanceType.UNIVER_SHEET),rt);exports.UniverSheetsPlugin=As([bt(1,s.ICommandService),bt(2,K.Inject(s.LocaleService)),bt(3,K.Inject(K.Injector))],exports.UniverSheetsPlugin);const Vs=[Se.id,de.id,zt.id,ve.id,Je.id,_e.id,be.id,xe.id,Ve.id,Be.id,Le.id,Ce.id,fe.id,Re.id,ye.id],Ls=[$.id,Ae.id,F.id,B.id],Bs=1.5,Fs="rgba(255, 255, 255, 0.01)";function Ws(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 js(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=Oo(o)),r}function Oo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function Hs(n,t,o){const e=xo.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const $s=(n,t,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=t;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:g}=d;let{startRow:v,startColumn:h,endRow:S,endColumn:f}=i[i.length-1];if(a===s.Dimension.COLUMNS){const M=o.find(I=>I.startColumn===m&&I.endColumn===m&&g===I.startRow);M&&(f=M.endColumn,v=M.startRow,S=M.endRow)}else if(a===s.Dimension.ROWS){const M=o.find(I=>I.startRow===g&&I.endRow===g&&m===I.startColumn);M&&(S=M.endRow,h=M.startColumn,f=M.endColumn)}const R={startRow:v,startColumn:h,endRow:S,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},C=r.map((M,I,w)=>({range:M.range,style:null,primary:I===w.length-1?R:null})),p={unitId:c,subUnitId:u,pluginName:Y,selections:C};return{id:H.id,params:p}}return null}return null},Gs=(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:Y,selections:[...e]};return{id:H.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=$s;exports.AddMergeUndoMutationFactory=ge;exports.AddMergeUndoSelectionsOperationFactory=Gs;exports.AddWorksheetMergeMutation=B;exports.BorderStyleManagerService=De;exports.COMMAND_LISTENER_SKELETON_CHANGE=Vs;exports.COMMAND_LISTENER_VALUE_CHANGE=Ls;exports.ClearSelectionAllCommand=gt;exports.ClearSelectionContentCommand=Tt;exports.ClearSelectionFormatCommand=ht;exports.CopySheetCommand=_n;exports.DeleteRangeMoveLeftCommand=Ct;exports.DeleteRangeMoveUpCommand=Rt;exports.DeltaColumnWidthCommand=jt;exports.DeltaRowHeightCommand=ho;exports.EffectRefRangId=O;exports.EmptyMutation=Ro;exports.INTERCEPTOR_POINT=st;exports.INumfmtService=Oe;exports.InsertColAfterCommand=xn;exports.InsertColBeforeCommand=An;exports.InsertColCommand=je;exports.InsertColMutation=Ce;exports.InsertColMutationUndoFactory=Pt;exports.InsertDefinedNameCommand=Io;exports.InsertRangeMoveDownCommand=It;exports.InsertRangeMoveRightCommand=pt;exports.InsertRowAfterCommand=Pn;exports.InsertRowBeforeCommand=On;exports.InsertRowCommand=We;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=Ot;exports.InsertSheetCommand=Vn;exports.InsertSheetMutation=Ue;exports.InsertSheetUndoMutationFactory=Et;exports.MAX_CELL_PER_SHEET_KEY=yo;exports.MoveColsCommand=At;exports.MoveColsMutation=be;exports.MoveRangeCommand=St;exports.MoveRangeMutation=Ae;exports.MoveRowsCommand=kt;exports.MoveRowsMutation=_e;exports.NORMAL_SELECTION_PLUGIN_NAME=Y;exports.OperatorType=A;exports.RangeMergeUtil=xr;exports.RemoveColCommand=wt;exports.RemoveColMutation=Re;exports.RemoveDefinedNameCommand=po;exports.RemoveMergeUndoMutationFactory=se;exports.RemoveNumfmtMutation=Xt;exports.RemoveRowCommand=Mt;exports.RemoveRowMutation=ye;exports.RemoveSheetCommand=xt;exports.RemoveSheetMutation=Fe;exports.RemoveSheetUndoMutationFactory=Un;exports.RemoveWorksheetMergeCommand=jn;exports.RemoveWorksheetMergeMutation=F;exports.ResetBackgroundColorCommand=oo;exports.ResetTextColorCommand=to;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Fs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Bs;exports.ScrollToCellOperation=wo;exports.SelectionMoveType=Mn;exports.SetBackgroundColorCommand=no;exports.SetBoldCommand=wr;exports.SetBorderBasicCommand=Hn;exports.SetBorderColorCommand=zn;exports.SetBorderCommand=He;exports.SetBorderPositionCommand=$n;exports.SetBorderStyleCommand=Gn;exports.SetColHiddenCommand=Yn;exports.SetColHiddenMutation=xe;exports.SetColVisibleMutation=Ve;exports.SetColWidthCommand=Ht;exports.SetDefinedNameCommand=Mo;exports.SetFontFamilyCommand=br;exports.SetFontSizeCommand=Tr;exports.SetFrozenCommand=Xn;exports.SetFrozenMutation=Me;exports.SetFrozenMutationFactory=Lt;exports.SetHorizontalTextAlignCommand=so;exports.SetItalicCommand=yr;exports.SetNumfmtMutation=yt;exports.SetRangeValuesCommand=Xe;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=Ie;exports.SetRowHeightCommand=vo;exports.SetRowHiddenCommand=Zn;exports.SetRowHiddenMutation=Be;exports.SetRowVisibleMutation=Le;exports.SetSelectedColsVisibleCommand=qn;exports.SetSelectedRowsVisibleCommand=Jn;exports.SetSelectionsOperation=H;exports.SetSpecificColsVisibleCommand=Vt;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=_r;exports.SetStyleCommand=Z;exports.SetTabColorCommand=co;exports.SetTabColorMutation=ze;exports.SetTextColorCommand=eo;exports.SetTextRotationCommand=io;exports.SetTextWrapCommand=ao;exports.SetUnderlineCommand=Ur;exports.SetVerticalTextAlignCommand=ro;exports.SetWorkbookNameCommand=Zt;exports.SetWorkbookNameMutation=Jt;exports.SetWorksheetActivateCommand=Ft;exports.SetWorksheetActiveOperation=Je;exports.SetWorksheetColWidthMutation=ve;exports.SetWorksheetColWidthMutationFactory=Wt;exports.SetWorksheetHideCommand=lo;exports.SetWorksheetHideMutation=we;exports.SetWorksheetNameCommand=$t;exports.SetWorksheetNameMutation=lt;exports.SetWorksheetOrderCommand=mo;exports.SetWorksheetOrderMutation=qe;exports.SetWorksheetRowAutoHeightMutation=zt;exports.SetWorksheetRowAutoHeightMutationFactory=kr;exports.SetWorksheetRowHeightMutation=Se;exports.SetWorksheetRowIsAutoHeightCommand=qt;exports.SetWorksheetRowIsAutoHeightMutation=de;exports.SetWorksheetShowCommand=So;exports.SheetEditablePermission=Ge;exports.alignToMergedCellsBorders=Ke;exports.convertPrimaryWithCoordToPrimary=Oo;exports.convertSelectionDataToRange=js;exports.createTopMatrixFromMatrix=Co;exports.createTopMatrixFromRanges=fo;exports.enUS=Is;exports.factoryRemoveNumfmtUndoMutation=Fr;exports.factorySetNumfmtUndoMutation=Br;exports.findAllRectangle=Yt;exports.followSelectionOperation=pe;exports.getAddMergeMutationRangeByType=No;exports.getCellAtRowCol=nr;exports.getCurrentSheetDisabled$=Ts;exports.getInsertRangeMutations=Nt;exports.getMoveRangeUndoRedoMutations=ft;exports.getNormalSelectionStyle=Ws;exports.getPrimaryForRange=oe;exports.getRemoveRangeMutations=Dt;exports.getSheetCommandTarget=V;exports.getSheetCommandTargetWorkbook=yn;exports.getSheetMutationTarget=vt;exports.handleBaseInsertRange=Ee;exports.handleBaseMoveRowsCols=Ye;exports.handleBaseRemoveRange=Te;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=as;exports.handleDefaultRangeChangeWithEffectRefCommands=ss;exports.handleDeleteRangeMoveLeft=To;exports.handleDeleteRangeMoveUp=Eo;exports.handleDeleteRangeMutation=ir;exports.handleIRemoveCol=tn;exports.handleIRemoveRow=nn;exports.handleInsertCol=rn;exports.handleInsertRangeMoveDown=_o;exports.handleInsertRangeMoveRight=bo;exports.handleInsertRangeMutation=ar;exports.handleInsertRow=on;exports.handleMoveCols=en;exports.handleMoveRange=Uo;exports.handleMoveRows=Qt;exports.isSingleCellSelection=rr;exports.rangeMerge=Kt;exports.rotateRange=ae;exports.ruRU=ps;exports.runRefRangeMutations=Ne;exports.setEndForRange=or;exports.transformCellDataToSelectionData=Hs;exports.transformCellsToRange=mt;exports.zhCN=Do;
1
+ "use strict";var Dr=Object.defineProperty;var Ar=(o,e,t)=>e in o?Dr(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var C=(o,e,t)=>(Ar(o,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),x=require("@wendellhu/redi"),he=require("rxjs"),ie=require("@univerjs/engine-formula"),et=require("rxjs/operators"),Pt=require("@univerjs/engine-render");var Wr=Object.defineProperty,xr=Object.getOwnPropertyDescriptor,Vr=(o,e,t,n)=>{for(var r=n>1?void 0:n?xr(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Wr(e,t,r),r},Lr=(o,e)=>(t,n)=>e(t,n,o);const X="normalSelectionPluginName";var Fn=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))(Fn||{});exports.SelectionManagerService=class{constructor(e){C(this,"_selectionInfo",new Map);C(this,"_currentSelection",null);C(this,"_selectionMoveStart$",new he.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new he.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new he.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 t,n;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var n,r;if(this._currentSelection==null||this._currentSelection.pluginName===e)return;const t=this.getSelectionDatasByParam(this._currentSelection);this._currentSelection={pluginName:e,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(r=this._currentSelection)==null?void 0:r.sheetId},t!=null&&this.add([])}reset(){var e,t;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=X,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(t=>t.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,t=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),t===0?this._refreshStart(this._currentSelection):t===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:t},n)=>e.some(({range:r},i)=>n===i?!1:t.startRow<=r.endRow&&t.endRow>=r.startRow&&t.startColumn<=r.endColumn&&t.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:t,unitId:n,sheetId:r}=e;return(a=(i=this._selectionInfo.get(t))==null?void 0:i.get(n))==null?void 0:a.get(r)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[0]}_getLastByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[t.length-1]}_addByParam(e,t=!0){const{pluginName:n,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const c=this._selectionInfo.get(n);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(i))u.set(i,[...a]);else{let l=u.get(i);l==null&&(l=[],u.set(i,l)),l.push(...a)}t&&this._refresh({pluginName:n,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:t,unitId:n,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const a=this._selectionInfo.get(t);a.has(n)||a.set(n,new Map);const c=a.get(n);if(!c.has(r))c.set(r,i);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...i)}}_clearByParam(e){const t=this._getSelectionDatas(e);t==null||t.splice(0),this._refresh(e)}_removeByParam(e,t){const n=this._getSelectionDatas(t);n==null||n.splice(e,1),this._refresh(t)}};exports.SelectionManagerService=Vr([Lr(0,x.Inject(s.ThemeService))],exports.SelectionManagerService);const $r=s.createInterceptorKey("CELL_CONTENT"),jr=s.createInterceptorKey("ROW_FILTERED"),Ct={CELL_CONTENT:$r,ROW_FILTERED:jr};var Br=Object.defineProperty,Fr=Object.getOwnPropertyDescriptor,Hr=(o,e,t,n)=>{for(var r=n>1?void 0:n?Fr(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Br(e,t,r),r},Gr=(o,e)=>(t,n)=>e(t,n,o);exports.SheetInterceptorService=class extends s.Disposable{constructor(t){super();C(this,"_interceptorsByName",new Map);C(this,"_commandInterceptors",[]);C(this,"_workbookDisposables",new Map);C(this,"_worksheetDisposables",new Map);this._univerInstanceService=t,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{this._interceptWorkbook(n)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>this._disposeWorkbookInterceptor(n))),this.intercept(Ct.CELL_CONTENT,{priority:-1,handler(n,r){const i=r.worksheet.getCellRaw(r.row,r.col);return n?{...i,...n}:i}})}dispose(){super.dispose(),this._workbookDisposables.forEach(t=>t.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(t){if(this._commandInterceptors.includes(t))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(t),this._commandInterceptors.sort((n,r)=>{var i,a;return((i=r.priority)!=null?i:0)-((a=n.priority)!=null?a:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,t)))}onCommandExecute(t){const n=this._commandInterceptors.map(r=>r.getMutations(t));return{preUndos:n.map(r=>{var i;return(i=r.preUndos)!=null?i:[]}).flat(),undos:n.map(r=>r.undos).flat(),preRedos:n.map(r=>{var i;return(i=r.preRedos)!=null?i:[]}).flat(),redos:n.map(r=>r.redos).flat()}}intercept(t,n){const r=t;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(n),this._interceptorsByName.set(r,i.sort((a,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=a.priority)!=null?l:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(t){const n=t,r=this._interceptorsByName.get(n);return s.composeInterceptors(r||[])}_interceptWorkbook(t){const n=new s.DisposableCollection,r=t.getUnitId(),i=this,a=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection;i._worksheetDisposables.set(En(r,c),d),d.add(l.registerCellContentInterceptor({getCell(m,h){return i.fetchThroughInterceptors(Ct.CELL_CONTENT)(c.getCellRaw(m,h),{unitId:r,subUnitId:u,row:m,col:h,worksheet:c,workbook:t})}})),d.add(l.registerRowFilteredInterceptor({getRowFiltered(m){return!!i.fetchThroughInterceptors(Ct.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:t,worksheet:c})}}))})};t.getSheets().forEach(c=>a(c)),n.add(s.toDisposable(t.sheetCreated$.subscribe(c=>a(c)))),n.add(s.toDisposable(()=>t.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),n.add(s.toDisposable(t.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,n)}_disposeWorkbookInterceptor(t){const n=t.getUnitId(),r=this._workbookDisposables.get(n);r&&(r.dispose(),this._workbookDisposables.delete(n))}_disposeSheetInterceptor(t,n){const r=En(t,n),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Hr([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Gr(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function En(o,e){return`${o}|${e.getSheetId()}`}const Me=(o,e)=>{const{unitId:t,subUnitId:n,cellValue:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(n);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=a.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((h,R,g)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(h,R))||{},v=l.getStyleByCell(S);let I=l.getStyleByCell(g);I=qr(v,I),S.s=I,d.setValue(h,R,zr(S))}),{...e,options:{},cellValue:d.getMatrix()}};function zr(o){return o==null?null:(o.f===void 0&&(o.f=null),o.si===void 0&&(o.si=null),o.p===void 0&&(o.p=null),o.v===void 0&&(o.v=null),o.t===void 0&&(o.t=null),o.s===void 0&&(o.s=null),o.custom===void 0&&(o.custom=null),o)}const Y={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(o,e)=>{const{cellValue:t,subUnitId:n,unitId:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(n);if(!c)return!1;const u=c.getCellMatrix(),l=a.getStyles();return new s.ObjectMatrix(t).forValue((m,h,R)=>{if(!R)u==null||u.setValue(m,h,{});else{const g=u.getValue(m,h)||{},S=R.t?R.t:R.v!==void 0?Nn(R.v,R.t):Nn(g.v,g.t);if(R.f!==void 0&&(g.f=R.f),R.si!==void 0&&(g.si=R.si),R.p!==void 0&&(g.p=R.p),R.v!==void 0&&(g.v=S===s.CellValueType.NUMBER?Number(R.v):S===s.CellValueType.BOOLEAN?Yr(R.v)?1:0:R.v),g.v!==void 0&&(g.t=S),R.s!==void 0){const v=l.getStyleByCell(g);v==null&&delete g.s,typeof R.s=="string"&&(R.s=l.get(R.s));const I=vt(v,R.s?R.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete g.s:g.s=l.setValue(I),!R.p&&g.p&&Xr(g.p,R.s?R.s:null)}R.custom!==void 0&&(g.custom=R.custom),u.setValue(m,h,s.Tools.removeNull(g))}}),!0}};function Nn(o,e){return o===null?null:typeof o=="string"?s.isSafeNumeric(o)?(+o==0||+o==1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(o)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof o=="number"?(o===0||o===1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof o=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function Yr(o){if(typeof o=="string"){if(o.toUpperCase()==="TRUE")return!0;if(o.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(o)){if(Number(o)===0)return!1;if(Number(o)===1)return!0}}if(typeof o=="number"){if(o===0)return!1;if(o===1)return!0}return typeof o=="boolean"?o:null}function qr(o,e){return Kr(o,e)}function Kr(o,e){if(!e||!Object.keys(e).length)return o;const t=o||{};for(const n in e)n==="bd"?t[n]=Zr(t[n]||{},e[n]):n in t||(t[n]=null);return t}function Zr(o,e){if(!e||!Object.keys(e).length)return o;for(const t in e)t in o||(o[t]=null);return o}function vt(o,e,t=!1){if(e===null)return e;if(e===void 0)return o;const n=s.Tools.deepClone(o)||{};if(n){for(const r in e)t&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in n&&r==="bd"?n[r]=Object.assign(n[r],e[r]):n[r]=e[r]);return"cl"in n&&("ul"in n&&n.ul&&(n.ul.cl=n.cl),"ol"in n&&n.ol&&(n.ol.cl=n.cl),"st"in n&&n.st&&(n.st.cl=n.cl)),n}}function Hn(o,e){return o.some(t=>t.startIndex===e)?Hn(o,e+1):e}function Xr(o,e){var a;if(o.body==null)return;Array.isArray(o.body.textRuns)||(o.body.textRuns=[]);let t=0;const n=[],r=((a=o.body)==null?void 0:a.paragraphs)||[];for(const c of o.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(t<u){const h={st:t,ed:u},R=vt({},e,!0);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)||(h.ts=R),n.push(h)}const m=vt(d,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,n.push(c),t=Hn(r,l)}const i=o.body.dataStream.endsWith(`\r
2
+ `)?o.body.dataStream.length-2:o.body.dataStream.length;if(t<i){const c={st:t,ed:i},u=vt({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),n.push(c)}o.body.textRuns=s.normalizeTextRuns(n)}const Ut={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async o=>{const e=o.get(s.IUniverInstanceService),t=o.get(s.ICommandService),n=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],h=[],R={subUnitId:l,unitId:c,cellValue:Jr(d)},g=Me(o,R);m.push({id:Y.id,params:R}),h.push({id:Y.id,params:g});const S=i.onCommandExecute({id:Ut.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function Jr(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.clone()}const Yt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async o=>{const e=o.get(s.IUniverInstanceService),t=o.get(s.ICommandService),n=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:Qr(d)},h=Me(o,m),R=i.onCommandExecute({id:Yt.id}),g=[{id:Y.id,params:m},...R.redos],S=[...R.undos,{id:Y.id,params:h}];return s.sequenceExecute(g,t).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:g}),!0):!1}};function Qr(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),e.clone()}const Tt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async o=>{const e=o.get(s.IUniverInstanceService),t=o.get(s.ICommandService),n=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],h=[],R={subUnitId:l,unitId:c,cellValue:es(d)},g=Me(o,R);m.push({id:Y.id,params:R}),h.push({id:Y.id,params:g});const S=i.onCommandExecute({id:Tt.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function es(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{s:null})}),e.clone()}const qt=(o,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),De={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService),{sheet:n,index:r,unitId:i}=e,a=t.getUniverSheetInstance(i);return a?a.addWorksheet(n.id,r,n):!1}};function Gn(o,e){const{unitId:t}=e,n=t?o.getUniverSheetInstance(t):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return n?{workbook:n,unitId:n.getUnitId()}:null}function B(o,e={}){const{unitId:t,subUnitId:n}=e,r=t?o.getUniverSheetInstance(t):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const i=n?r.getSheetBySheetId(n):r.getActiveSheet();return i?{worksheet:i,workbook:r,unitId:r.getUnitId(),subUnitId:i.getSheetId()}:null}function Et(o,e){const{unitId:t,subUnitId:n}=e,r=o.getUniverSheetInstance(t);if(!r)return null;const i=r.getSheetBySheetId(n);return i?{worksheet:i,workbook:r}:null}const zn=(o,e)=>{const t=o.get(s.IUniverInstanceService),{subUnitId:n,unitId:r}=e,i=Et(t,e);if(!i)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:a,worksheet:c}=i,u=c.getConfig();return{index:a.getConfig().sheetOrder.findIndex(m=>m===n),sheet:u,unitId:r}},Ze={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService),{subUnitId:n,unitId:r}=e,i=t.getUniverSheetInstance(r);return i?i.removeSheet(n):!1}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.LocaleService),a=B(r,e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:l}=a,d=s.Tools.deepClone(u.getConfig());d.name+=i.t("sheets.tabs.sheetCopy"),d.id=s.Tools.generateRandomId();const h={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},R=qt(o,h);return t.syncExecuteCommand(De.id,h)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:Ze.id,params:R}],redoMutations:[{id:De.id,params:h}]}),!0):!1}},Fe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(o,e)=>{const{from:t,to:n}=e;if(!t||!n)return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getSheetBySheetId(e.from.subUnitId),c=i.getSheetBySheetId(e.to.subUnitId);if(!a||!c)return!1;const u=a.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(t.value).forValue((d,m,h)=>{u.setValue(d,m,h)}),new s.ObjectMatrix(n.value).forValue((d,m,h)=>{l.setValue(d,m,h)}),!0}},K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(o,e)=>{const t=o.get(exports.SelectionManagerService);if(!e)return!1;const{selections:n,type:r}=e;return t.replace(n,r),!0}};function rt(o,e,t=!0){const n=e.getMatrixWithMergedCells(...s.selectionToArray(o)),r=[];if(n.forValue((a,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(o,l)||r.push(l)}}),r.length===0)return o;const i=s.Rectangle.union(o,...r);return t?rt(i,e,t):i}function ts(o,e,t){let n=null;return t.getMatrixWithMergedCells(o,e,o,e).forValue((i,a,c)=>(n={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:i+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:a+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),n||{actualColumn:e,actualRow:o,startRow:o,startColumn:e,endRow:o,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ns(o,e,t){const{startRow:n,startColumn:r,endRow:i,endColumn:a}=o;return Number.isNaN(n)&&(o.startRow=0),Number.isNaN(i)&&(o.endRow=e-1),Number.isNaN(r)&&(o.startColumn=0),Number.isNaN(a)&&(o.endColumn=t-1),o}function ae(o,e){const t=Number.isNaN(o.startRow)?0:o.startRow,n=Number.isNaN(o.startColumn)?0:o.startColumn,r=e.getMergedCell(t,n);return r?{...r,actualRow:t,actualColumn:n,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:t,startColumn:n,endRow:o.startRow,endColumn:o.startColumn,actualRow:t,actualColumn:n,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const we=(o,e,t)=>({id:K.id,params:{unitId:e.getUnitId(),subUnitId:t.getSheetId(),pluginName:X,selections:[{range:o,primary:ae(o,t)}]}});function os(o){if(!o)return!1;const{range:e,primary:t}=o;return s.Rectangle.equals(e,t)}function rs(o){function e(t,n){function r(i){for(let a=i.startRow;a<=i.endRow;a++)if(!o.getRowFiltered(a))for(let c=i.startColumn;c<=i.endColumn;c++)n(a,c,i)}r(t)}return{forOperableEach:e}}const qn="sheet.command.move-range",Nt={type:s.CommandType.COMMAND,id:qn,handler:(o,e)=>{var I,p;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.ErrorService),a=o.get(s.LocaleService),c=B(r);if(!c)return!1;const{worksheet:u,subUnitId:l,unitId:d}=c,m=kt(o,{unitId:d,subUnitId:l,range:e.fromRange},{unitId:d,subUnitId:l,range:e.toRange});if(m===null)return i.emit(a.t("sheets.info.acrossMergedCell")),!1;const R=o.get(exports.SheetInterceptorService).onCommandExecute({id:Nt.id,params:{...e}}),g=[...(I=R.preRedos)!=null?I:[],...m.redos,...R.redos,{id:K.id,params:{unitId:d,subUnitId:l,pluginName:X,selections:[{range:e.toRange,primary:ae(e.toRange,u)}]}}],S=[...(p=R.preUndos)!=null?p:[],...m.undos,...R.undos,{id:K.id,params:{unitId:d,subUnitId:l,pluginName:X,selections:[{range:e.fromRange,primary:ae(e.fromRange,u)}]}}];return s.sequenceExecute(g,t).result?(n.pushUndoRedo({unitID:d,undoMutations:S,redoMutations:g}),!0):!1}};function kt(o,e,t,n=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:l,subUnitId:d}=t,h=o.get(s.IUniverInstanceService).getUniverSheetInstance(u),R=h==null?void 0:h.getSheetBySheetId(d),g=h==null?void 0:h.getSheetBySheetId(c),S=R==null?void 0:R.getCellMatrix(),v=g==null?void 0:g.getCellMatrix();if(R&&g&&S&&v){const I=rt(l,R,!1);if(!s.Rectangle.equals(l,I)&&!n)return null;const p=new s.ObjectMatrix,f=new s.ObjectMatrix;s.Range.foreach(a,(P,E)=>{p.setValue(P,E,v.getValue(P,E)),f.setValue(P,E,null)});const w=new s.ObjectMatrix;s.Range.foreach(l,(P,E)=>{w.setValue(P,E,S.getValue(P,E))});const M=new s.ObjectMatrix;s.Range.foreach(a,(P,E)=>{const k=s.cellToRange(P,E),F=s.Rectangle.getRelativeRange(k,a),j=s.Rectangle.getPositionRange(F,l);M.setValue(j.startRow,j.startColumn,v.getValue(P,E))});const y={from:{value:f.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u},U={from:{value:p.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:d},unitId:u};r.push({id:Fe.id,params:y}),i.push({id:Fe.id,params:U})}return{redos:r,undos:i}}var wt=(o=>(o[o.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",o[o.UNIVER_DOC=1]="UNIVER_DOC",o[o.UNIVER_SHEET=2]="UNIVER_SHEET",o[o.UNIVER_SLIDE=3]="UNIVER_SLIDE",o[o.UNRECOGNIZED=-1]="UNRECOGNIZED",o))(wt||{}),_=(o=>(o[o.View=0]="View",o[o.Edit=1]="Edit",o[o.ManageCollaborator=2]="ManageCollaborator",o[o.Print=3]="Print",o[o.Duplicate=4]="Duplicate",o[o.Comment=5]="Comment",o[o.Copy=6]="Copy",o[o.Share=7]="Share",o[o.Export=8]="Export",o[o.MoveWorksheet=9]="MoveWorksheet",o[o.DeleteWorksheet=10]="DeleteWorksheet",o[o.HideWorksheet=11]="HideWorksheet",o[o.RenameWorksheet=12]="RenameWorksheet",o[o.CreateWorksheet=13]="CreateWorksheet",o[o.SetWorksheetStyle=14]="SetWorksheetStyle",o[o.EditWorksheetCell=15]="EditWorksheetCell",o[o.InsertHyperlink=16]="InsertHyperlink",o[o.Sort=17]="Sort",o[o.Filter=18]="Filter",o[o.PivotTable=19]="PivotTable",o[o.FloatImg=20]="FloatImg",o[o.History=21]="History",o[o.RwHgtClWdt=22]="RwHgtClWdt",o[o.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",o[o.ViewFilter=24]="ViewFilter",o[o.MoveSheet=25]="MoveSheet",o[o.DeleteSheet=26]="DeleteSheet",o[o.HideSheet=27]="HideSheet",o[o.CopySheet=28]="CopySheet",o[o.RenameSheet=29]="RenameSheet",o[o.CreateSheet=30]="CreateSheet",o[o.SelectProtectedCells=31]="SelectProtectedCells",o[o.SelectUnProtectedCells=32]="SelectUnProtectedCells",o[o.SetCellStyle=33]="SetCellStyle",o[o.SetCellValue=34]="SetCellValue",o[o.SetRowStyle=35]="SetRowStyle",o[o.SetColumnStyle=36]="SetColumnStyle",o[o.InsertRow=37]="InsertRow",o[o.InsertColumn=38]="InsertColumn",o[o.DeleteRow=39]="DeleteRow",o[o.DeleteColumn=40]="DeleteColumn",o[o.EditExtraObject=41]="EditExtraObject",o[o.UNRECOGNIZED=-1]="UNRECOGNIZED",o))(_||{}),O=(o=>(o[o.Unkonwn=0]="Unkonwn",o[o.Workbook=1]="Workbook",o[o.Worksheet=2]="Worksheet",o[o.SelectRange=3]="SelectRange",o[o.Document=4]="Document",o[o.Slide=5]="Slide",o[o.UNRECOGNIZED=-1]="UNRECOGNIZED",o))(O||{});class Kn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Copy);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Copy}_${e}_${t}`}}class ss{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectProtectedCells}_${e}_${t}`}}class is{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectUnProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectUnProtectedCells}_${e}_${t}`}}class Zn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellStyle}_${e}_${t}`}}class Xn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellValue);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellValue}_${e}_${t}`}}class Jn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.View);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.View}_${e}_${t}`}}class Qn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetRowStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetRowStyle}_${e}_${t}`}}class eo{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetColumnStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetColumnStyle}_${e}_${t}`}}class to{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertRow}_${e}_${t}`}}class no{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertColumn}_${e}_${t}`}}class oo{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertHyperlink);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertHyperlink}_${e}_${t}`}}class ro{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteRow}_${e}_${t}`}}class so{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteColumn}_${e}_${t}`}}class io{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Sort);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Sort}_${e}_${t}`}}class ao{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Filter);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Filter}_${e}_${t}`}}class co{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.PivotTable);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.PivotTable}_${e}_${t}`}}class uo{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.EditExtraObject);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.EditExtraObject}_${e}_${t}`}}class as{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.ManageCollaborator);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.ManageCollaborator}_${e}_${t}`}}class Kt{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Edit);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Edit}_${e}_${t}`}}class lo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Comment}_${e}`}}class mo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Edit}_${e}`}}class cs{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Duplicate}_${e}`}}class ho{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Print}_${e}`}}class go{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Export}_${e}`}}class us{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.MoveSheet}_${e}`}}class ls{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.DeleteSheet}_${e}`}}class ds{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.HideSheet}_${e}`}}class ms{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.RenameSheet}_${e}`}}class hs{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CreateSheet}_${e}`}}class gs{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.History);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.History}_${e}`}}class Ro{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.View}_${e}`}}class Rs{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Share}_${e}`}}class So{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Copy}_${e}`}}class Co{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.ManageCollaborator}_${e}`}}class vo{constructor(e,t,n){C(this,"type",O.SelectRange);C(this,"subType",_.Edit);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${O.SelectRange}.${_.Edit}.${n}`}}class fo{constructor(e,t,n){C(this,"type",O.SelectRange);C(this,"subType",_.View);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${O.SelectRange}.${_.View}.${n}`}}const st={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=o.get(s.IPermissionService),u=B(r,{subUnitId:e.subUnitId,unitId:e.unitId});if(!u)return!1;const{subUnitId:l,unitId:d}=u,{value:m,range:h}=e,R=h?[h]:i.getSelectionRanges();if(!R||!R.length||!c.getPermissionPoint(new Kt(d,l).id))return!1;const g=new s.ObjectMatrix;let S;if(s.Tools.isArray(m))for(let y=0;y<R.length;y++){const{startRow:U,startColumn:P,endRow:E,endColumn:k}=R[y];for(let F=0;F<=E-U;F++)for(let j=0;j<=k-P;j++)g.setValue(F+U,j+P,m[F][j])}else if(s.isICellData(m))for(let y=0;y<R.length;y++){const{startRow:U,startColumn:P,endRow:E,endColumn:k}=R[y];for(let F=U;F<=E;F++)for(let j=P;j<=k;j++)g.setValue(F,j,m)}else S=m;const v={subUnitId:l,unitId:d,cellValue:S!=null?S:g.getMatrix()},I=Me(o,v),p=t.syncExecuteCommand(Y.id,v),{undos:f,redos:w}=a.onCommandExecute({id:st.id,params:{...v,range:R}}),M=s.sequenceExecute([...w],t);return p&&M.result?(n.pushUndoRedo({unitID:d,undoMutations:[{id:Y.id,params:I},...f],redoMutations:[{id:Y.id,params:v},...w]}),!0):!1}};function Zt(o,e){const t=[],n=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c,cellValue:u={}}=e,l=o.get(s.IUniverInstanceService),d=o.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),h=m==null?void 0:m.getSheetBySheetId(i);if(h){const R=h.getCellMatrix(),g=R.getDataRange();if(a.startColumn<=g.endColumn||a.startRow<=g.endRow){let f,w;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,g.endRow);let U=0;for(let E=a.startRow;E<=y;E++){const k=R.getRow(E),F=k?s.getArrayLength(k)-1:0;U=Math.max(U,F)}f={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:U};const P=a.endColumn-a.startColumn+1;w={startRow:a.startRow,startColumn:f.startColumn+P,endRow:y,endColumn:f.endColumn+P}}else{const y=Math.min(a.endColumn,g.endColumn),U=g.endRow;f={startRow:a.startRow,startColumn:a.startColumn,endRow:U,endColumn:y};const P=a.endRow-a.startRow+1;w={startRow:f.startRow+P,startColumn:a.startColumn,endRow:f.endRow+P,endColumn:y}}const M=kt(o,{unitId:r,subUnitId:i,range:f},{unitId:r,subUnitId:i,range:w},!0);M&&(t.push(...M.redos),n.push(...M.undos))}if(Object.entries(u).length===0)for(let f=a.startRow;f<=a.endRow;f++){u[f]||(u[f]={});for(let w=a.startColumn;w<=a.endColumn;w++)u[f][w]=null}const S={subUnitId:i,unitId:r,cellValue:u},v=Me(o,S),{undos:I,redos:p}=d.onCommandExecute({id:st.id,params:{...S,range:a}});t.push({id:Y.id,params:S},...p),n.push({id:Y.id,params:v},...I)}return{redo:t,undo:n}}function Xt(o,e){const t=[],n=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c}=e,u=o.get(s.IUniverInstanceService),l=o.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(i);if(m){const h=m.getCellMatrix(),R=h.getDataRange(),g={subUnitId:i,unitId:r,cellValue:vs([a])},S=Me(o,g),v=l.onCommandExecute({id:st.id,params:g});if(t.push({id:Y.id,params:g},...v.redos),n.push(...v.undos,{id:Y.id,params:S}),a.startColumn<=R.endColumn||a.startRow<=R.endRow){let I=null,p=null;if(c===s.Dimension.COLUMNS&&a.endColumn<R.endColumn){const f=Math.min(a.endRow,R.endRow);let w=0;for(let y=a.startRow;y<=f;y++){const U=h.getRow(y),P=U?s.getArrayLength(U)-1:0;w=Math.max(w,P)}I={startRow:a.startRow,startColumn:a.endColumn+1,endRow:f,endColumn:w};const M=a.endColumn-a.startColumn+1;p={startRow:a.startRow,startColumn:I.startColumn-M,endRow:f,endColumn:I.endColumn-M}}if(c===s.Dimension.ROWS&&a.endRow<R.endRow){const f=Math.min(a.endColumn,R.endColumn),w=R.endRow;I={startRow:a.endRow+1,startColumn:a.startColumn,endRow:w,endColumn:f};const M=a.endRow-a.startRow+1;p={startRow:I.startRow-M,startColumn:a.startColumn,endRow:I.endRow-M,endColumn:f}}if(I&&p){const f=kt(o,{unitId:r,subUnitId:i,range:I},{unitId:r,subUnitId:i,range:p},!0);f&&(t.push(...f.redos),n.push(...f.undos))}}}return{redo:t,undo:n}}function Ss(o,e,t,n,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:l}=e;if(r===s.Dimension.ROWS){const d=c-a+1;for(let m=t;m>=a;m--)for(let h=u;h<=l;h++){const R=o.getValue(m,h);R==null?o.realDeleteValue(m+d,h):o.setValue(m+d,h,R)}for(let m=c;m>=a;m--)for(let h=u;h<=l;h++)i&&i[m]&&i[m][h]?o.setValue(m,h,i[m][h]):o.realDeleteValue(m,h)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=a;m<=c;m++)for(let h=n;h>=u;h--){const R=o.getValue(m,h);R==null?o.realDeleteValue(m,h+d):o.setValue(m,h+d,R)}for(let m=a;m<=c;m++)for(let h=l;h>=u;h--)i&&i[m]&&i[m][h]?o.setValue(m,h,i[m][h]):o.realDeleteValue(m,h)}}function Cs(o,e,t,n,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=e,l=a-i+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=t;m++)for(let h=c;h<=u;h++){const R=o.getValue(m+l,h);R==null?o.realDeleteValue(m,h):o.setValue(m,h,R)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let h=c;h<=n;h++){const R=o.getValue(m,h+d);R==null?o.realDeleteValue(m,h):o.setValue(m,h,R)}}function vs(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.getData()}const Io="sheet.command.delete-range-move-left",Ot={type:s.CommandType.COMMAND,id:Io,handler:async(o,e)=>{var w,M,y;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=B(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let h=e==null?void 0:e.range;if(h||(h=(w=i.getLast())==null?void 0:w.range),!h)return!1;const R={range:h,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},g=a.onCommandExecute({id:Ot.id,params:{range:h}}),{redo:S,undo:v}=Xt(o,R),I=[...(M=g.preRedos)!=null?M:[],...S],p=[...g.undos,...v];return I.push(...g.redos),I.push(we(h,l,u)),p.push(...(y=g.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(n.pushUndoRedo({unitID:m,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},po="sheet.command.delete-range-move-up",Dt={type:s.CommandType.COMMAND,id:po,handler:async(o,e)=>{var w,M,y;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=B(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let h=e==null?void 0:e.range;if(h||(h=(w=i.getLast())==null?void 0:w.range),!h)return!1;const R={range:h,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},g=a.onCommandExecute({id:Dt.id,params:{range:h}}),{redo:S,undo:v}=Xt(o,R),I=[...(M=g.preRedos)!=null?M:[],...S],p=[...g.undos,...v];return I.push(...g.redos),I.push(we(h,d,m)),p.push(...(y=g.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(n.pushUndoRedo({unitID:u,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},Jt=(o,e)=>{if(o.get(s.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-row",type:s.CommandType.MUTATION,handler:(o,e)=>{var g;const{unitId:t,subUnitId:n,range:r,rowInfo:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(n);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,h=r.endRow-r.startRow+1;for(let S=m;S<m+h;S++)i?s.insertMatrixArray(S,(g=i[S-r.startRow])!=null?g:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,h),!0}},Qt=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},_e={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(o,e)=>{var g;const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getColumnManager(),{range:a,colInfo:c}=e,l=i.getColumnData(),d=a.startColumn,m=a.endColumn-a.startColumn+1,h=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const v={w:h,hd:0};c?s.insertMatrixArray(S,(g=c[S-a.startColumn])!=null?g:v,l):s.insertMatrixArray(S,v,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},fs=(o,e)=>{const r=e.getRowManager().getRowData(),i={},a=o.range,c=s.sliceMatrixArray(a.startRow,a.endRow,r),u=s.concatMatrixArray(i,c);return{unitId:o.unitId,subUnitId:o.subUnitId,range:o.range,rowInfo:u}},be={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getRowManager().getRowData();for(let d=i.startRow;d<=i.endRow;d++)r.getRowFiltered(d);const u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.getCellMatrix().removeRows(i.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Is=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},l=e.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:m}},fe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getColumnManager().getColumnData(),u=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(i.startColumn,u),!0}},ps="sheet.command.insert-range-move-down",At={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(o,e)=>{var j,b,oe;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=o.get(s.ErrorService),u=o.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=B(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:h,workbook:R}=l;let g=e==null?void 0:e.range;if(g||(g=(j=i.getLast())==null?void 0:j.range),!g)return!1;const S=[],v=[],I=h.getCellMatrix(),p=I.getDataRange(),w=I.getSlice(p.startRow,p.endRow,g.startColumn,g.endColumn).getDataRange().endRow,M=Math.max(w+(g.endRow-g.startRow+1)-p.endRow,0);if(M>0){const J=g.startRow-1,Q=h.getRowHeight(J),Z={unitId:d,subUnitId:m,range:{startRow:p.endRow+1,endRow:p.endRow+M,startColumn:p.startColumn,endColumn:p.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};S.push({id:ye.id,params:Z});const ne=Jt(o,Z);v.push({id:be.id,params:ne})}const y={};s.Range.foreach(g,(J,Q)=>{const Z=h.getCell(J,Q);Z&&(y[J]||(y[J]={}),y[J][Q]={s:Z.s})});const U={range:g,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:P,undo:E}=Zt(o,U);S.push(...P),v.push(...E);const k=a.onCommandExecute({id:At.id,params:{range:g}});return S.push(...k.redos),S.push(we(g,R,h)),v.push(...(b=k.preUndos)!=null?b:[]),S.unshift(...(oe=k.preRedos)!=null?oe:[]),v.unshift(...k.undos),s.sequenceExecute(S,t)?(n.pushUndoRedo({unitID:d,undoMutations:v.reverse(),redoMutations:S}),!0):!1}},Mo="sheet.command.insert-range-move-right",Wt={type:s.CommandType.COMMAND,id:Mo,handler:async(o,e)=>{var j,b,oe;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=o.get(s.ErrorService),u=o.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=B(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:h,subUnitId:R}=l;let g=e==null?void 0:e.range;if(g||(g=(j=i.getLast())==null?void 0:j.range),!g)return!1;const S=[],v=[],I=m.getCellMatrix(),p=I.getDataRange(),w=I.getSlice(g.startRow,g.endRow,p.startColumn,p.endColumn).getDataRange().endColumn,M=Math.max(w+(g.endColumn-g.startColumn+1)-p.endColumn,0);if(M>0){const J=g.startColumn-1,Q=m.getColumnWidth(J),Z={unitId:h,subUnitId:R,range:{startRow:p.startRow+1,endRow:p.endRow,startColumn:p.endColumn+1,endColumn:p.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};S.push({id:_e.id,params:Z});const ne=Qt(o,Z);v.push({id:fe.id,params:ne})}const y={};s.Range.foreach(g,(J,Q)=>{const Z=m.getCell(J,Q);!Z||!Z.s||(y[J]||(y[J]={}),y[J][Q]={s:Z.s})});const U={range:g,subUnitId:R,unitId:h,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:P,undo:E}=Zt(o,U);S.push(...P),v.push(...E);const k=a.onCommandExecute({id:Wt.id,params:{range:g}});return S.push(...k.redos),S.push(we(g,d,m)),v.push(...(b=k.preUndos)!=null?b:[]),S.unshift(...(oe=k.preRedos)!=null?oe:[]),v.unshift(...k.undos),s.sequenceExecute(S,t).result?(n.pushUndoRedo({unitID:h,undoMutations:v.reverse(),redoMutations:S}),!0):!1}},wo="sheet.command.insert-row",Ve={type:s.CommandType.COMMAND,id:wo,handler:async(o,e)=>{var U,P,E,k;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),a=r.getUniverSheetInstance(e.unitId),c=a.getSheetBySheetId(e.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m,cellValue:h}=e,{startRow:R,endRow:g}=u,S=l===s.Direction.UP?R:R-1,v=c.getRowHeight(S),I={unitId:d,subUnitId:m,range:u,rowInfo:new Array(g-R+1).fill(void 0).map(()=>({h:v,hd:s.BooleanNumber.FALSE}))},p=Jt(o,I),f=[{id:ye.id,params:I}],w=[{id:be.id,params:p}];h&&f.push({id:Y.id,params:{unitId:d,subUnitId:m,cellValue:h}});const M=i.onCommandExecute({id:Ve.id,params:e});return f.unshift(...(U=M.preRedos)!=null?U:[]),f.push(...(P=M.redos)!=null?P:[]),f.push(we(u,a,c)),w.unshift(...(E=M.preUndos)!=null?E:[]),w.push(...(k=M.undos)!=null?k:[]),s.sequenceExecute(f,t).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:w,redoMutations:f}),!0):!1}},yo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var h;const t=(h=o.get(exports.SelectionManagerService).getSelections())==null?void 0:h.map(R=>R.range);let n;if((t==null?void 0:t.length)===1)n=t[0];else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endRow-n.startRow+1,d={};s.Range.foreach(n,(R,g)=>{const S=a.getCell(R,g);!S||!S.s||(d[R]||(d[R]={}),d[R][g]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:n.startRow,endRow:n.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:d};return o.get(s.ICommandService).executeCommand(Ve.id,m)}},_o={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async o=>{var m;const t=(m=o.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(h=>h.range);let n;if((t==null?void 0:t.length)===1)n=t[0];else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endRow-n.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:n.endRow+1,endRow:n.endRow+l,startColumn:0,endColumn:a.getColumnCount()-1}};return o.get(s.ICommandService).executeCommand(Ve.id,d)}},bo="sheet.command.insert-col",Le={type:s.CommandType.COMMAND,id:bo,handler:async(o,e)=>{var U,P,E,k;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),{range:a,direction:c,subUnitId:u,unitId:l,cellValue:d}=e,{startColumn:m,endColumn:h}=e.range,R=r.getUniverSheetInstance(e.unitId),g=R.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?m:m-1,v=g.getColumnWidth(S),I={unitId:l,subUnitId:u,range:a,colInfo:new Array(h-m+1).fill(void 0).map(()=>({w:v,hd:s.BooleanNumber.FALSE}))},p=Qt(o,I),f=[{id:_e.id,params:I}],w=[{id:fe.id,params:p}];d&&f.push({id:Y.id,params:{unitId:l,subUnitId:u,cellValue:d}});const M=i.onCommandExecute({id:Le.id,params:e});return f.unshift(...(U=M.preRedos)!=null?U:[]),f.push(...(P=M.redos)!=null?P:[]),f.push(we(a,R,g)),w.unshift(...(E=M.preUndos)!=null?E:[]),w.push(...(k=M.undos)!=null?k:[]),s.sequenceExecute(f,t).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:w.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Po={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async o=>{const t=o.get(exports.SelectionManagerService).getSelections();let n;if((t==null?void 0:t.length)===1)n=t[0].range;else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endColumn-n.startColumn+1,d={};s.Range.foreach(n,(h,R)=>{const g=a.getCell(h,R);!g||!g.s||(d[h]||(d[h]={}),d[h][R]={s:g.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:n.startColumn,endColumn:n.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent()},cellValue:d};return o.get(s.ICommandService).executeCommand(Le.id,m)}},Uo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async o=>{const t=o.get(exports.SelectionManagerService).getSelections();let n;if((t==null?void 0:t.length)===1)n=t[0].range;else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endColumn-n.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:n.endColumn+1,endColumn:n.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return o.get(s.ICommandService).executeCommand(Le.id,d)}},To={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(o,e)=>{var g;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.LocaleService),a=Gn(r,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:c,workbook:u}=a;let l=u.getSheets().length,d=s.mergeWorksheetSnapshotWithDefault({});e?(l=(g=e.index)!=null?g:l,e.sheet?d=e.sheet:(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`))):(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const m={index:l,sheet:d,unitId:c},h=qt(o,m);return t.syncExecuteCommand(De.id,m)?(n.pushUndoRedo({unitID:c,undoMutations:[{id:Ze.id,params:h}],redoMutations:[{id:De.id,params:m}]}),!0):!1}};function Eo(o,e){const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:t,subUnitId:n,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:t,subUnitId:n,targetRange:s.Rectangle.clone(r),sourceRange:{...i,endRow:i.endRow-c,startRow:i.startRow-c}}}const Ne={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(n);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=i.startRow,h=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveRows(l,d,m),!0}};function No(o,e){const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:t,subUnitId:n,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:t,subUnitId:n,targetRange:s.Rectangle.clone(r),sourceRange:{...i,startColumn:i.startColumn-c,endColumn:i.endColumn-c}}}const ke={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(n);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=i.startColumn,h=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveColumns(l,d,m),!0}};function Ms(o,e){return e.getMergeData().some(t=>t.startRow<o&&o<=t.endRow)}function ws(o,e){return e.getMergeData().some(t=>t.startColumn<o&&o<=t.endColumn)}const ko="sheet.command.move-rows",xt={id:ko,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,Z;const n=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:i}}=e,a=n==null?void 0:n.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.ROW&&ne.range.startRow<=r&&r<=ne.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),h=d.getSheetId(),R=o.get(s.ErrorService),g=o.get(s.LocaleService),S=a[0].range,v=a[0].primary,I=rt(S,d,!1);if(!s.Rectangle.equals(S,I))return R.emit(g.t("sheets.info.partOfCell")),!1;if(Ms(i,d))return R.emit(g.t("sheets.info.acrossMergedCell")),!1;const p={...S,startRow:i,endRow:i+S.endRow-S.startRow},f={unitId:m,subUnitId:h,sourceRange:S,targetRange:p},w=Eo(o,f),y=i-r<0,U=S.endRow-S.startRow+1,P=y?p:{...p,startRow:p.startRow-U,endRow:p.endRow-U},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:P,primary:ae(P,d),style:null}]},k={unitId:m,subUnitId:h,pluginName:X,selections:[{range:S,primary:v,style:null}]},F=o.get(s.ICommandService),j=c.onCommandExecute({id:xt.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:Ne.id,params:f},{id:K.id,params:E},...j.redos],oe=[...(Z=j.preUndos)!=null?Z:[],{id:Ne.id,params:w},{id:K.id,params:k},...j.undos];return s.sequenceExecute(b,F).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},Oo="sheet.command.move-cols",Vt={id:Oo,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,Z;const n=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:i}}=e,a=n==null?void 0:n.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.COLUMN&&ne.range.startColumn<=r&&r<=ne.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),h=d.getSheetId(),R=o.get(s.ErrorService),g=o.get(s.LocaleService),S=a[0].range,v=a[0].primary,I=rt(S,d,!1);if(!s.Rectangle.equals(S,I))return R.emit(g.t("sheets.info.partOfCell")),!1;if(ws(i,d))return R.emit(g.t("sheets.info.acrossMergedCell")),!1;const p={...S,startColumn:i,endColumn:i+S.endColumn-S.startColumn},f={unitId:m,subUnitId:h,sourceRange:S,targetRange:p},w=No(o,f),M=S.endColumn-S.startColumn+1,P=i-r<0?p:{...p,startColumn:p.startColumn-M,endColumn:p.endColumn-M},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:P,primary:ae(P,d),style:null}]},k={unitId:m,subUnitId:h,pluginName:X,selections:[{range:S,primary:v,style:null}]},F=o.get(s.ICommandService),j=c.onCommandExecute({id:Vt.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:ke.id,params:f},{id:K.id,params:E},...j.redos],oe=[...(Z=j.preUndos)!=null?Z:[],{id:ke.id,params:w},{id:K.id,params:k},...j.undos];return s.sequenceExecute(b,F).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},Do="sheet.command.remove-row",it={type:s.CommandType.COMMAND,id:Do,handler:async(o,e)=>{var p,f,w,M;const t=o.get(exports.SelectionManagerService),n=o.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=o.get(s.IUniverInstanceService),a=B(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=a;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)u.getRowFiltered(y)&&m.push(y);const h=[];if(m.length){const y=[r.startRow,...m.map(P=>P+1)],U=[...m.map(P=>P-1),r.endRow];for(let P=y.length-1;P>=0;P--)y[P]<=U[P]&&h.push({startRow:y[P],endRow:U[P],startColumn:r.startColumn,endColumn:r.endColumn})}else h.push(r);const R=[],g=[];h.forEach(y=>{const U={unitId:d,subUnitId:l,range:y},P=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),E={unitId:d,subUnitId:l,cellValue:P.getMatrix()},k=fs(U,u);R.push({id:be.id,params:U}),g.unshift({id:ye.id,params:k},{id:Y.id,params:E})});const S=n.onCommandExecute({id:it.id,params:{range:r}}),v=o.get(s.ICommandService);return s.sequenceExecute([...(f=S.preRedos)!=null?f:[],...R,...S.redos,we(r,c,u)],v).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],...g,...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],...R,...S.redos]}),!0):!1}},Ao="sheet.command.remove-col",at={type:s.CommandType.COMMAND,id:Ao,handler:async(o,e)=>{var p,f,w,M;const t=o.get(exports.SelectionManagerService),n=o.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=o.get(s.IUniverInstanceService),a=B(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=a;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:d,subUnitId:l,range:r},h=Is(o,m),R=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),g={unitId:d,subUnitId:l,cellValue:R.getMatrix()},S=n.onCommandExecute({id:at.id,params:{range:r}}),v=o.get(s.ICommandService);return s.sequenceExecute([...(f=S.preRedos)!=null?f:[],{id:fe.id,params:m},...S.redos,we(r,c,u)],v).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],{id:_e.id,params:h},{id:Y.id,params:g},...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],{id:fe.id,params:m},...S.redos]}),!0):!1}},en={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(o,e)=>{var p,f;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),a=B(r,e);if(!a)return!1;const{unitId:c,subUnitId:u,workbook:l,worksheet:d}=a;if(l.getSheets().length<=1)return!1;const m=l.getSheetIndex(d);l.getConfig().sheetOrder[m+1];const h={subUnitId:u,unitId:c,subUnitName:d.getName()},R=zn(o,h),g=i.onCommandExecute({id:en.id,params:{unitId:c,subUnitId:u}}),S=[...(p=g.preRedos)!=null?p:[],{id:Ze.id,params:h},...g.redos],v=[...(f=g.preUndos)!=null?f:[],{id:De.id,params:R},...g.undos];return s.sequenceExecute(S,t)?(n.pushUndoRedo({unitID:c,undoMutations:v,redoMutations:S}),!0):!1}},Ce=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},H={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)a.push(c[u]);return!0}},ue=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,c=e.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=a.length-1;d>=0;d--){const m=a[d],h=c[l];s.Rectangle.intersects(m,h)&&u.push(a[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},G={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let l=a.length-1;l>=0;l--){const d=a[l],m=c[u];s.Rectangle.intersects(d,m)&&a.splice(l,1)}return!0}},Wo={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async o=>{const e=o.get(exports.SelectionManagerService),t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=B(r);if(!a)return!1;const{subUnitId:c,unitId:u,worksheet:l}=a,d={unitId:u,subUnitId:c,ranges:i};let m=!1;const h=l.getConfig().mergeData;if(i.forEach(M=>{h.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const R=ue(o,d),g=e.getSelections();if(!(g!=null&&g.length))return!1;const S=s.Tools.deepClone(g),v=s.Tools.deepClone(g),I=v[v.length-1],{startRow:p,startColumn:f}=I.range;return I.primary={startRow:p,startColumn:f,endRow:p,endColumn:f,actualRow:p,actualColumn:f,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:G.id,params:R},{id:K.id,params:{selections:v}}],t)?(n.pushUndoRedo({unitID:u,undoMutations:[{id:H.id,params:R},{id:K.id,params:{selections:S}}],redoMutations:[{id:G.id,params:R},{id:K.id,params:{selections:v}}]}),!0):!1}};class $e{constructor(){C(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new he.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 lt(o,e){const{startRow:t,startColumn:n,endRow:r,endColumn:i}=o;for(let a=t;a<=r;a++)for(let c=n;c<=i;c++)e(a,c)}const xo={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(o,e)=>{const{unitId:t,subUnitId:n,value:r}=e,{type:i,color:a,style:c}=r,u=o.get(s.ICommandService),l=o.get($e);return l.setType(i),l.setColor(a),l.setStyle(c),u.executeCommand(Xe.id,{unitId:t,subUnitId:n})}},Vo={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(o,e)=>{if(!e.value)return!1;const t=o.get(s.ICommandService);return o.get($e).setType(e.value),t.executeCommand(Xe.id)}},Lo={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService);return o.get($e).setStyle(e.value),t.executeCommand(Xe.id)}},$o={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService);return o.get($e).setColor(e.value),t.executeCommand(Xe.id)}},Xe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get($e),c=B(r,e);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=i.getSelectionRanges(),h=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:R,color:g,type:S,activeBorderType:v}=a.getBorderInfo();if(!v)return!1;const I=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,p=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,f=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,w=S===s.BorderType.RIGHT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,M=S===s.BorderType.VERTICAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,y=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,U=S.indexOf("tlbr")>-1,P=S.indexOf("tlbc")>-1,E=S.indexOf("tlmr")>-1,k=S.indexOf("bltr")>-1,F=S.indexOf("mltr")>-1,j=S.indexOf("bctr")>-1,b=m[0],oe={startRow:b.startRow-1,startColumn:b.startColumn,endRow:b.startRow-1,endColumn:b.endColumn},J={startRow:b.startRow,startColumn:b.startColumn-1,endRow:b.endRow,endColumn:b.startColumn-1},Q={startRow:b.endRow+1,startColumn:b.startColumn,endRow:b.endRow+1,endColumn:b.endColumn},Z={startRow:b.startRow,startColumn:b.endColumn+1,endRow:b.endRow,endColumn:b.endColumn+1},ne={startRow:b.startRow,startColumn:b.startColumn,endRow:b.startRow,endColumn:b.endColumn},bn={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.startColumn},Pn={startRow:b.endRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn},Un={startRow:b.startRow,startColumn:b.endColumn,endRow:b.endRow,endColumn:b.endColumn},V=new s.ObjectMatrix,q={s:R,cl:{rgb:g}},ut=(D,T)=>{let $=null;return h.forEach(re=>{s.Rectangle.intersects(re,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&($=re)}),$};function z(D,T,$){D.startRow<0||D.startColumn<0||lt(D,(re,de)=>{var N,Je;const se=ut(re,de);let ce=T;if(se&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if($){const me=s.Tools.deepClone((N=V.getValue(se.startRow,se.startColumn))==null?void 0:N.s);ce=me!=null&&me.bd?Object.assign(me.bd,T):T}V.setValue(se.startRow,se.startColumn,{s:{bd:ce}})}else{if($){const me=s.Tools.deepClone((Je=V.getValue(re,de))==null?void 0:Je.s);ce=me!=null&&me.bd?Object.assign(me.bd,T):T}V.setValue(re,de,{s:{bd:ce}})}})}I&&(z(oe,{b:null}),z(ne,{t:s.Tools.deepClone(q)},!0)),f&&(z(Q,{t:null}),z(Pn,{b:s.Tools.deepClone(q)},!0)),p&&(z(J,{r:null}),z(bn,{l:s.Tools.deepClone(q)},!0)),w&&(z(Z,{l:null}),z(Un,{r:s.Tools.deepClone(q)},!0)),U&&z(b,{tl_br:s.Tools.deepClone(q)},!0),P&&z(b,{tl_bc:s.Tools.deepClone(q)},!0),E&&z(b,{tl_mr:s.Tools.deepClone(q)},!0),k&&z(b,{bl_tr:s.Tools.deepClone(q)},!0),F&&z(b,{ml_tr:s.Tools.deepClone(q)},!0),j&&z(b,{bc_tr:s.Tools.deepClone(q)},!0),M&&lt(b,(D,T)=>{var re,de,se,ce;const $=ut(D,T);if($){if($.endColumn!==b.endColumn){const N=(re=V.getValue($.startRow,$.startColumn))==null?void 0:re.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(q)}):{r:s.Tools.deepClone(q)}}})}if($.startColumn!==b.startColumn){const N=(de=V.getValue($.startRow,$.startColumn))==null?void 0:de.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(q)}):{l:s.Tools.deepClone(q)}}})}}else{if(T!==b.endColumn){const N=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(q)}):{r:s.Tools.deepClone(q)}}})}if(T!==b.startColumn){const N=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(q)}):{l:s.Tools.deepClone(q)}}})}}}),y&&lt(b,(D,T)=>{var re,de,se,ce;const $=ut(D,T);if($){if($.endRow!==b.endRow){const N=(re=V.getValue($.startRow,$.startColumn))==null?void 0:re.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(q)}):{b:s.Tools.deepClone(q)}}})}if($.startRow!==b.startRow){const N=(de=V.getValue($.startRow,$.startColumn))==null?void 0:de.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(q)}):{t:s.Tools.deepClone(q)}}})}}else{if(D!==b.endRow){const N=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(q)}):{b:s.Tools.deepClone(q)}}})}if(D!==b.startRow){const N=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(q)}):{t:s.Tools.deepClone(q)}}})}}}),!I&&!f&&!p&&!w&&!M&&!y&&!U&&!P&&!E&&!k&&!F&&!j&&(z(oe,{b:null}),z(ne,{t:null},!0),z(Q,{t:null}),z(Pn,{b:null},!0),z(J,{r:null}),z(bn,{l:null},!0),z(Z,{l:null}),z(Un,{r:null},!0),z(b,{tl_br:null},!0),z(b,{tl_bc:null},!0),z(b,{tl_mr:null},!0),z(b,{bl_tr:null},!0),z(b,{ml_tr:null},!0),z(b,{bc_tr:null},!0),lt(b,(D,T)=>{var re,de,se,ce,N,Je,me,Tn;const $=ut(D,T);if($){if($.endColumn!==b.endColumn){const A=(re=V.getValue($.startRow,$.startColumn))==null?void 0:re.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if($.startColumn!==b.startColumn){const A=(de=V.getValue($.startRow,$.startColumn))==null?void 0:de.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if($.endRow!==b.endRow){const A=(se=V.getValue($.startRow,$.startColumn))==null?void 0:se.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if($.startRow!==b.startRow){const A=(ce=V.getValue($.startRow,$.startColumn))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(T!==b.endColumn){const A=(N=V.getValue(D,T))==null?void 0:N.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(T!==b.startColumn){const A=(Je=V.getValue(D,T))==null?void 0:Je.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(D!==b.endRow){const A=(me=V.getValue(D,T))==null?void 0:me.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(D!==b.startRow){const A=(Tn=V.getValue(D,T))==null?void 0:Tn.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const Ft={unitId:l,subUnitId:d,cellValue:V.getData()},Or=Me(o,Ft);return t.syncExecuteCommand(Y.id,Ft)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:Y.id,params:Or}],redoMutations:[{id:Y.id,params:Ft}]}),!0):!1}},ys=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},He={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const r=n.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},_s=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ge={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const r=n.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(o,e)=>{var S,v;const t=o.get(exports.SheetInterceptorService),{unitId:n,subUnitId:r,ranges:i}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(r),c={unitId:n,subUnitId:r,ranges:i},u=_s(o,c),l={unitId:n,subUnitId:r,pluginName:X,selections:i.map(I=>({range:I,primary:ae(I,a),style:null}))},d={unitId:n,subUnitId:r,pluginName:X,selections:Bo(i).map(I=>({range:I,primary:ae(I,a),style:null}))},m=o.get(s.ICommandService),h=s.sequenceExecute([{id:Ge.id,params:c},{id:K.id,params:l}],m),R=t.onCommandExecute({id:Lt.id,params:e}),g=s.sequenceExecute([...R.redos],m);return h.result&&g.result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:He.id,params:u},{id:K.id,params:d},...(S=R.undos)!=null?S:[]],redoMutations:[...(v=R.preRedos)!=null?v:[],{id:Ge.id,params:c},{id:K.id,params:l},...R.redos]}),!0}},jo={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async o=>{var l;const t=(l=o.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(t!=null&&t.length))return!1;const r=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u=t.map(d=>i.getHiddenCols(d.startColumn,d.endColumn)).flat();return o.get(s.ICommandService).executeCommand(Lt.id,{unitId:a,subUnitId:c,ranges:u})}},tn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var v,I,p;const e=o.get(exports.SelectionManagerService),t=o.get(exports.SheetInterceptorService),n=(v=e.getSelections())==null?void 0:v.map(f=>f.range).filter(f=>f.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l={unitId:c,subUnitId:u,ranges:n},d={unitId:c,subUnitId:u,pluginName:X,selections:Bo(n).map(f=>({range:f,primary:ae(f,a),style:null}))},m={unitId:c,subUnitId:u,pluginName:X,selections:n.map(f=>({range:f,primary:ae(f,a),style:null}))},h=o.get(s.ICommandService),R=s.sequenceExecute([{id:He.id,params:l},{id:K.id,params:d}],h),g=t.onCommandExecute({id:tn.id,params:l}),S=s.sequenceExecute([...g.redos],h);if(R.result&&S.result){const f=o.get(s.IUndoRedoService),w=ys(o,l);return f.pushUndoRedo({unitID:c,undoMutations:[{id:Ge.id,params:w},{id:K.id,params:m},...(I=g.undos)!=null?I:[]],redoMutations:[...(p=g.preRedos)!=null?p:[],{id:He.id,params:l},{id:K.id,params:d},...g.redos]}),!0}return!1}};function Bo(o){return bs(o).map(t=>{const n=t.startColumn===0?t.endColumn+1:t.startColumn-1;return{...t,startColumn:n,endColumn:n}})}function bs(o){const e=[];let t;return o.sort((n,r)=>n.startColumn-r.startColumn).forEach(n=>{if(!t){t=n;return}t.endColumn===n.startColumn-1?t.endColumn=n.endColumn:(e.push(t),t=n)}),e.push(t),e}const nn=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...a}},Te={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:c,ySplit:u,xSplit:l}=e;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:l},!0}},Fo={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=B(r);if(!i)return!1;const{unitId:a,subUnitId:c,worksheet:u}=i,{startColumn:l,startRow:d,xSplit:m,ySplit:h}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||h>=u.getRowCount())return!1;const R={unitId:a,subUnitId:c,...e},g=nn(o,R);return t.syncExecuteCommand(Te.id,R)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:Te.id,params:g}],redoMutations:[{id:Te.id,params:R}]}),!0):!1}},Ps={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async o=>{const e=o.get(s.ICommandService),t=o.get(s.IUndoRedoService),n=o.get(s.IUniverInstanceService),r=B(n);if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={unitId:i,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=nn(o,c);return e.syncExecuteCommand(Te.id,c)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Te.id,params:u}],redoMutations:[{id:Te.id,params:c}]}),!0):!1}},Us=(o,e)=>{if(o.get(s.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-visible",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},Ts=(o,e)=>{if(o.get(s.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-row-hidden",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},$t={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(o,e)=>{var v,I,p;const{unitId:t,subUnitId:n,ranges:r}=e,i=o.get(s.ICommandService),a=o.get(s.IUndoRedoService),c=o.get(exports.SheetInterceptorService),u=o.get(s.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(n),l={unitId:t,subUnitId:n,ranges:r},d=Us(o,l),m={unitId:t,subUnitId:n,pluginName:X,selections:r.map(f=>({range:f,primary:ae(f,u),style:null}))},h={unitId:t,subUnitId:n,pluginName:X,selections:Go(r).map(f=>({range:f,primary:ae(f,u),style:null}))},R=s.sequenceExecute([{id:ze.id,params:l},{id:K.id,params:m}],i),g=c.onCommandExecute({id:$t.id,params:e}),S=s.sequenceExecute([...g.redos],i);return R.result&&S.result&&a.pushUndoRedo({unitID:t,undoMutations:[...(v=g.preUndos)!=null?v:[],{id:Ye.id,params:d},{id:K.id,params:h},...(I=g.undos)!=null?I:[]],redoMutations:[...(p=g.preRedos)!=null?p:[],{id:ze.id,params:l},{id:K.id,params:m},...g.redos]}),!0}},Ho={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async o=>{var l;const e=o.get(exports.SelectionManagerService),t=o.get(s.IUniverInstanceService),n=(l=e.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(n!=null&&n.length))return!1;const r=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u=n.map(d=>i.getHiddenRows(d.startRow,d.endRow)).flat();return o.get(s.ICommandService).executeCommand($t.id,{unitId:a,subUnitId:c,ranges:u})}},on={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async o=>{var p,f,w,M;const e=o.get(exports.SelectionManagerService),t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),a=(p=e.getSelections())==null?void 0:p.map(y=>y.range).filter(y=>y.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const c=B(r);if(!c)return!1;const{unitId:u,subUnitId:l,worksheet:d}=c,m={unitId:u,subUnitId:l,ranges:a},h={unitId:u,subUnitId:l,pluginName:X,selections:Go(a).map(y=>({range:y,primary:ae(y,d),style:null}))},R={unitId:u,subUnitId:l,pluginName:X,selections:a.map(y=>({range:y,primary:ae(y,d),style:null}))},g=Ts(o,m),S=i.onCommandExecute({id:on.id,params:m});S.preRedos&&S.preRedos.length>0&&s.sequenceExecute([...S.preRedos],t);const v=s.sequenceExecute([{id:Ye.id,params:m},{id:K.id,params:h}],t),I=s.sequenceExecute([...S.redos],t);return v.result&&I.result&&n.pushUndoRedo({unitID:u,undoMutations:[...(f=S.preUndos)!=null?f:[],{id:ze.id,params:g},{id:K.id,params:R},...(w=S.undos)!=null?w:[]],redoMutations:[...(M=S.preRedos)!=null?M:[],{id:Ye.id,params:m},{id:K.id,params:h},...S.redos]}),!0}};function Go(o){return Es(o).map(t=>{const n=t.startRow===0?t.endRow+1:t.startRow-1;return{...t,startRow:n,endRow:n}})}function Es(o){const e=[];let t;return o.sort((n,r)=>n.startRow-r.startRow).forEach(n=>{if(!t){t=n;return}n.startRow===t.endRow+1?t.endRow=n.endRow:(e.push(t),t=n)}),e.push(t),e}const te={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(o,e)=>{const t=o.get(s.IUniverInstanceService),n=B(t);if(!n)return!1;const{unitId:r,subUnitId:i,worksheet:a}=n,{range:c,style:u}=e,l=o.get(s.ICommandService),d=o.get(s.IUndoRedoService),m=o.get(exports.SelectionManagerService),h=c?[c]:m.getSelectionRanges();if(!(h!=null&&h.length))return!1;const R=new s.ObjectMatrix,g=rs(a);if(s.Tools.isArray(u.value))for(let M=0;M<h.length;M++)g.forOperableEach(h[M],(y,U,P)=>{R.setValue(y,U,{s:{[u.type]:u.value[y-P.startRow][U-P.startColumn]}})});else for(let M=0;M<h.length;M++){const y={s:{[u.type]:u.value}};g.forOperableEach(h[M],(U,P)=>R.setValue(U,P,y))}const S={subUnitId:i,unitId:r,cellValue:R.getMatrix()},v=Me(o,S),I=l.syncExecuteCommand(Y.id,S),{undos:p,redos:f}=o.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),w=s.sequenceExecute([...f],l);return I&&w.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:Y.id,params:v},...p],redoMutations:[{id:Y.id,params:S},...f]}),!0):!1}},Ns={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=B(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t,{actualRow:r,actualColumn:i}=e.primary,c={style:{type:"bl",value:n.getRange(r,i).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(te.id,c)}},ks={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=B(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t;let r=!0;if(e.primary){const{startRow:a,startColumn:c}=e.primary;r=n.getRange(a,c).getFontStyle()===s.FontItalic.ITALIC}const i={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(te.id,i)}},Os={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=B(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t;let r=!0;e.primary&&(r=!!n.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const i={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(te.id,i)}},Ds={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=B(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t;let r=!0;e.primary&&(r=!!n.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const i={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(te.id,i)}};s.CommandType.COMMAND;const As={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={style:{type:"ff",value:e.value}};return t.executeCommand(te.id,n)}},Ws={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={style:{type:"fs",value:e.value}};return t.executeCommand(te.id,n)}},zo={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(o,e)=>{if(!e||!e.value)return!1;const t=o.get(s.ICommandService),n={style:{type:"cl",value:{rgb:e.value}}};return t.executeCommand(te.id,n)}},Yo={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async o=>{const e=o.get(s.ICommandService),t={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(te.id,t)}},qo={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(o,e)=>{if(!e||!e.value)return!1;const t=o.get(s.ICommandService),n={style:{type:"bg",value:{rgb:e.value}}};return t.executeCommand(te.id,n)}},Ko={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async o=>{const e=o.get(s.ICommandService),t={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(te.id,t)}},Zo={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"vt",value:e.value}};return t.executeCommand(te.id,n)}},Xo={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"ht",value:e.value}};return t.executeCommand(te.id,n)}},Jo={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"tb",value:e.value}};return t.executeCommand(te.id,n)}},Qo={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(o,e)=>{if(!e)return!1;const t=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},n=o.get(s.ICommandService),r={style:{type:"tr",value:t}};return n.executeCommand(te.id,r)}},xs=(o,e)=>{const i=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},tt={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const n=t.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().tabColor=e.color,!0):!1}},er={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=B(o.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={color:e.value,unitId:i,subUnitId:a},u=xs(o,c);return t.syncExecuteCommand(tt.id,c)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:tt.id,params:u}],redoMutations:[{id:tt.id,params:c}]}),!0):!1}},ct={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const n=t.getWorksheets();for(const[,r]of n)if(r.getSheetId()===e.subUnitId)return t.setActiveSheet(r),!0;return!1}},Vs=4,jt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,e,t)=>{const n=o.get(s.ICommandService),r=B(o.get(s.IUniverInstanceService),e);if(!r)return!1;const{unitId:i,subUnitId:a}=r;return new Promise(c=>{setTimeout(()=>{const u=n.syncExecuteCommand(ct.id,{unitId:i,subUnitId:a},t);c(u)},Vs)})}},rn=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const i={},a=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=a.getColumnOrCreate(d);i[d]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},Ie={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(o,e)=>{var u;const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),c=e.ranges;for(let l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const h=a.getColumnOrCreate(m);typeof e.colWidth=="number"?h.w=e.colWidth:h.w=(u=e.colWidth[m-d.startColumn])!=null?u:i}}return!0}},sn={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(o,e)=>{const n=o.get(exports.SelectionManagerService).getSelections();if(o.get(exports.SheetInterceptorService),!(n!=null&&n.length))return!1;const r=o.get(s.ICommandService),i=o.get(s.IUndoRedoService),a=B(o.get(s.IUniverInstanceService));if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:l}=a,{anchorCol:d,deltaX:m}=e,R=c.getColumnWidth(d)+m,g=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,S=n.filter(U=>U.range.rangeType===s.RANGE_TYPE.COLUMN),v=g?s.RANGE_TYPE.ALL:S.some(({range:U})=>{const{startColumn:P,endColumn:E}=U;return P<=d&&d<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(v===s.RANGE_TYPE.ALL){const U=c.getRowCount(),P=new Array(c.getColumnCount()).fill(void 0).map((E,k)=>({startRow:0,endRow:U-1,startColumn:k,endColumn:k}));I={subUnitId:l,unitId:u,colWidth:R,ranges:P}}else v===s.RANGE_TYPE.COLUMN?I={subUnitId:l,unitId:u,ranges:S.map(U=>s.Rectangle.clone(U.range)),colWidth:R}:I={subUnitId:l,unitId:u,colWidth:R,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const{undos:p,redos:f}=o.get(exports.SheetInterceptorService).onCommandExecute({id:sn.id,params:I}),w=rn(o,I),M=r.syncExecuteCommand(Ie.id,I),y=s.sequenceExecute([...f],r);return M&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:Ie.id,params:w},...p],redoMutations:[{id:Ie.id,params:I},...f]}),!0}},yt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,e)=>{var I,p;const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const c=B(o.get(s.IUniverInstanceService));if(!c)return!1;const{subUnitId:u,unitId:l}=c,d={subUnitId:u,unitId:l,ranges:a,colWidth:e.value},m=rn(o,d),h=n.syncExecuteCommand(Ie.id,d),{undos:R,redos:g}=o.get(exports.SheetInterceptorService).onCommandExecute({id:yt.id,params:d}),S=i.onCommandExecute({id:yt.id,params:d}),v=s.sequenceExecute([...g,...S.redos],n);return h&&v.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(I=S.preUndos)!=null?I:[],{id:Ie.id,params:m},...R],redoMutations:[...(p=S.preRedos)!=null?p:[],{id:Ie.id,params:d},...g]}),!0):!1}},tr=(o,e)=>{const t=Et(o.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:n}=t;return{hidden:n.isSheetHidden(),unitId:e.unitId,subUnitId:n.getSheetId()}},Ee={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const n=t.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().hidden=e.hidden,!0):!1}},nr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.ErrorService),i=o.get(s.LocaleService),a=B(o.get(s.IUniverInstanceService),e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:l,subUnitId:d}=a;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const h={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},R=tr(o,h);return c.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):t.syncExecuteCommand(Ee.id,h)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:Ee.id,params:R}],redoMutations:[{id:Ee.id,params:h}]}),!0):!1}},Ls=(o,e)=>{const t=Et(o.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:n}=t;return{unitId:e.unitId,name:n.getName(),subUnitId:n.getSheetId()}},_t={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const n=t.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().name=e.name,!0):!1}},an={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,e)=>{var g,S;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(exports.SheetInterceptorService),i=B(o.get(s.IUniverInstanceService),e);if(!i)return!1;const{unitId:a,subUnitId:c}=i,u={subUnitId:c,name:e.name,unitId:a},l=Ls(o,u),d=r.onCommandExecute({id:an.id,params:e}),m=[...(g=d.preRedos)!=null?g:[],{id:_t.id,params:u},...d.redos],h=[...(S=d.preUndos)!=null?S:[],{id:_t.id,params:l},...d.undos];return await s.sequenceExecute(m,t).result?(n.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},$s=(o,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),nt={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const n=t.getConfig();return n.sheetOrder.splice(e.fromOrder,1),n.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},or={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=B(o.get(s.IUniverInstanceService),e);if(!r)return!1;const{workbook:i,unitId:a,subUnitId:c}=r,l={fromOrder:i.getConfig().sheetOrder.indexOf(c),toOrder:e.order,unitId:a,subUnitId:c},d=$s(o,l);return t.syncExecuteCommand(nt.id,l)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:nt.id,params:d}],redoMutations:[{id:nt.id,params:l}]}),!0):!1}},js=2e3,rr=(o,e)=>{const{unitId:t,subUnitId:n,ranges:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(n);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let h=d;h<m+1;h++){const R=l.getRowOrCreate(h);u[h]=R.h}return{unitId:t,subUnitId:n,ranges:r,rowHeight:u}},cn=(o,e)=>{const{unitId:t,subUnitId:n,ranges:r}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(n),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let h=d;h<=m;h++){const R=l.getRowOrCreate(h);u[h]=R.ia}return{unitId:t,subUnitId:n,ranges:r,autoHeightInfo:u}},Bs=(o,e)=>{const{unitId:t,subUnitId:n,rowsAutoHeightInfo:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(n);if(!c)return{unitId:t,subUnitId:n,rowsAutoHeightInfo:[]};const u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:h}=l.getRowOrCreate(m);u.push({row:m,autoHeight:h})}return{unitId:t,subUnitId:n,rowsAutoHeightInfo:u}},pe={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(o,e)=>{var m;const{unitId:t,subUnitId:n,ranges:r,rowHeight:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(n);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:h,endRow:R}of r)for(let g=h;g<=R;g++){const S=d.getRowOrCreate(g);typeof i=="number"?S.h=i:S.h=(m=i[g])!=null?m:l,S.h=Math.min(js,S.h)}return!0}},ge={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(o,e)=>{var m;const{unitId:t,subUnitId:n,ranges:r,autoHeightInfo:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(n);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:h,endRow:R}of r)for(let g=h;g<=R;g++){const S=d.getRowOrCreate(g);typeof i=="number"?S.ia=i:S.ia=(m=i[g-h])!=null?m:l}return!0}},un={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rowsAutoHeightInfo:r}=e,a=o.get(s.IUniverInstanceService).getUnit(t),c=a==null?void 0:a.getSheetBySheetId(n);if(!c||!a)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},ln={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(o,e)=>{var E,k;const n=o.get(exports.SelectionManagerService).getSelections(),r=o.get(exports.SheetInterceptorService);if(!(n!=null&&n.length))return!1;const i=B(o.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:a,subUnitId:c,unitId:u}=i,{anchorRow:l,deltaY:d}=e,h=a.getRowHeight(l)+d,R=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,g=n.filter(F=>F.range.rangeType===s.RANGE_TYPE.ROW),S=R?s.RANGE_TYPE.ALL:g.some(({range:F})=>{const{startRow:j,endRow:b}=F;return j<=l&&l<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let v;if(S===s.RANGE_TYPE.ALL){const F=a.getRowCount(),j=new Array(a.getColumnCount()).fill(void 0).map((b,oe)=>({startRow:oe,endRow:oe,startColumn:0,endColumn:F-1}));v={subUnitId:c,unitId:u,rowHeight:h,ranges:j}}else S===s.RANGE_TYPE.ROW?v={subUnitId:c,unitId:u,ranges:g.map(F=>s.Rectangle.clone(F.range)),rowHeight:h}:v={subUnitId:c,unitId:u,rowHeight:h,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const I=rr(o,v),p={unitId:u,subUnitId:c,ranges:v.ranges,autoHeightInfo:s.BooleanNumber.FALSE},f=cn(o,p),w=o.get(s.ICommandService),M=o.get(s.IUndoRedoService),y=r.onCommandExecute({id:ln.id,params:v}),U=s.sequenceExecute([{id:pe.id,params:v},{id:ge.id,params:p}],w),P=s.sequenceExecute([...y.redos],w);return U.result&&P.result?(M.pushUndoRedo({unitID:u,undoMutations:[...(E=y.preUndos)!=null?E:[],{id:pe.id,params:I},{id:ge.id,params:f},...y.undos],redoMutations:[...(k=y.preRedos)!=null?k:[],{id:pe.id,params:v},{id:ge.id,params:p},...y.redos]}),!0):!1}},dn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,e)=>{var p,f;const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),i=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),c=t.getSelectionRanges();if(!(c!=null&&c.length))return!1;const u=B(i);if(!u)return!1;const{unitId:l,subUnitId:d}=u,m={subUnitId:d,unitId:l,ranges:c,rowHeight:e.value},h=rr(o,m),R={unitId:l,subUnitId:d,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},g=cn(o,R),S=s.sequenceExecute([{id:pe.id,params:m},{id:ge.id,params:R}],n),v=a.onCommandExecute({id:dn.id,params:m}),I=s.sequenceExecute([...v.redos],n);return S.result&&I.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(p=v.preRedos)!=null?p:[],{id:pe.id,params:h},{id:ge.id,params:g},...v.undos],redoMutations:[...(f=v.preRedos)!=null?f:[],{id:pe.id,params:m},{id:ge.id,params:R},...v.redos]}),!0):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(exports.SelectionManagerService),i=o.get(s.IUniverInstanceService),a=B(i);if(!a)return!1;const{unitId:c,subUnitId:u,worksheet:l}=a,{anchorRow:d}=e!=null?e:{},m=d!=null?[{startRow:d,endRow:d,startColumn:0,endColumn:l.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const h={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},R=cn(o,h),g=t.syncExecuteCommand(ge.id,h),{undos:S,redos:v}=o.get(exports.SheetInterceptorService).onCommandExecute({id:mn.id,params:h}),I=s.sequenceExecute([...v],t);return g&&I.result?(n.pushUndoRedo({unitID:c,undoMutations:[{id:ge.id,params:R},...S],redoMutations:[{id:ge.id,params:h},...v]}),!0):!1}},sr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(o,e)=>{const{unitId:t,subUnitId:n}=e,r=o.get(s.ICommandService),i=o.get(s.IUndoRedoService),a=o.get(s.IUniverInstanceService);if(!B(o.get(s.IUniverInstanceService)))return!1;const u=a.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const l=u.getSheetBySheetId(n);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:t,subUnitId:n,hidden:s.BooleanNumber.FALSE},h=tr(o,m),R=r.syncExecuteCommand(Ee.id,m),g={unitId:t,subUnitId:n},S=r.syncExecuteCommand(ct.id,g);return R&&S?(i.pushUndoRedo({unitID:t,undoMutations:[{id:Ee.id,params:h}],redoMutations:[{id:Ee.id,params:m}]}),!0):!1}},ir=o=>{const e=new s.ObjectMatrix;return o.forEach(t=>{s.Range.foreach(t,(n,r)=>{e.setValue(n,r,1)})}),e.forValue((t,n)=>{const r=e.getValue(t-1,n);r&&e.setValue(t,n,r+1)}),e},ar=o=>{const e=o;return e.forValue((t,n)=>{const r=o.getValue(t-1,n);r&&e.setValue(t,n,r+1)}),e},kn=o=>{const e={area:0},t=(n,r)=>e.area<n?(e.area=n,e.range=r,!0):!1;return o.forValue((n,r,i)=>{let a=1,c=i;t(a*c,{startRow:n-c+1,endRow:n,startColumn:r,endColumn:r});const u={startRow:n-c+1,endRow:n,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&o.getValue(n,l);l--){c=Math.min(o.getValue(n,l)||0,c),a++;const d=c*a;u.startColumn=l,u.startRow=n-c+1,t(d,u)}}),e},Fs=(o,e)=>(s.Range.foreach(e,(t,n)=>{o.realDeleteValue(t,n);let r=t+1,i=o.getValue(r,n)||0;for(;i>1;)o.setValue(r,n,i-1),r+=1,i=o.getValue(r,n)||0}),o),hn=o=>{const e=[];let t=kn(o);for(;t.area>0;)t.range&&(e.push(t.range),Fs(o,t.range)),t=kn(o);return e},gn=o=>{const e=ir(o);return hn(e)};class Hs{constructor(){C(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(t=>{s.Range.foreach(t,(n,r)=>{this._matrix.setValue(n,r,1)})}),this}subtract(...e){return e.forEach(t=>{s.Range.foreach(t,(n,r)=>{this._matrix.realDeleteValue(n,r)})}),this}merge(){const e=ar(this._matrix);return hn(e)}}const Gs=(o,e,t="")=>o.reduce((n,r)=>{const i=r&&r[e];return typeof i!="string"?(console.warn(r,`${e} is not string`),n):(i?(n[i]||(n[i]=[]),n[i].push(r)):n[t].push(r),n)},{}),zs=(o=0)=>{let e=o;return function(){return e++}},je=x.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,je);const Ys=(o,e)=>{const t=o.get(je),{values:n,unitId:r,subUnitId:i}=e,a=[],c=[];Object.keys(n).forEach(l=>{n[l].ranges.forEach(m=>{s.Range.foreach(m,(h,R)=>{const g=t.getValue(r,i,h,R);g?a.push({pattern:g.pattern,row:h,col:R}):c.push({startColumn:R,endColumn:R,startRow:h,endRow:h})})})});const u=[];if(a.length){const l=bt(r,i,a);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=gn(m.ranges)}),u.push({id:Bt.id,params:bt(r,i,a)})}return c.length&&u.push({id:Rn.id,params:{unitId:r,subUnitId:i,ranges:c}}),u},Bt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(o,e)=>{if(!e)return!1;const{values:t,refMap:n}=e,r=o.get(je),i=e.unitId,a=e.subUnitId,c=Object.keys(t).reduce((u,l)=>{const d=n[l],m=t[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},Rn={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(o,e)=>{if(!e)return!1;const{unitId:t,subUnitId:n,ranges:r}=e;return o.get(je).deleteValues(t,n,r),!0}},qs=(o,e)=>{const t=o.get(je),{ranges:n,unitId:r,subUnitId:i}=e,a=[];if(n.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=t.getValue(r,i,l,d);m&&a.push({pattern:m.pattern,row:l,col:d})})}),!a.length)return[];const c=bt(r,i,a);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=gn(l.ranges)}),[{id:Bt.id,params:c}]},bt=(o,e,t)=>{const n=Gs(t,"pattern"),r={},i={},a=zs();return Object.keys(n).forEach(c=>{const u=n[c],l=a();r[l]={pattern:c},u.forEach(d=>{i[l]||(i[l]={ranges:[]}),i[l].ranges.push(s.cellToRange(d.row,d.col))})}),{unitId:o,subUnitId:e,refMap:r,values:i}},cr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},ur={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(ie.SetDefinedNameMutation.id,r)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ie.SetDefinedNameMutation.id,params:r}]}),!0):!1}},lr={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(ie.RemoveDefinedNameMutation.id,r)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ie.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},dr={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService);return e&&t.syncExecuteCommand(ie.SetDefinedNameMutation.id,e.newDefinedName)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:ie.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},mr={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Sn={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET);return t?(t.setName(e.name),!0):!1}},Cn={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(o,e)=>{var l;if(!o.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const i=o.get(exports.SheetInterceptorService).onCommandExecute({id:Cn.id,params:e}),a={name:e.name,unitId:e.unitId},c=[...(l=i.preRedos)!=null?l:[],{id:Sn.id,params:a},...i.redos],u=o.get(s.ICommandService);return s.sequenceExecute(c,u).result}};var Ks=Object.defineProperty,Zs=Object.getOwnPropertyDescriptor,Xs=(o,e,t,n)=>{for(var r=n>1?void 0:n?Zs(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Ks(e,t,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new he.Subject);C(this,"_ruleRefresh",new he.Subject);C(this,"_resetOrder",new he.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new he.BehaviorSubject(!1));C(this,"worksheetRuleInitStateChange$",this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}addRule(e,t){this._ensureSubUnitMap(e).set(t.subUnitId,t),this._ruleChange.next({unitId:e,rule:t,type:"add",subUnitId:t.subUnitId})}deleteRule(e,t){var r,i,a;const n=(i=(r=this._model)==null?void 0:r.get(e))==null?void 0:i.get(t);n&&((a=this._model.get(e))==null||a.delete(t),this._ruleChange.next({unitId:e,rule:n,type:"delete",subUnitId:t}))}setRule(e,t,n){var i,a;const r=this.getRule(e,t);r&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.set(t,n),this._ruleChange.next({unitId:e,oldRule:r,rule:n,type:"set",subUnitId:t}))}getRule(e,t){var n,r;return(r=(n=this._model)==null?void 0:n.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(n=>{const r=this._model.get(n);r!=null&&r.size&&(e[n]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[n].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(n=>{const r=e[n];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(n,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}ruleRefresh(e){this._ruleRefresh.next(e)}resetOrder(){this._resetOrder.next(Math.random())}};exports.WorksheetProtectionRuleModel=Xs([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionRuleModel)],exports.WorksheetProtectionRuleModel);const hr={id:"sheet.mutation.add-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,rule:n}=e;return o.get(exports.WorksheetProtectionRuleModel).addRule(t,n),!0}},gr={id:"sheet.mutation.set-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rule:r}=e;return o.get(exports.WorksheetProtectionRuleModel).setRule(t,n,r),!0}},Rr={id:"sheet.mutation.delete-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n}=e;return o.get(exports.WorksheetProtectionRuleModel).deleteRule(t,n),!0}},Pe=()=>[Jn,Kt],ft=()=>[Kn,so,ro,uo,ao,no,oo,to,co,Zn,Xn,eo,Qn,io],Js=[_.Copy,_.SetCellStyle,_.SetCellValue,_.SetRowStyle,_.SetColumnStyle,_.InsertRow,_.InsertColumn,_.InsertHyperlink,_.DeleteRow,_.DeleteColumn,_.Sort,_.Filter,_.PivotTable,_.EditExtraObject];var Qs=Object.defineProperty,ei=Object.getOwnPropertyDescriptor,ti=(o,e,t,n)=>{for(var r=n>1?void 0:n?ei(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Qs(e,t,r),r};exports.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new he.Subject);C(this,"pointChange$",this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var r,i,a;const n=(r=this._model.get(e))==null?void 0:r.get(t);n&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.delete(t),this._pointChange.next(n))}getRule(e,t){var n,r;return(r=(n=this._model)==null?void 0:n.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(n=>{const r=this._model.get(n);r!=null&&r.size&&(e[n]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[n].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(n=>{const r=e[n];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(n,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}};exports.WorksheetProtectionPointModel=ti([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var ni=Object.defineProperty,oi=Object.getOwnPropertyDescriptor,ri=(o,e,t,n)=>{for(var r=n>1?void 0:n?oi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ni(e,t,r),r},Oe=(o,e)=>(t,n)=>e(t,n,o);const si="SHEET_WORKSHEET_PROTECTION_PLUGIN",ii="SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN";exports.WorksheetPermissionService=class extends s.RxDisposable{constructor(e,t,n,r,i,a,c){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._sheetInterceptorService=c,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){const e=t=>{const n=t.getUnitId(),r=i=>{const a=i.getSheetId();[...Pe(),...ft()].forEach(c=>{const u=new c(n,a);this._permissionService.addPermissionPoint(u)})};t.getSheets().forEach(i=>{r(i)}),t.sheetCreated$.subscribe(i=>{r(i)}),t.sheetDisposed$.subscribe(i=>{const a=i.getSheetId();[...Pe(),...ft()].forEach(c=>{const u=new c(n,a);this._permissionService.deletePermissionPoint(u.id)})})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(t=>{t.getSheets().forEach(n=>{const r=t.getUnitId(),i=n.getSheetId();Pe().forEach(a=>{const c=new a(r,i);this._permissionService.deletePermissionPoint(c.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Pe().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.addPermissionPoint(n)});break}case"delete":{Pe().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.deletePermissionPoint(n.id)});break}case"set":{Pe().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,e.rule)});break}}}))}_initRuleSnapshot(){const e=()=>{const n=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(n)},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:si,businesses:[wt.UNIVER_SHEET],onLoad:(n,r)=>{this._worksheetProtectionRuleModel.fromObject(r),Object.keys(r).forEach(i=>{Pe().forEach(a=>{const c=new a(n,i);this._permissionService.addPermissionPoint(c)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:()=>{this._worksheetProtectionRuleModel.deleteUnitModel()}}))}_initPointSnapshot(){const e=()=>{const n=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(n)},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:ii,businesses:[wt.UNIVER_SHEET],onLoad:(n,r)=>{this._worksheetProtectionPointRuleModel.fromObject(r),Object.keys(r).forEach(i=>{ft().forEach(a=>{const c=new a(n,i);this._permissionService.addPermissionPoint(c)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}};exports.WorksheetPermissionService=ri([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetPermissionService),Oe(0,x.Inject(s.IPermissionService)),Oe(1,x.Inject(s.IUniverInstanceService)),Oe(2,x.Inject(x.Injector)),Oe(3,x.Inject(exports.WorksheetProtectionRuleModel)),Oe(4,x.Inject(exports.WorksheetProtectionPointModel)),Oe(5,x.Inject(s.IResourceManagerService)),Oe(6,x.Inject(exports.SheetInterceptorService))],exports.WorksheetPermissionService);const Sr="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",Cr="worksheet-protection",On=25,ai=80;class ci extends Pt.SheetExtension{constructor(){super();C(this,"uKey",Cr);C(this,"Z_INDEX",On);C(this,"_pattern");C(this,"_img",new Image);this._img.src=Sr}draw(t,n,r,i){const{rowHeightAccumulation:a,columnWidthAccumulation:c,worksheet:u,dataMergeCache:l}=r;if(!u)return!1;t.save(),this._pattern||(this._pattern=t.createPattern(this._img,"repeat"));const{startRow:d,startColumn:m,endRow:h,endColumn:R}=r.rowColumnSegment,g=this.getCellIndex(d,m,a,c,l),S=this.getCellIndex(h,R,a,c,l),{hasWorksheetRule:v=!1,selectionProtection:I=[]}=u.getCell(d,m)||{};if(this._pattern){if(I.length>0){const p=I[0];(p==null?void 0:p[_.View])?this.setZIndex(On):this.setZIndex(ai)}t.fillStyle=this._pattern,v&&t.fillRect(g.startX,g.startY,S.endX-g.startX,S.endY-g.startY),t.restore()}}setZIndex(t){this.Z_INDEX=t}}var ui=Object.defineProperty,li=Object.getOwnPropertyDescriptor,di=(o,e,t,n)=>{for(var r=n>1?void 0:n?li(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ui(e,t,r),r},Dn=(o,e)=>(t,n)=>e(t,n,o);exports.WorksheetProtectionRenderService=class extends s.Disposable{constructor(t,n){super();C(this,"_worksheetProtectionRenderExtension",new ci);this._renderManagerService=t,this._univerInstanceService=n,this._initRender()}_initRender(){const t=r=>{const i=r&&this._renderManagerService.getRenderById(r),a=i&&i.mainComponent;a&&(a.getExtensionByKey(Cr)||a.register(this._worksheetProtectionRenderExtension))};this.disposeWithMe(this._renderManagerService.currentRender$.subscribe(r=>{r&&t(r)}));const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);n&&t(n.getUnitId())}};exports.WorksheetProtectionRenderService=di([s.OnLifecycle(s.LifecycleStages.Ready,exports.WorksheetProtectionRenderService),Dn(0,x.Inject(Pt.IRenderManagerService)),Dn(1,x.Inject(s.IUniverInstanceService))],exports.WorksheetProtectionRenderService);const vr={id:"sheet.mutation.set-worksheet-permission-points",type:s.CommandType.MUTATION,handler:(o,e)=>{const{rule:t}=e;return o.get(exports.WorksheetProtectionPointModel).addRule(t),!0}},fr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-permission-points",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),{rule:n}=e;return t.executeCommand(vr.id,{rule:n,unitId:n.unitId,subUnitId:n.subUnitId}),!0}};var mi=Object.defineProperty,hi=Object.getOwnPropertyDescriptor,gi=(o,e,t,n)=>{for(var r=n>1?void 0:n?hi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&mi(e,t,r),r};exports.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new he.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new he.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new he.BehaviorSubject(!1));C(this,"rangeRuleInitStateChange$",this._rangeRuleInitStateChange.asObservable())}ruleRefresh(e){this._ruleRefresh.next(e)}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,t,n){this._ensureRuleMap(e,t).set(n.id,n),this._ruleChange.next({unitId:e,subUnitId:t,rule:n,type:"add"})}deleteRule(e,t,n){var i,a,c,u;const r=(a=(i=this._model.get(e))==null?void 0:i.get(t))==null?void 0:a.get(n);r&&((u=(c=this._model.get(e))==null?void 0:c.get(t))==null||u.delete(n),this._ruleChange.next({unitId:e,subUnitId:t,rule:r,type:"delete"}))}setRule(e,t,n,r){var a,c;const i=this.getRule(e,t,n);i&&((c=(a=this._model.get(e))==null?void 0:a.get(t))==null||c.set(n,r),this._ruleChange.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:"set"}))}getRule(e,t,n){var r,i;return(i=(r=this._model.get(e))==null?void 0:r.get(t))==null?void 0:i.get(n)}getSubunitRuleList(e,t){var r;return[...(((r=this._model.get(e))==null?void 0:r.get(t))||new Map).values()]}_ensureRuleMap(e,t){let n=this._model.get(e);n||(n=new Map,this._model.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}toObject(){const e={};return[...this._model.keys()].forEach(n=>{const r=this._model.get(n),i=[...r.keys()];e[n]={},i.forEach(a=>{const c=r.get(a);e[n][a]=[...c.values()]})}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(n=>{const r=e[n],i=new Map;Object.keys(r).forEach(a=>{const c=r[a].reduce((u,l)=>(u.set(l.id,l),u),new Map);i.set(a,c)}),t.set(n,i)}),this._model=t}deleteUnitModel(){this._model.clear()}createRuleId(e,t){let n=s.Tools.generateRandomId(4);const r=this._ensureRuleMap(e,t);for(;r.has(n);)n=s.Tools.generateRandomId(4);return n}};exports.RangeProtectionRuleModel=gi([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const Ri=(o,e)=>{const t=o.get(exports.RangeProtectionRuleModel),n=e.ruleIds.map(i=>t.getRule(e.unitId,e.subUnitId,i)).filter(i=>!!i);return{id:Ke.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:n}}},qe={id:"sheet.mutation.delete-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,ruleIds:r}=e,i=o.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.deleteRule(t,n,a)}),!0}},Si=o=>{const e={...o,ruleIds:o.rules.map(t=>t.id)};return{id:qe.id,params:e}},Ke={id:"sheet.mutation.add-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rules:r}=e,i=o.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.addRule(t,n,a)}),!0}},vn={type:s.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(exports.RangeProtectionRuleModel),{rule:i,permissionId:a}=e,{unitId:c,subUnitId:u,ranges:l,name:d,description:m}=i,h=[{ranges:l,permissionId:a,id:r.createRuleId(c,u),name:d,description:m,unitType:i.unitType,unitId:c,subUnitId:u}];if(await t.executeCommand(Ke.id,{unitId:c,subUnitId:u,rules:h})){const g=[{id:Ke.id,params:{unitId:c,subUnitId:u,rules:h}}],S=[{id:qe.id,params:{unitId:c,subUnitId:u,ruleIds:h.map(v=>v.id)}}];n.pushUndoRedo({unitID:c,redoMutations:g,undoMutations:S})}return!0}},Ir={type:s.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),{unitId:r,subUnitId:i,rule:a}=e,c={unitId:r,subUnitId:i,ruleIds:[a.id]};return await t.executeCommand(qe.id,c)&&n.pushUndoRedo({unitID:r,redoMutations:[{id:qe.id,params:c}],undoMutations:[{id:Ke.id,params:{unitId:r,subUnitId:i,rules:[a]}}]}),!0}},ee={id:"sheet.mutation.set-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rule:r,ruleId:i}=e;return o.get(exports.RangeProtectionRuleModel).setRule(t,n,i,r),!0}},Ci=(o,e)=>{const{unitId:t,subUnitId:n,ruleId:r}=e,a=o.get(exports.RangeProtectionRuleModel).getRule(t,n,r);return a?{id:ee.id,params:{...e,rule:a}}:null},fn={type:s.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),n=o.get(exports.RangeProtectionRuleModel),r=o.get(s.IUndoRedoService),{rule:i,permissionId:a,oldRule:c}=e,{unitId:u,subUnitId:l,ranges:d,name:m,description:h}=i;if(i.id){const R={unitId:u,subUnitId:l,ruleId:i.id,rule:{ranges:d,permissionId:a,id:n.createRuleId(u,l),name:m,description:h}};if(await t.executeCommand(ee.id,R)){const S=[{id:ee.id,params:R}],v=[{id:ee.id,params:{unitId:u,subUnitId:l,ruleId:i.id,rule:c}}];r.pushUndoRedo({unitID:u,redoMutations:S,undoMutations:v})}}return!0}},pr="maxCellsPerSheet",vi=3e6,Mr="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var fi=Object.defineProperty,Ii=Object.getOwnPropertyDescriptor,pi=(o,e,t,n)=>{for(var r=n>1?void 0:n?Ii(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&fi(e,t,r),r},An=(o,e)=>(t,n)=>e(t,n,o);let It=class extends s.Disposable{constructor(o,e){var n;super(),this._commandService=o,this._configService=e,[H,Ut,Yt,Tt,Yn,Ot,Dt,sn,ln,Uo,Po,Le,_e,At,Wt,_o,yo,Ve,ye,To,De,Vt,ke,Nt,Fe,xt,Ne,at,fe,it,be,en,Ze,Wo,G,Ko,Yo,qo,xo,$o,Xe,Vo,Lo,tn,He,Ge,yt,Ps,Fo,Te,Xo,st,Y,dn,on,Ye,ze,jo,Ho,Lt,$t,te,er,tt,zo,Qo,Jo,Zo,Cn,Sn,jt,ct,Ie,nr,Ee,an,_t,or,nt,un,pe,mn,ge,Bt,K,Rn,cr,mr,ur,lr,dr,fr,hr,gr,Rr,vr,vn,Ir,fn,Ke,qe,ee].forEach(r=>this.disposeWithMe(this._commandService.registerCommand(r))),((n=this._configService.getConfig(Mr))!=null?n:!1)||[sr].forEach(r=>this.disposeWithMe(this._commandService.registerCommand(r))),this._configService.setConfig(pr,vi)}};It=pi([s.OnLifecycle(s.LifecycleStages.Starting,It),An(0,s.ICommandService),An(1,s.IConfigService)],It);var Mi=Object.defineProperty,wi=Object.getOwnPropertyDescriptor,yi=(o,e,t,n)=>{for(var r=n>1?void 0:n?wi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Mi(e,t,r),r},Wn=(o,e)=>(t,n)=>e(t,n,o);let pt=class extends s.Disposable{constructor(o,e){super(),this._univerInstanceService=o,this._commandService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id!==ie.SetFormulaCalculationResultMutation.id)return;const e=o.params,{unitData:t}=e,n=Object.keys(t),r=[];return n.forEach(a=>{const c=t[a];if(c==null)return!0;Object.keys(c).forEach(l=>{const d=c[l];if(d==null)return!0;const m=this._getMergedCellData(a,l,d),h={subUnitId:l,unitId:a,cellValue:m};r.push({id:Y.id,params:h})})}),r.every(a=>this._commandService.executeCommand(a.id,a.params,{onlyLocal:!0}))}))}_getMergedCellData(o,e,t){const n=this._univerInstanceService.getUniverSheetInstance(o),r=n==null?void 0:n.getStyles(),i=n==null?void 0:n.getSheetBySheetId(e),a=i==null?void 0:i.getCellMatrix(),c=new s.ObjectMatrix(t);return c.forValue((u,l,d)=>{const m=a==null?void 0:a.getValue(u,l),h=ie.handleNumfmtInCell(m,d,r);c.setValue(u,l,h)}),c.clone()}};pt=yi([s.OnLifecycle(s.LifecycleStages.Ready,pt),Wn(0,x.Inject(s.IUniverInstanceService)),Wn(1,s.ICommandService)],pt);var _i=Object.defineProperty,bi=Object.getOwnPropertyDescriptor,Pi=(o,e,t,n)=>{for(var r=n>1?void 0:n?bi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&_i(e,t,r),r},dt=(o,e)=>(t,n)=>e(t,n,o);let Mt=class extends s.Disposable{constructor(o,e,t,n){super(),this._commandService=o,this._featureCalculationManagerService=e,this._univerInstanceService=t,this._formulaDataModel=n}_initialize(){const o="test",e="workbook-01",t="sheet-0011",n={[e]:{[t]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[t]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(o,{unitId:e,subUnitId:t,dependencyRanges:[{unitId:e,sheetId:t,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:n,dirtyRanges:r})})}};Mt=Pi([s.OnLifecycle(s.LifecycleStages.Ready,Mt),dt(0,s.ICommandService),dt(1,ie.IFeatureCalculationManagerService),dt(2,s.IUniverInstanceService),dt(3,x.Inject(ie.FormulaDataModel))],Mt);const W={MoveRangeCommandId:qn,InsertRowCommandId:wo,InsertColCommandId:bo,RemoveColCommandId:Ao,RemoveRowCommandId:Do,DeleteRangeMoveLeftCommandId:Io,DeleteRangeMoveUpCommandId:po,InsertRangeMoveDownCommandId:ps,InsertRangeMoveRightCommandId:Mo,MoveColsCommandId:Oo,MoveRowsCommandId:ko};var L=(o=>(o[o.Set=0]="Set",o[o.Delete=1]="Delete",o[o.HorizontalMove=2]="HorizontalMove",o[o.VerticalMove=3]="VerticalMove",o[o.Unknown=4]="Unknown",o))(L||{});const mt=Number.MAX_SAFE_INTEGER,ve=o=>{const e={...o},t=Number.isNaN(e.startRow)&&Number.isNaN(e.endRow)&&!Number.isNaN(e.startColumn)&&!Number.isNaN(e.endColumn),n=Number.isNaN(e.startColumn)&&Number.isNaN(e.endColumn)&&!Number.isNaN(e.startRow)&&!Number.isNaN(e.endRow);return(e.rangeType===s.RANGE_TYPE.COLUMN||t)&&(e.startRow=0,e.endRow=mt),(e.rangeType===s.RANGE_TYPE.ROW||n)&&(e.startColumn=0,e.endColumn=mt),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=mt,e.startRow=0,e.endRow=mt),e},le=o=>{let e=o.rangeType;return o.rangeType===s.RANGE_TYPE.COLUMN?e=s.RANGE_TYPE.ROW:o.rangeType===s.RANGE_TYPE.ROW&&(e=s.RANGE_TYPE.COLUMN),{startRow:o.startColumn,endRow:o.endColumn,startColumn:o.startRow,endColumn:o.endRow,rangeType:e}},ot=(o,e,t)=>{const n={...t},r={...e},i=(S,v)=>{const I=Math.max(S.start,v.start),p=Math.min(S.end,v.end);return p<I?null:{start:I,end:p}},a=S=>S.end-S.start+1,c=(S,v)=>({start:S.start-v.start,end:S.start-v.start+S.end-S.start}),u=(S,v)=>({start:v.start+S.start,end:v.start+S.start+S.end-S.start}),l=e.start>o.start;if(l){const S=Math.min(o.end,e.start)-o.start+1;r.start-=S,r.end-=S}const d=a(o),m=d,h=i(o,n),R=h&&a(h)>=a(n);if(o.end<n.start)n.start-=d,n.end-=d;else if(h){const S=a(h);if(R){const v=c(n,o),I=u(v,r);n.start=I.start,n.end=I.end}else h.start>o.start?l?(n.end-=S+d,n.start-=d):n.end-=S:l?n.end-=S:n.start>o.start&&n.end>o.end?(n.start-=d,n.end-=d+S):n.end-=S}const g=i(r,n);return R||(r.start<=n.start?(n.start+=m,n.end+=m):g&&(l?r.end<=n.start||r.start<=n.start&&r.end>=n.start?(n.start+=m,n.end+=m):r.start>=n.start&&r.start<=n.end&&(n.end+=m):n.start<r.start&&n.end>r.start?n.end+=m:(n.start>=r.end||n.start>=r.start&&n.start<=r.end)&&(n.end+=m,n.start+=m))),{step:n.start-t.start,length:a(n)-a(t)}},In=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!n||!t)return[];const r=ve(t),i=ve(n),a=ve(e),c=ot({start:r.startRow,end:r.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return c===null?[{type:L.Delete}]:[{type:L.VerticalMove,step:c.step||0,length:c.length||0}]},Ui=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!t||!n)return[e];const{startRow:r}=t,{startRow:i}=n,a=n.endRow-n.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(e,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,a,i),s.queryObjectMatrix(c,l=>l===1)},pn=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!n||!t)return[];const r=ve(t),i=ve(n),a=ve(e),c=ot({start:r.startColumn,end:r.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return c===null?[{type:L.Delete}]:[{type:L.HorizontalMove,step:c.step||0,length:c.length||0}]},Ti=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!t||!n)return[e];const{startColumn:r}=t,{startColumn:i}=n,a=n.endColumn-n.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(e,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,a,i),s.queryObjectMatrix(c,u=>u===1)},wr=(o,e)=>{var i,a;const t=(i=o.params)==null?void 0:i.toRange,n=(a=o.params)==null?void 0:a.fromRange;if(!t||!n)return[];const r=[];if(s.Rectangle.contains(t,e)&&r.push({type:L.Delete}),s.Rectangle.contains(n,e)){r.push({type:L.Delete});const c=s.Rectangle.getRelativeRange(e,n),u=s.Rectangle.getPositionRange(c,t);return[{type:L.Set,range:u}]}return r},Ei=(o,e)=>{var m,h;const t=(m=o.params)==null?void 0:m.toRange,n=(h=o.params)==null?void 0:h.fromRange;if(!t||!n)return[e];if(!s.Rectangle.intersects(n,e)&&!s.Rectangle.intersects(t,e))return[e];if(s.Rectangle.contains(n,e)){const R=s.Rectangle.getRelativeRange(e,n);return[s.Rectangle.getPositionRange(R,t)]}const r=new s.ObjectMatrix;s.Range.foreach(e,(R,g)=>{r.setValue(R,g,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(n,e);a&&s.Range.foreach(a,(R,g)=>{r.getValue(R,g)&&(r.setValue(R,g,void 0),i.setValue(R,g,1))});const c=t.startColumn-n.startColumn,u=t.startRow-n.startRow,l={startColumn:t.startColumn-c,endColumn:t.endColumn-c,startRow:t.startRow-u,endRow:t.endRow-u};return l&&s.Range.foreach(l,(R,g)=>{var I;const S=R+u,v=g+c;r.setValue(S,v,(I=i.getValue(R,g))!=null?I:0)}),s.queryObjectMatrix(r,R=>R===1)},Ae=(o,e)=>{const t=ve(o),n=ve(e),r=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(t.startRow<=n.startRow&&t.endRow>=n.endRow){if(n.startColumn<t.startColumn&&n.endColumn>=t.startColumn&&n.endColumn<=t.endColumn||n.startColumn<t.startColumn&&n.endColumn>=t.endColumn){const a=s.Rectangle.getIntersects(n,t);if(a)return{step:0,length:-r(a)}}if(n.startColumn>=t.startColumn&&n.endColumn<=t.endColumn&&i(t)>=i(n))return null;if(n.startColumn>=t.startColumn&&n.startColumn<=t.endColumn&&n.endColumn>t.endColumn){const a=s.Rectangle.getIntersects(n,t);if(a){const c=-r(a);return{step:-(r(t)-r(a)),length:c}}}if(n.startColumn>t.endColumn)return{step:-r(t),length:0}}return{step:0,length:0}},Mn=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(t,e);if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.HorizontalMove,step:a,length:c})}return n},wn=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(le(t),le(e));if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.VerticalMove,step:a,length:c})}return n},We=(o,e)=>{const t=ve(o),n=ve(e),r=i=>i.endColumn-i.startColumn+1;if(t.startRow<=n.startRow&&t.endRow>=n.endRow){if(n.startColumn<t.startColumn&&n.endColumn>=t.startColumn&&n.endColumn<=t.endColumn||n.startColumn<t.startColumn&&n.endColumn>=t.endColumn)return{step:0,length:r(t)};if(n.startColumn>=t.startColumn&&n.endColumn<=t.endColumn||n.startColumn>t.startColumn&&n.startColumn<=t.endColumn&&n.endColumn>t.endColumn||n.startColumn>=t.endColumn)return{step:r(t),length:0}}return{step:0,length:0}};function Ni(o,e,t){const n=[];if(s.Rectangle.contains(e,t)&&n.push({type:L.Delete}),s.Rectangle.contains(o,t)){n.push({type:L.Delete});const r=s.Rectangle.getRelativeRange(t,o),i=s.Rectangle.getPositionRange(r,e);return[{type:L.Set,range:i}]}return n}const yn=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(le(t),le(e)),{step:i,length:a}=r;return n.push({type:L.VerticalMove,step:i,length:a}),n},_n=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(t,e),{step:i,length:a}=r;return n.push({type:L.HorizontalMove,step:i,length:a}),n},yr=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(le(t),le(e)),{step:i,length:a}=r;return n.push({type:L.VerticalMove,step:i,length:a}),n},ki=(o,e)=>{var u;const t=(u=o.params)==null?void 0:u.range;if(!t)return[e];const n=t.endRow-t.startRow+1,r={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),a&&s.Range.foreach(a,(l,d)=>{c.setValue(l+n,d,1)}),s.queryObjectMatrix(c,l=>l===1)},_r=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(t,e),{step:i,length:a}=r;return n.push({type:L.HorizontalMove,step:i,length:a}),n},Oi=(o,e)=>{var u;const t=(u=o.params)==null?void 0:u.range;if(!t)return[e];const n=t.endColumn-t.startColumn+1,r={...t,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),a&&s.Range.foreach(a,(l,d)=>{c.setValue(l,d+n,1)}),s.queryObjectMatrix(c,l=>l===1)},br=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(t,e);if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.HorizontalMove,step:a,length:c})}return n},Di=(o,e)=>{var l;const t=(l=o.params)==null?void 0:l.range;if(!t)return[e];const n={startRow:t.startRow,endRow:t.endRow,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},r=t.endColumn-t.startColumn+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,n),c=s.Rectangle.getIntersects(n,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),i&&s.Range.foreach(i,(d,m)=>{u.setValue(d,m-r,0)}),a.forEach(d=>{s.Range.foreach(d,(m,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},Pr=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(le(t),le(e));if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.VerticalMove,step:a,length:c})}return n},Ai=(o,e)=>{var l;const t=(l=o.params)==null?void 0:l.range;if(!t)return[e];const n={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},r=t.endRow-t.startRow+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,n),c=s.Rectangle.getIntersects(n,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),i&&s.Range.foreach(i,(d,m)=>{u.setValue(d-r,m,0)}),a.forEach(d=>{s.Range.foreach(d,(m,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},xe=(o,e)=>{let t={...e};return o.forEach(n=>{switch(n.type){case L.Delete:{t=null;break}case L.HorizontalMove:{if(!t)return;t.startColumn+=n.step,t.endColumn+=n.step+(n.length||0);break}case L.VerticalMove:{if(!t)return;t.startRow+=n.step,t.endRow+=n.step+(n.length||0);break}case L.Set:{t=n.range;break}}}),t&&(t.endColumn<t.startColumn||t.endRow<t.startRow)?null:t},Wi=(o,e)=>{let t=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:{t=br(e,o);break}case W.DeleteRangeMoveUpCommandId:{t=Pr(e,o);break}case W.InsertColCommandId:{t=_n(e,o);break}case W.InsertRangeMoveDownCommandId:{t=yr(e,o);break}case W.InsertRangeMoveRightCommandId:{t=_r(e,o);break}case W.InsertRowCommandId:{t=yn(e,o);break}case W.MoveColsCommandId:{t=pn(e,o);break}case W.MoveRangeCommandId:{t=wr(e,o);break}case W.MoveRowsCommandId:{t=In(e,o);break}case W.RemoveColCommandId:{t=Mn(e,o);break}case W.RemoveRowCommandId:{t=wn(e,o);break}}return xe(t,o)},xi=(o,e)=>{let t=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:return Di(e,o);case W.DeleteRangeMoveUpCommandId:return Ai(e,o);case W.InsertRangeMoveDownCommandId:return ki(e,o);case W.InsertRangeMoveRightCommandId:return Oi(e,o);case W.InsertColCommandId:{t=_n(e,o);break}case W.InsertRowCommandId:{t=yn(e,o);break}case W.MoveColsCommandId:return Ti(e,o);case W.MoveRangeCommandId:return Ei(e,o);case W.MoveRowsCommandId:return Ui(e,o);case W.RemoveColCommandId:{t=Mn(e,o);break}case W.RemoveRowCommandId:{t=wn(e,o);break}}return xe(t,o)};function Vi(o,e){const{id:t,params:n}=e;let r={length:0,step:0,type:L.Unknown};switch(t){case Ze.id:r.type=L.Delete;break;case Ne.id:r=ot({start:n.sourceRange.startRow,end:n.sourceRange.endRow},{start:n.targetRange.startRow,end:n.targetRange.endRow},{start:o.startRow,end:o.endRow}),r.type=L.VerticalMove;break;case ke.id:r=ot({start:n.sourceRange.startColumn,end:n.sourceRange.endColumn},{start:n.targetRange.startColumn,end:n.targetRange.endColumn},{start:o.startColumn,end:o.endColumn});break;case fe.id:r=Ae(n.range,o),r?r.type=L.HorizontalMove:r={step:0,length:0,type:L.Delete};break;case be.id:r=Ae(le(n.range),le(o)),r?r.type=L.VerticalMove:r={step:0,length:0,type:L.Delete};break;case ye.id:r=We(le(n.range),le(o)),r.type=L.VerticalMove;break;case _e.id:r=We(n.range,o),r.type=L.HorizontalMove;break;case Fe.id:r=Ni(new s.ObjectMatrix(n.from).getRange(),new s.ObjectMatrix(n.to).getRange(),o);break}return r?Array.isArray(r)?xe(r,o):xe([r],o):o}var Li=Object.defineProperty,$i=Object.getOwnPropertyDescriptor,ji=(o,e,t,n)=>{for(var r=n>1?void 0:n?$i(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Li(e,t,r),r},ht=(o,e)=>(t,n)=>e(t,n,o);const Bi=s.createInterceptorKey("MERGE_REDO"),Fi=s.createInterceptorKey("MERGE_UNDO");class Hi extends s.Disposable{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){if(e.params.unitId!==this._unitId||e.params.subUnitId!==this._subUnitId||!this._range)return;const t=Vi(this._range,e);if(t&&s.Rectangle.equals(t,this._range))return!1;const n=this._range;this._range=t,this._callback(n,t)}}exports.RefRangeService=class extends s.Disposable{constructor(t,n,r,i){super();C(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Bi,MERGE_UNDO:Fi}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",Gi());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:t=>{const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=xn(this._univerInstanceService),i=Vn(this._univerInstanceService),u=((()=>{switch(t.id){case W.MoveColsCommandId:{const R=t.params,g=Math.min(R.fromRange.startColumn,R.toRange.startColumn);return this._checkRange([{...R.fromRange,startColumn:g,endColumn:n.getColumnCount()-1}],r,i)}case W.MoveRowsCommandId:{const R=t.params,g=Math.min(R.fromRange.startRow,R.toRange.startRow);return this._checkRange([{...R.fromRange,startRow:g,endRow:n.getRowCount()-1}],r,i)}case W.MoveRangeCommandId:{const R=t;return this._checkRange([R.params.fromRange,R.params.toRange],r,i)}case W.InsertRowCommandId:{const S={startRow:t.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.InsertColCommandId:{const g=t.params.range.startColumn,S={startRow:0,endRow:n.getRowCount()-1,startColumn:g,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.RemoveRowCommandId:{const S={startRow:t.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.RemoveColCommandId:{const g=t.params.range.startColumn,S={startRow:0,endRow:n.getRowCount()-1,startColumn:g,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.DeleteRangeMoveUpCommandId:case W.InsertRangeMoveDownCommandId:{const g=t.params.range||Ln(this._selectionManagerService)[0],S={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:n.getRowCount()-1};return this._checkRange([S],r,i)}case W.DeleteRangeMoveLeftCommandId:case W.InsertRangeMoveRightCommandId:{const g=t.params.range||Ln(this._selectionManagerService)[0],S={startRow:g.startRow,startColumn:g.startColumn,endColumn:n.getColumnCount()-1,endRow:g.endRow};return this._checkRange([S],r,i)}}})()||[]).reduce((R,g)=>{const S=g(t);return R.push(S),R},[]).reduce((R,g)=>{var S,v;return R.redos.push(...g.redos),R.undos.push(...g.undos),R.preRedos.push(...(S=g.preRedos)!=null?S:[]),R.preUndos.push(...(v=g.preUndos)!=null?v:[]),R},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],h=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:h,preRedos:l,preUndos:m}}})});C(this,"_checkRange",(t,n,r)=>{const i=$n(n,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(l=>{const d=a.get(l),m=this._serializer.deserialize(l),h={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn};t.some(R=>s.Rectangle.intersects(R,h))&&d&&d.forEach(R=>{c.add(R)})}),[...c]}return[]});C(this,"registerRefRange",(t,n,r,i)=>{const a=r||xn(this._univerInstanceService),c=i||Vn(this._univerInstanceService),u=$n(a,c),l=this._serializer.serialize(t);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(n):d.set(l,new Set([n])),s.toDisposable(()=>{const h=d.get(l);h&&(h.delete(n),h.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._commandService=t,this._sheetInterceptorService=n,this._univerInstanceService=r,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(t,n,r,i,a){let c;this._watchRanges.size===0&&(c=this._commandService.onCommandExecuted(m=>{if(m.type!==s.CommandType.MUTATION)return!1;for(const h of this._watchRanges)h.onMutation(m)}));const u=new Hi(t,n,r,i,a);this._watchRanges.add(u);const l=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(c==null||c.dispose(),c=null)}),d=this.disposeWithMe(l);return s.toDisposable(()=>{d.dispose(),l.dispose()})}};exports.RefRangeService=ji([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),ht(0,s.ICommandService),ht(1,x.Inject(exports.SheetInterceptorService)),ht(2,x.Inject(s.IUniverInstanceService)),ht(3,x.Inject(exports.SelectionManagerService))],exports.RefRangeService);function xn(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Vn(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function Ln(o){return o.getSelectionRanges()||[]}function $n(o,e){return`${o}_${e}`}function Gi(){const o=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:t=>{const n=o.reduce((i,a,c)=>(i[String(c)]=a,i),{});return t.split(e).reduce((i,a,c)=>{const u=String(c);return a&&n[u]&&(i[n[u]]=a),i},{})},serialize:t=>o.reduce((n,r,i)=>{const a=t[r];return a!==void 0?`${n}${i>0?e:""}${a}`:`${n}`},"")}}var zi=Object.defineProperty,Yi=Object.getOwnPropertyDescriptor,qi=(o,e,t,n)=>{for(var r=n>1?void 0:n?Yi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&zi(e,t,r),r},Be=(o,e)=>(t,n)=>e(t,n,o);const Ki=[_e.id,ye.id,fe.id,be.id],Zi=[Ne.id,ke.id];function Ur(o,e){let t=o;if(e!==void 0){const n=[];for(let r=0;r<t.length;r++){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=t[r];if(e===s.Dimension.ROWS)for(let l=i;l<=a;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};n.push(d)}else if(e===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:i,endRow:a,startColumn:l,endColumn:l};n.push(d)}}t=n}return t}exports.MergeCellController=class extends s.Disposable{constructor(t,n,r,i,a,c){super();C(this,"disposableCollection",new s.DisposableCollection);this._commandService=t,this._refRangeService=n,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const t=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case Ut.id:case Tt.id:{const r=t._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),i=r.getUnitId(),a=r.getActiveSheet(),c=a.getSheetId(),u=a.getConfig().mergeData,l=t._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(h=>s.Rectangle.intersects(h,m)))){const m={unitId:i,subUnitId:c,ranges:l},h=ue(t._injector,m),R=[{id:G.id,params:m}],g=[{id:H.id,params:h}];return{redos:R,undos:g}}}}return{redos:[],undos:[]}}})}refRangeHandle(t,n,r){switch(t.id){case W.MoveColsCommandId:{const i=t.params;return this._handleMoveColsCommand(i,n,r)}case W.MoveRowsCommandId:{const i=t.params;return this._handleMoveRowsCommand(i,n,r)}case Ve.id:{const i=t.params,a=i.unitId||n,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case Le.id:{const i=t.params,a=i.unitId||n,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case at.id:{const i=t.params;return this._handleRemoveColCommand(i,n,r)}case it.id:{const i=t.params;return this._handleRemoveRowCommand(i,n,r)}case Nt.id:{const i=t.params;return this._handleMoveRangeCommand(i,n,r)}case Wt.id:{const i=t.params;return this._handleInsertRangeMoveRightCommand(i,n,r)}case At.id:{const i=t.params;return this._handleInsertRangeMoveDownCommand(i,n,r)}case Dt.id:{const i=t.params;return this._handleDeleteRangeMoveUpCommand(i,n,r)}case Ot.id:{const i=t.params;return this._handleDeleteRangeMoveLeftCommand(i,n,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(r);if(!a)return;const c=a==null?void 0:a.getSheetBySheetId(i);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),l=d=>this.refRangeHandle(d,r,i);u.forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,l,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===jt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===H.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(i.unitId,i.subUnitId)}}));const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(n){const r=n.getActiveSheet();t(n.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:n,subUnitId:r,ranges:[]},l={unitId:n,subUnitId:r,ranges:[]},{fromRange:d}=t,{startRow:m,endRow:h}=d;if(c.forEach(S=>{if(m<=S.startRow&&h>=S.endRow){u.ranges.push(S);const v=In({id:W.MoveRowsCommandId,params:t},S),I=xe(v,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),g=Ce(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:g},{id:H.id,params:R}]}}_handleMoveColsCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:n,subUnitId:r,ranges:[]},l={unitId:n,subUnitId:r,ranges:[]},{fromRange:d}=t,{startColumn:m,endColumn:h}=d;if(c.forEach(S=>{if(m<=S.startColumn&&h>=S.endColumn){u.ranges.push(S);const v=pn({id:W.MoveColsCommandId,params:t},S),I=xe(v,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),g=Ce(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:g},{id:H.id,params:R}]}}_handleMoveRangeCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=a.getMergeData(),u=c.filter(g=>s.Rectangle.intersects(g,t.fromRange)),l=c.filter(g=>s.Rectangle.intersects(g,t.toRange)),d=u.map(g=>s.Rectangle.getRelativeRange(g,t.fromRange)).map(g=>s.Rectangle.getPositionRange(g,t.toRange)),m=Ur(d).filter(g=>!c.some(S=>s.Rectangle.equals(g,S))),h=[{id:G.id,params:{unitId:n,subUnitId:r,ranges:u}},{id:G.id,params:{unitId:n,subUnitId:r,ranges:l}},{id:H.id,params:{unitId:n,subUnitId:r,ranges:m}}],R=[{id:G.id,params:{unitId:n,subUnitId:r,ranges:m}},{id:H.id,params:{unitId:n,subUnitId:r,ranges:l}},{id:H.id,params:{unitId:n,subUnitId:r,ranges:u}}];return{redos:h,undos:R}}_handleInsertRowCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((p,f)=>(u>f.startRow&&u<=f.endRow&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((p,f)=>{if(u>f.startRow&&u<=f.endRow){const w=l-u+1;f.endRow+=w,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:v,undos:I}}_handleInsertColCommand(t,n,r){const{range:i}=t,a=Re(this._univerInstanceService,n);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>(u>f.startColumn&&u<=f.endColumn&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>{if(u>f.startColumn&&u<=f.endColumn){const w=l-u+1;f.endColumn+=w,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:v,undos:I}}_handleRemoveColCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(c,M)&&w.push(M),w),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(c,M)){if(u<=M.startColumn&&l>=M.endColumn)return w;u>=M.startColumn&&l<=M.endColumn?M.endColumn-=l-u+1:u<M.startColumn?(M.startColumn=u,M.endColumn-=l-u+1):l>M.endColumn&&(M.endColumn=u-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h}],I=[{id:H.id,params:g}],p=[{id:G.id,params:S}],f=[{id:H.id,params:R}];return{preUndos:p,undos:f,preRedos:v,redos:I}}_handleRemoveRowCommand(t,n,r){const{range:i}=t,a=Re(this._univerInstanceService,n);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(i,M)&&w.push(M),w),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(i,M)){if(u<=M.startRow&&l>=M.endRow)return w;u>=M.startRow&&l<=M.endRow?M.endRow-=l-u+1:u<M.startRow?(M.startRow=u,M.endRow-=l-u+1):l>M.endRow&&(M.endRow=u-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h}],I=[{id:H.id,params:g}],p=[{id:G.id,params:S}],f=[{id:H.id,params:R}];return{preUndos:p,undos:f,preRedos:v,redos:I}}_handleInsertRangeMoveRightCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(v=>{const{startRow:I,endRow:p,startColumn:f,endColumn:w}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},v)&&(d.push(v),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},v))){const U=w-f+1;m.push({startRow:v.startRow,startColumn:v.startColumn+U,endRow:v.endRow,endColumn:v.endColumn+U})}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g);return{redos:[{id:G.id,params:h},{id:H.id,params:g}],undos:[{id:H.id,params:R},{id:G.id,params:S}]}}_handleInsertRangeMoveDownCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:w,endRow:u,endColumn:M},p))){const E=y-f+1;m.push({startRow:p.startRow+E,startColumn:p.startColumn,endRow:p.endRow+E,endColumn:p.endColumn})}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:v,undos:I}}_handleDeleteRangeMoveUpCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:w,endRow:u,endColumn:M},p))){const E=y-f+1,k=s.Rectangle.moveVertical(p,-E);m.push(k)}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:v,undos:I}}_handleDeleteRangeMoveLeftCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(v=>{const{startRow:I,endRow:p,startColumn:f,endColumn:w}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},v)&&(d.push(v),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},v))){const U=w-f+1;m.push({startRow:v.startRow,startColumn:v.startColumn-U,endRow:v.endRow,endColumn:v.endColumn-U})}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g);return{redos:[{id:G.id,params:h},{id:H.id,params:g}],undos:[{id:H.id,params:R},{id:G.id,params:S}]}}_checkIsMergeCell(t){return!(t.startRow===t.endRow&&t.startColumn===t.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Zi.includes(t.id)){if(!t.params)return;const n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,l=c?i.startRow:i.startColumn,d=c?a.startRow:a.startColumn,m=r.getConfig().mergeData,h=[];m.forEach(v=>{let{startRow:I,endRow:p,startColumn:f,endColumn:w,rangeType:M}=v;s.Rectangle.intersects(v,i)||(c?l<I&&d>p?(I-=u,p-=u):l>p&&d<=I&&(I+=u,p+=u):l<f&&d>w?(f-=u,w-=u):l>w&&d<=f&&(f+=u,w+=u)),v.startRow===v.endRow&&v.startColumn===v.endColumn||h.push({startRow:I,endRow:p,startColumn:f,endColumn:w,rangeType:M})}),r.getConfig().mergeData=h,this.disposableCollection.dispose();const{unitId:R,subUnitId:g}=t.params,S=v=>this.refRangeHandle(v,R,g);h.forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,S,R,g))})}if(Ki.includes(t.id)){const n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=r.getConfig().mergeData,a=t.params;if(!a)return;const{range:c}=a,u=t.id.includes("row"),l=t.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,h=m-d+1,R=[];i.forEach(I=>{let{startRow:p,endRow:f,startColumn:w,endColumn:M,rangeType:y}=I;l?u?d<=p&&(p+=h,f+=h):d<=w&&(w+=h,M+=h):u?m<p&&(p-=h,f-=h):m<w&&(w-=h,M-=h),I.startRow===I.endRow&&I.startColumn===I.endColumn||R.push({startRow:p,endRow:f,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=R,this.disposableCollection.dispose();const{unitId:g,subUnitId:S}=t.params,v=I=>this.refRangeHandle(I,g,S);R.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,v,g,S))})}}))}};exports.MergeCellController=qi([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Be(0,x.Inject(s.ICommandService)),Be(1,x.Inject(exports.RefRangeService)),Be(2,x.Inject(s.IUniverInstanceService)),Be(3,x.Inject(x.Injector)),Be(4,x.Inject(exports.SheetInterceptorService)),Be(5,x.Inject(exports.SelectionManagerService))],exports.MergeCellController);function Re(o,e){return e?o.getUniverSheetInstance(e):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function Se(o,e){return e?o.getSheetBySheetId(e):o.getActiveSheet()}var Xi=Object.defineProperty,Ji=Object.getOwnPropertyDescriptor,Qi=(o,e,t,n)=>{for(var r=n>1?void 0:n?Ji(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Xi(e,t,r),r},Ht=(o,e)=>(t,n)=>e(t,n,o);exports.NumfmtService=class extends s.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){const i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;const c=i.getStyles(),u=a.getCellRaw(n,r);if(u!=null&&u.s){const l=c.get(u.s);if(l!=null&&l.n)return l.n}return null}deleteValues(e,t,n){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles();n.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=i.getCellRaw(u,l);if(!d)return;const m=d==null?void 0:d.s,R={...m&&a.get(m)||{}};delete R.n;const g=a.setValue(R);d.s=g})})}setValues(e,t,n){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles(),c=i.getCellMatrix();n.forEach(u=>{u.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{const h=i.getCellRaw(d,m);if(h){const g={...h.s&&a.get(h.s)||{},n:{pattern:u.pattern}},S=a.setValue(g);h.s=S}else{const R={n:{pattern:u.pattern}},g=a.setValue(R);g&&c.setValue(d,m,{s:g})}})})})}};exports.NumfmtService=Qi([Ht(0,s.IResourceManagerService),Ht(1,s.IUniverInstanceService),Ht(2,s.ILogService)],exports.NumfmtService);const zt=()=>[mo,ho,lo,Ro,So,go,Co],ea=[_.Edit,_.View,_.Comment,_.Print,_.Copy,_.ManageCollaborator];var ta=Object.defineProperty,na=Object.getOwnPropertyDescriptor,oa=(o,e,t,n)=>{for(var r=n>1?void 0:n?na(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ta(e,t,r),r},jn=(o,e)=>(t,n)=>e(t,n,o);exports.WorkbookPermissionService=class extends s.Disposable{constructor(e,t){super(),this._permissionService=e,this._univerInstanceService=t,this._init()}_init(){const e=t=>{const n=t.getUnitId();zt().forEach(r=>{const i=new r(n);this._permissionService.addPermissionPoint(i)})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const n=t.getUnitId();zt().forEach(r=>{const i=new r(n);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=oa([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorkbookPermissionService),jn(0,x.Inject(s.IPermissionService)),jn(1,x.Inject(s.IUniverInstanceService))],exports.WorkbookPermissionService);var ra=Object.defineProperty,sa=Object.getOwnPropertyDescriptor,ia=(o,e,t,n)=>{for(var r=n>1?void 0:n?sa(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ra(e,t,r),r},gt=(o,e)=>(t,n)=>e(t,n,o);const aa="SHEET_DEFINED_NAME_PLUGIN";exports.DefinedNameDataController=class extends s.Disposable{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._definedNamesService=n,this._resourceManagerService=r,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const e=n=>{const r=this._definedNamesService.getDefinedNameMap(n);return r?JSON.stringify(r):""},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:aa,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:n=>e(n),parseJson:n=>t(n),onUnLoad:n=>{this._definedNamesService.removeUnitDefinedName(n)},onLoad:(n,r)=>{this._definedNamesService.registerDefinedNames(n,r)}}))}};exports.DefinedNameDataController=ia([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),gt(0,s.ICommandService),gt(1,s.IUniverInstanceService),gt(2,ie.IDefinedNamesService),gt(3,s.IResourceManagerService)],exports.DefinedNameDataController);const Ue=()=>[fo,vo],ca=(o="unitId",e="subUnitId",t="permissionId")=>Ue().reduce((n,r)=>{const i=new r(o,e,t);return n[i.subType]=i.value,n},{});var ua=Object.defineProperty,la=Object.getOwnPropertyDescriptor,da=(o,e,t,n)=>{for(var r=n>1?void 0:n?la(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ua(e,t,r),r},Bn=(o,e)=>(t,n)=>e(t,n,o);exports.RangeProtectionRenderModel=class{constructor(e,t){C(this,"_cache",new s.LRUMap(1e4));this._selectionProtectionRuleModel=e,this._permissionService=t,this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(et.filter(e=>e.type===O.SelectRange),et.filter(e=>Ue().some(t=>e instanceof t)),et.map(e=>e)).subscribe(e=>{const t=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(const n of t)n.permissionId===e.permissionId&&n.ranges.forEach(r=>{s.Range.foreach(r,(i,a)=>{const c=this._createKey(e.unitId,e.subUnitId,i,a);this._cache.delete(c)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{var t;e.rule.ranges.forEach(n=>{s.Range.foreach(n,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}),e.type==="set"&&((t=e.oldRule)==null||t.ranges.forEach(n=>{s.Range.foreach(n,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}))})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){const i=this._createKey(e,t,n,r),a=this._cache.get(i);if(a)return a;const c=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),u=[];if(!c||!c.length)return u;const l=[];for(const d of c)if(d.ranges.some(m=>m.startRow<=n&&m.endRow>=n&&m.startColumn<=r&&m.endColumn>=r)){const m=Ue().reduce((h,R)=>{var v;const g=new R(e,t,d.permissionId),S=this._permissionService.getPermissionPoint(g.id);return h[g.subType]=(v=S==null?void 0:S.value)!=null?v:g.value,h},{});l.push({...m,ruleId:d.id,ranges:d.ranges})}return this._cache.set(i,l),l}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=da([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),Bn(0,x.Inject(exports.RangeProtectionRuleModel)),Bn(1,x.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var ma=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=(o,e,t,n)=>{for(var r=n>1?void 0:n?ha(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ma(e,t,r),r},Qe=(o,e)=>(t,n)=>e(t,n,o);const Ra=[_e.id,ye.id,fe.id,be.id],Sa=[Ne.id,ke.id];exports.RangeProtectionRefRangeService=class extends s.Disposable{constructor(t,n,r,i,a){super();C(this,"disposableCollection",new s.DisposableCollection);this._selectionProtectionRuleModel=t,this._univerInstanceService=n,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._onRefRangeChange(),this._correctPermissionRange()}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a||!(a==null?void 0:a.getSheetBySheetId(i)))return;this.disposableCollection.dispose();const u=d=>this.refRangeHandle(d,r,i);this._selectionProtectionRuleModel.getSubunitRuleList(r,i).reduce((d,m)=>[...d,...m.ranges],[]).forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,u,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===jt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===vn.id||r.id===fn.id){const i=r.params,a=i.rule.subUnitId,c=i.rule.unitId;if(!a||!c)return;t(c,a)}}));const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(n){const r=n.getActiveSheet();t(n.getUnitId(),r.getSheetId())}}refRangeHandle(t,n,r){switch(t.id){case xt.id:return this._getRefRangeMutationsByMoveRows(t.params,n,r);case Vt.id:return this._getRefRangeMutationsByMoveCols(t.params,n,r);case Ve.id:return this._getRefRangeMutationsByInsertRows(t.params,n,r);case Le.id:return this._getRefRangeMutationsByInsertCols(t.params,n,r);case at.id:return this._getRefRangeMutationsByDeleteCols(t.params,n,r);case it.id:return this._getRefRangeMutationsByDeleteRows(t.params,n,r)}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(t,n,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((h,R)=>{if(s.Rectangle.intersects(R,a)){const g=s.Tools.deepClone(R),{startColumn:S,endColumn:v}=a;if(S<=g.startColumn&&v>=g.endColumn)return h;S>=g.startColumn&&v<=g.endColumn?g.endColumn-=v-S+1:S<g.startColumn?(g.startColumn=S,g.endColumn-=v-S+1):v>g.endColumn&&(g.endColumn=S-1),this._checkIsRightRange(g)&&h.push(g)}return h},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:l.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(t,n,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((h,R)=>{if(s.Rectangle.intersects(R,a)){const g=s.Tools.deepClone(R),{startRow:S,endRow:v}=a;if(S<=g.startRow&&v>=g.endRow)return h;S>=g.startRow&&v<=g.endRow?g.endRow-=v-S+1:S<g.startRow?(g.startRow=S,g.endRow-=v-S+1):v>g.endRow&&(g.endRow=S-1),this._checkIsRightRange(g)&&h.push(g)}return h},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:l.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(t,n,r){const i=t.range.startColumn,a=t.range.endColumn-t.range.startColumn+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(u=>u.ranges.some(l=>i>l.startColumn&&i<=l.endColumn));if(c.length){const u=[],l=[];return c.forEach(d=>{const m=s.Tools.deepClone(d);let h=!1;m.ranges.forEach(R=>{i>R.startColumn&&i<=R.endColumn&&(R.endColumn+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(t,n,r){const i=t.range.startRow,a=t.range.endRow-t.range.startRow+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(u=>u.ranges.some(l=>i>l.startRow&&i<=l.endRow));if(c.length){const u=[],l=[];return c.forEach(d=>{const m=s.Tools.deepClone(d);let h=!1;m.ranges.forEach(R=>{i>R.startRow&&i<=R.endRow&&(R.endRow+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(t,n,r){const i=t.toRange,a=i.startRow,c=i.endRow-i.startRow+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(l=>l.ranges.some(d=>a>d.startRow&&a<=d.endRow));if(u.length){const l=[],d=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),g=t.fromRange.startRow;let S=!1;h.ranges.forEach(v=>{a>v.startRow&&a<=v.endRow&&(g<v.startRow&&(v.startRow=v.startRow-c,v.endRow=v.endRow-c),v.endRow+=c,S=!0)}),S&&(l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:h,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(t,n,r){const i=t.toRange,a=i.startColumn,c=i.endColumn-i.startColumn+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(l=>l.ranges.some(d=>a>d.startColumn&&a<=d.endColumn));if(u.length){const l=[],d=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),g=t.fromRange.startColumn;let S=!1;h.ranges.forEach(v=>{a>v.startColumn&&a<=v.endColumn&&(g<v.startColumn&&(v.startColumn=v.startColumn-c,v.endColumn=v.endColumn-c),v.endColumn+=c,S=!0)}),S&&(l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:h,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Sa.includes(t.id)){if(!t.params)return;const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,l=c?i.startRow:i.startColumn,d=c?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(v=>{v.ranges.forEach(p=>{let{startRow:f,endRow:w,startColumn:M,endColumn:y}=p;s.Rectangle.intersects(p,i)||(c?l<f&&d>w?(f-=u,w-=u):l>w&&d<=f&&(f+=u,w+=u):l<M&&d>y?(M-=u,y-=u):l>y&&d<=M&&(M+=u,y+=u)),this._checkIsRightRange({startRow:f,endRow:w,startColumn:M,endColumn:y})&&(p.startColumn=M,p.endColumn=y,p.startRow=f,p.endRow=w)})}),this.disposableCollection.dispose();const{unitId:h,subUnitId:R}=t.params,g=v=>this.refRangeHandle(v,h,R);this._selectionProtectionRuleModel.getSubunitRuleList(h,R).reduce((v,I)=>[...v,...I.ranges],[]).forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,g,h,R))}),this._selectionProtectionRenderModel.clear()}if(Ra.includes(t.id)){const n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=t.params;if(!i)return;const{range:a}=i,c=t.id.includes("row"),u=t.id.includes("insert"),l=c?a.startRow:a.startColumn,d=c?a.endRow:a.endColumn,m=d-l+1;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(I=>{I.ranges.forEach(f=>{let{startRow:w,endRow:M,startColumn:y,endColumn:U}=f;u?c?l<=w&&(w+=m,M+=m):l<=y&&(y+=m,U+=m):c?d<w&&(w-=m,M-=m):d<y&&(y-=m,U-=m),this._checkIsRightRange({startRow:w,endRow:M,startColumn:y,endColumn:U})&&(f.startColumn=y,f.endColumn=U,f.startRow=w,f.endRow=M)})}),this.disposableCollection.dispose();const{unitId:R,subUnitId:g}=t.params,S=I=>this.refRangeHandle(I,R,g);this._selectionProtectionRuleModel.getSubunitRuleList(R,g).reduce((I,p)=>[...I,...p.ranges],[]).forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,S,R,g))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(t){return t.startRow<=t.endRow&&t.startColumn<=t.endColumn}};exports.RangeProtectionRefRangeService=ga([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRefRangeService),Qe(0,x.Inject(exports.RangeProtectionRuleModel)),Qe(1,x.Inject(s.IUniverInstanceService)),Qe(2,s.ICommandService),Qe(3,x.Inject(exports.RefRangeService)),Qe(4,x.Inject(exports.RangeProtectionRenderModel))],exports.RangeProtectionRefRangeService);var Ca=Object.defineProperty,va=Object.getOwnPropertyDescriptor,fa=(o,e,t,n)=>{for(var r=n>1?void 0:n?va(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Ca(e,t,r),r},Gt=(o,e)=>(t,n)=>e(t,n,o);const Ia="SHEET_RANGE_PROTECTION_PLUGIN";exports.RangeProtectionService=class extends s.Disposable{constructor(e,t,n){super(),this._selectionProtectionRuleModel=e,this._permissionService=t,this._resourceManagerService=n,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Ue().forEach(t=>{const n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break}case"delete":{Ue().forEach(t=>{const n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(n.id)});break}case"set":{e.oldRule.permissionId!==e.rule.permissionId&&Ue().forEach(t=>{const n=new t(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(n.id);const r=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}}))}_initSnapshot(){const e=n=>{const i=this._selectionProtectionRuleModel.toObject()[n];return i?JSON.stringify(i):""},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:Ia,businesses:[wt.UNIVER_SHEET],onLoad:(n,r)=>{const i=this._selectionProtectionRuleModel.toObject();i[n]=r,this._selectionProtectionRuleModel.fromObject(i);const a=[];Object.keys(r).forEach(c=>{const u=r[c];this._selectionProtectionRuleModel.getSubunitRuleList(n,c).forEach(l=>{a.push({objectID:l.permissionId,unitID:n,objectType:O.SelectRange,actions:[_.View,_.Edit]})}),u.forEach(l=>{Ue().forEach(d=>{const m=new d(n,c,l.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=fa([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionService),Gt(0,x.Inject(exports.RangeProtectionRuleModel)),Gt(1,x.Inject(s.IPermissionService)),Gt(2,x.Inject(s.IResourceManagerService))],exports.RangeProtectionService);var pa=Object.defineProperty,Ma=Object.getOwnPropertyDescriptor,wa=(o,e,t,n)=>{for(var r=n>1?void 0:n?Ma(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&pa(e,t,r),r},Rt=(o,e)=>(t,n)=>e(t,n,o);const ya="SHEET_PLUGIN";var St;exports.UniverSheetsPlugin=(St=class extends s.Plugin{constructor(e,t,n,r,i){super(),this._config=e,this._commandService=t,this._configService=n,this._localeService=r,this._injector=i,this._initConfig(),this._initDependencies(i)}onRendered(){}_initConfig(){var e;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(Mr,!0)}_initDependencies(e){var n,r;const t=[[$e],[exports.SelectionManagerService],[exports.RefRangeService],[exports.WorkbookPermissionService],[je,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[It],[exports.MergeCellController],[exports.DefinedNameDataController],[exports.WorksheetPermissionService],[exports.WorksheetProtectionRuleModel],[exports.WorksheetProtectionPointModel],[exports.RangeProtectionRenderModel],[exports.RangeProtectionRuleModel],[exports.RangeProtectionRefRangeService],[exports.RangeProtectionService]];(n=this._config)!=null&&n.notExecuteFormula||t.push([pt],[Mt]),s.mergeOverrideWithDependencies(t,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}},C(St,"pluginName",ya),C(St,"type",s.UniverInstanceType.UNIVER_SHEET),St);exports.UniverSheetsPlugin=wa([Rt(1,s.ICommandService),Rt(2,s.IConfigService),Rt(3,x.Inject(s.LocaleService)),Rt(4,x.Inject(x.Injector))],exports.UniverSheetsPlugin);const _a=[pe.id,ge.id,un.id,Ie.id,ct.id,Ne.id,ke.id,He.id,Ge.id,Ye.id,ze.id,_e.id,ye.id,fe.id,be.id],ba=[Y.id,Fe.id,G.id,H.id],Pa=1.5,Ua="rgba(255, 255, 255, 0.01)";function Ta(o){const e=o.getCurrentTheme(),t=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:e.primaryColor,fill:t,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:t,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:t,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function Ea(o){const{rangeWithCoord:e,primaryWithCoord:t,style:n}=o,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:n};return t!=null&&(r.primary=Tr(t)),r}function Tr(o){const{actualRow:e,actualColumn:t,isMerged:n,isMergedMainCell:r}=o,{startRow:i,startColumn:a,endRow:c,endColumn:u}=o.mergeInfo;return{actualRow:e,actualColumn:t,isMerged:n,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function Na(o,e,t){const n=Pt.getCellInfoInMergeData(o,e,t),r=s.makeCellRangeToRangeData(n);if(r)return{range:r,primary:n,style:null}}const ka=(o,e,t)=>{const r=o.get(exports.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:c,subUnitId:u}=e;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:h}=d;let{startRow:R,startColumn:g,endRow:S,endColumn:v}=a[a.length-1];if(i===s.Dimension.COLUMNS){const w=t.find(M=>M.startColumn===m&&M.endColumn===m&&h===M.startRow);w&&(v=w.endColumn,R=w.startRow,S=w.endRow)}else if(i===s.Dimension.ROWS){const w=t.find(M=>M.startRow===h&&M.endRow===h&&m===M.startColumn);w&&(S=w.endRow,g=w.startColumn,v=w.endColumn)}const I={startRow:R,startColumn:g,endRow:S,endColumn:v,actualRow:h,actualColumn:m,isMerged:!0,isMergedMainCell:R===h&&g===m},p=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?I:null})),f={unitId:c,subUnitId:u,pluginName:X,selections:p};return{id:K.id,params:f}}return null}return null},Oa=(o,e)=>{const n=o.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:i}=e;if(n&&n[(n==null?void 0:n.length)-1].primary){const u={unitId:r,subUnitId:i,pluginName:X,selections:[...n]};return{id:K.id,params:u}}return null},Er="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",Nr="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",Da=25,Aa=80;class kr extends Pt.SheetExtension{constructor(){super();C(this,"_pattern",null);C(this,"_img",new Image);C(this,"renderCache",new Set);this._img.src=Sr}clearCache(){this.renderCache.clear()}draw(t,n,r,i){const{rowHeightAccumulation:a,columnWidthAccumulation:c,worksheet:u,dataMergeCache:l}=r;u&&(t.save(),this._pattern||(this._pattern=t.createPattern(this._img,"repeat")),this.renderCache.clear(),s.Range.foreach(r.rowColumnSegment,(d,m)=>{if(!u.getColVisible(m)||!u.getRowVisible(d))return;const{selectionProtection:h=[]}=u.getCell(d,m)||{};this._pattern&&(t.fillStyle=this._pattern,h.forEach(R=>{if(R.ruleId&&this.shouldRender(R)){if(this.renderCache.has(R.ruleId))return;this.renderCache.add(R.ruleId),R.ranges.forEach(g=>{const S=this.getCellIndex(g.startRow,g.startColumn,a,c,l),v=this.getCellIndex(g.endRow,g.endColumn,a,c,l);t.fillRect(S.startX,S.startY,v.endX-S.startX,v.endY-S.startY)})}}))}),t.restore())}}class Wa extends kr{constructor(){super();C(this,"uKey",Er);C(this,"Z_INDEX",Da)}shouldRender(t){return(t==null?void 0:t[_.View])!==!1}}class xa extends kr{constructor(){super();C(this,"uKey",Nr);C(this,"Z_INDEX",Aa)}shouldRender(t){return(t==null?void 0:t[_.View])===!1}}exports.AddMergeRedoSelectionsOperationFactory=ka;exports.AddMergeUndoMutationFactory=Ce;exports.AddMergeUndoSelectionsOperationFactory=Oa;exports.AddRangeProtectionCommand=vn;exports.AddRangeProtectionMutation=Ke;exports.AddWorksheetMergeMutation=H;exports.AddWorksheetProtectionMutation=hr;exports.BorderStyleManagerService=$e;exports.COMMAND_LISTENER_SKELETON_CHANGE=_a;exports.COMMAND_LISTENER_VALUE_CHANGE=ba;exports.ClearSelectionAllCommand=Ut;exports.ClearSelectionContentCommand=Yt;exports.ClearSelectionFormatCommand=Tt;exports.CopySheetCommand=Yn;exports.DeleteRangeMoveLeftCommand=Ot;exports.DeleteRangeMoveUpCommand=Dt;exports.DeleteRangeProtectionCommand=Ir;exports.DeleteRangeProtectionMutation=qe;exports.DeleteWorksheetProtectionMutation=Rr;exports.DeltaColumnWidthCommand=sn;exports.DeltaRowHeightCommand=ln;exports.EffectRefRangId=W;exports.EmptyMutation=cr;exports.FactoryAddRangeProtectionMutation=Si;exports.FactoryDeleteRangeProtectionMutation=Ri;exports.FactorySetRangeProtectionMutation=Ci;exports.INTERCEPTOR_POINT=Ct;exports.INumfmtService=je;exports.InsertColAfterCommand=Uo;exports.InsertColBeforeCommand=Po;exports.InsertColCommand=Le;exports.InsertColMutation=_e;exports.InsertColMutationUndoFactory=Qt;exports.InsertDefinedNameCommand=ur;exports.InsertRangeMoveDownCommand=At;exports.InsertRangeMoveRightCommand=Wt;exports.InsertRowAfterCommand=_o;exports.InsertRowBeforeCommand=yo;exports.InsertRowCommand=Ve;exports.InsertRowMutation=ye;exports.InsertRowMutationUndoFactory=Jt;exports.InsertSheetCommand=To;exports.InsertSheetMutation=De;exports.InsertSheetUndoMutationFactory=qt;exports.MAX_CELL_PER_SHEET_KEY=pr;exports.MoveColsCommand=Vt;exports.MoveColsMutation=ke;exports.MoveColsMutationUndoFactory=No;exports.MoveRangeCommand=Nt;exports.MoveRangeMutation=Fe;exports.MoveRowsCommand=xt;exports.MoveRowsMutation=Ne;exports.MoveRowsMutationUndoFactory=Eo;exports.NORMAL_SELECTION_PLUGIN_NAME=X;exports.OperatorType=L;exports.RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY=Nr;exports.RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY=Er;exports.RangeMergeUtil=Hs;exports.RangeProtectionCanNotViewRenderExtension=xa;exports.RangeProtectionCanViewRenderExtension=Wa;exports.RangeProtectionPermissionEditPoint=vo;exports.RangeProtectionPermissionViewPoint=fo;exports.RemoveColCommand=at;exports.RemoveColMutation=fe;exports.RemoveDefinedNameCommand=lr;exports.RemoveMergeUndoMutationFactory=ue;exports.RemoveNumfmtMutation=Rn;exports.RemoveRowCommand=it;exports.RemoveRowMutation=be;exports.RemoveSheetCommand=en;exports.RemoveSheetMutation=Ze;exports.RemoveSheetUndoMutationFactory=zn;exports.RemoveWorksheetMergeCommand=Wo;exports.RemoveWorksheetMergeMutation=G;exports.ResetBackgroundColorCommand=Ko;exports.ResetTextColorCommand=Yo;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Ua;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Pa;exports.ScrollToCellOperation=mr;exports.SelectionMoveType=Fn;exports.SetBackgroundColorCommand=qo;exports.SetBoldCommand=Ns;exports.SetBorderBasicCommand=xo;exports.SetBorderColorCommand=$o;exports.SetBorderCommand=Xe;exports.SetBorderPositionCommand=Vo;exports.SetBorderStyleCommand=Lo;exports.SetColHiddenCommand=tn;exports.SetColHiddenMutation=He;exports.SetColVisibleMutation=Ge;exports.SetColWidthCommand=yt;exports.SetDefinedNameCommand=dr;exports.SetFontFamilyCommand=As;exports.SetFontSizeCommand=Ws;exports.SetFrozenCommand=Fo;exports.SetFrozenMutation=Te;exports.SetFrozenMutationFactory=nn;exports.SetHorizontalTextAlignCommand=Xo;exports.SetItalicCommand=ks;exports.SetNumfmtMutation=Bt;exports.SetRangeProtectionCommand=fn;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=st;exports.SetRangeValuesMutation=Y;exports.SetRangeValuesUndoMutationFactory=Me;exports.SetRowHeightCommand=dn;exports.SetRowHiddenCommand=on;exports.SetRowHiddenMutation=Ye;exports.SetRowVisibleMutation=ze;exports.SetSelectedColsVisibleCommand=jo;exports.SetSelectedRowsVisibleCommand=Ho;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=Lt;exports.SetSpecificRowsVisibleCommand=$t;exports.SetStrikeThroughCommand=Ds;exports.SetStyleCommand=te;exports.SetTabColorCommand=er;exports.SetTabColorMutation=tt;exports.SetTextColorCommand=zo;exports.SetTextRotationCommand=Qo;exports.SetTextWrapCommand=Jo;exports.SetUnderlineCommand=Os;exports.SetVerticalTextAlignCommand=Zo;exports.SetWorkbookNameCommand=Cn;exports.SetWorkbookNameMutation=Sn;exports.SetWorksheetActivateCommand=jt;exports.SetWorksheetActiveOperation=ct;exports.SetWorksheetColWidthMutation=Ie;exports.SetWorksheetColWidthMutationFactory=rn;exports.SetWorksheetHideCommand=nr;exports.SetWorksheetHideMutation=Ee;exports.SetWorksheetNameCommand=an;exports.SetWorksheetNameMutation=_t;exports.SetWorksheetOrderCommand=or;exports.SetWorksheetOrderMutation=nt;exports.SetWorksheetPermissionPointsCommand=fr;exports.SetWorksheetProtectionMutation=gr;exports.SetWorksheetRowAutoHeightMutation=un;exports.SetWorksheetRowAutoHeightMutationFactory=Bs;exports.SetWorksheetRowHeightMutation=pe;exports.SetWorksheetRowIsAutoHeightCommand=mn;exports.SetWorksheetRowIsAutoHeightMutation=ge;exports.SetWorksheetShowCommand=sr;exports.WorkbookCommentPermission=lo;exports.WorkbookCopyPermission=So;exports.WorkbookCreateSheetPermission=hs;exports.WorkbookDeleteSheetPermission=ls;exports.WorkbookDuplicatePermission=cs;exports.WorkbookEditablePermission=mo;exports.WorkbookExportPermission=go;exports.WorkbookHideSheetPermission=ds;exports.WorkbookHistoryPermission=gs;exports.WorkbookManageCollaboratorPermission=Co;exports.WorkbookMoveSheetPermission=us;exports.WorkbookPrintPermission=ho;exports.WorkbookRenameSheetPermission=ms;exports.WorkbookSharePermission=Rs;exports.WorkbookViewPermission=Ro;exports.WorksheetCopyPermission=Kn;exports.WorksheetDeleteColumnPermission=so;exports.WorksheetDeleteRowPermission=ro;exports.WorksheetEditExtraObjectPermission=uo;exports.WorksheetEditPermission=Kt;exports.WorksheetFilterPermission=ao;exports.WorksheetInsertColumnPermission=no;exports.WorksheetInsertHyperlinkPermission=oo;exports.WorksheetInsertRowPermission=to;exports.WorksheetManageCollaboratorPermission=as;exports.WorksheetPivotTablePermission=co;exports.WorksheetSelectProtectedCellsPermission=ss;exports.WorksheetSelectUnProtectedCellsPermission=is;exports.WorksheetSetCellStylePermission=Zn;exports.WorksheetSetCellValuePermission=Xn;exports.WorksheetSetColumnStylePermission=eo;exports.WorksheetSetRowStylePermission=Qn;exports.WorksheetSortPermission=io;exports.WorksheetViewPermission=Jn;exports.alignToMergedCellsBorders=rt;exports.convertPrimaryWithCoordToPrimary=Tr;exports.convertSelectionDataToRange=Ea;exports.createTopMatrixFromMatrix=ar;exports.createTopMatrixFromRanges=ir;exports.defaultWorkbookPermissionPoints=ea;exports.defaultWorksheetPermissionPoint=Js;exports.factoryRemoveNumfmtUndoMutation=qs;exports.factorySetNumfmtUndoMutation=Ys;exports.findAllRectangle=hn;exports.followSelectionOperation=we;exports.getAddMergeMutationRangeByType=Ur;exports.getAllRangePermissionPoint=Ue;exports.getAllWorkbookPermissionPoint=zt;exports.getAllWorksheetPermissionPoint=Pe;exports.getAllWorksheetPermissionPointByPointPanel=ft;exports.getCellAtRowCol=ts;exports.getDefaultRangePermission=ca;exports.getInsertRangeMutations=Zt;exports.getMoveRangeUndoRedoMutations=kt;exports.getNormalSelectionStyle=Ta;exports.getPrimaryForRange=ae;exports.getRemoveRangeMutations=Xt;exports.getSheetCommandTarget=B;exports.getSheetCommandTargetWorkbook=Gn;exports.getSheetMutationTarget=Et;exports.handleBaseInsertRange=We;exports.handleBaseMoveRowsCols=ot;exports.handleBaseRemoveRange=Ae;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=xi;exports.handleDefaultRangeChangeWithEffectRefCommands=Wi;exports.handleDeleteRangeMoveLeft=br;exports.handleDeleteRangeMoveUp=Pr;exports.handleDeleteRangeMutation=Cs;exports.handleIRemoveCol=Mn;exports.handleIRemoveRow=wn;exports.handleInsertCol=_n;exports.handleInsertRangeMoveDown=yr;exports.handleInsertRangeMoveRight=_r;exports.handleInsertRangeMutation=Ss;exports.handleInsertRow=yn;exports.handleMoveCols=pn;exports.handleMoveRange=wr;exports.handleMoveRows=In;exports.isSingleCellSelection=os;exports.rangeMerge=gn;exports.rotateRange=le;exports.runRefRangeMutations=xe;exports.setEndForRange=ns;exports.transformCellDataToSelectionData=Na;exports.transformCellsToRange=bt;