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