@univerjs/sheets 0.2.2 → 0.2.3

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 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;
1
+ "use strict";var ts=Object.defineProperty;var ns=(t,e,n)=>e in t?ts(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var C=(t,e,n)=>ns(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"),os=require("@univerjs/rpc"),J=require("rxjs"),Zn=require("@univerjs/engine-numfmt"),Qe=require("rxjs/operators");var rs=Object.defineProperty,ss=Object.getOwnPropertyDescriptor,is=(t,e,n,o)=>{for(var r=o>1?void 0:o?ss(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&&rs(e,n,r),r},as=(t,e)=>(n,o)=>e(n,o,t),Qn=(t=>(t[t.MOVE_START=0]="MOVE_START",t[t.MOVING=1]="MOVING",t[t.MOVE_END=2]="MOVE_END",t))(Qn||{});exports.SheetsSelectionsService=class extends s.RxDisposable{constructor(n){super();C(this,"selectionMoveStart$");C(this,"selectionMoving$");C(this,"selectionMoveEnd$");C(this,"_workbookSelections",new Map);this._instanceSrv=n;const o=this._instanceSrv.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_SHEET).pipe(J.shareReplay(1),J.takeUntil(this.dispose$));this.selectionMoveStart$=o.pipe(J.switchMap(r=>r?this._ensureWorkbookSelection(r.getUnitId()).selectionMoveStart$:J.of())),this.selectionMoving$=o.pipe(J.switchMap(r=>r?this._ensureWorkbookSelection(r.getUnitId()).selectionMoving$:J.of())),this.selectionMoveEnd$=o.pipe(J.switchMap(r=>r?this._ensureWorkbookSelection(r.getUnitId()).selectionMoveEnd$:J.of([]))),this._instanceSrv.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(J.takeUntil(this.dispose$)).subscribe(r=>{this._workbookSelections.delete(r.getUnitId())})}get _currentSelectionPos(){const n=this._instanceSrv.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!n)return null;const o=n.getActiveSheet();return{unitId:n.getUnitId(),sheetId:o.getSheetId()}}clear(){this._workbookSelections.forEach(n=>n.clear())}getCurrentSelections(){return this._getCurrentSelections()}getCurrentLastSelection(){const n=this._getCurrentSelections();return n==null?void 0:n[n.length-1]}addSelections(n,o,r){if(typeof n=="string"){this._ensureWorkbookSelection(n).addSelections(o,r);return}const i=this._currentSelectionPos;if(!i)throw new Error("[SheetsSelectionsService]: cannot find current selection position!");const{unitId:a,sheetId:c}=i;this._ensureWorkbookSelection(a).addSelections(c,n)}setSelections(n,o,r,i){if(typeof n=="string"){this._ensureWorkbookSelection(n).setSelections(o,r,i!=null?i:2);return}const a=this._currentSelectionPos;if(!a)throw new Error("[SheetsSelectionsService]: cannot find current selection position!");const{unitId:c,sheetId:u}=a;this._ensureWorkbookSelection(c).setSelections(u,n,o!=null?o:2)}clearCurrentSelections(){this._getCurrentSelections().splice(0)}isOverlapping(){const n=this.getCurrentSelections();return n==null?!1:n.some(({range:o},r)=>n.some(({range:i},a)=>r===a?!1:o.startRow<=i.endRow&&o.endRow>=i.startRow&&o.startColumn<=i.endColumn&&o.endColumn>=i.startColumn))}_getCurrentSelections(){const n=this._currentSelectionPos;if(!n)return[];const{unitId:o,sheetId:r}=n;return this._ensureWorkbookSelection(o).getSelectionOfWorksheet(r)}getWorkbookSelections(n){return this._ensureWorkbookSelection(n)}_ensureWorkbookSelection(n){let o=this._workbookSelections.get(n);if(!o){const r=this._instanceSrv.getUnit(n);if(!r)throw new Error(`[SheetsSelectionsService]: cannot resolve unit with id "${n}"!`);o=new eo(r),this._workbookSelections.set(n,o)}return o}};exports.SheetsSelectionsService=is([as(0,s.IUniverInstanceService)],exports.SheetsSelectionsService);class eo extends s.Disposable{constructor(n){super();C(this,"_selectionMoveStart$",new J.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new J.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new J.BehaviorSubject([]));C(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());C(this,"_beforeSelectionMoveEnd$",new J.BehaviorSubject([]));C(this,"beforeSelectionMoveEnd$",this._beforeSelectionMoveEnd$.asObservable());C(this,"_worksheetSelections",new Map);this._workbook=n}dispose(){super.dispose(),this._beforeSelectionMoveEnd$.complete(),this._selectionMoveEnd$.complete(),this._selectionMoving$.complete(),this._selectionMoveStart$.complete()}clear(){this._worksheetSelections.clear(),this._emitOnEnd([])}addSelections(n,o){const r=this._ensureSheetSelection(n);r.push(...o),this._emitOnEnd(r)}setSelections(n,o,r=2){const i=this._ensureSheetSelection(n);i.length=0,i.push(...o),r===0?this._selectionMoveStart$.next(o):r===1?this._selectionMoving$.next(o):this._emitOnEnd(o)}getCurrentSelections(){return this._getCurrentSelections()}getSelectionOfWorksheet(n){return this._worksheetSelections.has(n)?this._worksheetSelections.get(n):[]}_getCurrentSelections(){return this.getSelectionOfWorksheet(this._workbook.getActiveSheet().getSheetId())}getCurrentLastSelection(){const n=this._getCurrentSelections();return n[n.length-1]}_ensureSheetSelection(n){let o=this._worksheetSelections.get(n);return o||(o=[],this._worksheetSelections.set(n,o)),o}_emitOnEnd(n){this._beforeSelectionMoveEnd$.next(n),this._selectionMoveEnd$.next(n)}}const to="DISABLE_NORMAL_SELECTIONS",cs=s.createInterceptorKey("CELL_CONTENT"),us=s.createInterceptorKey("ROW_FILTERED"),et={CELL_CONTENT:cs,ROW_FILTERED:us};var ds=Object.defineProperty,ls=Object.getOwnPropertyDescriptor,ms=(t,e,n,o)=>{for(var r=o>1?void 0:o?ls(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&&ds(e,n,r),r},hs=(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(et.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,l;return((u=c.priority)!=null?u:0)-((l=a.priority)!=null?l: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(l=>{const d=new s.DisposableCollection;i._worksheetDisposables.set(Bn(r,c),d),d.add(l.registerCellContentInterceptor({getCell(m,h){return i.fetchThroughInterceptors(et.CELL_CONTENT)(c.getCellRaw(m,h),{unitId:r,subUnitId:u,row:m,col:h,worksheet:c,workbook:n})}})),d.add(l.registerRowFilteredInterceptor({getRowFiltered(m){return!!i.fetchThroughInterceptors(et.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=Bn(n,o),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=ms([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),hs(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Bn(t,e){return`${t}|${e.getSheetId()}`}function gs(t,e,n){var a;const o=t.getStyleByCell(e);o==null&&delete e.s,typeof n.s=="string"&&(n.s=t.get(n.s));const r=Ct(o,n.s?n.s:null);r&&s.Tools.removeNull(r),s.Tools.isEmptyObject(r)?delete e.s:e.s=t.setValue(r);const i=n.v?`${n.v}\r
2
+ `:"";!n.p&&e.p&&(i&&i!==((a=e.p.body)==null?void 0:a.dataStream)?delete e.p:fs(e.p,n.s?n.s:null))}function Rs(t,e){return Ss(t,e)}function Ss(t,e){if(!e||!Object.keys(e).length)return t;const n=t||{};for(const o in e)o==="bd"?n[o]=Cs(n[o]||{},e[o]):o in n||(n[o]=null);return n}function Cs(t,e){if(!e||!Object.keys(e).length)return t;for(const n in e)n in t||(t[n]=null);return t}function Ct(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 no(t,e){return t.some(n=>n.startIndex===e)?no(t,e+1):e}function fs(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:l,ts:d={}}=c;if(n<u){const h={st:n,ed:u},S=Ct({},e,!0);S&&s.Tools.removeNull(S),s.Tools.isEmptyObject(S)||(h.ts=S),o.push(h)}const m=Ct(d,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,o.push(c),n=no(r,l)}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=Ct({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),o.push(c)}t.body.textRuns=s.normalizeTextRuns(o)}function Xt(t,e){return t===s.CellValueType.NUMBER?Number(e.v):t===s.CellValueType.BOOLEAN?vs(e.v)?1:0:t===s.CellValueType.STRING||t===s.CellValueType.FORCE_STRING?`${e.v}`:e.v}function vs(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 ps(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)}function Is(t,e,n){if(e.t)return e.t;if(e.v===null)return null;const o=t.getStyleByCell(e),r=t.getStyleByCell(n);if(n.t===s.CellValueType.FORCE_STRING){if(!qt(r)&&e.v!==void 0){if(s.isRealNum(e.v))return s.CellValueType.NUMBER;if(s.isBooleanString(`${e.v}`))return s.CellValueType.BOOLEAN}return s.CellValueType.FORCE_STRING}return Ms(o)?qt(o)?s.CellValueType.STRING:jn(e,n):qt(r)?s.CellValueType.STRING:jn(e,n)}function jn(t,e){return t.v!==void 0?Zt(t.v,t.t):Zt(e.v,e.t)}function Ms(t){var e;return!!((e=t==null?void 0:t.n)!=null&&e.pattern)}function qt(t){var e;return((e=t==null?void 0:t.n)==null?void 0:e.pattern)===Zn.DEFAULT_TEXT_FORMAT}function Zt(t,e){return t===null?null:typeof t=="string"?s.isRealNum(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 ws(t,e){return t.t===s.CellValueType.FORCE_STRING?s.CellValueType.FORCE_STRING:e===Zn.DEFAULT_TEXT_FORMAT?s.CellValueType.STRING:Zt(t.v,t.t)}const ve=(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(),l=a.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((h,S,R)=>{const g=s.Tools.deepClone(u==null?void 0:u.getValue(h,S))||{},f=l.getStyleByCell(g);let v=l.getStyleByCell(R);v=Rs(f,v),g.s=v,d.setValue(h,S,ps(g))}),{...e,options:{},cellValue:d.getMatrix()}},H={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).getUnit(r);if(!a)return!1;const c=a.getSheetBySheetId(o);if(!c)return!1;const u=c.getCellMatrix(),l=a.getStyles();return new s.ObjectMatrix(n).forValue((m,h,S)=>{if(!S)u==null||u.setValue(m,h,{});else{const R=u.getValue(m,h)||{},g=Is(l,S,R);S.f!==void 0&&(R.f=S.f),S.si!==void 0&&(R.si=S.si),S.p!==void 0&&(R.p=S.p),S.v!==void 0&&(R.v=Xt(g,S)),R.v!==void 0&&(R.t=g,R.v=Xt(g,R)),S.s!==void 0&&gs(l,R,S),S.custom!==void 0&&(R.custom=S.custom),u.setValue(m,h,s.Tools.removeNull(R))}}),!0}},ys=(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)},{}),_s=(t=0)=>{let e=t;return function(){return e++}};function mt(t){return t.v!==void 0&&t.v!==null&&t.v!==""||t.p!==void 0}function bs(t,e,n){const{left:o,right:r,up:i,down:a}=e,c=n.getMaxRows(),u=n.getMaxColumns();let l=!0;const d={...t};for(;l;){if(l=!1,i&&d.startRow!==0){const m=d.startRow-1;n.getMatrixWithMergedCells(m,d.startColumn,m,d.endColumn).forValue((S,R,g)=>{mt(g)&&(d.startRow=Math.min(S,d.startRow),d.startColumn=Math.min(R,d.startColumn),d.endColumn=Math.max(R,d.endColumn),l=!0)})}if(a&&d.endRow!==c-1){const m=d.endRow+1;n.getMatrixWithMergedCells(m,d.startColumn,m,d.endColumn).forValue((S,R,g)=>{mt(g)&&(d.endRow=Math.max(S+(g.rowSpan!==void 0?g.rowSpan-1:0),d.endRow),d.startColumn=Math.min(R,d.startColumn),d.endColumn=Math.max(R,d.endColumn),l=!0)})}if(o&&d.startColumn!==0){const m=d.startColumn-1;n.getMatrixWithMergedCells(d.startRow,m,d.endRow,m).forValue((S,R,g)=>{mt(g)&&(d.startColumn=Math.min(R,d.startColumn),d.startRow=Math.min(S,d.startRow),d.endRow=Math.max(S,d.endRow),l=!0)})}if(r&&d.endColumn!==u-1){const m=d.endColumn+1;n.getMatrixWithMergedCells(d.startRow,m,d.endRow,m).forValue((S,R,g)=>{mt(g)&&(d.endColumn=Math.max(R+(g.colSpan!==void 0?g.colSpan-1:0),d.endColumn),d.startRow=Math.min(S,d.startRow),d.endRow=Math.max(S,d.endRow),l=!0)})}}return d}function oo(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 ro(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 Us(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=>{var v;const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(exports.SheetsSelectionsService),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 l=u.getSheetId(),d=(v=o.getCurrentSelections())==null?void 0:v.map(p=>p.range);if(!(d!=null&&d.length))return!1;const m=[],h=[],S={subUnitId:l,unitId:c,cellValue:oo(d)},R=ve(t,S);m.push({id:H.id,params:S}),h.push({id:H.id,params:R});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}},en={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async t=>{var v;const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(exports.SheetsSelectionsService),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 l=u.getSheetId(),d=(v=o.getCurrentSelections())==null?void 0:v.map(p=>p.range);if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:ro(d)},h=ve(t,m),S=i.onCommandExecute({id:en.id}),R=[{id:H.id,params:m},...S.redos],g=[...S.undos,{id:H.id,params:h}];return s.sequenceExecute(R,n).result?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:R}),!0):!1}},Tt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async t=>{var v;const e=t.get(s.IUniverInstanceService),n=t.get(s.ICommandService),o=t.get(exports.SheetsSelectionsService),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 l=u.getSheetId(),d=(v=o.getCurrentSelections())==null?void 0:v.map(p=>p.range);if(!(d!=null&&d.length))return!1;const m=[],h=[],S={subUnitId:l,unitId:c,cellValue:Us(d)},R=ve(t,S);m.push({id:H.id,params:S}),h.push({id:H.id,params:R});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}},tn=(t,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),Oe={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 so(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(!0);return i?{worksheet:i,workbook:r,unitId:r.getUnitId(),subUnitId:i.getSheetId()}:null}function Pt(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 io=(t,e)=>{const n=t.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=Pt(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}},Ke={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}},ao={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:l}=a,d=s.Tools.deepClone(u.getConfig());d.name=Ts(c,i,d.name),d.id=s.Tools.generateRandomId();const h={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},S=tn(t,h);return n.syncExecuteCommand(Oe.id,h)?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Ke.id,params:S}],redoMutations:[{id:Oe.id,params:h}]}),!0):!1}};function Ts(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 De={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(),l=c.getCellMatrix();return new s.ObjectMatrix(n.value).forValue((d,m,h)=>{u.setValue(d,m,h)}),new s.ObjectMatrix(o.value).forValue((d,m,h)=>{l.setValue(d,m,h)}),!0}},co=V.createIdentifier("sheets-formula.ref-selections.service");function uo(t){const n=t.get(s.IContextService).getContextValue(to);return t.get(n?co:exports.SheetsSelectionsService)}const K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(t,e)=>{if(!e)return!1;const{selections:n,type:o,unitId:r,subUnitId:i}=e;return uo(t).setSelections(r,i,n,o),!0}};function it(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 l={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(t,l)||r.push(l)}}),r.length===0)return t;const i=s.Rectangle.union(t,...r);return n?it(i,e,n):i}function Ps(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 Es(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(),selections:[{range:t,primary:ce(t,n)}]}});function ks(t){if(!t)return!1;const{range:e,primary:n}=t;return s.Rectangle.equals(e,n)}function Ns(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 lo="sheet.command.move-range",Et={type:s.CommandType.COMMAND,id:lo,handler:(t,e)=>{var v,p;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:l,unitId:d}=c,m=kt(t,{unitId:d,subUnitId:l,range:e.fromRange},{unitId:d,subUnitId:l,range:e.toRange});if(m===null)return i.emit(a.t("sheets.info.acrossMergedCell")),!1;const S=t.get(exports.SheetInterceptorService).onCommandExecute({id:Et.id,params:{...e}}),R=[...(v=S.preRedos)!=null?v:[],...m.redos,...S.redos,{id:K.id,params:{unitId:d,subUnitId:l,selections:[{range:e.toRange,primary:ce(e.toRange,u)}]}}],g=[...(p=S.preUndos)!=null?p:[],...m.undos,...S.undos,{id:K.id,params:{unitId:d,subUnitId:l,selections:[{range:e.fromRange,primary:ce(e.fromRange,u)}]}}];return s.sequenceExecute(R,n).result?(o.pushUndoRedo({unitID:d,undoMutations:g,redoMutations:R}),!0):!1}};function kt(t,e,n,o=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:l,subUnitId:d}=n,h=t.get(s.IUniverInstanceService).getUniverSheetInstance(u),S=h==null?void 0:h.getSheetBySheetId(d),R=h==null?void 0:h.getSheetBySheetId(c),g=S==null?void 0:S.getCellMatrix(),f=R==null?void 0:R.getCellMatrix();if(S&&R&&g&&f){const v=it(l,S,!1);if(!s.Rectangle.equals(l,v)&&!o)return null;const p=new s.ObjectMatrix,I=new s.ObjectMatrix;s.Range.foreach(a,(T,P)=>{p.setValue(T,P,f.getValue(T,P)),I.setValue(T,P,null)});const M=new s.ObjectMatrix;s.Range.foreach(l,(T,P)=>{M.setValue(T,P,g.getValue(T,P))});const w=new s.ObjectMatrix;s.Range.foreach(a,(T,P)=>{const O=s.cellToRange(T,P),q=s.Rectangle.getRelativeRange(O,a),B=s.Rectangle.getPositionRange(q,l);w.setValue(B.startRow,B.startColumn,f.getValue(T,P))});const y={from:{value:I.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:d},unitId:u},U={from:{value:p.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u};r.push({id:De.id,params:y}),i.push({id:De.id,params:U})}return{redos:r,undos:i}}var wt=(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))(wt||{}),_=(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))(_||{}),x=(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))(x||{});class mo{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 Os{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 Ds{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 ho{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 go{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 Ro{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 So{constructor(e,n){C(this,"value",!0);C(this,"type",x.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",x.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 fo{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 vo{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 po{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 Io{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 Mo{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 wo{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 yo{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 _o{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 bo{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 xs{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 nn{constructor(e,n){C(this,"value",!0);C(this,"type",x.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 Uo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Comment}_${e}`}}class To{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Edit}_${e}`}}class Po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Duplicate}_${e}`}}class Eo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Print}_${e}`}}class ko{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Export}_${e}`}}class No{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.MoveSheet}_${e}`}}class Oo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.DeleteSheet}_${e}`}}class Do{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.HideSheet}_${e}`}}class xo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.RenameSheet}_${e}`}}class Ao{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CreateSheet}_${e}`}}class As{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.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",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.View}_${e}`}}class Lo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Share}_${e}`}}class Vo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Copy}_${e}`}}class $o{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"subType",_.CopySheet);C(this,"status",s.PermissionStatus.INIT);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CopySheet}_${e}`}}class Bo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",x.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.ManageCollaborator}_${e}`}}class Nt{constructor(e,n,o){C(this,"type",x.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=`${x.SelectRange}.${_.Edit}.${o}`}}class Ot{constructor(e,n,o){C(this,"type",x.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=`${x.SelectRange}.${_.View}.${o}`}}const at={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(t,e)=>{var y;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetsSelectionsService),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:l,unitId:d}=u,{value:m,range:h}=e,S=h?[h]:(y=i.getCurrentSelections())==null?void 0:y.map(U=>U.range);if(!S||!S.length||!c.getPermissionPoint(new nn(d,l).id))return!1;const R=new s.ObjectMatrix;let g;if(s.Tools.isArray(m))for(let U=0;U<S.length;U++){const{startRow:T,startColumn:P,endRow:O,endColumn:q}=S[U];for(let B=0;B<=O-T;B++)for(let b=0;b<=q-P;b++)R.setValue(B+T,b+P,m[B][b])}else if(s.isICellData(m))for(let U=0;U<S.length;U++){const{startRow:T,startColumn:P,endRow:O,endColumn:q}=S[U];for(let B=T;B<=O;B++)for(let b=P;b<=q;b++)R.setValue(B,b,m)}else g=m;const f={subUnitId:l,unitId:d,cellValue:g!=null?g:R.getMatrix()},v=ve(t,f),p=n.syncExecuteCommand(H.id,f),{undos:I,redos:M}=a.onCommandExecute({id:at.id,params:{...f,range:S}}),w=s.sequenceExecute([...M],n);return p&&w.result?(o.pushUndoRedo({unitID:d,undoMutations:[{id:H.id,params:v},...I],redoMutations:[{id:H.id,params:f},...M]}),!0):!1}};function on(t,e){const n=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c,cellValue:u={}}=e,l=t.get(s.IUniverInstanceService),d=t.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),h=m==null?void 0:m.getSheetBySheetId(i);if(h){const S=h.getCellMatrix(),R=S.getDataRange();if(a.startColumn<=R.endColumn||a.startRow<=R.endRow){let I,M;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,R.endRow);let U=0;for(let P=a.startRow;P<=y;P++){const O=S.getRow(P),q=O?s.getArrayLength(O)-1:0;U=Math.max(U,q)}I={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:U};const T=a.endColumn-a.startColumn+1;M={startRow:a.startRow,startColumn:I.startColumn+T,endRow:y,endColumn:I.endColumn+T}}else{const y=Math.min(a.endColumn,R.endColumn),U=R.endRow;I={startRow:a.startRow,startColumn:a.startColumn,endRow:U,endColumn:y};const T=a.endRow-a.startRow+1;M={startRow:I.startRow+T,startColumn:a.startColumn,endRow:I.endRow+T,endColumn:y}}const w=kt(t,{unitId:r,subUnitId:i,range:I},{unitId:r,subUnitId:i,range:M},!0);w&&(n.push(...w.redos),o.push(...w.undos))}if(Object.entries(u).length===0)for(let I=a.startRow;I<=a.endRow;I++){u[I]||(u[I]={});for(let M=a.startColumn;M<=a.endColumn;M++)u[I][M]=null}const g={subUnitId:i,unitId:r,cellValue:u},f=ve(t,g),{undos:v,redos:p}=d.onCommandExecute({id:at.id,params:{...g,range:a}});n.push({id:H.id,params:g},...p),o.push({id:H.id,params:f},...v)}return{redo:n,undo:o}}function rn(t,e){const n=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c}=e,u=t.get(s.IUniverInstanceService),l=t.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(i);if(m){const h=m.getCellMatrix(),S=h.getDataRange(),R={subUnitId:i,unitId:r,cellValue:oo([a])},g=ve(t,R),f=l.onCommandExecute({id:at.id,params:R});if(n.push({id:H.id,params:R},...f.redos),o.push(...f.undos,{id:H.id,params:g}),a.startColumn<=S.endColumn||a.startRow<=S.endRow){let v=null,p=null;if(c===s.Dimension.COLUMNS&&a.endColumn<S.endColumn){const I=Math.min(a.endRow,S.endRow);let M=0;for(let y=a.startRow;y<=I;y++){const U=h.getRow(y),T=U?s.getArrayLength(U)-1:0;M=Math.max(M,T)}v={startRow:a.startRow,startColumn:a.endColumn+1,endRow:I,endColumn:M};const w=a.endColumn-a.startColumn+1;p={startRow:a.startRow,startColumn:v.startColumn-w,endRow:I,endColumn:v.endColumn-w}}if(c===s.Dimension.ROWS&&a.endRow<S.endRow){const I=Math.min(a.endColumn,S.endColumn),M=S.endRow;v={startRow:a.endRow+1,startColumn:a.startColumn,endRow:M,endColumn:I};const w=a.endRow-a.startRow+1;p={startRow:v.startRow-w,startColumn:a.startColumn,endRow:v.endRow-w,endColumn:I}}if(v&&p){const I=kt(t,{unitId:r,subUnitId:i,range:v},{unitId:r,subUnitId:i,range:p},!0);I&&(n.push(...I.redos),o.push(...I.undos))}}}return{redo:n,undo:o}}function Ws(t,e,n,o,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:l}=e;if(r===s.Dimension.ROWS){const d=c-a+1;for(let m=n;m>=a;m--)for(let h=u;h<=l;h++){const S=t.getValue(m,h);S==null?t.realDeleteValue(m+d,h):t.setValue(m+d,h,S)}for(let m=c;m>=a;m--)for(let h=u;h<=l;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 d=l-u+1;for(let m=a;m<=c;m++)for(let h=o;h>=u;h--){const S=t.getValue(m,h);S==null?t.realDeleteValue(m,h+d):t.setValue(m,h+d,S)}for(let m=a;m<=c;m++)for(let h=l;h>=u;h--)i&&i[m]&&i[m][h]?t.setValue(m,h,i[m][h]):t.realDeleteValue(m,h)}}function Ls(t,e,n,o,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=e,l=a-i+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=n;m++)for(let h=c;h<=u;h++){const S=t.getValue(m+l,h);S==null?t.realDeleteValue(m,h):t.setValue(m,h,S)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let h=c;h<=o;h++){const S=t.getValue(m,h+d);S==null?t.realDeleteValue(m,h):t.setValue(m,h,S)}}const jo="sheet.command.delete-range-move-left",Dt={type:s.CommandType.COMMAND,id:jo,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.SheetsSelectionsService),a=t.get(exports.SheetInterceptorService),c=A(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let h=e==null?void 0:e.range;if(h||(h=(M=i.getCurrentLastSelection())==null?void 0:M.range),!h)return!1;const S={range:h,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},R=a.onCommandExecute({id:Dt.id,params:{range:h}}),{redo:g,undo:f}=rn(t,S),v=[...(w=R.preRedos)!=null?w:[],...g],p=[...R.undos,...f];return v.push(...R.redos),v.push(Ue(h,l,u)),p.push(...(y=R.preUndos)!=null?y:[]),s.sequenceExecute(v,n).result?(o.pushUndoRedo({unitID:m,undoMutations:p.reverse(),redoMutations:v}),!0):!1}},Fo="sheet.command.delete-range-move-up",xt={type:s.CommandType.COMMAND,id:Fo,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.SheetsSelectionsService),a=t.get(exports.SheetInterceptorService),c=A(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let h=e==null?void 0:e.range;if(h||(h=(M=i.getCurrentLastSelection())==null?void 0:M.range),!h)return!1;const S={range:h,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},R=a.onCommandExecute({id:xt.id,params:{range:h}}),{redo:g,undo:f}=rn(t,S),v=[...(w=R.preRedos)!=null?w:[],...g],p=[...R.undos,...f];return v.push(...R.redos),v.push(Ue(h,d,m)),p.push(...(y=R.preUndos)!=null?y:[]),s.sequenceExecute(v,n).result?(o.pushUndoRedo({unitID:u,undoMutations:p.reverse(),redoMutations:v}),!0):!1}},sn=(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}},pe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(t,e)=>{var R;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 l=u.getRowManager().getRowData(),d={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,(R=i[g-r.startRow])!=null?R:d,l):s.insertMatrixArray(g,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,h),!0}},an=(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-col",type:s.CommandType.MUTATION,handler:(t,e)=>{var R;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,l=i.getColumnData(),d=a.startColumn,m=a.endColumn-a.startColumn+1,h=r.getConfig().defaultColumnWidth;for(let g=d;g<d+m;g++){const f={w:h,hd:0};c?s.insertMatrixArray(g,(R=c[g-a.startColumn])!=null?R:f,l):s.insertMatrixArray(g,f,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},Vs=(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}},Me={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 d=i.startRow;d<=i.endRow;d++)r.getRowFiltered(d);const u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.getCellMatrix().removeRows(i.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},$s=(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={},l=e.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:m}},Ce={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}},Bs="sheet.command.insert-range-move-down",At={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.SheetsSelectionsService),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 l=A(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:h,workbook:S}=l;let R=e==null?void 0:e.range;if(R||(R=(B=i.getCurrentLastSelection())==null?void 0:B.range),!R)return!1;const g=[],f=[],v=h.getCellMatrix(),p=v.getDataRange(),M=v.getSlice(p.startRow,p.endRow,R.startColumn,R.endColumn).getDataRange().endRow,w=Math.max(M+(R.endRow-R.startRow+1)-p.endRow,0);if(w>0){const Z=R.startRow-1,Q=h.getRowHeight(Z),X={unitId:d,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}))};g.push({id:pe.id,params:X});const ne=sn(t,X);f.push({id:Me.id,params:ne})}const y={};s.Range.foreach(R,(Z,Q)=>{const X=h.getCell(Z,Q);X&&(y[Z]||(y[Z]={}),y[Z][Q]={s:X.s})});const U={range:R,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:T,undo:P}=on(t,U);g.push(...T),f.push(...P);const O=a.onCommandExecute({id:At.id,params:{range:R}});return g.push(...O.redos),g.push(Ue(R,S,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:d,undoMutations:f.reverse(),redoMutations:g}),!0):!1}},Ho="sheet.command.insert-range-move-right",Wt={type:s.CommandType.COMMAND,id:Ho,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.SheetsSelectionsService),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 l=A(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:h,subUnitId:S}=l;let R=e==null?void 0:e.range;if(R||(R=(B=i.getCurrentLastSelection())==null?void 0:B.range),!R)return!1;const g=[],f=[],v=m.getCellMatrix(),p=v.getDataRange(),M=v.getSlice(R.startRow,R.endRow,p.startColumn,p.endColumn).getDataRange().endColumn,w=Math.max(M+(R.endColumn-R.startColumn+1)-p.endColumn,0);if(w>0){const Z=R.startColumn-1,Q=m.getColumnWidth(Z),X={unitId:h,subUnitId:S,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}))};g.push({id:Ie.id,params:X});const ne=an(t,X);f.push({id:Ce.id,params:ne})}const y={};s.Range.foreach(R,(Z,Q)=>{const X=m.getCell(Z,Q);!X||!X.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:X.s})});const U={range:R,subUnitId:S,unitId:h,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:T,undo:P}=on(t,U);g.push(...T),f.push(...P);const O=a.onCommandExecute({id:Wt.id,params:{range:R}});return g.push(...O.redos),g.push(Ue(R,d,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}},Go="sheet.command.insert-row",Le={type:s.CommandType.COMMAND,id:Go,handler:async(t,e)=>{var U,T,P,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:l,unitId:d,subUnitId:m,cellValue:h}=e,{startRow:S,endRow:R}=u,g=l===s.Direction.UP?S:S-1,f=c.getRowHeight(g),v={unitId:d,subUnitId:m,range:u,rowInfo:new Array(R-S+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},p=sn(t,v),I=[{id:pe.id,params:v}],M=[{id:Me.id,params:p}];h&&I.push({id:H.id,params:{unitId:d,subUnitId:m,cellValue:h}});const w=i.onCommandExecute({id:Le.id,params:e});return I.unshift(...(U=w.preRedos)!=null?U:[]),I.push(...(T=w.redos)!=null?T:[]),I.push(Ue(u,a,c)),M.unshift(...(P=w.preUndos)!=null?P:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(I,n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M,redoMutations:I}),!0):!1}},qo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async t=>{var h;const n=(h=t.get(exports.SheetsSelectionsService).getCurrentSelections())==null?void 0:h.map(S=>S.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(),l=o.endRow-o.startRow+1,d={};s.Range.foreach(o,(S,R)=>{const g=a.getCell(S,R);!g||!g.s||(d[S]||(d[S]={}),d[S][R]={s:g.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:o.startRow,endRow:o.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:d};return t.get(s.ICommandService).executeCommand(Le.id,m)}},zo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async t=>{var m;const n=(m=t.get(exports.SheetsSelectionsService).getCurrentSelections())==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(),l=o.endRow-o.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:o.endRow+1,endRow:o.endRow+l,startColumn:0,endColumn:a.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW}};return t.get(s.ICommandService).executeCommand(Le.id,d)}},Yo="sheet.command.insert-col",Ve={type:s.CommandType.COMMAND,id:Yo,handler:async(t,e)=>{var U,T,P,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:l,cellValue:d}=e,{startColumn:m,endColumn:h}=e.range,S=r.getUniverSheetInstance(e.unitId),R=S.getSheetBySheetId(e.subUnitId),g=c===s.Direction.LEFT?m:m-1,f=R.getColumnWidth(g),v={unitId:l,subUnitId:u,range:a,colInfo:new Array(h-m+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},p=an(t,v),I=[{id:Ie.id,params:v}],M=[{id:Ce.id,params:p}];d&&I.push({id:H.id,params:{unitId:l,subUnitId:u,cellValue:d}});const w=i.onCommandExecute({id:Ve.id,params:e});return I.unshift(...(U=w.preRedos)!=null?U:[]),I.push(...(T=w.redos)!=null?T:[]),I.push(Ue(a,S,R)),M.unshift(...(P=w.preUndos)!=null?P:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(I,n).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M.filter(Boolean),redoMutations:I.filter(Boolean)}),!0):!1}},Ko={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async t=>{const n=t.get(exports.SheetsSelectionsService).getCurrentSelections();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(),l=o.endColumn-o.startColumn+1,d={};s.Range.foreach(o,(h,S)=>{const R=a.getCell(h,S);!R||!R.s||(d[h]||(d[h]={}),d[h][S]={s:R.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:o.startColumn,endColumn:o.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent(),rangeType:s.RANGE_TYPE.COLUMN},cellValue:d};return t.get(s.ICommandService).executeCommand(Ve.id,m)}},Jo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async t=>{const n=t.get(exports.SheetsSelectionsService).getCurrentSelections();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(),l=o.endColumn-o.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:o.endColumn+1,endColumn:o.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return t.get(s.ICommandService).executeCommand(Ve.id,d)}},Xo={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=so(r,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:c,workbook:u}=a;let l=u.getSheets().length;const d=e==null?void 0:e.sheet,m=d==null?void 0:d.id,h=s.mergeWorksheetSnapshotWithDefault(d||{});e?(l=(f=e.index)!=null?f:l,h.id=m||s.Tools.generateRandomId(),h.name=(d==null?void 0:d.name)||u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`)):(h.id=s.Tools.generateRandomId(),h.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const S={index:l,sheet:h,unitId:c},R=tn(t,S);return n.syncExecuteCommand(Oe.id,S)?(o.pushUndoRedo({unitID:c,undoMutations:[{id:Ke.id,params:R}],redoMutations:[{id:Oe.id,params:S}]}),!0):!1}};function Zo(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 _e={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 l=r.startRow,d=r.endRow-r.startRow+1,m=i.startRow,h=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveRows(l,d,m),!0}};function Qo(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 be={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 l=r.startColumn,d=r.endColumn-r.startColumn+1,m=i.startColumn,h=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveColumns(l,d,m),!0}};function js(t,e){return e.getMergeData().some(n=>n.startRow<t&&t<=n.endRow)}function Fs(t,e){return e.getMergeData().some(n=>n.startColumn<t&&t<=n.endColumn)}const er="sheet.command.move-rows",Lt={id:er,type:s.CommandType.COMMAND,handler:async(t,e)=>{var Q,X;const o=t.get(exports.SheetsSelectionsService).getCurrentSelections(),{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),l=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),h=d.getSheetId(),S=t.get(s.ErrorService),R=t.get(s.LocaleService),g=a[0].range,f=a[0].primary,v=it(g,d,!1);if(!s.Rectangle.equals(g,v))return S.emit(R.t("sheets.info.partOfCell")),!1;if(js(i,d))return S.emit(R.t("sheets.info.acrossMergedCell")),!1;const p={...g,startRow:i,endRow:i+g.endRow-g.startRow},I={unitId:m,subUnitId:h,sourceRange:g,targetRange:p},M=Zo(t,I),y=i-r<0,U=g.endRow-g.startRow+1,T=y?p:{...p,startRow:p.startRow-U,endRow:p.endRow-U},P={unitId:m,subUnitId:h,selections:[{range:T,primary:ce(T,d),style:null}]},O={unitId:m,subUnitId:h,selections:[{range:g,primary:f,style:null}]},q=t.get(s.ICommandService),B=c.onCommandExecute({id:Lt.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:_e.id,params:I},{id:K.id,params:P},...B.redos],oe=[...(X=B.preUndos)!=null?X:[],{id:_e.id,params:M},{id:K.id,params:O},...B.undos];return s.sequenceExecute(b,q).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},tr="sheet.command.move-cols",Vt={id:tr,type:s.CommandType.COMMAND,handler:async(t,e)=>{var Q,X;const o=t.get(exports.SheetsSelectionsService).getCurrentSelections(),{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),l=t.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),h=d.getSheetId(),S=t.get(s.ErrorService),R=t.get(s.LocaleService),g=a[0].range,f=a[0].primary,v=it(g,d,!1);if(!s.Rectangle.equals(g,v))return S.emit(R.t("sheets.info.partOfCell")),!1;if(Fs(i,d))return S.emit(R.t("sheets.info.acrossMergedCell")),!1;const p={...g,startColumn:i,endColumn:i+g.endColumn-g.startColumn},I={unitId:m,subUnitId:h,sourceRange:g,targetRange:p},M=Qo(t,I),w=g.endColumn-g.startColumn+1,T=i-r<0?p:{...p,startColumn:p.startColumn-w,endColumn:p.endColumn-w},P={unitId:m,subUnitId:h,selections:[{range:T,primary:ce(T,d),style:null}]},O={unitId:m,subUnitId:h,selections:[{range:g,primary:f,style:null}]},q=t.get(s.ICommandService),B=c.onCommandExecute({id:Vt.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:be.id,params:I},{id:K.id,params:P},...B.redos],oe=[...(X=B.preUndos)!=null?X:[],{id:be.id,params:M},{id:K.id,params:O},...B.undos];return s.sequenceExecute(b,q).result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},nr="sheet.command.remove-row",ct={type:s.CommandType.COMMAND,id:nr,handler:async(t,e)=>{var p,I,M,w;const n=t.get(exports.SheetsSelectionsService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=n.getCurrentLastSelection())==null?void 0:p.range),!r)return!1;const i=t.get(s.IUniverInstanceService),a=A(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=a;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)u.getRowFiltered(y)&&m.push(y);const h=[];if(m.length){const y=[r.startRow,...m.map(T=>T+1)],U=[...m.map(T=>T-1),r.endRow];for(let T=y.length-1;T>=0;T--)y[T]<=U[T]&&h.push({startRow:y[T],endRow:U[T],startColumn:r.startColumn,endColumn:r.endColumn})}else h.push(r);const S=[],R=[];h.forEach(y=>{const U={unitId:d,subUnitId:l,range:y},T=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),P={unitId:d,subUnitId:l,cellValue:T.getMatrix()},O=Vs(U,u);S.push({id:Me.id,params:U}),R.unshift({id:pe.id,params:O},{id:H.id,params:P})});const g=o.onCommandExecute({id:ct.id,params:{range:r}}),f=t.get(s.ICommandService);return s.sequenceExecute([...(I=g.preRedos)!=null?I:[],...S,...g.redos,Ue(r,c,u)],f).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=g.preUndos)!=null?M:[],...R,...g.undos],redoMutations:[...(w=g.preRedos)!=null?w:[],...S,...g.redos]}),!0):!1}},or="sheet.command.remove-col",ut={type:s.CommandType.COMMAND,id:or,handler:async(t,e)=>{var p,I,M,w;const n=t.get(exports.SheetsSelectionsService),o=t.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=n.getCurrentLastSelection())==null?void 0:p.range),!r)return!1;const i=t.get(s.IUniverInstanceService),a=A(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=a;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:d,subUnitId:l,range:r},h=$s(t,m),S=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),R={unitId:d,subUnitId:l,cellValue:S.getMatrix()},g=o.onCommandExecute({id:ut.id,params:{range:r}}),f=t.get(s.ICommandService);return s.sequenceExecute([...(I=g.preRedos)!=null?I:[],{id:Ce.id,params:m},...g.redos,Ue(r,c,u)],f).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=g.preUndos)!=null?M:[],{id:Ie.id,params:h},{id:H.id,params:R},...g.undos],redoMutations:[...(w=g.preRedos)!=null?w:[],{id:Ce.id,params:m},...g.redos]}),!0):!1}},cn={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:l,worksheet:d}=a;if(l.getSheets().length<=1)return!1;const m={subUnitId:u,unitId:c,subUnitName:d.getName()},h=io(t,m),S=i.onCommandExecute({id:cn.id,params:{unitId:c,subUnitId:u}}),R=[...(v=S.preRedos)!=null?v:[],{id:Ke.id,params:m},...S.redos],g=[...(p=S.preUndos)!=null?p:[],{id:Oe.id,params:h},...S.undos];return s.sequenceExecute(R,n).result?(o.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:R}),!0):!1}},he=(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}},F={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 l=0;l<c.length;l++)for(let d=a.length-1;d>=0;d--){const m=a[d],h=c[l];s.Rectangle.intersects(m,h)&&u.push(a[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},G={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(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 l=a.length-1;l>=0;l--){const d=a[l],m=c[u];s.Rectangle.intersects(d,m)&&a.splice(l,1)}return!0}},rr={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async t=>{var O;const e=t.get(exports.SheetsSelectionsService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=(O=e.getCurrentSelections())==null?void 0:O.map(q=>q.range);if(!(i!=null&&i.length))return!1;const a=A(r);if(!a)return!1;const{subUnitId:c,unitId:u,worksheet:l}=a,d={unitId:u,subUnitId:c,ranges:i},h=l.getConfig().mergeData.filter(q=>i.some(B=>s.Rectangle.intersects(B,q)));if(!h.length)return!1;const S=ie(t,d),R=e.getCurrentSelections();if(!(R!=null&&R.length))return!1;const g=s.Tools.deepClone(R),f=s.Tools.deepClone(R),v=f[f.length-1],{startRow:p,startColumn:I}=v.range;v.primary={startRow:p,startColumn:I,endRow:p,endColumn:I,actualRow:p,actualColumn:I,isMerged:!1,isMergedMainCell:!1};const M=Hs(l,h),w={unitId:u,subUnitId:c,cellValue:M.redoParams.getMatrix()},y={unitId:u,subUnitId:c,cellValue:M.undoParams.getMatrix()},U=[{id:G.id,params:S},{id:H.id,params:w},{id:K.id,params:{selections:f}}],T=[{id:F.id,params:S},{id:H.id,params:y},{id:K.id,params:{selections:g}}];return s.sequenceExecute(U,n)?(o.pushUndoRedo({unitID:u,undoMutations:T,redoMutations:U}),!0):!1}};function Hs(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,l=t.getCellMatrix().getValue(i,a);if(l!=null&&l.s)for(let d=i;d<=u;d++)for(let m=a;m<=c;m++)(d!==i||m!==a)&&(n.setValue(d,m,{s:l.s}),o.setValue(d,m,null))}),{redoParams:n,undoParams:o}}class $e{constructor(){C(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new J.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 ht(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 sr={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),l=t.get($e);return l.setType(i),l.setColor(a),l.setStyle(c),u.executeCommand(Je.id,{unitId:n,subUnitId:o})}},ir={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($e).setType(e.value),n.executeCommand(Je.id)}},ar={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get($e).setStyle(e.value),n.executeCommand(Je.id)}},cr={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(t,e)=>{const n=t.get(s.ICommandService);return t.get($e).setColor(e.value),n.executeCommand(Je.id)}},Je={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(t,e)=>{var Vn;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetsSelectionsService),a=t.get($e),c=A(r,e);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=(Vn=i.getCurrentSelections())==null?void 0:Vn.map(D=>D.range),h=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:S,color:R,type:g,activeBorderType:f}=a.getBorderInfo();if(!f)return!1;const v=g===s.BorderType.TOP||g===s.BorderType.ALL||g===s.BorderType.OUTSIDE,p=g===s.BorderType.LEFT||g===s.BorderType.ALL||g===s.BorderType.OUTSIDE,I=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,U=g.indexOf("tlbr")>-1,T=g.indexOf("tlbc")>-1,P=g.indexOf("tlmr")>-1,O=g.indexOf("bltr")>-1,q=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},X={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},An={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.startColumn},Wn={startRow:b.endRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn},Ln={startRow:b.startRow,startColumn:b.endColumn,endRow:b.endRow,endColumn:b.endColumn},$=new s.ObjectMatrix,Y={s:S,cl:{rgb:R}},lt=(D,k)=>{let j=null;return h.forEach(re=>{s.Rectangle.intersects(re,{startColumn:k,endColumn:k,startRow:D,endRow:D})&&(j=re)}),j};function z(D,k,j){D.startRow<0||D.startColumn<0||ht(D,(re,le)=>{var N,Xe;const se=lt(re,le);let ue=k;if(se&&(k.bc_tr||k.ml_tr||k.bl_tr||k.tl_mr||k.tl_bc||k.tl_br)){if(j){const me=s.Tools.deepClone((N=$.getValue(se.startRow,se.startColumn))==null?void 0:N.s);ue=me!=null&&me.bd?Object.assign(me.bd,k):k}$.setValue(se.startRow,se.startColumn,{s:{bd:ue}})}else{if(j){const me=s.Tools.deepClone((Xe=$.getValue(re,le))==null?void 0:Xe.s);ue=me!=null&&me.bd?Object.assign(me.bd,k):k}$.setValue(re,le,{s:{bd:ue}})}})}v&&(z(oe,{b:null}),z(ne,{t:s.Tools.deepClone(Y)},!0)),I&&(z(Q,{t:null}),z(Wn,{b:s.Tools.deepClone(Y)},!0)),p&&(z(Z,{r:null}),z(An,{l:s.Tools.deepClone(Y)},!0)),M&&(z(X,{l:null}),z(Ln,{r:s.Tools.deepClone(Y)},!0)),U&&z(b,{tl_br:s.Tools.deepClone(Y)},!0),T&&z(b,{tl_bc:s.Tools.deepClone(Y)},!0),P&&z(b,{tl_mr:s.Tools.deepClone(Y)},!0),O&&z(b,{bl_tr:s.Tools.deepClone(Y)},!0),q&&z(b,{ml_tr:s.Tools.deepClone(Y)},!0),B&&z(b,{bc_tr:s.Tools.deepClone(Y)},!0),w&&ht(b,(D,k)=>{var re,le,se,ue;const j=lt(D,k);if(j){if(j.endColumn!==b.endColumn){const N=(re=$.getValue(j.startRow,j.startColumn))==null?void 0:re.s;$.setValue(D,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(j.startColumn!==b.startColumn){const N=(le=$.getValue(j.startRow,j.startColumn))==null?void 0:le.s;$.setValue(D,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(D,k))==null?void 0:se.s;$.setValue(D,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(D,k))==null?void 0:ue.s;$.setValue(D,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}}),y&&ht(b,(D,k)=>{var re,le,se,ue;const j=lt(D,k);if(j){if(j.endRow!==b.endRow){const N=(re=$.getValue(j.startRow,j.startColumn))==null?void 0:re.s;$.setValue(D,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(j.startRow!==b.startRow){const N=(le=$.getValue(j.startRow,j.startColumn))==null?void 0:le.s;$.setValue(D,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}else{if(D!==b.endRow){const N=(se=$.getValue(D,k))==null?void 0:se.s;$.setValue(D,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(D!==b.startRow){const N=(ue=$.getValue(D,k))==null?void 0:ue.s;$.setValue(D,k,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}}),!v&&!I&&!p&&!M&&!w&&!y&&!U&&!T&&!P&&!O&&!q&&!B&&(z(oe,{b:null}),z(ne,{t:null},!0),z(Q,{t:null}),z(Wn,{b:null},!0),z(Z,{r:null}),z(An,{l:null},!0),z(X,{l:null}),z(Ln,{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),ht(b,(D,k)=>{var re,le,se,ue,N,Xe,me,$n;const j=lt(D,k);if(j){if(j.endColumn!==b.endColumn){const W=(re=$.getValue(j.startRow,j.startColumn))==null?void 0:re.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{r:null}):{r:null}}})}if(j.startColumn!==b.startColumn){const W=(le=$.getValue(j.startRow,j.startColumn))==null?void 0:le.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{l:null}):{l:null}}})}if(j.endRow!==b.endRow){const W=(se=$.getValue(j.startRow,j.startColumn))==null?void 0:se.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{b:null}):{b:null}}})}if(j.startRow!==b.startRow){const W=(ue=$.getValue(j.startRow,j.startColumn))==null?void 0:ue.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{t:null}):{t:null}}})}}else{if(k!==b.endColumn){const W=(N=$.getValue(D,k))==null?void 0:N.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{r:null}):{r:null}}})}if(k!==b.startColumn){const W=(Xe=$.getValue(D,k))==null?void 0:Xe.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{l:null}):{l:null}}})}if(D!==b.endRow){const W=(me=$.getValue(D,k))==null?void 0:me.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{b:null}):{b:null}}})}if(D!==b.startRow){const W=($n=$.getValue(D,k))==null?void 0:$n.s;$.setValue(D,k,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{t:null}):{t:null}}})}}}));const Gt={unitId:l,subUnitId:d,cellValue:$.getData()},es=ve(t,Gt);return n.syncExecuteCommand(H.id,Gt)?(o.pushUndoRedo({unitID:l,undoMutations:[{id:H.id,params:es}],redoMutations:[{id:H.id,params:Gt}]}),!0):!1}},Gs=(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}},Fe={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}},qs=(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-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}},$t={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(t,e)=>{var v,p;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:l}=u,d={unitId:n,subUnitId:o,ranges:r},m={unitId:n,subUnitId:o,selections:r.map(I=>({range:I,primary:ce(I,l),style:null}))},h=qs(t,d),S={unitId:n,subUnitId:o,selections:dr(r).map(I=>({range:I,primary:ce(I,l),style:null}))},R=s.sequenceExecute([{id:He.id,params:d},{id:K.id,params:m}],a),g=i.onCommandExecute({id:$t.id,params:e}),f=s.sequenceExecute([...g.redos],a);return R.result&&f.result&&t.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Fe.id,params:h},{id:K.id,params:S},...(v=g.undos)!=null?v:[]],redoMutations:[...(p=g.preRedos)!=null?p:[],{id:He.id,params:d},{id:K.id,params:m},...g.redos]}),!0}},ur={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async t=>{var l;const e=t.get(exports.SheetsSelectionsService),n=t.get(s.ICommandService),o=(l=e.getCurrentSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=A(t.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:i,unitId:a,subUnitId:c}=r,u=o.map(d=>i.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.executeCommand($t.id,{unitId:a,subUnitId:c,ranges:u})}},un={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async t=>{var v,p,I;const e=t.get(exports.SheetsSelectionsService),n=t.get(exports.SheetInterceptorService),o=t.get(s.IUniverInstanceService),r=t.get(s.ICommandService);let i=(v=e.getCurrentSelections())==null?void 0:v.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:l}=a;i=zs(a.worksheet,i);const d={unitId:u,subUnitId:l,ranges:i},m={unitId:u,subUnitId:l,selections:dr(i).map(M=>({range:M,primary:ce(M,c),style:null}))},h=Gs(t,d),S={unitId:u,subUnitId:l,selections:i.map(M=>({range:M,primary:ce(M,c),style:null}))},R=s.sequenceExecute([{id:Fe.id,params:d},{id:K.id,params:m}],r),g=n.onCommandExecute({id:un.id,params:d}),f=s.sequenceExecute([...g.redos],r);return R.result&&f.result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[{id:He.id,params:h},{id:K.id,params:S},...(p=g.undos)!=null?p:[]],redoMutations:[...(I=g.preRedos)!=null?I:[],{id:Fe.id,params:d},{id:K.id,params:m},...g.redos]}),!0):!1}};function zs(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 dr(t){return Ys(t).map(n=>{const o=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:o,endColumn:o}})}function Ys(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 dn=(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}},Ee={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:l}=e;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:l},!0}},lr={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:l,startRow:d,xSplit:m,ySplit:h}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||h>=u.getRowCount())return!1;const S={unitId:a,subUnitId:c,...e},R=dn(t,S);return n.syncExecuteCommand(Ee.id,S)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Ee.id,params:R}],redoMutations:[{id:Ee.id,params:S}]}),!0):!1}},mr={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=dn(t,c);return e.syncExecuteCommand(Ee.id,c)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:u}],redoMutations:[{id:Ee.id,params:c}]}),!0):!1}},Ks=(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-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}},Js=(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-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 v,p,I;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:l}=u,d={unitId:n,subUnitId:o,ranges:r},m={unitId:n,subUnitId:o,selections:r.map(M=>({range:M,primary:ce(M,l),style:null}))},h=Ks(t,d),S={unitId:n,subUnitId:o,selections:gr(r).map(M=>({range:M,primary:ce(M,l),style:null}))},R=s.sequenceExecute([{id:Ge.id,params:d},{id:K.id,params:m}],i),g=c.onCommandExecute({id:Bt.id,params:e}),f=s.sequenceExecute([...g.redos],i);return R.result&&f.result&&a.pushUndoRedo({unitID:n,undoMutations:[...(v=g.preUndos)!=null?v:[],{id:qe.id,params:h},{id:K.id,params:S},...(p=g.undos)!=null?p:[]],redoMutations:[...(I=g.preRedos)!=null?I:[],{id:Ge.id,params:d},{id:K.id,params:m},...g.redos]}),!0}},hr={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async t=>{var d;const e=t.get(exports.SheetsSelectionsService),n=t.get(s.IUniverInstanceService),o=t.get(s.ICommandService),r=(d=e.getCurrentSelections())==null?void 0:d.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,l=r.map(m=>a.getHiddenRows(m.startRow,m.endRow)).flat();return o.executeCommand(Bt.id,{unitId:c,subUnitId:u,ranges:l})}},ln={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async t=>{var v,p,I,M,w;const e=t.get(exports.SheetsSelectionsService),n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(s.IUniverInstanceService),i=t.get(exports.SheetInterceptorService);let a=(v=e.getCurrentSelections())==null?void 0:v.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=Xs(c.worksheet,a);const{unitId:u,subUnitId:l,worksheet:d}=c,m={unitId:u,subUnitId:l,ranges:a},h={unitId:u,subUnitId:l,selections:gr(a).map(y=>({range:y,primary:ce(y,d),style:null}))},S=Js(t,m),R={unitId:u,subUnitId:l,selections:a.map(y=>({range:y,primary:ce(y,d),style:null}))},g=i.onCommandExecute({id:ln.id,params:m});return s.sequenceExecute([...(p=g.preRedos)!=null?p:[],{id:qe.id,params:m},{id:K.id,params:h},...g.redos],n).result&&o.pushUndoRedo({unitID:u,undoMutations:[...(I=g.preUndos)!=null?I:[],{id:Ge.id,params:S},{id:K.id,params:R},...(M=g.undos)!=null?M:[]],redoMutations:[...(w=g.preRedos)!=null?w:[],{id:qe.id,params:m},{id:K.id,params:h},...g.redos]}),!0}};function Xs(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 gr(t){return Zs(t).map(n=>{const o=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:o,endRow:o}})}function Zs(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)=>{var w;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,l=t.get(s.ICommandService),d=t.get(s.IUndoRedoService),m=t.get(exports.SheetsSelectionsService),h=c?[c]:(w=m.getCurrentSelections())==null?void 0:w.map(y=>y.range);if(!(h!=null&&h.length))return!1;const S=new s.ObjectMatrix,R=Ns(a);if(s.Tools.isArray(u.value))for(let y=0;y<h.length;y++)R.forOperableEach(h[y],(U,T,P)=>{S.setValue(U,T,{s:{[u.type]:u.value[U-P.startRow][T-P.startColumn]}})});else for(let y=0;y<h.length;y++){const U={s:{[u.type]:u.value}};R.forOperableEach(h[y],(T,P)=>S.setValue(T,P,U))}const g={subUnitId:i,unitId:r,cellValue:S.getMatrix()},f=ve(t,g),v=l.syncExecuteCommand(H.id,g),{undos:p,redos:I}=t.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),M=s.sequenceExecute([...I],l);return v&&M.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:H.id,params:f},...p],redoMutations:[{id:H.id,params:g},...I]}),!0):!1}},Qs={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async t=>{const e=t.get(exports.SheetsSelectionsService).getCurrentLastSelection();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)}},ei={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async t=>{const e=t.get(exports.SheetsSelectionsService).getCurrentLastSelection();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)}},ti={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async t=>{const e=t.get(exports.SheetsSelectionsService).getCurrentLastSelection();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)}},ni={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async t=>{const e=t.get(exports.SheetsSelectionsService).getCurrentLastSelection();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)}},oi={type:s.CommandType.COMMAND,id:"sheet.command.set-overline",handler:async t=>{const e=t.get(exports.SheetsSelectionsService).getCurrentLastSelection();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)}},ri={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)}},si={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)}},Rr={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)}},Sr={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)}},Cr={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)}},fr={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)}},vr={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)}},pr={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)}},Ir={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)}},Mr={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)}},ii=(t,e)=>{const i=t.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:(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}},wr={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=ii(t,c);return n.syncExecuteCommand(tt.id,c)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:tt.id,params:u}],redoMutations:[{id:tt.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}},ai=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)},ai)})}},mn=(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 l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=a.getColumnOrCreate(d);i[d]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},we={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 l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const h=a.getColumnOrCreate(m);typeof e.colWidth=="number"?h.w=e.colWidth:h.w=(u=e.colWidth[m-d.startColumn])!=null?u:i}}return!0}},hn={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(t,e)=>{const o=t.get(exports.SheetsSelectionsService).getCurrentSelections();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:l}=a,{anchorCol:d,deltaX:m}=e,S=c.getColumnWidth(d)+m,R=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,g=o.filter(U=>U.range.rangeType===s.RANGE_TYPE.COLUMN),f=R?s.RANGE_TYPE.ALL:g.some(({range:U})=>{const{startColumn:T,endColumn:P}=U;return T<=d&&d<=P})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let v;if(f===s.RANGE_TYPE.ALL){const U=c.getRowCount(),T=new Array(c.getColumnCount()).fill(void 0).map((P,O)=>({startRow:0,endRow:U-1,startColumn:O,endColumn:O}));v={subUnitId:l,unitId:u,colWidth:S,ranges:T}}else f===s.RANGE_TYPE.COLUMN?v={subUnitId:l,unitId:u,ranges:g.map(U=>s.Rectangle.clone(U.range)),colWidth:S}:v={subUnitId:l,unitId:u,colWidth:S,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const{undos:p,redos:I}=t.get(exports.SheetInterceptorService).onCommandExecute({id:hn.id,params:v}),M=mn(t,v),w=r.syncExecuteCommand(we.id,v),y=s.sequenceExecute([...I],r);return w&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:we.id,params:M},...p],redoMutations:[{id:we.id,params:v},...I]}),!0}},yt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(t,e)=>{var v,p,I;const n=t.get(exports.SheetsSelectionsService),o=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(exports.SheetInterceptorService),a=(v=n.getCurrentSelections())==null?void 0:v.map(M=>M.range);if(!(a!=null&&a.length))return!1;const c=A(t.get(s.IUniverInstanceService));if(!c)return!1;const{subUnitId:u,unitId:l}=c,d={subUnitId:u,unitId:l,ranges:a,colWidth:e.value},m=mn(t,d),h=o.syncExecuteCommand(we.id,d),{undos:S,redos:R}=t.get(exports.SheetInterceptorService).onCommandExecute({id:yt.id,params:d}),g=i.onCommandExecute({id:yt.id,params:d}),f=s.sequenceExecute([...R,...g.redos],o);return h&&f.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(p=g.preUndos)!=null?p:[],{id:we.id,params:m},...S],redoMutations:[...(I=g.preRedos)!=null?I:[],{id:we.id,params:d},...R]}),!0):!1}},yr=(t,e)=>{const n=Pt(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()}},ke={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}},_r={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:l,subUnitId:d}=a;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const h={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},S=yr(t,h);return c.getSheets().filter(v=>v.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):n.syncExecuteCommand(ke.id,h)?(o.pushUndoRedo({unitID:l,undoMutations:[{id:ke.id,params:S}],redoMutations:[{id:ke.id,params:h}]}),!0):!1}},ci=(t,e)=>{const n=Pt(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()}},_t={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}},gn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(t,e)=>{var R,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},l=ci(t,u),d=r.onCommandExecute({id:gn.id,params:e}),m=[...(R=d.preRedos)!=null?R:[],{id:_t.id,params:u},...d.redos],h=[...(g=d.preUndos)!=null?g:[],{id:_t.id,params:l},...d.undos];return await s.sequenceExecute(m,n).result?(o.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},ui=(t,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),nt={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}},br={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,l={fromOrder:i.getConfig().sheetOrder.indexOf(c),toOrder:e.order,unitId:a,subUnitId:c},d=ui(t,l);return n.syncExecuteCommand(nt.id,l)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:nt.id,params:d}],redoMutations:[{id:nt.id,params:l}]}),!0):!1}},di=2e3,Ur=(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={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let h=d;h<m+1;h++){const S=l.getRowOrCreate(h);u[h]=S.h}return{unitId:n,subUnitId:o,ranges:r,rowHeight:u}},Rn=(t,e)=>{const{unitId:n,subUnitId:o,ranges:r}=e,c=t.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(o),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let h=d;h<=m;h++){const S=l.getRowOrCreate(h);u[h]=S.ia}return{unitId:n,subUnitId:o,ranges:r,autoHeightInfo:u}},li=(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=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:h}=l.getRowOrCreate(m);u.push({row:m,autoHeight:h})}return{unitId:n,subUnitId:o,rowsAutoHeightInfo:u}},ye={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 l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:h,endRow:S}of r)for(let R=h;R<=S;R++){const g=d.getRowOrCreate(R);typeof i=="number"?g.h=i:g.h=(m=i[R])!=null?m:l,g.h=Math.min(di,g.h)}return!0}},ge={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 l=void 0,d=u.getRowManager();for(const{startRow:h,endRow:S}of r)for(let R=h;R<=S;R++){const g=d.getRowOrCreate(R);typeof i=="number"?g.ia=i:g.ia=(m=i[R-h])!=null?m:l}return!0}},Sn={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:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},Cn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(t,e)=>{var P,O;const o=t.get(exports.SheetsSelectionsService).getCurrentSelections(),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:l,deltaY:d}=e,h=a.getRowHeight(l)+d,S=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,R=o.filter(q=>q.range.rangeType===s.RANGE_TYPE.ROW),g=S?s.RANGE_TYPE.ALL:R.some(({range:q})=>{const{startRow:B,endRow:b}=q;return B<=l&&l<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(g===s.RANGE_TYPE.ALL){const q=a.getRowCount(),B=new Array(a.getColumnCount()).fill(void 0).map((b,oe)=>({startRow:oe,endRow:oe,startColumn:0,endColumn:q-1}));f={subUnitId:c,unitId:u,rowHeight:h,ranges:B}}else g===s.RANGE_TYPE.ROW?f={subUnitId:c,unitId:u,ranges:R.map(q=>s.Rectangle.clone(q.range)),rowHeight:h}:f={subUnitId:c,unitId:u,rowHeight:h,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const v=Ur(t,f),p={unitId:u,subUnitId:c,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},I=Rn(t,p),M=t.get(s.ICommandService),w=t.get(s.IUndoRedoService),y=r.onCommandExecute({id:Cn.id,params:f}),U=s.sequenceExecute([{id:ye.id,params:f},{id:ge.id,params:p}],M),T=s.sequenceExecute([...y.redos],M);return U.result&&T.result?(w.pushUndoRedo({unitID:u,undoMutations:[...(P=y.preUndos)!=null?P:[],{id:ye.id,params:v},{id:ge.id,params:I},...y.undos],redoMutations:[...(O=y.preRedos)!=null?O:[],{id:ye.id,params:f},{id:ge.id,params:p},...y.redos]}),!0):!1}},fn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(t,e)=>{var p,I,M;const n=t.get(exports.SheetsSelectionsService),o=t.get(s.ICommandService),r=t.get(s.IUndoRedoService),i=t.get(s.IUniverInstanceService),a=t.get(exports.SheetInterceptorService),c=(p=n.getCurrentSelections())==null?void 0:p.map(w=>w.range);if(!(c!=null&&c.length))return!1;const u=A(i);if(!u)return!1;const{unitId:l,subUnitId:d}=u,m={subUnitId:d,unitId:l,ranges:c,rowHeight:e.value},h=Ur(t,m),S={unitId:l,subUnitId:d,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},R=Rn(t,S),g=s.sequenceExecute([{id:ye.id,params:m},{id:ge.id,params:S}],o),f=a.onCommandExecute({id:fn.id,params:m}),v=s.sequenceExecute([...f.redos],o);return g.result&&v.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(I=f.preRedos)!=null?I:[],{id:ye.id,params:h},{id:ge.id,params:R},...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],{id:ye.id,params:m},{id:ge.id,params:S},...f.redos]}),!0):!1}},vn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(t,e)=>{var p;const n=t.get(s.ICommandService),o=t.get(s.IUndoRedoService),r=t.get(exports.SheetsSelectionsService),i=t.get(s.IUniverInstanceService),a=A(i);if(!a)return!1;const{unitId:c,subUnitId:u,worksheet:l}=a,{anchorRow:d}=e!=null?e:{},m=d!=null?[{startRow:d,endRow:d,startColumn:0,endColumn:l.getMaxColumns()-1}]:(p=r.getCurrentSelections())==null?void 0:p.map(I=>I.range);if(!(m!=null&&m.length))return!1;const h={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},S=Rn(t,h),R=n.syncExecuteCommand(ge.id,h),{undos:g,redos:f}=t.get(exports.SheetInterceptorService).onCommandExecute({id:vn.id,params:h}),v=s.sequenceExecute([...f],n);return R&&v.result?(o.pushUndoRedo({unitID:c,undoMutations:[{id:ge.id,params:S},...g],redoMutations:[{id:ge.id,params:h},...f]}),!0):!1}},Tr={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 l=u.getSheetBySheetId(o);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:n,subUnitId:o,hidden:s.BooleanNumber.FALSE},h=yr(t,m),S=r.syncExecuteCommand(ke.id,m),R={unitId:n,subUnitId:o},g=r.syncExecuteCommand(dt.id,R);return S&&g?(i.pushUndoRedo({unitID:n,undoMutations:[{id:ke.id,params:h}],redoMutations:[{id:ke.id,params:m}]}),!0):!1}},Pr=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},Er=t=>{const e=t;return e.forValue((n,o)=>{const r=t.getValue(n-1,o);r&&e.setValue(n,o,r+1)}),e},Fn=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 l=r-1;l>=0&&t.getValue(o,l);l--){c=Math.min(t.getValue(o,l)||0,c),a++;const d=c*a;u.startColumn=l,u.startRow=o-c+1,n(d,u)}}),e},mi=(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),pn=t=>{const e=[];let n=Fn(t);for(;n.area>0;)n.range&&(e.push(n.range),mi(t,n.range)),n=Fn(t);return e},In=t=>{const e=Pr(t);return pn(e)};class hi{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=Er(this._matrix);return pn(e)}}const Be=V.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Be);const gi=(t,e)=>{const n=t.get(Be),{values:o,unitId:r,subUnitId:i}=e,a=[],c=[];Object.keys(o).forEach(l=>{o[l].ranges.forEach(m=>{s.Range.foreach(m,(h,S)=>{const R=n.getValue(r,i,h,S);R?a.push({pattern:R.pattern,row:h,col:S}):c.push({startColumn:S,endColumn:S,startRow:h,endRow:h})})})});const u=[];if(a.length){const l=bt(r,i,a);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=In(m.ranges)}),u.push({id:Ft.id,params:bt(r,i,a)})}return c.length&&u.push({id:Mn.id,params:{unitId:r,subUnitId:i,ranges:c}}),u},Ft={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,l)=>{const d=o[l],m=n[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},Mn={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}},Ri=(t,e)=>{const n=t.get(Be),{ranges:o,unitId:r,subUnitId:i}=e,a=[];if(o.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=n.getValue(r,i,l,d);m&&a.push({pattern:m.pattern,row:l,col:d})})}),!a.length)return[];const c=bt(r,i,a);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=In(l.ranges)}),[{id:Ft.id,params:c}]},bt=(t,e,n)=>{const o=ys(n,"pattern"),r={},i={},a=_s();return Object.keys(o).forEach(c=>{const u=o[c],l=a();r[l]={pattern:c},u.forEach(d=>{i[l]||(i[l]={ranges:[]}),i[l].ranges.push(s.cellToRange(d.row,d.col))})}),{unitId:t,subUnitId:e,refMap:r,values:i}},kr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},Nr={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}},Or={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}},Dr={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}},xr={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},wn={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}},yn={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(t,e)=>{var l;if(!t.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const i=t.get(exports.SheetInterceptorService).onCommandExecute({id:yn.id,params:e}),a={name:e.name,unitId:e.unitId},c=[...(l=i.preRedos)!=null?l:[],{id:wn.id,params:a},...i.redos],u=t.get(s.ICommandService);return s.sequenceExecute(c,u).result}};var Si=Object.defineProperty,Ci=Object.getOwnPropertyDescriptor,fi=(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&&Si(e,n,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new J.Subject);C(this,"_ruleRefresh",new J.Subject);C(this,"_resetOrder",new J.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new J.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=fi([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionRuleModel)],exports.WorksheetProtectionRuleModel);const Ar={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}},Wr={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}},Lr={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 vi=Object.defineProperty,pi=Object.getOwnPropertyDescriptor,Ii=(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&&vi(e,n,r),r};exports.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new J.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new J.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new J.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,l)=>(u.set(l.id,l),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=Ii([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const Te=()=>[nn,Ro],ot=()=>[mo,Mo,Io,bo,yo,vo,fo,po,_o,ho,go,Co,So,wo],Mi=[_.Copy,_.DeleteColumn,_.DeleteRow,_.EditExtraObject,_.Filter,_.InsertColumn,_.InsertRow,_.InsertHyperlink,_.PivotTable,_.SetCellStyle,_.SetCellValue,_.SetColumnStyle,_.SetRowStyle,_.Sort];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};exports.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new J.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=_i([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var bi=Object.defineProperty,Ui=Object.getOwnPropertyDescriptor,Ti=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ui(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},Ne=(t,e)=>(n,o)=>e(n,o,t);const Pi="SHEET_WORKSHEET_PROTECTION_PLUGIN",Ei="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(),...ot()].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=>{[Nt,Ot].forEach(l=>{const d=new l(o,a,u.permissionId);this._permissionService.deletePermissionPoint(d.id)})}),[...Te(),...ot()].forEach(u=>{const l=new u(o,a);this._permissionService.deletePermissionPoint(l.id)})})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(n=>{e(n)}),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(Qe.takeUntil(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(Qe.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:Pi,businesses:[wt.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:Ei,businesses:[wt.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=Ti([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetPermissionService),Ne(0,V.Inject(s.IPermissionService)),Ne(1,V.Inject(s.IUniverInstanceService)),Ne(2,V.Inject(V.Injector)),Ne(3,V.Inject(exports.WorksheetProtectionRuleModel)),Ne(4,V.Inject(exports.WorksheetProtectionPointModel)),Ne(5,V.Inject(s.IResourceManagerService)),Ne(6,V.Inject(exports.RangeProtectionRuleModel))],exports.WorksheetPermissionService);const _n={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}},Vr={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(_n.id,{rule:o,unitId:o.unitId,subUnitId:o.subUnitId}),!0}},ki=(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:Ye.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:o}}},ze={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}},Ni=t=>{const e={...t,ruleIds:t.rules.map(n=>n.id)};return{id:ze.id,params:e}},Ye={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}},bn={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:l,name:d,description:m}=i,h=[{ranges:l,permissionId:a,id:r.createRuleId(c,u),name:d,description:m,unitType:i.unitType,unitId:c,subUnitId:u}];if(await n.executeCommand(Ye.id,{unitId:c,subUnitId:u,rules:h})){const R=[{id:Ye.id,params:{unitId:c,subUnitId:u,rules:h}}],g=[{id:ze.id,params:{unitId:c,subUnitId:u,ruleIds:h.map(f=>f.id)}}];o.pushUndoRedo({unitID:c,redoMutations:R,undoMutations:g})}return!0}},$r={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(ze.id,c)&&o.pushUndoRedo({unitID:r,redoMutations:[{id:ze.id,params:c}],undoMutations:[{id:Ye.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}},Oi=(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},Un={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:l,ranges:d,name:m,description:h}=i;if(i.id){const S={unitId:u,subUnitId:l,ruleId:i.id,rule:{ranges:d,permissionId:a,id:o.createRuleId(u,l),name:m,description:h}};if(await n.executeCommand(ee.id,S)){const g=[{id:ee.id,params:S}],f=[{id:ee.id,params:{unitId:u,subUnitId:l,ruleId:i.id,rule:c}}];r.pushUndoRedo({unitID:u,redoMutations:g,undoMutations:f})}}return!0}},Br=t=>{const{order:e}=t,n={};return Object.keys(e).forEach(o=>{n[e[Number(o)]]=Number(o)}),{...t,order:n}},rt={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 l=new s.ObjectMatrix;s.Range.foreach(r,(m,h)=>{if(i.hasOwnProperty(m)){const S=i[m],R=s.Tools.deepClone(u.getCellRaw(S,h));l.setValue(m,h,R)}});const d=u.getCellMatrix();return l.forValue((m,h,S)=>{d.setValue(m,h,S)}),!0}},jr="sheet.command.reorder-range",Tn={id:jr,type:s.CommandType.COMMAND,handler:(t,e)=>{var R,g;const{subUnitId:n,unitId:o,range:r,order:i}=e,a=t.get(s.ICommandService),c={id:rt.id,params:{unitId:o,subUnitId:n,order:i,range:r}},u={id:rt.id,params:Br(c.params)},d=t.get(exports.SheetInterceptorService).onCommandExecute({id:Tn.id,params:e}),m=[...(R=d.preRedos)!=null?R:[],c,...d.redos],h=[...(g=d.preUndos)!=null?g:[],u,...d.undos];return s.sequenceExecute(m,a).result?(t.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},Fr="maxCellsPerSheet",Di=3e6,Hr="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var xi=Object.defineProperty,Ai=Object.getOwnPropertyDescriptor,Wi=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ai(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},zt=(t,e)=>(n,o)=>e(n,o,t);let ft=class extends s.Disposable{constructor(t,e,n){var r;super(),this._commandService=t,this._configService=e,this._dataSyncPrimaryController=n,[H,Ie,pe,Oe,De,_e,be,Ce,Me,Ke,G,Mn,F,wn,_t,Ft,rt,kr].forEach(i=>{var a;this._commandService.registerCommand(i),(a=this._dataSyncPrimaryController)==null||a.registerSyncingMutations(i)}),((r=this._configService.getConfig(Hr))!=null?r:!1)||[Ut,en,Tt,ao,Dt,xt,hn,Cn,Jo,Ko,Ve,At,Wt,zo,qo,Le,Xo,Vt,Et,Lt,ut,ct,cn,Tn,rr,fr,Sr,Cr,sr,cr,Je,ir,ar,un,Fe,He,yt,mr,lr,Ee,pr,at,fn,ln,qe,Ge,ur,hr,$t,Bt,te,wr,tt,Rr,Mr,Ir,vr,yn,jt,dt,we,_r,ke,gn,br,nt,Sn,ye,vn,ge,K,xr,Nr,Or,Dr,Tr,Vr,Ar,Wr,Lr,_n,bn,$r,Un,Ye,ze,ee].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i))),this._configService.setConfig(Fr,Di)}};ft=Wi([s.OnLifecycle(s.LifecycleStages.Starting,ft),zt(0,s.ICommandService),zt(1,s.IConfigService),zt(2,V.Optional(os.DataSyncPrimaryController))],ft);var Li=Object.defineProperty,Vi=Object.getOwnPropertyDescriptor,$i=(t,e,n,o)=>{for(var r=o>1?void 0:o?Vi(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&&Li(e,n,r),r},Hn=(t,e)=>(n,o)=>e(n,o,t);let vt=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(l=>{const d=c[l];if(d==null)return!0;const m=this._getMergedCellData(a,l,d),h={subUnitId:l,unitId:a,cellValue:m};r.push({id:H.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,l,d)=>{const m=a==null?void 0:a.getValue(u,l),h=ae.handleNumfmtInCell(m,d,r);c.setValue(u,l,h)}),c.clone()}};vt=$i([s.OnLifecycle(s.LifecycleStages.Ready,vt),Hn(0,V.Inject(s.IUniverInstanceService)),Hn(1,s.ICommandService)],vt);const E={MoveRangeCommandId:lo,InsertRowCommandId:Go,InsertColCommandId:Yo,RemoveColCommandId:or,RemoveRowCommandId:nr,DeleteRangeMoveLeftCommandId:jo,DeleteRangeMoveUpCommandId:Fo,InsertRangeMoveDownCommandId:Bs,InsertRangeMoveRightCommandId:Ho,MoveColsCommandId:tr,MoveRowsCommandId:er,ReorderRangeCommandId:jr};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 gt=Number.MAX_SAFE_INTEGER,fe=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=gt),(e.rangeType===s.RANGE_TYPE.ROW||o)&&(e.startColumn=0,e.endColumn=gt),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=gt,e.startRow=0,e.endRow=gt),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}},st=(t,e,n)=>{const o={...n},r={...e},i=(g,f)=>{const v=Math.max(g.start,f.start),p=Math.min(g.end,f.end);return p<v?null:{start:v,end:p}},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}),l=e.start>t.start;if(l){const g=Math.min(t.end,e.start)-t.start+1;r.start-=g,r.end-=g}const d=a(t),m=d,h=i(t,o),S=h&&a(h)>=a(o);if(t.end<o.start)o.start-=d,o.end-=d;else if(h){const g=a(h);if(S){const f=c(o,t),v=u(f,r);o.start=v.start,o.end=v.end}else h.start>t.start?l?(o.end-=g+d,o.start-=d):o.end-=g:l?o.end-=g:o.start>t.start&&o.end>t.end?(o.start-=d,o.end-=d+g):o.end-=g}const R=i(r,o);return S||(r.start<=o.start?(o.start+=m,o.end+=m):R&&(l?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=fe(n),i=fe(o),a=fe(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:L.Delete}]:[{type:L.VerticalMove,step:c.step||0,length:c.length||0}]},Bi=(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,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,l=>l===1)},ji=(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 l;if(o.hasOwnProperty(c)){const d=o[c],m=(l=r.getValue(d,u))!=null?l:0;i.setValue(c,u,m)}}),i.forValue((c,u,l)=>{r.setValue(c,u,l)}),s.queryObjectMatrix(r,c=>c===1)},En=(t,e)=>{const{fromRange:n,toRange:o}=t.params||{};if(!o||!n)return[];const r=fe(n),i=fe(o),a=fe(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:L.Delete}]:[{type:L.HorizontalMove,step:c.step||0,length:c.length||0}]},Fi=(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,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Gr=(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},Hi=(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 S=s.Rectangle.getRelativeRange(e,o);return[s.Rectangle.getPositionRange(S,n)]}const r=new s.ObjectMatrix;s.Range.foreach(e,(S,R)=>{r.setValue(S,R,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(o,e);a&&s.Range.foreach(a,(S,R)=>{r.getValue(S,R)&&(r.setValue(S,R,void 0),i.setValue(S,R,1))});const c=n.startColumn-o.startColumn,u=n.startRow-o.startRow,l={startColumn:n.startColumn-c,endColumn:n.endColumn-c,startRow:n.startRow-u,endRow:n.endRow-u};return l&&s.Range.foreach(l,(S,R)=>{var v;const g=S+u,f=R+c;r.setValue(g,f,(v=i.getValue(S,R))!=null?v:0)}),s.queryObjectMatrix(r,S=>S===1)},xe=(t,e)=>{const n=fe(t),o=fe(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}},kn=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=xe(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},Nn=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=xe(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},Gi=(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[]},Ae=(t,e)=>{const n=fe(t),o=fe(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 qi(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 On=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=Ae(de(n),de(e)),{step:i,length:a}=r;return o.push({type:L.VerticalMove,step:i,length:a}),o},Dn=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=Ae(n,e),{step:i,length:a}=r;return o.push({type:L.HorizontalMove,step:i,length:a}),o},qr=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=Ae(de(n),de(e)),{step:i,length:a}=r;return o.push({type:L.VerticalMove,step:i,length:a}),o},zi=(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(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),a&&s.Range.foreach(a,(l,d)=>{c.setValue(l+o,d,1)}),s.queryObjectMatrix(c,l=>l===1)},zr=(t,e)=>{var c;const n=(c=t.params)==null?void 0:c.range;if(!n)return[];const o=[],r=Ae(n,e),{step:i,length:a}=r;return o.push({type:L.HorizontalMove,step:i,length:a}),o},Yi=(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(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),a&&s.Range.foreach(a,(l,d)=>{c.setValue(l,d+o,1)}),s.queryObjectMatrix(c,l=>l===1)},Yr=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=xe(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},Ki=(t,e)=>{var l;const n=(l=t.params)==null?void 0:l.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,(d,m)=>{u.setValue(d,m-r,1)}),i&&s.Range.foreach(i,(d,m)=>{u.setValue(d,m-r,0)}),a.forEach(d=>{s.Range.foreach(d,(m,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},Kr=(t,e)=>{var i;const n=(i=t.params)==null?void 0:i.range;if(!n)return[];const o=[],r=xe(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},Ji=(t,e)=>{var l;const n=(l=t.params)==null?void 0:l.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,(d,m)=>{u.setValue(d-r,m,1)}),i&&s.Range.foreach(i,(d,m)=>{u.setValue(d-r,m,0)}),a.forEach(d=>{s.Range.foreach(d,(m,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},We=(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},Jr=(t,e)=>{let n=[];switch(e.id){case E.DeleteRangeMoveLeftCommandId:{n=Yr(e,t);break}case E.DeleteRangeMoveUpCommandId:{n=Kr(e,t);break}case E.InsertColCommandId:{n=Dn(e,t);break}case E.InsertRangeMoveDownCommandId:{n=qr(e,t);break}case E.InsertRangeMoveRightCommandId:{n=zr(e,t);break}case E.InsertRowCommandId:{n=On(e,t);break}case E.MoveColsCommandId:{n=En(e,t);break}case E.MoveRangeCommandId:{n=Gr(e,t);break}case E.MoveRowsCommandId:{n=Pn(e,t);break}case E.RemoveColCommandId:{n=kn(e,t);break}case E.RemoveRowCommandId:{n=Nn(e,t);break}case E.ReorderRangeCommandId:{n=Gi(e,t);break}}return We(n,t)},Xi=(t,e,n)=>ea(e,n).some(r=>s.Rectangle.intersects(r,t))?Jr(t,e):t,Zi=(t,e)=>{let n=[];switch(e.id){case E.DeleteRangeMoveLeftCommandId:return Ki(e,t);case E.DeleteRangeMoveUpCommandId:return Ji(e,t);case E.InsertRangeMoveDownCommandId:return zi(e,t);case E.InsertRangeMoveRightCommandId:return Yi(e,t);case E.InsertColCommandId:{n=Dn(e,t);break}case E.InsertRowCommandId:{n=On(e,t);break}case E.MoveColsCommandId:return Fi(e,t);case E.MoveRangeCommandId:return Hi(e,t);case E.MoveRowsCommandId:return Bi(e,t);case E.ReorderRangeCommandId:return ji(e,t);case E.RemoveColCommandId:{n=kn(e,t);break}case E.RemoveRowCommandId:{n=Nn(e,t);break}}return We(n,t)};function Qi(t,e){const{id:n,params:o}=e;let r={length:0,step:0,type:L.Unknown};switch(n){case Ke.id:r.type=L.Delete;break;case _e.id:r=st({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 be.id:r=st({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 Ce.id:r=xe(o.range,t),r?r.type=L.HorizontalMove:r={step:0,length:0,type:L.Delete};break;case Me.id:r=xe(de(o.range),de(t)),r?r.type=L.VerticalMove:r={step:0,length:0,type:L.Delete};break;case pe.id:r=Ae(de(o.range),de(t)),r.type=L.VerticalMove;break;case Ie.id:r=Ae(o.range,t),r.type=L.HorizontalMove;break;case De.id:r=qi(new s.ObjectMatrix(o.from).getRange(),new s.ObjectMatrix(o.to).getRange(),t);break}return r?Array.isArray(r)?We(r,t):We([r],t):t}function ea(t,e){var o,r,i,a,c,u;const{selectionManagerService:n}=e;switch(t.id){case E.MoveColsCommandId:{const l=t.params;return[l.fromRange,{...l.toRange,startColumn:l.toRange.startColumn-.5,endColumn:l.toRange.endColumn-.5}]}case E.MoveRowsCommandId:{const l=t.params;return[l.fromRange,{...l.toRange,startRow:l.toRange.startRow-.5,endRow:l.toRange.startRow-.5}]}case E.MoveRangeCommandId:{const l=t;return[l.params.fromRange,l.params.toRange]}case E.InsertRowCommandId:{const d=t.params.range;return[{...d,startRow:d.startRow-.5,endRow:d.endRow-.5}]}case E.InsertColCommandId:{const d=t.params.range;return[{...d,startColumn:d.startColumn-.5,endColumn:d.endColumn-.5}]}case E.RemoveRowCommandId:return[t.params.range];case E.RemoveColCommandId:return[t.params.range];case E.DeleteRangeMoveUpCommandId:case E.InsertRangeMoveDownCommandId:{const d=((o=t.params)==null?void 0:o.range)||((i=(r=n.getCurrentSelections())==null?void 0:r.map(m=>m.range))==null?void 0:i[0]);return d?[d]:[]}case E.DeleteRangeMoveLeftCommandId:case E.InsertRangeMoveRightCommandId:{const d=((a=t.params)==null?void 0:a.range)||((u=(c=n.getCurrentSelections())==null?void 0:c.map(m=>m.range))==null?void 0:u[0]);return d?[d]:[]}case E.ReorderRangeCommandId:{const l=t,{range:d,order:m}=l.params,h=[];for(let S=d.startRow;S<=d.endRow;S++)S in m&&h.push({startRow:S,endRow:S,startColumn:d.startColumn,endColumn:d.endColumn});return h}}}function ta(t){switch(t.id){case be.id:{const e=t.params;return[e.sourceRange,{...e.targetRange,startColumn:e.targetRange.startColumn-.5,endColumn:e.targetRange.startColumn-.5}]}case _e.id:{const e=t.params;return[e.sourceRange,{...e.targetRange,startRow:e.targetRange.startRow-.5,endRow:e.targetRange.startRow-.5}]}case De.id:{const e=t.params;return[new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange()]}case Ie.id:{const n=t.params.range;return[{...n,startColumn:n.startColumn-.5,endColumn:n.startColumn-.5}]}case pe.id:{const n=t.params.range;return[{...n,startRow:n.startRow-.5,endRow:n.startRow-.5}]}case Ce.id:return[t.params.range];case Me.id:return[t.params.range]}}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},Rt=(t,e)=>(n,o)=>e(n,o,t);const sa=s.createInterceptorKey("MERGE_REDO"),ia=s.createInterceptorKey("MERGE_UNDO"),Gn=Math.floor(Number.MAX_SAFE_INTEGER/10);class aa 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=ta(e);if(a!=null&&a.some(c=>s.Rectangle.intersects(c,this._range)))return!1}const n=Qi(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:sa,MERGE_UNDO:ia}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",ca());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=qn(this._univerInstanceService),i=zn(this._univerInstanceService);if(!o||!r||!i)return{redos:[],undos:[],preRedos:[],preUndos:[]};const u=((()=>{switch(n.id){case E.MoveColsCommandId:{const S=n.params,R=Math.min(S.fromRange.startColumn,S.toRange.startColumn);return this._checkRange([{...S.fromRange,startColumn:R,endColumn:o.getColumnCount()-1}],r,i)}case E.MoveRowsCommandId:{const S=n.params,R=Math.min(S.fromRange.startRow,S.toRange.startRow);return this._checkRange([{...S.fromRange,startRow:R,endRow:o.getRowCount()-1}],r,i)}case E.MoveRangeCommandId:{const S=n;return this._checkRange([S.params.fromRange,S.params.toRange],r,i)}case E.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 E.InsertColCommandId:{const R=n.params.range.startColumn,g={startRow:0,endRow:o.getRowCount()-1,startColumn:R,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([g],r,i)}case E.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 E.RemoveColCommandId:{const R=n.params.range.startColumn,g={startRow:0,endRow:o.getRowCount()-1,startColumn:R,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([g],r,i)}case E.DeleteRangeMoveUpCommandId:case E.InsertRangeMoveDownCommandId:{const R=n.params.range||Yn(this._selectionManagerService)[0],g={startRow:R.startRow,startColumn:R.startColumn,endColumn:R.endColumn,endRow:Gn};return this._checkRange([g],r,i)}case E.DeleteRangeMoveLeftCommandId:case E.InsertRangeMoveRightCommandId:{const R=n.params.range||Yn(this._selectionManagerService)[0],g={startRow:R.startRow,startColumn:R.startColumn,endColumn:Gn,endRow:R.endRow};return this._checkRange([g],r,i)}case E.ReorderRangeCommandId:{const S=n,{range:R,order:g}=S.params,f=[];for(let v=R.startRow;v<=R.endRow;v++)v in g&&f.push({startRow:v,endRow:v,startColumn:R.startColumn,endColumn:R.endColumn});return this._checkRange(f,r,i)}}})()||[]).reduce((S,R)=>{const g=R(n);return S.push(g),S},[]).reduce((S,R)=>{var g,f;return S.redos.push(...R.redos),S.undos.push(...R.undos),S.preRedos.push(...(g=R.preRedos)!=null?g:[]),S.preUndos.push(...(f=R.preUndos)!=null?f:[]),S},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],h=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:h,preRedos:l,preUndos:m}}})});C(this,"_checkRange",(n,o,r)=>{const i=Kn(o,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(l=>{const d=a.get(l),m=this._serializer.deserialize(l),h={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn,rangeType:m.rangeType&&+m.rangeType};n.some(S=>s.Rectangle.intersects(S,h))&&d&&d.forEach(S=>{c.add(S)})}),[...c]}return[]});C(this,"registerRefRange",(n,o,r,i)=>{const a=r||qn(this._univerInstanceService),c=i||zn(this._univerInstanceService);if(!a||!c)return s.toDisposable(()=>{});const u=Kn(a,c),l=this._serializer.serialize(n);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(o):d.set(l,new Set([o])),s.toDisposable(()=>{const h=d.get(l);h&&(h.delete(o),h.size||(d.delete(l),d.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 aa(n,o,r,i,a);this._watchRanges.add(u);const l=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(c==null||c.dispose(),c=null)}),d=this.disposeWithMe(l);return s.toDisposable(()=>{d.dispose(),l.dispose()})}};exports.RefRangeService=ra([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),Rt(0,s.ICommandService),Rt(1,V.Inject(exports.SheetInterceptorService)),Rt(2,V.Inject(s.IUniverInstanceService)),Rt(3,V.Inject(exports.SheetsSelectionsService))],exports.RefRangeService);function qn(t){return t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function zn(t){var e;return(e=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:e.getSheetId()}function Yn(t){var e;return((e=t.getCurrentSelections())==null?void 0:e.map(n=>n.range))||[]}function Kn(t,e){return`${t}_${e}`}function ca(){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 ua=Object.defineProperty,da=Object.getOwnPropertyDescriptor,la=(t,e,n,o)=>{for(var r=o>1?void 0:o?da(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},je=(t,e)=>(n,o)=>e(n,o,t);const ma=[Ie.id,pe.id,Ce.id,Me.id],ha=[_e.id,be.id];function xn(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 l=i;l<=a;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};o.push(d)}else if(e===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:i,endRow:a,startColumn:l,endColumn:l};o.push(d)}}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){var r;switch(o.id){case Ut.id:case Tt.id:{const i=n._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=i.getUnitId(),c=i.getActiveSheet();if(!c)return{redos:[],undos:[]};const u=c.getSheetId(),l=c.getConfig().mergeData,d=(r=n._selectionManagerService.getCurrentSelections())==null?void 0:r.map(m=>m.range);if(d&&d.length>0&&d.some(h=>l.some(S=>s.Rectangle.intersects(S,h)))){const h={unitId:a,subUnitId:u,ranges:d},S=ie(n._injector,h),R=[{id:G.id,params:h}],g=[{id:F.id,params:S}];return{redos:R,undos:g}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,o,r){switch(n.id){case E.MoveColsCommandId:{const i=n.params;return this._handleMoveColsCommand(i,o,r)}case E.MoveRowsCommandId:{const i=n.params;return this._handleMoveRowsCommand(i,o,r)}case Le.id:{const i=n.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case Ve.id:{const i=n.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case ut.id:{const i=n.params;return this._handleRemoveColCommand(i,o,r)}case ct.id:{const i=n.params;return this._handleRemoveRowCommand(i,o,r)}case Et.id:{const i=n.params;return this._handleMoveRangeCommand(i,o,r)}case Wt.id:{const i=n.params;return this._handleInsertRangeMoveRightCommand(i,o,r)}case At.id:{const i=n.params;return this._handleInsertRangeMoveDownCommand(i,o,r)}case xt.id:{const i=n.params;return this._handleDeleteRangeMoveUpCommand(i,o,r)}case Dt.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(),l=d=>this.refRangeHandle(d,r,i);u.forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,l,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===jt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;n(c,a)}if(r.id===F.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=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:[]},l={unitId:o,subUnitId:r,ranges:[]},{fromRange:d}=n,{startRow:m,endRow:h}=d;if(c.forEach(g=>{if(m<=g.startRow&&h>=g.endRow){u.ranges.push(g);const f=Pn({id:E.MoveRowsCommandId,params:n},g),v=We(f,g);v&&l.ranges.push(v)}}),u.ranges.length===0)return this._handleNull();const S=ie(this._injector,u),R=he(this._injector,l);return{redos:[{id:G.id,params:u},{id:F.id,params:l}],undos:[{id:G.id,params:R},{id:F.id,params:S}]}}_handleMoveColsCommand(n,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:[]},l={unitId:o,subUnitId:r,ranges:[]},{fromRange:d}=n,{startColumn:m,endColumn:h}=d;if(c.forEach(g=>{if(m<=g.startColumn&&h>=g.endColumn){u.ranges.push(g);const f=En({id:E.MoveColsCommandId,params:n},g),v=We(f,g);v&&l.ranges.push(v)}}),u.ranges.length===0)return this._handleNull();const S=ie(this._injector,u),R=he(this._injector,l);return{redos:[{id:G.id,params:u},{id:F.id,params:l}],undos:[{id:G.id,params:R},{id:F.id,params:S}]}}_handleMoveRangeCommand(n,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(R=>s.Rectangle.intersects(R,n.fromRange)),l=c.filter(R=>s.Rectangle.intersects(R,n.toRange)),d=u.map(R=>s.Rectangle.getRelativeRange(R,n.fromRange)).map(R=>s.Rectangle.getPositionRange(R,n.toRange)),m=xn(d).filter(R=>!c.some(g=>s.Rectangle.equals(R,g))),h=[{id:G.id,params:{unitId:o,subUnitId:r,ranges:u}},{id:G.id,params:{unitId:o,subUnitId:r,ranges:l}},{id:F.id,params:{unitId:o,subUnitId:r,ranges:m}}],S=[{id:G.id,params:{unitId:o,subUnitId:r,ranges:m}},{id:F.id,params:{unitId:o,subUnitId:r,ranges:l}},{id:F.id,params:{unitId:o,subUnitId:r,ranges:u}}];return{redos:h,undos:S}}_handleInsertRowCommand(n,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}=n,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((p,I)=>(u>I.startRow&&u<=I.endRow&&p.push(I),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((p,I)=>{if(u>I.startRow&&u<=I.endRow){const M=l-u+1;I.endRow+=M,this._checkIsMergeCell(I)&&p.push(I)}return p},[]),h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R),f=[{id:G.id,params:h},{id:F.id,params:R}],v=[{id:G.id,params:g},{id:F.id,params:S}];return{redos:f,undos:v}}_handleInsertColCommand(n,o,r){const{range:i}=n,a=Re(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((p,I)=>(u>I.startColumn&&u<=I.endColumn&&p.push(I),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,I)=>{if(u>I.startColumn&&u<=I.endColumn){const M=l-u+1;I.endColumn+=M,this._checkIsMergeCell(I)&&p.push(I)}return p},[]),h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R),f=[{id:G.id,params:h},{id:F.id,params:R}],v=[{id:G.id,params:g},{id:F.id,params:S}];return{redos:f,undos:v}}_handleRemoveColCommand(n,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}=n,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(c,w)&&M.push(w),M),[]);if(d.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&&l>=w.endColumn)return M;u>=w.startColumn&&l<=w.endColumn?w.endColumn-=l-u+1:u<w.startColumn?(w.startColumn=u,w.endColumn-=l-u+1):l>w.endColumn&&(w.endColumn=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R),f=[{id:G.id,params:h}],v=[{id:F.id,params:R}],p=[{id:G.id,params:g}],I=[{id:F.id,params:S}];return{preUndos:p,undos:I,preRedos:f,redos:v}}_handleRemoveRowCommand(n,o,r){const{range:i}=n,a=Re(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(i,w)&&M.push(w),M),[]);if(d.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&&l>=w.endRow)return M;u>=w.startRow&&l<=w.endRow?w.endRow-=l-u+1:u<w.startRow?(w.startRow=u,w.endRow-=l-u+1):l>w.endRow&&(w.endRow=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R),f=[{id:G.id,params:h}],v=[{id:F.id,params:R}],p=[{id:G.id,params:g}],I=[{id:F.id,params:S}];return{preUndos:p,undos:I,preRedos:f,redos:v}}_handleInsertRangeMoveRightCommand(n,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=n.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:v,endRow:p,startColumn:I,endColumn:M}=c;if(s.Rectangle.intersects({startRow:v,startColumn:I,endRow:p,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:v,startColumn:I,endRow:p,endColumn:u},f))){const U=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn+U,endRow:f.endRow,endColumn:f.endColumn+U})}});const h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R);return{redos:[{id:G.id,params:h},{id:F.id,params:R}],undos:[{id:F.id,params:S},{id:G.id,params:g}]}}_handleInsertRangeMoveDownCommand(n,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=n.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:I,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:I,startColumn:M,endRow:u,endColumn:w},p)&&(d.push(p),s.Rectangle.contains({startRow:I,startColumn:M,endRow:u,endColumn:w},p))){const P=y-I+1;m.push({startRow:p.startRow+P,startColumn:p.startColumn,endRow:p.endRow+P,endColumn:p.endColumn})}});const h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R),f=[{id:G.id,params:h},{id:F.id,params:R}],v=[{id:F.id,params:S},{id:G.id,params:g}];return{redos:f,undos:v}}_handleDeleteRangeMoveUpCommand(n,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=n.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:I,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:I,startColumn:M,endRow:u,endColumn:w},p)&&(d.push(p),s.Rectangle.contains({startRow:I,startColumn:M,endRow:u,endColumn:w},p))){const P=y-I+1,O=s.Rectangle.moveVertical(p,-P);m.push(O)}});const h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R),f=[{id:G.id,params:h},{id:F.id,params:R}],v=[{id:F.id,params:S},{id:G.id,params:g}];return{redos:f,undos:v}}_handleDeleteRangeMoveLeftCommand(n,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=n.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:v,endRow:p,startColumn:I,endColumn:M}=c;if(s.Rectangle.intersects({startRow:v,startColumn:I,endRow:p,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:v,startColumn:I,endRow:p,endColumn:u},f))){const U=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn-U,endRow:f.endRow,endColumn:f.endColumn-U})}});const h={unitId:o,subUnitId:r,ranges:d},S=ie(this._injector,h),R={unitId:o,subUnitId:r,ranges:m},g=he(this._injector,R);return{redos:[{id:G.id,params:h},{id:F.id,params:R}],undos:[{id:F.id,params:S},{id:G.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(ha.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,l=c?i.startRow:i.startColumn,d=c?a.startRow:a.startColumn,m=r.getConfig().mergeData,h=[];m.forEach(f=>{let{startRow:v,endRow:p,startColumn:I,endColumn:M,rangeType:w}=f;s.Rectangle.intersects(f,i)||(c?l<v&&d>p?(v-=u,p-=u):l>p&&d<=v&&(v+=u,p+=u):l<I&&d>M?(I-=u,M-=u):l>M&&d<=I&&(I+=u,M+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||h.push({startRow:v,endRow:p,startColumn:I,endColumn:M,rangeType:w})}),r.getConfig().mergeData=h,this.disposableCollection.dispose();const{unitId:S,subUnitId:R}=n.params,g=f=>this.refRangeHandle(f,S,R);h.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,g,S,R))})}if(ma.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"),l=n.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,h=m-d+1,S=[];i.forEach(v=>{let{startRow:p,endRow:I,startColumn:M,endColumn:w,rangeType:y}=v;l?u?d<=p&&(p+=h,I+=h):d<=M&&(M+=h,w+=h):u?m<p&&(p-=h,I-=h):m<M&&(M-=h,w-=h),v.startRow===v.endRow&&v.startColumn===v.endColumn||S.push({startRow:p,endRow:I,startColumn:M,endColumn:w,rangeType:y})}),r.getConfig().mergeData=S,this.disposableCollection.dispose();const{unitId:R,subUnitId:g}=n.params,f=v=>this.refRangeHandle(v,R,g);S.forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,f,R,g))})}}))}};exports.MergeCellController=la([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.SheetsSelectionsService))],exports.MergeCellController);function Re(t,e){return e?t.getUniverSheetInstance(e):t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function Se(t,e){return e?t.getSheetBySheetId(e):t.getActiveSheet()}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},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 l=c.get(u.s);if(l!=null&&l.n)return l.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,l)=>{const d=i.getCellRaw(u,l);if(!d)return;const m=d==null?void 0:d.s,S={...m&&a.get(m)||{}};delete S.n;const R=a.setValue(S);d.s=R})})}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(l=>{s.Range.foreach(l,(d,m)=>{const h=i.getCellRaw(d,m);if(h){const R={...a.getStyleByCell(h)||{},n:{pattern:u.pattern}},g=a.setValue(R);h.s=g;const f=ws(h,u.pattern);h.v!==void 0&&(h.t=f,h.v=Xt(f,h))}else{const S={n:{pattern:u.pattern}},R=a.setValue(S);R&&c.setValue(d,m,{s:R})}})})})}};exports.NumfmtService=Sa([Yt(0,s.IResourceManagerService),Yt(1,s.IUniverInstanceService),Yt(2,s.ILogService)],exports.NumfmtService);const Qt=()=>[To,Eo,Uo,Wo,Vo,ko,Bo,Ao,Oo,xo,Do,Po,Lo,No,$o],Ca=[_.Edit,_.Print,_.Comment,_.View,_.Copy,_.Export,_.ManageCollaborator,_.CreateSheet,_.DeleteSheet,_.RenameSheet,_.HideSheet,_.Duplicate,_.Share,_.MoveSheet,_.CopySheet];var fa=Object.defineProperty,va=Object.getOwnPropertyDescriptor,pa=(t,e,n,o)=>{for(var r=o>1?void 0:o?va(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&&fa(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();Qt().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=>{[Nt,Ot].forEach(u=>{const l=new u(o,i,c.permissionId);this._permissionService.deletePermissionPoint(l.id)})}),[...Te(),...ot()].forEach(c=>{const u=new c(o,i);this._permissionService.deletePermissionPoint(u.id)})}),Qt().forEach(r=>{const i=new r(o);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=pa([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 Ia=Object.defineProperty,Ma=Object.getOwnPropertyDescriptor,wa=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ma(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},Jn=(t,e)=>(n,o)=>e(n,o,t);const ya="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:ya,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=wa([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),Jn(0,ae.IDefinedNamesService),Jn(1,s.IResourceManagerService)],exports.DefinedNameDataController);const Pe=()=>[Ot,Nt],_a=(t="unitId",e="subUnitId",n="permissionId")=>Pe().reduce((o,r)=>{const i=new r(t,e,n);return o[i.subType]=i.value,o},{});var ba=Object.defineProperty,Ua=Object.getOwnPropertyDescriptor,Ta=(t,e,n,o)=>{for(var r=o>1?void 0:o?Ua(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},Xn=(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(Qe.filter(e=>e.type===x.SelectRange),Qe.filter(e=>Pe().some(n=>e instanceof n)),Qe.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 l=[];for(const d of c)if(d.ranges.some(m=>m.startRow<=o&&m.endRow>=o&&m.startColumn<=r&&m.endColumn>=r)){const m=Pe().reduce((h,S)=>{var f;const R=new S(e,n,d.permissionId),g=this._permissionService.getPermissionPoint(R.id);return h[R.subType]=(f=g==null?void 0:g.value)!=null?f:R.value,h},{});l.push({...m,ruleId:d.id,ranges:d.ranges})}return this._cache.set(i,l),l}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=Ta([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),Xn(0,V.Inject(exports.RangeProtectionRuleModel)),Xn(1,V.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var Pa=Object.defineProperty,Ea=Object.getOwnPropertyDescriptor,ka=(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&&Pa(e,n,r),r},Ze=(t,e)=>(n,o)=>e(n,o,t);const Na=[Ie.id,pe.id,Ce.id,Me.id],Oa=[_e.id,be.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=d=>this.refRangeHandle(d,r,i);this._selectionProtectionRuleModel.getSubunitRuleList(r,i).reduce((d,m)=>[...d,...m.ranges],[]).forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,u,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===jt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;n(c,a)}if(r.id===bn.id||r.id===Un.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 Lt.id:return this._getRefRangeMutationsByMoveRows(n.params,o,r);case Vt.id:return this._getRefRangeMutationsByMoveCols(n.params,o,r);case Le.id:return this._getRefRangeMutationsByInsertRows(n.params,o,r);case Ve.id:return this._getRefRangeMutationsByInsertCols(n.params,o,r);case ut.id:return this._getRefRangeMutationsByDeleteCols(n.params,o,r);case ct.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(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((h,S)=>{if(s.Rectangle.intersects(S,a)){const R=s.Tools.deepClone(S),{startColumn:g,endColumn:f}=a;if(g<=R.startColumn&&f>=R.endColumn)return h;g>=R.startColumn&&f<=R.endColumn?R.endColumn-=f-g+1:g<R.startColumn?(R.startColumn=g,R.endColumn-=f-g+1):f>R.endColumn&&(R.endColumn=g-1),this._checkIsRightRange(R)&&h.push(R)}return h},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.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(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((h,S)=>{if(s.Rectangle.intersects(S,a)){const R=s.Tools.deepClone(S),{startRow:g,endRow:f}=a;if(g<=R.startRow&&f>=R.endRow)return h;g>=R.startRow&&f<=R.endRow?R.endRow-=f-g+1:g<R.startRow?(R.startRow=g,R.endRow-=f-g+1):f>R.endRow&&(R.endRow=g-1),this._checkIsRightRange(R)&&h.push(R)}return h},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.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(l=>i>l.startColumn&&i<=l.endColumn));if(c.length){const u=[],l=[];return c.forEach(d=>{const m=s.Tools.deepClone(d);let h=!1;m.ranges.forEach(S=>{i>S.startColumn&&i<=S.endColumn&&(S.endColumn+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}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(l=>i>l.startRow&&i<=l.endRow));if(c.length){const u=[],l=[];return c.forEach(d=>{const m=s.Tools.deepClone(d);let h=!1;m.ranges.forEach(S=>{i>S.startRow&&i<=S.endRow&&(S.endRow+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}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(l=>l.ranges.some(d=>a>d.startRow&&a<=d.endRow));if(u.length){const l=[],d=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),R=n.fromRange.startRow;let g=!1;h.ranges.forEach(f=>{a>f.startRow&&a<=f.endRow&&(R<f.startRow&&(f.startRow=f.startRow-c,f.endRow=f.endRow-c),f.endRow+=c,g=!0)}),g&&(l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:h,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}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(l=>l.ranges.some(d=>a>d.startColumn&&a<=d.endColumn));if(u.length){const l=[],d=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),R=n.fromRange.startColumn;let g=!1;h.ranges.forEach(f=>{a>f.startColumn&&a<=f.endColumn&&(R<f.startColumn&&(f.startColumn=f.startColumn-c,f.endColumn=f.endColumn-c),f.endColumn+=c,g=!0)}),g&&(l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:h,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(Oa.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,l=c?i.startRow:i.startColumn,d=c?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(f=>{f.ranges.forEach(p=>{let{startRow:I,endRow:M,startColumn:w,endColumn:y}=p;s.Rectangle.intersects(p,i)||(c?l<I&&d>M?(I-=u,M-=u):l>M&&d<=I&&(I+=u,M+=u):l<w&&d>y?(w-=u,y-=u):l>y&&d<=w&&(w+=u,y+=u)),this._checkIsRightRange({startRow:I,endRow:M,startColumn:w,endColumn:y})&&(p.startColumn=w,p.endColumn=y,p.startRow=I,p.endRow=M)})}),this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=n.params,R=f=>this.refRangeHandle(f,h,S);this._selectionProtectionRuleModel.getSubunitRuleList(h,S).reduce((f,v)=>[...f,...v.ranges],[]).forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,R,h,S))}),this._selectionProtectionRenderModel.clear()}if(Na.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"),l=c?a.startRow:a.startColumn,d=c?a.endRow:a.endColumn,m=d-l+1;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(v=>{v.ranges.forEach(I=>{let{startRow:M,endRow:w,startColumn:y,endColumn:U}=I;u?c?l<=M&&(M+=m,w+=m):l<=y&&(y+=m,U+=m):c?d<M&&(M-=m,w-=m):d<y&&(y-=m,U-=m),this._checkIsRightRange({startRow:M,endRow:w,startColumn:y,endColumn:U})&&(I.startColumn=y,I.endColumn=U,I.startRow=M,I.endRow=w)})}),this.disposableCollection.dispose();const{unitId:S,subUnitId:R}=n.params,g=v=>this.refRangeHandle(v,S,R);this._selectionProtectionRuleModel.getSubunitRuleList(S,R).reduce((v,p)=>[...v,...p.ranges],[]).forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,g,S,R))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(n){return n.startRow<=n.endRow&&n.startColumn<=n.endColumn}};exports.RangeProtectionRefRangeService=ka([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRefRangeService),Ze(0,V.Inject(exports.RangeProtectionRuleModel)),Ze(1,V.Inject(s.IUniverInstanceService)),Ze(2,s.ICommandService),Ze(3,V.Inject(exports.RefRangeService)),Ze(4,V.Inject(exports.RangeProtectionRenderModel))],exports.RangeProtectionRefRangeService);var Da=Object.defineProperty,xa=Object.getOwnPropertyDescriptor,Aa=(t,e,n,o)=>{for(var r=o>1?void 0:o?xa(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&&Da(e,n,r),r},Jt=(t,e)=>(n,o)=>e(n,o,t);const Wa="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":{Pe().forEach(n=>{const o=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(o)});break}case"delete":{Pe().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&&Pe().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:Wa,businesses:[wt.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(l=>{a.push({objectID:l.permissionId,unitID:o,objectType:x.SelectRange,actions:[_.View,_.Edit]})}),u.forEach(l=>{Pe().forEach(d=>{const m=new d(o,c,l.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=Aa([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 La=Object.defineProperty,Va=Object.getOwnPropertyDescriptor,$a=(t,e,n,o)=>{for(var r=o>1?void 0:o?Va(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&&La(e,n,r),r},Ba=(t,e)=>(n,o)=>e(n,o,t);let pt=class extends s.Disposable{constructor(t){super(),this._sheetInterceptorService=t,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(et.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})}}))}};pt=$a([s.OnLifecycle(s.LifecycleStages.Ready,pt),Ba(0,V.Inject(exports.SheetInterceptorService))],pt);var Xr=Object.defineProperty,ja=Object.getOwnPropertyDescriptor,Fa=(t,e,n)=>e in t?Xr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ha=(t,e,n,o)=>{for(var r=o>1?void 0:o?ja(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&&Xr(e,n,r),r},St=(t,e)=>(n,o)=>e(n,o,t),Zr=(t,e,n)=>Fa(t,typeof e!="symbol"?e+"":e,n);const Ga="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(Hr,!0)}_initDependencies(e){var o,r;const n=[[$e],[exports.SheetsSelectionsService],[exports.RefRangeService],[exports.WorkbookPermissionService],[Be,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[ft],[exports.MergeCellController],[pt],[exports.DefinedNameDataController],[exports.WorksheetPermissionService],[exports.WorksheetProtectionRuleModel],[exports.WorksheetProtectionPointModel],[exports.RangeProtectionRenderModel],[exports.RangeProtectionRuleModel],[exports.RangeProtectionRefRangeService],[exports.RangeProtectionService]];(o=this._config)!=null&&o.notExecuteFormula||n.push([vt]),s.mergeOverrideWithDependencies(n,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}};Zr(exports.UniverSheetsPlugin,"pluginName",Ga);Zr(exports.UniverSheetsPlugin,"type",s.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsPlugin=Ha([s.DependentOn(ae.UniverFormulaEnginePlugin),St(1,s.ICommandService),St(2,s.IConfigService),St(3,V.Inject(s.LocaleService)),St(4,V.Inject(V.Injector))],exports.UniverSheetsPlugin);const qa=[ye.id,ge.id,Sn.id,we.id,dt.id,_e.id,be.id,Fe.id,He.id,qe.id,Ge.id,Ie.id,pe.id,Ce.id,Me.id],za=[H.id,De.id,G.id,F.id,rt.id],Ya=1.5,Ka="rgba(255, 255, 255, 0.01)";function Ja(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 Xa(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=Qr(n)),r}function Qr(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 Za(t,e,n){const o=s.getCellInfoInMergeData(t,e,n),r=s.makeCellRangeToRangeData(o);if(r)return{range:r,primary:o,style:null}}const Qa=(t,e,n)=>{const r=t.get(exports.SheetsSelectionsService).getCurrentSelections(),{value:i,selections:a,unitId:c,subUnitId:u}=e;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:h}=d;let{startRow:S,startColumn:R,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,S=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,R=M.startColumn,f=M.endColumn)}const v={startRow:S,startColumn:R,endRow:g,endColumn:f,actualRow:h,actualColumn:m,isMerged:!0,isMergedMainCell:S===h&&R===m},p=r.map((M,w,y)=>({range:M.range,style:null,primary:w===y.length-1?v:null})),I={unitId:c,subUnitId:u,selections:p};return{id:K.id,params:I}}return null}return null},ec=(t,e)=>{const o=t.get(exports.SheetsSelectionsService).getCurrentSelections(),{unitId:r,subUnitId:i}=e;if(o&&o[(o==null?void 0:o.length)-1].primary){const u={unitId:r,subUnitId:i,selections:[...o]};return{id:K.id,params:u}}return null};function tc(t,e){return e.some(n=>nc(t,n))}function nc(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,l,d)=>{if(d&&(u!==n||l!==o)&&t.cellHasValue(d))return c=!0,!1}),c}function oc(t,e,n,o){const r=[],i=[],a=n.getSheetId();return o.forEach(c=>{const u=rc(n,c),l={unitId:e,subUnitId:a,cellValue:u.getData()},d=ve(t,l);r.push({id:H.id,params:d}),i.push({id:H.id,params:l})}),{undos:r,redos:i}}function rc(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,l,d)=>{d&&(u!==n||l!==o)&&c.setValue(u,l,null)}),c}const Ht={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=xn(c,e.value),l=r.getUniverSheetInstance(i).getSheetBySheetId(a),d=[],m=[],h=tc(l,u),S={unitId:i,subUnitId:a,ranges:u},R={unitId:i,subUnitId:a,ranges:u};d.push({id:G.id,params:S}),d.push({id:F.id,params:R});const g=ie(t,S),f=he(t,R);if(m.push({id:G.id,params:f}),m.push({id:F.id,params:g}),h){const p=oc(t,i,l,u);d.unshift(...p.redos),m.push(...p.undos)}return s.sequenceExecute(d,n).result?(o.pushUndoRedo({unitID:i,undoMutations:m,redoMutations:d}),!0):!1}},sc={type:s.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:async t=>{var l;const e=t.get(s.ICommandService),o=(l=t.get(exports.SheetsSelectionsService).getCurrentSelections())==null?void 0:l.map(d=>d.range);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(Ht.id,{selections:o,unitId:c,subUnitId:u})}},ic={type:s.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:async t=>{var l;const e=t.get(s.ICommandService),o=(l=t.get(exports.SheetsSelectionsService).getCurrentSelections())==null?void 0:l.map(d=>d.range);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(Ht.id,{value:s.Dimension.COLUMNS,selections:o,unitId:c,subUnitId:u})}},ac={type:s.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:async t=>{var l;const e=t.get(s.ICommandService),o=(l=t.get(exports.SheetsSelectionsService).getCurrentSelections())==null?void 0:l.map(d=>d.range);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(Ht.id,{value:s.Dimension.ROWS,selections:o,unitId:c,subUnitId:u})}},cc=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().showGridlines;return{...s.Tools.deepClone(e),hideGridlines:i}},It={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}},uc={type:s.CommandType.COMMAND,id:"sheet.command.set-hide-gridlines",handler:async(t,e)=>{var R;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=(R=e.hideGridlines)!=null?R:s.BooleanNumber.FALSE);const l=r.getUniverSheetInstance(a);if(!l||!l.getSheetBySheetId(c))return!1;const m={hideGridlines:u,unitId:a,subUnitId:c},h=cc(t,m);return n.syncExecuteCommand(It.id,m)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:It.id,params:h}],redoMutations:[{id:It.id,params:m}]}),!0):!1}},dc=(t,e)=>{const i=t.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().rightToLeft;return{...s.Tools.deepClone(e),rightToLeft:i}},Mt={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}},lc={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},l=dc(t,u);return n.syncExecuteCommand(Mt.id,u)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:Mt.id,params:l}],redoMutations:[{id:Mt.id,params:u}]}),!0):!1}};exports.AddMergeRedoSelectionsOperationFactory=Qa;exports.AddMergeUndoMutationFactory=he;exports.AddMergeUndoSelectionsOperationFactory=ec;exports.AddRangeProtectionCommand=bn;exports.AddRangeProtectionMutation=Ye;exports.AddWorksheetMergeAllCommand=sc;exports.AddWorksheetMergeCommand=Ht;exports.AddWorksheetMergeHorizontalCommand=ac;exports.AddWorksheetMergeMutation=F;exports.AddWorksheetMergeVerticalCommand=ic;exports.AddWorksheetProtectionMutation=Ar;exports.BorderStyleManagerService=$e;exports.COMMAND_LISTENER_SKELETON_CHANGE=qa;exports.COMMAND_LISTENER_VALUE_CHANGE=za;exports.ClearSelectionAllCommand=Ut;exports.ClearSelectionContentCommand=en;exports.ClearSelectionFormatCommand=Tt;exports.CopySheetCommand=ao;exports.DISABLE_NORMAL_SELECTIONS=to;exports.DeleteRangeMoveLeftCommand=Dt;exports.DeleteRangeMoveUpCommand=xt;exports.DeleteRangeProtectionCommand=$r;exports.DeleteRangeProtectionMutation=ze;exports.DeleteWorksheetProtectionMutation=Lr;exports.DeltaColumnWidthCommand=hn;exports.DeltaRowHeightCommand=Cn;exports.EffectRefRangId=E;exports.EmptyMutation=kr;exports.FactoryAddRangeProtectionMutation=Ni;exports.FactoryDeleteRangeProtectionMutation=ki;exports.FactorySetRangeProtectionMutation=Oi;exports.INTERCEPTOR_POINT=et;exports.INumfmtService=Be;exports.IRefSelectionsService=co;exports.InsertColAfterCommand=Jo;exports.InsertColBeforeCommand=Ko;exports.InsertColCommand=Ve;exports.InsertColMutation=Ie;exports.InsertColMutationUndoFactory=an;exports.InsertDefinedNameCommand=Nr;exports.InsertRangeMoveDownCommand=At;exports.InsertRangeMoveRightCommand=Wt;exports.InsertRowAfterCommand=zo;exports.InsertRowBeforeCommand=qo;exports.InsertRowCommand=Le;exports.InsertRowMutation=pe;exports.InsertRowMutationUndoFactory=sn;exports.InsertSheetCommand=Xo;exports.InsertSheetMutation=Oe;exports.InsertSheetUndoMutationFactory=tn;exports.MAX_CELL_PER_SHEET_KEY=Fr;exports.MoveColsCommand=Vt;exports.MoveColsMutation=be;exports.MoveColsMutationUndoFactory=Qo;exports.MoveRangeCommand=Et;exports.MoveRangeMutation=De;exports.MoveRowsCommand=Lt;exports.MoveRowsMutation=_e;exports.MoveRowsMutationUndoFactory=Zo;exports.OperatorType=L;exports.RangeMergeUtil=hi;exports.RangeProtectionPermissionEditPoint=Nt;exports.RangeProtectionPermissionViewPoint=Ot;exports.RemoveColCommand=ut;exports.RemoveColMutation=Ce;exports.RemoveDefinedNameCommand=Or;exports.RemoveMergeUndoMutationFactory=ie;exports.RemoveNumfmtMutation=Mn;exports.RemoveRowCommand=ct;exports.RemoveRowMutation=Me;exports.RemoveSheetCommand=cn;exports.RemoveSheetMutation=Ke;exports.RemoveSheetUndoMutationFactory=io;exports.RemoveWorksheetMergeCommand=rr;exports.RemoveWorksheetMergeMutation=G;exports.ReorderRangeCommand=Tn;exports.ReorderRangeMutation=rt;exports.ReorderRangeUndoMutationFactory=Br;exports.ResetBackgroundColorCommand=fr;exports.ResetTextColorCommand=Sr;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Ka;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Ya;exports.ScrollToCellOperation=xr;exports.SelectionMoveType=Qn;exports.SetBackgroundColorCommand=Cr;exports.SetBoldCommand=Qs;exports.SetBorderBasicCommand=sr;exports.SetBorderColorCommand=cr;exports.SetBorderCommand=Je;exports.SetBorderPositionCommand=ir;exports.SetBorderStyleCommand=ar;exports.SetColHiddenCommand=un;exports.SetColHiddenMutation=Fe;exports.SetColVisibleMutation=He;exports.SetColWidthCommand=yt;exports.SetDefinedNameCommand=Dr;exports.SetFontFamilyCommand=ri;exports.SetFontSizeCommand=si;exports.SetFrozenCancelCommand=mr;exports.SetFrozenCommand=lr;exports.SetFrozenMutation=Ee;exports.SetFrozenMutationFactory=dn;exports.SetHideGridlinesCommand=uc;exports.SetHideGridlinesMutation=It;exports.SetHorizontalTextAlignCommand=pr;exports.SetItalicCommand=ei;exports.SetNumfmtMutation=Ft;exports.SetOverlineCommand=oi;exports.SetRangeProtectionCommand=Un;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=at;exports.SetRangeValuesMutation=H;exports.SetRangeValuesUndoMutationFactory=ve;exports.SetRowHeightCommand=fn;exports.SetRowHiddenCommand=ln;exports.SetRowHiddenMutation=qe;exports.SetRowVisibleMutation=Ge;exports.SetSelectedColsVisibleCommand=ur;exports.SetSelectedRowsVisibleCommand=hr;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=$t;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=ni;exports.SetStyleCommand=te;exports.SetTabColorCommand=wr;exports.SetTabColorMutation=tt;exports.SetTextColorCommand=Rr;exports.SetTextRotationCommand=Mr;exports.SetTextWrapCommand=Ir;exports.SetUnderlineCommand=ti;exports.SetVerticalTextAlignCommand=vr;exports.SetWorkbookNameCommand=yn;exports.SetWorkbookNameMutation=wn;exports.SetWorksheetActivateCommand=jt;exports.SetWorksheetActiveOperation=dt;exports.SetWorksheetColWidthMutation=we;exports.SetWorksheetColWidthMutationFactory=mn;exports.SetWorksheetHideCommand=_r;exports.SetWorksheetHideMutation=ke;exports.SetWorksheetNameCommand=gn;exports.SetWorksheetNameMutation=_t;exports.SetWorksheetOrderCommand=br;exports.SetWorksheetOrderMutation=nt;exports.SetWorksheetPermissionPointsCommand=Vr;exports.SetWorksheetPermissionPointsMutation=_n;exports.SetWorksheetProtectionMutation=Wr;exports.SetWorksheetRightToLeftCommand=lc;exports.SetWorksheetRightToLeftMutation=Mt;exports.SetWorksheetRowAutoHeightMutation=Sn;exports.SetWorksheetRowAutoHeightMutationFactory=li;exports.SetWorksheetRowHeightMutation=ye;exports.SetWorksheetRowIsAutoHeightCommand=vn;exports.SetWorksheetRowIsAutoHeightMutation=ge;exports.SetWorksheetShowCommand=Tr;exports.WorkbookCommentPermission=Uo;exports.WorkbookCopyPermission=Vo;exports.WorkbookCopySheetPermission=$o;exports.WorkbookCreateSheetPermission=Ao;exports.WorkbookDeleteSheetPermission=Oo;exports.WorkbookDuplicatePermission=Po;exports.WorkbookEditablePermission=To;exports.WorkbookExportPermission=ko;exports.WorkbookHideSheetPermission=Do;exports.WorkbookHistoryPermission=As;exports.WorkbookManageCollaboratorPermission=Bo;exports.WorkbookMoveSheetPermission=No;exports.WorkbookPrintPermission=Eo;exports.WorkbookRenameSheetPermission=xo;exports.WorkbookSelections=eo;exports.WorkbookSharePermission=Lo;exports.WorkbookViewPermission=Wo;exports.WorksheetCopyPermission=mo;exports.WorksheetDeleteColumnPermission=Mo;exports.WorksheetDeleteRowPermission=Io;exports.WorksheetEditExtraObjectPermission=bo;exports.WorksheetEditPermission=nn;exports.WorksheetFilterPermission=yo;exports.WorksheetInsertColumnPermission=vo;exports.WorksheetInsertHyperlinkPermission=po;exports.WorksheetInsertRowPermission=fo;exports.WorksheetManageCollaboratorPermission=xs;exports.WorksheetPivotTablePermission=_o;exports.WorksheetSelectProtectedCellsPermission=Os;exports.WorksheetSelectUnProtectedCellsPermission=Ds;exports.WorksheetSetCellStylePermission=ho;exports.WorksheetSetCellValuePermission=go;exports.WorksheetSetColumnStylePermission=Co;exports.WorksheetSetRowStylePermission=So;exports.WorksheetSortPermission=wo;exports.WorksheetViewPermission=Ro;exports.alignToMergedCellsBorders=it;exports.convertPrimaryWithCoordToPrimary=Qr;exports.convertSelectionDataToRange=Xa;exports.createTopMatrixFromMatrix=Er;exports.createTopMatrixFromRanges=Pr;exports.defaultWorkbookPermissionPoints=Ca;exports.defaultWorksheetPermissionPoint=Mi;exports.expandToContinuousRange=bs;exports.factoryRemoveNumfmtUndoMutation=Ri;exports.factorySetNumfmtUndoMutation=gi;exports.findAllRectangle=pn;exports.followSelectionOperation=Ue;exports.generateNullCellValue=ro;exports.getAddMergeMutationRangeByType=xn;exports.getAllRangePermissionPoint=Pe;exports.getAllWorkbookPermissionPoint=Qt;exports.getAllWorksheetPermissionPoint=Te;exports.getAllWorksheetPermissionPointByPointPanel=ot;exports.getCellAtRowCol=Ps;exports.getDefaultRangePermission=_a;exports.getInsertRangeMutations=on;exports.getMoveRangeUndoRedoMutations=kt;exports.getNormalSelectionStyle=Ja;exports.getPrimaryForRange=ce;exports.getRemoveRangeMutations=rn;exports.getSelectionsService=uo;exports.getSheetCommandTarget=A;exports.getSheetCommandTargetWorkbook=so;exports.getSheetMutationTarget=Pt;exports.handleBaseInsertRange=Ae;exports.handleBaseMoveRowsCols=st;exports.handleBaseRemoveRange=xe;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=Zi;exports.handleDefaultRangeChangeWithEffectRefCommands=Jr;exports.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Xi;exports.handleDeleteRangeMoveLeft=Yr;exports.handleDeleteRangeMoveUp=Kr;exports.handleDeleteRangeMutation=Ls;exports.handleIRemoveCol=kn;exports.handleIRemoveRow=Nn;exports.handleInsertCol=Dn;exports.handleInsertRangeMoveDown=qr;exports.handleInsertRangeMoveRight=zr;exports.handleInsertRangeMutation=Ws;exports.handleInsertRow=On;exports.handleMoveCols=En;exports.handleMoveRange=Gr;exports.handleMoveRows=Pn;exports.isSingleCellSelection=ks;exports.rangeMerge=In;exports.rotateRange=de;exports.runRefRangeMutations=We;exports.setEndForRange=Es;exports.transformCellDataToSelectionData=Za;exports.transformCellsToRange=bt;