@univerjs/sheets 0.22.1 → 0.23.0-insiders.20260522-e8f2a3b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -41
- package/lib/cjs/index.js +55 -22
- package/lib/es/facade.js +2 -42
- package/lib/es/index.js +55 -22
- package/lib/facade.js +2 -42
- package/lib/index.js +55 -22
- package/lib/types/facade/f-worksheet.d.ts +3 -24
- package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +4 -2
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +8 -8
- package/LICENSE +0 -176
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-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}},P={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}},Se=(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}},F={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}},Ce={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 we(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 Te={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 Ee(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 De={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}},Oe=(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}},I={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}},ke=(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}},L={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}},R=(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}},z={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}},Ae=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},je={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 Me(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 Ne(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 Pe=(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]=Ne(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Fe={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}},Ie=(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}},Le={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}},Re=(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}},ze={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}},Be={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 Ve(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function He(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function Ue(e,t,n){if(e==null)return e;if(!Ve(e))return;let r={},i=!1;if(He(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 We(e,t,n){if(e==null)return e;if(!Ve(e))return;let r={},i=!1;return He(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Ge(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 Ke(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function qe(e){return Ue(e,t.COLOR_STYLE_KEYS)}function Je(e){return Ue(e,t.TEXT_DECORATION_KEYS,{cl:qe})}function Ye(e){return Ue(e,t.BORDER_STYLE_KEYS,{cl:qe})}function Xe(e){return We(e,t.BORDER_KEYS,Ye)}function Ze(e){return Ue(e,t.TEXT_ROTATION_KEYS)}function Qe(e){return Ue(e,t.PADDING_KEYS)}function $e(e){if(e==null)return e;if(!(!Ve(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function et(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return Je(t);case`bg`:case`cl`:return qe(t);case`bd`:return Xe(t);case`tr`:return Ze(t);case`pd`:return Qe(t);case`n`:return $e(t);default:return Ke(t)?t:void 0}}function tt(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=t.Tools.isObject(e)?{...e}:{};return He(r,t.BORDER_KEYS,(e,t)=>{let n=Ye(t);n!==void 0&&(i[e]=n)}),i}function nt(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=at(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:st(n.p,r.s?r.s:null)}}function rt(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=et(e,i[e]);t!==void 0&&(e===`bd`?r[e]=it(r[e]||{},t):e in r||(r[e]=null))}return r}function it(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 at(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&&Ge(e))continue;let t=et(e,a[e]);t!==void 0&&(e===`bd`?i[e]=tt(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 ot(e,t){return e.some(e=>e.startIndex===t)?ot(e,t+1):t}function st(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=at({},n,!0);o&&t.Tools.removeNull(o),t.Tools.isEmptyObject(o)||(r.ts=o),a.push(r)}let l=at(c,n,!0);l&&t.Tools.removeNull(l),t.Tools.isEmptyObject(l)?delete r.ts:r.ts=l,a.push(r),i=ot(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=at({},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 ct(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?+!!lt(n.v):e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function lt(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 ut(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 B=(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=rt(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(e,n,ut(i))}),{...n,options:{},cellValue:u.getMatrix()}},V={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=ft(r,i,l),t.Tools.isEmptyObject(i)?c.realDeleteValue(e,n):c.setValue(e,n,i)}}),!0}},dt=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function ft(e,t,n){let r=c(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(dt.has(a)){let n=e[a];pt(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=ct(r,e)):a===`s`&&nt(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=ct(r,t)),t.v===null&&(delete t.t,delete t.v),t}function pt(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let mt=(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]=Me(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},ht={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}},gt=(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}},_t={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}},vt=(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}},yt={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}},bt=(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}},xt={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}},St=(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()}},Ct={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}},wt={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}},Tt=(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()}},Et=(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()}},Dt={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}},Ot=(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}},kt=(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}},At=(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}},jt={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}},Mt={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}},Nt={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}},Pt={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}},Ft={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}},It=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}({}),Lt=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}({}),Rt=[jt.id,Mt.id,Nt.id,xt.id,Ft.id,Te.id,De.id,Le.id,ze.id,yt.id,_t.id,F.id,P.id,L.id,I.id,Pt.id,Be.id,Dt.id,Ct.id],zt=[V.id,Ce.id,z.id,g.id,je.id,wt.id,ht.id,Fe.id,_e.id,ye.id];function Bt(e,n){switch(n.id){case`sheet.mutation.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`sheet.mutation.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`sheet.mutation.remove-worksheet-merge`:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case`sheet.mutation.add-worksheet-merge`:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case`sheet.mutation.reorder-range`:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case`sheet.mutation.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`sheet.mutation.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`sheet.mutation.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`sheet.mutation.set-worksheet-range-theme-style`:case`sheet.mutation.delete-worksheet-range-theme-style`:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function Vt(e,n){switch(e.id){case`sheet.mutation.set-worksheet-row-height`:case`sheet.mutation.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`sheet.mutation.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`sheet.mutation.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`sheet.mutation.move-rows`:case`sheet.mutation.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`sheet.mutation.set-col-hidden`:case`sheet.mutation.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`sheet.mutation.set-row-hidden`:case`sheet.mutation.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`sheet.mutation.insert-col`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case`sheet.mutation.insert-row`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case`sheet.mutation.remove-col`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case`sheet.mutation.remove-rows`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case`sheet.mutation.toggle-gridlines`:case`sheet.mutation.set-gridlines-color`:return[];default:return[]}}function Ht(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 Ut(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Wt(e,t){return e&&e.spanAnchor?Ut(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Ut(e)}function Gt(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 Kt(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||Wt(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 qt(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||Wt(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 Jt(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||Wt(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 Yt(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||Wt(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 Xt({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);Wt(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);Wt(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);Wt(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);Wt(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 Zt(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Gt(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=Xt({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}=Jt(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}=Yt(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}=Kt(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}=qt(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 Qt=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},$t=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},en=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},tn=(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},nn=e=>{let t=[],n=en(e);for(;n.area>0;)n.range&&(t.push(n.range),tn(e,n.range)),n=en(e);return t},rn=e=>nn(Qt(e));var an=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 nn($t(this._matrix))}};function on(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=sn(n)),i}function sn(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 cn=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 ln=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?1:e===this._commaCount?2:e===this._semicolonCount?4:e===this._spaceCount?8:1}};function un(e,t,n){let r=[];n!==void 0&&(e&16)>0&&r.push(n),(e&1)>0&&r.push(` `),(e&2)>0&&r.push(`,`),(e&4)>0&&r.push(`;`),(e&8)>0&&r.push(` `);let i=``;for(let e of r)i+=dn(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function dn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}let fn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function pn(e){if(e!=null){if(e.p)return fn(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 mn(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&16)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new ln:null,f=[];for(let t=s;t<=l;t++){let n=pn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=un(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 hn=(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)},{}),gn=(e=0)=>{let t=e;return function(){return t++}};function _n(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function vn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(_n(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function yn(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 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,{v:null,p:null,f:null,si:null,custom: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,{s:null})}),n.clone()}function Sn(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 Cn(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 wn(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 Tn=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),En=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var H=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 Dn=(e,t)=>{let n=e.get(H),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:An.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},On={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(H);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},kn=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:On.id,params:t}},An={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(H);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},jn={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(H),{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(An.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:An.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:On.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Mn=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 0:this._selectionMoveStart$.next(t);break;case 1:this._selectionMoving$.next(t);break;case 2:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case 3: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 U=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((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,n.of)()),(0,n.takeUntil)(this.dispose$)),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,n.of)()),(0,n.takeUntil)(this.dispose$)),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,n.of)([])),(0,n.takeUntil)(this.dispose$)),this.selectionSet$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,n.of)([])),(0,n.takeUntil)(this.dispose$)),this.selectionChanged$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,n.of)([])),(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),(0,n.takeUntil)(this.dispose$),(0,n.share)()),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?3: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?3: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}}};U=E([T(0,t.IUniverInstanceService)],U);let Pn=`REF_SELECTIONS_ENABLED`,Fn=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())}};Fn=E([T(0,(0,t.Inject)(t.Injector)),T(1,(0,t.Inject)(t.IUniverInstanceService))],Fn);function In(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 Ln(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 Rn(e){let t=0;return e.forEach(()=>{t++}),t}let zn={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(U),{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(Fn).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(A),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:yn(wn(c,e,o,s))},_=B(e,g);m.push({id:V.id,params:g}),h.push({id:V.id,params:_});let v=f.onCommandExecute({id:zn.id,params:n});m.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(m,u),{suitableRanges:b,remainingRanges:x}=Ln(c,l),{undos:S,redos:C}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:s,ranges:b,autoHeightRanges:b,lazyAutoHeightRanges:x}),w=(0,t.sequenceExecute)(C,u);return y.result&&w.result?(m.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},Bn={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(U),{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(Fn).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(A),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:xn(wn(c,e,o,s))},_=B(e,g);m.push({id:V.id,params:g}),h.push({id:V.id,params:_});let v=f.onCommandExecute({id:Bn.id,params:n});m.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(m,u),{suitableRanges:b,remainingRanges:x}=Ln(c,l),{undos:S,redos:C}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:s,ranges:b,autoHeightRanges:b,lazyAutoHeightRanges:x}),w=(0,t.sequenceExecute)(C,u);return y.result&&w.result?(m.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}};function Vn(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?Vn(o,n,r):o}function Hn(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 Un(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 W(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 Wn=(e,t,n)=>({id:G.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:W(e,n)}]}});function Gn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Kn(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 qn=e=>e.id!==y;function Jn(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,qn):e.getCellWithFilteredInterceptors(t,s,b,qn);!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 Yn=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),Xn=class extends U{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()))))}};Xn=E([T(0,t.IUniverInstanceService)],Xn);function Zn(e,n){let r=e.get(t.IContextService).getContextValue(Pn);return e.get(r&&!n?Yn:U)}let G={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 Zn(e).setSelections(i,a,[...n],r),!0}},Qn={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:W(a,s.worksheet),style:null}];return o.syncExecuteCommand(G.id,{unitId:r,subUnitId:i,selections:c})}},$n=`sheet.command.move-range`,er={type:t.CommandType.COMMAND,id:$n,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:er.id,params:n}))return!1;let s=nr(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 tr(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 nr(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=tr(e,t);if(!c)return null;let l=e.get(A),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=rr(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:er.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:G.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:ir(t.fromRange,t.toRange,p,m)}],type:2}}),y.push({id:G.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:W(t.fromRange,p)}],type:2}})),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 rr(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=Vn(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:Ce.id,params:b}],undos:[{id:Ce.id,params:x}]}}function ir(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=W(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 ar={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(U).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=B(e,x),C=(0,t.mapObjectMatrix)(x.cellValue,(e,t)=>v.getCellHeight(e,t)||void 0);if(!d.syncExecuteCommand(V.id,x))return!1;let{undos:w,redos:T}=m.onCommandExecute({id:ar.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:V.id,params:x},...T,...D,Wn(u[u.length-1],_,v)],t=[{id:V.id,params:S},...w,...E];return o&&o.length&&t.push(Wn(o[o.length-1],_,v)),f.pushUndoRedo({unitID:g,undoMutations:t,redoMutations:e,id:l}),!0}return!1}};function or(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=rr(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=B(e,f),{undos:h,redos:g}=d.onCommandExecute({id:ar.id,params:{...f,range:s}});r.push({id:V.id,params:f},...g),i.push({id:V.id,params:m},...h)}return{redo:r,undo:i}}function sr(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:yn([s])},p=B(e,d),m=u.onCommandExecute({id:ar.id,params:d});if(r.push({id:V.id,params:d},...m.redos),i.push(...m.undos,{id:V.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=rr(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 cr(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 lr(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 ur=`sheet.command.delete-range-move-left`,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(U),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:dr.id,params:{range:g}}),{redo:b,undo:x}=sr(e,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(Wn(g,f,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,t.sequenceExecute)(S,a).result){let e=l.afterCommandExecute({id:dr.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}},fr=`sheet.command.delete-range-move-up`,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(U),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:pr.id,params:{range:g}}),{redo:y,undo:b}=sr(e,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Wn(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,t.sequenceExecute)(x,a).result){let e=l.afterCommandExecute({id:pr.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}},mr=`sheet.command.insert-range-move-down`,hr={type:t.CommandType.COMMAND,id:mr,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(U),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:P.id,params:i});let a=xe(e,i);x.push({id:I.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}=or(e,{range:v,subUnitId:h,unitId:m,shiftDimension:t.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:hr.id,params:{range:v}});if(b.push(...k.redos),b.push(Wn(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).result){let e=l.afterCommandExecute({id:hr.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}},gr=`sheet.command.insert-range-move-right`,_r={type:t.CommandType.COMMAND,id:gr,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(U),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:F.id,params:i});let a=Se(e,i);x.push({id:L.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}=or(e,{range:v,subUnitId:_,unitId:g,shiftDimension:t.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:_r.id,params:{range:v}});if(b.push(...k.redos),b.push(Wn(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:_r.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}},vr=`sheet.command.insert-row`,yr={type:t.CommandType.COMMAND,id:vr,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:yr.id,params:n})?r.syncExecuteCommand(br.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},br={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:P.id,params:S}],E=[{id:I.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:yr.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Wn(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:yr.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}},xr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(U).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:Jn(s,d,f,0,m,!0,d-1)};return e.get(t.ICommandService).executeCommand(yr.id,h)}},Sr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(U).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:Jn(o,u,d,0,f,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(yr.id,m)}},Cr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(U).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=Jn(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(yr.id,g)}},wr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(U).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:Jn(s,d,f,0,m,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(yr.id,h)}},Tr=`sheet.command.insert-col`,Er={type:t.CommandType.COMMAND,id:Tr,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:Er.id,params:n})?r.syncExecuteCommand(Dr.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},Dr={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=Se(e,S),T=[{id:F.id,params:S}],E=[{id:L.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:Er.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Wn(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:Er.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}},Or={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(U).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:Jn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Er.id,m)}},kr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(U).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:Jn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(Er.id,f)}},Ar={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(U).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:Jn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Er.id,m)}},jr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(U).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:Jn(o,0,f,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(Er.id,m)}},Mr=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Wn(e,t,n);r.executeCommand(i.id,i.params)}},300),Nr=`sheet.command.remove-row`,Pr={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=wn([c],e,l,u).reverse(),f=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=Oe(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:I.id,params:r}),t.push({id:P.id,params:i}),t.push({id:V.id,params:a}),m.push(...n),f.unshift(...t)});let h=s.onCommandExecute({id:Nr,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;Mr(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?[]:_,...f,...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,...m,...h.redos,...n.redos]}),!0}return!1}},Fr={type:t.CommandType.COMMAND,id:Nr,handler:async(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=e.get(U),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:Fr.id,params:{range:o}})?c.syncExecuteCommand(Pr.id,{range:o,unitId:u,subUnitId:d}):!1}},Ir=`sheet.command.remove-col`,Lr={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=ke(e,d),m={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(0,o.getRowCount()-1,c.startColumn,c.endColumn).getMatrix()},h=s.onCommandExecute({id:Ir,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:L.id,params:d},...h.redos],g).result){var _,v;Mr(c,a,o,g);let n=s.afterCommandExecute({id:Ir,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:F.id,params:f},{id:V.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:L.id,params:d},...h.redos,...n.redos]}),!0}return!1}},Rr={type:t.CommandType.COMMAND,id:Ir,handler:async(e,n)=>{var r;let i=e.get(U),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:Rr.id,params:{range:s}})?o.syncExecuteCommand(Lr.id,{range:s,unitId:d,subUnitId:u}):!1}},zr=(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}},Br={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 Vr(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function Hr(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let Ur=`sheet.command.move-rows`,Wr={id:Ur,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[qr(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=Vn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Vr(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=we(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Wr.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:Te.id,params:w}],k=[...(i=D.preUndos)==null?[]:i,{id:Te.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:2,selections:[{range:n,primary:W(n,h),style:null}]},i={unitId:g,subUnitId:_,type:2,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:r}),k.push({id:G.id,params:i})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Wr.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}},Gr=`sheet.command.move-cols`,Kr={id:Gr,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[qr(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=Vn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Hr(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=Ee(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Kr.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=b.endColumn-b.startColumn+1,t=s-o<0?C:{...C,startColumn:C.startColumn-e,endColumn:C.endColumn-e},n={unitId:g,subUnitId:_,type:2,selections:[{range:t,primary:W(t,h),style:null}]},r={unitId:g,subUnitId:_,type:2,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:n}),k.push({id:G.id,params:r})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Kr.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 qr(e){return{range:e,primary:null,style:null}}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:je.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:je.id,params:Ae(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}=Ln([s],e.get(Fn).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}},K={MoveRangeCommandId:$n,InsertRowCommandId:vr,InsertColCommandId:Tr,RemoveColCommandId:Ir,RemoveRowCommandId:Nr,DeleteRangeMoveLeftCommandId:ur,DeleteRangeMoveUpCommandId:fr,InsertRangeMoveDownCommandId:mr,InsertRangeMoveRightCommandId:gr,MoveColsCommandId:Gr,MoveRowsCommandId:Ur,ReorderRangeCommandId:Jr},Xr=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:1}]:[{type:3,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:1}]:[{type:2,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:1}),t.Rectangle.contains(o,n)){s.push({type:1});let e=t.Rectangle.getRelativeRange(n,o);return[{type:0,range:t.Rectangle.getPositionRange(e,a)}]}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:1});else{let{step:e,length:t}=a;i.push({type:2,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:1});else{let{step:e,length:t}=n;a.push({type:3,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:3,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:1}),t.Rectangle.contains(e,r)){i.push({type:1});let a=t.Rectangle.getRelativeRange(r,e);return[{type:0,range:t.Rectangle.getPositionRange(a,n)}]}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:3,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:2,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:3,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:2,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:1});else{let{step:e,length:t}=a;i.push({type:2,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:1});else{let{step:e,length:t}=a;i.push({type:3,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 1:n=null;break;case 2:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case 3:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case 0:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Di=(e,t)=>{let n=[];switch(t.id){case K.DeleteRangeMoveLeftCommandId:n=yi(t,e);break;case K.DeleteRangeMoveUpCommandId:n=xi(t,e);break;case K.InsertColCommandId:n=mi(t,e);break;case K.InsertRangeMoveDownCommandId:n=hi(t,e);break;case K.InsertRangeMoveRightCommandId:n=_i(t,e);break;case K.InsertRowCommandId:n=pi(t,e);break;case K.MoveColsCommandId:n=ri(t,e);break;case K.MoveRangeCommandId:n=ai(t,e);break;case K.MoveRowsCommandId:n=ei(t,e);break;case K.RemoveColCommandId:n=ci(t,e);break;case K.RemoveRowCommandId:n=li(t,e);break;case K.ReorderRangeCommandId:n=ui(t,e);break}return Ei(n,e)},Oi=(e,n,r)=>[dr.id,pr.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 K.DeleteRangeMoveLeftCommandId:return bi(t,e);case K.DeleteRangeMoveUpCommandId:return Si(t,e);case K.InsertRangeMoveDownCommandId:return gi(t,e);case K.InsertRangeMoveRightCommandId:return vi(t,e);case K.InsertColCommandId:return Ti(t,e);case K.InsertRowCommandId:return wi(t,e);case K.MoveColsCommandId:return ii(t,e);case K.MoveRangeCommandId:return oi(t,e);case K.MoveRowsCommandId:return ti(t,e);case K.ReorderRangeCommandId:return ni(t,e);case K.RemoveColCommandId:n=ci(t,e);break;case K.RemoveRowCommandId:return Ci(t.params,e)}let r=Ei(n,e);return r?[r]:[]},Ai=(e,n,r)=>[dr.id,pr.id,hr.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:4};switch(r){case Br.id:a.type=1;break;case Te.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=3;break;case De.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=2;break;case L.id:a=si(i.range,e),a?a.type=2:a={step:0,length:0,type:1};break;case I.id:a=si(Qr(i.range),Qr(e)),a?a.type=3:a={step:0,length:0,type:1};break;case P.id:a=di(Qr(i.range),Qr(e)),a.type=3;break;case F.id:a=di(i.range,e),a.type=2;break;case Ce.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 K.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case K.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case K.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case K.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case K.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case K.RemoveRowCommandId:return[e.params.range];case K.RemoveColCommandId:return[e.params.range];case K.DeleteRangeMoveUpCommandId:case K.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 K.DeleteRangeMoveLeftCommandId:case K.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 K.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 De.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case Te.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Ce.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case F.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case P.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case L.id:return[e.params.range];case I.id:return[e.params.range];default:break}}function Pi(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case K.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 K.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 K.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 K.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 K.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 K.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 K.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 K.DeleteRangeMoveUpCommandId:case K.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 K.DeleteRangeMoveLeftCommandId:case K.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 K.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===Ce.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===Br.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 K.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 K.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 K.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 K.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 K.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 K.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 K.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 K.DeleteRangeMoveUpCommandId:case K.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 K.DeleteRangeMoveLeftCommandId:case K.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 K.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)(U))],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=[F.id,P.id,L.id,I.id],Wi=[Te.id,De.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 zn.id:case Bn.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=R(e._injector,t);return{redos:[{id:z.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:z.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 K.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case K.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case yr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case Er.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Rr.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case Fr.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case er.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case _r.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case hr.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case pr.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case dr.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===Ft.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:K.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:z.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:K.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:z.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:z.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:z.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:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:z.id,params:d},{id:g.id,params:p}],undos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:z.id,params:d},{id:g.id,params:p}],undos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:g.id,params:p}],preUndos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}],y=[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}],y=[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:g.id,params:p}],undos:[{id:g.id,params:f}],preUndos:[{id:z.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)(U))],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(U).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={unitId:s,subUnitId:c,type:3,selections:i.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null}))};return{id:G.id,params:h}}return null}return null},Zi=(e,t)=>{let n=e.get(U).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:3,selections:[...n]};return{id:G.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(U),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=R(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=B(e,b),S=[{id:z.id,params:h},{id:V.id,params:b},{id:G.id,params:{unitId:u,subUnitId:l,selections:y,type:3}}],C=[{id:g.id,params:h},{id:V.id,params:x},{id:G.id,params:{unitId:u,subUnitId:l,selections:v,type:3}}];return(0,t.sequenceExecute)(S,a).result?(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}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=B(e,s);i.push({id:V.id,params:c}),a.push({id:V.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=Gi(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=R(e,_),b=h(e,v);if(y.ranges.length>0&&f.push({id:z.id,params:y}),f.push({id:g.id,params:v}),m.push({id:z.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=Xi(e,n,u);x&&f.push(x);let S=Zi(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=la(`mergeAll`,(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{selections:r,unitId:o,subUnitId:s})}},oa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=la(`mergeVertical`,(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{value:t.Dimension.COLUMNS,selections:r,unitId:o,subUnitId:s})}},sa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=la(`mergeHorizontal`,(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{workbook:a,worksheet:o}=i,s=a.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{value:t.Dimension.ROWS,selections:r,unitId:s,subUnitId:c})}};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(Qi.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===`mergeAll`?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===`mergeVertical`?t.filter(e=>e.startRow!==e.endRow):e===`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=B(e,f),m=[{id:V.id,params:f}],h=[{id:V.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:P.id,params:t}),h.push({id:I.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=Se(e,t);m.unshift({id:F.id,params:t}),h.push({id:L.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(U),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=Kn(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(Fn).getSkeleton(a,o),y=B(e,_),b=null;if(ga.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=Ln(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:In(e,s)}}let x=u.syncExecuteCommand(V.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:V.id,params:y},...T,...C],redoMutations:[{id:V.id,params:_},...E,...w]}),!0):!1}},_a={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(U).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(U).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(U).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(U).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(U).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=[...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 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){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 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=e[e.length-1],o=Va(`${a==null?void 0:a.v}`);if(!o.isExtendNumber)return Ja(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(uo(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 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,s: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},ho=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),go=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}({}),_o=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:vo,fillChnNumber:yo,fillChnWeek:bo,fillCopy:xo,fillExtendNumber:So,fillLoopSeries:Co,fillSeries:wo,getLoopSeriesInfo:To,isChnNumber:Eo,isChnWeek2:Do,isChnWeek3:Oo,isEqualDiff:ko,isLoopSeries:Ao,matchExtendNumber:jo,reverseIfNeed:Mo}=mo,No={dateRule:{type:`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===`date`,applyFunctions:{SERIES:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),wo(i,n,r).reverse()):wo(i,n,r)}}},numberRule:{type:`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===`number`,applyFunctions:{SERIES:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),wo(i,n,r).reverse()):wo(i,n,r)}}},extendNumberRule:{type:`extendNumber`,priority:900,match:e=>jo(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===`extendNumber`){var n;let r=jo(`${(n=e.cellData)==null?void 0:n.v}`||``),i=jo(`${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:{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,Mo(So(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=jo(`${(c=i[e])==null?void 0:c.v}`);t.isExtendNumber&&s.push(t.matchNumber)}if(a&&(i.reverse(),s.reverse()),ko(s)){let e=i.length;return o=s[e-1]-s[e-2],Mo(So(i,n,o),a)}return xo(i,n)}}},chnNumberRule:{type:`chnNumber`,priority:830,match:e=>!!Eo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===`chnNumber`,applyFunctions:{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===`日`||vo(e)<7)?Mo(bo(i,n,t),a):Mo(yo(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&&vo(t)>0&&vo(t)<7?l.push(vo(t)+u*7):l.push(vo(t))}if(a&&(i.reverse(),l.reverse()),ko(l)){if(s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0){let e=i.length;return Mo(bo(i,n,l[e-1]-l[e-2]),a)}return Mo(yo(i,n,l[1]-l[0]),a)}return xo(i,n)}}},chnWeek2Rule:{type:`chnWeek2`,priority:820,match:e=>!!Do(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===`chnWeek2`,applyFunctions:{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,Mo(bo(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(vo(n)+s*7)}if(a&&(i.reverse(),o.reverse()),ko(o)){let e=i.length;return Mo(bo(i,n,o[e-1]-o[e-2],1),a)}return xo(i,n)}}},chnWeek3Rule:{type:`chnWeek3`,priority:810,match:e=>Oo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===`chnWeek3`,applyFunctions:{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,Mo(bo(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(vo(n)+s*7)}}if(a&&(i.reverse(),o.reverse()),ko(o)){let e=i.length;return Mo(bo(i,n,o[e-1]-o[e-2],2),a)}return xo(i,n)}}},loopSeriesRule:{type:`loopSeries`,priority:800,match:e=>Ao(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===`loopSeries`){var n;return To(`${(n=e.cellData)==null?void 0:n.v}`||``).name===To(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{SERIES:(e,n,r)=>{var i;let{data:a}=e,o=r===t.Direction.LEFT||r===t.Direction.UP,{series:s}=To(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,Mo(Co(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()),ko(c)){let e=a.length;return Mo(Co(a,n,c[e-1]-c[e-2],s),o)}return xo(a,n)}}},otherRule:{type:`other`,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===`other`}},{chnNumberRule:Po,chnWeek2Rule:Fo,chnWeek3Rule:Io,dateRule:Lo,extendNumberRule:Ro,loopSeriesRule:zo,numberRule:Bo,otherRule:Vo}=No,Ho=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(`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:`COPY`,disable:!1},{label:`autoFill.series`,value:`SERIES`,disable:!1},{label:`autoFill.formatOnly`,value:`ONLY_FORMAT`,disable:!1},{label:`autoFill.noFormat`,value:`NO_FORMAT`,disable:!1}])),w(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Lo,Bo,Ro,Po,Fo,Io,zo,Vo].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(Yo.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(Yo.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=>Cn(r,e)),u=this._injector.invoke(e=>Cn(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=`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===`ONLY`);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===`DEFAULT`)),s=i.filter(e=>e.type===`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(Sn(o),Sn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(G.id,{selections:[{primary:W({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===`NO_FORMAT`)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(e.forEach(e=>{if(e.id===V.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=At(s,r),l={id:Nt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Nt.id,params:c}]}:{undos:[],redos:[]}}};Ho=E([T(0,t.ICommandService),T(1,t.IUndoRedoService),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(t.Injector))],Ho);let Uo=(0,t.createIdentifier)(`univer.auto-fill-service`),Wo={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(Uo).triggerAutoFill(i,a,o,s,c)}};function Go(e,n){let r=e.get(U).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:`COPY`}:{sourceRange:{startRow:s,endRow:s,startColumn:l,endColumn:u},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:`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:`COPY`}:{sourceRange:{startRow:s,endRow:c,startColumn:l,endColumn:l},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:`COPY`}}async function Ko(e,n){let r=Go(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand(Wo.id,r);return i&&e.get(Uo).setShowMenu(!1),i}let qo={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>Ko(e,`down`)},Jo={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>Ko(e,`right`)},Yo={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(U),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:f,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:bn([u])},g=B(e,h),_=[{id:V.id,params:h},{id:G.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:V.id,params:g},{id:G.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i).result){let e=o.afterCommandExecute({id:V.id,params:h});return(0,t.sequenceExecute)(e.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...e.undos],redoMutations:[..._,...e.redos]}),!0}return!1}},Xo={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(U),{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(Fn).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(A),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:bn(wn(c,e,o,s))},_=B(e,g);m.push({id:V.id,params:g}),h.push({id:V.id,params:_});let v=f.onCommandExecute({id:Xo.id,params:n});m.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(m,u),{suitableRanges:b,remainingRanges:x}=Ln(c,l),{undos:S,redos:C}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:s,ranges:b,autoHeightRanges:b,lazyAutoHeightRanges:x}),w=(0,t.sequenceExecute)(C,u);return y.result&&w.result?(m.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},Zo=`sheets.config`;Symbol(Zo);let Qo={largeSheetCellCountThreshold:6e3,batchSize:3e3},$o={},es=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)}};es=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService)],es);let ts={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},ns=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),rs={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 is(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 as(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:V.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}let os=`sheet.command.copy-sheet`;function ss(e,n,r,i,a,o,s){var c,l;let u=e.get(t.IConfigService).getConfig(Zo),d={...Qo,...u==null?void 0:u.largeSheetOperation},f=(0,t.cloneWorksheetData)(r.getConfig());f.name=ls(n,o,f.name);let p=(0,t.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=is(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=as(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=ns(e,_),b=s.onCommandExecute({id:os,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:rs.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:Br.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}let cs={type:t.CommandType.COMMAND,id:os,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(es),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}=ss(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(ts.id,{unitId:f,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(f,_,y)}}else i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:h});return!0}return!1}};function ls(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 us={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(On.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:On.id,params:c}],undoMutations:[{id:An.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},ds={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}},fs={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}},ps={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}},ms={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=d==null?void 0:d.name,h=(0,t.mergeWorksheetSnapshotWithDefault)(d||{});if(n){var g;u=(g=n.index)==null?u:g,h.id=p||(0,t.generateRandomId)(),h.name=m?l.uniqueSheetName(m):l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else h.id=(0,t.generateRandomId)(),h.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let _={index:u,sheet:h,unitId:c},v=ns(e,_);return r.syncExecuteCommand(rs.id,_)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Br.id,params:v}],redoMutations:[{id:rs.id,params:_}]}),!0):!1}},hs={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(Uo).fillData(t.type)},gs={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}},_s={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}},vs={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(gs.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:_s.id,params:l}],redoMutations:[{id:gs.id,params:c}]}),!0}},ys={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:ys.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).result?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},bs={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(Zo),_={...Qo,...g==null?void 0:g.largeSheetOperation},v=Rn(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:f,unitId:d,subUnitName:h.getName()},b=v?null:zr(e,y),x=c.onCommandExecute({id:bs.id,params:{unitId:d,subUnitId:f}}),S=[...(r=x.preRedos)==null?[]:r,{id:Br.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:rs.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 xs=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 Ss(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 Cs=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||Ss(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}})}})},ws=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 Ts(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}=ws(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 Es=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&Ss(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&&Ss(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 Ds(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)=>{Cs(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 Os=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)=>{Cs(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))},ks=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)=>{Cs(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(Ss(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))},As={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(U),c=e.get(xs),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=Ts(c,l,u);Es(f),Os(f),Ds(f),ks(f);let{unitId:m,subUnitId:h,mr:g}=f,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=B(e,_);return i.syncExecuteCommand(V.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:V.id,params:v}],redoMutations:[{id:V.id,params:_}]}),!0):!1}},js={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(xs).setType(n.value),r.syncExecuteCommand(As.id)}},Ms={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(xs).setStyle(n.value),r.syncExecuteCommand(As.id)}},Ns={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(xs).setColor(n.value),r.syncExecuteCommand(As.id)}},Ps={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(xs);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(As.id,{unitId:r,subUnitId:i,ranges:o})}},Fs={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=Pe(u,l);return r.syncExecuteCommand(Fe.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Fe.id,params:d}],redoMutations:[{id:Fe.id,params:u}]}),!0):!1}},Is={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:W(e,l),style:null}))},f=Re(e,u),m={unitId:r,subUnitId:i,selections:Bs(a).map(e=>({range:e,primary:W(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:ze.id,params:u},{id:G.id,params:d}],s),g=o.onCommandExecute({id:Is.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:Is.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Le.id,params:f},{id:G.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:ze.id,params:u},{id:G.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Ls={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var n;let r=e.get(U),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(Is.id,{unitId:c,subUnitId:l,ranges:u})}},Rs={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r,i;let a=e.get(U),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=zs(u.worksheet,l);let h={unitId:f,subUnitId:m,ranges:l},g={unitId:f,subUnitId:m,selections:Bs(l).map(e=>({range:e,primary:W(e,d),style:null}))},_=Ie(e,h),v={unitId:f,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:W(e,d),style:null}))},y=(0,t.sequenceExecute)([{id:Le.id,params:h},{id:G.id,params:g}],c),b=o.onCommandExecute({id:Rs.id,params:h}),x=(0,t.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:Rs.id,params:h});return(0,t.sequenceExecute)(n.redos,c),e.get(t.IUndoRedoService).pushUndoRedo({unitID:f,undoMutations:[{id:ze.id,params:_},{id:G.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Le.id,params:h},{id:G.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function zs(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 Bs(e){return Vs(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Vs(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 Hs={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:Hs.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).result?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Us=(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}},Ws={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}},Gs={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=Us(e,m);return r.syncExecuteCommand(Ws.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Ws.id,params:h}],redoMutations:[{id:Ws.id,params:m}]}),!0):!1}},Ks={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=Us(e,l);return r.syncExecuteCommand(Ws.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:Ws.id,params:u}],redoMutations:[{id:Ws.id,params:l}]}),!0}},qs={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(Be.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Be.id,params:d}],redoMutations:[{id:Be.id,params:u}]}),!0):!1}},J={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(H).setRule(n,r,a,i),!0}},Js=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(H).getRule(n,r,i);return a?{id:J.id,params:{...t,rule:a}}:null},Ys={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}},Xs={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(H),{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:Ys.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:Ys.id,params:{unitId:l,subUnitId:u,rule:c}})):(d.push({id:J.id,params:{unitId:l,subUnitId:u,rule:s,ruleId:s.id}}),f.push({id:J.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:On.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:An.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:An.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:On.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,t.sequenceExecute)(d,r).result&&i.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},Zs={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(V.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},Qs={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=mt(u,l);return r.syncExecuteCommand(ht.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:ht.id,params:d}],redoMutations:[{id:ht.id,params:u}]}),!0):!1}},$s={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:W(e,u),style:null}))},m=gt(e,d),h={unitId:r,subUnitId:i,selections:rc(a).map(e=>({range:e,primary:W(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:_t.id,params:d},{id:G.id,params:f}],o),_=c.onCommandExecute({id:$s.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let e=c.afterCommandExecute({id:$s.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:yt.id,params:m},{id:G.id,params:h},...(b=_.undos)==null?[]:b,...e.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:_t.id,params:d},{id:G.id,params:f},..._.redos,...e.redos]}),!0}return!0}},ec={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var n;let r=e.get(U),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($s.id,{unitId:l,subUnitId:u,ranges:d})}},tc={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r,i,a;let o=e.get(U),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=nc(f.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=f,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:rc(d).map(e=>({range:e,primary:W(e,g),style:null}))},y=vt(e,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:W(e,g),style:null}))},x=u.onCommandExecute({id:tc.id,params:_});if((0,t.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:yt.id,params:_},{id:G.id,params:v},...x.redos],s).result){var S,C,w;let e=u.afterCommandExecute({id:tc.id,params:_});return(0,t.sequenceExecute)(e.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:_t.id,params:y},{id:G.id,params:b},...(C=x.undos)==null?[]:C,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:yt.id,params:_},{id:G.id,params:v},...x.redos,...e.redos]}),!0}return!0}};function nc(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 rc(e){return ic(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function ic(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 ac=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},oc={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}},sc={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=ac(e,c);return r.syncExecuteCommand(oc.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:oc.id,params:l}],redoMutations:[{id:oc.id,params:c}]}),!0):!1}},cc={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}},lc={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:lc.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:cc.id,params:s},...o.redos],i).result}},uc={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(Ft.id,{unitId:o,subUnitId:s},r))},4)})}},dc={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(U).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(Fn).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=Ln(_.ranges,v);In(y,s);let x=e.get(A),{undos:S,redos:C}=x.onCommandExecute({id:dc.id,params:_}),w=bt(_,s),T=i.syncExecuteCommand(xt.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:dc.id,params:_}),ee=(0,t.sequenceExecute)([...C,...k,...D],i);return T&&ee.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:xt.id,params:w},...S,...O,...E],redoMutations:[{id:xt.id,params:_},...C,...k,...D]}),!0}},fc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(U),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(Fn).getSkeleton(f,d),g={subUnitId:d,unitId:f,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=Ln(g.ranges,h);In(_,m);let y=bt(g,m),b=o.syncExecuteCommand(xt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:fc.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let e=c.afterCommandExecute({id:fc.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:xt.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:xt.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},pc={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(U),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:pc.id,params:u});return(0,t.sequenceExecute)([...f],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...f]}),!0):!1}},mc={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=St(e,c);return o.syncExecuteCommand(Ct.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Ct.id,params:l}],redoMutations:[{id:Ct.id,params:c}]}),!0):!1}},hc={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=Tt(e,n);return r.syncExecuteCommand(wt.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:wt.id,params:o}],redoMutations:[{id:wt.id,params:n}]}),!0):!1}},gc=(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()}},_c={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}},vc={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=gc(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(_c.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:_c.id,params:m}],redoMutations:[{id:_c.id,params:f}]}),!0):!1}},yc=(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()}},bc={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}},xc={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=yc(e,d),m=s.onCommandExecute({id:xc.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:bc.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:bc.id,params:f},...m.undos];return(0,t.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},Sc=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),Cc={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}},wc={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=Sc(e,l);return r.syncExecuteCommand(Cc.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Cc.id,params:u}],redoMutations:[{id:Cc.id,params:l}]}),!0):!1}};var Tc=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]}},Ec=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}`}},Y=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}`}},Dc=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}`}},Oc=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 X=()=>[Oc,Y,Dc,Ec],kc=[a.UnitAction.Edit,a.UnitAction.View,a.UnitAction.ManageCollaborator,a.UnitAction.Delete],Ac=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>X().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}`}},Z=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}`}},Q=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=()=>[Z,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],$=()=>[Q,gl,sl,el],yl=()=>[Qc,$c,tl,nl,rl,il,ol,al,cl,dl,fl,pl,ml,hl],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();[...$(),...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=>{[...X()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...$(),...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(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();$().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`:$().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:$().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=>{$().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()].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=>{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)(Tc)),T(5,(0,t.Inject)(t.IResourceManagerService)),T(6,(0,t.Inject)(H)),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(Tc).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(Ys.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:Ys.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:Ys.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=Et(e,c);return o.syncExecuteCommand(Dt.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Dt.id,params:l}],redoMutations:[{id:Dt.id,params:c}]}),!0):!1}},kl={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(U).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 _=Ot(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=kt(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:jt.id,params:g},{id:Mt.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:jt.id,params:_},{id:Mt.id,params:y},...S.undos,...e.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:jt.id,params:g},{id:Mt.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(U),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},_=Ot(g,h),v={unitId:f,subUnitId:m,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=kt(v,h),b=(0,t.sequenceExecute)([{id:jt.id,params:g},{id:Mt.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:jt.id,params:_},{id:Mt.id,params:y},...x.undos,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:jt.id,params:g},{id:Mt.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(U),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=kt(m,d),g=a.syncExecuteCommand(Mt.id,m),_=e.get(Fn).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=Ln(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:Mt.id,params:h},...C,...x],redoMutations:[{id:Mt.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=gc(e,l),d=s.syncExecuteCommand(_c.id,l),f={unitId:i,subUnitId:a},m=s.syncExecuteCommand(Ft.id,f);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:_c.id,params:u}],redoMutations:[{id:_c.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}=mn(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:F.id,params:t});let n=Se(e,t);b.push({id:L.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=B(e,w);return y.push({id:V.id,params:w}),b.unshift({id:V.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=rn(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=rn(t.ranges)}),[{id:Il.id,params:c}]},zl=(e,n,r)=>{let i=hn(r,`pattern`),a={},o={},s=gn();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(U).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:V.id,params:g}],v=[{id:V.id,params:B(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:V.id,params:g},v=B(e,g),y={id:V.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(Pt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Pt.id,params:d}],redoMutations:[{id:Pt.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(gs.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:gs.id,params:u}],redoMutations:[{id:_s.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}=No,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:`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(`SERIES`,!0),`COPY`):(this._autoFillService.setDisableApplyType(`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===`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===`COPY`){let t=a==null?void 0:a.COPY;return t?t(e,n,r,o,s):(l&&c.reverse(),eu(c,n))}if(i===`SERIES`){let t=a==null?void 0:a.SERIES;return t?t(e,n,r,o):(l&&c.reverse(),a!=null&&a.COPY?a.COPY(e,n,r,o,s):eu(c,n))}if(i===`ONLY_FORMAT`){let t=a==null?void 0:a.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===`NO_FORMAT`&&(s=!1,r=`SERIES`);let{source:c,target:l,unitId:u,subUnitId:d}=e;if(!c||!l||n==null)return{undos:a,redos:o};let f=Sn(c),p=Sn(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===`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(R,t);o.push({id:z.id,params:t}),a.unshift({id:g.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:nu([l])},D=this._injector.invoke(B,E);o.push({id:V.id,params:E}),a.unshift({id:V.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(B,A);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,k)}),a.unshift({id:V.id,params:ee}),o.push({id:V.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:z.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||[`other`,`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&&t===`number`}))?`COPY`:`SERIES`}};iu=E([T(0,t.IUniverInstanceService),T(1,Uo),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,r.IDefinedNamesService),T(1,t.IResourceManagerService)],ou);let su=[Ws.id],cu=[P.id,F.id,I.id,L.id,Te.id,De.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===P.id?this._handleInsertRowMutation(r,t):n===F.id?this._handleInsertColMutation(r,t):n===I.id?this._handleRemoveRowMutation(r,t):n===L.id?this._handleRemoveColMutation(r,t):n===Te.id?this._handleMoveRowsMutation(r,t):n===De.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:Ws.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===bc.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 ar.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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},a),i=this._localeService.t(`permission.dialog.editErr`));break;case q.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[dl,Q],rangeTypes:[Y]},a.range?[a.range]:void 0,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setStyleErr`);break;case As.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[dl,Q],rangeTypes:[Y]},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 zn.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,dl,Q],rangeTypes:[Y]},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 Xo.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},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 Bn.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[dl,Q],rangeTypes:[Y]},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 dc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[pl]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case fc.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[pl]},a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case kl.id:r=this.permissionCheckWithoutRange({worksheetTypes:[ml]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Al.id:case jl.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[ml]},a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Wr.id:case Kr.id:a=e.params,r=this._permissionCheckByMoveRowsColsCommand(a),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case er.id:a=e.params,r=this._permissionCheckByMoveRangeCommand(a),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case br.id:case Dr.id:a=e.params,r=this._permissionCheckByInsertRowColCommand(a),i=this._localeService.t(`permission.dialog.insertRowColErr`);break;case Pr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Lc],worksheetTypes:[Q,tl],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case Lr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Ic],worksheetTypes:[Q,$c],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case wc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,Gc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case xc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,Jc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Ml.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,Vc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Is.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,pl],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case $s.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,ml],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Ls.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,pl],rangeTypes:[Y]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ec.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,ml],rangeTypes:[Y]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case _r.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`right`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case hr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`down`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case dr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`left`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case pr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`up`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Wo.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[a.targetRange],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.autoFillErr`);break;case ps.id:case Hs.id:case ys.id:a=e.params,r=!a.localSheetId||a.localSheetId===`AllDefaultWorkbook`?this.permissionCheckWithoutRange({workbookTypes:[Z]},a.unitId):this.permissionCheckWithoutRange({workbookTypes:[Z],worksheetTypes:[Q]},a.unitId,a.localSheetId),i=this._localeService.t(`permission.dialog.editErr`);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 Y(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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[r],s.unitId,s.subUnitId)?!1:this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[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:[Z],worksheetTypes:[Q],rangeTypes:[Y]};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:[Z],worksheetTypes:[Q],rangeTypes:[Y]},[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)(U)),T(4,(0,t.Inject)(H)),T(5,(0,t.Inject)(ua)),T(6,(0,t.Inject)(t.LocaleService)),T(7,(0,t.Inject)(r.LexerTreeBuilder)),T(8,r.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();_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=>{[...X()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...$(),...yl()].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)}};du=E([T(0,(0,t.Inject)(t.IPermissionService)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,(0,t.Inject)(H)),T(3,(0,t.Inject)(ua)),T(4,(0,t.Inject)(Tc))],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: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;X().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:kc}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(X().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()].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||($().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: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: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;[...$(),...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();_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()].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=>{X().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=``;$().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:kc}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;X().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===An.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)(H)),T(4,(0,t.Inject)(ua)),T(5,(0,t.Inject)(t.UserManagerService)),T(6,(0,t.Inject)(Tc)),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 P.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case _t.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case yt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case I.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case jt.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=>X().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=X().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)(H)),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 Y(e,t,n.permissionId))==null?void 0:o.id))==null?void 0:i.value)==null?!1:r,_=(s=(c=this._permissionService.getPermissionPoint((l=new Oc(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 Dc(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 Ec(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)(H)),T(1,(0,t.Inject)(t.IPermissionService)),T(2,(0,t.Inject)(t.IUniverInstanceService))],hu);var gu=`@univerjs/sheets`,_u=`0.22.1`;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===Br.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Br.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===_c.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===rs.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===_c.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===G.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(Ft.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,[V,F,P,rs,Ce,Te,De,L,I,Br,z,Ll,g,cc,bc,Il,je,Gl,yt,_t,Yl,Xl,ts,Dt,Ct,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,zn,Xo,Bn,cs,dr,pr,dc,kl,kr,Or,Ar,jr,Dr,Er,hr,_r,Sr,xr,wr,Cr,br,yr,ms,Kr,er,Wr,Pr,Rr,Lr,Fr,bs,Yr,Qi,Da,Ta,Ea,Ps,Ns,As,js,Ms,Rs,Le,ze,fc,Fs,Fe,Gs,Ws,Ks,ka,Zs,ar,Al,tc,Qs,ht,Ls,ec,Is,$s,q,sc,oc,wa,ja,Aa,Oa,lc,uc,Ft,vc,_c,xc,wc,Cc,Nt,jt,jl,Mt,xt,Ol,mc,Qn,G,Zl,ps,ys,Hs,Ml,Hl,Pt,qs,Be,Bl,Cl,da,Ys,fa,Sl,jn,Xs,us,pa,ds,wl,An,On,J,Vl,wt,hc,Nl,ye,_e,_s,gs,Ul,vs,ma,fs,Wl,Jl,ql,Wo,qo,Jo,Yo,hs].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!==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:V.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()}};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,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)}}))}};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 gl(r,i).id))==null?void 0:c.value)==null?!1:s,[a.UnitAction.Edit]:(l=(u=this._permissionService.getPermissionPoint(new Q(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=[F.id,P.id,L.id,I.id],Ou=[Te.id,De.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===uc.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===J.id||t.id===An.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 Wr.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Kr.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case yr.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case Er.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Rr.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case Fr.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:J.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:J.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})):(e.push({id:On.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:An.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:J.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:J.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===bs.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:On.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:An.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)(H)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,t.ICommandService),T(3,(0,t.Inject)(Ri)),T(4,(0,t.Inject)(mu)),T(5,(0,t.Inject)(hu)),T(6,(0,t.Inject)(A)),T(7,(0,t.Inject)(H))],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`:X().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:X().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&&X().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=>{X().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)(H)),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=$o,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},$o,this._config);this._configService.setConfig(Zo,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=[[xs],[es],[U],[Ri],[du],[Pl,{useClass:Eu}],[A],[ju],[Fn],[bu],[qi],[Su],[ou],[pu],[lu],[xl],[ua],[Tc],[Cu],[fu],[uu],[N],[mu],[H],[hu],[ku],[Au],[wu,{useClass:Tu,deps:[U]}],[Uo,{useClass:Ho}],[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],[qi],[du],[xl],[Cu],[Fn],[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],[Ri],[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)(r.UniverFormulaEnginePlugin),T(1,(0,t.Inject)(t.Injector)),T(2,t.IConfigService)],Mu);let Nu={WorkbookCommentPermission:jc,WorkbookCopyPermission:Mc,WorkbookCreateProtectPermission:Pc,WorkbookCreateSheetPermission:Fc,WorkbookDeleteSheetPermission:Rc,WorkbookDuplicatePermission:zc,WorkbookEditablePermission:Z,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:Q,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:Y,RangeProtectionPermissionViewPoint:Oc},Pu=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(H),s=a.getPermissionPoint(new Z(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new Q(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 Y(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,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=Hu(r,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=Hu(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 Ku(e,t,n,r,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,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=ga,e.AFTER_CELL_EDIT=O,e.AUTO_FILL_APPLY_TYPE=ho,e.AUTO_FILL_DATA_TYPE=go,e.AUTO_FILL_HOOK_TYPE=_o,e.AddMergeRedoSelectionsOperationFactory=Xi,e.AddMergeUndoMutationFactory=h,e.AddMergeUndoSelectionsOperationFactory=Zi,e.AddRangeProtectionCommand=jn,e.AddRangeProtectionMutation=An,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=Yo,e.AutoFillCommand=Wo,Object.defineProperty(e,`AutoFillController`,{enumerable:!0,get:function(){return iu}}),e.AutoFillRules=No,Object.defineProperty(e,`AutoFillService`,{enumerable:!0,get:function(){return Ho}}),e.AutoFillTools=mo,e.BEFORE_CELL_EDIT=D,e.BorderStyleManagerService=xs,e.COMMAND_LISTENER_SKELETON_CHANGE=Rt,e.COMMAND_LISTENER_VALUE_CHANGE=zt,e.CancelFrozenCommand=Ks,e.CancelMarkDirtyRowAutoHeightOperation=Xl,e.ClearSelectionAllCommand=zn,e.ClearSelectionContentCommand=Xo,e.ClearSelectionFormatCommand=Bn,e.CopySheetCommand=cs,e.CopyWorksheetEndMutation=ts,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,`DefinedNameDataController`,{enumerable:!0,get:function(){return ou}}),e.DeleteRangeMoveLeftCommand=dr,e.DeleteRangeMoveUpCommand=pr,e.DeleteRangeProtectionCommand=us,e.DeleteRangeProtectionMutation=On,e.DeleteWorksheetProtectionCommand=ds,e.DeleteWorksheetProtectionMutation=fa,e.DeleteWorksheetRangeThemeStyleCommand=fs,e.DeleteWorksheetRangeThemeStyleMutation=ye,e.DeleteWorksheetRangeThemeStyleMutationFactory=be,e.DeltaColumnWidthCommand=dc,e.DeltaRowHeightCommand=kl,e.EditStateEnum=En,e.EffectRefRangId=K,e.EmptyMutation=Gl,e.ExclusiveRangeService=Tu,e.FactoryAddRangeProtectionMutation=kn,e.FactoryDeleteRangeProtectionMutation=Dn,e.FactorySetRangeProtectionMutation=Js,e.IAutoFillService=Uo,e.IExclusiveRangeService=wu,e.INTERCEPTOR_POINT=_,e.INumfmtService=Pl,e.IRefSelectionsService=Yn,e.InsertColAfterCommand=kr,e.InsertColBeforeCommand=Or,e.InsertColByRangeCommand=Dr,e.InsertColCommand=Er,e.InsertColMutation=F,e.InsertColMutationUndoFactory=Se,e.InsertDefinedNameCommand=ps,e.InsertMultiColsLeftCommand=Ar,e.InsertMultiColsRightCommand=jr,e.InsertMultiRowsAboveCommand=Cr,e.InsertMultiRowsAfterCommand=wr,e.InsertRangeMoveDownCommand=hr,e.InsertRangeMoveRightCommand=_r,e.InsertRowAfterCommand=Sr,e.InsertRowBeforeCommand=xr,e.InsertRowByRangeCommand=br,e.InsertRowCommand=yr,e.InsertRowMutation=P,e.InsertRowMutationUndoFactory=xe,e.InsertSheetCommand=ms,e.InsertSheetMutation=rs,e.InsertSheetUndoMutationFactory=ns,e.InterceptCellContentPriority=v,e.MAX_CELL_PER_SHEET_KEY=au,e.MERGE_CELL_INTERCEPTOR_CHECK=Ki,e.MarkDirtyFilterChangeMutation=Kl,e.MarkDirtyRowAutoHeightOperation=Yl,Object.defineProperty(e,`MergeCellController`,{enumerable:!0,get:function(){return qi}}),e.MoveColsCommand=Kr,e.MoveColsMutation=De,e.MoveColsMutationUndoFactory=Ee,e.MoveRangeCommand=er,e.MoveRangeMutation=Ce,e.MoveRowsCommand=Wr,e.MoveRowsMutation=Te,e.MoveRowsMutationUndoFactory=we,Object.defineProperty(e,`NumfmtService`,{enumerable:!0,get:function(){return Eu}}),e.OperatorType=Xr,e.PermissionPointsDefinitions=Nu,e.REF_SELECTIONS_ENABLED=Pn,e.RangeMergeUtil=an,Object.defineProperty(e,`RangeProtectionCache`,{enumerable:!0,get:function(){return hu}}),e.RangeProtectionPermissionDeleteProtectionPoint=Ec,e.RangeProtectionPermissionEditPoint=Y,e.RangeProtectionPermissionManageCollaPoint=Dc,e.RangeProtectionPermissionViewPoint=Oc,Object.defineProperty(e,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return ku}}),Object.defineProperty(e,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return mu}}),e.RangeProtectionRuleModel=H,Object.defineProperty(e,`RangeProtectionService`,{enumerable:!0,get:function(){return Au}}),e.RangeThemeStyle=ne,Object.defineProperty(e,`RefRangeService`,{enumerable:!0,get:function(){return Ri}}),Object.defineProperty(e,`RefSelectionsService`,{enumerable:!0,get:function(){return Xn}}),e.RefillCommand=hs,e.RegisterWorksheetRangeThemeStyleCommand=vs,e.RegisterWorksheetRangeThemeStyleMutation=gs,e.RemoveColByRangeCommand=Lr,e.RemoveColCommand=Rr,e.RemoveColMutation=L,e.RemoveDefinedNameCommand=ys,e.RemoveMergeUndoMutationFactory=R,e.RemoveNumfmtMutation=Ll,e.RemoveRangeThemeMutation=ql,e.RemoveRowByRangeCommand=Pr,e.RemoveRowCommand=Fr,e.RemoveRowMutation=I,e.RemoveSheetCommand=bs,e.RemoveSheetMutation=Br,e.RemoveSheetUndoMutationFactory=zr,e.RemoveWorksheetMergeCommand=Qi,e.RemoveWorksheetMergeMutation=z,e.ReorderRangeCommand=Yr,e.ReorderRangeMutation=je,e.ReorderRangeUndoMutationFactory=Ae,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=Zo,e.ScrollToCellOperation=Zl,e.SelectRangeCommand=Qn,e.SelectionMoveType=Mn,e.SetBackgroundColorCommand=Ea,e.SetBoldCommand=_a,e.SetBorderBasicCommand=Ps,e.SetBorderColorCommand=Ns,e.SetBorderCommand=As,e.SetBorderPositionCommand=js,e.SetBorderStyleCommand=Ms,e.SetColDataCommand=Fs,e.SetColDataMutation=Fe,e.SetColDataMutationFactory=Pe,e.SetColHiddenCommand=Rs,e.SetColHiddenMutation=Le,e.SetColVisibleMutation=ze,e.SetColWidthCommand=fc,e.SetDefinedNameCommand=Hs,e.SetFontFamilyCommand=Sa,e.SetFontSizeCommand=Ca,e.SetFrozenCommand=Gs,e.SetFrozenMutation=Ws,e.SetFrozenMutationFactory=Us,e.SetGridlinesColorCommand=qs,e.SetGridlinesColorMutation=Be,e.SetHorizontalTextAlignCommand=ka,e.SetItalicCommand=va,e.SetNumfmtMutation=Il,e.SetOverlineCommand=xa,e.SetProtectionCommand=Xs,e.SetRangeCustomMetadataCommand=Zs,e.SetRangeProtectionMutation=J,e.SetRangeThemeMutation=Jl,e.SetRangeValuesCommand=ar,e.SetRangeValuesMutation=V,e.SetRangeValuesUndoMutationFactory=B,e.SetRowDataCommand=Qs,e.SetRowDataMutation=ht,e.SetRowDataMutationFactory=mt,e.SetRowHeightCommand=Al,e.SetRowHiddenCommand=tc,e.SetRowHiddenMutation=yt,e.SetRowVisibleMutation=_t,e.SetSelectedColsVisibleCommand=Ls,e.SetSelectedRowsVisibleCommand=ec,e.SetSelectionsOperation=G,e.SetSpecificColsVisibleCommand=Is,e.SetSpecificRowsVisibleCommand=$s,e.SetStrikeThroughCommand=ba,e.SetStyleCommand=q,e.SetTabColorCommand=sc,e.SetTabColorMutation=oc,e.SetTextColorCommand=wa,e.SetTextRotationCommand=ja,e.SetTextWrapCommand=Aa,e.SetUnderlineCommand=ya,e.SetVerticalTextAlignCommand=Oa,e.SetWorkbookNameCommand=lc,e.SetWorkbookNameMutation=cc,e.SetWorksheetActivateCommand=uc,e.SetWorksheetActiveOperation=Ft,e.SetWorksheetColWidthMutation=xt,e.SetWorksheetColWidthMutationFactory=bt,e.SetWorksheetColumnCountCommand=mc,e.SetWorksheetColumnCountMutation=Ct,e.SetWorksheetColumnCountUndoMutationFactory=St,e.SetWorksheetDefaultStyleCommand=hc,e.SetWorksheetDefaultStyleMutation=wt,e.SetWorksheetDefaultStyleMutationFactory=Tt,e.SetWorksheetHideCommand=vc,e.SetWorksheetHideMutation=_c,e.SetWorksheetNameCommand=xc,e.SetWorksheetNameMutation=bc,e.SetWorksheetOrderCommand=wc,e.SetWorksheetOrderMutation=Cc,e.SetWorksheetPermissionPointsCommand=Cl,e.SetWorksheetPermissionPointsMutation=Sl,e.SetWorksheetProtectionCommand=wl,e.SetWorksheetProtectionMutation=Ys,e.SetWorksheetRangeThemeStyleCommand=ma,e.SetWorksheetRangeThemeStyleMutation=_e,e.SetWorksheetRangeThemeStyleMutationFactory=ve,e.SetWorksheetRightToLeftCommand=Dl,e.SetWorksheetRightToLeftMutation=El,e.SetWorksheetRowAutoHeightMutation=Nt,e.SetWorksheetRowAutoHeightMutationFactory=At,e.SetWorksheetRowCountCommand=Ol,e.SetWorksheetRowCountMutation=Dt,e.SetWorksheetRowCountUndoMutationFactory=Et,e.SetWorksheetRowHeightMutation=jt,e.SetWorksheetRowHeightMutationFactory=Ot,e.SetWorksheetRowIsAutoHeightCommand=jl,e.SetWorksheetRowIsAutoHeightMutation=Mt,e.SetWorksheetRowIsAutoHeightMutationFactory=kt,e.SetWorksheetShowCommand=Ml,e.SheetCopyDownCommand=qo,e.SheetCopyRightCommand=Jo,Object.defineProperty(e,`SheetInterceptorService`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(e,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return es}}),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=It,Object.defineProperty(e,`SheetSkeletonService`,{enumerable:!0,get:function(){return Fn}}),e.SheetValueChangeType=Lt,Object.defineProperty(e,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return lu}}),Object.defineProperty(e,`SheetsSelectionsService`,{enumerable:!0,get:function(){return U}}),e.SplitDelimiterEnum=cn,e.SplitTextToColumnsCommand=Nl,e.TextToNumberCommand=Bl,e.ToggleCellCheckboxCommand=Vl,e.ToggleGridlinesCommand=Hl,e.ToggleGridlinesMutation=Pt,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=_s,e.VALIDATE_CELL=k,e.ViewStateEnum=Tn,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=Z,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 du}}),e.WorkbookPrintPermission=Kc,e.WorkbookRecoverHistoryPermission=qc,e.WorkbookRenameSheetPermission=Jc,e.WorkbookSelectionModel=Nn,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=Q,e.WorksheetFilterPermission=rl,e.WorksheetInsertColumnPermission=il,e.WorksheetInsertHyperlinkPermission=al,e.WorksheetInsertRowPermission=ol,e.WorksheetManageCollaboratorPermission=sl,Object.defineProperty(e,`WorksheetPermissionService`,{enumerable:!0,get:function(){return xl}}),e.WorksheetPivotTablePermission=cl,e.WorksheetProtectionPointModel=Tc,e.WorksheetProtectionRuleModel=ua,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 pu}}),e.addMergeCellsUtil=ca,e.adjustRangeOnMutation=ji,e.alignToMergedCellsBorders=Vn,e.attachPrimaryWithCoord=Wu,e.attachRangeWithCoord=Hu,e.attachSelectionWithCoord=Uu,e.baseProtectionActions=kc,e.checkCellValueType=d,e.checkRangesEditablePermission=Pu,e.convertPositionCellToSheetOverGrid=Ku,e.convertPositionSheetOverGridToAbsolute=Gu,e.convertPrimaryWithCoordToPrimary=sn,e.convertSelectionDataToRange=on,e.copyRangeStyles=Jn,e.countCells=Rn,e.createTopMatrixFromMatrix=$t,e.createTopMatrixFromRanges=Qt,e.defaultLargeSheetOperationConfig=Qo,e.defaultWorkbookPermissionPoints=vl,e.defaultWorksheetPermissionPoint=bl,e.discreteRangeToRange=Sn,e.expandToContinuousRange=Zt,e.factoryRemoveNumfmtUndoMutation=Rl,e.factorySetNumfmtUndoMutation=Fl,e.findAllRectangle=nn,e.findFirstNonEmptyCell=vn,e.followSelectionOperation=Wn,e.generateNullCell=yn,e.generateNullCellValue=bn,e.getAddMergeMutationRangeByType=Gi,e.getAllRangePermissionPoint=X,e.getAllWorkbookPermissionPoint=_l,e.getAllWorksheetPermissionPoint=$,e.getAllWorksheetPermissionPointByPointPanel=yl,e.getCellAtRowCol=Hn,e.getClearContentMutationParamForRange=ra,e.getClearContentMutationParamsForRanges=na,e.getDefaultRangePermission=Ac,e.getInsertRangeMutations=or,e.getMoveRangeCommandMutations=nr,e.getMoveRangeUndoRedoMutations=rr,e.getNextPrimaryCell=Vu,e.getPrimaryForRange=W,e.getRemoveRangeMutations=sr,e.getSelectionsService=Zn,e.getSeparateEffectedRangesOnCommand=Pi,e.getSheetCommandTarget=p,e.getSheetCommandTargetWorkbook=f,e.getSheetMutationTarget=m,e.getSkeletonChangedEffectedRange=Vt,e.getValueChangedEffectedRange=Bt,e.getVisibleRanges=wn,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=lr,e.handleIRemoveCol=ci,e.handleIRemoveRow=li,e.handleInsertCol=mi,e.handleInsertRangeMoveDown=hi,e.handleInsertRangeMoveRight=_i,e.handleInsertRangeMutation=cr,e.handleInsertRow=pi,e.handleMoveCols=ri,e.handleMoveRange=ai,e.handleMoveRows=ei,e.isSingleCellSelection=Gn,e.rangeMerge=rn,e.rangeToDiscreteRange=Cn,e.rotateRange=Qr,e.runRefRangeMutations=Ei,e.setEndForRange=Un,e.splitRangeText=mn,e.transformCellsToRange=zl,e.validateDefinedName=Ht});
|
|
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,`_composedInterceptorByKey`,new Map),w(this,`_composedInterceptorVersion`,0),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(),this._composedInterceptorByKey.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._invalidateComposedInterceptors(),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),this._invalidateComposedInterceptors()}))}else return this._interceptorsByName.set(r,a),this.disposeWithMe((0,t.toDisposable)(()=>{(0,t.remove)(this._interceptorsByName.get(r),n),this._invalidateComposedInterceptors()}))}fetchThroughInterceptors(e,n,r,i){let a=n===void 0?e:`${e}-${n}`,o=r==null?a:r,s=this._composedInterceptorByKey.get(o);if(!s){let e=this._interceptorsByName.get(a);e&&i&&(e=e.filter(i)),s=(0,t.composeInterceptors)(e||[]),this._composedInterceptorByKey.set(o,s)}return s}_invalidateComposedInterceptors(){this._composedInterceptorVersion+=1,this._composedInterceptorByKey.clear()}_getCommonCellContentInterceptor(e,t){let n=t.get(e);return n||(n=this.fetchThroughInterceptors(_.CELL_CONTENT,e),t.set(e,n)),n}_getCommonRowFilteredInterceptor(e){return e.interceptor||(e.interceptor=this.fetchThroughInterceptors(_.ROW_FILTERED)),e.interceptor}_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,c=new Map,l={interceptor:null},u=-1,d=-1;i._worksheetDisposables.set(ee(r,n),s),s.add(o.registerCellContentInterceptor({getCell(t,o,s,l,d){let f=n.getCellRaw(t,o),p={unitId:r,subUnitId:a,row:t,col:o,worksheet:n,workbook:e,rawData:f};return l===void 0&&d===void 0?(u!==i._composedInterceptorVersion&&(c.clear(),u=i._composedInterceptorVersion),i._getCommonCellContentInterceptor(s,c)(f,p)):i.fetchThroughInterceptors(_.CELL_CONTENT,s,l,d)(f,p)}})),s.add(o.registerRowFilteredInterceptor({getRowFiltered(t){return d!==i._composedInterceptorVersion&&(l.interceptor=null,d=i._composedInterceptorVersion),!!i._getCommonRowFilteredInterceptor(l)(!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}},P={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}},Se=(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}},F={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}},Ce={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 we(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 Te={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 Ee(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 De={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}},Oe=(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}},I={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}},ke=(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}},L={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}},R=(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}},z={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}},Ae=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},je={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 Me(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 Ne(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 Pe=(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]=Ne(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Fe={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}},Ie=(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}},Le={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}},Re=(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}},ze={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}},Be={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 Ve(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function He(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function Ue(e,t,n){if(e==null)return e;if(!Ve(e))return;let r={},i=!1;if(He(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 We(e,t,n){if(e==null)return e;if(!Ve(e))return;let r={},i=!1;return He(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Ge(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 Ke(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function qe(e){return Ue(e,t.COLOR_STYLE_KEYS)}function Je(e){return Ue(e,t.TEXT_DECORATION_KEYS,{cl:qe})}function Ye(e){return Ue(e,t.BORDER_STYLE_KEYS,{cl:qe})}function Xe(e){return We(e,t.BORDER_KEYS,Ye)}function Ze(e){return Ue(e,t.TEXT_ROTATION_KEYS)}function Qe(e){return Ue(e,t.PADDING_KEYS)}function $e(e){if(e==null)return e;if(!(!Ve(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function et(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return Je(t);case`bg`:case`cl`:return qe(t);case`bd`:return Xe(t);case`tr`:return Ze(t);case`pd`:return Qe(t);case`n`:return $e(t);default:return Ke(t)?t:void 0}}function tt(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=t.Tools.isObject(e)?{...e}:{};return He(r,t.BORDER_KEYS,(e,t)=>{let n=Ye(t);n!==void 0&&(i[e]=n)}),i}function nt(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=at(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:st(n.p,r.s?r.s:null)}}function rt(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=et(e,i[e]);t!==void 0&&(e===`bd`?r[e]=it(r[e]||{},t):e in r||(r[e]=null))}return r}function it(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 at(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&&Ge(e))continue;let t=et(e,a[e]);t!==void 0&&(e===`bd`?i[e]=tt(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 ot(e,t){return e.some(e=>e.startIndex===t)?ot(e,t+1):t}function st(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=at({},n,!0);o&&t.Tools.removeNull(o),t.Tools.isEmptyObject(o)||(r.ts=o),a.push(r)}let l=at(c,n,!0);l&&t.Tools.removeNull(l),t.Tools.isEmptyObject(l)?delete r.ts:r.ts=l,a.push(r),i=ot(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=at({},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 ct(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?+!!lt(n.v):e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function lt(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 ut(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 B=(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=rt(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(e,n,ut(i))}),{...n,options:{},cellValue:u.getMatrix()}},V={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=ft(r,i,l),t.Tools.isEmptyObject(i)?c.realDeleteValue(e,n):c.setValue(e,n,i)}}),!0}},dt=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function ft(e,t,n){let r=c(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(dt.has(a)){let n=e[a];pt(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=ct(r,e)):a===`s`&&nt(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=ct(r,t)),t.v===null&&(delete t.t,delete t.v),t}function pt(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let mt=(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]=Me(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},ht={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}},gt=(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}},_t={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}},vt=(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}},yt={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}},bt=(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}},xt={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}},St=(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()}},Ct={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}},wt={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}},Tt=(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()}},Et=(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()}},Dt={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}},Ot=(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}},kt=(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}},At=(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}},jt={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}},Mt={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}},Nt={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}},Pt={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}},Ft={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}},It=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}({}),Lt=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}({}),Rt=[jt.id,Mt.id,Nt.id,xt.id,Ft.id,Te.id,De.id,Le.id,ze.id,yt.id,_t.id,F.id,P.id,L.id,I.id,Pt.id,Be.id,Dt.id,Ct.id],zt=[V.id,Ce.id,z.id,g.id,je.id,wt.id,ht.id,Fe.id,_e.id,ye.id];function Bt(e,n){switch(n.id){case`sheet.mutation.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`sheet.mutation.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`sheet.mutation.remove-worksheet-merge`:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case`sheet.mutation.add-worksheet-merge`:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case`sheet.mutation.reorder-range`:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case`sheet.mutation.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`sheet.mutation.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`sheet.mutation.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`sheet.mutation.set-worksheet-range-theme-style`:case`sheet.mutation.delete-worksheet-range-theme-style`:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function Vt(e,n){switch(e.id){case`sheet.mutation.set-worksheet-row-height`:case`sheet.mutation.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`sheet.mutation.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`sheet.mutation.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`sheet.mutation.move-rows`:case`sheet.mutation.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`sheet.mutation.set-col-hidden`:case`sheet.mutation.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`sheet.mutation.set-row-hidden`:case`sheet.mutation.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`sheet.mutation.insert-col`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case`sheet.mutation.insert-row`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case`sheet.mutation.remove-col`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case`sheet.mutation.remove-rows`:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case`sheet.mutation.toggle-gridlines`:case`sheet.mutation.set-gridlines-color`:return[];default:return[]}}function Ht(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 Ut(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Wt(e,t){return e&&e.spanAnchor?Ut(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Ut(e)}function Gt(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 Kt(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||Wt(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 qt(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||Wt(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 Jt(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||Wt(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 Yt(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||Wt(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 Xt({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);Wt(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);Wt(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);Wt(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);Wt(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 Zt(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Gt(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=Xt({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}=Jt(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}=Yt(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}=Kt(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}=qt(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 Qt=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},$t=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},en=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},tn=(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},nn=e=>{let t=[],n=en(e);for(;n.area>0;)n.range&&(t.push(n.range),tn(e,n.range)),n=en(e);return t},rn=e=>nn(Qt(e));var an=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 nn($t(this._matrix))}};function on(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=sn(n)),i}function sn(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 cn=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 ln=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?1:e===this._commaCount?2:e===this._semicolonCount?4:e===this._spaceCount?8:1}};function un(e,t,n){let r=[];n!==void 0&&(e&16)>0&&r.push(n),(e&1)>0&&r.push(` `),(e&2)>0&&r.push(`,`),(e&4)>0&&r.push(`;`),(e&8)>0&&r.push(` `);let i=``;for(let e of r)i+=dn(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function dn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}let fn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function pn(e){if(e!=null){if(e.p)return fn(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 mn(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&16)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new ln:null,f=[];for(let t=s;t<=l;t++){let n=pn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=un(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 hn=(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)},{}),gn=(e=0)=>{let t=e;return function(){return t++}};function _n(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function vn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(_n(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function yn(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 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,{v:null,p:null,f:null,si:null,custom: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,{s:null})}),n.clone()}function Sn(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 Cn(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 wn(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 Tn=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),En=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var H=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 Dn=(e,t)=>{let n=e.get(H),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:An.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},On={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(H);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},kn=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:On.id,params:t}},An={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(H);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},jn={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(H),{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(An.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:An.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:On.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Mn=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 0:this._selectionMoveStart$.next(t);break;case 1:this._selectionMoving$.next(t);break;case 2:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case 3: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 U=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((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,n.of)()),(0,n.takeUntil)(this.dispose$)),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,n.of)()),(0,n.takeUntil)(this.dispose$)),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,n.of)([])),(0,n.takeUntil)(this.dispose$)),this.selectionSet$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,n.of)([])),(0,n.takeUntil)(this.dispose$)),this.selectionChanged$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,n.of)([])),(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),(0,n.takeUntil)(this.dispose$),(0,n.share)()),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?3: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?3: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}}};U=E([T(0,t.IUniverInstanceService)],U);let Pn=`REF_SELECTIONS_ENABLED`,Fn=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())}};Fn=E([T(0,(0,t.Inject)(t.Injector)),T(1,(0,t.Inject)(t.IUniverInstanceService))],Fn);function In(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 Ln(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 Rn(e){let t=0;return e.forEach(()=>{t++}),t}let zn={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(U),{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(Fn).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(A),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:yn(wn(c,e,o,s))},_=B(e,g);m.push({id:V.id,params:g}),h.push({id:V.id,params:_});let v=f.onCommandExecute({id:zn.id,params:n});m.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(m,u),{suitableRanges:b,remainingRanges:x}=Ln(c,l),{undos:S,redos:C}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:s,ranges:b,autoHeightRanges:b,lazyAutoHeightRanges:x}),w=(0,t.sequenceExecute)(C,u);return y.result&&w.result?(m.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},Bn={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(U),{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(Fn).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(A),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:xn(wn(c,e,o,s))},_=B(e,g);m.push({id:V.id,params:g}),h.push({id:V.id,params:_});let v=f.onCommandExecute({id:Bn.id,params:n});m.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(m,u),{suitableRanges:b,remainingRanges:x}=Ln(c,l),{undos:S,redos:C}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:s,ranges:b,autoHeightRanges:b,lazyAutoHeightRanges:x}),w=(0,t.sequenceExecute)(C,u);return y.result&&w.result?(m.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}};function Vn(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?Vn(o,n,r):o}function Hn(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 Un(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 W(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 Wn=(e,t,n)=>({id:G.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:W(e,n)}]}});function Gn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Kn(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 qn=e=>e.id!==y;function Jn(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,qn):e.getCellWithFilteredInterceptors(t,s,b,qn);!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 Yn=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),Xn=class extends U{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()))))}};Xn=E([T(0,t.IUniverInstanceService)],Xn);function Zn(e,n){let r=e.get(t.IContextService).getContextValue(Pn);return e.get(r&&!n?Yn:U)}let G={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 Zn(e).setSelections(i,a,[...n],r),!0}},Qn={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:W(a,s.worksheet),style:null}];return o.syncExecuteCommand(G.id,{unitId:r,subUnitId:i,selections:c})}},$n=`sheet.command.move-range`,er={type:t.CommandType.COMMAND,id:$n,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:er.id,params:n}))return!1;let s=nr(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 tr(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 nr(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=tr(e,t);if(!c)return null;let l=e.get(A),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=rr(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:er.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:G.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:ir(t.fromRange,t.toRange,p,m)}],type:2}}),y.push({id:G.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:W(t.fromRange,p)}],type:2}})),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 rr(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=Vn(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:Ce.id,params:b}],undos:[{id:Ce.id,params:x}]}}function ir(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=W(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 ar={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(U).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=B(e,x),C=(0,t.mapObjectMatrix)(x.cellValue,(e,t)=>v.getCellHeight(e,t)||void 0);if(!d.syncExecuteCommand(V.id,x))return!1;let{undos:w,redos:T}=m.onCommandExecute({id:ar.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:V.id,params:x},...T,...D,Wn(u[u.length-1],_,v)],t=[{id:V.id,params:S},...w,...E];return o&&o.length&&t.push(Wn(o[o.length-1],_,v)),f.pushUndoRedo({unitID:g,undoMutations:t,redoMutations:e,id:l}),!0}return!1}};function or(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=rr(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=B(e,f),{undos:h,redos:g}=d.onCommandExecute({id:ar.id,params:{...f,range:s}});r.push({id:V.id,params:f},...g),i.push({id:V.id,params:m},...h)}return{redo:r,undo:i}}function sr(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:yn([s])},p=B(e,d),m=u.onCommandExecute({id:ar.id,params:d});if(r.push({id:V.id,params:d},...m.redos),i.push(...m.undos,{id:V.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=rr(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 cr(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 lr(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 ur=`sheet.command.delete-range-move-left`,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(U),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:dr.id,params:{range:g}}),{redo:b,undo:x}=sr(e,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(Wn(g,f,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,t.sequenceExecute)(S,a).result){let e=l.afterCommandExecute({id:dr.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}},fr=`sheet.command.delete-range-move-up`,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(U),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:pr.id,params:{range:g}}),{redo:y,undo:b}=sr(e,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Wn(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,t.sequenceExecute)(x,a).result){let e=l.afterCommandExecute({id:pr.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}},mr=`sheet.command.insert-range-move-down`,hr={type:t.CommandType.COMMAND,id:mr,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(U),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:P.id,params:i});let a=xe(e,i);x.push({id:I.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}=or(e,{range:v,subUnitId:h,unitId:m,shiftDimension:t.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:hr.id,params:{range:v}});if(b.push(...k.redos),b.push(Wn(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).result){let e=l.afterCommandExecute({id:hr.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}},gr=`sheet.command.insert-range-move-right`,_r={type:t.CommandType.COMMAND,id:gr,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(U),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:F.id,params:i});let a=Se(e,i);x.push({id:L.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}=or(e,{range:v,subUnitId:_,unitId:g,shiftDimension:t.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let k=l.onCommandExecute({id:_r.id,params:{range:v}});if(b.push(...k.redos),b.push(Wn(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:_r.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}},vr=`sheet.command.insert-row`,yr={type:t.CommandType.COMMAND,id:vr,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:yr.id,params:n})?r.syncExecuteCommand(br.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},br={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:P.id,params:S}],E=[{id:I.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:yr.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Wn(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:yr.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}},xr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(U).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:Jn(s,d,f,0,m,!0,d-1)};return e.get(t.ICommandService).executeCommand(yr.id,h)}},Sr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(U).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:Jn(o,u,d,0,f,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(yr.id,m)}},Cr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(U).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=Jn(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(yr.id,g)}},wr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(U).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:Jn(s,d,f,0,m,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(yr.id,h)}},Tr=`sheet.command.insert-col`,Er={type:t.CommandType.COMMAND,id:Tr,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:Er.id,params:n})?r.syncExecuteCommand(Dr.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},Dr={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=Se(e,S),T=[{id:F.id,params:S}],E=[{id:L.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:Er.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Wn(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:Er.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}},Or={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(U).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:Jn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Er.id,m)}},kr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(U).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:Jn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(Er.id,f)}},Ar={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(U).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:Jn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Er.id,m)}},jr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(U).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:Jn(o,0,f,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(Er.id,m)}},Mr=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Wn(e,t,n);r.executeCommand(i.id,i.params)}},300),Nr=`sheet.command.remove-row`,Pr={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=wn([c],e,l,u).reverse(),f=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=Oe(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:I.id,params:r}),t.push({id:P.id,params:i}),t.push({id:V.id,params:a}),m.push(...n),f.unshift(...t)});let h=s.onCommandExecute({id:Nr,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;Mr(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?[]:_,...f,...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,...m,...h.redos,...n.redos]}),!0}return!1}},Fr={type:t.CommandType.COMMAND,id:Nr,handler:async(e,n)=>{var r;let i=p(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=e.get(U),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:Fr.id,params:{range:o}})?c.syncExecuteCommand(Pr.id,{range:o,unitId:u,subUnitId:d}):!1}},Ir=`sheet.command.remove-col`,Lr={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=ke(e,d),m={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(0,o.getRowCount()-1,c.startColumn,c.endColumn).getMatrix()},h=s.onCommandExecute({id:Ir,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:L.id,params:d},...h.redos],g).result){var _,v;Mr(c,a,o,g);let n=s.afterCommandExecute({id:Ir,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:F.id,params:f},{id:V.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:L.id,params:d},...h.redos,...n.redos]}),!0}return!1}},Rr={type:t.CommandType.COMMAND,id:Ir,handler:async(e,n)=>{var r;let i=e.get(U),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:Rr.id,params:{range:s}})?o.syncExecuteCommand(Lr.id,{range:s,unitId:d,subUnitId:u}):!1}},zr=(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}},Br={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 Vr(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function Hr(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let Ur=`sheet.command.move-rows`,Wr={id:Ur,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[qr(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=Vn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Vr(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=we(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Wr.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:Te.id,params:w}],k=[...(i=D.preUndos)==null?[]:i,{id:Te.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:2,selections:[{range:n,primary:W(n,h),style:null}]},i={unitId:g,subUnitId:_,type:2,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:r}),k.push({id:G.id,params:i})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Wr.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}},Gr=`sheet.command.move-cols`,Kr={id:Gr,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[qr(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=Vn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Hr(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=Ee(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:Kr.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=b.endColumn-b.startColumn+1,t=s-o<0?C:{...C,startColumn:C.startColumn-e,endColumn:C.endColumn-e},n={unitId:g,subUnitId:_,type:2,selections:[{range:t,primary:W(t,h),style:null}]},r={unitId:g,subUnitId:_,type:2,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:n}),k.push({id:G.id,params:r})}if(O.push(...D.redos),k.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Kr.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 qr(e){return{range:e,primary:null,style:null}}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:je.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:je.id,params:Ae(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}=Ln([s],e.get(Fn).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}},K={MoveRangeCommandId:$n,InsertRowCommandId:vr,InsertColCommandId:Tr,RemoveColCommandId:Ir,RemoveRowCommandId:Nr,DeleteRangeMoveLeftCommandId:ur,DeleteRangeMoveUpCommandId:fr,InsertRangeMoveDownCommandId:mr,InsertRangeMoveRightCommandId:gr,MoveColsCommandId:Gr,MoveRowsCommandId:Ur,ReorderRangeCommandId:Jr},Xr=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:1}]:[{type:3,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:1}]:[{type:2,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:1}),t.Rectangle.contains(o,n)){s.push({type:1});let e=t.Rectangle.getRelativeRange(n,o);return[{type:0,range:t.Rectangle.getPositionRange(e,a)}]}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:1});else{let{step:e,length:t}=a;i.push({type:2,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:1});else{let{step:e,length:t}=n;a.push({type:3,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:3,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:1}),t.Rectangle.contains(e,r)){i.push({type:1});let a=t.Rectangle.getRelativeRange(r,e);return[{type:0,range:t.Rectangle.getPositionRange(a,n)}]}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:3,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:2,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:3,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:2,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:1});else{let{step:e,length:t}=a;i.push({type:2,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:1});else{let{step:e,length:t}=a;i.push({type:3,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 1:n=null;break;case 2:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case 3:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case 0:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Di=(e,t)=>{let n=[];switch(t.id){case K.DeleteRangeMoveLeftCommandId:n=yi(t,e);break;case K.DeleteRangeMoveUpCommandId:n=xi(t,e);break;case K.InsertColCommandId:n=mi(t,e);break;case K.InsertRangeMoveDownCommandId:n=hi(t,e);break;case K.InsertRangeMoveRightCommandId:n=_i(t,e);break;case K.InsertRowCommandId:n=pi(t,e);break;case K.MoveColsCommandId:n=ri(t,e);break;case K.MoveRangeCommandId:n=ai(t,e);break;case K.MoveRowsCommandId:n=ei(t,e);break;case K.RemoveColCommandId:n=ci(t,e);break;case K.RemoveRowCommandId:n=li(t,e);break;case K.ReorderRangeCommandId:n=ui(t,e);break}return Ei(n,e)},Oi=(e,n,r)=>[dr.id,pr.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 K.DeleteRangeMoveLeftCommandId:return bi(t,e);case K.DeleteRangeMoveUpCommandId:return Si(t,e);case K.InsertRangeMoveDownCommandId:return gi(t,e);case K.InsertRangeMoveRightCommandId:return vi(t,e);case K.InsertColCommandId:return Ti(t,e);case K.InsertRowCommandId:return wi(t,e);case K.MoveColsCommandId:return ii(t,e);case K.MoveRangeCommandId:return oi(t,e);case K.MoveRowsCommandId:return ti(t,e);case K.ReorderRangeCommandId:return ni(t,e);case K.RemoveColCommandId:n=ci(t,e);break;case K.RemoveRowCommandId:return Ci(t.params,e)}let r=Ei(n,e);return r?[r]:[]},Ai=(e,n,r)=>[dr.id,pr.id,hr.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:4};switch(r){case Br.id:a.type=1;break;case Te.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=3;break;case De.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=2;break;case L.id:a=si(i.range,e),a?a.type=2:a={step:0,length:0,type:1};break;case I.id:a=si(Qr(i.range),Qr(e)),a?a.type=3:a={step:0,length:0,type:1};break;case P.id:a=di(Qr(i.range),Qr(e)),a.type=3;break;case F.id:a=di(i.range,e),a.type=2;break;case Ce.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 K.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case K.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case K.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case K.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case K.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case K.RemoveRowCommandId:return[e.params.range];case K.RemoveColCommandId:return[e.params.range];case K.DeleteRangeMoveUpCommandId:case K.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 K.DeleteRangeMoveLeftCommandId:case K.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 K.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 De.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case Te.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Ce.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case F.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case P.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case L.id:return[e.params.range];case I.id:return[e.params.range];default:break}}function Pi(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case K.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 K.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 K.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 K.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 K.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 K.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 K.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 K.DeleteRangeMoveUpCommandId:case K.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 K.DeleteRangeMoveLeftCommandId:case K.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 K.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===Ce.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===Br.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 K.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 K.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 K.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 K.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 K.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 K.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 K.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 K.DeleteRangeMoveUpCommandId:case K.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 K.DeleteRangeMoveLeftCommandId:case K.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 K.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)(U))],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=[F.id,P.id,L.id,I.id],Wi=[Te.id,De.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 zn.id:case Bn.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=R(e._injector,t);return{redos:[{id:z.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:z.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 K.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case K.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case yr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case Er.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Rr.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case Fr.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case er.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case _r.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case hr.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case pr.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case dr.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===Ft.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:K.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:z.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:K.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=h(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:g.id,params:s}],preUndos:[{id:z.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:z.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:z.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:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:z.id,params:d},{id:g.id,params:p}],undos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{redos:[{id:z.id,params:d},{id:g.id,params:p}],undos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}];return{preUndos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:g.id,params:p}],preUndos:[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}],y=[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p),_=[{id:z.id,params:d}],v=[{id:g.id,params:p}],y=[{id:z.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=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=h(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:g.id,params:p}],undos:[{id:g.id,params:f}],preUndos:[{id:z.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)(U))],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(U).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={unitId:s,subUnitId:c,type:3,selections:i.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null}))};return{id:G.id,params:h}}return null}return null},Zi=(e,t)=>{let n=e.get(U).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:3,selections:[...n]};return{id:G.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(U),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=R(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=B(e,b),S=[{id:z.id,params:h},{id:V.id,params:b},{id:G.id,params:{unitId:u,subUnitId:l,selections:y,type:3}}],C=[{id:g.id,params:h},{id:V.id,params:x},{id:G.id,params:{unitId:u,subUnitId:l,selections:v,type:3}}];return(0,t.sequenceExecute)(S,a).result?(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}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=B(e,s);i.push({id:V.id,params:c}),a.push({id:V.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=Gi(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=R(e,_),b=h(e,v);if(y.ranges.length>0&&f.push({id:z.id,params:y}),f.push({id:g.id,params:v}),m.push({id:z.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=Xi(e,n,u);x&&f.push(x);let S=Zi(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=la(`mergeAll`,(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{selections:r,unitId:o,subUnitId:s})}},oa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=la(`mergeVertical`,(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{value:t.Dimension.COLUMNS,selections:r,unitId:o,subUnitId:s})}},sa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=la(`mergeHorizontal`,(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=p(e.get(t.IUniverInstanceService));if(!i)return!1;let{workbook:a,worksheet:o}=i,s=a.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(ia.id,{value:t.Dimension.ROWS,selections:r,unitId:s,subUnitId:c})}};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(Qi.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===`mergeAll`?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===`mergeVertical`?t.filter(e=>e.startRow!==e.endRow):e===`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=B(e,f),m=[{id:V.id,params:f}],h=[{id:V.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:P.id,params:t}),h.push({id:I.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=Se(e,t);m.unshift({id:F.id,params:t}),h.push({id:L.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(U),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=Kn(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(Fn).getSkeleton(a,o),y=B(e,_),b=null;if(ga.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=Ln(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:In(e,s)}}let x=u.syncExecuteCommand(V.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:V.id,params:y},...T,...C],redoMutations:[{id:V.id,params:_},...E,...w]}),!0):!1}},_a={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(U).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(U).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(U).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(U).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(U).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=[...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 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){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 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=e[e.length-1],o=Va(`${a==null?void 0:a.v}`);if(!o.isExtendNumber)return Ja(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(uo(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 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,s: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},ho=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),go=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}({}),_o=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:vo,fillChnNumber:yo,fillChnWeek:bo,fillCopy:xo,fillExtendNumber:So,fillLoopSeries:Co,fillSeries:wo,getLoopSeriesInfo:To,isChnNumber:Eo,isChnWeek2:Do,isChnWeek3:Oo,isEqualDiff:ko,isLoopSeries:Ao,matchExtendNumber:jo,reverseIfNeed:Mo}=mo,No={dateRule:{type:`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===`date`,applyFunctions:{SERIES:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),wo(i,n,r).reverse()):wo(i,n,r)}}},numberRule:{type:`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===`number`,applyFunctions:{SERIES:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),wo(i,n,r).reverse()):wo(i,n,r)}}},extendNumberRule:{type:`extendNumber`,priority:900,match:e=>jo(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===`extendNumber`){var n;let r=jo(`${(n=e.cellData)==null?void 0:n.v}`||``),i=jo(`${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:{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,Mo(So(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=jo(`${(c=i[e])==null?void 0:c.v}`);t.isExtendNumber&&s.push(t.matchNumber)}if(a&&(i.reverse(),s.reverse()),ko(s)){let e=i.length;return o=s[e-1]-s[e-2],Mo(So(i,n,o),a)}return xo(i,n)}}},chnNumberRule:{type:`chnNumber`,priority:830,match:e=>!!Eo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===`chnNumber`,applyFunctions:{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===`日`||vo(e)<7)?Mo(bo(i,n,t),a):Mo(yo(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&&vo(t)>0&&vo(t)<7?l.push(vo(t)+u*7):l.push(vo(t))}if(a&&(i.reverse(),l.reverse()),ko(l)){if(s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0){let e=i.length;return Mo(bo(i,n,l[e-1]-l[e-2]),a)}return Mo(yo(i,n,l[1]-l[0]),a)}return xo(i,n)}}},chnWeek2Rule:{type:`chnWeek2`,priority:820,match:e=>!!Do(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===`chnWeek2`,applyFunctions:{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,Mo(bo(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(vo(n)+s*7)}if(a&&(i.reverse(),o.reverse()),ko(o)){let e=i.length;return Mo(bo(i,n,o[e-1]-o[e-2],1),a)}return xo(i,n)}}},chnWeek3Rule:{type:`chnWeek3`,priority:810,match:e=>Oo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===`chnWeek3`,applyFunctions:{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,Mo(bo(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(vo(n)+s*7)}}if(a&&(i.reverse(),o.reverse()),ko(o)){let e=i.length;return Mo(bo(i,n,o[e-1]-o[e-2],2),a)}return xo(i,n)}}},loopSeriesRule:{type:`loopSeries`,priority:800,match:e=>Ao(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===`loopSeries`){var n;return To(`${(n=e.cellData)==null?void 0:n.v}`||``).name===To(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{SERIES:(e,n,r)=>{var i;let{data:a}=e,o=r===t.Direction.LEFT||r===t.Direction.UP,{series:s}=To(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,Mo(Co(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()),ko(c)){let e=a.length;return Mo(Co(a,n,c[e-1]-c[e-2],s),o)}return xo(a,n)}}},otherRule:{type:`other`,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===`other`}},{chnNumberRule:Po,chnWeek2Rule:Fo,chnWeek3Rule:Io,dateRule:Lo,extendNumberRule:Ro,loopSeriesRule:zo,numberRule:Bo,otherRule:Vo}=No,Ho=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(`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:`COPY`,disable:!1},{label:`autoFill.series`,value:`SERIES`,disable:!1},{label:`autoFill.formatOnly`,value:`ONLY_FORMAT`,disable:!1},{label:`autoFill.noFormat`,value:`NO_FORMAT`,disable:!1}])),w(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Lo,Bo,Ro,Po,Fo,Io,zo,Vo].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(Yo.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(Yo.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=>Cn(r,e)),u=this._injector.invoke(e=>Cn(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=`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===`ONLY`);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===`DEFAULT`)),s=i.filter(e=>e.type===`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(Sn(o),Sn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(G.id,{selections:[{primary:W({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===`NO_FORMAT`)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(e.forEach(e=>{if(e.id===V.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=At(s,r),l={id:Nt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Nt.id,params:c}]}:{undos:[],redos:[]}}};Ho=E([T(0,t.ICommandService),T(1,t.IUndoRedoService),T(2,(0,t.Inject)(t.IUniverInstanceService)),T(3,(0,t.Inject)(t.Injector))],Ho);let Uo=(0,t.createIdentifier)(`univer.auto-fill-service`),Wo={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(Uo).triggerAutoFill(i,a,o,s,c)}};function Go(e,n){let r=e.get(U).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:`COPY`}:{sourceRange:{startRow:s,endRow:s,startColumn:l,endColumn:u},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:`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:`COPY`}:{sourceRange:{startRow:s,endRow:c,startColumn:l,endColumn:l},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:`COPY`}}async function Ko(e,n){let r=Go(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand(Wo.id,r);return i&&e.get(Uo).setShowMenu(!1),i}let qo={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>Ko(e,`down`)},Jo={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>Ko(e,`right`)},Yo={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(U),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:f,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:bn([u])},g=B(e,h),_=[{id:V.id,params:h},{id:G.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:V.id,params:g},{id:G.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i).result){let e=o.afterCommandExecute({id:V.id,params:h});return(0,t.sequenceExecute)(e.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...e.undos],redoMutations:[..._,...e.redos]}),!0}return!1}},Xo={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(U),{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(Fn).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(A),m=[],h=[],g={subUnitId:s,unitId:o,cellValue:bn(wn(c,e,o,s))},_=B(e,g);m.push({id:V.id,params:g}),h.push({id:V.id,params:_});let v=f.onCommandExecute({id:Xo.id,params:n});m.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(m,u),{suitableRanges:b,remainingRanges:x}=Ln(c,l),{undos:S,redos:C}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:s,ranges:b,autoHeightRanges:b,lazyAutoHeightRanges:x}),w=(0,t.sequenceExecute)(C,u);return y.result&&w.result?(m.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},Zo=`sheets.config`;Symbol(Zo);let Qo={largeSheetCellCountThreshold:6e3,batchSize:3e3},$o={},es=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)}};es=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService)],es);let ts={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},ns=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),rs={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 is(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 as(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:V.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}let os=`sheet.command.copy-sheet`;function ss(e,n,r,i,a,o,s){var c,l;let u=e.get(t.IConfigService).getConfig(Zo),d={...Qo,...u==null?void 0:u.largeSheetOperation},f=(0,t.cloneWorksheetData)(r.getConfig());f.name=ls(n,o,f.name);let p=(0,t.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=is(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=as(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=ns(e,_),b=s.onCommandExecute({id:os,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:rs.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:Br.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}let cs={type:t.CommandType.COMMAND,id:os,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(es),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}=ss(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(ts.id,{unitId:f,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(f,_,y)}}else i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:h});return!0}return!1}};function ls(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 us={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(On.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:On.id,params:c}],undoMutations:[{id:An.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},ds={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}},fs={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}},ps={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}},ms={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=d==null?void 0:d.name,h=(0,t.mergeWorksheetSnapshotWithDefault)(d||{});if(n){var g;u=(g=n.index)==null?u:g,h.id=p||(0,t.generateRandomId)(),h.name=m?l.uniqueSheetName(m):l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else h.id=(0,t.generateRandomId)(),h.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let _={index:u,sheet:h,unitId:c},v=ns(e,_);return r.syncExecuteCommand(rs.id,_)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Br.id,params:v}],redoMutations:[{id:rs.id,params:_}]}),!0):!1}},hs={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(Uo).fillData(t.type)},gs={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}},_s={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}},vs={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(gs.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:_s.id,params:l}],redoMutations:[{id:gs.id,params:c}]}),!0}},ys={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:ys.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).result?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},bs={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(Zo),_={...Qo,...g==null?void 0:g.largeSheetOperation},v=Rn(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:f,unitId:d,subUnitName:h.getName()},b=v?null:zr(e,y),x=c.onCommandExecute({id:bs.id,params:{unitId:d,subUnitId:f}}),S=[...(r=x.preRedos)==null?[]:r,{id:Br.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:rs.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 xs=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 Ss(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 Cs=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||Ss(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}})}})},ws=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 Ts(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}=ws(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 Es=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&Ss(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&&Ss(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 Ds(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)=>{Cs(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 Os=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)=>{Cs(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))},ks=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)=>{Cs(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(Ss(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))},As={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(U),c=e.get(xs),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=Ts(c,l,u);Es(f),Os(f),Ds(f),ks(f);let{unitId:m,subUnitId:h,mr:g}=f,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=B(e,_);return i.syncExecuteCommand(V.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:V.id,params:v}],redoMutations:[{id:V.id,params:_}]}),!0):!1}},js={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(xs).setType(n.value),r.syncExecuteCommand(As.id)}},Ms={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(xs).setStyle(n.value),r.syncExecuteCommand(As.id)}},Ns={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(xs).setColor(n.value),r.syncExecuteCommand(As.id)}},Ps={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(xs);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(As.id,{unitId:r,subUnitId:i,ranges:o})}},Fs={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=Pe(u,l);return r.syncExecuteCommand(Fe.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Fe.id,params:d}],redoMutations:[{id:Fe.id,params:u}]}),!0):!1}},Is={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:W(e,l),style:null}))},f=Re(e,u),m={unitId:r,subUnitId:i,selections:Bs(a).map(e=>({range:e,primary:W(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:ze.id,params:u},{id:G.id,params:d}],s),g=o.onCommandExecute({id:Is.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:Is.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Le.id,params:f},{id:G.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:ze.id,params:u},{id:G.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Ls={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var n;let r=e.get(U),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(Is.id,{unitId:c,subUnitId:l,ranges:u})}},Rs={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r,i;let a=e.get(U),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=zs(u.worksheet,l);let h={unitId:f,subUnitId:m,ranges:l},g={unitId:f,subUnitId:m,selections:Bs(l).map(e=>({range:e,primary:W(e,d),style:null}))},_=Ie(e,h),v={unitId:f,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:W(e,d),style:null}))},y=(0,t.sequenceExecute)([{id:Le.id,params:h},{id:G.id,params:g}],c),b=o.onCommandExecute({id:Rs.id,params:h}),x=(0,t.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:Rs.id,params:h});return(0,t.sequenceExecute)(n.redos,c),e.get(t.IUndoRedoService).pushUndoRedo({unitID:f,undoMutations:[{id:ze.id,params:_},{id:G.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Le.id,params:h},{id:G.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function zs(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 Bs(e){return Vs(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Vs(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 Hs={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:Hs.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).result?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Us=(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}},Ws={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}},Gs={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=Us(e,m);return r.syncExecuteCommand(Ws.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Ws.id,params:h}],redoMutations:[{id:Ws.id,params:m}]}),!0):!1}},Ks={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=Us(e,l);return r.syncExecuteCommand(Ws.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:Ws.id,params:u}],redoMutations:[{id:Ws.id,params:l}]}),!0}},qs={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(Be.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Be.id,params:d}],redoMutations:[{id:Be.id,params:u}]}),!0):!1}},J={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(H).setRule(n,r,a,i),!0}},Js=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(H).getRule(n,r,i);return a?{id:J.id,params:{...t,rule:a}}:null},Ys={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}},Xs={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(H),{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:Ys.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:Ys.id,params:{unitId:l,subUnitId:u,rule:c}})):(d.push({id:J.id,params:{unitId:l,subUnitId:u,rule:s,ruleId:s.id}}),f.push({id:J.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:On.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:An.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:An.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:On.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,t.sequenceExecute)(d,r).result&&i.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},Zs={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(V.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},Qs={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=mt(u,l);return r.syncExecuteCommand(ht.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:ht.id,params:d}],redoMutations:[{id:ht.id,params:u}]}),!0):!1}},$s={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:W(e,u),style:null}))},m=gt(e,d),h={unitId:r,subUnitId:i,selections:rc(a).map(e=>({range:e,primary:W(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:_t.id,params:d},{id:G.id,params:f}],o),_=c.onCommandExecute({id:$s.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let e=c.afterCommandExecute({id:$s.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:yt.id,params:m},{id:G.id,params:h},...(b=_.undos)==null?[]:b,...e.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:_t.id,params:d},{id:G.id,params:f},..._.redos,...e.redos]}),!0}return!0}},ec={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var n;let r=e.get(U),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($s.id,{unitId:l,subUnitId:u,ranges:d})}},tc={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r,i,a;let o=e.get(U),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=nc(f.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=f,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:rc(d).map(e=>({range:e,primary:W(e,g),style:null}))},y=vt(e,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:W(e,g),style:null}))},x=u.onCommandExecute({id:tc.id,params:_});if((0,t.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:yt.id,params:_},{id:G.id,params:v},...x.redos],s).result){var S,C,w;let e=u.afterCommandExecute({id:tc.id,params:_});return(0,t.sequenceExecute)(e.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:_t.id,params:y},{id:G.id,params:b},...(C=x.undos)==null?[]:C,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:yt.id,params:_},{id:G.id,params:v},...x.redos,...e.redos]}),!0}return!0}};function nc(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 rc(e){return ic(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function ic(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 ac=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},oc={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}},sc={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=ac(e,c);return r.syncExecuteCommand(oc.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:oc.id,params:l}],redoMutations:[{id:oc.id,params:c}]}),!0):!1}},cc={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}},lc={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:lc.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:cc.id,params:s},...o.redos],i).result}},uc={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(Ft.id,{unitId:o,subUnitId:s},r))},4)})}},dc={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(U).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(Fn).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=Ln(_.ranges,v);In(y,s);let x=e.get(A),{undos:S,redos:C}=x.onCommandExecute({id:dc.id,params:_}),w=bt(_,s),T=i.syncExecuteCommand(xt.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:dc.id,params:_}),ee=(0,t.sequenceExecute)([...C,...k,...D],i);return T&&ee.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:xt.id,params:w},...S,...O,...E],redoMutations:[{id:xt.id,params:_},...C,...k,...D]}),!0}},fc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(U),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(Fn).getSkeleton(f,d),g={subUnitId:d,unitId:f,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=Ln(g.ranges,h);In(_,m);let y=bt(g,m),b=o.syncExecuteCommand(xt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:fc.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let e=c.afterCommandExecute({id:fc.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:xt.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:xt.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},pc={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(U),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:pc.id,params:u});return(0,t.sequenceExecute)([...f],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...f]}),!0):!1}},mc={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=St(e,c);return o.syncExecuteCommand(Ct.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Ct.id,params:l}],redoMutations:[{id:Ct.id,params:c}]}),!0):!1}},hc={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=Tt(e,n);return r.syncExecuteCommand(wt.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:wt.id,params:o}],redoMutations:[{id:wt.id,params:n}]}),!0):!1}},gc=(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()}},_c={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}},vc={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=gc(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(_c.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:_c.id,params:m}],redoMutations:[{id:_c.id,params:f}]}),!0):!1}},yc=(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()}},bc={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}},xc={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=yc(e,d),m=s.onCommandExecute({id:xc.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:bc.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:bc.id,params:f},...m.undos];return(0,t.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},Sc=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),Cc={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}},wc={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=Sc(e,l);return r.syncExecuteCommand(Cc.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Cc.id,params:u}],redoMutations:[{id:Cc.id,params:l}]}),!0):!1}};var Tc=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]}},Ec=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}`}},Y=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}`}},Dc=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}`}},Oc=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 X=()=>[Oc,Y,Dc,Ec],kc=[a.UnitAction.Edit,a.UnitAction.View,a.UnitAction.ManageCollaborator,a.UnitAction.Delete],Ac=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>X().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}`}},Z=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}`}},Q=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=()=>[Z,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],$=()=>[Q,gl,sl,el],yl=()=>[Qc,$c,tl,nl,rl,il,ol,al,cl,dl,fl,pl,ml,hl],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();[...$(),...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=>{[...X()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...$(),...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(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();$().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`:$().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:$().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=>{$().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()].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=>{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)(Tc)),T(5,(0,t.Inject)(t.IResourceManagerService)),T(6,(0,t.Inject)(H)),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(Tc).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(Ys.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:Ys.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:Ys.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=Et(e,c);return o.syncExecuteCommand(Dt.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Dt.id,params:l}],redoMutations:[{id:Dt.id,params:c}]}),!0):!1}},kl={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(U).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 _=Ot(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=kt(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:jt.id,params:g},{id:Mt.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:jt.id,params:_},{id:Mt.id,params:y},...S.undos,...e.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:jt.id,params:g},{id:Mt.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(U),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},_=Ot(g,h),v={unitId:f,subUnitId:m,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=kt(v,h),b=(0,t.sequenceExecute)([{id:jt.id,params:g},{id:Mt.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:jt.id,params:_},{id:Mt.id,params:y},...x.undos,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:jt.id,params:g},{id:Mt.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(U),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=kt(m,d),g=a.syncExecuteCommand(Mt.id,m),_=e.get(Fn).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=Ln(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:Mt.id,params:h},...C,...x],redoMutations:[{id:Mt.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=gc(e,l),d=s.syncExecuteCommand(_c.id,l),f={unitId:i,subUnitId:a},m=s.syncExecuteCommand(Ft.id,f);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:_c.id,params:u}],redoMutations:[{id:_c.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}=mn(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:F.id,params:t});let n=Se(e,t);b.push({id:L.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=B(e,w);return y.push({id:V.id,params:w}),b.unshift({id:V.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=rn(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=rn(t.ranges)}),[{id:Il.id,params:c}]},zl=(e,n,r)=>{let i=hn(r,`pattern`),a={},o={},s=gn();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(U).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:V.id,params:g}],v=[{id:V.id,params:B(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:V.id,params:g},v=B(e,g),y={id:V.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(Pt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Pt.id,params:d}],redoMutations:[{id:Pt.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(gs.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:gs.id,params:u}],redoMutations:[{id:_s.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}=No,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:`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(`SERIES`,!0),`COPY`):(this._autoFillService.setDisableApplyType(`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===`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===`COPY`){let t=a==null?void 0:a.COPY;return t?t(e,n,r,o,s):(l&&c.reverse(),eu(c,n))}if(i===`SERIES`){let t=a==null?void 0:a.SERIES;return t?t(e,n,r,o):(l&&c.reverse(),a!=null&&a.COPY?a.COPY(e,n,r,o,s):eu(c,n))}if(i===`ONLY_FORMAT`){let t=a==null?void 0:a.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===`NO_FORMAT`&&(s=!1,r=`SERIES`);let{source:c,target:l,unitId:u,subUnitId:d}=e;if(!c||!l||n==null)return{undos:a,redos:o};let f=Sn(c),p=Sn(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===`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(R,t);o.push({id:z.id,params:t}),a.unshift({id:g.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:nu([l])},D=this._injector.invoke(B,E);o.push({id:V.id,params:E}),a.unshift({id:V.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(B,A);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,k)}),a.unshift({id:V.id,params:ee}),o.push({id:V.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:z.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||[`other`,`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&&t===`number`}))?`COPY`:`SERIES`}};iu=E([T(0,t.IUniverInstanceService),T(1,Uo),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,r.IDefinedNamesService),T(1,t.IResourceManagerService)],ou);let su=[Ws.id],cu=[P.id,F.id,I.id,L.id,Te.id,De.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===P.id?this._handleInsertRowMutation(r,t):n===F.id?this._handleInsertColMutation(r,t):n===I.id?this._handleRemoveRowMutation(r,t):n===L.id?this._handleRemoveColMutation(r,t):n===Te.id?this._handleMoveRowsMutation(r,t):n===De.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:Ws.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===bc.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 ar.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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},a),i=this._localeService.t(`permission.dialog.editErr`));break;case q.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[dl,Q],rangeTypes:[Y]},a.range?[a.range]:void 0,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setStyleErr`);break;case As.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[dl,Q],rangeTypes:[Y]},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 zn.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,dl,Q],rangeTypes:[Y]},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 Xo.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},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 Bn.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[dl,Q],rangeTypes:[Y]},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 dc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[pl]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case fc.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[pl]},a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case kl.id:r=this.permissionCheckWithoutRange({worksheetTypes:[ml]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Al.id:case jl.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[ml]},a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Wr.id:case Kr.id:a=e.params,r=this._permissionCheckByMoveRowsColsCommand(a),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case er.id:a=e.params,r=this._permissionCheckByMoveRangeCommand(a),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case br.id:case Dr.id:a=e.params,r=this._permissionCheckByInsertRowColCommand(a),i=this._localeService.t(`permission.dialog.insertRowColErr`);break;case Pr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Lc],worksheetTypes:[Q,tl],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case Lr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Ic],worksheetTypes:[Q,$c],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.removeRowColErr`);break;case wc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,Gc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case xc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,Jc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Ml.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,Vc],a),i=this._localeService.t(`permission.dialog.operatorSheetErr`);break;case Is.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,pl],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case $s.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,ml],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Ls.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,pl],rangeTypes:[Y]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ec.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,ml],rangeTypes:[Y]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case _r.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`right`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case hr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`down`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case dr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`left`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case pr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`up`,a),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Wo.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[a.targetRange],a.unitId,a.subUnitId),i=this._localeService.t(`permission.dialog.autoFillErr`);break;case ps.id:case Hs.id:case ys.id:a=e.params,r=!a.localSheetId||a.localSheetId===`AllDefaultWorkbook`?this.permissionCheckWithoutRange({workbookTypes:[Z]},a.unitId):this.permissionCheckWithoutRange({workbookTypes:[Z],worksheetTypes:[Q]},a.unitId,a.localSheetId),i=this._localeService.t(`permission.dialog.editErr`);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 Y(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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[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:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[r],s.unitId,s.subUnitId)?!1:this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[fl,Q],rangeTypes:[Y]},[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:[Z],worksheetTypes:[Q],rangeTypes:[Y]};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:[Z],worksheetTypes:[Q],rangeTypes:[Y]},[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)(U)),T(4,(0,t.Inject)(H)),T(5,(0,t.Inject)(ua)),T(6,(0,t.Inject)(t.LocaleService)),T(7,(0,t.Inject)(r.LexerTreeBuilder)),T(8,r.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();_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=>{[...X()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...$(),...yl()].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)}};du=E([T(0,(0,t.Inject)(t.IPermissionService)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,(0,t.Inject)(H)),T(3,(0,t.Inject)(ua)),T(4,(0,t.Inject)(Tc))],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: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;X().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:kc}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(X().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()].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||($().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: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: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;[...$(),...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();_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()].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=>{X().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=``;$().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:kc}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;X().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===An.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)(H)),T(4,(0,t.Inject)(ua)),T(5,(0,t.Inject)(t.UserManagerService)),T(6,(0,t.Inject)(Tc)),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 P.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case _t.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case yt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case I.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case jt.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=>X().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=X().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)(H)),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.disposeWithMe(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.disposeWithMe(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.disposeWithMe(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 Y(e,t,n.permissionId))==null?void 0:o.id))==null?void 0:i.value)==null?!1:r,_=(s=(c=this._permissionService.getPermissionPoint((l=new Oc(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 Dc(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 Ec(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.disposeWithMe(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.disposeWithMe(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)(H)),T(1,(0,t.Inject)(t.IPermissionService)),T(2,(0,t.Inject)(t.IUniverInstanceService))],hu);var gu=`@univerjs/sheets`,_u=`0.23.0-insiders.20260522-e8f2a3b`;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===Br.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Br.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===_c.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===rs.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===_c.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===G.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(Ft.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,[V,F,P,rs,Ce,Te,De,L,I,Br,z,Ll,g,cc,bc,Il,je,Gl,yt,_t,Yl,Xl,ts,Dt,Ct,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,zn,Xo,Bn,cs,dr,pr,dc,kl,kr,Or,Ar,jr,Dr,Er,hr,_r,Sr,xr,wr,Cr,br,yr,ms,Kr,er,Wr,Pr,Rr,Lr,Fr,bs,Yr,Qi,Da,Ta,Ea,Ps,Ns,As,js,Ms,Rs,Le,ze,fc,Fs,Fe,Gs,Ws,Ks,ka,Zs,ar,Al,tc,Qs,ht,Ls,ec,Is,$s,q,sc,oc,wa,ja,Aa,Oa,lc,uc,Ft,vc,_c,xc,wc,Cc,Nt,jt,jl,Mt,xt,Ol,mc,Qn,G,Zl,ps,ys,Hs,Ml,Hl,Pt,qs,Be,Bl,Cl,da,Ys,fa,Sl,jn,Xs,us,pa,ds,wl,An,On,J,Vl,wt,hc,Nl,ye,_e,_s,gs,Ul,vs,ma,fs,Wl,Jl,ql,Wo,qo,Jo,Yo,hs].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!==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:V.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()}};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,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)}}))}};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 gl(r,i).id))==null?void 0:c.value)==null?!1:s,[a.UnitAction.Edit]:(l=(u=this._permissionService.getPermissionPoint(new Q(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=[F.id,P.id,L.id,I.id],Ou=[Te.id,De.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===uc.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===J.id||t.id===An.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 Wr.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Kr.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case yr.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case Er.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Rr.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case Fr.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:J.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:J.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})):(e.push({id:On.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:An.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:J.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:J.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:J.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:J.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===bs.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:On.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:An.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)(H)),T(1,(0,t.Inject)(t.IUniverInstanceService)),T(2,t.ICommandService),T(3,(0,t.Inject)(Ri)),T(4,(0,t.Inject)(mu)),T(5,(0,t.Inject)(hu)),T(6,(0,t.Inject)(A)),T(7,(0,t.Inject)(H))],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`:X().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:X().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&&X().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=>{X().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)(H)),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=$o,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},$o,this._config);this._configService.setConfig(Zo,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=[[xs],[es],[U],[Ri],[du],[Pl,{useClass:Eu}],[A],[ju],[Fn],[bu],[qi],[Su],[ou],[pu],[lu],[xl],[ua],[Tc],[Cu],[fu],[uu],[N],[mu],[H],[hu],[ku],[Au],[wu,{useClass:Tu,deps:[U]}],[Uo,{useClass:Ho}],[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],[qi],[du],[xl],[Cu],[Fn],[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],[Ri],[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)(r.UniverFormulaEnginePlugin),T(1,(0,t.Inject)(t.Injector)),T(2,t.IConfigService)],Mu);let Nu={WorkbookCommentPermission:jc,WorkbookCopyPermission:Mc,WorkbookCreateProtectPermission:Pc,WorkbookCreateSheetPermission:Fc,WorkbookDeleteSheetPermission:Rc,WorkbookDuplicatePermission:zc,WorkbookEditablePermission:Z,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:Q,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:Y,RangeProtectionPermissionViewPoint:Oc},Pu=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(H),s=a.getPermissionPoint(new Z(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new Q(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 Y(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,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=Hu(r,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=Hu(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 Ku(e,t,n,r,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,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=ga,e.AFTER_CELL_EDIT=O,e.AUTO_FILL_APPLY_TYPE=ho,e.AUTO_FILL_DATA_TYPE=go,e.AUTO_FILL_HOOK_TYPE=_o,e.AddMergeRedoSelectionsOperationFactory=Xi,e.AddMergeUndoMutationFactory=h,e.AddMergeUndoSelectionsOperationFactory=Zi,e.AddRangeProtectionCommand=jn,e.AddRangeProtectionMutation=An,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=Yo,e.AutoFillCommand=Wo,Object.defineProperty(e,`AutoFillController`,{enumerable:!0,get:function(){return iu}}),e.AutoFillRules=No,Object.defineProperty(e,`AutoFillService`,{enumerable:!0,get:function(){return Ho}}),e.AutoFillTools=mo,e.BEFORE_CELL_EDIT=D,e.BorderStyleManagerService=xs,e.COMMAND_LISTENER_SKELETON_CHANGE=Rt,e.COMMAND_LISTENER_VALUE_CHANGE=zt,e.CancelFrozenCommand=Ks,e.CancelMarkDirtyRowAutoHeightOperation=Xl,e.ClearSelectionAllCommand=zn,e.ClearSelectionContentCommand=Xo,e.ClearSelectionFormatCommand=Bn,e.CopySheetCommand=cs,e.CopyWorksheetEndMutation=ts,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,`DefinedNameDataController`,{enumerable:!0,get:function(){return ou}}),e.DeleteRangeMoveLeftCommand=dr,e.DeleteRangeMoveUpCommand=pr,e.DeleteRangeProtectionCommand=us,e.DeleteRangeProtectionMutation=On,e.DeleteWorksheetProtectionCommand=ds,e.DeleteWorksheetProtectionMutation=fa,e.DeleteWorksheetRangeThemeStyleCommand=fs,e.DeleteWorksheetRangeThemeStyleMutation=ye,e.DeleteWorksheetRangeThemeStyleMutationFactory=be,e.DeltaColumnWidthCommand=dc,e.DeltaRowHeightCommand=kl,e.EditStateEnum=En,e.EffectRefRangId=K,e.EmptyMutation=Gl,e.ExclusiveRangeService=Tu,e.FactoryAddRangeProtectionMutation=kn,e.FactoryDeleteRangeProtectionMutation=Dn,e.FactorySetRangeProtectionMutation=Js,e.IAutoFillService=Uo,e.IExclusiveRangeService=wu,e.INTERCEPTOR_POINT=_,e.INumfmtService=Pl,e.IRefSelectionsService=Yn,e.InsertColAfterCommand=kr,e.InsertColBeforeCommand=Or,e.InsertColByRangeCommand=Dr,e.InsertColCommand=Er,e.InsertColMutation=F,e.InsertColMutationUndoFactory=Se,e.InsertDefinedNameCommand=ps,e.InsertMultiColsLeftCommand=Ar,e.InsertMultiColsRightCommand=jr,e.InsertMultiRowsAboveCommand=Cr,e.InsertMultiRowsAfterCommand=wr,e.InsertRangeMoveDownCommand=hr,e.InsertRangeMoveRightCommand=_r,e.InsertRowAfterCommand=Sr,e.InsertRowBeforeCommand=xr,e.InsertRowByRangeCommand=br,e.InsertRowCommand=yr,e.InsertRowMutation=P,e.InsertRowMutationUndoFactory=xe,e.InsertSheetCommand=ms,e.InsertSheetMutation=rs,e.InsertSheetUndoMutationFactory=ns,e.InterceptCellContentPriority=v,e.MAX_CELL_PER_SHEET_KEY=au,e.MERGE_CELL_INTERCEPTOR_CHECK=Ki,e.MarkDirtyFilterChangeMutation=Kl,e.MarkDirtyRowAutoHeightOperation=Yl,Object.defineProperty(e,`MergeCellController`,{enumerable:!0,get:function(){return qi}}),e.MoveColsCommand=Kr,e.MoveColsMutation=De,e.MoveColsMutationUndoFactory=Ee,e.MoveRangeCommand=er,e.MoveRangeMutation=Ce,e.MoveRowsCommand=Wr,e.MoveRowsMutation=Te,e.MoveRowsMutationUndoFactory=we,Object.defineProperty(e,`NumfmtService`,{enumerable:!0,get:function(){return Eu}}),e.OperatorType=Xr,e.PermissionPointsDefinitions=Nu,e.REF_SELECTIONS_ENABLED=Pn,e.RangeMergeUtil=an,Object.defineProperty(e,`RangeProtectionCache`,{enumerable:!0,get:function(){return hu}}),e.RangeProtectionPermissionDeleteProtectionPoint=Ec,e.RangeProtectionPermissionEditPoint=Y,e.RangeProtectionPermissionManageCollaPoint=Dc,e.RangeProtectionPermissionViewPoint=Oc,Object.defineProperty(e,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return ku}}),Object.defineProperty(e,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return mu}}),e.RangeProtectionRuleModel=H,Object.defineProperty(e,`RangeProtectionService`,{enumerable:!0,get:function(){return Au}}),e.RangeThemeStyle=ne,Object.defineProperty(e,`RefRangeService`,{enumerable:!0,get:function(){return Ri}}),Object.defineProperty(e,`RefSelectionsService`,{enumerable:!0,get:function(){return Xn}}),e.RefillCommand=hs,e.RegisterWorksheetRangeThemeStyleCommand=vs,e.RegisterWorksheetRangeThemeStyleMutation=gs,e.RemoveColByRangeCommand=Lr,e.RemoveColCommand=Rr,e.RemoveColMutation=L,e.RemoveDefinedNameCommand=ys,e.RemoveMergeUndoMutationFactory=R,e.RemoveNumfmtMutation=Ll,e.RemoveRangeThemeMutation=ql,e.RemoveRowByRangeCommand=Pr,e.RemoveRowCommand=Fr,e.RemoveRowMutation=I,e.RemoveSheetCommand=bs,e.RemoveSheetMutation=Br,e.RemoveSheetUndoMutationFactory=zr,e.RemoveWorksheetMergeCommand=Qi,e.RemoveWorksheetMergeMutation=z,e.ReorderRangeCommand=Yr,e.ReorderRangeMutation=je,e.ReorderRangeUndoMutationFactory=Ae,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=Zo,e.ScrollToCellOperation=Zl,e.SelectRangeCommand=Qn,e.SelectionMoveType=Mn,e.SetBackgroundColorCommand=Ea,e.SetBoldCommand=_a,e.SetBorderBasicCommand=Ps,e.SetBorderColorCommand=Ns,e.SetBorderCommand=As,e.SetBorderPositionCommand=js,e.SetBorderStyleCommand=Ms,e.SetColDataCommand=Fs,e.SetColDataMutation=Fe,e.SetColDataMutationFactory=Pe,e.SetColHiddenCommand=Rs,e.SetColHiddenMutation=Le,e.SetColVisibleMutation=ze,e.SetColWidthCommand=fc,e.SetDefinedNameCommand=Hs,e.SetFontFamilyCommand=Sa,e.SetFontSizeCommand=Ca,e.SetFrozenCommand=Gs,e.SetFrozenMutation=Ws,e.SetFrozenMutationFactory=Us,e.SetGridlinesColorCommand=qs,e.SetGridlinesColorMutation=Be,e.SetHorizontalTextAlignCommand=ka,e.SetItalicCommand=va,e.SetNumfmtMutation=Il,e.SetOverlineCommand=xa,e.SetProtectionCommand=Xs,e.SetRangeCustomMetadataCommand=Zs,e.SetRangeProtectionMutation=J,e.SetRangeThemeMutation=Jl,e.SetRangeValuesCommand=ar,e.SetRangeValuesMutation=V,e.SetRangeValuesUndoMutationFactory=B,e.SetRowDataCommand=Qs,e.SetRowDataMutation=ht,e.SetRowDataMutationFactory=mt,e.SetRowHeightCommand=Al,e.SetRowHiddenCommand=tc,e.SetRowHiddenMutation=yt,e.SetRowVisibleMutation=_t,e.SetSelectedColsVisibleCommand=Ls,e.SetSelectedRowsVisibleCommand=ec,e.SetSelectionsOperation=G,e.SetSpecificColsVisibleCommand=Is,e.SetSpecificRowsVisibleCommand=$s,e.SetStrikeThroughCommand=ba,e.SetStyleCommand=q,e.SetTabColorCommand=sc,e.SetTabColorMutation=oc,e.SetTextColorCommand=wa,e.SetTextRotationCommand=ja,e.SetTextWrapCommand=Aa,e.SetUnderlineCommand=ya,e.SetVerticalTextAlignCommand=Oa,e.SetWorkbookNameCommand=lc,e.SetWorkbookNameMutation=cc,e.SetWorksheetActivateCommand=uc,e.SetWorksheetActiveOperation=Ft,e.SetWorksheetColWidthMutation=xt,e.SetWorksheetColWidthMutationFactory=bt,e.SetWorksheetColumnCountCommand=mc,e.SetWorksheetColumnCountMutation=Ct,e.SetWorksheetColumnCountUndoMutationFactory=St,e.SetWorksheetDefaultStyleCommand=hc,e.SetWorksheetDefaultStyleMutation=wt,e.SetWorksheetDefaultStyleMutationFactory=Tt,e.SetWorksheetHideCommand=vc,e.SetWorksheetHideMutation=_c,e.SetWorksheetNameCommand=xc,e.SetWorksheetNameMutation=bc,e.SetWorksheetOrderCommand=wc,e.SetWorksheetOrderMutation=Cc,e.SetWorksheetPermissionPointsCommand=Cl,e.SetWorksheetPermissionPointsMutation=Sl,e.SetWorksheetProtectionCommand=wl,e.SetWorksheetProtectionMutation=Ys,e.SetWorksheetRangeThemeStyleCommand=ma,e.SetWorksheetRangeThemeStyleMutation=_e,e.SetWorksheetRangeThemeStyleMutationFactory=ve,e.SetWorksheetRightToLeftCommand=Dl,e.SetWorksheetRightToLeftMutation=El,e.SetWorksheetRowAutoHeightMutation=Nt,e.SetWorksheetRowAutoHeightMutationFactory=At,e.SetWorksheetRowCountCommand=Ol,e.SetWorksheetRowCountMutation=Dt,e.SetWorksheetRowCountUndoMutationFactory=Et,e.SetWorksheetRowHeightMutation=jt,e.SetWorksheetRowHeightMutationFactory=Ot,e.SetWorksheetRowIsAutoHeightCommand=jl,e.SetWorksheetRowIsAutoHeightMutation=Mt,e.SetWorksheetRowIsAutoHeightMutationFactory=kt,e.SetWorksheetShowCommand=Ml,e.SheetCopyDownCommand=qo,e.SheetCopyRightCommand=Jo,Object.defineProperty(e,`SheetInterceptorService`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(e,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return es}}),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=It,Object.defineProperty(e,`SheetSkeletonService`,{enumerable:!0,get:function(){return Fn}}),e.SheetValueChangeType=Lt,Object.defineProperty(e,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return lu}}),Object.defineProperty(e,`SheetsSelectionsService`,{enumerable:!0,get:function(){return U}}),e.SplitDelimiterEnum=cn,e.SplitTextToColumnsCommand=Nl,e.TextToNumberCommand=Bl,e.ToggleCellCheckboxCommand=Vl,e.ToggleGridlinesCommand=Hl,e.ToggleGridlinesMutation=Pt,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=_s,e.VALIDATE_CELL=k,e.ViewStateEnum=Tn,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=Z,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 du}}),e.WorkbookPrintPermission=Kc,e.WorkbookRecoverHistoryPermission=qc,e.WorkbookRenameSheetPermission=Jc,e.WorkbookSelectionModel=Nn,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=Q,e.WorksheetFilterPermission=rl,e.WorksheetInsertColumnPermission=il,e.WorksheetInsertHyperlinkPermission=al,e.WorksheetInsertRowPermission=ol,e.WorksheetManageCollaboratorPermission=sl,Object.defineProperty(e,`WorksheetPermissionService`,{enumerable:!0,get:function(){return xl}}),e.WorksheetPivotTablePermission=cl,e.WorksheetProtectionPointModel=Tc,e.WorksheetProtectionRuleModel=ua,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 pu}}),e.addMergeCellsUtil=ca,e.adjustRangeOnMutation=ji,e.alignToMergedCellsBorders=Vn,e.attachPrimaryWithCoord=Wu,e.attachRangeWithCoord=Hu,e.attachSelectionWithCoord=Uu,e.baseProtectionActions=kc,e.checkCellValueType=d,e.checkRangesEditablePermission=Pu,e.convertPositionCellToSheetOverGrid=Ku,e.convertPositionSheetOverGridToAbsolute=Gu,e.convertPrimaryWithCoordToPrimary=sn,e.convertSelectionDataToRange=on,e.copyRangeStyles=Jn,e.countCells=Rn,e.createTopMatrixFromMatrix=$t,e.createTopMatrixFromRanges=Qt,e.defaultLargeSheetOperationConfig=Qo,e.defaultWorkbookPermissionPoints=vl,e.defaultWorksheetPermissionPoint=bl,e.discreteRangeToRange=Sn,e.expandToContinuousRange=Zt,e.factoryRemoveNumfmtUndoMutation=Rl,e.factorySetNumfmtUndoMutation=Fl,e.findAllRectangle=nn,e.findFirstNonEmptyCell=vn,e.followSelectionOperation=Wn,e.generateNullCell=yn,e.generateNullCellValue=bn,e.getAddMergeMutationRangeByType=Gi,e.getAllRangePermissionPoint=X,e.getAllWorkbookPermissionPoint=_l,e.getAllWorksheetPermissionPoint=$,e.getAllWorksheetPermissionPointByPointPanel=yl,e.getCellAtRowCol=Hn,e.getClearContentMutationParamForRange=ra,e.getClearContentMutationParamsForRanges=na,e.getDefaultRangePermission=Ac,e.getInsertRangeMutations=or,e.getMoveRangeCommandMutations=nr,e.getMoveRangeUndoRedoMutations=rr,e.getNextPrimaryCell=Vu,e.getPrimaryForRange=W,e.getRemoveRangeMutations=sr,e.getSelectionsService=Zn,e.getSeparateEffectedRangesOnCommand=Pi,e.getSheetCommandTarget=p,e.getSheetCommandTargetWorkbook=f,e.getSheetMutationTarget=m,e.getSkeletonChangedEffectedRange=Vt,e.getValueChangedEffectedRange=Bt,e.getVisibleRanges=wn,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=lr,e.handleIRemoveCol=ci,e.handleIRemoveRow=li,e.handleInsertCol=mi,e.handleInsertRangeMoveDown=hi,e.handleInsertRangeMoveRight=_i,e.handleInsertRangeMutation=cr,e.handleInsertRow=pi,e.handleMoveCols=ri,e.handleMoveRange=ai,e.handleMoveRows=ei,e.isSingleCellSelection=Gn,e.rangeMerge=rn,e.rangeToDiscreteRange=Cn,e.rotateRange=Qr,e.runRefRangeMutations=Ei,e.setEndForRange=Un,e.splitRangeText=mn,e.transformCellsToRange=zl,e.validateDefinedName=Ht});
|