@univerjs/sheets 0.21.0 → 0.21.1

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/umd/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`rxjs`),require(`@univerjs/engine-render`),require(`@univerjs/engine-formula`),require(`@univerjs/protocol`),require(`rxjs/operators`),require(`@univerjs/rpc`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs`,`@univerjs/engine-render`,`@univerjs/engine-formula`,`@univerjs/protocol`,`rxjs/operators`,`@univerjs/rpc`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheets={},e.UniverCore,e.rxjs,e.UniverEngineRender,e.UniverEngineFormula,e.UniverProtocol,e.rxjs.operators,e.UniverRpc))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function c(e,n,r){var i;if(n.t)return n.t;if(n.v===null)return null;let a=e.getStyleByCell(n),o=e.getStyleByCell(r);if(r.t===t.CellValueType.FORCE_STRING){var s;if(!(0,t.isTextFormat)(o==null||(s=o.n)==null?void 0:s.pattern)&&n.v!==void 0){if((0,t.isRealNum)(n.v))return t.CellValueType.NUMBER;if((0,t.isBooleanString)(`${n.v}`))return t.CellValueType.BOOLEAN}return t.CellValueType.FORCE_STRING}if(u(a)){var c;return(0,t.isTextFormat)(a==null||(c=a.n)==null?void 0:c.pattern)?t.CellValueType.STRING:l(n,r)}return(0,t.isTextFormat)(o==null||(i=o.n)==null?void 0:i.pattern)?t.CellValueType.STRING:l(n,r)}function l(e,t){return e.v===void 0?d(t.v,t.t):d(e.v,e.t)}function u(e){var t;return!!(!(e==null||(t=e.n)==null)&&t.pattern)}function d(e,n){return e===null?null:typeof e==`string`?(0,t.isRealNum)(e)?(+e==0||+e==1)&&n===t.CellValueType.BOOLEAN?t.CellValueType.BOOLEAN:n!==t.CellValueType.STRING&&n!==t.CellValueType.FORCE_STRING&&(0,t.willLoseNumericPrecision)(e)?t.CellValueType.FORCE_STRING:t.CellValueType.NUMBER:(0,t.isBooleanString)(e)?t.CellValueType.BOOLEAN:t.CellValueType.STRING:typeof e==`number`?(e===0||e===1)&&n===t.CellValueType.BOOLEAN?t.CellValueType.BOOLEAN:t.CellValueType.NUMBER:typeof e==`boolean`?t.CellValueType.BOOLEAN:t.CellValueType.FORCE_STRING}function f(e,n){let{unitId:r}=n,i=r?e.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);return i?{workbook:i,unitId:i.getUnitId()}:null}function p(e,n={}){let{unitId:r,subUnitId:i}=n,a=r?e.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!a)return null;let o=i?a.getSheetBySheetId(i):a.getActiveSheet(!0);return o?{worksheet:o,workbook:a,unitId:a.getUnitId(),subUnitId:o.getSheetId()}:null}function m(e,n){let{unitId:r,subUnitId:i}=n,a=e.getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(!a)return null;let o=a.getSheetBySheetId(i);return o?{worksheet:o,workbook:a}:null}let h=(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:t.Tools.deepClone(n.ranges)}},g={id:`sheet.mutation.add-worksheet-merge`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or worksheet is null error!`);let{worksheet:i}=r,a=i.getConfig().mergeData,o=n.ranges;for(let e=0;e<o.length;e++)a.push(o[e]);return i.getSpanModel().rebuild(a),!0}},_={CELL_CONTENT:(0,t.createInterceptorKey)(`CELL_CONTENT`),ROW_FILTERED:(0,t.createInterceptorKey)(`ROW_FILTERED`)},v=function(e){return e[e.DATA_VALIDATION=9]=`DATA_VALIDATION`,e[e.NUMFMT=10]=`NUMFMT`,e[e.CELL_IMAGE=11]=`CELL_IMAGE`,e}({}),y=`sheet.interceptor.range-theme-id`,b=`sheet.interceptor.ignore-range-theme`;function x(e){"@babel/helpers - typeof";return x=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},x(e)}function S(e,t){if(x(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(x(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function C(e){var t=S(e,`string`);return x(t)==`symbol`?t:t+``}function w(e,t,n){return(t=C(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e,t){return function(n,r){t(n,r,e)}}function E(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let D=(0,t.createInterceptorKey)(`BEFORE_CELL_EDIT`),O=(0,t.createInterceptorKey)(`AFTER_CELL_EDIT`),k=(0,t.createInterceptorKey)(`VALIDATE_CELL`),A=class extends t.Disposable{constructor(e){super(),this._univerInstanceService=e,w(this,`_interceptorsByName`,new Map),w(this,`_commandInterceptors`,[]),w(this,`_rangeInterceptors`,[]),w(this,`_autoHeightInterceptors`,[]),w(this,`_beforeCommandInterceptor`,[]),w(this,`_afterCommandInterceptors`,[]),w(this,`_workbookDisposables`,new Map),w(this,`_worksheetDisposables`,new Map),w(this,`_interceptorsDirty`,!1),w(this,`_composedInterceptorByKey`,new Map),w(this,`_composedInterceptorsLengthByKey`,new Map),w(this,`writeCellInterceptor`,new t.InterceptorManager({BEFORE_CELL_EDIT:D,AFTER_CELL_EDIT:O,VALIDATE_CELL:k})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(_.CELL_CONTENT,{priority:-1,effect:t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value,handler:e=>e}),this.disposeWithMe(this.writeCellInterceptor.intercept(O,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(D,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(k,{priority:-1,handler:e=>e}))}dispose(){super.dispose(),this._workbookDisposables.forEach(e=>e.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.forEach(e=>e.dispose()),this._worksheetDisposables.clear(),this._interceptorsByName.clear()}interceptCommand(e){if(this._commandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._commandInterceptors.push(e),this._commandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._commandInterceptors,e)))}onCommandExecute(e){let t=this._commandInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptAfterCommand(e){if(this._afterCommandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._afterCommandInterceptors.push(e),this._afterCommandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._afterCommandInterceptors,e)))}afterCommandExecute(e){let t=this._afterCommandInterceptors.map(t=>t.getMutations(e));return{undos:t.map(e=>e.undos).flat(),redos:t.map(e=>e.redos).flat()}}interceptAutoHeight(e){if(this._autoHeightInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._autoHeightInterceptors.push(e),this._autoHeightInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._autoHeightInterceptors,e)))}generateMutationsOfAutoHeight(e){let t=this._autoHeightInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptBeforeCommand(e){if(this._beforeCommandInterceptor.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._beforeCommandInterceptor.push(e),this._beforeCommandInterceptor.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._beforeCommandInterceptor,e)))}async beforeCommandExecute(e){return(await Promise.all(this._beforeCommandInterceptor.map(t=>t.performCheck(e)))).every(e=>e)}interceptRanges(e){if(this._rangeInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._rangeInterceptors.push(e),this._rangeInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._rangeInterceptors,e)))}generateMutationsByRanges(e){let t=this._rangeInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}onWriteCell(e,n,r,i,a){let o={subUnitId:n.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:n,row:r,col:i,origin:t.Tools.deepClone(a)};return this.writeCellInterceptor.fetchThroughInterceptors(O)(a,o)}onValidateCell(e,t,n,r){let i={subUnitId:t.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:t,row:n,col:r};return this.writeCellInterceptor.fetchThroughInterceptors(k)(Promise.resolve(!0),i)}intercept(e,n){let r=e;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);let i=this._interceptorsByName.get(r);i.push(n);let a=i.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)});if(this._interceptorsDirty=!0,r===_.CELL_CONTENT){let e=t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value;this._interceptorsByName.set(`${r}-${e}`,a);let i=t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value;return this._interceptorsByName.set(`${r}-${t.InterceptorEffectEnum.Style}`,a.filter(e=>((e.effect||i)&t.InterceptorEffectEnum.Style)>0)),this._interceptorsByName.set(`${r}-${t.InterceptorEffectEnum.Value}`,a.filter(e=>((e.effect||i)&t.InterceptorEffectEnum.Value)>0)),this.disposeWithMe((0,t.toDisposable)(()=>{(0,t.remove)(this._interceptorsByName.get(r),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${e}`),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${t.InterceptorEffectEnum.Style}`),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${t.InterceptorEffectEnum.Value}`),n)}))}else return this._interceptorsByName.set(r,a),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(e,n,r,i){var a;let o=n===void 0?e:`${e}-${n}`,s=r==null?o:r,c=this._composedInterceptorByKey.get(s),l=this._composedInterceptorsLengthByKey.get(s)||0;if(!c||!this._interceptorsDirty||l!==(((a=this._interceptorsByName.get(o))==null?void 0:a.length)||0)){let e=this._interceptorsByName.get(o);e&&i&&(e=e.filter(i)),c=(0,t.composeInterceptors)(e||[]),this._composedInterceptorByKey.set(s,c),this._composedInterceptorsLengthByKey.set(s,(e==null?void 0:e.length)||0)}return c}_interceptWorkbook(e){let n=new t.DisposableCollection,r=e.getUnitId(),i=this,a=n=>{let a=n.getSheetId();n.__interceptViewModel(o=>{let s=new t.DisposableCollection;i._worksheetDisposables.set(ee(r,n),s),s.add(o.registerCellContentInterceptor({getCell(t,o,s,c,l){let u=n.getCellRaw(t,o);return i.fetchThroughInterceptors(_.CELL_CONTENT,s,c,l)(u,{unitId:r,subUnitId:a,row:t,col:o,worksheet:n,workbook:e,rawData:u})}})),s.add(o.registerRowFilteredInterceptor({getRowFiltered(t){return!!i.fetchThroughInterceptors(_.ROW_FILTERED)(!1,{unitId:r,subUnitId:a,row:t,workbook:e,worksheet:n})}}))})};e.getSheets().forEach(e=>a(e)),n.add(e.sheetCreated$.subscribe(e=>a(e))),n.add((0,t.toDisposable)(()=>e.getSheets().forEach(e=>this._disposeSheetInterceptor(r,e)))),n.add(e.sheetDisposed$.subscribe(e=>this._disposeSheetInterceptor(r,e))),this._workbookDisposables.set(r,n)}_disposeWorkbookInterceptor(e){let t=e.getUnitId(),n=this._workbookDisposables.get(t);n&&(n.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(e,t){let n=ee(e,t),r=this._worksheetDisposables.get(n);r&&(r.dispose(),this._worksheetDisposables.delete(n))}};A=E([T(0,t.IUniverInstanceService)],A);function ee(e,t){return`${e}|${t.getSheetId()}`}let j=e=>{let t={};return e.bg&&(t.bg={...e.bg}),e.ol&&(t.ol={...e.ol}),e.bd&&(t.bd={...e.bd}),e.cl&&(t.cl={...e.cl}),e.ht&&(t.ht=e.ht),e.vt&&(t.vt=e.vt),e.bl!==void 0&&(t.bl=e.bl),t};function te(e){let t={};if(e.length===1)return e[0];for(let n of e)n.bg&&(t.bg=n.bg),n.ol&&(t.ol=n.ol),n.bd&&(t.bd={...t.bd,...n.bd}),n.cl&&(t.cl=n.cl),n.ht&&(t.ht=n.ht),n.vt&&(t.vt=n.vt),n.bl!==void 0&&(t.bl=n.bl);return t}let M={wholeStyle:1,headerRowStyle:2,headerColumnStyle:4,firstRowStyle:8,secondRowStyle:16,lastRowStyle:32,firstColumnStyle:128,secondColumnStyle:256,lastColumnStyle:512};var ne=class{constructor(e,t){w(this,`_name`,void 0),w(this,`wholeStyle`,null),w(this,`headerRowStyle`,null),w(this,`headerColumnStyle`,null),w(this,`firstRowStyle`,null),w(this,`secondRowStyle`,null),w(this,`lastRowStyle`,null),w(this,`firstColumnStyle`,null),w(this,`secondColumnStyle`,null),w(this,`lastColumnStyle`,null),w(this,`_mergeCacheMap`,new Map),t&&this.fromJson({...t,name:e}),this._name=e}getName(){return this._name}getWholeStyle(){return this.wholeStyle}setWholeStyle(e){this.wholeStyle=e,this._resetStyleCache()}getFirstRowStyle(){return this.firstRowStyle}setFirstRowStyle(e){this.firstRowStyle=e,this._resetStyleCache()}getSecondRowStyle(){return this.secondRowStyle}setSecondRowStyle(e){this.secondRowStyle=e,this._resetStyleCache()}getLastRowStyle(){return this.lastRowStyle}setLastRowStyle(e){this.lastRowStyle=e,this._resetStyleCache()}getFirstColumnStyle(){return this.firstColumnStyle}setFirstColumnStyle(e){this.firstColumnStyle=e,this._resetStyleCache()}getSecondColumnStyle(){return this.secondColumnStyle}setSecondColumnStyle(e){this.secondColumnStyle=e,this._resetStyleCache()}getLastColumnStyle(){return this.lastColumnStyle}setLastColumnStyle(e){this.lastColumnStyle=e,this._resetStyleCache()}getHeaderRowStyle(){return this.headerRowStyle}setHeaderRowStyle(e){this.headerRowStyle=e,this._resetStyleCache()}getHeaderColumnStyle(){return this.headerColumnStyle}setHeaderColumnStyle(e){this.headerColumnStyle=e,this._resetStyleCache()}getStyle(e,t,n,r,i){let a=0;return n&&(a|=M.lastRowStyle),r&&(a|=M.lastColumnStyle),e>=0&&t>=0&&(a|=M.wholeStyle),e%2==1&&(a|=i?M.secondRowStyle:M.firstRowStyle),e%2==0&&(a|=i?M.firstRowStyle:M.secondRowStyle),e===0&&(a|=M.headerRowStyle),t===0&&(a|=M.headerColumnStyle),t%2==1&&(a|=M.firstColumnStyle),t%2==0&&(a|=M.secondColumnStyle),a===0?null:this._getMergeStyle(a)}_getMergeStyle(e){let t=this._mergeCacheMap.get(e);return t||(t=this._mergeStyle(e),this._mergeCacheMap.set(e,t)),t}_mergeStyle(e){let t=[];return this.wholeStyle&&e&M.wholeStyle&&t.push(this.wholeStyle),this.firstColumnStyle&&e&M.firstColumnStyle&&t.push(this.firstColumnStyle),this.secondColumnStyle&&e&M.secondColumnStyle&&t.push(this.secondColumnStyle),this.firstRowStyle&&e&M.firstRowStyle&&t.push(this.firstRowStyle),this.secondRowStyle&&e&M.secondRowStyle&&t.push(this.secondRowStyle),this.headerColumnStyle&&e&M.headerColumnStyle&&t.push(this.headerColumnStyle),this.lastColumnStyle&&e&M.lastColumnStyle&&t.push(this.lastColumnStyle),this.headerRowStyle&&e&M.headerRowStyle&&t.push(this.headerRowStyle),this.lastRowStyle&&e&M.lastRowStyle&&t.push(this.lastRowStyle),te(t)}_resetStyleCache(){this._mergeCacheMap.clear()}toJson(){let e={name:this._name};return this.wholeStyle&&(e.wholeStyle=j(this.wholeStyle)),this.headerRowStyle&&(e.headerRowStyle=j(this.headerRowStyle)),this.headerColumnStyle&&(e.headerColumnStyle=j(this.headerColumnStyle)),this.firstRowStyle&&(e.firstRowStyle=j(this.firstRowStyle)),this.secondRowStyle&&(e.secondRowStyle=j(this.secondRowStyle)),this.lastRowStyle&&(e.lastRowStyle=j(this.lastRowStyle)),this.firstColumnStyle&&(e.firstColumnStyle=j(this.firstColumnStyle)),this.secondColumnStyle&&(e.secondColumnStyle=j(this.secondColumnStyle)),this.lastColumnStyle&&(e.lastColumnStyle=j(this.lastColumnStyle)),e}fromJson(e){this._name=e.name,e.wholeStyle&&(this.wholeStyle=j(e.wholeStyle)),e.headerRowStyle&&(this.headerRowStyle=j(e.headerRowStyle)),e.headerColumnStyle&&(this.headerColumnStyle=j(e.headerColumnStyle)),e.firstRowStyle&&(this.firstRowStyle=j(e.firstRowStyle)),e.secondRowStyle&&(this.secondRowStyle=j(e.secondRowStyle)),e.lastRowStyle&&(this.lastRowStyle=j(e.lastRowStyle)),e.firstColumnStyle&&(this.firstColumnStyle=j(e.firstColumnStyle)),e.secondColumnStyle&&(this.secondColumnStyle=j(e.secondColumnStyle)),e.lastColumnStyle&&(this.lastColumnStyle=j(e.lastColumnStyle))}dispose(){this._mergeCacheMap.clear()}};let re=(e,t,n)=>new ne(`light-${e}`,{headerRowStyle:{bg:{rgb:t}},firstColumnStyle:{bg:{rgb:`rgb(255, 255, 255)`}},secondColumnStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}}}),ie=(e,t,n)=>new ne(`middle-${e}`,{headerRowStyle:{bg:{rgb:t}},headerColumnStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}},lastColumnStyle:{bg:{rgb:n}}}),ae=(e,n,r,i)=>new ne(`dark-${e}`,{headerRowStyle:{bg:{rgb:n},cl:{rgb:`rgb(255, 255, 255)`},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE},firstRowStyle:{bg:{rgb:r}},secondRowStyle:{bg:{rgb:i}},lastRowStyle:{bg:{rgb:n}}}),oe=[{baseName:`blue`,header:`rgb(164, 202, 254)`,color:`rgb(225, 239, 254)`},{baseName:`grey`,header:`rgb(205, 208, 216)`,color:`rgb(238, 239, 241)`},{baseName:`red`,header:`rgb(248, 180, 180)`,color:`rgb(253, 232, 232)`},{baseName:`orange`,header:`rgb(253, 186, 140)`,color:`rgb(254, 236, 220)`},{baseName:`yellow`,header:`rgb(250, 200, 21)`,color:`rgb(255, 244, 185)`},{baseName:`green`,header:`rgb(132, 225, 188)`,color:`rgb(222, 247, 236)`},{baseName:`azure`,header:`rgb(126, 220, 226)`,color:`rgb(213, 245, 246)`},{baseName:`indigo`,header:`rgb(186, 198, 248)`,color:`rgb(233, 237, 255)`},{baseName:`purple`,header:`rgb(202, 191, 253)`,color:`rgb(237, 235, 254)`},{baseName:`magenta`,header:`rgb(248, 180, 217)`,color:`rgb(252, 232, 243)`}],se=[{baseName:`blue`,rowHeader:`rgb(63, 131, 248)`,colHeader:`rgb(195, 221, 253)`},{baseName:`grey`,rowHeader:`rgb(95, 101, 116)`,colHeader:`rgb(227, 229, 234)`},{baseName:`red`,rowHeader:`rgb(240, 82, 82)`,colHeader:`rgb(251, 213, 213)`},{baseName:`orange`,rowHeader:`rgb(255, 90, 31)`,colHeader:`rgb(252, 217, 189)`},{baseName:`yellow`,rowHeader:`rgb(212, 157, 15)`,colHeader:`rgb(252, 220, 106)`},{baseName:`green`,rowHeader:`rgb(13, 164, 113)`,colHeader:`rgb(188, 240, 218)`},{baseName:`azure`,rowHeader:`rgb(6, 148, 162)`,colHeader:`rgb(175, 236, 239)`},{baseName:`indigo`,rowHeader:`rgb(70, 106, 247)`,colHeader:`rgb(210, 218, 250)`},{baseName:`purple`,rowHeader:`rgb(144, 97, 249)`,colHeader:`rgb(220, 215, 254)`},{baseName:`magenta`,rowHeader:`rgb(231, 70, 148)`,colHeader:`rgb(250, 209, 232)`}],ce=[{baseName:`blue`,rowHeader:`rgb(30, 66, 159)`,firstRow:`rgb(195, 221, 253)`,secondRow:`rgb(118, 169, 250)`},{baseName:`grey`,rowHeader:`rgb(44, 48, 64)`,firstRow:`rgb(227, 229, 234)`,secondRow:`rgb(151, 157, 172)`},{baseName:`red`,rowHeader:`rgb(155, 28, 28)`,firstRow:`rgb(251, 213, 213)`,secondRow:`rgb(249, 128, 128)`},{baseName:`orange`,rowHeader:`rgb(180, 52, 3)`,firstRow:`rgb(252, 217, 189)`,secondRow:`rgb(255, 138, 76)`},{baseName:`yellow`,rowHeader:`rgb(154, 109, 21)`,firstRow:`rgb(252, 220, 106)`,secondRow:`rgb(212, 157, 15)`},{baseName:`green`,rowHeader:`rgb(4, 108, 78)`,firstRow:`rgb(188, 240, 218)`,secondRow:`rgb(49, 196, 141)`},{baseName:`azure`,rowHeader:`rgb(3, 102, 114)`,firstRow:`rgb(175, 236, 239)`,secondRow:`rgb(22, 189, 202)`},{baseName:`indigo`,rowHeader:`rgb(16, 51, 191)`,firstRow:`rgb(210, 218, 250)`,secondRow:`rgb(98, 128, 249)`},{baseName:`purple`,rowHeader:`rgb(74, 29, 150)`,firstRow:`rgb(220, 215, 254)`,secondRow:`rgb(172, 148, 250)`},{baseName:`magenta`,rowHeader:`rgb(153, 21, 75)`,firstRow:`rgb(250, 209, 232)`,secondRow:`rgb(241, 126, 184)`}],le=oe.map(({baseName:e,header:t,color:n})=>re(e,t,n)),ue=se.map(({baseName:e,rowHeader:t,colHeader:n})=>ie(e,t,n)),de=ce.map(({baseName:e,rowHeader:t,firstRow:n,secondRow:r})=>ae(e,t,n,r)),fe=[...le,...ue,...de],pe={headerRowStyle:{bg:{rgb:`rgb(68,114,196)`},cl:{rgb:`rgb(255,255,255)`},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE},firstRowStyle:{bg:{rgb:`rgb(217,225,242)`}}},me=new ne(`default`,pe),he=new ne(`default-last-row`,{...pe,lastRowStyle:{bd:{t:{s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(68,114,196)`}}},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE}});var ge=class{constructor(){w(this,`_toggleRanges`,[])}refresh(e,t){let{startRow:n,endRow:r}=e,i=[],a=0,o=!1,s=-1;for(let e=n;e<=r;e++){if(!t(e)){a++,a%2==1?o=!0:(o=!1,s!==-1&&(i.push([s,e-1]),s=-1));continue}a%2==1?o?s===-1&&(s=e):(o=!0,s=e):o&&(i.push([s,e-2]),o=!1,s=-1),e===r&&o&&i.push([s,e])}this._toggleRanges=i}getToggleRanges(){return this._toggleRanges.concat()}getIsToggled(e){let t=0,n=this._toggleRanges.length-1;for(;t<=n;){let r=Math.floor((t+n)/2),[i,a]=this._toggleRanges[r];if(e<i)n=r-1;else if(e>a)t=r+1;else return!0}return!1}};let N=class extends t.Disposable{constructor(e,t,r){super(),this._sheetInterceptorService=e,this._resourceManagerService=t,this._univerInstanceService=r,w(this,`_rangeThemeStyleMap`,new Map),w(this,`_rangeThemeStyleRuleMap`,new Map),w(this,`_rTreeCollection`,new Map),w(this,`_defaultRangeThemeMap`,new Map),w(this,`_zebraCrossingCacheMap`,new Map),w(this,`_rowVisibleFuncSet`,new Map),w(this,`_rangeThemeMapChanged$`,new n.Subject),w(this,`rangeThemeMapChange$`,this._rangeThemeMapChanged$.asObservable()),this._registerIntercept(),this._initSnapshot(),this._initDefaultTheme()}_initDefaultTheme(){this.registerDefaultRangeTheme(me),this.registerDefaultRangeTheme(he);for(let e of fe)this.registerDefaultRangeTheme(e)}_ensureRangeThemeStyleMap(e){return this._rangeThemeStyleMap.has(e)||this._rangeThemeStyleMap.set(e,new Map),this._rangeThemeStyleMap.get(e)}_ensureRangeThemeStyleRuleMap(e){return this._rangeThemeStyleRuleMap.has(e)||this._rangeThemeStyleRuleMap.set(e,new Map),this._rangeThemeStyleRuleMap.get(e)}_ensureRTreeCollection(e){return this._rTreeCollection.has(e)||this._rTreeCollection.set(e,new t.RTree),this._rTreeCollection.get(e)}getDefaultRangeThemeStyle(e){return this._defaultRangeThemeMap.get(e)}getCustomRangeThemeStyle(e,t){return this._ensureRangeThemeStyleMap(e).get(t)}_getSheetRowVisibleFuncSet(e,t){this._rowVisibleFuncSet.has(e)||this._rowVisibleFuncSet.set(e,new Map);let n=this._rowVisibleFuncSet.get(e);return n.has(t)||n.set(t,new Set),n.get(t)}_getSheetRowVisibleHasInit(e,t){var n;return!!(this._rowVisibleFuncSet.has(e)&&(n=this._rowVisibleFuncSet.get(e))!=null&&n.has(t))}refreshSheetRowVisibleFuncSet(e,t){let n=this._getSheetRowVisibleFuncSet(e,t);n.clear();let r=this._univerInstanceService.getUnit(e);if(r){let e=r.getSheetBySheetId(t);if(e){let t=e.getRowCount(),r=e.getRowManager();for(let i=1;i<=t;i++)e.getRowVisible(i)?r.getRowHeight(i)===0&&n.add(i):n.add(i)}}}_ensureZebraCrossingCache(e,t,n){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);let r=this._zebraCrossingCacheMap.get(e);r.has(t)||r.set(t,new Map);let i=r.get(t);return i.has(n)||i.set(n,new ge),i.get(n)}registerRangeThemeRule(e,n){let{unitId:r,subUnitId:i,range:a}=n,o=(0,t.generateRandomId)(),s=this._ensureRangeThemeStyleRuleMap(r),c=this._ensureRTreeCollection(r);s.set(o,{rangeInfo:n,themeName:e}),c.insert({unitId:r,sheetId:i,range:a,id:o}),this._getSheetRowVisibleHasInit(r,i)||this.refreshSheetRowVisibleFuncSet(r,i);let l=this._ensureZebraCrossingCache(r,i,o),u=this._getSheetRowVisibleFuncSet(r,i);l.refresh(a,e=>!u.has(e))}getRegisteredRangeThemeStyle(e){let{unitId:t,subUnitId:n,range:r}=e,i=this._ensureRTreeCollection(t),a=Array.from(i.bulkSearch([{unitId:t,sheetId:n,range:r}]));if(a[0]){let e=this._ensureRangeThemeStyleRuleMap(t).get(a[0]);if(e)return e.themeName}}refreshZebraCrossingCacheBySheet(e,t){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);let n=this._zebraCrossingCacheMap.get(e);n.has(t)||n.set(t,new Map);let r=n.get(t);r&&r.forEach((n,i)=>{let a=this._ensureRangeThemeStyleRuleMap(e).get(i);a?n.refresh(a.rangeInfo.range,n=>!this._getSheetRowVisibleFuncSet(e,t).has(n)):r.delete(i)})}removeRangeThemeRule(e,t){let{unitId:n,subUnitId:r,range:i}=t,a=this._ensureRTreeCollection(n),o=Array.from(a.bulkSearch([{unitId:n,sheetId:r,range:i}])),s=this._ensureRangeThemeStyleRuleMap(n);for(let t=0;t<o.length;t++){let c=s.get(o[t]);if(c&&c.themeName===e){s.delete(o[t]),a.remove({unitId:n,sheetId:r,range:i,id:o[t]});let e=this._zebraCrossingCacheMap.get(n);if(e){let n=e.get(r);n&&n.delete(o[t])}break}}}registerDefaultRangeTheme(e){this._defaultRangeThemeMap.set(e.getName(),e),this._rangeThemeMapChanged$.next({type:`add`,styleName:e.getName()})}unRegisterDefaultRangeTheme(e){this._defaultRangeThemeMap.delete(e),this._rangeThemeMapChanged$.next({type:`remove`,styleName:e})}getRegisteredRangeThemes(){return Array.from(this._defaultRangeThemeMap.keys())}registerRangeThemeStyle(e,t){this._ensureRangeThemeStyleMap(e).set(t.getName(),t),this._rangeThemeMapChanged$.next({type:`add`,styleName:t.getName()})}unregisterRangeThemeStyle(e,t){this._ensureRangeThemeStyleMap(e).delete(t),this._rangeThemeMapChanged$.next({type:`remove`,styleName:t})}getALLRegisteredTheme(e){return Array.from(this._ensureRangeThemeStyleMap(e).keys())}getRangeThemeStyle(e,t){return this._defaultRangeThemeMap.has(t)?this._defaultRangeThemeMap.get(t):this._ensureRangeThemeStyleMap(e).get(t)}getCellStyle(e,t,n,r){let i={startRow:n,startColumn:r,endRow:n,endColumn:r},a=this._ensureRTreeCollection(e),o=Array.from(a.bulkSearch([{unitId:e,sheetId:t,range:i}]));if(o[0]){let i=this._ensureRangeThemeStyleRuleMap(e).get(o[0]);if(i){let{rangeInfo:a,themeName:s}=i,c=n-a.range.startRow,l=r-a.range.startColumn,u=this.getRangeThemeStyle(e,s),d=this._ensureZebraCrossingCache(e,t,o[0]).getIsToggled(n);if(u)return u.getStyle(c,l,n===a.range.endRow,r===a.range.endColumn,d)}}}_registerIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{id:y,effect:t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this.getCellStyle(a,o,r,i);if(s){let r=!e||e===t.rawData?{...t.rawData}:e;return r.themeStyle=s,n(r)}return n(e)}}))}toJson(e){let t=this._ensureRangeThemeStyleRuleMap(e),n=this._ensureRangeThemeStyleMap(e);if(n.size===0&&t.size===0)return`{}`;let r={};t.forEach((e,t)=>{r[t]=e});let i={};return n.forEach((e,t)=>{i[t]=e.toJson()}),JSON.stringify({rangeThemeStyleRuleMap:r,rangeThemeStyleMapJson:i})}fromJSON(e,t){let{rangeThemeStyleRuleMap:n,rangeThemeStyleMapJson:r}=t;n&&Object.keys(n).forEach(e=>{let{themeName:t,rangeInfo:r}=n[e];t.startsWith(`table`)||(this.registerRangeThemeRule(t,r),this._ensureRTreeCollection(r.unitId).insert({unitId:e,sheetId:r.subUnitId,range:r.range,id:e}))}),r&&Object.keys(r).forEach(t=>{let n=r[t],i=new ne(n.name);i.fromJson(n),this._ensureRangeThemeStyleMap(e).set(i.getName(),i)})}deleteUnitId(e){this._rangeThemeStyleMap.delete(e),this._rangeThemeStyleRuleMap.delete(e),this._rTreeCollection.delete(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>this.toJson(e),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:`SHEET_RANGE_THEME_MODEL_PLUGIN`,onLoad:(e,t)=>{this.fromJSON(e,t)},onUnLoad:e=>{this.deleteUnitId(e)}}))}dispose(){super.dispose(),this._rangeThemeStyleMap.clear(),this._rangeThemeStyleRuleMap.clear(),this._defaultRangeThemeMap.clear(),this._rTreeCollection.clear(),this._zebraCrossingCacheMap.clear(),this._rowVisibleFuncSet.clear()}};N=E([T(0,(0,t.Inject)(A)),T(1,(0,t.Inject)(t.IResourceManagerService)),T(2,(0,t.Inject)(t.IUniverInstanceService))],N);let _e={id:`sheet.mutation.set-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.registerRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},ve=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetRangeThemeStyleMutation]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,subUnitId:i.getSheetId(),range:n.range,themeName:n.themeName}},ye={id:`sheet.mutation.remove-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.removeRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},be=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[DeleteWorksheetRangeThemeStyleMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,subUnitId:i.getSheetId(),range:n.range,themeName:n.themeName}},xe=(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertRowMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},Se={id:`sheet.mutation.insert-row`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertRowMutation`);let{worksheet:i}=r,a=i.getRowManager(),{range:o,rowInfo:s}=n,{startRow:c,endRow:l}=o;a.insertRowsWithData(c,l,s);let u=l-c+1;return i.setRowCount(i.getRowCount()+u),i.getCellMatrix().insertRows(c,u),!0}},Ce=(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},we={id:`sheet.mutation.insert-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertColMutation`);let{worksheet:i}=r,a=i.getColumnManager(),{range:o,colInfo:s}=n,{startColumn:c,endColumn:l}=o;a.insertColumnsWithData(c,l,s);let u=l-c+1;return i.setColumnCount(i.getColumnCount()+u),i.getCellMatrix().insertColumns(o.startColumn,u),!0}},Te={id:`sheet.mutation.move-range`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{from:r,to:i}=n;if(!r||!i)return!1;let a=e.get(t.IUniverInstanceService).getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;let o=a.getSheetBySheetId(n.from.subUnitId),s=a.getSheetBySheetId(n.to.subUnitId);if(!o||!s)return!1;let c=o.getCellMatrix(),l=s.getCellMatrix();return new t.ObjectMatrix(r.value).forValue((e,t,n)=>{n==null?c.realDeleteValue(e,t):c.setValue(e,t,n)}),new t.ObjectMatrix(i.value).forValue((e,t,n)=>{n==null?l.realDeleteValue(e,t):l.setValue(e,t,n)}),!0}};function Ee(e,n){let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=a.startRow>o.startRow,c=a.endRow-a.startRow+1;return s?{unitId:r,subUnitId:i,sourceRange:t.Rectangle.clone(o),targetRange:{...a,endRow:a.endRow+c,startRow:a.startRow+c}}:{unitId:r,subUnitId:i,targetRange:t.Rectangle.clone(a),sourceRange:{...o,endRow:o.endRow-c,startRow:o.startRow-c}}}let De={id:`sheet.mutation.move-rows`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(!s)throw Error(`[MoveRowMutation] univerSheet is null!`);let c=s.getSheetBySheetId(i);if(!c)throw Error(`[MoveRowMutation] worksheet is null!`);let l=a.startRow,u=a.endRow-a.startRow+1,d=o.startRow;return(0,t.moveMatrixArray)(l,u,d,c.getRowManager().getRowData()),c.getCellMatrix().moveRows(l,u,d),!0}};function Oe(e,n){let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=a.startColumn>o.startColumn,c=a.endColumn-a.startColumn+1;return s?{unitId:r,subUnitId:i,sourceRange:t.Rectangle.clone(o),targetRange:{...a,endColumn:a.endColumn+c,startColumn:a.startColumn+c}}:{unitId:r,subUnitId:i,targetRange:t.Rectangle.clone(a),sourceRange:{...o,startColumn:o.startColumn-c,endColumn:o.endColumn-c}}}let ke={id:`sheet.mutation.move-columns`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(!s)throw Error(`[MoveColumnMutation] univerSheet is null!`);let c=s.getSheetBySheetId(i);if(!c)throw Error(`[MoveColumnMutation] worksheet is null!`);let l=a.startColumn,u=a.endColumn-a.startColumn+1,d=o.startColumn;return(0,t.moveMatrixArray)(l,u,d,c.getColumnManager().getColumnData()),c.getCellMatrix().moveColumns(l,u,d),!0}},Ae=(e,n)=>{let r=n.getRowManager().getRowData(),i={},a=e.range,o=(0,t.concatMatrixArray)(i,(0,t.sliceMatrixArray)(a.startRow,a.endRow,r));return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,rowInfo:o}},je={id:`sheet.mutation.remove-rows`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=n.range,o=i.getRowManager().getRowData(),s=[];for(let e=a.startRow;e<=a.endRow;e++)i.getRowFiltered(e)&&s.push(e);let c=a.endRow-a.startRow+1;return(0,t.spliceArray)(a.startRow,c,o),i.getCellMatrix().removeRows(a.startRow,c),i.setRowCount(i.getRowCount()-c),!0}},Me=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(i==null)throw Error(`worksheet is null error!`);let a=i.getColumnManager().getColumnData(),o={},s=n.range,c=(0,t.concatMatrixArray)(o,(0,t.sliceMatrixArray)(s.startColumn,s.endColumn,a));return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,colInfo:c}},P={id:`sheet.mutation.remove-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=n.range,o=i.getColumnManager().getColumnData(),s=a.endColumn-a.startColumn+1;return(0,t.spliceArray)(a.startColumn,s,o),i.setColumnCount(i.getColumnCount()-s),i.getCellMatrix().removeColumns(a.startColumn,s),!0}},F=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or worksheet is null error!`);let{worksheet:i}=r,a=i.getConfig().mergeData,o=n.ranges,s=[];for(let e=0;e<o.length;e++)for(let n=a.length-1;n>=0;n--){let r=a[n],i=o[e];t.Rectangle.intersects(r,i)&&s.push(a[n])}return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:s}},I={id:`sheet.mutation.remove-worksheet-merge`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or worksheet is null error!`);let{worksheet:i}=r,a=i.getConfig().mergeData,o=n.ranges;for(let e=0;e<o.length;e++)for(let n=a.length-1;n>=0;n--){let r=a[n],i=o[e];t.Rectangle.intersects(r,i)&&a.splice(n,1)}return i.getSpanModel().rebuild(a),!0}},Ne=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},Pe={id:`sheet.mutation.reorder-range`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{subUnitId:r,unitId:i,range:a,order:o}=n,s=e.get(t.IUniverInstanceService).getUnit(i).getSheetBySheetId(r);if(!s)return!1;let c=new t.ObjectMatrix;t.Range.foreach(a,(e,n)=>{if(o.hasOwnProperty(e)){let r=o[e],i=t.Tools.deepClone(s.getCellRaw(r,n));c.setValue(e,n,i)}});let l=s.getCellMatrix();return c.forValue((e,t,n)=>{l.setValue(e,t,n)}),!0}};function Fe(e,n){if(e==null)return e;let r=t.Tools.deepClone(e);if(n==null)return r;let i={};return`h`in n&&(i.h=r.h),`ia`in n&&(i.ia=r.ia),`ah`in n&&(i.ah=r.ah),`hd`in n&&(i.hd=r.hd),`s`in n&&(i.s=r.s),`custom`in n&&(i.custom=r.custom),i}function Ie(e,n){if(e==null)return e;let r=t.Tools.deepClone(e);if(n==null)return r;let i={};return`w`in n&&(i.w=r.w),`hd`in n&&(i.hd=r.hd),`s`in n&&(i.s=r.s),`custom`in n&&(i.custom=r.custom),i}let Le=(e,t)=>{let{unitId:n,subUnitId:r,columnData:i}=e,a={},o=t.getColumnManager();for(let e in i){let t=i[e];a[e]=Ie(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Re={id:`sheet.mutation.set-col-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{columnData:r}=n,i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{worksheet:a}=i,o=a.getColumnManager();for(let e in r){let t=r[e];if(t==null){o.removeColumn(Number(e));continue}let n=o.getColumnOrCreate(Number(e));Object.assign(n,t)}return!0}},ze=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Be={id:`sheet.mutation.set-col-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.TRUE)}}return!0}},Ve=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},He={id:`sheet.mutation.set-col-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.FALSE)}}return!0}},Ue={id:`sheet.mutation.set-gridlines-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.gridlinesColor=n.color,!0}};function We(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ge(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function Ke(e,t,n){if(e==null)return e;if(!We(e))return;let r={},i=!1;if(Ge(e,t,(e,t)=>{r[e]=t,i=!0}),n)for(let t in n){let a=n[t];if(!a||!Object.prototype.hasOwnProperty.call(e,t))continue;let o=a(e[t]);o!==void 0&&(r[t]=o,i=!0)}return i?r:void 0}function qe(e,t,n){if(e==null)return e;if(!We(e))return;let r={},i=!1;return Ge(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Je(e){switch(e){case`bd`:case`tr`:case`td`:case`ht`:case`vt`:case`tb`:case`pd`:case`bg`:return!0;default:return!1}}function Ye(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function Xe(e){return Ke(e,t.COLOR_STYLE_KEYS)}function Ze(e){return Ke(e,t.TEXT_DECORATION_KEYS,{cl:Xe})}function Qe(e){return Ke(e,t.BORDER_STYLE_KEYS,{cl:Xe})}function $e(e){return qe(e,t.BORDER_KEYS,Qe)}function et(e){return Ke(e,t.TEXT_ROTATION_KEYS)}function tt(e){return Ke(e,t.PADDING_KEYS)}function nt(e){if(e==null)return e;if(!(!We(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function rt(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return Ze(t);case`bg`:case`cl`:return Xe(t);case`bd`:return $e(t);case`tr`:return et(t);case`pd`:return tt(t);case`n`:return nt(t);default:return Ye(t)?t:void 0}}function it(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=t.Tools.isObject(e)?{...e}:{};return Ge(r,t.BORDER_KEYS,(e,t)=>{let n=Qe(t);n!==void 0&&(i[e]=n)}),i}function at(e,n,r){let i=e.getStyleByCell(n);i==null&&delete n.s,typeof r.s==`string`&&(r.s=e.get(r.s));let a=ct(i,r.s?r.s:null);a&&(t.Tools.removeNull(a),Object.entries(a).forEach(([e,t])=>{typeof t==`object`&&t&&Object.keys(t).length===0&&delete a[e]})),t.Tools.isEmptyObject(a)?delete n.s:n.s=e.setValue(a);let o=r.v?`${r.v}\r\n`:``;if(!r.p&&n.p){var s;o&&o!==((s=n.p.body)==null?void 0:s.dataStream)?delete n.p:ut(n.p,r.s?r.s:null)}}function ot(e,n){if(!n||!Object.keys(n).length)return e;let r=t.Tools.deepClone(e==null?{}:e)||{},i=n;for(let e of t.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(i,e))continue;let t=rt(e,i[e]);t!==void 0&&(e===`bd`?r[e]=st(r[e]||{},t):e in r||(r[e]=null))}return r}function st(e,n){if(!n||!Object.keys(n).length)return e;let r=e;for(let i of t.BORDER_KEYS)Object.prototype.hasOwnProperty.call(n,i)&&(i in e||(r[i]=null));return e}function ct(e,n,r=!1){if(n===null)return n;if(n===void 0)return e;let i=t.Tools.deepClone(e)||{},a=n;for(let e of t.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(a,e)||r&&Je(e))continue;let t=rt(e,a[e]);t!==void 0&&(e===`bd`?i[e]=it(i[e],t):i[e]=t)}if(`cl`in i){let e=i,t=e.cl;`ul`in e&&e.ul&&(e.ul.cl=t),`ol`in e&&e.ol&&(e.ol.cl=t),`st`in e&&e.st&&(e.st.cl=t)}return i}function lt(e,t){return e.some(e=>e.startIndex===t)?lt(e,t+1):t}function ut(e,n){var r;if(e.body==null)return;Array.isArray(e.body.textRuns)||(e.body.textRuns=[]);let i=0,a=[],o=((r=e.body)==null?void 0:r.paragraphs)||[];for(let r of e.body.textRuns){let{st:e,ed:s,ts:c={}}=r;if(i<e){let r={st:i,ed:e},o=ct({},n,!0);o&&t.Tools.removeNull(o),t.Tools.isEmptyObject(o)||(r.ts=o),a.push(r)}let l=ct(c,n,!0);l&&t.Tools.removeNull(l),t.Tools.isEmptyObject(l)?delete r.ts:r.ts=l,a.push(r),i=lt(o,s)}let s=e.body.dataStream.endsWith(`\r
2
- `)?e.body.dataStream.length-2:e.body.dataStream.length;if(i<s){let e={st:i,ed:s},r=ct({},n,!0);r&&t.Tools.removeNull(r),t.Tools.isEmptyObject(r)||(e.ts=r),a.push(e)}e.body.textRuns=(0,t.normalizeTextRuns)(a)}function dt(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?+!!ft(n.v):e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ft(e){if(typeof e==`string`){if(e.toUpperCase()===`TRUE`)return!0;if(e.toUpperCase()===`FALSE`)return!1;if((0,t.isSafeNumeric)(e)){if(Number(e)===0)return!1;if(Number(e)===1)return!0}}if(typeof e==`number`){if(e===0)return!1;if(e===1)return!0}return typeof e==`boolean`?e:null}function pt(e){return e==null?null:(e.f===void 0&&(e.f=null),e.si===void 0&&(e.si=null),e.p===void 0&&(e.p=null),e.v===void 0&&(e.v=null),e.t===void 0&&(e.t=null),e.s===void 0&&(e.s=null),e.custom===void 0&&(e.custom=null),e)}let L=(e,n)=>{let{unitId:r,subUnitId:i,cellValue:a}=n,o=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(o==null)throw Error(`workbook is null error!`);let s=o.getSheetBySheetId(i);if(s==null)throw Error(`worksheet is null error!`);let c=s.getCellMatrix(),l=o.getStyles(),u=new t.ObjectMatrix;return new t.ObjectMatrix(a).forValue((e,n,r)=>{let i=t.Tools.deepClone(c==null?void 0:c.getValue(e,n))||{};i.s=ot(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(e,n,pt(i))}),{...n,options:{},cellValue:u.getMatrix()}},R={id:`sheet.mutation.set-range-values`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{cellValue:r,subUnitId:i,unitId:a}=n,o=e.get(t.IUniverInstanceService).getUnit(a);if(!o)return!1;let s=o.getSheetBySheetId(i);if(!s)return!1;let c=s.getCellMatrix(),l=o.getStyles();return new t.ObjectMatrix(r).forValue((e,n,r)=>{if(!r)c.realDeleteValue(e,n);else{let i=c.getValue(e,n)||{};i=ht(r,i,l),t.Tools.isEmptyObject(i)?c.realDeleteValue(e,n):c.setValue(e,n,i)}}),!0}},mt=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function ht(e,t,n){let r=c(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(mt.has(a)){let n=e[a];gt(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=dt(r,e)):a===`s`&&at(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=dt(r,t)),t.v===null&&(delete t.t,delete t.v),t}function gt(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let _t=(e,t)=>{let{unitId:n,subUnitId:r,rowData:i}=e,a={},o=t.getRowManager();for(let e in i){let t=i[e];a[e]=Fe(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},vt={id:`sheet.mutation.set-row-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowData:r}=n,i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{worksheet:a}=i,o=a.getRowManager();for(let e in r){let t=r[e];if(t==null){o.removeRow(Number(e));continue}let n=o.getRowOrCreate(Number(e));Object.assign(n,t)}return!0}},yt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},bt={id:`sheet.mutation.set-row-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=0)}}return!0}},xt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},St={id:`sheet.mutation.set-row-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=1)}}return!0}},Ct=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getColumnManager();for(let e=0;e<i.length;e++){let t=i[e];for(let e=t.startColumn;e<t.endColumn+1;e++)a[e]=o.getColumnWidth(e)}return{unitId:n,subUnitId:r,ranges:i,colWidth:a}},wt={id:`sheet.mutation.set-worksheet-col-width`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getColumnManager(),o=n.ranges;for(let e=0;e<o.length;e++){let r=o[e];for(let e=r.startColumn;e<r.endColumn+1;e++)i.getColVisible(e)&&(typeof n.colWidth==`number`?a.setColumnWidth(e,n.colWidth):t.Tools.isDefine(n.colWidth[e])&&a.setColumnWidth(e,n.colWidth[e]))}return!0}},Tt=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,columnCount:r.worksheet.getColumnCount()}},Et={id:`sheet.mutation.set-worksheet-column-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Dt={id:`sheet.mutation.set-worksheet-default-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},Ot=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetDefaultStyleMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,subUnitId:i.getSheetId(),defaultStyle:i.getDefaultCellStyle()}},kt=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,rowCount:r.worksheet.getRowCount()}},At={id:`sheet.mutation.set-worksheet-row-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},jt=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getRowManager();for(let{startRow:e,endRow:n}of i)for(let r=e;r<n+1;r++){var s,c;a[r]=(s=(c=o.getRow(r))==null?void 0:c.h)==null?t.getConfig().defaultRowHeight:s}return{unitId:n,subUnitId:r,ranges:i,rowHeight:a}},Mt=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getRowManager();for(let{startRow:e,endRow:t}of i)for(let n=e;n<=t;n++){var s;a[n]=(s=o.getRow(n))==null?void 0:s.ia}return{unitId:n,subUnitId:r,ranges:i,autoHeightInfo:a}},Nt=(e,t)=>{let{unitId:n,subUnitId:r,rowsAutoHeightInfo:i}=e,a=[],o=t.getRowManager();for(let e of i){var s,c;let{row:n}=e;a.push({row:n,autoHeight:(s=(c=o.getRow(n))==null?void 0:c.ah)==null?t.getConfig().defaultRowHeight:s})}return{unitId:n,subUnitId:r,rowsAutoHeightInfo:a}},Pt={id:`sheet.mutation.set-worksheet-row-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,rowHeight:i}=n,a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getRowManager();for(let{startRow:e,endRow:n}of r)for(let r=e;r<=n;r++)typeof i==`number`?s.setRowHeight(r,i):t.Tools.isDefine(i[r])&&s.setRowHeight(r,i[r]);return!0}},Ft={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let o=a.worksheet.getRowManager();for(let{startRow:e,endRow:t}of r)for(let n=e;n<=t;n++){let e=o.getRowOrCreate(n);if(typeof i==`number`)e.ia=i;else{var s;e.ia=(s=i[n])==null?void 0:s}}return!0}},It={id:`sheet.mutation.set-worksheet-row-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowsAutoHeightInfo:r}=n,i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=i.worksheet.getRowManager();for(let{row:e,autoHeight:t}of r){let n=a.getRowOrCreate(e);n.ah=t}return!0}},Lt={id:`sheet.mutation.toggle-gridlines`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},Rt={id:`sheet.operation.set-worksheet-active`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getWorksheets();for(let[,e]of i)if(e.getSheetId()===n.subUnitId)return r.setActiveSheet(e),!0;return!1}},z=function(e){return e.SET_WORKSHEET_ROW_HEIGHT=`sheet.mutation.set-worksheet-row-height`,e.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-is-auto-height`,e.SET_WORKSHEET_ROW_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-auto-height`,e.SET_WORKSHEET_COL_WIDTH=`sheet.mutation.set-worksheet-col-width`,e.SET_WORKSHEET_ACTIVE=`sheet.operation.set-worksheet-active`,e.MOVE_ROWS=`sheet.mutation.move-rows`,e.MOVE_COLUMNS=`sheet.mutation.move-columns`,e.SET_COL_HIDDEN=`sheet.mutation.set-col-hidden`,e.SET_COL_VISIBLE=`sheet.mutation.set-col-visible`,e.SET_ROW_HIDDEN=`sheet.mutation.set-row-hidden`,e.SET_ROW_VISIBLE=`sheet.mutation.set-row-visible`,e.INSERT_COL=`sheet.mutation.insert-col`,e.INSERT_ROW=`sheet.mutation.insert-row`,e.REMOVE_COL=`sheet.mutation.remove-col`,e.REMOVE_ROW=`sheet.mutation.remove-rows`,e.TOGGLE_GRIDLINES=`sheet.mutation.toggle-gridlines`,e.SET_GRIDLINES_COLOR=`sheet.mutation.set-gridlines-color`,e}({}),zt=function(e){return e.SET_RANGE_VALUES=`sheet.mutation.set-range-values`,e.MOVE_RANGE=`sheet.mutation.move-range`,e.REMOVE_WORKSHEET_MERGE=`sheet.mutation.remove-worksheet-merge`,e.ADD_WORKSHEET_MERGE=`sheet.mutation.add-worksheet-merge`,e.REORDER_RANGE=`sheet.mutation.reorder-range`,e.SET_WORKSHEET_DEFAULT_STYLE=`sheet.mutation.set-worksheet-default-style`,e.SET_ROW_DATA=`sheet.mutation.set-row-data`,e.SET_COL_DATA=`sheet.mutation.set-col-data`,e.SET_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.set-worksheet-range-theme-style`,e.DELETE_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.delete-worksheet-range-theme-style`,e}({}),Bt=[Pt.id,Ft.id,It.id,wt.id,Rt.id,De.id,ke.id,Be.id,He.id,St.id,bt.id,we.id,Se.id,P.id,je.id,Lt.id,Ue.id,At.id,Et.id],Vt=[R.id,Te.id,I.id,g.id,Pe.id,Dt.id,vt.id,Re.id,_e.id,ye.id];function Ht(e,n){switch(n.id){case zt.SET_RANGE_VALUES:{let e=n.params,r=new t.ObjectMatrix(e.cellValue).getDataRange();return r.endRow===-1?[]:e.cellValue?[{unitId:e.unitId,subUnitId:e.subUnitId,range:r}]:[]}case zt.MOVE_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.from.subUnitId,range:new t.ObjectMatrix(e.from.value).getRange()},{unitId:e.unitId,subUnitId:e.to.subUnitId,range:new t.ObjectMatrix(e.to.value).getRange()}]}case zt.REMOVE_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case zt.ADD_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case zt.REORDER_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case zt.SET_WORKSHEET_DEFAULT_STYLE:{let t=p(e,n.params);if(!t)return[];let{worksheet:r,unitId:i,subUnitId:a}=t;return[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1}}]}case zt.SET_ROW_DATA:{let t=p(e,n.params);if(!t)return[];let{worksheet:r,unitId:i,subUnitId:a}=t,{rowData:o}=n.params,s=Object.keys(o).map(Number);return s.length===0?[]:[{unitId:i,subUnitId:a,range:{startRow:Math.min(...s),endRow:Math.max(...s),startColumn:0,endColumn:r.getColumnCount()-1}}]}case zt.SET_COL_DATA:{let t=p(e,n.params);if(!t)return[];let{worksheet:r,unitId:i,subUnitId:a}=t,{columnData:o}=n.params,s=Object.keys(o).map(Number);return s.length===0?[]:[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:Math.min(...s),endColumn:Math.max(...s)}}]}case zt.SET_WORKSHEET_RANGE_THEME_STYLE:case zt.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function Ut(e,n){switch(e.id){case z.SET_WORKSHEET_ROW_HEIGHT:case z.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.ROW}}))}case z.SET_WORKSHEET_ROW_AUTO_HEIGHT:{let r=e.params;return r.rowsAutoHeightInfo.map(e=>({unitId:r.unitId,subUnitId:r.subUnitId,range:{startRow:e.row,endRow:e.row,startColumn:0,endColumn:n-1,rangeType:t.RANGE_TYPE.ROW}}))}case z.SET_WORKSHEET_COL_WIDTH:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.COLUMN}}))}case z.MOVE_ROWS:case z.MOVE_COLUMNS:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:t.targetRange},{unitId:t.unitId,subUnitId:t.subUnitId,range:t.sourceRange}]}case z.SET_COL_HIDDEN:case z.SET_COL_VISIBLE:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.COLUMN}}))}case z.SET_ROW_HIDDEN:case z.SET_ROW_VISIBLE:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.ROW}}))}case z.INSERT_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case z.INSERT_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case z.REMOVE_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case z.REMOVE_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case z.TOGGLE_GRIDLINES:case z.SET_GRIDLINES_COLOR:return[];default:return[]}}function Wt(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Gt(e,t){return e&&e.spanAnchor?Wt(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Wt(e)}function Kt(e,n,r,i,a){let o=e.getCellMatrix(),s=e.getSpanModel().getMergedCellRange(n,r,i,a),c=new t.ObjectMatrix;return o.forValue((e,t)=>{let n=o.getValue(e,t);n&&c.setValue(e,t,n)}),s.forEach(e=>{let{startColumn:n,startRow:r,endColumn:i,endRow:a}=e;(0,t.createRowColIter)(r,a,n,i).forEach((e,t)=>{e===r&&t===n&&c.setValue(e,t,{...o.getValue(e,t),spanAnchor:{startRow:r,endRow:a,startColumn:n,endColumn:i}}),(e!==r||t!==n)&&(c.realDeleteValue(e,t),c.setValue(e,t,{spanAnchor:{startRow:r,endRow:a,startColumn:n,endColumn:i}}))})}),c}function qt(e,n,r,i){let{startRow:a,startColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o-r);if(l=l||Gt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.startColumn-=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Jt(e,n,r,i){let{startRow:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o+r);if(l=l||Gt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.endColumn+=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Yt(e,n,r,i){let{startRow:a,startColumn:o,endColumn:s}=e,c=null,l=!1;for(let e=o;e<=s;e++){let t=n.getValue(a-r,e);if(l=l||Gt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.startRow-=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Xt(e,n,r,i){let{startColumn:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=o;e++){let t=n.getValue(s+r,e);if(l=l||Gt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.endRow+=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Zt({range:e,allMatrixWithSpan:t,directions:n,isWorksheetHasSpan:r,maxRow:i,maxColumn:a}){let{left:o,right:s,up:c,down:l}=n,{startRow:u,startColumn:d,endRow:f,endColumn:p}=e,m=!1;if(o&&c&&u>0&&d>0){let n=t.getValue(u-1,d-1);Gt(n,t)&&(r&&n.spanAnchor?(e.startRow=n.spanAnchor.startRow,e.startColumn=n.spanAnchor.startColumn):(e.startRow=u-1,e.startColumn=d-1),m=!0)}if(s&&c&&u>0&&p<a-1){let n=t.getValue(u-1,p+1);Gt(n,t)&&(r&&n.spanAnchor?(e.startRow=n.spanAnchor.startRow,e.endColumn=n.spanAnchor.endColumn):(e.startRow=u-1,e.endColumn=p+1),m=!0)}if(o&&l&&f<i-1&&d>0){let n=t.getValue(f+1,d-1);Gt(n,t)&&(r&&n.spanAnchor?(e.endRow=n.spanAnchor.endRow,e.startColumn=n.spanAnchor.startColumn):(e.endRow=f+1,e.startColumn=d-1),m=!0)}if(s&&l&&f<i-1&&p<a-1){let n=t.getValue(f+1,p+1);Gt(n,t)&&(r&&n.spanAnchor?(e.endRow=n.spanAnchor.endRow,e.endColumn=n.spanAnchor.endColumn):(e.endRow=f+1,e.endColumn=p+1),m=!0)}return{hasValue:m,range:e}}function Qt(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Kt(r,0,0,i-1,a-1),s=r.getSnapshot().mergeData.length>0,{left:c,right:l,up:u,down:d}=n,f=!0,p={...e},m=[];for(;f;){f=!1;let e=Zt({range:p,allMatrixWithSpan:o,directions:n,isWorksheetHasSpan:s,maxRow:i,maxColumn:a});if(e.hasValue){p=e.range,f=!0;continue}if(u&&p.startRow!==0){let{hasValue:e,range:t,spanAnchor:n}=Yt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}if(d&&p.endRow!==i-1){let{hasValue:e,range:t,spanAnchor:n}=Xt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}if(c&&p.startColumn!==0){let{hasValue:e,range:t,spanAnchor:n}=qt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}if(l&&p.endColumn!==a-1){let{hasValue:e,range:t,spanAnchor:n}=Jt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}}return m.length>0&&(p=t.Rectangle.union(p,...m)),p}let $t=e=>{let n=new t.ObjectMatrix;return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),n.forValue((e,t)=>{let r=n.getValue(e-1,t);r&&n.setValue(e,t,r+1)}),n},en=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},tn=e=>{let t={area:0},n=(e,n)=>t.area<e?(t.area=e,t.range=n,!0):!1;return e.forValue((t,r,i)=>{let a=1,o=i;n(a*o,{startRow:t-o+1,endRow:t,startColumn:r,endColumn:r});let s={startRow:t-o+1,endRow:t,startColumn:0,endColumn:r};for(let i=r-1;i>=0&&e.getValue(t,i);i--){o=Math.min(e.getValue(t,i)||0,o),a++;let r=o*a;s.startColumn=i,s.startRow=t-o+1,n(r,s)}}),t},nn=(e,n)=>{t.Range.foreach(n,(t,n)=>{e.realDeleteValue(t,n)});for(let t=n.startColumn;t<=n.endColumn;t++){let r=n.endRow+1;if(e.getValue(r,t)>0){e.setValue(r,t,1);let n=r+1;for(;e.getValue(n,t)>0;)e.setValue(n,t,e.getValue(n-1,t)+1),n++}}return e},rn=e=>{let t=[],n=tn(e);for(;n.area>0;)n.range&&(t.push(n.range),nn(e,n.range)),n=tn(e);return t},an=e=>rn($t(e));var on=class{constructor(){w(this,`_matrix`,new t.ObjectMatrix)}add(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return rn(en(this._matrix))}};function sn(e){let{rangeWithCoord:t,primaryWithCoord:n,style:r}=e,i={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType,unitId:t.unitId,sheetId:t.sheetId},primary:null,style:r};return n!=null&&(i.primary=cn(n)),i}function cn(e){let{actualRow:t,actualColumn:n,isMerged:r,isMergedMainCell:i}=e,{startRow:a,startColumn:o,endRow:s,endColumn:c}=e.mergeInfo;return{actualRow:t,actualColumn:n,isMerged:r,isMergedMainCell:i,startRow:a,startColumn:o,endRow:s,endColumn:c}}let ln=function(e){return e[e.Tab=1]=`Tab`,e[e.Comma=2]=`Comma`,e[e.Semicolon=4]=`Semicolon`,e[e.Space=8]=`Space`,e[e.Custom=16]=`Custom`,e}({});var un=class{constructor(){w(this,`_tabCount`,0),w(this,`_commaCount`,0),w(this,`_semicolonCount`,0),w(this,`_spaceCount`,0)}add(e){switch(e){case` `:this._tabCount++;break;case`,`:this._commaCount++;break;case`;`:this._semicolonCount++;break;case` `:this._spaceCount++;break;default:break}}update(e){e&&typeof e==`string`&&(e.includes(` `)&&this._tabCount++,e.includes(`,`)&&this._commaCount++,e.includes(`;`)&&this._semicolonCount++,e.trim().includes(` `)&&this._spaceCount++)}getDelimiter(){let e=Math.max(this._tabCount,this._commaCount,this._semicolonCount,this._spaceCount);return e===0||e===this._tabCount?ln.Tab:e===this._commaCount?ln.Comma:e===this._semicolonCount?ln.Semicolon:e===this._spaceCount?ln.Space:ln.Tab}};function dn(e,t,n){let r=[];n!==void 0&&(e&ln.Custom)>0&&r.push(n),(e&ln.Tab)>0&&r.push(` `),(e&ln.Comma)>0&&r.push(`,`),(e&ln.Semicolon)>0&&r.push(`;`),(e&ln.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=fn(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function fn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}let pn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function mn(e){if(e!=null){if(e.p)return pn(e.p);if(e.v&&typeof e.v==`string`)return e.v;if(e.t&&(e.t===t.CellValueType.FORCE_STRING||e.t===t.CellValueType.STRING))return String(e.v)}}function hn(e,n,r,i,a=!1){let{startColumn:o,startRow:s,endColumn:c,endRow:l}=t.Range.transformRange(n,e);if(o!==c)throw Error(`The range must be in the same column.`);if(r&&(r&ln.Custom)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new un:null,f=[];for(let t=s;t<=l;t++){let n=mn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=dn(u?d.getDelimiter():r,a,i),m=-1,h=0,g=0,_=[];for(let e of f){if(e!==void 0){let t=String(e).split(p);m=m<0?t.length:Math.max(m,t.length),_.push(t),h=g}else _.push(void 0);g++}return{rs:_,maxLength:m===-1?0:m,lastRow:h}}let gn=(e,t,n=``)=>e.reduce((e,r)=>{let i=r&&r[t];return typeof i==`string`?(i?(e[i]||(e[i]=[]),e[i].push(r)):e[n].push(r),e):(console.warn(r,`${t} is not string`),e)},{}),_n=(e=0)=>{let t=e;return function(){return t++}};function vn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function yn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(vn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function bn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,null)}),n.clone()}function xn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})}),n.clone()}function Sn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{s:null})}),n.clone()}function Cn(e){let{rows:t,cols:n}=e;return{startRow:t[0],endRow:t[t.length-1],startColumn:n[0],endColumn:n[n.length-1]}}function wn(e,n,r,i){let a=n.get(t.IUniverInstanceService),o=r?a.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),s=i?o==null?void 0:o.getSheetBySheetId(i):o==null?void 0:o.getActiveSheet();if(!s)return null;let{startRow:c,endRow:l,startColumn:u,endColumn:d}=e,f=[],p=[];for(let e=c;e<=l;e++)s.getRowFiltered(e)||f.push(e);for(let e=u;e<=d;e++)p.push(e);return{rows:f,cols:p}}function Tn(e,n,r,i){let a=p(n.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!a)return e;let{worksheet:o}=a,s=[];for(let t of e){let{startRow:e,endRow:n,startColumn:r,endColumn:i}=t,a=[],c=e;for(let t=e;t<=n;t++)o.getRowFiltered(t)?(c<t&&a.push([c,t-1]),c=t+1):t===n&&a.push([c,n]);let l=s.findIndex(e=>e.startColumn===r&&e.endColumn===i);l>-1?s[l].rowIntervals=s[l].rowIntervals.concat(a):s.push({startColumn:r,endColumn:i,rowIntervals:a})}let c=[];for(let e of s){let{startColumn:n,endColumn:r,rowIntervals:i}=e,a=(0,t.mergeIntervals)(i);for(let[e,t]of a)c.push({startRow:e,endRow:t,startColumn:n,endColumn:r})}return c}let En=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),Dn=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var B=class{constructor(){w(this,`_model`,new Map),w(this,`_ruleChange$`,new n.Subject),w(this,`ruleChange$`,this._ruleChange$.asObservable()),w(this,`_ruleRefresh$`,new n.Subject),w(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),w(this,`_rangeRuleInitStateChange`,new n.BehaviorSubject(!1)),w(this,`rangeRuleInitStateChange$`,this._rangeRuleInitStateChange.asObservable())}dispose(){this._ruleChange$.complete(),this._ruleRefresh$.complete()}ruleRefresh(e){this._ruleRefresh$.next(e)}getRangeRuleInitState(){return this._rangeRuleInitStateChange.value}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,t,n){this._ensureRuleMap(e,t).set(n.id,n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:n,type:`add`})}deleteRule(e,t,n){var r;let i=(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.delete(n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:i,type:`delete`})}}setRule(e,t,n,r){let i=this.getRule(e,t,n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.set(n,r),this._ruleChange$.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:`set`})}}getRule(e,t,n){var r;return(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}getSubunitRuleList(e,t){var n;return[...(((n=this._model.get(e))==null?void 0:n.get(t))||new Map).values()]}getSubunitRuleListLength(e,t){var n;let r=(n=this._model.get(e))==null?void 0:n.get(t);return r?r.size:0}_ensureRuleMap(e,t){let n=this._model.get(e);n||(n=new Map,this._model.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t),r=[...n.keys()];e[t]={},r.forEach(r=>{let i=n.get(r);e[t][r]=[...i.values()]})}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n],i=new Map;Object.keys(r).forEach(e=>{let t=r[e].reduce((e,t)=>(e.set(t.id,t),e),new Map);i.set(e,t)}),t.set(n,i)}),this._model=t}deleteUnitModel(e){this._model.delete(e)}createRuleId(e,n){let r=(0,t.generateRandomId)(4),i=this._ensureRuleMap(e,n);for(;i.has(r);)r=(0,t.generateRandomId)(4);return r}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)for(let n of i.values())if(n.permissionId===t)return[e,r];return null}};let On=(e,t)=>{let n=e.get(B),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:jn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},kn={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(B);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},An=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:kn.id,params:t}},jn={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(B);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},Mn={type:t.CommandType.COMMAND,id:`sheet.command.add-range-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(B),{rule:o,permissionId:s}=n,{unitId:c,subUnitId:l,ranges:u,description:d,viewState:f,editState:p}=o,m=[{ranges:u,permissionId:s,id:a.createRuleId(c,l),description:d,unitType:o.unitType,unitId:c,subUnitId:l,viewState:f,editState:p}];if(await r.executeCommand(jn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:jn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:kn.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},V=function(e){return e[e.MOVE_START=0]=`MOVE_START`,e[e.MOVING=1]=`MOVING`,e[e.MOVE_END=2]=`MOVE_END`,e[e.ONLY_SET=3]=`ONLY_SET`,e}({});var Nn=class extends t.Disposable{constructor(e){super(),this._workbook=e,w(this,`_worksheetSelections`,new Map),w(this,`_worksheetLastSelectionPrimaryCell`,new Map),w(this,`_selectionMoveStart$`,new n.Subject),w(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),w(this,`_selectionMoving$`,new n.Subject),w(this,`selectionMoving$`,this._selectionMoving$.asObservable()),w(this,`_selectionMoveEnd$`,new n.BehaviorSubject([])),w(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),w(this,`_selectionSet$`,new n.BehaviorSubject([])),w(this,`selectionSet$`,this._selectionSet$.asObservable()),w(this,`selectionChanged$`,void 0),w(this,`_beforeSelectionMoveEnd$`,new n.BehaviorSubject([])),w(this,`beforeSelectionMoveEnd$`,this._beforeSelectionMoveEnd$.asObservable()),this.selectionChanged$=(0,n.merge)(this._selectionMoveEnd$,this._selectionSet$)}dispose(){super.dispose(),this._beforeSelectionMoveEnd$.complete(),this._selectionMoveEnd$.complete(),this._selectionMoving$.complete(),this._selectionMoveStart$.complete(),this._selectionSet$.complete(),this._workbook=null,this.clear()}addSelections(e,t){let n=this.getSelectionsOfWorksheet(e);n.push(...t),this._selectionSet$.next(n)}setSelections(e,t=[],n){switch(this.setSelectionsOfWorksheet(e,t),n){case V.MOVE_START:this._selectionMoveStart$.next(t);break;case V.MOVING:this._selectionMoving$.next(t);break;case V.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case V.ONLY_SET:this._selectionSet$.next(t);break;default:this._selectionSet$.next(t);break}}getCurrentSelections(){return this._getCurrentSelections()}getSelectionOfWorksheet(e){return this.getSelectionsOfWorksheet(e)}getSelectionsOfWorksheet(e){return this._worksheetSelections.has(e)||this._worksheetSelections.set(e,[]),this._worksheetSelections.get(e)}getLastSelectionPrimaryCellOfWorksheet(e){var t;return(t=this._worksheetLastSelectionPrimaryCell.get(e))==null?null:t}setSelectionsOfWorksheet(e,t){this._worksheetSelections.set(e,[...t]),t.length>0&&t[t.length-1].primary&&this._worksheetLastSelectionPrimaryCell.set(e,t[t.length-1].primary)}deleteSheetSelection(e){this._worksheetSelections.set(e,[]),this._worksheetLastSelectionPrimaryCell.delete(e)}clear(){this._worksheetSelections.clear(),this._worksheetLastSelectionPrimaryCell.clear(),this._selectionSet$.next([])}_getCurrentSelections(){return this.getSelectionsOfWorksheet(this._workbook.getActiveSheet().getSheetId())}getCurrentLastSelection(){let e=this._getCurrentSelections();return e[e.length-1]}};let H=class extends t.RxDisposable{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return null;let n=e.getActiveSheet();return{unitId:e.getUnitId(),sheetId:n.getSheetId()}}get currentSelectionParam(){return this._currentSelectionPos}constructor(e){super(),this._instanceSrv=e,w(this,`_cellStylesCache`,new Map),w(this,`selectionMoveStart$`,void 0),w(this,`selectionMoving$`,void 0),w(this,`selectionMoveEnd$`,void 0),w(this,`selectionSet$`,void 0),w(this,`selectionChanged$`,void 0),w(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.shareReplay)(1),(0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe().pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionSet$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionChanged$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,n.of)([]))).pipe((0,n.distinctUntilChanged)((e,t)=>e.length===t.length?e.length===0&&t.length===0?!0:e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n])):!1),(0,n.skip)(1)).pipe((0,n.takeUntil)(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe((0,n.takeUntil)(this.dispose$)).subscribe(()=>{this._cellStylesCache.clear()}))}dispose(){super.dispose(),this._cellStylesCache.clear(),this._workbookSelections.forEach(e=>e.dispose()),this._workbookSelections.clear(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)([]),this.selectionSet$=(0,n.of)(null),this.selectionChanged$=(0,n.of)(null)}clear(){this._workbookSelections.forEach(e=>e.clear())}getCurrentSelections(){return this._getCurrentSelections()}getCurrentLastSelection(){let e=this._getCurrentSelections();return e==null?void 0:e[e.length-1]}getCurrentLastSelectionPrimaryCell(){let e=this._currentSelectionPos;if(!e)return null;let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getLastSelectionPrimaryCellOfWorksheet(n)}addSelections(e,t,n){if(typeof e==`string`){this._ensureWorkbookSelection(e).addSelections(t,n);return}let r=this._currentSelectionPos;if(!r)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:i,sheetId:a}=r;this._ensureWorkbookSelection(i).addSelections(a,e)}setSelections(e,t,n,r){if(typeof e==`string`&&typeof t==`string`){let i=e;this._ensureWorkbookSelection(i).setSelections(t,n||[],r==null?V.ONLY_SET:r);return}let i=this._currentSelectionPos;if(!i)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:a,sheetId:o}=i;if(typeof e==`object`){var s;let r=e==null?n:e,i=(s=t)==null?V.ONLY_SET:s;this._ensureWorkbookSelection(a).setSelections(o,r,i)}}clearCurrentSelections(){this._getCurrentSelections().splice(0)}isOverlapping(){let e=this.getCurrentSelections();return e==null?!1:e.some(({range:t},n)=>e.some(({range:e},r)=>n===r?!1:t.startRow<=e.endRow&&t.endRow>=e.startRow&&t.startColumn<=e.endColumn&&t.endColumn>=e.startColumn))}_getCurrentSelections(){let e=this._currentSelectionPos;if(!e)return[];let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getSelectionsOfWorksheet(n)}getWorkbookSelections(e){return this._ensureWorkbookSelection(e)}_ensureWorkbookSelection(e){let t=this._workbookSelections.get(e);if(!t){let n=this._instanceSrv.getUnit(e);if(!n)throw Error(`[SheetsSelectionsService]: cannot resolve unit with id "${e}"!`);t=new Nn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var n;let r=(n=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getActiveSheet(),i=this.getCurrentSelections();if(!r||i.length===0)return{isAllValuesSame:!1,value:null};let a=null;for(let n=0;n<i.length;n++){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=i[n].range;for(let n=o;n<=s;n++)for(let i=c;i<=l;i++){let o=`${n}_${i}`,s;this._cellStylesCache.has(o)?s=this._cellStylesCache.get(o):(s=r.getComposedCellStyle(n,i),this._cellStylesCache.set(o,s));let c=s[e];if(a!=null&&!t.Tools.diffValue(a,c))return{isAllValuesSame:!1,value:null};a=c}}return{isAllValuesSame:!0,value:a}}};H=E([T(0,t.IUniverInstanceService)],H);let Pn=`REF_SELECTIONS_ENABLED`,Fn={id:`sheet.command.clear-selection-all`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(H),s=e.get(t.IUndoRedoService),c=e.get(A),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m=Tn(p,e,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:bn(m)},v=L(e,_);h.push({id:R.id,params:_}),g.push({id:R.id,params:v});let y=c.onCommandExecute({id:Fn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,t.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}},In={id:`sheet.command.clear-selection-format`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(H),s=e.get(t.IUndoRedoService),c=e.get(A),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m=Tn(p,e,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:Sn(m)},v=L(e,_);h.push({id:R.id,params:_}),g.push({id:R.id,params:v});let y=c.onCommandExecute({id:In.id});return h.push(...y.redos),g.unshift(...y.undos),(0,t.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}};function Ln(e,n,r=!0){let i=n.getMatrixWithMergedCells(...(0,t.selectionToArray)(e)),a=[];if(i.forValue((n,r,i)=>{if(i.colSpan!==void 0&&i.rowSpan!==void 0){let o={startRow:n,startColumn:r,endRow:n+i.rowSpan-1,endColumn:r+i.colSpan-1};t.Rectangle.contains(e,o)||a.push(o)}}),a.length===0)return e;let o=t.Rectangle.union(e,...a);return r?Ln(o,n,r):o}function Rn(e,n,r){let i=null;return r.getMatrixWithMergedCells(e,n,e,n).forValue((e,n,r)=>(i={actualRow:e,actualColumn:n,startRow:e,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:e+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:t.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:e,startRow:e,startColumn:n,endRow:e,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:t.RANGE_TYPE.NORMAL}}function zn(e,t,n){let{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return Number.isNaN(r)&&(e.startRow=0),Number.isNaN(a)&&(e.endRow=t-1),Number.isNaN(i)&&(e.startColumn=0),Number.isNaN(o)&&(e.endColumn=n-1),e}function U(e,n){let r=Number.isNaN(e.startRow)?0:e.startRow,i=Number.isNaN(e.startColumn)?0:e.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:e.startRow,endColumn:e.startColumn,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}let Bn=(e,t,n)=>({id:W.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:U(e,n)}]}});function Vn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Hn(e){function t(t,n){function r(t){for(let r=t.startRow;r<=t.endRow;r++)if(!e.getRowFiltered(r))for(let e=t.startColumn;e<=t.endColumn;e++)n(r,e,t)}r(t)}return{forOperableEach:t}}let Un=e=>e.id!==y;function Wn(e,n,r,i,a,o,s){let c={};for(let t=n;t<=r;t++)for(let n=i;n<=a;n++){let r=o?e.getCellWithFilteredInterceptors(s,n,b,Un):e.getCellWithFilteredInterceptors(t,s,b,Un);!r||!r.s||(c[t]||(c[t]={}),c[t][n]={s:r.s})}for(let e in c){for(let n in c[e]){let r=c[e][n];r.s&&typeof r.s==`object`&&t.Tools.isEmptyObject(r.s)&&delete r.s,t.Tools.isEmptyObject(r)&&delete c[e][n]}t.Tools.isEmptyObject(c[e])&&delete c[e]}return c}let Gn=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),Kn=class extends H{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe((0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)(null),this.selectionSet$=(0,n.of)(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let e=this._instanceSrv.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET);e.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let r=new n.BehaviorSubject(e);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._ensureWorkbookSelection(e.getUnitId()),r.next([...r.getValue(),e])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),r.next(r.getValue().filter(t=>t!==e))})),r.pipe((0,n.map)(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};Kn=E([T(0,t.IUniverInstanceService)],Kn);function qn(e,n){let r=e.get(t.IContextService).getContextValue(Pn);return e.get(r&&!n?Gn:H)}let W={id:`sheet.operation.set-selections`,type:t.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return qn(e).setSelections(i,a,[...n],r),!0}},Jn={id:`sheet.command.select-range`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:r,subUnit:i,range:a}=n,o=e.get(t.ICommandService),s=p(e.get(t.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:U(a,s.worksheet),style:null}];return o.syncExecuteCommand(W.id,{unitId:r,subUnitId:i,selections:c})}},Yn=`sheet.command.move-range`,Xn={type:t.CommandType.COMMAND,id:Yn,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.ErrorService),o=e.get(t.LocaleService);if(!await e.get(A).beforeCommandExecute({id:Xn.id,params:n}))return!1;let s=Qn(e,n);return s?(0,t.sequenceExecute)(s.redos,r).result?(i.pushUndoRedo({unitID:s.unitId,undoMutations:s.undos,redoMutations:s.redos}),!0):!1:(a.emit(o.t(`sheets.info.acrossMergedCell`)),!1)}};function Zn(e,n){var r,i,a,o,s;let c=e.get(t.IUniverInstanceService),l=p(c),u=(r=(i=n.toUnitId)==null?n.fromUnitId:i)==null?l==null?void 0:l.unitId:r,d=(a=n.fromSubUnitId)==null?l==null?void 0:l.subUnitId:a,f=(o=(s=n.toSubUnitId)==null?n.fromSubUnitId:s)==null?l==null?void 0:l.subUnitId:o;if(!u||!d||!f||n.fromUnitId&&n.toUnitId&&n.fromUnitId!==n.toUnitId)return null;let m=c.getUniverSheetInstance(u),h=m==null?void 0:m.getSheetBySheetId(d),g=m==null?void 0:m.getSheetBySheetId(f);return!h||!g?null:{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:h,toWorksheet:g}}function Qn(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=Zn(e,t);if(!c)return null;let l=e.get(A),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=$n(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:Xn.id,params:t},_=l.onCommandExecute(g),v=[...(r=_.preRedos)==null?[]:r,...h.redos,..._.redos],y=[...(i=_.preUndos)==null?[]:i,...h.undos,..._.undos];if(a&&(v.push({id:W.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:er(t.fromRange,t.toRange,p,m)}],type:V.MOVE_END}}),y.push({id:W.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:U(t.fromRange,p)}],type:V.MOVE_END}})),o){let e=l.afterCommandExecute(g);v.push(...e.redos),y.push(...e.undos)}if(s){let{undos:e,redos:n}=l.generateMutationsOfAutoHeight({unitId:u,subUnitId:f,ranges:d===f?[t.fromRange,t.toRange]:[t.toRange]});v.push(...n),y.push(...e)}return{unitId:u,redos:v,undos:y}}function $n(e,n,r,i=!1){let a=n.unitId,o=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_SHEET);if(!o)return null;let{subUnitId:s,range:c}=n,{subUnitId:l,range:u}=r,d=o.getSheetBySheetId(s),f=o.getSheetBySheetId(l);if(!d||!f)return null;let p=Ln(u,f,!1);if(!t.Rectangle.equals(u,p)&&!i)return null;let m=d.getCellMatrix(),h=f.getCellMatrix(),g=new t.ObjectMatrix,_=new t.ObjectMatrix,v=new t.ObjectMatrix,y=new t.ObjectMatrix;t.Range.foreach(c,(e,n)=>{var r;let i=(r=t.Tools.deepClone(m.getValue(e,n)))==null?null:r;i!=null&&i.s&&(i.s=o.getStyles().get(i.s)),g.setValue(e,n,null),_.setValue(e,n,i);let a=(0,t.cellToRange)(e,n),s=t.Rectangle.getRelativeRange(a,c),l=t.Rectangle.getPositionRange(s,u);v.setValue(l.startRow,l.startColumn,t.Tools.deepClone(i))}),t.Range.foreach(u,(e,n)=>{var r;let i=(r=t.Tools.deepClone(h.getValue(e,n)))==null?null:r;y.setValue(e,n,i)});let b={fromRange:n.range,toRange:r.range,from:{value:g.getMatrix(),subUnitId:s},to:{value:v.getMatrix(),subUnitId:l},unitId:a},x={fromRange:r.range,toRange:n.range,from:{value:y.getMatrix(),subUnitId:l},to:{value:_.getMatrix(),subUnitId:s},unitId:a};return{redos:[{id:Te.id,params:b}],undos:[{id:Te.id,params:x}]}}function er(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=U(t,r);if(o){let e=o.endRow-o.startRow+1,t=o.endColumn-o.startColumn+1;s.endRow=s.startRow+e-1,s.endColumn=s.startColumn+t-1,s.actualRow=s.startRow,s.actualColumn=s.startColumn,s.isMerged=!1,s.isMergedMainCell=!0}return s}let tr={id:`sheet.command.set-range-values`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let o=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),{value:s,range:c,redoUndoId:l}=n,u=c?[c]:o;if(!u||!u.length)return!1;let d=e.get(t.ICommandService),f=e.get(t.IUndoRedoService),m=e.get(A),{subUnitId:h,unitId:g,workbook:_,worksheet:v}=a,y=new t.ObjectMatrix,b;if(t.Tools.isArray(s))for(let e=0;e<u.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=u[e];for(let e=t;e<=r;e++)for(let r=n;r<=i;r++)y.setValue(e,r,s[e-t][r-n])}else if((0,t.isICellData)(s))for(let e=0;e<u.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=u[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)y.setValue(e,t,s)}else b=s,u=b?[new t.ObjectMatrix(b).getStartEndScope()]:[];let x={unitId:g,subUnitId:h,cellValue:(i=b)==null?y.getMatrix():i},S=L(e,x),C=(0,t.mapObjectMatrix)(x.cellValue,(e,t)=>v.getCellHeight(e,t)||void 0);if(!d.syncExecuteCommand(R.id,x))return!1;let{undos:w,redos:T}=m.onCommandExecute({id:tr.id,params:x}),{undos:E,redos:D}=m.generateMutationsOfAutoHeight({unitId:g,subUnitId:h,ranges:u,cellHeights:new t.ObjectMatrix(C)});if((0,t.sequenceExecute)([...T,...D],d).result){let e=[{id:R.id,params:x},...T,...D,Bn(u[u.length-1],_,v)],t=[{id:R.id,params:S},...w,...E];return o&&o.length&&t.push({id:W.id,params:{unitId:g,subUnitId:h,selections:o,reveal:!0}}),f.pushUndoRedo({unitID:g,undoMutations:t,redoMutations:e,id:l}),!0}return!1}};function nr(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=e.get(t.IUniverInstanceService),d=e.get(A),f=u.getUniverSheetInstance(a),p=f==null?void 0:f.getSheetBySheetId(o);if(p){let n=p.getCellMatrix(),u=n.getDataRange();if(s.startColumn<=u.endColumn||s.startRow<=u.endRow){let l,d;if(c===t.Dimension.COLUMNS){let e=Math.min(s.endRow,u.endRow),r=0;for(let i=s.startRow;i<=e;i++){let e=n.getRow(i),a=e?(0,t.getArrayLength)(e)-1:0;r=Math.max(r,a)}l={startRow:s.startRow,startColumn:s.startColumn,endRow:e,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:l.startColumn+i,endRow:e,endColumn:l.endColumn+i}}else{let e=Math.min(s.endColumn,u.endColumn),t=u.endRow;l={startRow:s.startRow,startColumn:s.startColumn,endRow:t,endColumn:e};let n=s.endRow-s.startRow+1;d={startRow:l.startRow+n,startColumn:s.startColumn,endRow:l.endRow+n,endColumn:e}}let f=$n(e,{unitId:a,subUnitId:o,range:l},{unitId:a,subUnitId:o,range:d},!0);f&&(r.push(...f.redos),i.push(...f.undos))}if(Object.entries(l).length===0)for(let e=s.startRow;e<=s.endRow;e++){l[e]||(l[e]={});for(let t=s.startColumn;t<=s.endColumn;t++)l[e][t]=null}let f={subUnitId:o,unitId:a,cellValue:l},m=L(e,f),{undos:h,redos:g}=d.onCommandExecute({id:tr.id,params:{...f,range:s}});r.push({id:R.id,params:f},...g),i.push({id:R.id,params:m},...h)}return{redo:r,undo:i}}function rr(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=e.get(t.IUniverInstanceService),u=e.get(A),d=l.getUniverSheetInstance(a),f=d==null?void 0:d.getSheetBySheetId(o);if(f){let n=f.getCellMatrix(),l=n.getDataRange(),d={subUnitId:o,unitId:a,cellValue:bn([s])},p=L(e,d),m=u.onCommandExecute({id:tr.id,params:d});if(r.push({id:R.id,params:d},...m.redos),i.push(...m.undos,{id:R.id,params:p}),s.startColumn<=l.endColumn||s.startRow<=l.endRow){let u=null,d=null;if(c===t.Dimension.COLUMNS&&s.endColumn<l.endColumn){let e=Math.min(s.endRow,l.endRow),r=0;for(let i=s.startRow;i<=e;i++){let e=n.getRow(i),a=e?(0,t.getArrayLength)(e)-1:0;r=Math.max(r,a)}u={startRow:s.startRow,startColumn:s.endColumn+1,endRow:e,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:u.startColumn-i,endRow:e,endColumn:u.endColumn-i}}if(c===t.Dimension.ROWS&&s.endRow<l.endRow){let e=Math.min(s.endColumn,l.endColumn),t=l.endRow;u={startRow:s.endRow+1,startColumn:s.startColumn,endRow:t,endColumn:e};let n=s.endRow-s.startRow+1;d={startRow:u.startRow-n,startColumn:s.startColumn,endRow:u.endRow-n,endColumn:e}}if(u&&d){let t=$n(e,{unitId:a,subUnitId:o,range:u},{unitId:a,subUnitId:o,range:d},!0);t&&(r.push(...t.redos),i.push(...t.undos))}}}return{redo:r,undo:i}}function ir(e,n,r,i,a,o){let{startRow:s,endRow:c,startColumn:l,endColumn:u}=n;if(a===t.Dimension.ROWS){let t=c-s+1;for(let n=r;n>=s;n--)for(let r=l;r<=u;r++){let i=e.getValue(n,r);i==null?e.realDeleteValue(n+t,r):e.setValue(n+t,r,i)}for(let t=c;t>=s;t--)for(let n=l;n<=u;n++)o&&o[t]&&o[t][n]?e.setValue(t,n,o[t][n]):e.realDeleteValue(t,n)}else if(a===t.Dimension.COLUMNS){let t=u-l+1;for(let n=s;n<=c;n++)for(let r=i;r>=l;r--){let i=e.getValue(n,r);i==null?e.realDeleteValue(n,r+t):e.setValue(n,r+t,i)}for(let t=s;t<=c;t++)for(let n=u;n>=l;n--)o&&o[t]&&o[t][n]?e.setValue(t,n,o[t][n]):e.realDeleteValue(t,n)}}function ar(e,n,r,i,a){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=n,u=s-o+1,d=l-c+1;if(a===t.Dimension.ROWS)for(let t=o;t<=r;t++)for(let n=c;n<=l;n++){let r=e.getValue(t+u,n);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}else if(a===t.Dimension.COLUMNS)for(let t=o;t<=s;t++)for(let n=c;n<=i;n++){let r=e.getValue(t,n+d);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}}let or=`sheet.command.delete-range-move-left`,sr={type:t.CommandType.COMMAND,id:or,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=p(s);if(!u)return!1;let{worksheet:d,workbook:f,subUnitId:m,unitId:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=c.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v={range:g,subUnitId:m,unitId:h,shiftDimension:t.Dimension.COLUMNS},y=l.onCommandExecute({id:sr.id,params:{range:g}}),{redo:b,undo:x}=rr(e,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(Bn(g,f,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,t.sequenceExecute)(S,a).result){let e=l.afterCommandExecute({id:sr.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),C.push(...e.undos),S.push(...e.redos),o.pushUndoRedo({unitID:h,undoMutations:C.reverse(),redoMutations:S}),!0}return!1}},cr=`sheet.command.delete-range-move-up`,lr={type:t.CommandType.COMMAND,id:cr,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=p(s);if(!u)return!1;let{unitId:d,subUnitId:f,workbook:m,worksheet:h}=u,g=n==null?void 0:n.range;if(!g){let e=c.getCurrentLastSelection();g=e==null?void 0:e.range}if(!g)return!1;let _={range:g,subUnitId:f,unitId:d,shiftDimension:t.Dimension.ROWS},v=l.onCommandExecute({id:lr.id,params:{range:g}}),{redo:y,undo:b}=rr(e,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Bn(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,t.sequenceExecute)(x,a).result){let e=l.afterCommandExecute({id:lr.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},ur=`sheet.command.insert-range-move-down`,dr={type:t.CommandType.COMMAND,id:ur,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=p(s);if(!f)return!1;let{unitId:m,subUnitId:h,worksheet:g,workbook:_}=f,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=g.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(C.startRow,C.endRow,v.startColumn,v.endColumn).getDataRange().endRow,T=Math.max(w+(v.endRow-v.startRow+1)-C.endRow,0);if(T>0){let n=v.startRow-1,r=g.getRowHeight(n),i={unitId:m,subUnitId:h,range:{startRow:C.endRow+1,endRow:C.endRow+T,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:Array(T).fill(void 0).map(()=>({h:r,hd:t.BooleanNumber.FALSE}))};b.push({id:Se.id,params:i});let a=xe(e,i);x.push({id:je.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=g.getCell(e,t);n&&(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=nr(e,{range:v,subUnitId:h,unitId:m,shiftDimension:t.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:dr.id,params:{range:v}});if(b.push(...k.redos),b.push(Bn(v,_,g)),x.push(...(r=k.preUndos)==null?[]:r),b.unshift(...(i=k.preRedos)==null?[]:i),x.unshift(...k.undos),(0,t.sequenceExecute)(b,a)){let e=l.afterCommandExecute({id:dr.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:m,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},fr=`sheet.command.insert-range-move-right`,pr={type:t.CommandType.COMMAND,id:fr,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=p(s);if(!f)return!1;let{workbook:m,worksheet:h,unitId:g,subUnitId:_}=f,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=h.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(v.startRow,v.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,T=Math.max(w+(v.endColumn-v.startColumn+1)-C.endColumn,0);if(T>0){let n=v.startColumn-1,r=h.getColumnWidth(n),i={unitId:g,subUnitId:_,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+T},colInfo:Array(T).fill(void 0).map(()=>({w:r,hd:t.BooleanNumber.FALSE}))};b.push({id:we.id,params:i});let a=Ce(e,i);x.push({id:P.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=h.getCell(e,t);!n||!n.s||(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=nr(e,{range:v,subUnitId:_,unitId:g,shiftDimension:t.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:pr.id,params:{range:v}});if(b.push(...k.redos),b.push(Bn(v,m,h)),x.push(...(r=k.preUndos)==null?[]:r),b.unshift(...(i=k.preRedos)==null?[]:i),x.unshift(...k.undos),(0,t.sequenceExecute)(b,a).result){let e=l.afterCommandExecute({id:pr.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:g,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},mr=`sheet.command.insert-row`,hr={type:t.CommandType.COMMAND,id:mr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(A),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:hr.id,params:n})?r.syncExecuteCommand(gr.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},gr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,n)=>{var r,i,a,o;let s=p(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:m,cellValue:h}=n,{startRow:g,endRow:_}=f;f.rangeType=t.RANGE_TYPE.ROW;let v=m===t.Direction.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(A),S={unitId:u,subUnitId:d,range:f},C=l.getRowHeight(v);C!==l.getConfig().defaultRowHeight&&(S.rowInfo=Array(_-g+1).fill(void 0).map(()=>({h:C,hd:t.BooleanNumber.FALSE})));let w=xe(e,S),T=[{id:Se.id,params:S}],E=[{id:je.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:R.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:hr.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Bn(f,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:hr.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E,redoMutations:T}),!0}return!1}},_r={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,subUnitId:c,unitId:l}=o,u=n.value||0,d=a.startRow,f=a.startRow+u-1,m=s.getColumnCount()-1,h={unitId:l,subUnitId:c,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:m},cellValue:Wn(s,d,f,0,m,!0,d-1)};return e.get(t.ICommandService).executeCommand(hr.id,h)}},vr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i;if((r==null?void 0:r.length)===1)i=r[0];else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=i.endRow-i.startRow+1,u=i.endRow+1,d=i.endRow+l,f=o.getColumnCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:t.RANGE_TYPE.ROW},cellValue:Wn(o,u,d,0,f,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(hr.id,m)}},yr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.startRow,f=a.startRow+u-1,m=s.getColumnCount()-1,h=Wn(s,d,f,0,m,!0,d-1),g={unitId:c,subUnitId:l,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:h};return e.get(t.ICommandService).executeCommand(hr.id,g)}},br={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.endRow+1,f=a.endRow+u,m=s.getColumnCount()-1,h={unitId:c,subUnitId:l,direction:t.Direction.DOWN,range:{startRow:d,endRow:f,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:Wn(s,d,f,0,m,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(hr.id,h)}},xr=`sheet.command.insert-col`,Sr={type:t.CommandType.COMMAND,id:xr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(A),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:Sr.id,params:n})?r.syncExecuteCommand(Cr.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},Cr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,n)=>{var r,i,a,o;let s=p(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:m,cellValue:h}=n,{startColumn:g,endColumn:_}=f;f.rangeType=t.RANGE_TYPE.COLUMN;let v=m===t.Direction.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(A),S={unitId:u,subUnitId:d,range:f},C=l.getColumnWidth(v);C!==l.getConfig().defaultColumnWidth&&(S.colInfo=Array(_-g+1).fill(void 0).map(()=>({w:C,hd:t.BooleanNumber.FALSE})));let w=Ce(e,S),T=[{id:we.id,params:S}],E=[{id:P.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:R.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:Sr.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Bn(f,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:Sr.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E.filter(Boolean),redoMutations:T.filter(Boolean)}),!0}return!1}},wr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=n.value||0,u=i.startColumn,d=i.startColumn+l-1,f=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Wn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Sr.id,m)}},Tr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(H).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=r.endColumn-r.startColumn+1,l=r.endColumn+1,u=r.endColumn+c,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:t.Direction.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:Wn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(Sr.id,f)}},Er={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=n.value||0,u=i.startColumn,d=i.startColumn+l-1,f=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Wn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Sr.id,m)}},Dr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=n.value||0,u=i.endColumn+1,d=i.endColumn+l,f=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f},cellValue:Wn(o,0,f,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(Sr.id,m)}},Or=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Bn(e,t,n);r.executeCommand(i.id,i.params)}},300),kr=`sheet.command.remove-row`,Ar={type:t.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(A),{range:c,unitId:l,subUnitId:u}=n,d=Tn([c],e,l,u).reverse(),f=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=Ae(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:je.id,params:r}),t.push({id:Se.id,params:i}),t.push({id:R.id,params:a}),m.push(...n),f.unshift(...t)});let h=s.onCommandExecute({id:kr,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;Or(c,a,o,g);let n=s.afterCommandExecute({id:kr,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,...f,...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,...m,...h.redos,...n.redos]}),!0}return!1}},jr={type:t.CommandType.COMMAND,id:kr,handler:async(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=e.get(H),o=(n==null?void 0:n.range)||((r=a.getCurrentLastSelection())==null?void 0:r.range);if(!o)return!1;let s=e.get(A),c=e.get(t.ICommandService),{worksheet:l,unitId:u,subUnitId:d}=i;return o={...o,startColumn:0,endColumn:Math.max(l.getMaxColumns()-1,0)},await s.beforeCommandExecute({id:jr.id,params:{range:o}})?c.syncExecuteCommand(Ar.id,{range:o,unitId:u,subUnitId:d}):!1}},Mr=`sheet.command.remove-col`,Nr={type:t.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(A),{range:c,unitId:l,subUnitId:u}=n,d={unitId:l,subUnitId:u,range:c},f=Me(e,d),m={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(0,o.getRowCount()-1,c.startColumn,c.endColumn).getMatrix()},h=s.onCommandExecute({id:Mr,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:P.id,params:d},...h.redos],g).result){var _,v;Or(c,a,o,g);let n=s.afterCommandExecute({id:Mr,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:we.id,params:f},{id:R.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:P.id,params:d},...h.redos,...n.redos]}),!0}return!1}},Pr={type:t.CommandType.COMMAND,id:Mr,handler:async(e,n)=>{var r;let i=e.get(H),a=e.get(A),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||(s=(r=i.getCurrentLastSelection())==null?void 0:r.range),!s)return!1;let c=p(e.get(t.IUniverInstanceService));if(!c)return!1;let{worksheet:l,subUnitId:u,unitId:d}=c;return s={...s,startRow:0,endRow:Math.max(l.getMaxRows()-1,0)},await a.beforeCommandExecute({id:Pr.id,params:{range:s}})?o.syncExecuteCommand(Nr.id,{range:s,unitId:d,subUnitId:u}):!1}},Fr=(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=m(r,n);if(!o)throw Error(`[RemoveSheetUndoMutationFactory]: Worksheet is null error!`);let{workbook:s,worksheet:c}=o,l=c.getConfig();return{index:s.getConfig().sheetOrder.findIndex(e=>e===i),sheet:l,unitId:a}},Ir={id:`sheet.mutation.remove-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=r.getUniverSheetInstance(a);return o?o.removeSheet(i):!1}};function Lr(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function Rr(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let zr=`sheet.command.move-rows`,Br={id:zr,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(H),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[Ur(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW&&e.range.startRow<=o&&o<=e.range.endRow);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(A),f=p(e.get(t.IUniverInstanceService),n);if(!f)return!1;let{workbook:m,worksheet:h}=f,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Ln(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Lr(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startRow:s,endRow:s+b.endRow-b.startRow},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=Ee(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Br.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:De.id,params:w}],k=[...(i=D.preUndos)==null?[]:i,{id:De.id,params:T}];if(x){let e=s-o<0,t=b.endRow-b.startRow+1,n=e?C:{...C,startRow:C.startRow-t,endRow:C.endRow-t},r={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:n,primary:U(n,h),style:null}]},i={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:W.id,params:r}),k.push({id:W.id,params:i})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Br.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),k.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:k,redoMutations:O}),!0}return!1}},Vr=`sheet.command.move-cols`,Hr={id:Vr,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(H),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[Ur(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN&&e.range.startColumn<=o&&o<=e.range.endColumn);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(A),f=p(e.get(t.IUniverInstanceService),n);if(!f)return!1;let{workbook:m,worksheet:h}=f,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Ln(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Rr(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startColumn:s,endColumn:s+b.endColumn-b.startColumn},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=Oe(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Hr.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:ke.id,params:w}],k=[...(i=D.preUndos)==null?[]:i,{id:ke.id,params:T}];if(x){let e=b.endColumn-b.startColumn+1,t=s-o<0?C:{...C,startColumn:C.startColumn-e,endColumn:C.endColumn-e},n={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:t,primary:U(t,h),style:null}]},r={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:W.id,params:n}),k.push({id:W.id,params:r})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Hr.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),k.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:k,redoMutations:O}),!0}return!1}};function Ur(e){return{range:e,primary:null,style:null}}let Wr=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._univerInstanceService=t,w(this,`_sceneMap`,new Map),w(this,`_sheetSkeletonParamStore`,new Map),this._init()}dispose(){super.dispose(),this._sheetSkeletonParamStore.forEach(e=>e.forEach(e=>e.skeleton.dispose())),this._sheetSkeletonParamStore.clear()}_disposeByUnitId(e){let t=this._sheetSkeletonParamStore.get(e);t&&(t.forEach(e=>e.skeleton.dispose()),this._sheetSkeletonParamStore.delete(e))}_init(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._initWorkbookSkeleton(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeByUnitId(e.getUnitId())))}_initWorkbookSkeleton(e){let t=e.getUnitId();this._initSheetsSkeleton(e),this.disposeWithMe(e.sheetCreated$.subscribe(n=>{let r=this._sheetSkeletonParamStore.get(t);if(!r)return;let i=n.getSheetId(),a=this._buildSkeleton(n,e.getStyles());r.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})})),this.disposeWithMe(e.sheetDisposed$.subscribe(e=>{let n=this._sheetSkeletonParamStore.get(t);if(!n)return;let r=e.getSheetId(),i=n.get(r);i&&i.skeleton.dispose(),n.delete(r)}))}_initSheetsSkeleton(e){let t=e.getUnitId(),n=new Map;e.getWorksheets().forEach(r=>{let i=r.getSheetId(),a=this._buildSkeleton(r,e.getStyles());n.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})}),this._sheetSkeletonParamStore.set(t,n)}_buildSkeleton(e,t){let n=this._injector.createInstance(r.SpreadsheetSkeleton,e,t),i=e.getUnitId(),a=this._sceneMap.get(i);return a&&n.setScene(a),n}setScene(e,t){this._sceneMap.set(e,t);let n=this._sheetSkeletonParamStore.get(e);n&&n.forEach(e=>e.skeleton.setScene(t))}getSkeleton(e,t){var n;return(n=this.getSkeletonParam(e,t))==null?void 0:n.skeleton}getSkeletonParam(e,t){let n=this._sheetSkeletonParamStore.get(e);if(n)return n.get(t)}newSkeleton(e,t,n,r){return this.newSkeletonParam(e,t,n,r).skeleton}newSkeletonParam(e,t,n,r){let i=this._buildSkeleton(n,r),a=this._sheetSkeletonParamStore.get(e);a||(a=new Map,this._sheetSkeletonParamStore.set(e,a));let o={unitId:e,sheetId:t,skeleton:i,dirty:!1};return a.set(t,o),o}ensureSkeleton(e,t){let n=this.getSkeleton(e,t);if(n)return n;let r=this._univerInstanceService.getUnit(e);if(!r)return;let i=r.getSheetBySheetId(t);if(i)return this.newSkeleton(e,t,i,r.getStyles())}};Wr=E([T(0,(0,t.Inject)(t.Injector)),T(1,(0,t.Inject)(t.IUniverInstanceService))],Wr);function Gr(e,n){let r=new t.ObjectMatrix;return e.map(e=>t.Range.transformRange(e,n)).forEach(e=>{t.Range.foreach(e,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}),r}function Kr(e,t){if(!t)return{suitableRanges:e,remainingRanges:[]};let n=t.worksheet.getColumnCount(),r=Math.ceil(1e4/n),i=[],a=[],o=t.getOffsetRelativeToRowCol(0,t.scrollY).row,s=e.map(e=>{let t;return t=o>=e.startRow&&o<=e.endRow?0:o<e.startRow?e.startRow-o:o-e.endRow,{range:e,distance:t,rowCount:e.endRow-e.startRow+1}});s.sort((e,t)=>e.distance===t.distance?e.rowCount-t.rowCount:e.distance-t.distance);let c=0;for(let e of s)if(c+e.rowCount<=r)i.push(e.range),c+=e.rowCount;else{let t=r-c;if(t>0){let n={...e.range,endRow:e.range.startRow+t-1},o={...e.range,startRow:e.range.startRow+t};i.push(n),a.push(o),c=r}else a.push(e.range)}return{suitableRanges:i,remainingRanges:a}}function qr(e){let t=0;return e.forEach(()=>{t++}),t}let Jr=`sheet.command.reorder-range`,Yr={id:Jr,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let{subUnitId:a,unitId:o,range:s,order:c}=n,l=e.get(t.ICommandService),u={id:Pe.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:Pe.id,params:Ne(u.params)},f=e.get(A),p=f.onCommandExecute({id:Yr.id,params:n}),m=[...(r=p.preRedos)==null?[]:r,u,...p.redos],h=[...(i=p.preUndos)==null?[]:i,d,...p.undos],g=(0,t.sequenceExecute)(m,l),{suitableRanges:_,remainingRanges:v}=Kr([s],e.get(Wr).getSkeleton(o,a)),{undos:y,redos:b}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:a,ranges:[s],autoHeightRanges:_,lazyAutoHeightRanges:v}),x=f.afterCommandExecute({id:Yr.id,params:n});return g.result?((0,t.sequenceExecute)([...x.redos,...b],l),e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[...h,...x.undos,...y],redoMutations:[...m,...x.redos,...b]}),!0):!1}},G={MoveRangeCommandId:Yn,InsertRowCommandId:mr,InsertColCommandId:xr,RemoveColCommandId:Mr,RemoveRowCommandId:kr,DeleteRangeMoveLeftCommandId:or,DeleteRangeMoveUpCommandId:cr,InsertRangeMoveDownCommandId:ur,InsertRangeMoveRightCommandId:fr,MoveColsCommandId:Vr,MoveRowsCommandId:zr,ReorderRangeCommandId:Jr},K=function(e){return e[e.Set=0]=`Set`,e[e.Delete=1]=`Delete`,e[e.HorizontalMove=2]=`HorizontalMove`,e[e.VerticalMove=3]=`VerticalMove`,e[e.Unknown=4]=`Unknown`,e}({}),Xr=e=>{let n={...e},r=Number.isNaN(n.startRow)&&Number.isNaN(n.endRow)&&!Number.isNaN(n.startColumn)&&!Number.isNaN(n.endColumn),i=Number.isNaN(n.startColumn)&&Number.isNaN(n.endColumn)&&!Number.isNaN(n.startRow)&&!Number.isNaN(n.endRow);return(n.rangeType===t.RANGE_TYPE.COLUMN||r)&&(n.startRow=0,n.endRow=t.MAX_ROW_COUNT-1),(n.rangeType===t.RANGE_TYPE.ROW||i)&&(n.startColumn=0,n.endColumn=t.MAX_COLUMN_COUNT-1),n.rangeType===t.RANGE_TYPE.ALL&&(n.startColumn=0,n.endColumn=t.MAX_COLUMN_COUNT-1,n.startRow=0,n.endRow=t.MAX_ROW_COUNT-1),n},Zr=e=>{let n=e.rangeType;return e.rangeType===t.RANGE_TYPE.COLUMN?n=t.RANGE_TYPE.ROW:e.rangeType===t.RANGE_TYPE.ROW&&(n=t.RANGE_TYPE.COLUMN),{startRow:e.startColumn,endRow:e.endColumn,startColumn:e.startRow,endColumn:e.endRow,rangeType:n}},Qr=(e,t,n)=>{let r={...n},i={...t},a=(e,t)=>{let n=Math.max(e.start,t.start),r=Math.min(e.end,t.end);return r<n?null:{start:n,end:r}},o=e=>e.end-e.start+1,s=(e,t)=>({start:e.start-t.start,end:e.start-t.start+e.end-e.start}),c=(e,t)=>({start:t.start+e.start,end:t.start+e.start+e.end-e.start}),l=t.start>e.start;if(l){let n=Math.min(e.end,t.start)-e.start+1;i.start-=n,i.end-=n}let u=o(e),d=u,f=a(e,r),p=f&&o(f)>=o(r);if(e.end<r.start)r.start-=u,r.end-=u;else if(f){let t=o(f);if(p){let t=c(s(r,e),i);r.start=t.start,r.end=t.end}else f.start>e.start?l?(r.end-=t+u,r.start-=u):r.end-=t:l?r.end-=t:r.start>e.start&&r.end>e.end?(r.start-=u,r.end-=u+t):r.end-=t}let m=a(i,r);return p||(i.start<=r.start?(r.start+=d,r.end+=d):m&&(l?i.end<=r.start||i.start<=r.start&&i.end>=r.start?(r.start+=d,r.end+=d):i.start>=r.start&&i.start<=r.end&&(r.end+=d):r.start<i.start&&r.end>i.start?r.end+=d:(r.start>=i.end||r.start>=i.start&&r.start<=i.end)&&(r.end+=d,r.start+=d))),{step:r.start-n.start,length:o(r)-o(n)}},$r=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Xr(n),a=Xr(r),o=Xr(t),s=Qr({start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow},{start:o.startRow,end:o.endRow});return s===null?[{type:K.Delete}]:[{type:K.VerticalMove,step:s.step||0,length:s.length||0}]},ei=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startRow,o=r.endRow-r.startRow+1,s=i.startRow,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveRows(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},ti=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[n];let a=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{a.setValue(e,t,1)});let o=new t.ObjectMatrix;return t.Range.foreach(r,(e,t)=>{if(Object.prototype.hasOwnProperty.call(i,e)){var n;let r=i[e],s=(n=a.getValue(r,t))==null?0:n;o.setValue(e,t,s)}}),o.forValue((e,t,n)=>{a.setValue(e,t,n)}),(0,t.queryObjectMatrix)(a,e=>e===1)},ni=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Xr(n),a=Xr(r),o=Xr(t),s=Qr({start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn},{start:o.startColumn,end:o.endColumn});return s===null?[{type:K.Delete}]:[{type:K.HorizontalMove,step:s.step||0,length:s.length||0}]},ri=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startColumn,o=r.endColumn-r.startColumn+1,s=i.startColumn,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveColumns(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},ii=(e,n)=>{var r,i;let a=(r=e.params)==null?void 0:r.toRange,o=(i=e.params)==null?void 0:i.fromRange;if(!a||!o)return[];let s=[];if(t.Rectangle.contains(a,n)&&s.push({type:K.Delete}),t.Rectangle.contains(o,n)){s.push({type:K.Delete});let e=t.Rectangle.getRelativeRange(n,o),r=t.Rectangle.getPositionRange(e,a);return[{type:K.Set,range:r}]}return s},ai=(e,n)=>{var r,i;let a=(r=e.params)==null?void 0:r.toRange,o=(i=e.params)==null?void 0:i.fromRange;if(!a||!o||!t.Rectangle.intersects(o,n)&&!t.Rectangle.intersects(a,n))return[n];if(t.Rectangle.contains(o,n)){let e=t.Rectangle.getRelativeRange(n,o);return[t.Rectangle.getPositionRange(e,a)]}let s=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{s.setValue(e,t,1)});let c=new t.ObjectMatrix,l=t.Rectangle.getIntersects(o,n);l&&t.Range.foreach(l,(e,t)=>{s.getValue(e,t)&&(s.setValue(e,t,void 0),c.setValue(e,t,1))});let u=a.startColumn-o.startColumn,d=a.startRow-o.startRow,f={startColumn:a.startColumn-u,endColumn:a.endColumn-u,startRow:a.startRow-d,endRow:a.endRow-d};return f&&t.Range.foreach(f,(e,t)=>{var n;let r=e+d,i=t+u;s.setValue(r,i,(n=c.getValue(e,t))==null?0:n)}),(0,t.queryObjectMatrix)(s,e=>e===1)},oi=(e,n)=>{let r=Xr(e),i=Xr(n),a=e=>e.endColumn-e.startColumn+1,o=e=>e.endRow-e.startRow+1;if(r.startRow<=i.startRow&&r.endRow>=i.endRow){if(i.startColumn<r.startColumn&&i.endColumn>=r.startColumn&&i.endColumn<=r.endColumn||i.startColumn<r.startColumn&&i.endColumn>=r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e)return{step:0,length:-a(e)}}if(i.startColumn>=r.startColumn&&i.endColumn<=r.endColumn&&o(r)>=o(i))return null;if(i.startColumn>=r.startColumn&&i.startColumn<=r.endColumn&&i.endColumn>r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e){let t=-a(e);return{step:-(a(r)-a(e)),length:t}}}if(i.startColumn>r.endColumn)return{step:-a(r),length:0}}return{step:0,length:0}},si=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=oi(r,t);if(!a)i.push({type:K.Delete});else{let{step:e,length:t}=a;i.push({type:K.HorizontalMove,step:e,length:t})}return i},ci=(e,t,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[];let a=[];if(n&&n.length>0){let e=i.startRow;for(let t=i.startRow;t<=i.endRow;t++){if(n.includes(t)){if(t===e){e=t+1;continue}o({...i,startRow:e,endRow:t-1}),e=t+1;continue}t===i.endRow&&o({...i,startRow:e,endRow:i.endRow})}}else o(i);function o(e){let n=oi(Zr(e),Zr(t));if(!n)a.push({type:K.Delete});else{let{step:e,length:t}=n;a.push({type:K.VerticalMove,step:e,length:t})}}return a},li=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[];if(t.Rectangle.contains(r,n)&&n.endRow===n.startRow){let e=[],t=n.startRow;for(let n in i)if(i[n]===t){let r=Number(n);return e.push({type:K.VerticalMove,step:r-t,length:0}),e}return[]}return[]},ui=(e,t)=>{let n=Xr(e),r=Xr(t),i=e=>e.endColumn-e.startColumn+1;return n.startRow<=r.startRow&&n.endRow>=r.endRow?r.startColumn<n.startColumn&&r.endColumn>=n.startColumn&&r.endColumn<=n.endColumn||r.startColumn<n.startColumn&&r.endColumn>=n.endColumn?{step:0,length:i(n)}:r.startColumn>=n.startColumn&&r.endColumn<=n.endColumn||r.startColumn>=n.startColumn&&r.startColumn<=n.endColumn&&r.endColumn>n.endColumn||r.startColumn>=n.endColumn?{step:i(n),length:0}:{step:0,length:0}:{step:0,length:0}};function di(e,n,r){let i=[];if(t.Rectangle.contains(n,r)&&i.push({type:K.Delete}),t.Rectangle.contains(e,r)){i.push({type:K.Delete});let a=t.Rectangle.getRelativeRange(r,e),o=t.Rectangle.getPositionRange(a,n);return[{type:K.Set,range:o}]}return i}let fi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ui(Zr(r),Zr(t));return i.push({type:K.VerticalMove,step:a,length:o}),i},pi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ui(r,t);return i.push({type:K.HorizontalMove,step:a,length:o}),i},mi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ui(Zr(r),Zr(t));return i.push({type:K.VerticalMove,step:a,length:o}),i},hi=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endRow-i.startRow+1,o={...i,startRow:i.startRow,endRow:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e+a,t,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},gi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ui(r,t);return i.push({type:K.HorizontalMove,step:a,length:o}),i},_i=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endColumn-i.startColumn+1,o={...i,startColumn:i.startColumn,endColumn:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e,t+a,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},vi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=oi(r,t);if(!a)i.push({type:K.Delete});else{let{step:e,length:t}=a;i.push({type:K.HorizontalMove,step:e,length:t})}return i},yi=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:1/0},o=i.endColumn-i.startColumn+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e,t-o,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e,t-o,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},bi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=oi(Zr(r),Zr(t));if(!a)i.push({type:K.Delete});else{let{step:e,length:t}=a;i.push({type:K.VerticalMove,step:e,length:t})}return i},xi=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={...i,startRow:i.startRow,endRow:1/0},o=i.endRow-i.startRow+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e-o,t,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e-o,t,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},Si=(e,n)=>{var r;let i=(0,t.mergeIntervals)(((r=e.ranges)==null?[e.range]:r).map(e=>[e.startRow,e.endRow])),a=n.startRow,o=n.endRow;for(let e=i.length-1;e>=0;e--){let[t,r]=i[e];if(t<=n.startRow&&r>=n.endRow)return[];if(r<a){let e=r-t+1;a-=e,o-=e}else if(!(t>o)){let e=Math.max(t,a),n=Math.min(r,o)-e+1;if(o-=n,t<=a){let t=e-a;a-=t}}}return[{...n,startRow:a,endRow:o}]},Ci=(e,n)=>{let r=e.params,i=r.range.startRow,a=r.range.endRow-r.range.startRow+1;if(r.direction===t.Direction.UP){if(i<n.startRow)return[{...n,startRow:n.startRow+a,endRow:n.endRow+a}];if(i<=n.endRow)return[{...n,endRow:n.endRow+a}]}else if(i<=n.startRow)return[{...n,startRow:n.startRow+a,endRow:n.endRow+a}];else if(i<=n.endRow+1)return[{...n,endRow:n.endRow+a}];return[n]},wi=(e,n)=>{let r=e.params,i=r.range.startColumn,a=r.range.endColumn-r.range.startColumn+1;if(r.direction===t.Direction.LEFT){if(i<n.startColumn)return[{...n,startColumn:n.startColumn+a,endColumn:n.endColumn+a}];if(i<=n.endColumn)return[{...n,endColumn:n.endColumn+a}]}else if(i<=n.startColumn)return[{...n,startColumn:n.startColumn+a,endColumn:n.endColumn+a}];else if(i<=n.endColumn+1)return[{...n,endColumn:n.endColumn+a}];return[n]},Ti=(e,t)=>{let n={...t};return e.forEach(e=>{switch(e.type){case K.Delete:n=null;break;case K.HorizontalMove:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case K.VerticalMove:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case K.Set:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Ei=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:n=vi(t,e);break;case G.DeleteRangeMoveUpCommandId:n=bi(t,e);break;case G.InsertColCommandId:n=pi(t,e);break;case G.InsertRangeMoveDownCommandId:n=mi(t,e);break;case G.InsertRangeMoveRightCommandId:n=gi(t,e);break;case G.InsertRowCommandId:n=fi(t,e);break;case G.MoveColsCommandId:n=ni(t,e);break;case G.MoveRangeCommandId:n=ii(t,e);break;case G.MoveRowsCommandId:n=$r(t,e);break;case G.RemoveColCommandId:n=si(t,e);break;case G.RemoveRowCommandId:n=ci(t,e);break;case G.ReorderRangeCommandId:n=li(t,e);break}return Ti(n,e)},Di=(e,n,r)=>[sr.id,lr.id].includes(n.id)||ji(n,r).some(n=>t.Rectangle.intersects(n,e))?Ei(e,n):e,Oi=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:return yi(t,e);case G.DeleteRangeMoveUpCommandId:return xi(t,e);case G.InsertRangeMoveDownCommandId:return hi(t,e);case G.InsertRangeMoveRightCommandId:return _i(t,e);case G.InsertColCommandId:return wi(t,e);case G.InsertRowCommandId:return Ci(t,e);case G.MoveColsCommandId:return ri(t,e);case G.MoveRangeCommandId:return ai(t,e);case G.MoveRowsCommandId:return ei(t,e);case G.ReorderRangeCommandId:return ti(t,e);case G.RemoveColCommandId:n=si(t,e);break;case G.RemoveRowCommandId:return Si(t.params,e)}let r=Ti(n,e);return r?[r]:[]},ki=(e,n,r)=>[sr.id,lr.id,dr.id,`sheet.command.insert-range-move-right`].includes(n.id)||ji(n,r).some(n=>t.Rectangle.intersects(n,e))?Oi(e,n):e;function Ai(e,n){let{id:r,params:i}=n,a={length:0,step:0,type:K.Unknown};switch(r){case Ir.id:a.type=K.Delete;break;case De.id:a=Qr({start:i.sourceRange.startRow,end:i.sourceRange.endRow},{start:i.targetRange.startRow,end:i.targetRange.endRow},{start:e.startRow,end:e.endRow}),a.type=K.VerticalMove;break;case ke.id:a=Qr({start:i.sourceRange.startColumn,end:i.sourceRange.endColumn},{start:i.targetRange.startColumn,end:i.targetRange.endColumn},{start:e.startColumn,end:e.endColumn}),a.type=K.HorizontalMove;break;case P.id:a=oi(i.range,e),a?a.type=K.HorizontalMove:a={step:0,length:0,type:K.Delete};break;case je.id:a=oi(Zr(i.range),Zr(e)),a?a.type=K.VerticalMove:a={step:0,length:0,type:K.Delete};break;case Se.id:a=ui(Zr(i.range),Zr(e)),a.type=K.VerticalMove;break;case we.id:a=ui(i.range,e),a.type=K.HorizontalMove;break;case Te.id:a=di(i.fromRange||new t.ObjectMatrix(i.from).getRange(),i.toRange||new t.ObjectMatrix(i.to).getRange(),e);break;default:break}return a?Ti(Array.isArray(a)?a:[a],e):e}function ji(e,t){let{selectionManagerService:n}=t;switch(e.id){case G.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case G.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case G.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case G.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case G.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case G.RemoveRowCommandId:return[e.params.range];case G.RemoveColCommandId:return[e.params.range];case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{var r,i;let t=((r=e.params)==null?void 0:r.range)||((i=n.getCurrentSelections())==null||(i=i.map(e=>e.range))==null?void 0:i[0]);return t?[t]:[]}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{var a,o;let t=((a=e.params)==null?void 0:a.range)||((o=n.getCurrentSelections())==null||(o=o.map(e=>e.range))==null?void 0:o[0]);return t?[t]:[]}case G.ReorderRangeCommandId:{let{range:t,order:n}=e.params,r=[];for(let e=t.startRow;e<=t.endRow;e++)e in n&&r.push({startRow:e,endRow:e,startColumn:t.startColumn,endColumn:t.endColumn});return r}}}function Mi(e){switch(e.id){case ke.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case De.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Te.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case we.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case Se.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case P.id:return[e.params.range];case je.id:return[e.params.range];default:break}}function Ni(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case G.MoveColsCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startColumn:o.startColumn<s.startColumn?o.endColumn+1:s.startColumn,endColumn:o.startColumn<s.startColumn?s.endColumn-1:o.startColumn-1}]}}case G.MoveRowsCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startRow:o.startRow<s.startRow?o.endRow+1:s.startRow,endRow:o.startRow<s.startRow?s.endRow-1:o.startRow-1}]}}case G.MoveRangeCommandId:{let e=n.params,t=p(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case G.InsertRowCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startRow>0?[{...s,startRow:s.startRow-1,endRow:s.endRow-1}]:[],{...s,startRow:s.startRow,endRow:i.getRowCount()-1}]}}case G.InsertColCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startColumn>0?[{...s,startColumn:s.startColumn-1,endColumn:s.endColumn-1}]:[],{...s,startColumn:s.startColumn,endColumn:i.getColumnCount()-1}]}}case G.RemoveRowCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.RemoveColCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.ReorderRangeCommandId:{let e=n.params,t=p(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{range:o,order:s}=e,c=[];for(let e=o.startRow;e<=o.endRow;e++)e in s&&c.push({startRow:e,endRow:e,startColumn:o.startColumn,endColumn:o.endColumn});return{unitId:i,subUnitId:a,ranges:c}}}}let Pi=(0,t.createInterceptorKey)(`MERGE_REDO`),Fi=(0,t.createInterceptorKey)(`MERGE_UNDO`);var Ii=class extends t.Disposable{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){var n,r;if(((n=e.params)==null?void 0:n.unitId)!==this._unitId)return;if(e.id===Te.id){let t=e.params;if(t.from.subUnitId!==this._subUnitId||t.to.subUnitId!==this._subUnitId)return}else if(((r=e.params)==null?void 0:r.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(e.id===Ir.id)return;let n=Mi(e);if(n!=null&&n.some(e=>t.Rectangle.intersects(e,this._range)))return}let i=Ai(this._range,e);if(i&&t.Rectangle.equals(i,this._range))return!1;let a=this._range;this._range=i,this._callback(a,i)}};let Li=class extends t.Disposable{constructor(e,n,r,i){super(),this._commandService=e,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,w(this,`interceptor`,new t.InterceptorManager({MERGE_REDO:Pi,MERGE_UNDO:Fi})),w(this,`_watchRanges`,new Set),w(this,`_refRangeManagerMap`,new Map),w(this,`_serializer`,Vi()),w(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let n=(()=>{switch(e.id){case G.MoveColsCommandId:{let t=e.params,n=p(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startColumn,t.toRange.startColumn);return this._checkRange([{...t.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case G.MoveRowsCommandId:{let t=e.params,n=p(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startRow,t.toRange.startRow);return this._checkRange([{...t.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case G.MoveRangeCommandId:{var n,r;let t=e.params,i=p(this._univerInstanceService,{unitId:t.fromUnitId,subUnitId:t.fromSubUnitId}),a=p(this._univerInstanceService,{unitId:(n=t.toUnitId)==null?t.fromUnitId:n,subUnitId:(r=t.toSubUnitId)==null?t.fromSubUnitId:r});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([t.fromRange,t.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([t.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([t.toRange],a.unitId,a.subUnitId)),o}case G.InsertRowCommandId:{let n=e.params,r=p(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:Math.max(0,n.range.startRow-1),endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.InsertColCommandId:{let n=e.params,r=p(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:Math.max(0,n.range.startColumn-1),endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.RemoveRowCommandId:{let n=e.params,r=p(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:n.range.startRow,endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.RemoveColCommandId:{let n=e.params,r=p(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:n.range.startColumn,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let t=e.params,n=p(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let t=e.params,n=p(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case G.ReorderRangeCommandId:{let t=e.params,n=p(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=t,s=[];for(let e=a.startRow;e<=a.endRow;e++)e in o&&s.push({startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn});return this._checkRange(s,r,i)}}})();if(!n||n.length===0)return{redos:[],undos:[],preRedos:[],preUndos:[]};let r=n.reduce((t,n)=>{let r=n(e);return t.push(r),t},[]).reduce((e,t)=>{var n,r;return e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...(n=t.preRedos)==null?[]:n),e.preUndos.push(...(r=t.preUndos)==null?[]:r),e},{redos:[],undos:[],preUndos:[],preRedos:[]}),i=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.preRedos,null)||[],a=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.redos,null)||[],o=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.preUndos,null)||[];return{redos:a,undos:this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.undos,null)||[],preRedos:i,preUndos:o}}})}),w(this,`_checkRange`,(e,n,r)=>{let i=Bi(n,r),a=this._refRangeManagerMap.get(i);if(a){let n=new Set;return[...a.keys()].forEach(r=>{let i=a.get(r),o=this._serializer.deserialize(r),s={...o,startRow:+o.startRow,endRow:+o.endRow,startColumn:+o.startColumn,endColumn:+o.endColumn,rangeType:o.rangeType&&+o.rangeType};e.some(e=>t.Rectangle.intersects(e,s))&&i&&i.forEach(e=>{n.add(e)})}),[...n]}return[]}),w(this,`registerRefRange`,(e,n,r,i)=>{let a=r||Ri(this._univerInstanceService),o=i||zi(this._univerInstanceService);if(!a||!o)return(0,t.toDisposable)(()=>{});let s=Bi(a,o),c=this._serializer.serialize(e),l=this._refRangeManagerMap.get(s);l||(l=new Map,this._refRangeManagerMap.set(s,l));let u=l.get(c);return u?u.add(n):l.set(c,new Set([n])),(0,t.toDisposable)(()=>{let e=l.get(c);e&&(e.delete(n),e.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(s)))})}),this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:e=>e}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:e=>e})}watchRange(e,n,r,i,a){let o;this._watchRanges.size===0&&(o=this._commandService.onCommandExecuted(e=>{if(e.type!==t.CommandType.MUTATION)return!1;for(let t of this._watchRanges)t.onMutation(e)}));let s=new Ii(e,n,r,i,a);this._watchRanges.add(s);let c=(0,t.toDisposable)(()=>{this._watchRanges.delete(s),this._watchRanges.size===0&&(o==null||o.dispose(),o=null)}),l=this.disposeWithMe(c);return(0,t.toDisposable)(()=>{l.dispose(),c.dispose()})}};Li=E([T(0,t.ICommandService),T(1,(0,t.Inject)(A)),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(H))],Li);function Ri(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function zi(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function Bi(e,t){return`${e}_${t}`}function Vi(){let e=[`startRow`,`startColumn`,`endRow`,`endColumn`,`rangeType`];return{deserialize:t=>{let n=e.reduce((e,t,n)=>(e[String(n)]=t,e),{});return t.split(`_`).reduce((e,t,r)=>{let i=String(r);return t&&n[i]&&(e[n[i]]=t),e},{})},serialize:t=>e.reduce((e,n,r)=>{let i=t[n];return i===void 0?`${e}`:`${e}${r>0?`_`:``}${i}`},``)}}let Hi=[we.id,Se.id,P.id,je.id],Ui=[De.id,ke.id];function Wi(e,n){let r=e;if(n!==void 0){let e=[];for(let i=0;i<r.length;i++){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=r[i];if(n===t.Dimension.ROWS)for(let t=a;t<=o;t++){let n={startRow:t,endRow:t,startColumn:s,endColumn:c};e.push(n)}else if(n===t.Dimension.COLUMNS)for(let t=s;t<=c;t++){let n={startRow:a,endRow:o,startColumn:t,endColumn:t};e.push(n)}}r=e}return r}let Gi=(0,t.createInterceptorKey)(`mergeCellPermissionCheck`),Ki=class extends t.Disposable{constructor(e,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=n,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=o,w(this,`disposableCollection`,new t.DisposableCollection),w(this,`interceptor`,new t.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:Gi})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case Fn.id:case In.id:{var r;let n=e._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=n.getUnitId(),a=n==null?void 0:n.getActiveSheet();if(!a)return{redos:[],undos:[]};let o=a.getSheetId(),s=a.getConfig().mergeData,c=(r=e._selectionManagerService.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(c&&c.length>0&&c.some(e=>s.some(n=>t.Rectangle.intersects(n,e)))){let t={unitId:i,subUnitId:o,ranges:c},n=F(e._injector,t);return{redos:[{id:I.id,params:t}],undos:[{id:g.id,params:n}]}}}}return{redos:[],undos:[]}}}),this._sheetInterceptorService.interceptRanges({getMutations:({unitId:e,subUnitId:n,ranges:r})=>{let i=[],a=[],o={redos:i,undos:a};if(!r||!r.length)return o;let s=p(this._univerInstanceService,{unitId:e,subUnitId:n});if(!s)return o;let{worksheet:c}=s,l=c.getMergeData().filter(e=>r.some(n=>t.Rectangle.intersects(e,n)));return l.length?(i.push({id:I.id,params:{unitId:e,subUnitId:n,ranges:l}}),a.push({id:g.id,params:{unitId:e,subUnitId:n,ranges:l}}),{undos:a,redos:i}):o}})}refRangeHandle(e,t,n){switch(e.id){case G.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case G.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case hr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case Sr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Pr.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case jr.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case Xn.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case pr.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case dr.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case lr.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case sr.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getUniverSheetInstance(e);if(!n)return;let r=n==null?void 0:n.getSheetBySheetId(t);if(!r)return;this.disposableCollection.dispose();let i=r.getMergeData(),a=n=>this.refRangeHandle(n,e,t);i.forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,a,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===Rt.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===g.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(n.unitId,n.subUnitId)}})),this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.first)(e=>!!e)).subscribe(t=>{let n=t.getActiveSheet();n&&e(t.getUnitId(),n.getSheetId())})}_handleMoveRowsCommand(e,t,n){let r=qi(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Ji(r,n);if(!i)return this._handleNull();let a=[...i.getMergeData()],o={unitId:t,subUnitId:n,ranges:[]},s={unitId:t,subUnitId:n,ranges:[]},{fromRange:c}=e,{startRow:l,endRow:u}=c;if(a.forEach(t=>{if(l<=t.startRow&&u>=t.endRow){o.ranges.push(t);let n=Ti($r({id:G.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=F(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:I.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:I.id,params:f}],undos:[{id:g.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=qi(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Ji(r,n);if(!i)return this._handleNull();let a=[...i.getMergeData()],o={unitId:t,subUnitId:n,ranges:[]},s={unitId:t,subUnitId:n,ranges:[]},{fromRange:c}=e,{startColumn:l,endColumn:u}=c;if(a.forEach(t=>{if(l<=t.startColumn&&u>=t.endColumn){o.ranges.push(t);let n=Ti(ni({id:G.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=F(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:I.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:I.id,params:f}],undos:[{id:g.id,params:d}]}}_handleMoveRangeCommand(e,n,r){var i,a;let o=qi(this._univerInstanceService,n);if(!o)return this._handleNull();let s=(i=e.fromSubUnitId)==null?r:i,c=(a=e.toSubUnitId)==null?s:a,l=Ji(o,s),u=Ji(o,c);if(!l||!u)return this._handleNull();let d=l.getMergeData().filter(n=>t.Rectangle.intersects(n,e.fromRange)),f=u.getMergeData().filter(n=>t.Rectangle.intersects(n,e.toRange)),p=Wi(d.map(n=>t.Rectangle.getRelativeRange(n,e.fromRange)).map(n=>t.Rectangle.getPositionRange(n,e.toRange))).filter(e=>!u.getMergeData().some(n=>t.Rectangle.equals(e,n))),m=[],h=[];return r===s&&d.length>0&&(m.push({id:I.id,params:{unitId:n,subUnitId:s,ranges:d}}),h.push({id:g.id,params:{unitId:n,subUnitId:s,ranges:d}})),r===c&&f.length>0&&(m.push({id:I.id,params:{unitId:n,subUnitId:c,ranges:f}}),h.push({id:g.id,params:{unitId:n,subUnitId:c,ranges:f}})),r===c&&p.length>0&&(m.push({id:g.id,params:{unitId:n,subUnitId:c,ranges:p}}),h.unshift({id:I.id,params:{unitId:n,subUnitId:c,ranges:p}})),m.length===0?this._handleNull():{redos:m,undos:h}}_handleInsertRowCommand(e,n,r){let i=qi(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Ji(i,r);if(!a)return this._handleNull();let{range:o}=e,{startRow:s,endRow:c}=o,l=t.Tools.deepClone(a.getMergeData()).reduce((e,t)=>(s>t.startRow&&s<=t.endRow&&e.push(t),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(a.getMergeData()).reduce((e,t)=>{if(s>t.startRow&&s<=t.endRow){let n=c-s+1;t.endRow+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:I.id,params:d},{id:g.id,params:p}],undos:[{id:I.id,params:m},{id:g.id,params:f}]}}_handleInsertColCommand(e,n,r){let{range:i}=e,a=qi(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Ji(a,r);if(!o)return this._handleNull();let{startColumn:s,endColumn:c}=i,l=t.Tools.deepClone(o.getMergeData()).reduce((e,t)=>(s>t.startColumn&&s<=t.endColumn&&e.push(t),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(o.getMergeData()).reduce((e,t)=>{if(s>t.startColumn&&s<=t.endColumn){let n=c-s+1;t.endColumn+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:I.id,params:d},{id:g.id,params:p}],undos:[{id:I.id,params:m},{id:g.id,params:f}]}}_handleRemoveColCommand(e,n,r){let i=qi(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Ji(i,r);if(!a)return this._handleNull();let{range:o}=e,{startColumn:s,endColumn:c}=o,l=t.Tools.deepClone(a.getMergeData()).reduce((e,n)=>(t.Rectangle.intersects(o,n)&&e.push(n),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(a.getMergeData()).reduce((e,n)=>{if(t.Rectangle.intersects(o,n)){if(s<=n.startColumn&&c>=n.endColumn)return e;s>=n.startColumn&&c<=n.endColumn?n.endColumn-=c-s+1:s<n.startColumn?(n.startColumn=s,n.endColumn-=c-s+1):c>n.endColumn&&(n.endColumn=s-1),this._checkIsMergeCell(n)&&e.push(n)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:I.id,params:m}],undos:[{id:g.id,params:f}],preRedos:_,redos:v}}_handleRemoveRowCommand(e,n,r){let{range:i}=e,a=qi(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Ji(a,r);if(!o)return this._handleNull();let{startRow:s,endRow:c}=i,l=t.Tools.deepClone(o.getMergeData()).reduce((e,n)=>(t.Rectangle.intersects(i,n)&&e.push(n),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(o.getMergeData()).reduce((e,n)=>{if(t.Rectangle.intersects(i,n)){if(s<=n.startRow&&c>=n.endRow)return e;s>=n.startRow&&c<=n.endRow?n.endRow-=c-s+1:s<n.startRow?(n.startRow=s,n.endRow-=c-s+1):c>n.endRow&&(n.endRow=s-1),this._checkIsMergeCell(n)&&e.push(n)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:I.id,params:m}],undos:[{id:g.id,params:f}],preRedos:_,redos:v}}_handleInsertRangeMoveRightCommand(e,n,r){let i=qi(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Ji(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},e))){let t=a-i+1;u.push({startRow:e.startRow,startColumn:e.startColumn+t,endRow:e.endRow,endColumn:e.endColumn+t})}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:I.id,params:d}],redos:[{id:g.id,params:p}],preUndos:[{id:I.id,params:m}],undos:[{id:g.id,params:f}]}}_handleInsertRangeMoveDownCommand(e,n,r){let i=qi(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Ji(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},e))){let t=a-n+1;u.push({startRow:e.startRow+t,startColumn:e.startColumn,endRow:e.endRow+t,endColumn:e.endColumn})}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}],y=[{id:I.id,params:m}];return{redos:v,undos:[{id:g.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveUpCommand(e,n,r){let i=qi(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Ji(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},e))){let r=a-n+1,i=t.Rectangle.moveVertical(e,-r);u.push(i)}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}],y=[{id:I.id,params:m}];return{redos:v,undos:[{id:g.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveLeftCommand(e,n,r){let i=qi(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Ji(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},e))){let t=a-i+1;u.push({startRow:e.startRow,startColumn:e.startColumn-t,endRow:e.endRow,endColumn:e.endColumn-t})}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:I.id,params:d}],redos:[{id:g.id,params:p}],undos:[{id:g.id,params:f}],preUndos:[{id:I.id,params:m}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Ui.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn,u=r.getConfig().mergeData,d=[];u.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f})}),r.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}if(Hi.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=e.params;if(!i)return;let{range:a}=i,o=e.id.includes(`row`),s=e.id.includes(`insert`),c=o?a.startRow:a.startColumn,l=o?a.endRow:a.endColumn,u=l-c+1,d=[];r.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;s?o?c<=t&&(t+=u,n+=u):c<=r&&(r+=u,i+=u):o?l<t&&(t-=u,n-=u):l<r&&(r-=u,i-=u),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),n.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};Ki=E([T(0,(0,t.Inject)(t.ICommandService)),T(1,(0,t.Inject)(Li)),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(t.Injector)),T(4,(0,t.Inject)(A)),T(5,(0,t.Inject)(H))],Ki);function qi(e,n){return n?e.getUniverSheetInstance(n):e.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET)}function Ji(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}let Yi=(e,n,r)=>{let i=e.get(H).getCurrentSelections(),{value:a,selections:o,unitId:s,subUnitId:c}=n;if(i&&i.length>0){let e=i[(i==null?void 0:i.length)-1].primary;if(e){let{actualColumn:n,actualRow:l}=e,{startRow:u,startColumn:d,endRow:f,endColumn:p}=o[o.length-1];if(a===t.Dimension.COLUMNS){let e=r.find(e=>e.startColumn===n&&e.endColumn===n&&l===e.startRow);e&&(p=e.endColumn,u=e.startRow,f=e.endRow)}else if(a===t.Dimension.ROWS){let e=r.find(e=>e.startRow===l&&e.endRow===l&&n===e.startColumn);e&&(f=e.endRow,d=e.startColumn,p=e.endColumn)}let m={startRow:u,startColumn:d,endRow:f,endColumn:p,actualRow:l,actualColumn:n,isMerged:!0,isMergedMainCell:u===l&&d===n},h=i.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null})),g={unitId:s,subUnitId:c,type:V.ONLY_SET,selections:h};return{id:W.id,params:g}}return null}return null},Xi=(e,t)=>{let n=e.get(H).getCurrentSelections(),{unitId:r,subUnitId:i}=t;if(n&&n.length>0&&n[(n==null?void 0:n.length)-1].primary){let e={unitId:r,subUnitId:i,type:V.ONLY_SET,selections:[...n]};return{id:W.id,params:e}}return null},Zi={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,n)=>{var r;let i=e.get(H),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=(n==null?void 0:n.ranges)||((r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(s!=null&&s.length))return!1;let c=p(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{subUnitId:l,unitId:u,worksheet:d}=c,f={unitId:u,subUnitId:l,ranges:s},m=d.getConfig().mergeData.filter(e=>s.some(n=>t.Rectangle.intersects(n,e)));if(!m.length)return!1;let h=F(e,f),_=i.getCurrentSelections(),v=t.Tools.deepClone(_),y=t.Tools.deepClone(_);if(_.length){let e=y[y.length-1],{startRow:t,startColumn:n}=e.range;e.primary={startRow:t,startColumn:n,endRow:t,endColumn:n,actualRow:t,actualColumn:n,isMerged:!1,isMergedMainCell:!1}}let b={unitId:u,subUnitId:l,cellValue:Qi(d,m).getMatrix()},x=L(e,b),S=[{id:I.id,params:h},{id:R.id,params:b},{id:W.id,params:{unitId:u,subUnitId:l,selections:y,type:V.ONLY_SET}}],C=[{id:g.id,params:h},{id:R.id,params:x},{id:W.id,params:{unitId:u,subUnitId:l,selections:v,type:V.ONLY_SET}}];return(0,t.sequenceExecute)(S,a)?(o.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function Qi(e,n){let r=new t.ObjectMatrix;return n.forEach(t=>{let{startRow:n,startColumn:i,endColumn:a,endRow:o}=t,s=e.getCellMatrix().getValue(n,i);if(s!=null&&s.s)for(let e=n;e<=o;e++)for(let t=i;t<=a;t++)(e!==n||t!==i)&&r.setValue(e,t,{s:s.s})}),r}let $i=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function ea(e,t){return t.some(t=>ta(e,t))}function ta(e,t){let{startRow:n,startColumn:r,endColumn:i,endRow:a}=t,o=e.getMatrixWithMergedCells(n,r,a,i),s=!1;return o.forValue((t,i,a)=>{if(a&&(t!==n||i!==r)&&e.cellHasValue(a))return s=!0,!1}),s}function na(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:ra(n,r).getData()},c=L(e,s);i.push({id:R.id,params:c}),a.push({id:R.id,params:s})}),{undos:i,redos:a}}function ra(e,n){let{startRow:r,startColumn:i,endColumn:a,endRow:o}=n,s=e.getMatrixWithMergedCells(r,i,o,a,t.CellModeEnum.Raw),c=new t.ObjectMatrix,l=null;return s.forValue((t,n,a)=>{if(a&&t>=r&&n>=i){var o,s;!l&&e.cellHasValue(a)&&(a.v!==``||((o=(s=a.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.length)==null?0:o)>2)&&(l=a),c.setValue(t,n,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),c.setValue(r,i,l),c}let ia={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{unitId:a,subUnitId:o,selections:s}=n,c=e.get(t.ICommandService),l=e.get(t.IUndoRedoService),u=Wi(s,n.value),d=ea(i,u);if(d&&!n.defaultMerge){let n=e.get(t.IConfirmService),r=e.get(t.LocaleService);if(!await n.confirm({id:`merge.confirm.add-worksheet-merge`,title:{title:`merge.confirm.warning`},children:{title:`merge.confirm.title`},cancelText:r.t(`merge.confirm.cancel`),confirmText:r.t(`merge.confirm.confirm`)}))return!1}let f=[],m=[],_={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},y=F(e,_),b=h(e,v);if(y.ranges.length>0&&f.push({id:I.id,params:y}),f.push({id:g.id,params:v}),m.push({id:I.id,params:b}),y.ranges.length>0&&m.push({id:g.id,params:y}),d){let t=na(e,a,i,u);f.unshift(...t.redos),m.push(...t.undos)}let x=Yi(e,n,u);x&&f.push(x);let S=Xi(e,n);S&&m.push(S);let C=e.get(A).onCommandExecute({id:ia.id,params:{unitId:a,subUnitId:o,ranges:u}});return f.push(...C.redos),m.push(...C.undos),(0,t.sequenceExecute)(f,c).result?(l.pushUndoRedo({unitID:a,undoMutations:m,redoMutations:f}),!0):!1}},aa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=la($i.MergeAll,r);if(!(i!=null&&i.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{selections:i,unitId:s,subUnitId:c})}},oa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=la($i.MergeVertical,r);if(!(i!=null&&i.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{value:t.Dimension.COLUMNS,selections:i,unitId:s,subUnitId:c})}},sa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=la($i.MergeHorizontal,r);if(!(i!=null&&i.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{workbook:o,worksheet:s}=a,c=o.getUnitId(),l=s.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{value:t.Dimension.ROWS,selections:i,unitId:c,subUnitId:l})}};function ca(e,n,r,i,a={}){let o=p(e.get(t.IUniverInstanceService),{unitId:n,subUnitId:r});if(!o)return;let s=e.get(t.ICommandService),{defaultMerge:c=!0,isForceMerge:l=!1}=a,{worksheet:u}=o;if(u.getMergeData().some(e=>i.some(n=>t.Rectangle.intersects(n,e)))){if(!l)throw Error(`The ranges to be merged overlap with the existing merged cells`);s.syncExecuteCommand(Zi.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(ia.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function la(e,t){return t?e===$i.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===$i.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===$i.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var ua=class{constructor(){w(this,`_model`,new Map),w(this,`_ruleChange`,new n.Subject),w(this,`_ruleRefresh`,new n.Subject),w(this,`_resetOrder`,new n.Subject),w(this,`ruleChange$`,this._ruleChange.asObservable()),w(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),w(this,`resetOrder$`,this._resetOrder.asObservable()),w(this,`_worksheetRuleInitStateChange`,new n.BehaviorSubject(!1)),w(this,`worksheetRuleInitStateChange$`,this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}getSheetRuleInitState(){return this._worksheetRuleInitStateChange.value}addRule(e,t){this._ensureSubUnitMap(e).set(t.subUnitId,t),this._ruleChange.next({unitId:e,rule:t,type:`add`,subUnitId:t.subUnitId})}deleteRule(e,t){var n;let r=(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t);if(r){var i;(i=this._model.get(e))==null||i.delete(t),this._ruleChange.next({unitId:e,rule:r,type:`delete`,subUnitId:t})}}setRule(e,t,n){let r=this.getRule(e,t);if(r){var i;(i=this._model)==null||(i=i.get(e))==null||i.set(t,n),this._ruleChange.next({unitId:e,oldRule:r,rule:n,type:`set`,subUnitId:t})}}getRule(e,t){var n;return(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t)}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t);n!=null&&n.size&&(e[t]=[],[...n.keys()].forEach(r=>{let i=n.get(r);i&&e[t].push(i)}))}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n];if(r!=null&&r.length){let e=new Map;r.forEach(t=>{e.set(t.subUnitId,t)}),t.set(n,e)}}),this._model=t}deleteUnitModel(e){this._model.delete(e)}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}ruleRefresh(e){this._ruleRefresh.next(e)}resetOrder(){this._resetOrder.next(Math.random())}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)if(i.permissionId===t)return[e,r]}};let da={id:`sheet.mutation.add-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(ua),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},fa={id:`sheet.mutation.delete-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(ua),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},pa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{rule:a,unitId:o}=n,s=a.subUnitId;if(await r.executeCommand(da.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:da.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:fa.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},ma={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-range-theme-style`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a}=n,o=ve(e,n);return r.syncExecuteCommand(_e.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:ye.id,params:o}],redoMutations:[{id:_e.id,params:n}]}),!0):!1}},ha={type:t.CommandType.COMMAND,id:`sheet.command.append-row`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a,subUnitId:o,cellValue:s,insertRowNums:c,insertColumnNums:l,maxRows:u,maxColumns:d}=n,f={unitId:a,subUnitId:o,cellValue:s},p=L(e,f),m=[{id:R.id,params:f}],h=[{id:R.id,params:p}];if(c){let t={unitId:a,subUnitId:o,range:{startRow:u,endRow:u,startColumn:0,endColumn:d-1}},n=xe(e,t);m.unshift({id:Se.id,params:t}),h.push({id:je.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=Ce(e,t);m.unshift({id:we.id,params:t}),h.push({id:P.id,params:n})}return(0,t.sequenceExecute)(m,r).result?(i.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},ga=[`ff`,`fs`,`tr`,`tb`],q={type:t.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,{range:c,style:l}=n,u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(H),m=c?[c]:(r=f.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(m!=null&&m.length))return!1;let h=new t.ObjectMatrix,g=Hn(s);if(t.Tools.isArray(l.value))for(let e=0;e<m.length;e++)g.forOperableEach(m[e],(e,t,n)=>{h.setValue(e,t,{s:{[l.type]:l.value[e-n.startRow][t-n.startColumn]}})});else for(let e=0;e<m.length;e++){let t={s:{[l.type]:l.value}};g.forOperableEach(m[e],(e,n)=>h.setValue(e,n,t))}let _={subUnitId:o,unitId:a,cellValue:h.getMatrix()},v=e.get(Wr).getSkeleton(a,o),y=L(e,_),b=null;if(ga.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=Kr(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:Gr(e,s)}}let x=u.syncExecuteCommand(R.id,_),S=e.get(A),C=[],w=[];if(b){let{suitableRanges:e,remainingRanges:t,cellHeights:n}=b,{undos:r,redos:i}=S.generateMutationsOfAutoHeight({unitId:a,subUnitId:o,ranges:e,autoHeightRanges:e,lazyAutoHeightRanges:t,cellHeights:n});C=r,w=i}let{undos:T,redos:E}=S.onCommandExecute({id:q.id,params:n}),D=(0,t.sequenceExecute)([...E,...w],u);return x&&D.result?(d.pushUndoRedo({unitID:_.unitId,undoMutations:[{id:R.id,params:y},...T,...C],redoMutations:[{id:R.id,params:_},...E,...w]}),!0):!1}},_a={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,{actualRow:a,actualColumn:o}=n.primary,s={style:{type:`bl`,value:i.getRange(a,o).getFontWeight()===t.FontWeight.BOLD?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}};return e.get(t.ICommandService).syncExecuteCommand(q.id,s)}},va={type:t.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;if(n.primary){let{startRow:e,startColumn:r}=n.primary;a=i.getRange(e,r).getFontStyle()===t.FontItalic.ITALIC}let o={style:{type:`it`,value:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},ya={type:t.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;n.primary&&(a=!!i.getRange(n.primary.startRow,n.primary.startColumn).getUnderline().s);let o={style:{type:`ul`,value:{s:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},ba={type:t.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;n.primary&&(a=!!i.getRange(n.primary.actualRow,n.primary.actualColumn).getStrikeThrough().s);let o={style:{type:`st`,value:{s:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},xa={type:t.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;n.primary&&(a=!!i.getRange(n.primary.startRow,n.primary.startColumn).getOverline().s);let o={style:{type:`ol`,value:{s:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},Sa={type:t.CommandType.COMMAND,id:`sheet.command.set-font-family`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={style:{type:`ff`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},Ca={type:t.CommandType.COMMAND,id:`sheet.command.set-font-size`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={style:{type:`fs`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},wa={type:t.CommandType.COMMAND,id:`sheet.command.set-text-color`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={style:{type:`cl`,value:{rgb:n.value}}};return r.syncExecuteCommand(q.id,i)}},Ta={type:t.CommandType.COMMAND,id:`sheet.command.reset-text-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(q.id,{style:{type:`cl`,value:{rgb:null}}})},Ea={type:t.CommandType.COMMAND,id:`sheet.command.set-background-color`,handler:(e,n)=>{if(!n||!n.value)return!1;let r=e.get(t.ICommandService),i={style:{type:`bg`,value:{rgb:n.value}}};return r.syncExecuteCommand(q.id,i)}},Da={type:t.CommandType.COMMAND,id:`sheet.command.reset-background-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(q.id,{style:{type:`bg`,value:{rgb:null}}})},Oa={type:t.CommandType.COMMAND,id:`sheet.command.set-vertical-text-align`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`vt`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},ka={type:t.CommandType.COMMAND,id:`sheet.command.set-horizontal-text-align`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`ht`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},Aa={type:t.CommandType.COMMAND,id:`sheet.command.set-text-wrap`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`tb`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},ja={type:t.CommandType.COMMAND,id:`sheet.command.set-text-rotation`,handler:(e,n)=>{if(!n)return!1;let r=typeof n.value==`number`?{a:n.value}:{a:0,v:t.BooleanNumber.TRUE},i=e.get(t.ICommandService),a={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`tr`,value:r}};return i.syncExecuteCommand(q.id,a)}},Ma={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Na=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Pa=[``,`万`,`亿`,`万亿`,`亿亿`],Fa=[``,`十`,`百`,`千`],Ia={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function La(e){if(!e)return 0;let t=0,n=0,r=0,i=!1,a=e.split(``);for(let e=0;e<a.length;e++){let o=Ma[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=Ia[a[e]],s=o.value;i=o.secUnit,i?(n=(n+r)*s,t+=n,n=0):n+=r*s,r=0}}return t+n}function Ra(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Na[a]+n):(i=!1,t=Na[a],t+=Fa[r],n=t+n),r++,e=Math.floor(e/10)}return n}function za(e){let t=0,n=``,r=``,i=!1;if(e===0)return Na[0];for(;e>0;){let a=e%1e4;i&&(r=Na[0]+r),n=Ra(a),n+=a===0?Pa[0]:Pa[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Ba(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Ma;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Ma||n[e]in Ia)){t=!1;break}}return t}function Va(e){if(!e)return{isExtendNumber:!1};let t=/0|([1-9]+[0-9]*)/g,n=t.test(e);if(n){let n=e.match(t);if(n&&n.length>0){let t=n[n.length-1],r=e.lastIndexOf(t),i=e.substr(0,r),a=e.substr(r+t.length);return{isExtendNumber:!0,matchTxt:Number(t),beforeTxt:i,afterTxt:a}}return{isExtendNumber:!1}}return{isExtendNumber:n}}function Ha(e){let t;return t=e.length===1?e===`日`||La(e)<7:!1,t}function Ua(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function Wa(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function Ga(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function Ka(e){let t=!0,n=e[1]-e[0];for(let r=1;r<e.length;r++)if(e[r]-e[r-1]!==n){t=!1;break}return t}function qa(e,t,n){let r=[],i=Math.floor(t/e),a=t%e,o=0;if(i>0){for(let t=0;t<i;t++)for(let i=0;i<n.length;i++)r[n[i]+t*e]=o,o++;for(let t=0;t<n.length&&n[t]<a;t++)r[n[t]+e*i]=o,o++}else for(let e=0;e<n.length&&n[e]<a;e++)r[n[e]]=o,o++;return r}function Ja(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);uo(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function Ya(e,t){let n=[];for(let i=1;i<=t;i++){var r;let t={s:(r=e[(i-1)%e.length])==null?void 0:r.s};n.push(t)}return n}function Xa(e){let t=!0,n=e[1]/e[0];for(let r=1;r<e.length;r++)if(e[r]/e[r-1]!==n){t=!1;break}return t}function Za(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function Qa(e,n,r){let i=[],a=[];for(let t=0;t<e.length;t++){var o;a.push(Number((o=e[t])==null?void 0:o.v))}if(e.length>2&&Xa(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%e.length,a=t.Tools.deepClone(e[n]);uo(a);let o=Number((s=e[e.length-1])==null?void 0:s.v)*(Number((c=e[1])==null?void 0:c.v)/Number((l=e[0])==null?void 0:l.v))**r;a&&(lo(a)&&(a.v=o),i.push(a))}else{let o=Za(e.length);for(let s=1;s<=n;s++){let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);uo(c);let l=r===t.Direction.DOWN||r===t.Direction.RIGHT,u=$a(e.length+s,a,o,l);c&&(lo(c)&&(c.v=u),i.push(c))}}return i}function $a(e,t,n,r=!0){function i(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}let a=i(n),o=i(t),s=0,c=0;for(let e=0;e<n.length;e++)s+=(n[e]-a)*(t[e]-o),c+=(n[e]-a)*(n[e]-a);let l;l=c===0?r?1:-1:s/c;let u=o-l*a;return Math.round((u+l*e)*1e5)/1e5}function eo(e,n,r){let i=[],a=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=n;s++){var o;let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);uo(c);let l=`${(o=e[e.length-1])==null?void 0:o.v}`;if(!l)continue;let u=l==null?void 0:l.match(a),d=u==null?void 0:u[u.length-1];if(!d)continue;let f=Math.abs(Number(d)+r*s),p=l.lastIndexOf(d),m=l.substr(0,p)+f.toString()+l.substr(p+d.length);c&&(c.v=m,i.push(c))}return i}function to(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);uo(a),a&&(delete a.v,r.push(a))}return r}function no(e,n,r,i=0){let a=[[`日`,`一`,`二`,`三`,`四`,`五`,`六`],[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`]];if(i>=a.length)return[];let o=a[i],s=[];for(let i=1;i<=n;i++){var c;let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);uo(a);let u=0;if(((c=e[e.length-1])==null?void 0:c.v)===o[0])u=7+r*i;else{var l;let t=`${(l=e[e.length-1])==null?void 0:l.v}`;t&&(u=La(t.substr(t.length-1,1))+r*i)}u<0&&(u=Math.ceil(Math.abs(u)/7)*7+u);let d=u%7;a&&(a.v=o[d],s.push(a))}return s}function ro(e,n,r){let i=[];for(let o=1;o<=n;o++){var a;let n=(o-1)%e.length,s=t.Tools.deepClone(e[n]);uo(s);let c=La(`${(a=e[e.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:za(c),s&&(s.v=l,i.push(s))}return i}let io={enWeek1:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],enWeek2:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],enMonth1:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],enMonth2:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],chnMonth1:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`],chnMonth2:[`正月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`腊月`],chHour1:[`子`,`丑`,`寅`,`卯`,`辰`,`巳`,`午`,`未`,`申`,`酉`,`戌`,`亥`],chHour2:[`子时`,`丑时`,`寅时`,`卯时`,`辰时`,`巳时`,`午时`,`未时`,`申时`,`酉时`,`戌时`,`亥时`],chYear1:[`甲`,`乙`,`丙`,`丁`,`戊`,`己`,`庚`,`辛`,`壬`,`癸`],chSeason1:[`春`,`夏`,`秋`,`冬`],chSeason2:[`春季`,`夏季`,`秋季`,`冬季`]};function ao(e){let t=!1;return Object.keys(io).forEach(n=>{io[n].includes(e)&&(t=!0)}),t}function oo(e){let t=``,n=[];return Object.keys(io).forEach(r=>{io[r].includes(e)&&(t=r,n.push(...io[r]))}),{name:t,series:n}}function so(e,n,r,i){let a=i.length,o=[];for(let c=1;c<=n;c++){var s;let n=(c-1)%e.length,l=t.Tools.deepClone(e[n]);uo(l);let u=`${(s=e[e.length-1])==null?void 0:s.v}`,d=i.indexOf(u)+r*c;d<0&&(d+=Math.abs(r)*a);let f=d%a;l&&(l.v=i[f],o.push(l))}return o}function co(e,n){let r=[],i;if(n.startRow<e.startRow)i=t.Direction.UP;else if(n.endRow>e.endRow)i=t.Direction.DOWN;else if(n.startColumn<e.startColumn)i=t.Direction.LEFT;else if(n.endColumn>e.endColumn)i=t.Direction.RIGHT;else return[];if(i===t.Direction.DOWN||i===t.Direction.UP){let a=e.endRow-e.startRow+1,o=n.endRow-n.startRow+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(i===t.Direction.DOWN){for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow+(t+1)*a,col:e.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow+(s+1)*a,col:e.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:c-1,endColumn:e.endColumn-e.startColumn}})}else{for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow-(t+1)*a,col:e.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow-(s+1)*a,col:e.startColumn},relativeRange:{startRow:a-c,endRow:a-1,startColumn:0,endColumn:e.endColumn-e.startColumn}})}}if(i===t.Direction.RIGHT||i===t.Direction.LEFT){let a=e.endColumn-e.startColumn+1,o=n.endColumn-n.startColumn+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(i===t.Direction.RIGHT){for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(t+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(s+1)*a},relativeRange:{startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:c-1}})}else{for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(t+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(s+1)*a},relativeRange:{startRow:0,startColumn:a-c,endRow:e.endRow-e.startRow,endColumn:a-1}})}}return r}function lo(e){return!((0,t.isFormulaString)(e.f)||(0,t.isFormulaId)(e.si)||e.t===t.CellValueType.BOOLEAN)}function uo(e){e&&`custom`in e&&delete e.custom}function fo(e,t){return t?e.reverse():e}function po(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{rows:t,cols:r}=e;t.forEach(e=>{r.forEach(t=>{n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})})})}),n.clone()}let mo={chnNumChar:Ma,chnNumChar2:Na,chnUnitSection:Pa,chnUnitChar:Fa,chnNameValue:Ia,chineseToNumber:La,sectionToChinese:Ra,numberToChinese:za,isChnNumber:Ba,matchExtendNumber:Va,isChnWeek1:Ha,isChnWeek2:Ua,isChnWeek3:Wa,getLenS:Ga,isEqualDiff:Ka,getDataIndex:qa,fillCopy:Ja,fillCopyStyles:Ya,isEqualRatio:Xa,getXArr:Za,fillSeries:Qa,forecast:$a,fillExtendNumber:eo,fillOnlyFormat:to,fillChnWeek:no,fillChnNumber:ro,isLoopSeries:ao,getLoopSeriesInfo:oo,fillLoopSeries:so,getAutoFillRepeatRange:co,needsUpdateCellValue:lo,removeCellCustom:uo,reverseIfNeed:fo,generateNullCellValueRowCol:po},J=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),Y=function(e){return e.NUMBER=`number`,e.DATE=`date`,e.EXTEND_NUMBER=`extendNumber`,e.CHN_NUMBER=`chnNumber`,e.CHN_WEEK2=`chnWeek2`,e.CHN_WEEK3=`chnWeek3`,e.LOOP_SERIES=`loopSeries`,e.FORMULA=`formula`,e.OTHER=`other`,e}({}),ho=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:go,fillChnNumber:_o,fillChnWeek:vo,fillCopy:yo,fillExtendNumber:bo,fillLoopSeries:xo,fillSeries:So,getLoopSeriesInfo:Co,isChnNumber:wo,isChnWeek2:To,isChnWeek3:Eo,isEqualDiff:Do,isLoopSeries:Oo,matchExtendNumber:ko,reverseIfNeed:Ao}=mo,jo={dateRule:{type:Y.DATE,priority:1100,match:(e,n)=>{if(e!=null&&e.f||e!=null&&e.si)return!1;if((typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===t.CellValueType.NUMBER)&&e.s){if(typeof e.s==`string`){var r;let i=n.get(t.IUniverInstanceService).getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getStyles().get(e.s),o=a==null||(r=a.n)==null?void 0:r.pattern;if(o)return t.numfmt.getFormatInfo(o).isDate}else if(e.s.n&&t.numfmt.getFormatInfo(e.s.n.pattern).isDate)return!0}return!1},isContinue:(e,t)=>e.type===Y.DATE,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),So(i,n,r).reverse()):So(i,n,r)}}},numberRule:{type:Y.NUMBER,priority:1e3,match:e=>typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===t.CellValueType.NUMBER,isContinue:(e,t)=>e.type===Y.NUMBER,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),So(i,n,r).reverse()):So(i,n,r)}}},extendNumberRule:{type:Y.EXTEND_NUMBER,priority:900,match:e=>ko(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===Y.EXTEND_NUMBER){var n;let{beforeTxt:r,afterTxt:i}=ko(`${(n=e.cellData)==null?void 0:n.v}`||``),{beforeTxt:a,afterTxt:o}=ko(`${t==null?void 0:t.v}`||``);if(r===a&&i===o)return!0}return!1},applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.UP||r===t.Direction.LEFT,o;if(i.length===1)return o=a?-1:1,Ao(bo(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`;t&&s.push(Number(ko(t).matchTxt))}return a&&(i.reverse(),s.reverse()),Do(s)?(o=s[1]-s[0],Ao(bo(i,n,o),a)):yo(i,n)}}},chnNumberRule:{type:Y.CHN_NUMBER,priority:830,match:e=>!!wo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Y.CHN_NUMBER,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.LEFT||r===t.Direction.UP;if(i.length===1){var o;let e=`${(o=i[0])==null?void 0:o.v}`,t;return t=a?-1:1,e&&(e===`日`||go(e)<7)?Ao(vo(i,n,t),a):Ao(_o(i,n,t),a)}let s=!1;for(let e=0;e<i.length;e++){var c;if(((c=i[e])==null?void 0:c.v)===`日`){s=!0;break}}let l=[],u=0;for(let e=0;e<i.length;e++){var d;let t=`${(d=i[e])==null?void 0:d.v}`;t===`日`?e===0?l.push(0):(u++,l.push(u*7)):s&&go(t)>0&&go(t)<7?l.push(go(t)+u*7):l.push(go(t))}return a&&(i.reverse(),l.reverse()),Do(l)?s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0?Ao(vo(i,n,l[1]-l[0]),a):Ao(_o(i,n,l[1]-l[0]),a):yo(i,n)}}},chnWeek2Rule:{type:Y.CHN_WEEK2,priority:820,match:e=>!!To(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Y.CHN_WEEK2,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.LEFT||r===t.Direction.UP;if(i.length===1){let e;return e=a?-1:1,Ao(vo(i,n,e,1),a)}let o=[],s=0;for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`,n=t==null?void 0:t.substr(t.length-1,1);t===`周日`?e===0?o.push(0):(s++,o.push(s*7)):o.push(go(n)+s*7)}return a&&(i.reverse(),o.reverse()),Do(o)?Ao(vo(i,n,o[1]-o[0],1),a):yo(i,n)}}},chnWeek3Rule:{type:Y.CHN_WEEK3,priority:810,match:e=>Eo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Y.CHN_WEEK3,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.LEFT||r===t.Direction.UP;if(i.length===1){let e;return e=a?-1:1,Ao(vo(i,n,e,2),a)}let o=[],s=0;for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`;if(t){let n=t.substr(t.length-1,1);t===`星期日`?e===0?o.push(0):(s++,o.push(s*7)):o.push(go(n)+s*7)}}return a&&(i.reverse(),o.reverse()),Do(o)?Ao(vo(i,n,o[1]-o[0],2),a):yo(i,n)}}},loopSeriesRule:{type:Y.LOOP_SERIES,priority:800,match:e=>Oo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===Y.LOOP_SERIES){var n;return Co(`${(n=e.cellData)==null?void 0:n.v}`||``).name===Co(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[J.SERIES]:(e,n,r)=>{var i;let{data:a}=e,o=r===t.Direction.LEFT||r===t.Direction.UP,{series:s}=Co(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,Ao(xo(a,n,e,s),o)}let c=[],l=0;for(let e=0;e<a.length;e++){var u;let t=`${(u=a[e])==null?void 0:u.v}`;t&&(t===s[0]?e===0?c.push(0):(l++,c.push(l*s.length)):c.push(s.indexOf(t)+l*7))}return o&&(a.reverse(),c.reverse()),Do(c)?Ao(xo(a,n,c[1]-c[0],s),o):yo(a,n)}}},otherRule:{type:Y.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===Y.OTHER}},{chnNumberRule:Mo,chnWeek2Rule:No,chnWeek3Rule:Po,dateRule:Fo,extendNumberRule:Io,loopSeriesRule:Lo,numberRule:Ro,otherRule:zo}=jo,Bo=class extends t.Disposable{constructor(e,r,i,a){super(),this._commandService=e,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,w(this,`_rules`,[]),w(this,`_hooks`,[]),w(this,`_applyType$`,new n.BehaviorSubject(J.SERIES)),w(this,`_isFillingStyle`,!0),w(this,`_prevUndos`,[]),w(this,`_autoFillLocation$`,new n.BehaviorSubject(null)),w(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),w(this,`_showMenu$`,new n.BehaviorSubject(!1)),w(this,`showMenu$`,this._showMenu$.asObservable()),w(this,`_direction`,t.Direction.DOWN),w(this,`applyType$`,this._applyType$.asObservable()),w(this,`_menu$`,new n.BehaviorSubject([{label:`autoFill.copy`,value:J.COPY,disable:!1},{label:`autoFill.series`,value:J.SERIES,disable:!1},{label:`autoFill.formatOnly`,value:J.ONLY_FORMAT,disable:!1},{label:`autoFill.noFormat`,value:J.NO_FORMAT,disable:!1}])),w(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Fo,Ro,Io,Mo,No,Po,Lo,zo].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}_getOneByPriority(e){return e.length<=0?[]:[e.reduce((e,t)=>(t.priority||0)>(e.priority||0)?t:e,e[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(e,n,r,i,a){var o;if(r.startColumn===i.startColumn&&r.startRow===i.startRow&&r.endColumn===i.endColumn&&r.endRow===i.endRow)return!1;if(i.endColumn<r.endColumn&&i.endColumn>r.startColumn)return this._commandService.executeCommand(qo.id,{clearRange:{startRow:i.startRow,endRow:i.endRow,startColumn:i.endColumn+1,endColumn:r.endColumn},selectionRange:i});if(i.endRow<r.endRow&&i.endRow>r.startRow)return this._commandService.executeCommand(qo.id,{clearRange:{startRow:i.endRow+1,endRow:r.endRow,startColumn:i.startColumn,endColumn:i.endColumn},selectionRange:i});let s={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:i.endColumn},c=null;if(i.startRow<r.startRow)c=t.Direction.UP,s.endRow=r.startRow-1;else if(i.endRow>r.endRow)c=t.Direction.DOWN,s.startRow=r.endRow+1;else if(i.startColumn<r.startColumn)c=t.Direction.LEFT,s.endColumn=r.startColumn-1;else if(i.endColumn>r.endColumn)c=t.Direction.RIGHT,s.startColumn=r.endColumn+1;else return!1;this.direction=c;let l=this._injector.invoke(e=>wn(r,e)),u=this._injector.invoke(e=>wn(s,e));if(!l||!u)return!1;this.autoFillLocation={source:l,target:u,unitId:e,subUnitId:n};let d=[];if(this.getActiveHooks().forEach(t=>{var r;let i=t==null||(r=t.onBeforeFillData)==null?void 0:r.call(t,{source:l,target:u,unitId:e,subUnitId:n},c);i&&d.unshift(i)}),this._initPrevUndo(),a)return this.fillData(a);for(let e=0;e<d.length;e++){let t=this.menu.find(t=>t.value===d[e]);if(t&&!t.disable)return this.fillData(d[e])}let f=(o=this.menu.find(e=>e.disable===!1))==null?void 0:o.value;return f?this.fillData(f):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=ho.APPEND),this._hooks.push(e),(0,t.toDisposable)(()=>{let t=this._hooks.findIndex(t=>t===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(t=>t.type===e.type))throw Error(`Registry rule failed, type '${e.type}' already exist!`);let t=this._rules.findIndex(t=>t.priority<e.priority);this._rules.splice(t===-1?this._rules.length:t,0,e)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){let{source:e,target:t,unitId:n,subUnitId:r}=this.autoFillLocation||{};if(!e||!t||!n||!r)return[];let i=this._hooks.filter(i=>{var a;return!((a=i.disable)!=null&&a.call(i,{source:e,target:t,unitId:n,subUnitId:r},this._direction,this.applyType))}),a=i.filter(e=>e.type===ho.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===ho.DEFAULT)),s=i.filter(e=>e.type===ho.APPEND)||[];return[...o,...s]}get applyType(){return this._applyType$.getValue()}set applyType(e){this._applyType$.next(e)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(e){this._direction=e}isFillingStyle(){return this._isFillingStyle}setFillingStyle(e){this._isFillingStyle=e}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(e){this._autoFillLocation$.next(e)}setDisableApplyType(e,t){this._menu$.next(this._menu$.getValue().map(n=>n.value===e?{...n,disable:t}:n))}setShowMenu(e){this._showMenu$.next(e)}fillData(e){var n;this.applyType=e;let r=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),i=r==null?void 0:r.getUnitId(),a=r==null||(n=r.getActiveSheet())==null?void 0:n.getSheetId(),{source:o,target:s,unitId:c=i,subUnitId:l=a}=this.autoFillLocation||{};if(!o||!s||!c||!l)return!1;let u=this._univerInstanceService.getUnit(c,t.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;let d=u.getSheetBySheetId(l);if(!d)return!1;let f=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(e=>{this._commandService.syncExecuteCommand(e.id,e.params)}),this._prevUndos=[];let p=t.Rectangle.union(Cn(o),Cn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(W.id,{selections:[{primary:U({startRow:o.rows[0],endRow:o.rows[o.rows.length-1],startColumn:o.cols[0],endColumn:o.cols[o.cols.length-1]},d),range:{...p,rangeType:t.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e))||{};r&&h.push(...r),i&&g.push(...i)});let _=g.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:v,undos:y}=this._getAutoHeightUndoRedos(g,u,d);return g.push(...v),h.push(...y),_&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:g})),m.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,n,r){if(this.applyType===J.NO_FORMAT)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(e.forEach(e=>{if(e.id===R.id){let{cellValue:s}=e.params;new t.ObjectMatrix(s).forValue((e,t,s)=>{let c=Object.keys(n.getStyles().get(s==null?void 0:s.s)||{});if(s!=null&&s.p||c.length&&ga.some(e=>c.includes(e))){let n=r.getCellHeight(e,t),s=o.getRow(e);(!s&&n!==a||s&&n!==o.getRowHeight(e))&&i.push({row:e,autoHeight:n})}})}}),i.length===0)return{undos:[],redos:[]};let s={unitId:n.getUnitId(),subUnitId:r.getSheetId(),rowsAutoHeightInfo:i},c=Nt(s,r),l={id:It.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:It.id,params:c}]}:{undos:[],redos:[]}}};Bo=E([T(0,t.ICommandService),T(1,t.IUndoRedoService),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(t.Injector))],Bo);let Vo=(0,t.createIdentifier)(`univer.auto-fill-service`),Ho={type:t.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a}=r,{sourceRange:o,targetRange:s,applyType:c}=n;return e.get(Vo).triggerAutoFill(i,a,o,s,c)}};function Uo(e,n){let r=e.get(H).getCurrentLastSelection();if(!r)return null;let i=p(e.get(t.IUniverInstanceService));if(!i)return null;let{unitId:a,subUnitId:o}=i,{startRow:s,endRow:c,startColumn:l,endColumn:u}=r.range;return n===`down`?s===c?s===0?null:{sourceRange:{startRow:s-1,endRow:s-1,startColumn:l,endColumn:u},targetRange:{startRow:s-1,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}:{sourceRange:{startRow:s,endRow:s,startColumn:l,endColumn:u},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}:l===u?l===0?null:{sourceRange:{startRow:s,endRow:c,startColumn:l-1,endColumn:l-1},targetRange:{startRow:s,endRow:c,startColumn:l-1,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}:{sourceRange:{startRow:s,endRow:c,startColumn:l,endColumn:l},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}}async function Wo(e,n){let r=Uo(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand(Ho.id,r);return i&&e.get(Vo).setShowMenu(!1),i}let Go={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>Wo(e,`down`)},Ko={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>Wo(e,`right`)},qo={id:`sheet.command.auto-clear-content`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(A),s=e.get(H),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:f,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:xn([u])},g=L(e,h),_=[{id:R.id,params:h},{id:W.id,params:{selections:[{primary:{startColumn:f,startRow:m,endColumn:f,endRow:m,actualRow:m,actualColumn:f,isMerged:!1,isMergedMainCell:!1},range:{...d}}],unitId:c,subUnitId:l}}],v=[{id:R.id,params:g},{id:W.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i)){let e=o.afterCommandExecute({id:R.id,params:h});return(0,t.sequenceExecute)(e.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...e.undos],redoMutations:[..._,...e.redos]}),!0}return!1}},Jo={id:`sheet.command.clear-selection-content`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(H),s=e.get(t.IUndoRedoService),c=e.get(A),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m={subUnitId:f,unitId:u,cellValue:xn(Tn(p,e,u,f))},h=L(e,m),g=c.onCommandExecute({id:Jo.id}),_=[{id:R.id,params:m},...g.redos],v=[...g.undos,{id:R.id,params:h}];return(0,t.sequenceExecute)(_,a).result?(s.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:_}),!0):!1}},Yo=`sheets.config`;Symbol(Yo);let Xo={largeSheetCellCountThreshold:6e3,batchSize:3e3},Zo={},Qo=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,w(this,`_tasks`,new Map),w(this,`_idleCallbackId`,null),w(this,`_beforeUnloadHandler`,null),this._setupBeforeUnloadListener(),this.disposeWithMe(()=>{this._cancelAllTasks(),this._removeBeforeUnloadListener()})}hasPendingTasks(){return this._tasks.size>0}getPendingMutationsCount(){let e=0;for(let t of this._tasks.values())e+=t.mutations.length-t.currentIndex;return e}scheduleMutations(e,t,n){if(n.length===0)return;let r=`${e}_${t}`;this._cancelTask(r),this._tasks.set(r,{unitId:e,subUnitId:t,mutations:n,currentIndex:0}),this._scheduleNextIdle()}cancelScheduledMutations(e,t){let n=`${e}_${t}`;this._cancelTask(n)}_cancelTask(e){this._tasks.delete(e),this._tasks.size===0&&this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_cancelAllTasks(){this._tasks.clear(),this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_scheduleNextIdle(){this._idleCallbackId===null&&(typeof requestIdleCallback<`u`?this._idleCallbackId=requestIdleCallback(e=>this._processIdleTasks(e),{timeout:1e3*60}):this._idleCallbackId=setTimeout(()=>{this._processIdleTasks({didTimeout:!1,timeRemaining:()=>16})},16))}_processIdleTasks(e){this._idleCallbackId=null;for(let[t,n]of this._tasks){if(!this._isSheetExist(n.unitId,n.subUnitId)){this._tasks.delete(t);continue}for(n.currentIndex;n.currentIndex<n.mutations.length;){if(e.timeRemaining()<=0&&!e.didTimeout){this._scheduleNextIdle();return}let t=n.mutations[n.currentIndex];this._commandService.syncExecuteCommand(t.id,t.params,{onlyLocal:!0}),n.currentIndex++}this._tasks.delete(t)}this._tasks.size>0&&this._scheduleNextIdle()}_isSheetExist(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);return r?r.getSheetBySheetId(n)!==null:!1}_setupBeforeUnloadListener(){typeof window>`u`||(this._beforeUnloadHandler=e=>{if(this.hasPendingTasks())return e.preventDefault(),e.returnValue=``,``},window.addEventListener(`beforeunload`,this._beforeUnloadHandler))}_removeBeforeUnloadListener(){typeof window>`u`||!this._beforeUnloadHandler||(window.removeEventListener(`beforeunload`,this._beforeUnloadHandler),this._beforeUnloadHandler=null)}};Qo=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService)],Qo);let $o={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},es=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),ts={id:`sheet.mutation.insert-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{sheet:i,index:a,unitId:o,styles:s}=n,c=r.getUniverSheetInstance(o);return c?(s&&c.addStyles(s),c.addWorksheet(i.id,a,(0,t.cloneWorksheetData)(i))):!1}};function ns(e){let t=0;for(let n of Object.keys(e)){let r=e[Number(n)];r&&(t+=Object.keys(r).length)}return t}function rs(e,t,n,r){let i=[],a={},o=0;for(let e in n){let t=Number(e),s=n[t];if(!s)continue;let c=Object.keys(s).length;o>0&&o+c>r&&(i.push(a),a={},o=0),a[t]=s,o+=c,o>=r&&(i.push(a),a={},o=0)}return o>0&&i.push(a),{firstChunkCellData:i.length>0?i[0]:{},remainingMutations:i.slice(1).map(n=>({id:R.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}let is=`sheet.command.copy-sheet`;function as(e,n,r,i,a,o,s){var c,l;let u=e.get(t.IConfigService).getConfig(Yo),d={...Xo,...u==null?void 0:u.largeSheetOperation},f=(0,t.cloneWorksheetData)(r.getConfig());f.name=ss(n,o,f.name);let p=(0,t.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=ns(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=rs(i,p,h,d.batchSize),n={...f,cellData:e};_={index:m+1,sheet:n,unitId:i},v=t}else _={index:m+1,sheet:f,unitId:i};let y=es(e,_),b=s.onCommandExecute({id:is,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:ts.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:Ir.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}let os={type:t.CommandType.COMMAND,id:is,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(A),s=e.get(t.LocaleService),c=e.get(Qo),l=p(a,n);if(!l)return!1;let{workbook:u,worksheet:d,unitId:f,subUnitId:m}=l,{redos:h,undos:g,newSheetId:_,isSplit:v,scheduledMutations:y}=as(e,u,d,f,m,s,o);if((0,t.sequenceExecute)(h,r).result){if(v){if(i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:[]}),y.length>0){for(let e of y)r.syncExecuteCommand(e.id,e.params,{syncOnly:!0});r.syncExecuteCommand($o.id,{unitId:f,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(f,_,y)}}else i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:h});return!0}return!1}};function ss(e,t,n){let r=`${n} ${t.t(`sheets.tabs.sheetCopy`,``)}`,i=2;for(;e.checkSheetName(r);)r=`${n} ${t.t(`sheets.tabs.sheetCopy`,`${i}`)}`,i++;return r}let cs={type:t.CommandType.COMMAND,id:`sheet.command.delete-range-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a,subUnitId:o,rule:s}=n,c={unitId:a,subUnitId:o,ruleIds:[s.id]};return await r.executeCommand(kn.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:kn.id,params:c}],undoMutations:[{id:jn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},ls={type:t.CommandType.COMMAND,id:`sheet.command.delete-worksheet-protection`,handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{rule:a,unitId:o,subUnitId:s}=n;r.executeCommand(fa.id,{unitId:o,subUnitId:s});let c=[{id:fa.id,params:{unitId:o,subUnitId:s}}],l=[{id:da.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},us={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-range-theme-style`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a}=n,o=be(e,n);return r.syncExecuteCommand(ye.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:_e.id,params:o}],redoMutations:[{id:ye.id,params:n}]}),!0):!1}},ds={id:`sheet.command.insert-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService),a=e.get(t.IUndoRedoService);if(!n)return!1;let o={...n};return r.syncExecuteCommand(i.SetDefinedNameMutation.id,o)?(a.pushUndoRedo({unitID:n.unitId,undoMutations:[{id:i.RemoveDefinedNameMutation.id,params:o}],redoMutations:[{id:i.SetDefinedNameMutation.id,params:o}]}),!0):!1}},fs={id:`sheet.command.insert-sheet`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(t.LocaleService),s=f(a,{unitId:n==null?void 0:n.unitId});if(!s)return!1;let{unitId:c,workbook:l}=s,u=l.getSheets().length,d=n==null?void 0:n.sheet,p=d==null?void 0:d.id,m=(0,t.mergeWorksheetSnapshotWithDefault)(d||{});if(n){var h;u=(h=n.index)==null?u:h,m.id=p||(0,t.generateRandomId)(),m.name=(d==null?void 0:d.name)||l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else m.id=(0,t.generateRandomId)(),m.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let g={index:u,sheet:m,unitId:c},_=es(e,g);return r.syncExecuteCommand(ts.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ir.id,params:_}],redoMutations:[{id:ts.id,params:g}]}),!0):!1}},ps={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(Vo).fillData(t.type)},ms={id:`sheet.mutation.register-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new ne(o,a);return r.registerRangeThemeStyle(i,s),!0}},hs={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},gs={id:`sheet.command.register-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:r,rangeThemeStyle:i}=n,a=e.get(t.IUniverInstanceService),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService);if(!p(a,n))return!1;let c={unitId:r,themeName:i.getName(),rangeThemeStyleJson:i.toJson()},l={unitId:r,themeName:i.getName()};return o.syncExecuteCommand(ms.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:hs.id,params:l}],redoMutations:[{id:ms.id,params:c}]}),!0}},_s={id:`sheet.command.remove-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A);if(!n)return!1;let l={...n},u=c.onCommandExecute({id:_s.id,params:n}),d=[...(r=u.preRedos)==null?[]:r,{id:i.RemoveDefinedNameMutation.id,params:l},...u.redos],f=[...(a=u.preUndos)==null?[]:a,{id:i.SetDefinedNameMutation.id,params:l},...u.undos];return(0,t.sequenceExecute)(d,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},vs={id:`sheet.command.remove-sheet`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(A),l=e.get(t.IConfigService),u=p(s,n);if(!u)return!1;let{unitId:d,subUnitId:f,workbook:m,worksheet:h}=u;if(m.getSheets().length<=1)return!1;let g=l.getConfig(Yo),_={...Xo,...g==null?void 0:g.largeSheetOperation},v=qr(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:f,unitId:d,subUnitName:h.getName()},b=v?null:Fr(e,y),x=c.onCommandExecute({id:vs.id,params:{unitId:d,subUnitId:f}}),S=[...(r=x.preRedos)==null?[]:r,{id:Ir.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:ts.id,params:b},...x.undos];return(0,t.sequenceExecute)(S,a).result?(v?o.clearUndoRedo(d):o.pushUndoRedo({unitID:d,undoMutations:C,redoMutations:S}),!0):!1}};var ys=class{constructor(){w(this,`_borderInfo`,{type:t.BorderType.ALL,color:`#000000`,style:t.BorderStyleTypes.THIN,activeBorderType:!1}),w(this,`_borderInfo$`,new n.BehaviorSubject(this._borderInfo)),w(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 bs(e,t){let{startRow:n,startColumn:r,endRow:i,endColumn:a}=e;for(let e=n;e<=i;e++)for(let n=r;n<=a;n++)t(e,n)}let xs=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||bs(n,(e,n)=>{let s=o.getMergedCell(e,n),c=r;if(s&&(r.bc_tr||r.ml_tr||r.bl_tr||r.tl_mr||r.tl_bc||r.tl_br)){if(i){var l;let e=t.Tools.deepClone((l=a.getValue(s.startRow,s.startColumn))==null?void 0:l.s);c=e!=null&&e.bd?Object.assign(e.bd,r):r}a.setValue(s.startRow,s.startColumn,{s:{bd:c}})}else{if(i){var u;let i=t.Tools.deepClone((u=a.getValue(e,n))==null?void 0:u.s);c=i!=null&&i.bd?Object.assign(i.bd,r):r}a.setValue(e,n,{s:{bd:c}})}})},Ss=e=>({topRangeOut:{startRow:e.startRow-1,startColumn:e.startColumn,endRow:e.startRow-1,endColumn:e.endColumn},leftRangeOut:{startRow:e.startRow,startColumn:e.startColumn-1,endRow:e.endRow,endColumn:e.startColumn-1},bottomRangeOut:{startRow:e.endRow+1,startColumn:e.startColumn,endRow:e.endRow+1,endColumn:e.endColumn},rightRangeOut:{startRow:e.startRow,startColumn:e.endColumn+1,endRow:e.endRow,endColumn:e.endColumn+1},topRange:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.startRow,endColumn:e.endColumn},leftRange:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.startColumn},bottomRange:{startRow:e.endRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn},rightRange:{startRow:e.startRow,startColumn:e.endColumn,endRow:e.endRow,endColumn:e.endColumn}});function Cs(e,n,r){let{style:i,color:a,type:o}=e.getBorderInfo(),s=o===t.BorderType.TOP||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,c=o===t.BorderType.LEFT||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,l=o===t.BorderType.BOTTOM||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,u=o===t.BorderType.RIGHT||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,d=o===t.BorderType.VERTICAL||o===t.BorderType.ALL||o===t.BorderType.INSIDE,f=o===t.BorderType.HORIZONTAL||o===t.BorderType.ALL||o===t.BorderType.INSIDE,p=o.indexOf(`tlbr`)>-1,m=o.indexOf(`tlbc`)>-1,h=o.indexOf(`tlmr`)>-1,g=o.indexOf(`bltr`)>-1,_=o.indexOf(`mltr`)>-1,v=o.indexOf(`bctr`)>-1,y=r[0],{topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:D}=Ss(y),O=new t.ObjectMatrix,{worksheet:k,unitId:A,subUnitId:ee}=n;return{worksheet:k,unitId:A,subUnitId:ee,style:i,color:a,type:o,top:s,left:c,right:u,bottom:l,vertical:d,horizontal:f,tl_br:p,tl_bc:m,tl_mr:h,bl_tr:g,ml_tr:_,bc_tr:v,topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:D,range:y,mr:O,borderStyle:{s:i,cl:{rgb:a}}}}let ws=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&bs(n,(e,a)=>{let o=s.getMergedCell(e,a);if(o){var c;let s=(c=r.getValue(o.startRow,o.startColumn))==null?void 0:c.s;o.startColumn!==n.startColumn&&r.setValue(e,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{l:t.Tools.deepClone(i)}):{l:t.Tools.deepClone(i)}}})}else{if(a!==n.endColumn){var l;let n=(l=r.getValue(e,a))==null?void 0:l.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{r:t.Tools.deepClone(i)}):{r:t.Tools.deepClone(i)}}})}if(a!==n.startColumn){var u;let n=(u=r.getValue(e,a))==null?void 0:u.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{l:t.Tools.deepClone(i)}):{l:t.Tools.deepClone(i)}}})}}}),o&&bs(n,(e,a)=>{let o=s.getMergedCell(e,a);if(o){var c;let s=(c=r.getValue(o.startRow,o.startColumn))==null?void 0:c.s;o.startRow!==n.startRow&&r.setValue(e,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{t:t.Tools.deepClone(i)}):{t:t.Tools.deepClone(i)}}})}else{if(e!==n.endRow){var l;let n=(l=r.getValue(e,a))==null?void 0:l.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{b:t.Tools.deepClone(i)}):{b:t.Tools.deepClone(i)}}})}if(e!==n.startRow){var u;let n=(u=r.getValue(e,a))==null?void 0:u.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{t:t.Tools.deepClone(i)}):{t:t.Tools.deepClone(i)}}})}}})};function Ts(e){let{borderStyle:n,tl_br:r,tl_bc:i,tl_mr:a,bl_tr:o,ml_tr:s,bc_tr:c}=e,l=(t,n,r)=>{xs(e,t,n,r)};r&&l(e.range,{tl_br:t.Tools.deepClone(n)},!0),i&&l(e.range,{tl_bc:t.Tools.deepClone(n)},!0),a&&l(e.range,{tl_mr:t.Tools.deepClone(n)},!0),o&&l(e.range,{bl_tr:t.Tools.deepClone(n)},!0),s&&l(e.range,{ml_tr:t.Tools.deepClone(n)},!0),c&&l(e.range,{bc_tr:t.Tools.deepClone(n)},!0)}let Es=e=>{let{top:n,left:r,right:i,bottom:a,borderStyle:o,bottomRange:s,topRange:c,leftRange:l,rightRange:u,bottomRangeOut:d,topRangeOut:f,leftRangeOut:p,rightRangeOut:m}=e,h=(t,n,r)=>{xs(e,t,n,r)};n&&(h(f,{b:null}),h(c,{t:t.Tools.deepClone(o)},!0)),a&&(h(d,{t:null}),h(s,{b:t.Tools.deepClone(o)},!0)),r&&(h(p,{r:null}),h(l,{l:t.Tools.deepClone(o)},!0)),i&&(h(m,{l:null}),h(u,{r:t.Tools.deepClone(o)},!0))},Ds=e=>{let{range:t,worksheet:n,mr:r,top:i,bottom:a,left:o,right:s,vertical:c,horizontal:l,tl_br:u,tl_bc:d,tl_mr:f,bl_tr:p,ml_tr:m,bc_tr:h,topRange:g,bottomRange:_,leftRange:v,rightRange:y,topRangeOut:b,bottomRangeOut:x,leftRangeOut:S,rightRangeOut:C}=e,w=(t,n,r)=>{xs(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(bs(t,(e,i)=>{let a=n.getMergedCell(e,i);if(a){if(a.endColumn!==t.endColumn){var o;let t=(o=r.getValue(a.startRow,a.startColumn))==null?void 0:o.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{r:null}):{r:null}}})}if(a.startColumn!==t.startColumn){var s;let t=(s=r.getValue(a.startRow,a.startColumn))==null?void 0:s.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{l:null}):{l:null}}})}if(a.endRow!==t.endRow){var c;let t=(c=r.getValue(a.startRow,a.startColumn))==null?void 0:c.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{b:null}):{b:null}}})}if(a.startRow!==t.startRow){var l;let t=(l=r.getValue(a.startRow,a.startColumn))==null?void 0:l.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{t:null}):{t:null}}})}}else{if(i!==t.endColumn){var u;let t=(u=r.getValue(e,i))==null?void 0:u.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{r:null}):{r:null}}})}if(i!==t.startColumn){var d;let t=(d=r.getValue(e,i))==null?void 0:d.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{l:null}):{l:null}}})}if(e!==t.endRow){var f;let t=(f=r.getValue(e,i))==null?void 0:f.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{b:null}):{b:null}}})}if(e!==t.startRow){var p;let t=(p=r.getValue(e,i))==null?void 0:p.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{t:null}):{t:null}}})}}}),w(b,{b:null}),w(g,{t:null},!0),w(x,{t:null}),w(_,{b:null},!0),w(S,{r:null}),w(v,{l:null},!0),w(C,{l:null}),w(y,{r:null},!0),w(t,{tl_br:null},!0),w(t,{tl_bc:null},!0),w(t,{tl_mr:null},!0),w(t,{bl_tr:null},!0),w(t,{ml_tr:null},!0),w(t,{bc_tr:null},!0))},Os={id:`sheet.command.set-border`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(t.IUniverInstanceService),s=e.get(H),c=e.get(ys),l=p(o,n);if(!l)return!1;let u=(n==null?void 0:n.ranges)||((r=s.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(u!=null&&u.length))return!1;let{activeBorderType:d}=c.getBorderInfo();if(!d)return!1;let f=Cs(c,l,u);ws(f),Es(f),Ts(f),Ds(f);let{unitId:m,subUnitId:h,mr:g}=f,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=L(e,_);return i.syncExecuteCommand(R.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:R.id,params:v}],redoMutations:[{id:R.id,params:_}]}),!0):!1}},ks={id:`sheet.command.set-border-position`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n.value)return!1;let r=e.get(t.ICommandService);return e.get(ys).setType(n.value),r.syncExecuteCommand(Os.id)}},As={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(ys).setStyle(n.value),r.syncExecuteCommand(Os.id)}},js={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(ys).setColor(n.value),r.syncExecuteCommand(Os.id)}},Ms={id:`sheet.command.set-border-basic`,type:t.CommandType.COMMAND,handler:(e,n)=>{let{unitId:r,subUnitId:i,value:a,ranges:o}=n,{type:s,color:c,style:l}=a,u=e.get(t.ICommandService),d=e.get(ys);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(Os.id,{unitId:r,subUnitId:i,ranges:o})}},Ns={type:t.CommandType.COMMAND,id:`sheet.command.set-col-data`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{columnData:o}=n,{unitId:s,subUnitId:c,worksheet:l}=a,u={subUnitId:c,unitId:s,columnData:o},d=Le(u,l);return r.syncExecuteCommand(Re.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Re.id,params:d}],redoMutations:[{id:Re.id,params:u}]}),!0):!1}},Ps={type:t.CommandType.COMMAND,id:`sheet.command.set-col-visible-on-cols`,handler:(e,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=e.get(A),s=e.get(t.ICommandService),c=p(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!c)return!1;let{worksheet:l}=c,u={unitId:r,subUnitId:i,ranges:a},d={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,l),style:null}))},f=Ve(e,u),m={unitId:r,subUnitId:i,selections:Rs(a).map(e=>({range:e,primary:U(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:He.id,params:u},{id:W.id,params:d}],s),g=o.onCommandExecute({id:Ps.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:Ps.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Be.id,params:f},{id:W.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:He.id,params:u},{id:W.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Fs={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var n;let r=e.get(H),i=e.get(t.ICommandService),a=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(a!=null&&a.length))return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=a.map(e=>s.getHiddenCols(e.startColumn,e.endColumn)).flat();return i.executeCommand(Ps.id,{unitId:c,subUnitId:l,ranges:u})}},Is={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r,i;let a=e.get(H),o=e.get(A),s=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(l!=null&&l.length))return!1;let u=p(s,n);if(!u)return!1;let{worksheet:d,unitId:f,subUnitId:m}=u;l=Ls(u.worksheet,l);let h={unitId:f,subUnitId:m,ranges:l},g={unitId:f,subUnitId:m,selections:Rs(l).map(e=>({range:e,primary:U(e,d),style:null}))},_=ze(e,h),v={unitId:f,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:U(e,d),style:null}))},y=(0,t.sequenceExecute)([{id:Be.id,params:h},{id:W.id,params:g}],c),b=o.onCommandExecute({id:Is.id,params:h}),x=(0,t.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:Is.id,params:h});return(0,t.sequenceExecute)(n.redos,c),e.get(t.IUndoRedoService).pushUndoRedo({unitID:f,undoMutations:[{id:He.id,params:_},{id:W.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Be.id,params:h},{id:W.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function Ls(e,t){let n=e.getRowCount()-1,r=e.getHiddenCols(),i=[];return t.forEach(e=>{let t=r.filter(t=>t.startColumn>=e.startColumn&&t.endColumn<=e.endColumn);if(t.length){let r=e.startColumn;t.forEach(e=>{e.startColumn>r&&(i.push({startColumn:r,endColumn:e.startColumn-1,startRow:0,endRow:n}),r=e.endColumn+1)}),r<=e.endColumn&&i.push({startColumn:r,endColumn:e.endColumn,startRow:0,endRow:n})}else i.push(e)}),i}function Rs(e){return zs(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function zs(e){let t=[],n;return e.sort((e,t)=>e.startColumn-t.startColumn).forEach(e=>{if(!n){n=e;return}n.endColumn===e.startColumn-1?n.endColumn=e.endColumn:(t.push(n),n=e)}),t.push(n),t}let Bs={id:`sheet.command.set-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A);if(!n)return!1;let l={...n},u=(0,i.SetDefinedNameMutationFactory)(e,n),d=c.onCommandExecute({id:Bs.id,params:n}),f=[...(r=d.preRedos)==null?[]:r,{id:i.RemoveDefinedNameMutation.id,params:u},{id:i.SetDefinedNameMutation.id,params:l},...d.redos],p=[...(a=d.preUndos)==null?[]:a,{id:i.RemoveDefinedNameMutation.id,params:l},{id:i.SetDefinedNameMutation.id,params:u},...d.undos];return(0,t.sequenceExecute)(f,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Vs=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(i==null)throw Error(`worksheet is null error!`);let a=i.getConfig().freeze;return{unitId:n.unitId,subUnitId:n.subUnitId,...a}},Hs={id:`sheet.mutation.set-frozen`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig(),{startRow:o,startColumn:s,ySplit:c,xSplit:l}=n;return a.freeze={startRow:o,startColumn:s,ySplit:c,xSplit:l},!0}},Us={type:t.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),{unitId:n.unitId,subUnitId:n.subUnitId});if(!a)return!1;let{unitId:o,subUnitId:s,worksheet:c}=a,{startColumn:l,startRow:u,xSplit:d,ySplit:f}=n;if(u>=c.getRowCount()||l>=c.getColumnCount()||d>=c.getColumnCount()||f>=c.getRowCount())return!1;let m={unitId:o,subUnitId:s,...n},h=Vs(e,m);return r.syncExecuteCommand(Hs.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Hs.id,params:h}],redoMutations:[{id:Hs.id,params:m}]}),!0):!1}},Ws={type:t.CommandType.COMMAND,id:`sheet.command.cancel-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUniverInstanceService),a=e.get(t.IUndoRedoService),o=p(i,{unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId});if(!o)return!1;let{unitId:s,subUnitId:c}=o,l={unitId:s,subUnitId:c,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},u=Vs(e,l);return r.syncExecuteCommand(Hs.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:Hs.id,params:u}],redoMutations:[{id:Hs.id,params:l}]}),!0}},Gs={type:t.CommandType.COMMAND,id:`sheet.command.set-gridlines-color`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().gridlinesColor;if(s===(n==null?void 0:n.color))return!1;let{unitId:c,subUnitId:l}=a,u={color:n==null?void 0:n.color,unitId:c,subUnitId:l},d={color:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Ue.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:d}],redoMutations:[{id:Ue.id,params:u}]}),!0):!1}},X={id:`sheet.mutation.set-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i,ruleId:a}=t;return e.get(B).setRule(n,r,a,i),!0}},Ks=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(B).getRule(n,r,i);return a?{id:X.id,params:{...t,rule:a}}:null},qs={id:`sheet.mutation.set-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(ua).setRule(n,r,i),!0}},Js={type:t.CommandType.COMMAND,id:`sheet.command.set-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),o=e.get(B),{rule:s,oldRule:c}=n,{unitId:l,subUnitId:u}=s,d=[],f=[];return(c==null?void 0:c.unitType)===s.unitType?s.unitType===a.UnitObject.Worksheet?(d.push({id:qs.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:qs.id,params:{unitId:l,subUnitId:u,rule:c}})):(d.push({id:X.id,params:{unitId:l,subUnitId:u,rule:s,ruleId:s.id}}),f.push({id:X.id,params:{unitId:l,subUnitId:u,ruleId:c.id,rule:c}})):(c&&(c.unitType===a.UnitObject.Worksheet?(d.push({id:fa.id,params:{unitId:l,subUnitId:u}}),f.push({id:da.id,params:{unitId:l,rule:c,subUnitId:c.subUnitId}})):c.unitType===a.UnitObject.SelectRange&&(d.push({id:kn.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:jn.id,params:{unitId:l,subUnitId:u,rules:[c]}}))),s.unitType===a.UnitObject.Worksheet?(d.push({id:da.id,params:{unitId:l,rule:s,subUnitId:s.subUnitId}}),f.unshift({id:fa.id,params:{unitId:l,subUnitId:u}})):s.unitType===a.UnitObject.SelectRange&&(s.id=o.createRuleId(l,u),d.push({id:jn.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:kn.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,t.sequenceExecute)(d,r)&&i.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},Ys={id:`sheet.command.set-range-custom-metadata`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let i=e.get(t.ICommandService),{unitId:a,subUnitId:o}=r,{range:s,customMetadata:c}=n,{startRow:l,startColumn:u,endRow:d,endColumn:f}=s,m=t.Tools.isArray(c),h=new t.ObjectMatrix;for(let e=l;e<=d;e++)for(let t=u;t<=f;t++){let n=m?c[e-l][t-u]:c;h.setValue(e,t,n)}return i.syncExecuteCommand(R.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},Xs={type:t.CommandType.COMMAND,id:`sheet.command.set-row-data`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{rowData:o}=n,{unitId:s,subUnitId:c,worksheet:l}=a,u={subUnitId:c,unitId:s,rowData:o},d=_t(u,l);return r.syncExecuteCommand(vt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:vt.id,params:d}],redoMutations:[{id:vt.id,params:u}]}),!0):!1}},Zs={type:t.CommandType.COMMAND,id:`sheet.command.set-specific-rows-visible`,handler:(e,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A),l=p(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d={unitId:r,subUnitId:i,ranges:a},f={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,u),style:null}))},m=yt(e,d),h={unitId:r,subUnitId:i,selections:tc(a).map(e=>({range:e,primary:U(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:bt.id,params:d},{id:W.id,params:f}],o),_=c.onCommandExecute({id:Zs.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let e=c.afterCommandExecute({id:Zs.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:St.id,params:m},{id:W.id,params:h},...(b=_.undos)==null?[]:b,...e.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:bt.id,params:d},{id:W.id,params:f},..._.redos,...e.redos]}),!0}return!0}},Qs={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var n;let r=e.get(H),i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(o!=null&&o.length))return!1;let s=p(i);if(!s)return!1;let{worksheet:c,unitId:l,subUnitId:u}=s,d=o.map(e=>c.getHiddenRows(e.startRow,e.endRow)).flat();return a.executeCommand(Zs.id,{unitId:l,subUnitId:u,ranges:d})}},$s={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r,i,a;let o=e.get(H),s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l=e.get(t.IUniverInstanceService),u=e.get(A),d=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=o.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(d!=null&&d.length))return!1;let f=p(l,n);if(!f)return!1;d=ec(f.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=f,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:tc(d).map(e=>({range:e,primary:U(e,g),style:null}))},y=xt(e,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:U(e,g),style:null}))},x=u.onCommandExecute({id:$s.id,params:_});if((0,t.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:St.id,params:_},{id:W.id,params:v},...x.redos],s).result){var S,C,w;let e=u.afterCommandExecute({id:$s.id,params:_});return(0,t.sequenceExecute)(e.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:bt.id,params:y},{id:W.id,params:b},...(C=x.undos)==null?[]:C,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:St.id,params:_},{id:W.id,params:v},...x.redos,...e.redos]}),!0}return!0}};function ec(e,t){let n=e.getMaxColumns()-1,r=e.getHiddenRows(),i=[];return t.forEach(e=>{let t=r.filter(t=>t.startRow>=e.startRow&&t.endRow<=e.endRow);if(t.length){let r=e.startRow;t.forEach(e=>{e.startRow>r&&(i.push({startRow:r,endRow:e.startRow-1,startColumn:0,endColumn:n}),r=e.endRow+1)}),r<=e.endRow&&i.push({startRow:r,endRow:e.endRow,startColumn:0,endColumn:n})}else i.push(e)}),i}function tc(e){return nc(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function nc(e){let t=[],n;return e.sort((e,t)=>e.startRow-t.startRow).forEach(e=>{if(!n){n=e;return}e.startRow===n.endRow+1?n.endRow=e.endRow:(t.push(n),n=e)}),t.push(n),t}let rc=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},ic={id:`sheet.mutation.set-tab-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},ac={type:t.CommandType.COMMAND,id:`sheet.command.set-tab-color`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=rc(e,c);return r.syncExecuteCommand(ic.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:ic.id,params:l}],redoMutations:[{id:ic.id,params:c}]}),!0):!1}},oc={id:`sheet.mutation.set-workbook-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);return r?(r.setName(n.name),!0):!1}},sc={type:t.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(A);if(!f(e.get(t.IUniverInstanceService),n))return!1;let o=a.onCommandExecute({id:sc.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:oc.id,params:s},...o.redos],i).result}},cc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,n,r)=>{let i=e.get(t.ICommandService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(Rt.id,{unitId:o,subUnitId:s},r))},4)})}},lc={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,{anchorCol:u,deltaX:d}=n,f=s.getColumnWidth(u)+d,m=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,h=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN),g=m?t.RANGE_TYPE.ALL:h.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=u&&u<=n})?t.RANGE_TYPE.COLUMN:t.RANGE_TYPE.NORMAL,_;if(g===t.RANGE_TYPE.ALL){let e=s.getRowCount();_={subUnitId:l,unitId:c,colWidth:f,ranges:Array(s.getColumnCount()).fill(void 0).map((t,n)=>({startRow:0,endRow:e-1,startColumn:n,endColumn:n}))}}else _=g===t.RANGE_TYPE.COLUMN?{subUnitId:l,unitId:c,ranges:h.map(e=>t.Rectangle.clone(e.range)),colWidth:f}:{subUnitId:l,unitId:c,colWidth:f,ranges:[{startRow:0,endRow:s.getMaxRows()-1,startColumn:u,endColumn:u}]};let v=e.get(Wr).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=Kr(_.ranges,v);Gr(y,s);let x=e.get(A),{undos:S,redos:C}=x.onCommandExecute({id:lc.id,params:_}),w=Ct(_,s),T=i.syncExecuteCommand(wt.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:O,redos:k}=e.get(A).afterCommandExecute({id:lc.id,params:_}),ee=(0,t.sequenceExecute)([...C,...k,...D],i);return T&&ee.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:wt.id,params:w},...S,...O,...E],redoMutations:[{id:wt.id,params:_},...C,...k,...D]}),!0}},uc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(H),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(l!=null&&l.length))return!1;let u=p(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:f,worksheet:m}=u,h=e.get(Wr).getSkeleton(f,d),g={subUnitId:d,unitId:f,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=Kr(g.ranges,h);Gr(_,m);let y=Ct(g,m),b=o.syncExecuteCommand(wt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:uc.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let e=c.afterCommandExecute({id:uc.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:wt.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:wt.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},dc={type:t.CommandType.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(H),o=p(e.get(t.IUniverInstanceService),n);if(!o)return!1;let{unitId:s,subUnitId:c}=o,l=[];if(n!=null&&n.ranges)l=[...n.ranges];else{let e=a.getCurrentSelections();for(let t=0;t<e.length;t++)l.push(e[t].range)}if(!(l!=null&&l.length))return!1;let u={unitId:s,subUnitId:c,ranges:l},{undos:d,redos:f}=e.get(A).onCommandExecute({id:dc.id,params:u});return(0,t.sequenceExecute)([...f],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...f]}),!0):!1}},fc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-column-count`,handler:(e,n)=>{let{unitId:r,subUnitId:i,columnCount:a}=n,o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService);if(!p(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount:a},l=Tt(e,c);return o.syncExecuteCommand(Et.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Et.id,params:l}],redoMutations:[{id:Et.id,params:c}]}),!0):!1}},pc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-default-style`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a}=n,o=Ot(e,n);return r.syncExecuteCommand(Dt.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Dt.id,params:o}],redoMutations:[{id:Dt.id,params:n}]}),!0):!1}},mc=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetHideMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{hidden:i.isSheetHidden(),unitId:n.unitId,subUnitId:i.getSheetId()}},hc={id:`sheet.mutation.set-worksheet-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().hidden=n.hidden,!0):!1}},gc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-hidden`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.ErrorService),o=e.get(t.LocaleService),s=p(e.get(t.IUniverInstanceService),n);if(!s)return!1;let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s;if(l.getConfig().hidden===t.BooleanNumber.TRUE)return!1;let f={unitId:u,subUnitId:d,hidden:t.BooleanNumber.TRUE},m=mc(e,f);return c.getSheets().filter(e=>e.getConfig().hidden===t.BooleanNumber.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):r.syncExecuteCommand(hc.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:hc.id,params:m}],redoMutations:[{id:hc.id,params:f}]}),!0):!1}},_c=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetNameMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,name:i.getName(),subUnitId:i.getSheetId()}},vc={id:`sheet.mutation.set-worksheet-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},yc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(A),c=p(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d={subUnitId:u,name:n.name,unitId:l},f=_c(e,d),m=s.onCommandExecute({id:yc.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:vc.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:vc.id,params:f},...m.undos];return(0,t.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},bc=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),xc={id:`sheet.mutation.set-worksheet-order`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getConfig();return i.sheetOrder.splice(n.fromOrder,1),i.sheetOrder.splice(n.toOrder,0,n.subUnitId),r.ensureSheetOrderUnique(),!0}},Sc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-order`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{workbook:o,unitId:s,subUnitId:c}=a,l={fromOrder:o.getConfig().sheetOrder.indexOf(c),toOrder:n.order,unitId:s,subUnitId:c},u=bc(e,l);return r.syncExecuteCommand(xc.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:xc.id,params:u}],redoMutations:[{id:xc.id,params:l}]}),!0):!1}};var Cc=class{constructor(){w(this,`_model`,new Map),w(this,`_pointChange`,new n.Subject),w(this,`pointChange$`,this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var n;let r=(n=this._model.get(e))==null?void 0:n.get(t);if(r){var i;(i=this._model)==null||(i=i.get(e))==null||i.delete(t),this._pointChange.next(r)}}getRule(e,t){var n;return(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t)}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t);n!=null&&n.size&&(e[t]=[],[...n.keys()].forEach(r=>{let i=n.get(r);i&&e[t].push(i)}))}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n];if(r!=null&&r.length){let e=new Map;r.forEach(t=>{e.set(t.subUnitId,t)}),t.set(n,e)}}),this._model=t}deleteUnitModel(e){this._model.delete(e)}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)if(i.permissionId===t)return[e,r]}},wc=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.Delete),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!0),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.Delete}.${r}`}},Z=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.Edit),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!0),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.Edit}.${r}`}},Tc=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.ManageCollaborator),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!0),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.ManageCollaborator}.${r}`}},Ec=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.View),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!1),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.View}.${r}`}};let Dc=()=>[Ec,Z,Tc,wc],Oc=[a.UnitAction.Edit,a.UnitAction.View,a.UnitAction.ManageCollaborator,a.UnitAction.Delete],kc=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>Dc().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{});var Ac=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Comment),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Comment}_${e}`}},jc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Copy),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Copy}_${e}`}},Mc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`subType`,a.UnitAction.CopySheet),w(this,`status`,t.PermissionStatus.INIT),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CopySheet}_${e}`}},Nc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreatePermissionObject}_${e}`}},Pc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.CreateSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreateSheet}_${e}`}},Fc=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}`}},Ic=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteRow),this.id=`${this.type}.${a.UnitAction.DeleteRow}_${e}`}},Lc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.DeleteSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.DeleteSheet}_${e}`}},Rc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Duplicate),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Duplicate}_${e}`}},Q=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Edit),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Edit}_${e}`}},zc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Export),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Export}_${e}`}},Bc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.HideSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.HideSheet}_${e}`}},Vc=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}`}},Hc=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}`}},Uc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}`}},Wc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.MoveSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.MoveSheet}_${e}`}},Gc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Print),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Print}_${e}`}},Kc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.RecoverHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RecoverHistory}_${e}`}},qc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.RenameSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RenameSheet}_${e}`}},Jc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Share),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Share}_${e}`}},Yc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.View),this.unitId=e,this.id=`${this.type}.${a.UnitAction.View}_${e}`}},Xc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.ViewHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ViewHistory}_${e}`}},Zc=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Copy),this.id=`${this.type}.${a.UnitAction.Copy}_${e}_${n}`}},Qc=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}_${n}`}},$c=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Delete),this.id=`${this.type}.${a.UnitAction.Delete}_${e}_${n}`}},el=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteRow),this.id=`${this.type}.${a.UnitAction.DeleteRow}_${e}_${n}`}},$=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Edit),this.id=`${this.type}.${a.UnitAction.Edit}_${e}_${n}`}},tl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.EditExtraObject),this.id=`${this.type}.${a.UnitAction.EditExtraObject}_${e}_${n}`}},nl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Filter),this.id=`${this.type}.${a.UnitAction.Filter}_${e}_${n}`}},rl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}_${n}`}},il=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertHyperlink),this.id=`${this.type}.${a.UnitAction.InsertHyperlink}_${e}_${n}`}},al=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}_${n}`}},ol=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.ManageCollaborator),this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}_${n}`}},sl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.PivotTable),this.id=`${this.type}.${a.UnitAction.PivotTable}_${e}_${n}`}},cl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SelectProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectProtectedCells}_${e}_${n}`}},ll=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SelectUnProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectUnProtectedCells}_${e}_${n}`}},ul=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetCellStyle),this.id=`${this.type}.${a.UnitAction.SetCellStyle}_${e}_${n}`}},dl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetCellValue),this.id=`${this.type}.${a.UnitAction.SetCellValue}_${e}_${n}`}},fl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetColumnStyle),this.id=`${this.type}.${a.UnitAction.SetColumnStyle}_${e}_${n}`}},pl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetRowStyle),this.id=`${this.type}.${a.UnitAction.SetRowStyle}_${e}_${n}`}},ml=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Sort),this.id=`${this.type}.${a.UnitAction.Sort}_${e}_${n}`}},hl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.View),this.id=`${this.type}.${a.UnitAction.View}_${e}_${n}`}};let gl=()=>[Q,Gc,Ac,Yc,jc,zc,Uc,Pc,Lc,qc,Bc,Rc,Jc,Wc,Mc,Xc,Kc,Nc,Hc,Vc,Ic,Fc],_l=[a.UnitAction.Edit,a.UnitAction.Print,a.UnitAction.Comment,a.UnitAction.View,a.UnitAction.Copy,a.UnitAction.Export,a.UnitAction.ManageCollaborator,a.UnitAction.CreateSheet,a.UnitAction.DeleteSheet,a.UnitAction.RenameSheet,a.UnitAction.HideSheet,a.UnitAction.Duplicate,a.UnitAction.Share,a.UnitAction.MoveSheet,a.UnitAction.CopySheet,a.UnitAction.RecoverHistory,a.UnitAction.ViewHistory,a.UnitAction.CreatePermissionObject,a.UnitAction.InsertRow,a.UnitAction.InsertColumn,a.UnitAction.DeleteRow,a.UnitAction.DeleteColumn],vl=()=>[$,hl,ol,$c],yl=()=>[Zc,Qc,el,tl,nl,rl,al,il,sl,ul,dl,fl,pl,ml],bl=[a.UnitAction.Copy,a.UnitAction.DeleteColumn,a.UnitAction.DeleteRow,a.UnitAction.EditExtraObject,a.UnitAction.Filter,a.UnitAction.InsertColumn,a.UnitAction.InsertRow,a.UnitAction.InsertHyperlink,a.UnitAction.PivotTable,a.UnitAction.SetCellStyle,a.UnitAction.SetCellValue,a.UnitAction.SetColumnStyle,a.UnitAction.SetRowStyle,a.UnitAction.Sort],xl=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=o,this._logService=s,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){let e=e=>{let t=e.getUnitId(),n=e=>{let n=e.getSheetId();[...vl(),...yl()].forEach(e=>{let r=new e(t,n);this._permissionService.addPermissionPoint(r)}),this._logService.debug(`[WorksheetPermissionService]`,`Initialization completed`,t,n)};e.getSheets().forEach(e=>{n(e)}),e.sheetCreated$.subscribe(e=>{n(e)}),e.sheetDisposed$.subscribe(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Dc()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...vl(),...yl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,o.takeUntil)(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,o.takeUntil)(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();vl().forEach(e=>{let t=new e(n,r);this._permissionService.deletePermissionPoint(t.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case`add`:break;case`delete`:vl().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:vl().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,e.rule)});break}}))}_initRuleSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:()=>{let e=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(e)},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_WORKSHEET_PROTECTION_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{vl().forEach(n=>{let r=new n(e,t);r.value=!1,this._permissionService.addPermissionPoint(r)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:e=>{let t=this._univerInstanceService.getUnit(e);t&&(t.getSheets().forEach(t=>{let n=t.getSheetId();[...vl(),...yl()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),gl().forEach(t=>{let n=new t(e);this._permissionService.deletePermissionPoint(n.id)})),this._worksheetProtectionRuleModel.deleteUnitModel(e)}}))}_initPointSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:()=>{let e=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(e)},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{yl().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};xl=E([T(0,(0,t.Inject)(t.IPermissionService)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,(0,t.Inject)(t.Injector)),T(3,(0,t.Inject)(ua)),T(4,(0,t.Inject)(Cc)),T(5,(0,t.Inject)(t.IResourceManagerService)),T(6,(0,t.Inject)(B)),T(7,(0,t.Inject)(t.ILogService))],xl);let Sl={id:`sheet.mutation.set-worksheet-permission-points`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(Cc).addRule(n),!0}},Cl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-permission-points`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),{rule:i}=n;return r.executeCommand(Sl.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},wl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{rule:a,permissionId:o,oldRule:s}=n,{unitId:c,subUnitId:l}=a,u={...a,permissionId:o};if(await r.executeCommand(qs.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:qs.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:qs.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Tl=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...t.Tools.deepClone(n),rightToLeft:r}},El={id:`sheet.mutation.set-worksheet-right-to-left`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig();return a.rightToLeft=n.rightToLeft,!0}},Dl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-right-to-left`,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=t.BooleanNumber.FALSE;if(n){var l;c=(l=n.rightToLeft)==null?t.BooleanNumber.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=Tl(e,u);return r.syncExecuteCommand(El.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:El.id,params:d}],redoMutations:[{id:El.id,params:u}]}),!0):!1}},Ol={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-row-count`,handler:(e,n)=>{let{unitId:r,subUnitId:i,rowCount:a}=n,o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService);if(!p(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=kt(e,c);return o.syncExecuteCommand(At.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:At.id,params:l}],redoMutations:[{id:At.id,params:c}]}),!0):!1}},kl={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i=e.get(A);if(!(r!=null&&r.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,subUnitId:s,unitId:c}=a,{anchorRow:l,deltaY:u}=n,d=o.getRowHeight(l)+u,f=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,m=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW),h=f?t.RANGE_TYPE.ALL:m.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?t.RANGE_TYPE.ROW:t.RANGE_TYPE.NORMAL,g;if(h===t.RANGE_TYPE.ALL){let e=o.getColumnCount();g={subUnitId:s,unitId:c,rowHeight:d,ranges:Array(o.getRowCount()).fill(void 0).map((t,n)=>({startRow:n,endRow:n,startColumn:0,endColumn:e-1}))}}else g=h===t.RANGE_TYPE.ROW?{subUnitId:s,unitId:c,ranges:m.map(e=>t.Rectangle.clone(e.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let _=jt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Mt(v,o),b=e.get(t.ICommandService),x=e.get(t.IUndoRedoService),S=i.onCommandExecute({id:kl.id,params:g}),C=(0,t.sequenceExecute)([{id:Pt.id,params:g},{id:Ft.id,params:v}],b),w=(0,t.sequenceExecute)([...S.redos],b);if(C.result&&w.result){var T,E;let e=i.afterCommandExecute({id:kl.id,params:g});return(0,t.sequenceExecute)(e.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...(T=S.preUndos)==null?[]:T,{id:Pt.id,params:_},{id:Ft.id,params:y},...S.undos,...e.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:Pt.id,params:g},{id:Ft.id,params:v},...S.redos,...e.redos]}),!0}return!1}},Al={type:t.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(e,n)=>{var r,i;let a=e.get(H),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(t.IUniverInstanceService),l=e.get(A),u=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(u!=null&&u.length))return!1;let d=p(c,n);if(!d)return!1;let{unitId:f,subUnitId:m,worksheet:h}=d,g={subUnitId:m,unitId:f,ranges:u,rowHeight:n.value},_=jt(g,h),v={unitId:f,subUnitId:m,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Mt(v,h),b=(0,t.sequenceExecute)([{id:Pt.id,params:g},{id:Ft.id,params:v}],o),x=l.onCommandExecute({id:Al.id,params:g}),S=(0,t.sequenceExecute)([...x.redos],o);if(b.result&&S.result){var C,w;let e=l.afterCommandExecute({id:Al.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(C=x.preRedos)==null?[]:C,{id:Pt.id,params:_},{id:Ft.id,params:y},...x.undos,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:Pt.id,params:g},{id:Ft.id,params:v},...x.redos,...e.redos]}),!0}return!1}},jl={type:t.CommandType.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(H),c=p(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u,worksheet:d}=c,f=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=s.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(f!=null&&f.length))return!1;let m={unitId:l,subUnitId:u,ranges:f,autoHeightInfo:t.BooleanNumber.TRUE},h=Mt(m,d),g=a.syncExecuteCommand(Ft.id,m),_=e.get(Wr).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=Kr(m.ranges,_),b=e.get(A),{undos:x,redos:S}=b.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:v,autoHeightRanges:v,lazyAutoHeightRanges:y}),{undos:C,redos:w}=b.onCommandExecute({id:jl.id,params:m}),T=(0,t.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Ft.id,params:h},...C,...x],redoMutations:[{id:Ft.id,params:m},...w,...S]}),!0):!1}},Ml={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r;if(o.getConfig().hidden===t.BooleanNumber.FALSE)return!1;let s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l={unitId:i,subUnitId:a,hidden:t.BooleanNumber.FALSE},u=mc(e,l),d=s.syncExecuteCommand(hc.id,l),f={unitId:i,subUnitId:a},m=s.syncExecuteCommand(Rt.id,f);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:hc.id,params:u}],redoMutations:[{id:hc.id,params:l}]}),!0):!1}},Nl={type:t.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r,{range:s,delimiter:c,customDelimiter:l,treatMultipleDelimitersAsOne:u}=n,{lastRow:d,rs:f,maxLength:m}=hn(o,s,c,l,u),h=o.getColumnCount(),{startColumn:g}=t.Range.transformRange(s,o);if(s.startColumn!==s.endColumn)return!1;let _=e.get(t.ICommandService),v=e.get(t.IUndoRedoService),y=[],b=[],x=g+m+1-h;if(x>0){let t={unitId:i,subUnitId:a,range:{startRow:0,endRow:o.getRowCount()-1,startColumn:h-1,endColumn:h-1+x}};y.push({id:we.id,params:t});let n=Ce(e,t);b.push({id:P.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+m},C=new t.ObjectMatrix;for(let e=S.startRow;e<=S.endRow;e++)for(let t=S.startColumn;t<=S.endColumn;t++){let n=f[e-S.startRow];t===0&&(n==null?void 0:n.length)===1?C.setValue(e,t,o.getCell(e,t)):C.setValue(e,t,{v:(n==null?void 0:n[t-S.startColumn])||null,p:null,f:null,si:null,custom:null})}let w={unitId:i,subUnitId:a,cellValue:C.clone()},T=L(e,w);return y.push({id:R.id,params:w}),b.unshift({id:R.id,params:T}),(0,t.sequenceExecute)(y,_).result?(v.pushUndoRedo({unitID:i,undoMutations:b,redoMutations:y}),!0):!1}},Pl=(0,t.createIdentifier)(`INumfmtService`),Fl=(e,n)=>{let r=e.get(Pl),{values:i,unitId:a,subUnitId:o}=n,s=[],c=[];Object.keys(i).forEach(e=>{i[e].ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=r.getValue(a,o,e,t);n?s.push({pattern:n.pattern,row:e,col:t}):c.push({startColumn:t,endColumn:t,startRow:e,endRow:e})})})});let l=[];if(s.length){let e=zl(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=an(n.ranges)}),l.push({id:Il.id,params:zl(a,o,s)})}return c.length&&l.push({id:Ll.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},Il={id:`sheet.mutation.set.numfmt`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{values:n,refMap:r}=t,i=e.get(Pl),a=t.unitId,o=t.subUnitId,s=Object.keys(n).reduce((e,t)=>{let i=r[t],a=n[t].ranges;return i&&e.push({...i,ranges:a}),e},[]);return i.setValues(a,o,s),!0}},Ll={id:`sheet.mutation.remove.numfmt`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t;return e.get(Pl).deleteValues(n,r,i),!0}},Rl=(e,n)=>{let r=e.get(Pl),{ranges:i,unitId:a,subUnitId:o}=n,s=[];if(i.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=r.getValue(a,o,e,t);n&&s.push({pattern:n.pattern,row:e,col:t})})}),!s.length)return[];let c=zl(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=an(t.ranges)}),[{id:Il.id,params:c}]},zl=(e,n,r)=>{let i=gn(r,`pattern`),a={},o={},s=_n();return Object.keys(i).forEach(e=>{let n=i[e],r=s();a[r]={pattern:e},n.forEach(e=>{o[r]||(o[r]={ranges:[]}),o[r].ranges.push((0,t.cellToRange)(e.row,e.col))})}),{unitId:e,subUnitId:n,refMap:a,values:o}},Bl={id:`sheet.command.text-to-number`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(a!=null&&a.length))return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),{worksheet:c,unitId:l,subUnitId:u}=i,d=new t.ObjectMatrix,f=[];for(let e=0;e<a.length;e++)for(let n=a[e].startRow;n<=a[e].endRow;n++)for(let r=a[e].startColumn;r<=a[e].endColumn;r++){var m,h;if(d.getValue(n,r))continue;let e=c.getCellRaw(n,r),i=typeof(e==null?void 0:e.s)==`string`?(m=c.getStyleDataByHash(e.s))==null||(m=m.n)==null?void 0:m.pattern:e==null||(h=e.s)==null||(h=h.n)==null?void 0:h.pattern;e&&e.v&&(e.t!==t.CellValueType.NUMBER||(0,t.isTextFormat)(i))&&(0,t.isRealNum)(e.v)&&(d.setValue(n,r,{v:Number(e.v),t:t.CellValueType.NUMBER}),(0,t.isTextFormat)(i)&&f.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let g={subUnitId:u,unitId:l,cellValue:d.getMatrix()},_=[{id:R.id,params:g}],v=[{id:R.id,params:L(e,g)}];if(f.length){let t={unitId:l,subUnitId:u,ranges:f};_.push({id:Ll.id,params:t}),v.push(...Rl(e,t))}return(0,t.sequenceExecute)(_,o).result?(s.pushUndoRedo({unitID:l,undoMutations:v,redoMutations:_}),!0):!1}},Vl={id:`sheet.command.toggle-cell-checkbox`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:r,subUnitId:i,row:a,col:o,paragraphIndex:s}=n,c=e.get(t.IUniverInstanceService).getUnit(r,t.UniverInstanceType.UNIVER_SHEET),l=c==null?void 0:c.getSheetBySheetId(i),u=e.get(t.IUndoRedoService),d=e.get(t.ICommandService);if(!l)return!1;let f=l.getCell(a,o);if(!(f!=null&&f.p))return!1;let p=t.Tools.deepClone(f.p),m=new t.DocumentDataModel(p),h=t.BuildTextUtils.paragraph.bullet.toggleChecklist({document:m,paragraphIndex:s});if(!h)return!1;t.TextX.apply(m.getBody(),h.serialize());let g={unitId:r,subUnitId:i,cellValue:{[a]:{[o]:{p,t:t.CellValueType.STRING}}}},_={id:R.id,params:g},v=L(e,g),y={id:R.id,params:v},b=[_],x=[y];return u.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:r}),d.syncExecuteCommand(_.id,_.params)}},Hl={type:t.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().showGridlines;if(s===(n==null?void 0:n.showGridlines))return!1;let{unitId:c,subUnitId:l}=a,u={showGridlines:s===t.BooleanNumber.TRUE?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE,unitId:c,subUnitId:l},d={showGridlines:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Lt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Lt.id,params:d}],redoMutations:[{id:Lt.id,params:u}]}),!0):!1}},Ul={id:`sheet.command.unregister-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;if(!n||!p(e.get(t.IUniverInstanceService),n))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(N),{unitId:s,themeName:c}=n,l={unitId:s,themeName:c},u={unitId:s,themeName:c,rangeThemeStyleJson:(r=o.getRangeThemeStyle(s,c))==null?void 0:r.toJson()};return i.syncExecuteCommand(ms.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:ms.id,params:u}],redoMutations:[{id:hs.id,params:l}]}),!0):!1}},Wl={id:`sheet.mutation.add-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleJSON:n,unitId:r}=t,i=e.get(N),a=new ne(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},Gl={id:`sheet.mutation.empty`,type:t.CommandType.MUTATION,handler:()=>!0},Kl={id:`sheet.mutation.mark-dirty-filter-change`,type:t.CommandType.MUTATION,handler:()=>!0},ql={id:`sheet.mutation.remove-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(N).unregisterRangeThemeStyle(r,n),!0}},Jl={id:`sheet.mutation.set-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,styleName:r,style:i}=t,a=e.get(N).getRangeThemeStyle(n,r);return a&&(i.headerRowStyle&&a.setHeaderRowStyle(i.headerRowStyle),i.firstRowStyle&&a.setFirstRowStyle(i.firstRowStyle),i.secondRowStyle&&a.setSecondRowStyle(i.secondRowStyle),i.lastRowStyle&&a.setLastRowStyle(i.lastRowStyle)),!0}},Yl={id:`sheet.operation.mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},Xl={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},Zl={id:`sheet.operation.scroll-to-cell`,type:t.CommandType.OPERATION,handler:()=>!0},{getLenS:Ql,getDataIndex:$l,fillCopy:eu,fillCopyStyles:tu,generateNullCellValueRowCol:nu}=mo,{otherRule:ru}=jo,iu=class extends t.Disposable{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,w(this,`_beforeApplyData`,[]),w(this,`_copyData`,[]),this._init()}_init(){this._initDefaultHook()}quit(){this._beforeApplyData=[],this._copyData=[]}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook({id:`default`,type:ho.DEFAULT,priority:0,onBeforeFillData:(e,t)=>this._presetAndCacheData(e,t),onFillData:(e,t,n)=>this._fillData(e,t,n)}))}_presetAndCacheData(e,n){var r;let{unitId:i,subUnitId:a,target:o}=e,s=(r=this._univerInstanceService.getUnit(i))==null?void 0:r.getSheetBySheetId(a);if(!s)throw Error(`Worksheet not found for unitId: ${i}, subUnitId: ${a}`);let c=s.getCellMatrix(),l=[];return o.rows.forEach(e=>{let n=[];o.cols.forEach(r=>{n.push(t.Tools.deepClone(c.getValue(e,r)))}),l.push(n)}),this._beforeApplyData=l,this._copyData=this._getCopyData(e,n),this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(J.SERIES,!0),J.COPY):(this._autoFillService.setDisableApplyType(J.SERIES,!1),this._getPreferredApplyType(this._copyData))}_getApplyData(e,t,n,r,i,a=!0,o){let s=[],c=Math.floor(n/t),l=n%t,u=this._autoFillService.getRules();if(!a&&i===J.ONLY_FORMAT)return console.error(`ERROR: only format can not be applied when hasStyle is false`),[];let d={};u.forEach(e=>{d[e.type]=[]}),u.forEach(a=>{let{type:s,applyFunctions:u={}}=a,f=e[s];f&&f.forEach(a=>{let f=Ql(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=$l(t,n,a.index);d[s].push({data:m,index:h})})});for(let e=0;e<n;e++)u.forEach(t=>{let{type:n}=t,r=d[n];for(let t=0;t<r.length;t++)e in r[t].index&&s.push(r[t].data[r[t].index[e]])});return s}_applyFunctions(e,n,r,i,a,o,s){let{data:c}=e,l=r===t.Direction.UP||r===t.Direction.LEFT;if(i===J.COPY){let t=a==null?void 0:a[J.COPY];return t?t(e,n,r,o,s):(l&&c.reverse(),eu(c,n))}if(i===J.SERIES){let t=a==null?void 0:a[J.SERIES];return t?t(e,n,r,o):(l&&c.reverse(),a!=null&&a[J.COPY]?a[J.COPY](e,n,r,o,s):eu(c,n))}if(i===J.ONLY_FORMAT){let t=a==null?void 0:a[J.ONLY_FORMAT];return t?t(e,n,r,o):tu(c,n)}}_getCopyData(e,n){var r;let{unitId:i,subUnitId:a,source:o}=e,s=(r=this._univerInstanceService.getUnit(i))==null?void 0:r.getSheetBySheetId(a);if(!s)throw Error(`No worksheet found`);let c=s.getCellMatrix(),l=this._autoFillService.getRules(),u=[],d=n===t.Direction.DOWN||n===t.Direction.UP,f,p;return d?(f=o.cols,p=o.rows):(f=o.rows,p=o.cols),f.forEach(e=>{let t=this._getEmptyCopyDataPiece(),n={type:void 0,cellData:void 0};p.forEach(r=>{let i;i=d?c.getValue(r,e):c.getValue(e,r);let{type:a,isContinue:o}=l.find(e=>e.match(i,this._injector))||ru;if(o(n,i)){let e=t[a],n=e[e.length-1];n.data.push(i),n.index.push(r-p[0])}else{let e=t[a];e?e.push({data:[i],index:[r-p[0]]}):t[a]=[{data:[i],index:[r-p[0]]}]}n.type=a,n.cellData=i}),u.push(t)}),u}_getEmptyCopyDataPiece(){let e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,n,r,i,a){var o;let{unitId:s,subUnitId:c}=a,l=(o=this._univerInstanceService.getUnit(s))==null?void 0:o.getSheetBySheetId(c);if(!l)throw Error(`No active sheet found`);let u=[];for(let a=e.startRow;a<=e.endRow;a++)for(let o=e.startColumn;o<=e.endColumn;o++){let{isMergedMainCell:e,startRow:s,startColumn:c,endRow:d,endColumn:f}=l.getCellInfoInMergeData(a,o);if(e){if(r===t.Direction.DOWN){let e=s+i,t=d+i;for(;t<=n.endRow;)u.push({startRow:e,startColumn:c,endRow:t,endColumn:f}),e+=i,t+=i}else if(r===t.Direction.UP){let e=s-i,t=d-i;for(;e>=n.startRow;)u.push({startRow:e,startColumn:c,endRow:t,endColumn:f}),e-=i,t-=i}else if(r===t.Direction.RIGHT){let e=c+i,t=f+i;for(;t<=n.endColumn;)u.push({startRow:s,startColumn:e,endRow:d,endColumn:t}),e+=i,t+=i}else if(r===t.Direction.LEFT){let e=c-i,t=f-i;for(;e>=n.startColumn;)u.push({startRow:s,startColumn:e,endRow:d,endColumn:t}),e-=i,t-=i}}}return u}_fillData(e,n,r){var i;let a=[],o=[],s=!0;r===J.NO_FORMAT&&(s=!1,r=J.SERIES);let{source:c,target:l,unitId:u,subUnitId:d}=e;if(!c||!l||n==null)return{undos:a,redos:o};let f=Cn(c),p=Cn(l),{cols:m,rows:_}=l,{cols:v,rows:y}=c,b=this._copyData,x;x=n===t.Direction.DOWN||n===t.Direction.UP?y.length:v.length;let S=[];if(n===t.Direction.DOWN||n===t.Direction.UP){let t=_.length,i=[];m.forEach((a,o)=>{let c=b[o],l=this._getApplyData(c,x,t,n,r,s,e);i.push(l)});for(let e=0;e<i[0].length;e++){let t=[];for(let n=0;n<i.length;n++)t.push({s:null,...i[n][e]});S.push(t)}}else{let t=m.length;_.forEach((i,a)=>{let o=b[a],c=this._getApplyData(o,x,t,n,r,s,e),l=[];for(let e=0;e<c.length;e++)l.push({s:null,...c[e]});S.push(l)})}let C=[],w=(i=this._univerInstanceService.getUnit(u))==null?void 0:i.getStyles();if(s?(C=this._getMergeApplyData(f,p,n,x,e),S.forEach(e=>{e.forEach(e=>{e&&w&&w&&(e.s=w.getStyleByCell(e))})})):S.forEach((e,t)=>{e.forEach((e,n)=>{e&&w&&(e.s=w.getStyleByCell(this._beforeApplyData[t][n])||null)})}),r===J.ONLY_FORMAT&&S.forEach((e,t)=>{e.forEach((e,n)=>{if(e){let r=this._beforeApplyData[t][n]||{};e.f=r.f,e.si=r.si,e.t=r.t,e.v=r.v}})}),s){var T;let e=[],n=(T=this._univerInstanceService.getUniverSheetInstance(u))==null||(T=T.getSheetBySheetId(d))==null?void 0:T.getMergeData();if(n&&n.forEach(n=>{t.Rectangle.intersects(n,p)&&e.push(n)}),e.length){let t={unitId:u,subUnitId:d,ranges:e},n=this._injector.invoke(F,t);o.push({id:I.id,params:t}),a.unshift({id:g.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:nu([l])},D=this._injector.invoke(L,E);o.push({id:R.id,params:E}),a.unshift({id:R.id,params:D});let O=new t.ObjectMatrix;_.forEach((e,t)=>{m.forEach((n,r)=>{S[t][r]&&O.setValue(e,n,S[t][r])})});let k=O.getMatrix(),A={subUnitId:d,unitId:u,cellValue:k},ee=this._injector.invoke(L,A);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,k)}),a.unshift({id:R.id,params:ee}),o.push({id:R.id,params:A}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:Wi(C)},t=this._injector.invoke(h,e);a.unshift({id:I.id,params:t}),o.push({id:g.id,params:e})}return{undos:a,redos:o}}_shouldDisableSeries(e){return e.every(e=>Object.keys(e).every(t=>{var n;return((n=e[t])==null?void 0:n.length)===0||[Y.OTHER,Y.FORMULA].includes(t)}))}_getPreferredApplyType(e){return e.every(e=>Object.keys(e).every(t=>{var n,r;return((n=e[t])==null?void 0:n.length)===0||((r=e[t])==null?void 0:r.length)===1&&e[t][0].data.length===1&&Y.NUMBER===t}))?J.COPY:J.SERIES}};iu=E([T(0,t.IUniverInstanceService),T(1,Vo),T(2,(0,t.Inject)(t.Injector))],iu);let au=`maxCellsPerSheet`,ou=class extends t.Disposable{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){let e=e=>{let t=this._definedNamesService.getDefinedNameMap(e);return t?JSON.stringify(t):``},n=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:`SHEET_DEFINED_NAME_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._definedNamesService.removeUnitDefinedName(e)},onLoad:(e,t)=>{this._definedNamesService.registerDefinedNames(e,t)}}))}};ou=E([T(0,i.IDefinedNamesService),T(1,t.IResourceManagerService)],ou);let su=[Hs.id],cu=[Se.id,we.id,je.id,P.id,De.id,ke.id],lu=class extends t.Disposable{constructor(e,n,r){var i,a;super(),this._univerInstanceService=e,this._commandService=n,this._configService=r,w(this,`_d`,new t.DisposableCollection),w(this,`_enabled`,!0);let o=(i=(a=this._configService.getConfig(`sheets.config`))==null?void 0:a.freezeSync)==null?!0:i;this.setEnabled(o)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{su.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(cu.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===Se.id?this._handleInsertRowMutation(r,t):n===we.id?this._handleInsertColMutation(r,t):n===je.id?this._handleRemoveRowMutation(r,t):n===P.id?this._handleRemoveColMutation(r,t):n===De.id?this._handleMoveRowsMutation(r,t):n===ke.id&&this._handleMoveColsMutation(r,t)}}))}_handleInsertRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=n.endRow-n.startRow+1,o={...a,startRow:Math.max(1,a.startRow+e),ySplit:Math.max(1,a.ySplit+e)};this._sequenceExecute(r,i,o,t)}}_handleInsertColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=n.endColumn-n.startColumn+1,o={...a,startColumn:Math.max(1,a.startColumn+e),xSplit:Math.max(1,a.xSplit+e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=Math.min(a.startRow,n.endRow+1)-n.startRow,o={...a,startRow:Math.max(1,a.startRow-e),ySplit:Math.max(1,a.ySplit-e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=Math.min(a.startColumn,n.endColumn+1)-n.startColumn,o={...a,startColumn:Math.max(1,a.startColumn-e),xSplit:Math.max(1,a.xSplit-e)};this._sequenceExecute(r,i,o,t)}}_handleMoveRowsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startRow<=0||n.startRow>=o.startRow&&r.startRow>=o.startRow||n.endRow<o.startRow&&r.endRow<o.startRow)return;let s=n.endRow-n.startRow+1,c=Math.max(Math.min(o.startRow,n.endRow+1)-n.startRow,0),l={...o};r.startRow>=o.startRow?(l.startRow=Math.max(1,o.startRow-c),l.ySplit=Math.max(1,o.ySplit-c)):(l.startRow=o.startRow+s-c,l.ySplit=o.ySplit+s-c),this._sequenceExecute(i,a,l,t)}_handleMoveColsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startColumn<=0||n.startColumn>=o.startColumn&&r.startColumn>=o.startColumn||n.endColumn<o.startColumn&&r.endColumn<o.startColumn)return;let s=n.endColumn-n.startColumn+1,c=Math.max(Math.min(o.startColumn,n.endColumn+1)-n.startColumn,0),l={...o};r.startColumn>=o.startColumn?(l.startColumn=Math.max(1,o.startColumn-c),l.xSplit=Math.max(1,o.xSplit-c)):(l.startColumn=o.startColumn+s-c,l.xSplit=o.xSplit+s-c),this._sequenceExecute(i,a,l,t)}_getFreeze(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return null;let i=r.getSheetBySheetId(n);return i?i.getFreeze():null}_sequenceExecute(e,n,r,i){(0,t.sequenceExecute)([{id:Hs.id,params:{...r,unitId:e,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};lu=E([T(0,(0,t.Inject)(t.IUniverInstanceService)),T(1,t.ICommandService),T(2,t.IConfigService)],lu);let uu=class extends t.Disposable{constructor(e,r,i,a,o,s,c,l,u){super(),this._commandService=e,this._univerInstanceService=r,this._permissionService=i,this._selectionManagerService=a,this._rangeProtectionRuleModel=o,this._worksheetProtectionRuleModel=s,this._localeService=c,this._lexerTreeBuilder=l,this._definedNamesService=u,w(this,`disposableCollection`,new t.DisposableCollection),w(this,`_triggerPermissionUIEvent$`,new n.Subject),w(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===vc.id){let t=p(this._univerInstanceService,e.params);if(!t)return;let{unitId:n,subUnitId:r}=t,i=this._worksheetProtectionRuleModel.getRule(n,r);i&&this._worksheetProtectionRuleModel.ruleRefresh(i.permissionId),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).length&&this._rangeProtectionRuleModel.ruleRefresh(r)}}))}blockExecuteWithoutPermission(e){throw this._triggerPermissionUIEvent$.next(e),new t.CustomCommandExecutionError(`have no permission`)}_getPermissionCheck(e){let{id:n}=e,r=!0,i=``,a;switch(n){case tr.id:a=e.params,(0,t.isICellData)(a.value)&&a.value.f?(r=this._permissionCheckWithFormula(a),i=this._localeService.t(`permission.dialog.formulaErr`)):(r=this._permissionCheckBySetRangeValue({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},a),i=this._localeService.t(`permission.dialog.editErr`));break;case q.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[ul,$],rangeTypes:[Z]},a.range?[a.range]:void 0,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setStyleErr`);break;case Fn.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,ul,$],rangeTypes:[Z]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.editErr`);break;case Jo.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.editErr`);break;case In.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[ul,$],rangeTypes:[Z]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setStyleErr`);break;case lc.id:case uc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[fl]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case kl.id:case Al.id:case jl.id:r=this.permissionCheckWithoutRange({worksheetTypes:[pl]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Br.id:case Hr.id:a=e.params,r=this._permissionCheckByMoveRowsColsCommand(a),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case Xn.id:a=e.params,r=this._permissionCheckByMoveRangeCommand(a),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case gr.id:case Cr.id:a=e.params,r=this._permissionCheckByInsertRowColCommand(a),i=this._localeService.t(`permission.dialog.insertRowColErr`);break;case Ar.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q,Ic],worksheetTypes:[$,el],rangeTypes:[Z]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case Nr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q,Fc],worksheetTypes:[$,Qc],rangeTypes:[Z]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case Sc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Q,Wc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case yc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Q,qc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Ml.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Q,Bc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Ps.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,fl],rangeTypes:[Z]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Zs.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,pl],rangeTypes:[Z]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Fs.id:r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,fl],rangeTypes:[Z]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Qs.id:r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,pl],rangeTypes:[Z]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case pr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`right`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case dr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`down`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case sr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`left`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case lr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`up`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Ho.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},[a.targetRange],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.autoFillErr`);break;default:break}r||this.blockExecuteWithoutPermission(i)}permissionCheckWithRanges(e,n,r,i){let a=p(this._univerInstanceService,{unitId:r,subUnitId:i});if(!a)return!1;let{unitId:o,subUnitId:s}=a,{workbookTypes:c,worksheetTypes:l,rangeTypes:u}=e;if(c&&c.some(e=>{var t;let n=new e(o);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1})||l&&l.some(e=>{var t;let n=new e(o,s);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1}))return!1;if(u&&u.length>0){var d;let e=n==null?(d=this._selectionManagerService.getCurrentSelections())==null?void 0:d.map(e=>e.range):n;if(!e)return!1;let r=this._rangeProtectionRuleModel.getSubunitRuleList(o,s);if(r.length===0)return!0;for(let n=0;n<r.length;n++){let i=r[n];if(e.some(e=>i.ranges.some(n=>t.Rectangle.intersects(n,e)))){let e=i.permissionId;if(u.some(t=>{var n;let r=new t(o,s,e);return((n=this._permissionService.getPermissionPoint(r.id))==null?void 0:n.value)===!1}))return!1}}}return!0}permissionCheckWithoutRange(e,t,n){let r=p(this._univerInstanceService,{unitId:t,subUnitId:n});if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,{workbookTypes:s,worksheetTypes:c,rangeTypes:l}=e;if(s&&s.some(e=>{var t;let n=new e(a);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1})||c&&c.some(e=>{var t;let n=new e(a,o);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1}))return!1;if(l&&l.length>0){var u,d,f;let e=(u=this._selectionManagerService.getCurrentLastSelection())==null?void 0:u.primary;if(!e)return!1;let{actualRow:t,actualColumn:n}=e,r=i.getCell(t,n),s=r==null||(d=r.selectionProtection)==null?void 0:d[0];if(!(s!=null&&s.ruleId))return!0;let c=(f=this._rangeProtectionRuleModel.getRule(a,o,s.ruleId))==null?void 0:f.permissionId;if(!c)return!0;if(l.some(e=>{var t;let n=new e(a,o,c);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1}))return!1}return!0}_permissionCheckWithFormula(e){let n=p(this._univerInstanceService,e);if(!n)return!1;let{workbook:r,unitId:o,subUnitId:s}=n,c=e.value.f;if(c){let e=c.substring(1),n=this._definedNamesService.getValueByName(o,e);if(n){let e=n.formulaOrRefString;e.startsWith(i.operatorToken.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let n=t[e],{sheetName:o,range:s}=(0,i.deserializeRangeWithSheet)(n);if(o){let e=r.getSheetBySheetName(o);if(!e)return!0;let{startRow:t,endRow:n,startColumn:i,endColumn:c}=s;for(let r=t;r<=n;r++)for(let t=i;t<=c;t++){var l;let n=e.getCell(r,t),i=n==null||(l=n.selectionProtection)==null?void 0:l[0];if((i==null?void 0:i[a.UnitAction.View])===!1)return!1}}}return!0}else{let e=this._lexerTreeBuilder.sequenceNodesBuilder(c);if(!e)return!0;for(let n=0;n<e.length;n++){let s=e[n];if(typeof s==`string`||s.nodeType!==i.sequenceNodeType.REFERENCE)continue;let{token:c}=s,{unitId:l,sheetName:d,range:f}=(0,i.deserializeRangeWithSheetWithCache)(c),p=r;if(l&&l!==o){let e=this._univerInstanceService.getUnit(l,t.UniverInstanceType.UNIVER_SHEET);if(!e)return!0;p=e}let m=d?p.getSheetBySheetName(d):p.getActiveSheet();if(!m)return!0;if(d){let e=this._permissionService.getPermissionPoint(new hl(p.getUnitId(),m.getSheetId()).id);if(!e||e.value===!1)return!1}let{startRow:h,endRow:g,startColumn:_,endColumn:v}=f;for(let e=h;e<=g;e++)for(let t=_;t<=v;t++){var u;let n=m.getCell(e,t),r=n==null||(u=n.selectionProtection)==null?void 0:u[0];if((r==null?void 0:r[a.UnitAction.View])===!1)return!1}}return!0}}let{range:d}=e;if(d){let e=this._rangeProtectionRuleModel.getSubunitRuleList(o,s);if(e.length===0)return!0;let n=e.filter(e=>e.ranges.some(e=>t.Rectangle.intersects(e,d))).map(e=>new Z(o,s,e.permissionId).id);return this._permissionService.composePermission(n).every(e=>e.value)}return!0}_permissionCheckBySetRangeValue(e,n){let{unitId:r,subUnitId:i,value:a,range:o}=n,s=[];return s=(t.Tools.isArray(a)||(0,t.isICellData)(a))&&o?[o]:[new t.ObjectMatrix(a).getStartEndScope()],this.permissionCheckWithRanges(e,s,r,i)}_permissionCheckByMoveRowsColsCommand(e){let t=p(this._univerInstanceService,e);if(!t)return!1;let{worksheet:n,unitId:r,subUnitId:i}=t,{fromRange:a,toRange:o}=e;if(!this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},[a],r,i))return!1;let s={...o};return s.endRow===n.getRowCount()-1?s.endColumn=s.startColumn:s.endRow=s.startRow,this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},[s],r,i)}_permissionCheckByMoveRangeCommand(e){let{fromUnitId:t,fromSubUnitId:n,fromRange:r,toUnitId:i,toSubUnitId:a,toRange:o}=e,s=p(this._univerInstanceService,{unitId:t,subUnitId:n});if(!s)return!1;let c=p(this._univerInstanceService,{unitId:i,subUnitId:a});return!c||!this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},[r],s.unitId,s.subUnitId)?!1:this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},[o],c.unitId,c.subUnitId)}_permissionCheckByInsertRowColCommand(e){let n=p(this._univerInstanceService,e);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,{range:o,direction:s}=e,c={...o},l={workbookTypes:[Q],worksheetTypes:[$],rangeTypes:[Z]};if(s===t.Direction.UP||s===t.Direction.DOWN){let e=s===t.Direction.UP?o.startRow:o.startRow-1;if(e<0||e>r.getRowCount()-1)return!1;c.startRow=e,c.endRow=e,l.workbookTypes.push(Hc),l.worksheetTypes.push(al)}else if(s===t.Direction.LEFT||s===t.Direction.RIGHT){let e=s===t.Direction.LEFT?o.startColumn:o.startColumn-1;if(e<0||e>r.getColumnCount()-1)return!1;c.startColumn=e,c.endColumn=e,l.workbookTypes.push(Vc),l.worksheetTypes.push(rl)}return this.permissionCheckWithRanges(l,[c],i,a)}_permissionCheckByWorksheetCommand(e,t){let n=p(this._univerInstanceService,t);if(!n)return this._worksheetProtectionRuleModel.resetOrder(),!1;let{unitId:r}=n;return e.some(e=>{var t;let n=new e(r);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1})?(this._worksheetProtectionRuleModel.resetOrder(),!1):!0}_permissionCheckWithInsertOrDeleteMoveRange(e,n){var r,i;let a=p(this._univerInstanceService);if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=(r=n==null?void 0:n.range)==null?(i=this._selectionManagerService.getCurrentLastSelection())==null?void 0:i.range:r;if(!l||!this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$],rangeTypes:[Z]},[l],s,c))return!1;let u=this._rangeProtectionRuleModel.getSubunitRuleList(s,c);if(u.length===0)return!0;let d={...l};return e===`right`||e===`left`?d.endColumn=o.getColumnCount()-1:(e===`down`||e===`up`)&&(d.endRow=o.getRowCount()-1),!u.some(e=>e.ranges.some(e=>t.Rectangle.intersects(e,d)))}};uu=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService),T(2,t.IPermissionService),T(3,(0,t.Inject)(H)),T(4,(0,t.Inject)(B)),T(5,(0,t.Inject)(ua)),T(6,(0,t.Inject)(t.LocaleService)),T(7,(0,t.Inject)(i.LexerTreeBuilder)),T(8,i.IDefinedNamesService)],uu);let du=class extends t.Disposable{constructor(e,t,r,i,a){super(),this._permissionService=e,this._univerInstanceService=t,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._worksheetProtectionPointModel=a,w(this,`_unitPermissionInitStateChange`,new n.BehaviorSubject(!1)),w(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();gl().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Dc()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...vl(),...yl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),gl().forEach(e=>{let n=new e(t);this._permissionService.deletePermissionPoint(n.id)}),this._rangeProtectionRuleModel.deleteUnitModel(t),this._worksheetProtectionPointModel.deleteUnitModel(t),this._worksheetProtectionRuleModel.deleteUnitModel(t)}))}changeUnitInitState(e){this._unitPermissionInitStateChange.next(e)}};du=E([T(0,(0,t.Inject)(t.IPermissionService)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,(0,t.Inject)(B)),T(3,(0,t.Inject)(ua)),T(4,(0,t.Inject)(Cc))],du);let fu=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._univerInstanceService=e,this._permissionService=t,this._authzIoService=n,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._userManagerService=a,this._worksheetProtectionPointRuleModel=o,this._workbookPermissionService=s,this._undoRedoService=c,this._commandService=l}initPermission(){this._initRangePermissionFromSnapshot(),this._initRangePermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initWorksheetPermissionChange(),this._initWorksheetPermissionPointsChange(),this._initWorkbookPermissionFromSnapshot(),this._initUserChange(),this._refreshPermissionByCollaCreate()}refreshRangeProtectPermission(){this._initRangePermissionFromSnapshot()}async _initRangePermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(e=>{i.set(e.permissionId,e),t.push({objectID:e.permissionId,unitID:n,objectType:a.UnitObject.SelectRange,actions:Oc})})}),!t.length){this._rangeProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){if(!this._rangeProtectionRuleModel.getRule(n,t.subUnitId,t.id))return;Dc().forEach(r=>{let i=new r(n,t.subUnitId,e.objectID),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._rangeProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(t=>e(t))),this._rangeProtectionRuleModel.changeRuleInitState(!0)}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?this._rangeProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId),[...yl()].forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,n.value)})):this._authzIoService.allowed({objectID:e.rule.permissionId,unitID:e.unitId,objectType:a.UnitObject.SelectRange,actions:Oc}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(Dc().forEach(n=>{if(e.type===`set`){let{rule:t,oldRule:n}=e;if(t.permissionId===(n==null?void 0:n.permissionId))return}let r=e.rule,i=new n(r.unitId,r.subUnitId,r.permissionId),a=i.subType,o=t.find(e=>e.action===a);o&&this._permissionService.updatePermissionPoint(i.id,o.allowed)}),this._rangeProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}async initWorkbookPermissionChange(e){var n;let r=e||((n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId());if(r)return this._authzIoService.allowed({objectID:r,objectType:a.UnitObject.Workbook,unitID:r,actions:_l}).then(e=>{gl().forEach(t=>{let n=new t(r),i=n.subType,a=e.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(n.id,a.allowed)})})}async _initWorkbookPermissionFromSnapshot(){await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(e=>this.initWorkbookPermissionChange(e.getUnitId()))),this._workbookPermissionService.changeUnitInitState(!0)}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?([...vl(),...yl()].forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId)):this._authzIoService.allowed({objectID:e.rule.permissionId,unitID:e.unitId,objectType:a.UnitObject.Worksheet,actions:Oc}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(vl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)}),this._worksheetProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}_initWorksheetPermissionPointsChange(){this.disposeWithMe(this._worksheetProtectionPointRuleModel.pointChange$.subscribe(e=>{this._authzIoService.allowed({objectID:e.permissionId,unitID:e.unitId,objectType:a.UnitObject.Worksheet,actions:bl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||yl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}))}async _initWorksheetPermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId(),o=this._worksheetProtectionRuleModel.getRule(n,r);o&&(i.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:n,objectType:a.UnitObject.Worksheet,actions:Oc}));let s=this._worksheetProtectionPointRuleModel.getRule(n,r);s&&(i.set(s.permissionId,s),t.push({objectID:s.permissionId,unitID:n,objectType:a.UnitObject.Worksheet,actions:bl}))}),!t.length){this._worksheetProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){let r=this._worksheetProtectionRuleModel.getRule(n,t.subUnitId)||this._worksheetProtectionPointRuleModel.getRule(n,t.subUnitId);if(!r||r.permissionId!==e.objectID)return;[...vl(),...yl()].forEach(r=>{let i=new r(n,t.subUnitId),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(t=>e(t))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe((0,n.skip)(1)).subscribe(()=>{let e=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{let n=t.getUnitId();gl().forEach(t=>{let r=new t(n);e.has(r.id)&&(r=e.get(r.id)),this._permissionService.addPermissionPoint(r)}),t.getSheets().forEach(t=>{let r=t.getSheetId();[...vl(),...yl()].forEach(t=>{let i=new t(n,r);e.has(i.id)&&(i=e.get(i.id)),this._permissionService.addPermissionPoint(i)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(t=>{Dc().forEach(i=>{let a=new i(n,r,t.permissionId);e.has(a.id)&&(a=e.get(a.id)),this._permissionService.addPermissionPoint(a)})})}),this._initWorkbookPermissionFromSnapshot(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}refreshPermission(e,t){let n=this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t),r=!1;if(n){let[i,o]=n;this._authzIoService.allowed({objectID:t,unitID:e,objectType:a.UnitObject.Worksheet,actions:Oc}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let i=``;vl().forEach(t=>{let a=new t(e,o),s=a.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(a.id))==null?void 0:l.value)!==c.allowed&&(r=!0),this._permissionService.updatePermissionPoint(a.id,c.allowed),i+=`${c.action}_${c.allowed}`}}),this._worksheetProtectionRuleModel.ruleRefresh(`${t}_${i}`),r&&this._undoRedoService.clearUndoRedo(e)})}let i=this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t);if(i){let[n,o]=i;this._authzIoService.allowed({objectID:t,unitID:e,objectType:a.UnitObject.Worksheet,actions:bl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(yl().forEach(t=>{let i=new t(e,o),a=i.subType,s=n.find(e=>e.action===a);if(s){var c;((c=this._permissionService.getPermissionPoint(i.id))==null?void 0:c.value)!==s.allowed&&(r=!0),this._permissionService.updatePermissionPoint(i.id,s.allowed)}}),r&&this._undoRedoService.clearUndoRedo(e))})}let o=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(o){let[n,i]=o;this._authzIoService.allowed({objectID:t,unitID:e,objectType:a.UnitObject.SelectRange,actions:Oc}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;Dc().forEach(o=>{let s=new o(e,i,t),c=s.subType,l=n.find(e=>e.action===c);if(l){var u;((u=this._permissionService.getPermissionPoint(s.id))==null?void 0:u.value)!==l.allowed&&(r=!0),this._permissionService.updatePermissionPoint(s.id,l.allowed),a+=`${l.action}_${l.allowed}`}}),this._rangeProtectionRuleModel.ruleRefresh(`${t}_${a}`),r&&this._undoRedoService.clearUndoRedo(e)})}}_refreshPermissionByCollaCreate(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(t!=null&&t.fromCollab&&(e.id===jn.id||e.id===da.id||e.id===Sl.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};fu=E([T(0,t.IUniverInstanceService),T(1,t.IPermissionService),T(2,t.IAuthzIoService),T(3,(0,t.Inject)(B)),T(4,(0,t.Inject)(ua)),T(5,(0,t.Inject)(t.UserManagerService)),T(6,(0,t.Inject)(Cc)),T(7,(0,t.Inject)(du)),T(8,(0,t.Inject)(t.IUndoRedoService)),T(9,(0,t.Inject)(t.ICommandService))],fu);let pu=class extends t.Disposable{constructor(e,t,r){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=r,w(this,`_zebraCacheUpdateSubject`,new n.Subject),this._init()}_init(){this._initializeCommandListener(),this._initTriggerCacheUpdateListener()}updateZebraCrossingCache(e,t){this._zebraCacheUpdateSubject.next({unitId:e,subUnitId:t})}_initializeCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let{id:t}=e,n,r;switch(t){case Se.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case bt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case St.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case je.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Pt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;default:break}n&&r&&(this._sheetRangeThemeModel.refreshSheetRowVisibleFuncSet(n,r),this._sheetRangeThemeModel.refreshZebraCrossingCacheBySheet(n,r))}))}_initTriggerCacheUpdateListener(){this.disposeWithMe(this._zebraCacheUpdateSubject.subscribe(({unitId:e,subUnitId:t})=>{this._sheetRangeThemeModel.refreshSheetRowVisibleFuncSet(e,t),this._sheetRangeThemeModel.refreshZebraCrossingCacheBySheet(e,t)}))}};pu=E([T(0,(0,t.Inject)(t.ICommandService)),T(1,(0,t.Inject)(N)),T(2,(0,t.Inject)(t.IUniverInstanceService))],pu);let mu=class{constructor(e,n){this._selectionProtectionRuleModel=e,this._permissionService=n,w(this,`_cache`,new t.LRUMap(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.type===a.UnitObject.SelectRange),(0,o.filter)(e=>Dc().some(t=>e instanceof t)),(0,o.map)(e=>e)).subscribe(e=>{let n=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(let r of n)r.permissionId===e.permissionId&&r.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{if(e.rule.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})}),e.type===`set`){var n;(n=e.oldRule)==null||n.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),a=[];if(!i||!i.length)return a;let o=this._createKey(e,t,n,r),s=this._cache.get(o);if(s)return s;let c=[];for(let a of i)if(a.ranges.some(e=>e.startRow<=n&&e.endRow>=n&&e.startColumn<=r&&e.endColumn>=r)){let n=Dc().reduce((n,r)=>{var i;let o=new r(e,t,a.permissionId),s=this._permissionService.getPermissionPoint(o.id);return n[o.subType]=(i=s==null?void 0:s.value)==null?o.value:i,n},{});c.push({...n,ruleId:a.id,ranges:a.ranges})}return this._cache.set(o,c),c}clear(){this._cache.clear()}};mu=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IPermissionService))],mu);let hu=class extends t.Disposable{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,w(this,`_cellRuleCache`,new Map),w(this,`_permissionIdCache`,new Map),w(this,`_cellInfoCache`,new Map),w(this,`_rowInfoCache`,new Map),w(this,`_colInfoCache`,new Map),this._initUpdateCellRuleCache(),this._initUpdateCellInfoCache(),this._initUpdateRowColInfoCache(),this._initCache()}_initCache(){this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();this.reBuildCache(n,r)})})}_initUpdateCellInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===a.UnitObject.SelectRange),(0,n.map)(e=>e)).subscribe(e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureCellInfoMap(n,t);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++)o.delete(`${e}-${t}`)})}),this._ruleModel.ruleChange$.subscribe(e=>{let{unitId:n,subUnitId:r}=e,i=this._ensureCellInfoMap(n,r);if(e.rule.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{i.delete(`${e}-${t}`)})}),e.type===`set`){var a;(a=e.oldRule)==null||a.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._cellInfoCache.delete(`${e}-${t}`)})})}})}_initUpdateCellRuleCache(){this._ruleModel.ruleChange$.subscribe(e=>{let{type:t}=e;t===`add`?this._addCellRuleCache(e):t===`delete`?this._deleteCellRuleCache(e):(this._deleteCellRuleCache({...e,rule:e.oldRule}),this._addCellRuleCache(e))})}_ensureRuleMap(e,t){let n=this._cellRuleCache.get(e);n||(n=new Map,this._cellRuleCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureCellInfoMap(e,t){let n=this._cellInfoCache.get(e);n||(n=new Map,this._cellInfoCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureRowColInfoMap(e,t,n){let r=n===`row`?this._rowInfoCache.get(e):this._colInfoCache.get(e);r||(r=new Map,n===`row`?this._rowInfoCache.set(e,r):this._colInfoCache.set(e,r));let i=r.get(t);return i||(i=new Map,r.set(t,i)),i}_addCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++)i.set(`${e}-${t}`,r.id)}),this._permissionIdCache.set(r.permissionId,r.id)}_deleteCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t),a=this._ensureCellInfoMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++)i.delete(`${e}-${t}`),a.delete(`${e}-${t}`)}),this._permissionIdCache.delete(r.permissionId)}_getSelectionActions(e,t,n){var r,i,o,s,c,l,u,d,f,p,m,h;let g=(r=(i=this._permissionService.getPermissionPoint((o=new Z(e,t,n.permissionId))==null?void 0:o.id))==null?void 0:i.value)==null?!1:r,_=(s=(c=this._permissionService.getPermissionPoint((l=new Ec(e,t,n.permissionId))==null?void 0:l.id))==null?void 0:c.value)==null?!1:s,v=(u=(d=this._permissionService.getPermissionPoint((f=new Tc(e,t,n.permissionId))==null?void 0:f.id))==null?void 0:d.value)==null?!1:u,y=(p=(m=this._permissionService.getPermissionPoint((h=new wc(e,t,n.permissionId))==null?void 0:h.id))==null?void 0:m.value)==null?!1:p;return{[a.UnitAction.Edit]:g,[a.UnitAction.View]:_,[a.UnitAction.ManageCollaborator]:v,[a.UnitAction.Delete]:y}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===a.UnitObject.SelectRange),(0,n.map)(e=>e)).subscribe({next:e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureRowColInfoMap(n,t,`row`),s=this._ensureRowColInfoMap(n,t,`col`),c=this._getSelectionActions(n,t,a);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:a}=e;for(let e=t;e<=n;e++){let t=o.get(`${e}`);t?t.set(i,c):o.set(`${e}`,new Map([[i,c]]));for(let e=r;e<=a;e++){let t=s.get(`${e}`);t?t.set(i,c):s.set(`${e}`,new Map([[i,c]]))}}})}}),this._ruleModel.ruleChange$.subscribe(e=>{if(e.type===`delete`){let{unitId:t,subUnitId:n,rule:r}=e,i=this._ensureRowColInfoMap(t,n,`row`),a=this._ensureRowColInfoMap(t,n,`col`);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:o,endColumn:s}=e;for(let e=t;e<=n;e++){let t=i.get(`${e}`);t==null||t.delete(r.id);for(let e=o;e<=s;e++){let t=a.get(`${e}`);t==null||t.delete(r.id)}}})}})}getCellInfo(e,t,n,r){var i;let a=this._ensureCellInfoMap(e,t),o=a.get(`${n}-${r}`);if(o)return o;let s=(i=this._cellRuleCache.get(e))==null||(i=i.get(t))==null?void 0:i.get(`${n}-${r}`);if(!s)return;let c=this._ruleModel.getRule(e,t,s);if(c){let i={...this._getSelectionActions(e,t,c),ruleId:s,ranges:c.ranges};return a.set(`${n}-${r}`,i),i}}deleteUnit(e){this._cellRuleCache.delete(e),this._cellInfoCache.delete(e),this._rowInfoCache.delete(e),this._colInfoCache.delete(e);let t=this._univerInstanceService.getUnit(e);t==null||t.getSheets().forEach(t=>{let n=t.getSheetId();this._ruleModel.getSubunitRuleList(e,n).forEach(e=>{this._permissionIdCache.delete(e.permissionId)})})}};hu=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IPermissionService)),T(2,(0,t.Inject)(t.IUniverInstanceService))],hu);var gu=`@univerjs/sheets`,_u=`0.21.0`;let vu=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,w(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Ir.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Ir.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===hc.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===ts.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===hc.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===W.id)return this._adjustActiveSheetOnSelection(e)}))}_adjustActiveSheetOnHideSheet(e){var t;let{unitId:n,subUnitId:r}=e.params,i=this._univerInstanceService.getUniverSheetInstance(n);if(!i||((t=i.getActiveSheet())==null?void 0:t.getSheetId())!==r)return;let a=yu(i,i.getActiveSheetIndex());this._switchToNextSheet(n,a)}_beforeAdjustActiveSheetOnRemoveSheet(e){let{unitId:t,subUnitId:n}=e.params,r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;let i=r.getSheetBySheetId(n);i&&(this._previousSheetIndex=r.getSheetIndex(i))}_adjustActiveSheetOnRemoveSheet(e){if(this._previousSheetIndex===-1)return;let{unitId:t}=e.params,n=this._univerInstanceService.getUniverSheetInstance(t);if(n&&n.getActiveSheet().getSheetId()===e.params.subUnitId){let e=this._previousSheetIndex,r=yu(n,e>=1?e-1:0);this._switchToNextSheet(t,r)}}_adjustActiveSheetOnInsertSheet(e){let{unitId:t,sheet:n}=e.params;this._switchToNextSheet(t,n.id)}_adjustActiveSheetOnShowSheet(e){let{unitId:t,subUnitId:n}=e.params;this._switchToNextSheet(t,n)}_adjustActiveSheetOnSelection(e){var t;let{unitId:n,subUnitId:r}=e.params;r!==((t=this._univerInstanceService.getUnit(n))==null?void 0:t.getActiveSheet().getSheetId())&&this._switchToNextSheet(n,r)}_switchToNextSheet(e,t){this._commandService.executeCommand(Rt.id,{unitId:e,subUnitId:t})}};vu=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService)],vu);function yu(e,t){let n=e.getSheetSize();for(let n=t;n>-1;n--){let t=e.getSheetByIndex(n);if(!t.getConfig().hidden)return t.getSheetId()}for(let r=t;r<n;r++){let t=e.getSheetByIndex(r);if(!t.getConfig().hidden)return t.getSheetId()}throw Error(`[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.`)}let bu=class extends t.Disposable{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[R,we,Se,ts,Te,De,ke,P,je,Ir,I,Ll,g,oc,vc,Il,Pe,Gl,St,bt,Yl,Xl,$o,At,Et,Kl].forEach(e=>{var t;this._commandService.registerCommand(e),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)}),(r=this._configService.getConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`))!=null&&r||[ia,aa,oa,sa,ha,Fn,Jo,In,os,sr,lr,lc,kl,Tr,wr,Er,Dr,Cr,Sr,dr,pr,vr,_r,br,yr,gr,hr,fs,Hr,Xn,Br,Ar,Pr,Nr,jr,vs,Yr,Zi,Da,Ta,Ea,Ms,js,Os,ks,As,Is,Be,He,uc,Ns,Re,Us,Hs,Ws,ka,Ys,tr,Al,$s,Xs,vt,Fs,Qs,Ps,Zs,q,ac,ic,wa,ja,Aa,Oa,sc,cc,Rt,gc,hc,yc,Sc,xc,It,Pt,jl,Ft,wt,Ol,fc,Jn,W,Zl,ds,_s,Bs,Ml,Hl,Lt,Gs,Ue,Bl,Cl,da,qs,fa,Sl,Mn,Js,cs,pa,ls,wl,jn,kn,X,Vl,Dt,pc,Nl,ye,_e,hs,ms,Ul,gs,ma,us,Wl,Jl,ql,Ho,Go,Ko,qo,ps].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(au,3e6)}};bu=E([T(0,t.ICommandService),T(1,t.IConfigService),T(2,(0,t.Optional)(s.DataSyncPrimaryController))],bu);let xu=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==i.SetFormulaCalculationResultMutation.id)return;let{unitData:n}=e.params,r=Object.keys(n),a=[];for(let e=0;e<r.length;e++){let t=r[e],i=n[t];if(i==null)continue;let o=Object.keys(i);for(let e=0;e<o.length;e++){let n=o[e],r=i[n];if(r==null)continue;let s={subUnitId:n,unitId:t,cellValue:this._getMergedCellData(t,n,r)};a.push({id:R.id,params:s})}}return(0,t.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,n,r){let a=this._univerInstanceService.getUniverSheetInstance(e),o=a==null?void 0:a.getStyles(),s=a==null?void 0:a.getSheetBySheetId(n),c=s==null?void 0:s.getCellMatrix(),l=new t.ObjectMatrix(r);return l.forValue((e,t,n)=>{let r=(0,i.handleNumfmtInCell)(c==null?void 0:c.getValue(e,t),n,o);l.setValue(e,t,r)}),l.getMatrix()}};xu=E([T(0,(0,t.Inject)(t.IUniverInstanceService)),T(1,t.ICommandService)],xu);let Su=class extends t.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{priority:11,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,n,r)=>{var a;if(!e)return r(e);let o=n.workbook.getStyles().getStyleByCell(e);return(0,t.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern)&&(e==null?void 0:e.t)===t.CellValueType.NUMBER&&e.v!==void 0&&e.v!==null&&(0,t.isRealNum)(e.v)?((!e||e===n.rawData)&&(e={...n.rawData}),e.v=(0,i.stripErrorMargin)(Number(e.v)),r(e)):r(e)}}))}};Su=E([T(0,(0,t.Inject)(A))],Su);let Cu=class extends t.Disposable{constructor(e,t,n,r){super(),this._permissionService=e,this._worksheetProtectionRuleModel=t,this._sheetInterceptorService=n,this._rangeProtectionCache=r,this._initViewModelByRangeInterceptor(),this._initViewModelBySheetInterceptor()}_initViewModelByRangeInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i,row:o,col:s}=t,c=this._rangeProtectionCache.getCellInfo(r,i,o,s);if(c){let r=c[a.UnitAction.View]===!1,i=!e||e===t.rawData?{...t.rawData}:e;return i.selectionProtection=[c],r?(delete i.s,delete i.v,delete i.p,i):n(i)}return n(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,o=this._worksheetProtectionRuleModel.getRule(r,i);if(o!=null&&o.permissionId){var s,c,l,u,d;let o=[{[a.UnitAction.View]:(s=(c=this._permissionService.getPermissionPoint(new hl(r,i).id))==null?void 0:c.value)==null?!1:s,[a.UnitAction.Edit]:(l=(u=this._permissionService.getPermissionPoint(new $(r,i).id))==null?void 0:u.value)==null?!1:l}],f=!((d=o[0])!=null&&d[a.UnitAction.View]),p=!e||e===t.rawData?{...e}:e;return p.hasWorksheetRule=!0,p.selectionProtection=o,f?(delete p.s,delete p.v,delete p.p,p):n(p)}return n(e)}}))}};Cu=E([T(0,t.IPermissionService),T(1,(0,t.Inject)(ua)),T(2,(0,t.Inject)(A)),T(3,(0,t.Inject)(hu))],Cu);let wu=(0,t.createIdentifier)(`univer.exclusive-range-service`);var Tu=class extends t.Disposable{constructor(...e){super(...e),w(this,`_exclusiveRanges`,new Map),w(this,`_exclusiveRangesChange$`,new n.Subject),w(this,`exclusiveRangesChange$`,this._exclusiveRangesChange$.asObservable())}_ensureUnitMap(e){return this._exclusiveRanges.has(e)||this._exclusiveRanges.set(e,new Map),this._exclusiveRanges.get(e)}_ensureSubunitMap(e,t){let n=this._ensureUnitMap(e);return n.has(t)||n.set(t,new Map),n.get(t)}_ensureFeature(e,t,n){let r=this._ensureSubunitMap(e,t);return r.has(n)||r.set(n,[]),r.get(n)}addExclusiveRange(e,t,n,r){let i=this._ensureFeature(e,t,n);i.push(...r),this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:i.map(e=>e.range)})}getExclusiveRanges(e,t,n){var r;return(r=this._exclusiveRanges.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}clearExclusiveRanges(e,t,n){let r=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(r==null?void 0:r.map(e=>e.range))||[]}),this._ensureFeature(e,t,n),this._exclusiveRanges.get(e).get(t).set(n,[])}clearExclusiveRangesByGroupId(e,t,n,r){let i=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(i==null?void 0:i.map(e=>e.range))||[]});let a=this.getExclusiveRanges(e,t,n);if(a){let i=a.filter(e=>e.groupId!==r);this._exclusiveRanges.get(e).get(t).set(n,i)}}getInterestGroupId(e){let n=[];return e.forEach(e=>{var r;let i=e.range,{unitId:a,sheetId:o}=i;if(!a||!o)return;let s=(r=this._exclusiveRanges.get(a))==null?void 0:r.get(o);if(s)for(let e of s.keys()){let r=s.get(e);if(r){for(let a of r)if(t.Rectangle.intersects(i,a.range)){n.push(e);break}}}}),n}};let Eu=class extends t.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;let o=i.getStyles(),s=a.getCellRaw(n,r);if(s!=null&&s.s){let e=o.get(s.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles();r.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=a.getCellRaw(e,t);if(!n)return;let r=n==null?void 0:n.s,i={...r&&o.get(r)||{}};delete i.n,n.s=o.setValue(i)})})}setValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles(),s=a.getCellMatrix();r.forEach(e=>{e.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=a.getCellRaw(t,n);if(r){let t={...o.getStyleByCell(r)||{},n:{pattern:e.pattern}};r.s=o.setValue(t)}else{let r={n:{pattern:e.pattern}},i=o.setValue(r);i&&s.setValue(t,n,{s:i})}})})})}};Eu=E([T(0,t.IResourceManagerService),T(1,t.IUniverInstanceService),T(2,t.ILogService)],Eu);let Du=[we.id,Se.id,P.id,je.id],Ou=[De.id,ke.id],ku=class extends t.Disposable{constructor(e,n,r,i,a,o,s,c){super(),this._selectionProtectionRuleModel=e,this._univerInstanceService=n,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._rangeProtectionCache=o,this._sheetInterceptorService=s,this._rangeProtectionRuleModel=c,w(this,`disposableCollection`,new t.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=t=>this.refRangeHandle(t,e,n);this._selectionProtectionRuleModel.getSubunitRuleList(e,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,i,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===cc.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===X.id||t.id===jn.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(n){let t=n.getActiveSheet();if(!t)return;e(n.getUnitId(),t.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case Br.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Hr.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case hr.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case Sr.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Pr.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case jr.id:return this._getRefRangeMutationsByDeleteRows(e.params,t,n);default:break}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(e,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>t.Rectangle.intersects(n,e.range))),a=e.range;if(i.length){let e=[],o=[];return i.forEach(i=>{let s=t.Tools.deepClone(i);s.ranges=s.ranges.reduce((e,n)=>{if(t.Rectangle.intersects(n,a)){let r=t.Tools.deepClone(n),{startColumn:i,endColumn:o}=a;if(i<=r.startColumn&&o>=r.endColumn)return e;i>=r.startColumn&&o<=r.endColumn?r.endColumn-=o-i+1:i<r.startColumn?(r.startColumn=i,r.endColumn-=o-i+1):o>r.endColumn&&(r.endColumn=i-1),this._checkIsRightRange(r)&&e.push(r)}return e},[]),s.ranges.length?(e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:X.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})):(e.push({id:kn.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:jn.id,params:{unitId:n,subUnitId:r,name:``,rules:[i]}}))}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(e,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>t.Rectangle.intersects(n,e.range))),a=e.range;if(i.length){let e=[],o=[];return i.forEach(i=>{let s=t.Tools.deepClone(i);s.ranges=s.ranges.reduce((e,n)=>{if(t.Rectangle.intersects(n,a)){let r=t.Tools.deepClone(n),{startRow:i,endRow:o}=a;if(i<=r.startRow&&o>=r.endRow)return e;i>=r.startRow&&o<=r.endRow?r.endRow-=o-i+1:i<r.startRow?(r.startRow=i,r.endRow-=o-i+1):o>r.endRow&&(r.endRow=i-1),this._checkIsRightRange(r)&&e.push(r)}return e},[]),e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:X.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(e,n,r){let i=e.range.startColumn,a=e.range.endColumn-e.range.startColumn+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>i>e.startColumn&&i<=e.endColumn));if(o.length){let e=[],s=[];return o.forEach(o=>{let c=t.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startColumn&&i<=e.endColumn&&(e.endColumn+=a,l=!0)}),l&&(e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:X.id,params:{unitId:n,subUnitId:r,rule:o,ruleId:o.id}}))}),{redos:e,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(e,n,r){let i=e.range.startRow,a=e.range.endRow-e.range.startRow+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>i>e.startRow&&i<=e.endRow));if(o.length){let e=[],s=[];return o.forEach(o=>{let c=t.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startRow&&i<=e.endRow&&(e.endRow+=a,l=!0)}),l&&(e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:X.id,params:{unitId:n,subUnitId:r,rule:o,ruleId:o.id}}))}),{redos:e,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(e,n,r){let i=e.toRange,a=i.startRow,o=i.endRow-i.startRow+1,s=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>a>e.startRow&&a<=e.endRow));if(s.length){let i=[],c=[];return s.forEach(s=>{let l=t.Tools.deepClone(s),u=e.fromRange.startRow,d=!1;l.ranges.forEach(e=>{a>e.startRow&&a<=e.endRow&&(u<e.startRow&&(e.startRow-=o,e.endRow-=o),e.endRow+=o,d=!0)}),d&&(i.push({id:X.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:s.id}}))}),{redos:i,undos:c}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(e,n,r){let i=e.toRange,a=i.startColumn,o=i.endColumn-i.startColumn+1,s=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>a>e.startColumn&&a<=e.endColumn));if(s.length){let i=[],c=[];return s.forEach(s=>{let l=t.Tools.deepClone(s),u=e.fromRange.startColumn,d=!1;l.ranges.forEach(e=>{a>e.startColumn&&a<=e.endColumn&&(u<e.startColumn&&(e.startColumn-=o,e.endColumn-=o),e.endColumn+=o,d=!0)}),d&&(i.push({id:X.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:s.id}}))}),{redos:i,undos:c}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Ou.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),this._checkIsRightRange({startRow:n,endRow:r,startColumn:a,endColumn:u})&&(e.startColumn=a,e.endColumn=u,e.startRow=n,e.endRow=r)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}if(Du.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=e.params;if(!r)return;let{range:i}=r,a=e.id.includes(`row`),o=e.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;o?a?s<=t&&(t+=l,n+=l):s<=r&&(r+=l,i+=l):a?c<t&&(t-=l,n-=l):c<r&&(r-=l,i-=l),this._checkIsRightRange({startRow:t,endRow:n,startColumn:r,endColumn:i})&&(e.startColumn=r,e.endColumn=i,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Du.includes(e.id)||Ou.includes(e.id)){let{unitId:t,subUnitId:n}=e.params;this._rangeProtectionCache.reBuildCache(t,n)}}))}_initRemoveSheet(){this._sheetInterceptorService.interceptCommand({getMutations:e=>{let t=[],n=[],r=[],i=[];if(e.id===vs.id){let n=e.params,i=[],a=[];this._rangeProtectionRuleModel.getSubunitRuleList(n.unitId,n.subUnitId).forEach(e=>{i.push(e.id),a.push(e)}),i.length&&a.length&&(r.push({id:kn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:jn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};ku=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,t.ICommandService),T(3,(0,t.Inject)(Li)),T(4,(0,t.Inject)(mu)),T(5,(0,t.Inject)(hu)),T(6,(0,t.Inject)(A)),T(7,(0,t.Inject)(B))],ku);let Au=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._selectionProtectionRuleModel=e,this._permissionService=t,this._resourceManagerService=n,this._selectionProtectionCache=r,this._univerInstanceService=i,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case`add`:Dc().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:Dc().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(n.id)});break;case`set`:e.oldRule.permissionId!==e.rule.permissionId&&Dc().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(n.id);let r=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}))}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>{let t=this._selectionProtectionRuleModel.toObject()[e];return t?JSON.stringify(t):``},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_RANGE_PROTECTION_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],onLoad:(e,t)=>{let n=this._selectionProtectionRuleModel.toObject();n[e]=t,this._selectionProtectionRuleModel.fromObject(n);let r=[];Object.keys(t).forEach(n=>{let i=t[n];this._selectionProtectionRuleModel.getSubunitRuleList(e,n).forEach(t=>{r.push({objectID:t.permissionId,unitID:e,objectType:a.UnitObject.SelectRange,actions:Oc})}),i.forEach(t=>{Dc().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};Au=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IPermissionService)),T(2,(0,t.Inject)(t.IResourceManagerService)),T(3,(0,t.Inject)(hu)),T(4,(0,t.Inject)(t.IUniverInstanceService))],Au);let ju=class extends t.Disposable{constructor(e){super(),this._sheetRangeThemeModel=e}registerRangeTheme(e,t){this._sheetRangeThemeModel.registerRangeThemeStyle(e,t)}removeRangeThemeRule(e,t){this._sheetRangeThemeModel.removeRangeThemeRule(e,t)}getALLRegisterThemes(e){return this._sheetRangeThemeModel.getALLRegisteredTheme(e)}registerRangeThemeStyle(e,t){this._sheetRangeThemeModel.registerRangeThemeRule(e,t)}getAppliedRangeThemeStyle(e){return this._sheetRangeThemeModel.getRegisteredRangeThemeStyle(e)}getRegisteredRangeThemes(){return this._sheetRangeThemeModel.getRegisteredRangeThemes()}};ju=E([T(0,(0,t.Inject)(N))],ju);let Mu=class extends t.Plugin{constructor(e=Zo,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},Zo,this._config);this._configService.setConfig(Yo,i),this._initConfig(),this._initDependencies()}_initConfig(){var e,n,r;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`,!0),(n=this._config)!=null&&n.isRowStylePrecedeColumnStyle&&this._configService.setConfig(t.IS_ROW_STYLE_PRECEDE_COLUMN_STYLE,!0),(r=this._config)!=null&&r.autoHeightForMergedCells&&this._configService.setConfig(t.AUTO_HEIGHT_FOR_MERGED_CELLS,!0)}_initDependencies(){var e;let n=[[ys],[Qo],[H],[Li],[du],[Pl,{useClass:Eu}],[A],[ju],[Wr],[bu],[Ki],[Su],[ou],[pu],[lu],[xl],[ua],[Cc],[Cu],[fu],[uu],[N],[mu],[B],[hu],[ku],[Au],[wu,{useClass:Tu,deps:[H]}],[Vo,{useClass:Bo}],[iu]];(e=this._config)!=null&&e.notExecuteFormula||n.push([xu]),(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)(n,this._config.override)),(0,t.touchDependencies)(this._injector,[[A],[Au],[wu],[fu],[lu]])}onStarting(){var e;(0,t.touchDependencies)(this._injector,[[bu],[Ki],[du],[xl],[Cu],[Wr],[iu]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([vu])}onRendered(){(0,t.touchDependencies)(this._injector,[[Pl]])}onReady(){(0,t.touchDependencies)(this._injector,[[vu],[xu],[ou],[pu],[N],[Su],[mu],[ku],[Li],[uu]])}};w(Mu,`pluginName`,`SHEET_PLUGIN`),w(Mu,`packageName`,gu),w(Mu,`version`,_u),w(Mu,`type`,t.UniverInstanceType.UNIVER_SHEET),Mu=E([(0,t.DependentOn)(i.UniverFormulaEnginePlugin),T(1,(0,t.Inject)(t.Injector)),T(2,t.IConfigService)],Mu);let Nu={WorkbookCommentPermission:Ac,WorkbookCopyPermission:jc,WorkbookCreateProtectPermission:Nc,WorkbookCreateSheetPermission:Pc,WorkbookDeleteSheetPermission:Lc,WorkbookDuplicatePermission:Rc,WorkbookEditablePermission:Q,WorkbookExportPermission:zc,WorkbookHideSheetPermission:Bc,WorkbookManageCollaboratorPermission:Uc,WorkbookMoveSheetPermission:Wc,WorkbookPrintPermission:Gc,WorkbookRecoverHistoryPermission:Kc,WorkbookRenameSheetPermission:qc,WorkbookSharePermission:Jc,WorkbookViewHistoryPermission:Xc,WorkbookViewPermission:Yc,WorksheetCopyPermission:Zc,WorksheetDeleteColumnPermission:Qc,WorksheetDeleteProtectionPermission:$c,WorksheetDeleteRowPermission:el,WorksheetEditExtraObjectPermission:tl,WorksheetEditPermission:$,WorksheetFilterPermission:nl,WorksheetInsertColumnPermission:rl,WorksheetInsertHyperlinkPermission:il,WorksheetInsertRowPermission:al,WorksheetManageCollaboratorPermission:ol,WorksheetPivotTablePermission:sl,WorksheetSetCellStylePermission:ul,WorksheetSetCellValuePermission:dl,WorksheetSetColumnStylePermission:fl,WorksheetSetRowStylePermission:pl,WorksheetSortPermission:ml,WorksheetViewPermission:hl,RangeProtectionPermissionEditPoint:Z,RangeProtectionPermissionViewPoint:Ec},Pu=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(B),s=a.getPermissionPoint(new Q(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new $(n,r).id);if(!(c!=null&&c.value))return!1;let l=o.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>i.some(n=>t.Rectangle.intersects(e,n))));return l.length?l.every(e=>{let t=e.permissionId,i=a.getPermissionPoint(new Z(n,r,t).id);return!!(i!=null&&i.value)}):!0},Fu=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.startRow-i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l--,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l>=s)return{...r,startRow:l,endRow:l};if(o)return Lu(e,n,{...r,startRow:c,endRow:c},i,a,!1)},Iu=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.endRow+i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l++,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l<=c)return{...r,startRow:l,endRow:l};if(o)return Ru(e,n,{...r,startRow:s,endRow:s},i,a,!1)},Lu=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.startColumn-i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l--,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l>=s)return{...r,startColumn:l,endColumn:l};if(o)return Fu(e,n,{...r,startColumn:c,endColumn:c},i,a,!1)},Ru=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.endColumn+i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l++,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l<=c)return{...r,endColumn:l,startColumn:l};if(o)return Iu(e,n,{...r,startColumn:s,endColumn:s},i,a,!1)};function zu(e,n,r){let i=null;return r.getMatrixWithMergedCells(e,n,e,n).forValue((e,n,r)=>(i={actualRow:e,actualColumn:n,startRow:e,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:e+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:t.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:e,startRow:e,startColumn:n,endRow:e,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:t.RANGE_TYPE.NORMAL}}let Bu=(e,n,r,i,a=1)=>{switch(i){case t.Direction.UP:return Fu(e,n,r,a);case t.Direction.DOWN:return Iu(e,n,r,a);case t.Direction.LEFT:return Lu(e,n,r,a);case t.Direction.RIGHT:return Ru(e,n,r,a)}},Vu=(e,n,r)=>{let i,a=-1,o;for(let t=0;t<e.length;t++)if(e[t].primary){i=e[t],a=t,o=i.primary;break}if(a===-1)return null;let s=n===t.Direction.LEFT||n===t.Direction.UP,c=e[s?a-1>=0?a-1:e.length-1:a+1<e.length?a+1:0];if(!i||!o)return null;let l={...o},{startRow:u,startColumn:d,endRow:f,endColumn:p}=i.range,m=s?l.startRow===u&&l.startColumn===d:l.endRow===f&&l.endColumn===p,h=m&&s;if(!t.Rectangle.equals(i.range,l)){let e=m?c.range:Bu(i.range,r,l,n);if(!e)return null;let t=h?zu(e.endRow,e.endColumn,r):zu(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?zu(c.range.endRow,c.range.endColumn,r):zu(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function Hu(e,t){let{startRow:n,startColumn:r,endRow:i,endColumn:a,rangeType:o}=t,s=i<n?i:n,c=i<n?n:i,l=a<r?a:r,u=a<r?r:a,d=e.getNoMergeCellWithCoordByIndex(s,l),f=e.getNoMergeCellWithCoordByIndex(c,u);return{startRow:n,startColumn:r,endRow:i,endColumn:a,rangeType:o,startY:(d==null?void 0:d.startY)||0,endY:(f==null?void 0:f.endY)||0,startX:(d==null?void 0:d.startX)||0,endX:(f==null?void 0:f.endX)||0}}function Uu(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:Hu(t,n),primaryWithCoord:r&&Wu(t,r),style:i}}function Wu(e,t){let{actualRow:n,actualColumn:r,isMerged:i,isMergedMainCell:a,startRow:o,startColumn:s,endRow:c,endColumn:l}=t,u=e.getNoMergeCellWithCoordByIndex(n,r),d=e.getNoMergeCellWithCoordByIndex(o,s),f=e.getNoMergeCellWithCoordByIndex(c,l);return{actualRow:n,actualColumn:r,isMerged:i,isMergedMainCell:a,startX:u.startX,startY:u.startY,endX:u.endX,endY:u.endY,mergeInfo:{startRow:o,startColumn:s,endRow:c,endColumn:l,startY:(d==null?void 0:d.startY)||0,endY:(f==null?void 0:f.endY)||0,startX:(d==null?void 0:d.startX)||0,endX:(f==null?void 0:f.endX)||0}}}function Gu(e,t,n,i){let{from:a,to:o}=n,{column:s,columnOffset:c,row:l,rowOffset:u}=a,{column:d,columnOffset:f,row:p,rowOffset:m}=o,h=Hu(i,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=Hu(i,{startColumn:d,endColumn:d,startRow:p,endRow:p}),{startX:_,startY:v}=h,{startX:y,startY:b}=g,x=(0,r.precisionTo)(_+c,1),S=(0,r.precisionTo)(v+u,1),C=(0,r.precisionTo)(y+f-x,1),w=(0,r.precisionTo)(b+m-S,1);return h.startX===g.endX&&(C=0),h.startY===g.endY&&(w=0),{unitId:e,subUnitId:t,left:x,top:S,width:C,height:w}}function Ku(e,t,n,i,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=Hu(o,{startColumn:s,endColumn:s,startRow:l,endRow:l}),p=(0,r.precisionTo)(d+c,1),m=(0,r.precisionTo)(f+u,1),h=o.getCellIndexAndOffsetByPosition(p+i,m+a);return{unitId:e,subUnitId:t,sheetTransform:{from:{column:s,columnOffset:c,row:l,rowOffset:u},to:h},transform:{left:p,top:m,width:i,height:a}}}e.AFFECT_LAYOUT_STYLES=ga,e.AFTER_CELL_EDIT=O,e.AUTO_FILL_APPLY_TYPE=J,e.AUTO_FILL_DATA_TYPE=Y,e.AUTO_FILL_HOOK_TYPE=ho,e.AddMergeRedoSelectionsOperationFactory=Yi,e.AddMergeUndoMutationFactory=h,e.AddMergeUndoSelectionsOperationFactory=Xi,e.AddRangeProtectionCommand=Mn,e.AddRangeProtectionMutation=jn,e.AddRangeThemeMutation=Wl,e.AddWorksheetMergeAllCommand=aa,e.AddWorksheetMergeCommand=ia,e.AddWorksheetMergeHorizontalCommand=sa,e.AddWorksheetMergeMutation=g,e.AddWorksheetMergeVerticalCommand=oa,e.AddWorksheetProtectionCommand=pa,e.AddWorksheetProtectionMutation=da,e.AppendRowCommand=ha,e.AutoClearContentCommand=qo,e.AutoFillCommand=Ho,Object.defineProperty(e,`AutoFillController`,{enumerable:!0,get:function(){return iu}}),e.AutoFillRules=jo,Object.defineProperty(e,`AutoFillService`,{enumerable:!0,get:function(){return Bo}}),e.AutoFillTools=mo,e.BEFORE_CELL_EDIT=D,e.BorderStyleManagerService=ys,e.COMMAND_LISTENER_SKELETON_CHANGE=Bt,e.COMMAND_LISTENER_VALUE_CHANGE=Vt,e.CancelFrozenCommand=Ws,e.CancelMarkDirtyRowAutoHeightOperation=Xl,e.ClearSelectionAllCommand=Fn,e.ClearSelectionContentCommand=Jo,e.ClearSelectionFormatCommand=In,e.CopySheetCommand=os,e.CopyWorksheetEndMutation=$o,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,`DefinedNameDataController`,{enumerable:!0,get:function(){return ou}}),e.DeleteRangeMoveLeftCommand=sr,e.DeleteRangeMoveUpCommand=lr,e.DeleteRangeProtectionCommand=cs,e.DeleteRangeProtectionMutation=kn,e.DeleteWorksheetProtectionCommand=ls,e.DeleteWorksheetProtectionMutation=fa,e.DeleteWorksheetRangeThemeStyleCommand=us,e.DeleteWorksheetRangeThemeStyleMutation=ye,e.DeleteWorksheetRangeThemeStyleMutationFactory=be,e.DeltaColumnWidthCommand=lc,e.DeltaRowHeightCommand=kl,e.EditStateEnum=Dn,e.EffectRefRangId=G,e.EmptyMutation=Gl,e.ExclusiveRangeService=Tu,e.FactoryAddRangeProtectionMutation=An,e.FactoryDeleteRangeProtectionMutation=On,e.FactorySetRangeProtectionMutation=Ks,e.IAutoFillService=Vo,e.IExclusiveRangeService=wu,e.INTERCEPTOR_POINT=_,e.INumfmtService=Pl,e.IRefSelectionsService=Gn,e.InsertColAfterCommand=Tr,e.InsertColBeforeCommand=wr,e.InsertColByRangeCommand=Cr,e.InsertColCommand=Sr,e.InsertColMutation=we,e.InsertColMutationUndoFactory=Ce,e.InsertDefinedNameCommand=ds,e.InsertMultiColsLeftCommand=Er,e.InsertMultiColsRightCommand=Dr,e.InsertMultiRowsAboveCommand=yr,e.InsertMultiRowsAfterCommand=br,e.InsertRangeMoveDownCommand=dr,e.InsertRangeMoveRightCommand=pr,e.InsertRowAfterCommand=vr,e.InsertRowBeforeCommand=_r,e.InsertRowByRangeCommand=gr,e.InsertRowCommand=hr,e.InsertRowMutation=Se,e.InsertRowMutationUndoFactory=xe,e.InsertSheetCommand=fs,e.InsertSheetMutation=ts,e.InsertSheetUndoMutationFactory=es,e.InterceptCellContentPriority=v,e.MAX_CELL_PER_SHEET_KEY=au,e.MERGE_CELL_INTERCEPTOR_CHECK=Gi,e.MarkDirtyFilterChangeMutation=Kl,e.MarkDirtyRowAutoHeightOperation=Yl,Object.defineProperty(e,`MergeCellController`,{enumerable:!0,get:function(){return Ki}}),e.MoveColsCommand=Hr,e.MoveColsMutation=ke,e.MoveColsMutationUndoFactory=Oe,e.MoveRangeCommand=Xn,e.MoveRangeMutation=Te,e.MoveRowsCommand=Br,e.MoveRowsMutation=De,e.MoveRowsMutationUndoFactory=Ee,Object.defineProperty(e,`NumfmtService`,{enumerable:!0,get:function(){return Eu}}),e.OperatorType=K,e.PermissionPointsDefinitions=Nu,e.REF_SELECTIONS_ENABLED=Pn,e.RangeMergeUtil=on,Object.defineProperty(e,`RangeProtectionCache`,{enumerable:!0,get:function(){return hu}}),e.RangeProtectionPermissionDeleteProtectionPoint=wc,e.RangeProtectionPermissionEditPoint=Z,e.RangeProtectionPermissionManageCollaPoint=Tc,e.RangeProtectionPermissionViewPoint=Ec,Object.defineProperty(e,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return ku}}),Object.defineProperty(e,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return mu}}),e.RangeProtectionRuleModel=B,Object.defineProperty(e,`RangeProtectionService`,{enumerable:!0,get:function(){return Au}}),e.RangeThemeStyle=ne,Object.defineProperty(e,`RefRangeService`,{enumerable:!0,get:function(){return Li}}),Object.defineProperty(e,`RefSelectionsService`,{enumerable:!0,get:function(){return Kn}}),e.RefillCommand=ps,e.RegisterWorksheetRangeThemeStyleCommand=gs,e.RegisterWorksheetRangeThemeStyleMutation=ms,e.RemoveColByRangeCommand=Nr,e.RemoveColCommand=Pr,e.RemoveColMutation=P,e.RemoveDefinedNameCommand=_s,e.RemoveMergeUndoMutationFactory=F,e.RemoveNumfmtMutation=Ll,e.RemoveRangeThemeMutation=ql,e.RemoveRowByRangeCommand=Ar,e.RemoveRowCommand=jr,e.RemoveRowMutation=je,e.RemoveSheetCommand=vs,e.RemoveSheetMutation=Ir,e.RemoveSheetUndoMutationFactory=Fr,e.RemoveWorksheetMergeCommand=Zi,e.RemoveWorksheetMergeMutation=I,e.ReorderRangeCommand=Yr,e.ReorderRangeMutation=Pe,e.ReorderRangeUndoMutationFactory=Ne,e.ResetBackgroundColorCommand=Da,e.ResetTextColorCommand=Ta,e.SCOPE_WORKBOOK_VALUE_DEFINED_NAME=`AllDefaultWorkbook`,e.SELECTIONS_ENABLED=`SELECTIONS_ENABLED`,e.SELECTION_CONTROL_BORDER_BUFFER_COLOR=`rgba(255, 255, 255, 0.01)`,e.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=1.5,e.SHEETS_PLUGIN_CONFIG_KEY=Yo,e.ScrollToCellOperation=Zl,e.SelectRangeCommand=Jn,e.SelectionMoveType=V,e.SetBackgroundColorCommand=Ea,e.SetBoldCommand=_a,e.SetBorderBasicCommand=Ms,e.SetBorderColorCommand=js,e.SetBorderCommand=Os,e.SetBorderPositionCommand=ks,e.SetBorderStyleCommand=As,e.SetColDataCommand=Ns,e.SetColDataMutation=Re,e.SetColDataMutationFactory=Le,e.SetColHiddenCommand=Is,e.SetColHiddenMutation=Be,e.SetColVisibleMutation=He,e.SetColWidthCommand=uc,e.SetDefinedNameCommand=Bs,e.SetFontFamilyCommand=Sa,e.SetFontSizeCommand=Ca,e.SetFrozenCommand=Us,e.SetFrozenMutation=Hs,e.SetFrozenMutationFactory=Vs,e.SetGridlinesColorCommand=Gs,e.SetGridlinesColorMutation=Ue,e.SetHorizontalTextAlignCommand=ka,e.SetItalicCommand=va,e.SetNumfmtMutation=Il,e.SetOverlineCommand=xa,e.SetProtectionCommand=Js,e.SetRangeCustomMetadataCommand=Ys,e.SetRangeProtectionMutation=X,e.SetRangeThemeMutation=Jl,e.SetRangeValuesCommand=tr,e.SetRangeValuesMutation=R,e.SetRangeValuesUndoMutationFactory=L,e.SetRowDataCommand=Xs,e.SetRowDataMutation=vt,e.SetRowDataMutationFactory=_t,e.SetRowHeightCommand=Al,e.SetRowHiddenCommand=$s,e.SetRowHiddenMutation=St,e.SetRowVisibleMutation=bt,e.SetSelectedColsVisibleCommand=Fs,e.SetSelectedRowsVisibleCommand=Qs,e.SetSelectionsOperation=W,e.SetSpecificColsVisibleCommand=Ps,e.SetSpecificRowsVisibleCommand=Zs,e.SetStrikeThroughCommand=ba,e.SetStyleCommand=q,e.SetTabColorCommand=ac,e.SetTabColorMutation=ic,e.SetTextColorCommand=wa,e.SetTextRotationCommand=ja,e.SetTextWrapCommand=Aa,e.SetUnderlineCommand=ya,e.SetVerticalTextAlignCommand=Oa,e.SetWorkbookNameCommand=sc,e.SetWorkbookNameMutation=oc,e.SetWorksheetActivateCommand=cc,e.SetWorksheetActiveOperation=Rt,e.SetWorksheetColWidthMutation=wt,e.SetWorksheetColWidthMutationFactory=Ct,e.SetWorksheetColumnCountCommand=fc,e.SetWorksheetColumnCountMutation=Et,e.SetWorksheetColumnCountUndoMutationFactory=Tt,e.SetWorksheetDefaultStyleCommand=pc,e.SetWorksheetDefaultStyleMutation=Dt,e.SetWorksheetDefaultStyleMutationFactory=Ot,e.SetWorksheetHideCommand=gc,e.SetWorksheetHideMutation=hc,e.SetWorksheetNameCommand=yc,e.SetWorksheetNameMutation=vc,e.SetWorksheetOrderCommand=Sc,e.SetWorksheetOrderMutation=xc,e.SetWorksheetPermissionPointsCommand=Cl,e.SetWorksheetPermissionPointsMutation=Sl,e.SetWorksheetProtectionCommand=wl,e.SetWorksheetProtectionMutation=qs,e.SetWorksheetRangeThemeStyleCommand=ma,e.SetWorksheetRangeThemeStyleMutation=_e,e.SetWorksheetRangeThemeStyleMutationFactory=ve,e.SetWorksheetRightToLeftCommand=Dl,e.SetWorksheetRightToLeftMutation=El,e.SetWorksheetRowAutoHeightMutation=It,e.SetWorksheetRowAutoHeightMutationFactory=Nt,e.SetWorksheetRowCountCommand=Ol,e.SetWorksheetRowCountMutation=At,e.SetWorksheetRowCountUndoMutationFactory=kt,e.SetWorksheetRowHeightMutation=Pt,e.SetWorksheetRowHeightMutationFactory=jt,e.SetWorksheetRowIsAutoHeightCommand=jl,e.SetWorksheetRowIsAutoHeightMutation=Ft,e.SetWorksheetRowIsAutoHeightMutationFactory=Mt,e.SetWorksheetShowCommand=Ml,e.SheetCopyDownCommand=Go,e.SheetCopyRightCommand=Ko,Object.defineProperty(e,`SheetInterceptorService`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(e,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return Qo}}),Object.defineProperty(e,`SheetPermissionCheckController`,{enumerable:!0,get:function(){return uu}}),Object.defineProperty(e,`SheetPermissionInitController`,{enumerable:!0,get:function(){return fu}}),Object.defineProperty(e,`SheetRangeThemeModel`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,`SheetRangeThemeService`,{enumerable:!0,get:function(){return ju}}),e.SheetSkeletonChangeType=z,Object.defineProperty(e,`SheetSkeletonService`,{enumerable:!0,get:function(){return Wr}}),e.SheetValueChangeType=zt,Object.defineProperty(e,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return lu}}),Object.defineProperty(e,`SheetsSelectionsService`,{enumerable:!0,get:function(){return H}}),e.SplitDelimiterEnum=ln,e.SplitTextToColumnsCommand=Nl,e.TextToNumberCommand=Bl,e.ToggleCellCheckboxCommand=Vl,e.ToggleGridlinesCommand=Hl,e.ToggleGridlinesMutation=Lt,Object.defineProperty(e,`UnitAction`,{enumerable:!0,get:function(){return a.UnitAction}}),Object.defineProperty(e,`UnitObject`,{enumerable:!0,get:function(){return a.UnitObject}}),Object.defineProperty(e,`UniverSheetsPlugin`,{enumerable:!0,get:function(){return Mu}}),e.UnregisterWorksheetRangeThemeStyleCommand=Ul,e.UnregisterWorksheetRangeThemeStyleMutation=hs,e.VALIDATE_CELL=k,e.ViewStateEnum=En,e.WorkbookCommentPermission=Ac,e.WorkbookCopyPermission=jc,e.WorkbookCopySheetPermission=Mc,e.WorkbookCreateProtectPermission=Nc,e.WorkbookCreateSheetPermission=Pc,e.WorkbookDeleteColumnPermission=Fc,e.WorkbookDeleteRowPermission=Ic,e.WorkbookDeleteSheetPermission=Lc,e.WorkbookDuplicatePermission=Rc,e.WorkbookEditablePermission=Q,e.WorkbookExportPermission=zc,e.WorkbookHideSheetPermission=Bc,e.WorkbookInsertColumnPermission=Vc,e.WorkbookInsertRowPermission=Hc,e.WorkbookManageCollaboratorPermission=Uc,e.WorkbookMoveSheetPermission=Wc,Object.defineProperty(e,`WorkbookPermissionService`,{enumerable:!0,get:function(){return du}}),e.WorkbookPrintPermission=Gc,e.WorkbookRecoverHistoryPermission=Kc,e.WorkbookRenameSheetPermission=qc,e.WorkbookSelectionModel=Nn,e.WorkbookSharePermission=Jc,e.WorkbookViewHistoryPermission=Xc,e.WorkbookViewPermission=Yc,e.WorksheetCopyPermission=Zc,e.WorksheetDeleteColumnPermission=Qc,e.WorksheetDeleteProtectionPermission=$c,e.WorksheetDeleteRowPermission=el,e.WorksheetEditExtraObjectPermission=tl,e.WorksheetEditPermission=$,e.WorksheetFilterPermission=nl,e.WorksheetInsertColumnPermission=rl,e.WorksheetInsertHyperlinkPermission=il,e.WorksheetInsertRowPermission=al,e.WorksheetManageCollaboratorPermission=ol,Object.defineProperty(e,`WorksheetPermissionService`,{enumerable:!0,get:function(){return xl}}),e.WorksheetPivotTablePermission=sl,e.WorksheetProtectionPointModel=Cc,e.WorksheetProtectionRuleModel=ua,e.WorksheetSelectProtectedCellsPermission=cl,e.WorksheetSelectUnProtectedCellsPermission=ll,e.WorksheetSetCellStylePermission=ul,e.WorksheetSetCellValuePermission=dl,e.WorksheetSetColumnStylePermission=fl,e.WorksheetSetRowStylePermission=pl,e.WorksheetSortPermission=ml,e.WorksheetViewPermission=hl,Object.defineProperty(e,`ZebraCrossingCacheController`,{enumerable:!0,get:function(){return pu}}),e.addMergeCellsUtil=ca,e.adjustRangeOnMutation=Ai,e.alignToMergedCellsBorders=Ln,e.attachPrimaryWithCoord=Wu,e.attachRangeWithCoord=Hu,e.attachSelectionWithCoord=Uu,e.baseProtectionActions=Oc,e.checkCellValueType=d,e.checkRangesEditablePermission=Pu,e.convertPositionCellToSheetOverGrid=Ku,e.convertPositionSheetOverGridToAbsolute=Gu,e.convertPrimaryWithCoordToPrimary=cn,e.convertSelectionDataToRange=sn,e.copyRangeStyles=Wn,e.countCells=qr,e.createTopMatrixFromMatrix=en,e.createTopMatrixFromRanges=$t,e.defaultLargeSheetOperationConfig=Xo,e.defaultWorkbookPermissionPoints=_l,e.defaultWorksheetPermissionPoint=bl,e.discreteRangeToRange=Cn,e.expandToContinuousRange=Qt,e.factoryRemoveNumfmtUndoMutation=Rl,e.factorySetNumfmtUndoMutation=Fl,e.findAllRectangle=rn,e.findFirstNonEmptyCell=yn,e.followSelectionOperation=Bn,e.generateNullCell=bn,e.generateNullCellValue=xn,e.getAddMergeMutationRangeByType=Wi,e.getAllRangePermissionPoint=Dc,e.getAllWorkbookPermissionPoint=gl,e.getAllWorksheetPermissionPoint=vl,e.getAllWorksheetPermissionPointByPointPanel=yl,e.getCellAtRowCol=Rn,e.getClearContentMutationParamForRange=ra,e.getClearContentMutationParamsForRanges=na,e.getDefaultRangePermission=kc,e.getInsertRangeMutations=nr,e.getMoveRangeCommandMutations=Qn,e.getMoveRangeUndoRedoMutations=$n,e.getNextPrimaryCell=Vu,e.getPrimaryForRange=U,e.getRemoveRangeMutations=rr,e.getSelectionsService=qn,e.getSeparateEffectedRangesOnCommand=Ni,e.getSheetCommandTarget=p,e.getSheetCommandTargetWorkbook=f,e.getSheetMutationTarget=m,e.getSkeletonChangedEffectedRange=Ut,e.getValueChangedEffectedRange=Ht,e.getVisibleRanges=Tn,e.handleBaseInsertRange=ui,e.handleBaseMoveRowsCols=Qr,e.handleBaseRemoveRange=oi,e.handleCommonDefaultRangeChangeWithEffectRefCommands=Oi,e.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=ki,e.handleDefaultRangeChangeWithEffectRefCommands=Ei,e.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Di,e.handleDeleteRangeMoveLeft=vi,e.handleDeleteRangeMoveUp=bi,e.handleDeleteRangeMutation=ar,e.handleIRemoveCol=si,e.handleIRemoveRow=ci,e.handleInsertCol=pi,e.handleInsertRangeMoveDown=mi,e.handleInsertRangeMoveRight=gi,e.handleInsertRangeMutation=ir,e.handleInsertRow=fi,e.handleMoveCols=ni,e.handleMoveRange=ii,e.handleMoveRows=$r,e.isSingleCellSelection=Vn,e.rangeMerge=an,e.rangeToDiscreteRange=wn,e.rotateRange=Zr,e.runRefRangeMutations=Ti,e.setEndForRange=zn,e.splitRangeText=hn,e.transformCellsToRange=zl});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`rxjs`),require(`@univerjs/engine-formula`),require(`@univerjs/engine-render`),require(`@univerjs/protocol`),require(`rxjs/operators`),require(`@univerjs/rpc`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs`,`@univerjs/engine-formula`,`@univerjs/engine-render`,`@univerjs/protocol`,`rxjs/operators`,`@univerjs/rpc`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheets={},e.UniverCore,e.rxjs,e.UniverEngineFormula,e.UniverEngineRender,e.UniverProtocol,e.rxjs.operators,e.UniverRpc))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function c(e,n,r){var i;if(n.t)return n.t;if(n.v===null)return null;let a=e.getStyleByCell(n),o=e.getStyleByCell(r);if(r.t===t.CellValueType.FORCE_STRING){var s;if(!(0,t.isTextFormat)(o==null||(s=o.n)==null?void 0:s.pattern)&&n.v!==void 0){if((0,t.isRealNum)(n.v))return t.CellValueType.NUMBER;if((0,t.isBooleanString)(`${n.v}`))return t.CellValueType.BOOLEAN}return t.CellValueType.FORCE_STRING}if(u(a)){var c;return(0,t.isTextFormat)(a==null||(c=a.n)==null?void 0:c.pattern)?t.CellValueType.STRING:l(n,r)}return(0,t.isTextFormat)(o==null||(i=o.n)==null?void 0:i.pattern)?t.CellValueType.STRING:l(n,r)}function l(e,t){return e.v===void 0?d(t.v,t.t):d(e.v,e.t)}function u(e){var t;return!!(!(e==null||(t=e.n)==null)&&t.pattern)}function d(e,n){return e===null?null:typeof e==`string`?(0,t.isRealNum)(e)?(+e==0||+e==1)&&n===t.CellValueType.BOOLEAN?t.CellValueType.BOOLEAN:n!==t.CellValueType.STRING&&n!==t.CellValueType.FORCE_STRING&&(0,t.willLoseNumericPrecision)(e)?t.CellValueType.FORCE_STRING:t.CellValueType.NUMBER:(0,t.isBooleanString)(e)?t.CellValueType.BOOLEAN:t.CellValueType.STRING:typeof e==`number`?(e===0||e===1)&&n===t.CellValueType.BOOLEAN?t.CellValueType.BOOLEAN:t.CellValueType.NUMBER:typeof e==`boolean`?t.CellValueType.BOOLEAN:t.CellValueType.FORCE_STRING}function f(e,n){let{unitId:r}=n,i=r?e.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);return i?{workbook:i,unitId:i.getUnitId()}:null}function p(e,n={}){let{unitId:r,subUnitId:i}=n,a=r?e.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!a)return null;let o=i?a.getSheetBySheetId(i):a.getActiveSheet(!0);return o?{worksheet:o,workbook:a,unitId:a.getUnitId(),subUnitId:o.getSheetId()}:null}function m(e,n){let{unitId:r,subUnitId:i}=n,a=e.getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(!a)return null;let o=a.getSheetBySheetId(i);return o?{worksheet:o,workbook:a}:null}let h=(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:t.Tools.deepClone(n.ranges)}},g={id:`sheet.mutation.add-worksheet-merge`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or worksheet is null error!`);let{worksheet:i}=r,a=i.getConfig().mergeData,o=n.ranges;for(let e=0;e<o.length;e++)a.push(o[e]);return i.getSpanModel().rebuild(a),!0}},_={CELL_CONTENT:(0,t.createInterceptorKey)(`CELL_CONTENT`),ROW_FILTERED:(0,t.createInterceptorKey)(`ROW_FILTERED`)},v=function(e){return e[e.DATA_VALIDATION=9]=`DATA_VALIDATION`,e[e.NUMFMT=10]=`NUMFMT`,e[e.CELL_IMAGE=11]=`CELL_IMAGE`,e}({}),y=`sheet.interceptor.range-theme-id`,b=`sheet.interceptor.ignore-range-theme`;function x(e){"@babel/helpers - typeof";return x=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},x(e)}function S(e,t){if(x(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(x(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function C(e){var t=S(e,`string`);return x(t)==`symbol`?t:t+``}function w(e,t,n){return(t=C(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e,t){return function(n,r){t(n,r,e)}}function E(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let D=(0,t.createInterceptorKey)(`BEFORE_CELL_EDIT`),O=(0,t.createInterceptorKey)(`AFTER_CELL_EDIT`),k=(0,t.createInterceptorKey)(`VALIDATE_CELL`),A=class extends t.Disposable{constructor(e){super(),this._univerInstanceService=e,w(this,`_interceptorsByName`,new Map),w(this,`_commandInterceptors`,[]),w(this,`_rangeInterceptors`,[]),w(this,`_autoHeightInterceptors`,[]),w(this,`_beforeCommandInterceptor`,[]),w(this,`_afterCommandInterceptors`,[]),w(this,`_workbookDisposables`,new Map),w(this,`_worksheetDisposables`,new Map),w(this,`_interceptorsDirty`,!1),w(this,`_composedInterceptorByKey`,new Map),w(this,`_composedInterceptorsLengthByKey`,new Map),w(this,`writeCellInterceptor`,new t.InterceptorManager({BEFORE_CELL_EDIT:D,AFTER_CELL_EDIT:O,VALIDATE_CELL:k})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e.unit)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(_.CELL_CONTENT,{priority:-1,effect:t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value,handler:e=>e}),this.disposeWithMe(this.writeCellInterceptor.intercept(O,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(D,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(k,{priority:-1,handler:e=>e}))}dispose(){super.dispose(),this._workbookDisposables.forEach(e=>e.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.forEach(e=>e.dispose()),this._worksheetDisposables.clear(),this._interceptorsByName.clear()}interceptCommand(e){if(this._commandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._commandInterceptors.push(e),this._commandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._commandInterceptors,e)))}onCommandExecute(e){let t=this._commandInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptAfterCommand(e){if(this._afterCommandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._afterCommandInterceptors.push(e),this._afterCommandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._afterCommandInterceptors,e)))}afterCommandExecute(e){let t=this._afterCommandInterceptors.map(t=>t.getMutations(e));return{undos:t.map(e=>e.undos).flat(),redos:t.map(e=>e.redos).flat()}}interceptAutoHeight(e){if(this._autoHeightInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._autoHeightInterceptors.push(e),this._autoHeightInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._autoHeightInterceptors,e)))}generateMutationsOfAutoHeight(e){let t=this._autoHeightInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptBeforeCommand(e){if(this._beforeCommandInterceptor.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._beforeCommandInterceptor.push(e),this._beforeCommandInterceptor.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._beforeCommandInterceptor,e)))}async beforeCommandExecute(e){return(await Promise.all(this._beforeCommandInterceptor.map(t=>t.performCheck(e)))).every(e=>e)}interceptRanges(e){if(this._rangeInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._rangeInterceptors.push(e),this._rangeInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._rangeInterceptors,e)))}generateMutationsByRanges(e){let t=this._rangeInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}onWriteCell(e,n,r,i,a){let o={subUnitId:n.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:n,row:r,col:i,origin:t.Tools.deepClone(a)};return this.writeCellInterceptor.fetchThroughInterceptors(O)(a,o)}onValidateCell(e,t,n,r){let i={subUnitId:t.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:t,row:n,col:r};return this.writeCellInterceptor.fetchThroughInterceptors(k)(Promise.resolve(!0),i)}intercept(e,n){let r=e;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);let i=this._interceptorsByName.get(r);i.push(n);let a=i.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)});if(this._interceptorsDirty=!0,r===_.CELL_CONTENT){let e=t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value;this._interceptorsByName.set(`${r}-${e}`,a);let i=t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value;return this._interceptorsByName.set(`${r}-${t.InterceptorEffectEnum.Style}`,a.filter(e=>((e.effect||i)&t.InterceptorEffectEnum.Style)>0)),this._interceptorsByName.set(`${r}-${t.InterceptorEffectEnum.Value}`,a.filter(e=>((e.effect||i)&t.InterceptorEffectEnum.Value)>0)),this.disposeWithMe((0,t.toDisposable)(()=>{(0,t.remove)(this._interceptorsByName.get(r),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${e}`),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${t.InterceptorEffectEnum.Style}`),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${t.InterceptorEffectEnum.Value}`),n)}))}else return this._interceptorsByName.set(r,a),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(e,n,r,i){var a;let o=n===void 0?e:`${e}-${n}`,s=r==null?o:r,c=this._composedInterceptorByKey.get(s),l=this._composedInterceptorsLengthByKey.get(s)||0;if(!c||!this._interceptorsDirty||l!==(((a=this._interceptorsByName.get(o))==null?void 0:a.length)||0)){let e=this._interceptorsByName.get(o);e&&i&&(e=e.filter(i)),c=(0,t.composeInterceptors)(e||[]),this._composedInterceptorByKey.set(s,c),this._composedInterceptorsLengthByKey.set(s,(e==null?void 0:e.length)||0)}return c}_interceptWorkbook(e){let n=new t.DisposableCollection,r=e.getUnitId(),i=this,a=n=>{let a=n.getSheetId();n.__interceptViewModel(o=>{let s=new t.DisposableCollection;i._worksheetDisposables.set(ee(r,n),s),s.add(o.registerCellContentInterceptor({getCell(t,o,s,c,l){let u=n.getCellRaw(t,o);return i.fetchThroughInterceptors(_.CELL_CONTENT,s,c,l)(u,{unitId:r,subUnitId:a,row:t,col:o,worksheet:n,workbook:e,rawData:u})}})),s.add(o.registerRowFilteredInterceptor({getRowFiltered(t){return!!i.fetchThroughInterceptors(_.ROW_FILTERED)(!1,{unitId:r,subUnitId:a,row:t,workbook:e,worksheet:n})}}))})};e.getSheets().forEach(e=>a(e)),n.add(e.sheetCreated$.subscribe(e=>a(e))),n.add((0,t.toDisposable)(()=>e.getSheets().forEach(e=>this._disposeSheetInterceptor(r,e)))),n.add(e.sheetDisposed$.subscribe(e=>this._disposeSheetInterceptor(r,e))),this._workbookDisposables.set(r,n)}_disposeWorkbookInterceptor(e){let t=e.getUnitId(),n=this._workbookDisposables.get(t);n&&(n.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(e,t){let n=ee(e,t),r=this._worksheetDisposables.get(n);r&&(r.dispose(),this._worksheetDisposables.delete(n))}};A=E([T(0,t.IUniverInstanceService)],A);function ee(e,t){return`${e}|${t.getSheetId()}`}let j=e=>{let t={};return e.bg&&(t.bg={...e.bg}),e.ol&&(t.ol={...e.ol}),e.bd&&(t.bd={...e.bd}),e.cl&&(t.cl={...e.cl}),e.ht&&(t.ht=e.ht),e.vt&&(t.vt=e.vt),e.bl!==void 0&&(t.bl=e.bl),t};function te(e){let t={};if(e.length===1)return e[0];for(let n of e)n.bg&&(t.bg=n.bg),n.ol&&(t.ol=n.ol),n.bd&&(t.bd={...t.bd,...n.bd}),n.cl&&(t.cl=n.cl),n.ht&&(t.ht=n.ht),n.vt&&(t.vt=n.vt),n.bl!==void 0&&(t.bl=n.bl);return t}let M={wholeStyle:1,headerRowStyle:2,headerColumnStyle:4,firstRowStyle:8,secondRowStyle:16,lastRowStyle:32,firstColumnStyle:128,secondColumnStyle:256,lastColumnStyle:512};var ne=class{constructor(e,t){w(this,`_name`,void 0),w(this,`wholeStyle`,null),w(this,`headerRowStyle`,null),w(this,`headerColumnStyle`,null),w(this,`firstRowStyle`,null),w(this,`secondRowStyle`,null),w(this,`lastRowStyle`,null),w(this,`firstColumnStyle`,null),w(this,`secondColumnStyle`,null),w(this,`lastColumnStyle`,null),w(this,`_mergeCacheMap`,new Map),t&&this.fromJson({...t,name:e}),this._name=e}getName(){return this._name}getWholeStyle(){return this.wholeStyle}setWholeStyle(e){this.wholeStyle=e,this._resetStyleCache()}getFirstRowStyle(){return this.firstRowStyle}setFirstRowStyle(e){this.firstRowStyle=e,this._resetStyleCache()}getSecondRowStyle(){return this.secondRowStyle}setSecondRowStyle(e){this.secondRowStyle=e,this._resetStyleCache()}getLastRowStyle(){return this.lastRowStyle}setLastRowStyle(e){this.lastRowStyle=e,this._resetStyleCache()}getFirstColumnStyle(){return this.firstColumnStyle}setFirstColumnStyle(e){this.firstColumnStyle=e,this._resetStyleCache()}getSecondColumnStyle(){return this.secondColumnStyle}setSecondColumnStyle(e){this.secondColumnStyle=e,this._resetStyleCache()}getLastColumnStyle(){return this.lastColumnStyle}setLastColumnStyle(e){this.lastColumnStyle=e,this._resetStyleCache()}getHeaderRowStyle(){return this.headerRowStyle}setHeaderRowStyle(e){this.headerRowStyle=e,this._resetStyleCache()}getHeaderColumnStyle(){return this.headerColumnStyle}setHeaderColumnStyle(e){this.headerColumnStyle=e,this._resetStyleCache()}getStyle(e,t,n,r,i){let a=0;return n&&(a|=M.lastRowStyle),r&&(a|=M.lastColumnStyle),e>=0&&t>=0&&(a|=M.wholeStyle),e%2==1&&(a|=i?M.secondRowStyle:M.firstRowStyle),e%2==0&&(a|=i?M.firstRowStyle:M.secondRowStyle),e===0&&(a|=M.headerRowStyle),t===0&&(a|=M.headerColumnStyle),t%2==1&&(a|=M.firstColumnStyle),t%2==0&&(a|=M.secondColumnStyle),a===0?null:this._getMergeStyle(a)}_getMergeStyle(e){let t=this._mergeCacheMap.get(e);return t||(t=this._mergeStyle(e),this._mergeCacheMap.set(e,t)),t}_mergeStyle(e){let t=[];return this.wholeStyle&&e&M.wholeStyle&&t.push(this.wholeStyle),this.firstColumnStyle&&e&M.firstColumnStyle&&t.push(this.firstColumnStyle),this.secondColumnStyle&&e&M.secondColumnStyle&&t.push(this.secondColumnStyle),this.firstRowStyle&&e&M.firstRowStyle&&t.push(this.firstRowStyle),this.secondRowStyle&&e&M.secondRowStyle&&t.push(this.secondRowStyle),this.headerColumnStyle&&e&M.headerColumnStyle&&t.push(this.headerColumnStyle),this.lastColumnStyle&&e&M.lastColumnStyle&&t.push(this.lastColumnStyle),this.headerRowStyle&&e&M.headerRowStyle&&t.push(this.headerRowStyle),this.lastRowStyle&&e&M.lastRowStyle&&t.push(this.lastRowStyle),te(t)}_resetStyleCache(){this._mergeCacheMap.clear()}toJson(){let e={name:this._name};return this.wholeStyle&&(e.wholeStyle=j(this.wholeStyle)),this.headerRowStyle&&(e.headerRowStyle=j(this.headerRowStyle)),this.headerColumnStyle&&(e.headerColumnStyle=j(this.headerColumnStyle)),this.firstRowStyle&&(e.firstRowStyle=j(this.firstRowStyle)),this.secondRowStyle&&(e.secondRowStyle=j(this.secondRowStyle)),this.lastRowStyle&&(e.lastRowStyle=j(this.lastRowStyle)),this.firstColumnStyle&&(e.firstColumnStyle=j(this.firstColumnStyle)),this.secondColumnStyle&&(e.secondColumnStyle=j(this.secondColumnStyle)),this.lastColumnStyle&&(e.lastColumnStyle=j(this.lastColumnStyle)),e}fromJson(e){this._name=e.name,e.wholeStyle&&(this.wholeStyle=j(e.wholeStyle)),e.headerRowStyle&&(this.headerRowStyle=j(e.headerRowStyle)),e.headerColumnStyle&&(this.headerColumnStyle=j(e.headerColumnStyle)),e.firstRowStyle&&(this.firstRowStyle=j(e.firstRowStyle)),e.secondRowStyle&&(this.secondRowStyle=j(e.secondRowStyle)),e.lastRowStyle&&(this.lastRowStyle=j(e.lastRowStyle)),e.firstColumnStyle&&(this.firstColumnStyle=j(e.firstColumnStyle)),e.secondColumnStyle&&(this.secondColumnStyle=j(e.secondColumnStyle)),e.lastColumnStyle&&(this.lastColumnStyle=j(e.lastColumnStyle))}dispose(){this._mergeCacheMap.clear()}};let re=(e,t,n)=>new ne(`light-${e}`,{headerRowStyle:{bg:{rgb:t}},firstColumnStyle:{bg:{rgb:`rgb(255, 255, 255)`}},secondColumnStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}}}),ie=(e,t,n)=>new ne(`middle-${e}`,{headerRowStyle:{bg:{rgb:t}},headerColumnStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}},lastColumnStyle:{bg:{rgb:n}}}),ae=(e,n,r,i)=>new ne(`dark-${e}`,{headerRowStyle:{bg:{rgb:n},cl:{rgb:`rgb(255, 255, 255)`},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE},firstRowStyle:{bg:{rgb:r}},secondRowStyle:{bg:{rgb:i}},lastRowStyle:{bg:{rgb:n}}}),oe=[{baseName:`blue`,header:`rgb(164, 202, 254)`,color:`rgb(225, 239, 254)`},{baseName:`grey`,header:`rgb(205, 208, 216)`,color:`rgb(238, 239, 241)`},{baseName:`red`,header:`rgb(248, 180, 180)`,color:`rgb(253, 232, 232)`},{baseName:`orange`,header:`rgb(253, 186, 140)`,color:`rgb(254, 236, 220)`},{baseName:`yellow`,header:`rgb(250, 200, 21)`,color:`rgb(255, 244, 185)`},{baseName:`green`,header:`rgb(132, 225, 188)`,color:`rgb(222, 247, 236)`},{baseName:`azure`,header:`rgb(126, 220, 226)`,color:`rgb(213, 245, 246)`},{baseName:`indigo`,header:`rgb(186, 198, 248)`,color:`rgb(233, 237, 255)`},{baseName:`purple`,header:`rgb(202, 191, 253)`,color:`rgb(237, 235, 254)`},{baseName:`magenta`,header:`rgb(248, 180, 217)`,color:`rgb(252, 232, 243)`}],se=[{baseName:`blue`,rowHeader:`rgb(63, 131, 248)`,colHeader:`rgb(195, 221, 253)`},{baseName:`grey`,rowHeader:`rgb(95, 101, 116)`,colHeader:`rgb(227, 229, 234)`},{baseName:`red`,rowHeader:`rgb(240, 82, 82)`,colHeader:`rgb(251, 213, 213)`},{baseName:`orange`,rowHeader:`rgb(255, 90, 31)`,colHeader:`rgb(252, 217, 189)`},{baseName:`yellow`,rowHeader:`rgb(212, 157, 15)`,colHeader:`rgb(252, 220, 106)`},{baseName:`green`,rowHeader:`rgb(13, 164, 113)`,colHeader:`rgb(188, 240, 218)`},{baseName:`azure`,rowHeader:`rgb(6, 148, 162)`,colHeader:`rgb(175, 236, 239)`},{baseName:`indigo`,rowHeader:`rgb(70, 106, 247)`,colHeader:`rgb(210, 218, 250)`},{baseName:`purple`,rowHeader:`rgb(144, 97, 249)`,colHeader:`rgb(220, 215, 254)`},{baseName:`magenta`,rowHeader:`rgb(231, 70, 148)`,colHeader:`rgb(250, 209, 232)`}],ce=[{baseName:`blue`,rowHeader:`rgb(30, 66, 159)`,firstRow:`rgb(195, 221, 253)`,secondRow:`rgb(118, 169, 250)`},{baseName:`grey`,rowHeader:`rgb(44, 48, 64)`,firstRow:`rgb(227, 229, 234)`,secondRow:`rgb(151, 157, 172)`},{baseName:`red`,rowHeader:`rgb(155, 28, 28)`,firstRow:`rgb(251, 213, 213)`,secondRow:`rgb(249, 128, 128)`},{baseName:`orange`,rowHeader:`rgb(180, 52, 3)`,firstRow:`rgb(252, 217, 189)`,secondRow:`rgb(255, 138, 76)`},{baseName:`yellow`,rowHeader:`rgb(154, 109, 21)`,firstRow:`rgb(252, 220, 106)`,secondRow:`rgb(212, 157, 15)`},{baseName:`green`,rowHeader:`rgb(4, 108, 78)`,firstRow:`rgb(188, 240, 218)`,secondRow:`rgb(49, 196, 141)`},{baseName:`azure`,rowHeader:`rgb(3, 102, 114)`,firstRow:`rgb(175, 236, 239)`,secondRow:`rgb(22, 189, 202)`},{baseName:`indigo`,rowHeader:`rgb(16, 51, 191)`,firstRow:`rgb(210, 218, 250)`,secondRow:`rgb(98, 128, 249)`},{baseName:`purple`,rowHeader:`rgb(74, 29, 150)`,firstRow:`rgb(220, 215, 254)`,secondRow:`rgb(172, 148, 250)`},{baseName:`magenta`,rowHeader:`rgb(153, 21, 75)`,firstRow:`rgb(250, 209, 232)`,secondRow:`rgb(241, 126, 184)`}],le=oe.map(({baseName:e,header:t,color:n})=>re(e,t,n)),ue=se.map(({baseName:e,rowHeader:t,colHeader:n})=>ie(e,t,n)),de=ce.map(({baseName:e,rowHeader:t,firstRow:n,secondRow:r})=>ae(e,t,n,r)),fe=[...le,...ue,...de],pe={headerRowStyle:{bg:{rgb:`rgb(68,114,196)`},cl:{rgb:`rgb(255,255,255)`},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE},firstRowStyle:{bg:{rgb:`rgb(217,225,242)`}}},me=new ne(`default`,pe),he=new ne(`default-last-row`,{...pe,lastRowStyle:{bd:{t:{s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(68,114,196)`}}},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE}});var ge=class{constructor(){w(this,`_toggleRanges`,[])}refresh(e,t){let{startRow:n,endRow:r}=e,i=[],a=0,o=!1,s=-1;for(let e=n;e<=r;e++){if(!t(e)){a++,a%2==1?o=!0:(o=!1,s!==-1&&(i.push([s,e-1]),s=-1));continue}a%2==1?o?s===-1&&(s=e):(o=!0,s=e):o&&(i.push([s,e-2]),o=!1,s=-1),e===r&&o&&i.push([s,e])}this._toggleRanges=i}getToggleRanges(){return this._toggleRanges.concat()}getIsToggled(e){let t=0,n=this._toggleRanges.length-1;for(;t<=n;){let r=Math.floor((t+n)/2),[i,a]=this._toggleRanges[r];if(e<i)n=r-1;else if(e>a)t=r+1;else return!0}return!1}};let N=class extends t.Disposable{constructor(e,t,r){super(),this._sheetInterceptorService=e,this._resourceManagerService=t,this._univerInstanceService=r,w(this,`_rangeThemeStyleMap`,new Map),w(this,`_rangeThemeStyleRuleMap`,new Map),w(this,`_rTreeCollection`,new Map),w(this,`_defaultRangeThemeMap`,new Map),w(this,`_zebraCrossingCacheMap`,new Map),w(this,`_rowVisibleFuncSet`,new Map),w(this,`_rangeThemeMapChanged$`,new n.Subject),w(this,`rangeThemeMapChange$`,this._rangeThemeMapChanged$.asObservable()),this._registerIntercept(),this._initSnapshot(),this._initDefaultTheme()}_initDefaultTheme(){this.registerDefaultRangeTheme(me),this.registerDefaultRangeTheme(he);for(let e of fe)this.registerDefaultRangeTheme(e)}_ensureRangeThemeStyleMap(e){return this._rangeThemeStyleMap.has(e)||this._rangeThemeStyleMap.set(e,new Map),this._rangeThemeStyleMap.get(e)}_ensureRangeThemeStyleRuleMap(e){return this._rangeThemeStyleRuleMap.has(e)||this._rangeThemeStyleRuleMap.set(e,new Map),this._rangeThemeStyleRuleMap.get(e)}_ensureRTreeCollection(e){return this._rTreeCollection.has(e)||this._rTreeCollection.set(e,new t.RTree),this._rTreeCollection.get(e)}getDefaultRangeThemeStyle(e){return this._defaultRangeThemeMap.get(e)}getCustomRangeThemeStyle(e,t){return this._ensureRangeThemeStyleMap(e).get(t)}_getSheetRowVisibleFuncSet(e,t){this._rowVisibleFuncSet.has(e)||this._rowVisibleFuncSet.set(e,new Map);let n=this._rowVisibleFuncSet.get(e);return n.has(t)||n.set(t,new Set),n.get(t)}_getSheetRowVisibleHasInit(e,t){var n;return!!(this._rowVisibleFuncSet.has(e)&&(n=this._rowVisibleFuncSet.get(e))!=null&&n.has(t))}refreshSheetRowVisibleFuncSet(e,t){let n=this._getSheetRowVisibleFuncSet(e,t);n.clear();let r=this._univerInstanceService.getUnit(e);if(r){let e=r.getSheetBySheetId(t);if(e){let t=e.getRowCount(),r=e.getRowManager();for(let i=1;i<=t;i++)e.getRowVisible(i)?r.getRowHeight(i)===0&&n.add(i):n.add(i)}}}_ensureZebraCrossingCache(e,t,n){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);let r=this._zebraCrossingCacheMap.get(e);r.has(t)||r.set(t,new Map);let i=r.get(t);return i.has(n)||i.set(n,new ge),i.get(n)}registerRangeThemeRule(e,n){let{unitId:r,subUnitId:i,range:a}=n,o=(0,t.generateRandomId)(),s=this._ensureRangeThemeStyleRuleMap(r),c=this._ensureRTreeCollection(r);s.set(o,{rangeInfo:n,themeName:e}),c.insert({unitId:r,sheetId:i,range:a,id:o}),this._getSheetRowVisibleHasInit(r,i)||this.refreshSheetRowVisibleFuncSet(r,i);let l=this._ensureZebraCrossingCache(r,i,o),u=this._getSheetRowVisibleFuncSet(r,i);l.refresh(a,e=>!u.has(e))}getRegisteredRangeThemeStyle(e){let{unitId:t,subUnitId:n,range:r}=e,i=this._ensureRTreeCollection(t),a=Array.from(i.bulkSearch([{unitId:t,sheetId:n,range:r}]));if(a[0]){let e=this._ensureRangeThemeStyleRuleMap(t).get(a[0]);if(e)return e.themeName}}refreshZebraCrossingCacheBySheet(e,t){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);let n=this._zebraCrossingCacheMap.get(e);n.has(t)||n.set(t,new Map);let r=n.get(t);r&&r.forEach((n,i)=>{let a=this._ensureRangeThemeStyleRuleMap(e).get(i);a?n.refresh(a.rangeInfo.range,n=>!this._getSheetRowVisibleFuncSet(e,t).has(n)):r.delete(i)})}removeRangeThemeRule(e,t){let{unitId:n,subUnitId:r,range:i}=t,a=this._ensureRTreeCollection(n),o=Array.from(a.bulkSearch([{unitId:n,sheetId:r,range:i}])),s=this._ensureRangeThemeStyleRuleMap(n);for(let t=0;t<o.length;t++){let c=s.get(o[t]);if(c&&c.themeName===e){s.delete(o[t]),a.remove({unitId:n,sheetId:r,range:i,id:o[t]});let e=this._zebraCrossingCacheMap.get(n);if(e){let n=e.get(r);n&&n.delete(o[t])}break}}}registerDefaultRangeTheme(e){this._defaultRangeThemeMap.set(e.getName(),e),this._rangeThemeMapChanged$.next({type:`add`,styleName:e.getName()})}unRegisterDefaultRangeTheme(e){this._defaultRangeThemeMap.delete(e),this._rangeThemeMapChanged$.next({type:`remove`,styleName:e})}getRegisteredRangeThemes(){return Array.from(this._defaultRangeThemeMap.keys())}registerRangeThemeStyle(e,t){this._ensureRangeThemeStyleMap(e).set(t.getName(),t),this._rangeThemeMapChanged$.next({type:`add`,styleName:t.getName()})}unregisterRangeThemeStyle(e,t){this._ensureRangeThemeStyleMap(e).delete(t),this._rangeThemeMapChanged$.next({type:`remove`,styleName:t})}getALLRegisteredTheme(e){return Array.from(this._ensureRangeThemeStyleMap(e).keys())}getRangeThemeStyle(e,t){return this._defaultRangeThemeMap.has(t)?this._defaultRangeThemeMap.get(t):this._ensureRangeThemeStyleMap(e).get(t)}getCellStyle(e,t,n,r){let i={startRow:n,startColumn:r,endRow:n,endColumn:r},a=this._ensureRTreeCollection(e),o=Array.from(a.bulkSearch([{unitId:e,sheetId:t,range:i}]));if(o[0]){let i=this._ensureRangeThemeStyleRuleMap(e).get(o[0]);if(i){let{rangeInfo:a,themeName:s}=i,c=n-a.range.startRow,l=r-a.range.startColumn,u=this.getRangeThemeStyle(e,s),d=this._ensureZebraCrossingCache(e,t,o[0]).getIsToggled(n);if(u)return u.getStyle(c,l,n===a.range.endRow,r===a.range.endColumn,d)}}}_registerIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{id:y,effect:t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this.getCellStyle(a,o,r,i);if(s){let r=!e||e===t.rawData?{...t.rawData}:e;return r.themeStyle=s,n(r)}return n(e)}}))}toJson(e){let t=this._ensureRangeThemeStyleRuleMap(e),n=this._ensureRangeThemeStyleMap(e);if(n.size===0&&t.size===0)return`{}`;let r={};t.forEach((e,t)=>{r[t]=e});let i={};return n.forEach((e,t)=>{i[t]=e.toJson()}),JSON.stringify({rangeThemeStyleRuleMap:r,rangeThemeStyleMapJson:i})}fromJSON(e,t){let{rangeThemeStyleRuleMap:n,rangeThemeStyleMapJson:r}=t;n&&Object.keys(n).forEach(e=>{let{themeName:t,rangeInfo:r}=n[e];t.startsWith(`table`)||(this.registerRangeThemeRule(t,r),this._ensureRTreeCollection(r.unitId).insert({unitId:e,sheetId:r.subUnitId,range:r.range,id:e}))}),r&&Object.keys(r).forEach(t=>{let n=r[t],i=new ne(n.name);i.fromJson(n),this._ensureRangeThemeStyleMap(e).set(i.getName(),i)})}deleteUnitId(e){this._rangeThemeStyleMap.delete(e),this._rangeThemeStyleRuleMap.delete(e),this._rTreeCollection.delete(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>this.toJson(e),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:`SHEET_RANGE_THEME_MODEL_PLUGIN`,onLoad:(e,t)=>{this.fromJSON(e,t)},onUnLoad:e=>{this.deleteUnitId(e)}}))}dispose(){super.dispose(),this._rangeThemeStyleMap.clear(),this._rangeThemeStyleRuleMap.clear(),this._defaultRangeThemeMap.clear(),this._rTreeCollection.clear(),this._zebraCrossingCacheMap.clear(),this._rowVisibleFuncSet.clear()}};N=E([T(0,(0,t.Inject)(A)),T(1,(0,t.Inject)(t.IResourceManagerService)),T(2,(0,t.Inject)(t.IUniverInstanceService))],N);let _e={id:`sheet.mutation.set-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.registerRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},ve=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetRangeThemeStyleMutation]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,subUnitId:i.getSheetId(),range:n.range,themeName:n.themeName}},ye={id:`sheet.mutation.remove-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.removeRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},be=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[DeleteWorksheetRangeThemeStyleMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,subUnitId:i.getSheetId(),range:n.range,themeName:n.themeName}},xe=(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertRowMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},Se={id:`sheet.mutation.insert-row`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertRowMutation`);let{worksheet:i}=r,a=i.getRowManager(),{range:o,rowInfo:s}=n,{startRow:c,endRow:l}=o;a.insertRowsWithData(c,l,s);let u=l-c+1;return i.setRowCount(i.getRowCount()+u),i.getCellMatrix().insertRows(c,u),!0}},Ce=(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},we={id:`sheet.mutation.insert-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertColMutation`);let{worksheet:i}=r,a=i.getColumnManager(),{range:o,colInfo:s}=n,{startColumn:c,endColumn:l}=o;a.insertColumnsWithData(c,l,s);let u=l-c+1;return i.setColumnCount(i.getColumnCount()+u),i.getCellMatrix().insertColumns(o.startColumn,u),!0}},Te={id:`sheet.mutation.move-range`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{from:r,to:i}=n;if(!r||!i)return!1;let a=e.get(t.IUniverInstanceService).getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;let o=a.getSheetBySheetId(n.from.subUnitId),s=a.getSheetBySheetId(n.to.subUnitId);if(!o||!s)return!1;let c=o.getCellMatrix(),l=s.getCellMatrix();return new t.ObjectMatrix(r.value).forValue((e,t,n)=>{n==null?c.realDeleteValue(e,t):c.setValue(e,t,n)}),new t.ObjectMatrix(i.value).forValue((e,t,n)=>{n==null?l.realDeleteValue(e,t):l.setValue(e,t,n)}),!0}};function Ee(e,n){let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=a.startRow>o.startRow,c=a.endRow-a.startRow+1;return s?{unitId:r,subUnitId:i,sourceRange:t.Rectangle.clone(o),targetRange:{...a,endRow:a.endRow+c,startRow:a.startRow+c}}:{unitId:r,subUnitId:i,targetRange:t.Rectangle.clone(a),sourceRange:{...o,endRow:o.endRow-c,startRow:o.startRow-c}}}let De={id:`sheet.mutation.move-rows`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(!s)throw Error(`[MoveRowMutation] univerSheet is null!`);let c=s.getSheetBySheetId(i);if(!c)throw Error(`[MoveRowMutation] worksheet is null!`);let l=a.startRow,u=a.endRow-a.startRow+1,d=o.startRow;return(0,t.moveMatrixArray)(l,u,d,c.getRowManager().getRowData()),c.getCellMatrix().moveRows(l,u,d),!0}};function Oe(e,n){let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=a.startColumn>o.startColumn,c=a.endColumn-a.startColumn+1;return s?{unitId:r,subUnitId:i,sourceRange:t.Rectangle.clone(o),targetRange:{...a,endColumn:a.endColumn+c,startColumn:a.startColumn+c}}:{unitId:r,subUnitId:i,targetRange:t.Rectangle.clone(a),sourceRange:{...o,startColumn:o.startColumn-c,endColumn:o.endColumn-c}}}let ke={id:`sheet.mutation.move-columns`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(!s)throw Error(`[MoveColumnMutation] univerSheet is null!`);let c=s.getSheetBySheetId(i);if(!c)throw Error(`[MoveColumnMutation] worksheet is null!`);let l=a.startColumn,u=a.endColumn-a.startColumn+1,d=o.startColumn;return(0,t.moveMatrixArray)(l,u,d,c.getColumnManager().getColumnData()),c.getCellMatrix().moveColumns(l,u,d),!0}},Ae=(e,n)=>{let r=n.getRowManager().getRowData(),i={},a=e.range,o=(0,t.concatMatrixArray)(i,(0,t.sliceMatrixArray)(a.startRow,a.endRow,r));return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,rowInfo:o}},je={id:`sheet.mutation.remove-rows`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=n.range,o=i.getRowManager().getRowData(),s=[];for(let e=a.startRow;e<=a.endRow;e++)i.getRowFiltered(e)&&s.push(e);let c=a.endRow-a.startRow+1;return(0,t.spliceArray)(a.startRow,c,o),i.getCellMatrix().removeRows(a.startRow,c),i.setRowCount(i.getRowCount()-c),!0}},Me=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(i==null)throw Error(`worksheet is null error!`);let a=i.getColumnManager().getColumnData(),o={},s=n.range,c=(0,t.concatMatrixArray)(o,(0,t.sliceMatrixArray)(s.startColumn,s.endColumn,a));return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,colInfo:c}},P={id:`sheet.mutation.remove-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=n.range,o=i.getColumnManager().getColumnData(),s=a.endColumn-a.startColumn+1;return(0,t.spliceArray)(a.startColumn,s,o),i.setColumnCount(i.getColumnCount()-s),i.getCellMatrix().removeColumns(a.startColumn,s),!0}},F=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or worksheet is null error!`);let{worksheet:i}=r,a=i.getConfig().mergeData,o=n.ranges,s=[];for(let e=0;e<o.length;e++)for(let n=a.length-1;n>=0;n--){let r=a[n],i=o[e];t.Rectangle.intersects(r,i)&&s.push(a[n])}return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:s}},I={id:`sheet.mutation.remove-worksheet-merge`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or worksheet is null error!`);let{worksheet:i}=r,a=i.getConfig().mergeData,o=n.ranges;for(let e=0;e<o.length;e++)for(let n=a.length-1;n>=0;n--){let r=a[n],i=o[e];t.Rectangle.intersects(r,i)&&a.splice(n,1)}return i.getSpanModel().rebuild(a),!0}},Ne=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},Pe={id:`sheet.mutation.reorder-range`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{subUnitId:r,unitId:i,range:a,order:o}=n,s=e.get(t.IUniverInstanceService).getUnit(i).getSheetBySheetId(r);if(!s)return!1;let c=new t.ObjectMatrix;t.Range.foreach(a,(e,n)=>{if(o.hasOwnProperty(e)){let r=o[e],i=t.Tools.deepClone(s.getCellRaw(r,n));c.setValue(e,n,i)}});let l=s.getCellMatrix();return c.forValue((e,t,n)=>{l.setValue(e,t,n)}),!0}};function Fe(e,n){if(e==null)return e;let r=t.Tools.deepClone(e);if(n==null)return r;let i={};return`h`in n&&(i.h=r.h),`ia`in n&&(i.ia=r.ia),`ah`in n&&(i.ah=r.ah),`hd`in n&&(i.hd=r.hd),`s`in n&&(i.s=r.s),`custom`in n&&(i.custom=r.custom),i}function Ie(e,n){if(e==null)return e;let r=t.Tools.deepClone(e);if(n==null)return r;let i={};return`w`in n&&(i.w=r.w),`hd`in n&&(i.hd=r.hd),`s`in n&&(i.s=r.s),`custom`in n&&(i.custom=r.custom),i}let Le=(e,t)=>{let{unitId:n,subUnitId:r,columnData:i}=e,a={},o=t.getColumnManager();for(let e in i){let t=i[e];a[e]=Ie(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Re={id:`sheet.mutation.set-col-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{columnData:r}=n,i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{worksheet:a}=i,o=a.getColumnManager();for(let e in r){let t=r[e];if(t==null){o.removeColumn(Number(e));continue}let n=o.getColumnOrCreate(Number(e));Object.assign(n,t)}return!0}},ze=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Be={id:`sheet.mutation.set-col-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.TRUE)}}return!0}},Ve=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},He={id:`sheet.mutation.set-col-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.FALSE)}}return!0}},Ue={id:`sheet.mutation.set-gridlines-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.gridlinesColor=n.color,!0}};function We(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ge(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function Ke(e,t,n){if(e==null)return e;if(!We(e))return;let r={},i=!1;if(Ge(e,t,(e,t)=>{r[e]=t,i=!0}),n)for(let t in n){let a=n[t];if(!a||!Object.prototype.hasOwnProperty.call(e,t))continue;let o=a(e[t]);o!==void 0&&(r[t]=o,i=!0)}return i?r:void 0}function qe(e,t,n){if(e==null)return e;if(!We(e))return;let r={},i=!1;return Ge(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Je(e){switch(e){case`bd`:case`tr`:case`td`:case`ht`:case`vt`:case`tb`:case`pd`:case`bg`:return!0;default:return!1}}function Ye(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function Xe(e){return Ke(e,t.COLOR_STYLE_KEYS)}function Ze(e){return Ke(e,t.TEXT_DECORATION_KEYS,{cl:Xe})}function Qe(e){return Ke(e,t.BORDER_STYLE_KEYS,{cl:Xe})}function $e(e){return qe(e,t.BORDER_KEYS,Qe)}function et(e){return Ke(e,t.TEXT_ROTATION_KEYS)}function tt(e){return Ke(e,t.PADDING_KEYS)}function nt(e){if(e==null)return e;if(!(!We(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function rt(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return Ze(t);case`bg`:case`cl`:return Xe(t);case`bd`:return $e(t);case`tr`:return et(t);case`pd`:return tt(t);case`n`:return nt(t);default:return Ye(t)?t:void 0}}function it(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=t.Tools.isObject(e)?{...e}:{};return Ge(r,t.BORDER_KEYS,(e,t)=>{let n=Qe(t);n!==void 0&&(i[e]=n)}),i}function at(e,n,r){let i=e.getStyleByCell(n);i==null&&delete n.s,typeof r.s==`string`&&(r.s=e.get(r.s));let a=ct(i,r.s?r.s:null);a&&(t.Tools.removeNull(a),Object.entries(a).forEach(([e,t])=>{typeof t==`object`&&t&&Object.keys(t).length===0&&delete a[e]})),t.Tools.isEmptyObject(a)?delete n.s:n.s=e.setValue(a);let o=r.v?`${r.v}\r\n`:``;if(!r.p&&n.p){var s;o&&o!==((s=n.p.body)==null?void 0:s.dataStream)?delete n.p:ut(n.p,r.s?r.s:null)}}function ot(e,n){if(!n||!Object.keys(n).length)return e;let r=t.Tools.deepClone(e==null?{}:e)||{},i=n;for(let e of t.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(i,e))continue;let t=rt(e,i[e]);t!==void 0&&(e===`bd`?r[e]=st(r[e]||{},t):e in r||(r[e]=null))}return r}function st(e,n){if(!n||!Object.keys(n).length)return e;let r=e;for(let i of t.BORDER_KEYS)Object.prototype.hasOwnProperty.call(n,i)&&(i in e||(r[i]=null));return e}function ct(e,n,r=!1){if(n===null)return n;if(n===void 0)return e;let i=t.Tools.deepClone(e)||{},a=n;for(let e of t.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(a,e)||r&&Je(e))continue;let t=rt(e,a[e]);t!==void 0&&(e===`bd`?i[e]=it(i[e],t):i[e]=t)}if(`cl`in i){let e=i,t=e.cl;`ul`in e&&e.ul&&(e.ul.cl=t),`ol`in e&&e.ol&&(e.ol.cl=t),`st`in e&&e.st&&(e.st.cl=t)}return i}function lt(e,t){return e.some(e=>e.startIndex===t)?lt(e,t+1):t}function ut(e,n){var r;if(e.body==null)return;Array.isArray(e.body.textRuns)||(e.body.textRuns=[]);let i=0,a=[],o=((r=e.body)==null?void 0:r.paragraphs)||[];for(let r of e.body.textRuns){let{st:e,ed:s,ts:c={}}=r;if(i<e){let r={st:i,ed:e},o=ct({},n,!0);o&&t.Tools.removeNull(o),t.Tools.isEmptyObject(o)||(r.ts=o),a.push(r)}let l=ct(c,n,!0);l&&t.Tools.removeNull(l),t.Tools.isEmptyObject(l)?delete r.ts:r.ts=l,a.push(r),i=lt(o,s)}let s=e.body.dataStream.endsWith(`\r
2
+ `)?e.body.dataStream.length-2:e.body.dataStream.length;if(i<s){let e={st:i,ed:s},r=ct({},n,!0);r&&t.Tools.removeNull(r),t.Tools.isEmptyObject(r)||(e.ts=r),a.push(e)}e.body.textRuns=(0,t.normalizeTextRuns)(a)}function dt(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?+!!ft(n.v):e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ft(e){if(typeof e==`string`){if(e.toUpperCase()===`TRUE`)return!0;if(e.toUpperCase()===`FALSE`)return!1;if((0,t.isSafeNumeric)(e)){if(Number(e)===0)return!1;if(Number(e)===1)return!0}}if(typeof e==`number`){if(e===0)return!1;if(e===1)return!0}return typeof e==`boolean`?e:null}function pt(e){return e==null?null:(e.f===void 0&&(e.f=null),e.si===void 0&&(e.si=null),e.p===void 0&&(e.p=null),e.v===void 0&&(e.v=null),e.t===void 0&&(e.t=null),e.s===void 0&&(e.s=null),e.custom===void 0&&(e.custom=null),e)}let L=(e,n)=>{let{unitId:r,subUnitId:i,cellValue:a}=n,o=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(o==null)throw Error(`workbook is null error!`);let s=o.getSheetBySheetId(i);if(s==null)throw Error(`worksheet is null error!`);let c=s.getCellMatrix(),l=o.getStyles(),u=new t.ObjectMatrix;return new t.ObjectMatrix(a).forValue((e,n,r)=>{let i=t.Tools.deepClone(c==null?void 0:c.getValue(e,n))||{};i.s=ot(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(e,n,pt(i))}),{...n,options:{},cellValue:u.getMatrix()}},R={id:`sheet.mutation.set-range-values`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{cellValue:r,subUnitId:i,unitId:a}=n,o=e.get(t.IUniverInstanceService).getUnit(a);if(!o)return!1;let s=o.getSheetBySheetId(i);if(!s)return!1;let c=s.getCellMatrix(),l=o.getStyles();return new t.ObjectMatrix(r).forValue((e,n,r)=>{if(!r)c.realDeleteValue(e,n);else{let i=c.getValue(e,n)||{};i=ht(r,i,l),t.Tools.isEmptyObject(i)?c.realDeleteValue(e,n):c.setValue(e,n,i)}}),!0}},mt=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function ht(e,t,n){let r=c(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(mt.has(a)){let n=e[a];gt(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=dt(r,e)):a===`s`&&at(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=dt(r,t)),t.v===null&&(delete t.t,delete t.v),t}function gt(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let _t=(e,t)=>{let{unitId:n,subUnitId:r,rowData:i}=e,a={},o=t.getRowManager();for(let e in i){let t=i[e];a[e]=Fe(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},vt={id:`sheet.mutation.set-row-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowData:r}=n,i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{worksheet:a}=i,o=a.getRowManager();for(let e in r){let t=r[e];if(t==null){o.removeRow(Number(e));continue}let n=o.getRowOrCreate(Number(e));Object.assign(n,t)}return!0}},yt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},bt={id:`sheet.mutation.set-row-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=0)}}return!0}},xt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},St={id:`sheet.mutation.set-row-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=1)}}return!0}},Ct=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getColumnManager();for(let e=0;e<i.length;e++){let t=i[e];for(let e=t.startColumn;e<t.endColumn+1;e++)a[e]=o.getColumnWidth(e)}return{unitId:n,subUnitId:r,ranges:i,colWidth:a}},wt={id:`sheet.mutation.set-worksheet-col-width`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getColumnManager(),o=n.ranges;for(let e=0;e<o.length;e++){let r=o[e];for(let e=r.startColumn;e<r.endColumn+1;e++)i.getColVisible(e)&&(typeof n.colWidth==`number`?a.setColumnWidth(e,n.colWidth):t.Tools.isDefine(n.colWidth[e])&&a.setColumnWidth(e,n.colWidth[e]))}return!0}},Tt=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,columnCount:r.worksheet.getColumnCount()}},Et={id:`sheet.mutation.set-worksheet-column-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Dt={id:`sheet.mutation.set-worksheet-default-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},Ot=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetDefaultStyleMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,subUnitId:i.getSheetId(),defaultStyle:i.getDefaultCellStyle()}},kt=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,rowCount:r.worksheet.getRowCount()}},At={id:`sheet.mutation.set-worksheet-row-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},jt=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getRowManager();for(let{startRow:e,endRow:n}of i)for(let r=e;r<n+1;r++){var s,c;a[r]=(s=(c=o.getRow(r))==null?void 0:c.h)==null?t.getConfig().defaultRowHeight:s}return{unitId:n,subUnitId:r,ranges:i,rowHeight:a}},Mt=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getRowManager();for(let{startRow:e,endRow:t}of i)for(let n=e;n<=t;n++){var s;a[n]=(s=o.getRow(n))==null?void 0:s.ia}return{unitId:n,subUnitId:r,ranges:i,autoHeightInfo:a}},Nt=(e,t)=>{let{unitId:n,subUnitId:r,rowsAutoHeightInfo:i}=e,a=[],o=t.getRowManager();for(let e of i){var s,c;let{row:n}=e;a.push({row:n,autoHeight:(s=(c=o.getRow(n))==null?void 0:c.ah)==null?t.getConfig().defaultRowHeight:s})}return{unitId:n,subUnitId:r,rowsAutoHeightInfo:a}},Pt={id:`sheet.mutation.set-worksheet-row-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,rowHeight:i}=n,a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getRowManager();for(let{startRow:e,endRow:n}of r)for(let r=e;r<=n;r++)typeof i==`number`?s.setRowHeight(r,i):t.Tools.isDefine(i[r])&&s.setRowHeight(r,i[r]);return!0}},Ft={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let o=a.worksheet.getRowManager();for(let{startRow:e,endRow:t}of r)for(let n=e;n<=t;n++){let e=o.getRowOrCreate(n);if(typeof i==`number`)e.ia=i;else{var s;e.ia=(s=i[n])==null?void 0:s}}return!0}},It={id:`sheet.mutation.set-worksheet-row-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowsAutoHeightInfo:r}=n,i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=i.worksheet.getRowManager();for(let{row:e,autoHeight:t}of r){let n=a.getRowOrCreate(e);n.ah=t}return!0}},Lt={id:`sheet.mutation.toggle-gridlines`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},Rt={id:`sheet.operation.set-worksheet-active`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;let i=r.getWorksheets();for(let[,e]of i)if(e.getSheetId()===n.subUnitId)return r.setActiveSheet(e),!0;return!1}},z=function(e){return e.SET_WORKSHEET_ROW_HEIGHT=`sheet.mutation.set-worksheet-row-height`,e.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-is-auto-height`,e.SET_WORKSHEET_ROW_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-auto-height`,e.SET_WORKSHEET_COL_WIDTH=`sheet.mutation.set-worksheet-col-width`,e.SET_WORKSHEET_ACTIVE=`sheet.operation.set-worksheet-active`,e.MOVE_ROWS=`sheet.mutation.move-rows`,e.MOVE_COLUMNS=`sheet.mutation.move-columns`,e.SET_COL_HIDDEN=`sheet.mutation.set-col-hidden`,e.SET_COL_VISIBLE=`sheet.mutation.set-col-visible`,e.SET_ROW_HIDDEN=`sheet.mutation.set-row-hidden`,e.SET_ROW_VISIBLE=`sheet.mutation.set-row-visible`,e.INSERT_COL=`sheet.mutation.insert-col`,e.INSERT_ROW=`sheet.mutation.insert-row`,e.REMOVE_COL=`sheet.mutation.remove-col`,e.REMOVE_ROW=`sheet.mutation.remove-rows`,e.TOGGLE_GRIDLINES=`sheet.mutation.toggle-gridlines`,e.SET_GRIDLINES_COLOR=`sheet.mutation.set-gridlines-color`,e}({}),zt=function(e){return e.SET_RANGE_VALUES=`sheet.mutation.set-range-values`,e.MOVE_RANGE=`sheet.mutation.move-range`,e.REMOVE_WORKSHEET_MERGE=`sheet.mutation.remove-worksheet-merge`,e.ADD_WORKSHEET_MERGE=`sheet.mutation.add-worksheet-merge`,e.REORDER_RANGE=`sheet.mutation.reorder-range`,e.SET_WORKSHEET_DEFAULT_STYLE=`sheet.mutation.set-worksheet-default-style`,e.SET_ROW_DATA=`sheet.mutation.set-row-data`,e.SET_COL_DATA=`sheet.mutation.set-col-data`,e.SET_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.set-worksheet-range-theme-style`,e.DELETE_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.delete-worksheet-range-theme-style`,e}({}),Bt=[Pt.id,Ft.id,It.id,wt.id,Rt.id,De.id,ke.id,Be.id,He.id,St.id,bt.id,we.id,Se.id,P.id,je.id,Lt.id,Ue.id,At.id,Et.id],Vt=[R.id,Te.id,I.id,g.id,Pe.id,Dt.id,vt.id,Re.id,_e.id,ye.id];function Ht(e,n){switch(n.id){case zt.SET_RANGE_VALUES:{let e=n.params,r=new t.ObjectMatrix(e.cellValue).getDataRange();return r.endRow===-1?[]:e.cellValue?[{unitId:e.unitId,subUnitId:e.subUnitId,range:r}]:[]}case zt.MOVE_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.from.subUnitId,range:new t.ObjectMatrix(e.from.value).getRange()},{unitId:e.unitId,subUnitId:e.to.subUnitId,range:new t.ObjectMatrix(e.to.value).getRange()}]}case zt.REMOVE_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case zt.ADD_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case zt.REORDER_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case zt.SET_WORKSHEET_DEFAULT_STYLE:{let t=p(e,n.params);if(!t)return[];let{worksheet:r,unitId:i,subUnitId:a}=t;return[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1}}]}case zt.SET_ROW_DATA:{let t=p(e,n.params);if(!t)return[];let{worksheet:r,unitId:i,subUnitId:a}=t,{rowData:o}=n.params,s=Object.keys(o).map(Number);return s.length===0?[]:[{unitId:i,subUnitId:a,range:{startRow:Math.min(...s),endRow:Math.max(...s),startColumn:0,endColumn:r.getColumnCount()-1}}]}case zt.SET_COL_DATA:{let t=p(e,n.params);if(!t)return[];let{worksheet:r,unitId:i,subUnitId:a}=t,{columnData:o}=n.params,s=Object.keys(o).map(Number);return s.length===0?[]:[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:Math.min(...s),endColumn:Math.max(...s)}}]}case zt.SET_WORKSHEET_RANGE_THEME_STYLE:case zt.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function Ut(e,n){switch(e.id){case z.SET_WORKSHEET_ROW_HEIGHT:case z.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.ROW}}))}case z.SET_WORKSHEET_ROW_AUTO_HEIGHT:{let r=e.params;return r.rowsAutoHeightInfo.map(e=>({unitId:r.unitId,subUnitId:r.subUnitId,range:{startRow:e.row,endRow:e.row,startColumn:0,endColumn:n-1,rangeType:t.RANGE_TYPE.ROW}}))}case z.SET_WORKSHEET_COL_WIDTH:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.COLUMN}}))}case z.MOVE_ROWS:case z.MOVE_COLUMNS:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:t.targetRange},{unitId:t.unitId,subUnitId:t.subUnitId,range:t.sourceRange}]}case z.SET_COL_HIDDEN:case z.SET_COL_VISIBLE:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.COLUMN}}))}case z.SET_ROW_HIDDEN:case z.SET_ROW_VISIBLE:{let n=e.params;return n.ranges.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...e,rangeType:t.RANGE_TYPE.ROW}}))}case z.INSERT_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case z.INSERT_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case z.REMOVE_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case z.REMOVE_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case z.TOGGLE_GRIDLINES:case z.SET_GRIDLINES_COLOR:return[];default:return[]}}function Wt(e,n){if(e.length===0)return`definedName.nameEmpty`;let{unitId:a,formulaOrRefString:o,univerInstanceService:s,definedNamesService:c,superTableService:l,functionService:u,id:d}=n,f=c.getValueByName(a,e);if(f&&(d==null||d.length===0||f.id!==d)||l.hasTable(a,e))return`definedName.nameDuplicate`;if(!t.Tools.isValidParameter(e)||(0,r.isReferenceStringWithEffectiveColumn)(e)||!t.Tools.isStartValidPosition(e)&&!(0,i.hasCJKText)(e.substring(0,1)))return`definedName.nameInvalid`;let p=s.getUnit(a,t.UniverInstanceType.UNIVER_SHEET);if(!p)throw Error(`Workbook not found for unitId: ${a}`);return p.getSheets().some(t=>t.getName()===e)?`definedName.nameSheetConflict`:o.length===0?`definedName.formulaOrRefStringEmpty`:u.hasExecutor(e.toUpperCase())?`definedName.nameConflict`:!0}function Gt(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Kt(e,t){return e&&e.spanAnchor?Gt(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Gt(e)}function qt(e,n,r,i,a){let o=e.getCellMatrix(),s=e.getSpanModel().getMergedCellRange(n,r,i,a),c=new t.ObjectMatrix;return o.forValue((e,t)=>{let n=o.getValue(e,t);n&&c.setValue(e,t,n)}),s.forEach(e=>{let{startColumn:n,startRow:r,endColumn:i,endRow:a}=e;(0,t.createRowColIter)(r,a,n,i).forEach((e,t)=>{e===r&&t===n&&c.setValue(e,t,{...o.getValue(e,t),spanAnchor:{startRow:r,endRow:a,startColumn:n,endColumn:i}}),(e!==r||t!==n)&&(c.realDeleteValue(e,t),c.setValue(e,t,{spanAnchor:{startRow:r,endRow:a,startColumn:n,endColumn:i}}))})}),c}function Jt(e,n,r,i){let{startRow:a,startColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o-r);if(l=l||Kt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.startColumn-=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Yt(e,n,r,i){let{startRow:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o+r);if(l=l||Kt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.endColumn+=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Xt(e,n,r,i){let{startRow:a,startColumn:o,endColumn:s}=e,c=null,l=!1;for(let e=o;e<=s;e++){let t=n.getValue(a-r,e);if(l=l||Kt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.startRow-=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Zt(e,n,r,i){let{startColumn:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=o;e++){let t=n.getValue(s+r,e);if(l=l||Kt(t,n),!i&&l)break;t&&t.spanAnchor&&(c=c?{startRow:Math.min(t.spanAnchor.startRow,c.startRow),startColumn:Math.min(t.spanAnchor.startColumn,c.startColumn),endRow:Math.max(t.spanAnchor.endRow,c.endRow),endColumn:Math.max(t.spanAnchor.endColumn,c.endColumn)}:{startRow:t.spanAnchor.startRow,startColumn:t.spanAnchor.startColumn,endRow:t.spanAnchor.endRow,endColumn:t.spanAnchor.endColumn})}return l?(e.endRow+=r,{spanAnchor:c,hasValue:!0,range:e}):c?{spanAnchor:t.Rectangle.simpleRangesIntersect(e,c)?c:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Qt({range:e,allMatrixWithSpan:t,directions:n,isWorksheetHasSpan:r,maxRow:i,maxColumn:a}){let{left:o,right:s,up:c,down:l}=n,{startRow:u,startColumn:d,endRow:f,endColumn:p}=e,m=!1;if(o&&c&&u>0&&d>0){let n=t.getValue(u-1,d-1);Kt(n,t)&&(r&&n.spanAnchor?(e.startRow=n.spanAnchor.startRow,e.startColumn=n.spanAnchor.startColumn):(e.startRow=u-1,e.startColumn=d-1),m=!0)}if(s&&c&&u>0&&p<a-1){let n=t.getValue(u-1,p+1);Kt(n,t)&&(r&&n.spanAnchor?(e.startRow=n.spanAnchor.startRow,e.endColumn=n.spanAnchor.endColumn):(e.startRow=u-1,e.endColumn=p+1),m=!0)}if(o&&l&&f<i-1&&d>0){let n=t.getValue(f+1,d-1);Kt(n,t)&&(r&&n.spanAnchor?(e.endRow=n.spanAnchor.endRow,e.startColumn=n.spanAnchor.startColumn):(e.endRow=f+1,e.startColumn=d-1),m=!0)}if(s&&l&&f<i-1&&p<a-1){let n=t.getValue(f+1,p+1);Kt(n,t)&&(r&&n.spanAnchor?(e.endRow=n.spanAnchor.endRow,e.endColumn=n.spanAnchor.endColumn):(e.endRow=f+1,e.endColumn=p+1),m=!0)}return{hasValue:m,range:e}}function $t(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=qt(r,0,0,i-1,a-1),s=r.getSnapshot().mergeData.length>0,{left:c,right:l,up:u,down:d}=n,f=!0,p={...e},m=[];for(;f;){f=!1;let e=Qt({range:p,allMatrixWithSpan:o,directions:n,isWorksheetHasSpan:s,maxRow:i,maxColumn:a});if(e.hasValue){p=e.range,f=!0;continue}if(u&&p.startRow!==0){let{hasValue:e,range:t,spanAnchor:n}=Xt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}if(d&&p.endRow!==i-1){let{hasValue:e,range:t,spanAnchor:n}=Zt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}if(c&&p.startColumn!==0){let{hasValue:e,range:t,spanAnchor:n}=Jt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}if(l&&p.endColumn!==a-1){let{hasValue:e,range:t,spanAnchor:n}=Yt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}}return m.length>0&&(p=t.Rectangle.union(p,...m)),p}let en=e=>{let n=new t.ObjectMatrix;return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),n.forValue((e,t)=>{let r=n.getValue(e-1,t);r&&n.setValue(e,t,r+1)}),n},tn=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},nn=e=>{let t={area:0},n=(e,n)=>t.area<e?(t.area=e,t.range=n,!0):!1;return e.forValue((t,r,i)=>{let a=1,o=i;n(a*o,{startRow:t-o+1,endRow:t,startColumn:r,endColumn:r});let s={startRow:t-o+1,endRow:t,startColumn:0,endColumn:r};for(let i=r-1;i>=0&&e.getValue(t,i);i--){o=Math.min(e.getValue(t,i)||0,o),a++;let r=o*a;s.startColumn=i,s.startRow=t-o+1,n(r,s)}}),t},rn=(e,n)=>{t.Range.foreach(n,(t,n)=>{e.realDeleteValue(t,n)});for(let t=n.startColumn;t<=n.endColumn;t++){let r=n.endRow+1;if(e.getValue(r,t)>0){e.setValue(r,t,1);let n=r+1;for(;e.getValue(n,t)>0;)e.setValue(n,t,e.getValue(n-1,t)+1),n++}}return e},an=e=>{let t=[],n=nn(e);for(;n.area>0;)n.range&&(t.push(n.range),rn(e,n.range)),n=nn(e);return t},on=e=>an(en(e));var sn=class{constructor(){w(this,`_matrix`,new t.ObjectMatrix)}add(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return an(tn(this._matrix))}};function cn(e){let{rangeWithCoord:t,primaryWithCoord:n,style:r}=e,i={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType,unitId:t.unitId,sheetId:t.sheetId},primary:null,style:r};return n!=null&&(i.primary=ln(n)),i}function ln(e){let{actualRow:t,actualColumn:n,isMerged:r,isMergedMainCell:i}=e,{startRow:a,startColumn:o,endRow:s,endColumn:c}=e.mergeInfo;return{actualRow:t,actualColumn:n,isMerged:r,isMergedMainCell:i,startRow:a,startColumn:o,endRow:s,endColumn:c}}let un=function(e){return e[e.Tab=1]=`Tab`,e[e.Comma=2]=`Comma`,e[e.Semicolon=4]=`Semicolon`,e[e.Space=8]=`Space`,e[e.Custom=16]=`Custom`,e}({});var dn=class{constructor(){w(this,`_tabCount`,0),w(this,`_commaCount`,0),w(this,`_semicolonCount`,0),w(this,`_spaceCount`,0)}add(e){switch(e){case` `:this._tabCount++;break;case`,`:this._commaCount++;break;case`;`:this._semicolonCount++;break;case` `:this._spaceCount++;break;default:break}}update(e){e&&typeof e==`string`&&(e.includes(` `)&&this._tabCount++,e.includes(`,`)&&this._commaCount++,e.includes(`;`)&&this._semicolonCount++,e.trim().includes(` `)&&this._spaceCount++)}getDelimiter(){let e=Math.max(this._tabCount,this._commaCount,this._semicolonCount,this._spaceCount);return e===0||e===this._tabCount?un.Tab:e===this._commaCount?un.Comma:e===this._semicolonCount?un.Semicolon:e===this._spaceCount?un.Space:un.Tab}};function fn(e,t,n){let r=[];n!==void 0&&(e&un.Custom)>0&&r.push(n),(e&un.Tab)>0&&r.push(` `),(e&un.Comma)>0&&r.push(`,`),(e&un.Semicolon)>0&&r.push(`;`),(e&un.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=pn(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function pn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}let mn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function hn(e){if(e!=null){if(e.p)return mn(e.p);if(e.v&&typeof e.v==`string`)return e.v;if(e.t&&(e.t===t.CellValueType.FORCE_STRING||e.t===t.CellValueType.STRING))return String(e.v)}}function gn(e,n,r,i,a=!1){let{startColumn:o,startRow:s,endColumn:c,endRow:l}=t.Range.transformRange(n,e);if(o!==c)throw Error(`The range must be in the same column.`);if(r&&(r&un.Custom)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new dn:null,f=[];for(let t=s;t<=l;t++){let n=hn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=fn(u?d.getDelimiter():r,a,i),m=-1,h=0,g=0,_=[];for(let e of f){if(e!==void 0){let t=String(e).split(p);m=m<0?t.length:Math.max(m,t.length),_.push(t),h=g}else _.push(void 0);g++}return{rs:_,maxLength:m===-1?0:m,lastRow:h}}let _n=(e,t,n=``)=>e.reduce((e,r)=>{let i=r&&r[t];return typeof i==`string`?(i?(e[i]||(e[i]=[]),e[i].push(r)):e[n].push(r),e):(console.warn(r,`${t} is not string`),e)},{}),vn=(e=0)=>{let t=e;return function(){return t++}};function yn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function bn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(yn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function xn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,null)}),n.clone()}function Sn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})}),n.clone()}function Cn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{s:null})}),n.clone()}function wn(e){let{rows:t,cols:n}=e;return{startRow:t[0],endRow:t[t.length-1],startColumn:n[0],endColumn:n[n.length-1]}}function Tn(e,n,r,i){let a=n.get(t.IUniverInstanceService),o=r?a.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),s=i?o==null?void 0:o.getSheetBySheetId(i):o==null?void 0:o.getActiveSheet();if(!s)return null;let{startRow:c,endRow:l,startColumn:u,endColumn:d}=e,f=[],p=[];for(let e=c;e<=l;e++)s.getRowFiltered(e)||f.push(e);for(let e=u;e<=d;e++)p.push(e);return{rows:f,cols:p}}function En(e,n,r,i){let a=p(n.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!a)return e;let{worksheet:o}=a,s=[];for(let t of e){let{startRow:e,endRow:n,startColumn:r,endColumn:i}=t,a=[],c=e;for(let t=e;t<=n;t++)o.getRowFiltered(t)?(c<t&&a.push([c,t-1]),c=t+1):t===n&&a.push([c,n]);let l=s.findIndex(e=>e.startColumn===r&&e.endColumn===i);l>-1?s[l].rowIntervals=s[l].rowIntervals.concat(a):s.push({startColumn:r,endColumn:i,rowIntervals:a})}let c=[];for(let e of s){let{startColumn:n,endColumn:r,rowIntervals:i}=e,a=(0,t.mergeIntervals)(i);for(let[e,t]of a)c.push({startRow:e,endRow:t,startColumn:n,endColumn:r})}return c}let Dn=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),On=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var B=class{constructor(){w(this,`_model`,new Map),w(this,`_ruleChange$`,new n.Subject),w(this,`ruleChange$`,this._ruleChange$.asObservable()),w(this,`_ruleRefresh$`,new n.Subject),w(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),w(this,`_rangeRuleInitStateChange`,new n.BehaviorSubject(!1)),w(this,`rangeRuleInitStateChange$`,this._rangeRuleInitStateChange.asObservable())}dispose(){this._ruleChange$.complete(),this._ruleRefresh$.complete()}ruleRefresh(e){this._ruleRefresh$.next(e)}getRangeRuleInitState(){return this._rangeRuleInitStateChange.value}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,t,n){this._ensureRuleMap(e,t).set(n.id,n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:n,type:`add`})}deleteRule(e,t,n){var r;let i=(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.delete(n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:i,type:`delete`})}}setRule(e,t,n,r){let i=this.getRule(e,t,n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.set(n,r),this._ruleChange$.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:`set`})}}getRule(e,t,n){var r;return(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}getSubunitRuleList(e,t){var n;return[...(((n=this._model.get(e))==null?void 0:n.get(t))||new Map).values()]}getSubunitRuleListLength(e,t){var n;let r=(n=this._model.get(e))==null?void 0:n.get(t);return r?r.size:0}_ensureRuleMap(e,t){let n=this._model.get(e);n||(n=new Map,this._model.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t),r=[...n.keys()];e[t]={},r.forEach(r=>{let i=n.get(r);e[t][r]=[...i.values()]})}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n],i=new Map;Object.keys(r).forEach(e=>{let t=r[e].reduce((e,t)=>(e.set(t.id,t),e),new Map);i.set(e,t)}),t.set(n,i)}),this._model=t}deleteUnitModel(e){this._model.delete(e)}createRuleId(e,n){let r=(0,t.generateRandomId)(4),i=this._ensureRuleMap(e,n);for(;i.has(r);)r=(0,t.generateRandomId)(4);return r}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)for(let n of i.values())if(n.permissionId===t)return[e,r];return null}};let kn=(e,t)=>{let n=e.get(B),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:Mn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},An={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(B);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},jn=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:An.id,params:t}},Mn={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(B);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},Nn={type:t.CommandType.COMMAND,id:`sheet.command.add-range-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(B),{rule:o,permissionId:s}=n,{unitId:c,subUnitId:l,ranges:u,description:d,viewState:f,editState:p}=o,m=[{ranges:u,permissionId:s,id:a.createRuleId(c,l),description:d,unitType:o.unitType,unitId:c,subUnitId:l,viewState:f,editState:p}];if(await r.executeCommand(Mn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:Mn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:An.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},V=function(e){return e[e.MOVE_START=0]=`MOVE_START`,e[e.MOVING=1]=`MOVING`,e[e.MOVE_END=2]=`MOVE_END`,e[e.ONLY_SET=3]=`ONLY_SET`,e}({});var Pn=class extends t.Disposable{constructor(e){super(),this._workbook=e,w(this,`_worksheetSelections`,new Map),w(this,`_worksheetLastSelectionPrimaryCell`,new Map),w(this,`_selectionMoveStart$`,new n.Subject),w(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),w(this,`_selectionMoving$`,new n.Subject),w(this,`selectionMoving$`,this._selectionMoving$.asObservable()),w(this,`_selectionMoveEnd$`,new n.BehaviorSubject([])),w(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),w(this,`_selectionSet$`,new n.BehaviorSubject([])),w(this,`selectionSet$`,this._selectionSet$.asObservable()),w(this,`selectionChanged$`,void 0),w(this,`_beforeSelectionMoveEnd$`,new n.BehaviorSubject([])),w(this,`beforeSelectionMoveEnd$`,this._beforeSelectionMoveEnd$.asObservable()),this.selectionChanged$=(0,n.merge)(this._selectionMoveEnd$,this._selectionSet$)}dispose(){super.dispose(),this._beforeSelectionMoveEnd$.complete(),this._selectionMoveEnd$.complete(),this._selectionMoving$.complete(),this._selectionMoveStart$.complete(),this._selectionSet$.complete(),this._workbook=null,this.clear()}addSelections(e,t){let n=this.getSelectionsOfWorksheet(e);n.push(...t),this._selectionSet$.next(n)}setSelections(e,t=[],n){switch(this.setSelectionsOfWorksheet(e,t),n){case V.MOVE_START:this._selectionMoveStart$.next(t);break;case V.MOVING:this._selectionMoving$.next(t);break;case V.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case V.ONLY_SET:this._selectionSet$.next(t);break;default:this._selectionSet$.next(t);break}}getCurrentSelections(){return this._getCurrentSelections()}getSelectionOfWorksheet(e){return this.getSelectionsOfWorksheet(e)}getSelectionsOfWorksheet(e){return this._worksheetSelections.has(e)||this._worksheetSelections.set(e,[]),this._worksheetSelections.get(e)}getLastSelectionPrimaryCellOfWorksheet(e){var t;return(t=this._worksheetLastSelectionPrimaryCell.get(e))==null?null:t}setSelectionsOfWorksheet(e,t){this._worksheetSelections.set(e,[...t]),t.length>0&&t[t.length-1].primary&&this._worksheetLastSelectionPrimaryCell.set(e,t[t.length-1].primary)}deleteSheetSelection(e){this._worksheetSelections.set(e,[]),this._worksheetLastSelectionPrimaryCell.delete(e)}clear(){this._worksheetSelections.clear(),this._worksheetLastSelectionPrimaryCell.clear(),this._selectionSet$.next([])}_getCurrentSelections(){return this.getSelectionsOfWorksheet(this._workbook.getActiveSheet().getSheetId())}getCurrentLastSelection(){let e=this._getCurrentSelections();return e[e.length-1]}};let H=class extends t.RxDisposable{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return null;let n=e.getActiveSheet();return{unitId:e.getUnitId(),sheetId:n.getSheetId()}}get currentSelectionParam(){return this._currentSelectionPos}constructor(e){super(),this._instanceSrv=e,w(this,`_cellStylesCache`,new Map),w(this,`selectionMoveStart$`,void 0),w(this,`selectionMoving$`,void 0),w(this,`selectionMoveEnd$`,void 0),w(this,`selectionSet$`,void 0),w(this,`selectionChanged$`,void 0),w(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.shareReplay)(1),(0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe().pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionSet$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionChanged$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,n.of)([]))).pipe((0,n.distinctUntilChanged)((e,t)=>e.length===t.length?e.length===0&&t.length===0?!0:e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n])):!1),(0,n.skip)(1)).pipe((0,n.takeUntil)(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe((0,n.takeUntil)(this.dispose$)).subscribe(()=>{this._cellStylesCache.clear()}))}dispose(){super.dispose(),this._cellStylesCache.clear(),this._workbookSelections.forEach(e=>e.dispose()),this._workbookSelections.clear(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)([]),this.selectionSet$=(0,n.of)(null),this.selectionChanged$=(0,n.of)(null)}clear(){this._workbookSelections.forEach(e=>e.clear())}getCurrentSelections(){return this._getCurrentSelections()}getCurrentLastSelection(){let e=this._getCurrentSelections();return e==null?void 0:e[e.length-1]}getCurrentLastSelectionPrimaryCell(){let e=this._currentSelectionPos;if(!e)return null;let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getLastSelectionPrimaryCellOfWorksheet(n)}addSelections(e,t,n){if(typeof e==`string`){this._ensureWorkbookSelection(e).addSelections(t,n);return}let r=this._currentSelectionPos;if(!r)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:i,sheetId:a}=r;this._ensureWorkbookSelection(i).addSelections(a,e)}setSelections(e,t,n,r){if(typeof e==`string`&&typeof t==`string`){let i=e;this._ensureWorkbookSelection(i).setSelections(t,n||[],r==null?V.ONLY_SET:r);return}let i=this._currentSelectionPos;if(!i)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:a,sheetId:o}=i;if(typeof e==`object`){var s;let r=e==null?n:e,i=(s=t)==null?V.ONLY_SET:s;this._ensureWorkbookSelection(a).setSelections(o,r,i)}}clearCurrentSelections(){this._getCurrentSelections().splice(0)}isOverlapping(){let e=this.getCurrentSelections();return e==null?!1:e.some(({range:t},n)=>e.some(({range:e},r)=>n===r?!1:t.startRow<=e.endRow&&t.endRow>=e.startRow&&t.startColumn<=e.endColumn&&t.endColumn>=e.startColumn))}_getCurrentSelections(){let e=this._currentSelectionPos;if(!e)return[];let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getSelectionsOfWorksheet(n)}getWorkbookSelections(e){return this._ensureWorkbookSelection(e)}_ensureWorkbookSelection(e){let t=this._workbookSelections.get(e);if(!t){let n=this._instanceSrv.getUnit(e);if(!n)throw Error(`[SheetsSelectionsService]: cannot resolve unit with id "${e}"!`);t=new Pn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var n;let r=(n=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getActiveSheet(),i=this.getCurrentSelections();if(!r||i.length===0)return{isAllValuesSame:!1,value:null};let a=null;for(let n=0;n<i.length;n++){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=i[n].range;for(let n=o;n<=s;n++)for(let i=c;i<=l;i++){let o=`${n}_${i}`,s;this._cellStylesCache.has(o)?s=this._cellStylesCache.get(o):(s=r.getComposedCellStyle(n,i),this._cellStylesCache.set(o,s));let c=s[e];if(a!=null&&!t.Tools.diffValue(a,c))return{isAllValuesSame:!1,value:null};a=c}}return{isAllValuesSame:!0,value:a}}};H=E([T(0,t.IUniverInstanceService)],H);let Fn=`REF_SELECTIONS_ENABLED`,In={id:`sheet.command.clear-selection-all`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),{unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId});if(!i)return!1;let a=e.get(H),{unitId:o,subUnitId:s}=i,c=(n==null?void 0:n.ranges)||((r=a.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(c!=null&&c.length))return!1;let l=e.get(t.ICommandService),u=e.get(t.IUndoRedoService),d=e.get(A),f=En(c,e,o,s),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:xn(f)},_=L(e,g);m.push({id:R.id,params:g}),h.push({id:R.id,params:_});let v=d.onCommandExecute({id:In.id,params:n});return m.push(...v.redos),h.unshift(...v.undos),(0,t.sequenceExecute)(m,l)?(u.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},Ln={id:`sheet.command.clear-selection-format`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),{unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId});if(!i)return!1;let a=e.get(H),{unitId:o,subUnitId:s}=i,c=(n==null?void 0:n.ranges)||((r=a.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(c!=null&&c.length))return!1;let l=e.get(t.ICommandService),u=e.get(t.IUndoRedoService),d=e.get(A),f=En(c,e,o,s),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:Cn(f)},_=L(e,g);m.push({id:R.id,params:g}),h.push({id:R.id,params:_});let v=d.onCommandExecute({id:Ln.id,params:n});return m.push(...v.redos),h.unshift(...v.undos),(0,t.sequenceExecute)(m,l)?(u.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}};function Rn(e,n,r=!0){let i=n.getMatrixWithMergedCells(...(0,t.selectionToArray)(e)),a=[];if(i.forValue((n,r,i)=>{if(i.colSpan!==void 0&&i.rowSpan!==void 0){let o={startRow:n,startColumn:r,endRow:n+i.rowSpan-1,endColumn:r+i.colSpan-1};t.Rectangle.contains(e,o)||a.push(o)}}),a.length===0)return e;let o=t.Rectangle.union(e,...a);return r?Rn(o,n,r):o}function zn(e,n,r){let i=null;return r.getMatrixWithMergedCells(e,n,e,n).forValue((e,n,r)=>(i={actualRow:e,actualColumn:n,startRow:e,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:e+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:t.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:e,startRow:e,startColumn:n,endRow:e,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:t.RANGE_TYPE.NORMAL}}function Bn(e,t,n){let{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return Number.isNaN(r)&&(e.startRow=0),Number.isNaN(a)&&(e.endRow=t-1),Number.isNaN(i)&&(e.startColumn=0),Number.isNaN(o)&&(e.endColumn=n-1),e}function U(e,n){let r=Number.isNaN(e.startRow)?0:e.startRow,i=Number.isNaN(e.startColumn)?0:e.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:e.startRow,endColumn:e.startColumn,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}let Vn=(e,t,n)=>({id:W.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:U(e,n)}]}});function Hn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Un(e){function t(t,n){function r(t){for(let r=t.startRow;r<=t.endRow;r++)if(!e.getRowFiltered(r))for(let e=t.startColumn;e<=t.endColumn;e++)n(r,e,t)}r(t)}return{forOperableEach:t}}let Wn=e=>e.id!==y;function Gn(e,n,r,i,a,o,s){let c={};for(let t=n;t<=r;t++)for(let n=i;n<=a;n++){let r=o?e.getCellWithFilteredInterceptors(s,n,b,Wn):e.getCellWithFilteredInterceptors(t,s,b,Wn);!r||!r.s||(c[t]||(c[t]={}),c[t][n]={s:r.s})}for(let e in c){for(let n in c[e]){let r=c[e][n];r.s&&typeof r.s==`object`&&t.Tools.isEmptyObject(r.s)&&delete r.s,t.Tools.isEmptyObject(r)&&delete c[e][n]}t.Tools.isEmptyObject(c[e])&&delete c[e]}return c}let Kn=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),qn=class extends H{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe((0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)(null),this.selectionSet$=(0,n.of)(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let e=this._instanceSrv.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET);e.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let r=new n.BehaviorSubject(e);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{let{unit:t}=e;this._ensureWorkbookSelection(t.getUnitId()),r.next([...r.getValue(),t])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),r.next(r.getValue().filter(t=>t!==e))})),r.pipe((0,n.map)(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};qn=E([T(0,t.IUniverInstanceService)],qn);function Jn(e,n){let r=e.get(t.IContextService).getContextValue(Fn);return e.get(r&&!n?Kn:H)}let W={id:`sheet.operation.set-selections`,type:t.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return Jn(e).setSelections(i,a,[...n],r),!0}},Yn={id:`sheet.command.select-range`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:r,subUnit:i,range:a}=n,o=e.get(t.ICommandService),s=p(e.get(t.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:U(a,s.worksheet),style:null}];return o.syncExecuteCommand(W.id,{unitId:r,subUnitId:i,selections:c})}},Xn=`sheet.command.move-range`,Zn={type:t.CommandType.COMMAND,id:Xn,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.ErrorService),o=e.get(t.LocaleService);if(!await e.get(A).beforeCommandExecute({id:Zn.id,params:n}))return!1;let s=$n(e,n);return s?(0,t.sequenceExecute)(s.redos,r).result?(i.pushUndoRedo({unitID:s.unitId,undoMutations:s.undos,redoMutations:s.redos}),!0):!1:(a.emit(o.t(`sheets.info.acrossMergedCell`)),!1)}};function Qn(e,n){var r,i,a,o,s;let c=e.get(t.IUniverInstanceService),l=p(c),u=(r=(i=n.toUnitId)==null?n.fromUnitId:i)==null?l==null?void 0:l.unitId:r,d=(a=n.fromSubUnitId)==null?l==null?void 0:l.subUnitId:a,f=(o=(s=n.toSubUnitId)==null?n.fromSubUnitId:s)==null?l==null?void 0:l.subUnitId:o;if(!u||!d||!f||n.fromUnitId&&n.toUnitId&&n.fromUnitId!==n.toUnitId)return null;let m=c.getUniverSheetInstance(u),h=m==null?void 0:m.getSheetBySheetId(d),g=m==null?void 0:m.getSheetBySheetId(f);return!h||!g?null:{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:h,toWorksheet:g}}function $n(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=Qn(e,t);if(!c)return null;let l=e.get(A),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=er(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:Zn.id,params:t},_=l.onCommandExecute(g),v=[...(r=_.preRedos)==null?[]:r,...h.redos,..._.redos],y=[...(i=_.preUndos)==null?[]:i,...h.undos,..._.undos];if(a&&(v.push({id:W.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:tr(t.fromRange,t.toRange,p,m)}],type:V.MOVE_END}}),y.push({id:W.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:U(t.fromRange,p)}],type:V.MOVE_END}})),o){let e=l.afterCommandExecute(g);v.push(...e.redos),y.push(...e.undos)}if(s){let{undos:e,redos:n}=l.generateMutationsOfAutoHeight({unitId:u,subUnitId:f,ranges:d===f?[t.fromRange,t.toRange]:[t.toRange]});v.push(...n),y.push(...e)}return{unitId:u,redos:v,undos:y}}function er(e,n,r,i=!1){let a=n.unitId,o=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_SHEET);if(!o)return null;let{subUnitId:s,range:c}=n,{subUnitId:l,range:u}=r,d=o.getSheetBySheetId(s),f=o.getSheetBySheetId(l);if(!d||!f)return null;let p=Rn(u,f,!1);if(!t.Rectangle.equals(u,p)&&!i)return null;let m=d.getCellMatrix(),h=f.getCellMatrix(),g=new t.ObjectMatrix,_=new t.ObjectMatrix,v=new t.ObjectMatrix,y=new t.ObjectMatrix;t.Range.foreach(c,(e,n)=>{var r;let i=(r=t.Tools.deepClone(m.getValue(e,n)))==null?null:r;i!=null&&i.s&&(i.s=o.getStyles().get(i.s)),g.setValue(e,n,null),_.setValue(e,n,i);let a=(0,t.cellToRange)(e,n),s=t.Rectangle.getRelativeRange(a,c),l=t.Rectangle.getPositionRange(s,u);v.setValue(l.startRow,l.startColumn,t.Tools.deepClone(i))}),t.Range.foreach(u,(e,n)=>{var r;let i=(r=t.Tools.deepClone(h.getValue(e,n)))==null?null:r;y.setValue(e,n,i)});let b={fromRange:n.range,toRange:r.range,from:{value:g.getMatrix(),subUnitId:s},to:{value:v.getMatrix(),subUnitId:l},unitId:a},x={fromRange:r.range,toRange:n.range,from:{value:y.getMatrix(),subUnitId:l},to:{value:_.getMatrix(),subUnitId:s},unitId:a};return{redos:[{id:Te.id,params:b}],undos:[{id:Te.id,params:x}]}}function tr(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=U(t,r);if(o){let e=o.endRow-o.startRow+1,t=o.endColumn-o.startColumn+1;s.endRow=s.startRow+e-1,s.endColumn=s.startColumn+t-1,s.actualRow=s.startRow,s.actualColumn=s.startColumn,s.isMerged=!1,s.isMergedMainCell=!0}return s}let nr={id:`sheet.command.set-range-values`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let o=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),{value:s,range:c,redoUndoId:l}=n,u=c?[c]:o;if(!u||!u.length)return!1;let d=e.get(t.ICommandService),f=e.get(t.IUndoRedoService),m=e.get(A),{subUnitId:h,unitId:g,workbook:_,worksheet:v}=a,y=new t.ObjectMatrix,b;if(t.Tools.isArray(s))for(let e=0;e<u.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=u[e];for(let e=t;e<=r;e++)for(let r=n;r<=i;r++)y.setValue(e,r,s[e-t][r-n])}else if((0,t.isICellData)(s))for(let e=0;e<u.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=u[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)y.setValue(e,t,s)}else b=s,u=b?[new t.ObjectMatrix(b).getStartEndScope()]:[];let x={unitId:g,subUnitId:h,cellValue:(i=b)==null?y.getMatrix():i},S=L(e,x),C=(0,t.mapObjectMatrix)(x.cellValue,(e,t)=>v.getCellHeight(e,t)||void 0);if(!d.syncExecuteCommand(R.id,x))return!1;let{undos:w,redos:T}=m.onCommandExecute({id:nr.id,params:x}),{undos:E,redos:D}=m.generateMutationsOfAutoHeight({unitId:g,subUnitId:h,ranges:u,cellHeights:new t.ObjectMatrix(C)});if((0,t.sequenceExecute)([...T,...D],d).result){let e=[{id:R.id,params:x},...T,...D,Vn(u[u.length-1],_,v)],t=[{id:R.id,params:S},...w,...E];return o&&o.length&&t.push({id:W.id,params:{unitId:g,subUnitId:h,selections:o,reveal:!0}}),f.pushUndoRedo({unitID:g,undoMutations:t,redoMutations:e,id:l}),!0}return!1}};function rr(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=e.get(t.IUniverInstanceService),d=e.get(A),f=u.getUniverSheetInstance(a),p=f==null?void 0:f.getSheetBySheetId(o);if(p){let n=p.getCellMatrix(),u=n.getDataRange();if(s.startColumn<=u.endColumn||s.startRow<=u.endRow){let l,d;if(c===t.Dimension.COLUMNS){let e=Math.min(s.endRow,u.endRow),r=0;for(let i=s.startRow;i<=e;i++){let e=n.getRow(i),a=e?(0,t.getArrayLength)(e)-1:0;r=Math.max(r,a)}l={startRow:s.startRow,startColumn:s.startColumn,endRow:e,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:l.startColumn+i,endRow:e,endColumn:l.endColumn+i}}else{let e=Math.min(s.endColumn,u.endColumn),t=u.endRow;l={startRow:s.startRow,startColumn:s.startColumn,endRow:t,endColumn:e};let n=s.endRow-s.startRow+1;d={startRow:l.startRow+n,startColumn:s.startColumn,endRow:l.endRow+n,endColumn:e}}let f=er(e,{unitId:a,subUnitId:o,range:l},{unitId:a,subUnitId:o,range:d},!0);f&&(r.push(...f.redos),i.push(...f.undos))}if(Object.entries(l).length===0)for(let e=s.startRow;e<=s.endRow;e++){l[e]||(l[e]={});for(let t=s.startColumn;t<=s.endColumn;t++)l[e][t]=null}let f={subUnitId:o,unitId:a,cellValue:l},m=L(e,f),{undos:h,redos:g}=d.onCommandExecute({id:nr.id,params:{...f,range:s}});r.push({id:R.id,params:f},...g),i.push({id:R.id,params:m},...h)}return{redo:r,undo:i}}function ir(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=e.get(t.IUniverInstanceService),u=e.get(A),d=l.getUniverSheetInstance(a),f=d==null?void 0:d.getSheetBySheetId(o);if(f){let n=f.getCellMatrix(),l=n.getDataRange(),d={subUnitId:o,unitId:a,cellValue:xn([s])},p=L(e,d),m=u.onCommandExecute({id:nr.id,params:d});if(r.push({id:R.id,params:d},...m.redos),i.push(...m.undos,{id:R.id,params:p}),s.startColumn<=l.endColumn||s.startRow<=l.endRow){let u=null,d=null;if(c===t.Dimension.COLUMNS&&s.endColumn<l.endColumn){let e=Math.min(s.endRow,l.endRow),r=0;for(let i=s.startRow;i<=e;i++){let e=n.getRow(i),a=e?(0,t.getArrayLength)(e)-1:0;r=Math.max(r,a)}u={startRow:s.startRow,startColumn:s.endColumn+1,endRow:e,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:u.startColumn-i,endRow:e,endColumn:u.endColumn-i}}if(c===t.Dimension.ROWS&&s.endRow<l.endRow){let e=Math.min(s.endColumn,l.endColumn),t=l.endRow;u={startRow:s.endRow+1,startColumn:s.startColumn,endRow:t,endColumn:e};let n=s.endRow-s.startRow+1;d={startRow:u.startRow-n,startColumn:s.startColumn,endRow:u.endRow-n,endColumn:e}}if(u&&d){let t=er(e,{unitId:a,subUnitId:o,range:u},{unitId:a,subUnitId:o,range:d},!0);t&&(r.push(...t.redos),i.push(...t.undos))}}}return{redo:r,undo:i}}function ar(e,n,r,i,a,o){let{startRow:s,endRow:c,startColumn:l,endColumn:u}=n;if(a===t.Dimension.ROWS){let t=c-s+1;for(let n=r;n>=s;n--)for(let r=l;r<=u;r++){let i=e.getValue(n,r);i==null?e.realDeleteValue(n+t,r):e.setValue(n+t,r,i)}for(let t=c;t>=s;t--)for(let n=l;n<=u;n++)o&&o[t]&&o[t][n]?e.setValue(t,n,o[t][n]):e.realDeleteValue(t,n)}else if(a===t.Dimension.COLUMNS){let t=u-l+1;for(let n=s;n<=c;n++)for(let r=i;r>=l;r--){let i=e.getValue(n,r);i==null?e.realDeleteValue(n,r+t):e.setValue(n,r+t,i)}for(let t=s;t<=c;t++)for(let n=u;n>=l;n--)o&&o[t]&&o[t][n]?e.setValue(t,n,o[t][n]):e.realDeleteValue(t,n)}}function or(e,n,r,i,a){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=n,u=s-o+1,d=l-c+1;if(a===t.Dimension.ROWS)for(let t=o;t<=r;t++)for(let n=c;n<=l;n++){let r=e.getValue(t+u,n);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}else if(a===t.Dimension.COLUMNS)for(let t=o;t<=s;t++)for(let n=c;n<=i;n++){let r=e.getValue(t,n+d);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}}let sr=`sheet.command.delete-range-move-left`,cr={type:t.CommandType.COMMAND,id:sr,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=p(s);if(!u)return!1;let{worksheet:d,workbook:f,subUnitId:m,unitId:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=c.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v={range:g,subUnitId:m,unitId:h,shiftDimension:t.Dimension.COLUMNS},y=l.onCommandExecute({id:cr.id,params:{range:g}}),{redo:b,undo:x}=ir(e,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(Vn(g,f,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,t.sequenceExecute)(S,a).result){let e=l.afterCommandExecute({id:cr.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),C.push(...e.undos),S.push(...e.redos),o.pushUndoRedo({unitID:h,undoMutations:C.reverse(),redoMutations:S}),!0}return!1}},lr=`sheet.command.delete-range-move-up`,ur={type:t.CommandType.COMMAND,id:lr,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=p(s);if(!u)return!1;let{unitId:d,subUnitId:f,workbook:m,worksheet:h}=u,g=n==null?void 0:n.range;if(!g){let e=c.getCurrentLastSelection();g=e==null?void 0:e.range}if(!g)return!1;let _={range:g,subUnitId:f,unitId:d,shiftDimension:t.Dimension.ROWS},v=l.onCommandExecute({id:ur.id,params:{range:g}}),{redo:y,undo:b}=ir(e,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Vn(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,t.sequenceExecute)(x,a).result){let e=l.afterCommandExecute({id:ur.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},dr=`sheet.command.insert-range-move-down`,fr={type:t.CommandType.COMMAND,id:dr,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=p(s);if(!f)return!1;let{unitId:m,subUnitId:h,worksheet:g,workbook:_}=f,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=g.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(C.startRow,C.endRow,v.startColumn,v.endColumn).getDataRange().endRow,T=Math.max(w+(v.endRow-v.startRow+1)-C.endRow,0);if(T>0){let n=v.startRow-1,r=g.getRowHeight(n),i={unitId:m,subUnitId:h,range:{startRow:C.endRow+1,endRow:C.endRow+T,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:Array(T).fill(void 0).map(()=>({h:r,hd:t.BooleanNumber.FALSE}))};b.push({id:Se.id,params:i});let a=xe(e,i);x.push({id:je.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=g.getCell(e,t);n&&(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=rr(e,{range:v,subUnitId:h,unitId:m,shiftDimension:t.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:fr.id,params:{range:v}});if(b.push(...k.redos),b.push(Vn(v,_,g)),x.push(...(r=k.preUndos)==null?[]:r),b.unshift(...(i=k.preRedos)==null?[]:i),x.unshift(...k.undos),(0,t.sequenceExecute)(b,a)){let e=l.afterCommandExecute({id:fr.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:m,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},pr=`sheet.command.insert-range-move-right`,mr={type:t.CommandType.COMMAND,id:pr,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(H),l=e.get(A),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=p(s);if(!f)return!1;let{workbook:m,worksheet:h,unitId:g,subUnitId:_}=f,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=h.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(v.startRow,v.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,T=Math.max(w+(v.endColumn-v.startColumn+1)-C.endColumn,0);if(T>0){let n=v.startColumn-1,r=h.getColumnWidth(n),i={unitId:g,subUnitId:_,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+T},colInfo:Array(T).fill(void 0).map(()=>({w:r,hd:t.BooleanNumber.FALSE}))};b.push({id:we.id,params:i});let a=Ce(e,i);x.push({id:P.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=h.getCell(e,t);!n||!n.s||(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=rr(e,{range:v,subUnitId:_,unitId:g,shiftDimension:t.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:mr.id,params:{range:v}});if(b.push(...k.redos),b.push(Vn(v,m,h)),x.push(...(r=k.preUndos)==null?[]:r),b.unshift(...(i=k.preRedos)==null?[]:i),x.unshift(...k.undos),(0,t.sequenceExecute)(b,a).result){let e=l.afterCommandExecute({id:mr.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:g,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},hr=`sheet.command.insert-row`,gr={type:t.CommandType.COMMAND,id:hr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(A),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:gr.id,params:n})?r.syncExecuteCommand(_r.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},_r={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,n)=>{var r,i,a,o;let s=p(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:m,cellValue:h}=n,{startRow:g,endRow:_}=f;f.rangeType=t.RANGE_TYPE.ROW;let v=m===t.Direction.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(A),S={unitId:u,subUnitId:d,range:f},C=l.getRowHeight(v);C!==l.getConfig().defaultRowHeight&&(S.rowInfo=Array(_-g+1).fill(void 0).map(()=>({h:C,hd:t.BooleanNumber.FALSE})));let w=xe(e,S),T=[{id:Se.id,params:S}],E=[{id:je.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:R.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:gr.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Vn(f,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:gr.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E,redoMutations:T}),!0}return!1}},vr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,subUnitId:c,unitId:l}=o,u=n.value||0,d=a.startRow,f=a.startRow+u-1,m=s.getColumnCount()-1,h={unitId:l,subUnitId:c,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:m},cellValue:Gn(s,d,f,0,m,!0,d-1)};return e.get(t.ICommandService).executeCommand(gr.id,h)}},yr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i;if((r==null?void 0:r.length)===1)i=r[0];else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=i.endRow-i.startRow+1,u=i.endRow+1,d=i.endRow+l,f=o.getColumnCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:t.RANGE_TYPE.ROW},cellValue:Gn(o,u,d,0,f,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(gr.id,m)}},br={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.startRow,f=a.startRow+u-1,m=s.getColumnCount()-1,h=Gn(s,d,f,0,m,!0,d-1),g={unitId:c,subUnitId:l,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:h};return e.get(t.ICommandService).executeCommand(gr.id,g)}},xr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.endRow+1,f=a.endRow+u,m=s.getColumnCount()-1,h={unitId:c,subUnitId:l,direction:t.Direction.DOWN,range:{startRow:d,endRow:f,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:Gn(s,d,f,0,m,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(gr.id,h)}},Sr=`sheet.command.insert-col`,Cr={type:t.CommandType.COMMAND,id:Sr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(A),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:Cr.id,params:n})?r.syncExecuteCommand(wr.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},wr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,n)=>{var r,i,a,o;let s=p(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:m,cellValue:h}=n,{startColumn:g,endColumn:_}=f;f.rangeType=t.RANGE_TYPE.COLUMN;let v=m===t.Direction.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(A),S={unitId:u,subUnitId:d,range:f},C=l.getColumnWidth(v);C!==l.getConfig().defaultColumnWidth&&(S.colInfo=Array(_-g+1).fill(void 0).map(()=>({w:C,hd:t.BooleanNumber.FALSE})));let w=Ce(e,S),T=[{id:we.id,params:S}],E=[{id:P.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:R.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:Cr.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Vn(f,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:Cr.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E.filter(Boolean),redoMutations:T.filter(Boolean)}),!0}return!1}},Tr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=n.value||0,u=i.startColumn,d=i.startColumn+l-1,f=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Gn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Cr.id,m)}},Er={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(H).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=r.endColumn-r.startColumn+1,l=r.endColumn+1,u=r.endColumn+c,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:t.Direction.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:Gn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(Cr.id,f)}},Dr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=n.value||0,u=i.startColumn,d=i.startColumn+l-1,f=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Gn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Cr.id,m)}},Or={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=n.value||0,u=i.endColumn+1,d=i.endColumn+l,f=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f},cellValue:Gn(o,0,f,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(Cr.id,m)}},kr=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Vn(e,t,n);r.executeCommand(i.id,i.params)}},300),Ar=`sheet.command.remove-row`,jr={type:t.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(A),{range:c,unitId:l,subUnitId:u}=n,d=En([c],e,l,u).reverse(),f=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=Ae(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:je.id,params:r}),t.push({id:Se.id,params:i}),t.push({id:R.id,params:a}),m.push(...n),f.unshift(...t)});let h=s.onCommandExecute({id:Ar,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;kr(c,a,o,g);let n=s.afterCommandExecute({id:Ar,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,...f,...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,...m,...h.redos,...n.redos]}),!0}return!1}},Mr={type:t.CommandType.COMMAND,id:Ar,handler:async(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=e.get(H),o=(n==null?void 0:n.range)||((r=a.getCurrentLastSelection())==null?void 0:r.range);if(!o)return!1;let s=e.get(A),c=e.get(t.ICommandService),{worksheet:l,unitId:u,subUnitId:d}=i;return o={...o,startColumn:0,endColumn:Math.max(l.getMaxColumns()-1,0)},await s.beforeCommandExecute({id:Mr.id,params:{range:o}})?c.syncExecuteCommand(jr.id,{range:o,unitId:u,subUnitId:d}):!1}},Nr=`sheet.command.remove-col`,Pr={type:t.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(A),{range:c,unitId:l,subUnitId:u}=n,d={unitId:l,subUnitId:u,range:c},f=Me(e,d),m={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(0,o.getRowCount()-1,c.startColumn,c.endColumn).getMatrix()},h=s.onCommandExecute({id:Nr,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:P.id,params:d},...h.redos],g).result){var _,v;kr(c,a,o,g);let n=s.afterCommandExecute({id:Nr,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:we.id,params:f},{id:R.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:P.id,params:d},...h.redos,...n.redos]}),!0}return!1}},Fr={type:t.CommandType.COMMAND,id:Nr,handler:async(e,n)=>{var r;let i=e.get(H),a=e.get(A),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||(s=(r=i.getCurrentLastSelection())==null?void 0:r.range),!s)return!1;let c=p(e.get(t.IUniverInstanceService));if(!c)return!1;let{worksheet:l,subUnitId:u,unitId:d}=c;return s={...s,startRow:0,endRow:Math.max(l.getMaxRows()-1,0)},await a.beforeCommandExecute({id:Fr.id,params:{range:s}})?o.syncExecuteCommand(Pr.id,{range:s,unitId:d,subUnitId:u}):!1}},Ir=(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=m(r,n);if(!o)throw Error(`[RemoveSheetUndoMutationFactory]: Worksheet is null error!`);let{workbook:s,worksheet:c}=o,l=c.getConfig();return{index:s.getConfig().sheetOrder.findIndex(e=>e===i),sheet:l,unitId:a}},Lr={id:`sheet.mutation.remove-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=r.getUniverSheetInstance(a);return o?o.removeSheet(i):!1}};function Rr(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function zr(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let Br=`sheet.command.move-rows`,Vr={id:Br,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(H),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[Wr(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW&&e.range.startRow<=o&&o<=e.range.endRow);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(A),f=p(e.get(t.IUniverInstanceService),n);if(!f)return!1;let{workbook:m,worksheet:h}=f,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Rn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Rr(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startRow:s,endRow:s+b.endRow-b.startRow},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=Ee(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Vr.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:De.id,params:w}],k=[...(i=D.preUndos)==null?[]:i,{id:De.id,params:T}];if(x){let e=s-o<0,t=b.endRow-b.startRow+1,n=e?C:{...C,startRow:C.startRow-t,endRow:C.endRow-t},r={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:n,primary:U(n,h),style:null}]},i={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:W.id,params:r}),k.push({id:W.id,params:i})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Vr.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),k.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:k,redoMutations:O}),!0}return!1}},Hr=`sheet.command.move-cols`,Ur={id:Hr,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(H),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[Wr(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN&&e.range.startColumn<=o&&o<=e.range.endColumn);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(A),f=p(e.get(t.IUniverInstanceService),n);if(!f)return!1;let{workbook:m,worksheet:h}=f,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Rn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(zr(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startColumn:s,endColumn:s+b.endColumn-b.startColumn},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=Oe(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Ur.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:ke.id,params:w}],k=[...(i=D.preUndos)==null?[]:i,{id:ke.id,params:T}];if(x){let e=b.endColumn-b.startColumn+1,t=s-o<0?C:{...C,startColumn:C.startColumn-e,endColumn:C.endColumn-e},n={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:t,primary:U(t,h),style:null}]},r={unitId:g,subUnitId:_,type:V.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:W.id,params:n}),k.push({id:W.id,params:r})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Ur.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),k.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:k,redoMutations:O}),!0}return!1}};function Wr(e){return{range:e,primary:null,style:null}}let Gr=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._univerInstanceService=t,w(this,`_sceneMap`,new Map),w(this,`_sheetSkeletonParamStore`,new Map),w(this,`_buildSkeleton$`,new n.Subject),w(this,`buildSkeleton$`,this._buildSkeleton$.asObservable()),this._init()}dispose(){super.dispose(),this._sheetSkeletonParamStore.forEach(e=>e.forEach(e=>e.skeleton.dispose())),this._sheetSkeletonParamStore.clear()}_disposeByUnitId(e){let t=this._sheetSkeletonParamStore.get(e);t&&(t.forEach(e=>e.skeleton.dispose()),this._sheetSkeletonParamStore.delete(e))}_init(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._initWorkbookSkeleton(e.unit))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeByUnitId(e.getUnitId())))}_initWorkbookSkeleton(e){let t=e.getUnitId();this._initSheetsSkeleton(e),this.disposeWithMe(e.sheetCreated$.subscribe(n=>{let r=this._sheetSkeletonParamStore.get(t);if(!r)return;let i=n.getSheetId(),a=this._buildSkeleton(n,e.getStyles());r.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})})),this.disposeWithMe(e.sheetDisposed$.subscribe(e=>{let n=this._sheetSkeletonParamStore.get(t);if(!n)return;let r=e.getSheetId(),i=n.get(r);i&&i.skeleton.dispose(),n.delete(r)}))}_initSheetsSkeleton(e){let t=e.getUnitId(),n=new Map;e.getWorksheets().forEach(r=>{let i=r.getSheetId(),a=this._buildSkeleton(r,e.getStyles());n.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})}),this._sheetSkeletonParamStore.set(t,n)}_buildSkeleton(e,t){let n=this._injector.createInstance(i.SpreadsheetSkeleton,e,t),r=e.getUnitId(),a=this._sceneMap.get(r);return a&&n.setScene(a),this._buildSkeleton$.next(n),n}setScene(e,t){this._sceneMap.set(e,t);let n=this._sheetSkeletonParamStore.get(e);n&&n.forEach(e=>e.skeleton.setScene(t))}getSkeletonsByUnitId(e){let t=this._sheetSkeletonParamStore.get(e);return t?Array.from(t.values()).map(e=>e.skeleton):[]}getSkeleton(e,t){var n;return(n=this.getSkeletonParam(e,t))==null?void 0:n.skeleton}getSkeletonParam(e,t){let n=this._sheetSkeletonParamStore.get(e);if(n)return n.get(t)}newSkeleton(e,t,n,r){return this.newSkeletonParam(e,t,n,r).skeleton}newSkeletonParam(e,t,n,r){let i=this._buildSkeleton(n,r),a=this._sheetSkeletonParamStore.get(e);a||(a=new Map,this._sheetSkeletonParamStore.set(e,a));let o={unitId:e,sheetId:t,skeleton:i,dirty:!1};return a.set(t,o),o}ensureSkeleton(e,t){let n=this.getSkeleton(e,t);if(n)return n;let r=this._univerInstanceService.getUnit(e);if(!r)return;let i=r.getSheetBySheetId(t);if(i)return this.newSkeleton(e,t,i,r.getStyles())}};Gr=E([T(0,(0,t.Inject)(t.Injector)),T(1,(0,t.Inject)(t.IUniverInstanceService))],Gr);function Kr(e,n){let r=new t.ObjectMatrix;return e.map(e=>t.Range.transformRange(e,n)).forEach(e=>{t.Range.foreach(e,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}),r}function qr(e,t){if(!t)return{suitableRanges:e,remainingRanges:[]};let n=t.worksheet.getColumnCount(),r=Math.ceil(1e4/n),i=[],a=[],o=t.getOffsetRelativeToRowCol(0,t.scrollY).row,s=e.map(e=>{let t;return t=o>=e.startRow&&o<=e.endRow?0:o<e.startRow?e.startRow-o:o-e.endRow,{range:e,distance:t,rowCount:e.endRow-e.startRow+1}});s.sort((e,t)=>e.distance===t.distance?e.rowCount-t.rowCount:e.distance-t.distance);let c=0;for(let e of s)if(c+e.rowCount<=r)i.push(e.range),c+=e.rowCount;else{let t=r-c;if(t>0){let n={...e.range,endRow:e.range.startRow+t-1},o={...e.range,startRow:e.range.startRow+t};i.push(n),a.push(o),c=r}else a.push(e.range)}return{suitableRanges:i,remainingRanges:a}}function Jr(e){let t=0;return e.forEach(()=>{t++}),t}let Yr=`sheet.command.reorder-range`,Xr={id:Yr,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let{subUnitId:a,unitId:o,range:s,order:c}=n,l=e.get(t.ICommandService),u={id:Pe.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:Pe.id,params:Ne(u.params)},f=e.get(A),p=f.onCommandExecute({id:Xr.id,params:n}),m=[...(r=p.preRedos)==null?[]:r,u,...p.redos],h=[...(i=p.preUndos)==null?[]:i,d,...p.undos],g=(0,t.sequenceExecute)(m,l),{suitableRanges:_,remainingRanges:v}=qr([s],e.get(Gr).getSkeleton(o,a)),{undos:y,redos:b}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:a,ranges:[s],autoHeightRanges:_,lazyAutoHeightRanges:v}),x=f.afterCommandExecute({id:Xr.id,params:n});return g.result?((0,t.sequenceExecute)([...x.redos,...b],l),e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[...h,...x.undos,...y],redoMutations:[...m,...x.redos,...b]}),!0):!1}},G={MoveRangeCommandId:Xn,InsertRowCommandId:hr,InsertColCommandId:Sr,RemoveColCommandId:Nr,RemoveRowCommandId:Ar,DeleteRangeMoveLeftCommandId:sr,DeleteRangeMoveUpCommandId:lr,InsertRangeMoveDownCommandId:dr,InsertRangeMoveRightCommandId:pr,MoveColsCommandId:Hr,MoveRowsCommandId:Br,ReorderRangeCommandId:Yr},K=function(e){return e[e.Set=0]=`Set`,e[e.Delete=1]=`Delete`,e[e.HorizontalMove=2]=`HorizontalMove`,e[e.VerticalMove=3]=`VerticalMove`,e[e.Unknown=4]=`Unknown`,e}({}),Zr=e=>{let n={...e},r=Number.isNaN(n.startRow)&&Number.isNaN(n.endRow)&&!Number.isNaN(n.startColumn)&&!Number.isNaN(n.endColumn),i=Number.isNaN(n.startColumn)&&Number.isNaN(n.endColumn)&&!Number.isNaN(n.startRow)&&!Number.isNaN(n.endRow);return(n.rangeType===t.RANGE_TYPE.COLUMN||r)&&(n.startRow=0,n.endRow=t.MAX_ROW_COUNT-1),(n.rangeType===t.RANGE_TYPE.ROW||i)&&(n.startColumn=0,n.endColumn=t.MAX_COLUMN_COUNT-1),n.rangeType===t.RANGE_TYPE.ALL&&(n.startColumn=0,n.endColumn=t.MAX_COLUMN_COUNT-1,n.startRow=0,n.endRow=t.MAX_ROW_COUNT-1),n},Qr=e=>{let n=e.rangeType;return e.rangeType===t.RANGE_TYPE.COLUMN?n=t.RANGE_TYPE.ROW:e.rangeType===t.RANGE_TYPE.ROW&&(n=t.RANGE_TYPE.COLUMN),{startRow:e.startColumn,endRow:e.endColumn,startColumn:e.startRow,endColumn:e.endRow,rangeType:n}},$r=(e,t,n)=>{let r={...n},i={...t},a=(e,t)=>{let n=Math.max(e.start,t.start),r=Math.min(e.end,t.end);return r<n?null:{start:n,end:r}},o=e=>e.end-e.start+1,s=(e,t)=>({start:e.start-t.start,end:e.start-t.start+e.end-e.start}),c=(e,t)=>({start:t.start+e.start,end:t.start+e.start+e.end-e.start}),l=t.start>e.start;if(l){let n=Math.min(e.end,t.start)-e.start+1;i.start-=n,i.end-=n}let u=o(e),d=u,f=a(e,r),p=f&&o(f)>=o(r);if(e.end<r.start)r.start-=u,r.end-=u;else if(f){let t=o(f);if(p){let t=c(s(r,e),i);r.start=t.start,r.end=t.end}else f.start>e.start?l?(r.end-=t+u,r.start-=u):r.end-=t:l?r.end-=t:r.start>e.start&&r.end>e.end?(r.start-=u,r.end-=u+t):r.end-=t}let m=a(i,r);return p||(i.start<=r.start?(r.start+=d,r.end+=d):m&&(l?i.end<=r.start||i.start<=r.start&&i.end>=r.start?(r.start+=d,r.end+=d):i.start>=r.start&&i.start<=r.end&&(r.end+=d):r.start<i.start&&r.end>i.start?r.end+=d:(r.start>=i.end||r.start>=i.start&&r.start<=i.end)&&(r.end+=d,r.start+=d))),{step:r.start-n.start,length:o(r)-o(n)}},ei=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Zr(n),a=Zr(r),o=Zr(t),s=$r({start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow},{start:o.startRow,end:o.endRow});return s===null?[{type:K.Delete}]:[{type:K.VerticalMove,step:s.step||0,length:s.length||0}]},ti=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startRow,o=r.endRow-r.startRow+1,s=i.startRow,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveRows(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},ni=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[n];let a=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{a.setValue(e,t,1)});let o=new t.ObjectMatrix;return t.Range.foreach(r,(e,t)=>{if(Object.prototype.hasOwnProperty.call(i,e)){var n;let r=i[e],s=(n=a.getValue(r,t))==null?0:n;o.setValue(e,t,s)}}),o.forValue((e,t,n)=>{a.setValue(e,t,n)}),(0,t.queryObjectMatrix)(a,e=>e===1)},ri=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Zr(n),a=Zr(r),o=Zr(t),s=$r({start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn},{start:o.startColumn,end:o.endColumn});return s===null?[{type:K.Delete}]:[{type:K.HorizontalMove,step:s.step||0,length:s.length||0}]},ii=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startColumn,o=r.endColumn-r.startColumn+1,s=i.startColumn,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveColumns(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},ai=(e,n)=>{var r,i;let a=(r=e.params)==null?void 0:r.toRange,o=(i=e.params)==null?void 0:i.fromRange;if(!a||!o)return[];let s=[];if(t.Rectangle.contains(a,n)&&s.push({type:K.Delete}),t.Rectangle.contains(o,n)){s.push({type:K.Delete});let e=t.Rectangle.getRelativeRange(n,o),r=t.Rectangle.getPositionRange(e,a);return[{type:K.Set,range:r}]}return s},oi=(e,n)=>{var r,i;let a=(r=e.params)==null?void 0:r.toRange,o=(i=e.params)==null?void 0:i.fromRange;if(!a||!o||!t.Rectangle.intersects(o,n)&&!t.Rectangle.intersects(a,n))return[n];if(t.Rectangle.contains(o,n)){let e=t.Rectangle.getRelativeRange(n,o);return[t.Rectangle.getPositionRange(e,a)]}let s=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{s.setValue(e,t,1)});let c=new t.ObjectMatrix,l=t.Rectangle.getIntersects(o,n);l&&t.Range.foreach(l,(e,t)=>{s.getValue(e,t)&&(s.setValue(e,t,void 0),c.setValue(e,t,1))});let u=a.startColumn-o.startColumn,d=a.startRow-o.startRow,f={startColumn:a.startColumn-u,endColumn:a.endColumn-u,startRow:a.startRow-d,endRow:a.endRow-d};return f&&t.Range.foreach(f,(e,t)=>{var n;let r=e+d,i=t+u;s.setValue(r,i,(n=c.getValue(e,t))==null?0:n)}),(0,t.queryObjectMatrix)(s,e=>e===1)},si=(e,n)=>{let r=Zr(e),i=Zr(n),a=e=>e.endColumn-e.startColumn+1,o=e=>e.endRow-e.startRow+1;if(r.startRow<=i.startRow&&r.endRow>=i.endRow){if(i.startColumn<r.startColumn&&i.endColumn>=r.startColumn&&i.endColumn<=r.endColumn||i.startColumn<r.startColumn&&i.endColumn>=r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e)return{step:0,length:-a(e)}}if(i.startColumn>=r.startColumn&&i.endColumn<=r.endColumn&&o(r)>=o(i))return null;if(i.startColumn>=r.startColumn&&i.startColumn<=r.endColumn&&i.endColumn>r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e){let t=-a(e);return{step:-(a(r)-a(e)),length:t}}}if(i.startColumn>r.endColumn)return{step:-a(r),length:0}}return{step:0,length:0}},ci=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=si(r,t);if(!a)i.push({type:K.Delete});else{let{step:e,length:t}=a;i.push({type:K.HorizontalMove,step:e,length:t})}return i},li=(e,t,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[];let a=[];if(n&&n.length>0){let e=i.startRow;for(let t=i.startRow;t<=i.endRow;t++){if(n.includes(t)){if(t===e){e=t+1;continue}o({...i,startRow:e,endRow:t-1}),e=t+1;continue}t===i.endRow&&o({...i,startRow:e,endRow:i.endRow})}}else o(i);function o(e){let n=si(Qr(e),Qr(t));if(!n)a.push({type:K.Delete});else{let{step:e,length:t}=n;a.push({type:K.VerticalMove,step:e,length:t})}}return a},ui=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[];if(t.Rectangle.contains(r,n)&&n.endRow===n.startRow){let e=[],t=n.startRow;for(let n in i)if(i[n]===t){let r=Number(n);return e.push({type:K.VerticalMove,step:r-t,length:0}),e}return[]}return[]},di=(e,t)=>{let n=Zr(e),r=Zr(t),i=e=>e.endColumn-e.startColumn+1;return n.startRow<=r.startRow&&n.endRow>=r.endRow?r.startColumn<n.startColumn&&r.endColumn>=n.startColumn&&r.endColumn<=n.endColumn||r.startColumn<n.startColumn&&r.endColumn>=n.endColumn?{step:0,length:i(n)}:r.startColumn>=n.startColumn&&r.endColumn<=n.endColumn||r.startColumn>=n.startColumn&&r.startColumn<=n.endColumn&&r.endColumn>n.endColumn||r.startColumn>=n.endColumn?{step:i(n),length:0}:{step:0,length:0}:{step:0,length:0}};function fi(e,n,r){let i=[];if(t.Rectangle.contains(n,r)&&i.push({type:K.Delete}),t.Rectangle.contains(e,r)){i.push({type:K.Delete});let a=t.Rectangle.getRelativeRange(r,e),o=t.Rectangle.getPositionRange(a,n);return[{type:K.Set,range:o}]}return i}let pi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=di(Qr(r),Qr(t));return i.push({type:K.VerticalMove,step:a,length:o}),i},mi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=di(r,t);return i.push({type:K.HorizontalMove,step:a,length:o}),i},hi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=di(Qr(r),Qr(t));return i.push({type:K.VerticalMove,step:a,length:o}),i},gi=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endRow-i.startRow+1,o={...i,startRow:i.startRow,endRow:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e+a,t,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},_i=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=di(r,t);return i.push({type:K.HorizontalMove,step:a,length:o}),i},vi=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endColumn-i.startColumn+1,o={...i,startColumn:i.startColumn,endColumn:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e,t+a,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},yi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=si(r,t);if(!a)i.push({type:K.Delete});else{let{step:e,length:t}=a;i.push({type:K.HorizontalMove,step:e,length:t})}return i},bi=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:1/0},o=i.endColumn-i.startColumn+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e,t-o,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e,t-o,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},xi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=si(Qr(r),Qr(t));if(!a)i.push({type:K.Delete});else{let{step:e,length:t}=a;i.push({type:K.VerticalMove,step:e,length:t})}return i},Si=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={...i,startRow:i.startRow,endRow:1/0},o=i.endRow-i.startRow+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e-o,t,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e-o,t,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},Ci=(e,n)=>{var r;let i=(0,t.mergeIntervals)(((r=e.ranges)==null?[e.range]:r).map(e=>[e.startRow,e.endRow])),a=n.startRow,o=n.endRow;for(let e=i.length-1;e>=0;e--){let[t,r]=i[e];if(t<=n.startRow&&r>=n.endRow)return[];if(r<a){let e=r-t+1;a-=e,o-=e}else if(!(t>o)){let e=Math.max(t,a),n=Math.min(r,o)-e+1;if(o-=n,t<=a){let t=e-a;a-=t}}}return[{...n,startRow:a,endRow:o}]},wi=(e,n)=>{let r=e.params,i=r.range.startRow,a=r.range.endRow-r.range.startRow+1;if(r.direction===t.Direction.UP){if(i<n.startRow)return[{...n,startRow:n.startRow+a,endRow:n.endRow+a}];if(i<=n.endRow)return[{...n,endRow:n.endRow+a}]}else if(i<=n.startRow)return[{...n,startRow:n.startRow+a,endRow:n.endRow+a}];else if(i<=n.endRow+1)return[{...n,endRow:n.endRow+a}];return[n]},Ti=(e,n)=>{let r=e.params,i=r.range.startColumn,a=r.range.endColumn-r.range.startColumn+1;if(r.direction===t.Direction.LEFT){if(i<n.startColumn)return[{...n,startColumn:n.startColumn+a,endColumn:n.endColumn+a}];if(i<=n.endColumn)return[{...n,endColumn:n.endColumn+a}]}else if(i<=n.startColumn)return[{...n,startColumn:n.startColumn+a,endColumn:n.endColumn+a}];else if(i<=n.endColumn+1)return[{...n,endColumn:n.endColumn+a}];return[n]},Ei=(e,t)=>{let n={...t};return e.forEach(e=>{switch(e.type){case K.Delete:n=null;break;case K.HorizontalMove:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case K.VerticalMove:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case K.Set:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Di=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:n=yi(t,e);break;case G.DeleteRangeMoveUpCommandId:n=xi(t,e);break;case G.InsertColCommandId:n=mi(t,e);break;case G.InsertRangeMoveDownCommandId:n=hi(t,e);break;case G.InsertRangeMoveRightCommandId:n=_i(t,e);break;case G.InsertRowCommandId:n=pi(t,e);break;case G.MoveColsCommandId:n=ri(t,e);break;case G.MoveRangeCommandId:n=ai(t,e);break;case G.MoveRowsCommandId:n=ei(t,e);break;case G.RemoveColCommandId:n=ci(t,e);break;case G.RemoveRowCommandId:n=li(t,e);break;case G.ReorderRangeCommandId:n=ui(t,e);break}return Ei(n,e)},Oi=(e,n,r)=>[cr.id,ur.id].includes(n.id)||Mi(n,r).some(n=>t.Rectangle.intersects(n,e))?Di(e,n):e,ki=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:return bi(t,e);case G.DeleteRangeMoveUpCommandId:return Si(t,e);case G.InsertRangeMoveDownCommandId:return gi(t,e);case G.InsertRangeMoveRightCommandId:return vi(t,e);case G.InsertColCommandId:return Ti(t,e);case G.InsertRowCommandId:return wi(t,e);case G.MoveColsCommandId:return ii(t,e);case G.MoveRangeCommandId:return oi(t,e);case G.MoveRowsCommandId:return ti(t,e);case G.ReorderRangeCommandId:return ni(t,e);case G.RemoveColCommandId:n=ci(t,e);break;case G.RemoveRowCommandId:return Ci(t.params,e)}let r=Ei(n,e);return r?[r]:[]},Ai=(e,n,r)=>[cr.id,ur.id,fr.id,`sheet.command.insert-range-move-right`].includes(n.id)||Mi(n,r).some(n=>t.Rectangle.intersects(n,e))?ki(e,n):e;function ji(e,n){let{id:r,params:i}=n,a={length:0,step:0,type:K.Unknown};switch(r){case Lr.id:a.type=K.Delete;break;case De.id:a=$r({start:i.sourceRange.startRow,end:i.sourceRange.endRow},{start:i.targetRange.startRow,end:i.targetRange.endRow},{start:e.startRow,end:e.endRow}),a.type=K.VerticalMove;break;case ke.id:a=$r({start:i.sourceRange.startColumn,end:i.sourceRange.endColumn},{start:i.targetRange.startColumn,end:i.targetRange.endColumn},{start:e.startColumn,end:e.endColumn}),a.type=K.HorizontalMove;break;case P.id:a=si(i.range,e),a?a.type=K.HorizontalMove:a={step:0,length:0,type:K.Delete};break;case je.id:a=si(Qr(i.range),Qr(e)),a?a.type=K.VerticalMove:a={step:0,length:0,type:K.Delete};break;case Se.id:a=di(Qr(i.range),Qr(e)),a.type=K.VerticalMove;break;case we.id:a=di(i.range,e),a.type=K.HorizontalMove;break;case Te.id:a=fi(i.fromRange||new t.ObjectMatrix(i.from).getRange(),i.toRange||new t.ObjectMatrix(i.to).getRange(),e);break;default:break}return a?Ei(Array.isArray(a)?a:[a],e):e}function Mi(e,t){let{selectionManagerService:n}=t;switch(e.id){case G.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case G.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case G.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case G.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case G.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case G.RemoveRowCommandId:return[e.params.range];case G.RemoveColCommandId:return[e.params.range];case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{var r,i;let t=((r=e.params)==null?void 0:r.range)||((i=n.getCurrentSelections())==null||(i=i.map(e=>e.range))==null?void 0:i[0]);return t?[t]:[]}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{var a,o;let t=((a=e.params)==null?void 0:a.range)||((o=n.getCurrentSelections())==null||(o=o.map(e=>e.range))==null?void 0:o[0]);return t?[t]:[]}case G.ReorderRangeCommandId:{let{range:t,order:n}=e.params,r=[];for(let e=t.startRow;e<=t.endRow;e++)e in n&&r.push({startRow:e,endRow:e,startColumn:t.startColumn,endColumn:t.endColumn});return r}}}function Ni(e){switch(e.id){case ke.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case De.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Te.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case we.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case Se.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case P.id:return[e.params.range];case je.id:return[e.params.range];default:break}}function Pi(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case G.MoveColsCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startColumn:o.startColumn<s.startColumn?o.endColumn+1:s.startColumn,endColumn:o.startColumn<s.startColumn?s.endColumn-1:o.startColumn-1}]}}case G.MoveRowsCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startRow:o.startRow<s.startRow?o.endRow+1:s.startRow,endRow:o.startRow<s.startRow?s.endRow-1:o.startRow-1}]}}case G.MoveRangeCommandId:{let e=n.params,t=p(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case G.InsertRowCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startRow>0?[{...s,startRow:s.startRow-1,endRow:s.endRow-1}]:[],{...s,startRow:s.startRow,endRow:i.getRowCount()-1}]}}case G.InsertColCommandId:{let e=n.params,t=p(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startColumn>0?[{...s,startColumn:s.startColumn-1,endColumn:s.endColumn-1}]:[],{...s,startColumn:s.startColumn,endColumn:i.getColumnCount()-1}]}}case G.RemoveRowCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.RemoveColCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let e=n.params,t=p(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.ReorderRangeCommandId:{let e=n.params,t=p(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{range:o,order:s}=e,c=[];for(let e=o.startRow;e<=o.endRow;e++)e in s&&c.push({startRow:e,endRow:e,startColumn:o.startColumn,endColumn:o.endColumn});return{unitId:i,subUnitId:a,ranges:c}}}}let Fi=(0,t.createInterceptorKey)(`MERGE_REDO`),Ii=(0,t.createInterceptorKey)(`MERGE_UNDO`);var Li=class extends t.Disposable{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){var n,r;if(((n=e.params)==null?void 0:n.unitId)!==this._unitId)return;if(e.id===Te.id){let t=e.params;if(t.from.subUnitId!==this._subUnitId||t.to.subUnitId!==this._subUnitId)return}else if(((r=e.params)==null?void 0:r.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(e.id===Lr.id)return;let n=Ni(e);if(n!=null&&n.some(e=>t.Rectangle.intersects(e,this._range)))return}let i=ji(this._range,e);if(i&&t.Rectangle.equals(i,this._range))return!1;let a=this._range;this._range=i,this._callback(a,i)}};let Ri=class extends t.Disposable{constructor(e,n,r,i){super(),this._commandService=e,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,w(this,`interceptor`,new t.InterceptorManager({MERGE_REDO:Fi,MERGE_UNDO:Ii})),w(this,`_watchRanges`,new Set),w(this,`_refRangeManagerMap`,new Map),w(this,`_serializer`,Hi()),w(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let n=(()=>{switch(e.id){case G.MoveColsCommandId:{let t=e.params,n=p(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startColumn,t.toRange.startColumn);return this._checkRange([{...t.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case G.MoveRowsCommandId:{let t=e.params,n=p(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startRow,t.toRange.startRow);return this._checkRange([{...t.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case G.MoveRangeCommandId:{var n,r;let t=e.params,i=p(this._univerInstanceService,{unitId:t.fromUnitId,subUnitId:t.fromSubUnitId}),a=p(this._univerInstanceService,{unitId:(n=t.toUnitId)==null?t.fromUnitId:n,subUnitId:(r=t.toSubUnitId)==null?t.fromSubUnitId:r});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([t.fromRange,t.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([t.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([t.toRange],a.unitId,a.subUnitId)),o}case G.InsertRowCommandId:{let n=e.params,r=p(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:Math.max(0,n.range.startRow-1),endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.InsertColCommandId:{let n=e.params,r=p(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:Math.max(0,n.range.startColumn-1),endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.RemoveRowCommandId:{let n=e.params,r=p(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:n.range.startRow,endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.RemoveColCommandId:{let n=e.params,r=p(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:n.range.startColumn,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let t=e.params,n=p(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let t=e.params,n=p(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case G.ReorderRangeCommandId:{let t=e.params,n=p(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=t,s=[];for(let e=a.startRow;e<=a.endRow;e++)e in o&&s.push({startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn});return this._checkRange(s,r,i)}}})();if(!n||n.length===0)return{redos:[],undos:[],preRedos:[],preUndos:[]};let r=n.reduce((t,n)=>{let r=n(e);return t.push(r),t},[]).reduce((e,t)=>{var n,r;return e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...(n=t.preRedos)==null?[]:n),e.preUndos.push(...(r=t.preUndos)==null?[]:r),e},{redos:[],undos:[],preUndos:[],preRedos:[]}),i=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.preRedos,null)||[],a=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.redos,null)||[],o=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.preUndos,null)||[];return{redos:a,undos:this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.undos,null)||[],preRedos:i,preUndos:o}}})}),w(this,`_checkRange`,(e,n,r)=>{let i=Vi(n,r),a=this._refRangeManagerMap.get(i);if(a){let n=new Set;return[...a.keys()].forEach(r=>{let i=a.get(r),o=this._serializer.deserialize(r),s={...o,startRow:+o.startRow,endRow:+o.endRow,startColumn:+o.startColumn,endColumn:+o.endColumn,rangeType:o.rangeType&&+o.rangeType};e.some(e=>t.Rectangle.intersects(e,s))&&i&&i.forEach(e=>{n.add(e)})}),[...n]}return[]}),w(this,`registerRefRange`,(e,n,r,i)=>{let a=r||zi(this._univerInstanceService),o=i||Bi(this._univerInstanceService);if(!a||!o)return(0,t.toDisposable)(()=>{});let s=Vi(a,o),c=this._serializer.serialize(e),l=this._refRangeManagerMap.get(s);l||(l=new Map,this._refRangeManagerMap.set(s,l));let u=l.get(c);return u?u.add(n):l.set(c,new Set([n])),(0,t.toDisposable)(()=>{let e=l.get(c);e&&(e.delete(n),e.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(s)))})}),this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:e=>e}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:e=>e})}watchRange(e,n,r,i,a){let o;this._watchRanges.size===0&&(o=this._commandService.onCommandExecuted(e=>{if(e.type!==t.CommandType.MUTATION)return!1;for(let t of this._watchRanges)t.onMutation(e)}));let s=new Li(e,n,r,i,a);this._watchRanges.add(s);let c=(0,t.toDisposable)(()=>{this._watchRanges.delete(s),this._watchRanges.size===0&&(o==null||o.dispose(),o=null)}),l=this.disposeWithMe(c);return(0,t.toDisposable)(()=>{l.dispose(),c.dispose()})}};Ri=E([T(0,t.ICommandService),T(1,(0,t.Inject)(A)),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(H))],Ri);function zi(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function Bi(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function Vi(e,t){return`${e}_${t}`}function Hi(){let e=[`startRow`,`startColumn`,`endRow`,`endColumn`,`rangeType`];return{deserialize:t=>{let n=e.reduce((e,t,n)=>(e[String(n)]=t,e),{});return t.split(`_`).reduce((e,t,r)=>{let i=String(r);return t&&n[i]&&(e[n[i]]=t),e},{})},serialize:t=>e.reduce((e,n,r)=>{let i=t[n];return i===void 0?`${e}`:`${e}${r>0?`_`:``}${i}`},``)}}let Ui=[we.id,Se.id,P.id,je.id],Wi=[De.id,ke.id];function Gi(e,n){let r=e;if(n!==void 0){let e=[];for(let i=0;i<r.length;i++){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=r[i];if(n===t.Dimension.ROWS)for(let t=a;t<=o;t++){let n={startRow:t,endRow:t,startColumn:s,endColumn:c};e.push(n)}else if(n===t.Dimension.COLUMNS)for(let t=s;t<=c;t++){let n={startRow:a,endRow:o,startColumn:t,endColumn:t};e.push(n)}}r=e}return r}let Ki=(0,t.createInterceptorKey)(`mergeCellPermissionCheck`),qi=class extends t.Disposable{constructor(e,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=n,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=o,w(this,`disposableCollection`,new t.DisposableCollection),w(this,`interceptor`,new t.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:Ki})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case In.id:case Ln.id:{var r;let n=e._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=n.getUnitId(),a=n==null?void 0:n.getActiveSheet();if(!a)return{redos:[],undos:[]};let o=a.getSheetId(),s=a.getConfig().mergeData,c=(r=e._selectionManagerService.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(c&&c.length>0&&c.some(e=>s.some(n=>t.Rectangle.intersects(n,e)))){let t={unitId:i,subUnitId:o,ranges:c},n=F(e._injector,t);return{redos:[{id:I.id,params:t}],undos:[{id:g.id,params:n}]}}}}return{redos:[],undos:[]}}}),this._sheetInterceptorService.interceptRanges({getMutations:({unitId:e,subUnitId:n,ranges:r})=>{let i=[],a=[],o={redos:i,undos:a};if(!r||!r.length)return o;let s=p(this._univerInstanceService,{unitId:e,subUnitId:n});if(!s)return o;let{worksheet:c}=s,l=c.getMergeData().filter(e=>r.some(n=>t.Rectangle.intersects(e,n)));return l.length?(i.push({id:I.id,params:{unitId:e,subUnitId:n,ranges:l}}),a.push({id:g.id,params:{unitId:e,subUnitId:n,ranges:l}}),{undos:a,redos:i}):o}})}refRangeHandle(e,t,n){switch(e.id){case G.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case G.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case gr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case Cr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Fr.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case Mr.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case Zn.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case mr.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case fr.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case ur.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case cr.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getUniverSheetInstance(e);if(!n)return;let r=n==null?void 0:n.getSheetBySheetId(t);if(!r)return;this.disposableCollection.dispose();let i=r.getMergeData(),a=n=>this.refRangeHandle(n,e,t);i.forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,a,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===Rt.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===g.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(n.unitId,n.subUnitId)}})),this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.first)(e=>!!e)).subscribe(t=>{let n=t.getActiveSheet();n&&e(t.getUnitId(),n.getSheetId())})}_handleMoveRowsCommand(e,t,n){let r=Ji(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Yi(r,n);if(!i)return this._handleNull();let a=[...i.getMergeData()],o={unitId:t,subUnitId:n,ranges:[]},s={unitId:t,subUnitId:n,ranges:[]},{fromRange:c}=e,{startRow:l,endRow:u}=c;if(a.forEach(t=>{if(l<=t.startRow&&u>=t.endRow){o.ranges.push(t);let n=Ei(ei({id:G.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=F(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:I.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:I.id,params:f}],undos:[{id:g.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=Ji(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Yi(r,n);if(!i)return this._handleNull();let a=[...i.getMergeData()],o={unitId:t,subUnitId:n,ranges:[]},s={unitId:t,subUnitId:n,ranges:[]},{fromRange:c}=e,{startColumn:l,endColumn:u}=c;if(a.forEach(t=>{if(l<=t.startColumn&&u>=t.endColumn){o.ranges.push(t);let n=Ei(ri({id:G.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=F(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:I.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:I.id,params:f}],undos:[{id:g.id,params:d}]}}_handleMoveRangeCommand(e,n,r){var i,a;let o=Ji(this._univerInstanceService,n);if(!o)return this._handleNull();let s=(i=e.fromSubUnitId)==null?r:i,c=(a=e.toSubUnitId)==null?s:a,l=Yi(o,s),u=Yi(o,c);if(!l||!u)return this._handleNull();let d=l.getMergeData().filter(n=>t.Rectangle.intersects(n,e.fromRange)),f=u.getMergeData().filter(n=>t.Rectangle.intersects(n,e.toRange)),p=Gi(d.map(n=>t.Rectangle.getRelativeRange(n,e.fromRange)).map(n=>t.Rectangle.getPositionRange(n,e.toRange))).filter(e=>!u.getMergeData().some(n=>t.Rectangle.equals(e,n))),m=[],h=[];return r===s&&d.length>0&&(m.push({id:I.id,params:{unitId:n,subUnitId:s,ranges:d}}),h.push({id:g.id,params:{unitId:n,subUnitId:s,ranges:d}})),r===c&&f.length>0&&(m.push({id:I.id,params:{unitId:n,subUnitId:c,ranges:f}}),h.push({id:g.id,params:{unitId:n,subUnitId:c,ranges:f}})),r===c&&p.length>0&&(m.push({id:g.id,params:{unitId:n,subUnitId:c,ranges:p}}),h.unshift({id:I.id,params:{unitId:n,subUnitId:c,ranges:p}})),m.length===0?this._handleNull():{redos:m,undos:h}}_handleInsertRowCommand(e,n,r){let i=Ji(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Yi(i,r);if(!a)return this._handleNull();let{range:o}=e,{startRow:s,endRow:c}=o,l=t.Tools.deepClone(a.getMergeData()).reduce((e,t)=>(s>t.startRow&&s<=t.endRow&&e.push(t),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(a.getMergeData()).reduce((e,t)=>{if(s>t.startRow&&s<=t.endRow){let n=c-s+1;t.endRow+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:I.id,params:d},{id:g.id,params:p}],undos:[{id:I.id,params:m},{id:g.id,params:f}]}}_handleInsertColCommand(e,n,r){let{range:i}=e,a=Ji(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Yi(a,r);if(!o)return this._handleNull();let{startColumn:s,endColumn:c}=i,l=t.Tools.deepClone(o.getMergeData()).reduce((e,t)=>(s>t.startColumn&&s<=t.endColumn&&e.push(t),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(o.getMergeData()).reduce((e,t)=>{if(s>t.startColumn&&s<=t.endColumn){let n=c-s+1;t.endColumn+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:I.id,params:d},{id:g.id,params:p}],undos:[{id:I.id,params:m},{id:g.id,params:f}]}}_handleRemoveColCommand(e,n,r){let i=Ji(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Yi(i,r);if(!a)return this._handleNull();let{range:o}=e,{startColumn:s,endColumn:c}=o,l=t.Tools.deepClone(a.getMergeData()).reduce((e,n)=>(t.Rectangle.intersects(o,n)&&e.push(n),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(a.getMergeData()).reduce((e,n)=>{if(t.Rectangle.intersects(o,n)){if(s<=n.startColumn&&c>=n.endColumn)return e;s>=n.startColumn&&c<=n.endColumn?n.endColumn-=c-s+1:s<n.startColumn?(n.startColumn=s,n.endColumn-=c-s+1):c>n.endColumn&&(n.endColumn=s-1),this._checkIsMergeCell(n)&&e.push(n)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:I.id,params:m}],undos:[{id:g.id,params:f}],preRedos:_,redos:v}}_handleRemoveRowCommand(e,n,r){let{range:i}=e,a=Ji(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Yi(a,r);if(!o)return this._handleNull();let{startRow:s,endRow:c}=i,l=t.Tools.deepClone(o.getMergeData()).reduce((e,n)=>(t.Rectangle.intersects(i,n)&&e.push(n),e),[]);if(l.length===0)return this._handleNull();let u=t.Tools.deepClone(o.getMergeData()).reduce((e,n)=>{if(t.Rectangle.intersects(i,n)){if(s<=n.startRow&&c>=n.endRow)return e;s>=n.startRow&&c<=n.endRow?n.endRow-=c-s+1:s<n.startRow?(n.startRow=s,n.endRow-=c-s+1):c>n.endRow&&(n.endRow=s-1),this._checkIsMergeCell(n)&&e.push(n)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:I.id,params:m}],undos:[{id:g.id,params:f}],preRedos:_,redos:v}}_handleInsertRangeMoveRightCommand(e,n,r){let i=Ji(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Yi(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},e))){let t=a-i+1;u.push({startRow:e.startRow,startColumn:e.startColumn+t,endRow:e.endRow,endColumn:e.endColumn+t})}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:I.id,params:d}],redos:[{id:g.id,params:p}],preUndos:[{id:I.id,params:m}],undos:[{id:g.id,params:f}]}}_handleInsertRangeMoveDownCommand(e,n,r){let i=Ji(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Yi(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},e))){let t=a-n+1;u.push({startRow:e.startRow+t,startColumn:e.startColumn,endRow:e.endRow+t,endColumn:e.endColumn})}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}],y=[{id:I.id,params:m}];return{redos:v,undos:[{id:g.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveUpCommand(e,n,r){let i=Ji(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Yi(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},e))){let r=a-n+1,i=t.Rectangle.moveVertical(e,-r);u.push(i)}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:I.id,params:d}],v=[{id:g.id,params:p}],y=[{id:I.id,params:m}];return{redos:v,undos:[{id:g.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveLeftCommand(e,n,r){let i=Ji(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Yi(i,r);if(!a)return this._handleNull();let o=e.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(e=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(t.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},e)&&(l.push(e),t.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},e))){let t=a-i+1;u.push({startRow:e.startRow,startColumn:e.startColumn-t,endRow:e.endRow,endColumn:e.endColumn-t})}});let d={unitId:n,subUnitId:r,ranges:l},f=F(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:I.id,params:d}],redos:[{id:g.id,params:p}],undos:[{id:g.id,params:f}],preUndos:[{id:I.id,params:m}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Wi.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn,u=r.getConfig().mergeData,d=[];u.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f})}),r.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}if(Ui.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=e.params;if(!i)return;let{range:a}=i,o=e.id.includes(`row`),s=e.id.includes(`insert`),c=o?a.startRow:a.startColumn,l=o?a.endRow:a.endColumn,u=l-c+1,d=[];r.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;s?o?c<=t&&(t+=u,n+=u):c<=r&&(r+=u,i+=u):o?l<t&&(t-=u,n-=u):l<r&&(r-=u,i-=u),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),n.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};qi=E([T(0,(0,t.Inject)(t.ICommandService)),T(1,(0,t.Inject)(Ri)),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(t.Injector)),T(4,(0,t.Inject)(A)),T(5,(0,t.Inject)(H))],qi);function Ji(e,n){return n?e.getUniverSheetInstance(n):e.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET)}function Yi(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}let Xi=(e,n,r)=>{let i=e.get(H).getCurrentSelections(),{value:a,selections:o,unitId:s,subUnitId:c}=n;if(i&&i.length>0){let e=i[(i==null?void 0:i.length)-1].primary;if(e){let{actualColumn:n,actualRow:l}=e,{startRow:u,startColumn:d,endRow:f,endColumn:p}=o[o.length-1];if(a===t.Dimension.COLUMNS){let e=r.find(e=>e.startColumn===n&&e.endColumn===n&&l===e.startRow);e&&(p=e.endColumn,u=e.startRow,f=e.endRow)}else if(a===t.Dimension.ROWS){let e=r.find(e=>e.startRow===l&&e.endRow===l&&n===e.startColumn);e&&(f=e.endRow,d=e.startColumn,p=e.endColumn)}let m={startRow:u,startColumn:d,endRow:f,endColumn:p,actualRow:l,actualColumn:n,isMerged:!0,isMergedMainCell:u===l&&d===n},h=i.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null})),g={unitId:s,subUnitId:c,type:V.ONLY_SET,selections:h};return{id:W.id,params:g}}return null}return null},Zi=(e,t)=>{let n=e.get(H).getCurrentSelections(),{unitId:r,subUnitId:i}=t;if(n&&n.length>0&&n[(n==null?void 0:n.length)-1].primary){let e={unitId:r,subUnitId:i,type:V.ONLY_SET,selections:[...n]};return{id:W.id,params:e}}return null},Qi={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,n)=>{var r;let i=e.get(H),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=(n==null?void 0:n.ranges)||((r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(s!=null&&s.length))return!1;let c=p(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{subUnitId:l,unitId:u,worksheet:d}=c,f={unitId:u,subUnitId:l,ranges:s},m=d.getConfig().mergeData.filter(e=>s.some(n=>t.Rectangle.intersects(n,e)));if(!m.length)return!1;let h=F(e,f),_=i.getCurrentSelections(),v=t.Tools.deepClone(_),y=t.Tools.deepClone(_);if(_.length){let e=y[y.length-1],{startRow:t,startColumn:n}=e.range;e.primary={startRow:t,startColumn:n,endRow:t,endColumn:n,actualRow:t,actualColumn:n,isMerged:!1,isMergedMainCell:!1}}let b={unitId:u,subUnitId:l,cellValue:$i(d,m).getMatrix()},x=L(e,b),S=[{id:I.id,params:h},{id:R.id,params:b},{id:W.id,params:{unitId:u,subUnitId:l,selections:y,type:V.ONLY_SET}}],C=[{id:g.id,params:h},{id:R.id,params:x},{id:W.id,params:{unitId:u,subUnitId:l,selections:v,type:V.ONLY_SET}}];return(0,t.sequenceExecute)(S,a)?(o.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function $i(e,n){let r=new t.ObjectMatrix;return n.forEach(t=>{let{startRow:n,startColumn:i,endColumn:a,endRow:o}=t,s=e.getCellMatrix().getValue(n,i);if(s!=null&&s.s)for(let e=n;e<=o;e++)for(let t=i;t<=a;t++)(e!==n||t!==i)&&r.setValue(e,t,{s:s.s})}),r}let ea=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function ta(e,t){return t.some(t=>na(e,t))}function na(e,t){let{startRow:n,startColumn:r,endColumn:i,endRow:a}=t,o=e.getMatrixWithMergedCells(n,r,a,i),s=!1;return o.forValue((t,i,a)=>{if(a&&(t!==n||i!==r)&&e.cellHasValue(a))return s=!0,!1}),s}function ra(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:ia(n,r).getData()},c=L(e,s);i.push({id:R.id,params:c}),a.push({id:R.id,params:s})}),{undos:i,redos:a}}function ia(e,n){let{startRow:r,startColumn:i,endColumn:a,endRow:o}=n,s=e.getMatrixWithMergedCells(r,i,o,a,t.CellModeEnum.Raw),c=new t.ObjectMatrix,l=null;return s.forValue((t,n,a)=>{if(a&&t>=r&&n>=i){var o,s;!l&&e.cellHasValue(a)&&(a.v!==``||((o=(s=a.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.length)==null?0:o)>2)&&(l=a),c.setValue(t,n,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),c.setValue(r,i,l),c}let aa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{unitId:a,subUnitId:o,selections:s}=n,c=e.get(t.ICommandService),l=e.get(t.IUndoRedoService),u=Gi(s,n.value),d=ta(i,u);if(d&&!n.defaultMerge){let n=e.get(t.IConfirmService),r=e.get(t.LocaleService);if(!await n.confirm({id:`merge.confirm.add-worksheet-merge`,title:{title:`merge.confirm.warning`},children:{title:`merge.confirm.title`},cancelText:r.t(`merge.confirm.cancel`),confirmText:r.t(`merge.confirm.confirm`)}))return!1}let f=[],m=[],_={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},y=F(e,_),b=h(e,v);if(y.ranges.length>0&&f.push({id:I.id,params:y}),f.push({id:g.id,params:v}),m.push({id:I.id,params:b}),y.ranges.length>0&&m.push({id:g.id,params:y}),d){let t=ra(e,a,i,u);f.unshift(...t.redos),m.push(...t.undos)}let x=Xi(e,n,u);x&&f.push(x);let S=Zi(e,n);S&&m.push(S);let C=e.get(A).onCommandExecute({id:aa.id,params:{unitId:a,subUnitId:o,ranges:u}});return f.push(...C.redos),m.push(...C.undos),(0,t.sequenceExecute)(f,c).result?(l.pushUndoRedo({unitID:a,undoMutations:m,redoMutations:f}),!0):!1}},oa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=ua(ea.MergeAll,r);if(!(i!=null&&i.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(aa.id,{selections:i,unitId:s,subUnitId:c})}},sa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=ua(ea.MergeVertical,r);if(!(i!=null&&i.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(aa.id,{value:t.Dimension.COLUMNS,selections:i,unitId:s,subUnitId:c})}},ca={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=(n=e.get(H).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=ua(ea.MergeHorizontal,r);if(!(i!=null&&i.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{workbook:o,worksheet:s}=a,c=o.getUnitId(),l=s.getSheetId();return e.get(t.ICommandService).executeCommand(aa.id,{value:t.Dimension.ROWS,selections:i,unitId:c,subUnitId:l})}};function la(e,n,r,i,a={}){let o=p(e.get(t.IUniverInstanceService),{unitId:n,subUnitId:r});if(!o)return;let s=e.get(t.ICommandService),{defaultMerge:c=!0,isForceMerge:l=!1}=a,{worksheet:u}=o;if(u.getMergeData().some(e=>i.some(n=>t.Rectangle.intersects(n,e)))){if(!l)throw Error(`The ranges to be merged overlap with the existing merged cells`);s.syncExecuteCommand(Qi.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(aa.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function ua(e,t){return t?e===ea.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===ea.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===ea.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var da=class{constructor(){w(this,`_model`,new Map),w(this,`_ruleChange`,new n.Subject),w(this,`_ruleRefresh`,new n.Subject),w(this,`_resetOrder`,new n.Subject),w(this,`ruleChange$`,this._ruleChange.asObservable()),w(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),w(this,`resetOrder$`,this._resetOrder.asObservable()),w(this,`_worksheetRuleInitStateChange`,new n.BehaviorSubject(!1)),w(this,`worksheetRuleInitStateChange$`,this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}getSheetRuleInitState(){return this._worksheetRuleInitStateChange.value}addRule(e,t){this._ensureSubUnitMap(e).set(t.subUnitId,t),this._ruleChange.next({unitId:e,rule:t,type:`add`,subUnitId:t.subUnitId})}deleteRule(e,t){var n;let r=(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t);if(r){var i;(i=this._model.get(e))==null||i.delete(t),this._ruleChange.next({unitId:e,rule:r,type:`delete`,subUnitId:t})}}setRule(e,t,n){let r=this.getRule(e,t);if(r){var i;(i=this._model)==null||(i=i.get(e))==null||i.set(t,n),this._ruleChange.next({unitId:e,oldRule:r,rule:n,type:`set`,subUnitId:t})}}getRule(e,t){var n;return(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t)}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t);n!=null&&n.size&&(e[t]=[],[...n.keys()].forEach(r=>{let i=n.get(r);i&&e[t].push(i)}))}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n];if(r!=null&&r.length){let e=new Map;r.forEach(t=>{e.set(t.subUnitId,t)}),t.set(n,e)}}),this._model=t}deleteUnitModel(e){this._model.delete(e)}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}ruleRefresh(e){this._ruleRefresh.next(e)}resetOrder(){this._resetOrder.next(Math.random())}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)if(i.permissionId===t)return[e,r]}};let fa={id:`sheet.mutation.add-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(da),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},pa={id:`sheet.mutation.delete-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(da),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},ma={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{rule:a,unitId:o}=n,s=a.subUnitId;if(await r.executeCommand(fa.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:fa.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:pa.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},ha={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-range-theme-style`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a}=n,o=ve(e,n);return r.syncExecuteCommand(_e.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:ye.id,params:o}],redoMutations:[{id:_e.id,params:n}]}),!0):!1}},ga={type:t.CommandType.COMMAND,id:`sheet.command.append-row`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a,subUnitId:o,cellValue:s,insertRowNums:c,insertColumnNums:l,maxRows:u,maxColumns:d}=n,f={unitId:a,subUnitId:o,cellValue:s},p=L(e,f),m=[{id:R.id,params:f}],h=[{id:R.id,params:p}];if(c){let t={unitId:a,subUnitId:o,range:{startRow:u,endRow:u,startColumn:0,endColumn:d-1}},n=xe(e,t);m.unshift({id:Se.id,params:t}),h.push({id:je.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=Ce(e,t);m.unshift({id:we.id,params:t}),h.push({id:P.id,params:n})}return(0,t.sequenceExecute)(m,r).result?(i.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},_a=[`ff`,`fs`,`tr`,`tb`],q={type:t.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,{range:c,style:l}=n,u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(H),m=c?[c]:(r=f.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(m!=null&&m.length))return!1;let h=new t.ObjectMatrix,g=Un(s);if(t.Tools.isArray(l.value))for(let e=0;e<m.length;e++)g.forOperableEach(m[e],(e,t,n)=>{h.setValue(e,t,{s:{[l.type]:l.value[e-n.startRow][t-n.startColumn]}})});else for(let e=0;e<m.length;e++){let t={s:{[l.type]:l.value}};g.forOperableEach(m[e],(e,n)=>h.setValue(e,n,t))}let _={subUnitId:o,unitId:a,cellValue:h.getMatrix()},v=e.get(Gr).getSkeleton(a,o),y=L(e,_),b=null;if(_a.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=qr(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:Kr(e,s)}}let x=u.syncExecuteCommand(R.id,_),S=e.get(A),C=[],w=[];if(b){let{suitableRanges:e,remainingRanges:t,cellHeights:n}=b,{undos:r,redos:i}=S.generateMutationsOfAutoHeight({unitId:a,subUnitId:o,ranges:e,autoHeightRanges:e,lazyAutoHeightRanges:t,cellHeights:n});C=r,w=i}let{undos:T,redos:E}=S.onCommandExecute({id:q.id,params:n}),D=(0,t.sequenceExecute)([...E,...w],u);return x&&D.result?(d.pushUndoRedo({unitID:_.unitId,undoMutations:[{id:R.id,params:y},...T,...C],redoMutations:[{id:R.id,params:_},...E,...w]}),!0):!1}},va={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,{actualRow:a,actualColumn:o}=n.primary,s={style:{type:`bl`,value:i.getRange(a,o).getFontWeight()===t.FontWeight.BOLD?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}};return e.get(t.ICommandService).syncExecuteCommand(q.id,s)}},ya={type:t.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;if(n.primary){let{startRow:e,startColumn:r}=n.primary;a=i.getRange(e,r).getFontStyle()===t.FontItalic.ITALIC}let o={style:{type:`it`,value:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},ba={type:t.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;n.primary&&(a=!!i.getRange(n.primary.startRow,n.primary.startColumn).getUnderline().s);let o={style:{type:`ul`,value:{s:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},xa={type:t.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;n.primary&&(a=!!i.getRange(n.primary.actualRow,n.primary.actualColumn).getStrikeThrough().s);let o={style:{type:`st`,value:{s:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},Sa={type:t.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let n=e.get(H).getCurrentLastSelection();if(!n)return!1;let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;n.primary&&(a=!!i.getRange(n.primary.startRow,n.primary.startColumn).getOverline().s);let o={style:{type:`ol`,value:{s:a?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}}};return e.get(t.ICommandService).syncExecuteCommand(q.id,o)}},Ca={type:t.CommandType.COMMAND,id:`sheet.command.set-font-family`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={style:{type:`ff`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},wa={type:t.CommandType.COMMAND,id:`sheet.command.set-font-size`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={style:{type:`fs`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},Ta={type:t.CommandType.COMMAND,id:`sheet.command.set-text-color`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={style:{type:`cl`,value:{rgb:n.value}}};return r.syncExecuteCommand(q.id,i)}},Ea={type:t.CommandType.COMMAND,id:`sheet.command.reset-text-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(q.id,{style:{type:`cl`,value:{rgb:null}}})},Da={type:t.CommandType.COMMAND,id:`sheet.command.set-background-color`,handler:(e,n)=>{if(!n||!n.value)return!1;let r=e.get(t.ICommandService),i={style:{type:`bg`,value:{rgb:n.value}}};return r.syncExecuteCommand(q.id,i)}},Oa={type:t.CommandType.COMMAND,id:`sheet.command.reset-background-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(q.id,{style:{type:`bg`,value:{rgb:null}}})},ka={type:t.CommandType.COMMAND,id:`sheet.command.set-vertical-text-align`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`vt`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},Aa={type:t.CommandType.COMMAND,id:`sheet.command.set-horizontal-text-align`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`ht`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},ja={type:t.CommandType.COMMAND,id:`sheet.command.set-text-wrap`,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`tb`,value:n.value}};return r.syncExecuteCommand(q.id,i)}},Ma={type:t.CommandType.COMMAND,id:`sheet.command.set-text-rotation`,handler:(e,n)=>{if(!n)return!1;let r=typeof n.value==`number`?{a:n.value}:{a:0,v:t.BooleanNumber.TRUE},i=e.get(t.ICommandService),a={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`tr`,value:r}};return i.syncExecuteCommand(q.id,a)}},Na={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Pa=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Fa=[``,`万`,`亿`,`万亿`,`亿亿`],Ia=[``,`十`,`百`,`千`],La={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function Ra(e){if(!e)return 0;let t=0,n=0,r=0,i=!1,a=e.split(``);for(let e=0;e<a.length;e++){let o=Na[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=La[a[e]],s=o.value;i=o.secUnit,i?(n=(n+r)*s,t+=n,n=0):n+=r*s,r=0}}return t+n}function za(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Pa[a]+n):(i=!1,t=Pa[a],t+=Ia[r],n=t+n),r++,e=Math.floor(e/10)}return n}function Ba(e){let t=0,n=``,r=``,i=!1;if(e===0)return Pa[0];for(;e>0;){let a=e%1e4;i&&(r=Pa[0]+r),n=za(a),n+=a===0?Fa[0]:Fa[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Va(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Na;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Na||n[e]in La)){t=!1;break}}return t}function Ha(e){if(!e)return{isExtendNumber:!1};let t=[...e.matchAll(/\d+/g)];if(!t.length)return{isExtendNumber:!1};let n=t[t.length-1],r=n[0],i=n.index,a=e.substring(0,i),o=e.substring(i+r.length);return{isExtendNumber:!0,rawMatchTxt:r,matchNumber:Number(r),beforeTxt:a,afterTxt:o}}function Ua(e){let t;return t=e.length===1?e===`日`||Ra(e)<7:!1,t}function Wa(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function Ga(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function Ka(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function qa(e){if(e.length<3)return!0;let t=e[1]-e[0],n=!1;for(let r=2;r<e.length;r++){let i=e[r]-e[r-1];if(i!==t){if(n||i!==-t)return!1;t=i,n=!0}}return!0}function Ja(e,t,n){let r=[],i=Math.floor(t/e),a=t%e,o=0;if(i>0){for(let t=0;t<i;t++)for(let i=0;i<n.length;i++)r[n[i]+t*e]=o,o++;for(let t=0;t<n.length&&n[t]<a;t++)r[n[t]+e*i]=o,o++}else for(let e=0;e<n.length&&n[e]<a;e++)r[n[e]]=o,o++;return r}function Ya(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);fo(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function Xa(e,t){let n=[];for(let i=1;i<=t;i++){var r;let t={s:(r=e[(i-1)%e.length])==null?void 0:r.s};n.push(t)}return n}function Za(e){let t=!0,n=e[1]/e[0];for(let r=1;r<e.length;r++)if(e[r]/e[r-1]!==n){t=!1;break}return t}function Qa(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function $a(e,n,r){let i=[],a=[];for(let t=0;t<e.length;t++){var o;a.push(Number((o=e[t])==null?void 0:o.v))}if(e.length>2&&Za(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%e.length,a=t.Tools.deepClone(e[n]);fo(a);let o=Number((s=e[e.length-1])==null?void 0:s.v)*(Number((c=e[1])==null?void 0:c.v)/Number((l=e[0])==null?void 0:l.v))**r;a&&(uo(a)&&(a.v=o),i.push(a))}else{let o=Qa(e.length);for(let s=1;s<=n;s++){let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);fo(c);let l=r===t.Direction.DOWN||r===t.Direction.RIGHT,u=eo(e.length+s,a,o,l);c&&(uo(c)&&(c.v=u),i.push(c))}}return i}function eo(e,t,n,r=!0){function i(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}let a=i(n),o=i(t),s=0,c=0;for(let e=0;e<n.length;e++)s+=(n[e]-a)*(t[e]-o),c+=(n[e]-a)*(n[e]-a);let l;l=c===0?r?1:-1:s/c;let u=o-l*a;return Math.round((u+l*e)*1e5)/1e5}function to(e,n,r){let i=[],a=e[e.length-1],o=Ha(`${a==null?void 0:a.v}`);if(!o.isExtendNumber)return Ya(e,n);let{matchNumber:s,rawMatchTxt:c,beforeTxt:l,afterTxt:u}=o,d=c.length;for(let a=1;a<=n;a++){let n=(a-1)%e.length,o=t.Tools.deepClone(e[n]);if(fo(o),!o||!o.v)continue;let c=Math.abs(s+r*a).toString();c.length<d&&(c=c.padStart(d,`0`));let f=`${l}${c}${u}`;o&&(o.v=f,i.push(o))}return i}function no(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);fo(a),a&&(delete a.v,r.push(a))}return r}function ro(e,n,r,i=0){let a=[[`日`,`一`,`二`,`三`,`四`,`五`,`六`],[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`]];if(i>=a.length)return[];let o=a[i],s=[];for(let i=1;i<=n;i++){var c;let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);fo(a);let u=0;if(((c=e[e.length-1])==null?void 0:c.v)===o[0])u=7+r*i;else{var l;let t=`${(l=e[e.length-1])==null?void 0:l.v}`;t&&(u=Ra(t.substr(t.length-1,1))+r*i)}u<0&&(u=Math.ceil(Math.abs(u)/7)*7+u);let d=u%7;a&&(a.v=o[d],s.push(a))}return s}function io(e,n,r){let i=[];for(let o=1;o<=n;o++){var a;let n=(o-1)%e.length,s=t.Tools.deepClone(e[n]);fo(s);let c=Ra(`${(a=e[e.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:Ba(c),s&&(s.v=l,i.push(s))}return i}let ao={enWeek1:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],enWeek2:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],enMonth1:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],enMonth2:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],chnMonth1:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`],chnMonth2:[`正月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`腊月`],chHour1:[`子`,`丑`,`寅`,`卯`,`辰`,`巳`,`午`,`未`,`申`,`酉`,`戌`,`亥`],chHour2:[`子时`,`丑时`,`寅时`,`卯时`,`辰时`,`巳时`,`午时`,`未时`,`申时`,`酉时`,`戌时`,`亥时`],chYear1:[`甲`,`乙`,`丙`,`丁`,`戊`,`己`,`庚`,`辛`,`壬`,`癸`],chSeason1:[`春`,`夏`,`秋`,`冬`],chSeason2:[`春季`,`夏季`,`秋季`,`冬季`]};function oo(e){let t=!1;return Object.keys(ao).forEach(n=>{ao[n].includes(e)&&(t=!0)}),t}function so(e){let t=``,n=[];return Object.keys(ao).forEach(r=>{ao[r].includes(e)&&(t=r,n.push(...ao[r]))}),{name:t,series:n}}function co(e,n,r,i){let a=i.length,o=[];for(let c=1;c<=n;c++){var s;let n=(c-1)%e.length,l=t.Tools.deepClone(e[n]);fo(l);let u=`${(s=e[e.length-1])==null?void 0:s.v}`,d=i.indexOf(u)+r*c;d<0&&(d+=Math.abs(r)*a);let f=d%a;l&&(l.v=i[f],o.push(l))}return o}function lo(e,n){let r=[],i;if(n.startRow<e.startRow)i=t.Direction.UP;else if(n.endRow>e.endRow)i=t.Direction.DOWN;else if(n.startColumn<e.startColumn)i=t.Direction.LEFT;else if(n.endColumn>e.endColumn)i=t.Direction.RIGHT;else return[];if(i===t.Direction.DOWN||i===t.Direction.UP){let a=e.endRow-e.startRow+1,o=n.endRow-n.startRow+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(i===t.Direction.DOWN){for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow+(t+1)*a,col:e.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow+(s+1)*a,col:e.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:c-1,endColumn:e.endColumn-e.startColumn}})}else{for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow-(t+1)*a,col:e.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow-(s+1)*a,col:e.startColumn},relativeRange:{startRow:a-c,endRow:a-1,startColumn:0,endColumn:e.endColumn-e.startColumn}})}}if(i===t.Direction.RIGHT||i===t.Direction.LEFT){let a=e.endColumn-e.startColumn+1,o=n.endColumn-n.startColumn+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(i===t.Direction.RIGHT){for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(t+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(s+1)*a},relativeRange:{startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:c-1}})}else{for(let t=0;t<s;t++)r.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(t+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(s+1)*a},relativeRange:{startRow:0,startColumn:a-c,endRow:e.endRow-e.startRow,endColumn:a-1}})}}return r}function uo(e){return!((0,t.isFormulaString)(e.f)||(0,t.isFormulaId)(e.si)||e.t===t.CellValueType.BOOLEAN)}function fo(e){e&&`custom`in e&&delete e.custom}function po(e,t){return t?e.reverse():e}function mo(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{rows:t,cols:r}=e;t.forEach(e=>{r.forEach(t=>{n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})})})}),n.clone()}let ho={chnNumChar:Na,chnNumChar2:Pa,chnUnitSection:Fa,chnUnitChar:Ia,chnNameValue:La,chineseToNumber:Ra,sectionToChinese:za,numberToChinese:Ba,isChnNumber:Va,matchExtendNumber:Ha,isChnWeek1:Ua,isChnWeek2:Wa,isChnWeek3:Ga,getLenS:Ka,isEqualDiff:qa,getDataIndex:Ja,fillCopy:Ya,fillCopyStyles:Xa,isEqualRatio:Za,getXArr:Qa,fillSeries:$a,forecast:eo,fillExtendNumber:to,fillOnlyFormat:no,fillChnWeek:ro,fillChnNumber:io,isLoopSeries:oo,getLoopSeriesInfo:so,fillLoopSeries:co,getAutoFillRepeatRange:lo,needsUpdateCellValue:uo,removeCellCustom:fo,reverseIfNeed:po,generateNullCellValueRowCol:mo},J=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),Y=function(e){return e.NUMBER=`number`,e.DATE=`date`,e.EXTEND_NUMBER=`extendNumber`,e.CHN_NUMBER=`chnNumber`,e.CHN_WEEK2=`chnWeek2`,e.CHN_WEEK3=`chnWeek3`,e.LOOP_SERIES=`loopSeries`,e.FORMULA=`formula`,e.OTHER=`other`,e}({}),go=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:_o,fillChnNumber:vo,fillChnWeek:yo,fillCopy:bo,fillExtendNumber:xo,fillLoopSeries:So,fillSeries:Co,getLoopSeriesInfo:wo,isChnNumber:To,isChnWeek2:Eo,isChnWeek3:Do,isEqualDiff:Oo,isLoopSeries:ko,matchExtendNumber:Ao,reverseIfNeed:jo}=ho,Mo={dateRule:{type:Y.DATE,priority:1100,match:(e,n)=>{if(e!=null&&e.f||e!=null&&e.si)return!1;if((typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===t.CellValueType.NUMBER)&&e.s){if(typeof e.s==`string`){var r;let i=n.get(t.IUniverInstanceService).getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getStyles().get(e.s),o=a==null||(r=a.n)==null?void 0:r.pattern;if(o)return t.numfmt.getFormatInfo(o).isDate}else if(e.s.n&&t.numfmt.getFormatInfo(e.s.n.pattern).isDate)return!0}return!1},isContinue:(e,t)=>e.type===Y.DATE,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),Co(i,n,r).reverse()):Co(i,n,r)}}},numberRule:{type:Y.NUMBER,priority:1e3,match:e=>typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===t.CellValueType.NUMBER,isContinue:(e,t)=>e.type===Y.NUMBER,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),Co(i,n,r).reverse()):Co(i,n,r)}}},extendNumberRule:{type:Y.EXTEND_NUMBER,priority:900,match:e=>Ao(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===Y.EXTEND_NUMBER){var n;let r=Ao(`${(n=e.cellData)==null?void 0:n.v}`||``),i=Ao(`${t==null?void 0:t.v}`||``);if(r.isExtendNumber&&i.isExtendNumber){let{beforeTxt:e,afterTxt:t}=r,{beforeTxt:n,afterTxt:a}=i;if(e===n&&t===a)return!0}}return!1},applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.UP||r===t.Direction.LEFT,o;if(i.length===1)return o=a?-1:1,jo(xo(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=Ao(`${(c=i[e])==null?void 0:c.v}`);t.isExtendNumber&&s.push(t.matchNumber)}if(a&&(i.reverse(),s.reverse()),Oo(s)){let e=i.length;return o=s[e-1]-s[e-2],jo(xo(i,n,o),a)}return bo(i,n)}}},chnNumberRule:{type:Y.CHN_NUMBER,priority:830,match:e=>!!To(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Y.CHN_NUMBER,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.LEFT||r===t.Direction.UP;if(i.length===1){var o;let e=`${(o=i[0])==null?void 0:o.v}`,t;return t=a?-1:1,e&&(e===`日`||_o(e)<7)?jo(yo(i,n,t),a):jo(vo(i,n,t),a)}let s=!1;for(let e=0;e<i.length;e++){var c;if(((c=i[e])==null?void 0:c.v)===`日`){s=!0;break}}let l=[],u=0;for(let e=0;e<i.length;e++){var d;let t=`${(d=i[e])==null?void 0:d.v}`;t===`日`?e===0?l.push(0):(u++,l.push(u*7)):s&&_o(t)>0&&_o(t)<7?l.push(_o(t)+u*7):l.push(_o(t))}if(a&&(i.reverse(),l.reverse()),Oo(l)){if(s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0){let e=i.length;return jo(yo(i,n,l[e-1]-l[e-2]),a)}return jo(vo(i,n,l[1]-l[0]),a)}return bo(i,n)}}},chnWeek2Rule:{type:Y.CHN_WEEK2,priority:820,match:e=>!!Eo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Y.CHN_WEEK2,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.LEFT||r===t.Direction.UP;if(i.length===1){let e;return e=a?-1:1,jo(yo(i,n,e,1),a)}let o=[],s=0;for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`,n=t==null?void 0:t.substr(t.length-1,1);t===`周日`?e===0?o.push(0):(s++,o.push(s*7)):o.push(_o(n)+s*7)}if(a&&(i.reverse(),o.reverse()),Oo(o)){let e=i.length;return jo(yo(i,n,o[e-1]-o[e-2],1),a)}return bo(i,n)}}},chnWeek3Rule:{type:Y.CHN_WEEK3,priority:810,match:e=>Do(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Y.CHN_WEEK3,applyFunctions:{[J.SERIES]:(e,n,r)=>{let{data:i}=e,a=r===t.Direction.LEFT||r===t.Direction.UP;if(i.length===1){let e;return e=a?-1:1,jo(yo(i,n,e,2),a)}let o=[],s=0;for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`;if(t){let n=t.substr(t.length-1,1);t===`星期日`?e===0?o.push(0):(s++,o.push(s*7)):o.push(_o(n)+s*7)}}if(a&&(i.reverse(),o.reverse()),Oo(o)){let e=i.length;return jo(yo(i,n,o[e-1]-o[e-2],2),a)}return bo(i,n)}}},loopSeriesRule:{type:Y.LOOP_SERIES,priority:800,match:e=>ko(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===Y.LOOP_SERIES){var n;return wo(`${(n=e.cellData)==null?void 0:n.v}`||``).name===wo(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[J.SERIES]:(e,n,r)=>{var i;let{data:a}=e,o=r===t.Direction.LEFT||r===t.Direction.UP,{series:s}=wo(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,jo(So(a,n,e,s),o)}let c=[],l=0;for(let e=0;e<a.length;e++){var u;let t=`${(u=a[e])==null?void 0:u.v}`;t&&(t===s[0]?e===0?c.push(0):(l++,c.push(l*s.length)):c.push(s.indexOf(t)+l*7))}if(o&&(a.reverse(),c.reverse()),Oo(c)){let e=a.length;return jo(So(a,n,c[e-1]-c[e-2],s),o)}return bo(a,n)}}},otherRule:{type:Y.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===Y.OTHER}},{chnNumberRule:No,chnWeek2Rule:Po,chnWeek3Rule:Fo,dateRule:Io,extendNumberRule:Lo,loopSeriesRule:Ro,numberRule:zo,otherRule:Bo}=Mo,Vo=class extends t.Disposable{constructor(e,r,i,a){super(),this._commandService=e,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,w(this,`_rules`,[]),w(this,`_hooks`,[]),w(this,`_applyType$`,new n.BehaviorSubject(J.SERIES)),w(this,`_isFillingStyle`,!0),w(this,`_prevUndos`,[]),w(this,`_autoFillLocation$`,new n.BehaviorSubject(null)),w(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),w(this,`_showMenu$`,new n.BehaviorSubject(!1)),w(this,`showMenu$`,this._showMenu$.asObservable()),w(this,`_direction`,t.Direction.DOWN),w(this,`applyType$`,this._applyType$.asObservable()),w(this,`_menu$`,new n.BehaviorSubject([{label:`autoFill.copy`,value:J.COPY,disable:!1},{label:`autoFill.series`,value:J.SERIES,disable:!1},{label:`autoFill.formatOnly`,value:J.ONLY_FORMAT,disable:!1},{label:`autoFill.noFormat`,value:J.NO_FORMAT,disable:!1}])),w(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Io,zo,Lo,No,Po,Fo,Ro,Bo].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}_getOneByPriority(e){return e.length<=0?[]:[e.reduce((e,t)=>(t.priority||0)>(e.priority||0)?t:e,e[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(e,n,r,i,a){var o;if(r.startColumn===i.startColumn&&r.startRow===i.startRow&&r.endColumn===i.endColumn&&r.endRow===i.endRow)return!1;if(i.endColumn<r.endColumn&&i.endColumn>r.startColumn)return this._commandService.executeCommand(Jo.id,{clearRange:{startRow:i.startRow,endRow:i.endRow,startColumn:i.endColumn+1,endColumn:r.endColumn},selectionRange:i});if(i.endRow<r.endRow&&i.endRow>r.startRow)return this._commandService.executeCommand(Jo.id,{clearRange:{startRow:i.endRow+1,endRow:r.endRow,startColumn:i.startColumn,endColumn:i.endColumn},selectionRange:i});let s={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:i.endColumn},c=null;if(i.startRow<r.startRow)c=t.Direction.UP,s.endRow=r.startRow-1;else if(i.endRow>r.endRow)c=t.Direction.DOWN,s.startRow=r.endRow+1;else if(i.startColumn<r.startColumn)c=t.Direction.LEFT,s.endColumn=r.startColumn-1;else if(i.endColumn>r.endColumn)c=t.Direction.RIGHT,s.startColumn=r.endColumn+1;else return!1;this.direction=c;let l=this._injector.invoke(e=>Tn(r,e)),u=this._injector.invoke(e=>Tn(s,e));if(!l||!u)return!1;this.autoFillLocation={source:l,target:u,unitId:e,subUnitId:n};let d=[];if(this.getActiveHooks().forEach(t=>{var r;let i=t==null||(r=t.onBeforeFillData)==null?void 0:r.call(t,{source:l,target:u,unitId:e,subUnitId:n},c);i&&d.unshift(i)}),this._initPrevUndo(),a)return this.fillData(a);for(let e=0;e<d.length;e++){let t=this.menu.find(t=>t.value===d[e]);if(t&&!t.disable)return this.fillData(d[e])}let f=(o=this.menu.find(e=>e.disable===!1))==null?void 0:o.value;return f?this.fillData(f):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=go.APPEND),this._hooks.push(e),(0,t.toDisposable)(()=>{let t=this._hooks.findIndex(t=>t===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(t=>t.type===e.type))throw Error(`Registry rule failed, type '${e.type}' already exist!`);let t=this._rules.findIndex(t=>t.priority<e.priority);this._rules.splice(t===-1?this._rules.length:t,0,e)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){let{source:e,target:t,unitId:n,subUnitId:r}=this.autoFillLocation||{};if(!e||!t||!n||!r)return[];let i=this._hooks.filter(i=>{var a;return!((a=i.disable)!=null&&a.call(i,{source:e,target:t,unitId:n,subUnitId:r},this._direction,this.applyType))}),a=i.filter(e=>e.type===go.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===go.DEFAULT)),s=i.filter(e=>e.type===go.APPEND)||[];return[...o,...s]}get applyType(){return this._applyType$.getValue()}set applyType(e){this._applyType$.next(e)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(e){this._direction=e}isFillingStyle(){return this._isFillingStyle}setFillingStyle(e){this._isFillingStyle=e}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(e){this._autoFillLocation$.next(e)}setDisableApplyType(e,t){this._menu$.next(this._menu$.getValue().map(n=>n.value===e?{...n,disable:t}:n))}setShowMenu(e){this._showMenu$.next(e)}fillData(e){var n;this.applyType=e;let r=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),i=r==null?void 0:r.getUnitId(),a=r==null||(n=r.getActiveSheet())==null?void 0:n.getSheetId(),{source:o,target:s,unitId:c=i,subUnitId:l=a}=this.autoFillLocation||{};if(!o||!s||!c||!l)return!1;let u=this._univerInstanceService.getUnit(c,t.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;let d=u.getSheetBySheetId(l);if(!d)return!1;let f=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(e=>{this._commandService.syncExecuteCommand(e.id,e.params)}),this._prevUndos=[];let p=t.Rectangle.union(wn(o),wn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(W.id,{selections:[{primary:U({startRow:o.rows[0],endRow:o.rows[o.rows.length-1],startColumn:o.cols[0],endColumn:o.cols[o.cols.length-1]},d),range:{...p,rangeType:t.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e))||{};r&&h.push(...r),i&&g.push(...i)});let _=g.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:v,undos:y}=this._getAutoHeightUndoRedos(g,u,d);return g.push(...v),h.push(...y),_&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:g})),m.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,n,r){if(this.applyType===J.NO_FORMAT)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(e.forEach(e=>{if(e.id===R.id){let{cellValue:s}=e.params;new t.ObjectMatrix(s).forValue((e,t,s)=>{let c=Object.keys(n.getStyles().get(s==null?void 0:s.s)||{});if(s!=null&&s.p||c.length&&_a.some(e=>c.includes(e))){let n=r.getCellHeight(e,t),s=o.getRow(e);(!s&&n!==a||s&&n!==o.getRowHeight(e))&&i.push({row:e,autoHeight:n})}})}}),i.length===0)return{undos:[],redos:[]};let s={unitId:n.getUnitId(),subUnitId:r.getSheetId(),rowsAutoHeightInfo:i},c=Nt(s,r),l={id:It.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:It.id,params:c}]}:{undos:[],redos:[]}}};Vo=E([T(0,t.ICommandService),T(1,t.IUndoRedoService),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(t.Injector))],Vo);let Ho=(0,t.createIdentifier)(`univer.auto-fill-service`),Uo={type:t.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a}=r,{sourceRange:o,targetRange:s,applyType:c}=n;return e.get(Ho).triggerAutoFill(i,a,o,s,c)}};function Wo(e,n){let r=e.get(H).getCurrentLastSelection();if(!r)return null;let i=p(e.get(t.IUniverInstanceService));if(!i)return null;let{unitId:a,subUnitId:o}=i,{startRow:s,endRow:c,startColumn:l,endColumn:u}=r.range;return n===`down`?s===c?s===0?null:{sourceRange:{startRow:s-1,endRow:s-1,startColumn:l,endColumn:u},targetRange:{startRow:s-1,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}:{sourceRange:{startRow:s,endRow:s,startColumn:l,endColumn:u},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}:l===u?l===0?null:{sourceRange:{startRow:s,endRow:c,startColumn:l-1,endColumn:l-1},targetRange:{startRow:s,endRow:c,startColumn:l-1,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}:{sourceRange:{startRow:s,endRow:c,startColumn:l,endColumn:l},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:J.COPY}}async function Go(e,n){let r=Wo(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand(Uo.id,r);return i&&e.get(Ho).setShowMenu(!1),i}let Ko={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>Go(e,`down`)},qo={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>Go(e,`right`)},Jo={id:`sheet.command.auto-clear-content`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=p(e.get(t.IUniverInstanceService));if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(A),s=e.get(H),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:f,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:Sn([u])},g=L(e,h),_=[{id:R.id,params:h},{id:W.id,params:{selections:[{primary:{startColumn:f,startRow:m,endColumn:f,endRow:m,actualRow:m,actualColumn:f,isMerged:!1,isMergedMainCell:!1},range:{...d}}],unitId:c,subUnitId:l}}],v=[{id:R.id,params:g},{id:W.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i)){let e=o.afterCommandExecute({id:R.id,params:h});return(0,t.sequenceExecute)(e.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...e.undos],redoMutations:[..._,...e.redos]}),!0}return!1}},Yo={id:`sheet.command.clear-selection-content`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),{unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId});if(!i)return!1;let a=e.get(H),{unitId:o,subUnitId:s}=i,c=(n==null?void 0:n.ranges)||((r=a.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(c!=null&&c.length))return!1;let l=e.get(t.ICommandService),u=e.get(t.IUndoRedoService),d=e.get(A),f={subUnitId:s,unitId:o,cellValue:Sn(En(c,e,o,s))},m=L(e,f),h=d.onCommandExecute({id:Yo.id,params:n}),g=[{id:R.id,params:f},...h.redos],_=[...h.undos,{id:R.id,params:m}];return(0,t.sequenceExecute)(g,l).result?(u.pushUndoRedo({unitID:o,undoMutations:_,redoMutations:g}),!0):!1}},Xo=`sheets.config`;Symbol(Xo);let Zo={largeSheetCellCountThreshold:6e3,batchSize:3e3},Qo={},$o=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,w(this,`_tasks`,new Map),w(this,`_idleCallbackId`,null),w(this,`_beforeUnloadHandler`,null),this._setupBeforeUnloadListener(),this.disposeWithMe(()=>{this._cancelAllTasks(),this._removeBeforeUnloadListener()})}hasPendingTasks(){return this._tasks.size>0}getPendingMutationsCount(){let e=0;for(let t of this._tasks.values())e+=t.mutations.length-t.currentIndex;return e}scheduleMutations(e,t,n){if(n.length===0)return;let r=`${e}_${t}`;this._cancelTask(r),this._tasks.set(r,{unitId:e,subUnitId:t,mutations:n,currentIndex:0}),this._scheduleNextIdle()}cancelScheduledMutations(e,t){let n=`${e}_${t}`;this._cancelTask(n)}_cancelTask(e){this._tasks.delete(e),this._tasks.size===0&&this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_cancelAllTasks(){this._tasks.clear(),this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_scheduleNextIdle(){this._idleCallbackId===null&&(typeof requestIdleCallback<`u`?this._idleCallbackId=requestIdleCallback(e=>this._processIdleTasks(e),{timeout:1e3*60}):this._idleCallbackId=setTimeout(()=>{this._processIdleTasks({didTimeout:!1,timeRemaining:()=>16})},16))}_processIdleTasks(e){this._idleCallbackId=null;for(let[t,n]of this._tasks){if(!this._isSheetExist(n.unitId,n.subUnitId)){this._tasks.delete(t);continue}for(n.currentIndex;n.currentIndex<n.mutations.length;){if(e.timeRemaining()<=0&&!e.didTimeout){this._scheduleNextIdle();return}let t=n.mutations[n.currentIndex];this._commandService.syncExecuteCommand(t.id,t.params,{onlyLocal:!0}),n.currentIndex++}this._tasks.delete(t)}this._tasks.size>0&&this._scheduleNextIdle()}_isSheetExist(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);return r?r.getSheetBySheetId(n)!==null:!1}_setupBeforeUnloadListener(){typeof window>`u`||(this._beforeUnloadHandler=e=>{if(this.hasPendingTasks())return e.preventDefault(),e.returnValue=``,``},window.addEventListener(`beforeunload`,this._beforeUnloadHandler))}_removeBeforeUnloadListener(){typeof window>`u`||!this._beforeUnloadHandler||(window.removeEventListener(`beforeunload`,this._beforeUnloadHandler),this._beforeUnloadHandler=null)}};$o=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService)],$o);let es={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},ts=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),ns={id:`sheet.mutation.insert-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{sheet:i,index:a,unitId:o,styles:s}=n,c=r.getUniverSheetInstance(o);return c?(s&&c.addStyles(s),c.addWorksheet(i.id,a,(0,t.cloneWorksheetData)(i))):!1}};function rs(e){let t=0;for(let n of Object.keys(e)){let r=e[Number(n)];r&&(t+=Object.keys(r).length)}return t}function is(e,t,n,r){let i=[],a={},o=0;for(let e in n){let t=Number(e),s=n[t];if(!s)continue;let c=Object.keys(s).length;o>0&&o+c>r&&(i.push(a),a={},o=0),a[t]=s,o+=c,o>=r&&(i.push(a),a={},o=0)}return o>0&&i.push(a),{firstChunkCellData:i.length>0?i[0]:{},remainingMutations:i.slice(1).map(n=>({id:R.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}let as=`sheet.command.copy-sheet`;function os(e,n,r,i,a,o,s){var c,l;let u=e.get(t.IConfigService).getConfig(Xo),d={...Zo,...u==null?void 0:u.largeSheetOperation},f=(0,t.cloneWorksheetData)(r.getConfig());f.name=cs(n,o,f.name);let p=(0,t.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=rs(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=is(i,p,h,d.batchSize),n={...f,cellData:e};_={index:m+1,sheet:n,unitId:i},v=t}else _={index:m+1,sheet:f,unitId:i};let y=ts(e,_),b=s.onCommandExecute({id:as,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:ns.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:Lr.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}let ss={type:t.CommandType.COMMAND,id:as,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(A),s=e.get(t.LocaleService),c=e.get($o),l=p(a,n);if(!l)return!1;let{workbook:u,worksheet:d,unitId:f,subUnitId:m}=l,{redos:h,undos:g,newSheetId:_,isSplit:v,scheduledMutations:y}=os(e,u,d,f,m,s,o);if((0,t.sequenceExecute)(h,r).result){if(v){if(i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:[]}),y.length>0){for(let e of y)r.syncExecuteCommand(e.id,e.params,{syncOnly:!0});r.syncExecuteCommand(es.id,{unitId:f,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(f,_,y)}}else i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:h});return!0}return!1}};function cs(e,t,n){let r=`${n} ${t.t(`sheets.tabs.sheetCopy`,``)}`,i=2;for(;e.checkSheetName(r);)r=`${n} ${t.t(`sheets.tabs.sheetCopy`,`${i}`)}`,i++;return r}let ls={type:t.CommandType.COMMAND,id:`sheet.command.delete-range-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a,subUnitId:o,rule:s}=n,c={unitId:a,subUnitId:o,ruleIds:[s.id]};return await r.executeCommand(An.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:An.id,params:c}],undoMutations:[{id:Mn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},us={type:t.CommandType.COMMAND,id:`sheet.command.delete-worksheet-protection`,handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{rule:a,unitId:o,subUnitId:s}=n;r.executeCommand(pa.id,{unitId:o,subUnitId:s});let c=[{id:pa.id,params:{unitId:o,subUnitId:s}}],l=[{id:fa.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},ds={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-range-theme-style`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a}=n,o=be(e,n);return r.syncExecuteCommand(ye.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:_e.id,params:o}],redoMutations:[{id:ye.id,params:n}]}),!0):!1}},fs={id:`sheet.command.insert-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService);if(!n)return!1;let o={...n};return i.syncExecuteCommand(r.SetDefinedNameMutation.id,o)?(a.pushUndoRedo({unitID:n.unitId,undoMutations:[{id:r.RemoveDefinedNameMutation.id,params:o}],redoMutations:[{id:r.SetDefinedNameMutation.id,params:o}]}),!0):!1}},ps={id:`sheet.command.insert-sheet`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(t.LocaleService),s=f(a,{unitId:n==null?void 0:n.unitId});if(!s)return!1;let{unitId:c,workbook:l}=s,u=l.getSheets().length,d=n==null?void 0:n.sheet,p=d==null?void 0:d.id,m=(0,t.mergeWorksheetSnapshotWithDefault)(d||{});if(n){var h;u=(h=n.index)==null?u:h,m.id=p||(0,t.generateRandomId)(),m.name=(d==null?void 0:d.name)||l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else m.id=(0,t.generateRandomId)(),m.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let g={index:u,sheet:m,unitId:c},_=ts(e,g);return r.syncExecuteCommand(ns.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Lr.id,params:_}],redoMutations:[{id:ns.id,params:g}]}),!0):!1}},ms={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(Ho).fillData(t.type)},hs={id:`sheet.mutation.register-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new ne(o,a);return r.registerRangeThemeStyle(i,s),!0}},gs={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},_s={id:`sheet.command.register-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:r,rangeThemeStyle:i}=n,a=e.get(t.IUniverInstanceService),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService);if(!p(a,n))return!1;let c={unitId:r,themeName:i.getName(),rangeThemeStyleJson:i.toJson()},l={unitId:r,themeName:i.getName()};return o.syncExecuteCommand(hs.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:gs.id,params:l}],redoMutations:[{id:hs.id,params:c}]}),!0}},vs={id:`sheet.command.remove-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var i,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A);if(!n)return!1;let l={...n},u=c.onCommandExecute({id:vs.id,params:n}),d=[...(i=u.preRedos)==null?[]:i,{id:r.RemoveDefinedNameMutation.id,params:l},...u.redos],f=[...(a=u.preUndos)==null?[]:a,{id:r.SetDefinedNameMutation.id,params:l},...u.undos];return(0,t.sequenceExecute)(d,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},ys={id:`sheet.command.remove-sheet`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(A),l=e.get(t.IConfigService),u=p(s,n);if(!u)return!1;let{unitId:d,subUnitId:f,workbook:m,worksheet:h}=u;if(m.getSheets().length<=1)return!1;let g=l.getConfig(Xo),_={...Zo,...g==null?void 0:g.largeSheetOperation},v=Jr(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:f,unitId:d,subUnitName:h.getName()},b=v?null:Ir(e,y),x=c.onCommandExecute({id:ys.id,params:{unitId:d,subUnitId:f}}),S=[...(r=x.preRedos)==null?[]:r,{id:Lr.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:ns.id,params:b},...x.undos];return(0,t.sequenceExecute)(S,a).result?(v?o.clearUndoRedo(d):o.pushUndoRedo({unitID:d,undoMutations:C,redoMutations:S}),!0):!1}};var bs=class{constructor(){w(this,`_borderInfo`,{type:t.BorderType.ALL,color:`#000000`,style:t.BorderStyleTypes.THIN,activeBorderType:!1}),w(this,`_borderInfo$`,new n.BehaviorSubject(this._borderInfo)),w(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 xs(e,t){let{startRow:n,startColumn:r,endRow:i,endColumn:a}=e;for(let e=n;e<=i;e++)for(let n=r;n<=a;n++)t(e,n)}let Ss=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||xs(n,(e,n)=>{let s=o.getMergedCell(e,n),c=r;if(s&&(r.bc_tr||r.ml_tr||r.bl_tr||r.tl_mr||r.tl_bc||r.tl_br)){if(i){var l;let e=t.Tools.deepClone((l=a.getValue(s.startRow,s.startColumn))==null?void 0:l.s);c=e!=null&&e.bd?Object.assign(e.bd,r):r}a.setValue(s.startRow,s.startColumn,{s:{bd:c}})}else{if(i){var u;let i=t.Tools.deepClone((u=a.getValue(e,n))==null?void 0:u.s);c=i!=null&&i.bd?Object.assign(i.bd,r):r}a.setValue(e,n,{s:{bd:c}})}})},Cs=e=>({topRangeOut:{startRow:e.startRow-1,startColumn:e.startColumn,endRow:e.startRow-1,endColumn:e.endColumn},leftRangeOut:{startRow:e.startRow,startColumn:e.startColumn-1,endRow:e.endRow,endColumn:e.startColumn-1},bottomRangeOut:{startRow:e.endRow+1,startColumn:e.startColumn,endRow:e.endRow+1,endColumn:e.endColumn},rightRangeOut:{startRow:e.startRow,startColumn:e.endColumn+1,endRow:e.endRow,endColumn:e.endColumn+1},topRange:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.startRow,endColumn:e.endColumn},leftRange:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.startColumn},bottomRange:{startRow:e.endRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn},rightRange:{startRow:e.startRow,startColumn:e.endColumn,endRow:e.endRow,endColumn:e.endColumn}});function ws(e,n,r){let{style:i,color:a,type:o}=e.getBorderInfo(),s=o===t.BorderType.TOP||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,c=o===t.BorderType.LEFT||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,l=o===t.BorderType.BOTTOM||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,u=o===t.BorderType.RIGHT||o===t.BorderType.ALL||o===t.BorderType.OUTSIDE,d=o===t.BorderType.VERTICAL||o===t.BorderType.ALL||o===t.BorderType.INSIDE,f=o===t.BorderType.HORIZONTAL||o===t.BorderType.ALL||o===t.BorderType.INSIDE,p=o.indexOf(`tlbr`)>-1,m=o.indexOf(`tlbc`)>-1,h=o.indexOf(`tlmr`)>-1,g=o.indexOf(`bltr`)>-1,_=o.indexOf(`mltr`)>-1,v=o.indexOf(`bctr`)>-1,y=r[0],{topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:D}=Cs(y),O=new t.ObjectMatrix,{worksheet:k,unitId:A,subUnitId:ee}=n;return{worksheet:k,unitId:A,subUnitId:ee,style:i,color:a,type:o,top:s,left:c,right:u,bottom:l,vertical:d,horizontal:f,tl_br:p,tl_bc:m,tl_mr:h,bl_tr:g,ml_tr:_,bc_tr:v,topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:D,range:y,mr:O,borderStyle:{s:i,cl:{rgb:a}}}}let Ts=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&xs(n,(e,a)=>{let o=s.getMergedCell(e,a);if(o){var c;let s=(c=r.getValue(o.startRow,o.startColumn))==null?void 0:c.s;o.startColumn!==n.startColumn&&r.setValue(e,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{l:t.Tools.deepClone(i)}):{l:t.Tools.deepClone(i)}}})}else{if(a!==n.endColumn){var l;let n=(l=r.getValue(e,a))==null?void 0:l.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{r:t.Tools.deepClone(i)}):{r:t.Tools.deepClone(i)}}})}if(a!==n.startColumn){var u;let n=(u=r.getValue(e,a))==null?void 0:u.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{l:t.Tools.deepClone(i)}):{l:t.Tools.deepClone(i)}}})}}}),o&&xs(n,(e,a)=>{let o=s.getMergedCell(e,a);if(o){var c;let s=(c=r.getValue(o.startRow,o.startColumn))==null?void 0:c.s;o.startRow!==n.startRow&&r.setValue(e,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{t:t.Tools.deepClone(i)}):{t:t.Tools.deepClone(i)}}})}else{if(e!==n.endRow){var l;let n=(l=r.getValue(e,a))==null?void 0:l.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{b:t.Tools.deepClone(i)}):{b:t.Tools.deepClone(i)}}})}if(e!==n.startRow){var u;let n=(u=r.getValue(e,a))==null?void 0:u.s;r.setValue(e,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{t:t.Tools.deepClone(i)}):{t:t.Tools.deepClone(i)}}})}}})};function Es(e){let{borderStyle:n,tl_br:r,tl_bc:i,tl_mr:a,bl_tr:o,ml_tr:s,bc_tr:c}=e,l=(t,n,r)=>{Ss(e,t,n,r)};r&&l(e.range,{tl_br:t.Tools.deepClone(n)},!0),i&&l(e.range,{tl_bc:t.Tools.deepClone(n)},!0),a&&l(e.range,{tl_mr:t.Tools.deepClone(n)},!0),o&&l(e.range,{bl_tr:t.Tools.deepClone(n)},!0),s&&l(e.range,{ml_tr:t.Tools.deepClone(n)},!0),c&&l(e.range,{bc_tr:t.Tools.deepClone(n)},!0)}let Ds=e=>{let{top:n,left:r,right:i,bottom:a,borderStyle:o,bottomRange:s,topRange:c,leftRange:l,rightRange:u,bottomRangeOut:d,topRangeOut:f,leftRangeOut:p,rightRangeOut:m}=e,h=(t,n,r)=>{Ss(e,t,n,r)};n&&(h(f,{b:null}),h(c,{t:t.Tools.deepClone(o)},!0)),a&&(h(d,{t:null}),h(s,{b:t.Tools.deepClone(o)},!0)),r&&(h(p,{r:null}),h(l,{l:t.Tools.deepClone(o)},!0)),i&&(h(m,{l:null}),h(u,{r:t.Tools.deepClone(o)},!0))},Os=e=>{let{range:t,worksheet:n,mr:r,top:i,bottom:a,left:o,right:s,vertical:c,horizontal:l,tl_br:u,tl_bc:d,tl_mr:f,bl_tr:p,ml_tr:m,bc_tr:h,topRange:g,bottomRange:_,leftRange:v,rightRange:y,topRangeOut:b,bottomRangeOut:x,leftRangeOut:S,rightRangeOut:C}=e,w=(t,n,r)=>{Ss(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(xs(t,(e,i)=>{let a=n.getMergedCell(e,i);if(a){if(a.endColumn!==t.endColumn){var o;let t=(o=r.getValue(a.startRow,a.startColumn))==null?void 0:o.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{r:null}):{r:null}}})}if(a.startColumn!==t.startColumn){var s;let t=(s=r.getValue(a.startRow,a.startColumn))==null?void 0:s.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{l:null}):{l:null}}})}if(a.endRow!==t.endRow){var c;let t=(c=r.getValue(a.startRow,a.startColumn))==null?void 0:c.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{b:null}):{b:null}}})}if(a.startRow!==t.startRow){var l;let t=(l=r.getValue(a.startRow,a.startColumn))==null?void 0:l.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{t:null}):{t:null}}})}}else{if(i!==t.endColumn){var u;let t=(u=r.getValue(e,i))==null?void 0:u.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{r:null}):{r:null}}})}if(i!==t.startColumn){var d;let t=(d=r.getValue(e,i))==null?void 0:d.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{l:null}):{l:null}}})}if(e!==t.endRow){var f;let t=(f=r.getValue(e,i))==null?void 0:f.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{b:null}):{b:null}}})}if(e!==t.startRow){var p;let t=(p=r.getValue(e,i))==null?void 0:p.s;r.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{t:null}):{t:null}}})}}}),w(b,{b:null}),w(g,{t:null},!0),w(x,{t:null}),w(_,{b:null},!0),w(S,{r:null}),w(v,{l:null},!0),w(C,{l:null}),w(y,{r:null},!0),w(t,{tl_br:null},!0),w(t,{tl_bc:null},!0),w(t,{tl_mr:null},!0),w(t,{bl_tr:null},!0),w(t,{ml_tr:null},!0),w(t,{bc_tr:null},!0))},ks={id:`sheet.command.set-border`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(t.IUniverInstanceService),s=e.get(H),c=e.get(bs),l=p(o,n);if(!l)return!1;let u=(n==null?void 0:n.ranges)||((r=s.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(u!=null&&u.length))return!1;let{activeBorderType:d}=c.getBorderInfo();if(!d)return!1;let f=ws(c,l,u);Ts(f),Ds(f),Es(f),Os(f);let{unitId:m,subUnitId:h,mr:g}=f,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=L(e,_);return i.syncExecuteCommand(R.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:R.id,params:v}],redoMutations:[{id:R.id,params:_}]}),!0):!1}},As={id:`sheet.command.set-border-position`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n.value)return!1;let r=e.get(t.ICommandService);return e.get(bs).setType(n.value),r.syncExecuteCommand(ks.id)}},js={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(bs).setStyle(n.value),r.syncExecuteCommand(ks.id)}},Ms={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(bs).setColor(n.value),r.syncExecuteCommand(ks.id)}},Ns={id:`sheet.command.set-border-basic`,type:t.CommandType.COMMAND,handler:(e,n)=>{let{unitId:r,subUnitId:i,value:a,ranges:o}=n,{type:s,color:c,style:l}=a,u=e.get(t.ICommandService),d=e.get(bs);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(ks.id,{unitId:r,subUnitId:i,ranges:o})}},Ps={type:t.CommandType.COMMAND,id:`sheet.command.set-col-data`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{columnData:o}=n,{unitId:s,subUnitId:c,worksheet:l}=a,u={subUnitId:c,unitId:s,columnData:o},d=Le(u,l);return r.syncExecuteCommand(Re.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Re.id,params:d}],redoMutations:[{id:Re.id,params:u}]}),!0):!1}},Fs={type:t.CommandType.COMMAND,id:`sheet.command.set-col-visible-on-cols`,handler:(e,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=e.get(A),s=e.get(t.ICommandService),c=p(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!c)return!1;let{worksheet:l}=c,u={unitId:r,subUnitId:i,ranges:a},d={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,l),style:null}))},f=Ve(e,u),m={unitId:r,subUnitId:i,selections:zs(a).map(e=>({range:e,primary:U(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:He.id,params:u},{id:W.id,params:d}],s),g=o.onCommandExecute({id:Fs.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:Fs.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Be.id,params:f},{id:W.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:He.id,params:u},{id:W.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Is={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var n;let r=e.get(H),i=e.get(t.ICommandService),a=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(a!=null&&a.length))return!1;let o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=a.map(e=>s.getHiddenCols(e.startColumn,e.endColumn)).flat();return i.executeCommand(Fs.id,{unitId:c,subUnitId:l,ranges:u})}},Ls={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r,i;let a=e.get(H),o=e.get(A),s=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(l!=null&&l.length))return!1;let u=p(s,n);if(!u)return!1;let{worksheet:d,unitId:f,subUnitId:m}=u;l=Rs(u.worksheet,l);let h={unitId:f,subUnitId:m,ranges:l},g={unitId:f,subUnitId:m,selections:zs(l).map(e=>({range:e,primary:U(e,d),style:null}))},_=ze(e,h),v={unitId:f,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:U(e,d),style:null}))},y=(0,t.sequenceExecute)([{id:Be.id,params:h},{id:W.id,params:g}],c),b=o.onCommandExecute({id:Ls.id,params:h}),x=(0,t.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:Ls.id,params:h});return(0,t.sequenceExecute)(n.redos,c),e.get(t.IUndoRedoService).pushUndoRedo({unitID:f,undoMutations:[{id:He.id,params:_},{id:W.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Be.id,params:h},{id:W.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function Rs(e,t){let n=e.getRowCount()-1,r=e.getHiddenCols(),i=[];return t.forEach(e=>{let t=r.filter(t=>t.startColumn>=e.startColumn&&t.endColumn<=e.endColumn);if(t.length){let r=e.startColumn;t.forEach(e=>{e.startColumn>r&&(i.push({startColumn:r,endColumn:e.startColumn-1,startRow:0,endRow:n}),r=e.endColumn+1)}),r<=e.endColumn&&i.push({startColumn:r,endColumn:e.endColumn,startRow:0,endRow:n})}else i.push(e)}),i}function zs(e){return Bs(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Bs(e){let t=[],n;return e.sort((e,t)=>e.startColumn-t.startColumn).forEach(e=>{if(!n){n=e;return}n.endColumn===e.startColumn-1?n.endColumn=e.endColumn:(t.push(n),n=e)}),t.push(n),t}let Vs={id:`sheet.command.set-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var i,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A);if(!n)return!1;let l={...n},u=(0,r.SetDefinedNameMutationFactory)(e,n),d=c.onCommandExecute({id:Vs.id,params:n}),f=[...(i=d.preRedos)==null?[]:i,...u?[{id:r.RemoveDefinedNameMutation.id,params:u}]:[],{id:r.SetDefinedNameMutation.id,params:l},...d.redos],p=[...(a=d.preUndos)==null?[]:a,{id:r.RemoveDefinedNameMutation.id,params:l},...u?[{id:r.SetDefinedNameMutation.id,params:u}]:[],...d.undos];return(0,t.sequenceExecute)(f,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Hs=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(i==null)throw Error(`worksheet is null error!`);let a=i.getConfig().freeze;return{unitId:n.unitId,subUnitId:n.subUnitId,...a}},Us={id:`sheet.mutation.set-frozen`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig(),{startRow:o,startColumn:s,ySplit:c,xSplit:l}=n;return a.freeze={startRow:o,startColumn:s,ySplit:c,xSplit:l},!0}},Ws={type:t.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),{unitId:n.unitId,subUnitId:n.subUnitId});if(!a)return!1;let{unitId:o,subUnitId:s,worksheet:c}=a,{startColumn:l,startRow:u,xSplit:d,ySplit:f}=n;if(u>=c.getRowCount()||l>=c.getColumnCount()||d>=c.getColumnCount()||f>=c.getRowCount())return!1;let m={unitId:o,subUnitId:s,...n},h=Hs(e,m);return r.syncExecuteCommand(Us.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Us.id,params:h}],redoMutations:[{id:Us.id,params:m}]}),!0):!1}},Gs={type:t.CommandType.COMMAND,id:`sheet.command.cancel-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUniverInstanceService),a=e.get(t.IUndoRedoService),o=p(i,{unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId});if(!o)return!1;let{unitId:s,subUnitId:c}=o,l={unitId:s,subUnitId:c,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},u=Hs(e,l);return r.syncExecuteCommand(Us.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:Us.id,params:u}],redoMutations:[{id:Us.id,params:l}]}),!0}},Ks={type:t.CommandType.COMMAND,id:`sheet.command.set-gridlines-color`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().gridlinesColor;if(s===(n==null?void 0:n.color))return!1;let{unitId:c,subUnitId:l}=a,u={color:n==null?void 0:n.color,unitId:c,subUnitId:l},d={color:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Ue.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:d}],redoMutations:[{id:Ue.id,params:u}]}),!0):!1}},X={id:`sheet.mutation.set-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i,ruleId:a}=t;return e.get(B).setRule(n,r,a,i),!0}},qs=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(B).getRule(n,r,i);return a?{id:X.id,params:{...t,rule:a}}:null},Js={id:`sheet.mutation.set-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(da).setRule(n,r,i),!0}},Ys={type:t.CommandType.COMMAND,id:`sheet.command.set-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),o=e.get(B),{rule:s,oldRule:c}=n,{unitId:l,subUnitId:u}=s,d=[],f=[];return(c==null?void 0:c.unitType)===s.unitType?s.unitType===a.UnitObject.Worksheet?(d.push({id:Js.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:Js.id,params:{unitId:l,subUnitId:u,rule:c}})):(d.push({id:X.id,params:{unitId:l,subUnitId:u,rule:s,ruleId:s.id}}),f.push({id:X.id,params:{unitId:l,subUnitId:u,ruleId:c.id,rule:c}})):(c&&(c.unitType===a.UnitObject.Worksheet?(d.push({id:pa.id,params:{unitId:l,subUnitId:u}}),f.push({id:fa.id,params:{unitId:l,rule:c,subUnitId:c.subUnitId}})):c.unitType===a.UnitObject.SelectRange&&(d.push({id:An.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:Mn.id,params:{unitId:l,subUnitId:u,rules:[c]}}))),s.unitType===a.UnitObject.Worksheet?(d.push({id:fa.id,params:{unitId:l,rule:s,subUnitId:s.subUnitId}}),f.unshift({id:pa.id,params:{unitId:l,subUnitId:u}})):s.unitType===a.UnitObject.SelectRange&&(s.id=o.createRuleId(l,u),d.push({id:Mn.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:An.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,t.sequenceExecute)(d,r)&&i.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},Xs={id:`sheet.command.set-range-custom-metadata`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let i=e.get(t.ICommandService),{unitId:a,subUnitId:o}=r,{range:s,customMetadata:c}=n,{startRow:l,startColumn:u,endRow:d,endColumn:f}=s,m=t.Tools.isArray(c),h=new t.ObjectMatrix;for(let e=l;e<=d;e++)for(let t=u;t<=f;t++){let n=m?c[e-l][t-u]:c;h.setValue(e,t,n)}return i.syncExecuteCommand(R.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},Zs={type:t.CommandType.COMMAND,id:`sheet.command.set-row-data`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{rowData:o}=n,{unitId:s,subUnitId:c,worksheet:l}=a,u={subUnitId:c,unitId:s,rowData:o},d=_t(u,l);return r.syncExecuteCommand(vt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:vt.id,params:d}],redoMutations:[{id:vt.id,params:u}]}),!0):!1}},Qs={type:t.CommandType.COMMAND,id:`sheet.command.set-specific-rows-visible`,handler:(e,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A),l=p(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d={unitId:r,subUnitId:i,ranges:a},f={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,u),style:null}))},m=yt(e,d),h={unitId:r,subUnitId:i,selections:nc(a).map(e=>({range:e,primary:U(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:bt.id,params:d},{id:W.id,params:f}],o),_=c.onCommandExecute({id:Qs.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let e=c.afterCommandExecute({id:Qs.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:St.id,params:m},{id:W.id,params:h},...(b=_.undos)==null?[]:b,...e.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:bt.id,params:d},{id:W.id,params:f},..._.redos,...e.redos]}),!0}return!0}},$s={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var n;let r=e.get(H),i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(o!=null&&o.length))return!1;let s=p(i);if(!s)return!1;let{worksheet:c,unitId:l,subUnitId:u}=s,d=o.map(e=>c.getHiddenRows(e.startRow,e.endRow)).flat();return a.executeCommand(Qs.id,{unitId:l,subUnitId:u,ranges:d})}},ec={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r,i,a;let o=e.get(H),s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l=e.get(t.IUniverInstanceService),u=e.get(A),d=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=o.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(d!=null&&d.length))return!1;let f=p(l,n);if(!f)return!1;d=tc(f.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=f,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:nc(d).map(e=>({range:e,primary:U(e,g),style:null}))},y=xt(e,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:U(e,g),style:null}))},x=u.onCommandExecute({id:ec.id,params:_});if((0,t.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:St.id,params:_},{id:W.id,params:v},...x.redos],s).result){var S,C,w;let e=u.afterCommandExecute({id:ec.id,params:_});return(0,t.sequenceExecute)(e.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:bt.id,params:y},{id:W.id,params:b},...(C=x.undos)==null?[]:C,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:St.id,params:_},{id:W.id,params:v},...x.redos,...e.redos]}),!0}return!0}};function tc(e,t){let n=e.getMaxColumns()-1,r=e.getHiddenRows(),i=[];return t.forEach(e=>{let t=r.filter(t=>t.startRow>=e.startRow&&t.endRow<=e.endRow);if(t.length){let r=e.startRow;t.forEach(e=>{e.startRow>r&&(i.push({startRow:r,endRow:e.startRow-1,startColumn:0,endColumn:n}),r=e.endRow+1)}),r<=e.endRow&&i.push({startRow:r,endRow:e.endRow,startColumn:0,endColumn:n})}else i.push(e)}),i}function nc(e){return rc(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function rc(e){let t=[],n;return e.sort((e,t)=>e.startRow-t.startRow).forEach(e=>{if(!n){n=e;return}e.startRow===n.endRow+1?n.endRow=e.endRow:(t.push(n),n=e)}),t.push(n),t}let ic=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},ac={id:`sheet.mutation.set-tab-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},oc={type:t.CommandType.COMMAND,id:`sheet.command.set-tab-color`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=ic(e,c);return r.syncExecuteCommand(ac.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:ac.id,params:l}],redoMutations:[{id:ac.id,params:c}]}),!0):!1}},sc={id:`sheet.mutation.set-workbook-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);return r?(r.setName(n.name),!0):!1}},cc={type:t.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(A);if(!f(e.get(t.IUniverInstanceService),n))return!1;let o=a.onCommandExecute({id:cc.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:sc.id,params:s},...o.redos],i).result}},lc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,n,r)=>{let i=e.get(t.ICommandService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(Rt.id,{unitId:o,subUnitId:s},r))},4)})}},uc={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=p(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,{anchorCol:u,deltaX:d}=n,f=s.getColumnWidth(u)+d,m=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,h=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN),g=m?t.RANGE_TYPE.ALL:h.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=u&&u<=n})?t.RANGE_TYPE.COLUMN:t.RANGE_TYPE.NORMAL,_;if(g===t.RANGE_TYPE.ALL){let e=s.getRowCount();_={subUnitId:l,unitId:c,colWidth:f,ranges:Array(s.getColumnCount()).fill(void 0).map((t,n)=>({startRow:0,endRow:e-1,startColumn:n,endColumn:n}))}}else _=g===t.RANGE_TYPE.COLUMN?{subUnitId:l,unitId:c,ranges:h.map(e=>t.Rectangle.clone(e.range)),colWidth:f}:{subUnitId:l,unitId:c,colWidth:f,ranges:[{startRow:0,endRow:s.getMaxRows()-1,startColumn:u,endColumn:u}]};let v=e.get(Gr).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=qr(_.ranges,v);Kr(y,s);let x=e.get(A),{undos:S,redos:C}=x.onCommandExecute({id:uc.id,params:_}),w=Ct(_,s),T=i.syncExecuteCommand(wt.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:O,redos:k}=e.get(A).afterCommandExecute({id:uc.id,params:_}),ee=(0,t.sequenceExecute)([...C,...k,...D],i);return T&&ee.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:wt.id,params:w},...S,...O,...E],redoMutations:[{id:wt.id,params:_},...C,...k,...D]}),!0}},dc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(H),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(A),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(l!=null&&l.length))return!1;let u=p(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:f,worksheet:m}=u,h=e.get(Gr).getSkeleton(f,d),g={subUnitId:d,unitId:f,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=qr(g.ranges,h);Kr(_,m);let y=Ct(g,m),b=o.syncExecuteCommand(wt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:dc.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let e=c.afterCommandExecute({id:dc.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:wt.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:wt.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},fc={type:t.CommandType.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(H),o=p(e.get(t.IUniverInstanceService),n);if(!o)return!1;let{unitId:s,subUnitId:c}=o,l=[];if(n!=null&&n.ranges)l=[...n.ranges];else{let e=a.getCurrentSelections();for(let t=0;t<e.length;t++)l.push(e[t].range)}if(!(l!=null&&l.length))return!1;let u={unitId:s,subUnitId:c,ranges:l},{undos:d,redos:f}=e.get(A).onCommandExecute({id:fc.id,params:u});return(0,t.sequenceExecute)([...f],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...f]}),!0):!1}},pc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-column-count`,handler:(e,n)=>{let{unitId:r,subUnitId:i,columnCount:a}=n,o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService);if(!p(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount:a},l=Tt(e,c);return o.syncExecuteCommand(Et.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Et.id,params:l}],redoMutations:[{id:Et.id,params:c}]}),!0):!1}},mc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-default-style`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{unitId:a}=n,o=Ot(e,n);return r.syncExecuteCommand(Dt.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Dt.id,params:o}],redoMutations:[{id:Dt.id,params:n}]}),!0):!1}},hc=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetHideMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{hidden:i.isSheetHidden(),unitId:n.unitId,subUnitId:i.getSheetId()}},gc={id:`sheet.mutation.set-worksheet-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().hidden=n.hidden,!0):!1}},_c={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-hidden`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.ErrorService),o=e.get(t.LocaleService),s=p(e.get(t.IUniverInstanceService),n);if(!s)return!1;let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s;if(l.getConfig().hidden===t.BooleanNumber.TRUE)return!1;let f={unitId:u,subUnitId:d,hidden:t.BooleanNumber.TRUE},m=hc(e,f);return c.getSheets().filter(e=>e.getConfig().hidden===t.BooleanNumber.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):r.syncExecuteCommand(gc.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:gc.id,params:m}],redoMutations:[{id:gc.id,params:f}]}),!0):!1}},vc=(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetNameMutationFactory]: worksheet is null error!`);let{worksheet:i}=r;return{unitId:n.unitId,name:i.getName(),subUnitId:i.getSheetId()}},yc={id:`sheet.mutation.set-worksheet-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},bc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(A),c=p(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d={subUnitId:u,name:n.name,unitId:l},f=vc(e,d),m=s.onCommandExecute({id:bc.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:yc.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:yc.id,params:f},...m.undos];return(0,t.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},xc=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),Sc={id:`sheet.mutation.set-worksheet-order`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getConfig();return i.sheetOrder.splice(n.fromOrder,1),i.sheetOrder.splice(n.toOrder,0,n.subUnitId),r.ensureSheetOrderUnique(),!0}},Cc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-order`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{workbook:o,unitId:s,subUnitId:c}=a,l={fromOrder:o.getConfig().sheetOrder.indexOf(c),toOrder:n.order,unitId:s,subUnitId:c},u=xc(e,l);return r.syncExecuteCommand(Sc.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Sc.id,params:u}],redoMutations:[{id:Sc.id,params:l}]}),!0):!1}};var wc=class{constructor(){w(this,`_model`,new Map),w(this,`_pointChange`,new n.Subject),w(this,`pointChange$`,this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var n;let r=(n=this._model.get(e))==null?void 0:n.get(t);if(r){var i;(i=this._model)==null||(i=i.get(e))==null||i.delete(t),this._pointChange.next(r)}}getRule(e,t){var n;return(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t)}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t);n!=null&&n.size&&(e[t]=[],[...n.keys()].forEach(r=>{let i=n.get(r);i&&e[t].push(i)}))}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n];if(r!=null&&r.length){let e=new Map;r.forEach(t=>{e.set(t.subUnitId,t)}),t.set(n,e)}}),this._model=t}deleteUnitModel(e){this._model.delete(e)}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)if(i.permissionId===t)return[e,r]}},Tc=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.Delete),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!0),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.Delete}.${r}`}},Z=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.Edit),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!0),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.Edit}.${r}`}},Ec=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.ManageCollaborator),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!0),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.ManageCollaborator}.${r}`}},Dc=class{constructor(e,n,r){w(this,`type`,a.UnitObject.SelectRange),w(this,`subType`,a.UnitAction.View),w(this,`status`,t.PermissionStatus.INIT),w(this,`value`,!1),w(this,`id`,void 0),w(this,`unitId`,void 0),w(this,`subUnitId`,void 0),w(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.View}.${r}`}};let Oc=()=>[Dc,Z,Ec,Tc],kc=[a.UnitAction.Edit,a.UnitAction.View,a.UnitAction.ManageCollaborator,a.UnitAction.Delete],Ac=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>Oc().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{});var jc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Comment),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Comment}_${e}`}},Mc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Copy),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Copy}_${e}`}},Nc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`subType`,a.UnitAction.CopySheet),w(this,`status`,t.PermissionStatus.INIT),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CopySheet}_${e}`}},Pc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreatePermissionObject}_${e}`}},Fc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.CreateSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreateSheet}_${e}`}},Ic=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}`}},Lc=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteRow),this.id=`${this.type}.${a.UnitAction.DeleteRow}_${e}`}},Rc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.DeleteSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.DeleteSheet}_${e}`}},zc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Duplicate),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Duplicate}_${e}`}},Q=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Edit),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Edit}_${e}`}},Bc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Export),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Export}_${e}`}},Vc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.HideSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.HideSheet}_${e}`}},Hc=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}`}},Uc=class{constructor(e){this.unitId=e,w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}`}},Wc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}`}},Gc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.MoveSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.MoveSheet}_${e}`}},Kc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Print),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Print}_${e}`}},qc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.RecoverHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RecoverHistory}_${e}`}},Jc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.RenameSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RenameSheet}_${e}`}},Yc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.Share),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Share}_${e}`}},Xc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.View),this.unitId=e,this.id=`${this.type}.${a.UnitAction.View}_${e}`}},Zc=class{constructor(e){this.unitId=e,w(this,`id`,void 0),w(this,`value`,!0),w(this,`type`,a.UnitObject.Workbook),w(this,`status`,t.PermissionStatus.INIT),w(this,`subType`,a.UnitAction.ViewHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ViewHistory}_${e}`}},Qc=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Copy),this.id=`${this.type}.${a.UnitAction.Copy}_${e}_${n}`}},$c=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}_${n}`}},el=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Delete),this.id=`${this.type}.${a.UnitAction.Delete}_${e}_${n}`}},tl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.DeleteRow),this.id=`${this.type}.${a.UnitAction.DeleteRow}_${e}_${n}`}},$=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Edit),this.id=`${this.type}.${a.UnitAction.Edit}_${e}_${n}`}},nl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.EditExtraObject),this.id=`${this.type}.${a.UnitAction.EditExtraObject}_${e}_${n}`}},rl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Filter),this.id=`${this.type}.${a.UnitAction.Filter}_${e}_${n}`}},il=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}_${n}`}},al=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertHyperlink),this.id=`${this.type}.${a.UnitAction.InsertHyperlink}_${e}_${n}`}},ol=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}_${n}`}},sl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.ManageCollaborator),this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}_${n}`}},cl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.PivotTable),this.id=`${this.type}.${a.UnitAction.PivotTable}_${e}_${n}`}},ll=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SelectProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectProtectedCells}_${e}_${n}`}},ul=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SelectUnProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectUnProtectedCells}_${e}_${n}`}},dl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetCellStyle),this.id=`${this.type}.${a.UnitAction.SetCellStyle}_${e}_${n}`}},fl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetCellValue),this.id=`${this.type}.${a.UnitAction.SetCellValue}_${e}_${n}`}},pl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetColumnStyle),this.id=`${this.type}.${a.UnitAction.SetColumnStyle}_${e}_${n}`}},ml=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.SetRowStyle),this.id=`${this.type}.${a.UnitAction.SetRowStyle}_${e}_${n}`}},hl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.Sort),this.id=`${this.type}.${a.UnitAction.Sort}_${e}_${n}`}},gl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,w(this,`value`,!0),w(this,`type`,a.UnitObject.Worksheet),w(this,`status`,t.PermissionStatus.INIT),w(this,`id`,void 0),w(this,`subType`,a.UnitAction.View),this.id=`${this.type}.${a.UnitAction.View}_${e}_${n}`}};let _l=()=>[Q,Kc,jc,Xc,Mc,Bc,Wc,Fc,Rc,Jc,Vc,zc,Yc,Gc,Nc,Zc,qc,Pc,Uc,Hc,Lc,Ic],vl=[a.UnitAction.Edit,a.UnitAction.Print,a.UnitAction.Comment,a.UnitAction.View,a.UnitAction.Copy,a.UnitAction.Export,a.UnitAction.ManageCollaborator,a.UnitAction.CreateSheet,a.UnitAction.DeleteSheet,a.UnitAction.RenameSheet,a.UnitAction.HideSheet,a.UnitAction.Duplicate,a.UnitAction.Share,a.UnitAction.MoveSheet,a.UnitAction.CopySheet,a.UnitAction.RecoverHistory,a.UnitAction.ViewHistory,a.UnitAction.CreatePermissionObject,a.UnitAction.InsertRow,a.UnitAction.InsertColumn,a.UnitAction.DeleteRow,a.UnitAction.DeleteColumn],yl=()=>[$,gl,sl,el],bl=()=>[Qc,$c,tl,nl,rl,il,ol,al,cl,dl,fl,pl,ml,hl],xl=[a.UnitAction.Copy,a.UnitAction.DeleteColumn,a.UnitAction.DeleteRow,a.UnitAction.EditExtraObject,a.UnitAction.Filter,a.UnitAction.InsertColumn,a.UnitAction.InsertRow,a.UnitAction.InsertHyperlink,a.UnitAction.PivotTable,a.UnitAction.SetCellStyle,a.UnitAction.SetCellValue,a.UnitAction.SetColumnStyle,a.UnitAction.SetRowStyle,a.UnitAction.Sort],Sl=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=o,this._logService=s,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){let e=e=>{let t=e.getUnitId(),n=e=>{let n=e.getSheetId();[...yl(),...bl()].forEach(e=>{let r=new e(t,n);this._permissionService.addPermissionPoint(r)}),this._logService.debug(`[WorksheetPermissionService]`,`Initialization completed`,t,n)};e.getSheets().forEach(e=>{n(e)}),e.sheetCreated$.subscribe(e=>{n(e)}),e.sheetDisposed$.subscribe(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Oc()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...yl(),...bl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>e(t)),this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,o.takeUntil)(this.dispose$)).subscribe(t=>e(t.unit)),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,o.takeUntil)(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();yl().forEach(e=>{let t=new e(n,r);this._permissionService.deletePermissionPoint(t.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case`add`:break;case`delete`:yl().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:yl().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,e.rule)});break}}))}_initRuleSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:()=>{let e=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(e)},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_WORKSHEET_PROTECTION_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{yl().forEach(n=>{let r=new n(e,t);r.value=!1,this._permissionService.addPermissionPoint(r)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:e=>{let t=this._univerInstanceService.getUnit(e);t&&(t.getSheets().forEach(t=>{let n=t.getSheetId();[...yl(),...bl()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),_l().forEach(t=>{let n=new t(e);this._permissionService.deletePermissionPoint(n.id)})),this._worksheetProtectionRuleModel.deleteUnitModel(e)}}))}_initPointSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:()=>{let e=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(e)},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{bl().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};Sl=E([T(0,(0,t.Inject)(t.IPermissionService)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,(0,t.Inject)(t.Injector)),T(3,(0,t.Inject)(da)),T(4,(0,t.Inject)(wc)),T(5,(0,t.Inject)(t.IResourceManagerService)),T(6,(0,t.Inject)(B)),T(7,(0,t.Inject)(t.ILogService))],Sl);let Cl={id:`sheet.mutation.set-worksheet-permission-points`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(wc).addRule(n),!0}},wl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-permission-points`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),{rule:i}=n;return r.executeCommand(Cl.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},Tl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),{rule:a,permissionId:o,oldRule:s}=n,{unitId:c,subUnitId:l}=a,u={...a,permissionId:o};if(await r.executeCommand(Js.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:Js.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:Js.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},El=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...t.Tools.deepClone(n),rightToLeft:r}},Dl={id:`sheet.mutation.set-worksheet-right-to-left`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig();return a.rightToLeft=n.rightToLeft,!0}},Ol={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-right-to-left`,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=t.BooleanNumber.FALSE;if(n){var l;c=(l=n.rightToLeft)==null?t.BooleanNumber.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=El(e,u);return r.syncExecuteCommand(Dl.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Dl.id,params:d}],redoMutations:[{id:Dl.id,params:u}]}),!0):!1}},kl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-row-count`,handler:(e,n)=>{let{unitId:r,subUnitId:i,rowCount:a}=n,o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService);if(!p(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=kt(e,c);return o.syncExecuteCommand(At.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:At.id,params:l}],redoMutations:[{id:At.id,params:c}]}),!0):!1}},Al={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(H).getCurrentSelections(),i=e.get(A);if(!(r!=null&&r.length))return!1;let a=p(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,subUnitId:s,unitId:c}=a,{anchorRow:l,deltaY:u}=n,d=o.getRowHeight(l)+u,f=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,m=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW),h=f?t.RANGE_TYPE.ALL:m.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?t.RANGE_TYPE.ROW:t.RANGE_TYPE.NORMAL,g;if(h===t.RANGE_TYPE.ALL){let e=o.getColumnCount();g={subUnitId:s,unitId:c,rowHeight:d,ranges:Array(o.getRowCount()).fill(void 0).map((t,n)=>({startRow:n,endRow:n,startColumn:0,endColumn:e-1}))}}else g=h===t.RANGE_TYPE.ROW?{subUnitId:s,unitId:c,ranges:m.map(e=>t.Rectangle.clone(e.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let _=jt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Mt(v,o),b=e.get(t.ICommandService),x=e.get(t.IUndoRedoService),S=i.onCommandExecute({id:Al.id,params:g}),C=(0,t.sequenceExecute)([{id:Pt.id,params:g},{id:Ft.id,params:v}],b),w=(0,t.sequenceExecute)([...S.redos],b);if(C.result&&w.result){var T,E;let e=i.afterCommandExecute({id:Al.id,params:g});return(0,t.sequenceExecute)(e.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...(T=S.preUndos)==null?[]:T,{id:Pt.id,params:_},{id:Ft.id,params:y},...S.undos,...e.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:Pt.id,params:g},{id:Ft.id,params:v},...S.redos,...e.redos]}),!0}return!1}},jl={type:t.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(e,n)=>{var r,i;let a=e.get(H),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(t.IUniverInstanceService),l=e.get(A),u=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(u!=null&&u.length))return!1;let d=p(c,n);if(!d)return!1;let{unitId:f,subUnitId:m,worksheet:h}=d,g={subUnitId:m,unitId:f,ranges:u,rowHeight:n.value},_=jt(g,h),v={unitId:f,subUnitId:m,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Mt(v,h),b=(0,t.sequenceExecute)([{id:Pt.id,params:g},{id:Ft.id,params:v}],o),x=l.onCommandExecute({id:jl.id,params:g}),S=(0,t.sequenceExecute)([...x.redos],o);if(b.result&&S.result){var C,w;let e=l.afterCommandExecute({id:jl.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(C=x.preRedos)==null?[]:C,{id:Pt.id,params:_},{id:Ft.id,params:y},...x.undos,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:Pt.id,params:g},{id:Ft.id,params:v},...x.redos,...e.redos]}),!0}return!1}},Ml={type:t.CommandType.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(H),c=p(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u,worksheet:d}=c,f=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=s.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(f!=null&&f.length))return!1;let m={unitId:l,subUnitId:u,ranges:f,autoHeightInfo:t.BooleanNumber.TRUE},h=Mt(m,d),g=a.syncExecuteCommand(Ft.id,m),_=e.get(Gr).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=qr(m.ranges,_),b=e.get(A),{undos:x,redos:S}=b.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:v,autoHeightRanges:v,lazyAutoHeightRanges:y}),{undos:C,redos:w}=b.onCommandExecute({id:Ml.id,params:m}),T=(0,t.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Ft.id,params:h},...C,...x],redoMutations:[{id:Ft.id,params:m},...w,...S]}),!0):!1}},Nl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r;if(o.getConfig().hidden===t.BooleanNumber.FALSE)return!1;let s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l={unitId:i,subUnitId:a,hidden:t.BooleanNumber.FALSE},u=hc(e,l),d=s.syncExecuteCommand(gc.id,l),f={unitId:i,subUnitId:a},m=s.syncExecuteCommand(Rt.id,f);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:gc.id,params:u}],redoMutations:[{id:gc.id,params:l}]}),!0):!1}},Pl={type:t.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r,{range:s,delimiter:c,customDelimiter:l,treatMultipleDelimitersAsOne:u}=n,{lastRow:d,rs:f,maxLength:m}=gn(o,s,c,l,u),h=o.getColumnCount(),{startColumn:g}=t.Range.transformRange(s,o);if(s.startColumn!==s.endColumn)return!1;let _=e.get(t.ICommandService),v=e.get(t.IUndoRedoService),y=[],b=[],x=g+m+1-h;if(x>0){let t={unitId:i,subUnitId:a,range:{startRow:0,endRow:o.getRowCount()-1,startColumn:h-1,endColumn:h-1+x}};y.push({id:we.id,params:t});let n=Ce(e,t);b.push({id:P.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+m},C=new t.ObjectMatrix;for(let e=S.startRow;e<=S.endRow;e++)for(let t=S.startColumn;t<=S.endColumn;t++){let n=f[e-S.startRow];t===0&&(n==null?void 0:n.length)===1?C.setValue(e,t,o.getCell(e,t)):C.setValue(e,t,{v:(n==null?void 0:n[t-S.startColumn])||null,p:null,f:null,si:null,custom:null})}let w={unitId:i,subUnitId:a,cellValue:C.clone()},T=L(e,w);return y.push({id:R.id,params:w}),b.unshift({id:R.id,params:T}),(0,t.sequenceExecute)(y,_).result?(v.pushUndoRedo({unitID:i,undoMutations:b,redoMutations:y}),!0):!1}},Fl=(0,t.createIdentifier)(`INumfmtService`),Il=(e,n)=>{let r=e.get(Fl),{values:i,unitId:a,subUnitId:o}=n,s=[],c=[];Object.keys(i).forEach(e=>{i[e].ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=r.getValue(a,o,e,t);n?s.push({pattern:n.pattern,row:e,col:t}):c.push({startColumn:t,endColumn:t,startRow:e,endRow:e})})})});let l=[];if(s.length){let e=Bl(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=on(n.ranges)}),l.push({id:Ll.id,params:Bl(a,o,s)})}return c.length&&l.push({id:Rl.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},Ll={id:`sheet.mutation.set.numfmt`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{values:n,refMap:r}=t,i=e.get(Fl),a=t.unitId,o=t.subUnitId,s=Object.keys(n).reduce((e,t)=>{let i=r[t],a=n[t].ranges;return i&&e.push({...i,ranges:a}),e},[]);return i.setValues(a,o,s),!0}},Rl={id:`sheet.mutation.remove.numfmt`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t;return e.get(Fl).deleteValues(n,r,i),!0}},zl=(e,n)=>{let r=e.get(Fl),{ranges:i,unitId:a,subUnitId:o}=n,s=[];if(i.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=r.getValue(a,o,e,t);n&&s.push({pattern:n.pattern,row:e,col:t})})}),!s.length)return[];let c=Bl(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=on(t.ranges)}),[{id:Ll.id,params:c}]},Bl=(e,n,r)=>{let i=_n(r,`pattern`),a={},o={},s=vn();return Object.keys(i).forEach(e=>{let n=i[e],r=s();a[r]={pattern:e},n.forEach(e=>{o[r]||(o[r]={ranges:[]}),o[r].ranges.push((0,t.cellToRange)(e.row,e.col))})}),{unitId:e,subUnitId:n,refMap:a,values:o}},Vl={id:`sheet.command.text-to-number`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=e.get(H).getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(a!=null&&a.length))return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),{worksheet:c,unitId:l,subUnitId:u}=i,d=new t.ObjectMatrix,f=[];for(let e=0;e<a.length;e++)for(let n=a[e].startRow;n<=a[e].endRow;n++)for(let r=a[e].startColumn;r<=a[e].endColumn;r++){var m,h;if(d.getValue(n,r))continue;let e=c.getCellRaw(n,r),i=typeof(e==null?void 0:e.s)==`string`?(m=c.getStyleDataByHash(e.s))==null||(m=m.n)==null?void 0:m.pattern:e==null||(h=e.s)==null||(h=h.n)==null?void 0:h.pattern;e&&e.v&&(e.t!==t.CellValueType.NUMBER||(0,t.isTextFormat)(i))&&(0,t.isRealNum)(e.v)&&(d.setValue(n,r,{v:Number(e.v),t:t.CellValueType.NUMBER}),(0,t.isTextFormat)(i)&&f.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let g={subUnitId:u,unitId:l,cellValue:d.getMatrix()},_=[{id:R.id,params:g}],v=[{id:R.id,params:L(e,g)}];if(f.length){let t={unitId:l,subUnitId:u,ranges:f};_.push({id:Rl.id,params:t}),v.push(...zl(e,t))}return(0,t.sequenceExecute)(_,o).result?(s.pushUndoRedo({unitID:l,undoMutations:v,redoMutations:_}),!0):!1}},Hl={id:`sheet.command.toggle-cell-checkbox`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:r,subUnitId:i,row:a,col:o,paragraphIndex:s}=n,c=e.get(t.IUniverInstanceService).getUnit(r,t.UniverInstanceType.UNIVER_SHEET),l=c==null?void 0:c.getSheetBySheetId(i),u=e.get(t.IUndoRedoService),d=e.get(t.ICommandService);if(!l)return!1;let f=l.getCell(a,o);if(!(f!=null&&f.p))return!1;let p=t.Tools.deepClone(f.p),m=new t.DocumentDataModel(p),h=t.BuildTextUtils.paragraph.bullet.toggleChecklist({document:m,paragraphIndex:s});if(!h)return!1;t.TextX.apply(m.getBody(),h.serialize());let g={unitId:r,subUnitId:i,cellValue:{[a]:{[o]:{p,t:t.CellValueType.STRING}}}},_={id:R.id,params:g},v=L(e,g),y={id:R.id,params:v},b=[_],x=[y];return u.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:r}),d.syncExecuteCommand(_.id,_.params)}},Ul={type:t.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=p(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().showGridlines;if(s===(n==null?void 0:n.showGridlines))return!1;let{unitId:c,subUnitId:l}=a,u={showGridlines:s===t.BooleanNumber.TRUE?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE,unitId:c,subUnitId:l},d={showGridlines:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Lt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Lt.id,params:d}],redoMutations:[{id:Lt.id,params:u}]}),!0):!1}},Wl={id:`sheet.command.unregister-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;if(!n||!p(e.get(t.IUniverInstanceService),n))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(N),{unitId:s,themeName:c}=n,l={unitId:s,themeName:c},u={unitId:s,themeName:c,rangeThemeStyleJson:(r=o.getRangeThemeStyle(s,c))==null?void 0:r.toJson()};return i.syncExecuteCommand(hs.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:hs.id,params:u}],redoMutations:[{id:gs.id,params:l}]}),!0):!1}},Gl={id:`sheet.mutation.add-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleJSON:n,unitId:r}=t,i=e.get(N),a=new ne(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},Kl={id:`sheet.mutation.empty`,type:t.CommandType.MUTATION,handler:()=>!0},ql={id:`sheet.mutation.mark-dirty-filter-change`,type:t.CommandType.MUTATION,handler:()=>!0},Jl={id:`sheet.mutation.remove-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(N).unregisterRangeThemeStyle(r,n),!0}},Yl={id:`sheet.mutation.set-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,styleName:r,style:i}=t,a=e.get(N).getRangeThemeStyle(n,r);return a&&(i.headerRowStyle&&a.setHeaderRowStyle(i.headerRowStyle),i.firstRowStyle&&a.setFirstRowStyle(i.firstRowStyle),i.secondRowStyle&&a.setSecondRowStyle(i.secondRowStyle),i.lastRowStyle&&a.setLastRowStyle(i.lastRowStyle)),!0}},Xl={id:`sheet.operation.mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},Zl={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},Ql={id:`sheet.operation.scroll-to-cell`,type:t.CommandType.OPERATION,handler:()=>!0},{getLenS:$l,getDataIndex:eu,fillCopy:tu,fillCopyStyles:nu,generateNullCellValueRowCol:ru}=ho,{otherRule:iu}=Mo,au=class extends t.Disposable{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,w(this,`_beforeApplyData`,[]),w(this,`_copyData`,[]),this._init()}_init(){this._initDefaultHook()}quit(){this._beforeApplyData=[],this._copyData=[]}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook({id:`default`,type:go.DEFAULT,priority:0,onBeforeFillData:(e,t)=>this._presetAndCacheData(e,t),onFillData:(e,t,n)=>this._fillData(e,t,n)}))}_presetAndCacheData(e,n){var r;let{unitId:i,subUnitId:a,target:o}=e,s=(r=this._univerInstanceService.getUnit(i))==null?void 0:r.getSheetBySheetId(a);if(!s)throw Error(`Worksheet not found for unitId: ${i}, subUnitId: ${a}`);let c=s.getCellMatrix(),l=[];return o.rows.forEach(e=>{let n=[];o.cols.forEach(r=>{n.push(t.Tools.deepClone(c.getValue(e,r)))}),l.push(n)}),this._beforeApplyData=l,this._copyData=this._getCopyData(e,n),this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType(J.SERIES,!0),J.COPY):(this._autoFillService.setDisableApplyType(J.SERIES,!1),this._getPreferredApplyType(this._copyData))}_getApplyData(e,t,n,r,i,a=!0,o){let s=[],c=Math.floor(n/t),l=n%t,u=this._autoFillService.getRules();if(!a&&i===J.ONLY_FORMAT)return console.error(`ERROR: only format can not be applied when hasStyle is false`),[];let d={};u.forEach(e=>{d[e.type]=[]}),u.forEach(a=>{let{type:s,applyFunctions:u={}}=a,f=e[s];f&&f.forEach(a=>{let f=$l(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=eu(t,n,a.index);d[s].push({data:m,index:h})})});for(let e=0;e<n;e++)u.forEach(t=>{let{type:n}=t,r=d[n];for(let t=0;t<r.length;t++)e in r[t].index&&s.push(r[t].data[r[t].index[e]])});return s}_applyFunctions(e,n,r,i,a,o,s){let{data:c}=e,l=r===t.Direction.UP||r===t.Direction.LEFT;if(i===J.COPY){let t=a==null?void 0:a[J.COPY];return t?t(e,n,r,o,s):(l&&c.reverse(),tu(c,n))}if(i===J.SERIES){let t=a==null?void 0:a[J.SERIES];return t?t(e,n,r,o):(l&&c.reverse(),a!=null&&a[J.COPY]?a[J.COPY](e,n,r,o,s):tu(c,n))}if(i===J.ONLY_FORMAT){let t=a==null?void 0:a[J.ONLY_FORMAT];return t?t(e,n,r,o):nu(c,n)}}_getCopyData(e,n){var r;let{unitId:i,subUnitId:a,source:o}=e,s=(r=this._univerInstanceService.getUnit(i))==null?void 0:r.getSheetBySheetId(a);if(!s)throw Error(`No worksheet found`);let c=s.getCellMatrix(),l=this._autoFillService.getRules(),u=[],d=n===t.Direction.DOWN||n===t.Direction.UP,f,p;return d?(f=o.cols,p=o.rows):(f=o.rows,p=o.cols),f.forEach(e=>{let t=this._getEmptyCopyDataPiece(),n={type:void 0,cellData:void 0};p.forEach(r=>{let i;i=d?c.getValue(r,e):c.getValue(e,r);let{type:a,isContinue:o}=l.find(e=>e.match(i,this._injector))||iu;if(o(n,i)){let e=t[a],n=e[e.length-1];n.data.push(i),n.index.push(r-p[0])}else{let e=t[a];e?e.push({data:[i],index:[r-p[0]]}):t[a]=[{data:[i],index:[r-p[0]]}]}n.type=a,n.cellData=i}),u.push(t)}),u}_getEmptyCopyDataPiece(){let e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,n,r,i,a){var o;let{unitId:s,subUnitId:c}=a,l=(o=this._univerInstanceService.getUnit(s))==null?void 0:o.getSheetBySheetId(c);if(!l)throw Error(`No active sheet found`);let u=[];for(let a=e.startRow;a<=e.endRow;a++)for(let o=e.startColumn;o<=e.endColumn;o++){let{isMergedMainCell:e,startRow:s,startColumn:c,endRow:d,endColumn:f}=l.getCellInfoInMergeData(a,o);if(e){if(r===t.Direction.DOWN){let e=s+i,t=d+i;for(;t<=n.endRow;)u.push({startRow:e,startColumn:c,endRow:t,endColumn:f}),e+=i,t+=i}else if(r===t.Direction.UP){let e=s-i,t=d-i;for(;e>=n.startRow;)u.push({startRow:e,startColumn:c,endRow:t,endColumn:f}),e-=i,t-=i}else if(r===t.Direction.RIGHT){let e=c+i,t=f+i;for(;t<=n.endColumn;)u.push({startRow:s,startColumn:e,endRow:d,endColumn:t}),e+=i,t+=i}else if(r===t.Direction.LEFT){let e=c-i,t=f-i;for(;e>=n.startColumn;)u.push({startRow:s,startColumn:e,endRow:d,endColumn:t}),e-=i,t-=i}}}return u}_fillData(e,n,r){var i;let a=[],o=[],s=!0;r===J.NO_FORMAT&&(s=!1,r=J.SERIES);let{source:c,target:l,unitId:u,subUnitId:d}=e;if(!c||!l||n==null)return{undos:a,redos:o};let f=wn(c),p=wn(l),{cols:m,rows:_}=l,{cols:v,rows:y}=c,b=this._copyData,x;x=n===t.Direction.DOWN||n===t.Direction.UP?y.length:v.length;let S=[];if(n===t.Direction.DOWN||n===t.Direction.UP){let t=_.length,i=[];m.forEach((a,o)=>{let c=b[o],l=this._getApplyData(c,x,t,n,r,s,e);i.push(l)});for(let e=0;e<i[0].length;e++){let t=[];for(let n=0;n<i.length;n++)t.push({s:null,...i[n][e]});S.push(t)}}else{let t=m.length;_.forEach((i,a)=>{let o=b[a],c=this._getApplyData(o,x,t,n,r,s,e),l=[];for(let e=0;e<c.length;e++)l.push({s:null,...c[e]});S.push(l)})}let C=[],w=(i=this._univerInstanceService.getUnit(u))==null?void 0:i.getStyles();if(s?(C=this._getMergeApplyData(f,p,n,x,e),S.forEach(e=>{e.forEach(e=>{e&&w&&w&&(e.s=w.getStyleByCell(e))})})):S.forEach((e,t)=>{e.forEach((e,n)=>{e&&w&&(e.s=w.getStyleByCell(this._beforeApplyData[t][n])||null)})}),r===J.ONLY_FORMAT&&S.forEach((e,t)=>{e.forEach((e,n)=>{if(e){let r=this._beforeApplyData[t][n]||{};e.f=r.f,e.si=r.si,e.t=r.t,e.v=r.v}})}),s){var T;let e=[],n=(T=this._univerInstanceService.getUniverSheetInstance(u))==null||(T=T.getSheetBySheetId(d))==null?void 0:T.getMergeData();if(n&&n.forEach(n=>{t.Rectangle.intersects(n,p)&&e.push(n)}),e.length){let t={unitId:u,subUnitId:d,ranges:e},n=this._injector.invoke(F,t);o.push({id:I.id,params:t}),a.unshift({id:g.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:ru([l])},D=this._injector.invoke(L,E);o.push({id:R.id,params:E}),a.unshift({id:R.id,params:D});let O=new t.ObjectMatrix;_.forEach((e,t)=>{m.forEach((n,r)=>{S[t][r]&&O.setValue(e,n,S[t][r])})});let k=O.getMatrix(),A={subUnitId:d,unitId:u,cellValue:k},ee=this._injector.invoke(L,A);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,k)}),a.unshift({id:R.id,params:ee}),o.push({id:R.id,params:A}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:Gi(C)},t=this._injector.invoke(h,e);a.unshift({id:I.id,params:t}),o.push({id:g.id,params:e})}return{undos:a,redos:o}}_shouldDisableSeries(e){return e.every(e=>Object.keys(e).every(t=>{var n;return((n=e[t])==null?void 0:n.length)===0||[Y.OTHER,Y.FORMULA].includes(t)}))}_getPreferredApplyType(e){return e.every(e=>Object.keys(e).every(t=>{var n,r;return((n=e[t])==null?void 0:n.length)===0||((r=e[t])==null?void 0:r.length)===1&&e[t][0].data.length===1&&Y.NUMBER===t}))?J.COPY:J.SERIES}};au=E([T(0,t.IUniverInstanceService),T(1,Ho),T(2,(0,t.Inject)(t.Injector))],au);let ou=`maxCellsPerSheet`,su=class extends t.Disposable{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){let e=e=>{let t=this._definedNamesService.getDefinedNameMap(e);return t?JSON.stringify(t):``},n=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:`SHEET_DEFINED_NAME_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._definedNamesService.removeUnitDefinedName(e)},onLoad:(e,t)=>{this._definedNamesService.registerDefinedNames(e,t)}}))}};su=E([T(0,r.IDefinedNamesService),T(1,t.IResourceManagerService)],su);let cu=[Us.id],lu=[Se.id,we.id,je.id,P.id,De.id,ke.id],uu=class extends t.Disposable{constructor(e,n,r){var i,a;super(),this._univerInstanceService=e,this._commandService=n,this._configService=r,w(this,`_d`,new t.DisposableCollection),w(this,`_enabled`,!0);let o=(i=(a=this._configService.getConfig(`sheets.config`))==null?void 0:a.freezeSync)==null?!0:i;this.setEnabled(o)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{cu.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(lu.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===Se.id?this._handleInsertRowMutation(r,t):n===we.id?this._handleInsertColMutation(r,t):n===je.id?this._handleRemoveRowMutation(r,t):n===P.id?this._handleRemoveColMutation(r,t):n===De.id?this._handleMoveRowsMutation(r,t):n===ke.id&&this._handleMoveColsMutation(r,t)}}))}_handleInsertRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=n.endRow-n.startRow+1,o={...a,startRow:Math.max(1,a.startRow+e),ySplit:Math.max(1,a.ySplit+e)};this._sequenceExecute(r,i,o,t)}}_handleInsertColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=n.endColumn-n.startColumn+1,o={...a,startColumn:Math.max(1,a.startColumn+e),xSplit:Math.max(1,a.xSplit+e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=Math.min(a.startRow,n.endRow+1)-n.startRow,o={...a,startRow:Math.max(1,a.startRow-e),ySplit:Math.max(1,a.ySplit-e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=Math.min(a.startColumn,n.endColumn+1)-n.startColumn,o={...a,startColumn:Math.max(1,a.startColumn-e),xSplit:Math.max(1,a.xSplit-e)};this._sequenceExecute(r,i,o,t)}}_handleMoveRowsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startRow<=0||n.startRow>=o.startRow&&r.startRow>=o.startRow||n.endRow<o.startRow&&r.endRow<o.startRow)return;let s=n.endRow-n.startRow+1,c=Math.max(Math.min(o.startRow,n.endRow+1)-n.startRow,0),l={...o};r.startRow>=o.startRow?(l.startRow=Math.max(1,o.startRow-c),l.ySplit=Math.max(1,o.ySplit-c)):(l.startRow=o.startRow+s-c,l.ySplit=o.ySplit+s-c),this._sequenceExecute(i,a,l,t)}_handleMoveColsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startColumn<=0||n.startColumn>=o.startColumn&&r.startColumn>=o.startColumn||n.endColumn<o.startColumn&&r.endColumn<o.startColumn)return;let s=n.endColumn-n.startColumn+1,c=Math.max(Math.min(o.startColumn,n.endColumn+1)-n.startColumn,0),l={...o};r.startColumn>=o.startColumn?(l.startColumn=Math.max(1,o.startColumn-c),l.xSplit=Math.max(1,o.xSplit-c)):(l.startColumn=o.startColumn+s-c,l.xSplit=o.xSplit+s-c),this._sequenceExecute(i,a,l,t)}_getFreeze(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return null;let i=r.getSheetBySheetId(n);return i?i.getFreeze():null}_sequenceExecute(e,n,r,i){(0,t.sequenceExecute)([{id:Us.id,params:{...r,unitId:e,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};uu=E([T(0,(0,t.Inject)(t.IUniverInstanceService)),T(1,t.ICommandService),T(2,t.IConfigService)],uu);let du=class extends t.Disposable{constructor(e,r,i,a,o,s,c,l,u){super(),this._commandService=e,this._univerInstanceService=r,this._permissionService=i,this._selectionManagerService=a,this._rangeProtectionRuleModel=o,this._worksheetProtectionRuleModel=s,this._localeService=c,this._lexerTreeBuilder=l,this._definedNamesService=u,w(this,`disposableCollection`,new t.DisposableCollection),w(this,`_triggerPermissionUIEvent$`,new n.Subject),w(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===yc.id){let t=p(this._univerInstanceService,e.params);if(!t)return;let{unitId:n,subUnitId:r}=t,i=this._worksheetProtectionRuleModel.getRule(n,r);i&&this._worksheetProtectionRuleModel.ruleRefresh(i.permissionId),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).length&&this._rangeProtectionRuleModel.ruleRefresh(r)}}))}blockExecuteWithoutPermission(e){throw this._triggerPermissionUIEvent$.next(e),new t.CustomCommandExecutionError(`have no permission`)}_getPermissionCheck(e){let{id:n}=e,r=!0,i=``,a;switch(n){case nr.id:a=e.params,(0,t.isICellData)(a.value)&&a.value.f?(r=this._permissionCheckWithFormula(a),i=this._localeService.t(`permission.dialog.formulaErr`)):(r=this._permissionCheckBySetRangeValue({workbookTypes:[Q],worksheetTypes:[fl,$],rangeTypes:[Z]},a),i=this._localeService.t(`permission.dialog.editErr`));break;case q.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},a.range?[a.range]:void 0,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setStyleErr`);break;case In.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[fl,dl,$],rangeTypes:[Z]},a==null?void 0:a.ranges,a==null?void 0:a.unitId,a==null?void 0:a.subUnitId),i=this._localeService.t(`permission.dialog.editErr`);break;case Yo.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[fl,$],rangeTypes:[Z]},a==null?void 0:a.ranges,a==null?void 0:a.unitId,a==null?void 0:a.subUnitId),i=this._localeService.t(`permission.dialog.editErr`);break;case Ln.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[dl,$],rangeTypes:[Z]},a==null?void 0:a.ranges,a==null?void 0:a.unitId,a==null?void 0:a.subUnitId),i=this._localeService.t(`permission.dialog.setStyleErr`);break;case uc.id:case dc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[pl]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Al.id:case jl.id:case Ml.id:r=this.permissionCheckWithoutRange({worksheetTypes:[ml]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Vr.id:case Ur.id:a=e.params,r=this._permissionCheckByMoveRowsColsCommand(a),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case Zn.id:a=e.params,r=this._permissionCheckByMoveRangeCommand(a),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case _r.id:case wr.id:a=e.params,r=this._permissionCheckByInsertRowColCommand(a),i=this._localeService.t(`permission.dialog.insertRowColErr`);break;case jr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q,Lc],worksheetTypes:[$,tl],rangeTypes:[Z]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case Pr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q,Ic],worksheetTypes:[$,$c],rangeTypes:[Z]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case Cc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Q,Gc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case bc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Q,Jc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Nl.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Q,Vc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Fs.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,pl],rangeTypes:[Z]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Qs.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,ml],rangeTypes:[Z]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Is.id:r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,pl],rangeTypes:[Z]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case $s.id:r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$,ml],rangeTypes:[Z]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case mr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`right`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case fr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`down`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case cr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`left`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case ur.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`up`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Uo.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[fl,$],rangeTypes:[Z]},[a.targetRange],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.autoFillErr`);break;default:break}r||this.blockExecuteWithoutPermission(i)}permissionCheckWithRanges(e,n,r,i){let a=p(this._univerInstanceService,{unitId:r,subUnitId:i});if(!a)return!1;let{unitId:o,subUnitId:s}=a,{workbookTypes:c,worksheetTypes:l,rangeTypes:u}=e;if(c&&c.some(e=>{var t;let n=new e(o);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1})||l&&l.some(e=>{var t;let n=new e(o,s);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1}))return!1;if(u&&u.length>0){var d;let e=n==null?(d=this._selectionManagerService.getCurrentSelections())==null?void 0:d.map(e=>e.range):n;if(!e)return!1;let r=this._rangeProtectionRuleModel.getSubunitRuleList(o,s);if(r.length===0)return!0;for(let n=0;n<r.length;n++){let i=r[n];if(e.some(e=>i.ranges.some(n=>t.Rectangle.intersects(n,e)))){let e=i.permissionId;if(u.some(t=>{var n;let r=new t(o,s,e);return((n=this._permissionService.getPermissionPoint(r.id))==null?void 0:n.value)===!1}))return!1}}}return!0}permissionCheckWithoutRange(e,t,n){let r=p(this._univerInstanceService,{unitId:t,subUnitId:n});if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,{workbookTypes:s,worksheetTypes:c,rangeTypes:l}=e;if(s&&s.some(e=>{var t;let n=new e(a);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1})||c&&c.some(e=>{var t;let n=new e(a,o);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1}))return!1;if(l&&l.length>0){var u,d,f;let e=(u=this._selectionManagerService.getCurrentLastSelection())==null?void 0:u.primary;if(!e)return!1;let{actualRow:t,actualColumn:n}=e,r=i.getCell(t,n),s=r==null||(d=r.selectionProtection)==null?void 0:d[0];if(!(s!=null&&s.ruleId))return!0;let c=(f=this._rangeProtectionRuleModel.getRule(a,o,s.ruleId))==null?void 0:f.permissionId;if(!c)return!0;if(l.some(e=>{var t;let n=new e(a,o,c);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1}))return!1}return!0}_permissionCheckWithFormula(e){let n=p(this._univerInstanceService,e);if(!n)return!1;let{workbook:i,unitId:o,subUnitId:s}=n,c=e.value.f;if(c){let e=c.substring(1),n=this._definedNamesService.getValueByName(o,e);if(n){let e=n.formulaOrRefString;e.startsWith(r.operatorToken.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let n=t[e],{sheetName:o,range:s}=(0,r.deserializeRangeWithSheet)(n);if(o){let e=i.getSheetBySheetName(o);if(!e)return!0;let{startRow:t,endRow:n,startColumn:r,endColumn:c}=s;for(let i=t;i<=n;i++)for(let t=r;t<=c;t++){var l;let n=e.getCell(i,t),r=n==null||(l=n.selectionProtection)==null?void 0:l[0];if((r==null?void 0:r[a.UnitAction.View])===!1)return!1}}}return!0}else{let e=this._lexerTreeBuilder.sequenceNodesBuilder(c);if(!e)return!0;for(let n=0;n<e.length;n++){let s=e[n];if(typeof s==`string`||s.nodeType!==r.sequenceNodeType.REFERENCE)continue;let{token:c}=s,{unitId:l,sheetName:d,range:f}=(0,r.deserializeRangeWithSheetWithCache)(c),p=i;if(l&&l!==o){let e=this._univerInstanceService.getUnit(l,t.UniverInstanceType.UNIVER_SHEET);if(!e)return!0;p=e}let m=d?p.getSheetBySheetName(d):p.getActiveSheet();if(!m)return!0;if(d){let e=this._permissionService.getPermissionPoint(new gl(p.getUnitId(),m.getSheetId()).id);if(!e||e.value===!1)return!1}let{startRow:h,endRow:g,startColumn:_,endColumn:v}=f;for(let e=h;e<=g;e++)for(let t=_;t<=v;t++){var u;let n=m.getCell(e,t),r=n==null||(u=n.selectionProtection)==null?void 0:u[0];if((r==null?void 0:r[a.UnitAction.View])===!1)return!1}}return!0}}let{range:d}=e;if(d){let e=this._rangeProtectionRuleModel.getSubunitRuleList(o,s);if(e.length===0)return!0;let n=e.filter(e=>e.ranges.some(e=>t.Rectangle.intersects(e,d))).map(e=>new Z(o,s,e.permissionId).id);return this._permissionService.composePermission(n).every(e=>e.value)}return!0}_permissionCheckBySetRangeValue(e,n){let{unitId:r,subUnitId:i,value:a,range:o}=n,s=[];return s=(t.Tools.isArray(a)||(0,t.isICellData)(a))&&o?[o]:[new t.ObjectMatrix(a).getStartEndScope()],this.permissionCheckWithRanges(e,s,r,i)}_permissionCheckByMoveRowsColsCommand(e){let t=p(this._univerInstanceService,e);if(!t)return!1;let{worksheet:n,unitId:r,subUnitId:i}=t,{fromRange:a,toRange:o}=e;if(!this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[fl,$],rangeTypes:[Z]},[a],r,i))return!1;let s={...o};return s.endRow===n.getRowCount()-1?s.endColumn=s.startColumn:s.endRow=s.startRow,this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[fl,$],rangeTypes:[Z]},[s],r,i)}_permissionCheckByMoveRangeCommand(e){let{fromUnitId:t,fromSubUnitId:n,fromRange:r,toUnitId:i,toSubUnitId:a,toRange:o}=e,s=p(this._univerInstanceService,{unitId:t,subUnitId:n});if(!s)return!1;let c=p(this._univerInstanceService,{unitId:i,subUnitId:a});return!c||!this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[fl,$],rangeTypes:[Z]},[r],s.unitId,s.subUnitId)?!1:this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[fl,$],rangeTypes:[Z]},[o],c.unitId,c.subUnitId)}_permissionCheckByInsertRowColCommand(e){let n=p(this._univerInstanceService,e);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,{range:o,direction:s}=e,c={...o},l={workbookTypes:[Q],worksheetTypes:[$],rangeTypes:[Z]};if(s===t.Direction.UP||s===t.Direction.DOWN){let e=s===t.Direction.UP?o.startRow:o.startRow-1;if(e<0||e>r.getRowCount()-1)return!1;c.startRow=e,c.endRow=e,l.workbookTypes.push(Uc),l.worksheetTypes.push(ol)}else if(s===t.Direction.LEFT||s===t.Direction.RIGHT){let e=s===t.Direction.LEFT?o.startColumn:o.startColumn-1;if(e<0||e>r.getColumnCount()-1)return!1;c.startColumn=e,c.endColumn=e,l.workbookTypes.push(Hc),l.worksheetTypes.push(il)}return this.permissionCheckWithRanges(l,[c],i,a)}_permissionCheckByWorksheetCommand(e,t){let n=p(this._univerInstanceService,t);if(!n)return this._worksheetProtectionRuleModel.resetOrder(),!1;let{unitId:r}=n;return e.some(e=>{var t;let n=new e(r);return((t=this._permissionService.getPermissionPoint(n.id))==null?void 0:t.value)===!1})?(this._worksheetProtectionRuleModel.resetOrder(),!1):!0}_permissionCheckWithInsertOrDeleteMoveRange(e,n){var r,i;let a=p(this._univerInstanceService);if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=(r=n==null?void 0:n.range)==null?(i=this._selectionManagerService.getCurrentLastSelection())==null?void 0:i.range:r;if(!l||!this.permissionCheckWithRanges({workbookTypes:[Q],worksheetTypes:[$],rangeTypes:[Z]},[l],s,c))return!1;let u=this._rangeProtectionRuleModel.getSubunitRuleList(s,c);if(u.length===0)return!0;let d={...l};return e===`right`||e===`left`?d.endColumn=o.getColumnCount()-1:(e===`down`||e===`up`)&&(d.endRow=o.getRowCount()-1),!u.some(e=>e.ranges.some(e=>t.Rectangle.intersects(e,d)))}};du=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService),T(2,t.IPermissionService),T(3,(0,t.Inject)(H)),T(4,(0,t.Inject)(B)),T(5,(0,t.Inject)(da)),T(6,(0,t.Inject)(t.LocaleService)),T(7,(0,t.Inject)(r.LexerTreeBuilder)),T(8,r.IDefinedNamesService)],du);let fu=class extends t.Disposable{constructor(e,t,r,i,a){super(),this._permissionService=e,this._univerInstanceService=t,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._worksheetProtectionPointModel=a,w(this,`_unitPermissionInitStateChange`,new n.BehaviorSubject(!1)),w(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();_l().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>e(t)),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(t=>e(t.unit))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Oc()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...yl(),...bl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),_l().forEach(e=>{let n=new e(t);this._permissionService.deletePermissionPoint(n.id)}),this._rangeProtectionRuleModel.deleteUnitModel(t),this._worksheetProtectionPointModel.deleteUnitModel(t),this._worksheetProtectionRuleModel.deleteUnitModel(t)}))}changeUnitInitState(e){this._unitPermissionInitStateChange.next(e)}};fu=E([T(0,(0,t.Inject)(t.IPermissionService)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,(0,t.Inject)(B)),T(3,(0,t.Inject)(da)),T(4,(0,t.Inject)(wc))],fu);let pu=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._univerInstanceService=e,this._permissionService=t,this._authzIoService=n,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._userManagerService=a,this._worksheetProtectionPointRuleModel=o,this._workbookPermissionService=s,this._undoRedoService=c,this._commandService=l}initPermission(){this._initRangePermissionFromSnapshot(),this._initRangePermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initWorksheetPermissionChange(),this._initWorksheetPermissionPointsChange(),this._initWorkbookPermissionFromSnapshot(),this._initUserChange(),this._refreshPermissionByCollaCreate()}refreshRangeProtectPermission(){this._initRangePermissionFromSnapshot()}async _initRangePermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(e=>{i.set(e.permissionId,e),t.push({objectID:e.permissionId,unitID:n,objectType:a.UnitObject.SelectRange,actions:kc})})}),!t.length){this._rangeProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){if(!this._rangeProtectionRuleModel.getRule(n,t.subUnitId,t.id))return;Oc().forEach(r=>{let i=new r(n,t.subUnitId,e.objectID),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._rangeProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(t=>e(t))),this._rangeProtectionRuleModel.changeRuleInitState(!0)}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?this._rangeProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId),[...bl()].forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,n.value)})):this._authzIoService.allowed({objectID:e.rule.permissionId,unitID:e.unitId,objectType:a.UnitObject.SelectRange,actions:kc}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(Oc().forEach(n=>{if(e.type===`set`){let{rule:t,oldRule:n}=e;if(t.permissionId===(n==null?void 0:n.permissionId))return}let r=e.rule,i=new n(r.unitId,r.subUnitId,r.permissionId),a=i.subType,o=t.find(e=>e.action===a);o&&this._permissionService.updatePermissionPoint(i.id,o.allowed)}),this._rangeProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}async initWorkbookPermissionChange(e){var n;let r=e||((n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId());if(r)return this._authzIoService.allowed({objectID:r,objectType:a.UnitObject.Workbook,unitID:r,actions:vl}).then(e=>{_l().forEach(t=>{let n=new t(r),i=n.subType,a=e.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(n.id,a.allowed)})})}async _initWorkbookPermissionFromSnapshot(){await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(e=>this.initWorkbookPermissionChange(e.getUnitId()))),this._workbookPermissionService.changeUnitInitState(!0)}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?([...yl(),...bl()].forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId)):this._authzIoService.allowed({objectID:e.rule.permissionId,unitID:e.unitId,objectType:a.UnitObject.Worksheet,actions:kc}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(yl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)}),this._worksheetProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}_initWorksheetPermissionPointsChange(){this.disposeWithMe(this._worksheetProtectionPointRuleModel.pointChange$.subscribe(e=>{this._authzIoService.allowed({objectID:e.permissionId,unitID:e.unitId,objectType:a.UnitObject.Worksheet,actions:xl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||bl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}))}async _initWorksheetPermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId(),o=this._worksheetProtectionRuleModel.getRule(n,r);o&&(i.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:n,objectType:a.UnitObject.Worksheet,actions:kc}));let s=this._worksheetProtectionPointRuleModel.getRule(n,r);s&&(i.set(s.permissionId,s),t.push({objectID:s.permissionId,unitID:n,objectType:a.UnitObject.Worksheet,actions:xl}))}),!t.length){this._worksheetProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){let r=this._worksheetProtectionRuleModel.getRule(n,t.subUnitId)||this._worksheetProtectionPointRuleModel.getRule(n,t.subUnitId);if(!r||r.permissionId!==e.objectID)return;[...yl(),...bl()].forEach(r=>{let i=new r(n,t.subUnitId),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(t=>e(t))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe((0,n.skip)(1)).subscribe(()=>{let e=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{let n=t.getUnitId();_l().forEach(t=>{let r=new t(n);e.has(r.id)&&(r=e.get(r.id)),this._permissionService.addPermissionPoint(r)}),t.getSheets().forEach(t=>{let r=t.getSheetId();[...yl(),...bl()].forEach(t=>{let i=new t(n,r);e.has(i.id)&&(i=e.get(i.id)),this._permissionService.addPermissionPoint(i)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(t=>{Oc().forEach(i=>{let a=new i(n,r,t.permissionId);e.has(a.id)&&(a=e.get(a.id)),this._permissionService.addPermissionPoint(a)})})}),this._initWorkbookPermissionFromSnapshot(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}refreshPermission(e,t){let n=this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t),r=!1;if(n){let[i,o]=n;this._authzIoService.allowed({objectID:t,unitID:e,objectType:a.UnitObject.Worksheet,actions:kc}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let i=``;yl().forEach(t=>{let a=new t(e,o),s=a.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(a.id))==null?void 0:l.value)!==c.allowed&&(r=!0),this._permissionService.updatePermissionPoint(a.id,c.allowed),i+=`${c.action}_${c.allowed}`}}),this._worksheetProtectionRuleModel.ruleRefresh(`${t}_${i}`),r&&this._undoRedoService.clearUndoRedo(e)})}let i=this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t);if(i){let[n,o]=i;this._authzIoService.allowed({objectID:t,unitID:e,objectType:a.UnitObject.Worksheet,actions:xl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(bl().forEach(t=>{let i=new t(e,o),a=i.subType,s=n.find(e=>e.action===a);if(s){var c;((c=this._permissionService.getPermissionPoint(i.id))==null?void 0:c.value)!==s.allowed&&(r=!0),this._permissionService.updatePermissionPoint(i.id,s.allowed)}}),r&&this._undoRedoService.clearUndoRedo(e))})}let o=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(o){let[n,i]=o;this._authzIoService.allowed({objectID:t,unitID:e,objectType:a.UnitObject.SelectRange,actions:kc}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;Oc().forEach(o=>{let s=new o(e,i,t),c=s.subType,l=n.find(e=>e.action===c);if(l){var u;((u=this._permissionService.getPermissionPoint(s.id))==null?void 0:u.value)!==l.allowed&&(r=!0),this._permissionService.updatePermissionPoint(s.id,l.allowed),a+=`${l.action}_${l.allowed}`}}),this._rangeProtectionRuleModel.ruleRefresh(`${t}_${a}`),r&&this._undoRedoService.clearUndoRedo(e)})}}_refreshPermissionByCollaCreate(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(t!=null&&t.fromCollab&&(e.id===Mn.id||e.id===fa.id||e.id===Cl.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};pu=E([T(0,t.IUniverInstanceService),T(1,t.IPermissionService),T(2,t.IAuthzIoService),T(3,(0,t.Inject)(B)),T(4,(0,t.Inject)(da)),T(5,(0,t.Inject)(t.UserManagerService)),T(6,(0,t.Inject)(wc)),T(7,(0,t.Inject)(fu)),T(8,(0,t.Inject)(t.IUndoRedoService)),T(9,(0,t.Inject)(t.ICommandService))],pu);let mu=class extends t.Disposable{constructor(e,t,r){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=r,w(this,`_zebraCacheUpdateSubject`,new n.Subject),this._init()}_init(){this._initializeCommandListener(),this._initTriggerCacheUpdateListener()}updateZebraCrossingCache(e,t){this._zebraCacheUpdateSubject.next({unitId:e,subUnitId:t})}_initializeCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let{id:t}=e,n,r;switch(t){case Se.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case bt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case St.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case je.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Pt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;default:break}n&&r&&(this._sheetRangeThemeModel.refreshSheetRowVisibleFuncSet(n,r),this._sheetRangeThemeModel.refreshZebraCrossingCacheBySheet(n,r))}))}_initTriggerCacheUpdateListener(){this.disposeWithMe(this._zebraCacheUpdateSubject.subscribe(({unitId:e,subUnitId:t})=>{this._sheetRangeThemeModel.refreshSheetRowVisibleFuncSet(e,t),this._sheetRangeThemeModel.refreshZebraCrossingCacheBySheet(e,t)}))}};mu=E([T(0,(0,t.Inject)(t.ICommandService)),T(1,(0,t.Inject)(N)),T(2,(0,t.Inject)(t.IUniverInstanceService))],mu);let hu=class{constructor(e,n){this._selectionProtectionRuleModel=e,this._permissionService=n,w(this,`_cache`,new t.LRUMap(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.type===a.UnitObject.SelectRange),(0,o.filter)(e=>Oc().some(t=>e instanceof t)),(0,o.map)(e=>e)).subscribe(e=>{let n=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(let r of n)r.permissionId===e.permissionId&&r.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{if(e.rule.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})}),e.type===`set`){var n;(n=e.oldRule)==null||n.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),a=[];if(!i||!i.length)return a;let o=this._createKey(e,t,n,r),s=this._cache.get(o);if(s)return s;let c=[];for(let a of i)if(a.ranges.some(e=>e.startRow<=n&&e.endRow>=n&&e.startColumn<=r&&e.endColumn>=r)){let n=Oc().reduce((n,r)=>{var i;let o=new r(e,t,a.permissionId),s=this._permissionService.getPermissionPoint(o.id);return n[o.subType]=(i=s==null?void 0:s.value)==null?o.value:i,n},{});c.push({...n,ruleId:a.id,ranges:a.ranges})}return this._cache.set(o,c),c}clear(){this._cache.clear()}};hu=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IPermissionService))],hu);let gu=class extends t.Disposable{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,w(this,`_cellRuleCache`,new Map),w(this,`_permissionIdCache`,new Map),w(this,`_cellInfoCache`,new Map),w(this,`_rowInfoCache`,new Map),w(this,`_colInfoCache`,new Map),this._initUpdateCellRuleCache(),this._initUpdateCellInfoCache(),this._initUpdateRowColInfoCache(),this._initCache()}_initCache(){this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();this.reBuildCache(n,r)})})}_initUpdateCellInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===a.UnitObject.SelectRange),(0,n.map)(e=>e)).subscribe(e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureCellInfoMap(n,t);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++)o.delete(`${e}-${t}`)})}),this._ruleModel.ruleChange$.subscribe(e=>{let{unitId:n,subUnitId:r}=e,i=this._ensureCellInfoMap(n,r);if(e.rule.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{i.delete(`${e}-${t}`)})}),e.type===`set`){var a;(a=e.oldRule)==null||a.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._cellInfoCache.delete(`${e}-${t}`)})})}})}_initUpdateCellRuleCache(){this._ruleModel.ruleChange$.subscribe(e=>{let{type:t}=e;t===`add`?this._addCellRuleCache(e):t===`delete`?this._deleteCellRuleCache(e):(this._deleteCellRuleCache({...e,rule:e.oldRule}),this._addCellRuleCache(e))})}_ensureRuleMap(e,t){let n=this._cellRuleCache.get(e);n||(n=new Map,this._cellRuleCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureCellInfoMap(e,t){let n=this._cellInfoCache.get(e);n||(n=new Map,this._cellInfoCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureRowColInfoMap(e,t,n){let r=n===`row`?this._rowInfoCache.get(e):this._colInfoCache.get(e);r||(r=new Map,n===`row`?this._rowInfoCache.set(e,r):this._colInfoCache.set(e,r));let i=r.get(t);return i||(i=new Map,r.set(t,i)),i}_addCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++)i.set(`${e}-${t}`,r.id)}),this._permissionIdCache.set(r.permissionId,r.id)}_deleteCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t),a=this._ensureCellInfoMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++)i.delete(`${e}-${t}`),a.delete(`${e}-${t}`)}),this._permissionIdCache.delete(r.permissionId)}_getSelectionActions(e,t,n){var r,i,o,s,c,l,u,d,f,p,m,h;let g=(r=(i=this._permissionService.getPermissionPoint((o=new Z(e,t,n.permissionId))==null?void 0:o.id))==null?void 0:i.value)==null?!1:r,_=(s=(c=this._permissionService.getPermissionPoint((l=new Dc(e,t,n.permissionId))==null?void 0:l.id))==null?void 0:c.value)==null?!1:s,v=(u=(d=this._permissionService.getPermissionPoint((f=new Ec(e,t,n.permissionId))==null?void 0:f.id))==null?void 0:d.value)==null?!1:u,y=(p=(m=this._permissionService.getPermissionPoint((h=new Tc(e,t,n.permissionId))==null?void 0:h.id))==null?void 0:m.value)==null?!1:p;return{[a.UnitAction.Edit]:g,[a.UnitAction.View]:_,[a.UnitAction.ManageCollaborator]:v,[a.UnitAction.Delete]:y}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===a.UnitObject.SelectRange),(0,n.map)(e=>e)).subscribe({next:e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureRowColInfoMap(n,t,`row`),s=this._ensureRowColInfoMap(n,t,`col`),c=this._getSelectionActions(n,t,a);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:a}=e;for(let e=t;e<=n;e++){let t=o.get(`${e}`);t?t.set(i,c):o.set(`${e}`,new Map([[i,c]]));for(let e=r;e<=a;e++){let t=s.get(`${e}`);t?t.set(i,c):s.set(`${e}`,new Map([[i,c]]))}}})}}),this._ruleModel.ruleChange$.subscribe(e=>{if(e.type===`delete`){let{unitId:t,subUnitId:n,rule:r}=e,i=this._ensureRowColInfoMap(t,n,`row`),a=this._ensureRowColInfoMap(t,n,`col`);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:o,endColumn:s}=e;for(let e=t;e<=n;e++){let t=i.get(`${e}`);t==null||t.delete(r.id);for(let e=o;e<=s;e++){let t=a.get(`${e}`);t==null||t.delete(r.id)}}})}})}getCellInfo(e,t,n,r){var i;let a=this._ensureCellInfoMap(e,t),o=a.get(`${n}-${r}`);if(o)return o;let s=(i=this._cellRuleCache.get(e))==null||(i=i.get(t))==null?void 0:i.get(`${n}-${r}`);if(!s)return;let c=this._ruleModel.getRule(e,t,s);if(c){let i={...this._getSelectionActions(e,t,c),ruleId:s,ranges:c.ranges};return a.set(`${n}-${r}`,i),i}}deleteUnit(e){this._cellRuleCache.delete(e),this._cellInfoCache.delete(e),this._rowInfoCache.delete(e),this._colInfoCache.delete(e);let t=this._univerInstanceService.getUnit(e);t==null||t.getSheets().forEach(t=>{let n=t.getSheetId();this._ruleModel.getSubunitRuleList(e,n).forEach(e=>{this._permissionIdCache.delete(e.permissionId)})})}};gu=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IPermissionService)),T(2,(0,t.Inject)(t.IUniverInstanceService))],gu);var _u=`@univerjs/sheets`,vu=`0.21.1`;let yu=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,w(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Lr.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Lr.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===gc.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===ns.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===gc.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===W.id)return this._adjustActiveSheetOnSelection(e)}))}_adjustActiveSheetOnHideSheet(e){var t;let{unitId:n,subUnitId:r}=e.params,i=this._univerInstanceService.getUniverSheetInstance(n);if(!i||((t=i.getActiveSheet())==null?void 0:t.getSheetId())!==r)return;let a=bu(i,i.getActiveSheetIndex());this._switchToNextSheet(n,a)}_beforeAdjustActiveSheetOnRemoveSheet(e){let{unitId:t,subUnitId:n}=e.params,r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;let i=r.getSheetBySheetId(n);i&&(this._previousSheetIndex=r.getSheetIndex(i))}_adjustActiveSheetOnRemoveSheet(e){if(this._previousSheetIndex===-1)return;let{unitId:t}=e.params,n=this._univerInstanceService.getUniverSheetInstance(t);if(n&&n.getActiveSheet().getSheetId()===e.params.subUnitId){let e=this._previousSheetIndex,r=bu(n,e>=1?e-1:0);this._switchToNextSheet(t,r)}}_adjustActiveSheetOnInsertSheet(e){let{unitId:t,sheet:n}=e.params;this._switchToNextSheet(t,n.id)}_adjustActiveSheetOnShowSheet(e){let{unitId:t,subUnitId:n}=e.params;this._switchToNextSheet(t,n)}_adjustActiveSheetOnSelection(e){var t;let{unitId:n,subUnitId:r}=e.params;r!==((t=this._univerInstanceService.getUnit(n))==null?void 0:t.getActiveSheet().getSheetId())&&this._switchToNextSheet(n,r)}_switchToNextSheet(e,t){this._commandService.executeCommand(Rt.id,{unitId:e,subUnitId:t})}};yu=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService)],yu);function bu(e,t){let n=e.getSheetSize();for(let n=t;n>-1;n--){let t=e.getSheetByIndex(n);if(!t.getConfig().hidden)return t.getSheetId()}for(let r=t;r<n;r++){let t=e.getSheetByIndex(r);if(!t.getConfig().hidden)return t.getSheetId()}throw Error(`[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.`)}let xu=class extends t.Disposable{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[R,we,Se,ns,Te,De,ke,P,je,Lr,I,Rl,g,sc,yc,Ll,Pe,Kl,St,bt,Xl,Zl,es,At,Et,ql].forEach(e=>{var t;this._commandService.registerCommand(e),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)}),(r=this._configService.getConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`))!=null&&r||[aa,oa,sa,ca,ga,In,Yo,Ln,ss,cr,ur,uc,Al,Er,Tr,Dr,Or,wr,Cr,fr,mr,yr,vr,xr,br,_r,gr,ps,Ur,Zn,Vr,jr,Fr,Pr,Mr,ys,Xr,Qi,Oa,Ea,Da,Ns,Ms,ks,As,js,Ls,Be,He,dc,Ps,Re,Ws,Us,Gs,Aa,Xs,nr,jl,ec,Zs,vt,Is,$s,Fs,Qs,q,oc,ac,Ta,Ma,ja,ka,cc,lc,Rt,_c,gc,bc,Cc,Sc,It,Pt,Ml,Ft,wt,kl,pc,Yn,W,Ql,fs,vs,Vs,Nl,Ul,Lt,Ks,Ue,Vl,wl,fa,Js,pa,Cl,Nn,Ys,ls,ma,us,Tl,Mn,An,X,Hl,Dt,mc,Pl,ye,_e,gs,hs,Wl,_s,ha,ds,Gl,Yl,Jl,Uo,Ko,qo,Jo,ms].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(ou,3e6)}};xu=E([T(0,t.ICommandService),T(1,t.IConfigService),T(2,(0,t.Optional)(s.DataSyncPrimaryController))],xu);let Su=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==r.SetFormulaCalculationResultMutation.id)return;let{unitData:n}=e.params,i=Object.keys(n),a=[];for(let e=0;e<i.length;e++){let t=i[e],r=n[t];if(r==null)continue;let o=Object.keys(r);for(let e=0;e<o.length;e++){let n=o[e],i=r[n];if(i==null)continue;let s={subUnitId:n,unitId:t,cellValue:this._getMergedCellData(t,n,i)};a.push({id:R.id,params:s})}}return(0,t.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,n,i){let a=this._univerInstanceService.getUniverSheetInstance(e),o=a==null?void 0:a.getStyles(),s=a==null?void 0:a.getSheetBySheetId(n),c=s==null?void 0:s.getCellMatrix(),l=new t.ObjectMatrix(i);return l.forValue((e,t,n)=>{let i=(0,r.handleNumfmtInCell)(c==null?void 0:c.getValue(e,t),n,o);l.setValue(e,t,i)}),l.getMatrix()}};Su=E([T(0,(0,t.Inject)(t.IUniverInstanceService)),T(1,t.ICommandService)],Su);let Cu=class extends t.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{priority:11,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,n,i)=>{var a;if(!e)return i(e);let o=n.workbook.getStyles().getStyleByCell(e);return(0,t.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern)&&(e==null?void 0:e.t)===t.CellValueType.NUMBER&&e.v!==void 0&&e.v!==null&&(0,t.isRealNum)(e.v)?((!e||e===n.rawData)&&(e={...n.rawData}),e.v=(0,r.stripErrorMargin)(Number(e.v)),i(e)):i(e)}}))}};Cu=E([T(0,(0,t.Inject)(A))],Cu);let wu=class extends t.Disposable{constructor(e,t,n,r){super(),this._permissionService=e,this._worksheetProtectionRuleModel=t,this._sheetInterceptorService=n,this._rangeProtectionCache=r,this._initViewModelByRangeInterceptor(),this._initViewModelBySheetInterceptor()}_initViewModelByRangeInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i,row:o,col:s}=t,c=this._rangeProtectionCache.getCellInfo(r,i,o,s);if(c){let r=c[a.UnitAction.View]===!1,i=!e||e===t.rawData?{...t.rawData}:e;return i.selectionProtection=[c],r?(delete i.s,delete i.v,delete i.p,i):n(i)}return n(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(_.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,o=this._worksheetProtectionRuleModel.getRule(r,i);if(o!=null&&o.permissionId){var s,c,l,u,d;let o=[{[a.UnitAction.View]:(s=(c=this._permissionService.getPermissionPoint(new gl(r,i).id))==null?void 0:c.value)==null?!1:s,[a.UnitAction.Edit]:(l=(u=this._permissionService.getPermissionPoint(new $(r,i).id))==null?void 0:u.value)==null?!1:l}],f=!((d=o[0])!=null&&d[a.UnitAction.View]),p=!e||e===t.rawData?{...e}:e;return p.hasWorksheetRule=!0,p.selectionProtection=o,f?(delete p.s,delete p.v,delete p.p,p):n(p)}return n(e)}}))}};wu=E([T(0,t.IPermissionService),T(1,(0,t.Inject)(da)),T(2,(0,t.Inject)(A)),T(3,(0,t.Inject)(gu))],wu);let Tu=(0,t.createIdentifier)(`univer.exclusive-range-service`);var Eu=class extends t.Disposable{constructor(...e){super(...e),w(this,`_exclusiveRanges`,new Map),w(this,`_exclusiveRangesChange$`,new n.Subject),w(this,`exclusiveRangesChange$`,this._exclusiveRangesChange$.asObservable())}_ensureUnitMap(e){return this._exclusiveRanges.has(e)||this._exclusiveRanges.set(e,new Map),this._exclusiveRanges.get(e)}_ensureSubunitMap(e,t){let n=this._ensureUnitMap(e);return n.has(t)||n.set(t,new Map),n.get(t)}_ensureFeature(e,t,n){let r=this._ensureSubunitMap(e,t);return r.has(n)||r.set(n,[]),r.get(n)}addExclusiveRange(e,t,n,r){let i=this._ensureFeature(e,t,n);i.push(...r),this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:i.map(e=>e.range)})}getExclusiveRanges(e,t,n){var r;return(r=this._exclusiveRanges.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}clearExclusiveRanges(e,t,n){let r=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(r==null?void 0:r.map(e=>e.range))||[]}),this._ensureFeature(e,t,n),this._exclusiveRanges.get(e).get(t).set(n,[])}clearExclusiveRangesByGroupId(e,t,n,r){let i=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(i==null?void 0:i.map(e=>e.range))||[]});let a=this.getExclusiveRanges(e,t,n);if(a){let i=a.filter(e=>e.groupId!==r);this._exclusiveRanges.get(e).get(t).set(n,i)}}getInterestGroupId(e){let n=[];return e.forEach(e=>{var r;let i=e.range,{unitId:a,sheetId:o}=i;if(!a||!o)return;let s=(r=this._exclusiveRanges.get(a))==null?void 0:r.get(o);if(s)for(let e of s.keys()){let r=s.get(e);if(r){for(let a of r)if(t.Rectangle.intersects(i,a.range)){n.push(e);break}}}}),n}};let Du=class extends t.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;let o=i.getStyles(),s=a.getCellRaw(n,r);if(s!=null&&s.s){let e=o.get(s.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles();r.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=a.getCellRaw(e,t);if(!n)return;let r=n==null?void 0:n.s,i={...r&&o.get(r)||{}};delete i.n,n.s=o.setValue(i)})})}setValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles(),s=a.getCellMatrix();r.forEach(e=>{e.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=a.getCellRaw(t,n);if(r){let t={...o.getStyleByCell(r)||{},n:{pattern:e.pattern}};r.s=o.setValue(t)}else{let r={n:{pattern:e.pattern}},i=o.setValue(r);i&&s.setValue(t,n,{s:i})}})})})}};Du=E([T(0,t.IResourceManagerService),T(1,t.IUniverInstanceService),T(2,t.ILogService)],Du);let Ou=[we.id,Se.id,P.id,je.id],ku=[De.id,ke.id],Au=class extends t.Disposable{constructor(e,n,r,i,a,o,s,c){super(),this._selectionProtectionRuleModel=e,this._univerInstanceService=n,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._rangeProtectionCache=o,this._sheetInterceptorService=s,this._rangeProtectionRuleModel=c,w(this,`disposableCollection`,new t.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=t=>this.refRangeHandle(t,e,n);this._selectionProtectionRuleModel.getSubunitRuleList(e,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,i,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===lc.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===X.id||t.id===Mn.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(n){let t=n.getActiveSheet();if(!t)return;e(n.getUnitId(),t.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case Vr.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Ur.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case gr.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case Cr.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Fr.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case Mr.id:return this._getRefRangeMutationsByDeleteRows(e.params,t,n);default:break}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(e,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>t.Rectangle.intersects(n,e.range))),a=e.range;if(i.length){let e=[],o=[];return i.forEach(i=>{let s=t.Tools.deepClone(i);s.ranges=s.ranges.reduce((e,n)=>{if(t.Rectangle.intersects(n,a)){let r=t.Tools.deepClone(n),{startColumn:i,endColumn:o}=a;if(i<=r.startColumn&&o>=r.endColumn)return e;i>=r.startColumn&&o<=r.endColumn?r.endColumn-=o-i+1:i<r.startColumn?(r.startColumn=i,r.endColumn-=o-i+1):o>r.endColumn&&(r.endColumn=i-1),this._checkIsRightRange(r)&&e.push(r)}return e},[]),s.ranges.length?(e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:X.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})):(e.push({id:An.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:Mn.id,params:{unitId:n,subUnitId:r,name:``,rules:[i]}}))}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(e,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>t.Rectangle.intersects(n,e.range))),a=e.range;if(i.length){let e=[],o=[];return i.forEach(i=>{let s=t.Tools.deepClone(i);s.ranges=s.ranges.reduce((e,n)=>{if(t.Rectangle.intersects(n,a)){let r=t.Tools.deepClone(n),{startRow:i,endRow:o}=a;if(i<=r.startRow&&o>=r.endRow)return e;i>=r.startRow&&o<=r.endRow?r.endRow-=o-i+1:i<r.startRow?(r.startRow=i,r.endRow-=o-i+1):o>r.endRow&&(r.endRow=i-1),this._checkIsRightRange(r)&&e.push(r)}return e},[]),e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:X.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(e,n,r){let i=e.range.startColumn,a=e.range.endColumn-e.range.startColumn+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>i>e.startColumn&&i<=e.endColumn));if(o.length){let e=[],s=[];return o.forEach(o=>{let c=t.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startColumn&&i<=e.endColumn&&(e.endColumn+=a,l=!0)}),l&&(e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:X.id,params:{unitId:n,subUnitId:r,rule:o,ruleId:o.id}}))}),{redos:e,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(e,n,r){let i=e.range.startRow,a=e.range.endRow-e.range.startRow+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>i>e.startRow&&i<=e.endRow));if(o.length){let e=[],s=[];return o.forEach(o=>{let c=t.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startRow&&i<=e.endRow&&(e.endRow+=a,l=!0)}),l&&(e.push({id:X.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:X.id,params:{unitId:n,subUnitId:r,rule:o,ruleId:o.id}}))}),{redos:e,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(e,n,r){let i=e.toRange,a=i.startRow,o=i.endRow-i.startRow+1,s=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>a>e.startRow&&a<=e.endRow));if(s.length){let i=[],c=[];return s.forEach(s=>{let l=t.Tools.deepClone(s),u=e.fromRange.startRow,d=!1;l.ranges.forEach(e=>{a>e.startRow&&a<=e.endRow&&(u<e.startRow&&(e.startRow-=o,e.endRow-=o),e.endRow+=o,d=!0)}),d&&(i.push({id:X.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:s.id}}))}),{redos:i,undos:c}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(e,n,r){let i=e.toRange,a=i.startColumn,o=i.endColumn-i.startColumn+1,s=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>a>e.startColumn&&a<=e.endColumn));if(s.length){let i=[],c=[];return s.forEach(s=>{let l=t.Tools.deepClone(s),u=e.fromRange.startColumn,d=!1;l.ranges.forEach(e=>{a>e.startColumn&&a<=e.endColumn&&(u<e.startColumn&&(e.startColumn-=o,e.endColumn-=o),e.endColumn+=o,d=!0)}),d&&(i.push({id:X.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:X.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:s.id}}))}),{redos:i,undos:c}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(ku.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),this._checkIsRightRange({startRow:n,endRow:r,startColumn:a,endColumn:u})&&(e.startColumn=a,e.endColumn=u,e.startRow=n,e.endRow=r)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}if(Ou.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=e.params;if(!r)return;let{range:i}=r,a=e.id.includes(`row`),o=e.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;o?a?s<=t&&(t+=l,n+=l):s<=r&&(r+=l,i+=l):a?c<t&&(t-=l,n-=l):c<r&&(r-=l,i-=l),this._checkIsRightRange({startRow:t,endRow:n,startColumn:r,endColumn:i})&&(e.startColumn=r,e.endColumn=i,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Ou.includes(e.id)||ku.includes(e.id)){let{unitId:t,subUnitId:n}=e.params;this._rangeProtectionCache.reBuildCache(t,n)}}))}_initRemoveSheet(){this._sheetInterceptorService.interceptCommand({getMutations:e=>{let t=[],n=[],r=[],i=[];if(e.id===ys.id){let n=e.params,i=[],a=[];this._rangeProtectionRuleModel.getSubunitRuleList(n.unitId,n.subUnitId).forEach(e=>{i.push(e.id),a.push(e)}),i.length&&a.length&&(r.push({id:An.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:Mn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};Au=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,t.ICommandService),T(3,(0,t.Inject)(Ri)),T(4,(0,t.Inject)(hu)),T(5,(0,t.Inject)(gu)),T(6,(0,t.Inject)(A)),T(7,(0,t.Inject)(B))],Au);let ju=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._selectionProtectionRuleModel=e,this._permissionService=t,this._resourceManagerService=n,this._selectionProtectionCache=r,this._univerInstanceService=i,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case`add`:Oc().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:Oc().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(n.id)});break;case`set`:e.oldRule.permissionId!==e.rule.permissionId&&Oc().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(n.id);let r=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}))}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>{let t=this._selectionProtectionRuleModel.toObject()[e];return t?JSON.stringify(t):``},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_RANGE_PROTECTION_PLUGIN`,businesses:[t.UniverInstanceType.UNIVER_SHEET],onLoad:(e,t)=>{let n=this._selectionProtectionRuleModel.toObject();n[e]=t,this._selectionProtectionRuleModel.fromObject(n);let r=[];Object.keys(t).forEach(n=>{let i=t[n];this._selectionProtectionRuleModel.getSubunitRuleList(e,n).forEach(t=>{r.push({objectID:t.permissionId,unitID:e,objectType:a.UnitObject.SelectRange,actions:kc})}),i.forEach(t=>{Oc().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};ju=E([T(0,(0,t.Inject)(B)),T(1,(0,t.Inject)(t.IPermissionService)),T(2,(0,t.Inject)(t.IResourceManagerService)),T(3,(0,t.Inject)(gu)),T(4,(0,t.Inject)(t.IUniverInstanceService))],ju);let Mu=class extends t.Disposable{constructor(e){super(),this._sheetRangeThemeModel=e}registerRangeTheme(e,t){this._sheetRangeThemeModel.registerRangeThemeStyle(e,t)}removeRangeThemeRule(e,t){this._sheetRangeThemeModel.removeRangeThemeRule(e,t)}getALLRegisterThemes(e){return this._sheetRangeThemeModel.getALLRegisteredTheme(e)}registerRangeThemeStyle(e,t){this._sheetRangeThemeModel.registerRangeThemeRule(e,t)}getAppliedRangeThemeStyle(e){return this._sheetRangeThemeModel.getRegisteredRangeThemeStyle(e)}getRegisteredRangeThemes(){return this._sheetRangeThemeModel.getRegisteredRangeThemes()}};Mu=E([T(0,(0,t.Inject)(N))],Mu);let Nu=class extends t.Plugin{constructor(e=Qo,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},Qo,this._config);this._configService.setConfig(Xo,i),this._initConfig(),this._initDependencies()}_initConfig(){var e,n,r;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`,!0),(n=this._config)!=null&&n.isRowStylePrecedeColumnStyle&&this._configService.setConfig(t.IS_ROW_STYLE_PRECEDE_COLUMN_STYLE,!0),(r=this._config)!=null&&r.autoHeightForMergedCells&&this._configService.setConfig(t.AUTO_HEIGHT_FOR_MERGED_CELLS,!0)}_initDependencies(){var e;let n=[[bs],[$o],[H],[Ri],[fu],[Fl,{useClass:Du}],[A],[Mu],[Gr],[xu],[qi],[Cu],[su],[mu],[uu],[Sl],[da],[wc],[wu],[pu],[du],[N],[hu],[B],[gu],[Au],[ju],[Tu,{useClass:Eu,deps:[H]}],[Ho,{useClass:Vo}],[au]];(e=this._config)!=null&&e.notExecuteFormula||n.push([Su]),(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)(n,this._config.override)),(0,t.touchDependencies)(this._injector,[[A],[ju],[Tu],[pu],[uu]])}onStarting(){var e;(0,t.touchDependencies)(this._injector,[[xu],[qi],[fu],[Sl],[wu],[Gr],[au]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([yu])}onRendered(){(0,t.touchDependencies)(this._injector,[[Fl]])}onReady(){(0,t.touchDependencies)(this._injector,[[yu],[Su],[su],[mu],[N],[Cu],[hu],[Au],[Ri],[du]])}};w(Nu,`pluginName`,`SHEET_PLUGIN`),w(Nu,`packageName`,_u),w(Nu,`version`,vu),w(Nu,`type`,t.UniverInstanceType.UNIVER_SHEET),Nu=E([(0,t.DependentOn)(r.UniverFormulaEnginePlugin),T(1,(0,t.Inject)(t.Injector)),T(2,t.IConfigService)],Nu);let Pu={WorkbookCommentPermission:jc,WorkbookCopyPermission:Mc,WorkbookCreateProtectPermission:Pc,WorkbookCreateSheetPermission:Fc,WorkbookDeleteSheetPermission:Rc,WorkbookDuplicatePermission:zc,WorkbookEditablePermission:Q,WorkbookExportPermission:Bc,WorkbookHideSheetPermission:Vc,WorkbookManageCollaboratorPermission:Wc,WorkbookMoveSheetPermission:Gc,WorkbookPrintPermission:Kc,WorkbookRecoverHistoryPermission:qc,WorkbookRenameSheetPermission:Jc,WorkbookSharePermission:Yc,WorkbookViewHistoryPermission:Zc,WorkbookViewPermission:Xc,WorksheetCopyPermission:Qc,WorksheetDeleteColumnPermission:$c,WorksheetDeleteProtectionPermission:el,WorksheetDeleteRowPermission:tl,WorksheetEditExtraObjectPermission:nl,WorksheetEditPermission:$,WorksheetFilterPermission:rl,WorksheetInsertColumnPermission:il,WorksheetInsertHyperlinkPermission:al,WorksheetInsertRowPermission:ol,WorksheetManageCollaboratorPermission:sl,WorksheetPivotTablePermission:cl,WorksheetSetCellStylePermission:dl,WorksheetSetCellValuePermission:fl,WorksheetSetColumnStylePermission:pl,WorksheetSetRowStylePermission:ml,WorksheetSortPermission:hl,WorksheetViewPermission:gl,RangeProtectionPermissionEditPoint:Z,RangeProtectionPermissionViewPoint:Dc},Fu=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(B),s=a.getPermissionPoint(new Q(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new $(n,r).id);if(!(c!=null&&c.value))return!1;let l=o.getSubunitRuleList(n,r).filter(e=>e.ranges.some(e=>i.some(n=>t.Rectangle.intersects(e,n))));return l.length?l.every(e=>{let t=e.permissionId,i=a.getPermissionPoint(new Z(n,r,t).id);return!!(i!=null&&i.value)}):!0},Iu=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.startRow-i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l--,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l>=s)return{...r,startRow:l,endRow:l};if(o)return Ru(e,n,{...r,startRow:c,endRow:c},i,a,!1)},Lu=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.endRow+i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l++,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l<=c)return{...r,startRow:l,endRow:l};if(o)return zu(e,n,{...r,startRow:s,endRow:s},i,a,!1)},Ru=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.startColumn-i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l--,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l>=s)return{...r,startColumn:l,endColumn:l};if(o)return Iu(e,n,{...r,startColumn:c,endColumn:c},i,a,!1)},zu=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.endColumn+i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l++,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l<=c)return{...r,endColumn:l,startColumn:l};if(o)return Lu(e,n,{...r,startColumn:s,endColumn:s},i,a,!1)};function Bu(e,n,r){let i=null;return r.getMatrixWithMergedCells(e,n,e,n).forValue((e,n,r)=>(i={actualRow:e,actualColumn:n,startRow:e,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:e+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:t.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:e,startRow:e,startColumn:n,endRow:e,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:t.RANGE_TYPE.NORMAL}}let Vu=(e,n,r,i,a=1)=>{switch(i){case t.Direction.UP:return Iu(e,n,r,a);case t.Direction.DOWN:return Lu(e,n,r,a);case t.Direction.LEFT:return Ru(e,n,r,a);case t.Direction.RIGHT:return zu(e,n,r,a)}},Hu=(e,n,r)=>{let i,a=-1,o;for(let t=0;t<e.length;t++)if(e[t].primary){i=e[t],a=t,o=i.primary;break}if(a===-1)return null;let s=n===t.Direction.LEFT||n===t.Direction.UP,c=e[s?a-1>=0?a-1:e.length-1:a+1<e.length?a+1:0];if(!i||!o)return null;let l={...o},{startRow:u,startColumn:d,endRow:f,endColumn:p}=i.range,m=s?l.startRow===u&&l.startColumn===d:l.endRow===f&&l.endColumn===p,h=m&&s;if(!t.Rectangle.equals(i.range,l)){let e=m?c.range:Vu(i.range,r,l,n);if(!e)return null;let t=h?Bu(e.endRow,e.endColumn,r):Bu(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?Bu(c.range.endRow,c.range.endColumn,r):Bu(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function Uu(e,t){let{startRow:n,startColumn:r,endRow:i,endColumn:a,rangeType:o}=t,s=i<n?i:n,c=i<n?n:i,l=a<r?a:r,u=a<r?r:a,d=e.getNoMergeCellWithCoordByIndex(s,l),f=e.getNoMergeCellWithCoordByIndex(c,u);return{startRow:n,startColumn:r,endRow:i,endColumn:a,rangeType:o,startY:(d==null?void 0:d.startY)||0,endY:(f==null?void 0:f.endY)||0,startX:(d==null?void 0:d.startX)||0,endX:(f==null?void 0:f.endX)||0}}function Wu(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:Uu(t,n),primaryWithCoord:r&&Gu(t,r),style:i}}function Gu(e,t){let{actualRow:n,actualColumn:r,isMerged:i,isMergedMainCell:a,startRow:o,startColumn:s,endRow:c,endColumn:l}=t,u=e.getNoMergeCellWithCoordByIndex(n,r),d=e.getNoMergeCellWithCoordByIndex(o,s),f=e.getNoMergeCellWithCoordByIndex(c,l);return{actualRow:n,actualColumn:r,isMerged:i,isMergedMainCell:a,startX:u.startX,startY:u.startY,endX:u.endX,endY:u.endY,mergeInfo:{startRow:o,startColumn:s,endRow:c,endColumn:l,startY:(d==null?void 0:d.startY)||0,endY:(f==null?void 0:f.endY)||0,startX:(d==null?void 0:d.startX)||0,endX:(f==null?void 0:f.endX)||0}}}function Ku(e,t,n,r){let{from:a,to:o}=n,{column:s,columnOffset:c,row:l,rowOffset:u}=a,{column:d,columnOffset:f,row:p,rowOffset:m}=o,h=Uu(r,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=Uu(r,{startColumn:d,endColumn:d,startRow:p,endRow:p}),{startX:_,startY:v}=h,{startX:y,startY:b}=g,x=(0,i.precisionTo)(_+c,1),S=(0,i.precisionTo)(v+u,1),C=(0,i.precisionTo)(y+f-x,1),w=(0,i.precisionTo)(b+m-S,1);return h.startX===g.endX&&(C=0),h.startY===g.endY&&(w=0),{unitId:e,subUnitId:t,left:x,top:S,width:C,height:w}}function qu(e,t,n,r,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=Uu(o,{startColumn:s,endColumn:s,startRow:l,endRow:l}),p=(0,i.precisionTo)(d+c,1),m=(0,i.precisionTo)(f+u,1),h=o.getCellIndexAndOffsetByPosition(p+r,m+a);return{unitId:e,subUnitId:t,sheetTransform:{from:{column:s,columnOffset:c,row:l,rowOffset:u},to:h},transform:{left:p,top:m,width:r,height:a}}}e.AFFECT_LAYOUT_STYLES=_a,e.AFTER_CELL_EDIT=O,e.AUTO_FILL_APPLY_TYPE=J,e.AUTO_FILL_DATA_TYPE=Y,e.AUTO_FILL_HOOK_TYPE=go,e.AddMergeRedoSelectionsOperationFactory=Xi,e.AddMergeUndoMutationFactory=h,e.AddMergeUndoSelectionsOperationFactory=Zi,e.AddRangeProtectionCommand=Nn,e.AddRangeProtectionMutation=Mn,e.AddRangeThemeMutation=Gl,e.AddWorksheetMergeAllCommand=oa,e.AddWorksheetMergeCommand=aa,e.AddWorksheetMergeHorizontalCommand=ca,e.AddWorksheetMergeMutation=g,e.AddWorksheetMergeVerticalCommand=sa,e.AddWorksheetProtectionCommand=ma,e.AddWorksheetProtectionMutation=fa,e.AppendRowCommand=ga,e.AutoClearContentCommand=Jo,e.AutoFillCommand=Uo,Object.defineProperty(e,`AutoFillController`,{enumerable:!0,get:function(){return au}}),e.AutoFillRules=Mo,Object.defineProperty(e,`AutoFillService`,{enumerable:!0,get:function(){return Vo}}),e.AutoFillTools=ho,e.BEFORE_CELL_EDIT=D,e.BorderStyleManagerService=bs,e.COMMAND_LISTENER_SKELETON_CHANGE=Bt,e.COMMAND_LISTENER_VALUE_CHANGE=Vt,e.CancelFrozenCommand=Gs,e.CancelMarkDirtyRowAutoHeightOperation=Zl,e.ClearSelectionAllCommand=In,e.ClearSelectionContentCommand=Yo,e.ClearSelectionFormatCommand=Ln,e.CopySheetCommand=ss,e.CopyWorksheetEndMutation=es,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,`DefinedNameDataController`,{enumerable:!0,get:function(){return su}}),e.DeleteRangeMoveLeftCommand=cr,e.DeleteRangeMoveUpCommand=ur,e.DeleteRangeProtectionCommand=ls,e.DeleteRangeProtectionMutation=An,e.DeleteWorksheetProtectionCommand=us,e.DeleteWorksheetProtectionMutation=pa,e.DeleteWorksheetRangeThemeStyleCommand=ds,e.DeleteWorksheetRangeThemeStyleMutation=ye,e.DeleteWorksheetRangeThemeStyleMutationFactory=be,e.DeltaColumnWidthCommand=uc,e.DeltaRowHeightCommand=Al,e.EditStateEnum=On,e.EffectRefRangId=G,e.EmptyMutation=Kl,e.ExclusiveRangeService=Eu,e.FactoryAddRangeProtectionMutation=jn,e.FactoryDeleteRangeProtectionMutation=kn,e.FactorySetRangeProtectionMutation=qs,e.IAutoFillService=Ho,e.IExclusiveRangeService=Tu,e.INTERCEPTOR_POINT=_,e.INumfmtService=Fl,e.IRefSelectionsService=Kn,e.InsertColAfterCommand=Er,e.InsertColBeforeCommand=Tr,e.InsertColByRangeCommand=wr,e.InsertColCommand=Cr,e.InsertColMutation=we,e.InsertColMutationUndoFactory=Ce,e.InsertDefinedNameCommand=fs,e.InsertMultiColsLeftCommand=Dr,e.InsertMultiColsRightCommand=Or,e.InsertMultiRowsAboveCommand=br,e.InsertMultiRowsAfterCommand=xr,e.InsertRangeMoveDownCommand=fr,e.InsertRangeMoveRightCommand=mr,e.InsertRowAfterCommand=yr,e.InsertRowBeforeCommand=vr,e.InsertRowByRangeCommand=_r,e.InsertRowCommand=gr,e.InsertRowMutation=Se,e.InsertRowMutationUndoFactory=xe,e.InsertSheetCommand=ps,e.InsertSheetMutation=ns,e.InsertSheetUndoMutationFactory=ts,e.InterceptCellContentPriority=v,e.MAX_CELL_PER_SHEET_KEY=ou,e.MERGE_CELL_INTERCEPTOR_CHECK=Ki,e.MarkDirtyFilterChangeMutation=ql,e.MarkDirtyRowAutoHeightOperation=Xl,Object.defineProperty(e,`MergeCellController`,{enumerable:!0,get:function(){return qi}}),e.MoveColsCommand=Ur,e.MoveColsMutation=ke,e.MoveColsMutationUndoFactory=Oe,e.MoveRangeCommand=Zn,e.MoveRangeMutation=Te,e.MoveRowsCommand=Vr,e.MoveRowsMutation=De,e.MoveRowsMutationUndoFactory=Ee,Object.defineProperty(e,`NumfmtService`,{enumerable:!0,get:function(){return Du}}),e.OperatorType=K,e.PermissionPointsDefinitions=Pu,e.REF_SELECTIONS_ENABLED=Fn,e.RangeMergeUtil=sn,Object.defineProperty(e,`RangeProtectionCache`,{enumerable:!0,get:function(){return gu}}),e.RangeProtectionPermissionDeleteProtectionPoint=Tc,e.RangeProtectionPermissionEditPoint=Z,e.RangeProtectionPermissionManageCollaPoint=Ec,e.RangeProtectionPermissionViewPoint=Dc,Object.defineProperty(e,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return Au}}),Object.defineProperty(e,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return hu}}),e.RangeProtectionRuleModel=B,Object.defineProperty(e,`RangeProtectionService`,{enumerable:!0,get:function(){return ju}}),e.RangeThemeStyle=ne,Object.defineProperty(e,`RefRangeService`,{enumerable:!0,get:function(){return Ri}}),Object.defineProperty(e,`RefSelectionsService`,{enumerable:!0,get:function(){return qn}}),e.RefillCommand=ms,e.RegisterWorksheetRangeThemeStyleCommand=_s,e.RegisterWorksheetRangeThemeStyleMutation=hs,e.RemoveColByRangeCommand=Pr,e.RemoveColCommand=Fr,e.RemoveColMutation=P,e.RemoveDefinedNameCommand=vs,e.RemoveMergeUndoMutationFactory=F,e.RemoveNumfmtMutation=Rl,e.RemoveRangeThemeMutation=Jl,e.RemoveRowByRangeCommand=jr,e.RemoveRowCommand=Mr,e.RemoveRowMutation=je,e.RemoveSheetCommand=ys,e.RemoveSheetMutation=Lr,e.RemoveSheetUndoMutationFactory=Ir,e.RemoveWorksheetMergeCommand=Qi,e.RemoveWorksheetMergeMutation=I,e.ReorderRangeCommand=Xr,e.ReorderRangeMutation=Pe,e.ReorderRangeUndoMutationFactory=Ne,e.ResetBackgroundColorCommand=Oa,e.ResetTextColorCommand=Ea,e.SCOPE_WORKBOOK_VALUE_DEFINED_NAME=`AllDefaultWorkbook`,e.SELECTIONS_ENABLED=`SELECTIONS_ENABLED`,e.SELECTION_CONTROL_BORDER_BUFFER_COLOR=`rgba(255, 255, 255, 0.01)`,e.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=1.5,e.SHEETS_PLUGIN_CONFIG_KEY=Xo,e.ScrollToCellOperation=Ql,e.SelectRangeCommand=Yn,e.SelectionMoveType=V,e.SetBackgroundColorCommand=Da,e.SetBoldCommand=va,e.SetBorderBasicCommand=Ns,e.SetBorderColorCommand=Ms,e.SetBorderCommand=ks,e.SetBorderPositionCommand=As,e.SetBorderStyleCommand=js,e.SetColDataCommand=Ps,e.SetColDataMutation=Re,e.SetColDataMutationFactory=Le,e.SetColHiddenCommand=Ls,e.SetColHiddenMutation=Be,e.SetColVisibleMutation=He,e.SetColWidthCommand=dc,e.SetDefinedNameCommand=Vs,e.SetFontFamilyCommand=Ca,e.SetFontSizeCommand=wa,e.SetFrozenCommand=Ws,e.SetFrozenMutation=Us,e.SetFrozenMutationFactory=Hs,e.SetGridlinesColorCommand=Ks,e.SetGridlinesColorMutation=Ue,e.SetHorizontalTextAlignCommand=Aa,e.SetItalicCommand=ya,e.SetNumfmtMutation=Ll,e.SetOverlineCommand=Sa,e.SetProtectionCommand=Ys,e.SetRangeCustomMetadataCommand=Xs,e.SetRangeProtectionMutation=X,e.SetRangeThemeMutation=Yl,e.SetRangeValuesCommand=nr,e.SetRangeValuesMutation=R,e.SetRangeValuesUndoMutationFactory=L,e.SetRowDataCommand=Zs,e.SetRowDataMutation=vt,e.SetRowDataMutationFactory=_t,e.SetRowHeightCommand=jl,e.SetRowHiddenCommand=ec,e.SetRowHiddenMutation=St,e.SetRowVisibleMutation=bt,e.SetSelectedColsVisibleCommand=Is,e.SetSelectedRowsVisibleCommand=$s,e.SetSelectionsOperation=W,e.SetSpecificColsVisibleCommand=Fs,e.SetSpecificRowsVisibleCommand=Qs,e.SetStrikeThroughCommand=xa,e.SetStyleCommand=q,e.SetTabColorCommand=oc,e.SetTabColorMutation=ac,e.SetTextColorCommand=Ta,e.SetTextRotationCommand=Ma,e.SetTextWrapCommand=ja,e.SetUnderlineCommand=ba,e.SetVerticalTextAlignCommand=ka,e.SetWorkbookNameCommand=cc,e.SetWorkbookNameMutation=sc,e.SetWorksheetActivateCommand=lc,e.SetWorksheetActiveOperation=Rt,e.SetWorksheetColWidthMutation=wt,e.SetWorksheetColWidthMutationFactory=Ct,e.SetWorksheetColumnCountCommand=pc,e.SetWorksheetColumnCountMutation=Et,e.SetWorksheetColumnCountUndoMutationFactory=Tt,e.SetWorksheetDefaultStyleCommand=mc,e.SetWorksheetDefaultStyleMutation=Dt,e.SetWorksheetDefaultStyleMutationFactory=Ot,e.SetWorksheetHideCommand=_c,e.SetWorksheetHideMutation=gc,e.SetWorksheetNameCommand=bc,e.SetWorksheetNameMutation=yc,e.SetWorksheetOrderCommand=Cc,e.SetWorksheetOrderMutation=Sc,e.SetWorksheetPermissionPointsCommand=wl,e.SetWorksheetPermissionPointsMutation=Cl,e.SetWorksheetProtectionCommand=Tl,e.SetWorksheetProtectionMutation=Js,e.SetWorksheetRangeThemeStyleCommand=ha,e.SetWorksheetRangeThemeStyleMutation=_e,e.SetWorksheetRangeThemeStyleMutationFactory=ve,e.SetWorksheetRightToLeftCommand=Ol,e.SetWorksheetRightToLeftMutation=Dl,e.SetWorksheetRowAutoHeightMutation=It,e.SetWorksheetRowAutoHeightMutationFactory=Nt,e.SetWorksheetRowCountCommand=kl,e.SetWorksheetRowCountMutation=At,e.SetWorksheetRowCountUndoMutationFactory=kt,e.SetWorksheetRowHeightMutation=Pt,e.SetWorksheetRowHeightMutationFactory=jt,e.SetWorksheetRowIsAutoHeightCommand=Ml,e.SetWorksheetRowIsAutoHeightMutation=Ft,e.SetWorksheetRowIsAutoHeightMutationFactory=Mt,e.SetWorksheetShowCommand=Nl,e.SheetCopyDownCommand=Ko,e.SheetCopyRightCommand=qo,Object.defineProperty(e,`SheetInterceptorService`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(e,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return $o}}),Object.defineProperty(e,`SheetPermissionCheckController`,{enumerable:!0,get:function(){return du}}),Object.defineProperty(e,`SheetPermissionInitController`,{enumerable:!0,get:function(){return pu}}),Object.defineProperty(e,`SheetRangeThemeModel`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,`SheetRangeThemeService`,{enumerable:!0,get:function(){return Mu}}),e.SheetSkeletonChangeType=z,Object.defineProperty(e,`SheetSkeletonService`,{enumerable:!0,get:function(){return Gr}}),e.SheetValueChangeType=zt,Object.defineProperty(e,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return uu}}),Object.defineProperty(e,`SheetsSelectionsService`,{enumerable:!0,get:function(){return H}}),e.SplitDelimiterEnum=un,e.SplitTextToColumnsCommand=Pl,e.TextToNumberCommand=Vl,e.ToggleCellCheckboxCommand=Hl,e.ToggleGridlinesCommand=Ul,e.ToggleGridlinesMutation=Lt,Object.defineProperty(e,`UnitAction`,{enumerable:!0,get:function(){return a.UnitAction}}),Object.defineProperty(e,`UnitObject`,{enumerable:!0,get:function(){return a.UnitObject}}),Object.defineProperty(e,`UniverSheetsPlugin`,{enumerable:!0,get:function(){return Nu}}),e.UnregisterWorksheetRangeThemeStyleCommand=Wl,e.UnregisterWorksheetRangeThemeStyleMutation=gs,e.VALIDATE_CELL=k,e.ViewStateEnum=Dn,e.WorkbookCommentPermission=jc,e.WorkbookCopyPermission=Mc,e.WorkbookCopySheetPermission=Nc,e.WorkbookCreateProtectPermission=Pc,e.WorkbookCreateSheetPermission=Fc,e.WorkbookDeleteColumnPermission=Ic,e.WorkbookDeleteRowPermission=Lc,e.WorkbookDeleteSheetPermission=Rc,e.WorkbookDuplicatePermission=zc,e.WorkbookEditablePermission=Q,e.WorkbookExportPermission=Bc,e.WorkbookHideSheetPermission=Vc,e.WorkbookInsertColumnPermission=Hc,e.WorkbookInsertRowPermission=Uc,e.WorkbookManageCollaboratorPermission=Wc,e.WorkbookMoveSheetPermission=Gc,Object.defineProperty(e,`WorkbookPermissionService`,{enumerable:!0,get:function(){return fu}}),e.WorkbookPrintPermission=Kc,e.WorkbookRecoverHistoryPermission=qc,e.WorkbookRenameSheetPermission=Jc,e.WorkbookSelectionModel=Pn,e.WorkbookSharePermission=Yc,e.WorkbookViewHistoryPermission=Zc,e.WorkbookViewPermission=Xc,e.WorksheetCopyPermission=Qc,e.WorksheetDeleteColumnPermission=$c,e.WorksheetDeleteProtectionPermission=el,e.WorksheetDeleteRowPermission=tl,e.WorksheetEditExtraObjectPermission=nl,e.WorksheetEditPermission=$,e.WorksheetFilterPermission=rl,e.WorksheetInsertColumnPermission=il,e.WorksheetInsertHyperlinkPermission=al,e.WorksheetInsertRowPermission=ol,e.WorksheetManageCollaboratorPermission=sl,Object.defineProperty(e,`WorksheetPermissionService`,{enumerable:!0,get:function(){return Sl}}),e.WorksheetPivotTablePermission=cl,e.WorksheetProtectionPointModel=wc,e.WorksheetProtectionRuleModel=da,e.WorksheetSelectProtectedCellsPermission=ll,e.WorksheetSelectUnProtectedCellsPermission=ul,e.WorksheetSetCellStylePermission=dl,e.WorksheetSetCellValuePermission=fl,e.WorksheetSetColumnStylePermission=pl,e.WorksheetSetRowStylePermission=ml,e.WorksheetSortPermission=hl,e.WorksheetViewPermission=gl,Object.defineProperty(e,`ZebraCrossingCacheController`,{enumerable:!0,get:function(){return mu}}),e.addMergeCellsUtil=la,e.adjustRangeOnMutation=ji,e.alignToMergedCellsBorders=Rn,e.attachPrimaryWithCoord=Gu,e.attachRangeWithCoord=Uu,e.attachSelectionWithCoord=Wu,e.baseProtectionActions=kc,e.checkCellValueType=d,e.checkRangesEditablePermission=Fu,e.convertPositionCellToSheetOverGrid=qu,e.convertPositionSheetOverGridToAbsolute=Ku,e.convertPrimaryWithCoordToPrimary=ln,e.convertSelectionDataToRange=cn,e.copyRangeStyles=Gn,e.countCells=Jr,e.createTopMatrixFromMatrix=tn,e.createTopMatrixFromRanges=en,e.defaultLargeSheetOperationConfig=Zo,e.defaultWorkbookPermissionPoints=vl,e.defaultWorksheetPermissionPoint=xl,e.discreteRangeToRange=wn,e.expandToContinuousRange=$t,e.factoryRemoveNumfmtUndoMutation=zl,e.factorySetNumfmtUndoMutation=Il,e.findAllRectangle=an,e.findFirstNonEmptyCell=bn,e.followSelectionOperation=Vn,e.generateNullCell=xn,e.generateNullCellValue=Sn,e.getAddMergeMutationRangeByType=Gi,e.getAllRangePermissionPoint=Oc,e.getAllWorkbookPermissionPoint=_l,e.getAllWorksheetPermissionPoint=yl,e.getAllWorksheetPermissionPointByPointPanel=bl,e.getCellAtRowCol=zn,e.getClearContentMutationParamForRange=ia,e.getClearContentMutationParamsForRanges=ra,e.getDefaultRangePermission=Ac,e.getInsertRangeMutations=rr,e.getMoveRangeCommandMutations=$n,e.getMoveRangeUndoRedoMutations=er,e.getNextPrimaryCell=Hu,e.getPrimaryForRange=U,e.getRemoveRangeMutations=ir,e.getSelectionsService=Jn,e.getSeparateEffectedRangesOnCommand=Pi,e.getSheetCommandTarget=p,e.getSheetCommandTargetWorkbook=f,e.getSheetMutationTarget=m,e.getSkeletonChangedEffectedRange=Ut,e.getValueChangedEffectedRange=Ht,e.getVisibleRanges=En,e.handleBaseInsertRange=di,e.handleBaseMoveRowsCols=$r,e.handleBaseRemoveRange=si,e.handleCommonDefaultRangeChangeWithEffectRefCommands=ki,e.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=Ai,e.handleDefaultRangeChangeWithEffectRefCommands=Di,e.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Oi,e.handleDeleteRangeMoveLeft=yi,e.handleDeleteRangeMoveUp=xi,e.handleDeleteRangeMutation=or,e.handleIRemoveCol=ci,e.handleIRemoveRow=li,e.handleInsertCol=mi,e.handleInsertRangeMoveDown=hi,e.handleInsertRangeMoveRight=_i,e.handleInsertRangeMutation=ar,e.handleInsertRow=pi,e.handleMoveCols=ri,e.handleMoveRange=ai,e.handleMoveRows=ei,e.isSingleCellSelection=Hn,e.rangeMerge=on,e.rangeToDiscreteRange=Tn,e.rotateRange=Qr,e.runRefRangeMutations=Ei,e.setEndForRange=Bn,e.splitRangeText=gn,e.transformCellsToRange=Bl,e.validateDefinedName=Wt});