@univerjs/sheets 0.1.5 → 0.1.7
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 +2 -2
- package/lib/es/index.js +3032 -2516
- package/lib/types/commands/commands/insert-defined-name.command.d.ts +6 -0
- package/lib/types/commands/commands/remove-defined-name.command.d.ts +6 -0
- package/lib/types/commands/commands/remove-row-col.command.d.ts +1 -1
- package/lib/types/commands/commands/set-defined-name.command.d.ts +12 -0
- package/lib/types/commands/commands/set-style.command.d.ts +2 -2
- package/lib/types/commands/mutations/__tests__/set-range-values.mutation.spec.d.ts +16 -0
- package/lib/types/commands/mutations/set-range-values.mutation.d.ts +16 -1
- package/lib/types/commands/operations/scroll-to-cell.operation.d.ts +3 -0
- package/lib/types/commands/utils/handle-merge-operation.d.ts +1 -1
- package/lib/types/controllers/defined-name-data.controller.d.ts +12 -0
- package/lib/types/controllers/merge-cell.controller.d.ts +16 -1
- package/lib/types/index.d.ts +6 -2
- package/lib/types/services/ref-range/__tests__/ref-range.service.spec.d.ts +14 -0
- package/lib/types/services/ref-range/__tests__/utils.spec.d.ts +16 -0
- package/lib/types/services/ref-range/__tests__/watch-range.spec.d.ts +16 -0
- package/lib/types/services/ref-range/ref-range.service.d.ts +8 -2
- package/lib/types/services/ref-range/util.d.ts +23 -1
- package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +3 -3
- package/lib/umd/index.js +2 -2
- package/package.json +10 -11
- /package/lib/types/{services/ref-range/__tests__/util.spec.d.ts → commands/commands/__tests__/remove-rows-cols.command.spec.d.ts} +0 -0
- /package/lib/types/services/ref-range/__tests__/{util.d.ts → __testing__.d.ts} +0 -0
package/lib/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Ro=Object.defineProperty;var po=(n,e,o)=>e in n?Ro(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var x=(n,e,o)=>(po(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"),ft=require("@univerjs/engine-formula"),Mo=require("rxjs/operators"),wo=require("@univerjs/engine-render");var yo=Object.defineProperty,Uo=Object.getOwnPropertyDescriptor,_o=(n,e,o,t)=>{for(var r=t>1?void 0:t?Uo(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&&yo(e,o,r),r},bo=(n,e)=>(o,t)=>e(o,t,n);const z="normalSelectionPluginName";var un=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(un||{});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:z,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=z,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 m=u.get(a);m==null&&(m=[],u.set(a,m)),m.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=_o([bo(0,H.Inject(s.ThemeService))],exports.SelectionManagerService);const To=s.createInterceptorKey("CELL_CONTENT"),Eo=s.createInterceptorKey("PERMISSION"),be={CELL_CONTENT:To,PERMISSION:Eo};var Do=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,No=(n,e,o,t)=>{for(var r=t>1?void 0:t?Oo(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&&Do(e,o,r),r},Ao=(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,m;return((u=c.priority)!=null?u:0)-((m=i.priority)!=null?m: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(m=>{const d=new s.DisposableCollection,l=m.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(l),a._worksheetDisposables.set(Qt(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=Qt(o,t),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=No([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Ao(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Qt(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(),m=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=m.getStyleByCell(S),I=xo(C,v&&v.s?v.s:null);S.s=I,d.setValue(g,h,Po(S))}),{...e,options:{},cellValue:d.getMatrix()}};function Po(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(),m=i.getStyles();return new s.ObjectMatrix(o).forValue((l,g,h)=>{if(!h)u==null||u.setValue(l,g,{});else{const v=u.getValue(l,g)||{},S=h.t===s.CellValueType.FORCE_STRING?h.t:ko(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):S===s.CellValueType.BOOLEAN?h.v.toString().toUpperCase()==="TRUE"?1:0:h.v),v.v!==void 0&&(v.t=S),h.s!==void 0){const C=m.getStyleByCell(v);C==null&&delete v.s,typeof h.s=="string"&&(h.s=m.get(h.s));const I=Xe(C,h.s?h.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=m.setValue(I),!h.p&&v.p&&Vo(v.p,h.s?h.s:null)}u.setValue(l,g,s.Tools.removeNull(v))}}),!0}};function ko(n){return n===null?null:typeof n=="string"?jo(n)?s.CellValueType.NUMBER:Fo(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function xo(n,e){return Lo(n,e)}function Lo(n,e){if(!e||!Object.keys(e).length)return n;const o=n||{};for(const t in e)t==="bd"?o[t]=Bo(o[t]||{},e[t]):t in o||(o[t]=null);return o}function Bo(n,e){if(!e||!Object.keys(e).length)return n;for(const o in e)o in n||(n[o]=null);return n}function Xe(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 dn(n,e){return n.some(o=>o.startIndex===e)?dn(n,e+1):e}function Vo(n,e){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const t=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:m,ts:d={}}=c;if(o<u){const g={st:o,ed:u},h=Xe({},e,!0);h&&s.Tools.removeNull(h),s.Tools.isEmptyObject(h)||(g.ts=h),t.push(g)}const l=Xe(d,e,!0);l&&s.Tools.removeNull(l),s.Tools.isEmptyObject(l)?delete c.ts:c.ts=l,t.push(c),o=dn(r,m)}const a=n.body.dataStream.endsWith(`\r
|
|
2
|
-
`)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const c={st:o,ed:a},u=Xe({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),t.push(c)}n.body.textRuns=t}function Wo(n){return/^-?\d+(\.\d+)?$/.test(n)}function jo(n){return Wo(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Fo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const rt={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(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Ho(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:rt.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Ho(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 Rt={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(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={subUnitId:m,unitId:c,cellValue:$o(d)},g=le(n,l),h=a.onCommandExecute({id:Rt.id}),v=[{id:$.id,params:l},...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 $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,{v:null,p:null,f:null,si:null})}),e.getData()}const st={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(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Go(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:st.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Go(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 pt=(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}},ln=(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(m=>m===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}},mn={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 m=u.getSheetBySheetId(c);if(!m)return!1;const d=s.Tools.deepClone(m.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(m)+1,sheet:d,unitId:i},h=pt(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(),m=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,l,g)=>{u.setValue(d,l,g)}),new s.ObjectMatrix(t.value).forValue((d,l,g)=>{m.setValue(d,l,g)}),!0}},G={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 m={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,m)||r.push(m)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Fe(a,e,o):a}function zo(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 qo(n,e,o){const{startRow:t,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(t)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=e),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o),n}function X(n,e){const o=Number.isNaN(n.startRow)?0:n.startRow,t=Number.isNaN(n.startColumn)?0:n.startColumn,r=e.getMergedCell(o,t);return r?{...r,actualRow:o,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:t,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const me=(n,e,o)=>({id:G.id,params:{unitId:e.getUnitId(),subUnitId:o.getSheetId(),pluginName:z,selections:[{range:n,primary:X(n,o)}]}}),gn="sheet.command.move-range",it={type:s.CommandType.COMMAND,id:gn,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(),m=c.getSheetId(),d=Mt(n,{unitId:u,subUnitId:m,range:e.fromRange},{unitId:u,subUnitId:m,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=n.get(exports.SheetInterceptorService).onCommandExecute({id:it.id,params:{...e}}),h=[...d.redos,...g.redos,{id:G.id,params:{unitId:u,subUnitId:m,pluginName:z,selections:[{range:e.toRange,primary:X(e.toRange,c)}]}}],v=[{id:G.id,params:{unitId:u,subUnitId:m,pluginName:z,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 Mt(n,e,o,t=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=e,{range:m,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(m,h,!1);if(!s.Rectangle.equals(m,I)&&!t)return null;const f=new s.ObjectMatrix,M=new s.ObjectMatrix;s.Range.foreach(i,(y,T)=>{f.setValue(y,T,C.getValue(y,T)),M.setValue(y,T,null)});const R=new s.ObjectMatrix;s.Range.foreach(m,(y,T)=>{R.setValue(y,T,S.getValue(y,T))});const U=new s.ObjectMatrix;s.Range.foreach(i,(y,T)=>{const D=s.cellToRange(y,T),k=s.Rectangle.getRelativeRange(D,i),p=s.Rectangle.getPositionRange(k,m);U.setValue(p.startRow,p.startColumn,C.getValue(y,T))});const w={from:{value:M.getMatrix(),subUnitId:c},to:{value:U.getMatrix(),subUnitId:d},unitId:u},_={from:{value:f.getMatrix(),subUnitId:c},to:{value:R.getMatrix(),subUnitId:d},unitId:u};r.push({id:Be.id,params:w}),a.push({id:Be.id,params:_})}return{redos:r,undos:a}}const Ie={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(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:m=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,l=u?[u]:a.getSelectionRanges();if(!l||!l.length)return!1;const g=new s.ObjectMatrix;let h;if(s.Tools.isArray(c))for(let R=0;R<l.length;R++){const{startRow:U,startColumn:w,endRow:_,endColumn:y}=l[R];for(let T=0;T<=_-U;T++)for(let D=0;D<=y-w;D++)g.setValue(T+U,D+w,c[T][D])}else if(s.isICellData(c))for(let R=0;R<l.length;R++){const{startRow:U,startColumn:w,endRow:_,endColumn:y}=l[R];for(let T=U;T<=_;T++)for(let D=w;D<=y;D++)g.setValue(T,D,c)}else h=c;const v={subUnitId:d,unitId:m,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:f}=i.onCommandExecute({id:Ie.id,params:{...v,range:l}}),M=s.sequenceExecute([...f],o);return C&&M.result?(t.pushUndoRedo({unitID:m,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}};function wt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=e,m=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),l=m.getUniverSheetInstance(r),g=l==null?void 0:l.getSheetBySheetId(a);if(g){const h=g.getCellMatrix(),v=h.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let M,R;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,v.endRow);let _=0;for(let T=i.startRow;T<=w;T++){const D=h.getRow(T),k=D?s.getArrayLength(D)-1:0;_=Math.max(_,k)}M={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:_};const y=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:M.startColumn+y,endRow:w,endColumn:M.endColumn+y}}else{const w=Math.min(i.endColumn,v.endColumn),_=v.endRow;M={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:w};const y=i.endRow-i.startRow+1;R={startRow:M.startRow+y,startColumn:i.startColumn,endRow:M.endRow+y,endColumn:w}}const U=Mt(n,{unitId:r,subUnitId:a,range:M},{unitId:r,subUnitId:a,range:R},!0);U&&(o.push(...U.redos),t.push(...U.undos))}if(Object.entries(u).length===0)for(let M=i.startRow;M<=i.endRow;M++){u[M]||(u[M]={});for(let R=i.startColumn;R<=i.endColumn;R++)u[M][R]=null}const S={subUnitId:a,unitId:r,cellValue:u},C=le(n,S),{undos:I,redos:f}=d.onCommandExecute({id:Ie.id,params:{...S,range:i}});o.push({id:$.id,params:S},...f),t.push({id:$.id,params:C},...I)}return{redo:o,undo:t}}function yt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=e,u=n.get(s.IUniverInstanceService),m=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),l=d==null?void 0:d.getSheetBySheetId(a);if(l){const g=l.getCellMatrix(),h=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:Jo([i])},S=le(n,v),C=m.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,f=null;if(c===s.Dimension.COLUMNS&&i.endColumn<h.endColumn){const M=Math.min(i.endRow,h.endRow);let R=0;for(let w=i.startRow;w<=M;w++){const _=g.getRow(w),y=_?s.getArrayLength(_)-1:0;R=Math.max(R,y)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:M,endColumn:R};const U=i.endColumn-i.startColumn+1;f={startRow:i.startRow,startColumn:I.startColumn-U,endRow:M,endColumn:I.endColumn-U}}if(c===s.Dimension.ROWS&&i.endRow<h.endRow){const M=Math.min(i.endColumn,h.endColumn),R=h.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:R,endColumn:M};const U=i.endRow-i.startRow+1;f={startRow:I.startRow-U,startColumn:i.startColumn,endRow:I.endRow-U,endColumn:M}}if(I&&f){const M=Mt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:f},!0);M&&(o.push(...M.redos),t.push(...M.undos))}}}return{redo:o,undo:t}}function Yo(n,e,o,t,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:m}=e;if(r===s.Dimension.ROWS){const d=c-i+1;for(let l=o;l>=i;l--)for(let g=u;g<=m;g++){const h=n.getValue(l,g);h==null?n.realDeleteValue(l+d,g):n.setValue(l+d,g,h)}for(let l=c;l>=i;l--)for(let g=u;g<=m;g++)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}else if(r===s.Dimension.COLUMNS){const d=m-u+1;for(let l=i;l<=c;l++)for(let g=t;g>=u;g--){const h=n.getValue(l,g);h==null?n.realDeleteValue(l,g+d):n.setValue(l,g+d,h)}for(let l=i;l<=c;l++)for(let g=m;g>=u;g--)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}}function Ko(n,e,o,t,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=e,m=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let l=a;l<=o;l++)for(let g=c;g<=u;g++){const h=n.getValue(l+m,g);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}else if(r===s.Dimension.COLUMNS)for(let l=a;l<=i;l++)for(let g=c;g<=t;g++){const h=n.getValue(l,g+d);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}}function Jo(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 hn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:hn,handler:async(n,e)=>{var M;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 m=e==null?void 0:e.range;if(m||(m=(M=a.getLast())==null?void 0:M.range),!m)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:at.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},vn="sheet.command.delete-range-move-up",ct={type:s.CommandType.COMMAND,id:vn,handler:async(n,e)=>{var M;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 m=e==null?void 0:e.range;if(m||(m=(M=a.getLast())==null?void 0:M.range),!m)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:ct.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),await s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},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}},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 m=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},l=r.startRow,g=r.endRow-r.startRow+1;for(let S=l;S<l+g;S++)a?s.insertMatrixArray(S,(v=a[S-r.startRow])!=null?v:d,m):s.insertMatrixArray(S,d,m);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},_t=(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,m=a.getColumnData(),d=i.startColumn,l=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+l;S++){const C={w:g,hd:0};c?s.insertMatrixArray(S,(v=c[S-i.startColumn])!=null?v:C,m):s.insertMatrixArray(S,C,m)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,l),!0}},Xo=(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={},m=e.range,d=s.sliceMatrixArray(m.startColumn,m.endColumn,c),l=s.concatMatrixArray(u,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:l}},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",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var D;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(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(D=i.getLast())==null?void 0:D.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,M=Math.max(f+(d.endRow-d.startRow+1)-C.endRow,0);if(M>0){const k=d.startRow-1,p=g.getRowHeight(k),q={unitId:u,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+M,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:p,hd:s.BooleanNumber.FALSE}))};h.push({id:fe.id,params:q});const ge=Ut(n,q);v.push({id:pe.id,params:ge})}const R={};s.Range.foreach(d,(k,p)=>{const q=g.getCell(k,p);q&&(R[k]||(R[k]={}),R[k][p]={s:q.s})});const U={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:R},{redo:w,undo:_}=wt(n,U);h.push(...w),v.push(..._);const y=c.onCommandExecute({id:ut.id,params:{range:d}});return h.push(...y.redos),h.push(me(d,l,g)),v.push(...y.undos),s.sequenceExecute(h,o)?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Sn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Sn,handler:async(n,e)=>{var D;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(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(D=i.getLast())==null?void 0:D.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,M=Math.max(f+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(M>0){const k=d.startColumn-1,p=g.getColumnWidth(k),q={unitId:u,subUnitId:m,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:p,hd:s.BooleanNumber.FALSE}))};h.push({id:Re.id,params:q});const ge=_t(n,q);v.push({id:Me.id,params:ge})}const R={};s.Range.foreach(d,(k,p)=>{const q=g.getCell(k,p);!q||!q.s||(R[k]||(R[k]={}),R[k][p]={s:q.s})});const U={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:R},{redo:w,undo:_}=wt(n,U);h.push(...w),v.push(..._);const y=c.onCommandExecute({id:dt.id,params:{range:d}});return h.push(...y.redos),h.push(me(d,l,g)),v.push(...y.undos),s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Cn="sheet.command.insert-row",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),i=r.getUniverSheetInstance(e.unitId),c=i.getSheetBySheetId(e.subUnitId),{range:u,direction:m,unitId:d,subUnitId:l}=e,{startRow:g,endRow:h}=u,v=m===s.Direction.UP?g:g-1,S=c.getRowHeight(v),C={unitId:d,subUnitId:l,range:u,rowInfo:new Array(h-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=Ut(n,C),f=a.onCommandExecute({id:Ne.id,params:e});return s.sequenceExecute([{id:fe.id,params:C},...f.redos,me(u,i,c)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...f.undos,{id:pe.id,params:I}],redoMutations:[{id:fe.id,params:C},...f.redos]}),!0):!1}},In={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(),m=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 l={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+m-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(Ne.id,l)}},fn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var l;const o=(l=n.get(exports.SelectionManagerService).getSelections())==null?void 0:l.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(),m=t.endRow-t.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+m,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Ne.id,d)}},Rn="sheet.command.insert-col",Ae={type:s.CommandType.COMMAND,id:Rn,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:m,cellValue:d}=e,{startColumn:l,endColumn:g}=e.range,h=r.getUniverSheetInstance(e.unitId),v=h.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?l:l-1,C=v.getColumnWidth(S),I={unitId:m,subUnitId:u,range:i,colInfo:new Array(g-l+1).fill(void 0).map(()=>({w:C,hd:s.BooleanNumber.FALSE}))},f=_t(n,I);e.unitId,e.subUnitId,e.range,s.Dimension.COLUMNS;const M=a.onCommandExecute({id:Ae.id,params:e});return s.sequenceExecute([{id:Re.id,params:I},...M.redos,me(i,h,v)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...M.undos,{id:Me.id,params:f}],redoMutations:[{id:Re.id,params:I},...M.redos]}),!0):!1}},pn={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(),m=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 l={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+m-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(Ae.id,l)}},Mn={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(),m=t.endColumn-t.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+m,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Ae.id,d)}},wn={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,m=s.mergeWorksheetSnapshotWithDefault({});e?(u=(v=e.index)!=null?v:u,e.sheet?m=e.sheet:(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`))):(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:u,sheet:m,unitId:i},l=pt(n,d);return o.syncExecuteCommand(Ce.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:l}],redoMutations:[{id:Ce.id,params:d}]}),!0):!1}};function er(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 m=r.startRow,d=r.endRow-r.startRow+1,l=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveRows(m,d,l),!0}};function tr(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 m=r.startColumn,d=r.endColumn-r.startColumn+1,l=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveColumns(m,d,l),!0}};function nr(n,e){return e.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function or(n,e){return e.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const yn="sheet.command.move-rows",bt={id:yn,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(ee=>ee.range.rangeType===s.RANGE_TYPE.ROW&&ee.range.startRow<=r&&r<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.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(nr(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startRow:a,endRow:a+v.endRow-v.startRow},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},M=er(n,f),U=a-r<0,w=v.endRow-v.startRow+1,_=U?I:{...I,startRow:I.startRow-w,endRow:I.endRow-w},y={unitId:l,subUnitId:g,pluginName:z,selections:[{range:_,primary:X(_,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:z,selections:[{range:v,primary:S,style:null}]},D=n.get(s.ICommandService),k=c.onCommandExecute({id:bt.id,params:e}),p=[{id:Ve.id,params:f},{id:G.id,params:y},...k.redos],q=[{id:Ve.id,params:M},{id:G.id,params:T},...k.undos];return s.sequenceExecute(p,D).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:q,redoMutations:p}),!0):!1}},Un="sheet.command.move-cols",Tt={id:Un,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(ee=>ee.range.rangeType===s.RANGE_TYPE.COLUMN&&ee.range.startColumn<=r&&r<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.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(or(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startColumn:a,endColumn:a+v.endColumn-v.startColumn},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},M=tr(n,f),R=v.endColumn-v.startColumn+1,_=a-r<0?I:{...I,startColumn:I.startColumn-R,endColumn:I.endColumn-R},y={unitId:l,subUnitId:g,pluginName:z,selections:[{range:_,primary:X(_,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:z,selections:[{range:v,primary:S,style:null}]},D=n.get(s.ICommandService),k=c.onCommandExecute({id:Tt.id,params:e}),p=[{id:We.id,params:f},{id:G.id,params:y},...k.redos],q=[{id:We.id,params:M},{id:G.id,params:T},...k.undos];return s.sequenceExecute(p,D).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:q,redoMutations:p}),!0}},_n="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:_n,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(),m=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Xo(d,c),g=t.onCommandExecute({id:lt.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:l}],redoMutations:[{id:pe.id,params:d},...g.redos]}),!0):!1}},bn="sheet.command.remove-col",mt={type:s.CommandType.COMMAND,id:bn,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(),m=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Zo(n,d),g=t.onCommandExecute({id:mt.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:l}],redoMutations:[{id:Me.id,params:d},...g.redos]}),!0):!1}},Et={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,e)=>{var I,f;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=(f=e.subUnitId)!=null?f:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(m);u.getConfig().sheetOrder[d+1];const l={subUnitId:c,unitId:i,subUnitName:m.getName()},g=ln(n,l),h=a.onCommandExecute({id:Et.id,params:{unitId:i,subUnitId:c}}),v=[{id:je.id,params:l},...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 m=0;m<c.length;m++)for(let d=i.length-1;d>=0;d--){const l=i[d],g=c[m];s.Rectangle.intersects(l,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 m=i.length-1;m>=0;m--){const d=i[m],l=c[u];s.Rectangle.intersects(d,l)&&i.splice(m,1)}return!0}},Tn={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 m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a};let l=!1;const g=m.getConfig().mergeData;if(a.forEach(S=>{g.forEach(C=>{s.Rectangle.intersects(S,C)&&(l=!0)})}),!l)return!1;const h=Q(n,d);return o.syncExecuteCommand(B.id,h)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:h}],redoMutations:[{id:B.id,params:h}]}),!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 rr(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 En={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),m=n.get(we);return m.setType(a),m.setColor(i),m.setStyle(c),u.executeCommand(Pe.id,{unitId:o,subUnitId:t})}},Dn={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)}},On={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)}},Nn={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:m}=rr(r,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),l=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,f=v===s.BorderType.BOTTOM||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,M=v===s.BorderType.RIGHT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,R=v===s.BorderType.VERTICAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,U=v===s.BorderType.HORIZONTAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,w=v.indexOf("tlbr")>-1,_=v.indexOf("tlbc")>-1,y=v.indexOf("tlmr")>-1,T=v.indexOf("bltr")>-1,D=v.indexOf("mltr")>-1,k=v.indexOf("bctr")>-1,p=d[0],q={startRow:p.startRow-1,startColumn:p.startColumn,endRow:p.startRow-1,endColumn:p.endColumn},ge={startRow:p.startRow,startColumn:p.startColumn-1,endRow:p.endRow,endColumn:p.startColumn-1},ee={startRow:p.endRow+1,startColumn:p.startColumn,endRow:p.endRow+1,endColumn:p.endColumn},qt={startRow:p.startRow,startColumn:p.endColumn+1,endRow:p.endRow,endColumn:p.endColumn+1},Yt={startRow:p.startRow,startColumn:p.startColumn,endRow:p.startRow,endColumn:p.endColumn},Kt={startRow:p.startRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.startColumn},Jt={startRow:p.endRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.endColumn},Xt={startRow:p.startRow,startColumn:p.endColumn,endRow:p.endRow,endColumn:p.endColumn},A=new s.ObjectMatrix,j={s:g,cl:{rgb:h}},ze=(O,b)=>{let P=null;return l.forEach(K=>{s.Rectangle.intersects(K,{startColumn:b,endColumn:b,startRow:O,endRow:O})&&(P=K)}),P};function V(O,b,P){O.startRow<0||O.startColumn<0||qe(O,(K,te)=>{var E,ke;const J=ze(K,te);let Z=b;if(J&&(b.bc_tr||b.ml_tr||b.bl_tr||b.tl_mr||b.tl_bc||b.tl_br)){if(P){const ne=s.Tools.deepClone((E=A.getValue(J.startRow,J.startColumn))==null?void 0:E.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,b):b}A.setValue(J.startRow,J.startColumn,{s:{bd:Z}})}else{if(P){const ne=s.Tools.deepClone((ke=A.getValue(K,te))==null?void 0:ke.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,b):b}A.setValue(K,te,{s:{bd:Z}})}})}C&&(V(q,{b:null}),V(Yt,{t:s.Tools.deepClone(j)},!0)),f&&(V(ee,{t:null}),V(Jt,{b:s.Tools.deepClone(j)},!0)),I&&(V(ge,{r:null}),V(Kt,{l:s.Tools.deepClone(j)},!0)),M&&(V(qt,{l:null}),V(Xt,{r:s.Tools.deepClone(j)},!0)),w&&V(p,{tl_br:s.Tools.deepClone(j)},!0),_&&V(p,{tl_bc:s.Tools.deepClone(j)},!0),y&&V(p,{tl_mr:s.Tools.deepClone(j)},!0),T&&V(p,{bl_tr:s.Tools.deepClone(j)},!0),D&&V(p,{ml_tr:s.Tools.deepClone(j)},!0),k&&V(p,{bc_tr:s.Tools.deepClone(j)},!0),R&&qe(p,(O,b)=>{var K,te,J,Z;const P=ze(O,b);if(P){if(P.endColumn!==p.endColumn){const E=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(P.startColumn!==p.startColumn){const E=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(b!==p.endColumn){const E=(J=A.getValue(O,b))==null?void 0:J.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(b!==p.startColumn){const E=(Z=A.getValue(O,b))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),U&&qe(p,(O,b)=>{var K,te,J,Z;const P=ze(O,b);if(P){if(P.endRow!==p.endRow){const E=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(P.startRow!==p.startRow){const E=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(O!==p.endRow){const E=(J=A.getValue(O,b))==null?void 0:J.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(O!==p.startRow){const E=(Z=A.getValue(O,b))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!C&&!f&&!I&&!M&&!R&&!U&&!w&&!_&&!y&&!T&&!D&&!k&&(V(q,{b:null}),V(Yt,{t:null},!0),V(ee,{t:null}),V(Jt,{b:null},!0),V(ge,{r:null}),V(Kt,{l:null},!0),V(qt,{l:null}),V(Xt,{r:null},!0),V(p,{tl_br:null},!0),V(p,{tl_bc:null},!0),V(p,{tl_mr:null},!0),V(p,{bl_tr:null},!0),V(p,{ml_tr:null},!0),V(p,{bc_tr:null},!0),qe(p,(O,b)=>{var K,te,J,Z,E,ke,ne,Zt;const P=ze(O,b);if(P){if(P.endColumn!==p.endColumn){const N=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(P.startColumn!==p.startColumn){const N=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(P.endRow!==p.endRow){const N=(J=A.getValue(P.startRow,P.startColumn))==null?void 0:J.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(P.startRow!==p.startRow){const N=(Z=A.getValue(P.startRow,P.startColumn))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}else{if(b!==p.endColumn){const N=(E=A.getValue(O,b))==null?void 0:E.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(b!==p.startColumn){const N=(ke=A.getValue(O,b))==null?void 0:ke.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(O!==p.endRow){const N=(ne=A.getValue(O,b))==null?void 0:ne.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(O!==p.startRow){const N=(Zt=A.getValue(O,b))==null?void 0:Zt.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}}));const ht={unitId:u,subUnitId:m,cellValue:A.getData()},fo=le(n,ht);return o.syncExecuteCommand($.id,ht)?(t.pushUndoRedo({unitID:u,undoMutations:[{id:$.id,params:fo}],redoMutations:[{id:$.id,params:ht}]}),!0):!1}},sr=(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}},ir=(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}},Dt={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=ir(n,i),u={unitId:o,subUnitId:t,pluginName:z,selections:r.map(g=>({range:g,primary:X(g,a),style:null}))},m={unitId:o,subUnitId:t,pluginName:z,selections:kn(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:G.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Te.id,params:c},{id:G.id,params:m}],redoMutations:[{id:Ee.id,params:i},{id:G.id,params:u}]}),!0}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var m;const o=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.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(Dt.id,{unitId:i,subUnitId:c,ranges:u})}},Pn={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},m={unitId:i,subUnitId:c,pluginName:z,selections:kn(o).map(v=>({range:v,primary:X(v,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:z,selections:o.map(v=>({range:v,primary:X(v,a),style:null}))},l=n.get(s.ICommandService);if(s.sequenceExecute([{id:Te.id,params:u},{id:G.id,params:m}],l).result){const v=n.get(s.IUndoRedoService),S=sr(n,u);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:S},{id:G.id,params:d}],redoMutations:[{id:Te.id,params:u},{id:G.id,params:m}]}),!0}return!1}};function kn(n){return ar(n).map(o=>{const t=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:t,endColumn:t}})}function ar(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 Ot=(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}},he={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:m}=e;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:m},!0}},xn={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:m,startRow:d,xSplit:l,ySplit:g}=e;if(d>=u.getRowCount()||m>=u.getColumnCount()||l>=u.getColumnCount()||g>=u.getRowCount())return!1;const h={unitId:a,subUnitId:i,...e},v=Ot(n,h);return o.syncExecuteCommand(he.id,h)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:he.id,params:v}],redoMutations:[{id:he.id,params:h}]}),!0):!1}},cr={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},m=Ot(n,u);return e.syncExecuteCommand(he.id,u)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:he.id,params:m}],redoMutations:[{id:he.id,params:u}]}),!0):!1}},ur=(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}},dr=(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}},Nt={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},m=ur(n,u),d={unitId:o,subUnitId:t,pluginName:z,selections:r.map(h=>({range:h,primary:X(h,c),style:null}))},l={unitId:o,subUnitId:t,pluginName:z,selections:Vn(r).map(h=>({range:h,primary:X(h,c),style:null}))};return s.sequenceExecute([{id:De.id,params:u},{id:G.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:m},{id:G.id,params:l}],redoMutations:[{id:De.id,params:u},{id:G.id,params:d}]}),!0}},Ln={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var m;const e=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),t=(m=e.getSelections())==null?void 0:m.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(Nt.id,{unitId:i,subUnitId:c,ranges:u})}},Bn={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 m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a},l={unitId:i,subUnitId:c,pluginName:z,selections:Vn(a).map(C=>({range:C,primary:X(C,m),style:null}))},g={unitId:i,subUnitId:c,pluginName:z,selections:a.map(C=>({range:C,primary:X(C,m),style:null}))},h=dr(n,d);return s.sequenceExecute([{id:Oe.id,params:d},{id:G.id,params:l}],o).result&&t.pushUndoRedo({unitID:i,undoMutations:[{id:De.id,params:h},{id:G.id,params:g}],redoMutations:[{id:Oe.id,params:d},{id:G.id,params:l}]}),!0}};function Vn(n){return lr(n).map(o=>{const t=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:t,endRow:t}})}function lr(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),m=n.get(exports.SelectionManagerService),d=a?[a]:m.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=o.getUniverSheetInstance(t);if((l==null?void 0:l.getSheetBySheetId(r))==null)return!1;const h=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let R=0;R<d.length;R++){const{startRow:U,endRow:w,startColumn:_,endColumn:y}=d[R];for(let T=0;T<=w-U;T++)for(let D=0;D<=y-_;D++)h.setValue(T+U,D+_,{s:{[i.type]:i.value[T][D]}})}else for(let R=0;R<d.length;R++){const{startRow:U,endRow:w,startColumn:_,endColumn:y}=d[R],T={s:{[i.type]:i.value}};for(let D=U;D<=w;D++)for(let k=_;k<=y;k++)h.setValue(D,k,T)}const v={subUnitId:r,unitId:t,cellValue:h.getMatrix()},S=le(n,v),C=c.syncExecuteCommand($.id,v),{undos:I,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Y.id,params:e}),M=s.sequenceExecute([...f],c);return C&&M.result?(u.pushUndoRedo({unitID:t,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}},mr={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)}},gr={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)}},hr={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)}},vr={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 Sr={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)}},Cr={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)}},Wn={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)}},jn={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)}},Fn={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)}},Hn={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)}},$n={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)}},Gn={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)}},zn={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)}},qn={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)}},Ir=(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}},Yn={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 m={color:e.value,unitId:a,subUnitId:i},d=Ir(n,m);return o.syncExecuteCommand(xe.id,m)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:m}]}),!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}},fr=4,At={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e,o)=>{var c,u;const t=n.get(s.ICommandService),r=n.get(s.IUniverInstanceService);let a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return e&&(a=(c=e.unitId)!=null?c:a,i=(u=e.subUnitId)!=null?u:i),new Promise(m=>{setTimeout(()=>{const d=t.syncExecuteCommand(He.id,{unitId:a,subUnitId:i},o);m(d)},fr)})}},Pt=(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 m=c[u];for(let d=m.startColumn;d<m.endColumn+1;d++){const l=i.getColumnOrCreate(d);a[d]=l.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 m=0;m<c.length;m++){const d=c[m];for(let l=d.startColumn;l<d.endColumn+1;l++){const g=i.getColumnOrCreate(l);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(u=e.colWidth[l-d.startColumn])!=null?u:a}}return!0}},kt={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(),m=c.getUnitId(),d=u.getSheetId(),{anchorCol:l,deltaX:g}=e,v=u.getColumnWidth(l)+g,S=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,C=t.filter(y=>y.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:y})=>{const{startColumn:T,endColumn:D}=y;return T<=l&&l<=D})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let f;if(I===s.RANGE_TYPE.ALL){const y=u.getRowCount(),T=new Array(u.getColumnCount()).fill(void 0).map((D,k)=>({startRow:0,endRow:y-1,startColumn:k,endColumn:k}));f={subUnitId:d,unitId:m,colWidth:v,ranges:T}}else I===s.RANGE_TYPE.COLUMN?f={subUnitId:d,unitId:m,ranges:C.map(y=>s.Rectangle.clone(y.range)),colWidth:v}:f={subUnitId:d,unitId:m,colWidth:v,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const M=Pt(n,f),R=r.syncExecuteCommand(ce.id,f),{undos:U,redos:w}=n.get(exports.SheetInterceptorService).onCommandExecute({id:kt.id,params:f}),_=s.sequenceExecute([...w],r);return R&&_.result&&a.pushUndoRedo({unitID:m,undoMutations:[{id:ce.id,params:M},...U],redoMutations:[{id:ce.id,params:f},...w]}),!0}},xt={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(),m={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:e.value},d=Pt(n,m),l=t.syncExecuteCommand(ce.id,m),{undos:g,redos:h}=n.get(exports.SheetInterceptorService).onCommandExecute({id:xt.id,params:m}),v=s.sequenceExecute([...h],t);return l&&v.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ce.id,params:d},...g],redoMutations:[{id:ce.id,params:m},...h]}),!0):!1}},Kn=(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()}},ve={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}},Jn={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 m=u.getSheetBySheetId(c);if(!m||m.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const l={unitId:i,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=Kn(n,l);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(ve.id,l)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:g}],redoMutations:[{id:ve.id,params:l}]}),!0):!1}},Rr=(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()}},tt={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}},Lt={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},m=Rr(n,u),d=a.onCommandExecute({id:Lt.id,params:e}),l=[{id:tt.id,params:u},...d.redos],g=[...d.undos,{id:tt.id,params:m}];return await s.sequenceExecute(l,o).result?(t.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:l}),!0):!1}},pr=(n,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),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();return t.sheetOrder.splice(e.fromOrder,1),t.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},Xn={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 d={fromOrder:c.getConfig().sheetOrder.indexOf(i),toOrder:e.order,unitId:a,subUnitId:i},l=pr(n,d);return o.syncExecuteCommand(Le.id,d)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Le.id,params:l}],redoMutations:[{id:Le.id,params:d}]}),!0):!1}},Mr=2e3,Zn=(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={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<l+1;g++){const h=m.getRowOrCreate(g);u[g]=h.h}return{unitId:o,subUnitId:t,ranges:r,rowHeight:u}},Bt=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<=l;g++){const h=m.getRowOrCreate(g);u[g]=h.ia}return{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:u}},wr=(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=[],m=c.getRowManager();for(const d of r){const{row:l}=d,{ah:g}=m.getRowOrCreate(l);u.push({row:l,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 l;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 m=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=(l=a[v])!=null?l:m,S.h=Math.min(Mr,S.h)}return!0}},oe={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var l;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 m=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=(l=a[v-g])!=null?l:m}return!0}},Vt={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:m,autoHeight:d}of r){const l=u.getRowOrCreate(m);l.ah=d}return!0}},Qn={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:m,deltaY:d}=e,g=i.getRowHeight(m)+d,h=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,v=t.filter(_=>_.range.rangeType===s.RANGE_TYPE.ROW),S=h?s.RANGE_TYPE.ALL:v.some(({range:_})=>{const{startRow:y,endRow:T}=_;return y<=m&&m<=T})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const _=i.getRowCount(),y=new Array(i.getColumnCount()).fill(void 0).map((T,D)=>({startRow:D,endRow:D,startColumn:0,endColumn:_-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:y}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:v.map(_=>s.Rectangle.clone(_.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:m,endRow:m,startColumn:0,endColumn:i.getMaxColumns()-1}]};const I=Zn(n,C),f={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},M=Bt(n,f),R=n.get(s.ICommandService),U=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:ue.id,params:C},{id:oe.id,params:f}],R).result?(U.pushUndoRedo({unitID:c,undoMutations:[{id:ue.id,params:I},{id:oe.id,params:M}],redoMutations:[{id:ue.id,params:C},{id:oe.id,params:f}]}),!0):!1}},eo={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(),m=c.getActiveSheet().getSheetId(),d={subUnitId:m,unitId:u,ranges:i,rowHeight:e.value},l=Zn(n,d),g={unitId:u,subUnitId:m,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},h=Bt(n,g);return s.sequenceExecute([{id:ue.id,params:d},{id:oe.id,params:g}],t).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:l},{id:oe.id,params:h}],redoMutations:[{id:ue.id,params:d},{id:oe.id,params:g}]}),!0):!1}},Wt={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:m}=e!=null?e:{},d=m!=null?[{startRow:m,endRow:m,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={unitId:i,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=Bt(n,l),h=o.syncExecuteCommand(oe.id,l),{undos:v,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Wt.id,params:l}),C=s.sequenceExecute([...S],o);return h&&C.result?(t.pushUndoRedo({unitID:i,undoMutations:[{id:oe.id,params:g},...v],redoMutations:[{id:oe.id,params:l},...S]}),!0):!1}},to={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},l=Kn(n,d),g=o.syncExecuteCommand(ve.id,d),h={unitId:a,subUnitId:i},v=o.syncExecuteCommand(He.id,h);return g&&v?(t.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:l}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},no=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},oo=n=>{const e=n;return e.forValue((o,t)=>{const r=n.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},en=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 m=r-1;m>=0&&n.getValue(t,m);m--){c=Math.min(n.getValue(t,m)||0,c),i++;const d=c*i;u.startColumn=m,u.startRow=t-c+1,o(d,u)}}),e},yr=(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),jt=n=>{const e=[];let o=en(n);for(;o.area>0;)o.range&&(e.push(o.range),yr(n,o.range)),o=en(n);return e},Ft=n=>{const e=no(n);return jt(e)};class Ur{constructor(){x(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.setValue(t,r,1)})}),this}subtract(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.realDeleteValue(t,r)})}),this}merge(){const e=oo(this._matrix);return jt(e)}}const _r=(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)},{}),br=(n=0)=>{let e=n;return function(){return e++}},ye=H.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,ye);const Tr=(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 m=[];if(i.length){const d=nt(r,a,i);Object.keys(d.values).forEach(l=>{const g=d.values[l];g.ranges=Ft(g.ranges)}),m.push({id:gt.id,params:nt(r,a,i)})}return c.length&&m.push({id:Ht.id,params:{unitId:r,subUnitId:a,ranges:c}}),m},gt={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,m)=>{const d=t[m],l=o[m].ranges;return d&&u.push({...d,ranges:l}),u},[]);return r.setValues(a,i,c),!0}},Ht={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}},Er=(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(m=>{s.Range.foreach(m,(d,l)=>{const g=o.getValue(r,a,d,l,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:l})})}),!i.length)return[];const u=nt(r,a,i);return Object.keys(u.values).forEach(m=>{const d=u.values[m];d.ranges=Ft(d.ranges)}),[{id:gt.id,params:u}]},nt=(n,e,o)=>{const t=_r(o,"pattern"),r={},a={},i=br();return Object.keys(t).forEach(c=>{const u=t[c],m=u[0],d=i();r[d]={pattern:c,type:m.type},u.forEach(l=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:e,refMap:r,values:a}},ro={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},so="maxCellsPerSheet",Dr=3e6;var Or=Object.defineProperty,Nr=Object.getOwnPropertyDescriptor,Ar=(n,e,o,t)=>{for(var r=t>1?void 0:t?Nr(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&&Or(e,o,r),r},tn=(n,e)=>(o,t)=>e(o,t,n);let Ze=class extends s.Disposable{constructor(n,e){super(),this._commandService=n,this._configService=e,[L,rt,Rt,st,mn,at,ct,kt,Qn,Mn,pn,Ae,Re,ut,dt,fn,In,Ne,fe,wn,Ce,Tt,We,it,Be,bt,Ve,mt,Me,lt,pe,Et,je,Tn,B,Hn,jn,Fn,En,Nn,Pe,Dn,On,Pn,Te,Ee,xt,cr,xn,he,Gn,Ie,$,eo,Bn,Oe,De,An,Ln,Dt,Nt,Y,Yn,xe,Wn,qn,zn,$n,At,He,ce,Jn,ve,Lt,tt,Xn,Le,Vt,ue,Wt,oe,to,gt,G,Ht,ro].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(so,Dr)}};Ze=Ar([s.OnLifecycle(s.LifecycleStages.Starting,Ze),tn(0,s.ICommandService),tn(1,s.IConfigService)],Ze);var Pr=Object.defineProperty,kr=Object.getOwnPropertyDescriptor,xr=(n,e,o,t)=>{for(var r=t>1?void 0:t?kr(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&&Pr(e,o,r),r},Lr=(n,e)=>(o,t)=>e(o,t,n);let Qe=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!==ft.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 l=u[d];if(l==null)return!0;const g={subUnitId:d,unitId:c,cellValue:l};a.push({id:$.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};Qe=xr([s.OnLifecycle(s.LifecycleStages.Ready,Qe),Lr(0,s.ICommandService)],Qe);var Br=Object.defineProperty,Vr=Object.getOwnPropertyDescriptor,Wr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Vr(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&&Br(e,o,r),r},Ye=(n,e)=>(o,t)=>e(o,t,n);let et=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})})}};et=Wr([s.OnLifecycle(s.LifecycleStages.Ready,et),Ye(0,s.ICommandService),Ye(1,ft.IFeatureCalculationManagerService),Ye(2,s.IUniverInstanceService),Ye(3,H.Inject(ft.FormulaDataModel))],et);const W={MoveRangeCommandId:gn,InsertRowCommandId:Cn,InsertColCommandId:Rn,RemoveColCommandId:bn,RemoveRowCommandId:_n,DeleteRangeMoveLeftCommandId:hn,DeleteRangeMoveUpCommandId:vn,InsertRangeMoveDownCommandId:Qo,InsertRangeMoveRightCommandId:Sn,MoveColsCommandId:Un,MoveRowsCommandId:yn};var F=(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))(F||{}),jr=Object.defineProperty,Fr=Object.getOwnPropertyDescriptor,Hr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Fr(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);const $r=s.createInterceptorKey("MERGE_REDO"),Gr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(o,t,r){super();x(this,"interceptor",new s.InterceptorManager({MERGE_REDO:$r,MERGE_UNDO:Gr}));x(this,"_refRangeManagerMap",new Map);x(this,"_serializer",zr());x(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const t=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=nn(this._univerInstanceService),a=on(this._univerInstanceService),u=((()=>{switch(o.id){case W.MoveColsCommandId:{const l=o.params,g=Math.min(l.fromRange.startColumn,l.toRange.startColumn);return this._checkRange([{...l.fromRange,startColumn:g,endColumn:t.getColumnCount()-1}],r,a)}case W.MoveRowsCommandId:{const l=o.params,g=Math.min(l.fromRange.startRow,l.toRange.startRow);return this._checkRange([{...l.fromRange,startRow:g,endRow:t.getRowCount()-1}],r,a)}case W.MoveRangeCommandId:{const l=o;return this._checkRange([l.params.fromRange,l.params.toRange],r,a)}case W.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 W.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 W.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 W.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 W.DeleteRangeMoveUpCommandId:case W.InsertRangeMoveDownCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([h],r,a)}case W.DeleteRangeMoveLeftCommandId:case W.InsertRangeMoveRightCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([h],r,a)}}})()||[]).reduce((l,g)=>{const h=g(o);return l.push(h),l},[]).reduce((l,g)=>(l.redos.push(...g.redos),l.undos.push(...g.undos),l),{redos:[],undos:[]}),m=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:m,undos:d}}})});x(this,"_checkRange",(o,t,r)=>{const a=sn(t,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(m=>{const d=i.get(m),l=this._serializer.deserialize(m);o.some(g=>s.Rectangle.intersects(g,l))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});x(this,"registerRefRange",(o,t,r,a)=>{const i=r||nn(this._univerInstanceService),c=a||on(this._univerInstanceService),u=sn(i,c),m=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const l=d.get(m);return l?l.add(t):d.set(m,new Set([t])),s.toDisposable(()=>{const g=d.get(m);g&&(g.delete(t),g.size||(d.delete(m),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=Hr([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),vt(0,H.Inject(exports.SheetInterceptorService)),vt(1,H.Inject(s.IUniverInstanceService)),vt(2,H.Inject(exports.SelectionManagerService))],exports.RefRangeService);function nn(n){return n.getCurrentUniverSheetInstance().getUnitId()}function on(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function rn(n){return n.getSelectionRanges()||[]}function sn(n,e){return`${n}_${e}`}function zr(){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}),$t=(n,e,o)=>{const t={...o},r={...e},a=(S,C)=>{const I=Math.max(S.start,C.start),f=Math.min(S.end,C.end);return f<I?null:{start:I,end:f}},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}),m=e.start>n.start;if(m){const S=Math.min(n.end,e.start)-n.start+1;r.start-=S,r.end-=S}const d=i(n),l=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||m?t.end-=S:(t.start-=d,t.end-=d+S)}const v=a(r,t);if(r.start<=t.start&&!h)t.start+=l,t.end+=l;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+=l,t.end+=l):S>=t.start&&S<=t.end&&(t.end+=l,t.start+=l)}return{step:t.start-o.start,length:i(t)-i(o)}},Gt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:F.Delete}]:[{type:F.VerticalMove,step:c.step||0,length:c.length||0}]},zt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:F.Delete}]:[{type:F.HorizontalMove,step:c.step||0,length:c.length||0}]},io=(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:F.Delete}),s.Rectangle.contains(t,e)){r.push({type:F.Delete});const c=s.Rectangle.getRelativeRange(e,t),u=s.Rectangle.getPositionRange(c,o);return[{type:F.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}},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:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.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:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.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}},uo=(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:F.VerticalMove,step:a,length:i}),t},lo=(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:F.HorizontalMove,step:a,length:i}),t},mo=(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:F.VerticalMove,step:a,length:i}),t},go=(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:F.HorizontalMove,step:a,length:i}),t},ho=(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:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.HorizontalMove,step:i,length:c})}return t},vo=(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:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.VerticalMove,step:i,length:c})}return t},ot=(n,e)=>{let o={...e};return n.forEach(t=>{switch(t.type){case F.Delete:{o=null;break}case F.HorizontalMove:{if(!o)return;o.startColumn+=t.step,o.endColumn+=t.step+(t.length||0);break}case F.VerticalMove:{if(!o)return;o.startRow+=t.step,o.endRow+=t.step+(t.length||0);break}case F.Set:{o=t.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},qr=(n,e)=>{let o=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:{o=ho(e,n);break}case W.DeleteRangeMoveUpCommandId:{o=vo(e,n);break}case W.InsertColCommandId:{o=lo(e,n);break}case W.InsertRangeMoveDownCommandId:{o=mo(e,n);break}case W.InsertRangeMoveRightCommandId:{o=go(e,n);break}case W.InsertRowCommandId:{o=uo(e,n);break}case W.MoveColsCommandId:{o=zt(e,n);break}case W.MoveRangeCommandId:{o=io(e,n);break}case W.MoveRowsCommandId:{o=Gt(e,n);break}case W.RemoveColCommandId:{o=ao(e,n);break}case W.RemoveRowCommandId:{o=co(e,n);break}}return ot(o,n)};var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Jr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Kr(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&&Yr(e,o,r),r},Ue=(n,e)=>(o,t)=>e(o,t,n);function So(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 m=a;m<=i;m++){const d={startRow:m,endRow:m,startColumn:c,endColumn:u};t.push(d)}else if(e===s.Dimension.COLUMNS)for(let m=c;m<=u;m++){const d={startRow:a,endRow:i,startColumn:m,endColumn:m};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 rt.id:case st.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(l=>s.Rectangle.intersects(l,d)))){const d={unitId:r,subUnitId:i,ranges:u},l=Q(e._injector,d),g=[{id:B.id,params:d}],h=[{id:L.id,params:l}];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 m=u.getMergeData(),d=l=>{switch(l.id){case it.id:{const g=l.params;return this._handleMoveRangeCommand(g,a,i)}case Ne.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertRowCommand(g,h,v)}case Ae.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertColCommand(g,h,v)}case mt.id:{const g=l.params;return this._handleRemoveColCommand(g,a,i)}case lt.id:{const g=l.params;return this._handleRemoveRowCommand(g,a,i)}case dt.id:{const g=l.params;return this._handleInsertRangeMoveRightCommand(g,a,i)}case ut.id:{const g=l.params;return this._handleInsertRangeMoveDownCommand(g,a,i)}case ct.id:{const g=l.params;return this._handleDeleteRangeMoveUpCommand(g,a,i)}case at.id:{const g=l.params;return this._handleDeleteRangeMoveLeftCommand(g,a,i)}case W.MoveColsCommandId:{const g=l.params;return this._handleMoveColsCommand(g,a,i)}case W.MoveRowsCommandId:{const g=l.params;return this._handleMoveRowsCommand(g,a,i)}}return{redos:[],undos:[]}};m.forEach(l=>{e.add(this._refRangeService.registerRefRange(l,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(l=>{const g=Gt({id:W.MoveRowsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=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:m}]}}_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(l=>{const g=zt({id:W.MoveColsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=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:m}]}}_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)),m=c.map(h=>s.Rectangle.getRelativeRange(h,e.fromRange)).map(h=>s.Rectangle.getPositionRange(h,e.toRange)),d=So(m).filter(h=>!i.some(v=>s.Rectangle.equals(h,v))),l=[{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:l,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,m=s.Tools.deepClone(a.getMergeData()),d=s.Tools.deepClone(a.getMergeData()).map(I=>{const f=u-c+1;return c>I.endRow?I:c<=I.startRow?s.Rectangle.moveVertical(I,f):(I.endRow+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{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,m=s.Tools.deepClone(i.getMergeData()),d=s.Tools.deepClone(i.getMergeData()).map(I=>{const f=u-c+1;return c>I.endColumn?I:c<=I.startColumn?s.Rectangle.moveHorizontal(I,f):(I.endColumn+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{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,f=I-C+1,{startColumn:M,endColumn:R}=i,U=R-M+1;if(R<S.startColumn)S.startColumn-=U,S.endColumn-=U;else{if(M>S.endColumn)continue;if(M<=S.startColumn&&R>=S.endColumn)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(i,S),_=w.endColumn-w.startColumn+1,y=w.endRow-w.startRow===0;_===f-1&&y?(c.splice(v,1),v--):S.endColumn-=w.endColumn-w.startColumn+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(a.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];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,f=I-C+1,{startRow:M,endRow:R}=r,U=R-M+1;if(R<C)S.startRow-=U,S.endRow-=U;else{if(M>I)continue;if(M<=C&&R>=I)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(r,S),_=w.endRow-w.startRow+1,y=w.endColumn-w.startColumn===0;_===f-1&&y?(c.splice(v,1),v--):S.endRow-=w.endRow-w.startRow+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(i.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];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(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=M-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn+w,endRow:S.endRow,endColumn:S.endColumn+w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{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(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:R,endRow:U}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:c,endColumn:R},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:c,endColumn:R},I))){const y=U-f+1;d.push({startRow:I.startRow+y,startColumn:I.startColumn,endRow:I.endRow+y,endColumn:I.endColumn})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{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(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:R,endRow:U}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:c,endColumn:R},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:c,endColumn:R},I))){const y=U-f+1,T=s.Rectangle.moveVertical(I,-y);d.push(T)}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{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(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=M-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn-w,endRow:S.endRow,endColumn:S.endColumn-w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleNull(){return{redos:[],undos:[]}}};exports.MergeCellController=Jr([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 Xr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},Co={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Zr=Object.defineProperty,Qr=Object.getOwnPropertyDescriptor,es=(n,e,o,t)=>{for(var r=t>1?void 0:t?Qr(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&&Zr(e,o,r),r},Je=(n,e)=>(o,t)=>e(o,t,n);const an="SHEET_NUMFMT_PLUGIN",ts=24*60*60*1e3;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,an,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,c)=>{const{model:u,refModel:m}=c;if(u){const d=Object.keys(u).reduce((l,g)=>(l.set(g,new s.ObjectMatrix(u[g])),l),new Map);this._numfmtModel.set(i,d)}m&&this._refAliasModel.set(i,new s.RefAlias(m,["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,an)})));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,m)=>{const d=t.get(m);return u[m]=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,m=u.get(t)||new s.ObjectMatrix;u.set(t,m),this._numfmtModel.set(o,u),c=m}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.getSizeOf()){const m=this._numfmtModel.get(o);m==null||m.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),m=c.getValue(r,a);if(m&&u){const d=u.getValue(m==null?void 0:m.i,["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,m)=>{const d=this.getValue(o,t,u,m,i);if(d&&d.pattern){const l=a.getValue(d.pattern,["pattern"]);l&&l.count--}this._setValue(o,t,u,m,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,["pattern"]);u||(u={count:0,i:this._getUniqueRefId(o),pattern:c.pattern,type:r[0].type},i.addValue(u)),c.ranges.forEach(m=>{s.Range.foreach(m,(d,l)=>{if(a){const g=this.getValue(o,t,d,l,a);if(g&&g.pattern){const h=i.getValue(g.pattern,["pattern"]);h&&h.count--}}this._setValue(o,t,d,l,{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)}serialTimeToTimestamp(o,t=!0){const r=new Date("1900-01-01").getTime();return(o-(t?25569:24107))*ts+r}};exports.NumfmtService=es([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 cn="univer.sheet.editable";class Se extends s.PermissionPoint{constructor(o,t){super();x(this,"id",cn);x(this,"value",!0);x(this,"unitID");this._unitId=o,this._subUnitId=t,this.unitID=o,this.id=`${cn}_${o}_${t}`}}var ns=Object.defineProperty,os=Object.getOwnPropertyDescriptor,rs=(n,e,o,t)=>{for(var r=t>1?void 0:t?os(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&&ns(e,o,r),r},St=(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(Mo.map(([u,m])=>{const d=u.value&&m.value,l=s.getTypeFromPermissionItemList([u,m]);return{value:d,status:l}}))}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=rs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),St(0,H.Inject(s.IPermissionService)),St(1,H.Inject(s.IUniverInstanceService)),St(2,H.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function ss(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 is=Object.defineProperty,as=Object.getOwnPropertyDescriptor,cs=(n,e,o,t)=>{for(var r=t>1?void 0:t?as(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&&is(e,o,r),r},Ct=(n,e)=>(o,t)=>e(o,t,n);const us="sheet";var It;exports.UniverSheetsPlugin=(It=class extends s.Plugin{constructor(e,o,t,r){super(us),this._config=e,this._commandService=o,this._localeService=t,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:Co})}_initializeDependencies(e){var t;const o=[[we],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[ye,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[Ze],[exports.MergeCellController]];(t=this._config)!=null&&t.notExecuteFormula||o.push([Qe],[et]),o.forEach(r=>{e.add(r)})}},x(It,"type",s.PluginType.Sheet),It);exports.UniverSheetsPlugin=cs([Ct(1,s.ICommandService),Ct(2,H.Inject(s.LocaleService)),Ct(3,H.Inject(H.Injector))],exports.UniverSheetsPlugin);const ds=[ue.id,oe.id,Vt.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],ls=[$.id,Be.id,B.id,L.id],ms=1.5,gs="rgba(255,255,255, 0.01)";function hs(n){const e=n.getCurrentTheme(),o=new s.ColorKit(e.primaryColor).setAlpha(.07).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 vs(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=Io(o)),r}function Io(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 Ss(n,e,o){const t=wo.getCellInfoInMergeData(n,e,o),r=s.makeCellRangeToRangeData(t);if(r)return{range:r,primary:t,style:null}}const Cs=(n,e,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=e;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:l,actualRow:g}=d;let{startRow:h,startColumn:v,endRow:S,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const R=o.find(U=>U.startColumn===l&&U.endColumn===l&&g===U.startRow);R&&(C=R.endColumn,h=R.startRow,S=R.endRow)}else if(a===s.Dimension.ROWS){const R=o.find(U=>U.startRow===g&&U.endRow===g&&l===U.startColumn);R&&(S=R.endRow,v=R.startColumn,C=R.endColumn)}const I={startRow:h,startColumn:v,endRow:S,endColumn:C,actualRow:g,actualColumn:l,isMerged:!0,isMergedMainCell:h===g&&v===l},f=r.map((R,U,w)=>({range:R.range,style:null,primary:U===w.length-1?I:null})),M={unitId:c,subUnitId:u,pluginName:z,selections:f};return{id:G.id,params:M}}return null}return null},Is=(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=e;if(t&&t[(t==null?void 0:t.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:z,selections:[...t]};return{id:G.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Cs;exports.AddMergeUndoMutationFactory=ie;exports.AddMergeUndoSelectionsOperationFactory=Is;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=we;exports.COMMAND_LISTENER_SKELETON_CHANGE=ds;exports.COMMAND_LISTENER_VALUE_CHANGE=ls;exports.ClearSelectionAllCommand=rt;exports.ClearSelectionContentCommand=Rt;exports.ClearSelectionFormatCommand=st;exports.CopySheetCommand=mn;exports.DeleteRangeMoveLeftCommand=at;exports.DeleteRangeMoveUpCommand=ct;exports.DeltaColumnWidthCommand=kt;exports.DeltaRowHeightCommand=Qn;exports.EffectRefRangId=W;exports.EmptyMutation=ro;exports.INTERCEPTOR_POINT=be;exports.INumfmtService=ye;exports.InsertColAfterCommand=Mn;exports.InsertColBeforeCommand=pn;exports.InsertColCommand=Ae;exports.InsertColMutation=Re;exports.InsertColMutationUndoFactory=_t;exports.InsertRangeMoveDownCommand=ut;exports.InsertRangeMoveRightCommand=dt;exports.InsertRowAfterCommand=fn;exports.InsertRowBeforeCommand=In;exports.InsertRowCommand=Ne;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=Ut;exports.InsertSheetCommand=wn;exports.InsertSheetMutation=Ce;exports.InsertSheetUndoMutationFactory=pt;exports.MAX_CELL_PER_SHEET_KEY=so;exports.MoveColsCommand=Tt;exports.MoveColsMutation=We;exports.MoveRangeCommand=it;exports.MoveRangeMutation=Be;exports.MoveRowsCommand=bt;exports.MoveRowsMutation=Ve;exports.NORMAL_SELECTION_PLUGIN_NAME=z;exports.OperatorType=F;exports.RangeMergeUtil=Ur;exports.RemoveColCommand=mt;exports.RemoveColMutation=Me;exports.RemoveMergeUndoMutationFactory=Q;exports.RemoveNumfmtMutation=Ht;exports.RemoveRowCommand=lt;exports.RemoveRowMutation=pe;exports.RemoveSheetCommand=Et;exports.RemoveSheetMutation=je;exports.RemoveSheetUndoMutationFactory=ln;exports.RemoveWorksheetMergeCommand=Tn;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=Hn;exports.ResetTextColorCommand=jn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=gs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=ms;exports.SelectionMoveType=un;exports.SetBackgroundColorCommand=Fn;exports.SetBoldCommand=mr;exports.SetBorderBasicCommand=En;exports.SetBorderColorCommand=Nn;exports.SetBorderCommand=Pe;exports.SetBorderPositionCommand=Dn;exports.SetBorderStyleCommand=On;exports.SetColHiddenCommand=Pn;exports.SetColHiddenMutation=Te;exports.SetColVisibleMutation=Ee;exports.SetColWidthCommand=xt;exports.SetFontFamilyCommand=Sr;exports.SetFontSizeCommand=Cr;exports.SetFrozenCommand=xn;exports.SetFrozenMutation=he;exports.SetFrozenMutationFactory=Ot;exports.SetHorizontalTextAlignCommand=Gn;exports.SetItalicCommand=gr;exports.SetNumfmtMutation=gt;exports.SetRangeValuesCommand=Ie;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=le;exports.SetRowHeightCommand=eo;exports.SetRowHiddenCommand=Bn;exports.SetRowHiddenMutation=Oe;exports.SetRowVisibleMutation=De;exports.SetSelectedColsVisibleCommand=An;exports.SetSelectedRowsVisibleCommand=Ln;exports.SetSelectionsOperation=G;exports.SetSpecificColsVisibleCommand=Dt;exports.SetSpecificRowsVisibleCommand=Nt;exports.SetStrikeThroughCommand=vr;exports.SetStyleCommand=Y;exports.SetTabColorCommand=Yn;exports.SetTabColorMutation=xe;exports.SetTextColorCommand=Wn;exports.SetTextRotationCommand=qn;exports.SetTextWrapCommand=zn;exports.SetUnderlineCommand=hr;exports.SetVerticalTextAlignCommand=$n;exports.SetWorksheetActivateCommand=At;exports.SetWorksheetActiveOperation=He;exports.SetWorksheetColWidthMutation=ce;exports.SetWorksheetColWidthMutationFactory=Pt;exports.SetWorksheetHideCommand=Jn;exports.SetWorksheetHideMutation=ve;exports.SetWorksheetNameCommand=Lt;exports.SetWorksheetNameMutation=tt;exports.SetWorksheetOrderCommand=Xn;exports.SetWorksheetOrderMutation=Le;exports.SetWorksheetRowAutoHeightMutation=Vt;exports.SetWorksheetRowAutoHeightMutationFactory=wr;exports.SetWorksheetRowHeightMutation=ue;exports.SetWorksheetRowIsAutoHeightCommand=Wt;exports.SetWorksheetRowIsAutoHeightMutation=oe;exports.SetWorksheetShowCommand=to;exports.SheetEditablePermission=Se;exports.alignToMergedCellsBorders=Fe;exports.convertPrimaryWithCoordToPrimary=Io;exports.convertSelectionDataToRange=vs;exports.createTopMatrixFromMatrix=oo;exports.createTopMatrixFromRanges=no;exports.enUS=Xr;exports.factoryRemoveNumfmtUndoMutation=Er;exports.factorySetNumfmtUndoMutation=Tr;exports.findAllRectangle=jt;exports.followSelectionOperation=me;exports.getAddMergeMutationRangeByType=So;exports.getCellAtRowCol=zo;exports.getCurrentSheetDisabled$=ss;exports.getInsertRangeMutations=wt;exports.getNormalSelectionStyle=hs;exports.getPrimaryForRange=X;exports.getRemoveRangeMutations=yt;exports.handleBaseInsertRange=Ge;exports.handleBaseMoveRowsCols=$t;exports.handleBaseRemoveRange=$e;exports.handleDefaultRangeChangeWithEffectRefCommands=qr;exports.handleDeleteRangeMoveLeft=ho;exports.handleDeleteRangeMoveUp=vo;exports.handleDeleteRangeMutation=Ko;exports.handleIRemoveCol=ao;exports.handleIRemoveRow=co;exports.handleInsertCol=lo;exports.handleInsertRangeMoveDown=mo;exports.handleInsertRangeMoveRight=go;exports.handleInsertRangeMutation=Yo;exports.handleInsertRow=uo;exports.handleMoveCols=zt;exports.handleMoveRange=io;exports.handleMoveRows=Gt;exports.rangeMerge=Ft;exports.rotateRange=de;exports.runRefRangeMutations=ot;exports.setEndForRange=qo;exports.transformCellDataToSelectionData=Ss;exports.transformCellsToRange=nt;exports.zhCN=Co;
|
|
1
|
+
"use strict";var Do=Object.defineProperty;var Eo=(o,t,n)=>t in o?Do(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n;var B=(o,t,n)=>(Eo(o,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),G=require("@wendellhu/redi"),Pe=require("rxjs"),oe=require("@univerjs/engine-formula"),No=require("rxjs/operators"),Oo=require("@univerjs/engine-render");var Ao=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,ko=(o,t,n,e)=>{for(var r=e>1?void 0:e?Po(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Ao(t,n,r),r},xo=(o,t)=>(n,e)=>t(n,e,o);const Y="normalSelectionPluginName";var Cn=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))(Cn||{});exports.SelectionManagerService=class{constructor(t){B(this,"_selectionInfo",new Map);B(this,"_currentSelection",null);B(this,"_selectionMoveStart$",new Pe.Subject);B(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());B(this,"_selectionMoving$",new Pe.Subject);B(this,"selectionMoving$",this._selectionMoving$.asObservable());B(this,"_selectionMoveEnd$",new Pe.BehaviorSubject(null));B(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());B(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,n;this._currentSelection!=null&&(this._currentSelection={pluginName:Y,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=Y,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(n=>n.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,n=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),n===0?this._refreshStart(this._currentSelection):n===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:n},e)=>t.some(({range:r},a)=>e===a?!1:n.startRow<=r.endRow&&n.endRow>=r.startRow&&n.startColumn<=r.endColumn&&n.endColumn>=r.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:n,unitId:e,sheetId:r}=t;return(i=(a=this._selectionInfo.get(n))==null?void 0:a.get(e))==null?void 0:i.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const n=this._getSelectionDatas(t);return n==null?void 0:n[0]}_getLastByParam(t){const n=this._getSelectionDatas(t);return n==null?void 0:n[n.length-1]}_addByParam(t,n=!0){const{pluginName:e,unitId:r,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const c=this._selectionInfo.get(e);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let l=u.get(a);l==null&&(l=[],u.set(a,l)),l.push(...i)}n&&this._refresh({pluginName:e,unitId:r,sheetId:a})}_replaceByParam(t){const{pluginName:n,unitId:e,sheetId:r,selectionDatas:a}=t;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const i=this._selectionInfo.get(n);i.has(e)||i.set(e,new Map);const c=i.get(e);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(t){const n=this._getSelectionDatas(t);n==null||n.splice(0),this._refresh(t)}_removeByParam(t,n){const e=this._getSelectionDatas(n);e==null||e.splice(t,1),this._refresh(n)}};exports.SelectionManagerService=ko([xo(0,G.Inject(s.ThemeService))],exports.SelectionManagerService);const Bo=s.createInterceptorKey("CELL_CONTENT"),Vo=s.createInterceptorKey("PERMISSION"),ke={CELL_CONTENT:Bo,PERMISSION:Vo};var Lo=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,Wo=(o,t,n,e)=>{for(var r=e>1?void 0:e?jo(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Lo(t,n,r),r},Fo=(o,t)=>(n,e)=>t(n,e,o);exports.SheetInterceptorService=class extends s.Disposable{constructor(n){super();B(this,"_interceptorsByName",new Map);B(this,"_commandInterceptors",[]);B(this,"_workbookDisposables",new Map);B(this,"_worksheetDisposables",new Map);this._currentUniverService=n,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(e=>{this._interceptWorkbook(e)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(e=>this._disposeWorkbookInterceptor(e)))),this.intercept(ke.CELL_CONTENT,{priority:-1,handler(e,r){const a=r.worksheet.getCellRaw(r.row,r.col);return e?{...a,...e}:a}}),this.intercept(ke.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(n=>n.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(n){if(this._commandInterceptors.includes(n))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(n),this._commandInterceptors.sort((e,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,n)))}onCommandExecute(n){const e=this._commandInterceptors.map(r=>r.getMutations(n));return{preUndos:e.map(r=>{var a;return(a=r.preUndos)!=null?a:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var a;return(a=r.preRedos)!=null?a:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(n,e){const r=n;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(e),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=i.priority)!=null?l:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),e)))}fetchThroughInterceptors(n){const e=n,r=this._interceptorsByName.get(e);return s.composeInterceptors(r||[])}_interceptWorkbook(n){const e=new s.DisposableCollection,r=n.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,v){return a.fetchThroughInterceptors(ke.CELL_CONTENT)(c.getCellRaw(g,v),{unitId:r,subUnitId:u,row:g,col:v,worksheet:c,workbook:n})}});d.add(m),a._worksheetDisposables.set(sn(r,c),d)})};n.getSheets().forEach(c=>i(c)),e.add(s.toDisposable(n.sheetCreated$.subscribe(c=>i(c)))),e.add(s.toDisposable(n.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),e.add(s.toDisposable(()=>n.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(n){const e=n.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(n,e){const r=sn(n,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Wo([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Fo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function sn(o,t){return`${o}|${t.getSheetId()}`}const Ie=(o,t)=>{const{unitId:n,subUnitId:e,cellValue:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,v,h)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,v))||{},C=l.getStyleByCell(S),I=Go(C,h&&h.s?h.s:null);S.s=I,d.setValue(g,v,Ho(S))}),{...t,options:{},cellValue:d.getMatrix()}};function Ho(o){return o==null?null:(o.f===void 0&&(o.f=null),o.si===void 0&&(o.si=null),o.p===void 0&&(o.p=null),o.v===void 0&&(o.v=null),o.t===void 0&&(o.t=null),o.s===void 0&&(o.s=null),o)}const $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(o,t)=>{const{cellValue:n,subUnitId:e,unitId:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(e);if(!c)return!1;const u=c.getCellMatrix(),l=i.getStyles();return new s.ObjectMatrix(n).forValue((m,g,v)=>{if(!v)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},S=v.t===s.CellValueType.FORCE_STRING?v.t:v.v!==void 0?an(v.v,v.t):an(h.v,h.t);if(v.f!==void 0&&(h.f=v.f),v.si!==void 0&&(h.si=v.si),v.p!==void 0&&(h.p=v.p),v.v!==void 0&&(h.v=S===s.CellValueType.NUMBER?Number(v.v):S===s.CellValueType.BOOLEAN?$o(v.v)?1:0:v.v),h.v!==void 0&&(h.t=S),v.s!==void 0){const C=l.getStyleByCell(h);C==null&&delete h.s,typeof v.s=="string"&&(v.s=l.get(v.s));const I=rt(C,v.s?v.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete h.s:h.s=l.setValue(I),!v.p&&h.p&&Yo(h.p,v.s?v.s:null)}u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function an(o,t){return o===null?null:typeof o=="string"?In(o)?(+o==0||+o==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:Jo(o)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof o=="number"?(o===0||o===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof o=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function $o(o){if(typeof o=="string"){if(o.toUpperCase()==="TRUE")return!0;if(o.toUpperCase()==="FALSE")return!1;if(In(o)){if(Number(o)===0)return!1;if(Number(o)===1)return!0}}if(typeof o=="number"){if(o===0)return!1;if(o===1)return!0}return typeof o=="boolean"?o:null}function Go(o,t){return zo(o,t)}function zo(o,t){if(!t||!Object.keys(t).length)return o;const n=o||{};for(const e in t)e==="bd"?n[e]=qo(n[e]||{},t[e]):e in n||(n[e]=null);return n}function qo(o,t){if(!t||!Object.keys(t).length)return o;for(const n in t)n in o||(o[n]=null);return o}function rt(o,t,n=!1){if(t===null)return t;if(t===void 0)return o;const e=s.Tools.deepClone(o)||{};if(e){for(const r in t)n&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in e&&r==="bd"?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function fn(o,t){return o.some(n=>n.startIndex===t)?fn(o,t+1):t}function Yo(o,t){var i;if(o.body==null)return;Array.isArray(o.body.textRuns)||(o.body.textRuns=[]);let n=0;const e=[],r=((i=o.body)==null?void 0:i.paragraphs)||[];for(const c of o.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(n<u){const g={st:n,ed:u},v=rt({},t,!0);v&&s.Tools.removeNull(v),s.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=rt(d,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,e.push(c),n=fn(r,l)}const a=o.body.dataStream.endsWith(`\r
|
|
2
|
+
`)?o.body.dataStream.length-2:o.body.dataStream.length;if(n<a){const c={st:n,ed:a},u=rt({},t,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),e.push(c)}o.body.textRuns=s.normalizeTextRuns(e)}function Ko(o){return/^-?\d+(\.\d+)?$/.test(o)}function In(o){return Ko(o)?Number(o)<=Number.MAX_SAFE_INTEGER:!1}function Jo(o){return o.toUpperCase()==="TRUE"||o.toUpperCase()==="FALSE"}const lt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async o=>{const t=o.get(s.IUniverInstanceService),n=o.get(s.ICommandService),e=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),a=o.get(exports.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Xo(d)},h=Ie(o,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:lt.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Xo(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const Ut={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async o=>{const t=o.get(s.IUniverInstanceService),n=o.get(s.ICommandService),e=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),a=o.get(exports.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:Zo(d)},g=Ie(o,m),v=a.onCommandExecute({id:Ut.id}),h=[{id:$.id,params:m},...v.redos],S=[...v.undos,{id:$.id,params:g}];return s.sequenceExecute(h,n).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:h}),!0):!1}};function Zo(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{v:null,p:null,f:null,si:null})}),t.getData()}const mt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async o=>{const t=o.get(s.IUniverInstanceService),n=o.get(s.ICommandService),e=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),a=o.get(exports.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Qo(d)},h=Ie(o,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:mt.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{s:null})}),t.getData()}const _t=(o,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),ye={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=n.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}},Rn=(o,t)=>{const e=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:a}=t,i=e.getSheetBySheetId(r).getConfig();return{index:e.getConfig().sheetOrder.findIndex(l=>l===r),sheet:i,unitId:a}},We={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=n.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},pn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(o,t)=>{var S,C;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(S=t.unitId)!=null?S:i,c=(C=t.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},v=_t(o,g);return n.syncExecuteCommand(ye.id,g)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:v}],redoMutations:[{id:ye.id,params:g}]}),!0):!1}},xe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(o,t)=>{const{from:n,to:e}=t;if(!n||!e)return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),c=a.getSheetBySheetId(t.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(n.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(e.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},H={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(exports.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return n.replace(e,r),!0}};function Ke(o,t,n=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(o)),r=[];if(e.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(o,l)||r.push(l)}}),r.length===0)return o;const a=s.Rectangle.union(o,...r);return n?Ke(a,t,n):a}function er(o,t,n){let e=null;return n.getMatrixWithMergedCells(o,t,o,t).forValue((a,i,c)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:o,startRow:o,startColumn:t,endRow:o,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function tr(o,t,n){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;return Number.isNaN(e)&&(o.startRow=0),Number.isNaN(a)&&(o.endRow=t),Number.isNaN(r)&&(o.startColumn=0),Number.isNaN(i)&&(o.endColumn=n),o}function Q(o,t){const n=Number.isNaN(o.startRow)?0:o.startRow,e=Number.isNaN(o.startColumn)?0:o.startColumn,r=t.getMergedCell(n,e);return r?{...r,actualRow:n,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:e,endRow:o.startRow,endColumn:o.startColumn,actualRow:n,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Re=(o,t,n)=>({id:H.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),pluginName:Y,selections:[{range:o,primary:Q(o,n)}]}}),Mn="sheet.command.move-range",gt={type:s.CommandType.COMMAND,id:Mn,handler:(o,t)=>{var C,I;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ErrorService),i=r.getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId(),d=bt(o,{unitId:u,subUnitId:l,range:t.fromRange},{unitId:u,subUnitId:l,range:t.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=o.get(exports.SheetInterceptorService).onCommandExecute({id:gt.id,params:{...t}}),v=[...(C=g.preRedos)!=null?C:[],...d.redos,...g.redos,{id:H.id,params:{unitId:u,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:Q(t.toRange,c)}]}}],h=[...(I=g.preUndos)!=null?I:[],...d.undos,...g.undos,{id:H.id,params:{unitId:u,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:Q(t.fromRange,c)}]}}];return s.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:u,undoMutations:h,redoMutations:v}),!0):!1}};function bt(o,t,n,e=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=t,{range:l,subUnitId:d}=n,g=o.get(s.IUniverInstanceService).getUniverSheetInstance(u),v=g==null?void 0:g.getSheetBySheetId(d),h=g==null?void 0:g.getSheetBySheetId(c),S=v==null?void 0:v.getCellMatrix(),C=h==null?void 0:h.getCellMatrix();if(v&&h&&S&&C){const I=Ke(l,v,!1);if(!s.Rectangle.equals(l,I)&&!e)return null;const p=new s.ObjectMatrix,f=new s.ObjectMatrix;s.Range.foreach(i,(y,b)=>{p.setValue(y,b,C.getValue(y,b)),f.setValue(y,b,null)});const R=new s.ObjectMatrix;s.Range.foreach(l,(y,b)=>{R.setValue(y,b,S.getValue(y,b))});const M=new s.ObjectMatrix;s.Range.foreach(i,(y,b)=>{const E=s.cellToRange(y,b),V=s.Rectangle.getRelativeRange(E,i),w=s.Rectangle.getPositionRange(V,l);M.setValue(w.startRow,w.startColumn,C.getValue(y,b))});const _={from:{value:f.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u},U={from:{value:p.getMatrix(),subUnitId:c},to:{value:R.getMatrix(),subUnitId:d},unitId:u};r.push({id:xe.id,params:_}),a.push({id:xe.id,params:U})}return{redos:r,undos:a}}const Ue={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(exports.SheetInterceptorService),{value:c,range:u,unitId:l=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=t,m=u?[u]:a.getSelectionRanges();if(!m||!m.length)return!1;const g=new s.ObjectMatrix;let v;if(s.Tools.isArray(c))for(let R=0;R<m.length;R++){const{startRow:M,startColumn:_,endRow:U,endColumn:y}=m[R];for(let b=0;b<=U-M;b++)for(let E=0;E<=y-_;E++)g.setValue(b+M,E+_,c[b][E])}else if(s.isICellData(c))for(let R=0;R<m.length;R++){const{startRow:M,startColumn:_,endRow:U,endColumn:y}=m[R];for(let b=M;b<=U;b++)for(let E=_;E<=y;E++)g.setValue(b,E,c)}else v=c;const h={subUnitId:d,unitId:l,cellValue:v!=null?v:g.getMatrix()},S=Ie(o,h);if(!i.fetchThroughInterceptors(ke.PERMISSION)(null,{id:Ue.id,params:h}))return!1;const C=n.syncExecuteCommand($.id,h),{undos:I,redos:p}=i.onCommandExecute({id:Ue.id,params:{...h,range:m}}),f=s.sequenceExecute([...p],n);return C&&f.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:h},...p]}),!0):!1}};function Tt(o,t){const n=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=t,l=o.get(s.IUniverInstanceService),d=o.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(i.startColumn<=h.endColumn||i.startRow<=h.endRow){let f,R;if(c===s.Dimension.COLUMNS){const _=Math.min(i.endRow,h.endRow);let U=0;for(let b=i.startRow;b<=_;b++){const E=v.getRow(b),V=E?s.getArrayLength(E)-1:0;U=Math.max(U,V)}f={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:U};const y=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:f.startColumn+y,endRow:_,endColumn:f.endColumn+y}}else{const _=Math.min(i.endColumn,h.endColumn),U=h.endRow;f={startRow:i.startRow,startColumn:i.startColumn,endRow:U,endColumn:_};const y=i.endRow-i.startRow+1;R={startRow:f.startRow+y,startColumn:i.startColumn,endRow:f.endRow+y,endColumn:_}}const M=bt(o,{unitId:r,subUnitId:a,range:f},{unitId:r,subUnitId:a,range:R},!0);M&&(n.push(...M.redos),e.push(...M.undos))}if(Object.entries(u).length===0)for(let f=i.startRow;f<=i.endRow;f++){u[f]||(u[f]={});for(let R=i.startColumn;R<=i.endColumn;R++)u[f][R]=null}const S={subUnitId:a,unitId:r,cellValue:u},C=Ie(o,S),{undos:I,redos:p}=d.onCommandExecute({id:Ue.id,params:{...S,range:i}});n.push({id:$.id,params:S},...p),e.push({id:$.id,params:C},...I)}return{redo:n,undo:e}}function Dt(o,t){const n=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=t,u=o.get(s.IUniverInstanceService),l=o.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:r,cellValue:rr([i])},S=Ie(o,h),C=l.onCommandExecute({id:Ue.id,params:h});if(n.push({id:$.id,params:h},...C.redos),e.push(...C.undos,{id:$.id,params:S}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let I=null,p=null;if(c===s.Dimension.COLUMNS&&i.endColumn<v.endColumn){const f=Math.min(i.endRow,v.endRow);let R=0;for(let _=i.startRow;_<=f;_++){const U=g.getRow(_),y=U?s.getArrayLength(U)-1:0;R=Math.max(R,y)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:f,endColumn:R};const M=i.endColumn-i.startColumn+1;p={startRow:i.startRow,startColumn:I.startColumn-M,endRow:f,endColumn:I.endColumn-M}}if(c===s.Dimension.ROWS&&i.endRow<v.endRow){const f=Math.min(i.endColumn,v.endColumn),R=v.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:R,endColumn:f};const M=i.endRow-i.startRow+1;p={startRow:I.startRow-M,startColumn:i.startColumn,endRow:I.endRow-M,endColumn:f}}if(I&&p){const f=bt(o,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:p},!0);f&&(n.push(...f.redos),e.push(...f.undos))}}}return{redo:n,undo:e}}function nr(o,t,n,e,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=t;if(r===s.Dimension.ROWS){const d=c-i+1;for(let m=n;m>=i;m--)for(let g=u;g<=l;g++){const v=o.getValue(m,g);v==null?o.realDeleteValue(m+d,g):o.setValue(m+d,g,v)}for(let m=c;m>=i;m--)for(let g=u;g<=l;g++)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=i;m<=c;m++)for(let g=e;g>=u;g--){const v=o.getValue(m,g);v==null?o.realDeleteValue(m,g+d):o.setValue(m,g+d,v)}for(let m=i;m<=c;m++)for(let g=l;g>=u;g--)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}}function or(o,t,n,e,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=t,l=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=a;m<=n;m++)for(let g=c;g<=u;g++){const v=o.getValue(m+l,g);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=c;g<=e;g++){const v=o.getValue(m,g+d);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}}function rr(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const wn="sheet.command.delete-range-move-left",ht={type:s.CommandType.COMMAND,id:wn,handler:async(o,t)=>{var f,R,M;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(f=a.getLast())==null?void 0:f.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},v=i.onCommandExecute({id:ht.id,params:{range:l}}),{redo:h,undo:S}=Dt(o,g),C=[...(R=v.preRedos)!=null?R:[],...h],I=[...v.undos,...S];return C.push(...v.redos),C.push(Re(l,d,m)),I.push(...(M=v.preUndos)!=null?M:[]),s.sequenceExecute(C,n).result?(e.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},yn="sheet.command.delete-range-move-up",vt={type:s.CommandType.COMMAND,id:yn,handler:async(o,t)=>{var f,R,M;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(f=a.getLast())==null?void 0:f.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},v=i.onCommandExecute({id:vt.id,params:{range:l}}),{redo:h,undo:S}=Dt(o,g),C=[...(R=v.preRedos)!=null?R:[],...h],I=[...v.undos,...S];return C.push(...v.redos),C.push(Re(l,d,m)),I.push(...(M=v.preUndos)!=null?M:[]),await s.sequenceExecute(C,n).result?(e.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},Et=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},ve={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(o,t)=>{var h;const{unitId:n,subUnitId:e,range:r,rowInfo:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let S=m;S<m+g;S++)a?s.insertMatrixArray(S,(h=a[S-r.startRow])!=null?h:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},Nt=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Se={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(o,t)=>{var h;const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:c}=t,l=a.getColumnData(),d=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const C={w:g,hd:0};c?s.insertMatrixArray(S,(h=c[S-i.startColumn])!=null?h:C,l):s.insertMatrixArray(S,C,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},sr=(o,t)=>{const r=t.getRowManager().getRowData(),a={},i=o.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:o.unitId,subUnitId:o.subUnitId,range:o.range,rowInfo:u}},Ce={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getRowManager().getRowData(),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}},ir=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},l=t.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},fe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},ar="sheet.command.insert-range-move-down",St={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(o,t)=>{var E,V,w;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ILogService),i=o.get(exports.SelectionManagerService),c=o.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=t==null?void 0:t.range;if(d||(d=(E=i.getLast())==null?void 0:E.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],S=g.getCellMatrix(),C=S.getDataRange(),p=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,f=Math.max(p+(d.endRow-d.startRow+1)-C.endRow,0);if(f>0){const q=d.startRow-1,X=g.getRowHeight(q),z={unitId:u,subUnitId:l,range:{startRow:C.endRow+1,endRow:C.endRow+f,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(f).fill(void 0).map(()=>({h:X,hd:s.BooleanNumber.FALSE}))};v.push({id:ve.id,params:z});const re=Et(o,z);h.push({id:Ce.id,params:re})}const R={};s.Range.foreach(d,(q,X)=>{const z=g.getCell(q,X);z&&(R[q]||(R[q]={}),R[q][X]={s:z.s})});const M={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:R},{redo:_,undo:U}=Tt(o,M);v.push(..._),h.push(...U);const y=c.onCommandExecute({id:St.id,params:{range:d}});return v.push(...y.redos),v.push(Re(d,m,g)),h.push(...(V=y.preUndos)!=null?V:[]),v.unshift(...(w=y.preRedos)!=null?w:[]),h.unshift(...y.undos),s.sequenceExecute(v,n)?(e.pushUndoRedo({unitID:u,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},Un="sheet.command.insert-range-move-right",Ct={type:s.CommandType.COMMAND,id:Un,handler:async(o,t)=>{var E,V,w;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ILogService),i=o.get(exports.SelectionManagerService),c=o.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=t==null?void 0:t.range;if(d||(d=(E=i.getLast())==null?void 0:E.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],S=g.getCellMatrix(),C=S.getDataRange(),p=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,f=Math.max(p+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(f>0){const q=d.startColumn-1,X=g.getColumnWidth(q),z={unitId:u,subUnitId:l,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+f},colInfo:new Array(f).fill(void 0).map(()=>({w:X,hd:s.BooleanNumber.FALSE}))};v.push({id:Se.id,params:z});const re=Nt(o,z);h.push({id:fe.id,params:re})}const R={};s.Range.foreach(d,(q,X)=>{const z=g.getCell(q,X);!z||!z.s||(R[q]||(R[q]={}),R[q][X]={s:z.s})});const M={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:R},{redo:_,undo:U}=Tt(o,M);v.push(..._),h.push(...U);const y=c.onCommandExecute({id:Ct.id,params:{range:d}});return v.push(...y.redos),v.push(Re(d,m,g)),h.push(...(V=y.preUndos)!=null?V:[]),v.unshift(...(w=y.preRedos)!=null?w:[]),h.unshift(...y.undos),s.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:u,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},_n="sheet.command.insert-row",Fe={type:s.CommandType.COMMAND,id:_n,handler:async(o,t)=>{var R,M;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),c=i.getSheetBySheetId(t.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m}=t,{startRow:g,endRow:v}=u,h=l===s.Direction.UP?g:g-1,S=c.getRowHeight(h),C={unitId:d,subUnitId:m,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=Et(o,C),p=a.onCommandExecute({id:Fe.id,params:t});return s.sequenceExecute([{id:ve.id,params:C},...p.redos,Re(u,i,c)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(R=p.preUndos)!=null?R:[],{id:Ce.id,params:I},...p.undos],redoMutations:[...(M=p.preRedos)!=null?M:[],{id:ve.id,params:C},...p.redos]}),!0):!1}},bn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var g;const n=(g=o.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={};s.Range.foreach(e,(v,h)=>{const S=i.getCell(v,h);!S||!S.s||(d[v]||(d[v]={}),d[v][h]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return o.get(s.ICommandService).executeCommand(Fe.id,m)}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async o=>{var m;const n=(m=o.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return o.get(s.ICommandService).executeCommand(Fe.id,d)}},Dn="sheet.command.insert-col",He={type:s.CommandType.COMMAND,id:Dn,handler:async(o,t)=>{var M,_,U;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l,cellValue:d}=t,{startColumn:m,endColumn:g}=t.range,v=r.getUniverSheetInstance(t.unitId),h=v.getSheetBySheetId(t.subUnitId),S=c===s.Direction.LEFT?m:m-1,C=h.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}))},p=Nt(o,I);t.unitId,t.subUnitId,t.range,s.Dimension.COLUMNS;const f=a.onCommandExecute({id:He.id,params:t});return s.sequenceExecute([...(M=f.preRedos)!=null?M:[],{id:Se.id,params:I},...f.redos,Re(i,v,h)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(_=f.preUndos)!=null?_:[],{id:fe.id,params:p},...f.undos].filter(Boolean),redoMutations:[...(U=f.preRedos)!=null?U:[],{id:Se.id,params:I},...f.redos].filter(Boolean)}),!0):!1}},En={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async o=>{const n=o.get(exports.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={};s.Range.foreach(e,(g,v)=>{const h=i.getCell(g,v);!h||!h.s||(d[g]||(d[g]={}),d[g][v]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return o.get(s.ICommandService).executeCommand(He.id,m)}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async o=>{const n=o.get(exports.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return o.get(s.ICommandService).executeCommand(He.id,d)}},On={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(o,t)=>{var v,h;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.LocaleService),i=(v=t==null?void 0:t.unitId)!=null?v:r.getCurrentUniverSheetInstance().getUnitId(),c=r.getUniverSheetInstance(i);if(!c)return!1;let u=c.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});t?(u=(h=t.index)!=null?h:u,t.sheet?l=t.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=_t(o,d);return n.syncExecuteCommand(ye.id,d)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:m}],redoMutations:[{id:ye.id,params:d}]}),!0):!1}};function cr(o,t){const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:n,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:n,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function ur(o,t){const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:n,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:n,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function dr(o,t){return t.getMergeData().some(n=>n.startRow<o&&o<=n.endRow)}function lr(o,t){return t.getMergeData().some(n=>n.startColumn<o&&o<=n.endColumn)}const An="sheet.command.move-rows",Ot={id:An,type:s.CommandType.COMMAND,handler:async(o,t)=>{var z,re;const e=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(se=>se.range.rangeType===s.RANGE_TYPE.ROW&&se.range.startRow<=r&&r<=se.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=o.get(s.ErrorService),h=i[0].range,S=i[0].primary,C=Ke(h,d,!1);if(!s.Rectangle.equals(h,C))return v.emit("Only part of a merged cell is selected."),!1;if(dr(a,d))return v.emit("Across a merged cell."),!1;const I={...h,startRow:a,endRow:a+h.endRow-h.startRow},p={unitId:m,subUnitId:g,sourceRange:h,targetRange:I},f=cr(o,p),M=a-r<0,_=h.endRow-h.startRow+1,U=M?I:{...I,startRow:I.startRow-_,endRow:I.endRow-_},y={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:Q(U,d),style:null}]},b={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:S,style:null}]},E=o.get(s.ICommandService),V=c.onCommandExecute({id:Ot.id,params:t}),w=[...(z=V.preRedos)!=null?z:[],{id:_e.id,params:p},{id:H.id,params:y},...V.redos],q=[...(re=V.preUndos)!=null?re:[],{id:_e.id,params:f},{id:H.id,params:b},...V.undos];return s.sequenceExecute(w,E).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:q,redoMutations:w}),!0):!1}},Pn="sheet.command.move-cols",At={id:Pn,type:s.CommandType.COMMAND,handler:async(o,t)=>{var z,re;const e=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(se=>se.range.rangeType===s.RANGE_TYPE.COLUMN&&se.range.startColumn<=r&&r<=se.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=o.get(s.ErrorService),h=i[0].range,S=i[0].primary,C=Ke(h,d,!1);if(!s.Rectangle.equals(h,C))return v.emit("Only part of a merged cell is selected."),!1;if(lr(a,d))return v.emit("Across a merged cell."),!1;const I={...h,startColumn:a,endColumn:a+h.endColumn-h.startColumn},p={unitId:m,subUnitId:g,sourceRange:h,targetRange:I},f=ur(o,p),R=h.endColumn-h.startColumn+1,U=a-r<0?I:{...I,startColumn:I.startColumn-R,endColumn:I.endColumn-R},y={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:Q(U,d),style:null}]},b={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:S,style:null}]},E=o.get(s.ICommandService),V=c.onCommandExecute({id:At.id,params:t}),w=[...(z=V.preRedos)!=null?z:[],{id:be.id,params:p},{id:H.id,params:y},...V.redos],q=[...(re=V.preUndos)!=null?re:[],{id:be.id,params:f},{id:H.id,params:b},...V.undos];return s.sequenceExecute(w,E).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:q,redoMutations:w}),!0}},kn="sheet.command.remove-row",ft={type:s.CommandType.COMMAND,id:kn,handler:async(o,t)=>{var I,p,f,R;const n=o.get(exports.SelectionManagerService),e=o.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(I=n.getLast())==null?void 0:I.range),!r)return!1;const i=o.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=c.getCellMatrix().getSlice(r.startRow,r.endRow,0,c.getColumnCount()-1),g={unitId:u,subUnitId:l,cellValue:m.getMatrix()},v=sr(d,c),h=e.onCommandExecute({id:ft.id,params:{range:r}}),S=o.get(s.ICommandService);return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:Ce.id,params:d},...h.redos,Re(r,i,c)],S).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...(f=h.preUndos)!=null?f:[],{id:ve.id,params:v},{id:$.id,params:g},...h.undos],redoMutations:[...(R=h.preRedos)!=null?R:[],{id:Ce.id,params:d},...h.redos]}),!0):!1}},xn="sheet.command.remove-col",It={type:s.CommandType.COMMAND,id:xn,handler:async(o,t)=>{var I,p,f,R;const n=o.get(exports.SelectionManagerService),e=o.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(I=n.getLast())==null?void 0:I.range),!r)return!1;const i=o.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=ir(o,d),g=c.getCellMatrix().getSlice(0,c.getRowCount()-1,r.startColumn,r.endColumn),v={unitId:u,subUnitId:l,cellValue:g.getMatrix()},h=e.onCommandExecute({id:It.id,params:{range:r}}),S=o.get(s.ICommandService);return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:fe.id,params:d},...h.redos,Re(r,i,c)],S).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...(f=h.preUndos)!=null?f:[],{id:Se.id,params:m},{id:$.id,params:v},...h.undos],redoMutations:[...(R=h.preRedos)!=null?R:[],{id:fe.id,params:d},...h.redos]}),!0):!1}},Pt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(o,t)=>{var I,p,f,R;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(I=t.unitId)!=null?I:i,c=(p=t.subUnitId)!=null?p: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=Rn(o,m),v=a.onCommandExecute({id:Pt.id,params:{unitId:i,subUnitId:c}}),h=[...(f=v.preRedos)!=null?f:[],{id:We.id,params:m},...v.redos],S=[...(R=v.preUndos)!=null?R:[],{id:ye.id,params:g},...v.undos];return s.sequenceExecute(h,n)?(e.pushUndoRedo({unitID:i,undoMutations:S,redoMutations:h}),!0):!1}},le=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},te=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=t.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=i.length-1;d>=0;d--){const m=i[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(i[d])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:u}},j={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)for(let l=i.length-1;l>=0;l--){const d=i[l],m=c[u];s.Rectangle.intersects(d,m)&&i.splice(l,1)}return!0}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async o=>{const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=t.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(M=>{g.forEach(_=>{s.Rectangle.intersects(M,_)&&(m=!0)})}),!m)return!1;const v=te(o,d),h=t.getSelections();if(!(h!=null&&h.length))return!1;const S=s.Tools.deepClone(h),C=s.Tools.deepClone(h),I=C[C.length-1],{startRow:p,startColumn:f}=I.range;return I.primary={startRow:p,startColumn:f,endRow:p,endColumn:f,actualRow:p,actualColumn:f,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:j.id,params:v},{id:H.id,params:{selections:C}}],n)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:v},{id:H.id,params:{selections:S}}],redoMutations:[{id:j.id,params:v},{id:H.id,params:{selections:C}}]}),!0):!1}};class Ne{constructor(){B(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});B(this,"_borderInfo$",new Pe.BehaviorSubject(this._borderInfo));B(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mr(o,t,n){const e=t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance();if(!e)throw new Error;const r=n?e.getSheetBySheetId(n):e.getActiveSheet();if(!r)throw new Error;return{workbook:e,worksheet:r,unitId:t!=null?t:e.getUnitId(),subUnitId:n!=null?n:r.getSheetId()}}function Ze(o,t){const{startRow:n,startColumn:e,endRow:r,endColumn:a}=o;for(let i=n;i<=r;i++)for(let c=e;c<=a;c++)t(i,c)}const Vn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(o,t)=>{const{unitId:n,subUnitId:e,value:r}=t,{type:a,color:i,style:c}=r,u=o.get(s.ICommandService),l=o.get(Ne);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand($e.id,{unitId:n,subUnitId:e})}},Ln={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(o,t)=>{if(!t.value)return!1;const n=o.get(s.ICommandService);return o.get(Ne).setType(t.value),n.executeCommand($e.id)}},jn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(s.ICommandService);return o.get(Ne).setStyle(t.value),n.executeCommand($e.id)}},Wn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(s.ICommandService);return o.get(Ne).setColor(t.value),n.executeCommand($e.id)}},$e={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(Ne),{worksheet:c,unitId:u,subUnitId:l}=mr(r,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),d=a.getSelectionRanges(),m=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:v,type:h,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const C=h===s.BorderType.TOP||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,I=h===s.BorderType.LEFT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,p=h===s.BorderType.BOTTOM||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,f=h===s.BorderType.RIGHT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,R=h===s.BorderType.VERTICAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,M=h===s.BorderType.HORIZONTAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,_=h.indexOf("tlbr")>-1,U=h.indexOf("tlbc")>-1,y=h.indexOf("tlmr")>-1,b=h.indexOf("bltr")>-1,E=h.indexOf("mltr")>-1,V=h.indexOf("bctr")>-1,w=d[0],q={startRow:w.startRow-1,startColumn:w.startColumn,endRow:w.startRow-1,endColumn:w.endColumn},X={startRow:w.startRow,startColumn:w.startColumn-1,endRow:w.endRow,endColumn:w.startColumn-1},z={startRow:w.endRow+1,startColumn:w.startColumn,endRow:w.endRow+1,endColumn:w.endColumn},re={startRow:w.startRow,startColumn:w.endColumn+1,endRow:w.endRow,endColumn:w.endColumn+1},se={startRow:w.startRow,startColumn:w.startColumn,endRow:w.startRow,endColumn:w.endColumn},tn={startRow:w.startRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.startColumn},nn={startRow:w.endRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.endColumn},on={startRow:w.startRow,startColumn:w.endColumn,endRow:w.endRow,endColumn:w.endColumn},P=new s.ObjectMatrix,F={s:g,cl:{rgb:v}},Xe=(N,T)=>{let x=null;return m.forEach(J=>{s.Rectangle.intersects(J,{startColumn:T,endColumn:T,startRow:N,endRow:N})&&(x=J)}),x};function W(N,T,x){N.startRow<0||N.startColumn<0||Ze(N,(J,ie)=>{var D,Ge;const Z=Xe(J,ie);let ee=T;if(Z&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(x){const ae=s.Tools.deepClone((D=P.getValue(Z.startRow,Z.startColumn))==null?void 0:D.s);ee=ae!=null&&ae.bd?Object.assign(ae.bd,T):T}P.setValue(Z.startRow,Z.startColumn,{s:{bd:ee}})}else{if(x){const ae=s.Tools.deepClone((Ge=P.getValue(J,ie))==null?void 0:Ge.s);ee=ae!=null&&ae.bd?Object.assign(ae.bd,T):T}P.setValue(J,ie,{s:{bd:ee}})}})}C&&(W(q,{b:null}),W(se,{t:s.Tools.deepClone(F)},!0)),p&&(W(z,{t:null}),W(nn,{b:s.Tools.deepClone(F)},!0)),I&&(W(X,{r:null}),W(tn,{l:s.Tools.deepClone(F)},!0)),f&&(W(re,{l:null}),W(on,{r:s.Tools.deepClone(F)},!0)),_&&W(w,{tl_br:s.Tools.deepClone(F)},!0),U&&W(w,{tl_bc:s.Tools.deepClone(F)},!0),y&&W(w,{tl_mr:s.Tools.deepClone(F)},!0),b&&W(w,{bl_tr:s.Tools.deepClone(F)},!0),E&&W(w,{ml_tr:s.Tools.deepClone(F)},!0),V&&W(w,{bc_tr:s.Tools.deepClone(F)},!0),R&&Ze(w,(N,T)=>{var J,ie,Z,ee;const x=Xe(N,T);if(x){if(x.endColumn!==w.endColumn){const D=(J=P.getValue(x.startRow,x.startColumn))==null?void 0:J.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(F)}):{r:s.Tools.deepClone(F)}}})}if(x.startColumn!==w.startColumn){const D=(ie=P.getValue(x.startRow,x.startColumn))==null?void 0:ie.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(F)}):{l:s.Tools.deepClone(F)}}})}}else{if(T!==w.endColumn){const D=(Z=P.getValue(N,T))==null?void 0:Z.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(F)}):{r:s.Tools.deepClone(F)}}})}if(T!==w.startColumn){const D=(ee=P.getValue(N,T))==null?void 0:ee.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(F)}):{l:s.Tools.deepClone(F)}}})}}}),M&&Ze(w,(N,T)=>{var J,ie,Z,ee;const x=Xe(N,T);if(x){if(x.endRow!==w.endRow){const D=(J=P.getValue(x.startRow,x.startColumn))==null?void 0:J.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(F)}):{b:s.Tools.deepClone(F)}}})}if(x.startRow!==w.startRow){const D=(ie=P.getValue(x.startRow,x.startColumn))==null?void 0:ie.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(F)}):{t:s.Tools.deepClone(F)}}})}}else{if(N!==w.endRow){const D=(Z=P.getValue(N,T))==null?void 0:Z.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(F)}):{b:s.Tools.deepClone(F)}}})}if(N!==w.startRow){const D=(ee=P.getValue(N,T))==null?void 0:ee.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(F)}):{t:s.Tools.deepClone(F)}}})}}}),!C&&!p&&!I&&!f&&!R&&!M&&!_&&!U&&!y&&!b&&!E&&!V&&(W(q,{b:null}),W(se,{t:null},!0),W(z,{t:null}),W(nn,{b:null},!0),W(X,{r:null}),W(tn,{l:null},!0),W(re,{l:null}),W(on,{r:null},!0),W(w,{tl_br:null},!0),W(w,{tl_bc:null},!0),W(w,{tl_mr:null},!0),W(w,{bl_tr:null},!0),W(w,{ml_tr:null},!0),W(w,{bc_tr:null},!0),Ze(w,(N,T)=>{var J,ie,Z,ee,D,Ge,ae,rn;const x=Xe(N,T);if(x){if(x.endColumn!==w.endColumn){const O=(J=P.getValue(x.startRow,x.startColumn))==null?void 0:J.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(x.startColumn!==w.startColumn){const O=(ie=P.getValue(x.startRow,x.startColumn))==null?void 0:ie.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(x.endRow!==w.endRow){const O=(Z=P.getValue(x.startRow,x.startColumn))==null?void 0:Z.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(x.startRow!==w.startRow){const O=(ee=P.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==w.endColumn){const O=(D=P.getValue(N,T))==null?void 0:D.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==w.startColumn){const O=(Ge=P.getValue(N,T))==null?void 0:Ge.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(N!==w.endRow){const O=(ae=P.getValue(N,T))==null?void 0:ae.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(N!==w.startRow){const O=(rn=P.getValue(N,T))==null?void 0:rn.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const pt={unitId:u,subUnitId:l,cellValue:P.getData()},To=Ie(o,pt);return n.syncExecuteCommand($.id,pt)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:$.id,params:To}],redoMutations:[{id:$.id,params:pt}]}),!0):!1}},gr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Be={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},hr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Ve={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},kt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),i={unitId:n,subUnitId:e,ranges:r},c=hr(o,i),u={unitId:n,subUnitId:e,pluginName:Y,selections:r.map(g=>({range:g,primary:Q(g,a),style:null}))},l={unitId:n,subUnitId:e,pluginName:Y,selections:$n(r).map(g=>({range:g,primary:Q(g,a),style:null}))},d=o.get(s.ICommandService);return s.sequenceExecute([{id:Ve.id,params:i},{id:H.id,params:u}],d).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Be.id,params:c},{id:H.id,params:l}],redoMutations:[{id:Ve.id,params:i},{id:H.id,params:u}]}),!0}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async o=>{var l;const n=(l=o.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const r=o.get(s.IUniverInstanceService).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.getHiddenCols(d.startColumn,d.endColumn)).flat();return o.get(s.ICommandService).executeCommand(kt.id,{unitId:i,subUnitId:c,ranges:u})}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var v;const n=(v=o.get(exports.SelectionManagerService).getSelections())==null?void 0:v.map(h=>h.range).filter(h=>h.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const r=o.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:n},l={unitId:i,subUnitId:c,pluginName:Y,selections:$n(n).map(h=>({range:h,primary:Q(h,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:Y,selections:n.map(h=>({range:h,primary:Q(h,a),style:null}))},m=o.get(s.ICommandService);if(s.sequenceExecute([{id:Be.id,params:u},{id:H.id,params:l}],m).result){const h=o.get(s.IUndoRedoService),S=gr(o,u);return h.pushUndoRedo({unitID:i,undoMutations:[{id:Ve.id,params:S},{id:H.id,params:d}],redoMutations:[{id:Be.id,params:u},{id:H.id,params:l}]}),!0}return!1}};function $n(o){return vr(o).map(n=>{const e=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:e,endColumn:e}})}function vr(o){const t=[];let n;return o.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!n){n=e;return}n.endColumn===e.startColumn-1?n.endColumn=e.endColumn:(t.push(n),n=e)}),t.push(n),t}const xt=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},pe={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:l}=t;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.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}=t;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const v={unitId:a,subUnitId:i,...t},h=xt(o,v);return n.syncExecuteCommand(pe.id,v)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:pe.id,params:h}],redoMutations:[{id:pe.id,params:v}]}),!0):!1}},Sr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async o=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),e=o.get(s.IUniverInstanceService),r=e.getCurrentUniverSheetInstance().getUnitId(),a=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=e.getUniverSheetInstance(r);if(!i||!i.getSheetBySheetId(a))return!1;const u={unitId:r,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=xt(o,u);return t.syncExecuteCommand(pe.id,u)?(n.pushUndoRedo({unitID:r,undoMutations:[{id:pe.id,params:l}],redoMutations:[{id:pe.id,params:u}]}),!0):!1}},Cr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Le={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},fr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},je={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,a=o.get(s.ICommandService),i=o.get(s.IUndoRedoService),c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),u={unitId:n,subUnitId:e,ranges:r},l=Cr(o,u),d={unitId:n,subUnitId:e,pluginName:Y,selections:r.map(v=>({range:v,primary:Q(v,c),style:null}))},m={unitId:n,subUnitId:e,pluginName:Y,selections:Yn(r).map(v=>({range:v,primary:Q(v,c),style:null}))};return s.sequenceExecute([{id:Le.id,params:u},{id:H.id,params:d}],a).result&&i.pushUndoRedo({unitID:n,undoMutations:[{id:je.id,params:l},{id:H.id,params:m}],redoMutations:[{id:Le.id,params:u},{id:H.id,params:d}]}),!0}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async o=>{var l;const t=o.get(exports.SelectionManagerService),n=o.get(s.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=n.getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=e.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return o.get(s.ICommandService).executeCommand(Bt.id,{unitId:i,subUnitId:c,ranges:u})}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async o=>{var S;const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=(S=t.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:Y,selections:Yn(a).map(C=>({range:C,primary:Q(C,l),style:null}))},g={unitId:i,subUnitId:c,pluginName:Y,selections:a.map(C=>({range:C,primary:Q(C,l),style:null}))},v=fr(o,d);return s.sequenceExecute([{id:je.id,params:d},{id:H.id,params:m}],n).result&&e.pushUndoRedo({unitID:i,undoMutations:[{id:Le.id,params:v},{id:H.id,params:g}],redoMutations:[{id:je.id,params:d},{id:H.id,params:m}]}),!0}};function Yn(o){return Ir(o).map(n=>{const e=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:e,endRow:e}})}function Ir(o){const t=[];let n;return o.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!n){n=e;return}e.startRow===n.endRow+1?n.endRow=e.endRow:(t.push(n),n=e)}),t.push(n),t}const K={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(o,t)=>{const n=o.get(s.IUniverInstanceService),{unitId:e=n.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=t,c=o.get(s.ICommandService),u=o.get(s.IUndoRedoService),l=o.get(exports.SelectionManagerService),d=a?[a]:l.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=n.getUniverSheetInstance(e);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const v=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let R=0;R<d.length;R++){const{startRow:M,endRow:_,startColumn:U,endColumn:y}=d[R];for(let b=0;b<=_-M;b++)for(let E=0;E<=y-U;E++)v.setValue(b+M,E+U,{s:{[i.type]:i.value[b][E]}})}else for(let R=0;R<d.length;R++){const{startRow:M,endRow:_,startColumn:U,endColumn:y}=d[R],b={s:{[i.type]:i.value}};for(let E=M;E<=_;E++)for(let V=U;V<=y;V++)v.setValue(E,V,b)}const h={subUnitId:r,unitId:e,cellValue:v.getMatrix()},S=Ie(o,h),C=c.syncExecuteCommand($.id,h),{undos:I,redos:p}=o.get(exports.SheetInterceptorService).onCommandExecute({id:K.id,params:t}),f=s.sequenceExecute([...p],c);return C&&f.result?(u.pushUndoRedo({unitID:e,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:h},...p]}),!0):!1}},Rr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:e,actualColumn:r}=t.primary,i={style:{type:"bl",value:n.getRange(e,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(K.id,i)}},pr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;if(t.primary){const{startRow:a,startColumn:i}=t.primary;e=n.getRange(a,i).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(K.id,r)}},Mr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(K.id,r)}},wr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(K.id,r)}};s.CommandType.COMMAND;const yr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return n.executeCommand(K.id,e)}},Ur={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return n.executeCommand(K.id,e)}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return n.executeCommand(K.id,e)}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async o=>{const t=o.get(s.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(K.id,n)}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return n.executeCommand(K.id,e)}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async o=>{const t=o.get(s.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(K.id,n)}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return n.executeCommand(K.id,e)}},eo={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return n.executeCommand(K.id,e)}},to={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return n.executeCommand(K.id,e)}},no={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(o,t)=>{if(!t)return!1;const n=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=o.get(s.ICommandService),r={style:{type:"tr",value:n}};return e.executeCommand(K.id,r)}},_r=(o,t)=>{const a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},ze={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.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:t.value,unitId:a,subUnitId:i},d=_r(o,l);return n.syncExecuteCommand(ze.id,l)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:ze.id,params:d}],redoMutations:[{id:ze.id,params:l}]}),!0):!1}},Je={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return n.setActiveSheet(r),!0;return!1}},br=4,Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,t,n)=>{var c,u;const e=o.get(s.ICommandService),r=o.get(s.IUniverInstanceService);let a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return t&&(a=(c=t.unitId)!=null?c:a,i=(u=t.subUnitId)!=null?u:i),new Promise(l=>{setTimeout(()=>{const d=e.syncExecuteCommand(Je.id,{unitId:a,subUnitId:i},n);l(d)},br)})}},Lt=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),c=t.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},ge={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(o,t)=>{var u;const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),c=t.ranges;for(let l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(u=t.colWidth[m-d.startColumn])!=null?u:a}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(o,t)=>{const e=o.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=o.get(s.ICommandService),a=o.get(s.IUndoRedoService),c=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),l=c.getUnitId(),d=u.getSheetId(),{anchorCol:m,deltaX:g}=t,h=u.getColumnWidth(m)+g,S=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,C=e.filter(y=>y.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:y})=>{const{startColumn:b,endColumn:E}=y;return b<=m&&m<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let p;if(I===s.RANGE_TYPE.ALL){const y=u.getRowCount(),b=new Array(u.getColumnCount()).fill(void 0).map((E,V)=>({startRow:0,endRow:y-1,startColumn:V,endColumn:V}));p={subUnitId:d,unitId:l,colWidth:h,ranges:b}}else I===s.RANGE_TYPE.COLUMN?p={subUnitId:d,unitId:l,ranges:C.map(y=>s.Rectangle.clone(y.range)),colWidth:h}:p={subUnitId:d,unitId:l,colWidth:h,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:m,endColumn:m}]};const f=Lt(o,p),R=r.syncExecuteCommand(ge.id,p),{undos:M,redos:_}=o.get(exports.SheetInterceptorService).onCommandExecute({id:jt.id,params:p}),U=s.sequenceExecute([..._],r);return R&&U.result&&a.pushUndoRedo({unitID:l,undoMutations:[{id:ge.id,params:f},...M],redoMutations:[{id:ge.id,params:p},..._]}),!0}},Wt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,t)=>{const n=o.get(exports.SelectionManagerService),e=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),a=o.get(s.IUniverInstanceService),i=n.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:t.value},d=Lt(o,l),m=e.syncExecuteCommand(ge.id,l),{undos:g,redos:v}=o.get(exports.SheetInterceptorService).onCommandExecute({id:Wt.id,params:l}),h=s.sequenceExecute([...v],e);return m&&h.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ge.id,params:d},...g],redoMutations:[{id:ge.id,params:l},...v]}),!0):!1}},ro=(o,t)=>{const e=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Me={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},so={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(o,t)=>{var C;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ErrorService),i=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(c=(C=t.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=ro(o,m);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):n.syncExecuteCommand(Me.id,m)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Me.id,params:g}],redoMutations:[{id:Me.id,params:m}]}),!0):!1}},Tr=(o,t)=>{const e=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},ut={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,t)=>{var h,S;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),i=t.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:t.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:t.name,unitId:i},l=Tr(o,u),d=a.onCommandExecute({id:Ft.id,params:t}),m=[...(h=d.preRedos)!=null?h:[],{id:ut.id,params:u},...d.redos],g=[...(S=d.preUndos)!=null?S:[],{id:ut.id,params:l},...d.undos];return await s.sequenceExecute(m,n).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Dr=(o,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),qe={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},io={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=t.unitId||r.getCurrentUniverSheetInstance().getUnitId(),i=t.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const d={fromOrder:c.getConfig().sheetOrder.indexOf(i),toOrder:t.order,unitId:a,subUnitId:i},m=Dr(o,d);return n.syncExecuteCommand(qe.id,d)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:qe.id,params:m}],redoMutations:[{id:qe.id,params:d}]}),!0):!1}},Er=2e3,ao=(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=i==null?void 0:i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const v=l.getRowOrCreate(g);u[g]=v.h}return{unitId:n,subUnitId:e,ranges:r,rowHeight:u}},Ht=(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const v=l.getRowOrCreate(g);u[g]=v.ia}return{unitId:n,subUnitId:e,ranges:r,autoHeightInfo:u}},Nr=(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=i==null?void 0:i.getSheetBySheetId(e),u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:n,subUnitId:e,rowsAutoHeightInfo:u}},he={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:r,rowHeight:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.h=a:S.h=(m=a[h])!=null?m:l,S.h=Math.min(Er,S.h)}return!0}},ce={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:r,autoHeightInfo:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.ia=a:S.ia=(m=a[h-g])!=null?m:l}return!0}},$t={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=i==null?void 0:i.getSheetBySheetId(e);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},co={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(o,t)=>{const e=o.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),c=a.getUnitId(),u=i.getSheetId(),{anchorRow:l,deltaY:d}=t,g=i.getRowHeight(l)+d,v=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,h=e.filter(U=>U.range.rangeType===s.RANGE_TYPE.ROW),S=v?s.RANGE_TYPE.ALL:h.some(({range:U})=>{const{startRow:y,endRow:b}=U;return y<=l&&l<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const U=i.getRowCount(),y=new Array(i.getColumnCount()).fill(void 0).map((b,E)=>({startRow:E,endRow:E,startColumn:0,endColumn:U-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:y}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:h.map(U=>s.Rectangle.clone(U.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:i.getMaxColumns()-1}]};const I=ao(o,C),p={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},f=Ht(o,p),R=o.get(s.ICommandService),M=o.get(s.IUndoRedoService);return s.sequenceExecute([{id:he.id,params:C},{id:ce.id,params:p}],R).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:he.id,params:I},{id:ce.id,params:f}],redoMutations:[{id:he.id,params:C},{id:ce.id,params:p}]}),!0):!1}},uo={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,t)=>{const n=o.get(exports.SelectionManagerService),e=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),a=o.get(s.IUniverInstanceService),i=n.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:t.value},m=ao(o,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=Ht(o,g);return s.sequenceExecute([{id:he.id,params:d},{id:ce.id,params:g}],e).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:he.id,params:m},{id:ce.id,params:v}],redoMutations:[{id:he.id,params:d},{id:ce.id,params:g}]}),!0):!1}},Gt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(exports.SelectionManagerService),a=o.get(s.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),c=a.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:l}=t!=null?t:{},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=Ht(o,m),v=n.syncExecuteCommand(ce.id,m),{undos:h,redos:S}=o.get(exports.SheetInterceptorService).onCommandExecute({id:Gt.id,params:m}),C=s.sequenceExecute([...S],n);return v&&C.result?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ce.id,params:g},...h],redoMutations:[{id:ce.id,params:m},...S]}),!0):!1}},lo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(o,t)=>{var S;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId();let i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(S=t.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=ro(o,d),g=n.syncExecuteCommand(Me.id,d),v={unitId:a,subUnitId:i},h=n.syncExecuteCommand(Je.id,v);return g&&h?(e.pushUndoRedo({unitID:a,undoMutations:[{id:Me.id,params:m}],redoMutations:[{id:Me.id,params:d}]}),!0):!1}},mo=o=>{const t=new s.ObjectMatrix;return o.forEach(n=>{s.Range.foreach(n,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((n,e)=>{const r=t.getValue(n-1,e);r&&t.setValue(n,e,r+1)}),t},go=o=>{const t=o;return t.forValue((n,e)=>{const r=o.getValue(n-1,e);r&&t.setValue(n,e,r+1)}),t},cn=o=>{const t={area:0},n=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return o.forValue((e,r,a)=>{let i=1,c=a;n(i*c,{startRow:e-c+1,endRow:e,startColumn:r,endColumn:r});const u={startRow:e-c+1,endRow:e,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&o.getValue(e,l);l--){c=Math.min(o.getValue(e,l)||0,c),i++;const d=c*i;u.startColumn=l,u.startRow=e-c+1,n(d,u)}}),t},Or=(o,t)=>(s.Range.foreach(t,(n,e)=>{o.realDeleteValue(n,e);let r=n+1,a=o.getValue(r,e)||0;for(;a>1;)o.setValue(r,e,a-1),r+=1,a=o.getValue(r,e)||0}),o),zt=o=>{const t=[];let n=cn(o);for(;n.area>0;)n.range&&(t.push(n.range),Or(o,n.range)),n=cn(o);return t},qt=o=>{const t=mo(o);return zt(t)};class Ar{constructor(){B(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(n=>{s.Range.foreach(n,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(n=>{s.Range.foreach(n,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=go(this._matrix);return zt(t)}}const Pr=(o,t,n="")=>o.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[n].push(r),e)},{}),kr=(o=0)=>{let t=o;return function(){return t++}},Oe=G.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Oe);const xr=(o,t)=>{const n=o.get(Oe),{values:e,unitId:r,subUnitId:a}=t,i=[],c=[],u=n.getModel(r,a)||void 0;Object.keys(e).forEach(d=>{e[d].ranges.forEach(g=>{s.Range.foreach(g,(v,h)=>{const S=n.getValue(r,a,v,h,u);S?i.push({pattern:S.pattern,type:S.type,row:v,col:h}):c.push({startColumn:h,endColumn:h,startRow:v,endRow:v})})})});const l=[];if(i.length){const d=dt(r,a,i);Object.keys(d.values).forEach(m=>{const g=d.values[m];g.ranges=qt(g.ranges)}),l.push({id:Rt.id,params:dt(r,a,i)})}return c.length&&l.push({id:Yt.id,params:{unitId:r,subUnitId:a,ranges:c}}),l},Rt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{values:n,refMap:e}=t,r=o.get(Oe),a=t.unitId,i=t.subUnitId,c=Object.keys(n).reduce((u,l)=>{const d=e[l],m=n[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(a,i,c),!0}},Yt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{unitId:n,subUnitId:e,ranges:r}=t;return o.get(Oe).deleteValues(n,e,r),!0}},Br=(o,t)=>{const n=o.get(Oe),{ranges:e,unitId:r,subUnitId:a}=t,i=[],c=n.getModel(r,a)||void 0;if(e.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=n.getValue(r,a,d,m,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:m})})}),!i.length)return[];const u=dt(r,a,i);return Object.keys(u.values).forEach(l=>{const d=u.values[l];d.ranges=qt(d.ranges)}),[{id:Rt.id,params:u}]},dt=(o,t,n)=>{const e=Pr(n,"pattern"),r={},a={},i=kr();return Object.keys(e).forEach(c=>{const u=e[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(s.cellToRange(m.row,m.col))})}),{unitId:o,subUnitId:t,refMap:r,values:a}},ho={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},vo={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return n.syncExecuteCommand(oe.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:oe.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:oe.SetDefinedNameMutation.id,params:r}]}),!0):!1}},So={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return n.syncExecuteCommand(oe.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:oe.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:oe.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},Co={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService);return t&&n.syncExecuteCommand(oe.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:oe.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:oe.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},fo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Io="maxCellsPerSheet",Vr=3e6;var Lr=Object.defineProperty,jr=Object.getOwnPropertyDescriptor,Wr=(o,t,n,e)=>{for(var r=e>1?void 0:e?jr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Lr(t,n,r),r},un=(o,t)=>(n,e)=>t(n,e,o);let st=class extends s.Disposable{constructor(o,t){super(),this._commandService=o,this._configService=t,[L,lt,Ut,mt,pn,ht,vt,jt,co,Nn,En,He,Se,St,Ct,Tn,bn,Fe,ve,On,ye,At,be,gt,xe,Ot,_e,It,fe,ft,Ce,Pt,We,Bn,j,Zn,Jn,Xn,Vn,Wn,$e,Ln,jn,Hn,Be,Ve,Wt,Sr,Gn,pe,eo,Ue,$,uo,qn,je,Le,Fn,zn,kt,Bt,K,oo,ze,Kn,no,to,Qn,Vt,Je,ge,so,Me,Ft,ut,io,qe,$t,he,Gt,ce,lo,Rt,H,Yt,ho,vo,So,Co,fo].forEach(n=>this.disposeWithMe(this._commandService.registerCommand(n))),this._configService.setConfig(Io,Vr)}};st=Wr([s.OnLifecycle(s.LifecycleStages.Starting,st),un(0,s.ICommandService),un(1,s.IConfigService)],st);var Fr=Object.defineProperty,Hr=Object.getOwnPropertyDescriptor,$r=(o,t,n,e)=>{for(var r=e>1?void 0:e?Hr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Fr(t,n,r),r},Gr=(o,t)=>(n,e)=>t(n,e,o);let it=class extends s.Disposable{constructor(o){super(),this._commandService=o,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id!==oe.SetFormulaCalculationResultMutation.id)return;const t=o.params,{unitData:n,unitOtherData:e}=t,r=Object.keys(n),a=[];return r.forEach(c=>{const u=n[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};a.push({id:$.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};it=$r([s.OnLifecycle(s.LifecycleStages.Ready,it),Gr(0,s.ICommandService)],it);var zr=Object.defineProperty,qr=Object.getOwnPropertyDescriptor,Yr=(o,t,n,e)=>{for(var r=e>1?void 0:e?qr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&zr(t,n,r),r},Qe=(o,t)=>(n,e)=>t(n,e,o);let at=class extends s.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._featureCalculationManagerService=t,this._currentUniverService=n,this._formulaDataModel=e}_initialize(){const o="test",t="workbook-01",n="sheet-0011",e={[t]:{[n]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[n]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(o,{unitId:t,subUnitId:n,dependencyRanges:[{unitId:t,sheetId:n,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};at=Yr([s.OnLifecycle(s.LifecycleStages.Ready,at),Qe(0,s.ICommandService),Qe(1,oe.IFeatureCalculationManagerService),Qe(2,s.IUniverInstanceService),Qe(3,G.Inject(oe.FormulaDataModel))],at);const A={MoveRangeCommandId:Mn,InsertRowCommandId:_n,InsertColCommandId:Dn,RemoveColCommandId:xn,RemoveRowCommandId:kn,DeleteRangeMoveLeftCommandId:wn,DeleteRangeMoveUpCommandId:yn,InsertRangeMoveDownCommandId:ar,InsertRangeMoveRightCommandId:Un,MoveColsCommandId:Pn,MoveRowsCommandId:An};var k=(o=>(o[o.Set=0]="Set",o[o.Delete=1]="Delete",o[o.HorizontalMove=2]="HorizontalMove",o[o.VerticalMove=3]="VerticalMove",o[o.Unknown=4]="Unknown",o))(k||{});const et=Number.MAX_SAFE_INTEGER,me=o=>{const t={...o};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=et),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=et),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=et,t.startRow=0,t.endRow=et),t},ne=o=>({startRow:o.startColumn,endRow:o.endColumn,startColumn:o.startRow,endColumn:o.endRow}),Ye=(o,t,n)=>{const e={...n},r={...t},a=(S,C)=>{const I=Math.max(S.start,C.start),p=Math.min(S.end,C.end);return p<I?null:{start:I,end:p}},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=t.start>o.start;if(l){const S=Math.min(o.end,t.start)-o.start+1;r.start-=S,r.end-=S}const d=i(o),m=d,g=a(o,e),v=g&&i(g)>=i(e);if(o.end<e.start)e.start-=d,e.end-=d;else if(g){const S=i(g);if(v){const C=c(e,o),I=u(C,r);e.start=I.start,e.end=I.end}else g.start>o.start?l?(e.end-=S+d,e.start-=d):e.end-=S:l?e.end-=S:e.start>o.start&&e.end>o.end?(e.start-=d,e.end-=d+S):e.end-=S}const h=a(r,e);return v||(r.start<=e.start?(e.start+=m,e.end+=m):h&&(l?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-n.start,length:i(e)-i(n)}},Kt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const r=me(n),a=me(e),i=me(t),c=Ye({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:k.Delete}]:[{type:k.VerticalMove,step:c.step||0,length:c.length||0}]},Kr=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startRow:r}=n,{startRow:a}=e,i=e.endRow-e.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,l=>l===1)},Jt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const r=me(n),a=me(e),i=me(t),c=Ye({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:k.Delete}]:[{type:k.HorizontalMove,step:c.step||0,length:c.length||0}]},Jr=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startColumn:r}=n,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Ro=(o,t)=>{var a,i;const n=(a=o.params)==null?void 0:a.toRange,e=(i=o.params)==null?void 0:i.fromRange;if(!n||!e)return[];const r=[];if(s.Rectangle.contains(n,t)&&r.push({type:k.Delete}),s.Rectangle.contains(e,t)){r.push({type:k.Delete});const c=s.Rectangle.getRelativeRange(t,e),u=s.Rectangle.getPositionRange(c,n);return[{type:k.Set,range:u}]}return r},Xr=(o,t)=>{var m,g;const n=(m=o.params)==null?void 0:m.toRange,e=(g=o.params)==null?void 0:g.fromRange;if(!n||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(n,t))return[t];if(s.Rectangle.contains(e,t)){const v=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(v,n)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(v,h)=>{r.setValue(v,h,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(v,h)=>{r.getValue(v,h)&&(r.setValue(v,h,void 0),a.setValue(v,h,1))});const c=n.startColumn-e.startColumn,u=n.startRow-e.startRow,l={startColumn:n.startColumn-c,endColumn:n.endColumn-c,startRow:n.startRow-u,endRow:n.endRow-u};return l&&s.Range.foreach(l,(v,h)=>{var I;const S=v+u,C=h+c;r.setValue(S,C,(I=a.getValue(v,h))!=null?I:0)}),s.queryObjectMatrix(r,v=>v===1)},Te=(o,t)=>{const n=me(o),e=me(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn){const i=s.Rectangle.getIntersects(e,n);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn&&a(n)>=a(e))return null;if(e.startColumn>=n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn){const i=s.Rectangle.getIntersects(e,n);if(i){const c=-r(i);return{step:-(r(n)-r(i)),length:c}}}if(e.startColumn>n.endColumn)return{step:-r(n),length:0}}return{step:0,length:0}},Xt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(n,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.HorizontalMove,step:i,length:c})}return e},Zt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(ne(n),ne(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.VerticalMove,step:i,length:c})}return e},De=(o,t)=>{const n=me(o),e=me(t),r=a=>a.endColumn-a.startColumn+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn)return{step:0,length:r(n)};if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn>n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn||e.startColumn>=n.endColumn)return{step:r(n),length:0}}return{step:0,length:0}};function Zr(o,t,n){const e=[];if(s.Rectangle.contains(t,n)&&e.push({type:k.Delete}),s.Rectangle.contains(o,n)){e.push({type:k.Delete});const r=s.Rectangle.getRelativeRange(n,o),a=s.Rectangle.getPositionRange(r,t);return[{type:k.Set,range:a}]}return e}const Qt=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(ne(n),ne(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},en=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(n,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},po=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(ne(n),ne(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},Qr=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[t];const e=n.endRow-n.startRow+1,r={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l+e,d,1)}),s.queryObjectMatrix(c,l=>l===1)},Mo=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(n,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},es=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[t];const e=n.endColumn-n.startColumn+1,r={...n,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l,d+e,1)}),s.queryObjectMatrix(c,l=>l===1)},wo=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(n,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.HorizontalMove,step:i,length:c})}return e},ts=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},r=n.endColumn-n.startColumn+1,a=s.Rectangle.getIntersects(n,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d,m-r,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},yo=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(ne(n),ne(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.VerticalMove,step:i,length:c})}return e},ns=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},r=n.endRow-n.startRow+1,a=s.Rectangle.getIntersects(n,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d-r,m,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Ee=(o,t)=>{let n={...t};return o.forEach(e=>{switch(e.type){case k.Delete:{n=null;break}case k.HorizontalMove:{if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break}case k.Set:{n=e.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},os=(o,t)=>{let n=[];switch(t.id){case A.DeleteRangeMoveLeftCommandId:{n=wo(t,o);break}case A.DeleteRangeMoveUpCommandId:{n=yo(t,o);break}case A.InsertColCommandId:{n=en(t,o);break}case A.InsertRangeMoveDownCommandId:{n=po(t,o);break}case A.InsertRangeMoveRightCommandId:{n=Mo(t,o);break}case A.InsertRowCommandId:{n=Qt(t,o);break}case A.MoveColsCommandId:{n=Jt(t,o);break}case A.MoveRangeCommandId:{n=Ro(t,o);break}case A.MoveRowsCommandId:{n=Kt(t,o);break}case A.RemoveColCommandId:{n=Xt(t,o);break}case A.RemoveRowCommandId:{n=Zt(t,o);break}}return Ee(n,o)},rs=(o,t)=>{let n=[];switch(t.id){case A.DeleteRangeMoveLeftCommandId:return ts(t,o);case A.DeleteRangeMoveUpCommandId:return ns(t,o);case A.InsertRangeMoveDownCommandId:return Qr(t,o);case A.InsertRangeMoveRightCommandId:return es(t,o);case A.InsertColCommandId:{n=en(t,o);break}case A.InsertRowCommandId:{n=Qt(t,o);break}case A.MoveColsCommandId:return Jr(t,o);case A.MoveRangeCommandId:return Xr(t,o);case A.MoveRowsCommandId:return Kr(t,o);case A.RemoveColCommandId:{n=Xt(t,o);break}case A.RemoveRowCommandId:{n=Zt(t,o);break}}return Ee(n,o)};function ss(o,t){const{id:n,params:e}=t;let r={length:0,step:0,type:k.Unknown};switch(n){case We.id:r.type=k.Delete;break;case _e.id:r=Ye({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:o.startRow,end:o.endRow}),r.type=k.VerticalMove;break;case be.id:r=Ye({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:o.startColumn,end:o.endColumn});break;case fe.id:r=Te(e.range,o),r?r.type=k.HorizontalMove:r={step:0,length:0,type:k.Delete};break;case Ce.id:r=Te(ne(e.range),ne(o)),r?r.type=k.VerticalMove:r={step:0,length:0,type:k.Delete};break;case ve.id:r=De(ne(e.range),ne(o)),r.type=k.VerticalMove;break;case Se.id:r=De(e.range,o),r.type=k.HorizontalMove;break;case xe.id:r=Zr(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),o);break}return r?Array.isArray(r)?Ee(r,o):Ee([r],o):o}var is=Object.defineProperty,as=Object.getOwnPropertyDescriptor,cs=(o,t,n,e)=>{for(var r=e>1?void 0:e?as(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&is(t,n,r),r},tt=(o,t)=>(n,e)=>t(n,e,o);const us=s.createInterceptorKey("MERGE_REDO"),ds=s.createInterceptorKey("MERGE_UNDO");class ls extends s.Disposable{constructor(t,n,e,r){super(),this._unitId=t,this._subUnitId=n,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const n=ss(this._range,t);if(n&&s.Rectangle.equals(n,this._range))return!1;const e=this._range;this._range=n,this._callback(e,n)}}exports.RefRangeService=class extends s.Disposable{constructor(n,e,r,a){super();B(this,"interceptor",new s.InterceptorManager({MERGE_REDO:us,MERGE_UNDO:ds}));B(this,"_watchRanges",new Set);B(this,"_refRangeManagerMap",new Map);B(this,"_serializer",ms());B(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=dn(this._univerInstanceService),a=ln(this._univerInstanceService),u=((()=>{switch(n.id){case A.MoveColsCommandId:{const v=n.params,h=Math.min(v.fromRange.startColumn,v.toRange.startColumn);return this._checkRange([{...v.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],r,a)}case A.MoveRowsCommandId:{const v=n.params,h=Math.min(v.fromRange.startRow,v.toRange.startRow);return this._checkRange([{...v.fromRange,startRow:h,endRow:e.getRowCount()-1}],r,a)}case A.MoveRangeCommandId:{const v=n;return this._checkRange([v.params.fromRange,v.params.toRange],r,a)}case A.InsertRowCommandId:{const S={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.InsertColCommandId:{const h=n.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.RemoveRowCommandId:{const S={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.RemoveColCommandId:{const h=n.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.DeleteRangeMoveUpCommandId:case A.InsertRangeMoveDownCommandId:{const h=n.params.range||mn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],r,a)}case A.DeleteRangeMoveLeftCommandId:case A.InsertRangeMoveRightCommandId:{const h=n.params.range||mn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([S],r,a)}}})()||[]).reduce((v,h)=>{const S=h(n);return v.push(S),v},[]).reduce((v,h)=>{var S,C;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(S=h.preRedos)!=null?S:[]),v.preUndos.push(...(C=h.preUndos)!=null?C:[]),v},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:g,preRedos:l,preUndos:m}}})});B(this,"_checkRange",(n,e,r)=>{const a=gn(e,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(l=>{const d=i.get(l),m=this._serializer.deserialize(l);n.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});B(this,"registerRefRange",(n,e,r,a)=>{const i=r||dn(this._univerInstanceService),c=a||ln(this._univerInstanceService),u=gn(i,c),l=this._serializer.serialize(n);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(e):d.set(l,new Set([e])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(e),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._commandService=n,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(n,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(d=>{if(d.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(d)}));const c=new ls(n,e,r,a);this._watchRanges.add(c);const u=s.toDisposable(()=>{this._watchRanges.delete(c),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(u);return s.toDisposable(()=>{l.dispose(),u.dispose()})}};exports.RefRangeService=cs([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),tt(0,s.ICommandService),tt(1,G.Inject(exports.SheetInterceptorService)),tt(2,G.Inject(s.IUniverInstanceService)),tt(3,G.Inject(exports.SelectionManagerService))],exports.RefRangeService);function dn(o){return o.getCurrentUniverSheetInstance().getUnitId()}function ln(o){return o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function mn(o){return o.getSelectionRanges()||[]}function gn(o,t){return`${o}_${t}`}function ms(){const o=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:n=>{const e=o.reduce((a,i,c)=>(a[String(c)]=i,a),{});return n.split(t).reduce((a,i,c)=>{const u=String(c);return i&&e[u]&&(a[e[u]]=i),a},{})},serialize:n=>o.reduce((e,r,a)=>{const i=n[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var gs=Object.defineProperty,hs=Object.getOwnPropertyDescriptor,vs=(o,t,n,e)=>{for(var r=e>1?void 0:e?hs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&gs(t,n,r),r},Ae=(o,t)=>(n,e)=>t(n,e,o);const Ss=[Se.id,ve.id,fe.id,Ce.id],Cs=[_e.id,be.id];function Uo(o,t){let n=o;if(t!==void 0){const e=[];for(let r=0;r<n.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=n[r];if(t===s.Dimension.ROWS)for(let l=a;l<=i;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};e.push(d)}else if(t===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:a,endRow:i,startColumn:l,endColumn:l};e.push(d)}}n=e}return n}exports.MergeCellController=class extends s.Disposable{constructor(n,e,r,a,i,c){super();B(this,"disposableCollection",new s.DisposableCollection);this._commandService=n,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case lt.id:case mt.id:{const r=n._univerInstanceService.getCurrentUniverSheetInstance(),a=r.getUnitId(),i=r.getActiveSheet(),c=i.getSheetId(),u=i.getConfig().mergeData,l=n._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:c,ranges:l},g=te(n._injector,m),v=[{id:j.id,params:m}],h=[{id:L.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,e,r){switch(n.id){case A.MoveColsCommandId:{const a=n.params;return this._handleMoveColsCommand(a,e,r)}case A.MoveRowsCommandId:{const a=n.params;return this._handleMoveRowsCommand(a,e,r)}case Fe.id:{const a=n.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertRowCommand(a,i,c)}case He.id:{const a=n.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertColCommand(a,i,c)}case It.id:{const a=n.params;return this._handleRemoveColCommand(a,e,r)}case ft.id:{const a=n.params;return this._handleRemoveRowCommand(a,e,r)}case gt.id:{const a=n.params;return this._handleMoveRangeCommand(a,e,r)}case Ct.id:{const a=n.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case St.id:{const a=n.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case vt.id:{const a=n.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case ht.id:{const a=n.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const n=(a,i)=>{const c=this._univerInstanceService.getUniverSheetInstance(a);if(!c)return;const u=c==null?void 0:c.getSheetBySheetId(i);if(!u)return;this.disposableCollection.dispose();const l=u.getMergeData(),d=m=>this.refRangeHandle(m,a,i);l.forEach(m=>{this.disposableCollection.add(this._refRangeService.registerRefRange(m,d,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===Vt.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;n(u,c)}if(a.id===L.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;n(i.unitId,i.subUnitId)}}));const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e.getActiveSheet();n(e.getUnitId(),r.getSheetId())}_handleMoveRowsCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=n,{startRow:m,endRow:g}=d;if(c.forEach(S=>{if(m<=S.startRow&&g>=S.endRow){u.ranges.push(S);const C=Kt({id:A.MoveRowsCommandId,params:n},S),I=Ee(C,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const v=te(this._injector,u),h=le(this._injector,l);return{redos:[{id:j.id,params:u},{id:L.id,params:l}],undos:[{id:j.id,params:h},{id:L.id,params:v}]}}_handleMoveColsCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=n,{startColumn:m,endColumn:g}=d;if(c.forEach(S=>{if(m<=S.startColumn&&g>=S.endColumn){u.ranges.push(S);const C=Jt({id:A.MoveColsCommandId,params:n},S),I=Ee(C,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const v=te(this._injector,u),h=le(this._injector,l);return{redos:[{id:j.id,params:u},{id:L.id,params:l}],undos:[{id:j.id,params:h},{id:L.id,params:v}]}}_handleMoveRangeCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=i.getMergeData(),u=c.filter(h=>s.Rectangle.intersects(h,n.fromRange)),l=c.filter(h=>s.Rectangle.intersects(h,n.toRange)),d=u.map(h=>s.Rectangle.getRelativeRange(h,n.fromRange)).map(h=>s.Rectangle.getPositionRange(h,n.toRange)),m=Uo(d).filter(h=>!c.some(S=>s.Rectangle.equals(h,S))),g=[{id:j.id,params:{unitId:e,subUnitId:r,ranges:u}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:m}}],v=[{id:j.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:u}}];return{redos:g,undos:v}}_handleInsertRowCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const{range:c}=n,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((p,f)=>(u>f.startRow&&u<=f.endRow&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((p,f)=>{if(u>f.startRow&&u<=f.endRow){const R=l-u+1;f.endRow+=R,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:j.id,params:S},{id:L.id,params:v}];return{redos:C,undos:I}}_handleInsertColCommand(n,e,r){const{range:a}=n,i=ue(this._univerInstanceService,e);if(!i)return this._handleNull();const c=de(i,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>(u>f.startColumn&&u<=f.endColumn&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>{if(u>f.startColumn&&u<=f.endColumn){const R=l-u+1;f.endColumn+=R,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:j.id,params:S},{id:L.id,params:v}];return{redos:C,undos:I}}_handleRemoveColCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const{range:c}=n,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((R,M)=>(s.Rectangle.intersects(c,M)&&R.push(M),R),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((R,M)=>{if(s.Rectangle.intersects(c,M)){if(u<=M.startColumn&&l>=M.endColumn)return R;u>=M.startColumn&&l<=M.endColumn?M.endColumn-=l-u+1:u<M.startColumn?(M.startColumn=u,M.endColumn-=l-u+1):l>M.endColumn&&(M.endColumn=u-1),this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g}],I=[{id:L.id,params:h}],p=[{id:j.id,params:S}],f=[{id:L.id,params:v}];return{preUndos:p,undos:f,preRedos:C,redos:I}}_handleRemoveRowCommand(n,e,r){const{range:a}=n,i=ue(this._univerInstanceService,e);if(!i)return this._handleNull();const c=de(i,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((R,M)=>(s.Rectangle.intersects(a,M)&&R.push(M),R),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((R,M)=>{if(s.Rectangle.intersects(a,M)){if(u<=M.startRow&&l>=M.endRow)return R;u>=M.startRow&&l<=M.endRow?M.endRow-=l-u+1:u<M.startRow?(M.startRow=u,M.endRow-=l-u+1):l>M.endRow&&(M.endRow=u-1),this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g}],I=[{id:L.id,params:h}],p=[{id:j.id,params:S}],f=[{id:L.id,params:v}];return{preUndos:p,undos:f,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,endRow:p,startColumn:f,endColumn:R}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},C))){const U=R-f+1;m.push({startRow:C.startRow,startColumn:C.startColumn+U,endRow:C.endRow,endColumn:C.endColumn+U})}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h);return{redos:[{id:j.id,params:g},{id:L.id,params:h}],undos:[{id:L.id,params:v},{id:j.id,params:S}]}}_handleInsertRangeMoveDownCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:R,endColumn:M,endRow:_}=c;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:R,endRow:u,endColumn:M},p))){const b=_-f+1;m.push({startRow:p.startRow+b,startColumn:p.startColumn,endRow:p.endRow+b,endColumn:p.endColumn})}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:L.id,params:v},{id:j.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:R,endColumn:M,endRow:_}=c;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:R,endRow:u,endColumn:M},p))){const b=_-f+1,E=s.Rectangle.moveVertical(p,-b);m.push(E)}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:L.id,params:v},{id:j.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,endRow:p,startColumn:f,endColumn:R}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},C))){const U=R-f+1;m.push({startRow:C.startRow,startColumn:C.startColumn-U,endRow:C.endRow,endColumn:C.endColumn-U})}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h);return{redos:[{id:j.id,params:g},{id:L.id,params:h}],undos:[{id:L.id,params:v},{id:j.id,params:S}]}}_checkIsMergeCell(n){return!(n.startRow===n.endRow&&n.startColumn===n.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(Cs.includes(n.id)){if(!n.params)return;const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const r=e.getSheetBySheetId(n.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=n.params,c=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,u=c?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=c?a.startRow:a.startColumn,d=c?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:p,startColumn:f,endColumn:R,rangeType:M}=C;s.Rectangle.intersects(C,a)||(c?l<I&&d>p?(I-=u,p-=u):l>p&&d<=I&&(I+=u,p+=u):l<f&&d>R?(f-=u,R-=u):l>R&&d<=f&&(f+=u,R+=u)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:p,startColumn:f,endColumn:R,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=n.params,S=C=>this.refRangeHandle(C,v,h);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,S,v,h))})}if(Ss.includes(n.id)){const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const r=e.getSheetBySheetId(n.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=n.params;if(!i)return;const{range:c}=i,u=n.id.includes("row"),l=n.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-d+1,v=[];a.forEach(I=>{let{startRow:p,endRow:f,startColumn:R,endColumn:M,rangeType:_}=I;l?u?d<=p&&(p+=g,f+=g):d<=R&&(R+=g,M+=g):u?m<p&&(p-=g,f-=g):m<R&&(R-=g,M-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||v.push({startRow:p,endRow:f,startColumn:R,endColumn:M,rangeType:_})}),r.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=n.params,C=I=>this.refRangeHandle(I,h,S);v.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,h,S))})}}))}};exports.MergeCellController=vs([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Ae(0,G.Inject(s.ICommandService)),Ae(1,G.Inject(exports.RefRangeService)),Ae(2,G.Inject(s.IUniverInstanceService)),Ae(3,G.Inject(G.Injector)),Ae(4,G.Inject(exports.SheetInterceptorService)),Ae(5,G.Inject(exports.SelectionManagerService))],exports.MergeCellController);function ue(o,t){return t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance()}function de(o,t){return t?o.getSheetBySheetId(t):o.getActiveSheet()}const fs={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},_o={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Is=Object.defineProperty,Rs=Object.getOwnPropertyDescriptor,ps=(o,t,n,e)=>{for(var r=e>1?void 0:e?Rs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Is(t,n,r),r},nt=(o,t)=>(n,e)=>t(n,e,o);const hn="SHEET_NUMFMT_PLUGIN",Ms=24*60*60*1e3;exports.NumfmtService=class extends s.Disposable{constructor(n,e,r,a){super();B(this,"_numfmtModel",new Map);B(this,"_refAliasModel",new Map);B(this,"_modelReplace$",new Pe.Subject);B(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=n,this._resourceManagerService=e,this._univerInstanceService=r,this._logService=a,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const n=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,hn,{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(n))),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,hn)}))),this._univerInstanceService.getAllUniverSheetsInstance().forEach(r=>n(r))}_toJson(n){const e=this._numfmtModel.get(n),r=this._refAliasModel.get(n);if(!e||!r)return"";const a=[...e.keys()].reduce((u,l)=>{const d=e.get(l);return u[l]=d.toJSON(),u},{}),i=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(n){try{return JSON.parse(n)}catch{return{model:{},refModel:[]}}}_setValue(n,e,r,a,i){let c=this.getModel(n,e);if(!c){const u=this._numfmtModel.get(n)||new Map,l=u.get(e)||new s.ObjectMatrix;u.set(e,l),this._numfmtModel.set(n,u),c=l}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.getSizeOf()){const l=this._numfmtModel.get(n);l==null||l.delete(e)}}_getUniqueRefId(n){const e=this._refAliasModel.get(n);if(!e)return"0";const r=e.getKeyMap("i");return`${Math.max(...r.map(i=>Number(i||0)),0)+1}`}getValue(n,e,r,a,i){const c=i||this.getModel(n,e);if(!c)return null;const u=this._refAliasModel.get(n),l=c.getValue(r,a);if(l&&u){const d=u.getValue(l==null?void 0:l.i,["i"]);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(n,e,r){let a=this._refAliasModel.get(n);const i=this.getModel(n,e);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,a)),r.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=this.getValue(n,e,u,l,i);if(d&&d.pattern){const m=a.getValue(d.pattern,["pattern"]);m&&m.count--}this._setValue(n,e,u,l,null)})})}setValues(n,e,r){const a=this.getModel(n,e);let i=this._refAliasModel.get(n);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,i)),r.forEach(c=>{let u=i.getValue(c.pattern,["pattern"]);u||(u={count:0,i:this._getUniqueRefId(n),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(n,e,d,m,a);if(g&&g.pattern){const v=i.getValue(g.pattern,["pattern"]);v&&v.count--}}this._setValue(n,e,d,m,{i:u.i}),u.count++})})})}getModel(n,e){const r=this._numfmtModel.get(n);return r==null?void 0:r.get(e)}getRefModel(n){return this._refAliasModel.get(n)}serialTimeToTimestamp(n,e=!0){const r=new Date("1900-01-01").getTime();return(n-(e?25569:24107))*Ms+r}};exports.NumfmtService=ps([nt(0,G.Inject(s.ICommandService)),nt(1,G.Inject(s.IResourceManagerService)),nt(2,G.Inject(s.IUniverInstanceService)),nt(3,G.Inject(s.ILogService))],exports.NumfmtService);const vn="univer.sheet.editable";class we extends s.PermissionPoint{constructor(n,e){super();B(this,"id",vn);B(this,"value",!0);B(this,"unitID");this._unitId=n,this._subUnitId=e,this.unitID=n,this.id=`${vn}_${n}_${e}`}}var ws=Object.defineProperty,ys=Object.getOwnPropertyDescriptor,Us=(o,t,n,e)=>{for(var r=e>1?void 0:e?ys(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&ws(t,n,r),r},Mt=(o,t)=>(n,e)=>t(n,e,o);exports.SheetPermissionService=class extends s.Disposable{constructor(t,n,e){super(),this._permissionService=t,this._univerInstanceService=n,this._sheetInterceptorService=e,this._init(),this._interceptCommandPermission()}_init(){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),n=t.getUnitId();t.getSheets().forEach(e=>{const r=e.getSheetId(),a=new we(n,r);this._permissionService.addPermissionPoint(t.getUnitId(),a)}),this.disposeWithMe(s.toDisposable(t.sheetCreated$.subscribe(e=>{const r=e.getSheetId(),a=new we(n,r);this._permissionService.addPermissionPoint(t.getUnitId(),a)}))),this.disposeWithMe(s.toDisposable(t.sheetDisposed$.subscribe(e=>{const r=e.getSheetId(),a=new we(n,r);this._permissionService.deletePermissionPoint(t.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(ke.PERMISSION,{priority:99,handler:(t,n,e)=>{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(n.id){case Ue.id:return this.getSheetEditable(i,c)}return e()}}))}getEditable$(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),c=new we(r,i);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(No.map(([u,l])=>{const d=u.value&&l.value,m=s.getTypeFromPermissionItemList([u,l]);return{value:d,status:m}}))}getSheetEditable(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),c=new we(r,i);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(t,n,e){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=n||r.getUnitId(),i=r.getActiveSheet(),c=e||i.getSheetId(),u=new we(a,c);this._permissionService.updatePermissionPoint(a,u.id,t)}};exports.SheetPermissionService=Us([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),Mt(0,G.Inject(s.IPermissionService)),Mt(1,G.Inject(s.IUniverInstanceService)),Mt(2,G.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function _s(o){const t=o.get(s.IUniverInstanceService),n=o.get(exports.SheetPermissionService),e=t.getCurrentUniverSheetInstance().getUnitId(),r=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new Pe.Observable(a=>{var c;const i=(c=n.getEditable$(e,r))==null?void 0:c.subscribe(u=>{a.next(!u.value)});return()=>{i==null||i.unsubscribe()}})}var bs=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,Ds=(o,t,n,e)=>{for(var r=e>1?void 0:e?Ts(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&bs(t,n,r),r},ot=(o,t)=>(n,e)=>t(n,e,o);const Sn="SHEET_DEFINED_NAME_PLUGIN";let ct=class extends s.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._univerInstanceService=t,this._definedNamesService=n,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const o=r=>{const a=this._definedNamesService.getDefinedNameMap(r);return a?JSON.stringify(a):""},t=r=>{if(!r)return{};try{return JSON.parse(r)}catch{return{}}},n=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,Sn,{toJson:i=>o(i),parseJson:i=>t(i),onChange:(i,c)=>{this._definedNamesService.registerDefinedNames(i,c)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(n))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._resourceManagerService.disposePluginResource(a,Sn)})));const e=this._univerInstanceService.getCurrentUniverSheetInstance();n(e)}};ct=Ds([s.OnLifecycle(s.LifecycleStages.Ready,ct),ot(0,s.ICommandService),ot(1,s.IUniverInstanceService),ot(2,oe.IDefinedNamesService),ot(3,s.IResourceManagerService)],ct);var Es=Object.defineProperty,Ns=Object.getOwnPropertyDescriptor,Os=(o,t,n,e)=>{for(var r=e>1?void 0:e?Ns(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Es(t,n,r),r},wt=(o,t)=>(n,e)=>t(n,e,o);const As="sheet";var yt;exports.UniverSheetsPlugin=(yt=class extends s.Plugin{constructor(t,n,e,r){super(As),this._config=t,this._commandService=n,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const n=[[Ne],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[Oe,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[st],[exports.MergeCellController],[ct]];(e=this._config)!=null&&e.notExecuteFormula||n.push([it],[at]),n.forEach(r=>{t.add(r)})}},B(yt,"type",s.PluginType.Sheet),yt);exports.UniverSheetsPlugin=Os([wt(1,s.ICommandService),wt(2,G.Inject(s.LocaleService)),wt(3,G.Inject(G.Injector))],exports.UniverSheetsPlugin);const Ps=[he.id,ce.id,$t.id,ge.id,Je.id,_e.id,be.id,Be.id,Ve.id,je.id,Le.id,Se.id,ve.id,fe.id,Ce.id],ks=[$.id,xe.id,j.id,L.id],xs=1.5,Bs="rgba(255,255,255, 0.01)";function Vs(o){const t=o.getCurrentTheme(),n=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:n,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function Ls(o){const{rangeWithCoord:t,primaryWithCoord:n,style:e}=o,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return n!=null&&(r.primary=bo(n)),r}function bo(o){const{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:r}=o,{startRow:a,startColumn:i,endRow:c,endColumn:u}=o.mergeInfo;return{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function js(o,t,n){const e=Oo.getCellInfoInMergeData(o,t,n),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const Ws=(o,t,n)=>{const r=o.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=t;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:g}=d;let{startRow:v,startColumn:h,endRow:S,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const R=n.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);R&&(C=R.endColumn,v=R.startRow,S=R.endRow)}else if(a===s.Dimension.ROWS){const R=n.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);R&&(S=R.endRow,h=R.startColumn,C=R.endColumn)}const I={startRow:v,startColumn:h,endRow:S,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},p=r.map((R,M,_)=>({range:R.range,style:null,primary:M===_.length-1?I:null})),f={unitId:c,subUnitId:u,pluginName:Y,selections:p};return{id:H.id,params:f}}return null}return null},Fs=(o,t)=>{const e=o.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:Y,selections:[...e]};return{id:H.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Ws;exports.AddMergeUndoMutationFactory=le;exports.AddMergeUndoSelectionsOperationFactory=Fs;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=Ne;exports.COMMAND_LISTENER_SKELETON_CHANGE=Ps;exports.COMMAND_LISTENER_VALUE_CHANGE=ks;exports.ClearSelectionAllCommand=lt;exports.ClearSelectionContentCommand=Ut;exports.ClearSelectionFormatCommand=mt;exports.CopySheetCommand=pn;exports.DeleteRangeMoveLeftCommand=ht;exports.DeleteRangeMoveUpCommand=vt;exports.DeltaColumnWidthCommand=jt;exports.DeltaRowHeightCommand=co;exports.EffectRefRangId=A;exports.EmptyMutation=ho;exports.INTERCEPTOR_POINT=ke;exports.INumfmtService=Oe;exports.InsertColAfterCommand=Nn;exports.InsertColBeforeCommand=En;exports.InsertColCommand=He;exports.InsertColMutation=Se;exports.InsertColMutationUndoFactory=Nt;exports.InsertDefinedNameCommand=vo;exports.InsertRangeMoveDownCommand=St;exports.InsertRangeMoveRightCommand=Ct;exports.InsertRowAfterCommand=Tn;exports.InsertRowBeforeCommand=bn;exports.InsertRowCommand=Fe;exports.InsertRowMutation=ve;exports.InsertRowMutationUndoFactory=Et;exports.InsertSheetCommand=On;exports.InsertSheetMutation=ye;exports.InsertSheetUndoMutationFactory=_t;exports.MAX_CELL_PER_SHEET_KEY=Io;exports.MoveColsCommand=At;exports.MoveColsMutation=be;exports.MoveRangeCommand=gt;exports.MoveRangeMutation=xe;exports.MoveRowsCommand=Ot;exports.MoveRowsMutation=_e;exports.NORMAL_SELECTION_PLUGIN_NAME=Y;exports.OperatorType=k;exports.RangeMergeUtil=Ar;exports.RemoveColCommand=It;exports.RemoveColMutation=fe;exports.RemoveDefinedNameCommand=So;exports.RemoveMergeUndoMutationFactory=te;exports.RemoveNumfmtMutation=Yt;exports.RemoveRowCommand=ft;exports.RemoveRowMutation=Ce;exports.RemoveSheetCommand=Pt;exports.RemoveSheetMutation=We;exports.RemoveSheetUndoMutationFactory=Rn;exports.RemoveWorksheetMergeCommand=Bn;exports.RemoveWorksheetMergeMutation=j;exports.ResetBackgroundColorCommand=Zn;exports.ResetTextColorCommand=Jn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Bs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=xs;exports.ScrollToCellOperation=fo;exports.SelectionMoveType=Cn;exports.SetBackgroundColorCommand=Xn;exports.SetBoldCommand=Rr;exports.SetBorderBasicCommand=Vn;exports.SetBorderColorCommand=Wn;exports.SetBorderCommand=$e;exports.SetBorderPositionCommand=Ln;exports.SetBorderStyleCommand=jn;exports.SetColHiddenCommand=Hn;exports.SetColHiddenMutation=Be;exports.SetColVisibleMutation=Ve;exports.SetColWidthCommand=Wt;exports.SetDefinedNameCommand=Co;exports.SetFontFamilyCommand=yr;exports.SetFontSizeCommand=Ur;exports.SetFrozenCommand=Gn;exports.SetFrozenMutation=pe;exports.SetFrozenMutationFactory=xt;exports.SetHorizontalTextAlignCommand=eo;exports.SetItalicCommand=pr;exports.SetNumfmtMutation=Rt;exports.SetRangeValuesCommand=Ue;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=Ie;exports.SetRowHeightCommand=uo;exports.SetRowHiddenCommand=qn;exports.SetRowHiddenMutation=je;exports.SetRowVisibleMutation=Le;exports.SetSelectedColsVisibleCommand=Fn;exports.SetSelectedRowsVisibleCommand=zn;exports.SetSelectionsOperation=H;exports.SetSpecificColsVisibleCommand=kt;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=wr;exports.SetStyleCommand=K;exports.SetTabColorCommand=oo;exports.SetTabColorMutation=ze;exports.SetTextColorCommand=Kn;exports.SetTextRotationCommand=no;exports.SetTextWrapCommand=to;exports.SetUnderlineCommand=Mr;exports.SetVerticalTextAlignCommand=Qn;exports.SetWorksheetActivateCommand=Vt;exports.SetWorksheetActiveOperation=Je;exports.SetWorksheetColWidthMutation=ge;exports.SetWorksheetColWidthMutationFactory=Lt;exports.SetWorksheetHideCommand=so;exports.SetWorksheetHideMutation=Me;exports.SetWorksheetNameCommand=Ft;exports.SetWorksheetNameMutation=ut;exports.SetWorksheetOrderCommand=io;exports.SetWorksheetOrderMutation=qe;exports.SetWorksheetRowAutoHeightMutation=$t;exports.SetWorksheetRowAutoHeightMutationFactory=Nr;exports.SetWorksheetRowHeightMutation=he;exports.SetWorksheetRowIsAutoHeightCommand=Gt;exports.SetWorksheetRowIsAutoHeightMutation=ce;exports.SetWorksheetShowCommand=lo;exports.SheetEditablePermission=we;exports.alignToMergedCellsBorders=Ke;exports.convertPrimaryWithCoordToPrimary=bo;exports.convertSelectionDataToRange=Ls;exports.createTopMatrixFromMatrix=go;exports.createTopMatrixFromRanges=mo;exports.enUS=fs;exports.factoryRemoveNumfmtUndoMutation=Br;exports.factorySetNumfmtUndoMutation=xr;exports.findAllRectangle=zt;exports.followSelectionOperation=Re;exports.getAddMergeMutationRangeByType=Uo;exports.getCellAtRowCol=er;exports.getCurrentSheetDisabled$=_s;exports.getInsertRangeMutations=Tt;exports.getNormalSelectionStyle=Vs;exports.getPrimaryForRange=Q;exports.getRemoveRangeMutations=Dt;exports.handleBaseInsertRange=De;exports.handleBaseMoveRowsCols=Ye;exports.handleBaseRemoveRange=Te;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=rs;exports.handleDefaultRangeChangeWithEffectRefCommands=os;exports.handleDeleteRangeMoveLeft=wo;exports.handleDeleteRangeMoveUp=yo;exports.handleDeleteRangeMutation=or;exports.handleIRemoveCol=Xt;exports.handleIRemoveRow=Zt;exports.handleInsertCol=en;exports.handleInsertRangeMoveDown=po;exports.handleInsertRangeMoveRight=Mo;exports.handleInsertRangeMutation=nr;exports.handleInsertRow=Qt;exports.handleMoveCols=Jt;exports.handleMoveRange=Ro;exports.handleMoveRows=Kt;exports.rangeMerge=qt;exports.rotateRange=ne;exports.runRefRangeMutations=Ee;exports.setEndForRange=tr;exports.transformCellDataToSelectionData=js;exports.transformCellsToRange=dt;exports.zhCN=_o;
|