@univerjs/sheets 0.1.16 → 0.2.0

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 CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var Br=Object.defineProperty;var jr=(n,e,t)=>e in n?Br(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var C=(n,e,t)=>jr(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),$=require("@wendellhu/redi"),de=require("@univerjs/engine-formula"),Fr=require("@univerjs/rpc"),ue=require("rxjs"),et=require("rxjs/operators");var Hr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,qr=(n,e,t,o)=>{for(var r=o>1?void 0:o?Gr(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Hr(e,t,r),r},zr=(n,e)=>(t,o)=>e(t,o,n);const X="normalSelectionPluginName";var Fn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(Fn||{});exports.SelectionManagerService=class{constructor(e){C(this,"_selectionInfo",new Map);C(this,"_currentSelection",null);C(this,"_selectionMoveStart$",new ue.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new ue.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new ue.BehaviorSubject(null));C(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());C(this,"_selectionMoveEndBefore$",new ue.BehaviorSubject(null));C(this,"selectionMoveEndBefore$",this._selectionMoveEndBefore$.asObservable());C(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,r;if(this._currentSelection==null||this._currentSelection.pluginName===e)return;const t=this.getSelectionDatasByParam(this._currentSelection);this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(r=this._currentSelection)==null?void 0:r.sheetId},t!=null&&this.add([])}reset(){var e,t;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=X,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(t=>t.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,t=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),t===0?this._refreshStart(this._currentSelection):t===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const e=this.getSelections();return e==null?!1:e.some(({range:t},o)=>e.some(({range:r},i)=>o===i?!1:t.startRow<=r.endRow&&t.endRow>=r.startRow&&t.startColumn<=r.endColumn&&t.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:t,unitId:o,sheetId:r}=e;return(a=(i=this._selectionInfo.get(t))==null?void 0:i.get(o))==null?void 0:a.get(r)}_refresh(e){this._selectionMoveEndBefore$.next(this._getSelectionDatas(e)),this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[0]}_getLastByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[t.length-1]}_addByParam(e,t=!0){const{pluginName:o,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const c=this._selectionInfo.get(o);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(i))u.set(i,[...a]);else{let d=u.get(i);d==null&&(d=[],u.set(i,d)),d.push(...a)}t&&this._refresh({pluginName:o,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:t,unitId:o,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const a=this._selectionInfo.get(t);a.has(o)||a.set(o,new Map);const c=a.get(o);if(!c.has(r))c.set(r,i);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...i)}}_clearByParam(e){const t=this._getSelectionDatas(e);t==null||t.splice(0),this._refresh(e)}_removeByParam(e,t){const o=this._getSelectionDatas(t);o==null||o.splice(e,1),this._refresh(t)}};exports.SelectionManagerService=qr([zr(0,$.Inject(s.ThemeService))],exports.SelectionManagerService);const Yr=s.createInterceptorKey("CELL_CONTENT"),Kr=s.createInterceptorKey("ROW_FILTERED"),Ct={CELL_CONTENT:Yr,ROW_FILTERED:Kr};var Jr=Object.defineProperty,Xr=Object.getOwnPropertyDescriptor,Zr=(n,e,t,o)=>{for(var r=o>1?void 0:o?Xr(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Jr(e,t,r),r},Qr=(n,e)=>(t,o)=>e(t,o,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(t){super();C(this,"_interceptorsByName",new Map);C(this,"_commandInterceptors",[]);C(this,"_workbookDisposables",new Map);C(this,"_worksheetDisposables",new Map);this._univerInstanceService=t,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(o=>{this._interceptWorkbook(o)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(o=>this._disposeWorkbookInterceptor(o))),this.intercept(Ct.CELL_CONTENT,{priority:-1,handler(o,r){const i=r.worksheet.getCellRaw(r.row,r.col);return o?{...i,...o}:i}})}dispose(){super.dispose(),this._workbookDisposables.forEach(t=>t.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(t){if(this._commandInterceptors.includes(t))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(t),this._commandInterceptors.sort((o,r)=>{var i,a;return((i=r.priority)!=null?i:0)-((a=o.priority)!=null?a:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,t)))}onCommandExecute(t){const o=this._commandInterceptors.map(r=>r.getMutations(t));return{preUndos:o.map(r=>{var i;return(i=r.preUndos)!=null?i:[]}).flat(),undos:o.map(r=>r.undos).flat(),preRedos:o.map(r=>{var i;return(i=r.preRedos)!=null?i:[]}).flat(),redos:o.map(r=>r.redos).flat()}}intercept(t,o){const r=t;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(o),this._interceptorsByName.set(r,i.sort((a,c)=>{var u,d;return((u=c.priority)!=null?u:0)-((d=a.priority)!=null?d:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),o)))}fetchThroughInterceptors(t){const o=t,r=this._interceptorsByName.get(o);return s.composeInterceptors(r||[])}_interceptWorkbook(t){const o=new s.DisposableCollection,r=t.getUnitId(),i=this,a=c=>{const u=c.getSheetId();c.__interceptViewModel(d=>{const l=new s.DisposableCollection;i._worksheetDisposables.set(kn(r,c),l),l.add(d.registerCellContentInterceptor({getCell(m,g){return i.fetchThroughInterceptors(Ct.CELL_CONTENT)(c.getCellRaw(m,g),{unitId:r,subUnitId:u,row:m,col:g,worksheet:c,workbook:t})}})),l.add(d.registerRowFilteredInterceptor({getRowFiltered(m){return!!i.fetchThroughInterceptors(Ct.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:t,worksheet:c})}}))})};t.getSheets().forEach(c=>a(c)),o.add(s.toDisposable(t.sheetCreated$.subscribe(c=>a(c)))),o.add(s.toDisposable(()=>t.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),o.add(s.toDisposable(t.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,o)}_disposeWorkbookInterceptor(t){const o=t.getUnitId(),r=this._workbookDisposables.get(o);r&&(r.dispose(),this._workbookDisposables.delete(o))}_disposeSheetInterceptor(t,o){const r=kn(t,o),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Zr([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Qr(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function kn(n,e){return`${n}|${e.getSheetId()}`}const Pe=(n,e)=>{const{unitId:t,subUnitId:o,cellValue:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),d=a.getStyles(),l=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,R,S)=>{const h=s.Tools.deepClone(u==null?void 0:u.getValue(g,R))||{},f=d.getStyleByCell(h);let I=d.getStyleByCell(S);I=ns(f,I),h.s=I,l.setValue(g,R,es(h))}),{...e,options:{},cellValue:l.getMatrix()}};function es(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const G={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:t,subUnitId:o,unitId:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(o);if(!c)return!1;const u=c.getCellMatrix(),d=a.getStyles();return new s.ObjectMatrix(t).forValue((m,g,R)=>{var S;if(!R)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},f=R.t?R.t:R.v!==void 0?On(R.v,R.t):On(h.v,h.t);if(R.f!==void 0&&(h.f=R.f),R.si!==void 0&&(h.si=R.si),R.p!==void 0&&(h.p=R.p),R.v!==void 0&&(h.v=f===s.CellValueType.NUMBER?Number(R.v):f===s.CellValueType.BOOLEAN?ts(R.v)?1:0:R.v),h.v!==void 0&&(h.t=f),R.s!==void 0){const I=d.getStyleByCell(h);I==null&&delete h.s,typeof R.s=="string"&&(R.s=d.get(R.s));const p=ft(I,R.s?R.s:null);p&&s.Tools.removeNull(p),s.Tools.isEmptyObject(p)?delete h.s:h.s=d.setValue(p);const v=R.v?`${R.v}\r
2
- `:"";!R.p&&h.p&&(v&&v!==((S=h.p.body)==null?void 0:S.dataStream)?delete h.p:ss(h.p,R.s?R.s:null))}R.custom!==void 0&&(h.custom=R.custom),u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function On(n,e){return n===null?null:e===s.CellValueType.FORCE_STRING?e:typeof n=="string"?s.isSafeNumeric(n)?(+n==0||+n==1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function ts(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function ns(n,e){return os(n,e)}function os(n,e){if(!e||!Object.keys(e).length)return n;const t=n||{};for(const o in e)o==="bd"?t[o]=rs(t[o]||{},e[o]):o in t||(t[o]=null);return t}function rs(n,e){if(!e||!Object.keys(e).length)return n;for(const t in e)t in n||(n[t]=null);return n}function ft(n,e,t=!1){if(e===null)return e;if(e===void 0)return n;const o=s.Tools.deepClone(n)||{};if(o){for(const r in e)t&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in o&&r==="bd"?o[r]=Object.assign(o[r],e[r]):o[r]=e[r]);return"cl"in o&&("ul"in o&&o.ul&&(o.ul.cl=o.cl),"ol"in o&&o.ol&&(o.ol.cl=o.cl),"st"in o&&o.st&&(o.st.cl=o.cl)),o}}function Hn(n,e){return n.some(t=>t.startIndex===e)?Hn(n,e+1):e}function ss(n,e){var a;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let t=0;const o=[],r=((a=n.body)==null?void 0:a.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:d,ts:l={}}=c;if(t<u){const g={st:t,ed:u},R=ft({},e,!0);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)||(g.ts=R),o.push(g)}const m=ft(l,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,o.push(c),t=Hn(r,d)}const i=n.body.dataStream.endsWith(`\r
3
- `)?n.body.dataStream.length-2:n.body.dataStream.length;if(t<i){const c={st:t,ed:i},u=ft({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),o.push(c)}n.body.textRuns=s.normalizeTextRuns(o)}const is=(n,e,t="")=>n.reduce((o,r)=>{const i=r&&r[e];return typeof i!="string"?(console.warn(r,`${e} is not string`),o):(i?(o[i]||(o[i]=[]),o[i].push(r)):o[t].push(r),o)},{}),as=(n=0)=>{let e=n;return function(){return e++}};function mt(n){return n.v!==void 0&&n.v!==null&&n.v!==""||n.p!==void 0}function cs(n,e,t){const{left:o,right:r,up:i,down:a}=e,c=t.getMaxRows(),u=t.getMaxColumns();let d=!0;const l={...n};for(;d;){if(d=!1,i&&l.startRow!==0){const m=l.startRow-1;t.getMatrixWithMergedCells(m,l.startColumn,m,l.endColumn).forValue((R,S,h)=>{mt(h)&&(l.startRow=Math.min(R,l.startRow),l.startColumn=Math.min(S,l.startColumn),l.endColumn=Math.max(S,l.endColumn),d=!0)})}if(a&&l.endRow!==c-1){const m=l.endRow+1;t.getMatrixWithMergedCells(m,l.startColumn,m,l.endColumn).forValue((R,S,h)=>{mt(h)&&(l.endRow=Math.max(R+(h.rowSpan!==void 0?h.rowSpan-1:0),l.endRow),l.startColumn=Math.min(S,l.startColumn),l.endColumn=Math.max(S,l.endColumn),d=!0)})}if(o&&l.startColumn!==0){const m=l.startColumn-1;t.getMatrixWithMergedCells(l.startRow,m,l.endRow,m).forValue((R,S,h)=>{mt(h)&&(l.startColumn=Math.min(S,l.startColumn),l.startRow=Math.min(R,l.startRow),l.endRow=Math.max(R,l.endRow),d=!0)})}if(r&&l.endColumn!==u-1){const m=l.endColumn+1;t.getMatrixWithMergedCells(l.startRow,m,l.endRow,m).forValue((R,S,h)=>{mt(h)&&(l.endColumn=Math.max(S+(h.colSpan!==void 0?h.colSpan-1:0),l.endColumn),l.startRow=Math.min(R,l.startRow),l.endRow=Math.max(R,l.endRow),d=!0)})}}return l}function Gn(n){const e=new s.ObjectMatrix;return n.forEach(t=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=t;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.clone()}function qn(n){const e=new s.ObjectMatrix;return n.forEach(t=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=t;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),e.clone()}function us(n){const e=new s.ObjectMatrix;return n.forEach(t=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=t;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{s:null})}),e.clone()}const _t={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),t=n.get(s.ICommandService),o=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],R={subUnitId:d,unitId:c,cellValue:Gn(l)},S=Pe(n,R);m.push({id:G.id,params:R}),g.push({id:G.id,params:S});const h=i.onCommandExecute({id:_t.id});return m.push(...h.redos),g.unshift(...h.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}},Yt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),t=n.get(s.ICommandService),o=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:d,unitId:c,cellValue:qn(l)},g=Pe(n,m),R=i.onCommandExecute({id:Yt.id}),S=[{id:G.id,params:m},...R.redos],h=[...R.undos,{id:G.id,params:g}];return s.sequenceExecute(S,t).result?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:S}),!0):!1}},bt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),t=n.get(s.ICommandService),o=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],R={subUnitId:d,unitId:c,cellValue:us(l)},S=Pe(n,R);m.push({id:G.id,params:R}),g.push({id:G.id,params:S});const h=i.onCommandExecute({id:bt.id});return m.push(...h.redos),g.unshift(...h.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}},Kt=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),De={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService),{sheet:o,index:r,unitId:i}=e,a=t.getUniverSheetInstance(i);return a?a.addWorksheet(o.id,r,o):!1}};function zn(n,e){const{unitId:t}=e,o=t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return o?{workbook:o,unitId:o.getUnitId()}:null}function L(n,e={}){const{unitId:t,subUnitId:o}=e,r=t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const i=o?r.getSheetBySheetId(o):r.getActiveSheet();return i?{worksheet:i,workbook:r,unitId:r.getUnitId(),subUnitId:i.getSheetId()}:null}function Pt(n,e){const{unitId:t,subUnitId:o}=e,r=n.getUniverSheetInstance(t);if(!r)return null;const i=r.getSheetBySheetId(o);return i?{worksheet:i,workbook:r}:null}const Yn=(n,e)=>{const t=n.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=Pt(t,e);if(!i)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:a,worksheet:c}=i,u=c.getConfig();return{index:a.getConfig().sheetOrder.findIndex(m=>m===o),sheet:u,unitId:r}},Je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=t.getUniverSheetInstance(r);return i?i.removeSheet(o):!1}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.LocaleService),a=L(r,e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:d}=a,l=s.Tools.deepClone(u.getConfig());l.name+=i.t("sheets.tabs.sheetCopy"),l.id=s.Tools.generateRandomId();const g={index:c.getSheetIndex(u)+1,sheet:l,unitId:d},R=Kt(n,g);return t.syncExecuteCommand(De.id,g)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:Je.id,params:R}],redoMutations:[{id:De.id,params:g}]}),!0):!1}},xe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{from:t,to:o}=e;if(!t||!o)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getSheetBySheetId(e.from.subUnitId),c=i.getSheetBySheetId(e.to.subUnitId);if(!a||!c)return!1;const u=a.getCellMatrix(),d=c.getCellMatrix();return new s.ObjectMatrix(t.value).forValue((l,m,g)=>{u.setValue(l,m,g)}),new s.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),!0}},K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,e)=>{const t=n.get(exports.SelectionManagerService);if(!e)return!1;const{selections:o,type:r}=e;return t.replace(o,r),!0}};function it(n,e,t=!0){const o=e.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(o.forValue((a,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const d={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,d)||r.push(d)}}),r.length===0)return n;const i=s.Rectangle.union(n,...r);return t?it(i,e,t):i}function ls(n,e,t){let o=null;return t.getMatrixWithMergedCells(n,e,n,e).forValue((i,a,c)=>(o={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)),o||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ds(n,e,t){const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;return Number.isNaN(o)&&(n.startRow=0),Number.isNaN(i)&&(n.endRow=e-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(a)&&(n.endColumn=t-1),n}function ie(n,e){const t=Number.isNaN(n.startRow)?0:n.startRow,o=Number.isNaN(n.startColumn)?0:n.startColumn,r=e.getMergedCell(t,o);return r?{...r,actualRow:t,actualColumn:o,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:t,startColumn:o,endRow:n.startRow,endColumn:n.startColumn,actualRow:t,actualColumn:o,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Ue=(n,e,t)=>({id:K.id,params:{unitId:e.getUnitId(),subUnitId:t.getSheetId(),pluginName:X,selections:[{range:n,primary:ie(n,t)}]}});function ms(n){if(!n)return!1;const{range:e,primary:t}=n;return s.Rectangle.equals(e,t)}function gs(n){function e(t,o){function r(i){for(let a=i.startRow;a<=i.endRow;a++)if(!n.getRowFiltered(a))for(let c=i.startColumn;c<=i.endColumn;c++)o(a,c,i)}r(t)}return{forOperableEach:e}}const Jn="sheet.command.move-range",Ut={type:s.CommandType.COMMAND,id:Jn,handler:(n,e)=>{var I,p;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.ErrorService),a=n.get(s.LocaleService),c=L(r);if(!c)return!1;const{worksheet:u,subUnitId:d,unitId:l}=c,m=Tt(n,{unitId:l,subUnitId:d,range:e.fromRange},{unitId:l,subUnitId:d,range:e.toRange});if(m===null)return i.emit(a.t("sheets.info.acrossMergedCell")),!1;const R=n.get(exports.SheetInterceptorService).onCommandExecute({id:Ut.id,params:{...e}}),S=[...(I=R.preRedos)!=null?I:[],...m.redos,...R.redos,{id:K.id,params:{unitId:l,subUnitId:d,pluginName:X,selections:[{range:e.toRange,primary:ie(e.toRange,u)}]}}],h=[...(p=R.preUndos)!=null?p:[],...m.undos,...R.undos,{id:K.id,params:{unitId:l,subUnitId:d,pluginName:X,selections:[{range:e.fromRange,primary:ie(e.fromRange,u)}]}}];return s.sequenceExecute(S,t).result?(o.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:S}),!0):!1}};function Tt(n,e,t,o=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:d,subUnitId:l}=t,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),R=g==null?void 0:g.getSheetBySheetId(l),S=g==null?void 0:g.getSheetBySheetId(c),h=R==null?void 0:R.getCellMatrix(),f=S==null?void 0:S.getCellMatrix();if(R&&S&&h&&f){const I=it(d,R,!1);if(!s.Rectangle.equals(d,I)&&!o)return null;const p=new s.ObjectMatrix,v=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{p.setValue(U,E,f.getValue(U,E)),v.setValue(U,E,null)});const M=new s.ObjectMatrix;s.Range.foreach(d,(U,E)=>{M.setValue(U,E,h.getValue(U,E))});const w=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{const O=s.cellToRange(U,E),F=s.Rectangle.getRelativeRange(O,a),j=s.Rectangle.getPositionRange(F,d);w.setValue(j.startRow,j.startColumn,f.getValue(U,E))});const y={from:{value:v.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:l},unitId:u},P={from:{value:p.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:l},unitId:u};r.push({id:xe.id,params:y}),i.push({id:xe.id,params:P})}return{redos:r,undos:i}}var It=(n=>(n[n.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",n[n.UNIVER_DOC=1]="UNIVER_DOC",n[n.UNIVER_SHEET=2]="UNIVER_SHEET",n[n.UNIVER_SLIDE=3]="UNIVER_SLIDE",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(It||{}),_=(n=>(n[n.View=0]="View",n[n.Edit=1]="Edit",n[n.ManageCollaborator=2]="ManageCollaborator",n[n.Print=3]="Print",n[n.Duplicate=4]="Duplicate",n[n.Comment=5]="Comment",n[n.Copy=6]="Copy",n[n.Share=7]="Share",n[n.Export=8]="Export",n[n.MoveWorksheet=9]="MoveWorksheet",n[n.DeleteWorksheet=10]="DeleteWorksheet",n[n.HideWorksheet=11]="HideWorksheet",n[n.RenameWorksheet=12]="RenameWorksheet",n[n.CreateWorksheet=13]="CreateWorksheet",n[n.SetWorksheetStyle=14]="SetWorksheetStyle",n[n.EditWorksheetCell=15]="EditWorksheetCell",n[n.InsertHyperlink=16]="InsertHyperlink",n[n.Sort=17]="Sort",n[n.Filter=18]="Filter",n[n.PivotTable=19]="PivotTable",n[n.FloatImg=20]="FloatImg",n[n.History=21]="History",n[n.RwHgtClWdt=22]="RwHgtClWdt",n[n.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",n[n.ViewFilter=24]="ViewFilter",n[n.MoveSheet=25]="MoveSheet",n[n.DeleteSheet=26]="DeleteSheet",n[n.HideSheet=27]="HideSheet",n[n.CopySheet=28]="CopySheet",n[n.RenameSheet=29]="RenameSheet",n[n.CreateSheet=30]="CreateSheet",n[n.SelectProtectedCells=31]="SelectProtectedCells",n[n.SelectUnProtectedCells=32]="SelectUnProtectedCells",n[n.SetCellStyle=33]="SetCellStyle",n[n.SetCellValue=34]="SetCellValue",n[n.SetRowStyle=35]="SetRowStyle",n[n.SetColumnStyle=36]="SetColumnStyle",n[n.InsertRow=37]="InsertRow",n[n.InsertColumn=38]="InsertColumn",n[n.DeleteRow=39]="DeleteRow",n[n.DeleteColumn=40]="DeleteColumn",n[n.EditExtraObject=41]="EditExtraObject",n[n.Delete=42]="Delete",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(_||{}),D=(n=>(n[n.Unkonwn=0]="Unkonwn",n[n.Workbook=1]="Workbook",n[n.Worksheet=2]="Worksheet",n[n.SelectRange=3]="SelectRange",n[n.Document=4]="Document",n[n.Slide=5]="Slide",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(D||{});class Xn{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Copy);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Copy}_${e}_${t}`}}class hs{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectProtectedCells}_${e}_${t}`}}class Rs{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectUnProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectUnProtectedCells}_${e}_${t}`}}class Zn{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellStyle}_${e}_${t}`}}class Qn{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellValue);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellValue}_${e}_${t}`}}class eo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.View);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.View}_${e}_${t}`}}class to{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetRowStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetRowStyle}_${e}_${t}`}}class no{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetColumnStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetColumnStyle}_${e}_${t}`}}class oo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertRow}_${e}_${t}`}}class ro{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertColumn}_${e}_${t}`}}class so{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertHyperlink);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertHyperlink}_${e}_${t}`}}class io{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteRow}_${e}_${t}`}}class ao{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteColumn}_${e}_${t}`}}class co{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Sort);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Sort}_${e}_${t}`}}class uo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Filter);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Filter}_${e}_${t}`}}class lo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.PivotTable);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.PivotTable}_${e}_${t}`}}class mo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.EditExtraObject);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.EditExtraObject}_${e}_${t}`}}class Ss{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.ManageCollaborator);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.ManageCollaborator}_${e}_${t}`}}class Jt{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Edit);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Edit}_${e}_${t}`}}class go{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Comment}_${e}`}}class ho{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Edit}_${e}`}}class Ro{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Duplicate}_${e}`}}class So{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Print}_${e}`}}class Co{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Export}_${e}`}}class fo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.MoveSheet}_${e}`}}class vo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.DeleteSheet}_${e}`}}class po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.HideSheet}_${e}`}}class Io{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.RenameSheet}_${e}`}}class Mo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CreateSheet}_${e}`}}class Cs{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.History);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.History}_${e}`}}class wo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.View}_${e}`}}class yo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Share}_${e}`}}class _o{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Copy}_${e}`}}class bo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"subType",_.CopySheet);C(this,"status",s.PermissionStatus.INIT);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CopySheet}_${e}`}}class Po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.ManageCollaborator}_${e}`}}class Et{constructor(e,t,o){C(this,"type",D.SelectRange);C(this,"subType",_.Edit);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=o,this.id=`${D.SelectRange}.${_.Edit}.${o}`}}class Nt{constructor(e,t,o){C(this,"type",D.SelectRange);C(this,"subType",_.View);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=o,this.id=`${D.SelectRange}.${_.View}.${o}`}}const at={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=n.get(s.IPermissionService),u=L(r,{subUnitId:e.subUnitId,unitId:e.unitId});if(!u)return!1;const{subUnitId:d,unitId:l}=u,{value:m,range:g}=e,R=g?[g]:i.getSelectionRanges();if(!R||!R.length||!c.getPermissionPoint(new Jt(l,d).id))return!1;const S=new s.ObjectMatrix;let h;if(s.Tools.isArray(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:E,endColumn:O}=R[y];for(let F=0;F<=E-P;F++)for(let j=0;j<=O-U;j++)S.setValue(F+P,j+U,m[F][j])}else if(s.isICellData(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:E,endColumn:O}=R[y];for(let F=P;F<=E;F++)for(let j=U;j<=O;j++)S.setValue(F,j,m)}else h=m;const f={subUnitId:d,unitId:l,cellValue:h!=null?h:S.getMatrix()},I=Pe(n,f),p=t.syncExecuteCommand(G.id,f),{undos:v,redos:M}=a.onCommandExecute({id:at.id,params:{...f,range:R}}),w=s.sequenceExecute([...M],t);return p&&w.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:G.id,params:I},...v],redoMutations:[{id:G.id,params:f},...M]}),!0):!1}};function Xt(n,e){const t=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c,cellValue:u={}}=e,d=n.get(s.IUniverInstanceService),l=n.get(exports.SheetInterceptorService),m=d.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(i);if(g){const R=g.getCellMatrix(),S=R.getDataRange();if(a.startColumn<=S.endColumn||a.startRow<=S.endRow){let v,M;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,S.endRow);let P=0;for(let E=a.startRow;E<=y;E++){const O=R.getRow(E),F=O?s.getArrayLength(O)-1:0;P=Math.max(P,F)}v={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:P};const U=a.endColumn-a.startColumn+1;M={startRow:a.startRow,startColumn:v.startColumn+U,endRow:y,endColumn:v.endColumn+U}}else{const y=Math.min(a.endColumn,S.endColumn),P=S.endRow;v={startRow:a.startRow,startColumn:a.startColumn,endRow:P,endColumn:y};const U=a.endRow-a.startRow+1;M={startRow:v.startRow+U,startColumn:a.startColumn,endRow:v.endRow+U,endColumn:y}}const w=Tt(n,{unitId:r,subUnitId:i,range:v},{unitId:r,subUnitId:i,range:M},!0);w&&(t.push(...w.redos),o.push(...w.undos))}if(Object.entries(u).length===0)for(let v=a.startRow;v<=a.endRow;v++){u[v]||(u[v]={});for(let M=a.startColumn;M<=a.endColumn;M++)u[v][M]=null}const h={subUnitId:i,unitId:r,cellValue:u},f=Pe(n,h),{undos:I,redos:p}=l.onCommandExecute({id:at.id,params:{...h,range:a}});t.push({id:G.id,params:h},...p),o.push({id:G.id,params:f},...I)}return{redo:t,undo:o}}function Zt(n,e){const t=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c}=e,u=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),l=u.getUniverSheetInstance(r),m=l==null?void 0:l.getSheetBySheetId(i);if(m){const g=m.getCellMatrix(),R=g.getDataRange(),S={subUnitId:i,unitId:r,cellValue:Gn([a])},h=Pe(n,S),f=d.onCommandExecute({id:at.id,params:S});if(t.push({id:G.id,params:S},...f.redos),o.push(...f.undos,{id:G.id,params:h}),a.startColumn<=R.endColumn||a.startRow<=R.endRow){let I=null,p=null;if(c===s.Dimension.COLUMNS&&a.endColumn<R.endColumn){const v=Math.min(a.endRow,R.endRow);let M=0;for(let y=a.startRow;y<=v;y++){const P=g.getRow(y),U=P?s.getArrayLength(P)-1:0;M=Math.max(M,U)}I={startRow:a.startRow,startColumn:a.endColumn+1,endRow:v,endColumn:M};const w=a.endColumn-a.startColumn+1;p={startRow:a.startRow,startColumn:I.startColumn-w,endRow:v,endColumn:I.endColumn-w}}if(c===s.Dimension.ROWS&&a.endRow<R.endRow){const v=Math.min(a.endColumn,R.endColumn),M=R.endRow;I={startRow:a.endRow+1,startColumn:a.startColumn,endRow:M,endColumn:v};const w=a.endRow-a.startRow+1;p={startRow:I.startRow-w,startColumn:a.startColumn,endRow:I.endRow-w,endColumn:v}}if(I&&p){const v=Tt(n,{unitId:r,subUnitId:i,range:I},{unitId:r,subUnitId:i,range:p},!0);v&&(t.push(...v.redos),o.push(...v.undos))}}}return{redo:t,undo:o}}function fs(n,e,t,o,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:d}=e;if(r===s.Dimension.ROWS){const l=c-a+1;for(let m=t;m>=a;m--)for(let g=u;g<=d;g++){const R=n.getValue(m,g);R==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,R)}for(let m=c;m>=a;m--)for(let g=u;g<=d;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 l=d-u+1;for(let m=a;m<=c;m++)for(let g=o;g>=u;g--){const R=n.getValue(m,g);R==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,R)}for(let m=a;m<=c;m++)for(let g=d;g>=u;g--)i&&i[m]&&i[m][g]?n.setValue(m,g,i[m][g]):n.realDeleteValue(m,g)}}function vs(n,e,t,o,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=e,d=a-i+1,l=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=t;m++)for(let g=c;g<=u;g++){const R=n.getValue(m+d,g);R==null?n.realDeleteValue(m,g):n.setValue(m,g,R)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let g=c;g<=o;g++){const R=n.getValue(m,g+l);R==null?n.realDeleteValue(m,g):n.setValue(m,g,R)}}const Uo="sheet.command.delete-range-move-left",kt={type:s.CommandType.COMMAND,id:Uo,handler:async(n,e)=>{var M,w,y;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=L(r);if(!c)return!1;const{worksheet:u,workbook:d,subUnitId:l,unitId:m}=c;let g=e==null?void 0:e.range;if(g||(g=(M=i.getLast())==null?void 0:M.range),!g)return!1;const R={range:g,subUnitId:l,unitId:m,shiftDimension:s.Dimension.COLUMNS},S=a.onCommandExecute({id:kt.id,params:{range:g}}),{redo:h,undo:f}=Zt(n,R),I=[...(w=S.preRedos)!=null?w:[],...h],p=[...S.undos,...f];return I.push(...S.redos),I.push(Ue(g,d,u)),p.push(...(y=S.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(o.pushUndoRedo({unitID:m,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},To="sheet.command.delete-range-move-up",Ot={type:s.CommandType.COMMAND,id:To,handler:async(n,e)=>{var M,w,y;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=L(r);if(!c)return!1;const{unitId:u,subUnitId:d,workbook:l,worksheet:m}=c;let g=e==null?void 0:e.range;if(g||(g=(M=i.getLast())==null?void 0:M.range),!g)return!1;const R={range:g,subUnitId:d,unitId:u,shiftDimension:s.Dimension.ROWS},S=a.onCommandExecute({id:Ot.id,params:{range:g}}),{redo:h,undo:f}=Zt(n,R),I=[...(w=S.preRedos)!=null?w:[],...h],p=[...S.undos,...f];return I.push(...S.redos),I.push(Ue(g,l,m)),p.push(...(y=S.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(o.pushUndoRedo({unitID:u,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},Qt=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},pe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,e)=>{var S;const{unitId:t,subUnitId:o,range:r,rowInfo:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(o);if(u==null)throw new Error("worksheet is null error!");const d=u.getRowManager().getRowData(),l={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let h=m;h<m+g;h++)i?s.insertMatrixArray(h,(S=i[h-r.startRow])!=null?S:l,d):s.insertMatrixArray(h,l,d);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},en=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Ie={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,e)=>{var S;const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getColumnManager(),{range:a,colInfo:c}=e,d=i.getColumnData(),l=a.startColumn,m=a.endColumn-a.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let h=l;h<l+m;h++){const f={w:g,hd:0};c?s.insertMatrixArray(h,(S=c[h-a.startColumn])!=null?S:f,d):s.insertMatrixArray(h,f,d)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},ps=(n,e)=>{const r=e.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}},Me={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getRowManager().getRowData();for(let l=i.startRow;l<=i.endRow;l++)r.getRowFiltered(l);const u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.getCellMatrix().removeRows(i.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Is=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},d=e.range,l=s.sliceMatrixArray(d.startColumn,d.endColumn,c),m=s.concatMatrixArray(u,l);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:m}},fe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getColumnManager().getColumnData(),u=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(i.startColumn,u),!0}},Ms="sheet.command.insert-range-move-down",Dt={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var j,b,oe;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const d=L(r);if(!d)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:R}=d;let S=e==null?void 0:e.range;if(S||(S=(j=i.getLast())==null?void 0:j.range),!S)return!1;const h=[],f=[],I=g.getCellMatrix(),p=I.getDataRange(),M=I.getSlice(p.startRow,p.endRow,S.startColumn,S.endColumn).getDataRange().endRow,w=Math.max(M+(S.endRow-S.startRow+1)-p.endRow,0);if(w>0){const Z=S.startRow-1,Q=g.getRowHeight(Z),J={unitId:l,subUnitId:m,range:{startRow:p.endRow+1,endRow:p.endRow+w,startColumn:p.startColumn,endColumn:p.endColumn},rowInfo:new Array(w).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};h.push({id:pe.id,params:J});const ne=Qt(n,J);f.push({id:Me.id,params:ne})}const y={};s.Range.foreach(S,(Z,Q)=>{const J=g.getCell(Z,Q);J&&(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:S,subUnitId:m,unitId:l,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:U,undo:E}=Xt(n,P);h.push(...U),f.push(...E);const O=a.onCommandExecute({id:Dt.id,params:{range:S}});return h.push(...O.redos),h.push(Ue(S,R,g)),f.push(...(b=O.preUndos)!=null?b:[]),h.unshift(...(oe=O.preRedos)!=null?oe:[]),f.unshift(...O.undos),s.sequenceExecute(h,t)?(o.pushUndoRedo({unitID:l,undoMutations:f.reverse(),redoMutations:h}),!0):!1}},Eo="sheet.command.insert-range-move-right",xt={type:s.CommandType.COMMAND,id:Eo,handler:async(n,e)=>{var j,b,oe;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const d=L(r);if(!d)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:R}=d;let S=e==null?void 0:e.range;if(S||(S=(j=i.getLast())==null?void 0:j.range),!S)return!1;const h=[],f=[],I=m.getCellMatrix(),p=I.getDataRange(),M=I.getSlice(S.startRow,S.endRow,p.startColumn,p.endColumn).getDataRange().endColumn,w=Math.max(M+(S.endColumn-S.startColumn+1)-p.endColumn,0);if(w>0){const Z=S.startColumn-1,Q=m.getColumnWidth(Z),J={unitId:g,subUnitId:R,range:{startRow:p.startRow+1,endRow:p.endRow,startColumn:p.endColumn+1,endColumn:p.endColumn+w},colInfo:new Array(w).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};h.push({id:Ie.id,params:J});const ne=en(n,J);f.push({id:fe.id,params:ne})}const y={};s.Range.foreach(S,(Z,Q)=>{const J=m.getCell(Z,Q);!J||!J.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:S,subUnitId:R,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:U,undo:E}=Xt(n,P);h.push(...U),f.push(...E);const O=a.onCommandExecute({id:xt.id,params:{range:S}});return h.push(...O.redos),h.push(Ue(S,l,m)),f.push(...(b=O.preUndos)!=null?b:[]),h.unshift(...(oe=O.preRedos)!=null?oe:[]),f.unshift(...O.undos),s.sequenceExecute(h,t).result?(o.pushUndoRedo({unitID:g,undoMutations:f.reverse(),redoMutations:h}),!0):!1}},No="sheet.command.insert-row",Ve={type:s.CommandType.COMMAND,id:No,handler:async(n,e)=>{var P,U,E,O;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),a=r.getUniverSheetInstance(e.unitId),c=a.getSheetBySheetId(e.subUnitId),{range:u,direction:d,unitId:l,subUnitId:m,cellValue:g}=e,{startRow:R,endRow:S}=u,h=d===s.Direction.UP?R:R-1,f=c.getRowHeight(h),I={unitId:l,subUnitId:m,range:u,rowInfo:new Array(S-R+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},p=Qt(n,I),v=[{id:pe.id,params:I}],M=[{id:Me.id,params:p}];g&&v.push({id:G.id,params:{unitId:l,subUnitId:m,cellValue:g}});const w=i.onCommandExecute({id:Ve.id,params:e});return v.unshift(...(P=w.preRedos)!=null?P:[]),v.push(...(U=w.redos)!=null?U:[]),v.push(Ue(u,a,c)),M.unshift(...(E=w.preUndos)!=null?E:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(v,t).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M,redoMutations:v}),!0):!1}},ko={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const t=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(R=>R.range);let o;if((t==null?void 0:t.length)===1)o=t[0];else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endRow-o.startRow+1,l={};s.Range.foreach(o,(R,S)=>{const h=a.getCell(R,S);!h||!h.s||(l[R]||(l[R]={}),l[R][S]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:o.startRow,endRow:o.startRow+d-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:l};return n.get(s.ICommandService).executeCommand(Ve.id,m)}},Oo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const t=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let o;if((t==null?void 0:t.length)===1)o=t[0];else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endRow-o.startRow+1,l={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:o.endRow+1,endRow:o.endRow+d,startColumn:0,endColumn:a.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW}};return n.get(s.ICommandService).executeCommand(Ve.id,l)}},Do="sheet.command.insert-col",$e={type:s.CommandType.COMMAND,id:Do,handler:async(n,e)=>{var P,U,E,O;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),{range:a,direction:c,subUnitId:u,unitId:d,cellValue:l}=e,{startColumn:m,endColumn:g}=e.range,R=r.getUniverSheetInstance(e.unitId),S=R.getSheetBySheetId(e.subUnitId),h=c===s.Direction.LEFT?m:m-1,f=S.getColumnWidth(h),I={unitId:d,subUnitId:u,range:a,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},p=en(n,I),v=[{id:Ie.id,params:I}],M=[{id:fe.id,params:p}];l&&v.push({id:G.id,params:{unitId:d,subUnitId:u,cellValue:l}});const w=i.onCommandExecute({id:$e.id,params:e});return v.unshift(...(P=w.preRedos)!=null?P:[]),v.push(...(U=w.redos)!=null?U:[]),v.push(Ue(a,R,S)),M.unshift(...(E=w.preUndos)!=null?E:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(v,t).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M.filter(Boolean),redoMutations:v.filter(Boolean)}),!0):!1}},xo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const t=n.get(exports.SelectionManagerService).getSelections();let o;if((t==null?void 0:t.length)===1)o=t[0].range;else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endColumn-o.startColumn+1,l={};s.Range.foreach(o,(g,R)=>{const S=a.getCell(g,R);!S||!S.s||(l[g]||(l[g]={}),l[g][R]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:o.startColumn,endColumn:o.startColumn+d-1,startRow:0,endRow:a.getLastRowWithContent(),rangeType:s.RANGE_TYPE.COLUMN},cellValue:l};return n.get(s.ICommandService).executeCommand($e.id,m)}},Ao={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const t=n.get(exports.SelectionManagerService).getSelections();let o;if((t==null?void 0:t.length)===1)o=t[0].range;else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endColumn-o.startColumn+1,l={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:o.endColumn+1,endColumn:o.endColumn+d,startRow:0,endRow:a.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand($e.id,l)}},Wo={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,e)=>{var f;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.LocaleService),a=zn(r,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:c,workbook:u}=a;let d=u.getSheets().length;const l=e==null?void 0:e.sheet,m=l==null?void 0:l.id,g=s.mergeWorksheetSnapshotWithDefault(l||{});e?(d=(f=e.index)!=null?f:d,g.id=m||s.Tools.generateRandomId(),g.name=(l==null?void 0:l.name)||u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`)):(g.id=s.Tools.generateRandomId(),g.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const R={index:d,sheet:g,unitId:c},S=Kt(n,R);return t.syncExecuteCommand(De.id,R)?(o.pushUndoRedo({unitID:c,undoMutations:[{id:Je.id,params:S}],redoMutations:[{id:De.id,params:R}]}),!0):!1}};function Lo(n,e){const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:t,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:t,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:{...i,endRow:i.endRow-c,startRow:i.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const d=r.startRow,l=r.endRow-r.startRow+1,m=i.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(d,l,m,g),u.getCellMatrix().moveRows(d,l,m),!0}};function Vo(n,e){const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:t,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:t,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:{...i,startColumn:i.startColumn-c,endColumn:i.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const d=r.startColumn,l=r.endColumn-r.startColumn+1,m=i.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(d,l,m,g),u.getCellMatrix().moveColumns(d,l,m),!0}};function ws(n,e){return e.getMergeData().some(t=>t.startRow<n&&n<=t.endRow)}function ys(n,e){return e.getMergeData().some(t=>t.startColumn<n&&n<=t.endColumn)}const $o="sheet.command.move-rows",At={id:$o,type:s.CommandType.COMMAND,handler:async(n,e)=>{var Q,J;const o=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:i}}=e,a=o==null?void 0:o.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.ROW&&ne.range.startRow<=r&&r<=ne.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),d=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const l=d.getActiveSheet();if(!l)return!1;const m=d.getUnitId(),g=l.getSheetId(),R=n.get(s.ErrorService),S=n.get(s.LocaleService),h=a[0].range,f=a[0].primary,I=it(h,l,!1);if(!s.Rectangle.equals(h,I))return R.emit(S.t("sheets.info.partOfCell")),!1;if(ws(i,l))return R.emit(S.t("sheets.info.acrossMergedCell")),!1;const p={...h,startRow:i,endRow:i+h.endRow-h.startRow},v={unitId:m,subUnitId:g,sourceRange:h,targetRange:p},M=Lo(n,v),y=i-r<0,P=h.endRow-h.startRow+1,U=y?p:{...p,startRow:p.startRow-P,endRow:p.endRow-P},E={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ie(U,l),style:null}]},O={unitId:m,subUnitId:g,pluginName:X,selections:[{range:h,primary:f,style:null}]},F=n.get(s.ICommandService),j=c.onCommandExecute({id:At.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:_e.id,params:v},{id:K.id,params:E},...j.redos],oe=[...(J=j.preUndos)!=null?J:[],{id:_e.id,params:M},{id:K.id,params:O},...j.undos];return s.sequenceExecute(b,F).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},Bo="sheet.command.move-cols",Wt={id:Bo,type:s.CommandType.COMMAND,handler:async(n,e)=>{var Q,J;const o=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:i}}=e,a=o==null?void 0:o.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.COLUMN&&ne.range.startColumn<=r&&r<=ne.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),d=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const l=d.getActiveSheet();if(!l)return!1;const m=d.getUnitId(),g=l.getSheetId(),R=n.get(s.ErrorService),S=n.get(s.LocaleService),h=a[0].range,f=a[0].primary,I=it(h,l,!1);if(!s.Rectangle.equals(h,I))return R.emit(S.t("sheets.info.partOfCell")),!1;if(ys(i,l))return R.emit(S.t("sheets.info.acrossMergedCell")),!1;const p={...h,startColumn:i,endColumn:i+h.endColumn-h.startColumn},v={unitId:m,subUnitId:g,sourceRange:h,targetRange:p},M=Vo(n,v),w=h.endColumn-h.startColumn+1,U=i-r<0?p:{...p,startColumn:p.startColumn-w,endColumn:p.endColumn-w},E={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ie(U,l),style:null}]},O={unitId:m,subUnitId:g,pluginName:X,selections:[{range:h,primary:f,style:null}]},F=n.get(s.ICommandService),j=c.onCommandExecute({id:Wt.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:be.id,params:v},{id:K.id,params:E},...j.redos],oe=[...(J=j.preUndos)!=null?J:[],{id:be.id,params:M},{id:K.id,params:O},...j.undos];return s.sequenceExecute(b,F).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},jo="sheet.command.remove-row",ct={type:s.CommandType.COMMAND,id:jo,handler:async(n,e)=>{var p,v,M,w;const t=n.get(exports.SelectionManagerService),o=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=n.get(s.IUniverInstanceService),a=L(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:d,unitId:l}=a;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)u.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[r.startRow,...m.map(U=>U+1)],P=[...m.map(U=>U-1),r.endRow];for(let U=y.length-1;U>=0;U--)y[U]<=P[U]&&g.push({startRow:y[U],endRow:P[U],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const R=[],S=[];g.forEach(y=>{const P={unitId:l,subUnitId:d,range:y},U=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),E={unitId:l,subUnitId:d,cellValue:U.getMatrix()},O=ps(P,u);R.push({id:Me.id,params:P}),S.unshift({id:pe.id,params:O},{id:G.id,params:E})});const h=o.onCommandExecute({id:ct.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(v=h.preRedos)!=null?v:[],...R,...h.redos,Ue(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(M=h.preUndos)!=null?M:[],...S,...h.undos],redoMutations:[...(w=h.preRedos)!=null?w:[],...R,...h.redos]}),!0):!1}},Fo="sheet.command.remove-col",ut={type:s.CommandType.COMMAND,id:Fo,handler:async(n,e)=>{var p,v,M,w;const t=n.get(exports.SelectionManagerService),o=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=n.get(s.IUniverInstanceService),a=L(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:d,unitId:l}=a;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:l,subUnitId:d,range:r},g=Is(n,m),R=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),S={unitId:l,subUnitId:d,cellValue:R.getMatrix()},h=o.onCommandExecute({id:ut.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(v=h.preRedos)!=null?v:[],{id:fe.id,params:m},...h.redos,Ue(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(M=h.preUndos)!=null?M:[],{id:Ie.id,params:g},{id:G.id,params:S},...h.undos],redoMutations:[...(w=h.preRedos)!=null?w:[],{id:fe.id,params:m},...h.redos]}),!0):!1}},tn={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,e)=>{var p,v;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),a=L(r,e);if(!a)return!1;const{unitId:c,subUnitId:u,workbook:d,worksheet:l}=a;if(d.getSheets().length<=1)return!1;const m=d.getSheetIndex(l);d.getConfig().sheetOrder[m+1];const g={subUnitId:u,unitId:c,subUnitName:l.getName()},R=Yn(n,g),S=i.onCommandExecute({id:tn.id,params:{unitId:c,subUnitId:u}}),h=[...(p=S.preRedos)!=null?p:[],{id:Je.id,params:g},...S.redos],f=[...(v=S.preUndos)!=null?v:[],{id:De.id,params:R},...S.undos];return s.sequenceExecute(h,t)?(o.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:h}),!0):!1}},Ce=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},H={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)a.push(c[u]);return!0}},ce=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,c=e.ranges,u=[];for(let d=0;d<c.length;d++)for(let l=a.length-1;l>=0;l--){const m=a[l],g=c[d];s.Rectangle.intersects(m,g)&&u.push(a[l])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},z={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let d=a.length-1;d>=0;d--){const l=a[d],m=c[u];s.Rectangle.intersects(l,m)&&a.splice(d,1)}return!0}},Ho={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=L(r);if(!a)return!1;const{subUnitId:c,unitId:u,worksheet:d}=a,l={unitId:u,subUnitId:c,ranges:i},g=d.getConfig().mergeData.filter(O=>i.some(F=>s.Rectangle.intersects(F,O)));if(!g.length)return!1;const R=ce(n,l),S=e.getSelections();if(!(S!=null&&S.length))return!1;const h=s.Tools.deepClone(S),f=s.Tools.deepClone(S),I=f[f.length-1],{startRow:p,startColumn:v}=I.range;I.primary={startRow:p,startColumn:v,endRow:p,endColumn:v,actualRow:p,actualColumn:v,isMerged:!1,isMergedMainCell:!1};const M=_s(d,g),w={unitId:u,subUnitId:c,cellValue:M.redoParams.getMatrix()},y={unitId:u,subUnitId:c,cellValue:M.undoParams.getMatrix()},P=[{id:z.id,params:R},{id:G.id,params:w},{id:K.id,params:{selections:f}}],U=[{id:H.id,params:R},{id:G.id,params:y},{id:K.id,params:{selections:h}}];return s.sequenceExecute(P,t)?(o.pushUndoRedo({unitID:u,undoMutations:U,redoMutations:P}),!0):!1}};function _s(n,e){const t=new s.ObjectMatrix,o=new s.ObjectMatrix;return e.forEach(r=>{const{startRow:i,startColumn:a,endColumn:c,endRow:u}=r,d=n.getCellMatrix().getValue(i,a);if(d!=null&&d.s)for(let l=i;l<=u;l++)for(let m=a;m<=c;m++)(l!==i||m!==a)&&(t.setValue(l,m,{s:d.s}),o.setValue(l,m,null))}),{redoParams:t,undoParams:o}}class Be{constructor(){C(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new ue.BehaviorSubject(this._borderInfo));C(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function gt(n,e){const{startRow:t,startColumn:o,endRow:r,endColumn:i}=n;for(let a=t;a<=r;a++)for(let c=o;c<=i;c++)e(a,c)}const Go={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:t,subUnitId:o,value:r}=e,{type:i,color:a,style:c}=r,u=n.get(s.ICommandService),d=n.get(Be);return d.setType(i),d.setColor(a),d.setStyle(c),u.executeCommand(Xe.id,{unitId:t,subUnitId:o})}},qo={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const t=n.get(s.ICommandService);return n.get(Be).setType(e.value),t.executeCommand(Xe.id)}},zo={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(s.ICommandService);return n.get(Be).setStyle(e.value),t.executeCommand(Xe.id)}},Yo={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(s.ICommandService);return n.get(Be).setColor(e.value),t.executeCommand(Xe.id)}},Xe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(Be),c=L(r,e);if(!c)return!1;const{worksheet:u,unitId:d,subUnitId:l}=c,m=i.getSelectionRanges(),g=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:R,color:S,type:h,activeBorderType:f}=a.getBorderInfo();if(!f)return!1;const I=h===s.BorderType.TOP||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,p=h===s.BorderType.LEFT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,v=h===s.BorderType.BOTTOM||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,M=h===s.BorderType.RIGHT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,w=h===s.BorderType.VERTICAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,y=h===s.BorderType.HORIZONTAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,P=h.indexOf("tlbr")>-1,U=h.indexOf("tlbc")>-1,E=h.indexOf("tlmr")>-1,O=h.indexOf("bltr")>-1,F=h.indexOf("mltr")>-1,j=h.indexOf("bctr")>-1,b=m[0],oe={startRow:b.startRow-1,startColumn:b.startColumn,endRow:b.startRow-1,endColumn:b.endColumn},Z={startRow:b.startRow,startColumn:b.startColumn-1,endRow:b.endRow,endColumn:b.startColumn-1},Q={startRow:b.endRow+1,startColumn:b.startColumn,endRow:b.endRow+1,endColumn:b.endColumn},J={startRow:b.startRow,startColumn:b.endColumn+1,endRow:b.endRow,endColumn:b.endColumn+1},ne={startRow:b.startRow,startColumn:b.startColumn,endRow:b.startRow,endColumn:b.endColumn},Un={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.startColumn},Tn={startRow:b.endRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn},En={startRow:b.startRow,startColumn:b.endColumn,endRow:b.endRow,endColumn:b.endColumn},V=new s.ObjectMatrix,Y={s:R,cl:{rgb:S}},dt=(x,N)=>{let B=null;return g.forEach(re=>{s.Rectangle.intersects(re,{startColumn:N,endColumn:N,startRow:x,endRow:x})&&(B=re)}),B};function q(x,N,B){x.startRow<0||x.startColumn<0||gt(x,(re,me)=>{var k,Ze;const se=dt(re,me);let ae=N;if(se&&(N.bc_tr||N.ml_tr||N.bl_tr||N.tl_mr||N.tl_bc||N.tl_br)){if(B){const ge=s.Tools.deepClone((k=V.getValue(se.startRow,se.startColumn))==null?void 0:k.s);ae=ge!=null&&ge.bd?Object.assign(ge.bd,N):N}V.setValue(se.startRow,se.startColumn,{s:{bd:ae}})}else{if(B){const ge=s.Tools.deepClone((Ze=V.getValue(re,me))==null?void 0:Ze.s);ae=ge!=null&&ge.bd?Object.assign(ge.bd,N):N}V.setValue(re,me,{s:{bd:ae}})}})}I&&(q(oe,{b:null}),q(ne,{t:s.Tools.deepClone(Y)},!0)),v&&(q(Q,{t:null}),q(Tn,{b:s.Tools.deepClone(Y)},!0)),p&&(q(Z,{r:null}),q(Un,{l:s.Tools.deepClone(Y)},!0)),M&&(q(J,{l:null}),q(En,{r:s.Tools.deepClone(Y)},!0)),P&&q(b,{tl_br:s.Tools.deepClone(Y)},!0),U&&q(b,{tl_bc:s.Tools.deepClone(Y)},!0),E&&q(b,{tl_mr:s.Tools.deepClone(Y)},!0),O&&q(b,{bl_tr:s.Tools.deepClone(Y)},!0),F&&q(b,{ml_tr:s.Tools.deepClone(Y)},!0),j&&q(b,{bc_tr:s.Tools.deepClone(Y)},!0),w&&gt(b,(x,N)=>{var re,me,se,ae;const B=dt(x,N);if(B){if(B.endColumn!==b.endColumn){const k=(re=V.getValue(B.startRow,B.startColumn))==null?void 0:re.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(B.startColumn!==b.startColumn){const k=(me=V.getValue(B.startRow,B.startColumn))==null?void 0:me.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}else{if(N!==b.endColumn){const k=(se=V.getValue(x,N))==null?void 0:se.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(N!==b.startColumn){const k=(ae=V.getValue(x,N))==null?void 0:ae.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}}),y&&gt(b,(x,N)=>{var re,me,se,ae;const B=dt(x,N);if(B){if(B.endRow!==b.endRow){const k=(re=V.getValue(B.startRow,B.startColumn))==null?void 0:re.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(B.startRow!==b.startRow){const k=(me=V.getValue(B.startRow,B.startColumn))==null?void 0:me.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}else{if(x!==b.endRow){const k=(se=V.getValue(x,N))==null?void 0:se.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(x!==b.startRow){const k=(ae=V.getValue(x,N))==null?void 0:ae.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}}),!I&&!v&&!p&&!M&&!w&&!y&&!P&&!U&&!E&&!O&&!F&&!j&&(q(oe,{b:null}),q(ne,{t:null},!0),q(Q,{t:null}),q(Tn,{b:null},!0),q(Z,{r:null}),q(Un,{l:null},!0),q(J,{l:null}),q(En,{r:null},!0),q(b,{tl_br:null},!0),q(b,{tl_bc:null},!0),q(b,{tl_mr:null},!0),q(b,{bl_tr:null},!0),q(b,{ml_tr:null},!0),q(b,{bc_tr:null},!0),gt(b,(x,N)=>{var re,me,se,ae,k,Ze,ge,Nn;const B=dt(x,N);if(B){if(B.endColumn!==b.endColumn){const A=(re=V.getValue(B.startRow,B.startColumn))==null?void 0:re.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(B.startColumn!==b.startColumn){const A=(me=V.getValue(B.startRow,B.startColumn))==null?void 0:me.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(B.endRow!==b.endRow){const A=(se=V.getValue(B.startRow,B.startColumn))==null?void 0:se.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(B.startRow!==b.startRow){const A=(ae=V.getValue(B.startRow,B.startColumn))==null?void 0:ae.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(N!==b.endColumn){const A=(k=V.getValue(x,N))==null?void 0:k.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(N!==b.startColumn){const A=(Ze=V.getValue(x,N))==null?void 0:Ze.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(x!==b.endRow){const A=(ge=V.getValue(x,N))==null?void 0:ge.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(x!==b.startRow){const A=(Nn=V.getValue(x,N))==null?void 0:Nn.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const jt={unitId:d,subUnitId:l,cellValue:V.getData()},$r=Pe(n,jt);return t.syncExecuteCommand(G.id,jt)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:G.id,params:$r}],redoMutations:[{id:G.id,params:jt}]}),!0):!1}},bs=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},He={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},Ps=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ge={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{var I,p;const{unitId:t,subUnitId:o,ranges:r}=e,i=n.get(exports.SheetInterceptorService),a=n.get(s.ICommandService),c=n.get(s.IUniverInstanceService),u=L(c,{unitId:t,subUnitId:o});if(!u)return!1;const{worksheet:d}=u,l={unitId:t,subUnitId:o,ranges:r},m={unitId:t,subUnitId:o,pluginName:X,selections:r.map(v=>({range:v,primary:ie(v,d),style:null}))},g=Ps(n,l),R={unitId:t,subUnitId:o,pluginName:X,selections:Jo(r).map(v=>({range:v,primary:ie(v,d),style:null}))},S=s.sequenceExecute([{id:Ge.id,params:l},{id:K.id,params:m}],a),h=i.onCommandExecute({id:Lt.id,params:e}),f=s.sequenceExecute([...h.redos],a);return S.result&&f.result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:t,undoMutations:[{id:He.id,params:g},{id:K.id,params:R},...(I=h.undos)!=null?I:[]],redoMutations:[...(p=h.preRedos)!=null?p:[],{id:Ge.id,params:l},{id:K.id,params:m},...h.redos]}),!0}},Ko={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var d;const e=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),o=(d=e.getSelections())==null?void 0:d.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=L(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:i,unitId:a,subUnitId:c}=r,u=o.map(l=>i.getHiddenCols(l.startColumn,l.endColumn)).flat();return t.executeCommand(Lt.id,{unitId:a,subUnitId:c,ranges:u})}},nn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var I,p,v;const e=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService),o=n.get(s.IUniverInstanceService),r=n.get(s.ICommandService);let i=(I=e.getSelections())==null?void 0:I.map(M=>M.range).filter(M=>M.rangeType===s.RANGE_TYPE.COLUMN);if(!(i!=null&&i.length))return!1;const a=L(o);if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:d}=a;i=Us(a.worksheet,i);const l={unitId:u,subUnitId:d,ranges:i},m={unitId:u,subUnitId:d,pluginName:X,selections:Jo(i).map(M=>({range:M,primary:ie(M,c),style:null}))},g=bs(n,l),R={unitId:u,subUnitId:d,pluginName:X,selections:i.map(M=>({range:M,primary:ie(M,c),style:null}))},S=s.sequenceExecute([{id:He.id,params:l},{id:K.id,params:m}],r),h=t.onCommandExecute({id:nn.id,params:l}),f=s.sequenceExecute([...h.redos],r);return S.result&&f.result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[{id:Ge.id,params:g},{id:K.id,params:R},...(p=h.undos)!=null?p:[]],redoMutations:[...(v=h.preRedos)!=null?v:[],{id:He.id,params:l},{id:K.id,params:m},...h.redos]}),!0):!1}};function Us(n,e){const t=n.getRowCount()-1,o=n.getHiddenCols(),r=[];return e.forEach(i=>{const a=o.filter(c=>c.startColumn>=i.startColumn&&c.endColumn<=i.endColumn);if(a.length){let c=i.startColumn;a.forEach(u=>{u.startColumn>c&&(r.push({startColumn:c,endColumn:u.startColumn-1,startRow:0,endRow:t}),c=u.endColumn+1)}),c<=i.endColumn&&r.push({startColumn:c,endColumn:i.endColumn,startRow:0,endRow:t})}else r.push(i)}),r}function Jo(n){return Ts(n).map(t=>{const o=t.startColumn===0?t.endColumn+1:t.startColumn-1;return{...t,startColumn:o,endColumn:o}})}function Ts(n){const e=[];let t;return n.sort((o,r)=>o.startColumn-r.startColumn).forEach(o=>{if(!t){t=o;return}t.endColumn===o.startColumn-1?t.endColumn=o.endColumn:(e.push(t),t=o)}),e.push(t),e}const on=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...a}},Ne={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:c,ySplit:u,xSplit:d}=e;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:d},!0}},Xo={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=L(r);if(!i)return!1;const{unitId:a,subUnitId:c,worksheet:u}=i,{startColumn:d,startRow:l,xSplit:m,ySplit:g}=e;if(l>=u.getRowCount()||d>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const R={unitId:a,subUnitId:c,...e},S=on(n,R);return t.syncExecuteCommand(Ne.id,R)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Ne.id,params:S}],redoMutations:[{id:Ne.id,params:R}]}),!0):!1}},Es={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),o=n.get(s.IUniverInstanceService),r=L(o);if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={unitId:i,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=on(n,c);return e.syncExecuteCommand(Ne.id,c)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Ne.id,params:u}],redoMutations:[{id:Ne.id,params:c}]}),!0):!1}},Ns=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},qe={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},ks=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},ze={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{var I,p,v;const{unitId:t,subUnitId:o,ranges:r}=e,i=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),c=n.get(exports.SheetInterceptorService),u=L(n.get(s.IUniverInstanceService),{unitId:t,subUnitId:o});if(!u)return!1;const{worksheet:d}=u,l={unitId:t,subUnitId:o,ranges:r},m={unitId:t,subUnitId:o,pluginName:X,selections:r.map(M=>({range:M,primary:ie(M,d),style:null}))},g=Ns(n,l),R={unitId:t,subUnitId:o,pluginName:X,selections:Qo(r).map(M=>({range:M,primary:ie(M,d),style:null}))},S=s.sequenceExecute([{id:qe.id,params:l},{id:K.id,params:m}],i),h=c.onCommandExecute({id:Vt.id,params:e}),f=s.sequenceExecute([...h.redos],i);return S.result&&f.result&&a.pushUndoRedo({unitID:t,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:ze.id,params:g},{id:K.id,params:R},...(p=h.undos)!=null?p:[]],redoMutations:[...(v=h.preRedos)!=null?v:[],{id:qe.id,params:l},{id:K.id,params:m},...h.redos]}),!0}},Zo={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const e=n.get(exports.SelectionManagerService),t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),r=(l=e.getSelections())==null?void 0:l.map(m=>m.range).filter(m=>m.rangeType===s.RANGE_TYPE.ROW);if(!(r!=null&&r.length))return!1;const i=L(t);if(!i)return!1;const{worksheet:a,unitId:c,subUnitId:u}=i,d=r.map(m=>a.getHiddenRows(m.startRow,m.endRow)).flat();return o.executeCommand(Vt.id,{unitId:c,subUnitId:u,ranges:d})}},rn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var I,p,v,M,w;const e=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService);let a=(I=e.getSelections())==null?void 0:I.map(y=>y.range).filter(y=>y.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const c=L(r);if(!c)return!1;a=Os(c.worksheet,a);const{unitId:u,subUnitId:d,worksheet:l}=c,m={unitId:u,subUnitId:d,ranges:a},g={unitId:u,subUnitId:d,pluginName:X,selections:Qo(a).map(y=>({range:y,primary:ie(y,l),style:null}))},R=ks(n,m),S={unitId:u,subUnitId:d,pluginName:X,selections:a.map(y=>({range:y,primary:ie(y,l),style:null}))},h=i.onCommandExecute({id:rn.id,params:m});return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:ze.id,params:m},{id:K.id,params:g},...h.redos],t).result&&o.pushUndoRedo({unitID:u,undoMutations:[...(v=h.preUndos)!=null?v:[],{id:qe.id,params:R},{id:K.id,params:S},...(M=h.undos)!=null?M:[]],redoMutations:[...(w=h.preRedos)!=null?w:[],{id:ze.id,params:m},{id:K.id,params:g},...h.redos]}),!0}};function Os(n,e){const t=n.getMaxColumns()-1,o=n.getHiddenRows(),r=[];return e.forEach(i=>{const a=o.filter(c=>c.startRow>=i.startRow&&c.endRow<=i.endRow);if(a.length){let c=i.startRow;a.forEach(u=>{u.startRow>c&&(r.push({startRow:c,endRow:u.startRow-1,startColumn:0,endColumn:t}),c=u.endRow+1)}),c<=i.endRow&&r.push({startRow:c,endRow:i.endRow,startColumn:0,endColumn:t})}else r.push(i)}),r}function Qo(n){return Ds(n).map(t=>{const o=t.startRow===0?t.endRow+1:t.startRow-1;return{...t,startRow:o,endRow:o}})}function Ds(n){const e=[];let t;return n.sort((o,r)=>o.startRow-r.startRow).forEach(o=>{if(!t){t=o;return}o.startRow===t.endRow+1?t.endRow=o.endRow:(e.push(t),t=o)}),e.push(t),e}const te={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const t=n.get(s.IUniverInstanceService),o=L(t);if(!o)return!1;const{unitId:r,subUnitId:i,worksheet:a}=o,{range:c,style:u}=e,d=n.get(s.ICommandService),l=n.get(s.IUndoRedoService),m=n.get(exports.SelectionManagerService),g=c?[c]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const R=new s.ObjectMatrix,S=gs(a);if(s.Tools.isArray(u.value))for(let w=0;w<g.length;w++)S.forOperableEach(g[w],(y,P,U)=>{R.setValue(y,P,{s:{[u.type]:u.value[y-U.startRow][P-U.startColumn]}})});else for(let w=0;w<g.length;w++){const y={s:{[u.type]:u.value}};S.forOperableEach(g[w],(P,U)=>R.setValue(P,U,y))}const h={subUnitId:i,unitId:r,cellValue:R.getMatrix()},f=Pe(n,h),I=d.syncExecuteCommand(G.id,h),{undos:p,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),M=s.sequenceExecute([...v],d);return I&&M.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:G.id,params:f},...p],redoMutations:[{id:G.id,params:h},...v]}),!0):!1}},xs={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t,{actualRow:r,actualColumn:i}=e.primary,c={style:{type:"bl",value:o.getRange(r,i).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(te.id,c)}},As={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t;let r=!0;if(e.primary){const{startRow:a,startColumn:c}=e.primary;r=o.getRange(a,c).getFontStyle()===s.FontItalic.ITALIC}const i={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(te.id,i)}},Ws={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t;let r=!0;e.primary&&(r=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const i={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(te.id,i)}},Ls={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t;let r=!0;e.primary&&(r=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const i={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(te.id,i)}};s.CommandType.COMMAND;const Vs={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={style:{type:"ff",value:e.value}};return t.executeCommand(te.id,o)}},$s={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={style:{type:"fs",value:e.value}};return t.executeCommand(te.id,o)}},er={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:e.value}}};return t.executeCommand(te.id,o)}},tr={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(s.ICommandService),t={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(te.id,t)}},nr={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:e.value}}};return t.executeCommand(te.id,o)}},or={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(s.ICommandService),t={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(te.id,t)}},rr={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"vt",value:e.value}};return t.executeCommand(te.id,o)}},sr={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"ht",value:e.value}};return t.executeCommand(te.id,o)}},ir={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"tb",value:e.value}};return t.executeCommand(te.id,o)}},ar={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,e)=>{if(!e)return!1;const t=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},o=n.get(s.ICommandService),r={style:{type:"tr",value:t}};return o.executeCommand(te.id,r)}},Bs=(n,e)=>{const i=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},tt={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().tabColor=e.color,!0):!1}},cr={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=L(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={color:e.value,unitId:i,subUnitId:a},u=Bs(n,c);return t.syncExecuteCommand(tt.id,c)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:tt.id,params:u}],redoMutations:[{id:tt.id,params:c}]}),!0):!1}},lt={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getWorksheets();for(const[,r]of o)if(r.getSheetId()===e.subUnitId)return t.setActiveSheet(r),!0;return!1}},js=4,$t={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e,t)=>{const o=n.get(s.ICommandService),r=L(n.get(s.IUniverInstanceService),e);if(!r)return!1;const{unitId:i,subUnitId:a}=r;return new Promise(c=>{setTimeout(()=>{const u=o.syncExecuteCommand(lt.id,{unitId:i,subUnitId:a},t);c(u)},js)})}},sn=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const i={},a=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const d=c[u];for(let l=d.startColumn;l<d.endColumn+1;l++){const m=a.getColumnOrCreate(l);i[l]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},we={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,e)=>{var u;const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),c=e.ranges;for(let d=0;d<c.length;d++){const l=c[d];for(let m=l.startColumn;m<l.endColumn+1;m++){const g=a.getColumnOrCreate(m);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(u=e.colWidth[m-l.startColumn])!=null?u:i}}return!0}},an={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const o=n.get(exports.SelectionManagerService).getSelections();if(n.get(exports.SheetInterceptorService),!(o!=null&&o.length))return!1;const r=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),a=L(n.get(s.IUniverInstanceService));if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:d}=a,{anchorCol:l,deltaX:m}=e,R=c.getColumnWidth(l)+m,S=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,h=o.filter(P=>P.range.rangeType===s.RANGE_TYPE.COLUMN),f=S?s.RANGE_TYPE.ALL:h.some(({range:P})=>{const{startColumn:U,endColumn:E}=P;return U<=l&&l<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(f===s.RANGE_TYPE.ALL){const P=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((E,O)=>({startRow:0,endRow:P-1,startColumn:O,endColumn:O}));I={subUnitId:d,unitId:u,colWidth:R,ranges:U}}else f===s.RANGE_TYPE.COLUMN?I={subUnitId:d,unitId:u,ranges:h.map(P=>s.Rectangle.clone(P.range)),colWidth:R}:I={subUnitId:d,unitId:u,colWidth:R,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:l,endColumn:l}]};const{undos:p,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:an.id,params:I}),M=sn(n,I),w=r.syncExecuteCommand(we.id,I),y=s.sequenceExecute([...v],r);return w&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:we.id,params:M},...p],redoMutations:[{id:we.id,params:I},...v]}),!0}},Mt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{var I,p;const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const c=L(n.get(s.IUniverInstanceService));if(!c)return!1;const{subUnitId:u,unitId:d}=c,l={subUnitId:u,unitId:d,ranges:a,colWidth:e.value},m=sn(n,l),g=o.syncExecuteCommand(we.id,l),{undos:R,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Mt.id,params:l}),h=i.onCommandExecute({id:Mt.id,params:l}),f=s.sequenceExecute([...S,...h.redos],o);return g&&f.result?(r.pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:we.id,params:m},...R],redoMutations:[...(p=h.preRedos)!=null?p:[],{id:we.id,params:l},...S]}),!0):!1}},ur=(n,e)=>{const t=Pt(n.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:o}=t;return{hidden:o.isSheetHidden(),unitId:e.unitId,subUnitId:o.getSheetId()}},ke={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const o=t.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().hidden=e.hidden,!0):!1}},lr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),i=n.get(s.LocaleService),a=L(n.get(s.IUniverInstanceService),e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:d,subUnitId:l}=a;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:d,subUnitId:l,hidden:s.BooleanNumber.TRUE},R=ur(n,g);return c.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):t.syncExecuteCommand(ke.id,g)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:ke.id,params:R}],redoMutations:[{id:ke.id,params:g}]}),!0):!1}},Fs=(n,e)=>{const t=Pt(n.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:o}=t;return{unitId:e.unitId,name:o.getName(),subUnitId:o.getSheetId()}},wt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const o=t.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().name=e.name,!0):!1}},cn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{var S,h;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(exports.SheetInterceptorService),i=L(n.get(s.IUniverInstanceService),e);if(!i)return!1;const{unitId:a,subUnitId:c}=i,u={subUnitId:c,name:e.name,unitId:a},d=Fs(n,u),l=r.onCommandExecute({id:cn.id,params:e}),m=[...(S=l.preRedos)!=null?S:[],{id:wt.id,params:u},...l.redos],g=[...(h=l.preUndos)!=null?h:[],{id:wt.id,params:d},...l.undos];return await s.sequenceExecute(m,t).result?(o.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:m}),!0):!1}},Hs=(n,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),nt={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getConfig();return o.sheetOrder.splice(e.fromOrder,1),o.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},dr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=L(n.get(s.IUniverInstanceService),e);if(!r)return!1;const{workbook:i,unitId:a,subUnitId:c}=r,d={fromOrder:i.getConfig().sheetOrder.indexOf(c),toOrder:e.order,unitId:a,subUnitId:c},l=Hs(n,d);return t.syncExecuteCommand(nt.id,d)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:nt.id,params:l}],redoMutations:[{id:nt.id,params:d}]}),!0):!1}},Gs=2e3,mr=(n,e)=>{const{unitId:t,subUnitId:o,ranges:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u={},d=c.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<m+1;g++){const R=d.getRowOrCreate(g);u[g]=R.h}return{unitId:t,subUnitId:o,ranges:r,rowHeight:u}},un=(n,e)=>{const{unitId:t,subUnitId:o,ranges:r}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(o),u={},d=c.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<=m;g++){const R=d.getRowOrCreate(g);u[g]=R.ia}return{unitId:t,subUnitId:o,ranges:r,autoHeightInfo:u}},qs=(n,e)=>{const{unitId:t,subUnitId:o,rowsAutoHeightInfo:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(o);if(!c)return{unitId:t,subUnitId:o,rowsAutoHeightInfo:[]};const u=[],d=c.getRowManager();for(const l of r){const{row:m}=l,{ah:g}=d.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:t,subUnitId:o,rowsAutoHeightInfo:u}},ye={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:t,subUnitId:o,ranges:r,rowHeight:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const d=u.getConfig().defaultRowHeight,l=u.getRowManager();for(const{startRow:g,endRow:R}of r)for(let S=g;S<=R;S++){const h=l.getRowOrCreate(S);typeof i=="number"?h.h=i:h.h=(m=i[S])!=null?m:d,h.h=Math.min(Gs,h.h)}return!0}},he={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:t,subUnitId:o,ranges:r,autoHeightInfo:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const d=void 0,l=u.getRowManager();for(const{startRow:g,endRow:R}of r)for(let S=g;S<=R;S++){const h=l.getRowOrCreate(S);typeof i=="number"?h.ia=i:h.ia=(m=i[S-g])!=null?m:d}return!0}},ln={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rowsAutoHeightInfo:r}=e,a=n.get(s.IUniverInstanceService).getUnit(t),c=a==null?void 0:a.getSheetBySheetId(o);if(!c||!a)return!1;const u=c.getRowManager();for(const{row:d,autoHeight:l}of r){const m=u.getRowOrCreate(d);m.ah=l}return!0}},dn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{var E,O;const o=n.get(exports.SelectionManagerService).getSelections(),r=n.get(exports.SheetInterceptorService);if(!(o!=null&&o.length))return!1;const i=L(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:a,subUnitId:c,unitId:u}=i,{anchorRow:d,deltaY:l}=e,g=a.getRowHeight(d)+l,R=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,S=o.filter(F=>F.range.rangeType===s.RANGE_TYPE.ROW),h=R?s.RANGE_TYPE.ALL:S.some(({range:F})=>{const{startRow:j,endRow:b}=F;return j<=d&&d<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(h===s.RANGE_TYPE.ALL){const F=a.getRowCount(),j=new Array(a.getColumnCount()).fill(void 0).map((b,oe)=>({startRow:oe,endRow:oe,startColumn:0,endColumn:F-1}));f={subUnitId:c,unitId:u,rowHeight:g,ranges:j}}else h===s.RANGE_TYPE.ROW?f={subUnitId:c,unitId:u,ranges:S.map(F=>s.Rectangle.clone(F.range)),rowHeight:g}:f={subUnitId:c,unitId:u,rowHeight:g,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const I=mr(n,f),p={unitId:u,subUnitId:c,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=un(n,p),M=n.get(s.ICommandService),w=n.get(s.IUndoRedoService),y=r.onCommandExecute({id:dn.id,params:f}),P=s.sequenceExecute([{id:ye.id,params:f},{id:he.id,params:p}],M),U=s.sequenceExecute([...y.redos],M);return P.result&&U.result?(w.pushUndoRedo({unitID:u,undoMutations:[...(E=y.preUndos)!=null?E:[],{id:ye.id,params:I},{id:he.id,params:v},...y.undos],redoMutations:[...(O=y.preRedos)!=null?O:[],{id:ye.id,params:f},{id:he.id,params:p},...y.redos]}),!0):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{var p,v;const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),c=t.getSelectionRanges();if(!(c!=null&&c.length))return!1;const u=L(i);if(!u)return!1;const{unitId:d,subUnitId:l}=u,m={subUnitId:l,unitId:d,ranges:c,rowHeight:e.value},g=mr(n,m),R={unitId:d,subUnitId:l,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},S=un(n,R),h=s.sequenceExecute([{id:ye.id,params:m},{id:he.id,params:R}],o),f=a.onCommandExecute({id:mn.id,params:m}),I=s.sequenceExecute([...f.redos],o);return h.result&&I.result?(r.pushUndoRedo({unitID:d,undoMutations:[...(p=f.preRedos)!=null?p:[],{id:ye.id,params:g},{id:he.id,params:S},...f.undos],redoMutations:[...(v=f.preRedos)!=null?v:[],{id:ye.id,params:m},{id:he.id,params:R},...f.redos]}),!0):!1}},gn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),i=n.get(s.IUniverInstanceService),a=L(i);if(!a)return!1;const{unitId:c,subUnitId:u,worksheet:d}=a,{anchorRow:l}=e!=null?e:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:d.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},R=un(n,g),S=t.syncExecuteCommand(he.id,g),{undos:h,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:gn.id,params:g}),I=s.sequenceExecute([...f],t);return S&&I.result?(o.pushUndoRedo({unitID:c,undoMutations:[{id:he.id,params:R},...h],redoMutations:[{id:he.id,params:g},...f]}),!0):!1}},gr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{const{unitId:t,subUnitId:o}=e,r=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService);if(!L(n.get(s.IUniverInstanceService)))return!1;const u=a.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const d=u.getSheetBySheetId(o);if(!d||d.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:t,subUnitId:o,hidden:s.BooleanNumber.FALSE},g=ur(n,m),R=r.syncExecuteCommand(ke.id,m),S={unitId:t,subUnitId:o},h=r.syncExecuteCommand(lt.id,S);return R&&h?(i.pushUndoRedo({unitID:t,undoMutations:[{id:ke.id,params:g}],redoMutations:[{id:ke.id,params:m}]}),!0):!1}},hr=n=>{const e=new s.ObjectMatrix;return n.forEach(t=>{s.Range.foreach(t,(o,r)=>{e.setValue(o,r,1)})}),e.forValue((t,o)=>{const r=e.getValue(t-1,o);r&&e.setValue(t,o,r+1)}),e},Rr=n=>{const e=n;return e.forValue((t,o)=>{const r=n.getValue(t-1,o);r&&e.setValue(t,o,r+1)}),e},Dn=n=>{const e={area:0},t=(o,r)=>e.area<o?(e.area=o,e.range=r,!0):!1;return n.forValue((o,r,i)=>{let a=1,c=i;t(a*c,{startRow:o-c+1,endRow:o,startColumn:r,endColumn:r});const u={startRow:o-c+1,endRow:o,startColumn:0,endColumn:r};for(let d=r-1;d>=0&&n.getValue(o,d);d--){c=Math.min(n.getValue(o,d)||0,c),a++;const l=c*a;u.startColumn=d,u.startRow=o-c+1,t(l,u)}}),e},zs=(n,e)=>(s.Range.foreach(e,(t,o)=>{n.realDeleteValue(t,o);let r=t+1,i=n.getValue(r,o)||0;for(;i>1;)n.setValue(r,o,i-1),r+=1,i=n.getValue(r,o)||0}),n),hn=n=>{const e=[];let t=Dn(n);for(;t.area>0;)t.range&&(e.push(t.range),zs(n,t.range)),t=Dn(n);return e},Rn=n=>{const e=hr(n);return hn(e)};class Ys{constructor(){C(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(t=>{s.Range.foreach(t,(o,r)=>{this._matrix.setValue(o,r,1)})}),this}subtract(...e){return e.forEach(t=>{s.Range.foreach(t,(o,r)=>{this._matrix.realDeleteValue(o,r)})}),this}merge(){const e=Rr(this._matrix);return hn(e)}}const je=$.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,je);const Ks=(n,e)=>{const t=n.get(je),{values:o,unitId:r,subUnitId:i}=e,a=[],c=[];Object.keys(o).forEach(d=>{o[d].ranges.forEach(m=>{s.Range.foreach(m,(g,R)=>{const S=t.getValue(r,i,g,R);S?a.push({pattern:S.pattern,row:g,col:R}):c.push({startColumn:R,endColumn:R,startRow:g,endRow:g})})})});const u=[];if(a.length){const d=yt(r,i,a);Object.keys(d.values).forEach(l=>{const m=d.values[l];m.ranges=Rn(m.ranges)}),u.push({id:Bt.id,params:yt(r,i,a)})}return c.length&&u.push({id:Sn.id,params:{unitId:r,subUnitId:i,ranges:c}}),u},Bt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:t,refMap:o}=e,r=n.get(je),i=e.unitId,a=e.subUnitId,c=Object.keys(t).reduce((u,d)=>{const l=o[d],m=t[d].ranges;return l&&u.push({...l,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},Sn={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:t,subUnitId:o,ranges:r}=e;return n.get(je).deleteValues(t,o,r),!0}},Js=(n,e)=>{const t=n.get(je),{ranges:o,unitId:r,subUnitId:i}=e,a=[];if(o.forEach(u=>{s.Range.foreach(u,(d,l)=>{const m=t.getValue(r,i,d,l);m&&a.push({pattern:m.pattern,row:d,col:l})})}),!a.length)return[];const c=yt(r,i,a);return Object.keys(c.values).forEach(u=>{const d=c.values[u];d.ranges=Rn(d.ranges)}),[{id:Bt.id,params:c}]},yt=(n,e,t)=>{const o=is(t,"pattern"),r={},i={},a=as();return Object.keys(o).forEach(c=>{const u=o[c],d=a();r[d]={pattern:c},u.forEach(l=>{i[d]||(i[d]={ranges:[]}),i[d].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:e,refMap:r,values:i}},Sr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},Cr={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(de.SetDefinedNameMutation.id,r)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:de.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:de.SetDefinedNameMutation.id,params:r}]}),!0):!1}},fr={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(de.RemoveDefinedNameMutation.id,r)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:de.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:de.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},vr={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService);return e&&t.syncExecuteCommand(de.SetDefinedNameMutation.id,e.newDefinedName)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:de.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:de.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},pr={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Cn={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET);return t?(t.setName(e.name),!0):!1}},fn={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,e)=>{var d;if(!n.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const i=n.get(exports.SheetInterceptorService).onCommandExecute({id:fn.id,params:e}),a={name:e.name,unitId:e.unitId},c=[...(d=i.preRedos)!=null?d:[],{id:Cn.id,params:a},...i.redos],u=n.get(s.ICommandService);return s.sequenceExecute(c,u).result}};var Xs=Object.defineProperty,Zs=Object.getOwnPropertyDescriptor,Qs=(n,e,t,o)=>{for(var r=o>1?void 0:o?Zs(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Xs(e,t,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new ue.Subject);C(this,"_ruleRefresh",new ue.Subject);C(this,"_resetOrder",new ue.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new ue.BehaviorSubject(!1));C(this,"worksheetRuleInitStateChange$",this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}addRule(e,t){this._ensureSubUnitMap(e).set(t.subUnitId,t),this._ruleChange.next({unitId:e,rule:t,type:"add",subUnitId:t.subUnitId})}deleteRule(e,t){var r,i,a;const o=(i=(r=this._model)==null?void 0:r.get(e))==null?void 0:i.get(t);o&&((a=this._model.get(e))==null||a.delete(t),this._ruleChange.next({unitId:e,rule:o,type:"delete",subUnitId:t}))}setRule(e,t,o){var i,a;const r=this.getRule(e,t);r&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.set(t,o),this._ruleChange.next({unitId:e,oldRule:r,rule:o,type:"set",subUnitId:t}))}getRule(e,t){var o,r;return(r=(o=this._model)==null?void 0:o.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o);r!=null&&r.size&&(e[o]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[o].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(o=>{const r=e[o];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(o,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}ruleRefresh(e){this._ruleRefresh.next(e)}resetOrder(){this._resetOrder.next(Math.random())}};exports.WorksheetProtectionRuleModel=Qs([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionRuleModel)],exports.WorksheetProtectionRuleModel);const Ir={id:"sheet.mutation.add-worksheet-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,rule:o}=e;return n.get(exports.WorksheetProtectionRuleModel).addRule(t,o),!0}},Mr={id:"sheet.mutation.set-worksheet-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rule:r}=e;return n.get(exports.WorksheetProtectionRuleModel).setRule(t,o,r),!0}},wr={id:"sheet.mutation.delete-worksheet-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o}=e;return n.get(exports.WorksheetProtectionRuleModel).deleteRule(t,o),!0}};var ei=Object.defineProperty,ti=Object.getOwnPropertyDescriptor,ni=(n,e,t,o)=>{for(var r=o>1?void 0:o?ti(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ei(e,t,r),r};exports.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new ue.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new ue.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new ue.BehaviorSubject(!1));C(this,"rangeRuleInitStateChange$",this._rangeRuleInitStateChange.asObservable())}ruleRefresh(e){this._ruleRefresh.next(e)}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,t,o){this._ensureRuleMap(e,t).set(o.id,o),this._ruleChange.next({unitId:e,subUnitId:t,rule:o,type:"add"})}deleteRule(e,t,o){var i,a,c,u;const r=(a=(i=this._model.get(e))==null?void 0:i.get(t))==null?void 0:a.get(o);r&&((u=(c=this._model.get(e))==null?void 0:c.get(t))==null||u.delete(o),this._ruleChange.next({unitId:e,subUnitId:t,rule:r,type:"delete"}))}setRule(e,t,o,r){var a,c;const i=this.getRule(e,t,o);i&&((c=(a=this._model.get(e))==null?void 0:a.get(t))==null||c.set(o,r),this._ruleChange.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:"set"}))}getRule(e,t,o){var r,i;return(i=(r=this._model.get(e))==null?void 0:r.get(t))==null?void 0:i.get(o)}getSubunitRuleList(e,t){var r;return[...(((r=this._model.get(e))==null?void 0:r.get(t))||new Map).values()]}_ensureRuleMap(e,t){let o=this._model.get(e);o||(o=new Map,this._model.set(e,o));let r=o.get(t);return r||(r=new Map,o.set(t,r)),r}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o),i=[...r.keys()];e[o]={},i.forEach(a=>{const c=r.get(a);e[o][a]=[...c.values()]})}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(o=>{const r=e[o],i=new Map;Object.keys(r).forEach(a=>{const c=r[a].reduce((u,d)=>(u.set(d.id,d),u),new Map);i.set(a,c)}),t.set(o,i)}),this._model=t}deleteUnitModel(){this._model.clear()}createRuleId(e,t){let o=s.Tools.generateRandomId(4);const r=this._ensureRuleMap(e,t);for(;r.has(o);)o=s.Tools.generateRandomId(4);return o}};exports.RangeProtectionRuleModel=ni([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const Te=()=>[Jt,eo],ot=()=>[Xn,ao,io,mo,uo,ro,oo,so,lo,Zn,Qn,no,to,co],oi=[_.Copy,_.DeleteColumn,_.DeleteRow,_.EditExtraObject,_.Filter,_.InsertColumn,_.InsertRow,_.InsertHyperlink,_.PivotTable,_.SetCellStyle,_.SetCellValue,_.SetColumnStyle,_.SetRowStyle,_.Sort];var ri=Object.defineProperty,si=Object.getOwnPropertyDescriptor,ii=(n,e,t,o)=>{for(var r=o>1?void 0:o?si(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ri(e,t,r),r};exports.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new ue.Subject);C(this,"pointChange$",this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var r,i,a;const o=(r=this._model.get(e))==null?void 0:r.get(t);o&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.delete(t),this._pointChange.next(o))}getRule(e,t){var o,r;return(r=(o=this._model)==null?void 0:o.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o);r!=null&&r.size&&(e[o]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[o].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(o=>{const r=e[o];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(o,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}};exports.WorksheetProtectionPointModel=ii([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var ai=Object.defineProperty,ci=Object.getOwnPropertyDescriptor,ui=(n,e,t,o)=>{for(var r=o>1?void 0:o?ci(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ai(e,t,r),r},Oe=(n,e)=>(t,o)=>e(t,o,n);const li="SHEET_WORKSHEET_PROTECTION_PLUGIN",di="SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN";exports.WorksheetPermissionService=class extends s.RxDisposable{constructor(e,t,o,r,i,a,c){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=o,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=c,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){const e=t=>{const o=t.getUnitId(),r=i=>{const a=i.getSheetId();[...Te(),...ot()].forEach(c=>{const u=new c(o,a);this._permissionService.addPermissionPoint(u)})};t.getSheets().forEach(i=>{r(i)}),t.sheetCreated$.subscribe(i=>{r(i)}),t.sheetDisposed$.subscribe(i=>{const a=i.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(o,a).forEach(u=>{[Et,Nt].forEach(d=>{const l=new d(o,a,u.permissionId);this._permissionService.deletePermissionPoint(l.id)})}),[...Te(),...ot()].forEach(u=>{const d=new u(o,a);this._permissionService.deletePermissionPoint(d.id)})})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(t=>{t.getSheets().forEach(o=>{const r=t.getUnitId(),i=o.getSheetId();Te().forEach(a=>{const c=new a(r,i);this._permissionService.deletePermissionPoint(c.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":break;case"delete":{Te().forEach(t=>{const o=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(o.id,!0)});break}case"set":{Te().forEach(t=>{const o=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(o.id,e.rule)});break}}}))}_initRuleSnapshot(){const e=()=>{const o=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(o)},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:li,businesses:[It.UNIVER_SHEET],onLoad:(o,r)=>{this._worksheetProtectionRuleModel.fromObject(r),Object.keys(r).forEach(i=>{Te().forEach(a=>{const c=new a(o,i);this._permissionService.addPermissionPoint(c)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:()=>{this._worksheetProtectionRuleModel.deleteUnitModel()}}))}_initPointSnapshot(){const e=()=>{const o=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(o)},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:di,businesses:[It.UNIVER_SHEET],onLoad:(o,r)=>{this._worksheetProtectionPointRuleModel.fromObject(r),Object.keys(r).forEach(i=>{ot().forEach(a=>{const c=new a(o,i);this._permissionService.addPermissionPoint(c)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}};exports.WorksheetPermissionService=ui([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetPermissionService),Oe(0,$.Inject(s.IPermissionService)),Oe(1,$.Inject(s.IUniverInstanceService)),Oe(2,$.Inject($.Injector)),Oe(3,$.Inject(exports.WorksheetProtectionRuleModel)),Oe(4,$.Inject(exports.WorksheetProtectionPointModel)),Oe(5,$.Inject(s.IResourceManagerService)),Oe(6,$.Inject(exports.RangeProtectionRuleModel))],exports.WorksheetPermissionService);const yr={id:"sheet.mutation.set-worksheet-permission-points",type:s.CommandType.MUTATION,handler:(n,e)=>{const{rule:t}=e;return n.get(exports.WorksheetProtectionPointModel).addRule(t),!0}},_r={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-permission-points",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),{rule:o}=e;return t.executeCommand(yr.id,{rule:o,unitId:o.unitId,subUnitId:o.subUnitId}),!0}},mi=(n,e)=>{const t=n.get(exports.RangeProtectionRuleModel),o=e.ruleIds.map(i=>t.getRule(e.unitId,e.subUnitId,i)).filter(i=>!!i);return{id:Ke.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:o}}},Ye={id:"sheet.mutation.delete-range-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,ruleIds:r}=e,i=n.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.deleteRule(t,o,a)}),!0}},gi=n=>{const e={...n,ruleIds:n.rules.map(t=>t.id)};return{id:Ye.id,params:e}},Ke={id:"sheet.mutation.add-range-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rules:r}=e,i=n.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.addRule(t,o,a)}),!0}},vn={type:s.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(exports.RangeProtectionRuleModel),{rule:i,permissionId:a}=e,{unitId:c,subUnitId:u,ranges:d,name:l,description:m}=i,g=[{ranges:d,permissionId:a,id:r.createRuleId(c,u),name:l,description:m,unitType:i.unitType,unitId:c,subUnitId:u}];if(await t.executeCommand(Ke.id,{unitId:c,subUnitId:u,rules:g})){const S=[{id:Ke.id,params:{unitId:c,subUnitId:u,rules:g}}],h=[{id:Ye.id,params:{unitId:c,subUnitId:u,ruleIds:g.map(f=>f.id)}}];o.pushUndoRedo({unitID:c,redoMutations:S,undoMutations:h})}return!0}},br={type:s.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),{unitId:r,subUnitId:i,rule:a}=e,c={unitId:r,subUnitId:i,ruleIds:[a.id]};return await t.executeCommand(Ye.id,c)&&o.pushUndoRedo({unitID:r,redoMutations:[{id:Ye.id,params:c}],undoMutations:[{id:Ke.id,params:{unitId:r,subUnitId:i,rules:[a]}}]}),!0}},ee={id:"sheet.mutation.set-range-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rule:r,ruleId:i}=e;return n.get(exports.RangeProtectionRuleModel).setRule(t,o,i,r),!0}},hi=(n,e)=>{const{unitId:t,subUnitId:o,ruleId:r}=e,a=n.get(exports.RangeProtectionRuleModel).getRule(t,o,r);return a?{id:ee.id,params:{...e,rule:a}}:null},pn={type:s.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),o=n.get(exports.RangeProtectionRuleModel),r=n.get(s.IUndoRedoService),{rule:i,permissionId:a,oldRule:c}=e,{unitId:u,subUnitId:d,ranges:l,name:m,description:g}=i;if(i.id){const R={unitId:u,subUnitId:d,ruleId:i.id,rule:{ranges:l,permissionId:a,id:o.createRuleId(u,d),name:m,description:g}};if(await t.executeCommand(ee.id,R)){const h=[{id:ee.id,params:R}],f=[{id:ee.id,params:{unitId:u,subUnitId:d,ruleId:i.id,rule:c}}];r.pushUndoRedo({unitID:u,redoMutations:h,undoMutations:f})}}return!0}},Ri=n=>{const{order:e}=n,t={};return Object.keys(e).forEach(o=>{t[e[Number(o)]]=Number(o)}),{...n,order:t}},rt={id:"sheet.mutation.reorder-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{subUnitId:t,unitId:o,range:r,order:i}=e,u=n.get(s.IUniverInstanceService).getUnit(o).getSheetBySheetId(t);if(!u)return!1;const d=new s.ObjectMatrix;s.Range.foreach(r,(m,g)=>{if(i.hasOwnProperty(m)){const R=i[m],S=s.Tools.deepClone(u.getCellRaw(R,g));d.setValue(m,g,S)}});const l=u.getCellMatrix();return d.forValue((m,g,R)=>{l.setValue(m,g,R)}),!0}},Pr="sheet.command.reorder-range",In={id:Pr,type:s.CommandType.COMMAND,handler:(n,e)=>{var S,h;const{subUnitId:t,unitId:o,range:r,order:i}=e,a=n.get(s.ICommandService),c={id:rt.id,params:{unitId:o,subUnitId:t,order:i,range:r}},u={id:rt.id,params:Ri(c.params)},l=n.get(exports.SheetInterceptorService).onCommandExecute({id:In.id,params:e}),m=[...(S=l.preRedos)!=null?S:[],c,...l.redos],g=[...(h=l.preUndos)!=null?h:[],u,...l.undos];return s.sequenceExecute(m,a).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:g,redoMutations:m}),!0):!1}},Ur="maxCellsPerSheet",Si=3e6,Tr="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var Ci=Object.defineProperty,fi=Object.getOwnPropertyDescriptor,vi=(n,e,t,o)=>{for(var r=o>1?void 0:o?fi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Ci(e,t,r),r},Ft=(n,e)=>(t,o)=>e(t,o,n);let vt=class extends s.Disposable{constructor(n,e,t){var r;super(),this._commandService=n,this._configService=e,this._dataSyncPrimaryController=t,[G,Ie,pe,De,xe,_e,be,fe,Me,Je,z,Sn,H,Cn,wt,Bt,rt,Sr].forEach(i=>{var a;this._commandService.registerCommand(i),(a=this._dataSyncPrimaryController)==null||a.registerSyncingMutations(i)}),((r=this._configService.getConfig(Tr))!=null?r:!1)||[_t,Yt,bt,Kn,kt,Ot,an,dn,Ao,xo,$e,Dt,xt,Oo,ko,Ve,Wo,Wt,Ut,At,ut,ct,tn,In,Ho,or,tr,nr,Go,Yo,Xe,qo,zo,nn,He,Ge,Mt,Es,Xo,Ne,sr,at,mn,rn,ze,qe,Ko,Zo,Lt,Vt,te,cr,tt,er,ar,ir,rr,fn,$t,lt,we,lr,ke,cn,dr,nt,ln,ye,gn,he,K,pr,Cr,fr,vr,gr,_r,Ir,Mr,wr,yr,vn,br,pn,Ke,Ye,ee].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i))),this._configService.setConfig(Ur,Si)}};vt=vi([s.OnLifecycle(s.LifecycleStages.Starting,vt),Ft(0,s.ICommandService),Ft(1,s.IConfigService),Ft(2,$.Optional(Fr.DataSyncPrimaryController))],vt);var pi=Object.defineProperty,Ii=Object.getOwnPropertyDescriptor,Mi=(n,e,t,o)=>{for(var r=o>1?void 0:o?Ii(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&pi(e,t,r),r},xn=(n,e)=>(t,o)=>e(t,o,n);let pt=class extends s.Disposable{constructor(n,e){super(),this._univerInstanceService=n,this._commandService=e,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==de.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:t}=e,o=Object.keys(t),r=[];return o.forEach(a=>{const c=t[a];if(c==null)return!0;Object.keys(c).forEach(d=>{const l=c[d];if(l==null)return!0;const m=this._getMergedCellData(a,d,l),g={subUnitId:d,unitId:a,cellValue:m};r.push({id:G.id,params:g})})}),r.every(a=>this._commandService.executeCommand(a.id,a.params,{onlyLocal:!0}))}))}_getMergedCellData(n,e,t){const o=this._univerInstanceService.getUniverSheetInstance(n),r=o==null?void 0:o.getStyles(),i=o==null?void 0:o.getSheetBySheetId(e),a=i==null?void 0:i.getCellMatrix(),c=new s.ObjectMatrix(t);return c.forValue((u,d,l)=>{const m=a==null?void 0:a.getValue(u,d),g=de.handleNumfmtInCell(m,l,r);c.setValue(u,d,g)}),c.clone()}};pt=Mi([s.OnLifecycle(s.LifecycleStages.Ready,pt),xn(0,$.Inject(s.IUniverInstanceService)),xn(1,s.ICommandService)],pt);const T={MoveRangeCommandId:Jn,InsertRowCommandId:No,InsertColCommandId:Do,RemoveColCommandId:Fo,RemoveRowCommandId:jo,DeleteRangeMoveLeftCommandId:Uo,DeleteRangeMoveUpCommandId:To,InsertRangeMoveDownCommandId:Ms,InsertRangeMoveRightCommandId:Eo,MoveColsCommandId:Bo,MoveRowsCommandId:$o,ReorderRangeCommandId:Pr};var W=(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))(W||{});const ht=Number.MAX_SAFE_INTEGER,ve=n=>{const e={...n},t=Number.isNaN(e.startRow)&&Number.isNaN(e.endRow)&&!Number.isNaN(e.startColumn)&&!Number.isNaN(e.endColumn),o=Number.isNaN(e.startColumn)&&Number.isNaN(e.endColumn)&&!Number.isNaN(e.startRow)&&!Number.isNaN(e.endRow);return(e.rangeType===s.RANGE_TYPE.COLUMN||t)&&(e.startRow=0,e.endRow=ht),(e.rangeType===s.RANGE_TYPE.ROW||o)&&(e.startColumn=0,e.endColumn=ht),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=ht,e.startRow=0,e.endRow=ht),e},le=n=>{let e=n.rangeType;return n.rangeType===s.RANGE_TYPE.COLUMN?e=s.RANGE_TYPE.ROW:n.rangeType===s.RANGE_TYPE.ROW&&(e=s.RANGE_TYPE.COLUMN),{startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow,rangeType:e}},st=(n,e,t)=>{const o={...t},r={...e},i=(h,f)=>{const I=Math.max(h.start,f.start),p=Math.min(h.end,f.end);return p<I?null:{start:I,end:p}},a=h=>h.end-h.start+1,c=(h,f)=>({start:h.start-f.start,end:h.start-f.start+h.end-h.start}),u=(h,f)=>({start:f.start+h.start,end:f.start+h.start+h.end-h.start}),d=e.start>n.start;if(d){const h=Math.min(n.end,e.start)-n.start+1;r.start-=h,r.end-=h}const l=a(n),m=l,g=i(n,o),R=g&&a(g)>=a(o);if(n.end<o.start)o.start-=l,o.end-=l;else if(g){const h=a(g);if(R){const f=c(o,n),I=u(f,r);o.start=I.start,o.end=I.end}else g.start>n.start?d?(o.end-=h+l,o.start-=l):o.end-=h:d?o.end-=h:o.start>n.start&&o.end>n.end?(o.start-=l,o.end-=l+h):o.end-=h}const S=i(r,o);return R||(r.start<=o.start?(o.start+=m,o.end+=m):S&&(d?r.end<=o.start||r.start<=o.start&&r.end>=o.start?(o.start+=m,o.end+=m):r.start>=o.start&&r.start<=o.end&&(o.end+=m):o.start<r.start&&o.end>r.start?o.end+=m:(o.start>=r.end||o.start>=r.start&&o.start<=r.end)&&(o.end+=m,o.start+=m))),{step:o.start-t.start,length:a(o)-a(t)}},Mn=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!o||!t)return[];const r=ve(t),i=ve(o),a=ve(e),c=st({start:r.startRow,end:r.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return c===null?[{type:W.Delete}]:[{type:W.VerticalMove,step:c.step||0,length:c.length||0}]},wi=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!t||!o)return[e];const r=t.startRow,i=t.endRow-t.startRow+1,a=o.startRow,c=new s.ObjectMatrix;return s.Range.foreach(e,(d,l)=>{c.setValue(d,l,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,d=>d===1)},yi=(n,e)=>{const{range:t,order:o}=n.params||{};if(!t||!o)return[e];const r=new s.ObjectMatrix;s.Range.foreach(e,(c,u)=>{r.setValue(c,u,1)});const i=new s.ObjectMatrix;return s.Range.foreach(t,(c,u)=>{var d;if(o.hasOwnProperty(c)){const l=o[c],m=(d=r.getValue(l,u))!=null?d:0;i.setValue(c,u,m)}}),i.forValue((c,u,d)=>{r.setValue(c,u,d)}),s.queryObjectMatrix(r,c=>c===1)},wn=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!o||!t)return[];const r=ve(t),i=ve(o),a=ve(e),c=st({start:r.startColumn,end:r.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return c===null?[{type:W.Delete}]:[{type:W.HorizontalMove,step:c.step||0,length:c.length||0}]},_i=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!t||!o)return[e];const r=t.startColumn,i=t.endColumn-t.startColumn+1,a=o.startColumn,c=new s.ObjectMatrix;return s.Range.foreach(e,(u,d)=>{c.setValue(u,d,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Er=(n,e)=>{var i,a;const t=(i=n.params)==null?void 0:i.toRange,o=(a=n.params)==null?void 0:a.fromRange;if(!t||!o)return[];const r=[];if(s.Rectangle.contains(t,e)&&r.push({type:W.Delete}),s.Rectangle.contains(o,e)){r.push({type:W.Delete});const c=s.Rectangle.getRelativeRange(e,o),u=s.Rectangle.getPositionRange(c,t);return[{type:W.Set,range:u}]}return r},bi=(n,e)=>{var m,g;const t=(m=n.params)==null?void 0:m.toRange,o=(g=n.params)==null?void 0:g.fromRange;if(!t||!o)return[e];if(!s.Rectangle.intersects(o,e)&&!s.Rectangle.intersects(t,e))return[e];if(s.Rectangle.contains(o,e)){const R=s.Rectangle.getRelativeRange(e,o);return[s.Rectangle.getPositionRange(R,t)]}const r=new s.ObjectMatrix;s.Range.foreach(e,(R,S)=>{r.setValue(R,S,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(o,e);a&&s.Range.foreach(a,(R,S)=>{r.getValue(R,S)&&(r.setValue(R,S,void 0),i.setValue(R,S,1))});const c=t.startColumn-o.startColumn,u=t.startRow-o.startRow,d={startColumn:t.startColumn-c,endColumn:t.endColumn-c,startRow:t.startRow-u,endRow:t.endRow-u};return d&&s.Range.foreach(d,(R,S)=>{var I;const h=R+u,f=S+c;r.setValue(h,f,(I=i.getValue(R,S))!=null?I:0)}),s.queryObjectMatrix(r,R=>R===1)},Ae=(n,e)=>{const t=ve(n),o=ve(e),r=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(t.startRow<=o.startRow&&t.endRow>=o.endRow){if(o.startColumn<t.startColumn&&o.endColumn>=t.startColumn&&o.endColumn<=t.endColumn||o.startColumn<t.startColumn&&o.endColumn>=t.endColumn){const a=s.Rectangle.getIntersects(o,t);if(a)return{step:0,length:-r(a)}}if(o.startColumn>=t.startColumn&&o.endColumn<=t.endColumn&&i(t)>=i(o))return null;if(o.startColumn>=t.startColumn&&o.startColumn<=t.endColumn&&o.endColumn>t.endColumn){const a=s.Rectangle.getIntersects(o,t);if(a){const c=-r(a);return{step:-(r(t)-r(a)),length:c}}}if(o.startColumn>t.endColumn)return{step:-r(t),length:0}}return{step:0,length:0}},yn=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(t,e);if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.HorizontalMove,step:a,length:c})}return o},_n=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(le(t),le(e));if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.VerticalMove,step:a,length:c})}return o},Pi=(n,e)=>{const{range:t,order:o}=n.params||{};if(!t||!o)return[];if(s.Rectangle.contains(t,e)&&e.endRow===e.startRow){const r=[],i=e.startRow;for(const a in o)if(o[a]===i){const c=Number(a);return r.push({type:W.VerticalMove,step:c-i,length:0}),r}return[]}return[]},We=(n,e)=>{const t=ve(n),o=ve(e),r=i=>i.endColumn-i.startColumn+1;if(t.startRow<=o.startRow&&t.endRow>=o.endRow){if(o.startColumn<t.startColumn&&o.endColumn>=t.startColumn&&o.endColumn<=t.endColumn||o.startColumn<t.startColumn&&o.endColumn>=t.endColumn)return{step:0,length:r(t)};if(o.startColumn>=t.startColumn&&o.endColumn<=t.endColumn||o.startColumn>t.startColumn&&o.startColumn<=t.endColumn&&o.endColumn>t.endColumn||o.startColumn>=t.endColumn)return{step:r(t),length:0}}return{step:0,length:0}};function Ui(n,e,t){const o=[];if(s.Rectangle.contains(e,t)&&o.push({type:W.Delete}),s.Rectangle.contains(n,t)){o.push({type:W.Delete});const r=s.Rectangle.getRelativeRange(t,n),i=s.Rectangle.getPositionRange(r,e);return[{type:W.Set,range:i}]}return o}const bn=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(le(t),le(e)),{step:i,length:a}=r;return o.push({type:W.VerticalMove,step:i,length:a}),o},Pn=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(t,e),{step:i,length:a}=r;return o.push({type:W.HorizontalMove,step:i,length:a}),o},Nr=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(le(t),le(e)),{step:i,length:a}=r;return o.push({type:W.VerticalMove,step:i,length:a}),o},Ti=(n,e)=>{var u;const t=(u=n.params)==null?void 0:u.range;if(!t)return[e];const o=t.endRow-t.startRow+1,r={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(d=>{s.Range.foreach(d,(l,m)=>{c.setValue(l,m,1)})}),a&&s.Range.foreach(a,(d,l)=>{c.setValue(d+o,l,1)}),s.queryObjectMatrix(c,d=>d===1)},kr=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(t,e),{step:i,length:a}=r;return o.push({type:W.HorizontalMove,step:i,length:a}),o},Ei=(n,e)=>{var u;const t=(u=n.params)==null?void 0:u.range;if(!t)return[e];const o=t.endColumn-t.startColumn+1,r={...t,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(d=>{s.Range.foreach(d,(l,m)=>{c.setValue(l,m,1)})}),a&&s.Range.foreach(a,(d,l)=>{c.setValue(d,l+o,1)}),s.queryObjectMatrix(c,d=>d===1)},Or=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(t,e);if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.HorizontalMove,step:a,length:c})}return o},Ni=(n,e)=>{var d;const t=(d=n.params)==null?void 0:d.range;if(!t)return[e];const o={startRow:t.startRow,endRow:t.endRow,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},r=t.endColumn-t.startColumn+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,o),c=s.Rectangle.getIntersects(o,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(l,m)=>{u.setValue(l,m-r,1)}),i&&s.Range.foreach(i,(l,m)=>{u.setValue(l,m-r,0)}),a.forEach(l=>{s.Range.foreach(l,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,l=>l===1)},Dr=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(le(t),le(e));if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.VerticalMove,step:a,length:c})}return o},ki=(n,e)=>{var d;const t=(d=n.params)==null?void 0:d.range;if(!t)return[e];const o={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},r=t.endRow-t.startRow+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,o),c=s.Rectangle.getIntersects(o,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(l,m)=>{u.setValue(l-r,m,1)}),i&&s.Range.foreach(i,(l,m)=>{u.setValue(l-r,m,0)}),a.forEach(l=>{s.Range.foreach(l,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,l=>l===1)},Le=(n,e)=>{let t={...e};return n.forEach(o=>{switch(o.type){case W.Delete:{t=null;break}case W.HorizontalMove:{if(!t)return;t.startColumn+=o.step,t.endColumn+=o.step+(o.length||0);break}case W.VerticalMove:{if(!t)return;t.startRow+=o.step,t.endRow+=o.step+(o.length||0);break}case W.Set:{t=o.range;break}}}),t&&(t.endColumn<t.startColumn||t.endRow<t.startRow)?null:t},xr=(n,e)=>{let t=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:{t=Or(e,n);break}case T.DeleteRangeMoveUpCommandId:{t=Dr(e,n);break}case T.InsertColCommandId:{t=Pn(e,n);break}case T.InsertRangeMoveDownCommandId:{t=Nr(e,n);break}case T.InsertRangeMoveRightCommandId:{t=kr(e,n);break}case T.InsertRowCommandId:{t=bn(e,n);break}case T.MoveColsCommandId:{t=wn(e,n);break}case T.MoveRangeCommandId:{t=Er(e,n);break}case T.MoveRowsCommandId:{t=Mn(e,n);break}case T.RemoveColCommandId:{t=yn(e,n);break}case T.RemoveRowCommandId:{t=_n(e,n);break}case T.ReorderRangeCommandId:{t=Pi(e,n);break}}return Le(t,n)},Oi=(n,e,t)=>Ai(e,t).some(r=>s.Rectangle.intersects(r,n))?xr(n,e):n,Di=(n,e)=>{let t=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:return Ni(e,n);case T.DeleteRangeMoveUpCommandId:return ki(e,n);case T.InsertRangeMoveDownCommandId:return Ti(e,n);case T.InsertRangeMoveRightCommandId:return Ei(e,n);case T.InsertColCommandId:{t=Pn(e,n);break}case T.InsertRowCommandId:{t=bn(e,n);break}case T.MoveColsCommandId:return _i(e,n);case T.MoveRangeCommandId:return bi(e,n);case T.MoveRowsCommandId:return wi(e,n);case T.ReorderRangeCommandId:return yi(e,n);case T.RemoveColCommandId:{t=yn(e,n);break}case T.RemoveRowCommandId:{t=_n(e,n);break}}return Le(t,n)};function xi(n,e){const{id:t,params:o}=e;let r={length:0,step:0,type:W.Unknown};switch(t){case Je.id:r.type=W.Delete;break;case _e.id:r=st({start:o.sourceRange.startRow,end:o.sourceRange.endRow},{start:o.targetRange.startRow,end:o.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=W.VerticalMove;break;case be.id:r=st({start:o.sourceRange.startColumn,end:o.sourceRange.endColumn},{start:o.targetRange.startColumn,end:o.targetRange.endColumn},{start:n.startColumn,end:n.endColumn}),r.type=W.HorizontalMove;break;case fe.id:r=Ae(o.range,n),r?r.type=W.HorizontalMove:r={step:0,length:0,type:W.Delete};break;case Me.id:r=Ae(le(o.range),le(n)),r?r.type=W.VerticalMove:r={step:0,length:0,type:W.Delete};break;case pe.id:r=We(le(o.range),le(n)),r.type=W.VerticalMove;break;case Ie.id:r=We(o.range,n),r.type=W.HorizontalMove;break;case xe.id:r=Ui(new s.ObjectMatrix(o.from).getRange(),new s.ObjectMatrix(o.to).getRange(),n);break}return r?Array.isArray(r)?Le(r,n):Le([r],n):n}function Ai(n,e){var o,r,i,a;const{selectionManagerService:t}=e;switch(n.id){case T.MoveColsCommandId:{const c=n.params;return[c.fromRange,{...c.toRange,startColumn:c.toRange.startColumn-.5,endColumn:c.toRange.endColumn-.5}]}case T.MoveRowsCommandId:{const c=n.params;return[c.fromRange,{...c.toRange,startRow:c.toRange.startRow-.5,endRow:c.toRange.startRow-.5}]}case T.MoveRangeCommandId:{const c=n;return[c.params.fromRange,c.params.toRange]}case T.InsertRowCommandId:{const u=n.params.range;return[{...u,startRow:u.startRow-.5,endRow:u.endRow-.5}]}case T.InsertColCommandId:{const u=n.params.range;return[{...u,startColumn:u.startColumn-.5,endColumn:u.endColumn-.5}]}case T.RemoveRowCommandId:return[n.params.range];case T.RemoveColCommandId:return[n.params.range];case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const u=((o=n.params)==null?void 0:o.range)||((r=t.getSelectionRanges())==null?void 0:r[0]);return u?[u]:[]}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const u=((i=n.params)==null?void 0:i.range)||((a=t.getSelectionRanges())==null?void 0:a[0]);return u?[u]:[]}case T.ReorderRangeCommandId:{const c=n,{range:u,order:d}=c.params,l=[];for(let m=u.startRow;m<=u.endRow;m++)m in d&&l.push({startRow:m,endRow:m,startColumn:u.startColumn,endColumn:u.endColumn});return l}}}function Wi(n){switch(n.id){case be.id:{const e=n.params;return[e.sourceRange,{...e.targetRange,startColumn:e.targetRange.startColumn-.5,endColumn:e.targetRange.startColumn-.5}]}case _e.id:{const e=n.params;return[e.sourceRange,{...e.targetRange,startRow:e.targetRange.startRow-.5,endRow:e.targetRange.startRow-.5}]}case xe.id:{const e=n.params;return[new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange()]}case Ie.id:{const t=n.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case pe.id:{const t=n.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case fe.id:return[n.params.range];case Me.id:return[n.params.range]}}var Li=Object.defineProperty,Vi=Object.getOwnPropertyDescriptor,$i=(n,e,t,o)=>{for(var r=o>1?void 0:o?Vi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Li(e,t,r),r},Rt=(n,e)=>(t,o)=>e(t,o,n);const Bi=s.createInterceptorKey("MERGE_REDO"),ji=s.createInterceptorKey("MERGE_UNDO"),An=Math.floor(Number.MAX_SAFE_INTEGER/10);class Fi extends s.Disposable{constructor(e,t,o,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=o,this._callback=r,this._skipIntersects=i}onMutation(e){if(e.params.unitId!==this._unitId||e.params.subUnitId!==this._subUnitId||!this._range)return;if(this._skipIntersects){const r=Wi(e);if(r!=null&&r.some(i=>s.Rectangle.intersects(i,this._range)))return!1}const t=xi(this._range,e);if(t&&s.Rectangle.equals(t,this._range))return!1;const o=this._range;this._range=t,this._callback(o,t)}}exports.RefRangeService=class extends s.Disposable{constructor(t,o,r,i){super();C(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Bi,MERGE_UNDO:ji}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",Hi());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:t=>{const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Wn(this._univerInstanceService),i=Ln(this._univerInstanceService);if(!o||!r||!i)return{redos:[],undos:[],preRedos:[],preUndos:[]};const u=((()=>{switch(t.id){case T.MoveColsCommandId:{const R=t.params,S=Math.min(R.fromRange.startColumn,R.toRange.startColumn);return this._checkRange([{...R.fromRange,startColumn:S,endColumn:o.getColumnCount()-1}],r,i)}case T.MoveRowsCommandId:{const R=t.params,S=Math.min(R.fromRange.startRow,R.toRange.startRow);return this._checkRange([{...R.fromRange,startRow:S,endRow:o.getRowCount()-1}],r,i)}case T.MoveRangeCommandId:{const R=t;return this._checkRange([R.params.fromRange,R.params.toRange],r,i)}case T.InsertRowCommandId:{const h={startRow:t.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([h],r,i)}case T.InsertColCommandId:{const S=t.params.range.startColumn,h={startRow:0,endRow:o.getRowCount()-1,startColumn:S,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([h],r,i)}case T.RemoveRowCommandId:{const h={startRow:t.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([h],r,i)}case T.RemoveColCommandId:{const S=t.params.range.startColumn,h={startRow:0,endRow:o.getRowCount()-1,startColumn:S,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([h],r,i)}case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const S=t.params.range||Vn(this._selectionManagerService)[0],h={startRow:S.startRow,startColumn:S.startColumn,endColumn:S.endColumn,endRow:An};return this._checkRange([h],r,i)}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const S=t.params.range||Vn(this._selectionManagerService)[0],h={startRow:S.startRow,startColumn:S.startColumn,endColumn:An,endRow:S.endRow};return this._checkRange([h],r,i)}case T.ReorderRangeCommandId:{const R=t,{range:S,order:h}=R.params,f=[];for(let I=S.startRow;I<=S.endRow;I++)I in h&&f.push({startRow:I,endRow:I,startColumn:S.startColumn,endColumn:S.endColumn});return this._checkRange(f,r,i)}}})()||[]).reduce((R,S)=>{const h=S(t);return R.push(h),R},[]).reduce((R,S)=>{var h,f;return R.redos.push(...S.redos),R.undos.push(...S.undos),R.preRedos.push(...(h=S.preRedos)!=null?h:[]),R.preUndos.push(...(f=S.preUndos)!=null?f:[]),R},{redos:[],undos:[],preUndos:[],preRedos:[]}),d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],l=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:l,undos:g,preRedos:d,preUndos:m}}})});C(this,"_checkRange",(t,o,r)=>{const i=$n(o,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(d=>{const l=a.get(d),m=this._serializer.deserialize(d),g={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn,rangeType:m.rangeType&&+m.rangeType};t.some(R=>s.Rectangle.intersects(R,g))&&l&&l.forEach(R=>{c.add(R)})}),[...c]}return[]});C(this,"registerRefRange",(t,o,r,i)=>{const a=r||Wn(this._univerInstanceService),c=i||Ln(this._univerInstanceService);if(!a||!c)return s.toDisposable(()=>{});const u=$n(a,c),d=this._serializer.serialize(t);let l=this._refRangeManagerMap.get(u);l||(l=new Map,this._refRangeManagerMap.set(u,l));const m=l.get(d);return m?m.add(o):l.set(d,new Set([o])),s.toDisposable(()=>{const g=l.get(d);g&&(g.delete(o),g.size||(l.delete(d),l.size||this._refRangeManagerMap.delete(u)))})});this._commandService=t,this._sheetInterceptorService=o,this._univerInstanceService=r,this._selectionManagerService=i,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}watchRange(t,o,r,i,a){let c;this._watchRanges.size===0&&(c=this._commandService.onCommandExecuted(m=>{if(m.type!==s.CommandType.MUTATION)return!1;for(const g of this._watchRanges)g.onMutation(m)}));const u=new Fi(t,o,r,i,a);this._watchRanges.add(u);const d=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(c==null||c.dispose(),c=null)}),l=this.disposeWithMe(d);return s.toDisposable(()=>{l.dispose(),d.dispose()})}};exports.RefRangeService=$i([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),Rt(0,s.ICommandService),Rt(1,$.Inject(exports.SheetInterceptorService)),Rt(2,$.Inject(s.IUniverInstanceService)),Rt(3,$.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Wn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Ln(n){var e;return(e=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:e.getSheetId()}function Vn(n){return n.getSelectionRanges()||[]}function $n(n,e){return`${n}_${e}`}function Hi(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:t=>{const o=n.reduce((i,a,c)=>(i[String(c)]=a,i),{});return t.split(e).reduce((i,a,c)=>{const u=String(c);return a&&o[u]&&(i[o[u]]=a),i},{})},serialize:t=>n.reduce((o,r,i)=>{const a=t[r];return a!==void 0?`${o}${i>0?e:""}${a}`:`${o}`},"")}}var Gi=Object.defineProperty,qi=Object.getOwnPropertyDescriptor,zi=(n,e,t,o)=>{for(var r=o>1?void 0:o?qi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Gi(e,t,r),r},Fe=(n,e)=>(t,o)=>e(t,o,n);const Yi=[Ie.id,pe.id,fe.id,Me.id],Ki=[_e.id,be.id];function Ar(n,e){let t=n;if(e!==void 0){const o=[];for(let r=0;r<t.length;r++){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=t[r];if(e===s.Dimension.ROWS)for(let d=i;d<=a;d++){const l={startRow:d,endRow:d,startColumn:c,endColumn:u};o.push(l)}else if(e===s.Dimension.COLUMNS)for(let d=c;d<=u;d++){const l={startRow:i,endRow:a,startColumn:d,endColumn:d};o.push(l)}}t=o}return t}exports.MergeCellController=class extends s.Disposable{constructor(t,o,r,i,a,c){super();C(this,"disposableCollection",new s.DisposableCollection);this._commandService=t,this._refRangeService=o,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const t=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case _t.id:case bt.id:{const r=t._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),i=r.getUnitId(),a=r.getActiveSheet();if(!a)return{redos:[],undos:[]};const c=a.getSheetId(),u=a.getConfig().mergeData,d=t._selectionManagerService.getSelectionRanges();if(d&&d.length>0&&d.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:i,subUnitId:c,ranges:d},g=ce(t._injector,m),R=[{id:z.id,params:m}],S=[{id:H.id,params:g}];return{redos:R,undos:S}}}}return{redos:[],undos:[]}}})}refRangeHandle(t,o,r){switch(t.id){case T.MoveColsCommandId:{const i=t.params;return this._handleMoveColsCommand(i,o,r)}case T.MoveRowsCommandId:{const i=t.params;return this._handleMoveRowsCommand(i,o,r)}case Ve.id:{const i=t.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case $e.id:{const i=t.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case ut.id:{const i=t.params;return this._handleRemoveColCommand(i,o,r)}case ct.id:{const i=t.params;return this._handleRemoveRowCommand(i,o,r)}case Ut.id:{const i=t.params;return this._handleMoveRangeCommand(i,o,r)}case xt.id:{const i=t.params;return this._handleInsertRangeMoveRightCommand(i,o,r)}case Dt.id:{const i=t.params;return this._handleInsertRangeMoveDownCommand(i,o,r)}case Ot.id:{const i=t.params;return this._handleDeleteRangeMoveUpCommand(i,o,r)}case kt.id:{const i=t.params;return this._handleDeleteRangeMoveLeftCommand(i,o,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(r);if(!a)return;const c=a==null?void 0:a.getSheetBySheetId(i);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),d=l=>this.refRangeHandle(l,r,i);u.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,d,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===$t.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===H.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(i.unitId,i.subUnitId)}}));const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(o){const r=o.getActiveSheet();if(!r)return;t(o.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:o,subUnitId:r,ranges:[]},d={unitId:o,subUnitId:r,ranges:[]},{fromRange:l}=t,{startRow:m,endRow:g}=l;if(c.forEach(h=>{if(m<=h.startRow&&g>=h.endRow){u.ranges.push(h);const f=Mn({id:T.MoveRowsCommandId,params:t},h),I=Le(f,h);I&&d.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ce(this._injector,u),S=Ce(this._injector,d);return{redos:[{id:z.id,params:u},{id:H.id,params:d}],undos:[{id:z.id,params:S},{id:H.id,params:R}]}}_handleMoveColsCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:o,subUnitId:r,ranges:[]},d={unitId:o,subUnitId:r,ranges:[]},{fromRange:l}=t,{startColumn:m,endColumn:g}=l;if(c.forEach(h=>{if(m<=h.startColumn&&g>=h.endColumn){u.ranges.push(h);const f=wn({id:T.MoveColsCommandId,params:t},h),I=Le(f,h);I&&d.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ce(this._injector,u),S=Ce(this._injector,d);return{redos:[{id:z.id,params:u},{id:H.id,params:d}],undos:[{id:z.id,params:S},{id:H.id,params:R}]}}_handleMoveRangeCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=a.getMergeData(),u=c.filter(S=>s.Rectangle.intersects(S,t.fromRange)),d=c.filter(S=>s.Rectangle.intersects(S,t.toRange)),l=u.map(S=>s.Rectangle.getRelativeRange(S,t.fromRange)).map(S=>s.Rectangle.getPositionRange(S,t.toRange)),m=Ar(l).filter(S=>!c.some(h=>s.Rectangle.equals(S,h))),g=[{id:z.id,params:{unitId:o,subUnitId:r,ranges:u}},{id:z.id,params:{unitId:o,subUnitId:r,ranges:d}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:m}}],R=[{id:z.id,params:{unitId:o,subUnitId:r,ranges:m}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:d}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:u}}];return{redos:g,undos:R}}_handleInsertRowCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startRow:u,endRow:d}=c,l=s.Tools.deepClone(a.getMergeData()).reduce((p,v)=>(u>v.startRow&&u<=v.endRow&&p.push(v),p),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((p,v)=>{if(u>v.startRow&&u<=v.endRow){const M=d-u+1;v.endRow+=M,this._checkIsMergeCell(v)&&p.push(v)}return p},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:z.id,params:h},{id:H.id,params:R}];return{redos:f,undos:I}}_handleInsertColCommand(t,o,r){const{range:i}=t,a=Re(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:d}=i,l=s.Tools.deepClone(c.getMergeData()).reduce((p,v)=>(u>v.startColumn&&u<=v.endColumn&&p.push(v),p),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,v)=>{if(u>v.startColumn&&u<=v.endColumn){const M=d-u+1;v.endColumn+=M,this._checkIsMergeCell(v)&&p.push(v)}return p},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:z.id,params:h},{id:H.id,params:R}];return{redos:f,undos:I}}_handleRemoveColCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startColumn:u,endColumn:d}=c,l=s.Tools.deepClone(a.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(c,w)&&M.push(w),M),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((M,w)=>{if(s.Rectangle.intersects(c,w)){if(u<=w.startColumn&&d>=w.endColumn)return M;u>=w.startColumn&&d<=w.endColumn?w.endColumn-=d-u+1:u<w.startColumn?(w.startColumn=u,w.endColumn-=d-u+1):d>w.endColumn&&(w.endColumn=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g}],I=[{id:H.id,params:S}],p=[{id:z.id,params:h}],v=[{id:H.id,params:R}];return{preUndos:p,undos:v,preRedos:f,redos:I}}_handleRemoveRowCommand(t,o,r){const{range:i}=t,a=Re(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startRow:u,endRow:d}=i,l=s.Tools.deepClone(c.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(i,w)&&M.push(w),M),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((M,w)=>{if(s.Rectangle.intersects(i,w)){if(u<=w.startRow&&d>=w.endRow)return M;u>=w.startRow&&d<=w.endRow?w.endRow-=d-u+1:u<w.startRow?(w.startRow=u,w.endRow-=d-u+1):d>w.endRow&&(w.endRow=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g}],I=[{id:H.id,params:S}],p=[{id:z.id,params:h}],v=[{id:H.id,params:R}];return{preUndos:p,undos:v,preRedos:f,redos:I}}_handleInsertRangeMoveRightCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,d=a.getMergeData(),l=[],m=[];d.forEach(f=>{const{startRow:I,endRow:p,startColumn:v,endColumn:M}=c;if(s.Rectangle.intersects({startRow:I,startColumn:v,endRow:p,endColumn:u},f)&&(l.push(f),s.Rectangle.contains({startRow:I,startColumn:v,endRow:p,endColumn:u},f))){const P=M-v+1;m.push({startRow:f.startRow,startColumn:f.startColumn+P,endRow:f.endRow,endColumn:f.endColumn+P})}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S);return{redos:[{id:z.id,params:g},{id:H.id,params:S}],undos:[{id:H.id,params:R},{id:z.id,params:h}]}}_handleInsertRangeMoveDownCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,d=a.getMergeData(),l=[],m=[];d.forEach(p=>{const{startRow:v,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:v,startColumn:M,endRow:u,endColumn:w},p)&&(l.push(p),s.Rectangle.contains({startRow:v,startColumn:M,endRow:u,endColumn:w},p))){const E=y-v+1;m.push({startRow:p.startRow+E,startColumn:p.startColumn,endRow:p.endRow+E,endColumn:p.endColumn})}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:H.id,params:R},{id:z.id,params:h}];return{redos:f,undos:I}}_handleDeleteRangeMoveUpCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,d=a.getMergeData(),l=[],m=[];d.forEach(p=>{const{startRow:v,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:v,startColumn:M,endRow:u,endColumn:w},p)&&(l.push(p),s.Rectangle.contains({startRow:v,startColumn:M,endRow:u,endColumn:w},p))){const E=y-v+1,O=s.Rectangle.moveVertical(p,-E);m.push(O)}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:H.id,params:R},{id:z.id,params:h}];return{redos:f,undos:I}}_handleDeleteRangeMoveLeftCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,d=a.getMergeData(),l=[],m=[];d.forEach(f=>{const{startRow:I,endRow:p,startColumn:v,endColumn:M}=c;if(s.Rectangle.intersects({startRow:I,startColumn:v,endRow:p,endColumn:u},f)&&(l.push(f),s.Rectangle.contains({startRow:I,startColumn:v,endRow:p,endColumn:u},f))){const P=M-v+1;m.push({startRow:f.startRow,startColumn:f.startColumn-P,endRow:f.endRow,endColumn:f.endColumn-P})}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S);return{redos:[{id:z.id,params:g},{id:H.id,params:S}],undos:[{id:H.id,params:R},{id:z.id,params:h}]}}_checkIsMergeCell(t){return!(t.startRow===t.endRow&&t.startColumn===t.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Ki.includes(t.id)){if(!t.params)return;const o=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=c?i.startRow:i.startColumn,l=c?a.startRow:a.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:I,endRow:p,startColumn:v,endColumn:M,rangeType:w}=f;s.Rectangle.intersects(f,i)||(c?d<I&&l>p?(I-=u,p-=u):d>p&&l<=I&&(I+=u,p+=u):d<v&&l>M?(v-=u,M-=u):d>M&&l<=v&&(v+=u,M+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:I,endRow:p,startColumn:v,endColumn:M,rangeType:w})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:R,subUnitId:S}=t.params,h=f=>this.refRangeHandle(f,R,S);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,h,R,S))})}if(Yi.includes(t.id)){const o=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=r.getConfig().mergeData,a=t.params;if(!a)return;const{range:c}=a,u=t.id.includes("row"),d=t.id.includes("insert"),l=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-l+1,R=[];i.forEach(I=>{let{startRow:p,endRow:v,startColumn:M,endColumn:w,rangeType:y}=I;d?u?l<=p&&(p+=g,v+=g):l<=M&&(M+=g,w+=g):u?m<p&&(p-=g,v-=g):m<M&&(M-=g,w-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||R.push({startRow:p,endRow:v,startColumn:M,endColumn:w,rangeType:y})}),r.getConfig().mergeData=R,this.disposableCollection.dispose();const{unitId:S,subUnitId:h}=t.params,f=I=>this.refRangeHandle(I,S,h);R.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,f,S,h))})}}))}};exports.MergeCellController=zi([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Fe(0,$.Inject(s.ICommandService)),Fe(1,$.Inject(exports.RefRangeService)),Fe(2,$.Inject(s.IUniverInstanceService)),Fe(3,$.Inject($.Injector)),Fe(4,$.Inject(exports.SheetInterceptorService)),Fe(5,$.Inject(exports.SelectionManagerService))],exports.MergeCellController);function Re(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function Se(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}var Ji=Object.defineProperty,Xi=Object.getOwnPropertyDescriptor,Zi=(n,e,t,o)=>{for(var r=o>1?void 0:o?Xi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Ji(e,t,r),r},Ht=(n,e)=>(t,o)=>e(t,o,n);exports.NumfmtService=class extends s.Disposable{constructor(e,t,o){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=o}getValue(e,t,o,r){const i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;const c=i.getStyles(),u=a.getCellRaw(o,r);if(u!=null&&u.s){const d=c.get(u.s);if(d!=null&&d.n)return d.n}return null}deleteValues(e,t,o){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles();o.forEach(c=>{s.Range.foreach(c,(u,d)=>{const l=i.getCellRaw(u,d);if(!l)return;const m=l==null?void 0:l.s,R={...m&&a.get(m)||{}};delete R.n;const S=a.setValue(R);l.s=S})})}setValues(e,t,o){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles(),c=i.getCellMatrix();o.forEach(u=>{u.ranges.forEach(d=>{s.Range.foreach(d,(l,m)=>{const g=i.getCellRaw(l,m);if(g){const S={...g.s&&a.get(g.s)||{},n:{pattern:u.pattern}},h=a.setValue(S);g.s=h}else{const R={n:{pattern:u.pattern}},S=a.setValue(R);S&&c.setValue(l,m,{s:S})}})})})}};exports.NumfmtService=Zi([Ht(0,s.IResourceManagerService),Ht(1,s.IUniverInstanceService),Ht(2,s.ILogService)],exports.NumfmtService);const zt=()=>[ho,So,go,wo,_o,Co,Po,Mo,vo,Io,po,Ro,yo,fo,bo],Qi=[_.Edit,_.Print,_.Comment,_.View,_.Copy,_.Export,_.ManageCollaborator,_.CreateSheet,_.DeleteSheet,_.RenameSheet,_.HideSheet,_.Duplicate,_.Share,_.MoveSheet,_.CopySheet];var ea=Object.defineProperty,ta=Object.getOwnPropertyDescriptor,na=(n,e,t,o)=>{for(var r=o>1?void 0:o?ta(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ea(e,t,r),r},Gt=(n,e)=>(t,o)=>e(t,o,n);exports.WorkbookPermissionService=class extends s.Disposable{constructor(e,t,o){super(),this._permissionService=e,this._univerInstanceService=t,this._rangeProtectionRuleModel=o,this._init()}_init(){const e=t=>{const o=t.getUnitId();zt().forEach(r=>{const i=new r(o);this._permissionService.addPermissionPoint(i)})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const o=t.getUnitId();t.getSheets().forEach(r=>{const i=r.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(o,i).forEach(c=>{[Et,Nt].forEach(u=>{const d=new u(o,i,c.permissionId);this._permissionService.deletePermissionPoint(d.id)})}),[...Te(),...ot()].forEach(c=>{const u=new c(o,i);this._permissionService.deletePermissionPoint(u.id)})}),zt().forEach(r=>{const i=new r(o);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=na([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorkbookPermissionService),Gt(0,$.Inject(s.IPermissionService)),Gt(1,$.Inject(s.IUniverInstanceService)),Gt(2,$.Inject(exports.RangeProtectionRuleModel))],exports.WorkbookPermissionService);var oa=Object.defineProperty,ra=Object.getOwnPropertyDescriptor,sa=(n,e,t,o)=>{for(var r=o>1?void 0:o?ra(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&oa(e,t,r),r},Bn=(n,e)=>(t,o)=>e(t,o,n);const ia="SHEET_DEFINED_NAME_PLUGIN";exports.DefinedNameDataController=class extends s.Disposable{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const e=o=>{const r=this._definedNamesService.getDefinedNameMap(o);return r?JSON.stringify(r):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:ia,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>e(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,r)=>{this._definedNamesService.registerDefinedNames(o,r)}}))}};exports.DefinedNameDataController=sa([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),Bn(0,de.IDefinedNamesService),Bn(1,s.IResourceManagerService)],exports.DefinedNameDataController);const Ee=()=>[Nt,Et],aa=(n="unitId",e="subUnitId",t="permissionId")=>Ee().reduce((o,r)=>{const i=new r(n,e,t);return o[i.subType]=i.value,o},{});var ca=Object.defineProperty,ua=Object.getOwnPropertyDescriptor,la=(n,e,t,o)=>{for(var r=o>1?void 0:o?ua(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ca(e,t,r),r},jn=(n,e)=>(t,o)=>e(t,o,n);exports.RangeProtectionRenderModel=class{constructor(e,t){C(this,"_cache",new s.LRUMap(1e4));this._selectionProtectionRuleModel=e,this._permissionService=t,this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(et.filter(e=>e.type===D.SelectRange),et.filter(e=>Ee().some(t=>e instanceof t)),et.map(e=>e)).subscribe(e=>{const t=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(const o of t)o.permissionId===e.permissionId&&o.ranges.forEach(r=>{s.Range.foreach(r,(i,a)=>{const c=this._createKey(e.unitId,e.subUnitId,i,a);this._cache.delete(c)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{var t;e.rule.ranges.forEach(o=>{s.Range.foreach(o,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}),e.type==="set"&&((t=e.oldRule)==null||t.ranges.forEach(o=>{s.Range.foreach(o,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}))})}_createKey(e,t,o,r){return`${e}_${t}_${o}_${r}`}getCellInfo(e,t,o,r){const i=this._createKey(e,t,o,r),a=this._cache.get(i);if(a)return a;const c=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),u=[];if(!c||!c.length)return u;const d=[];for(const l of c)if(l.ranges.some(m=>m.startRow<=o&&m.endRow>=o&&m.startColumn<=r&&m.endColumn>=r)){const m=Ee().reduce((g,R)=>{var f;const S=new R(e,t,l.permissionId),h=this._permissionService.getPermissionPoint(S.id);return g[S.subType]=(f=h==null?void 0:h.value)!=null?f:S.value,g},{});d.push({...m,ruleId:l.id,ranges:l.ranges})}return this._cache.set(i,d),d}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=la([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),jn(0,$.Inject(exports.RangeProtectionRuleModel)),jn(1,$.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var da=Object.defineProperty,ma=Object.getOwnPropertyDescriptor,ga=(n,e,t,o)=>{for(var r=o>1?void 0:o?ma(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&da(e,t,r),r},Qe=(n,e)=>(t,o)=>e(t,o,n);const ha=[Ie.id,pe.id,fe.id,Me.id],Ra=[_e.id,be.id];exports.RangeProtectionRefRangeService=class extends s.Disposable{constructor(t,o,r,i,a){super();C(this,"disposableCollection",new s.DisposableCollection);this._selectionProtectionRuleModel=t,this._univerInstanceService=o,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._onRefRangeChange(),this._correctPermissionRange()}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a||!(a==null?void 0:a.getSheetBySheetId(i)))return;this.disposableCollection.dispose();const u=l=>this.refRangeHandle(l,r,i);this._selectionProtectionRuleModel.getSubunitRuleList(r,i).reduce((l,m)=>[...l,...m.ranges],[]).forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,u,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===$t.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===vn.id||r.id===pn.id){const i=r.params,a=i.rule.subUnitId,c=i.rule.unitId;if(!a||!c)return;t(c,a)}}));const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(o){const r=o.getActiveSheet();if(!r)return;t(o.getUnitId(),r.getSheetId())}}refRangeHandle(t,o,r){switch(t.id){case At.id:return this._getRefRangeMutationsByMoveRows(t.params,o,r);case Wt.id:return this._getRefRangeMutationsByMoveCols(t.params,o,r);case Ve.id:return this._getRefRangeMutationsByInsertRows(t.params,o,r);case $e.id:return this._getRefRangeMutationsByInsertCols(t.params,o,r);case ut.id:return this._getRefRangeMutationsByDeleteCols(t.params,o,r);case ct.id:return this._getRefRangeMutationsByDeleteRows(t.params,o,r)}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(t,o,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(d=>{const l=s.Tools.deepClone(d),m=l.ranges.reduce((g,R)=>{if(s.Rectangle.intersects(R,a)){const S=s.Tools.deepClone(R),{startColumn:h,endColumn:f}=a;if(h<=S.startColumn&&f>=S.endColumn)return g;h>=S.startColumn&&f<=S.endColumn?S.endColumn-=f-h+1:h<S.startColumn?(S.startColumn=h,S.endColumn-=f-h+1):f>S.endColumn&&(S.endColumn=h-1),this._checkIsRightRange(S)&&g.push(S)}return g},[]);l.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:d.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(t,o,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(d=>{const l=s.Tools.deepClone(d),m=l.ranges.reduce((g,R)=>{if(s.Rectangle.intersects(R,a)){const S=s.Tools.deepClone(R),{startRow:h,endRow:f}=a;if(h<=S.startRow&&f>=S.endRow)return g;h>=S.startRow&&f<=S.endRow?S.endRow-=f-h+1:h<S.startRow?(S.startRow=h,S.endRow-=f-h+1):f>S.endRow&&(S.endRow=h-1),this._checkIsRightRange(S)&&g.push(S)}return g},[]);l.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:d.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(t,o,r){const i=t.range.startColumn,a=t.range.endColumn-t.range.startColumn+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(u=>u.ranges.some(d=>i>d.startColumn&&i<=d.endColumn));if(c.length){const u=[],d=[];return c.forEach(l=>{const m=s.Tools.deepClone(l);let g=!1;m.ranges.forEach(R=>{i>R.startColumn&&i<=R.endColumn&&(R.endColumn+=a,g=!0)}),g&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:l.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.id}}))}),{redos:u,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(t,o,r){const i=t.range.startRow,a=t.range.endRow-t.range.startRow+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(u=>u.ranges.some(d=>i>d.startRow&&i<=d.endRow));if(c.length){const u=[],d=[];return c.forEach(l=>{const m=s.Tools.deepClone(l);let g=!1;m.ranges.forEach(R=>{i>R.startRow&&i<=R.endRow&&(R.endRow+=a,g=!0)}),g&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:l.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.id}}))}),{redos:u,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(t,o,r){const i=t.toRange,a=i.startRow,c=i.endRow-i.startRow+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(d=>d.ranges.some(l=>a>l.startRow&&a<=l.endRow));if(u.length){const d=[],l=[];return u.forEach(m=>{const g=s.Tools.deepClone(m),S=t.fromRange.startRow;let h=!1;g.ranges.forEach(f=>{a>f.startRow&&a<=f.endRow&&(S<f.startRow&&(f.startRow=f.startRow-c,f.endRow=f.endRow-c),f.endRow+=c,h=!0)}),h&&(d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:g,ruleId:m.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:d,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(t,o,r){const i=t.toRange,a=i.startColumn,c=i.endColumn-i.startColumn+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(d=>d.ranges.some(l=>a>l.startColumn&&a<=l.endColumn));if(u.length){const d=[],l=[];return u.forEach(m=>{const g=s.Tools.deepClone(m),S=t.fromRange.startColumn;let h=!1;g.ranges.forEach(f=>{a>f.startColumn&&a<=f.endColumn&&(S<f.startColumn&&(f.startColumn=f.startColumn-c,f.endColumn=f.endColumn-c),f.endColumn+=c,h=!0)}),h&&(d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:g,ruleId:m.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:d,undos:l}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Ra.includes(t.id)){if(!t.params)return;const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=c?i.startRow:i.startColumn,l=c?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(f=>{f.ranges.forEach(p=>{let{startRow:v,endRow:M,startColumn:w,endColumn:y}=p;s.Rectangle.intersects(p,i)||(c?d<v&&l>M?(v-=u,M-=u):d>M&&l<=v&&(v+=u,M+=u):d<w&&l>y?(w-=u,y-=u):d>y&&l<=w&&(w+=u,y+=u)),this._checkIsRightRange({startRow:v,endRow:M,startColumn:w,endColumn:y})&&(p.startColumn=w,p.endColumn=y,p.startRow=v,p.endRow=M)})}),this.disposableCollection.dispose();const{unitId:g,subUnitId:R}=t.params,S=f=>this.refRangeHandle(f,g,R);this._selectionProtectionRuleModel.getSubunitRuleList(g,R).reduce((f,I)=>[...f,...I.ranges],[]).forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,S,g,R))}),this._selectionProtectionRenderModel.clear()}if(ha.includes(t.id)){const o=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=t.params;if(!i)return;const{range:a}=i,c=t.id.includes("row"),u=t.id.includes("insert"),d=c?a.startRow:a.startColumn,l=c?a.endRow:a.endColumn,m=l-d+1;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(I=>{I.ranges.forEach(v=>{let{startRow:M,endRow:w,startColumn:y,endColumn:P}=v;u?c?d<=M&&(M+=m,w+=m):d<=y&&(y+=m,P+=m):c?l<M&&(M-=m,w-=m):l<y&&(y-=m,P-=m),this._checkIsRightRange({startRow:M,endRow:w,startColumn:y,endColumn:P})&&(v.startColumn=y,v.endColumn=P,v.startRow=M,v.endRow=w)})}),this.disposableCollection.dispose();const{unitId:R,subUnitId:S}=t.params,h=I=>this.refRangeHandle(I,R,S);this._selectionProtectionRuleModel.getSubunitRuleList(R,S).reduce((I,p)=>[...I,...p.ranges],[]).forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,h,R,S))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(t){return t.startRow<=t.endRow&&t.startColumn<=t.endColumn}};exports.RangeProtectionRefRangeService=ga([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRefRangeService),Qe(0,$.Inject(exports.RangeProtectionRuleModel)),Qe(1,$.Inject(s.IUniverInstanceService)),Qe(2,s.ICommandService),Qe(3,$.Inject(exports.RefRangeService)),Qe(4,$.Inject(exports.RangeProtectionRenderModel))],exports.RangeProtectionRefRangeService);var Sa=Object.defineProperty,Ca=Object.getOwnPropertyDescriptor,fa=(n,e,t,o)=>{for(var r=o>1?void 0:o?Ca(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Sa(e,t,r),r},qt=(n,e)=>(t,o)=>e(t,o,n);const va="SHEET_RANGE_PROTECTION_PLUGIN";exports.RangeProtectionService=class extends s.Disposable{constructor(e,t,o){super(),this._selectionProtectionRuleModel=e,this._permissionService=t,this._resourceManagerService=o,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Ee().forEach(t=>{const o=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(o)});break}case"delete":{Ee().forEach(t=>{const o=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(o.id)});break}case"set":{e.oldRule.permissionId!==e.rule.permissionId&&Ee().forEach(t=>{const o=new t(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(o.id);const r=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}}))}_initSnapshot(){const e=o=>{const i=this._selectionProtectionRuleModel.toObject()[o];return i?JSON.stringify(i):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:va,businesses:[It.UNIVER_SHEET],onLoad:(o,r)=>{const i=this._selectionProtectionRuleModel.toObject();i[o]=r,this._selectionProtectionRuleModel.fromObject(i);const a=[];Object.keys(r).forEach(c=>{const u=r[c];this._selectionProtectionRuleModel.getSubunitRuleList(o,c).forEach(d=>{a.push({objectID:d.permissionId,unitID:o,objectType:D.SelectRange,actions:[_.View,_.Edit]})}),u.forEach(d=>{Ee().forEach(l=>{const m=new l(o,c,d.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=fa([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionService),qt(0,$.Inject(exports.RangeProtectionRuleModel)),qt(1,$.Inject(s.IPermissionService)),qt(2,$.Inject(s.IResourceManagerService))],exports.RangeProtectionService);var Wr=Object.defineProperty,pa=Object.getOwnPropertyDescriptor,Ia=(n,e,t)=>e in n?Wr(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ma=(n,e,t,o)=>{for(var r=o>1?void 0:o?pa(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Wr(e,t,r),r},St=(n,e)=>(t,o)=>e(t,o,n),Lr=(n,e,t)=>Ia(n,typeof e!="symbol"?e+"":e,t);const wa="SHEET_PLUGIN";exports.UniverSheetsPlugin=class extends s.Plugin{constructor(e,t,o,r,i){super(),this._config=e,this._commandService=t,this._configService=o,this._localeService=r,this._injector=i,this._initConfig(),this._initDependencies(i)}onRendered(){}_initConfig(){var e;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(Tr,!0)}_initDependencies(e){var o,r;const t=[[Be],[exports.SelectionManagerService],[exports.RefRangeService],[exports.WorkbookPermissionService],[je,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[vt],[exports.MergeCellController],[exports.DefinedNameDataController],[exports.WorksheetPermissionService],[exports.WorksheetProtectionRuleModel],[exports.WorksheetProtectionPointModel],[exports.RangeProtectionRenderModel],[exports.RangeProtectionRuleModel],[exports.RangeProtectionRefRangeService],[exports.RangeProtectionService]];(o=this._config)!=null&&o.notExecuteFormula||t.push([pt]),s.mergeOverrideWithDependencies(t,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}};Lr(exports.UniverSheetsPlugin,"pluginName",wa);Lr(exports.UniverSheetsPlugin,"type",s.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsPlugin=Ma([s.DependentOn(de.UniverFormulaEnginePlugin),St(1,s.ICommandService),St(2,s.IConfigService),St(3,$.Inject(s.LocaleService)),St(4,$.Inject($.Injector))],exports.UniverSheetsPlugin);const ya=[ye.id,he.id,ln.id,we.id,lt.id,_e.id,be.id,He.id,Ge.id,ze.id,qe.id,Ie.id,pe.id,fe.id,Me.id],_a=[G.id,xe.id,z.id,H.id,rt.id],ba=1.5,Pa="rgba(255, 255, 255, 0.01)";function Ua(n){const e=n.getCurrentTheme(),t=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:e.primaryColor,fill:t,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:t,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:t,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function Ta(n){const{rangeWithCoord:e,primaryWithCoord:t,style:o}=n,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:o};return t!=null&&(r.primary=Vr(t)),r}function Vr(n){const{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:r}=n,{startRow:i,startColumn:a,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function Ea(n,e,t){const o=s.getCellInfoInMergeData(n,e,t),r=s.makeCellRangeToRangeData(o);if(r)return{range:r,primary:o,style:null}}const Na=(n,e,t)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:c,subUnitId:u}=e;if(r){const l=r[(r==null?void 0:r.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:R,startColumn:S,endRow:h,endColumn:f}=a[a.length-1];if(i===s.Dimension.COLUMNS){const M=t.find(w=>w.startColumn===m&&w.endColumn===m&&g===w.startRow);M&&(f=M.endColumn,R=M.startRow,h=M.endRow)}else if(i===s.Dimension.ROWS){const M=t.find(w=>w.startRow===g&&w.endRow===g&&m===w.startColumn);M&&(h=M.endRow,S=M.startColumn,f=M.endColumn)}const I={startRow:R,startColumn:S,endRow:h,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:R===g&&S===m},p=r.map((M,w,y)=>({range:M.range,style:null,primary:w===y.length-1?I:null})),v={unitId:c,subUnitId:u,pluginName:X,selections:p};return{id:K.id,params:v}}return null}return null},ka=(n,e)=>{const o=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:i}=e;if(o&&o[(o==null?void 0:o.length)-1].primary){const u={unitId:r,subUnitId:i,pluginName:X,selections:[...o]};return{id:K.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Na;exports.AddMergeUndoMutationFactory=Ce;exports.AddMergeUndoSelectionsOperationFactory=ka;exports.AddRangeProtectionCommand=vn;exports.AddRangeProtectionMutation=Ke;exports.AddWorksheetMergeMutation=H;exports.AddWorksheetProtectionMutation=Ir;exports.BorderStyleManagerService=Be;exports.COMMAND_LISTENER_SKELETON_CHANGE=ya;exports.COMMAND_LISTENER_VALUE_CHANGE=_a;exports.ClearSelectionAllCommand=_t;exports.ClearSelectionContentCommand=Yt;exports.ClearSelectionFormatCommand=bt;exports.CopySheetCommand=Kn;exports.DeleteRangeMoveLeftCommand=kt;exports.DeleteRangeMoveUpCommand=Ot;exports.DeleteRangeProtectionCommand=br;exports.DeleteRangeProtectionMutation=Ye;exports.DeleteWorksheetProtectionMutation=wr;exports.DeltaColumnWidthCommand=an;exports.DeltaRowHeightCommand=dn;exports.EffectRefRangId=T;exports.EmptyMutation=Sr;exports.FactoryAddRangeProtectionMutation=gi;exports.FactoryDeleteRangeProtectionMutation=mi;exports.FactorySetRangeProtectionMutation=hi;exports.INTERCEPTOR_POINT=Ct;exports.INumfmtService=je;exports.InsertColAfterCommand=Ao;exports.InsertColBeforeCommand=xo;exports.InsertColCommand=$e;exports.InsertColMutation=Ie;exports.InsertColMutationUndoFactory=en;exports.InsertDefinedNameCommand=Cr;exports.InsertRangeMoveDownCommand=Dt;exports.InsertRangeMoveRightCommand=xt;exports.InsertRowAfterCommand=Oo;exports.InsertRowBeforeCommand=ko;exports.InsertRowCommand=Ve;exports.InsertRowMutation=pe;exports.InsertRowMutationUndoFactory=Qt;exports.InsertSheetCommand=Wo;exports.InsertSheetMutation=De;exports.InsertSheetUndoMutationFactory=Kt;exports.MAX_CELL_PER_SHEET_KEY=Ur;exports.MoveColsCommand=Wt;exports.MoveColsMutation=be;exports.MoveColsMutationUndoFactory=Vo;exports.MoveRangeCommand=Ut;exports.MoveRangeMutation=xe;exports.MoveRowsCommand=At;exports.MoveRowsMutation=_e;exports.MoveRowsMutationUndoFactory=Lo;exports.NORMAL_SELECTION_PLUGIN_NAME=X;exports.OperatorType=W;exports.RangeMergeUtil=Ys;exports.RangeProtectionPermissionEditPoint=Et;exports.RangeProtectionPermissionViewPoint=Nt;exports.RemoveColCommand=ut;exports.RemoveColMutation=fe;exports.RemoveDefinedNameCommand=fr;exports.RemoveMergeUndoMutationFactory=ce;exports.RemoveNumfmtMutation=Sn;exports.RemoveRowCommand=ct;exports.RemoveRowMutation=Me;exports.RemoveSheetCommand=tn;exports.RemoveSheetMutation=Je;exports.RemoveSheetUndoMutationFactory=Yn;exports.RemoveWorksheetMergeCommand=Ho;exports.RemoveWorksheetMergeMutation=z;exports.ReorderRangeCommand=In;exports.ReorderRangeMutation=rt;exports.ResetBackgroundColorCommand=or;exports.ResetTextColorCommand=tr;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Pa;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=ba;exports.ScrollToCellOperation=pr;exports.SelectionMoveType=Fn;exports.SetBackgroundColorCommand=nr;exports.SetBoldCommand=xs;exports.SetBorderBasicCommand=Go;exports.SetBorderColorCommand=Yo;exports.SetBorderCommand=Xe;exports.SetBorderPositionCommand=qo;exports.SetBorderStyleCommand=zo;exports.SetColHiddenCommand=nn;exports.SetColHiddenMutation=He;exports.SetColVisibleMutation=Ge;exports.SetColWidthCommand=Mt;exports.SetDefinedNameCommand=vr;exports.SetFontFamilyCommand=Vs;exports.SetFontSizeCommand=$s;exports.SetFrozenCommand=Xo;exports.SetFrozenMutation=Ne;exports.SetFrozenMutationFactory=on;exports.SetHorizontalTextAlignCommand=sr;exports.SetItalicCommand=As;exports.SetNumfmtMutation=Bt;exports.SetRangeProtectionCommand=pn;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=at;exports.SetRangeValuesMutation=G;exports.SetRangeValuesUndoMutationFactory=Pe;exports.SetRowHeightCommand=mn;exports.SetRowHiddenCommand=rn;exports.SetRowHiddenMutation=ze;exports.SetRowVisibleMutation=qe;exports.SetSelectedColsVisibleCommand=Ko;exports.SetSelectedRowsVisibleCommand=Zo;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=Lt;exports.SetSpecificRowsVisibleCommand=Vt;exports.SetStrikeThroughCommand=Ls;exports.SetStyleCommand=te;exports.SetTabColorCommand=cr;exports.SetTabColorMutation=tt;exports.SetTextColorCommand=er;exports.SetTextRotationCommand=ar;exports.SetTextWrapCommand=ir;exports.SetUnderlineCommand=Ws;exports.SetVerticalTextAlignCommand=rr;exports.SetWorkbookNameCommand=fn;exports.SetWorkbookNameMutation=Cn;exports.SetWorksheetActivateCommand=$t;exports.SetWorksheetActiveOperation=lt;exports.SetWorksheetColWidthMutation=we;exports.SetWorksheetColWidthMutationFactory=sn;exports.SetWorksheetHideCommand=lr;exports.SetWorksheetHideMutation=ke;exports.SetWorksheetNameCommand=cn;exports.SetWorksheetNameMutation=wt;exports.SetWorksheetOrderCommand=dr;exports.SetWorksheetOrderMutation=nt;exports.SetWorksheetPermissionPointsCommand=_r;exports.SetWorksheetProtectionMutation=Mr;exports.SetWorksheetRowAutoHeightMutation=ln;exports.SetWorksheetRowAutoHeightMutationFactory=qs;exports.SetWorksheetRowHeightMutation=ye;exports.SetWorksheetRowIsAutoHeightCommand=gn;exports.SetWorksheetRowIsAutoHeightMutation=he;exports.SetWorksheetShowCommand=gr;exports.WorkbookCommentPermission=go;exports.WorkbookCopyPermission=_o;exports.WorkbookCopySheetPermission=bo;exports.WorkbookCreateSheetPermission=Mo;exports.WorkbookDeleteSheetPermission=vo;exports.WorkbookDuplicatePermission=Ro;exports.WorkbookEditablePermission=ho;exports.WorkbookExportPermission=Co;exports.WorkbookHideSheetPermission=po;exports.WorkbookHistoryPermission=Cs;exports.WorkbookManageCollaboratorPermission=Po;exports.WorkbookMoveSheetPermission=fo;exports.WorkbookPrintPermission=So;exports.WorkbookRenameSheetPermission=Io;exports.WorkbookSharePermission=yo;exports.WorkbookViewPermission=wo;exports.WorksheetCopyPermission=Xn;exports.WorksheetDeleteColumnPermission=ao;exports.WorksheetDeleteRowPermission=io;exports.WorksheetEditExtraObjectPermission=mo;exports.WorksheetEditPermission=Jt;exports.WorksheetFilterPermission=uo;exports.WorksheetInsertColumnPermission=ro;exports.WorksheetInsertHyperlinkPermission=so;exports.WorksheetInsertRowPermission=oo;exports.WorksheetManageCollaboratorPermission=Ss;exports.WorksheetPivotTablePermission=lo;exports.WorksheetSelectProtectedCellsPermission=hs;exports.WorksheetSelectUnProtectedCellsPermission=Rs;exports.WorksheetSetCellStylePermission=Zn;exports.WorksheetSetCellValuePermission=Qn;exports.WorksheetSetColumnStylePermission=no;exports.WorksheetSetRowStylePermission=to;exports.WorksheetSortPermission=co;exports.WorksheetViewPermission=eo;exports.alignToMergedCellsBorders=it;exports.convertPrimaryWithCoordToPrimary=Vr;exports.convertSelectionDataToRange=Ta;exports.createTopMatrixFromMatrix=Rr;exports.createTopMatrixFromRanges=hr;exports.defaultWorkbookPermissionPoints=Qi;exports.defaultWorksheetPermissionPoint=oi;exports.expandToContinuousRange=cs;exports.factoryRemoveNumfmtUndoMutation=Js;exports.factorySetNumfmtUndoMutation=Ks;exports.findAllRectangle=hn;exports.followSelectionOperation=Ue;exports.generateNullCellValue=qn;exports.getAddMergeMutationRangeByType=Ar;exports.getAllRangePermissionPoint=Ee;exports.getAllWorkbookPermissionPoint=zt;exports.getAllWorksheetPermissionPoint=Te;exports.getAllWorksheetPermissionPointByPointPanel=ot;exports.getCellAtRowCol=ls;exports.getDefaultRangePermission=aa;exports.getInsertRangeMutations=Xt;exports.getMoveRangeUndoRedoMutations=Tt;exports.getNormalSelectionStyle=Ua;exports.getPrimaryForRange=ie;exports.getRemoveRangeMutations=Zt;exports.getSheetCommandTarget=L;exports.getSheetCommandTargetWorkbook=zn;exports.getSheetMutationTarget=Pt;exports.handleBaseInsertRange=We;exports.handleBaseMoveRowsCols=st;exports.handleBaseRemoveRange=Ae;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=Di;exports.handleDefaultRangeChangeWithEffectRefCommands=xr;exports.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Oi;exports.handleDeleteRangeMoveLeft=Or;exports.handleDeleteRangeMoveUp=Dr;exports.handleDeleteRangeMutation=vs;exports.handleIRemoveCol=yn;exports.handleIRemoveRow=_n;exports.handleInsertCol=Pn;exports.handleInsertRangeMoveDown=Nr;exports.handleInsertRangeMoveRight=kr;exports.handleInsertRangeMutation=fs;exports.handleInsertRow=bn;exports.handleMoveCols=wn;exports.handleMoveRange=Er;exports.handleMoveRows=Mn;exports.isSingleCellSelection=ms;exports.rangeMerge=Rn;exports.rotateRange=le;exports.runRefRangeMutations=Le;exports.setEndForRange=ds;exports.transformCellDataToSelectionData=Ea;exports.transformCellsToRange=yt;
1
+ "use strict";var zr=Object.defineProperty;var Yr=(t,e,n)=>e in t?zr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var C=(t,e,n)=>Yr(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),V=require("@wendellhu/redi"),ae=require("@univerjs/engine-formula"),Kr=require("@univerjs/rpc"),le=require("rxjs"),et=require("rxjs/operators");var Jr=Object.defineProperty,Xr=Object.getOwnPropertyDescriptor,Zr=(t,e,n,o)=>{for(var r=o>1?void 0:o?Xr(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&Jr(e,n,r),r},Qr=(t,e)=>(n,o)=>e(n,o,t);const X="normalSelectionPluginName";var Kn=(t=>(t[t.MOVE_START=0]="MOVE_START",t[t.MOVING=1]="MOVING",t[t.MOVE_END=2]="MOVE_END",t))(Kn||{});exports.SelectionManagerService=class{constructor(e){C(this,"_selectionInfo",new Map);C(this,"_searchParamForSelection",null);C(this,"_selectionMoveStart$",new le.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new le.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new le.BehaviorSubject(null));C(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());C(this,"_selectionMoveEndBefore$",new le.BehaviorSubject(null));C(this,"selectionMoveEndBefore$",this._selectionMoveEndBefore$.asObservable());C(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._searchParamForSelection}getLastByPlugin(e){if(this._searchParamForSelection!=null)return this._getLastByParam({...this._searchParamForSelection,pluginName:e})}changePlugin(e){var n,o;this._searchParamForSelection!=null&&(this._searchParamForSelection={pluginName:e,unitId:(n=this._searchParamForSelection)==null?void 0:n.unitId,sheetId:(o=this._searchParamForSelection)==null?void 0:o.sheetId},this._refresh(this._searchParamForSelection))}changePluginNoRefresh(e){var o,r;if(this._searchParamForSelection==null||this._searchParamForSelection.pluginName===e)return;const n=this.getSelectionDatasByParam(this._searchParamForSelection);this._searchParamForSelection={pluginName:e,unitId:(o=this._searchParamForSelection)==null?void 0:o.unitId,sheetId:(r=this._searchParamForSelection)==null?void 0:r.sheetId},n!=null&&this.add([])}reset(){var e,n;this._searchParamForSelection!=null&&(this._searchParamForSelection={pluginName:X,unitId:(e=this._searchParamForSelection)==null?void 0:e.unitId,sheetId:(n=this._searchParamForSelection)==null?void 0:n.sheetId},this._selectionInfo.clear(),this._refresh(this._searchParamForSelection))}resetPlugin(){this._searchParamForSelection!=null&&(this._searchParamForSelection.pluginName=X,this._refresh(this._searchParamForSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._searchParamForSelection!=null&&this._refresh(this._searchParamForSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._searchParamForSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._searchParamForSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._searchParamForSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(n=>n.range)}getFirst(){return this._getFirstByParam(this._searchParamForSelection)}getLast(){return this._getLastByParam(this._searchParamForSelection)}addNoRefresh(e){this._searchParamForSelection!=null&&this._addByParam({...this._searchParamForSelection,selectionDatas:e},!1)}add(e){this._searchParamForSelection!=null&&this._addByParam({...this._searchParamForSelection,selectionDatas:e})}replace(e,n=2){this._searchParamForSelection!=null&&(this._replaceByParam({...this._searchParamForSelection,selectionDatas:e}),n===0?this._refreshStart(this._searchParamForSelection):n===1?this._refreshMoving(this._searchParamForSelection):this._refresh(this._searchParamForSelection))}replaceWithNoRefresh(e){this._searchParamForSelection!=null&&this._replaceByParam({...this._searchParamForSelection,selectionDatas:e})}clear(){this._searchParamForSelection!=null&&this._clearByParam(this._searchParamForSelection)}remove(e){this._searchParamForSelection!=null&&this._removeByParam(e,this._searchParamForSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const e=this.getSelections();return e==null?!1:e.some(({range:n},o)=>e.some(({range:r},i)=>o===i?!1:n.startRow<=r.endRow&&n.endRow>=r.startRow&&n.startColumn<=r.endColumn&&n.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:n,unitId:o,sheetId:r}=e;return(a=(i=this._selectionInfo.get(n))==null?void 0:i.get(o))==null?void 0:a.get(r)}_refresh(e){this._selectionMoveEndBefore$.next(this._getSelectionDatas(e)),this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const n=this._getSelectionDatas(e);return n==null?void 0:n[0]}_getLastByParam(e){const n=this._getSelectionDatas(e);return n==null?void 0:n[n.length-1]}_addByParam(e,n=!0){const{pluginName:o,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const c=this._selectionInfo.get(o);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(i))u.set(i,[...a]);else{let d=u.get(i);d==null&&(d=[],u.set(i,d)),d.push(...a)}n&&this._refresh({pluginName:o,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:n,unitId:o,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const a=this._selectionInfo.get(n);a.has(o)||a.set(o,new Map);const c=a.get(o);if(!c.has(r))c.set(r,i);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...i)}}_clearByParam(e){const n=this._getSelectionDatas(e);n==null||n.splice(0),this._refresh(e)}_removeByParam(e,n){const o=this._getSelectionDatas(n);o==null||o.splice(e,1),this._refresh(n)}};exports.SelectionManagerService=Zr([Qr(0,V.Inject(s.ThemeService))],exports.SelectionManagerService);const es=s.createInterceptorKey("CELL_CONTENT"),ts=s.createInterceptorKey("ROW_FILTERED"),tt={CELL_CONTENT:es,ROW_FILTERED:ts};var ns=Object.defineProperty,os=Object.getOwnPropertyDescriptor,rs=(t,e,n,o)=>{for(var r=o>1?void 0:o?os(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ns(e,n,r),r},ss=(t,e)=>(n,o)=>e(n,o,t);exports.SheetInterceptorService=class extends s.Disposable{constructor(n){super();C(this,"_interceptorsByName",new Map);C(this,"_commandInterceptors",[]);C(this,"_workbookDisposables",new Map);C(this,"_worksheetDisposables",new Map);this._univerInstanceService=n,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(o=>{this._interceptWorkbook(o)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(o=>this._disposeWorkbookInterceptor(o))),this.intercept(tt.CELL_CONTENT,{priority:-1,handler(o,r){const i=r.worksheet.getCellRaw(r.row,r.col);return o?{...i,...o}:i}})}dispose(){super.dispose(),this._workbookDisposables.forEach(n=>n.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(n){if(this._commandInterceptors.includes(n))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(n),this._commandInterceptors.sort((o,r)=>{var i,a;return((i=r.priority)!=null?i:0)-((a=o.priority)!=null?a:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,n)))}onCommandExecute(n){const o=this._commandInterceptors.map(r=>r.getMutations(n));return{preUndos:o.map(r=>{var i;return(i=r.preUndos)!=null?i:[]}).flat(),undos:o.map(r=>r.undos).flat(),preRedos:o.map(r=>{var i;return(i=r.preRedos)!=null?i:[]}).flat(),redos:o.map(r=>r.redos).flat()}}intercept(n,o){const r=n;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(o),this._interceptorsByName.set(r,i.sort((a,c)=>{var u,d;return((u=c.priority)!=null?u:0)-((d=a.priority)!=null?d:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),o)))}fetchThroughInterceptors(n){const o=n,r=this._interceptorsByName.get(o);return s.composeInterceptors(r||[])}_interceptWorkbook(n){const o=new s.DisposableCollection,r=n.getUnitId(),i=this,a=c=>{const u=c.getSheetId();c.__interceptViewModel(d=>{const l=new s.DisposableCollection;i._worksheetDisposables.set(Ln(r,c),l),l.add(d.registerCellContentInterceptor({getCell(m,h){return i.fetchThroughInterceptors(tt.CELL_CONTENT)(c.getCellRaw(m,h),{unitId:r,subUnitId:u,row:m,col:h,worksheet:c,workbook:n})}})),l.add(d.registerRowFilteredInterceptor({getRowFiltered(m){return!!i.fetchThroughInterceptors(tt.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:n,worksheet:c})}}))})};n.getSheets().forEach(c=>a(c)),o.add(s.toDisposable(n.sheetCreated$.subscribe(c=>a(c)))),o.add(s.toDisposable(()=>n.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),o.add(s.toDisposable(n.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,o)}_disposeWorkbookInterceptor(n){const o=n.getUnitId(),r=this._workbookDisposables.get(o);r&&(r.dispose(),this._workbookDisposables.delete(o))}_disposeSheetInterceptor(n,o){const r=Ln(n,o),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=rs([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),ss(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Ln(t,e){return`${t}|${e.getSheetId()}`}const pe=(t,e)=>{const{unitId:n,subUnitId:o,cellValue:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),d=a.getStyles(),l=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((h,R,S)=>{const g=s.Tools.deepClone(u==null?void 0:u.getValue(h,R))||{},f=d.getStyleByCell(g);let I=d.getStyleByCell(S);I=cs(f,I),g.s=I,l.setValue(h,R,is(g))}),{...e,options:{},cellValue:l.getMatrix()}};function is(t){return t==null?null:(t.f===void 0&&(t.f=null),t.si===void 0&&(t.si=null),t.p===void 0&&(t.p=null),t.v===void 0&&(t.v=null),t.t===void 0&&(t.t=null),t.s===void 0&&(t.s=null),t.custom===void 0&&(t.custom=null),t)}const G={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(t,e)=>{const{cellValue:n,subUnitId:o,unitId:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(o);if(!c)return!1;const u=c.getCellMatrix(),d=a.getStyles();return new s.ObjectMatrix(n).forValue((m,h,R)=>{var S;if(!R)u==null||u.setValue(m,h,{});else{const g=u.getValue(m,h)||{},f=R.t?R.t:R.v!==void 0?Vn(R.v,R.t):Vn(g.v,g.t);if(R.f!==void 0&&(g.f=R.f),R.si!==void 0&&(g.si=R.si),R.p!==void 0&&(g.p=R.p),R.v!==void 0&&(g.v=f===s.CellValueType.NUMBER?Number(R.v):f===s.CellValueType.BOOLEAN?as(R.v)?1:0:R.v),g.v!==void 0&&(g.t=f),R.s!==void 0){const I=d.getStyleByCell(g);I==null&&delete g.s,typeof R.s=="string"&&(R.s=d.get(R.s));const v=ft(I,R.s?R.s:null);v&&s.Tools.removeNull(v),s.Tools.isEmptyObject(v)?delete g.s:g.s=d.setValue(v);const p=R.v?`${R.v}\r
2
+ `:"";!R.p&&g.p&&(p&&p!==((S=g.p.body)==null?void 0:S.dataStream)?delete g.p:ds(g.p,R.s?R.s:null))}R.custom!==void 0&&(g.custom=R.custom),u.setValue(m,h,s.Tools.removeNull(g))}}),!0}};function Vn(t,e){return t===null?null:e===s.CellValueType.FORCE_STRING?e:typeof t=="string"?s.isSafeNumeric(t)?(+t==0||+t==1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(t)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof t=="number"?(t===0||t===1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof t=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function as(t){if(typeof t=="string"){if(t.toUpperCase()==="TRUE")return!0;if(t.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(t)){if(Number(t)===0)return!1;if(Number(t)===1)return!0}}if(typeof t=="number"){if(t===0)return!1;if(t===1)return!0}return typeof t=="boolean"?t:null}function cs(t,e){return us(t,e)}function us(t,e){if(!e||!Object.keys(e).length)return t;const n=t||{};for(const o in e)o==="bd"?n[o]=ls(n[o]||{},e[o]):o in n||(n[o]=null);return n}function ls(t,e){if(!e||!Object.keys(e).length)return t;for(const n in e)n in t||(t[n]=null);return t}function ft(t,e,n=!1){if(e===null)return e;if(e===void 0)return t;const o=s.Tools.deepClone(t)||{};if(o){for(const r in e)n&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in o&&r==="bd"?o[r]=Object.assign(o[r],e[r]):o[r]=e[r]);return"cl"in o&&("ul"in o&&o.ul&&(o.ul.cl=o.cl),"ol"in o&&o.ol&&(o.ol.cl=o.cl),"st"in o&&o.st&&(o.st.cl=o.cl)),o}}function Jn(t,e){return t.some(n=>n.startIndex===e)?Jn(t,e+1):e}function ds(t,e){var a;if(t.body==null)return;Array.isArray(t.body.textRuns)||(t.body.textRuns=[]);let n=0;const o=[],r=((a=t.body)==null?void 0:a.paragraphs)||[];for(const c of t.body.textRuns){const{st:u,ed:d,ts:l={}}=c;if(n<u){const h={st:n,ed:u},R=ft({},e,!0);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)||(h.ts=R),o.push(h)}const m=ft(l,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,o.push(c),n=Jn(r,d)}const i=t.body.dataStream.endsWith(`\r
3
+ `)?t.body.dataStream.length-2:t.body.dataStream.length;if(n<i){const c={st:n,ed:i},u=ft({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),o.push(c)}t.body.textRuns=s.normalizeTextRuns(o)}const ms=(t,e,n="")=>t.reduce((o,r)=>{const i=r&&r[e];return typeof i!="string"?(console.warn(r,`${e} is not string`),o):(i?(o[i]||(o[i]=[]),o[i].push(r)):o[n].push(r),o)},{}),hs=(t=0)=>{let e=t;return function(){return e++}};function ht(t){return t.v!==void 0&&t.v!==null&&t.v!==""||t.p!==void 0}function gs(t,e,n){const{left:o,right:r,up:i,down:a}=e,c=n.getMaxRows(),u=n.getMaxColumns();let d=!0;const l={...t};for(;d;){if(d=!1,i&&l.startRow!==0){const m=l.startRow-1;n.getMatrixWithMergedCells(m,l.startColumn,m,l.endColumn).forValue((R,S,g)=>{ht(g)&&(l.startRow=Math.min(R,l.startRow),l.startColumn=Math.min(S,l.startColumn),l.endColumn=Math.max(S,l.endColumn),d=!0)})}if(a&&l.endRow!==c-1){const m=l.endRow+1;n.getMatrixWithMergedCells(m,l.startColumn,m,l.endColumn).forValue((R,S,g)=>{ht(g)&&(l.endRow=Math.max(R+(g.rowSpan!==void 0?g.rowSpan-1:0),l.endRow),l.startColumn=Math.min(S,l.startColumn),l.endColumn=Math.max(S,l.endColumn),d=!0)})}if(o&&l.startColumn!==0){const m=l.startColumn-1;n.getMatrixWithMergedCells(l.startRow,m,l.endRow,m).forValue((R,S,g)=>{ht(g)&&(l.startColumn=Math.min(S,l.startColumn),l.startRow=Math.min(R,l.startRow),l.endRow=Math.max(R,l.endRow),d=!0)})}if(r&&l.endColumn!==u-1){const m=l.endColumn+1;n.getMatrixWithMergedCells(l.startRow,m,l.endRow,m).forValue((R,S,g)=>{ht(g)&&(l.endColumn=Math.max(S+(g.colSpan!==void 0?g.colSpan-1:0),l.endColumn),l.startRow=Math.min(R,l.startRow),l.endRow=Math.max(R,l.endRow),d=!0)})}}return l}function Xn(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.clone()}function Zn(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),e.clone()}function Rs(t){const e=new s.ObjectMatrix;return t.forEach(n=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{s:null})}),e.clone()}const Ut={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],h=[],R={subUnitId:d,unitId:c,cellValue:Xn(l)},S=pe(t,R);m.push({id:G.id,params:R}),h.push({id:G.id,params:S});const g=i.onCommandExecute({id:Ut.id});return m.push(...g.redos),h.unshift(...g.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}},Zt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:d,unitId:c,cellValue:Zn(l)},h=pe(t,m),R=i.onCommandExecute({id:Zt.id}),S=[{id:G.id,params:m},...R.redos],g=[...R.undos,{id:G.id,params:h}];return s.sequenceExecute(S,n).result?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:S}),!0):!1}},Tt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async t=>{const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(exports.SelectionManagerService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],h=[],R={subUnitId:d,unitId:c,cellValue:Rs(l)},S=pe(t,R);m.push({id:G.id,params:R}),h.push({id:G.id,params:S});const g=i.onCommandExecute({id:Tt.id});return m.push(...g.redos),h.unshift(...g.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}},Qt=(t,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),De={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService),{sheet:o,index:r,unitId:i}=e,a=n.getUniverSheetInstance(i);return a?a.addWorksheet(o.id,r,o):!1}};function Qn(t,e){const{unitId:n}=e,o=n?t.getUniverSheetInstance(n):t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return o?{workbook:o,unitId:o.getUnitId()}:null}function A(t,e={}){const{unitId:n,subUnitId:o}=e,r=n?t.getUniverSheetInstance(n):t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const i=o?r.getSheetBySheetId(o):r.getActiveSheet();return i?{worksheet:i,workbook:r,unitId:r.getUnitId(),subUnitId:i.getSheetId()}:null}function Et(t,e){const{unitId:n,subUnitId:o}=e,r=t.getUniverSheetInstance(n);if(!r)return null;const i=r.getSheetBySheetId(o);return i?{worksheet:i,workbook:r}:null}const eo=(t,e)=>{const n=t.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=Et(n,e);if(!i)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:a,worksheet:c}=i,u=c.getConfig();return{index:a.getConfig().sheetOrder.findIndex(m=>m===o),sheet:u,unitId:r}},Je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=n.getUniverSheetInstance(r);return i?i.removeSheet(o):!1}},to={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.LocaleService),a=A(r,e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:d}=a,l=s.Tools.deepClone(u.getConfig());l.name=Ss(c,i,l.name),l.id=s.Tools.generateRandomId();const h={index:c.getSheetIndex(u)+1,sheet:l,unitId:d},R=Qt(t,h);return n.syncExecuteCommand(De.id,h)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:Je.id,params:R}],redoMutations:[{id:De.id,params:h}]}),!0):!1}};function Ss(t,e,n){let o=n+e.t("sheets.tabs.sheetCopy",""),r=2;for(;t.checkSheetName(o);)o=n+e.t("sheets.tabs.sheetCopy",`${r}`),r++;return o}const xe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{from:n,to:o}=e;if(!n||!o)return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getSheetBySheetId(e.from.subUnitId),c=i.getSheetBySheetId(e.to.subUnitId);if(!a||!c)return!1;const u=a.getCellMatrix(),d=c.getCellMatrix();return new s.ObjectMatrix(n.value).forValue((l,m,h)=>{u.setValue(l,m,h)}),new s.ObjectMatrix(o.value).forValue((l,m,h)=>{d.setValue(l,m,h)}),!0}},K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(t,e)=>{const n=t.get(exports.SelectionManagerService);if(!e)return!1;const{selections:o,type:r}=e;return n.replace(o,r),!0}};function at(t,e,n=!0){const o=e.getMatrixWithMergedCells(...s.selectionToArray(t)),r=[];if(o.forValue((a,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const d={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(t,d)||r.push(d)}}),r.length===0)return t;const i=s.Rectangle.union(t,...r);return n?at(i,e,n):i}function Cs(t,e,n){let o=null;return n.getMatrixWithMergedCells(t,e,t,e).forValue((i,a,c)=>(o={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)),o||{actualColumn:e,actualRow:t,startRow:t,startColumn:e,endRow:t,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function fs(t,e,n){const{startRow:o,startColumn:r,endRow:i,endColumn:a}=t;return Number.isNaN(o)&&(t.startRow=0),Number.isNaN(i)&&(t.endRow=e-1),Number.isNaN(r)&&(t.startColumn=0),Number.isNaN(a)&&(t.endColumn=n-1),t}function ce(t,e){const n=Number.isNaN(t.startRow)?0:t.startRow,o=Number.isNaN(t.startColumn)?0:t.startColumn,r=e.getMergedCell(n,o);return r?{...r,actualRow:n,actualColumn:o,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:o,endRow:t.startRow,endColumn:t.startColumn,actualRow:n,actualColumn:o,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Ue=(t,e,n)=>({id:K.id,params:{unitId:e.getUnitId(),subUnitId:n.getSheetId(),pluginName:X,selections:[{range:t,primary:ce(t,n)}]}});function vs(t){if(!t)return!1;const{range:e,primary:n}=t;return s.Rectangle.equals(e,n)}function ps(t){function e(n,o){function r(i){for(let a=i.startRow;a<=i.endRow;a++)if(!t.getRowFiltered(a))for(let c=i.startColumn;c<=i.endColumn;c++)o(a,c,i)}r(n)}return{forOperableEach:e}}const no="sheet.command.move-range",kt={type:s.CommandType.COMMAND,id:no,handler:(t,e)=>{var I,v;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.ErrorService),a=t.get(s.LocaleService),c=A(r);if(!c)return!1;const{worksheet:u,subUnitId:d,unitId:l}=c,m=Nt(t,{unitId:l,subUnitId:d,range:e.fromRange},{unitId:l,subUnitId:d,range:e.toRange});if(m===null)return i.emit(a.t("sheets.info.acrossMergedCell")),!1;const R=t.get(exports.SheetInterceptorService).onCommandExecute({id:kt.id,params:{...e}}),S=[...(I=R.preRedos)!=null?I:[],...m.redos,...R.redos,{id:K.id,params:{unitId:l,subUnitId:d,pluginName:X,selections:[{range:e.toRange,primary:ce(e.toRange,u)}]}}],g=[...(v=R.preUndos)!=null?v:[],...m.undos,...R.undos,{id:K.id,params:{unitId:l,subUnitId:d,pluginName:X,selections:[{range:e.fromRange,primary:ce(e.fromRange,u)}]}}];return s.sequenceExecute(S,n).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:S}),!0):!1}};function Nt(t,e,n,o=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:d,subUnitId:l}=n,h=t.get(s.IUniverInstanceService).getUniverSheetInstance(u),R=h==null?void 0:h.getSheetBySheetId(l),S=h==null?void 0:h.getSheetBySheetId(c),g=R==null?void 0:R.getCellMatrix(),f=S==null?void 0:S.getCellMatrix();if(R&&S&&g&&f){const I=at(d,R,!1);if(!s.Rectangle.equals(d,I)&&!o)return null;const v=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{v.setValue(U,E,f.getValue(U,E)),p.setValue(U,E,null)});const M=new s.ObjectMatrix;s.Range.foreach(d,(U,E)=>{M.setValue(U,E,g.getValue(U,E))});const w=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{const O=s.cellToRange(U,E),j=s.Rectangle.getRelativeRange(O,a),B=s.Rectangle.getPositionRange(j,d);w.setValue(B.startRow,B.startColumn,f.getValue(U,E))});const y={from:{value:p.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:l},unitId:u},P={from:{value:v.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:l},unitId:u};r.push({id:xe.id,params:y}),i.push({id:xe.id,params:P})}return{redos:r,undos:i}}var yt=(t=>(t[t.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",t[t.UNIVER_DOC=1]="UNIVER_DOC",t[t.UNIVER_SHEET=2]="UNIVER_SHEET",t[t.UNIVER_SLIDE=3]="UNIVER_SLIDE",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED",t))(yt||{}),_=(t=>(t[t.View=0]="View",t[t.Edit=1]="Edit",t[t.ManageCollaborator=2]="ManageCollaborator",t[t.Print=3]="Print",t[t.Duplicate=4]="Duplicate",t[t.Comment=5]="Comment",t[t.Copy=6]="Copy",t[t.Share=7]="Share",t[t.Export=8]="Export",t[t.MoveWorksheet=9]="MoveWorksheet",t[t.DeleteWorksheet=10]="DeleteWorksheet",t[t.HideWorksheet=11]="HideWorksheet",t[t.RenameWorksheet=12]="RenameWorksheet",t[t.CreateWorksheet=13]="CreateWorksheet",t[t.SetWorksheetStyle=14]="SetWorksheetStyle",t[t.EditWorksheetCell=15]="EditWorksheetCell",t[t.InsertHyperlink=16]="InsertHyperlink",t[t.Sort=17]="Sort",t[t.Filter=18]="Filter",t[t.PivotTable=19]="PivotTable",t[t.FloatImg=20]="FloatImg",t[t.History=21]="History",t[t.RwHgtClWdt=22]="RwHgtClWdt",t[t.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",t[t.ViewFilter=24]="ViewFilter",t[t.MoveSheet=25]="MoveSheet",t[t.DeleteSheet=26]="DeleteSheet",t[t.HideSheet=27]="HideSheet",t[t.CopySheet=28]="CopySheet",t[t.RenameSheet=29]="RenameSheet",t[t.CreateSheet=30]="CreateSheet",t[t.SelectProtectedCells=31]="SelectProtectedCells",t[t.SelectUnProtectedCells=32]="SelectUnProtectedCells",t[t.SetCellStyle=33]="SetCellStyle",t[t.SetCellValue=34]="SetCellValue",t[t.SetRowStyle=35]="SetRowStyle",t[t.SetColumnStyle=36]="SetColumnStyle",t[t.InsertRow=37]="InsertRow",t[t.InsertColumn=38]="InsertColumn",t[t.DeleteRow=39]="DeleteRow",t[t.DeleteColumn=40]="DeleteColumn",t[t.EditExtraObject=41]="EditExtraObject",t[t.Delete=42]="Delete",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED",t))(_||{}),D=(t=>(t[t.Unkonwn=0]="Unkonwn",t[t.Workbook=1]="Workbook",t[t.Worksheet=2]="Worksheet",t[t.SelectRange=3]="SelectRange",t[t.Document=4]="Document",t[t.Slide=5]="Slide",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED",t))(D||{});class oo{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Copy);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Copy}_${e}_${n}`}}class Is{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectProtectedCells);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SelectProtectedCells}_${e}_${n}`}}class Ms{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectUnProtectedCells);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SelectUnProtectedCells}_${e}_${n}`}}class ro{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetCellStyle}_${e}_${n}`}}class so{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellValue);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetCellValue}_${e}_${n}`}}class io{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.View);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.View}_${e}_${n}`}}class ao{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetRowStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetRowStyle}_${e}_${n}`}}class co{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetColumnStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetColumnStyle}_${e}_${n}`}}class uo{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertRow);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.InsertRow}_${e}_${n}`}}class lo{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertColumn);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.InsertColumn}_${e}_${n}`}}class mo{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertHyperlink);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.InsertHyperlink}_${e}_${n}`}}class ho{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteRow);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.DeleteRow}_${e}_${n}`}}class go{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteColumn);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.DeleteColumn}_${e}_${n}`}}class Ro{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Sort);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Sort}_${e}_${n}`}}class So{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Filter);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Filter}_${e}_${n}`}}class Co{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.PivotTable);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.PivotTable}_${e}_${n}`}}class fo{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.EditExtraObject);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.EditExtraObject}_${e}_${n}`}}class ws{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.ManageCollaborator);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.ManageCollaborator}_${e}_${n}`}}class en{constructor(e,n){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Edit);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Edit}_${e}_${n}`}}class vo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Comment}_${e}`}}class po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Edit}_${e}`}}class Io{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Duplicate}_${e}`}}class Mo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Print}_${e}`}}class wo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Export}_${e}`}}class yo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.MoveSheet}_${e}`}}class _o{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.DeleteSheet}_${e}`}}class bo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.HideSheet}_${e}`}}class Po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.RenameSheet}_${e}`}}class Uo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CreateSheet}_${e}`}}class ys{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.History);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.History}_${e}`}}class To{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.View}_${e}`}}class Eo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Share}_${e}`}}class ko{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Copy}_${e}`}}class No{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"subType",_.CopySheet);C(this,"status",s.PermissionStatus.INIT);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CopySheet}_${e}`}}class Oo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.ManageCollaborator}_${e}`}}class Ot{constructor(e,n,o){C(this,"type",D.SelectRange);C(this,"subType",_.Edit);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=n,this.permissionId=o,this.id=`${D.SelectRange}.${_.Edit}.${o}`}}class Dt{constructor(e,n,o){C(this,"type",D.SelectRange);C(this,"subType",_.View);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=n,this.permissionId=o,this.id=`${D.SelectRange}.${_.View}.${o}`}}const ct={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=t.get(s.IPermissionService),u=A(r,{subUnitId:e.subUnitId,unitId:e.unitId});if(!u)return!1;const{subUnitId:d,unitId:l}=u,{value:m,range:h}=e,R=h?[h]:i.getSelectionRanges();if(!R||!R.length||!c.getPermissionPoint(new en(l,d).id))return!1;const S=new s.ObjectMatrix;let g;if(s.Tools.isArray(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:E,endColumn:O}=R[y];for(let j=0;j<=E-P;j++)for(let B=0;B<=O-U;B++)S.setValue(j+P,B+U,m[j][B])}else if(s.isICellData(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:E,endColumn:O}=R[y];for(let j=P;j<=E;j++)for(let B=U;B<=O;B++)S.setValue(j,B,m)}else g=m;const f={subUnitId:d,unitId:l,cellValue:g!=null?g:S.getMatrix()},I=pe(t,f),v=n.syncExecuteCommand(G.id,f),{undos:p,redos:M}=a.onCommandExecute({id:ct.id,params:{...f,range:R}}),w=s.sequenceExecute([...M],n);return v&&w.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:G.id,params:I},...p],redoMutations:[{id:G.id,params:f},...M]}),!0):!1}};function tn(t,e){const n=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c,cellValue:u={}}=e,d=t.get(s.IUniverInstanceService),l=t.get(exports.SheetInterceptorService),m=d.getUniverSheetInstance(r),h=m==null?void 0:m.getSheetBySheetId(i);if(h){const R=h.getCellMatrix(),S=R.getDataRange();if(a.startColumn<=S.endColumn||a.startRow<=S.endRow){let p,M;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,S.endRow);let P=0;for(let E=a.startRow;E<=y;E++){const O=R.getRow(E),j=O?s.getArrayLength(O)-1:0;P=Math.max(P,j)}p={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:P};const U=a.endColumn-a.startColumn+1;M={startRow:a.startRow,startColumn:p.startColumn+U,endRow:y,endColumn:p.endColumn+U}}else{const y=Math.min(a.endColumn,S.endColumn),P=S.endRow;p={startRow:a.startRow,startColumn:a.startColumn,endRow:P,endColumn:y};const U=a.endRow-a.startRow+1;M={startRow:p.startRow+U,startColumn:a.startColumn,endRow:p.endRow+U,endColumn:y}}const w=Nt(t,{unitId:r,subUnitId:i,range:p},{unitId:r,subUnitId:i,range:M},!0);w&&(n.push(...w.redos),o.push(...w.undos))}if(Object.entries(u).length===0)for(let p=a.startRow;p<=a.endRow;p++){u[p]||(u[p]={});for(let M=a.startColumn;M<=a.endColumn;M++)u[p][M]=null}const g={subUnitId:i,unitId:r,cellValue:u},f=pe(t,g),{undos:I,redos:v}=l.onCommandExecute({id:ct.id,params:{...g,range:a}});n.push({id:G.id,params:g},...v),o.push({id:G.id,params:f},...I)}return{redo:n,undo:o}}function nn(t,e){const n=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c}=e,u=t.get(s.IUniverInstanceService),d=t.get(exports.SheetInterceptorService),l=u.getUniverSheetInstance(r),m=l==null?void 0:l.getSheetBySheetId(i);if(m){const h=m.getCellMatrix(),R=h.getDataRange(),S={subUnitId:i,unitId:r,cellValue:Xn([a])},g=pe(t,S),f=d.onCommandExecute({id:ct.id,params:S});if(n.push({id:G.id,params:S},...f.redos),o.push(...f.undos,{id:G.id,params:g}),a.startColumn<=R.endColumn||a.startRow<=R.endRow){let I=null,v=null;if(c===s.Dimension.COLUMNS&&a.endColumn<R.endColumn){const p=Math.min(a.endRow,R.endRow);let M=0;for(let y=a.startRow;y<=p;y++){const P=h.getRow(y),U=P?s.getArrayLength(P)-1:0;M=Math.max(M,U)}I={startRow:a.startRow,startColumn:a.endColumn+1,endRow:p,endColumn:M};const w=a.endColumn-a.startColumn+1;v={startRow:a.startRow,startColumn:I.startColumn-w,endRow:p,endColumn:I.endColumn-w}}if(c===s.Dimension.ROWS&&a.endRow<R.endRow){const p=Math.min(a.endColumn,R.endColumn),M=R.endRow;I={startRow:a.endRow+1,startColumn:a.startColumn,endRow:M,endColumn:p};const w=a.endRow-a.startRow+1;v={startRow:I.startRow-w,startColumn:a.startColumn,endRow:I.endRow-w,endColumn:p}}if(I&&v){const p=Nt(t,{unitId:r,subUnitId:i,range:I},{unitId:r,subUnitId:i,range:v},!0);p&&(n.push(...p.redos),o.push(...p.undos))}}}return{redo:n,undo:o}}function _s(t,e,n,o,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:d}=e;if(r===s.Dimension.ROWS){const l=c-a+1;for(let m=n;m>=a;m--)for(let h=u;h<=d;h++){const R=t.getValue(m,h);R==null?t.realDeleteValue(m+l,h):t.setValue(m+l,h,R)}for(let m=c;m>=a;m--)for(let h=u;h<=d;h++)i&&i[m]&&i[m][h]?t.setValue(m,h,i[m][h]):t.realDeleteValue(m,h)}else if(r===s.Dimension.COLUMNS){const l=d-u+1;for(let m=a;m<=c;m++)for(let h=o;h>=u;h--){const R=t.getValue(m,h);R==null?t.realDeleteValue(m,h+l):t.setValue(m,h+l,R)}for(let m=a;m<=c;m++)for(let h=d;h>=u;h--)i&&i[m]&&i[m][h]?t.setValue(m,h,i[m][h]):t.realDeleteValue(m,h)}}function bs(t,e,n,o,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=e,d=a-i+1,l=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=n;m++)for(let h=c;h<=u;h++){const R=t.getValue(m+d,h);R==null?t.realDeleteValue(m,h):t.setValue(m,h,R)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let h=c;h<=o;h++){const R=t.getValue(m,h+l);R==null?t.realDeleteValue(m,h):t.setValue(m,h,R)}}const Do="sheet.command.delete-range-move-left",xt={type:s.CommandType.COMMAND,id:Do,handler:async(t,e)=>{var M,w,y;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=A(r);if(!c)return!1;const{worksheet:u,workbook:d,subUnitId:l,unitId:m}=c;let h=e==null?void 0:e.range;if(h||(h=(M=i.getLast())==null?void 0:M.range),!h)return!1;const R={range:h,subUnitId:l,unitId:m,shiftDimension:s.Dimension.COLUMNS},S=a.onCommandExecute({id:xt.id,params:{range:h}}),{redo:g,undo:f}=nn(t,R),I=[...(w=S.preRedos)!=null?w:[],...g],v=[...S.undos,...f];return I.push(...S.redos),I.push(Ue(h,d,u)),v.push(...(y=S.preUndos)!=null?y:[]),s.sequenceExecute(I,n).result?(o.pushUndoRedo({unitID:m,undoMutations:v.reverse(),redoMutations:I}),!0):!1}},xo="sheet.command.delete-range-move-up",At={type:s.CommandType.COMMAND,id:xo,handler:async(t,e)=>{var M,w,y;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=A(r);if(!c)return!1;const{unitId:u,subUnitId:d,workbook:l,worksheet:m}=c;let h=e==null?void 0:e.range;if(h||(h=(M=i.getLast())==null?void 0:M.range),!h)return!1;const R={range:h,subUnitId:d,unitId:u,shiftDimension:s.Dimension.ROWS},S=a.onCommandExecute({id:At.id,params:{range:h}}),{redo:g,undo:f}=nn(t,R),I=[...(w=S.preRedos)!=null?w:[],...g],v=[...S.undos,...f];return I.push(...S.redos),I.push(Ue(h,l,m)),v.push(...(y=S.preUndos)!=null?y:[]),s.sequenceExecute(I,n).result?(o.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:I}),!0):!1}},on=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Ie={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(t,e)=>{var S;const{unitId:n,subUnitId:o,range:r,rowInfo:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(o);if(u==null)throw new Error("worksheet is null error!");const d=u.getRowManager().getRowData(),l={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,h=r.endRow-r.startRow+1;for(let g=m;g<m+h;g++)i?s.insertMatrixArray(g,(S=i[g-r.startRow])!=null?S:l,d):s.insertMatrixArray(g,l,d);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,h),!0}},rn=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Me={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(t,e)=>{var S;const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getColumnManager(),{range:a,colInfo:c}=e,d=i.getColumnData(),l=a.startColumn,m=a.endColumn-a.startColumn+1,h=r.getConfig().defaultColumnWidth;for(let g=l;g<l+m;g++){const f={w:h,hd:0};c?s.insertMatrixArray(g,(S=c[g-a.startColumn])!=null?S:f,d):s.insertMatrixArray(g,f,d)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},Ps=(t,e)=>{const r=e.getRowManager().getRowData(),i={},a=t.range,c=s.sliceMatrixArray(a.startRow,a.endRow,r),u=s.concatMatrixArray(i,c);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,rowInfo:u}},we={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getRowManager().getRowData();for(let l=i.startRow;l<=i.endRow;l++)r.getRowFiltered(l);const u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.getCellMatrix().removeRows(i.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Us=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},d=e.range,l=s.sliceMatrixArray(d.startColumn,d.endColumn,c),m=s.concatMatrixArray(u,l);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:m}},fe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getColumnManager().getColumnData(),u=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(i.startColumn,u),!0}},Ts="sheet.command.insert-range-move-down",Wt={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(t,e)=>{var B,b,oe;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=t.get(s.ErrorService),u=t.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const d=A(r);if(!d)return!1;const{unitId:l,subUnitId:m,worksheet:h,workbook:R}=d;let S=e==null?void 0:e.range;if(S||(S=(B=i.getLast())==null?void 0:B.range),!S)return!1;const g=[],f=[],I=h.getCellMatrix(),v=I.getDataRange(),M=I.getSlice(v.startRow,v.endRow,S.startColumn,S.endColumn).getDataRange().endRow,w=Math.max(M+(S.endRow-S.startRow+1)-v.endRow,0);if(w>0){const Z=S.startRow-1,Q=h.getRowHeight(Z),J={unitId:l,subUnitId:m,range:{startRow:v.endRow+1,endRow:v.endRow+w,startColumn:v.startColumn,endColumn:v.endColumn},rowInfo:new Array(w).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};g.push({id:Ie.id,params:J});const ne=on(t,J);f.push({id:we.id,params:ne})}const y={};s.Range.foreach(S,(Z,Q)=>{const J=h.getCell(Z,Q);J&&(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:S,subUnitId:m,unitId:l,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:U,undo:E}=tn(t,P);g.push(...U),f.push(...E);const O=a.onCommandExecute({id:Wt.id,params:{range:S}});return g.push(...O.redos),g.push(Ue(S,R,h)),f.push(...(b=O.preUndos)!=null?b:[]),g.unshift(...(oe=O.preRedos)!=null?oe:[]),f.unshift(...O.undos),s.sequenceExecute(g,n)?(o.pushUndoRedo({unitID:l,undoMutations:f.reverse(),redoMutations:g}),!0):!1}},Ao="sheet.command.insert-range-move-right",Lt={type:s.CommandType.COMMAND,id:Ao,handler:async(t,e)=>{var B,b,oe;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(exports.SheetInterceptorService),c=t.get(s.ErrorService),u=t.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const d=A(r);if(!d)return!1;const{workbook:l,worksheet:m,unitId:h,subUnitId:R}=d;let S=e==null?void 0:e.range;if(S||(S=(B=i.getLast())==null?void 0:B.range),!S)return!1;const g=[],f=[],I=m.getCellMatrix(),v=I.getDataRange(),M=I.getSlice(S.startRow,S.endRow,v.startColumn,v.endColumn).getDataRange().endColumn,w=Math.max(M+(S.endColumn-S.startColumn+1)-v.endColumn,0);if(w>0){const Z=S.startColumn-1,Q=m.getColumnWidth(Z),J={unitId:h,subUnitId:R,range:{startRow:v.startRow+1,endRow:v.endRow,startColumn:v.endColumn+1,endColumn:v.endColumn+w},colInfo:new Array(w).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};g.push({id:Me.id,params:J});const ne=rn(t,J);f.push({id:fe.id,params:ne})}const y={};s.Range.foreach(S,(Z,Q)=>{const J=m.getCell(Z,Q);!J||!J.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:S,subUnitId:R,unitId:h,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:U,undo:E}=tn(t,P);g.push(...U),f.push(...E);const O=a.onCommandExecute({id:Lt.id,params:{range:S}});return g.push(...O.redos),g.push(Ue(S,l,m)),f.push(...(b=O.preUndos)!=null?b:[]),g.unshift(...(oe=O.preRedos)!=null?oe:[]),f.unshift(...O.undos),s.sequenceExecute(g,n).result?(o.pushUndoRedo({unitID:h,undoMutations:f.reverse(),redoMutations:g}),!0):!1}},Wo="sheet.command.insert-row",Ve={type:s.CommandType.COMMAND,id:Wo,handler:async(t,e)=>{var P,U,E,O;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService),a=r.getUniverSheetInstance(e.unitId),c=a.getSheetBySheetId(e.subUnitId),{range:u,direction:d,unitId:l,subUnitId:m,cellValue:h}=e,{startRow:R,endRow:S}=u,g=d===s.Direction.UP?R:R-1,f=c.getRowHeight(g),I={unitId:l,subUnitId:m,range:u,rowInfo:new Array(S-R+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},v=on(t,I),p=[{id:Ie.id,params:I}],M=[{id:we.id,params:v}];h&&p.push({id:G.id,params:{unitId:l,subUnitId:m,cellValue:h}});const w=i.onCommandExecute({id:Ve.id,params:e});return p.unshift(...(P=w.preRedos)!=null?P:[]),p.push(...(U=w.redos)!=null?U:[]),p.push(Ue(u,a,c)),M.unshift(...(E=w.preUndos)!=null?E:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(p,n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M,redoMutations:p}),!0):!1}},Lo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async t=>{var h;const n=(h=t.get(exports.SelectionManagerService).getSelections())==null?void 0:h.map(R=>R.range);let o;if((n==null?void 0:n.length)===1)o=n[0];else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endRow-o.startRow+1,l={};s.Range.foreach(o,(R,S)=>{const g=a.getCell(R,S);!g||!g.s||(l[R]||(l[R]={}),l[R][S]={s:g.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:o.startRow,endRow:o.startRow+d-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:l};return t.get(s.ICommandService).executeCommand(Ve.id,m)}},Vo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async t=>{var m;const n=(m=t.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(h=>h.range);let o;if((n==null?void 0:n.length)===1)o=n[0];else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endRow-o.startRow+1,l={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:o.endRow+1,endRow:o.endRow+d,startColumn:0,endColumn:a.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW}};return t.get(s.ICommandService).executeCommand(Ve.id,l)}},$o="sheet.command.insert-col",$e={type:s.CommandType.COMMAND,id:$o,handler:async(t,e)=>{var P,U,E,O;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService),{range:a,direction:c,subUnitId:u,unitId:d,cellValue:l}=e,{startColumn:m,endColumn:h}=e.range,R=r.getUniverSheetInstance(e.unitId),S=R.getSheetBySheetId(e.subUnitId),g=c===s.Direction.LEFT?m:m-1,f=S.getColumnWidth(g),I={unitId:d,subUnitId:u,range:a,colInfo:new Array(h-m+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},v=rn(t,I),p=[{id:Me.id,params:I}],M=[{id:fe.id,params:v}];l&&p.push({id:G.id,params:{unitId:d,subUnitId:u,cellValue:l}});const w=i.onCommandExecute({id:$e.id,params:e});return p.unshift(...(P=w.preRedos)!=null?P:[]),p.push(...(U=w.redos)!=null?U:[]),p.push(Ue(a,R,S)),M.unshift(...(E=w.preUndos)!=null?E:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(p,n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M.filter(Boolean),redoMutations:p.filter(Boolean)}),!0):!1}},Fo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async t=>{const n=t.get(exports.SelectionManagerService).getSelections();let o;if((n==null?void 0:n.length)===1)o=n[0].range;else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endColumn-o.startColumn+1,l={};s.Range.foreach(o,(h,R)=>{const S=a.getCell(h,R);!S||!S.s||(l[h]||(l[h]={}),l[h][R]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:o.startColumn,endColumn:o.startColumn+d-1,startRow:0,endRow:a.getLastRowWithContent(),rangeType:s.RANGE_TYPE.COLUMN},cellValue:l};return t.get(s.ICommandService).executeCommand($e.id,m)}},Bo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async t=>{const n=t.get(exports.SelectionManagerService).getSelections();let o;if((n==null?void 0:n.length)===1)o=n[0].range;else return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endColumn-o.startColumn+1,l={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:o.endColumn+1,endColumn:o.endColumn+d,startRow:0,endRow:a.getLastRowWithContent()}};return t.get(s.ICommandService).executeCommand($e.id,l)}},jo={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(t,e)=>{var f;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(s.LocaleService),a=Qn(r,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:c,workbook:u}=a;let d=u.getSheets().length;const l=e==null?void 0:e.sheet,m=l==null?void 0:l.id,h=s.mergeWorksheetSnapshotWithDefault(l||{});e?(d=(f=e.index)!=null?f:d,h.id=m||s.Tools.generateRandomId(),h.name=(l==null?void 0:l.name)||u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`)):(h.id=s.Tools.generateRandomId(),h.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const R={index:d,sheet:h,unitId:c},S=Qt(t,R);return n.syncExecuteCommand(De.id,R)?(o.pushUndoRedo({unitID:c,undoMutations:[{id:Je.id,params:S}],redoMutations:[{id:De.id,params:R}]}),!0):!1}};function Ho(t,e){const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:n,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:n,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:{...i,endRow:i.endRow-c,startRow:i.startRow-c}}}const be={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const d=r.startRow,l=r.endRow-r.startRow+1,m=i.startRow,h=u.getRowManager().getRowData();return s.moveMatrixArray(d,l,m,h),u.getCellMatrix().moveRows(d,l,m),!0}};function Go(t,e){const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:n,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:n,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:{...i,startColumn:i.startColumn-c,endColumn:i.endColumn-c}}}const Pe={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,sourceRange:r,targetRange:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const d=r.startColumn,l=r.endColumn-r.startColumn+1,m=i.startColumn,h=u.getColumnManager().getColumnData();return s.moveMatrixArray(d,l,m,h),u.getCellMatrix().moveColumns(d,l,m),!0}};function Es(t,e){return e.getMergeData().some(n=>n.startRow<t&&t<=n.endRow)}function ks(t,e){return e.getMergeData().some(n=>n.startColumn<t&&t<=n.endColumn)}const qo="sheet.command.move-rows",Vt={id:qo,type:s.CommandType.COMMAND,handler:async(t,e)=>{var Q,J;const o=t.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:i}}=e,a=o==null?void 0:o.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.ROW&&ne.range.startRow<=r&&r<=ne.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=t.get(exports.SheetInterceptorService),d=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const l=d.getActiveSheet();if(!l)return!1;const m=d.getUnitId(),h=l.getSheetId(),R=t.get(s.ErrorService),S=t.get(s.LocaleService),g=a[0].range,f=a[0].primary,I=at(g,l,!1);if(!s.Rectangle.equals(g,I))return R.emit(S.t("sheets.info.partOfCell")),!1;if(Es(i,l))return R.emit(S.t("sheets.info.acrossMergedCell")),!1;const v={...g,startRow:i,endRow:i+g.endRow-g.startRow},p={unitId:m,subUnitId:h,sourceRange:g,targetRange:v},M=Ho(t,p),y=i-r<0,P=g.endRow-g.startRow+1,U=y?v:{...v,startRow:v.startRow-P,endRow:v.endRow-P},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:U,primary:ce(U,l),style:null}]},O={unitId:m,subUnitId:h,pluginName:X,selections:[{range:g,primary:f,style:null}]},j=t.get(s.ICommandService),B=c.onCommandExecute({id:Vt.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:be.id,params:p},{id:K.id,params:E},...B.redos],oe=[...(J=B.preUndos)!=null?J:[],{id:be.id,params:M},{id:K.id,params:O},...B.undos];return s.sequenceExecute(b,j).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},zo="sheet.command.move-cols",$t={id:zo,type:s.CommandType.COMMAND,handler:async(t,e)=>{var Q,J;const o=t.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:i}}=e,a=o==null?void 0:o.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.COLUMN&&ne.range.startColumn<=r&&r<=ne.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=t.get(exports.SheetInterceptorService),d=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const l=d.getActiveSheet();if(!l)return!1;const m=d.getUnitId(),h=l.getSheetId(),R=t.get(s.ErrorService),S=t.get(s.LocaleService),g=a[0].range,f=a[0].primary,I=at(g,l,!1);if(!s.Rectangle.equals(g,I))return R.emit(S.t("sheets.info.partOfCell")),!1;if(ks(i,l))return R.emit(S.t("sheets.info.acrossMergedCell")),!1;const v={...g,startColumn:i,endColumn:i+g.endColumn-g.startColumn},p={unitId:m,subUnitId:h,sourceRange:g,targetRange:v},M=Go(t,p),w=g.endColumn-g.startColumn+1,U=i-r<0?v:{...v,startColumn:v.startColumn-w,endColumn:v.endColumn-w},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:U,primary:ce(U,l),style:null}]},O={unitId:m,subUnitId:h,pluginName:X,selections:[{range:g,primary:f,style:null}]},j=t.get(s.ICommandService),B=c.onCommandExecute({id:$t.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:Pe.id,params:p},{id:K.id,params:E},...B.redos],oe=[...(J=B.preUndos)!=null?J:[],{id:Pe.id,params:M},{id:K.id,params:O},...B.undos];return s.sequenceExecute(b,j).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},Yo="sheet.command.remove-row",ut={type:s.CommandType.COMMAND,id:Yo,handler:async(t,e)=>{var v,p,M,w;const n=t.get(exports.SelectionManagerService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(v=n.getLast())==null?void 0:v.range),!r)return!1;const i=t.get(s.IUniverInstanceService),a=A(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:d,unitId:l}=a;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)u.getRowFiltered(y)&&m.push(y);const h=[];if(m.length){const y=[r.startRow,...m.map(U=>U+1)],P=[...m.map(U=>U-1),r.endRow];for(let U=y.length-1;U>=0;U--)y[U]<=P[U]&&h.push({startRow:y[U],endRow:P[U],startColumn:r.startColumn,endColumn:r.endColumn})}else h.push(r);const R=[],S=[];h.forEach(y=>{const P={unitId:l,subUnitId:d,range:y},U=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),E={unitId:l,subUnitId:d,cellValue:U.getMatrix()},O=Ps(P,u);R.push({id:we.id,params:P}),S.unshift({id:Ie.id,params:O},{id:G.id,params:E})});const g=o.onCommandExecute({id:ut.id,params:{range:r}}),f=t.get(s.ICommandService);return s.sequenceExecute([...(p=g.preRedos)!=null?p:[],...R,...g.redos,Ue(r,c,u)],f).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(M=g.preUndos)!=null?M:[],...S,...g.undos],redoMutations:[...(w=g.preRedos)!=null?w:[],...R,...g.redos]}),!0):!1}},Ko="sheet.command.remove-col",lt={type:s.CommandType.COMMAND,id:Ko,handler:async(t,e)=>{var v,p,M,w;const n=t.get(exports.SelectionManagerService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(v=n.getLast())==null?void 0:v.range),!r)return!1;const i=t.get(s.IUniverInstanceService),a=A(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:d,unitId:l}=a;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:l,subUnitId:d,range:r},h=Us(t,m),R=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),S={unitId:l,subUnitId:d,cellValue:R.getMatrix()},g=o.onCommandExecute({id:lt.id,params:{range:r}}),f=t.get(s.ICommandService);return s.sequenceExecute([...(p=g.preRedos)!=null?p:[],{id:fe.id,params:m},...g.redos,Ue(r,c,u)],f).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(M=g.preUndos)!=null?M:[],{id:Me.id,params:h},{id:G.id,params:S},...g.undos],redoMutations:[...(w=g.preRedos)!=null?w:[],{id:fe.id,params:m},...g.redos]}),!0):!1}},sn={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(t,e)=>{var v,p;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService),a=A(r,e);if(!a)return!1;const{unitId:c,subUnitId:u,workbook:d,worksheet:l}=a;if(d.getSheets().length<=1)return!1;const m=d.getSheetIndex(l);d.getConfig().sheetOrder[m+1];const h={subUnitId:u,unitId:c,subUnitName:l.getName()},R=eo(t,h),S=i.onCommandExecute({id:sn.id,params:{unitId:c,subUnitId:u}}),g=[...(v=S.preRedos)!=null?v:[],{id:Je.id,params:h},...S.redos],f=[...(p=S.preUndos)!=null?p:[],{id:De.id,params:R},...S.undos];return s.sequenceExecute(g,n)?(o.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:g}),!0):!1}},ge=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},H={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)a.push(c[u]);return!0}},ie=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,c=e.ranges,u=[];for(let d=0;d<c.length;d++)for(let l=a.length-1;l>=0;l--){const m=a[l],h=c[d];s.Rectangle.intersects(m,h)&&u.push(a[l])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},q={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let d=a.length-1;d>=0;d--){const l=a[d],m=c[u];s.Rectangle.intersects(l,m)&&a.splice(d,1)}return!0}},Jo={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async t=>{const e=t.get(exports.SelectionManagerService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=A(r);if(!a)return!1;const{subUnitId:c,unitId:u,worksheet:d}=a,l={unitId:u,subUnitId:c,ranges:i},h=d.getConfig().mergeData.filter(O=>i.some(j=>s.Rectangle.intersects(j,O)));if(!h.length)return!1;const R=ie(t,l),S=e.getSelections();if(!(S!=null&&S.length))return!1;const g=s.Tools.deepClone(S),f=s.Tools.deepClone(S),I=f[f.length-1],{startRow:v,startColumn:p}=I.range;I.primary={startRow:v,startColumn:p,endRow:v,endColumn:p,actualRow:v,actualColumn:p,isMerged:!1,isMergedMainCell:!1};const M=Ns(d,h),w={unitId:u,subUnitId:c,cellValue:M.redoParams.getMatrix()},y={unitId:u,subUnitId:c,cellValue:M.undoParams.getMatrix()},P=[{id:q.id,params:R},{id:G.id,params:w},{id:K.id,params:{selections:f}}],U=[{id:H.id,params:R},{id:G.id,params:y},{id:K.id,params:{selections:g}}];return s.sequenceExecute(P,n)?(o.pushUndoRedo({unitID:u,undoMutations:U,redoMutations:P}),!0):!1}};function Ns(t,e){const n=new s.ObjectMatrix,o=new s.ObjectMatrix;return e.forEach(r=>{const{startRow:i,startColumn:a,endColumn:c,endRow:u}=r,d=t.getCellMatrix().getValue(i,a);if(d!=null&&d.s)for(let l=i;l<=u;l++)for(let m=a;m<=c;m++)(l!==i||m!==a)&&(n.setValue(l,m,{s:d.s}),o.setValue(l,m,null))}),{redoParams:n,undoParams:o}}class Fe{constructor(){C(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new le.BehaviorSubject(this._borderInfo));C(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function gt(t,e){const{startRow:n,startColumn:o,endRow:r,endColumn:i}=t;for(let a=n;a<=r;a++)for(let c=o;c<=i;c++)e(a,c)}const Xo={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(t,e)=>{const{unitId:n,subUnitId:o,value:r}=e,{type:i,color:a,style:c}=r,u=t.get(s.ICommandService),d=t.get(Fe);return d.setType(i),d.setColor(a),d.setStyle(c),u.executeCommand(Xe.id,{unitId:n,subUnitId:o})}},Zo={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(t,e)=>{if(!e.value)return!1;const n=t.get(s.ICommandService);return t.get(Fe).setType(e.value),n.executeCommand(Xe.id)}},Qo={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get(Fe).setStyle(e.value),n.executeCommand(Xe.id)}},er={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get(Fe).setColor(e.value),n.executeCommand(Xe.id)}},Xe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SelectionManagerService),a=t.get(Fe),c=A(r,e);if(!c)return!1;const{worksheet:u,unitId:d,subUnitId:l}=c,m=i.getSelectionRanges(),h=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:R,color:S,type:g,activeBorderType:f}=a.getBorderInfo();if(!f)return!1;const I=g===s.BorderType.TOP||g===s.BorderType.ALL||g===s.BorderType.OUTSIDE,v=g===s.BorderType.LEFT||g===s.BorderType.ALL||g===s.BorderType.OUTSIDE,p=g===s.BorderType.BOTTOM||g===s.BorderType.ALL||g===s.BorderType.OUTSIDE,M=g===s.BorderType.RIGHT||g===s.BorderType.ALL||g===s.BorderType.OUTSIDE,w=g===s.BorderType.VERTICAL||g===s.BorderType.ALL||g===s.BorderType.INSIDE,y=g===s.BorderType.HORIZONTAL||g===s.BorderType.ALL||g===s.BorderType.INSIDE,P=g.indexOf("tlbr")>-1,U=g.indexOf("tlbc")>-1,E=g.indexOf("tlmr")>-1,O=g.indexOf("bltr")>-1,j=g.indexOf("mltr")>-1,B=g.indexOf("bctr")>-1,b=m[0],oe={startRow:b.startRow-1,startColumn:b.startColumn,endRow:b.startRow-1,endColumn:b.endColumn},Z={startRow:b.startRow,startColumn:b.startColumn-1,endRow:b.endRow,endColumn:b.startColumn-1},Q={startRow:b.endRow+1,startColumn:b.startColumn,endRow:b.endRow+1,endColumn:b.endColumn},J={startRow:b.startRow,startColumn:b.endColumn+1,endRow:b.endRow,endColumn:b.endColumn+1},ne={startRow:b.startRow,startColumn:b.startColumn,endRow:b.startRow,endColumn:b.endColumn},Dn={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.startColumn},xn={startRow:b.endRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn},An={startRow:b.startRow,startColumn:b.endColumn,endRow:b.endRow,endColumn:b.endColumn},$=new s.ObjectMatrix,Y={s:R,cl:{rgb:S}},mt=(x,k)=>{let F=null;return h.forEach(re=>{s.Rectangle.intersects(re,{startColumn:k,endColumn:k,startRow:x,endRow:x})&&(F=re)}),F};function z(x,k,F){x.startRow<0||x.startColumn<0||gt(x,(re,me)=>{var N,Ze;const se=mt(re,me);let ue=k;if(se&&(k.bc_tr||k.ml_tr||k.bl_tr||k.tl_mr||k.tl_bc||k.tl_br)){if(F){const he=s.Tools.deepClone((N=$.getValue(se.startRow,se.startColumn))==null?void 0:N.s);ue=he!=null&&he.bd?Object.assign(he.bd,k):k}$.setValue(se.startRow,se.startColumn,{s:{bd:ue}})}else{if(F){const he=s.Tools.deepClone((Ze=$.getValue(re,me))==null?void 0:Ze.s);ue=he!=null&&he.bd?Object.assign(he.bd,k):k}$.setValue(re,me,{s:{bd:ue}})}})}I&&(z(oe,{b:null}),z(ne,{t:s.Tools.deepClone(Y)},!0)),p&&(z(Q,{t:null}),z(xn,{b:s.Tools.deepClone(Y)},!0)),v&&(z(Z,{r:null}),z(Dn,{l:s.Tools.deepClone(Y)},!0)),M&&(z(J,{l:null}),z(An,{r:s.Tools.deepClone(Y)},!0)),P&&z(b,{tl_br:s.Tools.deepClone(Y)},!0),U&&z(b,{tl_bc:s.Tools.deepClone(Y)},!0),E&&z(b,{tl_mr:s.Tools.deepClone(Y)},!0),O&&z(b,{bl_tr:s.Tools.deepClone(Y)},!0),j&&z(b,{ml_tr:s.Tools.deepClone(Y)},!0),B&&z(b,{bc_tr:s.Tools.deepClone(Y)},!0),w&&gt(b,(x,k)=>{var re,me,se,ue;const F=mt(x,k);if(F){if(F.endColumn!==b.endColumn){const N=(re=$.getValue(F.startRow,F.startColumn))==null?void 0:re.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(F.startColumn!==b.startColumn){const N=(me=$.getValue(F.startRow,F.startColumn))==null?void 0:me.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}else{if(k!==b.endColumn){const N=(se=$.getValue(x,k))==null?void 0:se.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(k!==b.startColumn){const N=(ue=$.getValue(x,k))==null?void 0:ue.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}}),y&&gt(b,(x,k)=>{var re,me,se,ue;const F=mt(x,k);if(F){if(F.endRow!==b.endRow){const N=(re=$.getValue(F.startRow,F.startColumn))==null?void 0:re.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(F.startRow!==b.startRow){const N=(me=$.getValue(F.startRow,F.startColumn))==null?void 0:me.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}else{if(x!==b.endRow){const N=(se=$.getValue(x,k))==null?void 0:se.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(x!==b.startRow){const N=(ue=$.getValue(x,k))==null?void 0:ue.s;$.setValue(x,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}}),!I&&!p&&!v&&!M&&!w&&!y&&!P&&!U&&!E&&!O&&!j&&!B&&(z(oe,{b:null}),z(ne,{t:null},!0),z(Q,{t:null}),z(xn,{b:null},!0),z(Z,{r:null}),z(Dn,{l:null},!0),z(J,{l:null}),z(An,{r:null},!0),z(b,{tl_br:null},!0),z(b,{tl_bc:null},!0),z(b,{tl_mr:null},!0),z(b,{bl_tr:null},!0),z(b,{ml_tr:null},!0),z(b,{bc_tr:null},!0),gt(b,(x,k)=>{var re,me,se,ue,N,Ze,he,Wn;const F=mt(x,k);if(F){if(F.endColumn!==b.endColumn){const W=(re=$.getValue(F.startRow,F.startColumn))==null?void 0:re.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{r:null}):{r:null}}})}if(F.startColumn!==b.startColumn){const W=(me=$.getValue(F.startRow,F.startColumn))==null?void 0:me.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{l:null}):{l:null}}})}if(F.endRow!==b.endRow){const W=(se=$.getValue(F.startRow,F.startColumn))==null?void 0:se.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{b:null}):{b:null}}})}if(F.startRow!==b.startRow){const W=(ue=$.getValue(F.startRow,F.startColumn))==null?void 0:ue.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{t:null}):{t:null}}})}}else{if(k!==b.endColumn){const W=(N=$.getValue(x,k))==null?void 0:N.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{r:null}):{r:null}}})}if(k!==b.startColumn){const W=(Ze=$.getValue(x,k))==null?void 0:Ze.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{l:null}):{l:null}}})}if(x!==b.endRow){const W=(he=$.getValue(x,k))==null?void 0:he.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{b:null}):{b:null}}})}if(x!==b.startRow){const W=(Wn=$.getValue(x,k))==null?void 0:Wn.s;$.setValue(x,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{t:null}):{t:null}}})}}}));const qt={unitId:d,subUnitId:l,cellValue:$.getData()},qr=pe(t,qt);return n.syncExecuteCommand(G.id,qt)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:G.id,params:qr}],redoMutations:[{id:G.id,params:qt}]}),!0):!1}},Os=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},He={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},Ds=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ge={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(t,e)=>{var I,v;const{unitId:n,subUnitId:o,ranges:r}=e,i=t.get(exports.SheetInterceptorService),a=t.get(s.ICommandService),c=t.get(s.IUniverInstanceService),u=A(c,{unitId:n,subUnitId:o});if(!u)return!1;const{worksheet:d}=u,l={unitId:n,subUnitId:o,ranges:r},m={unitId:n,subUnitId:o,pluginName:X,selections:r.map(p=>({range:p,primary:ce(p,d),style:null}))},h=Ds(t,l),R={unitId:n,subUnitId:o,pluginName:X,selections:nr(r).map(p=>({range:p,primary:ce(p,d),style:null}))},S=s.sequenceExecute([{id:Ge.id,params:l},{id:K.id,params:m}],a),g=i.onCommandExecute({id:Ft.id,params:e}),f=s.sequenceExecute([...g.redos],a);return S.result&&f.result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:He.id,params:h},{id:K.id,params:R},...(I=g.undos)!=null?I:[]],redoMutations:[...(v=g.preRedos)!=null?v:[],{id:Ge.id,params:l},{id:K.id,params:m},...g.redos]}),!0}},tr={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async t=>{var d;const e=t.get(exports.SelectionManagerService),n=t.get(s.ICommandService),o=(d=e.getSelections())==null?void 0:d.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=A(t.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:i,unitId:a,subUnitId:c}=r,u=o.map(l=>i.getHiddenCols(l.startColumn,l.endColumn)).flat();return n.executeCommand(Ft.id,{unitId:a,subUnitId:c,ranges:u})}},an={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async t=>{var I,v,p;const e=t.get(exports.SelectionManagerService),n=t.get(exports.SheetInterceptorService),o=t.get(s.IUniverInstanceService),r=t.get(s.ICommandService);let i=(I=e.getSelections())==null?void 0:I.map(M=>M.range).filter(M=>M.rangeType===s.RANGE_TYPE.COLUMN);if(!(i!=null&&i.length))return!1;const a=A(o);if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:d}=a;i=xs(a.worksheet,i);const l={unitId:u,subUnitId:d,ranges:i},m={unitId:u,subUnitId:d,pluginName:X,selections:nr(i).map(M=>({range:M,primary:ce(M,c),style:null}))},h=Os(t,l),R={unitId:u,subUnitId:d,pluginName:X,selections:i.map(M=>({range:M,primary:ce(M,c),style:null}))},S=s.sequenceExecute([{id:He.id,params:l},{id:K.id,params:m}],r),g=n.onCommandExecute({id:an.id,params:l}),f=s.sequenceExecute([...g.redos],r);return S.result&&f.result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[{id:Ge.id,params:h},{id:K.id,params:R},...(v=g.undos)!=null?v:[]],redoMutations:[...(p=g.preRedos)!=null?p:[],{id:He.id,params:l},{id:K.id,params:m},...g.redos]}),!0):!1}};function xs(t,e){const n=t.getRowCount()-1,o=t.getHiddenCols(),r=[];return e.forEach(i=>{const a=o.filter(c=>c.startColumn>=i.startColumn&&c.endColumn<=i.endColumn);if(a.length){let c=i.startColumn;a.forEach(u=>{u.startColumn>c&&(r.push({startColumn:c,endColumn:u.startColumn-1,startRow:0,endRow:n}),c=u.endColumn+1)}),c<=i.endColumn&&r.push({startColumn:c,endColumn:i.endColumn,startRow:0,endRow:n})}else r.push(i)}),r}function nr(t){return As(t).map(n=>{const o=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:o,endColumn:o}})}function As(t){const e=[];let n;return t.sort((o,r)=>o.startColumn-r.startColumn).forEach(o=>{if(!n){n=o;return}n.endColumn===o.startColumn-1?n.endColumn=o.endColumn:(e.push(n),n=o)}),e.push(n),e}const cn=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...a}},ke={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:c,ySplit:u,xSplit:d}=e;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:d},!0}},or={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=A(r);if(!i)return!1;const{unitId:a,subUnitId:c,worksheet:u}=i,{startColumn:d,startRow:l,xSplit:m,ySplit:h}=e;if(l>=u.getRowCount()||d>=u.getColumnCount()||m>=u.getColumnCount()||h>=u.getRowCount())return!1;const R={unitId:a,subUnitId:c,...e},S=cn(t,R);return n.syncExecuteCommand(ke.id,R)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ke.id,params:S}],redoMutations:[{id:ke.id,params:R}]}),!0):!1}},rr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async t=>{const e=t.get(s.ICommandService),n=t.get(s.IUndoRedoService),o=t.get(s.IUniverInstanceService),r=A(o);if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={unitId:i,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=cn(t,c);return e.syncExecuteCommand(ke.id,c)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:ke.id,params:u}],redoMutations:[{id:ke.id,params:c}]}),!0):!1}},Ws=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},qe={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},Ls=(t,e)=>{if(t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},ze={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(t,e)=>{var I,v,p;const{unitId:n,subUnitId:o,ranges:r}=e,i=t.get(s.ICommandService),a=t.get(s.IUndoRedoService),c=t.get(exports.SheetInterceptorService),u=A(t.get(s.IUniverInstanceService),{unitId:n,subUnitId:o});if(!u)return!1;const{worksheet:d}=u,l={unitId:n,subUnitId:o,ranges:r},m={unitId:n,subUnitId:o,pluginName:X,selections:r.map(M=>({range:M,primary:ce(M,d),style:null}))},h=Ws(t,l),R={unitId:n,subUnitId:o,pluginName:X,selections:ir(r).map(M=>({range:M,primary:ce(M,d),style:null}))},S=s.sequenceExecute([{id:qe.id,params:l},{id:K.id,params:m}],i),g=c.onCommandExecute({id:Bt.id,params:e}),f=s.sequenceExecute([...g.redos],i);return S.result&&f.result&&a.pushUndoRedo({unitID:n,undoMutations:[...(I=g.preUndos)!=null?I:[],{id:ze.id,params:h},{id:K.id,params:R},...(v=g.undos)!=null?v:[]],redoMutations:[...(p=g.preRedos)!=null?p:[],{id:qe.id,params:l},{id:K.id,params:m},...g.redos]}),!0}},sr={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async t=>{var l;const e=t.get(exports.SelectionManagerService),n=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),r=(l=e.getSelections())==null?void 0:l.map(m=>m.range).filter(m=>m.rangeType===s.RANGE_TYPE.ROW);if(!(r!=null&&r.length))return!1;const i=A(n);if(!i)return!1;const{worksheet:a,unitId:c,subUnitId:u}=i,d=r.map(m=>a.getHiddenRows(m.startRow,m.endRow)).flat();return o.executeCommand(Bt.id,{unitId:c,subUnitId:u,ranges:d})}},un={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async t=>{var I,v,p,M,w;const e=t.get(exports.SelectionManagerService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService);let a=(I=e.getSelections())==null?void 0:I.map(y=>y.range).filter(y=>y.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const c=A(r);if(!c)return!1;a=Vs(c.worksheet,a);const{unitId:u,subUnitId:d,worksheet:l}=c,m={unitId:u,subUnitId:d,ranges:a},h={unitId:u,subUnitId:d,pluginName:X,selections:ir(a).map(y=>({range:y,primary:ce(y,l),style:null}))},R=Ls(t,m),S={unitId:u,subUnitId:d,pluginName:X,selections:a.map(y=>({range:y,primary:ce(y,l),style:null}))},g=i.onCommandExecute({id:un.id,params:m});return s.sequenceExecute([...(v=g.preRedos)!=null?v:[],{id:ze.id,params:m},{id:K.id,params:h},...g.redos],n).result&&o.pushUndoRedo({unitID:u,undoMutations:[...(p=g.preUndos)!=null?p:[],{id:qe.id,params:R},{id:K.id,params:S},...(M=g.undos)!=null?M:[]],redoMutations:[...(w=g.preRedos)!=null?w:[],{id:ze.id,params:m},{id:K.id,params:h},...g.redos]}),!0}};function Vs(t,e){const n=t.getMaxColumns()-1,o=t.getHiddenRows(),r=[];return e.forEach(i=>{const a=o.filter(c=>c.startRow>=i.startRow&&c.endRow<=i.endRow);if(a.length){let c=i.startRow;a.forEach(u=>{u.startRow>c&&(r.push({startRow:c,endRow:u.startRow-1,startColumn:0,endColumn:n}),c=u.endRow+1)}),c<=i.endRow&&r.push({startRow:c,endRow:i.endRow,startColumn:0,endColumn:n})}else r.push(i)}),r}function ir(t){return $s(t).map(n=>{const o=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:o,endRow:o}})}function $s(t){const e=[];let n;return t.sort((o,r)=>o.startRow-r.startRow).forEach(o=>{if(!n){n=o;return}o.startRow===n.endRow+1?n.endRow=o.endRow:(e.push(n),n=o)}),e.push(n),e}const te={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(t,e)=>{const n=t.get(s.IUniverInstanceService),o=A(n);if(!o)return!1;const{unitId:r,subUnitId:i,worksheet:a}=o,{range:c,style:u}=e,d=t.get(s.ICommandService),l=t.get(s.IUndoRedoService),m=t.get(exports.SelectionManagerService),h=c?[c]:m.getSelectionRanges();if(!(h!=null&&h.length))return!1;const R=new s.ObjectMatrix,S=ps(a);if(s.Tools.isArray(u.value))for(let w=0;w<h.length;w++)S.forOperableEach(h[w],(y,P,U)=>{R.setValue(y,P,{s:{[u.type]:u.value[y-U.startRow][P-U.startColumn]}})});else for(let w=0;w<h.length;w++){const y={s:{[u.type]:u.value}};S.forOperableEach(h[w],(P,U)=>R.setValue(P,U,y))}const g={subUnitId:i,unitId:r,cellValue:R.getMatrix()},f=pe(t,g),I=d.syncExecuteCommand(G.id,g),{undos:v,redos:p}=t.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),M=s.sequenceExecute([...p],d);return I&&M.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:G.id,params:f},...v],redoMutations:[{id:G.id,params:g},...p]}),!0):!1}},Fs={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=A(t.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:o}=n,{actualRow:r,actualColumn:i}=e.primary,c={style:{type:"bl",value:o.getRange(r,i).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(te.id,c)}},Bs={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=A(t.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:o}=n;let r=!0;if(e.primary){const{startRow:a,startColumn:c}=e.primary;r=o.getRange(a,c).getFontStyle()===s.FontItalic.ITALIC}const i={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return t.get(s.ICommandService).executeCommand(te.id,i)}},js={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=A(t.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:o}=n;let r=!0;e.primary&&(r=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const i={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(te.id,i)}},Hs={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=A(t.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:o}=n;let r=!0;e.primary&&(r=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const i={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(te.id,i)}},Gs={type:s.CommandType.COMMAND,id:"sheet.command.set-overline",handler:async t=>{const e=t.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=A(t.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:o}=n;let r=!0;e.primary&&(r=!!o.getRange(e.primary.startRow,e.primary.startColumn).getOverline().s);const i={style:{type:"ol",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return t.get(s.ICommandService).executeCommand(te.id,i)}},qs={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={style:{type:"ff",value:e.value}};return n.executeCommand(te.id,o)}},zs={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={style:{type:"fs",value:e.value}};return n.executeCommand(te.id,o)}},ar={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const n=t.get(s.ICommandService),o={style:{type:"cl",value:{rgb:e.value}}};return n.executeCommand(te.id,o)}},cr={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async t=>{const e=t.get(s.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(te.id,n)}},ur={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(t,e)=>{if(!e||!e.value)return!1;const n=t.get(s.ICommandService),o={style:{type:"bg",value:{rgb:e.value}}};return n.executeCommand(te.id,o)}},lr={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async t=>{const e=t.get(s.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(te.id,n)}},dr={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"vt",value:e.value}};return n.executeCommand(te.id,o)}},mr={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"ht",value:e.value}};return n.executeCommand(te.id,o)}},hr={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(t,e)=>{if(!e)return!1;const n=t.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"tb",value:e.value}};return n.executeCommand(te.id,o)}},gr={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(t,e)=>{if(!e)return!1;const n=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},o=t.get(s.ICommandService),r={style:{type:"tr",value:n}};return o.executeCommand(te.id,r)}},Ys=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},nt={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().tabColor=e.color,!0):!1}},Rr={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=A(t.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={color:e.value,unitId:i,subUnitId:a},u=Ys(t,c);return n.syncExecuteCommand(nt.id,c)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:nt.id,params:u}],redoMutations:[{id:nt.id,params:c}]}),!0):!1}},dt={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getWorksheets();for(const[,r]of o)if(r.getSheetId()===e.subUnitId)return n.setActiveSheet(r),!0;return!1}},Ks=4,jt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(t,e,n)=>{const o=t.get(s.ICommandService),r=A(t.get(s.IUniverInstanceService),e);if(!r)return!1;const{unitId:i,subUnitId:a}=r;return new Promise(c=>{setTimeout(()=>{const u=o.syncExecuteCommand(dt.id,{unitId:i,subUnitId:a},n);c(u)},Ks)})}},ln=(t,e)=>{const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const i={},a=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const d=c[u];for(let l=d.startColumn;l<d.endColumn+1;l++){const m=a.getColumnOrCreate(l);i[l]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},ye={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(t,e)=>{var u;const o=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),c=e.ranges;for(let d=0;d<c.length;d++){const l=c[d];for(let m=l.startColumn;m<l.endColumn+1;m++){const h=a.getColumnOrCreate(m);typeof e.colWidth=="number"?h.w=e.colWidth:h.w=(u=e.colWidth[m-l.startColumn])!=null?u:i}}return!0}},dn={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections();if(t.get(exports.SheetInterceptorService),!(o!=null&&o.length))return!1;const r=t.get(s.ICommandService),i=t.get(s.IUndoRedoService),a=A(t.get(s.IUniverInstanceService));if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:d}=a,{anchorCol:l,deltaX:m}=e,R=c.getColumnWidth(l)+m,S=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,g=o.filter(P=>P.range.rangeType===s.RANGE_TYPE.COLUMN),f=S?s.RANGE_TYPE.ALL:g.some(({range:P})=>{const{startColumn:U,endColumn:E}=P;return U<=l&&l<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(f===s.RANGE_TYPE.ALL){const P=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((E,O)=>({startRow:0,endRow:P-1,startColumn:O,endColumn:O}));I={subUnitId:d,unitId:u,colWidth:R,ranges:U}}else f===s.RANGE_TYPE.COLUMN?I={subUnitId:d,unitId:u,ranges:g.map(P=>s.Rectangle.clone(P.range)),colWidth:R}:I={subUnitId:d,unitId:u,colWidth:R,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:l,endColumn:l}]};const{undos:v,redos:p}=t.get(exports.SheetInterceptorService).onCommandExecute({id:dn.id,params:I}),M=ln(t,I),w=r.syncExecuteCommand(ye.id,I),y=s.sequenceExecute([...p],r);return w&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:ye.id,params:M},...v],redoMutations:[{id:ye.id,params:I},...p]}),!0}},_t={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(t,e)=>{var I,v;const n=t.get(exports.SelectionManagerService),o=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=n.getSelectionRanges();if(!(a!=null&&a.length))return!1;const c=A(t.get(s.IUniverInstanceService));if(!c)return!1;const{subUnitId:u,unitId:d}=c,l={subUnitId:u,unitId:d,ranges:a,colWidth:e.value},m=ln(t,l),h=o.syncExecuteCommand(ye.id,l),{undos:R,redos:S}=t.get(exports.SheetInterceptorService).onCommandExecute({id:_t.id,params:l}),g=i.onCommandExecute({id:_t.id,params:l}),f=s.sequenceExecute([...S,...g.redos],o);return h&&f.result?(r.pushUndoRedo({unitID:d,undoMutations:[...(I=g.preUndos)!=null?I:[],{id:ye.id,params:m},...R],redoMutations:[...(v=g.preRedos)!=null?v:[],{id:ye.id,params:l},...S]}),!0):!1}},Sr=(t,e)=>{const n=Et(t.get(s.IUniverInstanceService),e);if(!n)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:o}=n;return{hidden:o.isSheetHidden(),unitId:e.unitId,subUnitId:o.getSheetId()}},Ne={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const o=n.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().hidden=e.hidden,!0):!1}},Cr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.ErrorService),i=t.get(s.LocaleService),a=A(t.get(s.IUniverInstanceService),e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:d,subUnitId:l}=a;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const h={unitId:d,subUnitId:l,hidden:s.BooleanNumber.TRUE},R=Sr(t,h);return c.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):n.syncExecuteCommand(Ne.id,h)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:Ne.id,params:R}],redoMutations:[{id:Ne.id,params:h}]}),!0):!1}},Js=(t,e)=>{const n=Et(t.get(s.IUniverInstanceService),e);if(!n)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:o}=n;return{unitId:e.unitId,name:o.getName(),subUnitId:o.getSheetId()}},bt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const o=n.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().name=e.name,!0):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(t,e)=>{var S,g;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(exports.SheetInterceptorService),i=A(t.get(s.IUniverInstanceService),e);if(!i)return!1;const{unitId:a,subUnitId:c}=i,u={subUnitId:c,name:e.name,unitId:a},d=Js(t,u),l=r.onCommandExecute({id:mn.id,params:e}),m=[...(S=l.preRedos)!=null?S:[],{id:bt.id,params:u},...l.redos],h=[...(g=l.preUndos)!=null?g:[],{id:bt.id,params:d},...l.undos];return await s.sequenceExecute(m,n).result?(o.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},Xs=(t,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),ot={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getConfig();return o.sheetOrder.splice(e.fromOrder,1),o.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},fr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=A(t.get(s.IUniverInstanceService),e);if(!r)return!1;const{workbook:i,unitId:a,subUnitId:c}=r,d={fromOrder:i.getConfig().sheetOrder.indexOf(c),toOrder:e.order,unitId:a,subUnitId:c},l=Xs(t,d);return n.syncExecuteCommand(ot.id,d)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ot.id,params:l}],redoMutations:[{id:ot.id,params:d}]}),!0):!1}},Zs=2e3,vr=(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u={},d=c.getRowManager();for(const{startRow:l,endRow:m}of r)for(let h=l;h<m+1;h++){const R=d.getRowOrCreate(h);u[h]=R.h}return{unitId:n,subUnitId:o,ranges:r,rowHeight:u}},hn=(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),u={},d=c.getRowManager();for(const{startRow:l,endRow:m}of r)for(let h=l;h<=m;h++){const R=d.getRowOrCreate(h);u[h]=R.ia}return{unitId:n,subUnitId:o,ranges:r,autoHeightInfo:u}},Qs=(t,e)=>{const{unitId:n,subUnitId:o,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(o);if(!c)return{unitId:n,subUnitId:o,rowsAutoHeightInfo:[]};const u=[],d=c.getRowManager();for(const l of r){const{row:m}=l,{ah:h}=d.getRowOrCreate(m);u.push({row:m,autoHeight:h})}return{unitId:n,subUnitId:o,rowsAutoHeightInfo:u}},_e={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(t,e)=>{var m;const{unitId:n,subUnitId:o,ranges:r,rowHeight:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const d=u.getConfig().defaultRowHeight,l=u.getRowManager();for(const{startRow:h,endRow:R}of r)for(let S=h;S<=R;S++){const g=l.getRowOrCreate(S);typeof i=="number"?g.h=i:g.h=(m=i[S])!=null?m:d,g.h=Math.min(Zs,g.h)}return!0}},Re={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{var m;const{unitId:n,subUnitId:o,ranges:r,autoHeightInfo:i}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const d=void 0,l=u.getRowManager();for(const{startRow:h,endRow:R}of r)for(let S=h;S<=R;S++){const g=l.getRowOrCreate(S);typeof i=="number"?g.ia=i:g.ia=(m=i[S-h])!=null?m:d}return!0}},gn={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,rowsAutoHeightInfo:r}=e,a=t.get(s.IUniverInstanceService).getUnit(n),c=a==null?void 0:a.getSheetBySheetId(o);if(!c||!a)return!1;const u=c.getRowManager();for(const{row:d,autoHeight:l}of r){const m=u.getRowOrCreate(d);m.ah=l}return!0}},Rn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(t,e)=>{var E,O;const o=t.get(exports.SelectionManagerService).getSelections(),r=t.get(exports.SheetInterceptorService);if(!(o!=null&&o.length))return!1;const i=A(t.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:a,subUnitId:c,unitId:u}=i,{anchorRow:d,deltaY:l}=e,h=a.getRowHeight(d)+l,R=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,S=o.filter(j=>j.range.rangeType===s.RANGE_TYPE.ROW),g=R?s.RANGE_TYPE.ALL:S.some(({range:j})=>{const{startRow:B,endRow:b}=j;return B<=d&&d<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(g===s.RANGE_TYPE.ALL){const j=a.getRowCount(),B=new Array(a.getColumnCount()).fill(void 0).map((b,oe)=>({startRow:oe,endRow:oe,startColumn:0,endColumn:j-1}));f={subUnitId:c,unitId:u,rowHeight:h,ranges:B}}else g===s.RANGE_TYPE.ROW?f={subUnitId:c,unitId:u,ranges:S.map(j=>s.Rectangle.clone(j.range)),rowHeight:h}:f={subUnitId:c,unitId:u,rowHeight:h,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const I=vr(t,f),v={unitId:u,subUnitId:c,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},p=hn(t,v),M=t.get(s.ICommandService),w=t.get(s.IUndoRedoService),y=r.onCommandExecute({id:Rn.id,params:f}),P=s.sequenceExecute([{id:_e.id,params:f},{id:Re.id,params:v}],M),U=s.sequenceExecute([...y.redos],M);return P.result&&U.result?(w.pushUndoRedo({unitID:u,undoMutations:[...(E=y.preUndos)!=null?E:[],{id:_e.id,params:I},{id:Re.id,params:p},...y.undos],redoMutations:[...(O=y.preRedos)!=null?O:[],{id:_e.id,params:f},{id:Re.id,params:v},...y.redos]}),!0):!1}},Sn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(t,e)=>{var v,p;const n=t.get(exports.SelectionManagerService),o=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(s.IUniverInstanceService),a=t.get(exports.SheetInterceptorService),c=n.getSelectionRanges();if(!(c!=null&&c.length))return!1;const u=A(i);if(!u)return!1;const{unitId:d,subUnitId:l}=u,m={subUnitId:l,unitId:d,ranges:c,rowHeight:e.value},h=vr(t,m),R={unitId:d,subUnitId:l,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},S=hn(t,R),g=s.sequenceExecute([{id:_e.id,params:m},{id:Re.id,params:R}],o),f=a.onCommandExecute({id:Sn.id,params:m}),I=s.sequenceExecute([...f.redos],o);return g.result&&I.result?(r.pushUndoRedo({unitID:d,undoMutations:[...(v=f.preRedos)!=null?v:[],{id:_e.id,params:h},{id:Re.id,params:S},...f.undos],redoMutations:[...(p=f.preRedos)!=null?p:[],{id:_e.id,params:m},{id:Re.id,params:R},...f.redos]}),!0):!1}},Cn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(exports.SelectionManagerService),i=t.get(s.IUniverInstanceService),a=A(i);if(!a)return!1;const{unitId:c,subUnitId:u,worksheet:d}=a,{anchorRow:l}=e!=null?e:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:d.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const h={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},R=hn(t,h),S=n.syncExecuteCommand(Re.id,h),{undos:g,redos:f}=t.get(exports.SheetInterceptorService).onCommandExecute({id:Cn.id,params:h}),I=s.sequenceExecute([...f],n);return S&&I.result?(o.pushUndoRedo({unitID:c,undoMutations:[{id:Re.id,params:R},...g],redoMutations:[{id:Re.id,params:h},...f]}),!0):!1}},pr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(t,e)=>{const{unitId:n,subUnitId:o}=e,r=t.get(s.ICommandService),i=t.get(s.IUndoRedoService),a=t.get(s.IUniverInstanceService);if(!A(t.get(s.IUniverInstanceService)))return!1;const u=a.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const d=u.getSheetBySheetId(o);if(!d||d.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:n,subUnitId:o,hidden:s.BooleanNumber.FALSE},h=Sr(t,m),R=r.syncExecuteCommand(Ne.id,m),S={unitId:n,subUnitId:o},g=r.syncExecuteCommand(dt.id,S);return R&&g?(i.pushUndoRedo({unitID:n,undoMutations:[{id:Ne.id,params:h}],redoMutations:[{id:Ne.id,params:m}]}),!0):!1}},Ir=t=>{const e=new s.ObjectMatrix;return t.forEach(n=>{s.Range.foreach(n,(o,r)=>{e.setValue(o,r,1)})}),e.forValue((n,o)=>{const r=e.getValue(n-1,o);r&&e.setValue(n,o,r+1)}),e},Mr=t=>{const e=t;return e.forValue((n,o)=>{const r=t.getValue(n-1,o);r&&e.setValue(n,o,r+1)}),e},$n=t=>{const e={area:0},n=(o,r)=>e.area<o?(e.area=o,e.range=r,!0):!1;return t.forValue((o,r,i)=>{let a=1,c=i;n(a*c,{startRow:o-c+1,endRow:o,startColumn:r,endColumn:r});const u={startRow:o-c+1,endRow:o,startColumn:0,endColumn:r};for(let d=r-1;d>=0&&t.getValue(o,d);d--){c=Math.min(t.getValue(o,d)||0,c),a++;const l=c*a;u.startColumn=d,u.startRow=o-c+1,n(l,u)}}),e},ei=(t,e)=>(s.Range.foreach(e,(n,o)=>{t.realDeleteValue(n,o);let r=n+1,i=t.getValue(r,o)||0;for(;i>1;)t.setValue(r,o,i-1),r+=1,i=t.getValue(r,o)||0}),t),fn=t=>{const e=[];let n=$n(t);for(;n.area>0;)n.range&&(e.push(n.range),ei(t,n.range)),n=$n(t);return e},vn=t=>{const e=Ir(t);return fn(e)};class ti{constructor(){C(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(n=>{s.Range.foreach(n,(o,r)=>{this._matrix.setValue(o,r,1)})}),this}subtract(...e){return e.forEach(n=>{s.Range.foreach(n,(o,r)=>{this._matrix.realDeleteValue(o,r)})}),this}merge(){const e=Mr(this._matrix);return fn(e)}}const Be=V.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Be);const ni=(t,e)=>{const n=t.get(Be),{values:o,unitId:r,subUnitId:i}=e,a=[],c=[];Object.keys(o).forEach(d=>{o[d].ranges.forEach(m=>{s.Range.foreach(m,(h,R)=>{const S=n.getValue(r,i,h,R);S?a.push({pattern:S.pattern,row:h,col:R}):c.push({startColumn:R,endColumn:R,startRow:h,endRow:h})})})});const u=[];if(a.length){const d=Pt(r,i,a);Object.keys(d.values).forEach(l=>{const m=d.values[l];m.ranges=vn(m.ranges)}),u.push({id:Ht.id,params:Pt(r,i,a)})}return c.length&&u.push({id:pn.id,params:{unitId:r,subUnitId:i,ranges:c}}),u},Ht={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{values:n,refMap:o}=e,r=t.get(Be),i=e.unitId,a=e.subUnitId,c=Object.keys(n).reduce((u,d)=>{const l=o[d],m=n[d].ranges;return l&&u.push({...l,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},pn={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(t,e)=>{if(!e)return!1;const{unitId:n,subUnitId:o,ranges:r}=e;return t.get(Be).deleteValues(n,o,r),!0}},oi=(t,e)=>{const n=t.get(Be),{ranges:o,unitId:r,subUnitId:i}=e,a=[];if(o.forEach(u=>{s.Range.foreach(u,(d,l)=>{const m=n.getValue(r,i,d,l);m&&a.push({pattern:m.pattern,row:d,col:l})})}),!a.length)return[];const c=Pt(r,i,a);return Object.keys(c.values).forEach(u=>{const d=c.values[u];d.ranges=vn(d.ranges)}),[{id:Ht.id,params:c}]},Pt=(t,e,n)=>{const o=ms(n,"pattern"),r={},i={},a=hs();return Object.keys(o).forEach(c=>{const u=o[c],d=a();r[d]={pattern:c},u.forEach(l=>{i[d]||(i[d]={ranges:[]}),i[d].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:t,subUnitId:e,refMap:r,values:i}},wr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},yr={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return n.syncExecuteCommand(ae.SetDefinedNameMutation.id,r)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ae.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ae.SetDefinedNameMutation.id,params:r}]}),!0):!1}},_r={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return n.syncExecuteCommand(ae.RemoveDefinedNameMutation.id,r)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ae.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ae.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},br={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService);return e&&n.syncExecuteCommand(ae.SetDefinedNameMutation.id,e.newDefinedName)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ae.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:ae.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},Pr={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},In={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET);return n?(n.setName(e.name),!0):!1}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(t,e)=>{var d;if(!t.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const i=t.get(exports.SheetInterceptorService).onCommandExecute({id:Mn.id,params:e}),a={name:e.name,unitId:e.unitId},c=[...(d=i.preRedos)!=null?d:[],{id:In.id,params:a},...i.redos],u=t.get(s.ICommandService);return s.sequenceExecute(c,u).result}};var ri=Object.defineProperty,si=Object.getOwnPropertyDescriptor,ii=(t,e,n,o)=>{for(var r=o>1?void 0:o?si(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ri(e,n,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new le.Subject);C(this,"_ruleRefresh",new le.Subject);C(this,"_resetOrder",new le.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new le.BehaviorSubject(!1));C(this,"worksheetRuleInitStateChange$",this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}addRule(e,n){this._ensureSubUnitMap(e).set(n.subUnitId,n),this._ruleChange.next({unitId:e,rule:n,type:"add",subUnitId:n.subUnitId})}deleteRule(e,n){var r,i,a;const o=(i=(r=this._model)==null?void 0:r.get(e))==null?void 0:i.get(n);o&&((a=this._model.get(e))==null||a.delete(n),this._ruleChange.next({unitId:e,rule:o,type:"delete",subUnitId:n}))}setRule(e,n,o){var i,a;const r=this.getRule(e,n);r&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.set(n,o),this._ruleChange.next({unitId:e,oldRule:r,rule:o,type:"set",subUnitId:n}))}getRule(e,n){var o,r;return(r=(o=this._model)==null?void 0:o.get(e))==null?void 0:r.get(n)}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o);r!=null&&r.size&&(e[o]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[o].push(c)}))}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(o=>{const r=e[o];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),n.set(o,i)}}),this._model=n}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let n=this._model.get(e);return n||(n=new Map,this._model.set(e,n)),n}ruleRefresh(e){this._ruleRefresh.next(e)}resetOrder(){this._resetOrder.next(Math.random())}};exports.WorksheetProtectionRuleModel=ii([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionRuleModel)],exports.WorksheetProtectionRuleModel);const Ur={id:"sheet.mutation.add-worksheet-protection",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,rule:o}=e;return t.get(exports.WorksheetProtectionRuleModel).addRule(n,o),!0}},Tr={id:"sheet.mutation.set-worksheet-protection",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,rule:r}=e;return t.get(exports.WorksheetProtectionRuleModel).setRule(n,o,r),!0}},Er={id:"sheet.mutation.delete-worksheet-protection",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o}=e;return t.get(exports.WorksheetProtectionRuleModel).deleteRule(n,o),!0}};var ai=Object.defineProperty,ci=Object.getOwnPropertyDescriptor,ui=(t,e,n,o)=>{for(var r=o>1?void 0:o?ci(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ai(e,n,r),r};exports.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new le.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new le.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new le.BehaviorSubject(!1));C(this,"rangeRuleInitStateChange$",this._rangeRuleInitStateChange.asObservable())}ruleRefresh(e){this._ruleRefresh.next(e)}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,n,o){this._ensureRuleMap(e,n).set(o.id,o),this._ruleChange.next({unitId:e,subUnitId:n,rule:o,type:"add"})}deleteRule(e,n,o){var i,a,c,u;const r=(a=(i=this._model.get(e))==null?void 0:i.get(n))==null?void 0:a.get(o);r&&((u=(c=this._model.get(e))==null?void 0:c.get(n))==null||u.delete(o),this._ruleChange.next({unitId:e,subUnitId:n,rule:r,type:"delete"}))}setRule(e,n,o,r){var a,c;const i=this.getRule(e,n,o);i&&((c=(a=this._model.get(e))==null?void 0:a.get(n))==null||c.set(o,r),this._ruleChange.next({unitId:e,subUnitId:n,oldRule:i,rule:r,type:"set"}))}getRule(e,n,o){var r,i;return(i=(r=this._model.get(e))==null?void 0:r.get(n))==null?void 0:i.get(o)}getSubunitRuleList(e,n){var r;return[...(((r=this._model.get(e))==null?void 0:r.get(n))||new Map).values()]}_ensureRuleMap(e,n){let o=this._model.get(e);o||(o=new Map,this._model.set(e,o));let r=o.get(n);return r||(r=new Map,o.set(n,r)),r}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o),i=[...r.keys()];e[o]={},i.forEach(a=>{const c=r.get(a);e[o][a]=[...c.values()]})}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(o=>{const r=e[o],i=new Map;Object.keys(r).forEach(a=>{const c=r[a].reduce((u,d)=>(u.set(d.id,d),u),new Map);i.set(a,c)}),n.set(o,i)}),this._model=n}deleteUnitModel(){this._model.clear()}createRuleId(e,n){let o=s.Tools.generateRandomId(4);const r=this._ensureRuleMap(e,n);for(;r.has(o);)o=s.Tools.generateRandomId(4);return o}};exports.RangeProtectionRuleModel=ui([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const Te=()=>[en,io],rt=()=>[oo,go,ho,fo,So,lo,uo,mo,Co,ro,so,co,ao,Ro],li=[_.Copy,_.DeleteColumn,_.DeleteRow,_.EditExtraObject,_.Filter,_.InsertColumn,_.InsertRow,_.InsertHyperlink,_.PivotTable,_.SetCellStyle,_.SetCellValue,_.SetColumnStyle,_.SetRowStyle,_.Sort];var di=Object.defineProperty,mi=Object.getOwnPropertyDescriptor,hi=(t,e,n,o)=>{for(var r=o>1?void 0:o?mi(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&di(e,n,r),r};exports.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new le.Subject);C(this,"pointChange$",this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,n){var r,i,a;const o=(r=this._model.get(e))==null?void 0:r.get(n);o&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.delete(n),this._pointChange.next(o))}getRule(e,n){var o,r;return(r=(o=this._model)==null?void 0:o.get(e))==null?void 0:r.get(n)}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o);r!=null&&r.size&&(e[o]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[o].push(c)}))}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(o=>{const r=e[o];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),n.set(o,i)}}),this._model=n}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let n=this._model.get(e);return n||(n=new Map,this._model.set(e,n)),n}};exports.WorksheetProtectionPointModel=hi([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var gi=Object.defineProperty,Ri=Object.getOwnPropertyDescriptor,Si=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ri(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&gi(e,n,r),r},Oe=(t,e)=>(n,o)=>e(n,o,t);const Ci="SHEET_WORKSHEET_PROTECTION_PLUGIN",fi="SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN";exports.WorksheetPermissionService=class extends s.RxDisposable{constructor(e,n,o,r,i,a,c){super(),this._permissionService=e,this._univerInstanceService=n,this._injector=o,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=c,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){const e=n=>{const o=n.getUnitId(),r=i=>{const a=i.getSheetId();[...Te(),...rt()].forEach(c=>{const u=new c(o,a);this._permissionService.addPermissionPoint(u)})};n.getSheets().forEach(i=>{r(i)}),n.sheetCreated$.subscribe(i=>{r(i)}),n.sheetDisposed$.subscribe(i=>{const a=i.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(o,a).forEach(u=>{[Ot,Dt].forEach(d=>{const l=new d(o,a,u.permissionId);this._permissionService.deletePermissionPoint(l.id)})}),[...Te(),...rt()].forEach(u=>{const d=new u(o,a);this._permissionService.deletePermissionPoint(d.id)})})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(n=>{e(n)}),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(n=>{n.getSheets().forEach(o=>{const r=n.getUnitId(),i=o.getSheetId();Te().forEach(a=>{const c=new a(r,i);this._permissionService.deletePermissionPoint(c.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":break;case"delete":{Te().forEach(n=>{const o=new n(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(o.id,!0)});break}case"set":{Te().forEach(n=>{const o=new n(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(o.id,e.rule)});break}}}))}_initRuleSnapshot(){const e=()=>{const o=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(o)},n=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:Ci,businesses:[yt.UNIVER_SHEET],onLoad:(o,r)=>{this._worksheetProtectionRuleModel.fromObject(r),Object.keys(r).forEach(i=>{Te().forEach(a=>{const c=new a(o,i);this._permissionService.addPermissionPoint(c)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:()=>{this._worksheetProtectionRuleModel.deleteUnitModel()}}))}_initPointSnapshot(){const e=()=>{const o=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(o)},n=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:fi,businesses:[yt.UNIVER_SHEET],onLoad:(o,r)=>{this._worksheetProtectionPointRuleModel.fromObject(r),Object.keys(r).forEach(i=>{rt().forEach(a=>{const c=new a(o,i);this._permissionService.addPermissionPoint(c)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}};exports.WorksheetPermissionService=Si([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetPermissionService),Oe(0,V.Inject(s.IPermissionService)),Oe(1,V.Inject(s.IUniverInstanceService)),Oe(2,V.Inject(V.Injector)),Oe(3,V.Inject(exports.WorksheetProtectionRuleModel)),Oe(4,V.Inject(exports.WorksheetProtectionPointModel)),Oe(5,V.Inject(s.IResourceManagerService)),Oe(6,V.Inject(exports.RangeProtectionRuleModel))],exports.WorksheetPermissionService);const wn={id:"sheet.mutation.set-worksheet-permission-points",type:s.CommandType.MUTATION,handler:(t,e)=>{const{rule:n}=e;return t.get(exports.WorksheetProtectionPointModel).addRule(n),!0}},kr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-permission-points",async handler(t,e){if(!e)return!1;const n=t.get(s.ICommandService),{rule:o}=e;return n.executeCommand(wn.id,{rule:o,unitId:o.unitId,subUnitId:o.subUnitId}),!0}},vi=(t,e)=>{const n=t.get(exports.RangeProtectionRuleModel),o=e.ruleIds.map(i=>n.getRule(e.unitId,e.subUnitId,i)).filter(i=>!!i);return{id:Ke.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:o}}},Ye={id:"sheet.mutation.delete-range-protection",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,ruleIds:r}=e,i=t.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.deleteRule(n,o,a)}),!0}},pi=t=>{const e={...t,ruleIds:t.rules.map(n=>n.id)};return{id:Ye.id,params:e}},Ke={id:"sheet.mutation.add-range-protection",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,rules:r}=e,i=t.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.addRule(n,o,a)}),!0}},yn={type:s.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(t,e){if(!e)return!1;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(exports.RangeProtectionRuleModel),{rule:i,permissionId:a}=e,{unitId:c,subUnitId:u,ranges:d,name:l,description:m}=i,h=[{ranges:d,permissionId:a,id:r.createRuleId(c,u),name:l,description:m,unitType:i.unitType,unitId:c,subUnitId:u}];if(await n.executeCommand(Ke.id,{unitId:c,subUnitId:u,rules:h})){const S=[{id:Ke.id,params:{unitId:c,subUnitId:u,rules:h}}],g=[{id:Ye.id,params:{unitId:c,subUnitId:u,ruleIds:h.map(f=>f.id)}}];o.pushUndoRedo({unitID:c,redoMutations:S,undoMutations:g})}return!0}},Nr={type:s.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(t,e){if(!e)return!1;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),{unitId:r,subUnitId:i,rule:a}=e,c={unitId:r,subUnitId:i,ruleIds:[a.id]};return await n.executeCommand(Ye.id,c)&&o.pushUndoRedo({unitID:r,redoMutations:[{id:Ye.id,params:c}],undoMutations:[{id:Ke.id,params:{unitId:r,subUnitId:i,rules:[a]}}]}),!0}},ee={id:"sheet.mutation.set-range-protection",type:s.CommandType.MUTATION,handler:(t,e)=>{const{unitId:n,subUnitId:o,rule:r,ruleId:i}=e;return t.get(exports.RangeProtectionRuleModel).setRule(n,o,i,r),!0}},Ii=(t,e)=>{const{unitId:n,subUnitId:o,ruleId:r}=e,a=t.get(exports.RangeProtectionRuleModel).getRule(n,o,r);return a?{id:ee.id,params:{...e,rule:a}}:null},_n={type:s.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(t,e){if(!e)return!1;const n=t.get(s.ICommandService),o=t.get(exports.RangeProtectionRuleModel),r=t.get(s.IUndoRedoService),{rule:i,permissionId:a,oldRule:c}=e,{unitId:u,subUnitId:d,ranges:l,name:m,description:h}=i;if(i.id){const R={unitId:u,subUnitId:d,ruleId:i.id,rule:{ranges:l,permissionId:a,id:o.createRuleId(u,d),name:m,description:h}};if(await n.executeCommand(ee.id,R)){const g=[{id:ee.id,params:R}],f=[{id:ee.id,params:{unitId:u,subUnitId:d,ruleId:i.id,rule:c}}];r.pushUndoRedo({unitID:u,redoMutations:g,undoMutations:f})}}return!0}},Or=t=>{const{order:e}=t,n={};return Object.keys(e).forEach(o=>{n[e[Number(o)]]=Number(o)}),{...t,order:n}},st={id:"sheet.mutation.reorder-range",type:s.CommandType.MUTATION,handler:(t,e)=>{const{subUnitId:n,unitId:o,range:r,order:i}=e,u=t.get(s.IUniverInstanceService).getUnit(o).getSheetBySheetId(n);if(!u)return!1;const d=new s.ObjectMatrix;s.Range.foreach(r,(m,h)=>{if(i.hasOwnProperty(m)){const R=i[m],S=s.Tools.deepClone(u.getCellRaw(R,h));d.setValue(m,h,S)}});const l=u.getCellMatrix();return d.forValue((m,h,R)=>{l.setValue(m,h,R)}),!0}},Dr="sheet.command.reorder-range",bn={id:Dr,type:s.CommandType.COMMAND,handler:(t,e)=>{var S,g;const{subUnitId:n,unitId:o,range:r,order:i}=e,a=t.get(s.ICommandService),c={id:st.id,params:{unitId:o,subUnitId:n,order:i,range:r}},u={id:st.id,params:Or(c.params)},l=t.get(exports.SheetInterceptorService).onCommandExecute({id:bn.id,params:e}),m=[...(S=l.preRedos)!=null?S:[],c,...l.redos],h=[...(g=l.preUndos)!=null?g:[],u,...l.undos];return s.sequenceExecute(m,a).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},xr="maxCellsPerSheet",Mi=3e6,Ar="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var wi=Object.defineProperty,yi=Object.getOwnPropertyDescriptor,_i=(t,e,n,o)=>{for(var r=o>1?void 0:o?yi(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&wi(e,n,r),r},zt=(t,e)=>(n,o)=>e(n,o,t);let vt=class extends s.Disposable{constructor(t,e,n){var r;super(),this._commandService=t,this._configService=e,this._dataSyncPrimaryController=n,[G,Me,Ie,De,xe,be,Pe,fe,we,Je,q,pn,H,In,bt,Ht,st,wr].forEach(i=>{var a;this._commandService.registerCommand(i),(a=this._dataSyncPrimaryController)==null||a.registerSyncingMutations(i)}),((r=this._configService.getConfig(Ar))!=null?r:!1)||[Ut,Zt,Tt,to,xt,At,dn,Rn,Bo,Fo,$e,Wt,Lt,Vo,Lo,Ve,jo,$t,kt,Vt,lt,ut,sn,bn,Jo,lr,cr,ur,Xo,er,Xe,Zo,Qo,an,He,Ge,_t,rr,or,ke,mr,ct,Sn,un,ze,qe,tr,sr,Ft,Bt,te,Rr,nt,ar,gr,hr,dr,Mn,jt,dt,ye,Cr,Ne,mn,fr,ot,gn,_e,Cn,Re,K,Pr,yr,_r,br,pr,kr,Ur,Tr,Er,wn,yn,Nr,_n,Ke,Ye,ee].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i))),this._configService.setConfig(xr,Mi)}};vt=_i([s.OnLifecycle(s.LifecycleStages.Starting,vt),zt(0,s.ICommandService),zt(1,s.IConfigService),zt(2,V.Optional(Kr.DataSyncPrimaryController))],vt);var bi=Object.defineProperty,Pi=Object.getOwnPropertyDescriptor,Ui=(t,e,n,o)=>{for(var r=o>1?void 0:o?Pi(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&bi(e,n,r),r},Fn=(t,e)=>(n,o)=>e(n,o,t);let pt=class extends s.Disposable{constructor(t,e){super(),this._univerInstanceService=t,this._commandService=e,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id!==ae.SetFormulaCalculationResultMutation.id)return;const e=t.params,{unitData:n}=e,o=Object.keys(n),r=[];return o.forEach(a=>{const c=n[a];if(c==null)return!0;Object.keys(c).forEach(d=>{const l=c[d];if(l==null)return!0;const m=this._getMergedCellData(a,d,l),h={subUnitId:d,unitId:a,cellValue:m};r.push({id:G.id,params:h})})}),r.every(a=>this._commandService.executeCommand(a.id,a.params,{onlyLocal:!0}))}))}_getMergedCellData(t,e,n){const o=this._univerInstanceService.getUniverSheetInstance(t),r=o==null?void 0:o.getStyles(),i=o==null?void 0:o.getSheetBySheetId(e),a=i==null?void 0:i.getCellMatrix(),c=new s.ObjectMatrix(n);return c.forValue((u,d,l)=>{const m=a==null?void 0:a.getValue(u,d),h=ae.handleNumfmtInCell(m,l,r);c.setValue(u,d,h)}),c.clone()}};pt=Ui([s.OnLifecycle(s.LifecycleStages.Ready,pt),Fn(0,V.Inject(s.IUniverInstanceService)),Fn(1,s.ICommandService)],pt);const T={MoveRangeCommandId:no,InsertRowCommandId:Wo,InsertColCommandId:$o,RemoveColCommandId:Ko,RemoveRowCommandId:Yo,DeleteRangeMoveLeftCommandId:Do,DeleteRangeMoveUpCommandId:xo,InsertRangeMoveDownCommandId:Ts,InsertRangeMoveRightCommandId:Ao,MoveColsCommandId:zo,MoveRowsCommandId:qo,ReorderRangeCommandId:Dr};var L=(t=>(t[t.Set=0]="Set",t[t.Delete=1]="Delete",t[t.HorizontalMove=2]="HorizontalMove",t[t.VerticalMove=3]="VerticalMove",t[t.Unknown=4]="Unknown",t))(L||{});const Rt=Number.MAX_SAFE_INTEGER,ve=t=>{const e={...t},n=Number.isNaN(e.startRow)&&Number.isNaN(e.endRow)&&!Number.isNaN(e.startColumn)&&!Number.isNaN(e.endColumn),o=Number.isNaN(e.startColumn)&&Number.isNaN(e.endColumn)&&!Number.isNaN(e.startRow)&&!Number.isNaN(e.endRow);return(e.rangeType===s.RANGE_TYPE.COLUMN||n)&&(e.startRow=0,e.endRow=Rt),(e.rangeType===s.RANGE_TYPE.ROW||o)&&(e.startColumn=0,e.endColumn=Rt),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=Rt,e.startRow=0,e.endRow=Rt),e},de=t=>{let e=t.rangeType;return t.rangeType===s.RANGE_TYPE.COLUMN?e=s.RANGE_TYPE.ROW:t.rangeType===s.RANGE_TYPE.ROW&&(e=s.RANGE_TYPE.COLUMN),{startRow:t.startColumn,endRow:t.endColumn,startColumn:t.startRow,endColumn:t.endRow,rangeType:e}},it=(t,e,n)=>{const o={...n},r={...e},i=(g,f)=>{const I=Math.max(g.start,f.start),v=Math.min(g.end,f.end);return v<I?null:{start:I,end:v}},a=g=>g.end-g.start+1,c=(g,f)=>({start:g.start-f.start,end:g.start-f.start+g.end-g.start}),u=(g,f)=>({start:f.start+g.start,end:f.start+g.start+g.end-g.start}),d=e.start>t.start;if(d){const g=Math.min(t.end,e.start)-t.start+1;r.start-=g,r.end-=g}const l=a(t),m=l,h=i(t,o),R=h&&a(h)>=a(o);if(t.end<o.start)o.start-=l,o.end-=l;else if(h){const g=a(h);if(R){const f=c(o,t),I=u(f,r);o.start=I.start,o.end=I.end}else h.start>t.start?d?(o.end-=g+l,o.start-=l):o.end-=g:d?o.end-=g:o.start>t.start&&o.end>t.end?(o.start-=l,o.end-=l+g):o.end-=g}const S=i(r,o);return R||(r.start<=o.start?(o.start+=m,o.end+=m):S&&(d?r.end<=o.start||r.start<=o.start&&r.end>=o.start?(o.start+=m,o.end+=m):r.start>=o.start&&r.start<=o.end&&(o.end+=m):o.start<r.start&&o.end>r.start?o.end+=m:(o.start>=r.end||o.start>=r.start&&o.start<=r.end)&&(o.end+=m,o.start+=m))),{step:o.start-n.start,length:a(o)-a(n)}},Pn=(t,e)=>{const{fromRange:n,toRange:o}=t.params||{};if(!o||!n)return[];const r=ve(n),i=ve(o),a=ve(e),c=it({start:r.startRow,end:r.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return c===null?[{type:L.Delete}]:[{type:L.VerticalMove,step:c.step||0,length:c.length||0}]},Ti=(t,e)=>{const{fromRange:n,toRange:o}=t.params||{};if(!n||!o)return[e];const r=n.startRow,i=n.endRow-n.startRow+1,a=o.startRow,c=new s.ObjectMatrix;return s.Range.foreach(e,(d,l)=>{c.setValue(d,l,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,d=>d===1)},Ei=(t,e)=>{const{range:n,order:o}=t.params||{};if(!n||!o)return[e];const r=new s.ObjectMatrix;s.Range.foreach(e,(c,u)=>{r.setValue(c,u,1)});const i=new s.ObjectMatrix;return s.Range.foreach(n,(c,u)=>{var d;if(o.hasOwnProperty(c)){const l=o[c],m=(d=r.getValue(l,u))!=null?d:0;i.setValue(c,u,m)}}),i.forValue((c,u,d)=>{r.setValue(c,u,d)}),s.queryObjectMatrix(r,c=>c===1)},Un=(t,e)=>{const{fromRange:n,toRange:o}=t.params||{};if(!o||!n)return[];const r=ve(n),i=ve(o),a=ve(e),c=it({start:r.startColumn,end:r.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return c===null?[{type:L.Delete}]:[{type:L.HorizontalMove,step:c.step||0,length:c.length||0}]},ki=(t,e)=>{const{fromRange:n,toRange:o}=t.params||{};if(!n||!o)return[e];const r=n.startColumn,i=n.endColumn-n.startColumn+1,a=o.startColumn,c=new s.ObjectMatrix;return s.Range.foreach(e,(u,d)=>{c.setValue(u,d,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Wr=(t,e)=>{var i,a;const n=(i=t.params)==null?void 0:i.toRange,o=(a=t.params)==null?void 0:a.fromRange;if(!n||!o)return[];const r=[];if(s.Rectangle.contains(n,e)&&r.push({type:L.Delete}),s.Rectangle.contains(o,e)){r.push({type:L.Delete});const c=s.Rectangle.getRelativeRange(e,o),u=s.Rectangle.getPositionRange(c,n);return[{type:L.Set,range:u}]}return r},Ni=(t,e)=>{var m,h;const n=(m=t.params)==null?void 0:m.toRange,o=(h=t.params)==null?void 0:h.fromRange;if(!n||!o)return[e];if(!s.Rectangle.intersects(o,e)&&!s.Rectangle.intersects(n,e))return[e];if(s.Rectangle.contains(o,e)){const R=s.Rectangle.getRelativeRange(e,o);return[s.Rectangle.getPositionRange(R,n)]}const r=new s.ObjectMatrix;s.Range.foreach(e,(R,S)=>{r.setValue(R,S,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(o,e);a&&s.Range.foreach(a,(R,S)=>{r.getValue(R,S)&&(r.setValue(R,S,void 0),i.setValue(R,S,1))});const c=n.startColumn-o.startColumn,u=n.startRow-o.startRow,d={startColumn:n.startColumn-c,endColumn:n.endColumn-c,startRow:n.startRow-u,endRow:n.endRow-u};return d&&s.Range.foreach(d,(R,S)=>{var I;const g=R+u,f=S+c;r.setValue(g,f,(I=i.getValue(R,S))!=null?I:0)}),s.queryObjectMatrix(r,R=>R===1)},Ae=(t,e)=>{const n=ve(t),o=ve(e),r=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(n.startRow<=o.startRow&&n.endRow>=o.endRow){if(o.startColumn<n.startColumn&&o.endColumn>=n.startColumn&&o.endColumn<=n.endColumn||o.startColumn<n.startColumn&&o.endColumn>=n.endColumn){const a=s.Rectangle.getIntersects(o,n);if(a)return{step:0,length:-r(a)}}if(o.startColumn>=n.startColumn&&o.endColumn<=n.endColumn&&i(n)>=i(o))return null;if(o.startColumn>=n.startColumn&&o.startColumn<=n.endColumn&&o.endColumn>n.endColumn){const a=s.Rectangle.getIntersects(o,n);if(a){const c=-r(a);return{step:-(r(n)-r(a)),length:c}}}if(o.startColumn>n.endColumn)return{step:-r(n),length:0}}return{step:0,length:0}},Tn=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=Ae(n,e);if(!r)o.push({type:L.Delete});else{const{step:a,length:c}=r;o.push({type:L.HorizontalMove,step:a,length:c})}return o},En=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=Ae(de(n),de(e));if(!r)o.push({type:L.Delete});else{const{step:a,length:c}=r;o.push({type:L.VerticalMove,step:a,length:c})}return o},Oi=(t,e)=>{const{range:n,order:o}=t.params||{};if(!n||!o)return[];if(s.Rectangle.contains(n,e)&&e.endRow===e.startRow){const r=[],i=e.startRow;for(const a in o)if(o[a]===i){const c=Number(a);return r.push({type:L.VerticalMove,step:c-i,length:0}),r}return[]}return[]},We=(t,e)=>{const n=ve(t),o=ve(e),r=i=>i.endColumn-i.startColumn+1;if(n.startRow<=o.startRow&&n.endRow>=o.endRow){if(o.startColumn<n.startColumn&&o.endColumn>=n.startColumn&&o.endColumn<=n.endColumn||o.startColumn<n.startColumn&&o.endColumn>=n.endColumn)return{step:0,length:r(n)};if(o.startColumn>=n.startColumn&&o.endColumn<=n.endColumn||o.startColumn>n.startColumn&&o.startColumn<=n.endColumn&&o.endColumn>n.endColumn||o.startColumn>=n.endColumn)return{step:r(n),length:0}}return{step:0,length:0}};function Di(t,e,n){const o=[];if(s.Rectangle.contains(e,n)&&o.push({type:L.Delete}),s.Rectangle.contains(t,n)){o.push({type:L.Delete});const r=s.Rectangle.getRelativeRange(n,t),i=s.Rectangle.getPositionRange(r,e);return[{type:L.Set,range:i}]}return o}const kn=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=We(de(n),de(e)),{step:i,length:a}=r;return o.push({type:L.VerticalMove,step:i,length:a}),o},Nn=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=We(n,e),{step:i,length:a}=r;return o.push({type:L.HorizontalMove,step:i,length:a}),o},Lr=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=We(de(n),de(e)),{step:i,length:a}=r;return o.push({type:L.VerticalMove,step:i,length:a}),o},xi=(t,e)=>{var u;const n=(u=t.params)==null?void 0:u.range;if(!n)return[e];const o=n.endRow-n.startRow+1,r={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(d=>{s.Range.foreach(d,(l,m)=>{c.setValue(l,m,1)})}),a&&s.Range.foreach(a,(d,l)=>{c.setValue(d+o,l,1)}),s.queryObjectMatrix(c,d=>d===1)},Vr=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=We(n,e),{step:i,length:a}=r;return o.push({type:L.HorizontalMove,step:i,length:a}),o},Ai=(t,e)=>{var u;const n=(u=t.params)==null?void 0:u.range;if(!n)return[e];const o=n.endColumn-n.startColumn+1,r={...n,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(d=>{s.Range.foreach(d,(l,m)=>{c.setValue(l,m,1)})}),a&&s.Range.foreach(a,(d,l)=>{c.setValue(d,l+o,1)}),s.queryObjectMatrix(c,d=>d===1)},$r=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=Ae(n,e);if(!r)o.push({type:L.Delete});else{const{step:a,length:c}=r;o.push({type:L.HorizontalMove,step:a,length:c})}return o},Wi=(t,e)=>{var d;const n=(d=t.params)==null?void 0:d.range;if(!n)return[e];const o={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},r=n.endColumn-n.startColumn+1,i=s.Rectangle.getIntersects(n,e),a=s.Rectangle.subtract(e,o),c=s.Rectangle.getIntersects(o,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(l,m)=>{u.setValue(l,m-r,1)}),i&&s.Range.foreach(i,(l,m)=>{u.setValue(l,m-r,0)}),a.forEach(l=>{s.Range.foreach(l,(m,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,l=>l===1)},Fr=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=Ae(de(n),de(e));if(!r)o.push({type:L.Delete});else{const{step:a,length:c}=r;o.push({type:L.VerticalMove,step:a,length:c})}return o},Li=(t,e)=>{var d;const n=(d=t.params)==null?void 0:d.range;if(!n)return[e];const o={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},r=n.endRow-n.startRow+1,i=s.Rectangle.getIntersects(n,e),a=s.Rectangle.subtract(e,o),c=s.Rectangle.getIntersects(o,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(l,m)=>{u.setValue(l-r,m,1)}),i&&s.Range.foreach(i,(l,m)=>{u.setValue(l-r,m,0)}),a.forEach(l=>{s.Range.foreach(l,(m,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,l=>l===1)},Le=(t,e)=>{let n={...e};return t.forEach(o=>{switch(o.type){case L.Delete:{n=null;break}case L.HorizontalMove:{if(!n)return;n.startColumn+=o.step,n.endColumn+=o.step+(o.length||0);break}case L.VerticalMove:{if(!n)return;n.startRow+=o.step,n.endRow+=o.step+(o.length||0);break}case L.Set:{n=o.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Br=(t,e)=>{let n=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:{n=$r(e,t);break}case T.DeleteRangeMoveUpCommandId:{n=Fr(e,t);break}case T.InsertColCommandId:{n=Nn(e,t);break}case T.InsertRangeMoveDownCommandId:{n=Lr(e,t);break}case T.InsertRangeMoveRightCommandId:{n=Vr(e,t);break}case T.InsertRowCommandId:{n=kn(e,t);break}case T.MoveColsCommandId:{n=Un(e,t);break}case T.MoveRangeCommandId:{n=Wr(e,t);break}case T.MoveRowsCommandId:{n=Pn(e,t);break}case T.RemoveColCommandId:{n=Tn(e,t);break}case T.RemoveRowCommandId:{n=En(e,t);break}case T.ReorderRangeCommandId:{n=Oi(e,t);break}}return Le(n,t)},Vi=(t,e,n)=>Bi(e,n).some(r=>s.Rectangle.intersects(r,t))?Br(t,e):t,$i=(t,e)=>{let n=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:return Wi(e,t);case T.DeleteRangeMoveUpCommandId:return Li(e,t);case T.InsertRangeMoveDownCommandId:return xi(e,t);case T.InsertRangeMoveRightCommandId:return Ai(e,t);case T.InsertColCommandId:{n=Nn(e,t);break}case T.InsertRowCommandId:{n=kn(e,t);break}case T.MoveColsCommandId:return ki(e,t);case T.MoveRangeCommandId:return Ni(e,t);case T.MoveRowsCommandId:return Ti(e,t);case T.ReorderRangeCommandId:return Ei(e,t);case T.RemoveColCommandId:{n=Tn(e,t);break}case T.RemoveRowCommandId:{n=En(e,t);break}}return Le(n,t)};function Fi(t,e){const{id:n,params:o}=e;let r={length:0,step:0,type:L.Unknown};switch(n){case Je.id:r.type=L.Delete;break;case be.id:r=it({start:o.sourceRange.startRow,end:o.sourceRange.endRow},{start:o.targetRange.startRow,end:o.targetRange.endRow},{start:t.startRow,end:t.endRow}),r.type=L.VerticalMove;break;case Pe.id:r=it({start:o.sourceRange.startColumn,end:o.sourceRange.endColumn},{start:o.targetRange.startColumn,end:o.targetRange.endColumn},{start:t.startColumn,end:t.endColumn}),r.type=L.HorizontalMove;break;case fe.id:r=Ae(o.range,t),r?r.type=L.HorizontalMove:r={step:0,length:0,type:L.Delete};break;case we.id:r=Ae(de(o.range),de(t)),r?r.type=L.VerticalMove:r={step:0,length:0,type:L.Delete};break;case Ie.id:r=We(de(o.range),de(t)),r.type=L.VerticalMove;break;case Me.id:r=We(o.range,t),r.type=L.HorizontalMove;break;case xe.id:r=Di(new s.ObjectMatrix(o.from).getRange(),new s.ObjectMatrix(o.to).getRange(),t);break}return r?Array.isArray(r)?Le(r,t):Le([r],t):t}function Bi(t,e){var o,r,i,a;const{selectionManagerService:n}=e;switch(t.id){case T.MoveColsCommandId:{const c=t.params;return[c.fromRange,{...c.toRange,startColumn:c.toRange.startColumn-.5,endColumn:c.toRange.endColumn-.5}]}case T.MoveRowsCommandId:{const c=t.params;return[c.fromRange,{...c.toRange,startRow:c.toRange.startRow-.5,endRow:c.toRange.startRow-.5}]}case T.MoveRangeCommandId:{const c=t;return[c.params.fromRange,c.params.toRange]}case T.InsertRowCommandId:{const u=t.params.range;return[{...u,startRow:u.startRow-.5,endRow:u.endRow-.5}]}case T.InsertColCommandId:{const u=t.params.range;return[{...u,startColumn:u.startColumn-.5,endColumn:u.endColumn-.5}]}case T.RemoveRowCommandId:return[t.params.range];case T.RemoveColCommandId:return[t.params.range];case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const u=((o=t.params)==null?void 0:o.range)||((r=n.getSelectionRanges())==null?void 0:r[0]);return u?[u]:[]}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const u=((i=t.params)==null?void 0:i.range)||((a=n.getSelectionRanges())==null?void 0:a[0]);return u?[u]:[]}case T.ReorderRangeCommandId:{const c=t,{range:u,order:d}=c.params,l=[];for(let m=u.startRow;m<=u.endRow;m++)m in d&&l.push({startRow:m,endRow:m,startColumn:u.startColumn,endColumn:u.endColumn});return l}}}function ji(t){switch(t.id){case Pe.id:{const e=t.params;return[e.sourceRange,{...e.targetRange,startColumn:e.targetRange.startColumn-.5,endColumn:e.targetRange.startColumn-.5}]}case be.id:{const e=t.params;return[e.sourceRange,{...e.targetRange,startRow:e.targetRange.startRow-.5,endRow:e.targetRange.startRow-.5}]}case xe.id:{const e=t.params;return[new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange()]}case Me.id:{const n=t.params.range;return[{...n,startColumn:n.startColumn-.5,endColumn:n.startColumn-.5}]}case Ie.id:{const n=t.params.range;return[{...n,startRow:n.startRow-.5,endRow:n.startRow-.5}]}case fe.id:return[t.params.range];case we.id:return[t.params.range]}}var Hi=Object.defineProperty,Gi=Object.getOwnPropertyDescriptor,qi=(t,e,n,o)=>{for(var r=o>1?void 0:o?Gi(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&Hi(e,n,r),r},St=(t,e)=>(n,o)=>e(n,o,t);const zi=s.createInterceptorKey("MERGE_REDO"),Yi=s.createInterceptorKey("MERGE_UNDO"),Bn=Math.floor(Number.MAX_SAFE_INTEGER/10);class Ki extends s.Disposable{constructor(e,n,o,r,i=!1){super(),this._unitId=e,this._subUnitId=n,this._range=o,this._callback=r,this._skipIntersects=i}onMutation(e){var r,i;if(((r=e.params)==null?void 0:r.unitId)!==this._unitId||((i=e.params)==null?void 0:i.subUnitId)!==this._subUnitId||!this._range)return;if(this._skipIntersects){const a=ji(e);if(a!=null&&a.some(c=>s.Rectangle.intersects(c,this._range)))return!1}const n=Fi(this._range,e);if(n&&s.Rectangle.equals(n,this._range))return!1;const o=this._range;this._range=n,this._callback(o,n)}}exports.RefRangeService=class extends s.Disposable{constructor(n,o,r,i){super();C(this,"interceptor",new s.InterceptorManager({MERGE_REDO:zi,MERGE_UNDO:Yi}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",Ji());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=jn(this._univerInstanceService),i=Hn(this._univerInstanceService);if(!o||!r||!i)return{redos:[],undos:[],preRedos:[],preUndos:[]};const u=((()=>{switch(n.id){case T.MoveColsCommandId:{const R=n.params,S=Math.min(R.fromRange.startColumn,R.toRange.startColumn);return this._checkRange([{...R.fromRange,startColumn:S,endColumn:o.getColumnCount()-1}],r,i)}case T.MoveRowsCommandId:{const R=n.params,S=Math.min(R.fromRange.startRow,R.toRange.startRow);return this._checkRange([{...R.fromRange,startRow:S,endRow:o.getRowCount()-1}],r,i)}case T.MoveRangeCommandId:{const R=n;return this._checkRange([R.params.fromRange,R.params.toRange],r,i)}case T.InsertRowCommandId:{const g={startRow:n.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([g],r,i)}case T.InsertColCommandId:{const S=n.params.range.startColumn,g={startRow:0,endRow:o.getRowCount()-1,startColumn:S,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([g],r,i)}case T.RemoveRowCommandId:{const g={startRow:n.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([g],r,i)}case T.RemoveColCommandId:{const S=n.params.range.startColumn,g={startRow:0,endRow:o.getRowCount()-1,startColumn:S,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([g],r,i)}case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const S=n.params.range||Gn(this._selectionManagerService)[0],g={startRow:S.startRow,startColumn:S.startColumn,endColumn:S.endColumn,endRow:Bn};return this._checkRange([g],r,i)}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const S=n.params.range||Gn(this._selectionManagerService)[0],g={startRow:S.startRow,startColumn:S.startColumn,endColumn:Bn,endRow:S.endRow};return this._checkRange([g],r,i)}case T.ReorderRangeCommandId:{const R=n,{range:S,order:g}=R.params,f=[];for(let I=S.startRow;I<=S.endRow;I++)I in g&&f.push({startRow:I,endRow:I,startColumn:S.startColumn,endColumn:S.endColumn});return this._checkRange(f,r,i)}}})()||[]).reduce((R,S)=>{const g=S(n);return R.push(g),R},[]).reduce((R,S)=>{var g,f;return R.redos.push(...S.redos),R.undos.push(...S.undos),R.preRedos.push(...(g=S.preRedos)!=null?g:[]),R.preUndos.push(...(f=S.preUndos)!=null?f:[]),R},{redos:[],undos:[],preUndos:[],preRedos:[]}),d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],h=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:l,undos:h,preRedos:d,preUndos:m}}})});C(this,"_checkRange",(n,o,r)=>{const i=qn(o,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(d=>{const l=a.get(d),m=this._serializer.deserialize(d),h={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn,rangeType:m.rangeType&&+m.rangeType};n.some(R=>s.Rectangle.intersects(R,h))&&l&&l.forEach(R=>{c.add(R)})}),[...c]}return[]});C(this,"registerRefRange",(n,o,r,i)=>{const a=r||jn(this._univerInstanceService),c=i||Hn(this._univerInstanceService);if(!a||!c)return s.toDisposable(()=>{});const u=qn(a,c),d=this._serializer.serialize(n);let l=this._refRangeManagerMap.get(u);l||(l=new Map,this._refRangeManagerMap.set(u,l));const m=l.get(d);return m?m.add(o):l.set(d,new Set([o])),s.toDisposable(()=>{const h=l.get(d);h&&(h.delete(o),h.size||(l.delete(d),l.size||this._refRangeManagerMap.delete(u)))})});this._commandService=n,this._sheetInterceptorService=o,this._univerInstanceService=r,this._selectionManagerService=i,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}watchRange(n,o,r,i,a){let c;this._watchRanges.size===0&&(c=this._commandService.onCommandExecuted(m=>{if(m.type!==s.CommandType.MUTATION)return!1;for(const h of this._watchRanges)h.onMutation(m)}));const u=new Ki(n,o,r,i,a);this._watchRanges.add(u);const d=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(c==null||c.dispose(),c=null)}),l=this.disposeWithMe(d);return s.toDisposable(()=>{l.dispose(),d.dispose()})}};exports.RefRangeService=qi([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),St(0,s.ICommandService),St(1,V.Inject(exports.SheetInterceptorService)),St(2,V.Inject(s.IUniverInstanceService)),St(3,V.Inject(exports.SelectionManagerService))],exports.RefRangeService);function jn(t){return t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Hn(t){var e;return(e=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:e.getSheetId()}function Gn(t){return t.getSelectionRanges()||[]}function qn(t,e){return`${t}_${e}`}function Ji(){const t=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:n=>{const o=t.reduce((i,a,c)=>(i[String(c)]=a,i),{});return n.split(e).reduce((i,a,c)=>{const u=String(c);return a&&o[u]&&(i[o[u]]=a),i},{})},serialize:n=>t.reduce((o,r,i)=>{const a=n[r];return a!==void 0?`${o}${i>0?e:""}${a}`:`${o}`},"")}}var Xi=Object.defineProperty,Zi=Object.getOwnPropertyDescriptor,Qi=(t,e,n,o)=>{for(var r=o>1?void 0:o?Zi(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&Xi(e,n,r),r},je=(t,e)=>(n,o)=>e(n,o,t);const ea=[Me.id,Ie.id,fe.id,we.id],ta=[be.id,Pe.id];function On(t,e){let n=t;if(e!==void 0){const o=[];for(let r=0;r<n.length;r++){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=n[r];if(e===s.Dimension.ROWS)for(let d=i;d<=a;d++){const l={startRow:d,endRow:d,startColumn:c,endColumn:u};o.push(l)}else if(e===s.Dimension.COLUMNS)for(let d=c;d<=u;d++){const l={startRow:i,endRow:a,startColumn:d,endColumn:d};o.push(l)}}n=o}return n}exports.MergeCellController=class extends s.Disposable{constructor(n,o,r,i,a,c){super();C(this,"disposableCollection",new s.DisposableCollection);this._commandService=n,this._refRangeService=o,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case Ut.id:case Tt.id:{const r=n._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),i=r.getUnitId(),a=r.getActiveSheet();if(!a)return{redos:[],undos:[]};const c=a.getSheetId(),u=a.getConfig().mergeData,d=n._selectionManagerService.getSelectionRanges();if(d&&d.length>0&&d.some(m=>u.some(h=>s.Rectangle.intersects(h,m)))){const m={unitId:i,subUnitId:c,ranges:d},h=ie(n._injector,m),R=[{id:q.id,params:m}],S=[{id:H.id,params:h}];return{redos:R,undos:S}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,o,r){switch(n.id){case T.MoveColsCommandId:{const i=n.params;return this._handleMoveColsCommand(i,o,r)}case T.MoveRowsCommandId:{const i=n.params;return this._handleMoveRowsCommand(i,o,r)}case Ve.id:{const i=n.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case $e.id:{const i=n.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case lt.id:{const i=n.params;return this._handleRemoveColCommand(i,o,r)}case ut.id:{const i=n.params;return this._handleRemoveRowCommand(i,o,r)}case kt.id:{const i=n.params;return this._handleMoveRangeCommand(i,o,r)}case Lt.id:{const i=n.params;return this._handleInsertRangeMoveRightCommand(i,o,r)}case Wt.id:{const i=n.params;return this._handleInsertRangeMoveDownCommand(i,o,r)}case At.id:{const i=n.params;return this._handleDeleteRangeMoveUpCommand(i,o,r)}case xt.id:{const i=n.params;return this._handleDeleteRangeMoveLeftCommand(i,o,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const n=(r,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(r);if(!a)return;const c=a==null?void 0:a.getSheetBySheetId(i);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),d=l=>this.refRangeHandle(l,r,i);u.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,d,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===jt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;n(c,a)}if(r.id===H.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;n(i.unitId,i.subUnitId)}}));const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(o){const r=o.getActiveSheet();if(!r)return;n(o.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:o,subUnitId:r,ranges:[]},d={unitId:o,subUnitId:r,ranges:[]},{fromRange:l}=n,{startRow:m,endRow:h}=l;if(c.forEach(g=>{if(m<=g.startRow&&h>=g.endRow){u.ranges.push(g);const f=Pn({id:T.MoveRowsCommandId,params:n},g),I=Le(f,g);I&&d.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ie(this._injector,u),S=ge(this._injector,d);return{redos:[{id:q.id,params:u},{id:H.id,params:d}],undos:[{id:q.id,params:S},{id:H.id,params:R}]}}_handleMoveColsCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:o,subUnitId:r,ranges:[]},d={unitId:o,subUnitId:r,ranges:[]},{fromRange:l}=n,{startColumn:m,endColumn:h}=l;if(c.forEach(g=>{if(m<=g.startColumn&&h>=g.endColumn){u.ranges.push(g);const f=Un({id:T.MoveColsCommandId,params:n},g),I=Le(f,g);I&&d.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ie(this._injector,u),S=ge(this._injector,d);return{redos:[{id:q.id,params:u},{id:H.id,params:d}],undos:[{id:q.id,params:S},{id:H.id,params:R}]}}_handleMoveRangeCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const c=a.getMergeData(),u=c.filter(S=>s.Rectangle.intersects(S,n.fromRange)),d=c.filter(S=>s.Rectangle.intersects(S,n.toRange)),l=u.map(S=>s.Rectangle.getRelativeRange(S,n.fromRange)).map(S=>s.Rectangle.getPositionRange(S,n.toRange)),m=On(l).filter(S=>!c.some(g=>s.Rectangle.equals(S,g))),h=[{id:q.id,params:{unitId:o,subUnitId:r,ranges:u}},{id:q.id,params:{unitId:o,subUnitId:r,ranges:d}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:m}}],R=[{id:q.id,params:{unitId:o,subUnitId:r,ranges:m}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:d}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:u}}];return{redos:h,undos:R}}_handleInsertRowCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const{range:c}=n,{startRow:u,endRow:d}=c,l=s.Tools.deepClone(a.getMergeData()).reduce((v,p)=>(u>p.startRow&&u<=p.endRow&&v.push(p),v),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((v,p)=>{if(u>p.startRow&&u<=p.endRow){const M=d-u+1;p.endRow+=M,this._checkIsMergeCell(p)&&v.push(p)}return v},[]),h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S),f=[{id:q.id,params:h},{id:H.id,params:S}],I=[{id:q.id,params:g},{id:H.id,params:R}];return{redos:f,undos:I}}_handleInsertColCommand(n,o,r){const{range:i}=n,a=Se(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Ce(a,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:d}=i,l=s.Tools.deepClone(c.getMergeData()).reduce((v,p)=>(u>p.startColumn&&u<=p.endColumn&&v.push(p),v),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((v,p)=>{if(u>p.startColumn&&u<=p.endColumn){const M=d-u+1;p.endColumn+=M,this._checkIsMergeCell(p)&&v.push(p)}return v},[]),h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S),f=[{id:q.id,params:h},{id:H.id,params:S}],I=[{id:q.id,params:g},{id:H.id,params:R}];return{redos:f,undos:I}}_handleRemoveColCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const{range:c}=n,{startColumn:u,endColumn:d}=c,l=s.Tools.deepClone(a.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(c,w)&&M.push(w),M),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((M,w)=>{if(s.Rectangle.intersects(c,w)){if(u<=w.startColumn&&d>=w.endColumn)return M;u>=w.startColumn&&d<=w.endColumn?w.endColumn-=d-u+1:u<w.startColumn?(w.startColumn=u,w.endColumn-=d-u+1):d>w.endColumn&&(w.endColumn=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S),f=[{id:q.id,params:h}],I=[{id:H.id,params:S}],v=[{id:q.id,params:g}],p=[{id:H.id,params:R}];return{preUndos:v,undos:p,preRedos:f,redos:I}}_handleRemoveRowCommand(n,o,r){const{range:i}=n,a=Se(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Ce(a,r);if(!c)return this._handleNull();const{startRow:u,endRow:d}=i,l=s.Tools.deepClone(c.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(i,w)&&M.push(w),M),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((M,w)=>{if(s.Rectangle.intersects(i,w)){if(u<=w.startRow&&d>=w.endRow)return M;u>=w.startRow&&d<=w.endRow?w.endRow-=d-u+1:u<w.startRow?(w.startRow=u,w.endRow-=d-u+1):d>w.endRow&&(w.endRow=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S),f=[{id:q.id,params:h}],I=[{id:H.id,params:S}],v=[{id:q.id,params:g}],p=[{id:H.id,params:R}];return{preUndos:v,undos:p,preRedos:f,redos:I}}_handleInsertRangeMoveRightCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxColumns()-1,d=a.getMergeData(),l=[],m=[];d.forEach(f=>{const{startRow:I,endRow:v,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:v,endColumn:u},f)&&(l.push(f),s.Rectangle.contains({startRow:I,startColumn:p,endRow:v,endColumn:u},f))){const P=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn+P,endRow:f.endRow,endColumn:f.endColumn+P})}});const h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S);return{redos:[{id:q.id,params:h},{id:H.id,params:S}],undos:[{id:H.id,params:R},{id:q.id,params:g}]}}_handleInsertRangeMoveDownCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxRows()-1,d=a.getMergeData(),l=[],m=[];d.forEach(v=>{const{startRow:p,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:w},v)&&(l.push(v),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:w},v))){const E=y-p+1;m.push({startRow:v.startRow+E,startColumn:v.startColumn,endRow:v.endRow+E,endColumn:v.endColumn})}});const h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S),f=[{id:q.id,params:h},{id:H.id,params:S}],I=[{id:H.id,params:R},{id:q.id,params:g}];return{redos:f,undos:I}}_handleDeleteRangeMoveUpCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxRows()-1,d=a.getMergeData(),l=[],m=[];d.forEach(v=>{const{startRow:p,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:w},v)&&(l.push(v),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:w},v))){const E=y-p+1,O=s.Rectangle.moveVertical(v,-E);m.push(O)}});const h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S),f=[{id:q.id,params:h},{id:H.id,params:S}],I=[{id:H.id,params:R},{id:q.id,params:g}];return{redos:f,undos:I}}_handleDeleteRangeMoveLeftCommand(n,o,r){const i=Se(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Ce(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxColumns()-1,d=a.getMergeData(),l=[],m=[];d.forEach(f=>{const{startRow:I,endRow:v,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:v,endColumn:u},f)&&(l.push(f),s.Rectangle.contains({startRow:I,startColumn:p,endRow:v,endColumn:u},f))){const P=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn-P,endRow:f.endRow,endColumn:f.endColumn-P})}});const h={unitId:o,subUnitId:r,ranges:l},R=ie(this._injector,h),S={unitId:o,subUnitId:r,ranges:m},g=ge(this._injector,S);return{redos:[{id:q.id,params:h},{id:H.id,params:S}],undos:[{id:H.id,params:R},{id:q.id,params:g}]}}_checkIsMergeCell(n){return!(n.startRow===n.endRow&&n.startColumn===n.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(ta.includes(n.id)){if(!n.params)return;const o=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!o)return;const r=o.getSheetBySheetId(n.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=n.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=c?i.startRow:i.startColumn,l=c?a.startRow:a.startColumn,m=r.getConfig().mergeData,h=[];m.forEach(f=>{let{startRow:I,endRow:v,startColumn:p,endColumn:M,rangeType:w}=f;s.Rectangle.intersects(f,i)||(c?d<I&&l>v?(I-=u,v-=u):d>v&&l<=I&&(I+=u,v+=u):d<p&&l>M?(p-=u,M-=u):d>M&&l<=p&&(p+=u,M+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||h.push({startRow:I,endRow:v,startColumn:p,endColumn:M,rangeType:w})}),r.getConfig().mergeData=h,this.disposableCollection.dispose();const{unitId:R,subUnitId:S}=n.params,g=f=>this.refRangeHandle(f,R,S);h.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,g,R,S))})}if(ea.includes(n.id)){const o=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!o)return;const r=o.getSheetBySheetId(n.params.subUnitId);if(!r)return;const i=r.getConfig().mergeData,a=n.params;if(!a)return;const{range:c}=a,u=n.id.includes("row"),d=n.id.includes("insert"),l=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,h=m-l+1,R=[];i.forEach(I=>{let{startRow:v,endRow:p,startColumn:M,endColumn:w,rangeType:y}=I;d?u?l<=v&&(v+=h,p+=h):l<=M&&(M+=h,w+=h):u?m<v&&(v-=h,p-=h):m<M&&(M-=h,w-=h),I.startRow===I.endRow&&I.startColumn===I.endColumn||R.push({startRow:v,endRow:p,startColumn:M,endColumn:w,rangeType:y})}),r.getConfig().mergeData=R,this.disposableCollection.dispose();const{unitId:S,subUnitId:g}=n.params,f=I=>this.refRangeHandle(I,S,g);R.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,f,S,g))})}}))}};exports.MergeCellController=Qi([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),je(0,V.Inject(s.ICommandService)),je(1,V.Inject(exports.RefRangeService)),je(2,V.Inject(s.IUniverInstanceService)),je(3,V.Inject(V.Injector)),je(4,V.Inject(exports.SheetInterceptorService)),je(5,V.Inject(exports.SelectionManagerService))],exports.MergeCellController);function Se(t,e){return e?t.getUniverSheetInstance(e):t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function Ce(t,e){return e?t.getSheetBySheetId(e):t.getActiveSheet()}var na=Object.defineProperty,oa=Object.getOwnPropertyDescriptor,ra=(t,e,n,o)=>{for(var r=o>1?void 0:o?oa(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&na(e,n,r),r},Yt=(t,e)=>(n,o)=>e(n,o,t);exports.NumfmtService=class extends s.Disposable{constructor(e,n,o){super(),this._resourceManagerService=e,this._univerInstanceService=n,this._logService=o}getValue(e,n,o,r){const i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;const c=i.getStyles(),u=a.getCellRaw(o,r);if(u!=null&&u.s){const d=c.get(u.s);if(d!=null&&d.n)return d.n}return null}deleteValues(e,n,o){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(n);if(!i)return;const a=r.getStyles();o.forEach(c=>{s.Range.foreach(c,(u,d)=>{const l=i.getCellRaw(u,d);if(!l)return;const m=l==null?void 0:l.s,R={...m&&a.get(m)||{}};delete R.n;const S=a.setValue(R);l.s=S})})}setValues(e,n,o){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(n);if(!i)return;const a=r.getStyles(),c=i.getCellMatrix();o.forEach(u=>{u.ranges.forEach(d=>{s.Range.foreach(d,(l,m)=>{const h=i.getCellRaw(l,m);if(h){const S={...h.s&&a.get(h.s)||{},n:{pattern:u.pattern}},g=a.setValue(S);h.s=g}else{const R={n:{pattern:u.pattern}},S=a.setValue(R);S&&c.setValue(l,m,{s:S})}})})})}};exports.NumfmtService=ra([Yt(0,s.IResourceManagerService),Yt(1,s.IUniverInstanceService),Yt(2,s.ILogService)],exports.NumfmtService);const Xt=()=>[po,Mo,vo,To,ko,wo,Oo,Uo,_o,Po,bo,Io,Eo,yo,No],sa=[_.Edit,_.Print,_.Comment,_.View,_.Copy,_.Export,_.ManageCollaborator,_.CreateSheet,_.DeleteSheet,_.RenameSheet,_.HideSheet,_.Duplicate,_.Share,_.MoveSheet,_.CopySheet];var ia=Object.defineProperty,aa=Object.getOwnPropertyDescriptor,ca=(t,e,n,o)=>{for(var r=o>1?void 0:o?aa(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ia(e,n,r),r},Kt=(t,e)=>(n,o)=>e(n,o,t);exports.WorkbookPermissionService=class extends s.Disposable{constructor(e,n,o){super(),this._permissionService=e,this._univerInstanceService=n,this._rangeProtectionRuleModel=o,this._init()}_init(){const e=n=>{const o=n.getUnitId();Xt().forEach(r=>{const i=new r(o);this._permissionService.addPermissionPoint(i)})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(n=>{e(n)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{e(n)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{const o=n.getUnitId();n.getSheets().forEach(r=>{const i=r.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(o,i).forEach(c=>{[Ot,Dt].forEach(u=>{const d=new u(o,i,c.permissionId);this._permissionService.deletePermissionPoint(d.id)})}),[...Te(),...rt()].forEach(c=>{const u=new c(o,i);this._permissionService.deletePermissionPoint(u.id)})}),Xt().forEach(r=>{const i=new r(o);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=ca([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorkbookPermissionService),Kt(0,V.Inject(s.IPermissionService)),Kt(1,V.Inject(s.IUniverInstanceService)),Kt(2,V.Inject(exports.RangeProtectionRuleModel))],exports.WorkbookPermissionService);var ua=Object.defineProperty,la=Object.getOwnPropertyDescriptor,da=(t,e,n,o)=>{for(var r=o>1?void 0:o?la(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ua(e,n,r),r},zn=(t,e)=>(n,o)=>e(n,o,t);const ma="SHEET_DEFINED_NAME_PLUGIN";exports.DefinedNameDataController=class extends s.Disposable{constructor(e,n){super(),this._definedNamesService=e,this._resourceManagerService=n,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const e=o=>{const r=this._definedNamesService.getDefinedNameMap(o);return r?JSON.stringify(r):""},n=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:ma,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>e(o),parseJson:o=>n(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,r)=>{this._definedNamesService.registerDefinedNames(o,r)}}))}};exports.DefinedNameDataController=da([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),zn(0,ae.IDefinedNamesService),zn(1,s.IResourceManagerService)],exports.DefinedNameDataController);const Ee=()=>[Dt,Ot],ha=(t="unitId",e="subUnitId",n="permissionId")=>Ee().reduce((o,r)=>{const i=new r(t,e,n);return o[i.subType]=i.value,o},{});var ga=Object.defineProperty,Ra=Object.getOwnPropertyDescriptor,Sa=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ra(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ga(e,n,r),r},Yn=(t,e)=>(n,o)=>e(n,o,t);exports.RangeProtectionRenderModel=class{constructor(e,n){C(this,"_cache",new s.LRUMap(1e4));this._selectionProtectionRuleModel=e,this._permissionService=n,this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(et.filter(e=>e.type===D.SelectRange),et.filter(e=>Ee().some(n=>e instanceof n)),et.map(e=>e)).subscribe(e=>{const n=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(const o of n)o.permissionId===e.permissionId&&o.ranges.forEach(r=>{s.Range.foreach(r,(i,a)=>{const c=this._createKey(e.unitId,e.subUnitId,i,a);this._cache.delete(c)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{var n;e.rule.ranges.forEach(o=>{s.Range.foreach(o,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}),e.type==="set"&&((n=e.oldRule)==null||n.ranges.forEach(o=>{s.Range.foreach(o,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}))})}_createKey(e,n,o,r){return`${e}_${n}_${o}_${r}`}getCellInfo(e,n,o,r){const i=this._createKey(e,n,o,r),a=this._cache.get(i);if(a)return a;const c=this._selectionProtectionRuleModel.getSubunitRuleList(e,n),u=[];if(!c||!c.length)return u;const d=[];for(const l of c)if(l.ranges.some(m=>m.startRow<=o&&m.endRow>=o&&m.startColumn<=r&&m.endColumn>=r)){const m=Ee().reduce((h,R)=>{var f;const S=new R(e,n,l.permissionId),g=this._permissionService.getPermissionPoint(S.id);return h[S.subType]=(f=g==null?void 0:g.value)!=null?f:S.value,h},{});d.push({...m,ruleId:l.id,ranges:l.ranges})}return this._cache.set(i,d),d}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=Sa([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),Yn(0,V.Inject(exports.RangeProtectionRuleModel)),Yn(1,V.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var Ca=Object.defineProperty,fa=Object.getOwnPropertyDescriptor,va=(t,e,n,o)=>{for(var r=o>1?void 0:o?fa(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&Ca(e,n,r),r},Qe=(t,e)=>(n,o)=>e(n,o,t);const pa=[Me.id,Ie.id,fe.id,we.id],Ia=[be.id,Pe.id];exports.RangeProtectionRefRangeService=class extends s.Disposable{constructor(n,o,r,i,a){super();C(this,"disposableCollection",new s.DisposableCollection);this._selectionProtectionRuleModel=n,this._univerInstanceService=o,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._onRefRangeChange(),this._correctPermissionRange()}_onRefRangeChange(){const n=(r,i)=>{const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a||!(a==null?void 0:a.getSheetBySheetId(i)))return;this.disposableCollection.dispose();const u=l=>this.refRangeHandle(l,r,i);this._selectionProtectionRuleModel.getSubunitRuleList(r,i).reduce((l,m)=>[...l,...m.ranges],[]).forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,u,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===jt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;n(c,a)}if(r.id===yn.id||r.id===_n.id){const i=r.params,a=i.rule.subUnitId,c=i.rule.unitId;if(!a||!c)return;n(c,a)}}));const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(o){const r=o.getActiveSheet();if(!r)return;n(o.getUnitId(),r.getSheetId())}}refRangeHandle(n,o,r){switch(n.id){case Vt.id:return this._getRefRangeMutationsByMoveRows(n.params,o,r);case $t.id:return this._getRefRangeMutationsByMoveCols(n.params,o,r);case Ve.id:return this._getRefRangeMutationsByInsertRows(n.params,o,r);case $e.id:return this._getRefRangeMutationsByInsertCols(n.params,o,r);case lt.id:return this._getRefRangeMutationsByDeleteCols(n.params,o,r);case ut.id:return this._getRefRangeMutationsByDeleteRows(n.params,o,r)}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(n,o,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,n.range))),a=n.range;if(i.length){const c=[],u=[];return i.forEach(d=>{const l=s.Tools.deepClone(d),m=l.ranges.reduce((h,R)=>{if(s.Rectangle.intersects(R,a)){const S=s.Tools.deepClone(R),{startColumn:g,endColumn:f}=a;if(g<=S.startColumn&&f>=S.endColumn)return h;g>=S.startColumn&&f<=S.endColumn?S.endColumn-=f-g+1:g<S.startColumn?(S.startColumn=g,S.endColumn-=f-g+1):f>S.endColumn&&(S.endColumn=g-1),this._checkIsRightRange(S)&&h.push(S)}return h},[]);l.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:d.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(n,o,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,n.range))),a=n.range;if(i.length){const c=[],u=[];return i.forEach(d=>{const l=s.Tools.deepClone(d),m=l.ranges.reduce((h,R)=>{if(s.Rectangle.intersects(R,a)){const S=s.Tools.deepClone(R),{startRow:g,endRow:f}=a;if(g<=S.startRow&&f>=S.endRow)return h;g>=S.startRow&&f<=S.endRow?S.endRow-=f-g+1:g<S.startRow?(S.startRow=g,S.endRow-=f-g+1):f>S.endRow&&(S.endRow=g-1),this._checkIsRightRange(S)&&h.push(S)}return h},[]);l.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:d.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(n,o,r){const i=n.range.startColumn,a=n.range.endColumn-n.range.startColumn+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(u=>u.ranges.some(d=>i>d.startColumn&&i<=d.endColumn));if(c.length){const u=[],d=[];return c.forEach(l=>{const m=s.Tools.deepClone(l);let h=!1;m.ranges.forEach(R=>{i>R.startColumn&&i<=R.endColumn&&(R.endColumn+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:l.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.id}}))}),{redos:u,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(n,o,r){const i=n.range.startRow,a=n.range.endRow-n.range.startRow+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(u=>u.ranges.some(d=>i>d.startRow&&i<=d.endRow));if(c.length){const u=[],d=[];return c.forEach(l=>{const m=s.Tools.deepClone(l);let h=!1;m.ranges.forEach(R=>{i>R.startRow&&i<=R.endRow&&(R.endRow+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:l.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.id}}))}),{redos:u,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(n,o,r){const i=n.toRange,a=i.startRow,c=i.endRow-i.startRow+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(d=>d.ranges.some(l=>a>l.startRow&&a<=l.endRow));if(u.length){const d=[],l=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),S=n.fromRange.startRow;let g=!1;h.ranges.forEach(f=>{a>f.startRow&&a<=f.endRow&&(S<f.startRow&&(f.startRow=f.startRow-c,f.endRow=f.endRow-c),f.endRow+=c,g=!0)}),g&&(d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:h,ruleId:m.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:d,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(n,o,r){const i=n.toRange,a=i.startColumn,c=i.endColumn-i.startColumn+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(d=>d.ranges.some(l=>a>l.startColumn&&a<=l.endColumn));if(u.length){const d=[],l=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),S=n.fromRange.startColumn;let g=!1;h.ranges.forEach(f=>{a>f.startColumn&&a<=f.endColumn&&(S<f.startColumn&&(f.startColumn=f.startColumn-c,f.endColumn=f.endColumn-c),f.endColumn+=c,g=!0)}),g&&(d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:h,ruleId:m.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:d,undos:l}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(Ia.includes(n.id)){if(!n.params)return;const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!o)return;const r=o.getSheetBySheetId(n.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=n.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=c?i.startRow:i.startColumn,l=c?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(f=>{f.ranges.forEach(v=>{let{startRow:p,endRow:M,startColumn:w,endColumn:y}=v;s.Rectangle.intersects(v,i)||(c?d<p&&l>M?(p-=u,M-=u):d>M&&l<=p&&(p+=u,M+=u):d<w&&l>y?(w-=u,y-=u):d>y&&l<=w&&(w+=u,y+=u)),this._checkIsRightRange({startRow:p,endRow:M,startColumn:w,endColumn:y})&&(v.startColumn=w,v.endColumn=y,v.startRow=p,v.endRow=M)})}),this.disposableCollection.dispose();const{unitId:h,subUnitId:R}=n.params,S=f=>this.refRangeHandle(f,h,R);this._selectionProtectionRuleModel.getSubunitRuleList(h,R).reduce((f,I)=>[...f,...I.ranges],[]).forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,S,h,R))}),this._selectionProtectionRenderModel.clear()}if(pa.includes(n.id)){const o=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!o)return;const r=o.getSheetBySheetId(n.params.subUnitId);if(!r)return;const i=n.params;if(!i)return;const{range:a}=i,c=n.id.includes("row"),u=n.id.includes("insert"),d=c?a.startRow:a.startColumn,l=c?a.endRow:a.endColumn,m=l-d+1;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(I=>{I.ranges.forEach(p=>{let{startRow:M,endRow:w,startColumn:y,endColumn:P}=p;u?c?d<=M&&(M+=m,w+=m):d<=y&&(y+=m,P+=m):c?l<M&&(M-=m,w-=m):l<y&&(y-=m,P-=m),this._checkIsRightRange({startRow:M,endRow:w,startColumn:y,endColumn:P})&&(p.startColumn=y,p.endColumn=P,p.startRow=M,p.endRow=w)})}),this.disposableCollection.dispose();const{unitId:R,subUnitId:S}=n.params,g=I=>this.refRangeHandle(I,R,S);this._selectionProtectionRuleModel.getSubunitRuleList(R,S).reduce((I,v)=>[...I,...v.ranges],[]).forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,g,R,S))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(n){return n.startRow<=n.endRow&&n.startColumn<=n.endColumn}};exports.RangeProtectionRefRangeService=va([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRefRangeService),Qe(0,V.Inject(exports.RangeProtectionRuleModel)),Qe(1,V.Inject(s.IUniverInstanceService)),Qe(2,s.ICommandService),Qe(3,V.Inject(exports.RefRangeService)),Qe(4,V.Inject(exports.RangeProtectionRenderModel))],exports.RangeProtectionRefRangeService);var Ma=Object.defineProperty,wa=Object.getOwnPropertyDescriptor,ya=(t,e,n,o)=>{for(var r=o>1?void 0:o?wa(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&Ma(e,n,r),r},Jt=(t,e)=>(n,o)=>e(n,o,t);const _a="SHEET_RANGE_PROTECTION_PLUGIN";exports.RangeProtectionService=class extends s.Disposable{constructor(e,n,o){super(),this._selectionProtectionRuleModel=e,this._permissionService=n,this._resourceManagerService=o,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Ee().forEach(n=>{const o=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(o)});break}case"delete":{Ee().forEach(n=>{const o=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(o.id)});break}case"set":{e.oldRule.permissionId!==e.rule.permissionId&&Ee().forEach(n=>{const o=new n(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(o.id);const r=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}}))}_initSnapshot(){const e=o=>{const i=this._selectionProtectionRuleModel.toObject()[o];return i?JSON.stringify(i):""},n=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:_a,businesses:[yt.UNIVER_SHEET],onLoad:(o,r)=>{const i=this._selectionProtectionRuleModel.toObject();i[o]=r,this._selectionProtectionRuleModel.fromObject(i);const a=[];Object.keys(r).forEach(c=>{const u=r[c];this._selectionProtectionRuleModel.getSubunitRuleList(o,c).forEach(d=>{a.push({objectID:d.permissionId,unitID:o,objectType:D.SelectRange,actions:[_.View,_.Edit]})}),u.forEach(d=>{Ee().forEach(l=>{const m=new l(o,c,d.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=ya([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionService),Jt(0,V.Inject(exports.RangeProtectionRuleModel)),Jt(1,V.Inject(s.IPermissionService)),Jt(2,V.Inject(s.IResourceManagerService))],exports.RangeProtectionService);var ba=Object.defineProperty,Pa=Object.getOwnPropertyDescriptor,Ua=(t,e,n,o)=>{for(var r=o>1?void 0:o?Pa(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&ba(e,n,r),r},Ta=(t,e)=>(n,o)=>e(n,o,t);let It=class extends s.Disposable{constructor(t){super(),this._sheetInterceptorService=t,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(tt.CELL_CONTENT,{priority:11,handler:(t,e,n)=>{var r;const o=e.workbook.getStyles().getStyleByCell(t);return(r=o==null?void 0:o.n)!=null&&r.pattern?n({...t}):(t==null?void 0:t.t)===s.CellValueType.NUMBER&&typeof(t==null?void 0:t.v)=="number"?n({...t,v:ae.stripErrorMargin(t.v)}):n({...t})}}))}};It=Ua([s.OnLifecycle(s.LifecycleStages.Ready,It),Ta(0,V.Inject(exports.SheetInterceptorService))],It);var jr=Object.defineProperty,Ea=Object.getOwnPropertyDescriptor,ka=(t,e,n)=>e in t?jr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Na=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ea(e,n):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(r=(o?a(e,n,r):a(r))||r);return o&&r&&jr(e,n,r),r},Ct=(t,e)=>(n,o)=>e(n,o,t),Hr=(t,e,n)=>ka(t,typeof e!="symbol"?e+"":e,n);const Oa="SHEET_PLUGIN";exports.UniverSheetsPlugin=class extends s.Plugin{constructor(e,n,o,r,i){super(),this._config=e,this._commandService=n,this._configService=o,this._localeService=r,this._injector=i,this._initConfig(),this._initDependencies(i)}onRendered(){}_initConfig(){var e;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(Ar,!0)}_initDependencies(e){var o,r;const n=[[Fe],[exports.SelectionManagerService],[exports.RefRangeService],[exports.WorkbookPermissionService],[Be,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[vt],[exports.MergeCellController],[It],[exports.DefinedNameDataController],[exports.WorksheetPermissionService],[exports.WorksheetProtectionRuleModel],[exports.WorksheetProtectionPointModel],[exports.RangeProtectionRenderModel],[exports.RangeProtectionRuleModel],[exports.RangeProtectionRefRangeService],[exports.RangeProtectionService]];(o=this._config)!=null&&o.notExecuteFormula||n.push([pt]),s.mergeOverrideWithDependencies(n,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}};Hr(exports.UniverSheetsPlugin,"pluginName",Oa);Hr(exports.UniverSheetsPlugin,"type",s.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsPlugin=Na([s.DependentOn(ae.UniverFormulaEnginePlugin),Ct(1,s.ICommandService),Ct(2,s.IConfigService),Ct(3,V.Inject(s.LocaleService)),Ct(4,V.Inject(V.Injector))],exports.UniverSheetsPlugin);const Da=[_e.id,Re.id,gn.id,ye.id,dt.id,be.id,Pe.id,He.id,Ge.id,ze.id,qe.id,Me.id,Ie.id,fe.id,we.id],xa=[G.id,xe.id,q.id,H.id,st.id],Aa=1.5,Wa="rgba(255, 255, 255, 0.01)";function La(t){const e=t.getCurrentTheme(),n=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:e.primaryColor,fill:n,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1,expandCornerSize:40}}function Va(t){const{rangeWithCoord:e,primaryWithCoord:n,style:o}=t,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:o};return n!=null&&(r.primary=Gr(n)),r}function Gr(t){const{actualRow:e,actualColumn:n,isMerged:o,isMergedMainCell:r}=t,{startRow:i,startColumn:a,endRow:c,endColumn:u}=t.mergeInfo;return{actualRow:e,actualColumn:n,isMerged:o,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function $a(t,e,n){const o=s.getCellInfoInMergeData(t,e,n),r=s.makeCellRangeToRangeData(o);if(r)return{range:r,primary:o,style:null}}const Fa=(t,e,n)=>{const r=t.get(exports.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:c,subUnitId:u}=e;if(r){const l=r[(r==null?void 0:r.length)-1].primary;if(l){const{actualColumn:m,actualRow:h}=l;let{startRow:R,startColumn:S,endRow:g,endColumn:f}=a[a.length-1];if(i===s.Dimension.COLUMNS){const M=n.find(w=>w.startColumn===m&&w.endColumn===m&&h===w.startRow);M&&(f=M.endColumn,R=M.startRow,g=M.endRow)}else if(i===s.Dimension.ROWS){const M=n.find(w=>w.startRow===h&&w.endRow===h&&m===w.startColumn);M&&(g=M.endRow,S=M.startColumn,f=M.endColumn)}const I={startRow:R,startColumn:S,endRow:g,endColumn:f,actualRow:h,actualColumn:m,isMerged:!0,isMergedMainCell:R===h&&S===m},v=r.map((M,w,y)=>({range:M.range,style:null,primary:w===y.length-1?I:null})),p={unitId:c,subUnitId:u,pluginName:X,selections:v};return{id:K.id,params:p}}return null}return null},Ba=(t,e)=>{const o=t.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:i}=e;if(o&&o[(o==null?void 0:o.length)-1].primary){const u={unitId:r,subUnitId:i,pluginName:X,selections:[...o]};return{id:K.id,params:u}}return null};function ja(t,e){return e.some(n=>Ha(t,n))}function Ha(t,e){const{startRow:n,startColumn:o,endColumn:r,endRow:i}=e,a=t.getMatrixWithMergedCells(n,o,i,r);let c=!1;return a.forValue((u,d,l)=>{if(l&&(u!==n||d!==o)&&t.cellHasValue(l))return c=!0,!1}),c}function Ga(t,e,n,o){const r=[],i=[],a=n.getSheetId();return o.forEach(c=>{const u=qa(n,c),d={unitId:e,subUnitId:a,cellValue:u.getData()},l=pe(t,d);r.push({id:G.id,params:l}),i.push({id:G.id,params:d})}),{undos:r,redos:i}}function qa(t,e){const{startRow:n,startColumn:o,endColumn:r,endRow:i}=e,a=t.getMatrixWithMergedCells(n,o,i,r,!0),c=new s.ObjectMatrix;return a.forValue((u,d,l)=>{l&&(u!==n||d!==o)&&c.setValue(u,d,null)}),c}const Gt={type:s.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:async(t,e)=>{const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=e.unitId,a=e.subUnitId,c=e.selections,u=On(c,e.value),d=r.getUniverSheetInstance(i).getSheetBySheetId(a),l=[],m=[],h=ja(d,u),R={unitId:i,subUnitId:a,ranges:u},S={unitId:i,subUnitId:a,ranges:u};l.push({id:q.id,params:R}),l.push({id:H.id,params:S});const g=ie(t,R),f=ge(t,S);if(m.push({id:q.id,params:f}),m.push({id:H.id,params:g}),h){const v=Ga(t,i,d,u);l.unshift(...v.redos),m.push(...v.undos)}return s.sequenceExecute(l,n).result?(o.pushUndoRedo({unitID:i,undoMutations:m,redoMutations:l}),!0):!1}},za={type:s.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:async t=>{const e=t.get(s.ICommandService),o=t.get(exports.SelectionManagerService).getSelectionRanges();if(!(o!=null&&o.length))return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId();return e.executeCommand(Gt.id,{selections:o,unitId:c,subUnitId:u})}},Ya={type:s.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:async t=>{const e=t.get(s.ICommandService),o=t.get(exports.SelectionManagerService).getSelectionRanges();if(!(o!=null&&o.length))return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId();return e.executeCommand(Gt.id,{value:s.Dimension.COLUMNS,selections:o,unitId:c,subUnitId:u})}},Ka={type:s.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:async t=>{const e=t.get(s.ICommandService),o=t.get(exports.SelectionManagerService).getSelectionRanges();if(!(o!=null&&o.length))return!1;const i=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId();return e.executeCommand(Gt.id,{value:s.Dimension.ROWS,selections:o,unitId:c,subUnitId:u})}},Ja=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().showGridlines;return{...s.Tools.deepClone(e),hideGridlines:i}},Mt={id:"sheet.mutation.set-hide-gridlines",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getSheetBySheetId(e.subUnitId);if(!o)return!1;const r=o.getConfig();return r.showGridlines=e.hideGridlines,!0}},Xa={type:s.CommandType.COMMAND,id:"sheet.command.set-hide-gridlines",handler:async(t,e)=>{var S;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=A(r);if(!i)return!1;const{unitId:a,subUnitId:c}=i;let u=s.BooleanNumber.FALSE;e&&(u=(S=e.hideGridlines)!=null?S:s.BooleanNumber.FALSE);const d=r.getUniverSheetInstance(a);if(!d||!d.getSheetBySheetId(c))return!1;const m={hideGridlines:u,unitId:a,subUnitId:c},h=Ja(t,m);return n.syncExecuteCommand(Mt.id,m)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Mt.id,params:h}],redoMutations:[{id:Mt.id,params:m}]}),!0):!1}},Za=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().rightToLeft;return{...s.Tools.deepClone(e),rightToLeft:i}},wt={id:"sheet.mutation.set-worksheet-right-to-left",type:s.CommandType.MUTATION,handler:(t,e)=>{const n=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const o=n.getSheetBySheetId(e.subUnitId);if(!o)return!1;const r=o.getConfig();return r.rightToLeft=e.rightToLeft,!0}},Qa={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-right-to-left",handler:async(t,e)=>{var m;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=A(t.get(s.IUniverInstanceService),e);if(!r)return!1;const{unitId:i,subUnitId:a}=r;let c=s.BooleanNumber.FALSE;e&&(c=(m=e.rightToLeft)!=null?m:s.BooleanNumber.FALSE);const u={rightToLeft:c,unitId:i,subUnitId:a},d=Za(t,u);return n.syncExecuteCommand(wt.id,u)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:wt.id,params:d}],redoMutations:[{id:wt.id,params:u}]}),!0):!1}};exports.AddMergeRedoSelectionsOperationFactory=Fa;exports.AddMergeUndoMutationFactory=ge;exports.AddMergeUndoSelectionsOperationFactory=Ba;exports.AddRangeProtectionCommand=yn;exports.AddRangeProtectionMutation=Ke;exports.AddWorksheetMergeAllCommand=za;exports.AddWorksheetMergeCommand=Gt;exports.AddWorksheetMergeHorizontalCommand=Ka;exports.AddWorksheetMergeMutation=H;exports.AddWorksheetMergeVerticalCommand=Ya;exports.AddWorksheetProtectionMutation=Ur;exports.BorderStyleManagerService=Fe;exports.COMMAND_LISTENER_SKELETON_CHANGE=Da;exports.COMMAND_LISTENER_VALUE_CHANGE=xa;exports.ClearSelectionAllCommand=Ut;exports.ClearSelectionContentCommand=Zt;exports.ClearSelectionFormatCommand=Tt;exports.CopySheetCommand=to;exports.DeleteRangeMoveLeftCommand=xt;exports.DeleteRangeMoveUpCommand=At;exports.DeleteRangeProtectionCommand=Nr;exports.DeleteRangeProtectionMutation=Ye;exports.DeleteWorksheetProtectionMutation=Er;exports.DeltaColumnWidthCommand=dn;exports.DeltaRowHeightCommand=Rn;exports.EffectRefRangId=T;exports.EmptyMutation=wr;exports.FactoryAddRangeProtectionMutation=pi;exports.FactoryDeleteRangeProtectionMutation=vi;exports.FactorySetRangeProtectionMutation=Ii;exports.INTERCEPTOR_POINT=tt;exports.INumfmtService=Be;exports.InsertColAfterCommand=Bo;exports.InsertColBeforeCommand=Fo;exports.InsertColCommand=$e;exports.InsertColMutation=Me;exports.InsertColMutationUndoFactory=rn;exports.InsertDefinedNameCommand=yr;exports.InsertRangeMoveDownCommand=Wt;exports.InsertRangeMoveRightCommand=Lt;exports.InsertRowAfterCommand=Vo;exports.InsertRowBeforeCommand=Lo;exports.InsertRowCommand=Ve;exports.InsertRowMutation=Ie;exports.InsertRowMutationUndoFactory=on;exports.InsertSheetCommand=jo;exports.InsertSheetMutation=De;exports.InsertSheetUndoMutationFactory=Qt;exports.MAX_CELL_PER_SHEET_KEY=xr;exports.MoveColsCommand=$t;exports.MoveColsMutation=Pe;exports.MoveColsMutationUndoFactory=Go;exports.MoveRangeCommand=kt;exports.MoveRangeMutation=xe;exports.MoveRowsCommand=Vt;exports.MoveRowsMutation=be;exports.MoveRowsMutationUndoFactory=Ho;exports.NORMAL_SELECTION_PLUGIN_NAME=X;exports.OperatorType=L;exports.RangeMergeUtil=ti;exports.RangeProtectionPermissionEditPoint=Ot;exports.RangeProtectionPermissionViewPoint=Dt;exports.RemoveColCommand=lt;exports.RemoveColMutation=fe;exports.RemoveDefinedNameCommand=_r;exports.RemoveMergeUndoMutationFactory=ie;exports.RemoveNumfmtMutation=pn;exports.RemoveRowCommand=ut;exports.RemoveRowMutation=we;exports.RemoveSheetCommand=sn;exports.RemoveSheetMutation=Je;exports.RemoveSheetUndoMutationFactory=eo;exports.RemoveWorksheetMergeCommand=Jo;exports.RemoveWorksheetMergeMutation=q;exports.ReorderRangeCommand=bn;exports.ReorderRangeMutation=st;exports.ReorderRangeUndoMutationFactory=Or;exports.ResetBackgroundColorCommand=lr;exports.ResetTextColorCommand=cr;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Wa;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Aa;exports.ScrollToCellOperation=Pr;exports.SelectionMoveType=Kn;exports.SetBackgroundColorCommand=ur;exports.SetBoldCommand=Fs;exports.SetBorderBasicCommand=Xo;exports.SetBorderColorCommand=er;exports.SetBorderCommand=Xe;exports.SetBorderPositionCommand=Zo;exports.SetBorderStyleCommand=Qo;exports.SetColHiddenCommand=an;exports.SetColHiddenMutation=He;exports.SetColVisibleMutation=Ge;exports.SetColWidthCommand=_t;exports.SetDefinedNameCommand=br;exports.SetFontFamilyCommand=qs;exports.SetFontSizeCommand=zs;exports.SetFrozenCancelCommand=rr;exports.SetFrozenCommand=or;exports.SetFrozenMutation=ke;exports.SetFrozenMutationFactory=cn;exports.SetHideGridlinesCommand=Xa;exports.SetHideGridlinesMutation=Mt;exports.SetHorizontalTextAlignCommand=mr;exports.SetItalicCommand=Bs;exports.SetNumfmtMutation=Ht;exports.SetOverlineCommand=Gs;exports.SetRangeProtectionCommand=_n;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=ct;exports.SetRangeValuesMutation=G;exports.SetRangeValuesUndoMutationFactory=pe;exports.SetRowHeightCommand=Sn;exports.SetRowHiddenCommand=un;exports.SetRowHiddenMutation=ze;exports.SetRowVisibleMutation=qe;exports.SetSelectedColsVisibleCommand=tr;exports.SetSelectedRowsVisibleCommand=sr;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=Ft;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=Hs;exports.SetStyleCommand=te;exports.SetTabColorCommand=Rr;exports.SetTabColorMutation=nt;exports.SetTextColorCommand=ar;exports.SetTextRotationCommand=gr;exports.SetTextWrapCommand=hr;exports.SetUnderlineCommand=js;exports.SetVerticalTextAlignCommand=dr;exports.SetWorkbookNameCommand=Mn;exports.SetWorkbookNameMutation=In;exports.SetWorksheetActivateCommand=jt;exports.SetWorksheetActiveOperation=dt;exports.SetWorksheetColWidthMutation=ye;exports.SetWorksheetColWidthMutationFactory=ln;exports.SetWorksheetHideCommand=Cr;exports.SetWorksheetHideMutation=Ne;exports.SetWorksheetNameCommand=mn;exports.SetWorksheetNameMutation=bt;exports.SetWorksheetOrderCommand=fr;exports.SetWorksheetOrderMutation=ot;exports.SetWorksheetPermissionPointsCommand=kr;exports.SetWorksheetPermissionPointsMutation=wn;exports.SetWorksheetProtectionMutation=Tr;exports.SetWorksheetRightToLeftCommand=Qa;exports.SetWorksheetRightToLeftMutation=wt;exports.SetWorksheetRowAutoHeightMutation=gn;exports.SetWorksheetRowAutoHeightMutationFactory=Qs;exports.SetWorksheetRowHeightMutation=_e;exports.SetWorksheetRowIsAutoHeightCommand=Cn;exports.SetWorksheetRowIsAutoHeightMutation=Re;exports.SetWorksheetShowCommand=pr;exports.WorkbookCommentPermission=vo;exports.WorkbookCopyPermission=ko;exports.WorkbookCopySheetPermission=No;exports.WorkbookCreateSheetPermission=Uo;exports.WorkbookDeleteSheetPermission=_o;exports.WorkbookDuplicatePermission=Io;exports.WorkbookEditablePermission=po;exports.WorkbookExportPermission=wo;exports.WorkbookHideSheetPermission=bo;exports.WorkbookHistoryPermission=ys;exports.WorkbookManageCollaboratorPermission=Oo;exports.WorkbookMoveSheetPermission=yo;exports.WorkbookPrintPermission=Mo;exports.WorkbookRenameSheetPermission=Po;exports.WorkbookSharePermission=Eo;exports.WorkbookViewPermission=To;exports.WorksheetCopyPermission=oo;exports.WorksheetDeleteColumnPermission=go;exports.WorksheetDeleteRowPermission=ho;exports.WorksheetEditExtraObjectPermission=fo;exports.WorksheetEditPermission=en;exports.WorksheetFilterPermission=So;exports.WorksheetInsertColumnPermission=lo;exports.WorksheetInsertHyperlinkPermission=mo;exports.WorksheetInsertRowPermission=uo;exports.WorksheetManageCollaboratorPermission=ws;exports.WorksheetPivotTablePermission=Co;exports.WorksheetSelectProtectedCellsPermission=Is;exports.WorksheetSelectUnProtectedCellsPermission=Ms;exports.WorksheetSetCellStylePermission=ro;exports.WorksheetSetCellValuePermission=so;exports.WorksheetSetColumnStylePermission=co;exports.WorksheetSetRowStylePermission=ao;exports.WorksheetSortPermission=Ro;exports.WorksheetViewPermission=io;exports.alignToMergedCellsBorders=at;exports.convertPrimaryWithCoordToPrimary=Gr;exports.convertSelectionDataToRange=Va;exports.createTopMatrixFromMatrix=Mr;exports.createTopMatrixFromRanges=Ir;exports.defaultWorkbookPermissionPoints=sa;exports.defaultWorksheetPermissionPoint=li;exports.expandToContinuousRange=gs;exports.factoryRemoveNumfmtUndoMutation=oi;exports.factorySetNumfmtUndoMutation=ni;exports.findAllRectangle=fn;exports.followSelectionOperation=Ue;exports.generateNullCellValue=Zn;exports.getAddMergeMutationRangeByType=On;exports.getAllRangePermissionPoint=Ee;exports.getAllWorkbookPermissionPoint=Xt;exports.getAllWorksheetPermissionPoint=Te;exports.getAllWorksheetPermissionPointByPointPanel=rt;exports.getCellAtRowCol=Cs;exports.getDefaultRangePermission=ha;exports.getInsertRangeMutations=tn;exports.getMoveRangeUndoRedoMutations=Nt;exports.getNormalSelectionStyle=La;exports.getPrimaryForRange=ce;exports.getRemoveRangeMutations=nn;exports.getSheetCommandTarget=A;exports.getSheetCommandTargetWorkbook=Qn;exports.getSheetMutationTarget=Et;exports.handleBaseInsertRange=We;exports.handleBaseMoveRowsCols=it;exports.handleBaseRemoveRange=Ae;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=$i;exports.handleDefaultRangeChangeWithEffectRefCommands=Br;exports.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Vi;exports.handleDeleteRangeMoveLeft=$r;exports.handleDeleteRangeMoveUp=Fr;exports.handleDeleteRangeMutation=bs;exports.handleIRemoveCol=Tn;exports.handleIRemoveRow=En;exports.handleInsertCol=Nn;exports.handleInsertRangeMoveDown=Lr;exports.handleInsertRangeMoveRight=Vr;exports.handleInsertRangeMutation=_s;exports.handleInsertRow=kn;exports.handleMoveCols=Un;exports.handleMoveRange=Wr;exports.handleMoveRows=Pn;exports.isSingleCellSelection=vs;exports.rangeMerge=vn;exports.rotateRange=de;exports.runRefRangeMutations=Le;exports.setEndForRange=fs;exports.transformCellDataToSelectionData=$a;exports.transformCellsToRange=Pt;