@univerjs/sheets 0.1.0-beta.3 → 0.1.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +1 -1
- package/lib/es/index.js +2021 -1955
- package/lib/types/basics/interfaces/mutation-interface.d.ts +1 -0
- package/lib/types/basics/selection.d.ts +4 -0
- package/lib/types/commands/commands/insert-row-col.command.d.ts +1 -1
- package/lib/types/commands/commands/utils/selection-utils.d.ts +2 -9
- package/lib/types/index.d.ts +2 -1
- package/lib/types/services/ref-range/util.d.ts +23 -3
- package/lib/umd/index.js +1 -1
- package/package.json +26 -13
package/lib/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var ro=Object.defineProperty;var so=(t,e,o)=>e in t?ro(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o;var x=(t,e,o)=>(so(t,typeof e!="symbol"?e+"":e,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),F=require("@wendellhu/redi"),Ue=require("rxjs"),vt=require("@univerjs/engine-formula"),io=require("rxjs/operators"),ao=require("@univerjs/engine-render");var co=Object.defineProperty,uo=Object.getOwnPropertyDescriptor,lo=(t,e,o,n)=>{for(var r=n>1?void 0:n?uo(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&co(e,o,r),r},mo=(t,e)=>(o,n)=>e(o,n,t);const G="normalSelectionPluginName";var nn=(t=>(t[t.MOVE_START=0]="MOVE_START",t[t.MOVING=1]="MOVING",t[t.MOVE_END=2]="MOVE_END",t))(nn||{});exports.SelectionManagerService=class{constructor(e){x(this,"_selectionInfo",new Map);x(this,"_currentSelection",null);x(this,"_selectionMoveStart$",new Ue.Subject);x(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());x(this,"_selectionMoving$",new Ue.Subject);x(this,"selectionMoving$",this._selectionMoving$.asObservable());x(this,"_selectionMoveEnd$",new Ue.BehaviorSubject(null));x(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());x(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var o,n;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,n;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId})}reset(){var e,o;this._currentSelection!=null&&(this._currentSelection={pluginName:G,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=G,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const e=this.getSelections();return e==null?!1:e.some(({range:o},n)=>e.some(({range:r},a)=>n===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(e){var a,i;if(e==null)return;const{pluginName:o,unitId:n,sheetId:r}=e;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(n))==null?void 0:i.get(r)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[0]}_getLastByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[o.length-1]}_addByParam(e,o=!0){const{pluginName:n,unitId:r,sheetId:a,selectionDatas:i}=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(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:n,unitId:r,sheetId:a})}_replaceByParam(e){const{pluginName:o,unitId:n,sheetId:r,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(n)||i.set(n,new Map);const c=i.get(n);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(e){const o=this._getSelectionDatas(e);o==null||o.splice(0),this._refresh(e)}_removeByParam(e,o){const n=this._getSelectionDatas(o);n==null||n.splice(e,1),this._refresh(o)}};exports.SelectionManagerService=lo([mo(0,F.Inject(s.ThemeService))],exports.SelectionManagerService);const go=s.createInterceptorKey("CELL_CONTENT"),ho=s.createInterceptorKey("PERMISSION"),_e={CELL_CONTENT:go,PERMISSION:ho};var So=Object.defineProperty,vo=Object.getOwnPropertyDescriptor,Io=(t,e,o,n)=>{for(var r=n>1?void 0:n?vo(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&So(e,o,r),r},Co=(t,e)=>(o,n)=>e(o,n,t);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();x(this,"_interceptorsByName",new Map);x(this,"_commandInterceptors",[]);x(this,"_workbookDisposables",new Map);x(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(n=>{this._interceptWorkbook(n)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(n=>this._disposeWorkbookInterceptor(n)))),this.intercept(_e.CELL_CONTENT,{priority:-1,handler(n,r){const a=r.worksheet.getCellRaw(r.row,r.col);return n?{...a,...n}:a}}),this.intercept(_e.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((n,r)=>(r.priority??0)-(n.priority??0)),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const n=this._commandInterceptors.map(r=>r.getMutations(o));return{undos:n.map(r=>r.undos).flat(),redos:n.map(r=>r.redos).flat()}}intercept(o,n){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(n),this._interceptorsByName.set(r,a.sort((i,c)=>(c.priority??0)-(i.priority??0))),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(o){const n=o,r=this._interceptorsByName.get(n);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const n=new s.DisposableCollection,r=o.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,h){return a.fetchThroughInterceptors(_e.CELL_CONTENT)(c.getCellRaw(g,h),{unitId:r,subUnitId:u,row:g,col:h,worksheet:c,workbook:o})}});d.add(m),a._worksheetDisposables.set(qt(r,c),d)})};o.getSheets().forEach(c=>i(c)),n.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),n.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),n.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(o){const n=o.getUnitId(),r=this._workbookDisposables.get(n);r&&(r.dispose(),this._workbookDisposables.delete(n))}_disposeSheetInterceptor(o,n){const r=qt(o,n),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Io([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Co(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function qt(t,e){return`${t}|${e.getSheetId()}`}const de=(t,e)=>{const{unitId:o,subUnitId:n,cellValue:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(n);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,h,S)=>{const I=s.Tools.deepClone(u==null?void 0:u.getValue(g,h))||{},v=l.getStyleByCell(I),C=po(v,S&&S.s?S.s:null);I.s=C,d.setValue(g,h,fo(I))}),{...e,options:{},cellValue:d.getMatrix()}};function fo(t){return t==null?null:(t.f===void 0&&(t.f=null),t.si===void 0&&(t.si=null),t.p===void 0&&(t.p=null),t.v===void 0&&(t.v=null),t.t===void 0&&(t.t=null),t.s===void 0&&(t.s=null),t)}const H={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(t,e)=>{const{cellValue:o,subUnitId:n,unitId:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(n);if(!c)return!1;const u=c.getCellMatrix(),l=i.getStyles();return new s.ObjectMatrix(o).forValue((m,g,h)=>{if(!h)u==null||u.setValue(m,g,{});else{const S=u.getValue(m,g)||{},I=h.t===s.CellValueType.FORCE_STRING?h.t:Ro(h.v===void 0?S.v:h.v);if(h.f!==void 0&&(S.f=h.f),h.si!==void 0&&(S.si=h.si),h.p!==void 0&&(S.p=h.p),h.v!==void 0&&(S.v=I===s.CellValueType.NUMBER?Number(h.v):h.v),S.v!==void 0&&(S.t=I),h.s!==void 0){const v=l.getStyleByCell(S);v==null&&delete S.s,typeof h.s=="string"&&(h.s=l.get(h.s));const C=on(v,h.s?h.s:null);C&&s.Tools.removeNull(C),s.Tools.isEmptyObject(C)?delete S.s:S.s=l.setValue(C),!h.p&&S.p&&yo(S.p,h.s?h.s:null)}u.setValue(m,g,s.Tools.removeNull(S))}}),!0}};function Ro(t){return t===null?null:typeof t=="string"?_o(t)?s.CellValueType.NUMBER:s.CellValueType.STRING:typeof t=="number"?s.CellValueType.NUMBER:typeof t=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function po(t,e){return Mo(t,e)}function Mo(t,e){if(!e||!Object.keys(e).length)return t;const o=t||{};for(const n in e)n==="bd"?o[n]=wo(o[n]||{},e[n]):n in o||(o[n]=null);return o}function wo(t,e){if(!e||!Object.keys(e).length)return t;for(const o in e)o in t||(t[o]=null);return t}function on(t,e,o=!1){if(e===null)return e;if(e===void 0)return t;const n=s.Tools.deepClone(t)||{};if(n){for(const r in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in n&&r==="bd"?n[r]=Object.assign(n[r],e[r]):n[r]=e[r]);return"cl"in n&&("ul"in n&&(n.ul.cl=n.cl),"ol"in n&&(n.ol.cl=n.cl),"st"in n&&(n.st.cl=n.cl)),n}}function yo(t,e){var o,n;(n=(o=t.body)==null?void 0:o.textRuns)==null||n.forEach(r=>{r.ts||(r.ts={});const a=r.ts||{},i=on(a,e,!0);i&&s.Tools.removeNull(i),s.Tools.isEmptyObject(i)?delete r.ts:r.ts=i})}function Uo(t){return/^-?\d+(\.\d+)?$/.test(t)}function _o(t){return Uo(t)?Number(t)<=Number.MAX_SAFE_INTEGER:!1}const tt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),n=t.get(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),a=t.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],h={subUnitId:l,unitId:c,cellValue:bo(d)},S=de(t,h);m.push({id:H.id,params:h}),g.push({id:H.id,params:S});const I=a.onCommandExecute({id:tt.id});return m.push(...I.redos),g.unshift(...I.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function bo(t){const e=new s.ObjectMatrix;return t.forEach(o=>{const{startRow:n,startColumn:r,endRow:a,endColumn:i}=o;for(let c=n;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const Ct={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),n=t.get(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),a=t.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:To(d)},g=de(t,m),h=a.onCommandExecute({id:Ct.id}),S=[{id:H.id,params:m},...h.redos],I=[...h.undos,{id:H.id,params:g}];return s.sequenceExecute(S,o).result?(r.pushUndoRedo({unitID:c,undoMutations:I,redoMutations:S}),!0):!1}};function To(t){const e=new s.ObjectMatrix;return t.forEach(o=>{const{startRow:n,startColumn:r,endRow:a,endColumn:i}=o;for(let c=n;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null})}),e.getData()}const nt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),n=t.get(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),a=t.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],h={subUnitId:l,unitId:c,cellValue:Eo(d)},S=de(t,h);m.push({id:H.id,params:h}),g.push({id:H.id,params:S});const I=a.onCommandExecute({id:nt.id});return m.push(...I.redos),g.unshift(...I.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Eo(t){const e=new s.ObjectMatrix;return t.forEach(o=>{const{startRow:n,startColumn:r,endRow:a,endColumn:i}=o;for(let c=n;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{s:null})}),e.getData()}const ft=(t,e)=>({subUnitId:e.sheet.id,unitId:e.unitId}),ve={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService),{sheet:n,index:r,unitId:a}=e,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(n.id,r,n):!1}},rn=(t,e)=>{const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:a}=e,i=n.getSheetBySheetId(r).getConfig();return{index:n.getConfig().sheetOrder.findIndex(l=>l===r),sheet:i,unitId:a}},We={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService),{subUnitId:n,unitId:r}=e,a=o.getUniverSheetInstance(r);if(!a)return!1;const i=a.getWorksheets(),c=a.getConfig(),{sheets:u}=c;if(u[n]==null)throw new Error(`Remove sheet fail ${n} does not exist`);const l=c.sheetOrder.findIndex(d=>d===n);return delete u[n],c.sheetOrder.splice(l,1),i.delete(n),!0}},sn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=e.unitId??i,c=e.subUnitId??c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d=s.Tools.deepClone(l.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(l)+1,sheet:d,unitId:i},h=ft(t,g);return o.syncExecuteCommand(ve.id,g)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:h}],redoMutations:[{id:ve.id,params:g}]}),!0):!1}},Le={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{from:o,to:n}=e;if(!o||!n)return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(e.from.subUnitId),c=a.getSheetBySheetId(e.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(n.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},z={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(t,e)=>{const o=t.get(exports.SelectionManagerService);if(!e)return!1;const{selections:n,type:r}=e;return o.replace(n,r),!0}};function je(t,e,o=!0){const n=e.getMatrixWithMergedCells(...s.selectionToArray(t)),r=[];if(n.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(t,l)||r.push(l)}}),r.length===0)return t;const a=s.Rectangle.union(t,...r);return o?je(a,e,o):a}function Do(t,e,o){let n=null;return o.getMatrixWithMergedCells(t,e,t,e).forValue((a,i,c)=>(n={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)),n||{actualColumn:e,actualRow:t,startRow:t,startColumn:e,endRow:t,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function X(t,e){const o=e.getMergedCell(t.startRow,t.startColumn);return o?{...o,actualRow:t.startRow,actualColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.startRow,endColumn:t.startColumn,actualRow:t.startRow,actualColumn:t.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const le=(t,e,o)=>({id:z.id,params:{unitId:e.getUnitId(),sheetId:o.getSheetId(),pluginName:G,selections:[{range:t,primary:X(t,o)}]}}),an="sheet.command.move-range",ot={type:s.CommandType.COMMAND,id:an,handler:(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(s.ErrorService),i=r.getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId(),d=Rt(t,{unitId:u,subUnitId:l,range:e.fromRange},{unitId:u,subUnitId:l,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=t.get(exports.SheetInterceptorService).onCommandExecute({id:ot.id,params:{...e}}),h=[...d.redos,...g.redos,{id:z.id,params:{unitId:u,sheetId:l,pluginName:G,selections:[{range:e.toRange,primary:X(e.toRange,c)}]}}],S=[{id:z.id,params:{unitId:u,sheetId:l,pluginName:G,selections:[{range:e.fromRange,primary:X(e.fromRange,c)}]}},...d.undos,...g.undos];return s.sequenceExecute(h,o).result?(n.pushUndoRedo({unitID:u,undoMutations:S,redoMutations:h}),!0):!1}};function Rt(t,e,o,n=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=e,{range:l,subUnitId:d}=o,g=t.get(s.IUniverInstanceService).getUniverSheetInstance(u),h=g==null?void 0:g.getSheetBySheetId(d),S=g==null?void 0:g.getSheetBySheetId(c),I=h==null?void 0:h.getCellMatrix(),v=S==null?void 0:S.getCellMatrix();if(h&&S&&I&&v){const C=je(l,h,!1);if(!s.Rectangle.equals(l,C)&&!n)return null;const p=new s.ObjectMatrix,R=new s.ObjectMatrix,M=(_,y)=>({startRow:_,endRow:_,startColumn:y,endColumn:y});s.Range.foreach(i,(_,y)=>{p.setValue(_,y,v.getValue(_,y)),R.setValue(_,y,null)});const w=new s.ObjectMatrix;s.Range.foreach(l,(_,y)=>{w.setValue(_,y,I.getValue(_,y))});const E=new s.ObjectMatrix;s.Range.foreach(i,(_,y)=>{const k=M(_,y),f=s.Rectangle.getRelativeRange(k,i),$=s.Rectangle.getPositionRange(f,l);E.setValue($.startRow,$.startColumn,v.getValue(_,y))});const U={from:{value:R.getMatrix(),subUnitId:c},to:{value:E.getMatrix(),subUnitId:d},unitId:u},T={from:{value:p.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:d},unitId:u};r.push({id:Le.id,params:U}),a.push({id:Le.id,params:T})}return{redos:r,undos:a}}const Ie={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SelectionManagerService),i=t.get(exports.SheetInterceptorService),{value:c,range:u,unitId:l=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,m=u?[u]:a.getSelectionRanges();if(!m||!m.length)return!1;const g=new s.ObjectMatrix;let h;if(s.Tools.isArray(c))for(let M=0;M<m.length;M++){const{startRow:w,startColumn:E,endRow:U,endColumn:T}=m[M];for(let _=0;_<=U-w;_++)for(let y=0;y<=T-E;y++)g.setValue(_+w,y+E,c[_][y])}else if(s.isICellData(c))for(let M=0;M<m.length;M++){const{startRow:w,startColumn:E,endRow:U,endColumn:T}=m[M];for(let _=w;_<=U;_++)for(let y=E;y<=T;y++)g.setValue(_,y,c)}else h=c;const S={subUnitId:d,unitId:l,cellValue:h??g.getMatrix()},I=de(t,S);if(!i.fetchThroughInterceptors(_e.PERMISSION)(null,{id:Ie.id,params:S}))return!1;const v=o.syncExecuteCommand(H.id,S),{undos:C,redos:p}=i.onCommandExecute({id:Ie.id,params:{...S,range:m}}),R=await s.sequenceExecute([...p],o);return v&&R.result?(n.pushUndoRedo({unitID:l,undoMutations:[{id:H.id,params:I},...C],redoMutations:[{id:H.id,params:S},...p]}),!0):!1}};function pt(t,e){const o=[],n=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=e,l=t.get(s.IUniverInstanceService),d=t.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const h=g.getCellMatrix(),S=h.getDataRange();if(i.startColumn<=S.endColumn||i.startRow<=S.endRow){let R,M;if(c===s.Dimension.COLUMNS){const E=Math.min(i.endRow,S.endRow);let U=0;for(let _=i.startRow;_<=E;_++){const y=h.getRow(_),k=y?s.getArrayLength(y)-1:0;U=Math.max(U,k)}R={startRow:i.startRow,startColumn:i.startColumn,endRow:E,endColumn:U};const T=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:R.startColumn+T,endRow:E,endColumn:R.endColumn+T}}else{const E=Math.min(i.endColumn,S.endColumn),U=S.endRow;R={startRow:i.startRow,startColumn:i.startColumn,endRow:U,endColumn:E};const T=i.endRow-i.startRow+1;M={startRow:R.startRow+T,startColumn:i.startColumn,endRow:R.endRow+T,endColumn:E}}const w=Rt(t,{unitId:r,subUnitId:a,range:R},{unitId:r,subUnitId:a,range:M},!0);w&&(o.push(...w.redos),n.push(...w.undos))}if(Object.entries(u).length===0)for(let R=i.startRow;R<=i.endRow;R++){u[R]||(u[R]={});for(let M=i.startColumn;M<=i.endColumn;M++)u[R][M]=null}const I={subUnitId:a,unitId:r,cellValue:u},v=de(t,I),{undos:C,redos:p}=d.onCommandExecute({id:Ie.id,params:{...I,range:i}});o.push({id:H.id,params:I},...p),n.push({id:H.id,params:v},...C)}return{redo:o,undo:n}}function Mt(t,e){const o=[],n=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=e,u=t.get(s.IUniverInstanceService),l=t.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),h=g.getDataRange(),S={subUnitId:a,unitId:r,cellValue:No([i])},I=de(t,S),v=l.onCommandExecute({id:Ie.id,params:S});if(o.push({id:H.id,params:S},...v.redos),n.push(...v.undos,{id:H.id,params:I}),i.startColumn<=h.endColumn||i.startRow<=h.endRow){let C=null,p=null;if(c===s.Dimension.COLUMNS&&i.endColumn<h.endColumn){const R=Math.min(i.endRow,h.endRow);let M=0;for(let E=i.startRow;E<=R;E++){const U=g.getRow(E),T=U?s.getArrayLength(U)-1:0;M=Math.max(M,T)}C={startRow:i.startRow,startColumn:i.endColumn+1,endRow:R,endColumn:M};const w=i.endColumn-i.startColumn+1;p={startRow:i.startRow,startColumn:C.startColumn-w,endRow:R,endColumn:C.endColumn-w}}if(c===s.Dimension.ROWS&&i.endRow<h.endRow){const R=Math.min(i.endColumn,h.endColumn),M=h.endRow;C={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:R};const w=i.endRow-i.startRow+1;p={startRow:C.startRow-w,startColumn:i.startColumn,endRow:C.endRow-w,endColumn:R}}if(C&&p){const R=Rt(t,{unitId:r,subUnitId:a,range:C},{unitId:r,subUnitId:a,range:p},!0);R&&(o.push(...R.redos),n.push(...R.undos))}}}return{redo:o,undo:n}}function Oo(t,e,o,n,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=e;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 h=t.getValue(m,g);h==null?t.realDeleteValue(m+d,g):t.setValue(m+d,g,h)}for(let m=c;m>=i;m--)for(let g=u;g<=l;g++)a&&a[m]&&a[m][g]?t.setValue(m,g,a[m][g]):t.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=i;m<=c;m++)for(let g=n;g>=u;g--){const h=t.getValue(m,g);h==null?t.realDeleteValue(m,g+d):t.setValue(m,g+d,h)}for(let m=i;m<=c;m++)for(let g=l;g>=u;g--)a&&a[m]&&a[m][g]?t.setValue(m,g,a[m][g]):t.realDeleteValue(m,g)}}function Ao(t,e,o,n,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=e,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 h=t.getValue(m+l,g);h==null?t.realDeleteValue(m,g):t.setValue(m,g,h)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=c;g<=n;g++){const h=t.getValue(m,g+d);h==null?t.realDeleteValue(m,g):t.setValue(m,g,h)}}function No(t){const e=new s.ObjectMatrix;return t.forEach(o=>{const{startRow:n,startColumn:r,endRow:a,endColumn:i}=o;for(let c=n;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const cn="sheet.command.delete-range-move-left",rt={type:s.CommandType.COMMAND,id:cn,handler:async(t,e)=>{var R;const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SelectionManagerService),i=t.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(R=a.getLast())==null?void 0:R.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:rt.id,params:{range:l}}),{redo:S,undo:I}=Mt(t,g),v=[...S],C=[...I];return v.push(...h.redos),v.push(le(l,d,m)),C.push(...h.undos),s.sequenceExecute(v,o).result?(n.pushUndoRedo({unitID:c,undoMutations:C.reverse(),redoMutations:v}),!0):!1}},un="sheet.command.delete-range-move-up",st={type:s.CommandType.COMMAND,id:un,handler:async(t,e)=>{var R;const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SelectionManagerService),i=t.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(R=a.getLast())==null?void 0:R.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:st.id,params:{range:l}}),{redo:S,undo:I}=Mt(t,g),v=[...S],C=[...I];return v.push(...h.redos),v.push(le(l,d,m)),C.push(...h.undos),await s.sequenceExecute(v,o).result?(n.pushUndoRedo({unitID:c,undoMutations:C.reverse(),redoMutations:v}),!0):!1}},wt=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Ce={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:o,subUnitId:n,range:r,rowInfo:a}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);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,g=r.endRow-r.startRow+1;for(let S=m;S<m+g;S++)a?s.insertMatrixArray(S,a[S-r.startRow]??d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},yt=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},fe={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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.getColumnManager(),{range:i,colInfo:c}=e,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 I={w:g,hd:0};c?s.insertMatrixArray(S,c[S-i.startColumn]??I,l):s.insertMatrixArray(S,I,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},Po=(t,e)=>{const r=e.getRowManager().getRowData(),a={},i=t.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,rowInfo:u}},Re={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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=e.range,c=r.getRowManager().getRowData(),u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},ko=(t,e)=>{const n=t.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}},pe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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=e.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},xo="sheet.command.insert-range-move-down",it={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(t,e)=>{var y;const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(s.ILogService),i=t.get(exports.SelectionManagerService),c=t.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(y=i.getLast())==null?void 0:y.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const h=[],S=[],I=g.getCellMatrix(),v=I.getDataRange(),p=I.getSlice(v.startRow,v.endRow,d.startColumn,d.endColumn).getDataRange().endRow,R=Math.max(p+(d.endRow-d.startRow+1)-v.endRow,0);if(R>0){const k=d.startRow-1,f=g.getRowHeight(k),$={unitId:u,subUnitId:l,range:{startRow:v.endRow+1,endRow:v.endRow+R,startColumn:v.startColumn,endColumn:v.endColumn},rowInfo:new Array(R).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))};h.push({id:Ce.id,params:$});const he=wt(t,$);S.push({id:Re.id,params:he})}const M={};s.Range.foreach(d,(k,f)=>{const $=g.getCell(k,f);$&&(M[k]||(M[k]={}),M[k][f]={s:$.s})});const w={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:M},{redo:E,undo:U}=pt(t,w);h.push(...E),S.push(...U);const T=c.onCommandExecute({id:it.id,params:{range:d}});return h.push(...T.redos),h.push(le(d,m,g)),S.push(...T.undos),s.sequenceExecute(h,o)?(n.pushUndoRedo({unitID:u,undoMutations:S.reverse(),redoMutations:h}),!0):!1}},dn="sheet.command.insert-range-move-right",at={type:s.CommandType.COMMAND,id:dn,handler:async(t,e)=>{var y;const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(s.ILogService),i=t.get(exports.SelectionManagerService),c=t.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(y=i.getLast())==null?void 0:y.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const h=[],S=[],I=g.getCellMatrix(),v=I.getDataRange(),p=I.getSlice(d.startRow,d.endRow,v.startColumn,v.endColumn).getDataRange().endColumn,R=Math.max(p+(d.endColumn-d.startColumn+1)-v.endColumn,0);if(R>0){const k=d.startColumn-1,f=g.getColumnWidth(k),$={unitId:u,subUnitId:l,range:{startRow:v.startRow+1,endRow:v.endRow,startColumn:v.endColumn+1,endColumn:v.endColumn+R},colInfo:new Array(R).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))};h.push({id:fe.id,params:$});const he=yt(t,$);S.push({id:pe.id,params:he})}const M={};s.Range.foreach(d,(k,f)=>{const $=g.getCell(k,f);!$||!$.s||(M[k]||(M[k]={}),M[k][f]={s:$.s})});const w={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:M},{redo:E,undo:U}=pt(t,w);h.push(...E),S.push(...U);const T=c.onCommandExecute({id:at.id,params:{range:d}});return h.push(...T.redos),h.push(le(d,m,g)),S.push(...T.undos),s.sequenceExecute(h,o).result?(n.pushUndoRedo({unitID:u,undoMutations:S.reverse(),redoMutations:h}),!0):!1}},ln="sheet.command.insert-row",Oe={type:s.CommandType.COMMAND,id:ln,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(e.unitId),c=i.getSheetBySheetId(e.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m}=e,{startRow:g,endRow:h}=u,S=l===s.Direction.UP?g:g-1,I=c.getRowHeight(S),v={unitId:d,subUnitId:m,range:u,rowInfo:new Array(h-g+1).fill(void 0).map(()=>({h:I,hd:s.BooleanNumber.FALSE}))},C=wt(t,v),p=a.onCommandExecute({id:Oe.id,params:e});return s.sequenceExecute([{id:Ce.id,params:v},...p.redos,le(u,i,c)],o).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:Re.id,params:C},...p.redos],redoMutations:[...p.undos,{id:Ce.id,params:v}]}),!0):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async t=>{var g;const o=(g=t.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(h=>h.range);let n;if((o==null?void 0:o.length)===1)n=o[0];else return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=n.endRow-n.startRow+1,d={};s.Range.foreach(n,(h,S)=>{const I=i.getCell(h,S);!I||!I.s||(d[h]||(d[h]={}),d[h][S]={s:I.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:n.startRow,endRow:n.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return t.get(s.ICommandService).executeCommand(Oe.id,m)}},gn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async t=>{var m;const o=(m=t.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let n;if((o==null?void 0:o.length)===1)n=o[0];else return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.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:i.getColumnCount()-1}};return t.get(s.ICommandService).executeCommand(Oe.id,d)}},hn="sheet.command.insert-col",Ae={type:s.CommandType.COMMAND,id:hn,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l,cellValue:d}=e,{startColumn:m,endColumn:g}=e.range,h=r.getUniverSheetInstance(e.unitId),S=h.getSheetBySheetId(e.subUnitId),I=c===s.Direction.LEFT?m:m-1,v=S.getColumnWidth(I),C={unitId:l,subUnitId:u,range:i,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:v,hd:s.BooleanNumber.FALSE}))},p=yt(t,C);e.unitId,e.subUnitId,e.range,s.Dimension.COLUMNS;const R=a.onCommandExecute({id:Ae.id,params:e});return s.sequenceExecute([{id:fe.id,params:C},...R.redos,le(i,h,S)],o).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[...R.undos,{id:pe.id,params:p}],redoMutations:[{id:fe.id,params:C},...R.redos]}),!0):!1}},Sn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async t=>{const o=t.get(exports.SelectionManagerService).getSelections();let n;if((o==null?void 0:o.length)===1)n=o[0].range;else return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=n.endColumn-n.startColumn+1,d={};s.Range.foreach(n,(g,h)=>{const S=i.getCell(g,h);!S||!S.s||(d[g]||(d[g]={}),d[g][h]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:n.startColumn,endColumn:n.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return t.get(s.ICommandService).executeCommand(Ae.id,m)}},vn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async t=>{const o=t.get(exports.SelectionManagerService).getSelections();let n;if((o==null?void 0:o.length)===1)n=o[0].range;else return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.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:i.getLastRowWithContent()}};return t.get(s.ICommandService).executeCommand(Ae.id,d)}},In={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId();e&&(i=e.unitId??i);const c=r.getUniverSheetInstance(i);if(!c)return!1;let u=c.getSheets().length,l=s.Tools.deepClone(s.DEFAULT_WORKSHEET);e?(u=e.index??u,e.sheet?l=e.sheet:(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`))):(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:u,sheet:l,unitId:i},m=ft(t,d);return o.syncExecuteCommand(ve.id,d)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:m}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}};function Lo(t,e){const{unitId:o,subUnitId:n,sourceRange:r,targetRange:a}=e,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:n,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:n,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const Be={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:o,subUnitId:n,sourceRange:r,targetRange:a}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);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=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function Bo(t,e){const{unitId:o,subUnitId:n,sourceRange:r,targetRange:a}=e,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:n,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:n,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const Ve={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:o,subUnitId:n,sourceRange:r,targetRange:a}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o);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=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function Vo(t,e){return e.getMergeData().some(o=>o.startRow<t&&t<=o.endRow)}function Wo(t,e){return e.getMergeData().some(o=>o.startColumn<t&&t<=o.endColumn)}const Cn="sheet.command.move-rows",Ut={id:Cn,type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=e,i=n==null?void 0:n.filter(oe=>oe.range.rangeType===s.RANGE_TYPE.ROW&&oe.range.startRow<=r&&r<=oe.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=t.get(exports.SheetInterceptorService),l=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),h=t.get(s.ErrorService),S=i[0].range,I=i[0].primary,v=je(S,d,!1);if(!s.Rectangle.equals(S,v))return h.emit("Only part of a merged cell is selected."),!1;if(Vo(a,d))return h.emit("Across a merged cell."),!1;const C={...S,startRow:a,endRow:a+S.endRow-S.startRow},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},R=Lo(t,p),w=a-r<0,E=S.endRow-S.startRow+1,U=w?C:{...C,startRow:C.startRow-E,endRow:C.endRow-E},T={unitId:m,subUnitId:g,pluginName:G,selections:[{range:U,primary:X(U,d),style:null}]},_={unitId:m,subUnitId:g,pluginName:G,selections:[{range:S,primary:I,style:null}]},y=t.get(s.ICommandService),k=c.onCommandExecute({id:Ut.id,params:e}),f=[{id:Be.id,params:p},{id:z.id,params:T},...k.redos],$=[{id:Be.id,params:R},{id:z.id,params:_},...k.undos];return s.sequenceExecute(f,y).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:$,redoMutations:f}),!0):!1}},fn="sheet.command.move-cols",_t={id:fn,type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=e,i=n==null?void 0:n.filter(oe=>oe.range.rangeType===s.RANGE_TYPE.COLUMN&&oe.range.startColumn<=r&&r<=oe.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=t.get(exports.SheetInterceptorService),l=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),h=t.get(s.ErrorService),S=i[0].range,I=i[0].primary,v=je(S,d,!1);if(!s.Rectangle.equals(S,v))return h.emit("Only part of a merged cell is selected."),!1;if(Wo(a,d))return h.emit("Across a merged cell."),!1;const C={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},R=Bo(t,p),M=S.endColumn-S.startColumn+1,U=a-r<0?C:{...C,startColumn:C.startColumn-M,endColumn:C.endColumn-M},T={unitId:m,subUnitId:g,pluginName:G,selections:[{range:U,primary:X(U,d),style:null}]},_={unitId:m,subUnitId:g,pluginName:G,selections:[{range:S,primary:I,style:null}]},y=t.get(s.ICommandService),k=c.onCommandExecute({id:_t.id,params:e}),f=[{id:Ve.id,params:p},{id:z.id,params:T},...k.redos],$=[{id:Ve.id,params:R},{id:z.id,params:_},...k.undos];return s.sequenceExecute(f,y).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:$,redoMutations:f}),!0}},Rn="sheet.command.remove-row",ct={type:s.CommandType.COMMAND,id:Rn,handler:async(t,e)=>{var I;const o=t.get(exports.SelectionManagerService),n=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(I=o.getLast())==null?void 0:I.range),!r)return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=Po(d,c),g=n.onCommandExecute({id:ct.id,params:{range:r}}),h=t.get(s.ICommandService);return s.sequenceExecute([{id:Re.id,params:d},...g.redos,le(r,i,c)],h).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:Ce.id,params:m}],redoMutations:[{id:Re.id,params:d},...g.redos]}),!0):!1}},pn="sheet.command.remove-col",ut={type:s.CommandType.COMMAND,id:pn,handler:async(t,e)=>{var I;const o=t.get(exports.SelectionManagerService),n=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(I=o.getLast())==null?void 0:I.range),!r)return!1;const i=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=ko(t,d),g=n.onCommandExecute({id:ut.id,params:{range:r}}),h=t.get(s.ICommandService);return s.sequenceExecute([{id:pe.id,params:d},...g.redos,le(r,i,c)],h).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:fe.id,params:m}],redoMutations:[{id:pe.id,params:d},...g.redos]}),!0):!1}},bt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SheetInterceptorService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=e.unitId??i,c=e.subUnitId??c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(l);u.getConfig().sheetOrder[d+1];const m={subUnitId:c,unitId:i},g=rn(t,m),h=a.onCommandExecute({id:bt.id,params:{unitId:i,subUnitId:c}}),S=[{id:We.id,params:m},...h.redos],I=[...h.undos,{id:ve.id,params:g}];return s.sequenceExecute(S,o)?(n.pushUndoRedo({unitID:i,undoMutations:I,redoMutations:S}),!0):!1}},ie=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},Q=(t,e)=>{const n=t.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 i=r.getConfig().mergeData,c=e.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:e.unitId,subUnitId:e.subUnitId,ranges:u}},B={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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().mergeData,c=e.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}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async t=>{const e=t.get(exports.SelectionManagerService),o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=e.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:i,subUnitId:c,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(I=>{g.forEach(v=>{s.Rectangle.intersects(I,v)&&(m=!0)})}),!m)return!1;const h=Q(t,d);return o.syncExecuteCommand(B.id,d)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:h}],redoMutations:[{id:B.id,params:d}]}),!0):!1}};class Me{constructor(){x(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});x(this,"_borderInfo$",new Ue.BehaviorSubject(this._borderInfo));x(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function jo(t,e,o){const n=e?t.getUniverSheetInstance(e):t.getCurrentUniverSheetInstance();if(!n)throw new Error;const r=o?n.getSheetBySheetId(o):n.getActiveSheet();if(!r)throw new Error;return{workbook:n,worksheet:r,unitId:e??n.getUnitId(),subUnitId:o??r.getSheetId()}}function Ge(t,e){const{startRow:o,startColumn:n,endRow:r,endColumn:a}=t;for(let i=o;i<=r;i++)for(let c=n;c<=a;c++)e(i,c)}const wn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(t,e)=>{const{unitId:o,subUnitId:n,value:r}=e,{type:a,color:i,style:c}=r,u=t.get(s.ICommandService),l=t.get(Me);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand(Ne.id,{unitId:o,subUnitId:n})}},yn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(t,e)=>{if(!e.value)return!1;const o=t.get(s.ICommandService);return t.get(Me).setType(e.value),o.executeCommand(Ne.id)}},Un={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService);return t.get(Me).setStyle(e.value),o.executeCommand(Ne.id)}},_n={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService);return t.get(Me).setColor(e.value),o.executeCommand(Ne.id)}},Ne={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SelectionManagerService),i=t.get(Me),{worksheet:c,unitId:u,subUnitId:l}=jo(r,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),m=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:h,type:S,activeBorderType:I}=i.getBorderInfo();if(!I)return!1;const v=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,C=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,p=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,R=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,w=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,E=S.indexOf("tlbr")>-1,U=S.indexOf("tlbc")>-1,T=S.indexOf("tlmr")>-1,_=S.indexOf("bltr")>-1,y=S.indexOf("mltr")>-1,k=S.indexOf("bctr")>-1,f=d[0],$={startRow:f.startRow-1,startColumn:f.startColumn,endRow:f.startRow-1,endColumn:f.endColumn},he={startRow:f.startRow,startColumn:f.startColumn-1,endRow:f.endRow,endColumn:f.startColumn-1},oe={startRow:f.endRow+1,startColumn:f.startColumn,endRow:f.endRow+1,endColumn:f.endColumn},no={startRow:f.startRow,startColumn:f.endColumn+1,endRow:f.endRow,endColumn:f.endColumn+1},Ft={startRow:f.startRow,startColumn:f.startColumn,endRow:f.startRow,endColumn:f.endColumn},Ht={startRow:f.startRow,startColumn:f.startColumn,endRow:f.endRow,endColumn:f.startColumn},$t={startRow:f.endRow,startColumn:f.startColumn,endRow:f.endRow,endColumn:f.endColumn},zt={startRow:f.startRow,startColumn:f.endColumn,endRow:f.endRow,endColumn:f.endColumn},N=new s.ObjectMatrix,V={s:g,cl:{rgb:h}},ze=(O,D)=>{let P=null;return m.forEach(K=>{s.Rectangle.intersects(K,{startColumn:D,endColumn:D,startRow:O,endRow:O})&&(P=K)}),P};function j(O,D,P){O.startRow<0||O.startColumn<0||Ge(O,(K,ee)=>{var b,Pe;const J=ze(K,ee);let Z=D;if(J){if(P){const te=s.Tools.deepClone((b=N.getValue(J.startRow,J.startColumn))==null?void 0:b.s);Z=te!=null&&te.bd?Object.assign(te.bd,D):D}N.setValue(J.startRow,J.startColumn,{s:{bd:Z}})}else{if(P){const te=s.Tools.deepClone((Pe=N.getValue(K,ee))==null?void 0:Pe.s);Z=te!=null&&te.bd?Object.assign(te.bd,D):D}N.setValue(K,ee,{s:{bd:Z}})}})}v&&j(Ft,{t:s.Tools.deepClone(V)},!0),p&&j($t,{b:s.Tools.deepClone(V)},!0),C&&j(Ht,{l:s.Tools.deepClone(V)},!0),R&&j(zt,{r:s.Tools.deepClone(V)},!0),E&&j(f,{tl_br:s.Tools.deepClone(V)},!0),U&&j(f,{tl_bc:s.Tools.deepClone(V)},!0),T&&j(f,{tl_mr:s.Tools.deepClone(V)},!0),_&&j(f,{bl_tr:s.Tools.deepClone(V)},!0),y&&j(f,{ml_tr:s.Tools.deepClone(V)},!0),k&&j(f,{bc_tr:s.Tools.deepClone(V)},!0),M&&Ge(f,(O,D)=>{var K,ee,J,Z;const P=ze(O,D);if(P){if(P.endColumn!==f.endColumn){const b=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{r:s.Tools.deepClone(V)}):{r:s.Tools.deepClone(V)}}})}if(P.startColumn!==f.startColumn){const b=(ee=N.getValue(P.startRow,P.startColumn))==null?void 0:ee.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{l:s.Tools.deepClone(V)}):{l:s.Tools.deepClone(V)}}})}}else{if(D!==f.endColumn){const b=(J=N.getValue(O,D))==null?void 0:J.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{r:s.Tools.deepClone(V)}):{r:s.Tools.deepClone(V)}}})}if(D!==f.startColumn){const b=(Z=N.getValue(O,D))==null?void 0:Z.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{l:s.Tools.deepClone(V)}):{l:s.Tools.deepClone(V)}}})}}}),w&&Ge(f,(O,D)=>{var K,ee,J,Z;const P=ze(O,D);if(P){if(P.endRow!==f.endRow){const b=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{b:s.Tools.deepClone(V)}):{b:s.Tools.deepClone(V)}}})}if(P.startRow!==f.startRow){const b=(ee=N.getValue(P.startRow,P.startColumn))==null?void 0:ee.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{t:s.Tools.deepClone(V)}):{t:s.Tools.deepClone(V)}}})}}else{if(O!==f.endRow){const b=(J=N.getValue(O,D))==null?void 0:J.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{b:s.Tools.deepClone(V)}):{b:s.Tools.deepClone(V)}}})}if(O!==f.startRow){const b=(Z=N.getValue(O,D))==null?void 0:Z.s;N.setValue(O,D,{s:{bd:b!=null&&b.bd?Object.assign(b.bd,{t:s.Tools.deepClone(V)}):{t:s.Tools.deepClone(V)}}})}}}),!v&&!p&&!C&&!R&&!M&&!w&&!E&&!U&&!T&&!_&&!y&&!k&&(j($,{b:null}),j(Ft,{t:null},!0),j(oe,{t:null}),j($t,{b:null},!0),j(he,{r:null}),j(Ht,{l:null},!0),j(no,{l:null}),j(zt,{r:null},!0),j(f,{tl_br:null},!0),j(f,{tl_bc:null},!0),j(f,{tl_mr:null},!0),j(f,{bl_tr:null},!0),j(f,{ml_tr:null},!0),j(f,{bc_tr:null},!0),Ge(f,(O,D)=>{var K,ee,J,Z,b,Pe,te,Gt;const P=ze(O,D);if(P){if(P.endColumn!==f.endColumn){const A=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(P.startColumn!==f.startColumn){const A=(ee=N.getValue(P.startRow,P.startColumn))==null?void 0:ee.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(P.endRow!==f.endRow){const A=(J=N.getValue(P.startRow,P.startColumn))==null?void 0:J.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(P.startRow!==f.startRow){const A=(Z=N.getValue(P.startRow,P.startColumn))==null?void 0:Z.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(D!==f.endColumn){const A=(b=N.getValue(O,D))==null?void 0:b.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(D!==f.startColumn){const A=(Pe=N.getValue(O,D))==null?void 0:Pe.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(O!==f.endRow){const A=(te=N.getValue(O,D))==null?void 0:te.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(O!==f.startRow){const A=(Gt=N.getValue(O,D))==null?void 0:Gt.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const lt={unitId:u,subUnitId:l,cellValue:N.getData()},oo=de(t,lt);return o.syncExecuteCommand(H.id,lt)?(n.pushUndoRedo({unitID:u,undoMutations:[{id:H.id,params:oo}],redoMutations:[{id:H.id,params:lt}]}),!0):!1}},Fo=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},be={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const r=n.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},Ho=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Te={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const r=n.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Tt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(t,e)=>{const{unitId:o,subUnitId:n,ranges:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(n),i={unitId:o,subUnitId:n,ranges:r},c=Ho(t,i),u={unitId:o,subUnitId:n,pluginName:G,selections:r.map(g=>({range:g,primary:X(g,a),style:null}))},l={unitId:o,subUnitId:n,pluginName:G,selections:En(r).map(g=>({range:g,primary:X(g,a),style:null}))},d=t.get(s.ICommandService);return s.sequenceExecute([{id:Te.id,params:i},{id:z.id,params:u}],d).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:be.id,params:c},{id:z.id,params:l}],redoMutations:[{id:Te.id,params:i},{id:z.id,params:u}]}),!0}},bn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async t=>{var l;const o=(l=t.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=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return t.get(s.ICommandService).executeCommand(Tt.id,{unitId:i,subUnitId:c,ranges:u})}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async t=>{var h;const o=(h=t.get(exports.SelectionManagerService).getSelections())==null?void 0:h.map(S=>S.range).filter(S=>S.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:o},l={unitId:i,subUnitId:c,pluginName:G,selections:En(o).map(S=>({range:S,primary:X(S,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:G,selections:o.map(S=>({range:S,primary:X(S,a),style:null}))},m=t.get(s.ICommandService);if(s.sequenceExecute([{id:be.id,params:u},{id:z.id,params:l}],m).result){const S=t.get(s.IUndoRedoService),I=Fo(t,u);return S.pushUndoRedo({unitID:i,undoMutations:[{id:Te.id,params:I},{id:z.id,params:d}],redoMutations:[{id:be.id,params:u},{id:z.id,params:l}]}),!0}return!1}};function En(t){return $o(t).map(o=>{const n=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:n,endColumn:n}})}function $o(t){const e=[];let o;return t.sort((n,r)=>n.startColumn-r.startColumn).forEach(n=>{if(!o){o=n;return}o.endColumn===n.startColumn-1?o.endColumn=n.endColumn:(e.push(o),o=n)}),e.push(o),e}const Et=(t,e)=>{const n=t.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 i=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...i}},me={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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(),{startRow:i,startColumn:c,ySplit:u,xSplit:l}=e;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Dn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u)return!1;const{startColumn:l,startRow:d,xSplit:m,ySplit:g}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const h={unitId:a,subUnitId:i,...e},S=Et(t,h);return o.syncExecuteCommand(me.id,h)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:me.id,params:S}],redoMutations:[{id:me.id,params:h}]}),!0):!1}},zo={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async t=>{const e=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),n=t.get(s.IUniverInstanceService),r=n.getCurrentUniverSheetInstance().getUnitId(),a=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=n.getUniverSheetInstance(r);if(!i||!i.getSheetBySheetId(a))return!1;const u={unitId:r,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=Et(t,u);return e.syncExecuteCommand(me.id,u)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:me.id,params:l}],redoMutations:[{id:me.id,params:u}]}),!0):!1}},Go=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ee={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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 a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},qo=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},De={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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 a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Dt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(t,e)=>{const{unitId:o,subUnitId:n,ranges:r}=e,a=t.get(s.ICommandService),i=t.get(s.IUndoRedoService),c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(n),u={unitId:o,subUnitId:n,ranges:r},l=Go(t,u),d={unitId:o,subUnitId:n,pluginName:G,selections:r.map(h=>({range:h,primary:X(h,c),style:null}))},m={unitId:o,subUnitId:n,pluginName:G,selections:Nn(r).map(h=>({range:h,primary:X(h,c),style:null}))};return s.sequenceExecute([{id:Ee.id,params:u},{id:z.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:De.id,params:l},{id:z.id,params:m}],redoMutations:[{id:Ee.id,params:u},{id:z.id,params:d}]}),!0}},On={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async t=>{var l;const e=t.get(exports.SelectionManagerService),o=t.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=o.getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=n.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return t.get(s.ICommandService).executeCommand(Dt.id,{unitId:i,subUnitId:c,ranges:u})}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async t=>{var I;const e=t.get(exports.SelectionManagerService),o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=(I=e.getSelections())==null?void 0:I.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:i,subUnitId:c,ranges:a},m={unitId:i,subUnitId:c,pluginName:G,selections:Nn(a).map(v=>({range:v,primary:X(v,l),style:null}))},g={unitId:i,subUnitId:c,pluginName:G,selections:a.map(v=>({range:v,primary:X(v,l),style:null}))},h=qo(t,d);return s.sequenceExecute([{id:De.id,params:d},{id:z.id,params:m}],o).result&&n.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:h},{id:z.id,params:g}],redoMutations:[{id:De.id,params:d},{id:z.id,params:m}]}),!0}};function Nn(t){return Yo(t).map(o=>{const n=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:n,endRow:n}})}function Yo(t){const e=[];let o;return t.sort((n,r)=>n.startRow-r.startRow).forEach(n=>{if(!o){o=n;return}n.startRow===o.endRow+1?o.endRow=n.endRow:(e.push(o),o=n)}),e.push(o),e}const q={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(t,e)=>{const o=t.get(s.IUniverInstanceService),{unitId:n=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=e,c=t.get(s.ICommandService),u=t.get(s.IUndoRedoService),l=t.get(exports.SelectionManagerService),d=a?[a]:l.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=o.getUniverSheetInstance(n);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const h=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let M=0;M<d.length;M++){const{startRow:w,endRow:E,startColumn:U,endColumn:T}=d[M];for(let _=0;_<=E-w;_++)for(let y=0;y<=T-U;y++)h.setValue(_+w,y+U,{s:{[i.type]:i.value[_][y]}})}else for(let M=0;M<d.length;M++){const{startRow:w,endRow:E,startColumn:U,endColumn:T}=d[M],_={s:{[i.type]:i.value}};for(let y=w;y<=E;y++)for(let k=U;k<=T;k++)h.setValue(y,k,_)}const S={subUnitId:r,unitId:n,cellValue:h.getMatrix()},I=de(t,S),v=c.syncExecuteCommand(H.id,S),{undos:C,redos:p}=t.get(exports.SheetInterceptorService).onCommandExecute({id:q.id,params:e}),R=s.sequenceExecute([...p],c);return v&&R.result?(u.pushUndoRedo({unitID:n,undoMutations:[{id:H.id,params:I},...C],redoMutations:[{id:H.id,params:S},...p]}),!0):!1}},Ko={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:n,actualColumn:r}=e.primary,i={style:{type:"bl",value:o.getRange(n,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(q.id,i)}},Jo={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let n=!0;if(e.primary){const{startRow:a,startColumn:i}=e.primary;n=o.getRange(a,i).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:n?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(q.id,r)}},Xo={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let n=!0;e.primary&&(n=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:n?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(q.id,r)}},Zo={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let n=!0;e.primary&&(n=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:n?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(q.id,r)}};s.CommandType.COMMAND;const Qo={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"ff",value:e.value}};return o.executeCommand(q.id,n)}},er={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"fs",value:e.value}};return o.executeCommand(q.id,n)}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const o=t.get(s.ICommandService),n={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(q.id,n)}},kn={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async t=>{const e=t.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(q.id,o)}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const o=t.get(s.ICommandService),n={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(q.id,n)}},Ln={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async t=>{const e=t.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(q.id,o)}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"vt",value:e.value}};return o.executeCommand(q.id,n)}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"ht",value:e.value}};return o.executeCommand(q.id,n)}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(t,e)=>{if(!e)return!1;const o=t.get(s.ICommandService),n={style:{type:"tb",value:e.value}};return o.executeCommand(q.id,n)}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(t,e)=>{if(!e)return!1;const o=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},n=t.get(s.ICommandService),r={style:{type:"tr",value:o}};return n.executeCommand(q.id,r)}},tr=(t,e)=>{const a=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:a}},ke={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const n=o.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().tabColor=e.color,!0):!1}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const l={color:e.value,unitId:a,subUnitId:i},d=tr(t,l);return o.syncExecuteCommand(ke.id,l)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:ke.id,params:d}],redoMutations:[{id:ke.id,params:l}]}),!0):!1}},Fe={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const n=o.getWorksheets();for(const[,r]of n)r.getSheetId()===e.subUnitId?(r.getConfig().status=s.BooleanNumber.TRUE,o.__setActiveSheet(r)):r.getConfig().status=s.BooleanNumber.FALSE;return!0}},Ot={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUniverInstanceService);let r=n.getCurrentUniverSheetInstance().getUnitId(),a=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(r=e.unitId??r,a=e.subUnitId??a);const i={unitId:r,subUnitId:a};return o.syncExecuteCommand(Fe.id,i)}},At=(t,e)=>{const n=t.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 a={},i=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=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:a}},ae={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.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().defaultColumnWidth,i=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=i.getColumnOrCreate(d);typeof e.colWidth=="number"?m.w=e.colWidth:m.w=e.colWidth[d-l.startColumn]??a}}return!0}},Nt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(t,e)=>{const n=t.get(exports.SelectionManagerService).getSelections();if(!(n!=null&&n.length))return!1;const r=t.get(s.ICommandService),a=t.get(s.IUndoRedoService),c=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),l=c.getUnitId(),d=u.getSheetId(),{anchorCol:m,deltaX:g}=e,S=u.getColumnWidth(m)+g,I=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,v=n.filter(T=>T.range.rangeType===s.RANGE_TYPE.COLUMN),C=I?s.RANGE_TYPE.ALL:v.some(({range:T})=>{const{startColumn:_,endColumn:y}=T;return _<=m&&m<=y})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let p;if(C===s.RANGE_TYPE.ALL){const T=u.getRowCount(),_=new Array(u.getColumnCount()).fill(void 0).map((y,k)=>({startRow:0,endRow:T-1,startColumn:k,endColumn:k}));p={subUnitId:d,unitId:l,colWidth:S,ranges:_}}else C===s.RANGE_TYPE.COLUMN?p={subUnitId:d,unitId:l,ranges:v.map(T=>s.Rectangle.clone(T.range)),colWidth:S}:p={subUnitId:d,unitId:l,colWidth:S,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:m,endColumn:m}]};const R=At(t,p),M=r.syncExecuteCommand(ae.id,p),{undos:w,redos:E}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Nt.id,params:p}),U=s.sequenceExecute([...E],r);return M&&U.result&&a.pushUndoRedo({unitID:l,undoMutations:[{id:ae.id,params:R},...w],redoMutations:[{id:ae.id,params:p},...E]}),!0}},Pt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService),n=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),a=t.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:e.value},d=At(t,l),m=n.syncExecuteCommand(ae.id,l),{undos:g,redos:h}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Pt.id,params:l}),S=s.sequenceExecute([...h],n);return m&&S.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ae.id,params:d},...g],redoMutations:[{id:ae.id,params:l},...h]}),!0):!1}},Hn=(t,e)=>{const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(n==null)throw new Error("worksheet is null error!");return{hidden:n.isSheetHidden(),unitId:e.unitId,subUnitId:n.getSheetId()}},ge={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const n=o.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().hidden=e.hidden,!0):!1}},$n={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(s.ErrorService),i=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(c=e.subUnitId??c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||l.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={unitId:i,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=Hn(t,m);return u.getSheets().filter(v=>v.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(ge.id,m)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:ge.id,params:g}],redoMutations:[{id:ge.id,params:m}]}),!0):!1}},nr=(t,e)=>{const n=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(n==null)throw new Error("worksheet is null error!");return{unitId:e.unitId,name:n.getName(),subUnitId:n.getSheetId()}},Qe={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const n=o.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().name=e.name,!0):!1}},kt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=t.get(exports.SheetInterceptorService),i=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:i},l=nr(t,u),d=a.onCommandExecute({id:kt.id,params:e}),m=[{id:Qe.id,params:u},...d.redos],g=[...d.undos,{id:Qe.id,params:l}];return await s.sequenceExecute(m,o).result?(n.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},or=(t,e)=>{const r=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getConfig().sheetOrder.findIndex(a=>a===e.subUnitId);return{...s.Tools.deepClone(e),order:r}},xe={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const n=o.getConfig(),r=n.sheetOrder.filter(a=>a!==e.subUnitId);return r.splice(e.order,0,e.subUnitId),n.sheetOrder=r,!0}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),i=e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const l={order:e.order,unitId:a,subUnitId:i},d=or(t,l);return o.syncExecuteCommand(xe.id,l)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:l}]}),!0):!1}},rr=2e3,Gn=(t,e)=>{const{unitId:o,subUnitId:n,ranges:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.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 g=d;g<m+1;g++){const h=l.getRowOrCreate(g);u[g]=h.h}return{unitId:o,subUnitId:n,ranges:r,rowHeight:u}},xt=(t,e)=>{const{unitId:o,subUnitId:n,ranges:r}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(n),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const h=l.getRowOrCreate(g);u[g]=h.ia}return{unitId:o,subUnitId:n,ranges:r,autoHeightInfo:u}},sr=(t,e)=>{const{unitId:o,subUnitId:n,rowsAutoHeightInfo:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(n),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:n,rowsAutoHeightInfo:u}},ce={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:o,subUnitId:n,ranges:r,rowHeight:a}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(n);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:m,endRow:g}of r)for(let h=m;h<=g;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.h=a:S.h=a[h]??l,S.h=Math.min(rr,S.h)}return!0}},ne={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:o,subUnitId:n,ranges:r,autoHeightInfo:a}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(n);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:m,endRow:g}of r)for(let h=m;h<=g;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.ia=a:S.ia=a[h-m]??l}return!0}},Lt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:o,subUnitId:n,rowsAutoHeightInfo:r}=e,i=t.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(n);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}},qn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(t,e)=>{const n=t.get(exports.SelectionManagerService).getSelections();if(!(n!=null&&n.length))return!1;const a=t.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),c=a.getUnitId(),u=i.getSheetId(),{anchorRow:l,deltaY:d}=e,g=i.getRowHeight(l)+d,h=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,S=n.filter(U=>U.range.rangeType===s.RANGE_TYPE.ROW),I=h?s.RANGE_TYPE.ALL:S.some(({range:U})=>{const{startRow:T,endRow:_}=U;return T<=l&&l<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let v;if(I===s.RANGE_TYPE.ALL){const U=i.getRowCount(),T=new Array(i.getColumnCount()).fill(void 0).map((_,y)=>({startRow:y,endRow:y,startColumn:0,endColumn:U-1}));v={subUnitId:u,unitId:c,rowHeight:g,ranges:T}}else I===s.RANGE_TYPE.ROW?v={subUnitId:u,unitId:c,ranges:S.map(U=>s.Rectangle.clone(U.range)),rowHeight:g}:v={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:i.getMaxColumns()-1}]};const C=Gn(t,v),p={unitId:c,subUnitId:u,ranges:v.ranges,autoHeightInfo:s.BooleanNumber.FALSE},R=xt(t,p),M=t.get(s.ICommandService),w=t.get(s.IUndoRedoService);return s.sequenceExecute([{id:ce.id,params:v},{id:ne.id,params:p}],M).result?(w.pushUndoRedo({unitID:c,undoMutations:[{id:ce.id,params:C},{id:ne.id,params:R}],redoMutations:[{id:ce.id,params:v},{id:ne.id,params:p}]}),!0):!1}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(t,e)=>{const o=t.get(exports.SelectionManagerService),n=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),a=t.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance(),u=c.getUnitId(),l=c.getActiveSheet().getSheetId(),d={subUnitId:l,unitId:u,ranges:i,rowHeight:e.value},m=Gn(t,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},h=xt(t,g);return s.sequenceExecute([{id:ce.id,params:d},{id:ne.id,params:g}],n).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ce.id,params:m},{id:ne.id,params:h}],redoMutations:[{id:ce.id,params:d},{id:ne.id,params:g}]}),!0):!1}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(exports.SelectionManagerService),a=t.get(s.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),c=a.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:l}=e??{},d=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={unitId:i,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=xt(t,m),h=o.syncExecuteCommand(ne.id,m),{undos:S,redos:I}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Bt.id,params:m}),v=s.sequenceExecute([...I],o);return h&&v.result?(n.pushUndoRedo({unitID:i,undoMutations:[{id:ne.id,params:g},...S],redoMutations:[{id:ne.id,params:m},...I]}),!0):!1}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(t,e)=>{const o=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId();let i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=e.value??i);const c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:s.BooleanNumber.FALSE},m=Hn(t,d),g=o.syncExecuteCommand(ge.id,d),h={unitId:a,subUnitId:i},S=o.syncExecuteCommand(Fe.id,h);return g&&S?(n.pushUndoRedo({unitID:a,undoMutations:[{id:ge.id,params:m}],redoMutations:[{id:ge.id,params:d}]}),!0):!1}},ir=t=>{const e=new s.ObjectMatrix;return t.forEach(o=>{s.Range.foreach(o,(n,r)=>{e.setValue(n,r,1)})}),e.forValue((o,n)=>{const r=e.getValue(o-1,n);r&&e.setValue(o,n,r+1)}),e},Yt=t=>{const e={area:0},o=(n,r)=>e.area<n?(e.area=n,e.range=r,!0):!1;return t.forValue((n,r,a)=>{let i=1,c=a;o(i*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&&t.getValue(n,l);l--){c=Math.min(t.getValue(n,l)||0,c),i++;const d=c*i;u.startColumn=l,u.startRow=n-c+1,o(d,u)}}),e},ar=(t,e)=>(s.Range.foreach(e,(o,n)=>{t.realDeleteValue(o,n);let r=o+1,a=t.getValue(r,n)||0;for(;a>1;)t.setValue(r,n,a-1),r+=1,a=t.getValue(r,n)||0}),t),cr=t=>{const e=[];let o=Yt(t);for(;o.area>0;)o.range&&(e.push(o.range),ar(t,o.range)),o=Yt(t);return e},Vt=t=>{const e=ir(t);return cr(e)},ur=(t,e,o="")=>t.reduce((n,r)=>{const a=r&&r[e];return typeof a!="string"?(console.warn(r,`${e} is not string`),n):(a?(n[a]||(n[a]=[]),n[a].push(r)):n[o].push(r),n)},{}),dr=(t=0)=>{let e=t;return function(){return e++}},we=F.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,we);const lr=(t,e)=>{const o=t.get(we),{values:n,unitId:r,subUnitId:a}=e,i=[],c=[],u=o.getModel(r,a)||void 0;Object.keys(n).forEach(d=>{n[d].ranges.forEach(g=>{s.Range.foreach(g,(h,S)=>{const I=o.getValue(r,a,h,S,u);I?i.push({pattern:I.pattern,type:I.type,row:h,col:S}):c.push({startColumn:S,endColumn:S,startRow:h,endRow:h})})})});const l=[];if(i.length){const d=et(r,a,i);Object.keys(d.values).forEach(m=>{const g=d.values[m];g.ranges=Vt(g.ranges)}),l.push({id:dt.id,params:et(r,a,i)})}return c.length&&l.push({id:Wt.id,params:{unitId:r,subUnitId:a,ranges:c}}),l},dt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{values:o,refMap:n}=e,r=t.get(we),a=e.unitId,i=e.subUnitId,c=Object.keys(o).reduce((u,l)=>{const d=n[l],m=o[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(a,i,c),!0}},Wt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{unitId:o,subUnitId:n,ranges:r}=e;return t.get(we).deleteValues(o,n,r),!0}},mr=(t,e)=>{const o=t.get(we),{ranges:n,unitId:r,subUnitId:a}=e,i=[],c=o.getModel(r,a)||void 0;if(n.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=o.getValue(r,a,d,m,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:m})})}),!i.length)return[];const u=et(r,a,i);return Object.keys(u.values).forEach(l=>{const d=u.values[l];d.ranges=Vt(d.ranges)}),[{id:dt.id,params:u}]},et=(t,e,o)=>{const n=ur(o,"pattern"),r={},a={},i=dr();return Object.keys(n).forEach(c=>{const u=n[c],l=u[0],d=i();r[d]={pattern:c,type:l.type},u.forEach(m=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(gr(m.row,m.col))})}),{unitId:t,subUnitId:e,refMap:r,values:a}},gr=(t,e)=>({startRow:t,endRow:t,startColumn:e,endColumn:e}),Jn="maxCellsPerSheet",hr=3e6;var Sr=Object.defineProperty,vr=Object.getOwnPropertyDescriptor,Ir=(t,e,o,n)=>{for(var r=n>1?void 0:n?vr(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&Sr(e,o,r),r},Kt=(t,e)=>(o,n)=>e(o,n,t);let Ke=class extends s.Disposable{constructor(t,e){super(),this._commandService=t,this._configService=e,[L,tt,Ct,nt,sn,rt,st,Nt,qn,vn,Sn,Ae,fe,it,at,gn,mn,Oe,Ce,In,ve,_t,Ve,ot,Le,Ut,Be,ut,pe,ct,Re,bt,We,Mn,B,Ln,kn,xn,wn,_n,Ne,yn,Un,Tn,be,Te,Pt,zo,Dn,me,Vn,Ie,H,Yn,An,De,Ee,bn,On,Tt,Dt,q,Fn,ke,Pn,jn,Wn,Bn,Ot,Fe,ae,$n,ge,kt,Qe,zn,xe,Lt,ce,Bt,ne,Kn,dt,z,Wt].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(Jn,hr)}};Ke=Ir([s.OnLifecycle(s.LifecycleStages.Starting,Ke),Kt(0,s.ICommandService),Kt(1,s.IConfigService)],Ke);var Cr=Object.defineProperty,fr=Object.getOwnPropertyDescriptor,Rr=(t,e,o,n)=>{for(var r=n>1?void 0:n?fr(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&Cr(e,o,r),r},pr=(t,e)=>(o,n)=>e(o,n,t);let Je=class extends s.Disposable{constructor(t){super(),this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id!==vt.SetFormulaCalculationResultMutation.id)return;const e=t.params,{unitData:o,unitOtherData:n}=e,r=Object.keys(o),a=[];return r.forEach(c=>{const u=o[c];if(u==null)return!0;Object.keys(u).forEach(d=>{const m=u[d];if(m==null)return!0;const g={subUnitId:d,unitId:c,cellValue:m.getData()};a.push({id:H.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};Je=Rr([s.OnLifecycle(s.LifecycleStages.Ready,Je),pr(0,s.ICommandService)],Je);var Mr=Object.defineProperty,wr=Object.getOwnPropertyDescriptor,yr=(t,e,o,n)=>{for(var r=n>1?void 0:n?wr(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&Mr(e,o,r),r},qe=(t,e)=>(o,n)=>e(o,n,t);let Xe=class extends s.Disposable{constructor(t,e,o,n){super(),this._commandService=t,this._featureCalculationManagerService=e,this._currentUniverService=o,this._formulaDataModel=n,this._initialize()}_initialize(){const t="test",e="workbook-01",o="sheet-0011",n={[e]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(t,{unitId:e,subUnitId:o,dependencyRanges:[{unitId:e,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:n,dirtyRanges:r})})}};Xe=yr([s.OnLifecycle(s.LifecycleStages.Ready,Xe),qe(0,s.ICommandService),qe(1,vt.IFeatureCalculationManagerService),qe(2,s.IUniverInstanceService),qe(3,F.Inject(vt.FormulaDataModel))],Xe);const Y={MoveRangeCommandId:an,InsertRowCommandId:ln,InsertColCommandId:hn,RemoveColCommandId:pn,RemoveRowCommandId:Rn,DeleteRangeMoveLeftCommandId:cn,DeleteRangeMoveUpCommandId:un,InsertRangeMoveDownCommandId:xo,InsertRangeMoveRightCommandId:dn,MoveColsCommandId:fn,MoveRowsCommandId:Cn};var W=(t=>(t[t.Set=0]="Set",t[t.Delete=1]="Delete",t[t.HorizontalMove=2]="HorizontalMove",t[t.VerticalMove=3]="VerticalMove",t[t.Unknown=4]="Unknown",t))(W||{}),Ur=Object.defineProperty,_r=Object.getOwnPropertyDescriptor,br=(t,e,o,n)=>{for(var r=n>1?void 0:n?_r(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&Ur(e,o,r),r},mt=(t,e)=>(o,n)=>e(o,n,t);const Tr=s.createInterceptorKey("MERGE_REDO"),Er=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(o,n,r){super();x(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Tr,MERGE_UNDO:Er}));x(this,"_refRangeManagerMap",new Map);x(this,"_serializer",Dr());x(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const n=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=Jt(this._univerInstanceService),a=Xt(this._univerInstanceService),u=((()=>{switch(o.id){case Y.MoveColsCommandId:{const m=o.params,g=Math.min(m.fromRange.startColumn,m.toRange.startColumn);return this._checkRange([{...m.fromRange,startColumn:g,endColumn:n.getColumnCount()-1}],r,a)}case Y.MoveRowsCommandId:{const m=o.params,g=Math.min(m.fromRange.startRow,m.toRange.startRow);return this._checkRange([{...m.fromRange,startRow:g,endRow:n.getRowCount()-1}],r,a)}case Y.MoveRangeCommandId:{const m=o;return this._checkRange([m.params.fromRange,m.params.toRange],r,a)}case Y.InsertRowCommandId:{const h={startRow:o.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([h],r,a)}case Y.InsertColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:n.getRowCount()-1,startColumn:g,endColumn:n.getColumnCount()-1};return this._checkRange([h],r,a)}case Y.RemoveRowCommandId:{const h={startRow:o.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([h],r,a)}case Y.RemoveColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:n.getRowCount()-1,startColumn:g,endColumn:n.getColumnCount()-1};return this._checkRange([h],r,a)}case Y.DeleteRangeMoveUpCommandId:case Y.InsertRangeMoveDownCommandId:{const g=o.params.range||Zt(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:n.getRowCount()-1};return this._checkRange([h],r,a)}case Y.DeleteRangeMoveLeftCommandId:case Y.InsertRangeMoveRightCommandId:{const g=o.params.range||Zt(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:n.getColumnCount()-1,endRow:g.endRow};return this._checkRange([h],r,a)}}})()||[]).reduce((m,g)=>{const h=g(o);return m.push(h),m},[]).reduce((m,g)=>(m.redos.push(...g.redos),m.undos.push(...g.undos),m),{redos:[],undos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:l,undos:d}}})});x(this,"_checkRange",(o,n,r)=>{const a=Qt(n,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[]});x(this,"registerRefRange",(o,n,r,a)=>{const i=r||Jt(this._univerInstanceService),c=a||Xt(this._univerInstanceService),u=Qt(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(n):d.set(l,new Set([n])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(n),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._sheetInterceptorService=o,this._univerInstanceService=n,this._selectionManagerService=r,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}};exports.RefRangeService=br([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),mt(0,F.Inject(exports.SheetInterceptorService)),mt(1,F.Inject(s.IUniverInstanceService)),mt(2,F.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Jt(t){return t.getCurrentUniverSheetInstance().getUnitId()}function Xt(t){return t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function Zt(t){return t.getSelectionRanges()||[]}function Qt(t,e){return`${t}_${e}`}function Dr(){const t=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const n=t.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(e).reduce((a,i,c)=>{const u=String(c);return i&&n[u]&&(a[n[u]]=i),a},{})},serialize:o=>t.reduce((n,r,a)=>{const i=o[r];return i!==void 0?`${n}${a>0?e:""}${i}`:`${n}`},"")}}const ue=t=>({startRow:t.startColumn,endRow:t.endColumn,startColumn:t.startRow,endColumn:t.endRow}),jt=(t,e,o)=>{const n={...o},r={...e},a=(I,v)=>{const C=Math.max(I.start,v.start),p=Math.min(I.end,v.end);return p<C?null:{start:C,end:p}},i=I=>I.end-I.start+1,c=(I,v)=>({start:I.start-v.start,end:I.start-v.start+I.end-I.start}),u=(I,v)=>({start:v.start+I.start,end:v.start+I.start+I.end-I.start}),l=e.start>t.start;if(l){const I=Math.min(t.end,e.start)-t.start+1;r.start-=I,r.end-=I}const d=i(t),m=d,g=a(t,n),h=g&&i(g)>=i(n);if(t.end<n.start)n.start-=d,n.end-=d;else if(g){const I=i(g);if(h){const v=c(n,t),C=u(v,r);n.start=C.start,n.end=C.end}else g.start>t.start||l?n.end-=I:(n.start-=d,n.end-=d+I)}const S=a(r,n);if(r.start<=n.start&&!h)n.start+=m,n.end+=m;else if(S){const I=r.start;if(i(S)<=i(n))return{step:n.start-o.start,length:0};I<n.start?(n.start+=m,n.end+=m):I>=n.start&&I<=n.end&&(n.end+=m,n.start+=m)}return{step:n.start-o.start,length:i(n)-i(o)}},Xn=(t,e)=>{const{fromRange:o,toRange:n}=t.params||{};if(!n||!o)return[];const r=jt({start:o.startRow,end:o.endRow},{start:n.startRow,end:n.endRow},{start:e.startRow,end:e.endRow});return r===null?[{type:W.Delete}]:[{type:W.VerticalMove,step:r.step||0,length:r.length||0}]},Zn=(t,e)=>{const{fromRange:o,toRange:n}=t.params||{};if(!n||!o)return[];const r=jt({start:o.startColumn,end:o.endColumn},{start:n.startColumn,end:n.endColumn},{start:e.startColumn,end:e.endColumn});return r===null?[{type:W.Delete}]:[{type:W.HorizontalMove,step:r.step||0,length:r.length||0}]},Or=(t,e)=>{var a,i;const o=(a=t.params)==null?void 0:a.toRange,n=(i=t.params)==null?void 0:i.fromRange;if(!o||!n)return[];const r=[];if(s.Rectangle.contains(o,e)&&r.push({type:W.Delete}),s.Rectangle.contains(n,e)){r.push({type:W.Delete});const c=s.Rectangle.getRelativeRange(e,n),u=s.Rectangle.getPositionRange(c,o);return[{type:W.Set,range:u}]}return r},He=(t,e)=>{const o=r=>r.endColumn-r.startColumn+1,n=r=>r.endRow-r.startRow+1;if(t.startRow<=e.startRow&&t.endRow>=e.endRow){if(e.startColumn<t.startColumn&&e.endColumn>=t.startColumn&&e.endColumn<=t.endColumn||e.startColumn<t.startColumn&&e.endColumn>=t.endColumn){const r=s.Rectangle.getIntersects(e,t);if(r)return{step:0,length:-o(r)}}if(e.startColumn>=t.startColumn&&e.endColumn<=t.endColumn&&n(t)>=n(e))return null;if(e.startColumn>t.startColumn&&e.startColumn<=t.endColumn&&e.endColumn>t.endColumn){const r=s.Rectangle.getIntersects(e,t);if(r){const a=-o(r);return{step:-(o(t)-o(r)),length:a}}}if(e.startColumn>t.endColumn)return{step:-o(t),length:0}}return{step:0,length:0}},Ar=(t,e)=>{var a;const o=(a=t.params)==null?void 0:a.range;if(!o)return[];const n=[],r=He(o,e);if(!r)n.push({type:W.Delete});else{const{step:i,length:c}=r;n.push({type:W.HorizontalMove,step:i,length:c})}return n},Nr=(t,e)=>{var a;const o=(a=t.params)==null?void 0:a.range;if(!o)return[];const n=[],r=He(ue(o),ue(e));if(!r)n.push({type:W.Delete});else{const{step:i,length:c}=r;n.push({type:W.VerticalMove,step:i,length:c})}return n},$e=(t,e)=>{const o=n=>n.endColumn-n.startColumn+1;if(t.startRow<=e.startRow&&t.endRow>=e.endRow){if(e.startColumn<t.startColumn&&e.endColumn>=t.startColumn&&e.endColumn<=t.endColumn||e.startColumn<t.startColumn&&e.endColumn>=t.endColumn)return{step:0,length:o(t)};if(e.startColumn>=t.startColumn&&e.endColumn<=t.endColumn||e.startColumn>t.startColumn&&e.startColumn<=t.endColumn&&e.endColumn>t.endColumn||e.startColumn>=t.endColumn)return{step:o(t),length:0}}return{step:0,length:0}},Pr=(t,e)=>{var c;const o=(c=t.params)==null?void 0:c.range;if(!o)return[];const n=[],r=$e(ue(o),ue(e)),{step:a,length:i}=r;return n.push({type:W.VerticalMove,step:a,length:i}),n},kr=(t,e)=>{var c;const o=(c=t.params)==null?void 0:c.range;if(!o)return[];const n=[],r=$e(o,e),{step:a,length:i}=r;return n.push({type:W.HorizontalMove,step:a,length:i}),n},xr=(t,e)=>{var c;const o=(c=t.params)==null?void 0:c.range;if(!o)return[];const n=[],r=$e(ue(o),ue(e)),{step:a,length:i}=r;return n.push({type:W.VerticalMove,step:a,length:i}),n},Lr=(t,e)=>{var c;const o=(c=t.params)==null?void 0:c.range;if(!o)return[];const n=[],r=$e(o,e),{step:a,length:i}=r;return n.push({type:W.HorizontalMove,step:a,length:i}),n},Br=(t,e)=>{var a;const o=(a=t.params)==null?void 0:a.range;if(!o)return[];const n=[],r=He(o,e);if(!r)n.push({type:W.Delete});else{const{step:i,length:c}=r;n.push({type:W.HorizontalMove,step:i,length:c})}return n},Vr=(t,e)=>{var a;const o=(a=t.params)==null?void 0:a.range;if(!o)return[];const n=[],r=He(ue(o),ue(e));if(!r)n.push({type:W.Delete});else{const{step:i,length:c}=r;n.push({type:W.VerticalMove,step:i,length:c})}return n},It=(t,e)=>{let o={...e};return t.forEach(n=>{switch(n.type){case W.Delete:{o=null;break}case W.HorizontalMove:{if(!o)return;o.startColumn+=n.step,o.endColumn+=n.step+(n.length||0);break}case W.VerticalMove:{if(!o)return;o.startRow+=n.step,o.endRow+=n.step+(n.length||0);break}case W.Set:{o=n.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o};var Wr=Object.defineProperty,jr=Object.getOwnPropertyDescriptor,Fr=(t,e,o,n)=>{for(var r=n>1?void 0:n?jr(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&Wr(e,o,r),r},ye=(t,e)=>(o,n)=>e(o,n,t);function Qn(t,e){let o=t;if(e!==void 0){const n=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(e===s.Dimension.ROWS)for(let l=a;l<=i;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:a,endRow:i,startColumn:l,endColumn:l};n.push(d)}}o=n}return o}let Ze=class extends s.Disposable{constructor(t,e,o,n,r,a){super(),this._commandService=t,this._refRangeService=e,this._univerInstanceService=o,this._injector=n,this._sheetInterceptorService=r,this._selectionManagerService=a,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const t=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case tt.id:case nt.id:{const o=t._univerInstanceService.getCurrentUniverSheetInstance(),n=o.getUnitId(),r=o.getActiveSheet(),a=r.getSheetId(),i=r.getConfig().mergeData,c=t._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(l=>i.some(d=>s.Rectangle.intersects(d,l)))){const l={unitId:n,subUnitId:a,ranges:c},d=Q(t._injector,l),m=[{id:B.id,params:l}],g=[{id:L.id,params:d}];return{redos:m,undos:g}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const t=new s.DisposableCollection,e=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const c=i==null?void 0:i.getSheetBySheetId(a);if(!c)return;t.dispose();const u=c.getMergeData(),l=d=>{switch(d.id){case ot.id:{const m=d.params;return this._handleMoveRangeCommand(m,r,a)}case Oe.id:{const m=d.params,g=m.unitId||r,h=m.subUnitId||a;return this._handleInsertRowCommand(m,g,h)}case Ae.id:{const m=d.params,g=m.unitId||r,h=m.subUnitId||a;return this._handleInsertColCommand(m,g,h)}case ut.id:{const m=d.params;return this._handleRemoveColCommand(m,r,a)}case ct.id:{const m=d.params;return this._handleRemoveRowCommand(m,r,a)}case at.id:{const m=d.params;return this._handleInsertRangeMoveRightCommand(m,r,a)}case it.id:{const m=d.params;return this._handleInsertRangeMoveDownCommand(m,r,a)}case st.id:{const m=d.params;return this._handleDeleteRangeMoveUpCommand(m,r,a)}case rt.id:{const m=d.params;return this._handleDeleteRangeMoveLeftCommand(m,r,a)}case Y.MoveColsCommandId:{const m=d.params;return this._handleMoveColsCommand(m,r,a)}case Y.MoveRowsCommandId:{const m=d.params;return this._handleMoveRowsCommand(m,r,a)}}return{redos:[],undos:[]}};u.forEach(d=>{t.add(this._refRangeService.registerRefRange(d,l,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Ot.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;e(c,i)}if(r.id===L.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;e(a.unitId,a.subUnitId)}}));const o=this._univerInstanceService.getCurrentUniverSheetInstance(),n=o.getActiveSheet();e(o.getUnitId(),n.getSheetId())}_handleMoveRowsCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const a=[...r.getMergeData()],i={unitId:e,subUnitId:o,ranges:a},c={unitId:e,subUnitId:o,ranges:[]};a.forEach(d=>{const m=Xn({id:Y.MoveRowsCommandId,params:t},d),g=It(m,d);g&&c.ranges.push(g)});const u=Q(this._injector,i),l=ie(this._injector,c);return{redos:[{id:B.id,params:i},{id:L.id,params:c}],undos:[{id:B.id,params:l},{id:L.id,params:u}]}}_handleMoveColsCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const a=[...r.getMergeData()],i={unitId:e,subUnitId:o,ranges:a},c={unitId:e,subUnitId:o,ranges:[]};a.forEach(d=>{const m=Zn({id:Y.MoveColsCommandId,params:t},d),g=It(m,d);g&&c.ranges.push(g)});const u=Q(this._injector,i),l=ie(this._injector,c);return{redos:[{id:B.id,params:i},{id:L.id,params:c}],undos:[{id:B.id,params:l},{id:L.id,params:u}]}}_handleMoveRangeCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const a=r.getMergeData(),i=a.filter(g=>s.Rectangle.intersects(g,t.fromRange)),c=a.filter(g=>s.Rectangle.intersects(g,t.toRange)),u=i.map(g=>s.Rectangle.getRelativeRange(g,t.fromRange)).map(g=>s.Rectangle.getPositionRange(g,t.toRange)),l=Qn(u).filter(g=>!a.some(h=>s.Rectangle.equals(g,h))),d=[{id:B.id,params:{unitId:e,subUnitId:o,ranges:i}},{id:B.id,params:{unitId:e,subUnitId:o,ranges:c}},{id:L.id,params:{unitId:e,subUnitId:o,ranges:l}}],m=[{id:B.id,params:{unitId:e,subUnitId:o,ranges:l}},{id:L.id,params:{unitId:e,subUnitId:o,ranges:c}},{id:L.id,params:{unitId:e,subUnitId:o,ranges:i}}];return{redos:d,undos:m}}_handleInsertRowCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const{range:a}=t,{startRow:i,endRow:c}=a,u=s.Tools.deepClone(r.getMergeData()),l=s.Tools.deepClone(r.getMergeData()).map(v=>{const C=c-i+1;return i>v.endRow?v:i<=v.startRow?s.Rectangle.moveVertical(v,C):(v.endRow+=C,v)}),d={unitId:e,subUnitId:o,ranges:u},m=Q(this._injector,d),g={unitId:e,subUnitId:o,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:L.id,params:g}],I=[{id:B.id,params:h},{id:L.id,params:m}];return{redos:S,undos:I}}_handleInsertColCommand(t,e,o){const{range:n}=t,r=re(this._univerInstanceService,e);if(!r)return this._handleNull();const a=se(r,o);if(!a)return this._handleNull();const{startColumn:i,endColumn:c}=n,u=s.Tools.deepClone(a.getMergeData()),l=s.Tools.deepClone(a.getMergeData()).map(v=>{const C=c-i+1;return i>v.endColumn?v:i<=v.startColumn?s.Rectangle.moveHorizontal(v,C):(v.endColumn+=C,v)}),d={unitId:e,subUnitId:o,ranges:u},m=Q(this._injector,d),g={unitId:e,subUnitId:o,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:L.id,params:g}],I=[{id:B.id,params:h},{id:L.id,params:m}];return{redos:S,undos:I}}_handleRemoveColCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const{range:a}=t,i=s.Tools.deepClone(r.getMergeData());for(let h=0;h<i.length;h++){const S=i[h],{startColumn:I,endColumn:v}=S,C=v-I+1,{startColumn:p,endColumn:R}=a,M=R-p+1;if(R<S.startColumn)S.startColumn-=M,S.endColumn-=M;else{if(p>S.endColumn)continue;if(p<=S.startColumn&&R>=S.endColumn)i.splice(h,1),h--;else{const w=s.Rectangle.getIntersects(a,S),E=w.endColumn-w.startColumn+1,U=w.endRow-w.startRow===0;E===C-1&&U?(i.splice(h,1),h--):S.endColumn-=w.endColumn-w.startColumn+1}}}const c={unitId:e,subUnitId:o,ranges:s.Tools.deepClone(r.getMergeData())},u=Q(this._injector,c),l={unitId:e,subUnitId:o,ranges:i},d=ie(this._injector,l),m=[{id:B.id,params:c},{id:L.id,params:l}],g=[{id:B.id,params:d},{id:L.id,params:u}];return{redos:m,undos:g}}_handleRemoveRowCommand(t,e,o){const{range:n}=t,r=re(this._univerInstanceService,e);if(!r)return this._handleNull();const a=se(r,o);if(!a)return this._handleNull();const i=s.Tools.deepClone(a.getMergeData());for(let h=0;h<i.length;h++){const S=i[h],{startRow:I,endRow:v}=S,C=v-I+1,{startRow:p,endRow:R}=n,M=R-p+1;if(R<I)S.startRow-=M,S.endRow-=M;else{if(p>v)continue;if(p<=I&&R>=v)i.splice(h,1),h--;else{const w=s.Rectangle.getIntersects(n,S),E=w.endRow-w.startRow+1,U=w.endColumn-w.startColumn===0;E===C-1&&U?(i.splice(h,1),h--):S.endRow-=w.endRow-w.startRow+1}}}const c={unitId:e,subUnitId:o,ranges:s.Tools.deepClone(a.getMergeData())},u=Q(this._injector,c),l={unitId:e,subUnitId:o,ranges:i},d=ie(this._injector,l),m=[{id:B.id,params:c},{id:L.id,params:l}],g=[{id:B.id,params:d},{id:L.id,params:u}];return{redos:m,undos:g}}_handleInsertRangeMoveRightCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const a=t.range,i=r.getMaxColumns()-1,c=r.getMergeData(),u=[],l=[];c.forEach(S=>{const{startRow:I,endRow:v,startColumn:C,endColumn:p}=a;if(s.Rectangle.intersects({startRow:I,startColumn:C,endRow:v,endColumn:i},S)&&(u.push(S),s.Rectangle.contains({startRow:I,startColumn:C,endRow:v,endColumn:i},S))){const w=p-C+1;l.push({startRow:S.startRow,startColumn:S.startColumn+w,endRow:S.endRow,endColumn:S.endColumn+w})}});const d={unitId:e,subUnitId:o,ranges:u},m=Q(this._injector,d),g={unitId:e,subUnitId:o,ranges:l},h=ie(this._injector,g);return{redos:[{id:B.id,params:d},{id:L.id,params:g}],undos:[{id:L.id,params:m},{id:B.id,params:h}]}}_handleInsertRangeMoveDownCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const a=t.range,i=r.getMaxRows()-1,c=r.getMergeData(),u=[],l=[];c.forEach(v=>{const{startRow:C,startColumn:p,endColumn:R,endRow:M}=a;if(s.Rectangle.intersects({startRow:C,startColumn:p,endRow:i,endColumn:R},v)&&(u.push(v),s.Rectangle.contains({startRow:C,startColumn:p,endRow:i,endColumn:R},v))){const U=M-C+1;l.push({startRow:v.startRow+U,startColumn:v.startColumn,endRow:v.endRow+U,endColumn:v.endColumn})}});const d={unitId:e,subUnitId:o,ranges:u},m=Q(this._injector,d),g={unitId:e,subUnitId:o,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:L.id,params:g}],I=[{id:L.id,params:m},{id:B.id,params:h}];return{redos:S,undos:I}}_handleDeleteRangeMoveUpCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const a=t.range,i=r.getMaxRows()-1,c=r.getMergeData(),u=[],l=[];c.forEach(v=>{const{startRow:C,startColumn:p,endColumn:R,endRow:M}=a;if(s.Rectangle.intersects({startRow:C,startColumn:p,endRow:i,endColumn:R},v)&&(u.push(v),s.Rectangle.contains({startRow:C,startColumn:p,endRow:i,endColumn:R},v))){const U=M-C+1,T=s.Rectangle.moveVertical(v,-U);l.push(T)}});const d={unitId:e,subUnitId:o,ranges:u},m=Q(this._injector,d),g={unitId:e,subUnitId:o,ranges:l},h=ie(this._injector,g),S=[{id:B.id,params:d},{id:L.id,params:g}],I=[{id:L.id,params:m},{id:B.id,params:h}];return{redos:S,undos:I}}_handleDeleteRangeMoveLeftCommand(t,e,o){const n=re(this._univerInstanceService,e);if(!n)return this._handleNull();const r=se(n,o);if(!r)return this._handleNull();const a=t.range,i=r.getMaxColumns()-1,c=r.getMergeData(),u=[],l=[];c.forEach(S=>{const{startRow:I,endRow:v,startColumn:C,endColumn:p}=a;if(s.Rectangle.intersects({startRow:I,startColumn:C,endRow:v,endColumn:i},S)&&(u.push(S),s.Rectangle.contains({startRow:I,startColumn:C,endRow:v,endColumn:i},S))){const w=p-C+1;l.push({startRow:S.startRow,startColumn:S.startColumn-w,endRow:S.endRow,endColumn:S.endColumn-w})}});const d={unitId:e,subUnitId:o,ranges:u},m=Q(this._injector,d),g={unitId:e,subUnitId:o,ranges:l},h=ie(this._injector,g);return{redos:[{id:B.id,params:d},{id:L.id,params:g}],undos:[{id:L.id,params:m},{id:B.id,params:h}]}}_handleNull(){return{redos:[],undos:[]}}};Ze=Fr([s.OnLifecycle(s.LifecycleStages.Steady,Ze),ye(0,F.Inject(s.ICommandService)),ye(1,F.Inject(exports.RefRangeService)),ye(2,F.Inject(s.IUniverInstanceService)),ye(3,F.Inject(F.Injector)),ye(4,F.Inject(exports.SheetInterceptorService)),ye(5,F.Inject(exports.SelectionManagerService))],Ze);function re(t,e){return e?t.getUniverSheetInstance(e):t.getCurrentUniverSheetInstance()}function se(t,e){return e?t.getSheetBySheetId(e):t.getActiveSheet()}const Hr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},eo={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var $r=Object.defineProperty,zr=Object.getOwnPropertyDescriptor,Gr=(t,e,o,n)=>{for(var r=n>1?void 0:n?zr(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&$r(e,o,r),r},Ye=(t,e)=>(o,n)=>e(o,n,t);const en="SHEET_NUMFMT_PLUGIN";exports.NumfmtService=class extends s.Disposable{constructor(o,n,r,a){super();x(this,"_numfmtModel",new Map);x(this,"_refAliasModel",new Map);x(this,"_modelReplace$",new Ue.Subject);x(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=n,this._univerInstanceService=r,this._logService=a,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,en,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,c)=>{const{model:u,refModel:l}=c;if(u){const d=Object.keys(u).reduce((m,g)=>(m.set(g,new s.ObjectMatrix(u[g])),m),new Map);this._numfmtModel.set(i,d)}l&&this._refAliasModel.set(i,new s.RefAlias(l,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,en)})));const n=this._univerInstanceService.getCurrentUniverSheetInstance();o(n)}_toJson(o){const n=this._numfmtModel.get(o),r=this._refAliasModel.get(o);if(!n||!r)return"";const a=[...n.keys()].reduce((u,l)=>{const d=n.get(l);return u[l]=d.toJSON(),u},{}),i=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,n,r,a,i){let c=this.getModel(o,n);if(!c){const u=this._numfmtModel.get(o)||new Map,l=u.get(n)||new s.ObjectMatrix;u.set(n,l),this._numfmtModel.set(o,u),c=l}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.getSizeOf()){const l=this._numfmtModel.get(o);l==null||l.delete(n)}}_getUniqueRefId(o){const n=this._refAliasModel.get(o);if(!n)return"0";const r=n.getKeyMap("i");return`${Math.max(...r.map(i=>Number(i||0)),0)+1}`}getValue(o,n,r,a,i){const c=i||this.getModel(o,n);if(!c)return null;const u=this._refAliasModel.get(o),l=c.getValue(r,a);if(l&&u){const d=u.getValue(l==null?void 0:l.i);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,n,r){let a=this._refAliasModel.get(o);const i=this.getModel(o,n);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),r.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=this.getValue(o,n,u,l,i);if(d&&d.pattern){const m=a.getValue(d.pattern);m&&m.count--}this._setValue(o,n,u,l,null)})})}setValues(o,n,r){const a=this.getModel(o,n);let i=this._refAliasModel.get(o);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),r.forEach(c=>{let u=i.getValue(c.pattern);u||(u={count:0,i:this._getUniqueRefId(o),pattern:c.pattern,type:r[0].type},i.addValue(u)),c.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{if(a){const g=this.getValue(o,n,d,m,a);if(g&&g.pattern){const h=i.getValue(g.pattern);h&&h.count--}}this._setValue(o,n,d,m,{i:u.i}),u.count++})})})}getModel(o,n){const r=this._numfmtModel.get(o);return r==null?void 0:r.get(n)}getRefModel(o){return this._refAliasModel.get(o)}};exports.NumfmtService=Gr([s.OnLifecycle(s.LifecycleStages.Starting,exports.NumfmtService),Ye(0,F.Inject(s.ICommandService)),Ye(1,F.Inject(s.IResourceManagerService)),Ye(2,F.Inject(s.IUniverInstanceService)),Ye(3,F.Inject(s.ILogService))],exports.NumfmtService);const tn="univer.sheet.editable";class Se extends s.PermissionPoint{constructor(o,n){super();x(this,"id",tn);x(this,"value",!0);x(this,"unitID");this._unitId=o,this._subUnitId=n,this.unitID=o,this.id=`${tn}_${o}_${n}`}}var qr=Object.defineProperty,Yr=Object.getOwnPropertyDescriptor,Kr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Yr(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&qr(e,o,r),r},gt=(t,e)=>(o,n)=>e(o,n,t);exports.SheetPermissionService=class extends s.Disposable{constructor(e,o,n){super(),this._permissionService=e,this._univerInstanceService=o,this._sheetInterceptorService=n,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),o=e.getUnitId();e.getSheets().forEach(n=>{const r=n.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(n=>{const r=n.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(n=>{const r=n.getSheetId(),a=new Se(o,r);this._permissionService.deletePermissionPoint(e.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(_e.PERMISSION,{priority:99,handler:(e,o,n)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=r==null?void 0:r.getActiveSheet(),i=r==null?void 0:r.getUnitId(),c=a==null?void 0:a.getSheetId();if(!i||!c)return!1;switch(o.id){case Ie.id:return this.getSheetEditable(i,c)}return n()}}))}getEditable$(e,o){const n=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||n.getUnitId(),a=n.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(io.map(([u,l])=>{const d=u.value&&l.value,m=s.getTypeFromPermissionItemList([u,l]);return{value:d,status:m}}))}getSheetEditable(e,o){const n=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||n.getUnitId(),a=n.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(e,o,n){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=o||r.getUnitId(),i=r.getActiveSheet(),c=n||i.getSheetId(),u=new Se(a,c);this._permissionService.updatePermissionPoint(a,u.id,e)}};exports.SheetPermissionService=Kr([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),gt(0,F.Inject(s.IPermissionService)),gt(1,F.Inject(s.IUniverInstanceService)),gt(2,F.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function Jr(t){const e=t.get(s.IUniverInstanceService),o=t.get(exports.SheetPermissionService),n=e.getCurrentUniverSheetInstance().getUnitId(),r=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new Ue.Observable(a=>{var c;const i=(c=o.getEditable$(n,r))==null?void 0:c.subscribe(u=>{a.next(!u.value)});return()=>{i==null||i.unsubscribe()}})}var Xr=Object.defineProperty,Zr=Object.getOwnPropertyDescriptor,Qr=(t,e,o,n)=>{for(var r=n>1?void 0:n?Zr(e,o):e,a=t.length-1,i;a>=0;a--)(i=t[a])&&(r=(n?i(e,o,r):i(r))||r);return n&&r&&Xr(e,o,r),r},ht=(t,e)=>(o,n)=>e(o,n,t);const es="sheet";var St;exports.UniverSheetsPlugin=(St=class extends s.Plugin{constructor(e,o,n,r){super(es),this._config=e,this._commandService=o,this._localeService=n,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:eo})}_initializeDependencies(e){var n;const o=[[Me],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[we,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[Ke],[Ze]];(n=this._config)!=null&&n.notExecuteFormula||o.push([Je],[Xe]),o.forEach(r=>{e.add(r)})}},x(St,"type",s.PluginType.Sheet),St);exports.UniverSheetsPlugin=Qr([ht(1,s.ICommandService),ht(2,F.Inject(s.LocaleService)),ht(3,F.Inject(F.Injector))],exports.UniverSheetsPlugin);const ts=[ce.id,ne.id,Lt.id,ae.id,Fe.id,Be.id,Ve.id,be.id,Te.id,De.id,Ee.id,fe.id,Ce.id,pe.id,Re.id],ns=[H.id,Le.id,B.id,L.id],os=1.5,rs="rgba(255,255,255, 0.01)";function ss(t){const e=t.getCurrentTheme(),o=new s.ColorKit(e.colorBlack).setAlpha(.1).toRgbString();return{strokeWidth:1.5,stroke:e.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function is(t){const{rangeWithCoord:e,primaryWithCoord:o,style:n}=t,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:n};return o!=null&&(r.primary=to(o)),r}function to(t){const{actualRow:e,actualColumn:o,isMerged:n,isMergedMainCell:r}=t,{startRow:a,startColumn:i,endRow:c,endColumn:u}=t.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:n,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function as(t,e,o){const n=ao.getCellInfoInMergeData(t,e,o),r=s.makeCellRangeToRangeData(n);if(r)return{range:r,primary:n,style:null}}const cs={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0};exports.AddMergeUndoMutationFactory=ie;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=Me;exports.COMMAND_LISTENER_SKELETON_CHANGE=ts;exports.COMMAND_LISTENER_VALUE_CHANGE=ns;exports.ClearSelectionAllCommand=tt;exports.ClearSelectionContentCommand=Ct;exports.ClearSelectionFormatCommand=nt;exports.CopySheetCommand=sn;exports.DeleteRangeMoveLeftCommand=rt;exports.DeleteRangeMoveUpCommand=st;exports.DeltaColumnWidthCommand=Nt;exports.DeltaRowHeightCommand=qn;exports.EffectRefRangId=Y;exports.EmptyMutation=cs;exports.INTERCEPTOR_POINT=_e;exports.INumfmtService=we;exports.InsertColAfterCommand=vn;exports.InsertColBeforeCommand=Sn;exports.InsertColCommand=Ae;exports.InsertColMutation=fe;exports.InsertColMutationUndoFactory=yt;exports.InsertRangeMoveDownCommand=it;exports.InsertRangeMoveRightCommand=at;exports.InsertRowAfterCommand=gn;exports.InsertRowBeforeCommand=mn;exports.InsertRowCommand=Oe;exports.InsertRowMutation=Ce;exports.InsertRowMutationUndoFactory=wt;exports.InsertSheetCommand=In;exports.InsertSheetMutation=ve;exports.InsertSheetUndoMutationFactory=ft;exports.MAX_CELL_PER_SHEET_KEY=Jn;exports.MoveColsCommand=_t;exports.MoveColsMutation=Ve;exports.MoveRangeCommand=ot;exports.MoveRangeMutation=Le;exports.MoveRowsCommand=Ut;exports.MoveRowsMutation=Be;exports.NORMAL_SELECTION_PLUGIN_NAME=G;exports.OperatorType=W;exports.RemoveColCommand=ut;exports.RemoveColMutation=pe;exports.RemoveMergeUndoMutationFactory=Q;exports.RemoveNumfmtMutation=Wt;exports.RemoveRowCommand=ct;exports.RemoveRowMutation=Re;exports.RemoveSheetCommand=bt;exports.RemoveSheetMutation=We;exports.RemoveSheetUndoMutationFactory=rn;exports.RemoveWorksheetMergeCommand=Mn;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=Ln;exports.ResetTextColorCommand=kn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=rs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=os;exports.SelectionMoveType=nn;exports.SetBackgroundColorCommand=xn;exports.SetBoldCommand=Ko;exports.SetBorderBasicCommand=wn;exports.SetBorderColorCommand=_n;exports.SetBorderCommand=Ne;exports.SetBorderPositionCommand=yn;exports.SetBorderStyleCommand=Un;exports.SetColHiddenCommand=Tn;exports.SetColHiddenMutation=be;exports.SetColVisibleMutation=Te;exports.SetColWidthCommand=Pt;exports.SetFontFamilyCommand=Qo;exports.SetFontSizeCommand=er;exports.SetFrozenCommand=Dn;exports.SetFrozenMutation=me;exports.SetFrozenMutationFactory=Et;exports.SetHorizontalTextAlignCommand=Vn;exports.SetItalicCommand=Jo;exports.SetNumfmtMutation=dt;exports.SetRangeValuesCommand=Ie;exports.SetRangeValuesMutation=H;exports.SetRangeValuesUndoMutationFactory=de;exports.SetRowHeightCommand=Yn;exports.SetRowHiddenCommand=An;exports.SetRowHiddenMutation=De;exports.SetRowVisibleMutation=Ee;exports.SetSelectedColsVisibleCommand=bn;exports.SetSelectedRowsVisibleCommand=On;exports.SetSelectionsOperation=z;exports.SetSpecificColsVisibleCommand=Tt;exports.SetSpecificRowsVisibleCommand=Dt;exports.SetStrikeThroughCommand=Zo;exports.SetStyleCommand=q;exports.SetTabColorCommand=Fn;exports.SetTabColorMutation=ke;exports.SetTextColorCommand=Pn;exports.SetTextRotationCommand=jn;exports.SetTextWrapCommand=Wn;exports.SetUnderlineCommand=Xo;exports.SetVerticalTextAlignCommand=Bn;exports.SetWorksheetActivateCommand=Ot;exports.SetWorksheetActiveOperation=Fe;exports.SetWorksheetColWidthMutation=ae;exports.SetWorksheetColWidthMutationFactory=At;exports.SetWorksheetHideCommand=$n;exports.SetWorksheetHideMutation=ge;exports.SetWorksheetNameCommand=kt;exports.SetWorksheetNameMutation=Qe;exports.SetWorksheetOrderCommand=zn;exports.SetWorksheetOrderMutation=xe;exports.SetWorksheetRowAutoHeightMutation=Lt;exports.SetWorksheetRowAutoHeightMutationFactory=sr;exports.SetWorksheetRowHeightMutation=ce;exports.SetWorksheetRowIsAutoHeightCommand=Bt;exports.SetWorksheetRowIsAutoHeightMutation=ne;exports.SetWorksheetShowCommand=Kn;exports.SheetEditablePermission=Se;exports.alignToMergedCellsBorders=je;exports.convertPrimaryWithCoordToPrimary=to;exports.convertSelectionDataToRange=is;exports.enUS=Hr;exports.factoryRemoveNumfmtUndoMutation=mr;exports.factorySetNumfmtUndoMutation=lr;exports.followSelectionOperation=le;exports.getAddMergeMutationRangeByType=Qn;exports.getCellAtRowCol=Do;exports.getCurrentSheetDisabled$=Jr;exports.getInsertRangeMutations=pt;exports.getNormalSelectionStyle=ss;exports.getPrimaryForRange=X;exports.getRemoveRangeMutations=Mt;exports.handleBaseInsertRange=$e;exports.handleBaseMoveRowsCols=jt;exports.handleBaseRemoveRange=He;exports.handleDeleteRangeMoveLeft=Br;exports.handleDeleteRangeMoveUp=Vr;exports.handleDeleteRangeMutation=Ao;exports.handleIRemoveCol=Ar;exports.handleIRemoveRow=Nr;exports.handleInsertCol=kr;exports.handleInsertRangeMoveDown=xr;exports.handleInsertRangeMoveRight=Lr;exports.handleInsertRangeMutation=Oo;exports.handleInsertRow=Pr;exports.handleMoveCols=Zn;exports.handleMoveRange=Or;exports.handleMoveRows=Xn;exports.rangeMerge=Vt;exports.rotateRange=ue;exports.runRefRangeMutations=It;exports.transformCellDataToSelectionData=as;exports.transformCellsToRange=et;exports.zhCN=eo;
|
|
1
|
+
"use strict";var vo=Object.defineProperty;var So=(n,e,o)=>e in n?vo(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var x=(n,e,o)=>(So(n,typeof e!="symbol"?e+"":e,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),H=require("@wendellhu/redi"),_e=require("rxjs"),It=require("@univerjs/engine-formula"),Co=require("rxjs/operators"),Io=require("@univerjs/engine-render");var fo=Object.defineProperty,Ro=Object.getOwnPropertyDescriptor,po=(n,e,o,t)=>{for(var r=t>1?void 0:t?Ro(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&fo(e,o,r),r},Mo=(n,e)=>(o,t)=>e(o,t,n);const q="normalSelectionPluginName";var sn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(sn||{});exports.SelectionManagerService=class{constructor(e){x(this,"_selectionInfo",new Map);x(this,"_currentSelection",null);x(this,"_selectionMoveStart$",new _e.Subject);x(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());x(this,"_selectionMoving$",new _e.Subject);x(this,"selectionMoving$",this._selectionMoving$.asObservable());x(this,"_selectionMoveEnd$",new _e.BehaviorSubject(null));x(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());x(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId})}reset(){var e,o;this._currentSelection!=null&&(this._currentSelection={pluginName:q,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=q,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const e=this.getSelections();return e==null?!1:e.some(({range:o},t)=>e.some(({range:r},a)=>t===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(e){var a,i;if(e==null)return;const{pluginName:o,unitId:t,sheetId:r}=e;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(t))==null?void 0:i.get(r)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[0]}_getLastByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[o.length-1]}_addByParam(e,o=!0){const{pluginName:t,unitId:r,sheetId:a,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const c=this._selectionInfo.get(t);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let l=u.get(a);l==null&&(l=[],u.set(a,l)),l.push(...i)}o&&this._refresh({pluginName:t,unitId:r,sheetId:a})}_replaceByParam(e){const{pluginName:o,unitId:t,sheetId:r,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(t)||i.set(t,new Map);const c=i.get(t);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(e){const o=this._getSelectionDatas(e);o==null||o.splice(0),this._refresh(e)}_removeByParam(e,o){const t=this._getSelectionDatas(o);t==null||t.splice(e,1),this._refresh(o)}};exports.SelectionManagerService=po([Mo(0,H.Inject(s.ThemeService))],exports.SelectionManagerService);const wo=s.createInterceptorKey("CELL_CONTENT"),yo=s.createInterceptorKey("PERMISSION"),be={CELL_CONTENT:wo,PERMISSION:yo};var Uo=Object.defineProperty,_o=Object.getOwnPropertyDescriptor,bo=(n,e,o,t)=>{for(var r=t>1?void 0:t?_o(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Uo(e,o,r),r},To=(n,e)=>(o,t)=>e(o,t,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();x(this,"_interceptorsByName",new Map);x(this,"_commandInterceptors",[]);x(this,"_workbookDisposables",new Map);x(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(t=>{this._interceptWorkbook(t)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(t=>this._disposeWorkbookInterceptor(t)))),this.intercept(be.CELL_CONTENT,{priority:-1,handler(t,r){const a=r.worksheet.getCellRaw(r.row,r.col);return t?{...a,...t}:a}}),this.intercept(be.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((t,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=t.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const t=this._commandInterceptors.map(r=>r.getMutations(o));return{undos:t.map(r=>r.undos).flat(),redos:t.map(r=>r.redos).flat()}}intercept(o,t){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(t),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=i.priority)!=null?l:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),t)))}fetchThroughInterceptors(o){const t=o,r=this._interceptorsByName.get(t);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const t=new s.DisposableCollection,r=o.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,h){return a.fetchThroughInterceptors(be.CELL_CONTENT)(c.getCellRaw(g,h),{unitId:r,subUnitId:u,row:g,col:h,worksheet:c,workbook:o})}});d.add(m),a._worksheetDisposables.set(Jt(r,c),d)})};o.getSheets().forEach(c=>i(c)),t.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),t.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),t.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(o){const t=o.getUnitId(),r=this._workbookDisposables.get(t);r&&(r.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(o,t){const r=Jt(o,t),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=bo([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),To(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Jt(n,e){return`${n}|${e.getSheetId()}`}const le=(n,e)=>{const{unitId:o,subUnitId:t,cellValue:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,h,v)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,h))||{},C=l.getStyleByCell(S),I=Oo(C,v&&v.s?v.s:null);S.s=I,d.setValue(g,h,Eo(S))}),{...e,options:{},cellValue:d.getMatrix()}};function Eo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n)}const $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:o,subUnitId:t,unitId:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(t);if(!c)return!1;const u=c.getCellMatrix(),l=i.getStyles();return new s.ObjectMatrix(o).forValue((m,g,h)=>{if(!h)u==null||u.setValue(m,g,{});else{const v=u.getValue(m,g)||{},S=h.t===s.CellValueType.FORCE_STRING?h.t:Do(h.v===void 0?v.v:h.v);if(h.f!==void 0&&(v.f=h.f),h.si!==void 0&&(v.si=h.si),h.p!==void 0&&(v.p=h.p),h.v!==void 0&&(v.v=S===s.CellValueType.NUMBER?Number(h.v):h.v),v.v!==void 0&&(v.t=S),h.s!==void 0){const C=l.getStyleByCell(v);C==null&&delete v.s,typeof h.s=="string"&&(h.s=l.get(h.s));const I=an(C,h.s?h.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=l.setValue(I),!h.p&&v.p&&Po(v.p,h.s?h.s:null)}u.setValue(m,g,s.Tools.removeNull(v))}}),!0}};function Do(n){return n===null?null:typeof n=="string"?xo(n)?s.CellValueType.NUMBER:Lo(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function Oo(n,e){return Ao(n,e)}function Ao(n,e){if(!e||!Object.keys(e).length)return n;const o=n||{};for(const t in e)t==="bd"?o[t]=No(o[t]||{},e[t]):t in o||(o[t]=null);return o}function No(n,e){if(!e||!Object.keys(e).length)return n;for(const o in e)o in n||(n[o]=null);return n}function an(n,e,o=!1){if(e===null)return e;if(e===void 0)return n;const t=s.Tools.deepClone(n)||{};if(t){for(const r in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in t&&r==="bd"?t[r]=Object.assign(t[r],e[r]):t[r]=e[r]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}}function Po(n,e){var o,t;(t=(o=n.body)==null?void 0:o.textRuns)==null||t.forEach(r=>{r.ts||(r.ts={});const a=r.ts||{},i=an(a,e,!0);i&&s.Tools.removeNull(i),s.Tools.isEmptyObject(i)?delete r.ts:r.ts=i})}function ko(n){return/^-?\d+(\.\d+)?$/.test(n)}function xo(n){return ko(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Lo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const ot={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],h={subUnitId:l,unitId:c,cellValue:Bo(d)},v=le(n,h);m.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:ot.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 Bo(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const ft={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:Vo(d)},g=le(n,m),h=a.onCommandExecute({id:ft.id}),v=[{id:$.id,params:m},...h.redos],S=[...h.undos,{id:$.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:v}),!0):!1}};function Vo(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null})}),e.getData()}const rt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],h={subUnitId:l,unitId:c,cellValue:Wo(d)},v=le(n,h);m.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:rt.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 Wo(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{s:null})}),e.getData()}const Rt=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),Ce={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{sheet:t,index:r,unitId:a}=e,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(t.id,r,t):!1}},cn=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:a}=e,i=t.getSheetBySheetId(r).getConfig();return{index:t.getConfig().sheetOrder.findIndex(l=>l===r),sheet:i,unitId:a}},je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:t,unitId:r}=e,a=o.getUniverSheetInstance(r);return a?a.removeSheet(t):!1}},un={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{var S,C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.unitId)!=null?S:i,c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d=s.Tools.deepClone(l.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(l)+1,sheet:d,unitId:i},h=Rt(n,g);return o.syncExecuteCommand(Ce.id,g)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:h}],redoMutations:[{id:Ce.id,params:g}]}),!0):!1}},Be={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{from:o,to:t}=e;if(!o||!t)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(e.from.subUnitId),c=a.getSheetBySheetId(e.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(t.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},z={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(exports.SelectionManagerService);if(!e)return!1;const{selections:t,type:r}=e;return o.replace(t,r),!0}};function Fe(n,e,o=!0){const t=e.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(t.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const 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?Fe(a,e,o):a}function jo(n,e,o){let t=null;return o.getMatrixWithMergedCells(n,e,n,e).forValue((a,i,c)=>(t={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),t||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function X(n,e){const o=e.getMergedCell(n.startRow,n.startColumn);return o?{...o,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.startColumn,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const me=(n,e,o)=>({id:z.id,params:{unitId:e.getUnitId(),subUnitId:o.getSheetId(),pluginName:q,selections:[{range:n,primary:X(n,o)}]}}),dn="sheet.command.move-range",st={type:s.CommandType.COMMAND,id:dn,handler:(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId(),d=pt(n,{unitId:u,subUnitId:l,range:e.fromRange},{unitId:u,subUnitId:l,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=n.get(exports.SheetInterceptorService).onCommandExecute({id:st.id,params:{...e}}),h=[...d.redos,...g.redos,{id:z.id,params:{unitId:u,subUnitId:l,pluginName:q,selections:[{range:e.toRange,primary:X(e.toRange,c)}]}}],v=[{id:z.id,params:{unitId:u,subUnitId:l,pluginName:q,selections:[{range:e.fromRange,primary:X(e.fromRange,c)}]}},...d.undos,...g.undos];return s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:h}),!0):!1}};function pt(n,e,o,t=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=e,{range:l,subUnitId:d}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),h=g==null?void 0:g.getSheetBySheetId(d),v=g==null?void 0:g.getSheetBySheetId(c),S=h==null?void 0:h.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(h&&v&&S&&C){const I=Fe(l,h,!1);if(!s.Rectangle.equals(l,I)&&!t)return null;const R=new s.ObjectMatrix,p=new s.ObjectMatrix,M=(_,y)=>({startRow:_,endRow:_,startColumn:y,endColumn:y});s.Range.foreach(i,(_,y)=>{R.setValue(_,y,C.getValue(_,y)),p.setValue(_,y,null)});const b=new s.ObjectMatrix;s.Range.foreach(l,(_,y)=>{b.setValue(_,y,S.getValue(_,y))});const w=new s.ObjectMatrix;s.Range.foreach(i,(_,y)=>{const k=M(_,y),f=s.Rectangle.getRelativeRange(k,i),G=s.Rectangle.getPositionRange(f,l);w.setValue(G.startRow,G.startColumn,C.getValue(_,y))});const T={from:{value:p.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:d},unitId:u},U={from:{value:R.getMatrix(),subUnitId:c},to:{value:b.getMatrix(),subUnitId:d},unitId:u};r.push({id:Be.id,params:T}),a.push({id:Be.id,params:U})}return{redos:r,undos:a}}const Ie={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),{value:c,range:u,unitId:l=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,m=u?[u]:a.getSelectionRanges();if(!m||!m.length)return!1;const g=new s.ObjectMatrix;let h;if(s.Tools.isArray(c))for(let M=0;M<m.length;M++){const{startRow:b,startColumn:w,endRow:T,endColumn:U}=m[M];for(let _=0;_<=T-b;_++)for(let y=0;y<=U-w;y++)g.setValue(_+b,y+w,c[_][y])}else if(s.isICellData(c))for(let M=0;M<m.length;M++){const{startRow:b,startColumn:w,endRow:T,endColumn:U}=m[M];for(let _=b;_<=T;_++)for(let y=w;y<=U;y++)g.setValue(_,y,c)}else h=c;const v={subUnitId:d,unitId:l,cellValue:h!=null?h:g.getMatrix()},S=le(n,v);if(!i.fetchThroughInterceptors(be.PERMISSION)(null,{id:Ie.id,params:v}))return!1;const C=o.syncExecuteCommand($.id,v),{undos:I,redos:R}=i.onCommandExecute({id:Ie.id,params:{...v,range:m}}),p=await s.sequenceExecute([...R],o);return C&&p.result?(t.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...R]}),!0):!1}};function Mt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=e,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 h=g.getCellMatrix(),v=h.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let p,M;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,v.endRow);let T=0;for(let _=i.startRow;_<=w;_++){const y=h.getRow(_),k=y?s.getArrayLength(y)-1:0;T=Math.max(T,k)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:T};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,v.endColumn),T=v.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:T,endColumn:w};const U=i.endRow-i.startRow+1;M={startRow:p.startRow+U,startColumn:i.startColumn,endRow:p.endRow+U,endColumn:w}}const b=pt(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:M},!0);b&&(o.push(...b.redos),t.push(...b.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},C=le(n,S),{undos:I,redos:R}=d.onCommandExecute({id:Ie.id,params:{...S,range:i}});o.push({id:$.id,params:S},...R),t.push({id:$.id,params:C},...I)}return{redo:o,undo:t}}function wt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=e,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(),h=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:$o([i])},S=le(n,v),C=l.onCommandExecute({id:Ie.id,params:v});if(o.push({id:$.id,params:v},...C.redos),t.push(...C.undos,{id:$.id,params:S}),i.startColumn<=h.endColumn||i.startRow<=h.endRow){let I=null,R=null;if(c===s.Dimension.COLUMNS&&i.endColumn<h.endColumn){const p=Math.min(i.endRow,h.endRow);let M=0;for(let w=i.startRow;w<=p;w++){const T=g.getRow(w),U=T?s.getArrayLength(T)-1:0;M=Math.max(M,U)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:M};const b=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:I.startColumn-b,endRow:p,endColumn:I.endColumn-b}}if(c===s.Dimension.ROWS&&i.endRow<h.endRow){const p=Math.min(i.endColumn,h.endColumn),M=h.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:p};const b=i.endRow-i.startRow+1;R={startRow:I.startRow-b,startColumn:i.startColumn,endRow:I.endRow-b,endColumn:p}}if(I&&R){const p=pt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:R},!0);p&&(o.push(...p.redos),t.push(...p.undos))}}}return{redo:o,undo:t}}function Fo(n,e,o,t,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=e;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 h=n.getValue(m,g);h==null?n.realDeleteValue(m+d,g):n.setValue(m+d,g,h)}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=t;g>=u;g--){const h=n.getValue(m,g);h==null?n.realDeleteValue(m,g+d):n.setValue(m,g+d,h)}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 Ho(n,e,o,t,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=e,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 h=n.getValue(m+l,g);h==null?n.realDeleteValue(m,g):n.setValue(m,g,h)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=c;g<=t;g++){const h=n.getValue(m,g+d);h==null?n.realDeleteValue(m,g):n.setValue(m,g,h)}}function $o(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const ln="sheet.command.delete-range-move-left",it={type:s.CommandType.COMMAND,id:ln,handler:async(n,e)=>{var p;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(p=a.getLast())==null?void 0:p.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:it.id,params:{range:l}}),{redo:v,undo:S}=wt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(l,d,m)),I.push(...h.undos),s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},mn="sheet.command.delete-range-move-up",at={type:s.CommandType.COMMAND,id:mn,handler:async(n,e)=>{var p;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(p=a.getLast())==null?void 0:p.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:at.id,params:{range:l}}),{redo:v,undo:S}=wt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(l,d,m)),I.push(...h.undos),await s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},yt=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},fe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,e)=>{var v;const{unitId:o,subUnitId:t,range:r,rowInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const 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,(v=a[S-r.startRow])!=null?v:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},Ut=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Re={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,e)=>{var v;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:c}=e,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 C={w:g,hd:0};c?s.insertMatrixArray(S,(v=c[S-i.startColumn])!=null?v:C,l):s.insertMatrixArray(S,C,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},Go=(n,e)=>{const r=e.getRowManager().getRowData(),a={},i=n.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},pe={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getRowManager().getRowData(),u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},zo=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},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}},Me={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},qo="sheet.command.insert-range-move-down",ct={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var y;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(y=i.getLast())==null?void 0:y.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),R=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,p=Math.max(R+(d.endRow-d.startRow+1)-C.endRow,0);if(p>0){const k=d.startRow-1,f=g.getRowHeight(k),G={unitId:u,subUnitId:l,range:{startRow:C.endRow+1,endRow:C.endRow+p,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(p).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))};h.push({id:fe.id,params:G});const ve=yt(n,G);v.push({id:pe.id,params:ve})}const M={};s.Range.foreach(d,(k,f)=>{const G=g.getCell(k,f);G&&(M[k]||(M[k]={}),M[k][f]={s:G.s})});const b={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:M},{redo:w,undo:T}=Mt(n,b);h.push(...w),v.push(...T);const U=c.onCommandExecute({id:ct.id,params:{range:d}});return h.push(...U.redos),h.push(me(d,m,g)),v.push(...U.undos),s.sequenceExecute(h,o)?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},gn="sheet.command.insert-range-move-right",ut={type:s.CommandType.COMMAND,id:gn,handler:async(n,e)=>{var y;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(y=i.getLast())==null?void 0:y.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),R=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,p=Math.max(R+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(p>0){const k=d.startColumn-1,f=g.getColumnWidth(k),G={unitId:u,subUnitId:l,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+p},colInfo:new Array(p).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))};h.push({id:Re.id,params:G});const ve=Ut(n,G);v.push({id:Me.id,params:ve})}const M={};s.Range.foreach(d,(k,f)=>{const G=g.getCell(k,f);!G||!G.s||(M[k]||(M[k]={}),M[k][f]={s:G.s})});const b={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:M},{redo:w,undo:T}=Mt(n,b);h.push(...w),v.push(...T);const U=c.onCommandExecute({id:ut.id,params:{range:d}});return h.push(...U.redos),h.push(me(d,m,g)),v.push(...U.undos),s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},hn="sheet.command.insert-row",Ae={type:s.CommandType.COMMAND,id:hn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(e.unitId),c=i.getSheetBySheetId(e.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m}=e,{startRow:g,endRow:h}=u,v=l===s.Direction.UP?g:g-1,S=c.getRowHeight(v),C={unitId:d,subUnitId:m,range:u,rowInfo:new Array(h-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=yt(n,C),R=a.onCommandExecute({id:Ae.id,params:e});return s.sequenceExecute([{id:fe.id,params:C},...R.redos,me(u,i,c)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:pe.id,params:I},...R.redos],redoMutations:[...R.undos,{id:fe.id,params:C}]}),!0):!1}},vn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(h=>h.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=t.endRow-t.startRow+1,d={};s.Range.foreach(t,(h,v)=>{const S=i.getCell(h,v);!S||!S.s||(d[h]||(d[h]={}),d[h][v]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(Ae.id,m)}},Sn={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 t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=t.endRow-t.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Ae.id,d)}},Cn="sheet.command.insert-col",Ne={type:s.CommandType.COMMAND,id:Cn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l,cellValue:d}=e,{startColumn:m,endColumn:g}=e.range,h=r.getUniverSheetInstance(e.unitId),v=h.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?m:m-1,C=v.getColumnWidth(S),I={unitId:l,subUnitId:u,range:i,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:C,hd:s.BooleanNumber.FALSE}))},R=Ut(n,I);e.unitId,e.subUnitId,e.range,s.Dimension.COLUMNS;const p=a.onCommandExecute({id:Ne.id,params:e});return s.sequenceExecute([{id:Re.id,params:I},...p.redos,me(i,h,v)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...p.undos,{id:Me.id,params:R}],redoMutations:[{id:Re.id,params:I},...p.redos]}),!0):!1}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=t.endColumn-t.startColumn+1,d={};s.Range.foreach(t,(g,h)=>{const v=i.getCell(g,h);!v||!v.s||(d[g]||(d[g]={}),d[g][h]={s:v.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(Ne.id,m)}},fn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=t.endColumn-t.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Ne.id,d)}},Rn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,e)=>{var h,v;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=(h=e==null?void 0:e.unitId)!=null?h:r.getCurrentUniverSheetInstance().getUnitId(),c=r.getUniverSheetInstance(i);if(!c)return!1;let u=c.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});e?(u=(v=e.index)!=null?v:u,e.sheet?l=e.sheet:(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`))):(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:u,sheet:l,unitId:i},m=Rt(n,d);return o.syncExecuteCommand(Ce.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:m}],redoMutations:[{id:Ce.id,params:d}]}),!0):!1}};function Yo(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const Ve={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const 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 Ko(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const We={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const 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 Jo(n,e){return e.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function Xo(n,e){return e.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const pn="sheet.command.move-rows",_t={id:pn,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=e,i=t==null?void 0:t.filter(oe=>oe.range.rangeType===s.RANGE_TYPE.ROW&&oe.range.startRow<=r&&r<=oe.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(Jo(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startRow:a,endRow:a+v.endRow-v.startRow},R={unitId:m,subUnitId:g,sourceRange:v,targetRange:I},p=Yo(n,R),b=a-r<0,w=v.endRow-v.startRow+1,T=b?I:{...I,startRow:I.startRow-w,endRow:I.endRow-w},U={unitId:m,subUnitId:g,pluginName:q,selections:[{range:T,primary:X(T,d),style:null}]},_={unitId:m,subUnitId:g,pluginName:q,selections:[{range:v,primary:S,style:null}]},y=n.get(s.ICommandService),k=c.onCommandExecute({id:_t.id,params:e}),f=[{id:Ve.id,params:R},{id:z.id,params:U},...k.redos],G=[{id:Ve.id,params:p},{id:z.id,params:_},...k.undos];return s.sequenceExecute(f,y).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:G,redoMutations:f}),!0):!1}},Mn="sheet.command.move-cols",bt={id:Mn,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=e,i=t==null?void 0:t.filter(oe=>oe.range.rangeType===s.RANGE_TYPE.COLUMN&&oe.range.startColumn<=r&&r<=oe.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(Xo(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startColumn:a,endColumn:a+v.endColumn-v.startColumn},R={unitId:m,subUnitId:g,sourceRange:v,targetRange:I},p=Ko(n,R),M=v.endColumn-v.startColumn+1,T=a-r<0?I:{...I,startColumn:I.startColumn-M,endColumn:I.endColumn-M},U={unitId:m,subUnitId:g,pluginName:q,selections:[{range:T,primary:X(T,d),style:null}]},_={unitId:m,subUnitId:g,pluginName:q,selections:[{range:v,primary:S,style:null}]},y=n.get(s.ICommandService),k=c.onCommandExecute({id:bt.id,params:e}),f=[{id:We.id,params:R},{id:z.id,params:U},...k.redos],G=[{id:We.id,params:p},{id:z.id,params:_},...k.undos];return s.sequenceExecute(f,y).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:G,redoMutations:f}),!0}},wn="sheet.command.remove-row",dt={type:s.CommandType.COMMAND,id:wn,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=Go(d,c),g=t.onCommandExecute({id:dt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:pe.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:fe.id,params:m}],redoMutations:[{id:pe.id,params:d},...g.redos]}),!0):!1}},yn="sheet.command.remove-col",lt={type:s.CommandType.COMMAND,id:yn,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=zo(n,d),g=t.onCommandExecute({id:lt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:Me.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:Re.id,params:m}],redoMutations:[{id:Me.id,params:d},...g.redos]}),!0):!1}},Tt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,e)=>{var I,R;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(I=e.unitId)!=null?I:i,c=(R=e.subUnitId)!=null?R:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(l);u.getConfig().sheetOrder[d+1];const m={subUnitId:c,unitId:i,subUnitName:l.getName()},g=cn(n,m),h=a.onCommandExecute({id:Tt.id,params:{unitId:i,subUnitId:c}}),v=[{id:je.id,params:m},...h.redos],S=[...h.undos,{id:Ce.id,params:g}];return s.sequenceExecute(v,o)?(t.pushUndoRedo({unitID:i,undoMutations:S,redoMutations:v}),!0):!1}},ie=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},Q=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=e.ranges,u=[];for(let 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:e.unitId,subUnitId:e.subUnitId,ranges:u}},B={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let 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}},Un={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:i,subUnitId:c,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(S=>{g.forEach(C=>{s.Rectangle.intersects(S,C)&&(m=!0)})}),!m)return!1;const h=Q(n,d);return o.syncExecuteCommand(B.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:h}],redoMutations:[{id:B.id,params:d}]}),!0):!1}};class we{constructor(){x(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});x(this,"_borderInfo$",new _e.BehaviorSubject(this._borderInfo));x(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function Zo(n,e,o){const t=e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance();if(!t)throw new Error;const r=o?t.getSheetBySheetId(o):t.getActiveSheet();if(!r)throw new Error;return{workbook:t,worksheet:r,unitId:e!=null?e:t.getUnitId(),subUnitId:o!=null?o:r.getSheetId()}}function qe(n,e){const{startRow:o,startColumn:t,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=t;c<=a;c++)e(i,c)}const _n={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:o,subUnitId:t,value:r}=e,{type:a,color:i,style:c}=r,u=n.get(s.ICommandService),l=n.get(we);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand(Pe.id,{unitId:o,subUnitId:t})}},bn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const o=n.get(s.ICommandService);return n.get(we).setType(e.value),o.executeCommand(Pe.id)}},Tn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setStyle(e.value),o.executeCommand(Pe.id)}},En={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setColor(e.value),o.executeCommand(Pe.id)}},Pe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(we),{worksheet:c,unitId:u,subUnitId:l}=Zo(r,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),m=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:h,type:v,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const C=v===s.BorderType.TOP||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,I=v===s.BorderType.LEFT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,R=v===s.BorderType.BOTTOM||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,p=v===s.BorderType.RIGHT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,M=v===s.BorderType.VERTICAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,b=v===s.BorderType.HORIZONTAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,w=v.indexOf("tlbr")>-1,T=v.indexOf("tlbc")>-1,U=v.indexOf("tlmr")>-1,_=v.indexOf("bltr")>-1,y=v.indexOf("mltr")>-1,k=v.indexOf("bctr")>-1,f=d[0],G={startRow:f.startRow-1,startColumn:f.startColumn,endRow:f.startRow-1,endColumn:f.endColumn},ve={startRow:f.startRow,startColumn:f.startColumn-1,endRow:f.endRow,endColumn:f.startColumn-1},oe={startRow:f.endRow+1,startColumn:f.startColumn,endRow:f.endRow+1,endColumn:f.endColumn},go={startRow:f.startRow,startColumn:f.endColumn+1,endRow:f.endRow,endColumn:f.endColumn+1},Gt={startRow:f.startRow,startColumn:f.startColumn,endRow:f.startRow,endColumn:f.endColumn},zt={startRow:f.startRow,startColumn:f.startColumn,endRow:f.endRow,endColumn:f.startColumn},qt={startRow:f.endRow,startColumn:f.startColumn,endRow:f.endRow,endColumn:f.endColumn},Yt={startRow:f.startRow,startColumn:f.endColumn,endRow:f.endRow,endColumn:f.endColumn},N=new s.ObjectMatrix,W={s:g,cl:{rgb:h}},ze=(O,D)=>{let P=null;return m.forEach(K=>{s.Rectangle.intersects(K,{startColumn:D,endColumn:D,startRow:O,endRow:O})&&(P=K)}),P};function F(O,D,P){O.startRow<0||O.startColumn<0||qe(O,(K,ee)=>{var E,ke;const J=ze(K,ee);let Z=D;if(J){if(P){const te=s.Tools.deepClone((E=N.getValue(J.startRow,J.startColumn))==null?void 0:E.s);Z=te!=null&&te.bd?Object.assign(te.bd,D):D}N.setValue(J.startRow,J.startColumn,{s:{bd:Z}})}else{if(P){const te=s.Tools.deepClone((ke=N.getValue(K,ee))==null?void 0:ke.s);Z=te!=null&&te.bd?Object.assign(te.bd,D):D}N.setValue(K,ee,{s:{bd:Z}})}})}C&&F(Gt,{t:s.Tools.deepClone(W)},!0),R&&F(qt,{b:s.Tools.deepClone(W)},!0),I&&F(zt,{l:s.Tools.deepClone(W)},!0),p&&F(Yt,{r:s.Tools.deepClone(W)},!0),w&&F(f,{tl_br:s.Tools.deepClone(W)},!0),T&&F(f,{tl_bc:s.Tools.deepClone(W)},!0),U&&F(f,{tl_mr:s.Tools.deepClone(W)},!0),_&&F(f,{bl_tr:s.Tools.deepClone(W)},!0),y&&F(f,{ml_tr:s.Tools.deepClone(W)},!0),k&&F(f,{bc_tr:s.Tools.deepClone(W)},!0),M&&qe(f,(O,D)=>{var K,ee,J,Z;const P=ze(O,D);if(P){if(P.endColumn!==f.endColumn){const E=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(W)}):{r:s.Tools.deepClone(W)}}})}if(P.startColumn!==f.startColumn){const E=(ee=N.getValue(P.startRow,P.startColumn))==null?void 0:ee.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(W)}):{l:s.Tools.deepClone(W)}}})}}else{if(D!==f.endColumn){const E=(J=N.getValue(O,D))==null?void 0:J.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(W)}):{r:s.Tools.deepClone(W)}}})}if(D!==f.startColumn){const E=(Z=N.getValue(O,D))==null?void 0:Z.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(W)}):{l:s.Tools.deepClone(W)}}})}}}),b&&qe(f,(O,D)=>{var K,ee,J,Z;const P=ze(O,D);if(P){if(P.endRow!==f.endRow){const E=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(W)}):{b:s.Tools.deepClone(W)}}})}if(P.startRow!==f.startRow){const E=(ee=N.getValue(P.startRow,P.startColumn))==null?void 0:ee.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(W)}):{t:s.Tools.deepClone(W)}}})}}else{if(O!==f.endRow){const E=(J=N.getValue(O,D))==null?void 0:J.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(W)}):{b:s.Tools.deepClone(W)}}})}if(O!==f.startRow){const E=(Z=N.getValue(O,D))==null?void 0:Z.s;N.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(W)}):{t:s.Tools.deepClone(W)}}})}}}),!C&&!R&&!I&&!p&&!M&&!b&&!w&&!T&&!U&&!_&&!y&&!k&&(F(G,{b:null}),F(Gt,{t:null},!0),F(oe,{t:null}),F(qt,{b:null},!0),F(ve,{r:null}),F(zt,{l:null},!0),F(go,{l:null}),F(Yt,{r:null},!0),F(f,{tl_br:null},!0),F(f,{tl_bc:null},!0),F(f,{tl_mr:null},!0),F(f,{bl_tr:null},!0),F(f,{ml_tr:null},!0),F(f,{bc_tr:null},!0),qe(f,(O,D)=>{var K,ee,J,Z,E,ke,te,Kt;const P=ze(O,D);if(P){if(P.endColumn!==f.endColumn){const A=(K=N.getValue(P.startRow,P.startColumn))==null?void 0:K.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(P.startColumn!==f.startColumn){const A=(ee=N.getValue(P.startRow,P.startColumn))==null?void 0:ee.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(P.endRow!==f.endRow){const A=(J=N.getValue(P.startRow,P.startColumn))==null?void 0:J.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(P.startRow!==f.startRow){const A=(Z=N.getValue(P.startRow,P.startColumn))==null?void 0:Z.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(D!==f.endColumn){const A=(E=N.getValue(O,D))==null?void 0:E.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(D!==f.startColumn){const A=(ke=N.getValue(O,D))==null?void 0:ke.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(O!==f.endRow){const A=(te=N.getValue(O,D))==null?void 0:te.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(O!==f.startRow){const A=(Kt=N.getValue(O,D))==null?void 0:Kt.s;N.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const gt={unitId:u,subUnitId:l,cellValue:N.getData()},ho=le(n,gt);return o.syncExecuteCommand($.id,gt)?(t.pushUndoRedo({unitID:u,undoMutations:[{id:$.id,params:ho}],redoMutations:[{id:$.id,params:gt}]}),!0):!1}},Qo=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Te={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},er=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ee={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Et={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),i={unitId:o,subUnitId:t,ranges:r},c=er(n,i),u={unitId:o,subUnitId:t,pluginName:q,selections:r.map(g=>({range:g,primary:X(g,a),style:null}))},l={unitId:o,subUnitId:t,pluginName:q,selections:An(r).map(g=>({range:g,primary:X(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ee.id,params:i},{id:z.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Te.id,params:c},{id:z.id,params:l}],redoMutations:[{id:Ee.id,params:i},{id:z.id,params:u}]}),!0}},Dn={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).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(s.ICommandService).executeCommand(Et.id,{unitId:i,subUnitId:c,ranges:u})}},On={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var h;const o=(h=n.get(exports.SelectionManagerService).getSelections())==null?void 0:h.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:o},l={unitId:i,subUnitId:c,pluginName:q,selections:An(o).map(v=>({range:v,primary:X(v,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:q,selections:o.map(v=>({range:v,primary:X(v,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:Te.id,params:u},{id:z.id,params:l}],m).result){const v=n.get(s.IUndoRedoService),S=Qo(n,u);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:S},{id:z.id,params:d}],redoMutations:[{id:Te.id,params:u},{id:z.id,params:l}]}),!0}return!1}};function An(n){return tr(n).map(o=>{const t=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:t,endColumn:t}})}function tr(n){const e=[];let o;return n.sort((t,r)=>t.startColumn-r.startColumn).forEach(t=>{if(!o){o=t;return}o.endColumn===t.startColumn-1?o.endColumn=t.endColumn:(e.push(o),o=t)}),e.push(o),e}const Dt=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...i}},ge={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:l}=e;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u)return!1;const{startColumn:l,startRow:d,xSplit:m,ySplit:g}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const h={unitId:a,subUnitId:i,...e},v=Dt(n,h);return o.syncExecuteCommand(ge.id,h)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:ge.id,params:v}],redoMutations:[{id:ge.id,params:h}]}),!0):!1}},nr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),t=n.get(s.IUniverInstanceService),r=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=t.getUniverSheetInstance(r);if(!i||!i.getSheetBySheetId(a))return!1;const u={unitId:r,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=Dt(n,u);return e.syncExecuteCommand(ge.id,u)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:ge.id,params:l}],redoMutations:[{id:ge.id,params:u}]}),!0):!1}},or=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},De={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},rr=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Oe={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Ot={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={unitId:o,subUnitId:t,ranges:r},l=or(n,u),d={unitId:o,subUnitId:t,pluginName:q,selections:r.map(h=>({range:h,primary:X(h,c),style:null}))},m={unitId:o,subUnitId:t,pluginName:q,selections:xn(r).map(h=>({range:h,primary:X(h,c),style:null}))};return s.sequenceExecute([{id:De.id,params:u},{id:z.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:l},{id:z.id,params:m}],redoMutations:[{id:De.id,params:u},{id:z.id,params:d}]}),!0}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const e=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),t=(l=e.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const r=o.getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=t.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Ot.id,{unitId:i,subUnitId:c,ranges:u})}},kn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(S=e.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:i,subUnitId:c,ranges:a},m={unitId:i,subUnitId:c,pluginName:q,selections:xn(a).map(C=>({range:C,primary:X(C,l),style:null}))},g={unitId:i,subUnitId:c,pluginName:q,selections:a.map(C=>({range:C,primary:X(C,l),style:null}))},h=rr(n,d);return s.sequenceExecute([{id:Oe.id,params:d},{id:z.id,params:m}],o).result&&t.pushUndoRedo({unitID:i,undoMutations:[{id:De.id,params:h},{id:z.id,params:g}],redoMutations:[{id:Oe.id,params:d},{id:z.id,params:m}]}),!0}};function xn(n){return sr(n).map(o=>{const t=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:t,endRow:t}})}function sr(n){const e=[];let o;return n.sort((t,r)=>t.startRow-r.startRow).forEach(t=>{if(!o){o=t;return}t.startRow===o.endRow+1?o.endRow=t.endRow:(e.push(o),o=t)}),e.push(o),e}const Y={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const o=n.get(s.IUniverInstanceService),{unitId:t=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=e,c=n.get(s.ICommandService),u=n.get(s.IUndoRedoService),l=n.get(exports.SelectionManagerService),d=a?[a]:l.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=o.getUniverSheetInstance(t);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const h=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let M=0;M<d.length;M++){const{startRow:b,endRow:w,startColumn:T,endColumn:U}=d[M];for(let _=0;_<=w-b;_++)for(let y=0;y<=U-T;y++)h.setValue(_+b,y+T,{s:{[i.type]:i.value[_][y]}})}else for(let M=0;M<d.length;M++){const{startRow:b,endRow:w,startColumn:T,endColumn:U}=d[M],_={s:{[i.type]:i.value}};for(let y=b;y<=w;y++)for(let k=T;k<=U;k++)h.setValue(y,k,_)}const v={subUnitId:r,unitId:t,cellValue:h.getMatrix()},S=le(n,v),C=c.syncExecuteCommand($.id,v),{undos:I,redos:R}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Y.id,params:e}),p=s.sequenceExecute([...R],c);return C&&p.result?(u.pushUndoRedo({unitID:t,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...R]}),!0):!1}},ir={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:t,actualColumn:r}=e.primary,i={style:{type:"bl",value:o.getRange(t,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,i)}},ar={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;if(e.primary){const{startRow:a,startColumn:i}=e.primary;t=o.getRange(a,i).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},cr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},ur={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}};s.CommandType.COMMAND;const dr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ff",value:e.value}};return o.executeCommand(Y.id,t)}},lr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"fs",value:e.value}};return o.executeCommand(Y.id,t)}},Ln={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"vt",value:e.value}};return o.executeCommand(Y.id,t)}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ht",value:e.value}};return o.executeCommand(Y.id,t)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"tb",value:e.value}};return o.executeCommand(Y.id,t)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,e)=>{if(!e)return!1;const o=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},t=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return t.executeCommand(Y.id,r)}},mr=(n,e)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const l={color:e.value,unitId:a,subUnitId:i},d=mr(n,l);return o.syncExecuteCommand(xe.id,l)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:l}]}),!0):!1}},He={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getWorksheets();for(const[,r]of t)if(r.getSheetId()===e.subUnitId)return o.setActiveSheet(r),!0;return!1}},At={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e)=>{var c,u;const o=n.get(s.ICommandService),t=n.get(s.IUniverInstanceService);let r=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(r=(c=e.unitId)!=null?c:r,a=(u=e.subUnitId)!=null?u:a);const i={unitId:r,subUnitId:a};return o.syncExecuteCommand(He.id,i)}},Nt=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:a}},ce={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,e)=>{var u;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),c=e.ranges;for(let 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 e.colWidth=="number"?g.w=e.colWidth:g.w=(u=e.colWidth[m-d.startColumn])!=null?u:a}}return!0}},Pt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),l=c.getUnitId(),d=u.getSheetId(),{anchorCol:m,deltaX:g}=e,v=u.getColumnWidth(m)+g,S=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,C=t.filter(U=>U.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:U})=>{const{startColumn:_,endColumn:y}=U;return _<=m&&m<=y})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let R;if(I===s.RANGE_TYPE.ALL){const U=u.getRowCount(),_=new Array(u.getColumnCount()).fill(void 0).map((y,k)=>({startRow:0,endRow:U-1,startColumn:k,endColumn:k}));R={subUnitId:d,unitId:l,colWidth:v,ranges:_}}else I===s.RANGE_TYPE.COLUMN?R={subUnitId:d,unitId:l,ranges:C.map(U=>s.Rectangle.clone(U.range)),colWidth:v}:R={subUnitId:d,unitId:l,colWidth:v,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:m,endColumn:m}]};const p=Nt(n,R),M=r.syncExecuteCommand(ce.id,R),{undos:b,redos:w}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Pt.id,params:R}),T=s.sequenceExecute([...w],r);return M&&T.result&&a.pushUndoRedo({unitID:l,undoMutations:[{id:ce.id,params:p},...b],redoMutations:[{id:ce.id,params:R},...w]}),!0}},kt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:e.value},d=Nt(n,l),m=t.syncExecuteCommand(ce.id,l),{undos:g,redos:h}=n.get(exports.SheetInterceptorService).onCommandExecute({id:kt.id,params:l}),v=s.sequenceExecute([...h],t);return m&&v.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ce.id,params:d},...g],redoMutations:[{id:ce.id,params:l},...h]}),!0):!1}},zn=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{hidden:t.isSheetHidden(),unitId:e.unitId,subUnitId:t.getSheetId()}},he={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{var C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||l.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={unitId:i,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=zn(n,m);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(he.id,m)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:he.id,params:g}],redoMutations:[{id:he.id,params:m}]}),!0):!1}},gr=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{unitId:e.unitId,name:t.getName(),subUnitId:t.getSheetId()}},et={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},xt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:i},l=gr(n,u),d=a.onCommandExecute({id:xt.id,params:e}),m=[{id:et.id,params:u},...d.redos],g=[...d.undos,{id:et.id,params:l}];return await s.sequenceExecute(m,o).result?(t.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},hr=(n,e)=>{const r=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getConfig().sheetOrder.findIndex(a=>a===e.subUnitId);return{...s.Tools.deepClone(e),order:r}},Le={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getConfig(),r=t.sheetOrder.filter(a=>a!==e.subUnitId);return r.splice(e.order,0,e.subUnitId),t.sheetOrder=r,!0}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),i=e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const l={order:e.order,unitId:a,subUnitId:i},d=hr(n,l);return o.syncExecuteCommand(Le.id,l)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Le.id,params:d}],redoMutations:[{id:Le.id,params:l}]}),!0):!1}},vr=2e3,Kn=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const h=l.getRowOrCreate(g);u[g]=h.h}return{unitId:o,subUnitId:t,ranges:r,rowHeight:u}},Lt=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const h=l.getRowOrCreate(g);u[g]=h.ia}return{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:u}},Sr=(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t),u=[],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:t,rowsAutoHeightInfo:u}},ue={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:o,subUnitId:t,ranges:r,rowHeight:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.h=a:S.h=(m=a[v])!=null?m:l,S.h=Math.min(vr,S.h)}return!0}},ne={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.ia=a:S.ia=(m=a[v-g])!=null?m:l}return!0}},Bt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),c=a.getUnitId(),u=i.getSheetId(),{anchorRow:l,deltaY:d}=e,g=i.getRowHeight(l)+d,h=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,v=t.filter(T=>T.range.rangeType===s.RANGE_TYPE.ROW),S=h?s.RANGE_TYPE.ALL:v.some(({range:T})=>{const{startRow:U,endRow:_}=T;return U<=l&&l<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const T=i.getRowCount(),U=new Array(i.getColumnCount()).fill(void 0).map((_,y)=>({startRow:y,endRow:y,startColumn:0,endColumn:T-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:U}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:v.map(T=>s.Rectangle.clone(T.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:i.getMaxColumns()-1}]};const I=Kn(n,C),R={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},p=Lt(n,R),M=n.get(s.ICommandService),b=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:ue.id,params:C},{id:ne.id,params:R}],M).result?(b.pushUndoRedo({unitID:c,undoMutations:[{id:ue.id,params:I},{id:ne.id,params:p}],redoMutations:[{id:ue.id,params:C},{id:ne.id,params:R}]}),!0):!1}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance(),u=c.getUnitId(),l=c.getActiveSheet().getSheetId(),d={subUnitId:l,unitId:u,ranges:i,rowHeight:e.value},m=Kn(n,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},h=Lt(n,g);return s.sequenceExecute([{id:ue.id,params:d},{id:ne.id,params:g}],t).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:m},{id:ne.id,params:h}],redoMutations:[{id:ue.id,params:d},{id:ne.id,params:g}]}),!0):!1}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),c=a.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:l}=e!=null?e:{},d=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={unitId:i,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=Lt(n,m),h=o.syncExecuteCommand(ne.id,m),{undos:v,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Vt.id,params:m}),C=s.sequenceExecute([...S],o);return h&&C.result?(t.pushUndoRedo({unitID:i,undoMutations:[{id:ne.id,params:g},...v],redoMutations:[{id:ne.id,params:m},...S]}),!0):!1}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{var S;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId();let i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.value)!=null?S:i);const c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:s.BooleanNumber.FALSE},m=zn(n,d),g=o.syncExecuteCommand(he.id,d),h={unitId:a,subUnitId:i},v=o.syncExecuteCommand(He.id,h);return g&&v?(t.pushUndoRedo({unitID:a,undoMutations:[{id:he.id,params:m}],redoMutations:[{id:he.id,params:d}]}),!0):!1}},Cr=n=>{const e=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(t,r)=>{e.setValue(t,r,1)})}),e.forValue((o,t)=>{const r=e.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},Xt=n=>{const e={area:0},o=(t,r)=>e.area<t?(e.area=t,e.range=r,!0):!1;return n.forValue((t,r,a)=>{let i=1,c=a;o(i*c,{startRow:t-c+1,endRow:t,startColumn:r,endColumn:r});const u={startRow:t-c+1,endRow:t,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&n.getValue(t,l);l--){c=Math.min(n.getValue(t,l)||0,c),i++;const d=c*i;u.startColumn=l,u.startRow=t-c+1,o(d,u)}}),e},Ir=(n,e)=>(s.Range.foreach(e,(o,t)=>{n.realDeleteValue(o,t);let r=o+1,a=n.getValue(r,t)||0;for(;a>1;)n.setValue(r,t,a-1),r+=1,a=n.getValue(r,t)||0}),n),fr=n=>{const e=[];let o=Xt(n);for(;o.area>0;)o.range&&(e.push(o.range),Ir(n,o.range)),o=Xt(n);return e},Wt=n=>{const e=Cr(n);return fr(e)},Rr=(n,e,o="")=>n.reduce((t,r)=>{const a=r&&r[e];return typeof a!="string"?(console.warn(r,`${e} is not string`),t):(a?(t[a]||(t[a]=[]),t[a].push(r)):t[o].push(r),t)},{}),pr=(n=0)=>{let e=n;return function(){return e++}},ye=H.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,ye);const Mr=(n,e)=>{const o=n.get(ye),{values:t,unitId:r,subUnitId:a}=e,i=[],c=[],u=o.getModel(r,a)||void 0;Object.keys(t).forEach(d=>{t[d].ranges.forEach(g=>{s.Range.foreach(g,(h,v)=>{const S=o.getValue(r,a,h,v,u);S?i.push({pattern:S.pattern,type:S.type,row:h,col:v}):c.push({startColumn:v,endColumn:v,startRow:h,endRow:h})})})});const l=[];if(i.length){const d=tt(r,a,i);Object.keys(d.values).forEach(m=>{const g=d.values[m];g.ranges=Wt(g.ranges)}),l.push({id:mt.id,params:tt(r,a,i)})}return c.length&&l.push({id:jt.id,params:{unitId:r,subUnitId:a,ranges:c}}),l},mt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:o,refMap:t}=e,r=n.get(ye),a=e.unitId,i=e.subUnitId,c=Object.keys(o).reduce((u,l)=>{const d=t[l],m=o[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(a,i,c),!0}},jt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:o,subUnitId:t,ranges:r}=e;return n.get(ye).deleteValues(o,t,r),!0}},wr=(n,e)=>{const o=n.get(ye),{ranges:t,unitId:r,subUnitId:a}=e,i=[],c=o.getModel(r,a)||void 0;if(t.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=o.getValue(r,a,d,m,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:m})})}),!i.length)return[];const u=tt(r,a,i);return Object.keys(u.values).forEach(l=>{const d=u.values[l];d.ranges=Wt(d.ranges)}),[{id:mt.id,params:u}]},tt=(n,e,o)=>{const t=Rr(o,"pattern"),r={},a={},i=pr();return Object.keys(t).forEach(c=>{const u=t[c],l=u[0],d=i();r[d]={pattern:c,type:l.type},u.forEach(m=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(yr(m.row,m.col))})}),{unitId:n,subUnitId:e,refMap:r,values:a}},yr=(n,e)=>({startRow:n,endRow:n,startColumn:e,endColumn:e}),Qn="maxCellsPerSheet",Ur=3e6;var _r=Object.defineProperty,br=Object.getOwnPropertyDescriptor,Tr=(n,e,o,t)=>{for(var r=t>1?void 0:t?br(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&_r(e,o,r),r},Zt=(n,e)=>(o,t)=>e(o,t,n);let Xe=class extends s.Disposable{constructor(n,e){super(),this._commandService=n,this._configService=e,[L,ot,ft,rt,un,it,at,Pt,Jn,fn,In,Ne,Re,ct,ut,Sn,vn,Ae,fe,Rn,Ce,bt,We,st,Be,_t,Ve,lt,Me,dt,pe,Tt,je,Un,B,Wn,Bn,Vn,_n,En,Pe,bn,Tn,On,Te,Ee,kt,nr,Nn,ge,Fn,Ie,$,Xn,kn,Oe,De,Dn,Pn,Et,Ot,Y,Gn,xe,Ln,$n,Hn,jn,At,He,ce,qn,he,xt,et,Yn,Le,Bt,ue,Vt,ne,Zn,mt,z,jt].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(Qn,Ur)}};Xe=Tr([s.OnLifecycle(s.LifecycleStages.Starting,Xe),Zt(0,s.ICommandService),Zt(1,s.IConfigService)],Xe);var Er=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Or=(n,e,o,t)=>{for(var r=t>1?void 0:t?Dr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Er(e,o,r),r},Ar=(n,e)=>(o,t)=>e(o,t,n);let Ze=class extends s.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==It.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:o,unitOtherData:t}=e,r=Object.keys(o),a=[];return r.forEach(c=>{const u=o[c];if(u==null)return!0;Object.keys(u).forEach(d=>{const m=u[d];if(m==null)return!0;const g={subUnitId:d,unitId:c,cellValue:m.getData()};a.push({id:$.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};Ze=Or([s.OnLifecycle(s.LifecycleStages.Ready,Ze),Ar(0,s.ICommandService)],Ze);var Nr=Object.defineProperty,Pr=Object.getOwnPropertyDescriptor,kr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Pr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Nr(e,o,r),r},Ye=(n,e)=>(o,t)=>e(o,t,n);let Qe=class extends s.Disposable{constructor(n,e,o,t){super(),this._commandService=n,this._featureCalculationManagerService=e,this._currentUniverService=o,this._formulaDataModel=t}_initialize(){const n="test",e="workbook-01",o="sheet-0011",t={[e]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:e,subUnitId:o,dependencyRanges:[{unitId:e,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:t,dirtyRanges:r})})}};Qe=kr([s.OnLifecycle(s.LifecycleStages.Ready,Qe),Ye(0,s.ICommandService),Ye(1,It.IFeatureCalculationManagerService),Ye(2,s.IUniverInstanceService),Ye(3,H.Inject(It.FormulaDataModel))],Qe);const V={MoveRangeCommandId:dn,InsertRowCommandId:hn,InsertColCommandId:Cn,RemoveColCommandId:yn,RemoveRowCommandId:wn,DeleteRangeMoveLeftCommandId:ln,DeleteRangeMoveUpCommandId:mn,InsertRangeMoveDownCommandId:qo,InsertRangeMoveRightCommandId:gn,MoveColsCommandId:Mn,MoveRowsCommandId:pn};var j=(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))(j||{}),xr=Object.defineProperty,Lr=Object.getOwnPropertyDescriptor,Br=(n,e,o,t)=>{for(var r=t>1?void 0:t?Lr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&xr(e,o,r),r},ht=(n,e)=>(o,t)=>e(o,t,n);const Vr=s.createInterceptorKey("MERGE_REDO"),Wr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(o,t,r){super();x(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Vr,MERGE_UNDO:Wr}));x(this,"_refRangeManagerMap",new Map);x(this,"_serializer",jr());x(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const t=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=Qt(this._univerInstanceService),a=en(this._univerInstanceService),u=((()=>{switch(o.id){case V.MoveColsCommandId:{const m=o.params,g=Math.min(m.fromRange.startColumn,m.toRange.startColumn);return this._checkRange([{...m.fromRange,startColumn:g,endColumn:t.getColumnCount()-1}],r,a)}case V.MoveRowsCommandId:{const m=o.params,g=Math.min(m.fromRange.startRow,m.toRange.startRow);return this._checkRange([{...m.fromRange,startRow:g,endRow:t.getRowCount()-1}],r,a)}case V.MoveRangeCommandId:{const m=o;return this._checkRange([m.params.fromRange,m.params.toRange],r,a)}case V.InsertRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case V.InsertColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case V.RemoveRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case V.RemoveColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case V.DeleteRangeMoveUpCommandId:case V.InsertRangeMoveDownCommandId:{const g=o.params.range||tn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([h],r,a)}case V.DeleteRangeMoveLeftCommandId:case V.InsertRangeMoveRightCommandId:{const g=o.params.range||tn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([h],r,a)}}})()||[]).reduce((m,g)=>{const h=g(o);return m.push(h),m},[]).reduce((m,g)=>(m.redos.push(...g.redos),m.undos.push(...g.undos),m),{redos:[],undos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:l,undos:d}}})});x(this,"_checkRange",(o,t,r)=>{const a=nn(t,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[]});x(this,"registerRefRange",(o,t,r,a)=>{const i=r||Qt(this._univerInstanceService),c=a||en(this._univerInstanceService),u=nn(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(t):d.set(l,new Set([t])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(t),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._sheetInterceptorService=o,this._univerInstanceService=t,this._selectionManagerService=r,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}};exports.RefRangeService=Br([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),ht(0,H.Inject(exports.SheetInterceptorService)),ht(1,H.Inject(s.IUniverInstanceService)),ht(2,H.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Qt(n){return n.getCurrentUniverSheetInstance().getUnitId()}function en(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function tn(n){return n.getSelectionRanges()||[]}function nn(n,e){return`${n}_${e}`}function jr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const t=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(e).reduce((a,i,c)=>{const u=String(c);return i&&t[u]&&(a[t[u]]=i),a},{})},serialize:o=>n.reduce((t,r,a)=>{const i=o[r];return i!==void 0?`${t}${a>0?e:""}${i}`:`${t}`},"")}}const Ke=Number.MAX_SAFE_INTEGER,ae=n=>{const e={...n};return e.rangeType===s.RANGE_TYPE.COLUMN&&(e.startRow=0,e.endRow=Ke),e.rangeType===s.RANGE_TYPE.ROW&&(e.startColumn=0,e.endColumn=Ke),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=Ke,e.startRow=0,e.endRow=Ke),e},de=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Ft=(n,e,o)=>{const t={...o},r={...e},a=(S,C)=>{const I=Math.max(S.start,C.start),R=Math.min(S.end,C.end);return R<I?null:{start:I,end:R}},i=S=>S.end-S.start+1,c=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),u=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),l=e.start>n.start;if(l){const S=Math.min(n.end,e.start)-n.start+1;r.start-=S,r.end-=S}const d=i(n),m=d,g=a(n,t),h=g&&i(g)>=i(t);if(n.end<t.start)t.start-=d,t.end-=d;else if(g){const S=i(g);if(h){const C=c(t,n),I=u(C,r);t.start=I.start,t.end=I.end}else g.start>n.start||l?t.end-=S:(t.start-=d,t.end-=d+S)}const v=a(r,t);if(r.start<=t.start&&!h)t.start+=m,t.end+=m;else if(v){const S=r.start;if(i(v)<=i(t))return{step:t.start-o.start,length:0};S<t.start?(t.start+=m,t.end+=m):S>=t.start&&S<=t.end&&(t.end+=m,t.start+=m)}return{step:t.start-o.start,length:i(t)-i(o)}},Ht=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=Ft({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:j.Delete}]:[{type:j.VerticalMove,step:c.step||0,length:c.length||0}]},$t=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=Ft({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:j.Delete}]:[{type:j.HorizontalMove,step:c.step||0,length:c.length||0}]},eo=(n,e)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,t=(i=n.params)==null?void 0:i.fromRange;if(!o||!t)return[];const r=[];if(s.Rectangle.contains(o,e)&&r.push({type:j.Delete}),s.Rectangle.contains(t,e)){r.push({type:j.Delete});const c=s.Rectangle.getRelativeRange(e,t),u=s.Rectangle.getPositionRange(c,o);return[{type:j.Set,range:u}]}return r},$e=(n,e)=>{const o=ae(n),t=ae(e),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(t,o);if(i)return{step:0,length:-r(i)}}if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn&&a(o)>=a(t))return null;if(t.startColumn>o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(t,o);if(i){const c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(t.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},to=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:j.Delete});else{const{step:i,length:c}=r;t.push({type:j.HorizontalMove,step:i,length:c})}return t},no=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:j.Delete});else{const{step:i,length:c}=r;t.push({type:j.VerticalMove,step:i,length:c})}return t},Ge=(n,e)=>{const o=ae(n),t=ae(e),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn)return{step:0,length:r(o)};if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn>o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn||t.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}},oo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:j.VerticalMove,step:a,length:i}),t},ro=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:j.HorizontalMove,step:a,length:i}),t},so=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:j.VerticalMove,step:a,length:i}),t},io=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:j.HorizontalMove,step:a,length:i}),t},ao=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:j.Delete});else{const{step:i,length:c}=r;t.push({type:j.HorizontalMove,step:i,length:c})}return t},co=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:j.Delete});else{const{step:i,length:c}=r;t.push({type:j.VerticalMove,step:i,length:c})}return t},nt=(n,e)=>{let o={...e};return n.forEach(t=>{switch(t.type){case j.Delete:{o=null;break}case j.HorizontalMove:{if(!o)return;o.startColumn+=t.step,o.endColumn+=t.step+(t.length||0);break}case j.VerticalMove:{if(!o)return;o.startRow+=t.step,o.endRow+=t.step+(t.length||0);break}case j.Set:{o=t.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},Fr=(n,e)=>{let o=[];switch(e.id){case V.DeleteRangeMoveLeftCommandId:{o=ao(e,n);break}case V.DeleteRangeMoveUpCommandId:{o=co(e,n);break}case V.InsertColCommandId:{o=ro(e,n);break}case V.InsertRangeMoveDownCommandId:{o=so(e,n);break}case V.InsertRangeMoveRightCommandId:{o=io(e,n);break}case V.InsertRowCommandId:{o=oo(e,n);break}case V.MoveColsCommandId:{o=$t(e,n);break}case V.MoveRangeCommandId:{o=eo(e,n);break}case V.MoveRowsCommandId:{o=Ht(e,n);break}case V.RemoveColCommandId:{o=to(e,n);break}case V.RemoveRowCommandId:{o=no(e,n);break}}return nt(o,n)};var Hr=Object.defineProperty,$r=Object.getOwnPropertyDescriptor,Gr=(n,e,o,t)=>{for(var r=t>1?void 0:t?$r(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Hr(e,o,r),r},Ue=(n,e)=>(o,t)=>e(o,t,n);function uo(n,e){let o=n;if(e!==void 0){const t=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(e===s.Dimension.ROWS)for(let l=a;l<=i;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};t.push(d)}else if(e===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:a,endRow:i,startColumn:l,endColumn:l};t.push(d)}}o=t}return o}exports.MergeCellController=class extends s.Disposable{constructor(e,o,t,r,a,i){super(),this._commandService=e,this._refRangeService=o,this._univerInstanceService=t,this._injector=r,this._sheetInterceptorService=a,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const e=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case ot.id:case rt.id:{const t=e._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getUnitId(),a=t.getActiveSheet(),i=a.getSheetId(),c=a.getConfig().mergeData,u=e._selectionManagerService.getSelectionRanges();if(u&&u.length>0&&u.some(d=>c.some(m=>s.Rectangle.intersects(m,d)))){const d={unitId:r,subUnitId:i,ranges:u},m=Q(e._injector,d),g=[{id:B.id,params:d}],h=[{id:L.id,params:m}];return{redos:g,undos:h}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const e=new s.DisposableCollection,o=(a,i)=>{const c=this._univerInstanceService.getUniverSheetInstance(a);if(!c)return;const u=c==null?void 0:c.getSheetBySheetId(i);if(!u)return;e.dispose();const l=u.getMergeData(),d=m=>{switch(m.id){case st.id:{const g=m.params;return this._handleMoveRangeCommand(g,a,i)}case Ae.id:{const g=m.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertRowCommand(g,h,v)}case Ne.id:{const g=m.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertColCommand(g,h,v)}case lt.id:{const g=m.params;return this._handleRemoveColCommand(g,a,i)}case dt.id:{const g=m.params;return this._handleRemoveRowCommand(g,a,i)}case ut.id:{const g=m.params;return this._handleInsertRangeMoveRightCommand(g,a,i)}case ct.id:{const g=m.params;return this._handleInsertRangeMoveDownCommand(g,a,i)}case at.id:{const g=m.params;return this._handleDeleteRangeMoveUpCommand(g,a,i)}case it.id:{const g=m.params;return this._handleDeleteRangeMoveLeftCommand(g,a,i)}case V.MoveColsCommandId:{const g=m.params;return this._handleMoveColsCommand(g,a,i)}case V.MoveRowsCommandId:{const g=m.params;return this._handleMoveRowsCommand(g,a,i)}}return{redos:[],undos:[]}};l.forEach(m=>{e.add(this._refRangeService.registerRefRange(m,d,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===At.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(u,c)}if(a.id===L.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getActiveSheet();o(t.getUnitId(),r.getSheetId())}_handleMoveRowsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(m=>{const g=Ht({id:V.MoveRowsCommandId,params:e},m),h=nt(g,m);h&&u.ranges.push(h)});const l=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:l}]}}_handleMoveColsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(m=>{const g=$t({id:V.MoveColsCommandId,params:e},m),h=nt(g,m);h&&u.ranges.push(h)});const l=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:l}]}}_handleMoveRangeCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=a.getMergeData(),c=i.filter(h=>s.Rectangle.intersects(h,e.fromRange)),u=i.filter(h=>s.Rectangle.intersects(h,e.toRange)),l=c.map(h=>s.Rectangle.getRelativeRange(h,e.fromRange)).map(h=>s.Rectangle.getPositionRange(h,e.toRange)),d=uo(l).filter(h=>!i.some(v=>s.Rectangle.equals(h,v))),m=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:B.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:d}}],g=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:d}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:c}}];return{redos:m,undos:g}}_handleInsertRowCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,{startRow:c,endRow:u}=i,l=s.Tools.deepClone(a.getMergeData()),d=s.Tools.deepClone(a.getMergeData()).map(I=>{const R=u-c+1;return c>I.endRow?I:c<=I.startRow?s.Rectangle.moveVertical(I,R):(I.endRow+=R,I)}),m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:m},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleInsertColCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const{startColumn:c,endColumn:u}=r,l=s.Tools.deepClone(i.getMergeData()),d=s.Tools.deepClone(i.getMergeData()).map(I=>{const R=u-c+1;return c>I.endColumn?I:c<=I.startColumn?s.Rectangle.moveHorizontal(I,R):(I.endColumn+=R,I)}),m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:m},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleRemoveColCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,c=s.Tools.deepClone(a.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startColumn:C,endColumn:I}=S,R=I-C+1,{startColumn:p,endColumn:M}=i,b=M-p+1;if(M<S.startColumn)S.startColumn-=b,S.endColumn-=b;else{if(p>S.endColumn)continue;if(p<=S.startColumn&&M>=S.endColumn)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(i,S),T=w.endColumn-w.startColumn+1,U=w.endRow-w.startRow===0;T===R-1&&U?(c.splice(v,1),v--):S.endColumn-=w.endColumn-w.startColumn+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(a.getMergeData())},l=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},m=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:m},{id:L.id,params:l}];return{redos:g,undos:h}}_handleRemoveRowCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const c=s.Tools.deepClone(i.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startRow:C,endRow:I}=S,R=I-C+1,{startRow:p,endRow:M}=r,b=M-p+1;if(M<C)S.startRow-=b,S.endRow-=b;else{if(p>I)continue;if(p<=C&&M>=I)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(r,S),T=w.endRow-w.startRow+1,U=w.endColumn-w.startColumn===0;T===R-1&&U?(c.splice(v,1),v--):S.endRow-=w.endRow-w.startRow+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(i.getMergeData())},l=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},m=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:m},{id:L.id,params:l}];return{redos:g,undos:h}}_handleInsertRangeMoveRightCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),l=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:R,endColumn:p}=i;if(s.Rectangle.intersects({startRow:C,startColumn:R,endRow:I,endColumn:c},S)&&(l.push(S),s.Rectangle.contains({startRow:C,startColumn:R,endRow:I,endColumn:c},S))){const w=p-R+1;d.push({startRow:S.startRow,startColumn:S.startColumn+w,endRow:S.endRow,endColumn:S.endColumn+w})}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:m},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleInsertRangeMoveDownCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),l=[],d=[];u.forEach(I=>{const{startRow:R,startColumn:p,endColumn:M,endRow:b}=i;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:c,endColumn:M},I)&&(l.push(I),s.Rectangle.contains({startRow:R,startColumn:p,endRow:c,endColumn:M},I))){const U=b-R+1;d.push({startRow:I.startRow+U,startColumn:I.startColumn,endRow:I.endRow+U,endColumn:I.endColumn})}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:m},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveUpCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),l=[],d=[];u.forEach(I=>{const{startRow:R,startColumn:p,endColumn:M,endRow:b}=i;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:c,endColumn:M},I)&&(l.push(I),s.Rectangle.contains({startRow:R,startColumn:p,endRow:c,endColumn:M},I))){const U=b-R+1,_=s.Rectangle.moveVertical(I,-U);d.push(_)}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:m},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveLeftCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),l=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:R,endColumn:p}=i;if(s.Rectangle.intersects({startRow:C,startColumn:R,endRow:I,endColumn:c},S)&&(l.push(S),s.Rectangle.contains({startRow:C,startColumn:R,endRow:I,endColumn:c},S))){const w=p-R+1;d.push({startRow:S.startRow,startColumn:S.startColumn-w,endRow:S.endRow,endColumn:S.endColumn-w})}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:m},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleNull(){return{redos:[],undos:[]}}};exports.MergeCellController=Gr([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Ue(0,H.Inject(s.ICommandService)),Ue(1,H.Inject(exports.RefRangeService)),Ue(2,H.Inject(s.IUniverInstanceService)),Ue(3,H.Inject(H.Injector)),Ue(4,H.Inject(exports.SheetInterceptorService)),Ue(5,H.Inject(exports.SelectionManagerService))],exports.MergeCellController);function re(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance()}function se(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}const zr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},lo={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var qr=Object.defineProperty,Yr=Object.getOwnPropertyDescriptor,Kr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Yr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&qr(e,o,r),r},Je=(n,e)=>(o,t)=>e(o,t,n);const on="SHEET_NUMFMT_PLUGIN";exports.NumfmtService=class extends s.Disposable{constructor(o,t,r,a){super();x(this,"_numfmtModel",new Map);x(this,"_refAliasModel",new Map);x(this,"_modelReplace$",new _e.Subject);x(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=t,this._univerInstanceService=r,this._logService=a,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,on,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,c)=>{const{model:u,refModel:l}=c;if(u){const d=Object.keys(u).reduce((m,g)=>(m.set(g,new s.ObjectMatrix(u[g])),m),new Map);this._numfmtModel.set(i,d)}l&&this._refAliasModel.set(i,new s.RefAlias(l,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,on)})));const t=this._univerInstanceService.getCurrentUniverSheetInstance();o(t)}_toJson(o){const t=this._numfmtModel.get(o),r=this._refAliasModel.get(o);if(!t||!r)return"";const a=[...t.keys()].reduce((u,l)=>{const d=t.get(l);return u[l]=d.toJSON(),u},{}),i=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,t,r,a,i){let c=this.getModel(o,t);if(!c){const u=this._numfmtModel.get(o)||new Map,l=u.get(t)||new s.ObjectMatrix;u.set(t,l),this._numfmtModel.set(o,u),c=l}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.getSizeOf()){const l=this._numfmtModel.get(o);l==null||l.delete(t)}}_getUniqueRefId(o){const t=this._refAliasModel.get(o);if(!t)return"0";const r=t.getKeyMap("i");return`${Math.max(...r.map(i=>Number(i||0)),0)+1}`}getValue(o,t,r,a,i){const c=i||this.getModel(o,t);if(!c)return null;const u=this._refAliasModel.get(o),l=c.getValue(r,a);if(l&&u){const d=u.getValue(l==null?void 0:l.i);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,t,r){let a=this._refAliasModel.get(o);const i=this.getModel(o,t);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),r.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=this.getValue(o,t,u,l,i);if(d&&d.pattern){const m=a.getValue(d.pattern);m&&m.count--}this._setValue(o,t,u,l,null)})})}setValues(o,t,r){const a=this.getModel(o,t);let i=this._refAliasModel.get(o);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),r.forEach(c=>{let u=i.getValue(c.pattern);u||(u={count:0,i:this._getUniqueRefId(o),pattern:c.pattern,type:r[0].type},i.addValue(u)),c.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{if(a){const g=this.getValue(o,t,d,m,a);if(g&&g.pattern){const h=i.getValue(g.pattern);h&&h.count--}}this._setValue(o,t,d,m,{i:u.i}),u.count++})})})}getModel(o,t){const r=this._numfmtModel.get(o);return r==null?void 0:r.get(t)}getRefModel(o){return this._refAliasModel.get(o)}};exports.NumfmtService=Kr([s.OnLifecycle(s.LifecycleStages.Starting,exports.NumfmtService),Je(0,H.Inject(s.ICommandService)),Je(1,H.Inject(s.IResourceManagerService)),Je(2,H.Inject(s.IUniverInstanceService)),Je(3,H.Inject(s.ILogService))],exports.NumfmtService);const rn="univer.sheet.editable";class Se extends s.PermissionPoint{constructor(o,t){super();x(this,"id",rn);x(this,"value",!0);x(this,"unitID");this._unitId=o,this._subUnitId=t,this.unitID=o,this.id=`${rn}_${o}_${t}`}}var Jr=Object.defineProperty,Xr=Object.getOwnPropertyDescriptor,Zr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Xr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Jr(e,o,r),r},vt=(n,e)=>(o,t)=>e(o,t,n);exports.SheetPermissionService=class extends s.Disposable{constructor(e,o,t){super(),this._permissionService=e,this._univerInstanceService=o,this._sheetInterceptorService=t,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),o=e.getUnitId();e.getSheets().forEach(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.deletePermissionPoint(e.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(be.PERMISSION,{priority:99,handler:(e,o,t)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=r==null?void 0:r.getActiveSheet(),i=r==null?void 0:r.getUnitId(),c=a==null?void 0:a.getSheetId();if(!i||!c)return!1;switch(o.id){case Ie.id:return this.getSheetEditable(i,c)}return t()}}))}getEditable$(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(Co.map(([u,l])=>{const d=u.value&&l.value,m=s.getTypeFromPermissionItemList([u,l]);return{value:d,status:m}}))}getSheetEditable(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(e,o,t){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=o||r.getUnitId(),i=r.getActiveSheet(),c=t||i.getSheetId(),u=new Se(a,c);this._permissionService.updatePermissionPoint(a,u.id,e)}};exports.SheetPermissionService=Zr([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),vt(0,H.Inject(s.IPermissionService)),vt(1,H.Inject(s.IUniverInstanceService)),vt(2,H.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function Qr(n){const e=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),t=e.getCurrentUniverSheetInstance().getUnitId(),r=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new _e.Observable(a=>{var c;const i=(c=o.getEditable$(t,r))==null?void 0:c.subscribe(u=>{a.next(!u.value)});return()=>{i==null||i.unsubscribe()}})}var es=Object.defineProperty,ts=Object.getOwnPropertyDescriptor,ns=(n,e,o,t)=>{for(var r=t>1?void 0:t?ts(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&es(e,o,r),r},St=(n,e)=>(o,t)=>e(o,t,n);const os="sheet";var Ct;exports.UniverSheetsPlugin=(Ct=class extends s.Plugin{constructor(e,o,t,r){super(os),this._config=e,this._commandService=o,this._localeService=t,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:lo})}_initializeDependencies(e){var t;const o=[[we],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[ye,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[Xe],[exports.MergeCellController]];(t=this._config)!=null&&t.notExecuteFormula||o.push([Ze],[Qe]),o.forEach(r=>{e.add(r)})}},x(Ct,"type",s.PluginType.Sheet),Ct);exports.UniverSheetsPlugin=ns([St(1,s.ICommandService),St(2,H.Inject(s.LocaleService)),St(3,H.Inject(H.Injector))],exports.UniverSheetsPlugin);const rs=[ue.id,ne.id,Bt.id,ce.id,He.id,Ve.id,We.id,Te.id,Ee.id,Oe.id,De.id,Re.id,fe.id,Me.id,pe.id],ss=[$.id,Be.id,B.id,L.id],is=1.5,as="rgba(255,255,255, 0.01)";function cs(n){const e=n.getCurrentTheme(),o=new s.ColorKit(e.colorBlack).setAlpha(.1).toRgbString();return{strokeWidth:1.5,stroke:e.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function us(n){const{rangeWithCoord:e,primaryWithCoord:o,style:t}=n,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return o!=null&&(r.primary=mo(o)),r}function mo(n){const{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function ds(n,e,o){const t=Io.getCellInfoInMergeData(n,e,o),r=s.makeCellRangeToRangeData(t);if(r)return{range:r,primary:t,style:null}}const ls={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0};exports.AddMergeUndoMutationFactory=ie;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=we;exports.COMMAND_LISTENER_SKELETON_CHANGE=rs;exports.COMMAND_LISTENER_VALUE_CHANGE=ss;exports.ClearSelectionAllCommand=ot;exports.ClearSelectionContentCommand=ft;exports.ClearSelectionFormatCommand=rt;exports.CopySheetCommand=un;exports.DeleteRangeMoveLeftCommand=it;exports.DeleteRangeMoveUpCommand=at;exports.DeltaColumnWidthCommand=Pt;exports.DeltaRowHeightCommand=Jn;exports.EffectRefRangId=V;exports.EmptyMutation=ls;exports.INTERCEPTOR_POINT=be;exports.INumfmtService=ye;exports.InsertColAfterCommand=fn;exports.InsertColBeforeCommand=In;exports.InsertColCommand=Ne;exports.InsertColMutation=Re;exports.InsertColMutationUndoFactory=Ut;exports.InsertRangeMoveDownCommand=ct;exports.InsertRangeMoveRightCommand=ut;exports.InsertRowAfterCommand=Sn;exports.InsertRowBeforeCommand=vn;exports.InsertRowCommand=Ae;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=yt;exports.InsertSheetCommand=Rn;exports.InsertSheetMutation=Ce;exports.InsertSheetUndoMutationFactory=Rt;exports.MAX_CELL_PER_SHEET_KEY=Qn;exports.MoveColsCommand=bt;exports.MoveColsMutation=We;exports.MoveRangeCommand=st;exports.MoveRangeMutation=Be;exports.MoveRowsCommand=_t;exports.MoveRowsMutation=Ve;exports.NORMAL_SELECTION_PLUGIN_NAME=q;exports.OperatorType=j;exports.RemoveColCommand=lt;exports.RemoveColMutation=Me;exports.RemoveMergeUndoMutationFactory=Q;exports.RemoveNumfmtMutation=jt;exports.RemoveRowCommand=dt;exports.RemoveRowMutation=pe;exports.RemoveSheetCommand=Tt;exports.RemoveSheetMutation=je;exports.RemoveSheetUndoMutationFactory=cn;exports.RemoveWorksheetMergeCommand=Un;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=Wn;exports.ResetTextColorCommand=Bn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=as;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=is;exports.SelectionMoveType=sn;exports.SetBackgroundColorCommand=Vn;exports.SetBoldCommand=ir;exports.SetBorderBasicCommand=_n;exports.SetBorderColorCommand=En;exports.SetBorderCommand=Pe;exports.SetBorderPositionCommand=bn;exports.SetBorderStyleCommand=Tn;exports.SetColHiddenCommand=On;exports.SetColHiddenMutation=Te;exports.SetColVisibleMutation=Ee;exports.SetColWidthCommand=kt;exports.SetFontFamilyCommand=dr;exports.SetFontSizeCommand=lr;exports.SetFrozenCommand=Nn;exports.SetFrozenMutation=ge;exports.SetFrozenMutationFactory=Dt;exports.SetHorizontalTextAlignCommand=Fn;exports.SetItalicCommand=ar;exports.SetNumfmtMutation=mt;exports.SetRangeValuesCommand=Ie;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=le;exports.SetRowHeightCommand=Xn;exports.SetRowHiddenCommand=kn;exports.SetRowHiddenMutation=Oe;exports.SetRowVisibleMutation=De;exports.SetSelectedColsVisibleCommand=Dn;exports.SetSelectedRowsVisibleCommand=Pn;exports.SetSelectionsOperation=z;exports.SetSpecificColsVisibleCommand=Et;exports.SetSpecificRowsVisibleCommand=Ot;exports.SetStrikeThroughCommand=ur;exports.SetStyleCommand=Y;exports.SetTabColorCommand=Gn;exports.SetTabColorMutation=xe;exports.SetTextColorCommand=Ln;exports.SetTextRotationCommand=$n;exports.SetTextWrapCommand=Hn;exports.SetUnderlineCommand=cr;exports.SetVerticalTextAlignCommand=jn;exports.SetWorksheetActivateCommand=At;exports.SetWorksheetActiveOperation=He;exports.SetWorksheetColWidthMutation=ce;exports.SetWorksheetColWidthMutationFactory=Nt;exports.SetWorksheetHideCommand=qn;exports.SetWorksheetHideMutation=he;exports.SetWorksheetNameCommand=xt;exports.SetWorksheetNameMutation=et;exports.SetWorksheetOrderCommand=Yn;exports.SetWorksheetOrderMutation=Le;exports.SetWorksheetRowAutoHeightMutation=Bt;exports.SetWorksheetRowAutoHeightMutationFactory=Sr;exports.SetWorksheetRowHeightMutation=ue;exports.SetWorksheetRowIsAutoHeightCommand=Vt;exports.SetWorksheetRowIsAutoHeightMutation=ne;exports.SetWorksheetShowCommand=Zn;exports.SheetEditablePermission=Se;exports.alignToMergedCellsBorders=Fe;exports.convertPrimaryWithCoordToPrimary=mo;exports.convertSelectionDataToRange=us;exports.enUS=zr;exports.factoryRemoveNumfmtUndoMutation=wr;exports.factorySetNumfmtUndoMutation=Mr;exports.followSelectionOperation=me;exports.getAddMergeMutationRangeByType=uo;exports.getCellAtRowCol=jo;exports.getCurrentSheetDisabled$=Qr;exports.getInsertRangeMutations=Mt;exports.getNormalSelectionStyle=cs;exports.getPrimaryForRange=X;exports.getRemoveRangeMutations=wt;exports.handleBaseInsertRange=Ge;exports.handleBaseMoveRowsCols=Ft;exports.handleBaseRemoveRange=$e;exports.handleDefaultRangeChangeWithEffectRefCommands=Fr;exports.handleDeleteRangeMoveLeft=ao;exports.handleDeleteRangeMoveUp=co;exports.handleDeleteRangeMutation=Ho;exports.handleIRemoveCol=to;exports.handleIRemoveRow=no;exports.handleInsertCol=ro;exports.handleInsertRangeMoveDown=so;exports.handleInsertRangeMoveRight=io;exports.handleInsertRangeMutation=Fo;exports.handleInsertRow=oo;exports.handleMoveCols=$t;exports.handleMoveRange=eo;exports.handleMoveRows=Ht;exports.rangeMerge=Wt;exports.rotateRange=de;exports.runRefRangeMutations=nt;exports.transformCellDataToSelectionData=ds;exports.transformCellsToRange=tt;exports.zhCN=lo;
|