@univerjs/sheets 1.0.0-beta.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +2 -2
- package/lib/cjs/locale/ca-ES.js +2 -2
- package/lib/cjs/locale/sk-SK.js +2 -2
- package/lib/es/index.js +2 -2
- package/lib/es/locale/ca-ES.js +2 -2
- package/lib/es/locale/sk-SK.js +2 -2
- package/lib/index.js +2 -2
- package/lib/locale/ca-ES.js +2 -2
- package/lib/locale/sk-SK.js +2 -2
- package/lib/umd/index.js +1 -1
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/package.json +8 -8
package/lib/umd/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
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){var t;return!!(e!=null&&(t=e.drawingsOrder)!=null&&t.length)}function l(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(d(a)){var c;return(0,t.isTextFormat)(a==null||(c=a.n)==null?void 0:c.pattern)?t.CellValueType.STRING:u(n,r)}return(0,t.isTextFormat)(o==null||(i=o.n)==null?void 0:i.pattern)?t.CellValueType.STRING:u(n,r)}function u(e,t){return e.v===void 0?f(t.v,t.t):f(e.v,e.t)}function d(e){var t;return!!(e!=null&&(t=e.n)!=null&&t.pattern)}function f(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 p(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 m(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 h(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 g=(e,n)=>{if(!h(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)}},_={id:`sheet.mutation.add-worksheet-merge`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(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}},v={CELL_CONTENT:(0,t.createInterceptorKey)(`CELL_CONTENT`),ROW_FILTERED:(0,t.createInterceptorKey)(`ROW_FILTERED`)},y=function(e){return e[e.DATA_VALIDATION=9]=`DATA_VALIDATION`,e[e.NUMFMT=10]=`NUMFMT`,e[e.CELL_IMAGE=11]=`CELL_IMAGE`,e}({}),b=`sheet.interceptor.range-theme-id`,x=`sheet.interceptor.ignore-range-theme`;function S(e){"@babel/helpers - typeof";return S=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},S(e)}function C(e,t){if(S(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(S(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function w(e){var t=C(e,`string`);return S(t)==`symbol`?t:t+``}function T(e,t,n){return(t=w(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){return function(n,r){t(n,r,e)}}function D(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 ee=(0,t.createInterceptorKey)(`BEFORE_CELL_EDIT`),te=(0,t.createInterceptorKey)(`AFTER_CELL_EDIT`),ne=(0,t.createInterceptorKey)(`VALIDATE_CELL`),O=class extends t.Disposable{constructor(e){super(),this._univerInstanceService=e,T(this,`_interceptorsByName`,new Map),T(this,`_commandInterceptors`,[]),T(this,`_rangeInterceptors`,[]),T(this,`_autoHeightInterceptors`,[]),T(this,`_beforeCommandInterceptor`,[]),T(this,`_afterCommandInterceptors`,[]),T(this,`_workbookDisposables`,new Map),T(this,`_worksheetDisposables`,new Map),T(this,`_composedInterceptorByKey`,new Map),T(this,`_composedInterceptorVersion`,0),T(this,`writeCellInterceptor`,new t.InterceptorManager({BEFORE_CELL_EDIT:ee,AFTER_CELL_EDIT:te,VALIDATE_CELL:ne})),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(v.CELL_CONTENT,{priority:-1,effect:t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value,handler:e=>e}),this.disposeWithMe(this.writeCellInterceptor.intercept(te,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(ee,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(ne,{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)=>(t.priority??0)-(e.priority??0)),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=>e.preUndos??[]).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>e.preRedos??[]).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)=>(t.priority??0)-(e.priority??0)),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)=>(t.priority??0)-(e.priority??0)),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=>e.preUndos??[]).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>e.preRedos??[]).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)=>(t.priority??0)-(e.priority??0)),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)=>(t.priority??0)-(e.priority??0)),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=>e.preUndos??[]).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>e.preRedos??[]).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(te)(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(ne)(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)=>(t.priority??0)-(e.priority??0));if(this._invalidateComposedInterceptors(),r===v.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??a,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(v.CELL_CONTENT,e),t.set(e,n)),n}_getCommonRowFilteredInterceptor(e){return e.interceptor||=this.fetchThroughInterceptors(v.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(re(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(v.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=re(e,t),r=this._worksheetDisposables.get(n);r&&(r.dispose(),this._worksheetDisposables.delete(n))}};O=D([E(0,t.IUniverInstanceService)],O);function re(e,t){return`${e}|${t.getSheetId()}`}let k=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 ie(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 A={wholeStyle:1,headerRowStyle:2,headerColumnStyle:4,firstRowStyle:8,secondRowStyle:16,lastRowStyle:32,firstColumnStyle:128,secondColumnStyle:256,lastColumnStyle:512};var ae=class{constructor(e,t){T(this,`_name`,void 0),T(this,`wholeStyle`,null),T(this,`headerRowStyle`,null),T(this,`headerColumnStyle`,null),T(this,`firstRowStyle`,null),T(this,`secondRowStyle`,null),T(this,`lastRowStyle`,null),T(this,`firstColumnStyle`,null),T(this,`secondColumnStyle`,null),T(this,`lastColumnStyle`,null),T(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|=A.lastRowStyle),r&&(a|=A.lastColumnStyle),e>=0&&t>=0&&(a|=A.wholeStyle),e%2==1&&(a|=i?A.secondRowStyle:A.firstRowStyle),e%2==0&&(a|=i?A.firstRowStyle:A.secondRowStyle),e===0&&(a|=A.headerRowStyle),t===0&&(a|=A.headerColumnStyle),t%2==1&&(a|=A.firstColumnStyle),t%2==0&&(a|=A.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&A.wholeStyle&&t.push(this.wholeStyle),this.firstColumnStyle&&e&A.firstColumnStyle&&t.push(this.firstColumnStyle),this.secondColumnStyle&&e&A.secondColumnStyle&&t.push(this.secondColumnStyle),this.firstRowStyle&&e&A.firstRowStyle&&t.push(this.firstRowStyle),this.secondRowStyle&&e&A.secondRowStyle&&t.push(this.secondRowStyle),this.headerColumnStyle&&e&A.headerColumnStyle&&t.push(this.headerColumnStyle),this.lastColumnStyle&&e&A.lastColumnStyle&&t.push(this.lastColumnStyle),this.headerRowStyle&&e&A.headerRowStyle&&t.push(this.headerRowStyle),this.lastRowStyle&&e&A.lastRowStyle&&t.push(this.lastRowStyle),ie(t)}_resetStyleCache(){this._mergeCacheMap.clear()}toJson(){let e={name:this._name};return this.wholeStyle&&(e.wholeStyle=k(this.wholeStyle)),this.headerRowStyle&&(e.headerRowStyle=k(this.headerRowStyle)),this.headerColumnStyle&&(e.headerColumnStyle=k(this.headerColumnStyle)),this.firstRowStyle&&(e.firstRowStyle=k(this.firstRowStyle)),this.secondRowStyle&&(e.secondRowStyle=k(this.secondRowStyle)),this.lastRowStyle&&(e.lastRowStyle=k(this.lastRowStyle)),this.firstColumnStyle&&(e.firstColumnStyle=k(this.firstColumnStyle)),this.secondColumnStyle&&(e.secondColumnStyle=k(this.secondColumnStyle)),this.lastColumnStyle&&(e.lastColumnStyle=k(this.lastColumnStyle)),e}fromJson(e){this._name=e.name,e.wholeStyle&&(this.wholeStyle=k(e.wholeStyle)),e.headerRowStyle&&(this.headerRowStyle=k(e.headerRowStyle)),e.headerColumnStyle&&(this.headerColumnStyle=k(e.headerColumnStyle)),e.firstRowStyle&&(this.firstRowStyle=k(e.firstRowStyle)),e.secondRowStyle&&(this.secondRowStyle=k(e.secondRowStyle)),e.lastRowStyle&&(this.lastRowStyle=k(e.lastRowStyle)),e.firstColumnStyle&&(this.firstColumnStyle=k(e.firstColumnStyle)),e.secondColumnStyle&&(this.secondColumnStyle=k(e.secondColumnStyle)),e.lastColumnStyle&&(this.lastColumnStyle=k(e.lastColumnStyle))}dispose(){this._mergeCacheMap.clear()}};let oe=(e,t,n)=>new ae(`light-${e}`,{headerRowStyle:{bg:{rgb:t}},firstColumnStyle:{bg:{rgb:`rgb(255, 255, 255)`}},secondColumnStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}}}),se=(e,t,n)=>new ae(`middle-${e}`,{headerRowStyle:{bg:{rgb:t}},headerColumnStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}},lastColumnStyle:{bg:{rgb:n}}}),ce=(e,n,r,i)=>new ae(`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}}}),le=[{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)`}],ue=[{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)`}],de=[{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)`}],fe=le.map(({baseName:e,header:t,color:n})=>oe(e,t,n)),pe=ue.map(({baseName:e,rowHeader:t,colHeader:n})=>se(e,t,n)),me=de.map(({baseName:e,rowHeader:t,firstRow:n,secondRow:r})=>ce(e,t,n,r)),he=[...fe,...pe,...me],ge={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)`}}},_e=new ae(`default`,ge),ve=new ae(`default-last-row`,{...ge,lastRowStyle:{bd:{t:{s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(68,114,196)`}}},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE}});var ye=class{constructor(){T(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 j=class extends t.Disposable{constructor(e,t,r){super(),this._sheetInterceptorService=e,this._resourceManagerService=t,this._univerInstanceService=r,T(this,`_rangeThemeStyleMap`,new Map),T(this,`_rangeThemeStyleRuleMap`,new Map),T(this,`_rTreeCollection`,new Map),T(this,`_defaultRangeThemeMap`,new Map),T(this,`_zebraCrossingCacheMap`,new Map),T(this,`_rowVisibleFuncSet`,new Map),T(this,`_rangeThemeMapChanged$`,new n.Subject),T(this,`rangeThemeMapChange$`,this._rangeThemeMapChanged$.asObservable()),this._registerIntercept(),this._initSnapshot(),this._initDefaultTheme()}_initDefaultTheme(){this.registerDefaultRangeTheme(_e),this.registerDefaultRangeTheme(ve);for(let e of he)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 ye),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(v.CELL_CONTENT,{id:b,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 ae(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()}};j=D([E(0,(0,t.Inject)(O)),E(1,(0,t.Inject)(t.IResourceManagerService)),E(2,(0,t.Inject)(t.IUniverInstanceService))],j);let be={id:`sheet.mutation.set-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(j),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.registerRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},xe=(e,n)=>{let r=h(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}},Se={id:`sheet.mutation.remove-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(j),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.removeRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},Ce=(e,n)=>{let r=h(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}},we=(e,n)=>{if(!h(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertRowMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},M={id:`sheet.mutation.insert-row`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(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}},Te=(e,n)=>{if(!h(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},N={id:`sheet.mutation.insert-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(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}},Ee={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).getCurrentUnitOfType(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 De(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 Oe={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).getUnit(r,t.UniverInstanceType.UNIVER_SHEET);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 ke(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 Ae={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).getUnit(r,t.UniverInstanceType.UNIVER_SHEET);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}},je=(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}},P={id:`sheet.mutation.remove-rows`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=n.range,o=i.getRowManager().getRowData(),s=[];for(let e=a.startRow;e<=a.endRow;e++)i.getRowFiltered(e)&&s.push(e);let c=a.endRow-a.startRow+1;return(0,t.spliceArray)(a.startRow,c,o),i.getCellMatrix().removeRows(a.startRow,c),i.setRowCount(i.getRowCount()-c),!0}},Me=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},F={id:`sheet.mutation.remove-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},I=(e,n)=>{let r=h(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}},L={id:`sheet.mutation.remove-worksheet-merge`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or worksheet is null error!`);let{worksheet:i}=r,a=i.getConfig().mergeData,o=n.ranges;for(let e=0;e<o.length;e++)for(let n=a.length-1;n>=0;n--){let r=a[n],i=o[e];t.Rectangle.intersects(r,i)&&a.splice(n,1)}return i.getSpanModel().rebuild(a),!0}},Ne=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},Pe={id:`sheet.mutation.reorder-range`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{subUnitId:r,unitId:i,range:a,order:o}=n,s=e.get(t.IUniverInstanceService).getUnit(i).getSheetBySheetId(r);if(!s)return!1;let c=new t.ObjectMatrix;t.Range.foreach(a,(e,n)=>{if(o.hasOwnProperty(e)){let r=o[e],i=t.Tools.deepClone(s.getCellRaw(r,n));c.setValue(e,n,i)}});let l=s.getCellMatrix();return c.forValue((e,t,n)=>{l.setValue(e,t,n)}),!0}};function Fe(e,n){if(e==null)return e;let r=t.Tools.deepClone(e);if(n==null)return r;let i={};return`h`in n&&(i.h=r.h),`ia`in n&&(i.ia=r.ia),`ah`in n&&(i.ah=r.ah),`hd`in n&&(i.hd=r.hd),`s`in n&&(i.s=r.s),`custom`in n&&(i.custom=r.custom),i}function Ie(e,n){if(e==null)return e;let r=t.Tools.deepClone(e);if(n==null)return r;let i={};return`w`in n&&(i.w=r.w),`hd`in n&&(i.hd=r.hd),`s`in n&&(i.s=r.s),`custom`in n&&(i.custom=r.custom),i}let Le=(e,t)=>{let{unitId:n,subUnitId:r,columnData:i}=e,a={},o=t.getColumnManager();for(let e in i){let t=i[e];a[e]=Ie(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Re={id:`sheet.mutation.set-col-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{columnData:r}=n,i=m(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{worksheet:a}=i,o=a.getColumnManager();for(let e in r){let t=r[e];if(t==null){o.removeColumn(Number(e));continue}let n=o.getColumnOrCreate(Number(e));Object.assign(n,t)}return!0}},ze=(e,n)=>{if(e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Be={id:`sheet.mutation.set-col-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.TRUE)}}return!0}},Ve=(e,n)=>{if(e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},He={id:`sheet.mutation.set-col-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.FALSE)}}return!0}},Ue={id:`sheet.mutation.set-gridlines-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.gridlinesColor=n.color,!0}};function We(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ge(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function Ke(e,t,n){if(e==null)return e;if(!We(e))return;let r={},i=!1;if(Ge(e,t,(e,t)=>{r[e]=t,i=!0}),n)for(let t in n){let a=n[t];if(!a||!Object.prototype.hasOwnProperty.call(e,t))continue;let o=a(e[t]);o!==void 0&&(r[t]=o,i=!0)}return i?r:void 0}function qe(e,t,n){if(e==null)return e;if(!We(e))return;let r={},i=!1;return Ge(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Je(e){switch(e){case`bd`:case`tr`:case`td`:case`ht`:case`vt`:case`tb`:case`pd`:case`bg`:return!0;default:return!1}}function Ye(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function Xe(e){return Ke(e,t.COLOR_STYLE_KEYS)}function Ze(e){return Ke(e,t.TEXT_DECORATION_KEYS,{cl:Xe})}function Qe(e){return Ke(e,t.BORDER_STYLE_KEYS,{cl:Xe})}function $e(e){return qe(e,t.BORDER_KEYS,Qe)}function et(e){return Ke(e,t.TEXT_ROTATION_KEYS)}function tt(e){return Ke(e,t.PADDING_KEYS)}function nt(e){if(e==null)return e;if(!(!We(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function rt(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return Ze(t);case`bg`:case`cl`:return Xe(t);case`bd`:return $e(t);case`tr`:return et(t);case`pd`:return tt(t);case`n`:return nt(t);default:return Ye(t)?t:void 0}}function it(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=t.Tools.isObject(e)?{...e}:{};return Ge(r,t.BORDER_KEYS,(e,t)=>{let n=Qe(t);n!==void 0&&(i[e]=n)}),i}function at(e,n,r){let i=e.getStyleByCell(n);i??delete n.s,typeof r.s==`string`&&(r.s=e.get(r.s));let a=ct(i,r.s?r.s:null);a&&(t.Tools.removeNull(a),Object.entries(a).forEach(([e,t])=>{typeof t==`object`&&t&&Object.keys(t).length===0&&delete a[e]})),t.Tools.isEmptyObject(a)?delete n.s:n.s=e.setValue(a);let o=r.v?`${r.v}\r\n`:``;if(!r.p&&n.p){var s;o&&o!==((s=n.p.body)==null?void 0:s.dataStream)?delete n.p:ut(n.p,r.s?r.s:null)}}function ot(e,n){if(!n||!Object.keys(n).length)return e;let r=t.Tools.deepClone(e??{})||{},i=n;for(let e of t.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(i,e))continue;let t=rt(e,i[e]);t!==void 0&&(e===`bd`?r[e]=st(r[e]||{},t):e in r||(r[e]=null))}return r}function st(e,n){if(!n||!Object.keys(n).length)return e;let r=e;for(let i of t.BORDER_KEYS)Object.prototype.hasOwnProperty.call(n,i)&&(i in e||(r[i]=null));return e}function ct(e,n,r=!1){if(n===null)return n;if(n===void 0)return e;let i=t.Tools.deepClone(e)||{},a=n;for(let e of t.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(a,e)||r&&Je(e))continue;let t=rt(e,a[e]);t!==void 0&&(e===`bd`?i[e]=it(i[e],t):i[e]=t)}if(`cl`in i){let e=i,t=e.cl;`ul`in e&&e.ul&&(e.ul.cl=t),`ol`in e&&e.ol&&(e.ol.cl=t),`st`in e&&e.st&&(e.st.cl=t)}return i}function lt(e,t){return e.some(e=>e.startIndex===t)?lt(e,t+1):t}function ut(e,n){var r;if(e.body==null)return;Array.isArray(e.body.textRuns)||(e.body.textRuns=[]);let i=0,a=[],o=((r=e.body)==null?void 0:r.paragraphs)||[];for(let r of e.body.textRuns){let{st:e,ed:s,ts:c={}}=r;if(i<e){let r={st:i,ed:e},o=ct({},n,!0);o&&t.Tools.removeNull(o),t.Tools.isEmptyObject(o)||(r.ts=o),a.push(r)}let l=ct(c,n,!0);l&&t.Tools.removeNull(l),t.Tools.isEmptyObject(l)?delete r.ts:r.ts=l,a.push(r),i=lt(o,s)}let s=e.body.dataStream.endsWith(`\r
|
|
2
|
-
`)?e.body.dataStream.length-2:e.body.dataStream.length;if(i<s){let e={st:i,ed:s},r=ct({},n,!0);r&&t.Tools.removeNull(r),t.Tools.isEmptyObject(r)||(e.ts=r),a.push(e)}e.body.textRuns=(0,t.normalizeTextRuns)(a)}function dt(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?+!!ft(n.v):e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ft(e){if(typeof e==`string`){if(e.toUpperCase()===`TRUE`)return!0;if(e.toUpperCase()===`FALSE`)return!1;if((0,t.isSafeNumeric)(e)){if(Number(e)===0)return!1;if(Number(e)===1)return!0}}if(typeof e==`number`){if(e===0)return!1;if(e===1)return!0}return typeof e==`boolean`?e:null}function pt(e){return e==null?null:(e.f===void 0&&(e.f=null),e.si===void 0&&(e.si=null),e.p===void 0&&(e.p=null),e.v===void 0&&(e.v=null),e.t===void 0&&(e.t=null),e.s===void 0&&(e.s=null),e.custom===void 0&&(e.custom=null),e)}let R=(e,n)=>{let{unitId:r,subUnitId:i,cellValue:a,isOverrideStyle:o}=n,s=e.get(t.IUniverInstanceService).getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(s==null)throw Error(`workbook is null error!`);let c=s.getSheetBySheetId(i);if(c==null)throw Error(`worksheet is null error!`);let l=c.getCellMatrix(),u=s.getStyles(),d=new t.ObjectMatrix;return new t.ObjectMatrix(a).forValue((e,n,r)=>{let i=t.Tools.deepClone(l==null?void 0:l.getValue(e,n))||{},a=u.getStyleByCell(i),s=u.getStyleByCell(r);i.s=o&&Object.prototype.hasOwnProperty.call(r??{},`s`)?a??null:ot(a,s),d.setValue(e,n,pt(i))}),{...n,cellValue:d.getMatrix()}},z={id:`sheet.mutation.set-range-values`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{cellValue:r,subUnitId:i,unitId:a,isOverrideStyle:o}=n,s=e.get(t.IUniverInstanceService).getUnit(a);if(!s)return!1;let c=s.getSheetBySheetId(i);if(!c)return!1;let l=c.getCellMatrix(),u=s.getStyles();return new t.ObjectMatrix(r).forValue((e,n,r)=>{if(!r)l.realDeleteValue(e,n);else{let i=l.getValue(e,n)||{};i=ht(r,i,u,!!o),t.Tools.isEmptyObject(i)?l.realDeleteValue(e,n):l.setValue(e,n,i)}}),!0}},mt=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function ht(e,t,n,r=!1){let i=l(n,e,t);return Object.keys(e).forEach(a=>{let o=a;if(mt.has(o)){let n=e[o];_t(t,o,n)}else o===`v`?e.v!==void 0&&(t.v=dt(i,e)):o===`s`&&(r?gt(n,t,e):at(n,t,e))}),t.v!==void 0&&(t.t=i,t.v=dt(i,t)),t.v===null&&(delete t.t,delete t.v),t}function gt(e,t,n){if(n.s===void 0)return;if(n.s===null){delete t.s;return}let r=typeof n.s==`string`?e.get(n.s):n.s,i={};at(e,i,{s:r}),i.s==null?delete t.s:t.s=i.s}function _t(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let vt=(e,t)=>{let{unitId:n,subUnitId:r,rowData:i}=e,a={},o=t.getRowManager();for(let e in i){let t=i[e];a[e]=Fe(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},yt={id:`sheet.mutation.set-row-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowData:r}=n,i=m(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}},bt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},xt={id:`sheet.mutation.set-row-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},St=(e,n)=>{if(e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Ct={id:`sheet.mutation.set-row-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},wt=(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}},Tt={id:`sheet.mutation.set-worksheet-col-width`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(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}},Et=(e,n)=>{let r=h(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()}},Dt={id:`sheet.mutation.set-worksheet-column-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Ot={id:`sheet.mutation.set-worksheet-default-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},kt=(e,n)=>{let r=h(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()}},At=(e,n)=>{let r=h(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()}},jt={id:`sheet.mutation.set-worksheet-row-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},Mt=(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;a[r]=((s=o.getRow(r))==null?void 0:s.h)??t.getConfig().defaultRowHeight}return{unitId:n,subUnitId:r,ranges:i,rowHeight:a}},Nt=(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}},Pt=(e,t)=>{let{unitId:n,subUnitId:r,rowsAutoHeightInfo:i}=e,a=[],o=t.getRowManager();for(let e of i){var s;let{row:n}=e;a.push({row:n,autoHeight:((s=o.getRow(n))==null?void 0:s.ah)??t.getConfig().defaultRowHeight})}return{unitId:n,subUnitId:r,rowsAutoHeightInfo:a}},Ft={id:`sheet.mutation.set-worksheet-row-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,rowHeight:i}=n,a=m(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}},It={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=m(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);typeof i==`number`?e.ia=i:e.ia=i[n]??void 0}return!0}},Lt={id:`sheet.mutation.set-worksheet-row-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowsAutoHeightInfo:r}=n,i=m(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}},Rt={id:`sheet.mutation.toggle-gridlines`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},zt={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}},Bt=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}({}),Vt=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}({}),Ht=[Ft.id,It.id,Lt.id,Tt.id,zt.id,Oe.id,Ae.id,Be.id,He.id,Ct.id,xt.id,N.id,M.id,F.id,P.id,Rt.id,Ue.id,jt.id,Dt.id],Ut=[z.id,Ee.id,L.id,_.id,Pe.id,Ot.id,yt.id,Re.id,be.id,Se.id];function Wt(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=m(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=m(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=m(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 Gt(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 Kt(e,n){if(e.length===0)return`sheets.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`sheets.definedName.nameDuplicate`;if(!t.Tools.isValidParameter(e)||(0,r.isReferenceStringWithEffectiveColumn)(e)||!t.Tools.isStartValidPosition(e)&&!i.cjk.hasCJKText(e.substring(0,1)))return`sheets.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)?`sheets.definedName.nameSheetConflict`:o.length===0?`sheets.definedName.formulaOrRefStringEmpty`:!u.hasExecutor(e.toUpperCase())||`sheets.definedName.nameConflict`}function qt(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Jt(e,t){return e&&e.spanAnchor?qt(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):qt(e)}function Yt(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 Xt(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||=Jt(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 Zt(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||=Jt(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 Qt(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||=Jt(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 $t(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||=Jt(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 en({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);Jt(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);Jt(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);Jt(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);Jt(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 tn(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Yt(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=en({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}=Qt(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}=$t(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}=Xt(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}=Zt(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 nn=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},rn=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},an=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},on=(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},sn=e=>{let t=[],n=an(e);for(;n.area>0;)n.range&&(t.push(n.range),on(e,n.range)),n=an(e);return t},cn=e=>{let t=nn(e);return sn(t)};var ln=class{constructor(){T(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(){let e=rn(this._matrix);return sn(e)}};function un(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=dn(n)),i}function dn(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 fn=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 pn=class{constructor(){T(this,`_tabCount`,0),T(this,`_commaCount`,0),T(this,`_semicolonCount`,0),T(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 mn(e,n,r){let i=[];r!==void 0&&(e&16)>0&&i.push(r),(e&1)>0&&i.push(` `),(e&2)>0&&i.push(`,`),(e&4)>0&&i.push(`;`),(e&8)>0&&i.push(` `);let a=``;for(let e of i)a+=t.regexp.escapeRegExp(e);let o=`[${a}]`;return n&&(o+=`+`),new RegExp(o)}let hn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function gn(e){if(e!=null){if(e.p)return hn(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 _n(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 pn:null,f=[];for(let t=s;t<=l;t++){let n=gn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=mn(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 vn=(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)},{}),yn=(e=0)=>{let t=e;return function(){return t++}};function bn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function xn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(bn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function Sn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,null)}),n.clone()}function Cn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})}),n.clone()}function wn(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 Tn(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 En(e,n,r,i){let a=n.get(t.IUniverInstanceService),o=r?a.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitOfType(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 Dn(e,n,r,i){let a=m(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}function On(e){return JSON.stringify(e.filter(Boolean))}function kn(e){try{let t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return t.filter(Boolean)}catch{}return e.split(`,`).filter(Boolean)}let An=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),jn=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var B=class{constructor(){T(this,`_model`,new Map),T(this,`_ruleChange$`,new n.Subject),T(this,`ruleChange$`,this._ruleChange$.asObservable()),T(this,`_ruleRefresh$`,new n.Subject),T(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),T(this,`_rangeRuleInitStateChange`,new n.BehaviorSubject(!1)),T(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 Mn=(e,t)=>{let n=e.get(B),r=[];for(let e=0;e<t.ruleIds.length;e++){let i=n.getRule(t.unitId,t.subUnitId,t.ruleIds[e]);i&&r.push(i)}return{id:Fn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Nn={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(B);for(let e=0;e<i.length;e++)a.deleteRule(n,r,i[e]);return!0}},Pn=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Nn.id,params:t}},Fn={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(B);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},In={type:t.CommandType.COMMAND,id:`sheet.command.add-range-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(B),{rule:o,permissionId:s}=n,{unitId:c,subUnitId:l,ranges:u,description:d,viewState:f,editState:p}=o,m=[{ranges:u,permissionId:s,id:a.createRuleId(c,l),description:d,unitType:o.unitType,unitId:c,subUnitId:l,viewState:f,editState:p}];if(await r.executeCommand(Fn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:Fn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:Nn.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Ln=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 Rn=class extends t.Disposable{constructor(e){super(),this._workbook=e,T(this,`_worksheetSelections`,new Map),T(this,`_worksheetLastSelectionPrimaryCell`,new Map),T(this,`_selectionMoveStart$`,new n.Subject),T(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),T(this,`_selectionMoving$`,new n.Subject),T(this,`selectionMoving$`,this._selectionMoving$.asObservable()),T(this,`_selectionMoveEnd$`,new n.BehaviorSubject([])),T(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),T(this,`_selectionSet$`,new n.BehaviorSubject([])),T(this,`selectionSet$`,this._selectionSet$.asObservable()),T(this,`selectionChanged$`,void 0),T(this,`_beforeSelectionMoveEnd$`,new n.BehaviorSubject([])),T(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()}getSelectionsOfWorksheet(e){return this._worksheetSelections.has(e)||this._worksheetSelections.set(e,[]),this._worksheetSelections.get(e)}getLastSelectionPrimaryCellOfWorksheet(e){return this._worksheetLastSelectionPrimaryCell.get(e)??null}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 V=class extends t.RxDisposable{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitOfType(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,T(this,`_cellStylesCache`,new Map),T(this,`selectionMoveStart$`,void 0),T(this,`selectionMoving$`,void 0),T(this,`selectionMoveEnd$`,void 0),T(this,`selectionSet$`,void 0),T(this,`selectionChanged$`,void 0),T(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.shareReplay)({bufferSize:1,refCount:!0}),(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||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??3);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`){let r=e??n,i=t??3;this._ensureWorkbookSelection(a).setSelections(o,r,i)}}clearCurrentSelections(){this._getCurrentSelections().splice(0)}_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 Rn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var n;let r=(n=this._instanceSrv.getCurrentUnitOfType(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}}};V=D([E(0,t.IUniverInstanceService)],V);let zn=`REF_SELECTIONS_ENABLED`,H=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._univerInstanceService=t,T(this,`_sceneMap`,new Map),T(this,`_sheetSkeletonParamStore`,new Map),T(this,`_buildSkeleton$`,new n.Subject),T(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())}};H=D([E(0,(0,t.Inject)(t.Injector)),E(1,(0,t.Inject)(t.IUniverInstanceService))],H);function Bn(e,n){let r=new t.ObjectMatrix;for(let i=0;i<e.length;i++){let a=t.Range.transformRange(e[i],n);t.Range.foreach(a,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}return r}function Vn(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 Hn(e){let t=0;return e.forEach(()=>{t++}),t}let Un={id:`sheet.command.clear-selection-all`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(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(V),{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(H).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),p=[],h=[],g={subUnitId:s,unitId:o,cellValue:Sn(Dn(c,e,o,s))},_=R(e,g);p.push({id:z.id,params:g}),h.push({id:z.id,params:_});let v=f.onCommandExecute({id:Un.id,params:n});p.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(p,u),{suitableRanges:b,remainingRanges:x}=Vn(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?(p.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:p}),!0):!1}},Wn={id:`sheet.command.clear-selection-format`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(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(V),{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(H).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),p=[],h=[],g={subUnitId:s,unitId:o,cellValue:wn(Dn(c,e,o,s))},_=R(e,g);p.push({id:z.id,params:g}),h.push({id:z.id,params:_});let v=f.onCommandExecute({id:Wn.id,params:n});p.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(p,u),{suitableRanges:b,remainingRanges:x}=Vn(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?(p.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:p}),!0):!1}};function Gn(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?Gn(o,n,r):o}function Kn(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 qn(e,t,n){let{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return Number.isNaN(r)&&(e.startRow=0),Number.isNaN(a)&&(e.endRow=t-1),Number.isNaN(i)&&(e.startColumn=0),Number.isNaN(o)&&(e.endColumn=n-1),e}function U(e,n){let r=Number.isNaN(e.startRow)?0:e.startRow,i=Number.isNaN(e.startColumn)?0:e.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:e.startRow,endColumn:e.startColumn,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}let Jn=(e,t,n)=>({id:W.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:U(e,n)}]}});function Yn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Xn(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 Zn=e=>e.id!==b;function Qn(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,x,Zn):e.getCellWithFilteredInterceptors(t,s,x,Zn);!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 $n=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),er=class extends V{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()))))}};er=D([E(0,t.IUniverInstanceService)],er);function tr(e){return e.some((n,r)=>e.slice(r+1).some(e=>t.Rectangle.simpleRangesIntersect(n,e)))}function nr(e,n){let r=e.get(t.IContextService).getContextValue(zn);return e.get(r&&!n?$n:V)}let W={id:`sheet.operation.set-selections`,type:t.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return nr(e).setSelections(i,a,[...n],r),!0}},rr={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=m(e.get(t.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:U(a,s.worksheet),style:null}];return o.syncExecuteCommand(W.id,{unitId:r,subUnitId:i,selections:c})}},ir=`sheet.command.move-range`,ar={type:t.CommandType.COMMAND,id:ir,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(O).beforeCommandExecute({id:ar.id,params:n}))return!1;let s=sr(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 or(e,n){let r=e.get(t.IUniverInstanceService),i=m(r),a=n.toUnitId??n.fromUnitId??(i==null?void 0:i.unitId),o=n.fromSubUnitId??(i==null?void 0:i.subUnitId),s=n.toSubUnitId??n.fromSubUnitId??(i==null?void 0:i.subUnitId);if(!a||!o||!s||n.fromUnitId&&n.toUnitId&&n.fromUnitId!==n.toUnitId)return null;let c=r.getUnit(a,t.UniverInstanceType.UNIVER_SHEET),l=c==null?void 0:c.getSheetBySheetId(o),u=c==null?void 0:c.getSheetBySheetId(s);return!l||!u?null:{unitId:a,fromSubUnitId:o,toSubUnitId:s,fromWorksheet:l,toWorksheet:u}}function sr(e,t,n={}){let{includeSelection:r=!0,includeAfterCommand:i=!0,includeAutoHeight:a=!0}=n,o=or(e,t);if(!o)return null;let s=e.get(O),{unitId:c,fromSubUnitId:l,toSubUnitId:u,fromWorksheet:d,toWorksheet:f}=o,p=cr(e,{unitId:c,subUnitId:l,range:t.fromRange},{unitId:c,subUnitId:u,range:t.toRange});if(p===null)return null;let m={id:ar.id,params:t},h=s.onCommandExecute(m),g=[...h.preRedos??[],...p.redos,...h.redos],_=[...h.preUndos??[],...p.undos,...h.undos];if(r&&(g.push({id:W.id,params:{unitId:c,subUnitId:u,selections:[{range:t.toRange,primary:lr(t.fromRange,t.toRange,d,f)}],type:2}}),_.push({id:W.id,params:{unitId:c,subUnitId:l,selections:[{range:t.fromRange,primary:U(t.fromRange,d)}],type:2}})),i){let e=s.afterCommandExecute(m);g.push(...e.redos),_.push(...e.undos)}if(a){let{undos:e,redos:n}=s.generateMutationsOfAutoHeight({unitId:c,subUnitId:u,ranges:l===u?[t.fromRange,t.toRange]:[t.toRange]});g.push(...n),_.push(...e)}return{unitId:c,redos:g,undos:_}}function cr(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=Gn(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)=>{let r=t.Tools.deepClone(m.getValue(e,n))??null;r!=null&&r.s&&(r.s=o.getStyles().get(r.s)),g.setValue(e,n,null),_.setValue(e,n,r);let i=(0,t.cellToRange)(e,n),a=t.Rectangle.getRelativeRange(i,c),s=t.Rectangle.getPositionRange(a,u);v.setValue(s.startRow,s.startColumn,t.Tools.deepClone(r))}),t.Range.foreach(u,(e,n)=>{let r=t.Tools.deepClone(h.getValue(e,n))??null;y.setValue(e,n,r)});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:Ee.id,params:b}],undos:[{id:Ee.id,params:x}]}}function lr(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=U(t,r);if(o){let e=o.endRow-o.startRow+1,t=o.endColumn-o.startColumn+1;s.endRow=s.startRow+e-1,s.endColumn=s.startColumn+t-1,s.actualRow=s.startRow,s.actualColumn=s.startColumn,s.isMerged=!1,s.isMergedMainCell=!0}return s}let ur={id:`sheet.command.set-range-values`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(r=e.get(V).getCurrentSelections())==null?void 0:r.map(e=>e.range),{value:o,range:s,redoUndoId:c}=n,l=s?[s]:a;if(!l||!l.length)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),{subUnitId:p,unitId:h,workbook:g,worksheet:_}=i,v=new t.ObjectMatrix,y;if(t.Tools.isArray(o))for(let e=0;e<l.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=l[e];for(let e=t;e<=r;e++)for(let r=n;r<=i;r++)v.setValue(e,r,o[e-t][r-n])}else if((0,t.isICellData)(o))for(let e=0;e<l.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=l[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)v.setValue(e,t,o)}else y=o,l=y?[new t.ObjectMatrix(y).getStartEndScope()]:[];let b={unitId:h,subUnitId:p,cellValue:y??v.getMatrix()},x=R(e,b),S=(0,t.mapObjectMatrix)(b.cellValue,(e,t)=>_.getCellHeight(e,t)||void 0);if(!u.syncExecuteCommand(z.id,b))return!1;let{undos:C,redos:w}=f.onCommandExecute({id:ur.id,params:b}),{undos:T,redos:E}=f.generateMutationsOfAutoHeight({unitId:h,subUnitId:p,ranges:l,cellHeights:new t.ObjectMatrix(S)});if((0,t.sequenceExecute)([...w,...E],u).result){let e=[{id:z.id,params:b},...w,...E,Jn(l[l.length-1],g,_)],t=[{id:z.id,params:x},...C,...T];return a&&a.length&&t.push(Jn(a[a.length-1],g,_)),d.pushUndoRedo({unitID:h,undoMutations:t,redoMutations:e,id:c}),!0}return!1}};function dr(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=e.get(t.IUniverInstanceService),d=e.get(O),f=u.getUnit(a,t.UniverInstanceType.UNIVER_SHEET),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=cr(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=R(e,f),{undos:h,redos:g}=d.onCommandExecute({id:ur.id,params:{...f,range:s}});r.push({id:z.id,params:f},...g),i.push({id:z.id,params:m},...h)}return{redo:r,undo:i}}function fr(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=e.get(t.IUniverInstanceService),u=e.get(O),d=l.getUnit(a,t.UniverInstanceType.UNIVER_SHEET),f=d==null?void 0:d.getSheetBySheetId(o);if(f){let n=f.getCellMatrix(),l=n.getDataRange(),d={subUnitId:o,unitId:a,cellValue:Sn([s])},p=R(e,d),m=u.onCommandExecute({id:ur.id,params:d});if(r.push({id:z.id,params:d},...m.redos),i.push(...m.undos,{id:z.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=cr(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 pr(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 mr(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 hr=`sheet.command.delete-range-move-left`,gr={type:t.CommandType.COMMAND,id:hr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=m(a);if(!c)return!1;let{worksheet:l,workbook:u,subUnitId:d,unitId:f}=c,p=n==null?void 0:n.range;if(!p){var h;p=(h=o.getCurrentLastSelection())==null?void 0:h.range}if(!p)return!1;let g={range:p,subUnitId:d,unitId:f,shiftDimension:t.Dimension.COLUMNS},_=s.onCommandExecute({id:gr.id,params:{range:p}}),{redo:v,undo:y}=fr(e,g),b=[..._.preRedos??[],...v],x=[..._.undos,...y];if(b.push(..._.redos),b.push(Jn(p,u,l)),x.push(..._.preUndos??[]),(0,t.sequenceExecute)(b,r).result){let e=s.afterCommandExecute({id:gr.id,params:{range:p}});return(0,t.sequenceExecute)(e.redos,r),x.push(...e.undos),b.push(...e.redos),i.pushUndoRedo({unitID:f,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},_r=`sheet.command.delete-range-move-up`,vr={type:t.CommandType.COMMAND,id:_r,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=m(a);if(!c)return!1;let{unitId:l,subUnitId:u,workbook:d,worksheet:f}=c,p=n==null?void 0:n.range;if(!p){let e=o.getCurrentLastSelection();p=e==null?void 0:e.range}if(!p)return!1;let h={range:p,subUnitId:u,unitId:l,shiftDimension:t.Dimension.ROWS},g=s.onCommandExecute({id:vr.id,params:{range:p}}),{redo:_,undo:v}=fr(e,h),y=[...g.preRedos??[],..._],b=[...g.undos,...v];if(y.push(...g.redos),y.push(Jn(p,d,f)),b.push(...g.preUndos??[]),(0,t.sequenceExecute)(y,r).result){let e=s.afterCommandExecute({id:vr.id,params:{range:p}});return(0,t.sequenceExecute)(e.redos,r),b.push(...e.undos),y.push(...e.redos),i.pushUndoRedo({unitID:l,undoMutations:b.reverse(),redoMutations:y}),!0}return!1}},yr=`sheet.command.insert-range-move-down`,br={type:t.CommandType.COMMAND,id:yr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=e.get(t.ErrorService),l=e.get(t.LocaleService);if(tr(o.getCurrentSelections().map(({range:e})=>e)))return c.emit(l.t(`sheets.info.overlappingSelections`)),!1;let u=m(a);if(!u)return!1;let{unitId:d,subUnitId:f,worksheet:p,workbook:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=o.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v=[],y=[],b=p.getCellMatrix(),x=b.getDataRange(),S=b.getSlice(x.startRow,x.endRow,g.startColumn,g.endColumn).getDataRange().endRow,C=Math.max(S+(g.endRow-g.startRow+1)-x.endRow,0);if(C>0){let n=g.startRow-1,r=p.getRowHeight(n),i={unitId:d,subUnitId:f,range:{startRow:x.endRow+1,endRow:x.endRow+C,startColumn:x.startColumn,endColumn:x.endColumn},rowInfo:Array(C).fill(void 0).map(()=>({h:r,hd:t.BooleanNumber.FALSE}))};v.push({id:M.id,params:i});let a=we(e,i);y.push({id:P.id,params:a})}let w={};t.Range.foreach(g,(e,t)=>{let n=p.getCell(e,t);n&&(w[e]||(w[e]={}),w[e][t]={s:n.s})});let{redo:T,undo:E}=dr(e,{range:g,subUnitId:f,unitId:d,shiftDimension:t.Dimension.ROWS,cellValue:w});v.push(...T),y.push(...E);let D=s.onCommandExecute({id:br.id,params:{range:g}});if(v.push(...D.redos),v.push(Jn(g,h,p)),y.push(...D.preUndos??[]),v.unshift(...D.preRedos??[]),y.unshift(...D.undos),(0,t.sequenceExecute)(v,r).result){let e=s.afterCommandExecute({id:br.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,r),y.push(...e.undos),v.push(...e.redos),i.pushUndoRedo({unitID:d,undoMutations:y.reverse(),redoMutations:v}),!0}return!1}},xr=`sheet.command.insert-range-move-right`,Sr={type:t.CommandType.COMMAND,id:xr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=e.get(t.ErrorService),l=e.get(t.LocaleService);if(tr(o.getCurrentSelections().map(({range:e})=>e)))return c.emit(l.t(`sheets.info.overlappingSelections`)),!1;let u=m(a);if(!u)return!1;let{workbook:d,worksheet:f,unitId:p,subUnitId:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=o.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v=[],y=[],b=f.getCellMatrix(),x=b.getDataRange(),S=b.getSlice(g.startRow,g.endRow,x.startColumn,x.endColumn).getDataRange().endColumn,C=Math.max(S+(g.endColumn-g.startColumn+1)-x.endColumn,0);if(C>0){let n=g.startColumn-1,r=f.getColumnWidth(n),i={unitId:p,subUnitId:h,range:{startRow:x.startRow+1,endRow:x.endRow,startColumn:x.endColumn+1,endColumn:x.endColumn+C},colInfo:Array(C).fill(void 0).map(()=>({w:r,hd:t.BooleanNumber.FALSE}))};v.push({id:N.id,params:i});let a=Te(e,i);y.push({id:F.id,params:a})}let w={};t.Range.foreach(g,(e,t)=>{let n=f.getCell(e,t);!n||!n.s||(w[e]||(w[e]={}),w[e][t]={s:n.s})});let{redo:T,undo:E}=dr(e,{range:g,subUnitId:h,unitId:p,shiftDimension:t.Dimension.COLUMNS,cellValue:w});v.push(...T),y.push(...E);let D=s.onCommandExecute({id:Sr.id,params:{range:g}});if(v.push(...D.redos),v.push(Jn(g,d,f)),y.push(...D.preUndos??[]),v.unshift(...D.preRedos??[]),y.unshift(...D.undos),(0,t.sequenceExecute)(v,r).result){let e=s.afterCommandExecute({id:Sr.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,r),y.push(...e.undos),v.push(...e.redos),i.pushUndoRedo({unitID:p,undoMutations:y.reverse(),redoMutations:v}),!0}return!1}},Cr=`sheet.command.insert-row`,wr={type:t.CommandType.COMMAND,id:Cr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(O),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:wr.id,params:n})?r.syncExecuteCommand(Tr.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},Tr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:i,worksheet:a,unitId:o,subUnitId:s}=r,{range:c,direction:l,cellValue:u}=n,{startRow:d,endRow:f}=c;c.rangeType=t.RANGE_TYPE.ROW;let p=l===t.Direction.UP?d:d-1;if(p<0||p>a.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let h=e.get(t.ICommandService),g=e.get(t.IUndoRedoService),_=e.get(O),v={unitId:o,subUnitId:s,range:c},y=a.getRowHeight(p);y!==a.getConfig().defaultRowHeight&&(v.rowInfo=Array(f-d+1).fill(void 0).map(()=>({h:y,hd:t.BooleanNumber.FALSE})));let b=we(e,v),x=[{id:M.id,params:v}],S=[{id:P.id,params:b}];u&&Object.keys(u).length>0&&x.push({id:z.id,params:{unitId:o,subUnitId:s,cellValue:u}});let C=_.onCommandExecute({id:wr.id,params:n});if(x.unshift(...C.preRedos??[]),x.push(...C.redos??[]),x.push(Jn(c,i,a)),S.unshift(...C.preUndos??[]),S.push(...C.undos??[]),(0,t.sequenceExecute)(x,h).result){let e=_.afterCommandExecute({id:wr.id,params:n});return(0,t.sequenceExecute)(e.redos,h),x.push(...e.redos),S.push(...e.undos),g.pushUndoRedo({unitID:n.unitId,undoMutations:S,redoMutations:x}),!0}return!1}},Er={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(V).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=m(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,p=s.getColumnCount()-1,h={unitId:l,subUnitId:c,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:p},cellValue:Qn(s,d,f,0,p,!0,d-1)};return e.get(t.ICommandService).executeCommand(wr.id,h)}},Dr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(V).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=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:t.RANGE_TYPE.ROW},cellValue:Qn(o,u,d,0,f,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(wr.id,p)}},Or={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(V).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=m(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,p=s.getColumnCount()-1,h=Qn(s,d,f,0,p,!0,d-1),g={unitId:c,subUnitId:l,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:p,rangeType:t.RANGE_TYPE.ROW},cellValue:h};return e.get(t.ICommandService).executeCommand(wr.id,g)}},kr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(V).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=m(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,p=s.getColumnCount()-1,h={unitId:c,subUnitId:l,direction:t.Direction.DOWN,range:{startRow:d,endRow:f,startColumn:0,endColumn:p,rangeType:t.RANGE_TYPE.ROW},cellValue:Qn(s,d,f,0,p,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(wr.id,h)}},Ar=`sheet.command.insert-col`,jr={type:t.CommandType.COMMAND,id:Ar,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(O),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:jr.id,params:n})?r.syncExecuteCommand(Mr.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},Mr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:i,worksheet:a,unitId:o,subUnitId:s}=r,{range:c,direction:l,cellValue:u}=n,{startColumn:d,endColumn:f}=c;c.rangeType=t.RANGE_TYPE.COLUMN;let p=l===t.Direction.LEFT?d:d-1;if(p<0||p>a.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let h=e.get(t.ICommandService),g=e.get(t.IUndoRedoService),_=e.get(O),v={unitId:o,subUnitId:s,range:c},y=a.getColumnWidth(p);y!==a.getConfig().defaultColumnWidth&&(v.colInfo=Array(f-d+1).fill(void 0).map(()=>({w:y,hd:t.BooleanNumber.FALSE})));let b=Te(e,v),x=[{id:N.id,params:v}],S=[{id:F.id,params:b}];u&&Object.keys(u).length>0&&x.push({id:z.id,params:{unitId:o,subUnitId:s,cellValue:u}});let C=_.onCommandExecute({id:jr.id,params:n});if(x.unshift(...C.preRedos??[]),x.push(...C.redos??[]),x.push(Jn(c,i,a)),S.unshift(...C.preUndos??[]),S.push(...C.undos??[]),(0,t.sequenceExecute)(x,h).result){let e=_.afterCommandExecute({id:jr.id,params:n});return(0,t.sequenceExecute)(e.redos,h),x.push(...e.redos),S.push(...e.undos),g.pushUndoRedo({unitID:n.unitId,undoMutations:S.filter(Boolean),redoMutations:x.filter(Boolean)}),!0}return!1}},Nr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Qn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(jr.id,p)}},Pr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(V).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=m(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:Qn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(jr.id,f)}},Fr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Qn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(jr.id,p)}},Ir={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f},cellValue:Qn(o,0,f,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(jr.id,p)}},Lr=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Jn(e,t,n);r.executeCommand(i.id,i.params)}},300),Rr=`sheet.command.remove-row`,zr={type:t.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,n)=>{if(!n)return!1;let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(O),{range:s,unitId:c,subUnitId:l}=n,u=Dn([s],e,c,l).reverse(),d=[],f=[];u.forEach(e=>{let t=[],n=[],r={unitId:c,subUnitId:l,range:e},i=je(r,a),o=a.getCellMatrix().getSlice(e.startRow,e.endRow,0,a.getColumnCount()-1),s={unitId:c,subUnitId:l,cellValue:o.getMatrix()};n.push({id:P.id,params:r}),t.push({id:M.id,params:i}),t.push({id:z.id,params:s}),f.push(...n),d.unshift(...t)});let p=n,h=o.onCommandExecute({id:Rr,params:p}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...h.preRedos??[],...f,...h.redos],g).result){Lr(s,i,a,g);let n=o.afterCommandExecute({id:Rr,params:p});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...h.preUndos??[],...d,...h.undos,...n.undos],redoMutations:[...h.preRedos??[],...f,...h.redos,...n.redos]}),!0}return!1}},Br={type:t.CommandType.COMMAND,id:Rr,handler:async(e,n)=>{var r;let i=m(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=e.get(V),o=(n==null?void 0:n.range)||((r=a.getCurrentLastSelection())==null?void 0:r.range);if(!o)return!1;let s=e.get(O),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:Br.id,params:{range:o,unitId:u,subUnitId:d}})?c.syncExecuteCommand(zr.id,{range:o,unitId:u,subUnitId:d}):!1}},Vr=`sheet.command.remove-col`,Hr={type:t.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,n)=>{if(!n)return!1;let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(O),{range:s,unitId:c,subUnitId:l}=n,u={unitId:c,subUnitId:l,range:s},d=Me(e,u),f={unitId:c,subUnitId:l,cellValue:a.getCellMatrix().getSlice(0,a.getRowCount()-1,s.startColumn,s.endColumn).getMatrix()},p=n,h=o.onCommandExecute({id:Vr,params:p}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...h.preRedos??[],{id:F.id,params:u},...h.redos],g).result){Lr(s,i,a,g);let n=o.afterCommandExecute({id:Vr,params:p});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...h.preUndos??[],{id:N.id,params:d},{id:z.id,params:f},...h.undos,...n.undos],redoMutations:[...h.preRedos??[],{id:F.id,params:u},...h.redos,...n.redos]}),!0}return!1}},Ur={type:t.CommandType.COMMAND,id:Vr,handler:async(e,n)=>{var r;let i=e.get(V),a=e.get(O),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||=(r=i.getCurrentLastSelection())==null?void 0:r.range,!s)return!1;let c=m(e.get(t.IUniverInstanceService),n);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:Ur.id,params:{range:s,unitId:d,subUnitId:u}})?o.syncExecuteCommand(Hr.id,{range:s,unitId:d,subUnitId:u}):!1}},Wr=(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=h(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}},Gr={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.getUnit(a,t.UniverInstanceType.UNIVER_SHEET);return o?o.removeSheet(i):!1}};function Kr(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function qr(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let Jr=`sheet.command.move-rows`,Yr={id:Jr,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(V),{fromRange:{startRow:i},toRange:{startRow:a},range:o}=n,s=o?[Qr(o)]:r.getCurrentSelections(),c=s==null?void 0:s.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW&&e.range.startRow<=i&&i<=e.range.endRow);if((c==null?void 0:c.length)!==1)return!1;let l=e.get(O),u=m(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{workbook:d,worksheet:f}=u,p=d.getUnitId(),h=f.getSheetId(),g=e.get(t.ErrorService),_=e.get(t.LocaleService),v=c[0].range,y=c[0].primary,b=Gn(v,f,!1);if(!t.Rectangle.equals(v,b))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(Kr(a,f))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let x={...v,startRow:a,endRow:a+v.endRow-v.startRow},S={unitId:p,subUnitId:h,sourceRange:v,targetRange:x},C=De(e,S),w=e.get(t.ICommandService),T=l.onCommandExecute({id:Yr.id,params:n}),E=[...T.preRedos??[],{id:Oe.id,params:S}],D=[...T.preUndos??[],{id:Oe.id,params:C}];if(y){let e=a-i<0,t=v.endRow-v.startRow+1,n=e?x:{...x,startRow:x.startRow-t,endRow:x.endRow-t},r={unitId:p,subUnitId:h,type:2,selections:[{range:n,primary:U(n,f),style:null}]},o={unitId:p,subUnitId:h,type:2,selections:[{range:v,primary:y,style:null}]};E.push({id:W.id,params:r}),D.push({id:W.id,params:o})}if(E.push(...T.redos),D.push(...T.undos),(0,t.sequenceExecute)(E,w).result){let r=l.afterCommandExecute({id:Yr.id,params:n});return(0,t.sequenceExecute)(r.redos,w),E.push(...r.redos),D.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:D,redoMutations:E}),!0}return!1}},Xr=`sheet.command.move-cols`,Zr={id:Xr,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(V),{fromRange:{startColumn:i},toRange:{startColumn:a},range:o}=n,s=o?[Qr(o)]:r.getCurrentSelections(),c=s==null?void 0:s.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN&&e.range.startColumn<=i&&i<=e.range.endColumn);if((c==null?void 0:c.length)!==1)return!1;let l=e.get(O),u=m(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{workbook:d,worksheet:f}=u,p=d.getUnitId(),h=f.getSheetId(),g=e.get(t.ErrorService),_=e.get(t.LocaleService),v=c[0].range,y=c[0].primary,b=Gn(v,f,!1);if(!t.Rectangle.equals(v,b))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(qr(a,f))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let x={...v,startColumn:a,endColumn:a+v.endColumn-v.startColumn},S={unitId:p,subUnitId:h,sourceRange:v,targetRange:x},C=ke(e,S),w=e.get(t.ICommandService),T=l.onCommandExecute({id:Zr.id,params:n}),E=[...T.preRedos??[],{id:Ae.id,params:S}],D=[...T.preUndos??[],{id:Ae.id,params:C}];if(y){let e=v.endColumn-v.startColumn+1,t=a-i<0?x:{...x,startColumn:x.startColumn-e,endColumn:x.endColumn-e},n={unitId:p,subUnitId:h,type:2,selections:[{range:t,primary:U(t,f),style:null}]},r={unitId:p,subUnitId:h,type:2,selections:[{range:v,primary:y,style:null}]};E.push({id:W.id,params:n}),D.push({id:W.id,params:r})}if(E.push(...T.redos),D.push(...T.undos),(0,t.sequenceExecute)(E,w).result){let r=l.afterCommandExecute({id:Zr.id,params:n});return(0,t.sequenceExecute)(r.redos,w),E.push(...r.redos),D.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:D,redoMutations:E}),!0}return!1}};function Qr(e){return{range:e,primary:null,style:null}}let $r=`sheet.command.reorder-range`,ei={id:$r,type:t.CommandType.COMMAND,handler:(e,n)=>{let{subUnitId:r,unitId:i,range:a,order:o}=n,s=e.get(t.ICommandService),c={id:Pe.id,params:{unitId:i,subUnitId:r,order:o,range:a}},l={id:Pe.id,params:Ne(c.params)},u=e.get(O),d=u.onCommandExecute({id:ei.id,params:n}),f=[...d.preRedos??[],c,...d.redos],p=[...d.preUndos??[],l,...d.undos],m=(0,t.sequenceExecute)(f,s),{suitableRanges:h,remainingRanges:g}=Vn([a],e.get(H).getSkeleton(i,r)),{undos:_,redos:v}=u.generateMutationsOfAutoHeight({unitId:i,subUnitId:r,ranges:[a],autoHeightRanges:h,lazyAutoHeightRanges:g}),y=u.afterCommandExecute({id:ei.id,params:n});return m.result?((0,t.sequenceExecute)([...y.redos,...v],s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,undoMutations:[...p,...y.undos,..._],redoMutations:[...f,...y.redos,...v]}),!0):!1}},G={MoveRangeCommandId:ir,InsertRowCommandId:Cr,InsertColCommandId:Ar,RemoveColCommandId:Vr,RemoveRowCommandId:Rr,DeleteRangeMoveLeftCommandId:hr,DeleteRangeMoveUpCommandId:_r,InsertRangeMoveDownCommandId:yr,InsertRangeMoveRightCommandId:xr,MoveColsCommandId:Xr,MoveRowsCommandId:Jr,ReorderRangeCommandId:$r},ti=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}({}),ni=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},K=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}};function ri(e){return ii(e.length>1?t.Rectangle.mergeRanges(e):e)}function ii(e){return e.sort((e,t)=>e.startRow-t.startRow||e.startColumn-t.startColumn||e.endRow-t.endRow||e.endColumn-t.endColumn)}function ai(e,t,n){return{startRow:e.startRow+t,endRow:e.endRow+t,startColumn:e.startColumn+n,endColumn:e.endColumn+n}}function oi(e,t,n,r,i){let a;if(t>r)a=[{start:-1/0,end:r-1,offset:0},{start:r,end:t-1,offset:n},{start:t,end:t+n-1,offset:r-t},{start:t+n,end:1/0,offset:0}];else{if(t+n>r)throw Error(`Invalid move operation`);a=[{start:-1/0,end:t-1,offset:0},{start:t,end:t+n-1,offset:r-t-n},{start:t+n,end:r-1,offset:-n},{start:r,end:1/0,offset:0}]}let o=i?e.startRow:e.startColumn,s=i?e.endRow:e.endColumn;return ri(a.flatMap(({start:t,end:n,offset:r})=>{let a=Math.max(o,t),c=Math.min(s,n);return a>c?[]:[ai(i?{startRow:a,endRow:c,startColumn:e.startColumn,endColumn:e.endColumn}:{startRow:e.startRow,endRow:e.endRow,startColumn:a,endColumn:c},i?r:0,i?0:r)]}))}let si=(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)}},ci=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=ni(n),a=ni(r),o=ni(t),s=si({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}]},li=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startRow,a=n.endRow-n.startRow+1,o=r.startRow;return oi(t,i,a,o,!0)},ui=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[n];let a=[],o=[],s=Math.max(r.startColumn,n.startColumn),c=Math.min(r.endColumn,n.endColumn);return Object.keys(i).forEach(e=>{let t=Number(e);if(t<r.startRow||t>r.endRow)return;a.push({startRow:t,endRow:t,startColumn:r.startColumn,endColumn:r.endColumn});let l=i[t];l>=n.startRow&&l<=n.endRow&&s<=c&&o.push({startRow:t,endRow:t,startColumn:s,endColumn:c})}),ri([...t.Rectangle.subtractMulti([n],a),...o])},di=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=ni(n),a=ni(r),o=ni(t),s=si({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}]},fi=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startColumn,a=n.endColumn-n.startColumn+1,o=r.startColumn;return oi(t,i,a,o,!1)},pi=(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},mi=(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=a.startColumn-o.startColumn,c=a.startRow-o.startRow,l=(0,t.getIntersectRange)(o,n),u=t.Rectangle.subtractMulti([n],[o,a]),d=l?[ai(l,c,s)]:[];return ri([...u,...d])},hi=(e,n)=>{let r=ni(e),i=ni(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=(0,t.getIntersectRange)(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=(0,t.getIntersectRange)(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}},gi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=hi(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},_i=(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=hi(K(e),K(t));if(!n)a.push({type:1});else{let{step:e,length:t}=n;a.push({type:3,step:e,length:t})}}return a},vi=(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[]},yi=(e,t)=>{let n=ni(e),r=ni(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 bi(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 xi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(K(r),K(t));return i.push({type:3,step:a,length:o}),i},Si=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(r,t);return i.push({type:2,step:a,length:o}),i},Ci=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(K(r),K(t));return i.push({type:3,step:a,length:o}),i},wi=(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=(0,t.getIntersectRange)(o,n);return c?ii([...s,ai(c,a,0)]):[n]},Ti=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(r,t);return i.push({type:2,step:a,length:o}),i},Ei=(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=(0,t.getIntersectRange)(o,n);return c?ii([...s,ai(c,0,a)]):[n]},Di=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=hi(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},Oi=(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.subtract(n,a),c=(0,t.getIntersectRange)(a,n);if(!c)return[n];let l=c?t.Rectangle.subtract(c,i).map(e=>ai(e,0,-o)):[];return ri([...s,...l])},ki=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=hi(K(r),K(t));if(!a)i.push({type:1});else{let{step:e,length:t}=a;i.push({type:3,step:e,length:t})}return i},Ai=(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.subtract(n,a),c=(0,t.getIntersectRange)(a,n);if(!c)return[n];let l=c?t.Rectangle.subtract(c,i).map(e=>ai(e,-o,0)):[];return ri([...s,...l])},ji=(e,n)=>{let r=(0,t.mergeIntervals)((e.ranges??[e.range]).map(e=>[e.startRow,e.endRow])),i=n.startRow,a=n.endRow;for(let e=r.length-1;e>=0;e--){let[t,o]=r[e];if(t<=n.startRow&&o>=n.endRow)return[];if(o<i){let e=o-t+1;i-=e,a-=e}else if(!(t>a)){let e=Math.max(t,i),n=Math.min(o,a)-e+1;if(a-=n,t<=i){let t=e-i;i-=t}}}return[{...n,startRow:i,endRow:a}]},Mi=(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]},Ni=(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]},Pi=(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},Fi=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:n=Di(t,e);break;case G.DeleteRangeMoveUpCommandId:n=ki(t,e);break;case G.InsertColCommandId:n=Si(t,e);break;case G.InsertRangeMoveDownCommandId:n=Ci(t,e);break;case G.InsertRangeMoveRightCommandId:n=Ti(t,e);break;case G.InsertRowCommandId:n=xi(t,e);break;case G.MoveColsCommandId:n=di(t,e);break;case G.MoveRangeCommandId:n=pi(t,e);break;case G.MoveRowsCommandId:n=ci(t,e);break;case G.RemoveColCommandId:n=gi(t,e);break;case G.RemoveRowCommandId:n=_i(t,e);break;case G.ReorderRangeCommandId:n=vi(t,e);break}return Pi(n,e)},Ii=(e,n,r)=>[gr.id,vr.id].includes(n.id)||Bi(n,r).some(n=>t.Rectangle.intersects(n,e))?Fi(e,n):e,Li=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:return Oi(t,e);case G.DeleteRangeMoveUpCommandId:return Ai(t,e);case G.InsertRangeMoveDownCommandId:return wi(t,e);case G.InsertRangeMoveRightCommandId:return Ei(t,e);case G.InsertColCommandId:return Ni(t,e);case G.InsertRowCommandId:return Mi(t,e);case G.MoveColsCommandId:return fi(t,e);case G.MoveRangeCommandId:return mi(t,e);case G.MoveRowsCommandId:return li(t,e);case G.ReorderRangeCommandId:return ui(t,e);case G.RemoveColCommandId:n=gi(t,e);break;case G.RemoveRowCommandId:return ji(t.params,e)}let r=Pi(n,e);return r?[r]:[]},Ri=(e,n,r)=>[gr.id,vr.id,br.id,`sheet.command.insert-range-move-right`].includes(n.id)||Bi(n,r).some(n=>t.Rectangle.intersects(n,e))?Li(e,n):e;function zi(e,n){let{id:r,params:i}=n,a={length:0,step:0,type:4};switch(r){case Gr.id:a.type=1;break;case Oe.id:a=si({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 Ae.id:a=si({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 F.id:a=hi(i.range,e),a?a.type=2:a={step:0,length:0,type:1};break;case P.id:a=hi(K(i.range),K(e)),a?a.type=3:a={step:0,length:0,type:1};break;case M.id:a=yi(K(i.range),K(e)),a.type=3;break;case N.id:a=yi(i.range,e),a.type=2;break;case Ee.id:a=bi(i.fromRange||new t.ObjectMatrix(i.from).getRange(),i.toRange||new t.ObjectMatrix(i.to).getRange(),e);break;default:break}return a?Pi(Array.isArray(a)?a:[a],e):e}function Bi(e,t){let{selectionManagerService:n}=t;switch(e.id){case G.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case G.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case G.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case G.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case G.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case G.RemoveRowCommandId:return[e.params.range];case G.RemoveColCommandId:return[e.params.range];case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{var r,i;let t=((r=e.params)==null?void 0:r.range)||((i=n.getCurrentSelections())==null||(i=i.map(e=>e.range))==null?void 0:i[0]);return t?[t]:[]}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{var a,o;let t=((a=e.params)==null?void 0:a.range)||((o=n.getCurrentSelections())==null||(o=o.map(e=>e.range))==null?void 0:o[0]);return t?[t]:[]}case G.ReorderRangeCommandId:{let{range:t,order:n}=e.params,r=[];for(let e=t.startRow;e<=t.endRow;e++)e in n&&r.push({startRow:e,endRow:e,startColumn:t.startColumn,endColumn:t.endColumn});return r}}}function Vi(e){switch(e.id){case Ae.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case Oe.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Ee.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case N.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case M.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case F.id:return[e.params.range];case P.id:return[e.params.range];default:break}}function Hi(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case G.MoveColsCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startColumn:o.startColumn<s.startColumn?o.endColumn+1:s.startColumn,endColumn:o.startColumn<s.startColumn?s.endColumn-1:o.startColumn-1}]}}case G.MoveRowsCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startRow:o.startRow<s.startRow?o.endRow+1:s.startRow,endRow:o.startRow<s.startRow?s.endRow-1:o.startRow-1}]}}case G.MoveRangeCommandId:{let e=n.params,t=m(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case G.InsertRowCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startRow>0?[{...s,startRow:s.startRow-1,endRow:s.endRow-1}]:[],{...s,startRow:s.startRow,endRow:i.getRowCount()-1}]}}case G.InsertColCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startColumn>0?[{...s,startColumn:s.startColumn-1,endColumn:s.endColumn-1}]:[],{...s,startColumn:s.startColumn,endColumn:i.getColumnCount()-1}]}}case G.RemoveRowCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.RemoveColCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let e=n.params,t=m(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let e=n.params,t=m(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.ReorderRangeCommandId:{let e=n.params,t=m(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 Ui=(0,t.createInterceptorKey)(`MERGE_REDO`),Wi=(0,t.createInterceptorKey)(`MERGE_UNDO`);var Gi=class extends t.Disposable{constructor(e,t,n,r,i,a=!1){super(),this.revision=e,this._unitId=t,this._subUnitId=n,this._range=r,this._callback=i,this._skipIntersects=a}onMutation(e){var n,r;if(((n=e.params)==null?void 0:n.unitId)!==this._unitId)return;if(e.id===Ee.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===Gr.id)return;let n=Vi(e);if(n!=null&&n.some(e=>t.Rectangle.intersects(e,this._range)))return}let i=zi(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 Ki=class extends t.Disposable{constructor(e,n,r,i){super(),this._commandService=e,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,T(this,`interceptor`,new t.InterceptorManager({MERGE_REDO:Ui,MERGE_UNDO:Wi})),T(this,`_watchRanges`,new Set),T(this,`_watchRangesListener`,null),T(this,`_watchRangeRevision`,0),T(this,`_refRangeManagerMap`,new Map),T(this,`_serializer`,Xi()),T(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let n=(()=>{switch(e.id){case G.MoveColsCommandId:{let t=e.params,n=m(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startColumn,t.toRange.startColumn);return this._checkRange([{...t.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case G.MoveRowsCommandId:{let t=e.params,n=m(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startRow,t.toRange.startRow);return this._checkRange([{...t.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case G.MoveRangeCommandId:{let t=e.params,n=m(this._univerInstanceService,{unitId:t.fromUnitId,subUnitId:t.fromSubUnitId}),r=m(this._univerInstanceService,{unitId:t.toUnitId??t.fromUnitId,subUnitId:t.toSubUnitId??t.fromSubUnitId});if(!n&&!r)return[];if(n&&r&&n.unitId===r.unitId&&n.subUnitId===r.subUnitId)return this._checkRange([t.fromRange,t.toRange],n.unitId,n.subUnitId);let i=[];return n&&i.push(...this._checkRange([t.fromRange],n.unitId,n.subUnitId)),r&&i.push(...this._checkRange([t.toRange],r.unitId,r.subUnitId)),i}case G.InsertRowCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:Math.max(0,n.range.startRow-1),endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.InsertColCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:Math.max(0,n.range.startColumn-1),endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.RemoveRowCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:n.range.startRow,endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.RemoveColCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:n.range.startColumn,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let t=e.params,n=m(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let t=e.params,n=m(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case G.ReorderRangeCommandId:{let t=e.params,n=m(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)=>(e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...t.preRedos??[]),e.preUndos.push(...t.preUndos??[]),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}}})}),T(this,`_checkRange`,(e,n,r)=>{let i=Yi(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[]}),T(this,`registerRefRange`,(e,n,r,i)=>{let a=r||qi(this._univerInstanceService),o=i||Ji(this._univerInstanceService);if(!a||!o)return(0,t.toDisposable)(()=>{});let s=Yi(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){this._watchRangesListener||=this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.type!==t.CommandType.MUTATION)return!1;let n=this._watchRangeRevision;for(let t of this._watchRanges)t.revision>n||t.onMutation(e)}));let o=new Gi(++this._watchRangeRevision,e,n,r,i,a);this._watchRanges.add(o);let s=(0,t.toDisposable)(()=>{if(this._watchRanges.delete(o),this._watchRanges.size===0){var e;(e=this._watchRangesListener)==null||e.dispose(),this._watchRangesListener=null}}),c=this.disposeWithMe(s);return(0,t.toDisposable)(()=>{c.dispose(),s.dispose()})}};Ki=D([E(0,t.ICommandService),E(1,(0,t.Inject)(O)),E(2,(0,t.Inject)(t.IUniverInstanceService)),E(3,(0,t.Inject)(V))],Ki);function qi(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function Ji(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function Yi(e,t){return`${e}_${t}`}function Xi(){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 Zi=[N.id,M.id,F.id,P.id],Qi=[Oe.id,Ae.id];function $i(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 ea=(0,t.createInterceptorKey)(`mergeCellPermissionCheck`),ta=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,T(this,`disposableCollection`,new t.DisposableCollection),T(this,`interceptor`,new t.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:ea})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case Un.id:case Wn.id:{var r;let n=e._univerInstanceService.getCurrentUnitOfType(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=I(e._injector,t);return{redos:[{id:L.id,params:t}],undos:[{id:_.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=m(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:L.id,params:{unitId:e,subUnitId:n,ranges:l}}),a.push({id:_.id,params:{unitId:e,subUnitId:n,ranges:l}}),{undos:a,redos:i}):o}})}refRangeHandle(e,t,n){switch(e.id){case G.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case G.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case wr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case jr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Ur.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case Br.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case ar.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case Sr.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case br.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case vr.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case gr.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return;let i=r==null?void 0:r.getSheetBySheetId(n);if(!i)return;this.disposableCollection.dispose();let a=i.getMergeData(),o=t=>this.refRangeHandle(t,e,n);a.forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,o,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===zt.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===_.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=na(this._univerInstanceService,t);if(!r)return this._handleNull();let i=ra(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=Pi(ci({id:G.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=g(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:_.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:_.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=na(this._univerInstanceService,t);if(!r)return this._handleNull();let i=ra(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=Pi(di({id:G.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=g(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:_.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:_.id,params:d}]}}_handleMoveRangeCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=e.fromSubUnitId??r,o=e.toSubUnitId??a,s=ra(i,a),c=ra(i,o);if(!s||!c)return this._handleNull();let l=s.getMergeData().filter(n=>t.Rectangle.intersects(n,e.fromRange)),u=c.getMergeData().filter(n=>t.Rectangle.intersects(n,e.toRange)),d=$i(l.map(n=>t.Rectangle.getRelativeRange(n,e.fromRange)).map(n=>t.Rectangle.getPositionRange(n,e.toRange))).filter(e=>!c.getMergeData().some(n=>t.Rectangle.equals(e,n))),f=[],p=[];return r===a&&l.length>0&&(f.push({id:L.id,params:{unitId:n,subUnitId:a,ranges:l}}),p.push({id:_.id,params:{unitId:n,subUnitId:a,ranges:l}})),r===o&&u.length>0&&(f.push({id:L.id,params:{unitId:n,subUnitId:o,ranges:u}}),p.push({id:_.id,params:{unitId:n,subUnitId:o,ranges:u}})),r===o&&d.length>0&&(f.push({id:_.id,params:{unitId:n,subUnitId:o,ranges:d}}),p.unshift({id:L.id,params:{unitId:n,subUnitId:o,ranges:d}})),f.length===0?this._handleNull():{redos:f,undos:p}}_handleInsertRowCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{redos:[{id:L.id,params:d},{id:_.id,params:p}],undos:[{id:L.id,params:m},{id:_.id,params:f}]}}_handleInsertColCommand(e,n,r){let{range:i}=e,a=na(this._univerInstanceService,n);if(!a)return this._handleNull();let o=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{redos:[{id:L.id,params:d},{id:_.id,params:p}],undos:[{id:L.id,params:m},{id:_.id,params:f}]}}_handleRemoveColCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}];return{preUndos:[{id:L.id,params:m}],undos:[{id:_.id,params:f}],preRedos:h,redos:v}}_handleRemoveRowCommand(e,n,r){let{range:i}=e,a=na(this._univerInstanceService,n);if(!a)return this._handleNull();let o=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}];return{preUndos:[{id:L.id,params:m}],undos:[{id:_.id,params:f}],preRedos:h,redos:v}}_handleInsertRangeMoveRightCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:_.id,params:p}],preUndos:[{id:L.id,params:m}],undos:[{id:_.id,params:f}]}}_handleInsertRangeMoveDownCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}],y=[{id:L.id,params:m}];return{redos:v,undos:[{id:_.id,params:f}],preRedos:h,preUndos:y}}_handleDeleteRangeMoveUpCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}],y=[{id:L.id,params:m}];return{redos:v,undos:[{id:_.id,params:f}],preRedos:h,preUndos:y}}_handleDeleteRangeMoveLeftCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:_.id,params:p}],undos:[{id:_.id,params:f}],preUndos:[{id:L.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(Qi.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getUnit(e.params.unitId,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,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(Zi.includes(e.id)){let n=this._univerInstanceService.getUnit(e.params.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let i=r.getConfig().mergeData,a=e.params;if(!a)return;let{range:o}=a,s=e.id.includes(`row`),c=e.id.includes(`insert`),l=s?o.startRow:o.startColumn,u=s?o.endRow:o.endColumn,d=u-l+1,f=[];i.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;c?s?l<=t&&(t+=d,n+=d):l<=r&&(r+=d,i+=d):s?u<t&&(t-=d,n-=d):u<r&&(r-=d,i-=d),(e.startRow!==e.endRow||e.startColumn!==e.endColumn)&&f.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),r.setMergeData(f),this.disposableCollection.dispose();let{unitId:p,subUnitId:m}=e.params,h=e=>this.refRangeHandle(e,p,m);f.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,h,p,m))})}}))}};ta=D([E(0,(0,t.Inject)(t.ICommandService)),E(1,(0,t.Inject)(Ki)),E(2,(0,t.Inject)(t.IUniverInstanceService)),E(3,(0,t.Inject)(t.Injector)),E(4,(0,t.Inject)(O)),E(5,(0,t.Inject)(V))],ta);function na(e,n){return n?e.getUnit(n,t.UniverInstanceType.UNIVER_SHEET):e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET)}function ra(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}let ia=(e,n,r)=>{let i=e.get(V).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:W.id,params:h}}return null}return null},aa=(e,t)=>{let n=e.get(V).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:W.id,params:e}}return null},oa={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,n)=>{var r;let i=e.get(V),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=m(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{subUnitId:l,unitId:u,worksheet:d}=c,f={unitId:u,subUnitId:l,ranges:s},p=d.getConfig().mergeData.filter(e=>s.some(n=>t.Rectangle.intersects(n,e)));if(!p.length)return!1;let h=I(e,f),g=i.getCurrentSelections(),v=t.Tools.deepClone(g),y=t.Tools.deepClone(g);if(g.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:sa(d,p).getMatrix()},x=R(e,b),S=[{id:L.id,params:h},{id:z.id,params:b},{id:W.id,params:{unitId:u,subUnitId:l,selections:y,type:3}}],C=[{id:_.id,params:h},{id:z.id,params:x},{id:W.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 sa(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 ca(e,t){return t.some(t=>la(e,t))}function la(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 ua(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s=da(n,r),c={unitId:t,subUnitId:o,cellValue:s.clone()},l=R(e,c);i.push({id:z.id,params:l}),a.push({id:z.id,params:c})}),{undos:i,redos:a}}function da(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;!l&&e.cellHasValue(a)&&(a.v!==``||(((o=a.p)==null||(o=o.body)==null||(o=o.dataStream)==null?void 0:o.length)??0)>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 fa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,n)=>{let r=m(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=$i(s,n.value),d=ca(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:`sheets.merge.confirm.warning`},children:{title:`sheets.merge.confirm.title`},cancelText:r.t(`sheets.merge.confirm.cancel`),confirmText:r.t(`sheets.merge.confirm.confirm`)}))return!1}let f=[],p=[],h={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},y=I(e,h),b=g(e,v);if(y.ranges.length>0&&f.push({id:L.id,params:y}),f.push({id:_.id,params:v}),p.push({id:L.id,params:b}),y.ranges.length>0&&p.push({id:_.id,params:y}),d){let t=ua(e,a,i,u);f.unshift(...t.redos),p.push(...t.undos)}let x=ia(e,n,u);x&&f.push(x);let S=aa(e,n);S&&p.push(S);let C=e.get(O).onCommandExecute({id:fa.id,params:{unitId:a,subUnitId:o,ranges:u}});return f.push(...C.redos),p.push(...C.undos),(0,t.sequenceExecute)(f,c).result?(l.pushUndoRedo({unitID:a,undoMutations:p,redoMutations:f}),!0):!1}},pa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var n;let r=_a(`mergeAll`,(n=e.get(V).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=m(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(fa.id,{selections:r,unitId:o,subUnitId:s})}},ma={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=_a(`mergeVertical`,(n=e.get(V).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=m(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(fa.id,{value:t.Dimension.COLUMNS,selections:r,unitId:o,subUnitId:s})}},ha={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=_a(`mergeHorizontal`,(n=e.get(V).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=m(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(fa.id,{value:t.Dimension.ROWS,selections:r,unitId:s,subUnitId:c})}};function ga(e,n,r,i,a={}){let o=m(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(oa.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(fa.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function _a(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 va=class{constructor(){T(this,`_model`,new Map),T(this,`_ruleChange`,new n.Subject),T(this,`_ruleRefresh`,new n.Subject),T(this,`_resetOrder`,new n.Subject),T(this,`ruleChange$`,this._ruleChange.asObservable()),T(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),T(this,`resetOrder$`,this._resetOrder.asObservable()),T(this,`_worksheetRuleInitStateChange`,new n.BehaviorSubject(!1)),T(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 ya={id:`sheet.mutation.add-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(va),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},ba={id:`sheet.mutation.delete-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(va),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},xa={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(ya.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:ya.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:ba.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},Sa={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=xe(e,n);return r.syncExecuteCommand(be.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Se.id,params:o}],redoMutations:[{id:be.id,params:n}]}),!0):!1}},Ca={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=R(e,f),m=[{id:z.id,params:f}],h=[{id:z.id,params:p}];if(c){let t={unitId:a,subUnitId:o,range:{startRow:u,endRow:u,startColumn:0,endColumn:d-1}},n=we(e,t);m.unshift({id:M.id,params:t}),h.push({id:P.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=Te(e,t);m.unshift({id:N.id,params:t}),h.push({id:F.id,params:n})}return(0,t.sequenceExecute)(m,r).result?(i.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},wa=[`ff`,`fs`,`stf`,`tr`,`tb`],q={type:t.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(e,n)=>{var r;let i=m(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(V),p=c?[c]:(r=f.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(p!=null&&p.length))return!1;let h=new t.ObjectMatrix,g=Xn(s);if(t.Tools.isArray(l.value))for(let e=0;e<p.length;e++)g.forOperableEach(p[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<p.length;e++){let t={s:{[l.type]:l.value}};g.forOperableEach(p[e],(e,n)=>h.setValue(e,n,t))}let _={subUnitId:o,unitId:a,cellValue:h.getMatrix()},v=e.get(H).getSkeleton(a,o),y=R(e,_),b=null;if(wa.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=Vn(p,v);b={suitableRanges:e,remainingRanges:t,cellHeights:Bn(e,s)}}let x=u.syncExecuteCommand(z.id,_),S=e.get(O),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:z.id,params:y},...T,...C],redoMutations:[{id:z.id,params:_},...E,...w]}),!0):!1}},Ta={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Ea={type:t.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Da={type:t.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Oa={type:t.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},ka={type:t.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Aa={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)}},ja={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)}},Ma={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)}},Na={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}}})},Pa={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)}},Fa={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}}})},Ia={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)}},La={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)}},Ra={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)}},za={type:t.CommandType.COMMAND,id:`sheet.command.set-shrink-to-fit`,handler:(e,n)=>{let r=n==null?void 0:n.value;if(r===void 0){var i;let n=e.get(V).getCurrentLastSelection(),a=m(e.get(t.IUniverInstanceService));if(!(n!=null&&n.primary)||!a)return!1;let{actualRow:o,actualColumn:s}=n.primary;r=((i=a.worksheet.getComposedCellStyle(o,s))==null?void 0:i.stf)===t.BooleanNumber.TRUE?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}return e.get(t.ICommandService).syncExecuteCommand(q.id,{unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId,range:n==null?void 0:n.range,style:{type:`stf`,value:r}})}},Ba={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)}},Va={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Ha=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Ua=[``,`万`,`亿`,`万亿`,`亿亿`],Wa=[``,`十`,`百`,`千`],Ga={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function Ka(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=Va[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=Ga[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 qa(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Ha[a]+n):(i=!1,t=Ha[a],t+=Wa[r],n=t+n),r++,e=Math.floor(e/10)}return n}function Ja(e){let t=0,n=``,r=``,i=!1;if(e===0)return Ha[0];for(;e>0;){let a=e%1e4;i&&(r=Ha[0]+r),n=qa(a),n+=a===0?Ua[0]:Ua[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Ya(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Va;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Va||n[e]in Ga)){t=!1;break}}return t}function Xa(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 Za(e){let t;return t=e.length===1?e===`日`||Ka(e)<7:!1,t}function Qa(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function $a(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function eo(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function to(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 no(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 ro(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);bo(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function io(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 ao(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 oo(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function so(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&&ao(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%e.length,a=t.Tools.deepClone(e[n]);bo(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&&(yo(a)&&(a.v=o),i.push(a))}else{let o=oo(e.length);for(let s=1;s<=n;s++){let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);bo(c);let l=r===t.Direction.DOWN||r===t.Direction.RIGHT,u=co(e.length+s,a,o,l);c&&(yo(c)&&(c.v=u),i.push(c))}}return i}function co(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 lo(e,n,r){let i=[],a=e[e.length-1],o=Xa(`${a==null?void 0:a.v}`);if(!o.isExtendNumber)return ro(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(bo(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 uo(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);bo(a),a&&(delete a.v,r.push(a))}return r}function fo(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]);bo(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=Ka(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 po(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]);bo(s);let c=Ka(`${(a=e[e.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:Ja(c),s&&(s.v=l,i.push(s))}return i}let mo={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 ho(e){let t=!1;return Object.keys(mo).forEach(n=>{mo[n].includes(e)&&(t=!0)}),t}function go(e){let t=``,n=[];return Object.keys(mo).forEach(r=>{mo[r].includes(e)&&(t=r,n.push(...mo[r]))}),{name:t,series:n}}function _o(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]);bo(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 vo(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 yo(e){return!((0,t.isFormulaString)(e.f)||(0,t.isFormulaId)(e.si)||e.t===t.CellValueType.BOOLEAN)}function bo(e){e&&`custom`in e&&delete e.custom}function xo(e,t){return t?e.reverse():e}function So(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 Co={chnNumChar:Va,chnNumChar2:Ha,chnUnitSection:Ua,chnUnitChar:Wa,chnNameValue:Ga,chineseToNumber:Ka,sectionToChinese:qa,numberToChinese:Ja,isChnNumber:Ya,matchExtendNumber:Xa,isChnWeek1:Za,isChnWeek2:Qa,isChnWeek3:$a,getLenS:eo,isEqualDiff:to,getDataIndex:no,fillCopy:ro,fillCopyStyles:io,isEqualRatio:ao,getXArr:oo,fillSeries:so,forecast:co,fillExtendNumber:lo,fillOnlyFormat:uo,fillChnWeek:fo,fillChnNumber:po,isLoopSeries:ho,getLoopSeriesInfo:go,fillLoopSeries:_o,getAutoFillRepeatRange:vo,needsUpdateCellValue:yo,removeCellCustom:bo,reverseIfNeed:xo,generateNullCellValueRowCol:So},wo=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),To=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}({}),Eo=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:Do,fillChnNumber:Oo,fillChnWeek:ko,fillCopy:Ao,fillExtendNumber:jo,fillLoopSeries:Mo,fillSeries:No,getLoopSeriesInfo:Po,isChnNumber:Fo,isChnWeek2:Io,isChnWeek3:Lo,isEqualDiff:Ro,isLoopSeries:zo,matchExtendNumber:Bo,reverseIfNeed:Vo}=Co,Ho={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(),No(i,n,r).reverse()):No(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(),No(i,n,r).reverse()):No(i,n,r)}}},extendNumberRule:{type:`extendNumber`,priority:900,match:e=>Bo(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===`extendNumber`){var n;let r=Bo(`${(n=e.cellData)==null?void 0:n.v}`||``),i=Bo(`${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,Vo(jo(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`,n=Bo(t);n.isExtendNumber&&s.push(n.matchNumber)}if(a&&(i.reverse(),s.reverse()),Ro(s)){let e=i.length;return o=s[e-1]-s[e-2],Vo(jo(i,n,o),a)}return Ao(i,n)}}},chnNumberRule:{type:`chnNumber`,priority:830,match:e=>!!Fo(`${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===`日`||Do(e)<7)?Vo(ko(i,n,t),a):Vo(Oo(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&&Do(t)>0&&Do(t)<7?l.push(Do(t)+u*7):l.push(Do(t))}if(a&&(i.reverse(),l.reverse()),Ro(l)){if(s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0){let e=i.length,t=l[e-1]-l[e-2];return Vo(ko(i,n,t),a)}let e=l[1]-l[0];return Vo(Oo(i,n,e),a)}return Ao(i,n)}}},chnWeek2Rule:{type:`chnWeek2`,priority:820,match:e=>!!Io(`${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,Vo(ko(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(Do(n)+s*7)}if(a&&(i.reverse(),o.reverse()),Ro(o)){let e=i.length,t=o[e-1]-o[e-2];return Vo(ko(i,n,t,1),a)}return Ao(i,n)}}},chnWeek3Rule:{type:`chnWeek3`,priority:810,match:e=>Lo(`${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,Vo(ko(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(Do(n)+s*7)}}if(a&&(i.reverse(),o.reverse()),Ro(o)){let e=i.length,t=o[e-1]-o[e-2];return Vo(ko(i,n,t,2),a)}return Ao(i,n)}}},loopSeriesRule:{type:`loopSeries`,priority:800,match:e=>zo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===`loopSeries`){var n;return Po(`${(n=e.cellData)==null?void 0:n.v}`||``).name===Po(`${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}=Po(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,Vo(Mo(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()),Ro(c)){let e=a.length,t=c[e-1]-c[e-2];return Vo(Mo(a,n,t,s),o)}return Ao(a,n)}}},otherRule:{type:`other`,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===`other`}},{chnNumberRule:Uo,chnWeek2Rule:Wo,chnWeek3Rule:Go,dateRule:Ko,extendNumberRule:qo,loopSeriesRule:Jo,numberRule:Yo,otherRule:Xo}=Ho,Zo=class extends t.Disposable{constructor(e,r,i,a){super(),this._commandService=e,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,T(this,`_rules`,[]),T(this,`_hooks`,[]),T(this,`_applyType$`,new n.BehaviorSubject(`SERIES`)),T(this,`_isFillingStyle`,!0),T(this,`_prevUndos`,[]),T(this,`_autoFillLocation$`,new n.BehaviorSubject(null)),T(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),T(this,`_showMenu$`,new n.BehaviorSubject(!1)),T(this,`showMenu$`,this._showMenu$.asObservable()),T(this,`_direction`,t.Direction.DOWN),T(this,`applyType$`,this._applyType$.asObservable()),T(this,`_menu$`,new n.BehaviorSubject([{label:`sheets.autoFill.copy`,value:`COPY`,disable:!1},{label:`sheets.autoFill.series`,value:`SERIES`,disable:!1},{label:`sheets.autoFill.formatOnly`,value:`ONLY_FORMAT`,disable:!1},{label:`sheets.autoFill.noFormat`,value:`NO_FORMAT`,disable:!1}])),T(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Ko,Yo,qo,Uo,Wo,Go,Jo,Xo].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(is.id,{unitId:e,subUnitId:n,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(is.id,{unitId:e,subUnitId:n,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(t=>En(r,t,e,n)),u=this._injector.invoke(t=>En(s,t,e,n));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(Tn(o),Tn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(W.id,{selections:[{primary:U({startRow:o.rows[0],endRow:o.rows[o.rows.length-1],startColumn:o.cols[0],endColumn:o.cols[o.cols.length-1]},d),range:{...p,rangeType:t.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e))||{};r&&h.push(...r),i&&g.push(...i)});let _=g.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:v,undos:y}=this._getAutoHeightUndoRedos(g,u,d);return g.push(...v),h.push(...y),_&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:g})),m.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,n,r){if(this.applyType===`NO_FORMAT`)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(e.forEach(e=>{if(e.id===z.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&&wa.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=Pt(s,r),l={id:Lt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Lt.id,params:c}]}:{undos:[],redos:[]}}};Zo=D([E(0,t.ICommandService),E(1,t.IUndoRedoService),E(2,(0,t.Inject)(t.IUniverInstanceService)),E(3,(0,t.Inject)(t.Injector))],Zo);let Qo=(0,t.createIdentifier)(`univer.auto-fill-service`),$o={type:t.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,n)=>{let r=m(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(Qo).triggerAutoFill(i,a,o,s,c)}};function es(e,n){let r=e.get(V).getCurrentLastSelection();if(!r)return null;let i=m(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 ts(e,n){let r=es(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand($o.id,r);return i&&e.get(Qo).setShowMenu(!1),i}let ns={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>ts(e,`down`)},rs={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>ts(e,`right`)},is={id:`sheet.command.auto-clear-content`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(O),s=e.get(V),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:f,startRow:p}=d,h={subUnitId:l,unitId:c,cellValue:Cn([u])},g=R(e,h),_=[{id:z.id,params:h},{id:W.id,params:{selections:[{primary:{startColumn:f,startRow:p,endColumn:f,endRow:p,actualRow:p,actualColumn:f,isMerged:!1,isMergedMainCell:!1},range:{...d}}],unitId:c,subUnitId:l}}],v=[{id:z.id,params:g},{id:W.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i).result){let e=o.afterCommandExecute({id:z.id,params:h});return(0,t.sequenceExecute)(e.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...e.undos],redoMutations:[..._,...e.redos]}),!0}return!1}},as={id:`sheet.command.clear-selection-content`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(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(V),{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(H).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),p=[],h=[],g={subUnitId:s,unitId:o,cellValue:Cn(Dn(c,e,o,s))},_=R(e,g);p.push({id:z.id,params:g}),h.push({id:z.id,params:_});let v=f.onCommandExecute({id:as.id,params:n});p.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(p,u),{suitableRanges:b,remainingRanges:x}=Vn(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?(p.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:p}),!0):!1}},os=`sheets.config`,ss={largeSheetCellCountThreshold:6e3,batchSize:3e3},cs={},ls=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,T(this,`_tasks`,new Map),T(this,`_idleCallbackId`,null),T(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)}};ls=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService)],ls);let us={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},ds=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),fs={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.getUnit(o,t.UniverInstanceType.UNIVER_SHEET);return c?(s&&c.addStyles(s),c.addWorksheet(i.id,a,(0,t.cloneWorksheetData)(i))):!1}};function ps(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 ms(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:z.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}let hs=`sheet.command.copy-sheet`;function gs(e,n,r,i,a,o,s){let c=e.get(t.IConfigService).getConfig(os),l={...ss,...c==null?void 0:c.largeSheetOperation},u=(0,t.cloneWorksheetData)(r.getConfig());u.name=vs(n,o,u.name);let d=(0,t.generateRandomId)();u.id=d;let f=n.getSheetIndex(r),{cellData:p}=u,m=ps(p)>=l.largeSheetCellCountThreshold,h,g=[];if(m){let{firstChunkCellData:e,remainingMutations:t}=ms(i,d,p,l.batchSize),n={...u,cellData:e};h={index:f+1,sheet:n,unitId:i},g=t}else h={index:f+1,sheet:u,unitId:i};let _=ds(e,h),v=new Map,y=s.onCommandExecute({id:hs,params:{unitId:i,subUnitId:a,targetSubUnitId:u.id,copyContext:v}});return{redos:[...y.preRedos??[],{id:fs.id,params:h},...y.redos],undos:[...y.preUndos??[],{id:Gr.id,params:_},...y.undos],unitId:i,newSheetId:d,isSplit:m,scheduledMutations:g}}let _s={type:t.CommandType.COMMAND,id:hs,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(O),s=e.get(t.LocaleService),c=e.get(ls),l=m(a,n);if(!l)return!1;let{workbook:u,worksheet:d,unitId:f,subUnitId:p}=l,{redos:h,undos:g,newSheetId:_,isSplit:v,scheduledMutations:y}=gs(e,u,d,f,p,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(us.id,{unitId:f,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(f,_,y)}}else i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:h});return!0}return!1}};function vs(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 ys={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(Nn.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:Nn.id,params:c}],undoMutations:[{id:Fn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},bs={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(ba.id,{unitId:o,subUnitId:s});let c=[{id:ba.id,params:{unitId:o,subUnitId:s}}],l=[{id:ya.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},xs={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=Ce(e,n);return r.syncExecuteCommand(Se.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:be.id,params:o}],redoMutations:[{id:Se.id,params:n}]}),!0):!1}},Ss={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}},Cs={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=p(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,f=d==null?void 0:d.id,m=d==null?void 0:d.name,h=(0,t.mergeWorksheetSnapshotWithDefault)(d||{});n?(u=n.index??u,h.id=f||(0,t.generateRandomId)(),h.name=m?l.uniqueSheetName(m):l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)):(h.id=(0,t.generateRandomId)(),h.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`));let g={index:u,sheet:h,unitId:c},_=ds(e,g);return r.syncExecuteCommand(fs.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Gr.id,params:_}],redoMutations:[{id:fs.id,params:g}]}),!0):!1}},ws={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(Qo).fillData(t.type)},Ts={id:`sheet.mutation.register-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(j),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new ae(o,a);return r.registerRangeThemeStyle(i,s),!0}},Es={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(j),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},Ds={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(!m(a,n))return!1;let c={unitId:r,themeName:i.getName(),rangeThemeStyleJson:i.toJson()},l={unitId:r,themeName:i.getName()};return o.syncExecuteCommand(Ts.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:Es.id,params:l}],redoMutations:[{id:Ts.id,params:c}]}),!0}},Os={id:`sheet.command.remove-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(O);if(!n)return!1;let s={...n},c=o.onCommandExecute({id:Os.id,params:n}),l=[...c.preRedos??[],{id:r.RemoveDefinedNameMutation.id,params:s},...c.redos],u=[...c.preUndos??[],{id:r.SetDefinedNameMutation.id,params:s},...c.undos];return(0,t.sequenceExecute)(l,i).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:u.filter(Boolean),redoMutations:l.filter(Boolean)}),!0):!1}},ks={id:`sheet.command.remove-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(O),s=e.get(t.IConfigService),c=m(a,n);if(!c)return!1;let{unitId:l,subUnitId:u,workbook:d,worksheet:f}=c;if(d.getSheets().length<=1)return!1;let p=s.getConfig(os),h={...ss,...p==null?void 0:p.largeSheetOperation},g=Hn(f.getCellMatrix())>=h.largeSheetCellCountThreshold,_={subUnitId:u,unitId:l,subUnitName:f.getName()},v=g?null:Wr(e,_),y=o.onCommandExecute({id:ks.id,params:{unitId:l,subUnitId:u}}),b=[...y.preRedos??[],{id:Gr.id,params:_},...y.redos],x=g?[]:[...y.preUndos??[],{id:fs.id,params:v},...y.undos];return(0,t.sequenceExecute)(b,r).result?(g?i.clearUndoRedo(l):i.pushUndoRedo({unitID:l,undoMutations:x,redoMutations:b}),!0):!1}};var As=class{constructor(){T(this,`_borderInfo`,{type:t.BorderType.ALL,color:`#000000`,style:t.BorderStyleTypes.THIN,activeBorderType:!1}),T(this,`_borderInfo$`,new n.BehaviorSubject(this._borderInfo)),T(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 js(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 Ms=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||js(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}})}})},Ns=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 Ps(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}=Ns(y),ee=new t.ObjectMatrix,{worksheet:te,unitId:ne,subUnitId:O}=n;return{worksheet:te,unitId:ne,subUnitId:O,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:ee,borderStyle:{s:i,cl:{rgb:a}}}}let Fs=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&js(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&&js(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 Is(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)=>{Ms(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 Ls=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)=>{Ms(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))},Rs=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)=>{Ms(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(js(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))},zs={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(V),c=e.get(As),l=m(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=Ps(c,l,u);Fs(f),Ls(f),Is(f),Rs(f);let{unitId:p,subUnitId:h,mr:g}=f,_={unitId:p,subUnitId:h,cellValue:g.clone()},v=R(e,_);return i.syncExecuteCommand(z.id,_)?(a.pushUndoRedo({unitID:p,undoMutations:[{id:z.id,params:v}],redoMutations:[{id:z.id,params:_}]}),!0):!1}},Bs={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(As).setType(n.value),r.syncExecuteCommand(zs.id)}},Vs={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(As).setStyle(n.value),r.syncExecuteCommand(zs.id)}},Hs={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(As).setColor(n.value),r.syncExecuteCommand(zs.id)}},Us={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(As);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(zs.id,{unitId:r,subUnitId:i,ranges:o})}},Ws={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{columnData:o}=n,{unitId:s,subUnitId:c,worksheet:l}=a,u={subUnitId:c,unitId:s,columnData:o},d=Le(u,l);return r.syncExecuteCommand(Re.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Re.id,params:d}],redoMutations:[{id:Re.id,params:u}]}),!0):!1}},Gs={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(O),s=e.get(t.ICommandService),c=m(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!c)return!1;let{worksheet:l}=c,u={unitId:r,subUnitId:i,ranges:a},d={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,l),style:null}))},f=Ve(e,u),p={unitId:r,subUnitId:i,selections:Zs(a).map(e=>({range:e,primary:U(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:He.id,params:u},{id:W.id,params:d}],s),g=o.onCommandExecute({id:Gs.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){let i=o.afterCommandExecute({id:Gs.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Be.id,params:f},{id:W.id,params:p},...g.undos??[],...i.undos],redoMutations:[...g.preRedos??[],{id:He.id,params:u},{id:W.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Ks={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{let n=e.get(V),r=e.get(t.ICommandService),i=Js(n);if(!i.length)return!1;let a=m(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=Ys(o,i);return r.executeCommand(Gs.id,{unitId:s,subUnitId:c,ranges:l})}},qs={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r;let i=e.get(V),a=e.get(O),o=e.get(t.IUniverInstanceService),s=e.get(t.ICommandService),c=n!=null&&(r=n.ranges)!=null&&r.length?n.ranges:Js(i);if(!c.length)return!1;let l=m(o,n);if(!l)return!1;let{worksheet:u,unitId:d,subUnitId:f}=l;c=Xs(l.worksheet,c);let p={unitId:d,subUnitId:f,ranges:c},h={unitId:d,subUnitId:f,selections:Zs(c).map(e=>({range:e,primary:U(e,u),style:null}))},g=ze(e,p),_={unitId:d,subUnitId:f,reveal:!0,selections:c.map(e=>({range:e,primary:U(e,u),style:null}))},v=(0,t.sequenceExecute)([{id:Be.id,params:p},{id:W.id,params:h}],s),y=a.onCommandExecute({id:qs.id,params:p}),b=(0,t.sequenceExecute)([...y.redos],s);if(v.result&&b.result){let n=a.afterCommandExecute({id:qs.id,params:p});return(0,t.sequenceExecute)(n.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[{id:He.id,params:g},{id:W.id,params:_},...y.undos??[],...n.undos],redoMutations:[...y.preRedos??[],{id:Be.id,params:p},{id:W.id,params:h},...y.redos,...n.redos]}),!0}return!1}};function Js(e){let n=e.getCurrentSelections(),r=[];if(!n)return r;for(let e=0;e<n.length;e++){let i=n[e].range;i.rangeType===t.RANGE_TYPE.COLUMN&&r.push(i)}return r}function Ys(e,t){let n=[];for(let r=0;r<t.length;r++){let i=e.getHiddenCols(t[r].startColumn,t[r].endColumn);for(let e=0;e<i.length;e++)n.push(i[e])}return n}function Xs(e,t){let n=e.getRowCount()-1,r=e.getHiddenCols(),i=[];return t.forEach(e=>{let t=r.filter(t=>t.startColumn>=e.startColumn&&t.endColumn<=e.endColumn);if(t.length){let r=e.startColumn;t.forEach(e=>{e.startColumn>r&&(i.push({startColumn:r,endColumn:e.startColumn-1,startRow:0,endRow:n}),r=e.endColumn+1)}),r<=e.endColumn&&i.push({startColumn:r,endColumn:e.endColumn,startRow:0,endRow:n})}else i.push(e)}),i}function Zs(e){return Qs(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Qs(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 $s={id:`sheet.command.set-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(O);if(!n)return!1;let s={...n},c=(0,r.SetDefinedNameMutationFactory)(e,n),l=o.onCommandExecute({id:$s.id,params:n}),u=[...l.preRedos??[],...c?[{id:r.RemoveDefinedNameMutation.id,params:c}]:[],{id:r.SetDefinedNameMutation.id,params:s},...l.redos],d=[...l.preUndos??[],{id:r.RemoveDefinedNameMutation.id,params:s},...c?[{id:r.SetDefinedNameMutation.id,params:c}]:[],...l.undos];return(0,t.sequenceExecute)(u,i).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:d.filter(Boolean),redoMutations:u.filter(Boolean)}),!0):!1}},ec=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},tc={id:`sheet.mutation.set-frozen`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},nc={type:t.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=m(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 p={unitId:o,subUnitId:s,...n},h=ec(e,p);return r.syncExecuteCommand(tc.id,p)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:tc.id,params:h}],redoMutations:[{id:tc.id,params:p}]}),!0):!1}},rc={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=m(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=ec(e,l);return r.syncExecuteCommand(tc.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:tc.id,params:u}],redoMutations:[{id:tc.id,params:l}]}),!0}},ic={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().gridlinesColor;if(s===(n==null?void 0:n.color))return!1;let{unitId:c,subUnitId:l}=a,u={color:n==null?void 0:n.color,unitId:c,subUnitId:l},d={color:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Ue.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:d}],redoMutations:[{id:Ue.id,params:u}]}),!0):!1}},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(B).setRule(n,r,a,i),!0}},ac=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(B).getRule(n,r,i);return a?{id:J.id,params:{...t,rule:a}}:null},oc={id:`sheet.mutation.set-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(va).setRule(n,r,i),!0}},sc={type:t.CommandType.COMMAND,id:`sheet.command.set-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),o=e.get(B),{rule:s,oldRule:c}=n,{unitId:l,subUnitId:u}=s,d=[],f=[];return(c==null?void 0:c.unitType)===s.unitType?s.unitType===a.UnitObject.Worksheet?(d.push({id:oc.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:oc.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:ba.id,params:{unitId:l,subUnitId:u}}),f.push({id:ya.id,params:{unitId:l,rule:c,subUnitId:c.subUnitId}})):c.unitType===a.UnitObject.SelectRange&&(d.push({id:Nn.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:Fn.id,params:{unitId:l,subUnitId:u,rules:[c]}}))),s.unitType===a.UnitObject.Worksheet?(d.push({id:ya.id,params:{unitId:l,rule:s,subUnitId:s.subUnitId}}),f.unshift({id:ba.id,params:{unitId:l,subUnitId:u}})):s.unitType===a.UnitObject.SelectRange&&(s.id=o.createRuleId(l,u),d.push({id:Fn.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:Nn.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,t.sequenceExecute)(d,r).result&&i.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},cc={id:`sheet.command.set-range-custom-metadata`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=m(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,p=t.Tools.isArray(c),h=new t.ObjectMatrix;for(let e=l;e<=d;e++)for(let t=u;t<=f;t++){let n=p?c[e-l][t-u]:c;h.setValue(e,t,n)}return i.syncExecuteCommand(z.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},lc={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=m(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=vt(u,l);return r.syncExecuteCommand(yt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:yt.id,params:d}],redoMutations:[{id:yt.id,params:u}]}),!0):!1}},uc={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(O),l=m(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d={unitId:r,subUnitId:i,ranges:a},f={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,u),style:null}))},p=bt(e,d),h={unitId:r,subUnitId:i,selections:gc(a).map(e=>({range:e,primary:U(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:xt.id,params:d},{id:W.id,params:f}],o),_=c.onCommandExecute({id:uc.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){let e=c.afterCommandExecute({id:uc.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[..._.preUndos??[],{id:Ct.id,params:p},{id:W.id,params:h},..._.undos??[],...e.undos],redoMutations:[..._.preRedos??[],{id:xt.id,params:d},{id:W.id,params:f},..._.redos,...e.redos]}),!0}return!0}},dc={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{let n=e.get(V),r=e.get(t.IUniverInstanceService),i=e.get(t.ICommandService),a=pc(n);if(!a.length)return!1;let o=m(r);if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=mc(s,a);return i.executeCommand(uc.id,{unitId:c,subUnitId:l,ranges:u})}},fc={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r;let i=e.get(V),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(O),l=n!=null&&(r=n.ranges)!=null&&r.length?n.ranges:pc(i);if(!l.length)return!1;let u=m(s,n);if(!u)return!1;l=hc(u.worksheet,l);let{unitId:d,subUnitId:f,worksheet:p}=u,h={unitId:d,subUnitId:f,ranges:l},g={unitId:d,subUnitId:f,selections:gc(l).map(e=>({range:e,primary:U(e,p),style:null}))},_=St(e,h),v={unitId:d,subUnitId:f,reveal:!0,selections:l.map(e=>({range:e,primary:U(e,p),style:null}))},y=c.onCommandExecute({id:fc.id,params:h});if((0,t.sequenceExecute)([...y.preRedos??[],{id:Ct.id,params:h},{id:W.id,params:g},...y.redos],a).result){let e=c.afterCommandExecute({id:fc.id,params:h});return(0,t.sequenceExecute)(e.redos,a),o.pushUndoRedo({unitID:d,undoMutations:[...y.preUndos??[],{id:xt.id,params:_},{id:W.id,params:v},...y.undos??[],...e.undos],redoMutations:[...y.preRedos??[],{id:Ct.id,params:h},{id:W.id,params:g},...y.redos,...e.redos]}),!0}return!0}};function pc(e){let n=e.getCurrentSelections(),r=[];if(!n)return r;for(let e=0;e<n.length;e++){let i=n[e].range;i.rangeType===t.RANGE_TYPE.ROW&&r.push(i)}return r}function mc(e,t){let n=[];for(let r=0;r<t.length;r++){let i=e.getHiddenRows(t[r].startRow,t[r].endRow);for(let e=0;e<i.length;e++)n.push(i[e])}return n}function hc(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 gc(e){return _c(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function _c(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 vc=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},yc={id:`sheet.mutation.set-tab-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},bc={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=vc(e,c);return r.syncExecuteCommand(yc.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:yc.id,params:l}],redoMutations:[{id:yc.id,params:c}]}),!0):!1}},xc={id:`sheet.mutation.set-workbook-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);return r?(r.setName(n.name),!0):!1}},Sc={type:t.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(O);if(!p(e.get(t.IUniverInstanceService),n))return!1;let a=i.onCommandExecute({id:Sc.id,params:n}),o={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...a.preRedos??[],{id:xc.id,params:o},...a.redos],r).result}},Cc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,n,r)=>{let i=e.get(t.ICommandService),a=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(zt.id,{unitId:o,subUnitId:s},r))},4)})}},wc={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=m(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,p=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,h=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN),g=p?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(H).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=Vn(_.ranges,v);Bn(y,s);let x=e.get(O),{undos:S,redos:C}=x.onCommandExecute({id:wc.id,params:_}),w=wt(_,s),T=i.syncExecuteCommand(Tt.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:ee,redos:te}=e.get(O).afterCommandExecute({id:wc.id,params:_}),ne=(0,t.sequenceExecute)([...C,...te,...D],i);return T&&ne.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:Tt.id,params:w},...S,...ee,...E],redoMutations:[{id:Tt.id,params:_},...C,...te,...D]}),!0}},Tc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(V),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(O),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=m(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:f,worksheet:p}=u,h=e.get(H).getSkeleton(f,d),g={subUnitId:d,unitId:f,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=Vn(g.ranges,h);Bn(_,p);let y=wt(g,p),b=o.syncExecuteCommand(Tt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:Tc.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){let e=c.afterCommandExecute({id:Tc.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...C.preUndos??[],{id:Tt.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...C.preRedos??[],{id:Tt.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},Ec={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(V),o=m(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(O).onCommandExecute({id:Ec.id,params:u});return(0,t.sequenceExecute)([...f],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...f]}),!0):!1}},Dc={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(!m(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount: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}},Oc={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=kt(e,n);return r.syncExecuteCommand(Ot.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Ot.id,params:o}],redoMutations:[{id:Ot.id,params:n}]}),!0):!1}},kc=(e,n)=>{let r=h(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()}},Ac={id:`sheet.mutation.set-worksheet-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().hidden=n.hidden,!0):!1}},jc={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=m(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},p=kc(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(Ac.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:Ac.id,params:p}],redoMutations:[{id:Ac.id,params:f}]}),!0):!1}},Mc=(e,n)=>{let r=h(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()}},Nc={id:`sheet.mutation.set-worksheet-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},Pc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(O),o=m(e.get(t.IUniverInstanceService),n);if(!o)return!1;let{unitId:s,subUnitId:c}=o,l={subUnitId:c,name:n.name,unitId:s},u=Mc(e,l),d=a.onCommandExecute({id:Pc.id,params:n}),f=[...d.preRedos??[],{id:Nc.id,params:l},...d.redos],p=[...d.preUndos??[],{id:Nc.id,params:u},...d.undos];return(0,t.sequenceExecute)(f,r).result?(i.pushUndoRedo({unitID:s,undoMutations:p,redoMutations:f}),!0):!1}},Fc=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),Ic={id:`sheet.mutation.set-worksheet-order`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},Lc={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=m(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=Fc(e,l);return r.syncExecuteCommand(Ic.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Ic.id,params:u}],redoMutations:[{id:Ic.id,params:l}]}),!0):!1}};var Rc=class{constructor(){T(this,`_model`,new Map),T(this,`_pointChange`,new n.Subject),T(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]}},zc=class{constructor(e,n,r){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.Delete),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!0),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(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){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.Edit),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!0),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.Edit}.${r}`}},Bc=class{constructor(e,n,r){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.ManageCollaborator),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!0),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.ManageCollaborator}.${r}`}},Vc=class{constructor(e,n,r){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.View),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!1),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.View}.${r}`}};let X=()=>[Vc,Y,Bc,zc],Hc=[a.UnitAction.Edit,a.UnitAction.View,a.UnitAction.ManageCollaborator,a.UnitAction.Delete],Uc=(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 Wc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Comment),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Comment}_${e}`}},Gc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Copy),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Copy}_${e}`}},Kc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`subType`,a.UnitAction.CopySheet),T(this,`status`,t.PermissionStatus.INIT),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CopySheet}_${e}`}},qc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreatePermissionObject}_${e}`}},Jc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.CreateSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreateSheet}_${e}`}},Yc=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}`}},Xc=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.DeleteRow),this.id=`${this.type}.${a.UnitAction.DeleteRow}_${e}`}},Zc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.DeleteSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.DeleteSheet}_${e}`}},Qc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Duplicate),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Duplicate}_${e}`}},Z=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Edit),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Edit}_${e}`}},$c=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Export),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Export}_${e}`}},el=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.HideSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.HideSheet}_${e}`}},tl=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}`}},nl=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}`}},rl=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}`}},il=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.MoveSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.MoveSheet}_${e}`}},al=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Print),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Print}_${e}`}},ol=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.RecoverHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RecoverHistory}_${e}`}},sl=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.RenameSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RenameSheet}_${e}`}},cl=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Share),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Share}_${e}`}},ll=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.View),this.unitId=e,this.id=`${this.type}.${a.UnitAction.View}_${e}`}},ul=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.ViewHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ViewHistory}_${e}`}},dl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Copy),this.id=`${this.type}.${a.UnitAction.Copy}_${e}_${n}`}},fl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}_${n}`}},pl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Delete),this.id=`${this.type}.${a.UnitAction.Delete}_${e}_${n}`}},ml=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(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,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Edit),this.id=`${this.type}.${a.UnitAction.Edit}_${e}_${n}`}},hl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.EditExtraObject),this.id=`${this.type}.${a.UnitAction.EditExtraObject}_${e}_${n}`}},gl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Filter),this.id=`${this.type}.${a.UnitAction.Filter}_${e}_${n}`}},_l=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}_${n}`}},vl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertHyperlink),this.id=`${this.type}.${a.UnitAction.InsertHyperlink}_${e}_${n}`}},yl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}_${n}`}},bl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.ManageCollaborator),this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}_${n}`}},xl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.PivotTable),this.id=`${this.type}.${a.UnitAction.PivotTable}_${e}_${n}`}},Sl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SelectProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectProtectedCells}_${e}_${n}`}},Cl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SelectUnProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectUnProtectedCells}_${e}_${n}`}},wl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetCellStyle),this.id=`${this.type}.${a.UnitAction.SetCellStyle}_${e}_${n}`}},Tl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetCellValue),this.id=`${this.type}.${a.UnitAction.SetCellValue}_${e}_${n}`}},El=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetColumnStyle),this.id=`${this.type}.${a.UnitAction.SetColumnStyle}_${e}_${n}`}},Dl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetRowStyle),this.id=`${this.type}.${a.UnitAction.SetRowStyle}_${e}_${n}`}},Ol=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Sort),this.id=`${this.type}.${a.UnitAction.Sort}_${e}_${n}`}},kl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.View),this.id=`${this.type}.${a.UnitAction.View}_${e}_${n}`}};let Al=()=>[Z,al,Wc,ll,Gc,$c,rl,Jc,Zc,sl,el,Qc,cl,il,Kc,ul,ol,qc,nl,tl,Xc,Yc],jl=[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,kl,bl,pl],Ml=()=>[dl,fl,ml,hl,gl,_l,yl,vl,xl,wl,Tl,El,Dl,Ol],Nl=[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],Pl=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();[...$(),...Ml()].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)})}),[...$(),...Ml()].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._addOrUpdatePermissionPoint(r)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:e=>{let t=this._univerInstanceService.getUnit(e);t&&(t.getSheets().forEach(t=>{let n=t.getSheetId();[...$(),...Ml()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),Al().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=>{Ml().forEach(n=>{let r=new n(e,t);this._addOrUpdatePermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}_addOrUpdatePermissionPoint(e){if(this._permissionService.getPermissionPoint(e.id)){this._permissionService.updatePermissionPoint(e.id,e.value);return}this._permissionService.addPermissionPoint(e)}};Pl=D([E(0,(0,t.Inject)(t.IPermissionService)),E(1,(0,t.Inject)(t.IUniverInstanceService)),E(2,(0,t.Inject)(t.Injector)),E(3,(0,t.Inject)(va)),E(4,(0,t.Inject)(Rc)),E(5,(0,t.Inject)(t.IResourceManagerService)),E(6,(0,t.Inject)(B)),E(7,(0,t.Inject)(t.ILogService))],Pl);let Fl={id:`sheet.mutation.set-worksheet-permission-points`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(Rc).addRule(n),!0}},Il={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(Fl.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},Ll={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(oc.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:oc.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:oc.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Rl=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...t.Tools.deepClone(n),rightToLeft:r}},zl={id:`sheet.mutation.set-worksheet-right-to-left`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig();return a.rightToLeft=n.rightToLeft,!0}},Bl={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=t.BooleanNumber.FALSE;n&&(c=n.rightToLeft??t.BooleanNumber.FALSE);let l={rightToLeft:c,unitId:o,subUnitId:s},u=Rl(e,l);return r.syncExecuteCommand(zl.id,l)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:zl.id,params:u}],redoMutations:[{id:zl.id,params:l}]}),!0):!1}},Vl={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(!m(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=At(e,c);return o.syncExecuteCommand(jt.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:jt.id,params:l}],redoMutations:[{id:jt.id,params:c}]}),!0):!1}},Hl={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i=e.get(O);if(!(r!=null&&r.length))return!1;let a=m(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,p=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW),h=f?t.RANGE_TYPE.ALL:p.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:p.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 _=Mt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Nt(v,o),b=e.get(t.ICommandService),x=e.get(t.IUndoRedoService),S=i.onCommandExecute({id:Hl.id,params:g}),C=(0,t.sequenceExecute)([{id:Ft.id,params:g},{id:It.id,params:v}],b),w=(0,t.sequenceExecute)([...S.redos],b);if(C.result&&w.result){let e=i.afterCommandExecute({id:Hl.id,params:g});return(0,t.sequenceExecute)(e.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...S.preUndos??[],{id:Ft.id,params:_},{id:It.id,params:y},...S.undos,...e.undos],redoMutations:[...S.preRedos??[],{id:Ft.id,params:g},{id:It.id,params:v},...S.redos,...e.redos]}),!0}return!1}},Ul={type:t.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(e,n)=>{var r,i;let a=e.get(V),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(t.IUniverInstanceService),l=e.get(O),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=m(c,n);if(!d)return!1;let{unitId:f,subUnitId:p,worksheet:h}=d,g={subUnitId:p,unitId:f,ranges:u,rowHeight:n.value},_=Mt(g,h),v={unitId:f,subUnitId:p,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Nt(v,h),b=(0,t.sequenceExecute)([{id:Ft.id,params:g},{id:It.id,params:v}],o),x=l.onCommandExecute({id:Ul.id,params:g}),S=(0,t.sequenceExecute)([...x.redos],o);if(b.result&&S.result){let e=l.afterCommandExecute({id:Ul.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...x.preRedos??[],{id:Ft.id,params:_},{id:It.id,params:y},...x.undos,...e.undos],redoMutations:[...x.preRedos??[],{id:Ft.id,params:g},{id:It.id,params:v},...x.redos,...e.redos]}),!0}return!1}},Wl={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(V),c=m(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 p={unitId:l,subUnitId:u,ranges:f,autoHeightInfo:t.BooleanNumber.TRUE},h=Nt(p,d),g=a.syncExecuteCommand(It.id,p),_=e.get(H).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=Vn(p.ranges,_),b=e.get(O),{undos:x,redos:S}=b.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:v,autoHeightRanges:v,lazyAutoHeightRanges:y}),{undos:C,redos:w}=b.onCommandExecute({id:Wl.id,params:p}),T=(0,t.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:It.id,params:h},...C,...x],redoMutations:[{id:It.id,params:p},...w,...S]}),!0):!1}},Gl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,n)=>{let r=m(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=kc(e,l),d=s.syncExecuteCommand(Ac.id,l),f={unitId:i,subUnitId:a},p=s.syncExecuteCommand(zt.id,f);return d&&p?(c.pushUndoRedo({unitID:i,undoMutations:[{id:Ac.id,params:u}],redoMutations:[{id:Ac.id,params:l}]}),!0):!1}},Kl={type:t.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,n)=>{let r=m(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:p}=_n(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+p+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:N.id,params:t});let n=Te(e,t);b.push({id:F.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+p},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=R(e,w);return y.push({id:z.id,params:w}),b.unshift({id:z.id,params:T}),(0,t.sequenceExecute)(y,_).result?(v.pushUndoRedo({unitID:i,undoMutations:b,redoMutations:y}),!0):!1}},ql=(0,t.createIdentifier)(`INumfmtService`),Jl=(e,n)=>{let r=e.get(ql),{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=Ql(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=cn(n.ranges)}),l.push({id:Yl.id,params:Ql(a,o,s)})}return c.length&&l.push({id:Xl.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},Yl={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(ql),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}},Xl={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(ql).deleteValues(n,r,i),!0}},Zl=(e,n)=>{let r=e.get(ql),{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=Ql(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=cn(t.ranges)}),[{id:Yl.id,params:c}]},Ql=(e,n,r)=>{let i=vn(r,`pattern`),a={},o={},s=yn();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}},$l={id:`sheet.command.text-to-number`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=e.get(V).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=[],p=[];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 h,g;if(d.getValue(n,r))continue;let e=c.getCellRaw(n,r),i=typeof(e==null?void 0:e.s)==`string`?(h=c.getStyleDataByHash(e.s))==null||(h=h.n)==null?void 0:h.pattern:e==null||(g=e.s)==null||(g=g.n)==null?void 0:g.pattern,a=typeof(e==null?void 0:e.v)==`string`?(0,t.getNumfmtParseValueFilter)(e.v):null,o=(0,t.isRealNum)(e==null?void 0:e.v)?Number(e==null?void 0:e.v):typeof(a==null?void 0:a.v)==`number`?a.v:null;e&&e.v&&(e.t!==t.CellValueType.NUMBER||(0,t.isTextFormat)(i))&&o!==null&&(d.setValue(n,r,{v:o,t:t.CellValueType.NUMBER}),a!=null&&a.z&&(!i||(0,t.isTextFormat)(i))?f.push({pattern:a.z,row:n,col:r}):(0,t.isTextFormat)(i)&&p.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let _={subUnitId:u,unitId:l,cellValue:d.getMatrix()},v=[{id:z.id,params:_}],y=[{id:z.id,params:R(e,_)}];if(f.length){let t=Ql(l,u,f);v.push({id:Yl.id,params:t}),y.push(...Jl(e,t))}if(p.length){let t={unitId:l,subUnitId:u,ranges:p};v.push({id:Xl.id,params:t}),y.push(...Zl(e,t))}return(0,t.sequenceExecute)(v,o).result?(s.pushUndoRedo({unitID:l,undoMutations:y,redoMutations:v}),!0):!1}},eu={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:z.id,params:g},v=R(e,g),y={id:z.id,params:v},b=[_],x=[y];return u.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:r}),d.syncExecuteCommand(_.id,_.params)}},tu={type:t.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=m(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(Rt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Rt.id,params:d}],redoMutations:[{id:Rt.id,params:u}]}),!0):!1}},nu={id:`sheet.command.unregister-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;if(!n||!m(e.get(t.IUniverInstanceService),n))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(j),{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(Ts.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:Ts.id,params:u}],redoMutations:[{id:Es.id,params:l}]}),!0):!1}},ru={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(j),a=new ae(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},iu={id:`sheet.mutation.empty`,type:t.CommandType.MUTATION,handler:()=>!0},au={id:`sheet.mutation.mark-dirty-filter-change`,type:t.CommandType.MUTATION,handler:()=>!0},ou={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(j).unregisterRangeThemeStyle(r,n),!0}},su={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(j).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}},cu={id:`sheet.operation.mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},lu={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},uu={id:`sheet.operation.scroll-to-cell`,type:t.CommandType.OPERATION,handler:()=>!0},{getLenS:du,getDataIndex:fu,fillCopy:pu,fillCopyStyles:mu,generateNullCellValueRowCol:hu}=Co,{otherRule:gu}=Ho,_u=class extends t.Disposable{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,T(this,`_beforeApplyData`,[]),T(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=du(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=fu(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(),pu(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):pu(c,n))}if(i===`ONLY_FORMAT`){let t=a==null?void 0:a.ONLY_FORMAT;return t?t(e,n,r,o):mu(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))||gu;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=Tn(c),p=Tn(l),{cols:m,rows:h}=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=h.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;h.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.getUnit(u,t.UniverInstanceType.UNIVER_SHEET))==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(I,t);o.push({id:L.id,params:t}),a.unshift({id:_.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:hu([l])},D=this._injector.invoke(R,E);o.push({id:z.id,params:E}),a.unshift({id:z.id,params:D});let ee=new t.ObjectMatrix;h.forEach((e,t)=>{m.forEach((n,r)=>{S[t][r]&&ee.setValue(e,n,S[t][r])})});let te=ee.getMatrix(),ne={subUnitId:d,unitId:u,cellValue:te},O=this._injector.invoke(R,ne);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,te)}),a.unshift({id:z.id,params:O}),o.push({id:z.id,params:ne}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:$i(C)},t=this._injector.invoke(g,e);a.unshift({id:L.id,params:t}),o.push({id:_.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`}};_u=D([E(0,t.IUniverInstanceService),E(1,Qo),E(2,(0,t.Inject)(t.Injector))],_u);let vu=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 r=i[e],o=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(!o)continue;let s=n[r];if(s==null)continue;let c=Object.keys(s);for(let e=0;e<c.length;e++){let t=c[e],n=s[t];if(n==null||!o.getSheetBySheetId(t))continue;let i={subUnitId:t,unitId:r,cellValue:this._getMergedCellData(r,t,n)};a.push({id:z.id,params:i})}}return(0,t.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,n,i){let a=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET),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()}};vu=D([E(0,(0,t.Inject)(t.IUniverInstanceService)),E(1,t.ICommandService)],vu);let yu=`maxCellsPerSheet`,bu=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)}}))}};bu=D([E(0,r.IDefinedNamesService),E(1,t.IResourceManagerService)],bu);let xu=[tc.id],Su=[M.id,N.id,P.id,F.id,Oe.id,Ae.id],Cu=class extends t.Disposable{constructor(e,n,r){var i;super(),this._univerInstanceService=e,this._commandService=n,this._configService=r,T(this,`_d`,new t.DisposableCollection),T(this,`_enabled`,!0);let a=((i=this._configService.getConfig(`sheets.config`))==null?void 0:i.freezeSync)??!0;this.setEnabled(a)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{xu.includes(e.id)&&(t||={},t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(Su.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===M.id?this._handleInsertRowMutation(r,t):n===N.id?this._handleInsertColMutation(r,t):n===P.id?this._handleRemoveRowMutation(r,t):n===F.id?this._handleRemoveColMutation(r,t):n===Oe.id?this._handleMoveRowsMutation(r,t):n===Ae.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:tc.id,params:{...r,unitId:e,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};Cu=D([E(0,(0,t.Inject)(t.IUniverInstanceService)),E(1,t.ICommandService),E(2,t.IConfigService)],Cu);let wu=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,T(this,`disposableCollection`,new t.DisposableCollection),T(this,`_triggerPermissionUIEvent$`,new n.Subject),T(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===Nc.id){let t=m(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 ur.id:a=e.params,(0,t.isICellData)(a.value)&&a.value.f?(r=this._permissionCheckWithFormula(a),i=this._localeService.t(`sheets.permission.dialog.formulaErr`)):(r=this._permissionCheckBySetRangeValue({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},a),i=this._localeService.t(`sheets.permission.dialog.editErr`));break;case q.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[wl,Q],rangeTypes:[Y]},a.range?[a.range]:void 0,a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setStyleErr`);break;case zs.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[wl,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(`sheets.permission.dialog.setStyleErr`);break;case Un.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,wl,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(`sheets.permission.dialog.editErr`);break;case as.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,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(`sheets.permission.dialog.editErr`);break;case Wn.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[wl,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(`sheets.permission.dialog.setStyleErr`);break;case wc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[El]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Tc.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[El]},a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Hl.id:r=this.permissionCheckWithoutRange({worksheetTypes:[Dl]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Ul.id:case Wl.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[Dl]},a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Yr.id:case Zr.id:a=e.params,r=this._permissionCheckByMoveRowsColsCommand(a),i=this._localeService.t(`sheets.permission.dialog.moveRowColErr`);break;case ar.id:a=e.params,r=this._permissionCheckByMoveRangeCommand(a),i=this._localeService.t(`sheets.permission.dialog.moveRangeErr`);break;case Tr.id:case Mr.id:a=e.params,r=this._permissionCheckByInsertRowColCommand(a),i=this._localeService.t(`sheets.permission.dialog.insertRowColErr`);break;case zr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Xc],worksheetTypes:[Q,ml],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.removeRowColErr`);break;case Hr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Yc],worksheetTypes:[Q,fl],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.removeRowColErr`);break;case Lc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,il],a),i=this._localeService.t(`sheets.permission.dialog.operatorSheetErr`);break;case Pc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,sl],a),i=this._localeService.t(`sheets.permission.dialog.operatorSheetErr`);break;case Gl.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,el],a),i=this._localeService.t(`sheets.permission.dialog.operatorSheetErr`);break;case Gs.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,El],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case uc.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,Dl],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Ks.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,El],rangeTypes:[Y]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case dc.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,Dl],rangeTypes:[Y]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Sr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`right`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case br.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`down`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case gr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`left`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case vr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`up`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case $o.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},[a.targetRange],a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.autoFillErr`);break;case Ss.id:case $s.id:case Os.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(`sheets.permission.dialog.editErr`);break;case $l.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,wl,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(`sheets.permission.dialog.editErr`);break;default:break}r||this.blockExecuteWithoutPermission(i)}permissionCheckWithRanges(e,n,r,i){let a=m(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??((d=this._selectionManagerService.getCurrentSelections())==null?void 0:d.map(e=>e.range));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=m(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=m(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 kl(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=m(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:[Tl,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:[Tl,Q],rangeTypes:[Y]},[s],r,i)}_permissionCheckByMoveRangeCommand(e){let{fromUnitId:t,fromSubUnitId:n,fromRange:r,toUnitId:i,toSubUnitId:a,toRange:o}=e,s=m(this._univerInstanceService,{unitId:t,subUnitId:n});if(!s)return!1;let c=m(this._univerInstanceService,{unitId:i,subUnitId:a});return!c||!this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},[r],s.unitId,s.subUnitId)?!1:this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},[o],c.unitId,c.subUnitId)}_permissionCheckByInsertRowColCommand(e){let n=m(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(nl),l.worksheetTypes.push(yl)}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(tl),l.worksheetTypes.push(_l)}return this.permissionCheckWithRanges(l,[c],i,a)}_permissionCheckByWorksheetCommand(e,t){let n=m(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;let i=m(this._univerInstanceService);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=(n==null?void 0:n.range)??((r=this._selectionManagerService.getCurrentLastSelection())==null?void 0:r.range);if(!c||!this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q],rangeTypes:[Y]},[c],o,s))return!1;let l=this._rangeProtectionRuleModel.getSubunitRuleList(o,s);if(l.length===0)return!0;let u={...c};return e===`right`||e===`left`?u.endColumn=a.getColumnCount()-1:(e===`down`||e===`up`)&&(u.endRow=a.getRowCount()-1),!l.some(e=>e.ranges.some(e=>t.Rectangle.intersects(e,u)))}};wu=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService),E(2,t.IPermissionService),E(3,(0,t.Inject)(V)),E(4,(0,t.Inject)(B)),E(5,(0,t.Inject)(va)),E(6,(0,t.Inject)(t.LocaleService)),E(7,(0,t.Inject)(r.LexerTreeBuilder)),E(8,r.IDefinedNamesService)],wu);let Tu=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,T(this,`_unitPermissionInitStateChange`,new n.BehaviorSubject(!1)),T(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();Al().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)})}),[...$(),...Ml()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),Al().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)}};Tu=D([E(0,(0,t.Inject)(t.IPermissionService)),E(1,(0,t.Inject)(t.IUniverInstanceService)),E(2,(0,t.Inject)(B)),E(3,(0,t.Inject)(va)),E(4,(0,t.Inject)(Rc))],Tu);let Eu=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:Hc})})}),!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),[...Ml()].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:Hc}).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.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId());if(r)return this._authzIoService.allowed({objectID:r,objectType:a.UnitObject.Workbook,unitID:r,actions:jl}).then(e=>{Al().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`?([...$(),...Ml()].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:Hc}).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:Nl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||Ml().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:Hc}));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:Nl}))}),!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;[...$(),...Ml()].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();Al().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();[...$(),...Ml()].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:Hc}).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:Nl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(Ml().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:Hc}).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===Fn.id||e.id===ya.id||e.id===Fl.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};Eu=D([E(0,t.IUniverInstanceService),E(1,t.IPermissionService),E(2,t.IAuthzIoService),E(3,(0,t.Inject)(B)),E(4,(0,t.Inject)(va)),E(5,(0,t.Inject)(t.UserManagerService)),E(6,(0,t.Inject)(Rc)),E(7,(0,t.Inject)(Tu)),E(8,(0,t.Inject)(t.IUndoRedoService)),E(9,(0,t.Inject)(t.ICommandService))],Eu);let Du=class extends t.Disposable{constructor(e,t,r){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=r,T(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 M.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case xt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Ct.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case P.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Ft.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)}))}};Du=D([E(0,(0,t.Inject)(t.ICommandService)),E(1,(0,t.Inject)(j)),E(2,(0,t.Inject)(t.IUniverInstanceService))],Du);let Ou=class extends t.Disposable{constructor(e,n){super(),this._selectionProtectionRuleModel=e,this._permissionService=n,T(this,`_cache`,new t.LRUMap(1e4)),this._init()}_init(){this.disposeWithMe(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.disposeWithMe(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)=>{let i=new r(e,t,a.permissionId),o=this._permissionService.getPermissionPoint(i.id);return n[i.subType]=(o==null?void 0:o.value)??i.value,n},{});c.push({...n,ruleId:a.id,ranges:a.ranges})}return this._cache.set(o,c),c}clear(){this._cache.clear()}dispose(){super.dispose(),this._cache.clear()}};Ou=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IPermissionService))],Ou);let ku=class extends t.Disposable{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,T(this,`_cellRuleCache`,new Map),T(this,`_permissionIdCache`,new Map),T(this,`_cellInfoCache`,new Map),T(this,`_rowInfoCache`,new Map),T(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;let f=((r=this._permissionService.getPermissionPoint((i=new Y(e,t,n.permissionId))==null?void 0:i.id))==null?void 0:r.value)??!1,p=((o=this._permissionService.getPermissionPoint((s=new Vc(e,t,n.permissionId))==null?void 0:s.id))==null?void 0:o.value)??!1,m=((c=this._permissionService.getPermissionPoint((l=new Bc(e,t,n.permissionId))==null?void 0:l.id))==null?void 0:c.value)??!1,h=((u=this._permissionService.getPermissionPoint((d=new zc(e,t,n.permissionId))==null?void 0:d.id))==null?void 0:u.value)??!1;return{[a.UnitAction.Edit]:f,[a.UnitAction.View]:p,[a.UnitAction.ManageCollaborator]:m,[a.UnitAction.Delete]:h}}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})}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})}_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)})})}};ku=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IPermissionService)),E(2,(0,t.Inject)(t.IUniverInstanceService))],ku);var Au=`@univerjs/sheets`,ju=`1.0.0-beta.1`;let Mu=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,T(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Gr.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Gr.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===Ac.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===fs.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===Ac.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===W.id)return this._adjustActiveSheetOnSelection(e)}))}_adjustActiveSheetOnHideSheet(e){var n;let{unitId:r,subUnitId:i}=e.params,a=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(!a||((n=a.getActiveSheet())==null?void 0:n.getSheetId())!==i)return;let o=Nu(a,a.getActiveSheetIndex());this._switchToNextSheet(r,o)}_beforeAdjustActiveSheetOnRemoveSheet(e){let{unitId:n,subUnitId:r}=e.params,i=this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_SHEET);if(!i)return;let a=i.getSheetBySheetId(r);a&&(this._previousSheetIndex=i.getSheetIndex(a))}_adjustActiveSheetOnRemoveSheet(e){if(this._previousSheetIndex===-1)return;let{unitId:n}=e.params,r=this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_SHEET);if(r&&r.getActiveSheet().getSheetId()===e.params.subUnitId){let e=this._previousSheetIndex,t=Nu(r,e>=1?e-1:0);this._switchToNextSheet(n,t)}}_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(zt.id,{unitId:e,subUnitId:t})}};Mu=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService)],Mu);function Nu(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 Pu=class extends t.Disposable{constructor(e,t,n){super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[z,N,M,fs,Ee,Oe,Ae,F,P,Gr,L,Xl,_,xc,Nc,Yl,Pe,iu,Ct,xt,cu,lu,us,jt,Dt,au].forEach(e=>{var t;this._commandService.registerCommand(e),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)}),(this._configService.getConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`)??!1)||[fa,pa,ma,ha,Ca,Un,as,Wn,_s,gr,vr,wc,Hl,Pr,Nr,Fr,Ir,Mr,jr,br,Sr,Dr,Er,kr,Or,Tr,wr,Cs,Zr,ar,Yr,zr,Ur,Hr,Br,ks,ei,oa,Fa,Na,Pa,Us,Hs,zs,Bs,Vs,qs,Be,He,Tc,Ws,Re,nc,tc,rc,La,cc,ur,Ul,fc,lc,yt,Ks,dc,Gs,uc,q,za,bc,yc,Ma,Ba,Ra,Ia,Sc,Cc,zt,jc,Ac,Pc,Lc,Ic,Lt,Ft,Wl,It,Tt,Vl,Dc,rr,W,uu,Ss,Os,$s,Gl,tu,Rt,ic,Ue,$l,Il,ya,oc,ba,Fl,In,sc,ys,xa,bs,Ll,Fn,Nn,J,eu,Ot,Oc,Kl,Se,be,Es,Ts,nu,Ds,Sa,xs,ru,su,ou,$o,ns,rs,is,ws].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(yu,3e6)}};Pu=D([E(0,t.ICommandService),E(1,t.IConfigService),E(2,(0,t.Optional)(s.DataSyncPrimaryController))],Pu);let Fu=class extends t.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(v.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);if(!(0,t.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern))return i(e);if((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));let t=String(e.v);return t.includes(`e`)&&(e.v=t.toUpperCase()),i(e)}return i(e)}}))}};Fu=D([E(0,(0,t.Inject)(O))],Fu);let Iu=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(v.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(v.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;let o=[{[a.UnitAction.View]:((s=this._permissionService.getPermissionPoint(new kl(r,i).id))==null?void 0:s.value)??!1,[a.UnitAction.Edit]:((c=this._permissionService.getPermissionPoint(new Q(r,i).id))==null?void 0:c.value)??!1}],u=!((l=o[0])!=null&&l[a.UnitAction.View]),d=!e||e===t.rawData?{...e}:e;return d.hasWorksheetRule=!0,d.selectionProtection=o,u?(delete d.s,delete d.v,delete d.p,d):n(d)}return n(e)}}))}};Iu=D([E(0,t.IPermissionService),E(1,(0,t.Inject)(va)),E(2,(0,t.Inject)(O)),E(3,(0,t.Inject)(ku))],Iu);let Lu=(0,t.createIdentifier)(`univer.exclusive-range.service`);var Ru=class extends t.Disposable{constructor(...e){super(...e),T(this,`_exclusiveRanges`,new Map),T(this,`_exclusiveRangesChange$`,new n.Subject),T(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 zu=class extends t.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,n,r,i){let a=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!a)return;let o=a==null?void 0:a.getSheetBySheetId(n);if(!o)return;let s=a.getStyles(),c=o.getCellRaw(r,i);if(c!=null&&c.s){let e=s.get(c.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,n,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);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.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);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})}})})})}};zu=D([E(0,t.IResourceManagerService),E(1,t.IUniverInstanceService),E(2,t.ILogService)],zu);let Bu=[N.id,M.id,F.id,P.id],Vu=[Oe.id,Ae.id],Hu=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,T(this,`disposableCollection`,new t.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=t=>this.refRangeHandle(t,e,n);this._selectionProtectionRuleModel.getSubunitRuleList(e,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,i,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===Cc.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===J.id||t.id===Fn.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let n=this._univerInstanceService.getCurrentUnitOfType(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 Yr.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Zr.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case wr.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case jr.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Ur.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case Br.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:Nn.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:Fn.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(Vu.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getCurrentUnitOfType(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(Bu.includes(e.id)){let n=this._univerInstanceService.getUnit(e.params.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let 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;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=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),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:d,subUnitId:f}=e.params,p=e=>this.refRangeHandle(e,d,f);this._selectionProtectionRuleModel.getSubunitRuleList(d,f).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,p,d,f))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Bu.includes(e.id)||Vu.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===ks.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:Nn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:Fn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};Hu=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IUniverInstanceService)),E(2,t.ICommandService),E(3,(0,t.Inject)(Ki)),E(4,(0,t.Inject)(Ou)),E(5,(0,t.Inject)(ku)),E(6,(0,t.Inject)(O)),E(7,(0,t.Inject)(B))],Hu);let Uu=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:Hc})}),i.forEach(t=>{X().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._addOrUpdatePermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}_addOrUpdatePermissionPoint(e){if(this._permissionService.getPermissionPoint(e.id)){this._permissionService.updatePermissionPoint(e.id,e.value);return}this._permissionService.addPermissionPoint(e)}};Uu=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IPermissionService)),E(2,(0,t.Inject)(t.IResourceManagerService)),E(3,(0,t.Inject)(ku)),E(4,(0,t.Inject)(t.IUniverInstanceService))],Uu);let Wu=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()}};Wu=D([E(0,(0,t.Inject)(j))],Wu);let Gu=class extends t.Plugin{constructor(e=cs,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},cs,this._config);this._configService.setConfig(os,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=[[As],[ls],[V],[Ki],[Tu],[ql,{useClass:zu}],[O],[Wu],[H],[Pu],[ta],[Fu],[bu],[Du],[Cu],[Pl],[va],[Rc],[Iu],[Eu],[wu],[j],[Ou],[B],[ku],[Hu],[Uu],[Lu,{useClass:Ru,deps:[V]}],[Qo,{useClass:Zo}],[_u]];(e=this._config)!=null&&e.notExecuteFormula||n.push([vu]),(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)(n,this._config.override)),(0,t.touchDependencies)(this._injector,[[O],[Uu],[Lu],[Eu],[Cu]])}onStarting(){var e;(0,t.touchDependencies)(this._injector,[[Pu],[ta],[Tu],[Pl],[Iu],[H],[_u]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([Mu])}onRendered(){(0,t.touchDependencies)(this._injector,[[ql]])}onReady(){(0,t.touchDependencies)(this._injector,[[Mu],[vu],[bu],[Du],[j],[Fu],[Ou],[Hu],[Ki],[wu]])}};T(Gu,`pluginName`,`SHEET_PLUGIN`),T(Gu,`packageName`,Au),T(Gu,`version`,ju),T(Gu,`type`,t.UniverInstanceType.UNIVER_SHEET),Gu=D([(0,t.DependentOn)(r.UniverFormulaEnginePlugin),E(1,(0,t.Inject)(t.Injector)),E(2,t.IConfigService)],Gu);let Ku={WorkbookCommentPermission:Wc,WorkbookCopyPermission:Gc,WorkbookCreateProtectPermission:qc,WorkbookCreateSheetPermission:Jc,WorkbookDeleteSheetPermission:Zc,WorkbookDuplicatePermission:Qc,WorkbookEditablePermission:Z,WorkbookExportPermission:$c,WorkbookHideSheetPermission:el,WorkbookManageCollaboratorPermission:rl,WorkbookMoveSheetPermission:il,WorkbookPrintPermission:al,WorkbookRecoverHistoryPermission:ol,WorkbookRenameSheetPermission:sl,WorkbookSharePermission:cl,WorkbookViewHistoryPermission:ul,WorkbookViewPermission:ll,WorksheetCopyPermission:dl,WorksheetDeleteColumnPermission:fl,WorksheetDeleteProtectionPermission:pl,WorksheetDeleteRowPermission:ml,WorksheetEditExtraObjectPermission:hl,WorksheetEditPermission:Q,WorksheetFilterPermission:gl,WorksheetInsertColumnPermission:_l,WorksheetInsertHyperlinkPermission:vl,WorksheetInsertRowPermission:yl,WorksheetManageCollaboratorPermission:bl,WorksheetPivotTablePermission:xl,WorksheetSetCellStylePermission:wl,WorksheetSetCellValuePermission:Tl,WorksheetSetColumnStylePermission:El,WorksheetSetRowStylePermission:Dl,WorksheetSortPermission:Ol,WorksheetViewPermission:kl,RangeProtectionPermissionEditPoint:Y,RangeProtectionPermissionViewPoint:Vc},qu=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(B),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)})},Ju=(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){let t={...r,startRow:c,endRow:c};return Xu(e,n,t,i,a,!1)}},Yu=(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){let t={...r,startRow:s,endRow:s};return Zu(e,n,t,i,a,!1)}},Xu=(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){let t={...r,startColumn:c,endColumn:c};return Ju(e,n,t,i,a,!1)}},Zu=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.endColumn+i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l++,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l<=c)return{...r,endColumn:l,startColumn:l};if(o){let t={...r,startColumn:s,endColumn:s};return Yu(e,n,t,i,a,!1)}};function Qu(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 $u=(e,n,r,i,a=1)=>{switch(i){case t.Direction.UP:return Ju(e,n,r,a);case t.Direction.DOWN:return Yu(e,n,r,a);case t.Direction.LEFT:return Xu(e,n,r,a);case t.Direction.RIGHT:return Zu(e,n,r,a)}},ed=(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:$u(i.range,r,l,n);if(!e)return null;let t=h?Qu(e.endRow,e.endColumn,r):Qu(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?Qu(c.range.endRow,c.range.endColumn,r):Qu(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function td(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 nd(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:td(t,n),primaryWithCoord:r&&rd(t,r),style:i}}function rd(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 id(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=td(r,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=td(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 ad(e,t,n,r,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=td(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=wa,e.AFTER_CELL_EDIT=te,e.AUTO_FILL_APPLY_TYPE=wo,e.AUTO_FILL_DATA_TYPE=To,e.AUTO_FILL_HOOK_TYPE=Eo,e.AddMergeRedoSelectionsOperationFactory=ia,e.AddMergeUndoMutationFactory=g,e.AddMergeUndoSelectionsOperationFactory=aa,e.AddRangeProtectionCommand=In,e.AddRangeProtectionMutation=Fn,e.AddRangeThemeMutation=ru,e.AddWorksheetMergeAllCommand=pa,e.AddWorksheetMergeCommand=fa,e.AddWorksheetMergeHorizontalCommand=ha,e.AddWorksheetMergeMutation=_,e.AddWorksheetMergeVerticalCommand=ma,e.AddWorksheetProtectionCommand=xa,e.AddWorksheetProtectionMutation=ya,e.AppendRowCommand=Ca,e.AutoClearContentCommand=is,e.AutoFillCommand=$o,Object.defineProperty(e,"AutoFillController",{enumerable:!0,get:function(){return _u}}),e.AutoFillRules=Ho,Object.defineProperty(e,"AutoFillService",{enumerable:!0,get:function(){return Zo}}),e.AutoFillTools=Co,e.BEFORE_CELL_EDIT=ee,e.BorderStyleManagerService=As,e.COMMAND_LISTENER_SKELETON_CHANGE=Ht,e.COMMAND_LISTENER_VALUE_CHANGE=Ut,Object.defineProperty(e,"CalculateResultApplyController",{enumerable:!0,get:function(){return vu}}),e.CancelFrozenCommand=rc,e.CancelMarkDirtyRowAutoHeightOperation=lu,e.ClearSelectionAllCommand=Un,e.ClearSelectionContentCommand=as,e.ClearSelectionFormatCommand=Wn,e.CopySheetCommand=_s,e.CopyWorksheetEndMutation=us,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,"DefinedNameDataController",{enumerable:!0,get:function(){return bu}}),e.DeleteRangeMoveLeftCommand=gr,e.DeleteRangeMoveUpCommand=vr,e.DeleteRangeProtectionCommand=ys,e.DeleteRangeProtectionMutation=Nn,e.DeleteWorksheetProtectionCommand=bs,e.DeleteWorksheetProtectionMutation=ba,e.DeleteWorksheetRangeThemeStyleCommand=xs,e.DeleteWorksheetRangeThemeStyleMutation=Se,e.DeleteWorksheetRangeThemeStyleMutationFactory=Ce,e.DeltaColumnWidthCommand=wc,e.DeltaRowHeightCommand=Hl,e.EditStateEnum=jn,e.EffectRefRangId=G,e.EmptyMutation=iu,e.ExclusiveRangeService=Ru,e.FactoryAddRangeProtectionMutation=Pn,e.FactoryDeleteRangeProtectionMutation=Mn,e.FactorySetRangeProtectionMutation=ac,e.IAutoFillService=Qo,e.IExclusiveRangeService=Lu,e.INTERCEPTOR_POINT=v,e.INumfmtService=ql,e.IRefSelectionsService=$n,e.InsertColAfterCommand=Pr,e.InsertColBeforeCommand=Nr,e.InsertColByRangeCommand=Mr,e.InsertColCommand=jr,e.InsertColMutation=N,e.InsertColMutationUndoFactory=Te,e.InsertDefinedNameCommand=Ss,e.InsertMultiColsLeftCommand=Fr,e.InsertMultiColsRightCommand=Ir,e.InsertMultiRowsAboveCommand=Or,e.InsertMultiRowsAfterCommand=kr,e.InsertRangeMoveDownCommand=br,e.InsertRangeMoveRightCommand=Sr,e.InsertRowAfterCommand=Dr,e.InsertRowBeforeCommand=Er,e.InsertRowByRangeCommand=Tr,e.InsertRowCommand=wr,e.InsertRowMutation=M,e.InsertRowMutationUndoFactory=we,e.InsertSheetCommand=Cs,e.InsertSheetMutation=fs,e.InsertSheetUndoMutationFactory=ds,e.InterceptCellContentPriority=y,e.MAX_CELL_PER_SHEET_KEY=yu,e.MERGE_CELL_INTERCEPTOR_CHECK=ea,e.MarkDirtyFilterChangeMutation=au,e.MarkDirtyRowAutoHeightOperation=cu,Object.defineProperty(e,"MergeCellController",{enumerable:!0,get:function(){return ta}}),e.MoveColsCommand=Zr,e.MoveColsMutation=Ae,e.MoveColsMutationUndoFactory=ke,e.MoveRangeCommand=ar,e.MoveRangeMutation=Ee,e.MoveRowsCommand=Yr,e.MoveRowsMutation=Oe,e.MoveRowsMutationUndoFactory=De,Object.defineProperty(e,"NumfmtService",{enumerable:!0,get:function(){return zu}}),e.OperatorType=ti,e.PermissionPointsDefinitions=Ku,e.REF_SELECTIONS_ENABLED=zn,e.RangeMergeUtil=ln,Object.defineProperty(e,"RangeProtectionCache",{enumerable:!0,get:function(){return ku}}),e.RangeProtectionPermissionDeleteProtectionPoint=zc,e.RangeProtectionPermissionEditPoint=Y,e.RangeProtectionPermissionManageCollaPoint=Bc,e.RangeProtectionPermissionViewPoint=Vc,Object.defineProperty(e,"RangeProtectionRefRangeService",{enumerable:!0,get:function(){return Hu}}),Object.defineProperty(e,"RangeProtectionRenderModel",{enumerable:!0,get:function(){return Ou}}),e.RangeProtectionRuleModel=B,Object.defineProperty(e,"RangeProtectionService",{enumerable:!0,get:function(){return Uu}}),e.RangeThemeStyle=ae,Object.defineProperty(e,"RefRangeService",{enumerable:!0,get:function(){return Ki}}),Object.defineProperty(e,"RefSelectionsService",{enumerable:!0,get:function(){return er}}),e.RefillCommand=ws,e.RegisterWorksheetRangeThemeStyleCommand=Ds,e.RegisterWorksheetRangeThemeStyleMutation=Ts,e.RemoveColByRangeCommand=Hr,e.RemoveColCommand=Ur,e.RemoveColMutation=F,e.RemoveDefinedNameCommand=Os,e.RemoveMergeUndoMutationFactory=I,e.RemoveNumfmtMutation=Xl,e.RemoveRangeThemeMutation=ou,e.RemoveRowByRangeCommand=zr,e.RemoveRowCommand=Br,e.RemoveRowMutation=P,e.RemoveSheetCommand=ks,e.RemoveSheetMutation=Gr,e.RemoveSheetUndoMutationFactory=Wr,e.RemoveWorksheetMergeCommand=oa,e.RemoveWorksheetMergeMutation=L,e.ReorderRangeCommand=ei,e.ReorderRangeMutation=Pe,e.ReorderRangeUndoMutationFactory=Ne,e.ResetBackgroundColorCommand=Fa,e.ResetTextColorCommand=Na,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=os,e.ScrollToCellOperation=uu,e.SelectRangeCommand=rr,e.SelectionMoveType=Ln,e.SetBackgroundColorCommand=Pa,e.SetBoldCommand=Ta,e.SetBorderBasicCommand=Us,e.SetBorderColorCommand=Hs,e.SetBorderCommand=zs,e.SetBorderPositionCommand=Bs,e.SetBorderStyleCommand=Vs,e.SetColDataCommand=Ws,e.SetColDataMutation=Re,e.SetColDataMutationFactory=Le,e.SetColHiddenCommand=qs,e.SetColHiddenMutation=Be,e.SetColVisibleMutation=He,e.SetColWidthCommand=Tc,e.SetDefinedNameCommand=$s,e.SetFontFamilyCommand=Aa,e.SetFontSizeCommand=ja,e.SetFrozenCommand=nc,e.SetFrozenMutation=tc,e.SetFrozenMutationFactory=ec,e.SetGridlinesColorCommand=ic,e.SetGridlinesColorMutation=Ue,e.SetHorizontalTextAlignCommand=La,e.SetItalicCommand=Ea,e.SetNumfmtMutation=Yl,e.SetOverlineCommand=ka,e.SetProtectionCommand=sc,e.SetRangeCustomMetadataCommand=cc,e.SetRangeProtectionMutation=J,e.SetRangeThemeMutation=su,e.SetRangeValuesCommand=ur,e.SetRangeValuesMutation=z,e.SetRangeValuesUndoMutationFactory=R,e.SetRowDataCommand=lc,e.SetRowDataMutation=yt,e.SetRowDataMutationFactory=vt,e.SetRowHeightCommand=Ul,e.SetRowHiddenCommand=fc,e.SetRowHiddenMutation=Ct,e.SetRowVisibleMutation=xt,e.SetSelectedColsVisibleCommand=Ks,e.SetSelectedRowsVisibleCommand=dc,e.SetSelectionsOperation=W,e.SetShrinkToFitCommand=za,e.SetSpecificColsVisibleCommand=Gs,e.SetSpecificRowsVisibleCommand=uc,e.SetStrikeThroughCommand=Oa,e.SetStyleCommand=q,e.SetTabColorCommand=bc,e.SetTabColorMutation=yc,e.SetTextColorCommand=Ma,e.SetTextRotationCommand=Ba,e.SetTextWrapCommand=Ra,e.SetUnderlineCommand=Da,e.SetVerticalTextAlignCommand=Ia,e.SetWorkbookNameCommand=Sc,e.SetWorkbookNameMutation=xc,e.SetWorksheetActivateCommand=Cc,e.SetWorksheetActiveOperation=zt,e.SetWorksheetColWidthMutation=Tt,e.SetWorksheetColWidthMutationFactory=wt,e.SetWorksheetColumnCountCommand=Dc,e.SetWorksheetColumnCountMutation=Dt,e.SetWorksheetColumnCountUndoMutationFactory=Et,e.SetWorksheetDefaultStyleCommand=Oc,e.SetWorksheetDefaultStyleMutation=Ot,e.SetWorksheetDefaultStyleMutationFactory=kt,e.SetWorksheetHideCommand=jc,e.SetWorksheetHideMutation=Ac,e.SetWorksheetNameCommand=Pc,e.SetWorksheetNameMutation=Nc,e.SetWorksheetOrderCommand=Lc,e.SetWorksheetOrderMutation=Ic,e.SetWorksheetPermissionPointsCommand=Il,e.SetWorksheetPermissionPointsMutation=Fl,e.SetWorksheetProtectionCommand=Ll,e.SetWorksheetProtectionMutation=oc,e.SetWorksheetRangeThemeStyleCommand=Sa,e.SetWorksheetRangeThemeStyleMutation=be,e.SetWorksheetRangeThemeStyleMutationFactory=xe,e.SetWorksheetRightToLeftCommand=Bl,e.SetWorksheetRightToLeftMutation=zl,e.SetWorksheetRowAutoHeightMutation=Lt,e.SetWorksheetRowAutoHeightMutationFactory=Pt,e.SetWorksheetRowCountCommand=Vl,e.SetWorksheetRowCountMutation=jt,e.SetWorksheetRowCountUndoMutationFactory=At,e.SetWorksheetRowHeightMutation=Ft,e.SetWorksheetRowHeightMutationFactory=Mt,e.SetWorksheetRowIsAutoHeightCommand=Wl,e.SetWorksheetRowIsAutoHeightMutation=It,e.SetWorksheetRowIsAutoHeightMutationFactory=Nt,e.SetWorksheetShowCommand=Gl,e.SheetCopyDownCommand=ns,e.SheetCopyRightCommand=rs,Object.defineProperty(e,"SheetInterceptorService",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"SheetLazyExecuteScheduleService",{enumerable:!0,get:function(){return ls}}),Object.defineProperty(e,"SheetPermissionCheckController",{enumerable:!0,get:function(){return wu}}),Object.defineProperty(e,"SheetPermissionInitController",{enumerable:!0,get:function(){return Eu}}),Object.defineProperty(e,"SheetRangeThemeModel",{enumerable:!0,get:function(){return j}}),Object.defineProperty(e,"SheetRangeThemeService",{enumerable:!0,get:function(){return Wu}}),e.SheetSkeletonChangeType=Bt,Object.defineProperty(e,"SheetSkeletonService",{enumerable:!0,get:function(){return H}}),e.SheetValueChangeType=Vt,Object.defineProperty(e,"SheetsFreezeSyncController",{enumerable:!0,get:function(){return Cu}}),Object.defineProperty(e,"SheetsSelectionsService",{enumerable:!0,get:function(){return V}}),e.SplitDelimiterEnum=fn,e.SplitTextToColumnsCommand=Kl,e.TextToNumberCommand=$l,e.ToggleCellCheckboxCommand=eu,e.ToggleGridlinesCommand=tu,e.ToggleGridlinesMutation=Rt,Object.defineProperty(e,"UniverSheetsPlugin",{enumerable:!0,get:function(){return Gu}}),e.UnregisterWorksheetRangeThemeStyleCommand=nu,e.UnregisterWorksheetRangeThemeStyleMutation=Es,e.VALIDATE_CELL=ne,e.ViewStateEnum=An,e.WorkbookCommentPermission=Wc,e.WorkbookCopyPermission=Gc,e.WorkbookCopySheetPermission=Kc,e.WorkbookCreateProtectPermission=qc,e.WorkbookCreateSheetPermission=Jc,e.WorkbookDeleteColumnPermission=Yc,e.WorkbookDeleteRowPermission=Xc,e.WorkbookDeleteSheetPermission=Zc,e.WorkbookDuplicatePermission=Qc,e.WorkbookEditablePermission=Z,e.WorkbookExportPermission=$c,e.WorkbookHideSheetPermission=el,e.WorkbookInsertColumnPermission=tl,e.WorkbookInsertRowPermission=nl,e.WorkbookManageCollaboratorPermission=rl,e.WorkbookMoveSheetPermission=il,Object.defineProperty(e,"WorkbookPermissionService",{enumerable:!0,get:function(){return Tu}}),e.WorkbookPrintPermission=al,e.WorkbookRecoverHistoryPermission=ol,e.WorkbookRenameSheetPermission=sl,e.WorkbookSelectionModel=Rn,e.WorkbookSharePermission=cl,e.WorkbookViewHistoryPermission=ul,e.WorkbookViewPermission=ll,e.WorksheetCopyPermission=dl,e.WorksheetDeleteColumnPermission=fl,e.WorksheetDeleteProtectionPermission=pl,e.WorksheetDeleteRowPermission=ml,e.WorksheetEditExtraObjectPermission=hl,e.WorksheetEditPermission=Q,e.WorksheetFilterPermission=gl,e.WorksheetInsertColumnPermission=_l,e.WorksheetInsertHyperlinkPermission=vl,e.WorksheetInsertRowPermission=yl,e.WorksheetManageCollaboratorPermission=bl,Object.defineProperty(e,"WorksheetPermissionService",{enumerable:!0,get:function(){return Pl}}),e.WorksheetPivotTablePermission=xl,e.WorksheetProtectionPointModel=Rc,e.WorksheetProtectionRuleModel=va,e.WorksheetSelectProtectedCellsPermission=Sl,e.WorksheetSelectUnProtectedCellsPermission=Cl,e.WorksheetSetCellStylePermission=wl,e.WorksheetSetCellValuePermission=Tl,e.WorksheetSetColumnStylePermission=El,e.WorksheetSetRowStylePermission=Dl,e.WorksheetSortPermission=Ol,e.WorksheetViewPermission=kl,Object.defineProperty(e,"ZebraCrossingCacheController",{enumerable:!0,get:function(){return Du}}),e.addMergeCellsUtil=ga,e.adjustRangeOnMutation=zi,e.alignToMergedCellsBorders=Gn,e.attachPrimaryWithCoord=rd,e.attachRangeWithCoord=td,e.attachSelectionWithCoord=nd,e.baseProtectionActions=Hc,e.checkCellValueType=f,e.checkRangesEditablePermission=qu,e.convertPositionCellToSheetOverGrid=ad,e.convertPositionSheetOverGridToAbsolute=id,e.convertPrimaryWithCoordToPrimary=dn,e.convertSelectionDataToRange=un,e.copyRangeStyles=Qn,e.countCells=Hn,e.createTopMatrixFromMatrix=rn,e.createTopMatrixFromRanges=nn,e.defaultLargeSheetOperationConfig=ss,e.defaultWorkbookPermissionPoints=jl,e.defaultWorksheetPermissionPoint=Nl,e.deserializeListOptions=kn,e.discreteRangeToRange=Tn,e.expandToContinuousRange=tn,e.factoryRemoveNumfmtUndoMutation=Zl,e.factorySetNumfmtUndoMutation=Jl,e.findAllRectangle=sn,e.findFirstNonEmptyCell=xn,e.followSelectionOperation=Jn,e.generateNullCell=Sn,e.generateNullCellValue=Cn,e.getAddMergeMutationRangeByType=$i,e.getAllRangePermissionPoint=X,e.getAllWorkbookPermissionPoint=Al,e.getAllWorksheetPermissionPoint=$,e.getAllWorksheetPermissionPointByPointPanel=Ml,e.getCellAtRowCol=Kn,e.getClearContentMutationParamForRange=da,e.getClearContentMutationParamsForRanges=ua,e.getDefaultRangePermission=Uc,e.getInsertRangeMutations=dr,e.getMoveRangeCommandMutations=sr,e.getMoveRangeUndoRedoMutations=cr,e.getNextPrimaryCell=ed,e.getPrimaryForRange=U,e.getRemoveRangeMutations=fr,e.getSelectionsService=nr,e.getSeparateEffectedRangesOnCommand=Hi,e.getSheetCommandTarget=m,e.getSheetCommandTargetWorkbook=p,e.getSheetMutationTarget=h,e.getSkeletonChangedEffectedRange=Gt,e.getValueChangedEffectedRange=Wt,e.getVisibleRanges=Dn,e.handleBaseInsertRange=yi,e.handleBaseMoveRowsCols=si,e.handleBaseRemoveRange=hi,e.handleCommonDefaultRangeChangeWithEffectRefCommands=Li,e.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=Ri,e.handleDefaultRangeChangeWithEffectRefCommands=Fi,e.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Ii,e.handleDeleteRangeMoveLeft=Di,e.handleDeleteRangeMoveUp=ki,e.handleDeleteRangeMutation=mr,e.handleIRemoveCol=gi,e.handleIRemoveRow=_i,e.handleInsertCol=Si,e.handleInsertRangeMoveDown=Ci,e.handleInsertRangeMoveRight=Ti,e.handleInsertRangeMutation=pr,e.handleInsertRow=xi,e.handleMoveCols=di,e.handleMoveRange=pi,e.handleMoveRows=ci,e.isCellImage=c,e.isSingleCellSelection=Yn,e.rangeMerge=cn,e.rangeToDiscreteRange=En,e.rotateRange=K,e.runRefRangeMutations=Pi,e.serializeListOptions=On,e.setEndForRange=qn,e.splitRangeText=_n,e.transformCellsToRange=Ql,e.validateDefinedName=Kt});
|
|
2
|
+
`)?e.body.dataStream.length-2:e.body.dataStream.length;if(i<s){let e={st:i,ed:s},r=ct({},n,!0);r&&t.Tools.removeNull(r),t.Tools.isEmptyObject(r)||(e.ts=r),a.push(e)}e.body.textRuns=(0,t.normalizeTextRuns)(a)}function dt(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?+!!ft(n.v):e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ft(e){if(typeof e==`string`){if(e.toUpperCase()===`TRUE`)return!0;if(e.toUpperCase()===`FALSE`)return!1;if((0,t.isSafeNumeric)(e)){if(Number(e)===0)return!1;if(Number(e)===1)return!0}}if(typeof e==`number`){if(e===0)return!1;if(e===1)return!0}return typeof e==`boolean`?e:null}function pt(e){return e==null?null:(e.f===void 0&&(e.f=null),e.si===void 0&&(e.si=null),e.p===void 0&&(e.p=null),e.v===void 0&&(e.v=null),e.t===void 0&&(e.t=null),e.s===void 0&&(e.s=null),e.custom===void 0&&(e.custom=null),e)}let R=(e,n)=>{let{unitId:r,subUnitId:i,cellValue:a,isOverrideStyle:o}=n,s=e.get(t.IUniverInstanceService).getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(s==null)throw Error(`workbook is null error!`);let c=s.getSheetBySheetId(i);if(c==null)throw Error(`worksheet is null error!`);let l=c.getCellMatrix(),u=s.getStyles(),d=new t.ObjectMatrix;return new t.ObjectMatrix(a).forValue((e,n,r)=>{let i=t.Tools.deepClone(l==null?void 0:l.getValue(e,n))||{},a=u.getStyleByCell(i),s=u.getStyleByCell(r);i.s=o&&Object.prototype.hasOwnProperty.call(r??{},`s`)?a??null:ot(a,s),d.setValue(e,n,pt(i))}),{...n,cellValue:d.getMatrix()}},z={id:`sheet.mutation.set-range-values`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{cellValue:r,subUnitId:i,unitId:a,isOverrideStyle:o}=n,s=e.get(t.IUniverInstanceService).getUnit(a);if(!s)return!1;let c=s.getSheetBySheetId(i);if(!c)return!1;let l=c.getCellMatrix(),u=s.getStyles();return new t.ObjectMatrix(r).forValue((e,n,r)=>{if(!r)l.realDeleteValue(e,n);else{let i=l.getValue(e,n)||{};i=ht(r,i,u,!!o),t.Tools.isEmptyObject(i)?l.realDeleteValue(e,n):l.setValue(e,n,i)}}),!0}},mt=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function ht(e,t,n,r=!1){let i=l(n,e,t);return Object.keys(e).forEach(a=>{let o=a;if(mt.has(o)){let n=e[o];_t(t,o,n)}else o===`v`?e.v!==void 0&&(t.v=dt(i,e)):o===`s`&&(r?gt(n,t,e):at(n,t,e))}),t.v!==void 0&&(t.t=i,t.v=dt(i,t)),t.v===null&&(delete t.t,delete t.v),t}function gt(e,t,n){if(n.s===void 0)return;if(n.s===null){delete t.s;return}let r=typeof n.s==`string`?e.get(n.s):n.s,i={};at(e,i,{s:r}),i.s==null?delete t.s:t.s=i.s}function _t(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let vt=(e,t)=>{let{unitId:n,subUnitId:r,rowData:i}=e,a={},o=t.getRowManager();for(let e in i){let t=i[e];a[e]=Fe(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},yt={id:`sheet.mutation.set-row-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowData:r}=n,i=m(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}},bt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},xt={id:`sheet.mutation.set-row-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},St=(e,n)=>{if(e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Ct={id:`sheet.mutation.set-row-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},wt=(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}},Tt={id:`sheet.mutation.set-worksheet-col-width`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(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}},Et=(e,n)=>{let r=h(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()}},Dt={id:`sheet.mutation.set-worksheet-column-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Ot={id:`sheet.mutation.set-worksheet-default-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},kt=(e,n)=>{let r=h(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()}},At=(e,n)=>{let r=h(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()}},jt={id:`sheet.mutation.set-worksheet-row-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=h(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},Mt=(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;a[r]=((s=o.getRow(r))==null?void 0:s.h)??t.getConfig().defaultRowHeight}return{unitId:n,subUnitId:r,ranges:i,rowHeight:a}},Nt=(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}},Pt=(e,t)=>{let{unitId:n,subUnitId:r,rowsAutoHeightInfo:i}=e,a=[],o=t.getRowManager();for(let e of i){var s;let{row:n}=e;a.push({row:n,autoHeight:((s=o.getRow(n))==null?void 0:s.ah)??t.getConfig().defaultRowHeight})}return{unitId:n,subUnitId:r,rowsAutoHeightInfo:a}},Ft={id:`sheet.mutation.set-worksheet-row-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,rowHeight:i}=n,a=m(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}},It={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=m(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);typeof i==`number`?e.ia=i:e.ia=i[n]??void 0}return!0}},Lt={id:`sheet.mutation.set-worksheet-row-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowsAutoHeightInfo:r}=n,i=m(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}},Rt={id:`sheet.mutation.toggle-gridlines`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},zt={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}},Bt=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}({}),Vt=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}({}),Ht=[Ft.id,It.id,Lt.id,Tt.id,zt.id,Oe.id,Ae.id,Be.id,He.id,Ct.id,xt.id,N.id,M.id,F.id,P.id,Rt.id,Ue.id,jt.id,Dt.id],Ut=[z.id,Ee.id,L.id,_.id,Pe.id,Ot.id,yt.id,Re.id,be.id,Se.id];function Wt(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=m(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=m(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=m(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 Gt(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 Kt(e,n){if(e.length===0)return`sheets.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`sheets.definedName.nameDuplicate`;if(!t.Tools.isValidParameter(e)||(0,r.isReferenceStringWithEffectiveColumn)(e)||!t.Tools.isStartValidPosition(e)&&!i.cjk.hasCJKText(e.substring(0,1)))return`sheets.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)?`sheets.definedName.nameSheetConflict`:o.length===0?`sheets.definedName.formulaOrRefStringEmpty`:!u.hasExecutor(e.toUpperCase())||`sheets.definedName.nameConflict`}function qt(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Jt(e,t){return e&&e.spanAnchor?qt(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):qt(e)}function Yt(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 Xt(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||=Jt(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 Zt(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||=Jt(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 Qt(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||=Jt(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 $t(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||=Jt(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 en({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);Jt(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);Jt(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);Jt(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);Jt(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 tn(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Yt(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=en({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}=Qt(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}=$t(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}=Xt(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}=Zt(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 nn=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},rn=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},an=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},on=(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},sn=e=>{let t=[],n=an(e);for(;n.area>0;)n.range&&(t.push(n.range),on(e,n.range)),n=an(e);return t},cn=e=>{let t=nn(e);return sn(t)};var ln=class{constructor(){T(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(){let e=rn(this._matrix);return sn(e)}};function un(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=dn(n)),i}function dn(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 fn=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 pn=class{constructor(){T(this,`_tabCount`,0),T(this,`_commaCount`,0),T(this,`_semicolonCount`,0),T(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 mn(e,n,r){let i=[];r!==void 0&&(e&16)>0&&i.push(r),(e&1)>0&&i.push(` `),(e&2)>0&&i.push(`,`),(e&4)>0&&i.push(`;`),(e&8)>0&&i.push(` `);let a=``;for(let e of i)a+=t.regexp.escapeRegExp(e);let o=`[${a}]`;return n&&(o+=`+`),new RegExp(o)}let hn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function gn(e){if(e!=null){if(e.p)return hn(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 _n(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 pn:null,f=[];for(let t=s;t<=l;t++){let n=gn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=mn(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 vn=(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)},{}),yn=(e=0)=>{let t=e;return function(){return t++}};function bn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function xn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(bn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function Sn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,null)}),n.clone()}function Cn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})}),n.clone()}function wn(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 Tn(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 En(e,n,r,i){let a=n.get(t.IUniverInstanceService),o=r?a.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitOfType(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 Dn(e,n,r,i){let a=m(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}function On(e){return JSON.stringify(e.filter(Boolean))}function kn(e){try{let t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return t.filter(Boolean)}catch{}return e.split(`,`).filter(Boolean)}let An=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),jn=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var B=class{constructor(){T(this,`_model`,new Map),T(this,`_ruleChange$`,new n.Subject),T(this,`ruleChange$`,this._ruleChange$.asObservable()),T(this,`_ruleRefresh$`,new n.Subject),T(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),T(this,`_rangeRuleInitStateChange`,new n.BehaviorSubject(!1)),T(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 Mn=(e,t)=>{let n=e.get(B),r=[];for(let e=0;e<t.ruleIds.length;e++){let i=n.getRule(t.unitId,t.subUnitId,t.ruleIds[e]);i&&r.push(i)}return{id:Fn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Nn={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(B);for(let e=0;e<i.length;e++)a.deleteRule(n,r,i[e]);return!0}},Pn=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Nn.id,params:t}},Fn={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(B);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},In={type:t.CommandType.COMMAND,id:`sheet.command.add-range-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(B),{rule:o,permissionId:s}=n,{unitId:c,subUnitId:l,ranges:u,description:d,viewState:f,editState:p}=o,m=[{ranges:u,permissionId:s,id:a.createRuleId(c,l),description:d,unitType:o.unitType,unitId:c,subUnitId:l,viewState:f,editState:p}];if(await r.executeCommand(Fn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:Fn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:Nn.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Ln=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 Rn=class extends t.Disposable{constructor(e){super(),this._workbook=e,T(this,`_worksheetSelections`,new Map),T(this,`_worksheetLastSelectionPrimaryCell`,new Map),T(this,`_selectionMoveStart$`,new n.Subject),T(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),T(this,`_selectionMoving$`,new n.Subject),T(this,`selectionMoving$`,this._selectionMoving$.asObservable()),T(this,`_selectionMoveEnd$`,new n.BehaviorSubject([])),T(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),T(this,`_selectionSet$`,new n.BehaviorSubject([])),T(this,`selectionSet$`,this._selectionSet$.asObservable()),T(this,`selectionChanged$`,void 0),T(this,`_beforeSelectionMoveEnd$`,new n.BehaviorSubject([])),T(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()}getSelectionsOfWorksheet(e){return this._worksheetSelections.has(e)||this._worksheetSelections.set(e,[]),this._worksheetSelections.get(e)}getLastSelectionPrimaryCellOfWorksheet(e){return this._worksheetLastSelectionPrimaryCell.get(e)??null}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 V=class extends t.RxDisposable{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitOfType(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,T(this,`_cellStylesCache`,new Map),T(this,`selectionMoveStart$`,void 0),T(this,`selectionMoving$`,void 0),T(this,`selectionMoveEnd$`,void 0),T(this,`selectionSet$`,void 0),T(this,`selectionChanged$`,void 0),T(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.shareReplay)({bufferSize:1,refCount:!0}),(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||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??3);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`){let r=e??n,i=t??3;this._ensureWorkbookSelection(a).setSelections(o,r,i)}}clearCurrentSelections(){this._getCurrentSelections().splice(0)}_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 Rn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var n;let r=(n=this._instanceSrv.getCurrentUnitOfType(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}}};V=D([E(0,t.IUniverInstanceService)],V);let zn=`REF_SELECTIONS_ENABLED`,H=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._univerInstanceService=t,T(this,`_sceneMap`,new Map),T(this,`_sheetSkeletonParamStore`,new Map),T(this,`_buildSkeleton$`,new n.Subject),T(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())}};H=D([E(0,(0,t.Inject)(t.Injector)),E(1,(0,t.Inject)(t.IUniverInstanceService))],H);function Bn(e,n){let r=new t.ObjectMatrix;for(let i=0;i<e.length;i++){let a=t.Range.transformRange(e[i],n);t.Range.foreach(a,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}return r}function Vn(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 Hn(e){let t=0;return e.forEach(()=>{t++}),t}let Un={id:`sheet.command.clear-selection-all`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(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(V),{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(H).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),p=[],h=[],g={subUnitId:s,unitId:o,cellValue:Sn(Dn(c,e,o,s))},_=R(e,g);p.push({id:z.id,params:g}),h.push({id:z.id,params:_});let v=f.onCommandExecute({id:Un.id,params:n});p.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(p,u),{suitableRanges:b,remainingRanges:x}=Vn(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?(p.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:p}),!0):!1}},Wn={id:`sheet.command.clear-selection-format`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(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(V),{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(H).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),p=[],h=[],g={subUnitId:s,unitId:o,cellValue:wn(Dn(c,e,o,s))},_=R(e,g);p.push({id:z.id,params:g}),h.push({id:z.id,params:_});let v=f.onCommandExecute({id:Wn.id,params:n});p.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(p,u),{suitableRanges:b,remainingRanges:x}=Vn(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?(p.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:p}),!0):!1}};function Gn(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?Gn(o,n,r):o}function Kn(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 qn(e,t,n){let{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return Number.isNaN(r)&&(e.startRow=0),Number.isNaN(a)&&(e.endRow=t-1),Number.isNaN(i)&&(e.startColumn=0),Number.isNaN(o)&&(e.endColumn=n-1),e}function U(e,n){let r=Number.isNaN(e.startRow)?0:e.startRow,i=Number.isNaN(e.startColumn)?0:e.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:e.startRow,endColumn:e.startColumn,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}let Jn=(e,t,n)=>({id:W.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:U(e,n)}]}});function Yn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Xn(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 Zn=e=>e.id!==b;function Qn(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,x,Zn):e.getCellWithFilteredInterceptors(t,s,x,Zn);!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 $n=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),er=class extends V{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()))))}};er=D([E(0,t.IUniverInstanceService)],er);function tr(e){return e.some((n,r)=>e.slice(r+1).some(e=>t.Rectangle.simpleRangesIntersect(n,e)))}function nr(e,n){let r=e.get(t.IContextService).getContextValue(zn);return e.get(r&&!n?$n:V)}let W={id:`sheet.operation.set-selections`,type:t.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return nr(e).setSelections(i,a,[...n],r),!0}},rr={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=m(e.get(t.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:U(a,s.worksheet),style:null}];return o.syncExecuteCommand(W.id,{unitId:r,subUnitId:i,selections:c})}},ir=`sheet.command.move-range`,ar={type:t.CommandType.COMMAND,id:ir,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(O).beforeCommandExecute({id:ar.id,params:n}))return!1;let s=sr(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 or(e,n){let r=e.get(t.IUniverInstanceService),i=m(r),a=n.toUnitId??n.fromUnitId??(i==null?void 0:i.unitId),o=n.fromSubUnitId??(i==null?void 0:i.subUnitId),s=n.toSubUnitId??n.fromSubUnitId??(i==null?void 0:i.subUnitId);if(!a||!o||!s||n.fromUnitId&&n.toUnitId&&n.fromUnitId!==n.toUnitId)return null;let c=r.getUnit(a,t.UniverInstanceType.UNIVER_SHEET),l=c==null?void 0:c.getSheetBySheetId(o),u=c==null?void 0:c.getSheetBySheetId(s);return!l||!u?null:{unitId:a,fromSubUnitId:o,toSubUnitId:s,fromWorksheet:l,toWorksheet:u}}function sr(e,t,n={}){let{includeSelection:r=!0,includeAfterCommand:i=!0,includeAutoHeight:a=!0}=n,o=or(e,t);if(!o)return null;let s=e.get(O),{unitId:c,fromSubUnitId:l,toSubUnitId:u,fromWorksheet:d,toWorksheet:f}=o,p=cr(e,{unitId:c,subUnitId:l,range:t.fromRange},{unitId:c,subUnitId:u,range:t.toRange});if(p===null)return null;let m={id:ar.id,params:t},h=s.onCommandExecute(m),g=[...h.preRedos??[],...p.redos,...h.redos],_=[...h.preUndos??[],...p.undos,...h.undos];if(r&&(g.push({id:W.id,params:{unitId:c,subUnitId:u,selections:[{range:t.toRange,primary:lr(t.fromRange,t.toRange,d,f)}],type:2}}),_.push({id:W.id,params:{unitId:c,subUnitId:l,selections:[{range:t.fromRange,primary:U(t.fromRange,d)}],type:2}})),i){let e=s.afterCommandExecute(m);g.push(...e.redos),_.push(...e.undos)}if(a){let{undos:e,redos:n}=s.generateMutationsOfAutoHeight({unitId:c,subUnitId:u,ranges:l===u?[t.fromRange,t.toRange]:[t.toRange]});g.push(...n),_.push(...e)}return{unitId:c,redos:g,undos:_}}function cr(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=Gn(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)=>{let r=t.Tools.deepClone(m.getValue(e,n))??null;r!=null&&r.s&&(r.s=o.getStyles().get(r.s)),g.setValue(e,n,null),_.setValue(e,n,r);let i=(0,t.cellToRange)(e,n),a=t.Rectangle.getRelativeRange(i,c),s=t.Rectangle.getPositionRange(a,u);v.setValue(s.startRow,s.startColumn,t.Tools.deepClone(r))}),t.Range.foreach(u,(e,n)=>{let r=t.Tools.deepClone(h.getValue(e,n))??null;y.setValue(e,n,r)});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:Ee.id,params:b}],undos:[{id:Ee.id,params:x}]}}function lr(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=U(t,r);if(o){let e=o.endRow-o.startRow+1,t=o.endColumn-o.startColumn+1;s.endRow=s.startRow+e-1,s.endColumn=s.startColumn+t-1,s.actualRow=s.startRow,s.actualColumn=s.startColumn,s.isMerged=!1,s.isMergedMainCell=!0}return s}let ur={id:`sheet.command.set-range-values`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(r=e.get(V).getCurrentSelections())==null?void 0:r.map(e=>e.range),{value:o,range:s,redoUndoId:c}=n,l=s?[s]:a;if(!l||!l.length)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),{subUnitId:p,unitId:h,workbook:g,worksheet:_}=i,v=new t.ObjectMatrix,y;if(t.Tools.isArray(o))for(let e=0;e<l.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=l[e];for(let e=t;e<=r;e++)for(let r=n;r<=i;r++)v.setValue(e,r,o[e-t][r-n])}else if((0,t.isICellData)(o))for(let e=0;e<l.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=l[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)v.setValue(e,t,o)}else y=o,l=y?[new t.ObjectMatrix(y).getStartEndScope()]:[];let b={unitId:h,subUnitId:p,cellValue:y??v.getMatrix()},x=R(e,b),S=(0,t.mapObjectMatrix)(b.cellValue,(e,t)=>_.getCellHeight(e,t)||void 0);if(!u.syncExecuteCommand(z.id,b))return!1;let{undos:C,redos:w}=f.onCommandExecute({id:ur.id,params:b}),{undos:T,redos:E}=f.generateMutationsOfAutoHeight({unitId:h,subUnitId:p,ranges:l,cellHeights:new t.ObjectMatrix(S)});if((0,t.sequenceExecute)([...w,...E],u).result){let e=[{id:z.id,params:b},...w,...E,Jn(l[l.length-1],g,_)],t=[{id:z.id,params:x},...C,...T];return a&&a.length&&t.push(Jn(a[a.length-1],g,_)),d.pushUndoRedo({unitID:h,undoMutations:t,redoMutations:e,id:c}),!0}return!1}};function dr(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=e.get(t.IUniverInstanceService),d=e.get(O),f=u.getUnit(a,t.UniverInstanceType.UNIVER_SHEET),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=cr(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=R(e,f),{undos:h,redos:g}=d.onCommandExecute({id:ur.id,params:{...f,range:s}});r.push({id:z.id,params:f},...g),i.push({id:z.id,params:m},...h)}return{redo:r,undo:i}}function fr(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=e.get(t.IUniverInstanceService),u=e.get(O),d=l.getUnit(a,t.UniverInstanceType.UNIVER_SHEET),f=d==null?void 0:d.getSheetBySheetId(o);if(f){let n=f.getCellMatrix(),l=n.getDataRange(),d={subUnitId:o,unitId:a,cellValue:Sn([s])},p=R(e,d),m=u.onCommandExecute({id:ur.id,params:d});if(r.push({id:z.id,params:d},...m.redos),i.push(...m.undos,{id:z.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=cr(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 pr(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 mr(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 hr=`sheet.command.delete-range-move-left`,gr={type:t.CommandType.COMMAND,id:hr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=m(a);if(!c)return!1;let{worksheet:l,workbook:u,subUnitId:d,unitId:f}=c,p=n==null?void 0:n.range;if(!p){var h;p=(h=o.getCurrentLastSelection())==null?void 0:h.range}if(!p)return!1;let g={range:p,subUnitId:d,unitId:f,shiftDimension:t.Dimension.COLUMNS},_=s.onCommandExecute({id:gr.id,params:{range:p}}),{redo:v,undo:y}=fr(e,g),b=[..._.preRedos??[],...v],x=[..._.undos,...y];if(b.push(..._.redos),b.push(Jn(p,u,l)),x.push(..._.preUndos??[]),(0,t.sequenceExecute)(b,r).result){let e=s.afterCommandExecute({id:gr.id,params:{range:p}});return(0,t.sequenceExecute)(e.redos,r),x.push(...e.undos),b.push(...e.redos),i.pushUndoRedo({unitID:f,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},_r=`sheet.command.delete-range-move-up`,vr={type:t.CommandType.COMMAND,id:_r,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=m(a);if(!c)return!1;let{unitId:l,subUnitId:u,workbook:d,worksheet:f}=c,p=n==null?void 0:n.range;if(!p){let e=o.getCurrentLastSelection();p=e==null?void 0:e.range}if(!p)return!1;let h={range:p,subUnitId:u,unitId:l,shiftDimension:t.Dimension.ROWS},g=s.onCommandExecute({id:vr.id,params:{range:p}}),{redo:_,undo:v}=fr(e,h),y=[...g.preRedos??[],..._],b=[...g.undos,...v];if(y.push(...g.redos),y.push(Jn(p,d,f)),b.push(...g.preUndos??[]),(0,t.sequenceExecute)(y,r).result){let e=s.afterCommandExecute({id:vr.id,params:{range:p}});return(0,t.sequenceExecute)(e.redos,r),b.push(...e.undos),y.push(...e.redos),i.pushUndoRedo({unitID:l,undoMutations:b.reverse(),redoMutations:y}),!0}return!1}},yr=`sheet.command.insert-range-move-down`,br={type:t.CommandType.COMMAND,id:yr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=e.get(t.ErrorService),l=e.get(t.LocaleService);if(tr(o.getCurrentSelections().map(({range:e})=>e)))return c.emit(l.t(`sheets.info.overlappingSelections`)),!1;let u=m(a);if(!u)return!1;let{unitId:d,subUnitId:f,worksheet:p,workbook:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=o.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v=[],y=[],b=p.getCellMatrix(),x=b.getDataRange(),S=b.getSlice(x.startRow,x.endRow,g.startColumn,g.endColumn).getDataRange().endRow,C=Math.max(S+(g.endRow-g.startRow+1)-x.endRow,0);if(C>0){let n=g.startRow-1,r=p.getRowHeight(n),i={unitId:d,subUnitId:f,range:{startRow:x.endRow+1,endRow:x.endRow+C,startColumn:x.startColumn,endColumn:x.endColumn},rowInfo:Array(C).fill(void 0).map(()=>({h:r,hd:t.BooleanNumber.FALSE}))};v.push({id:M.id,params:i});let a=we(e,i);y.push({id:P.id,params:a})}let w={};t.Range.foreach(g,(e,t)=>{let n=p.getCell(e,t);n&&(w[e]||(w[e]={}),w[e][t]={s:n.s})});let{redo:T,undo:E}=dr(e,{range:g,subUnitId:f,unitId:d,shiftDimension:t.Dimension.ROWS,cellValue:w});v.push(...T),y.push(...E);let D=s.onCommandExecute({id:br.id,params:{range:g}});if(v.push(...D.redos),v.push(Jn(g,h,p)),y.push(...D.preUndos??[]),v.unshift(...D.preRedos??[]),y.unshift(...D.undos),(0,t.sequenceExecute)(v,r).result){let e=s.afterCommandExecute({id:br.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,r),y.push(...e.undos),v.push(...e.redos),i.pushUndoRedo({unitID:d,undoMutations:y.reverse(),redoMutations:v}),!0}return!1}},xr=`sheet.command.insert-range-move-right`,Sr={type:t.CommandType.COMMAND,id:xr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(V),s=e.get(O),c=e.get(t.ErrorService),l=e.get(t.LocaleService);if(tr(o.getCurrentSelections().map(({range:e})=>e)))return c.emit(l.t(`sheets.info.overlappingSelections`)),!1;let u=m(a);if(!u)return!1;let{workbook:d,worksheet:f,unitId:p,subUnitId:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=o.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v=[],y=[],b=f.getCellMatrix(),x=b.getDataRange(),S=b.getSlice(g.startRow,g.endRow,x.startColumn,x.endColumn).getDataRange().endColumn,C=Math.max(S+(g.endColumn-g.startColumn+1)-x.endColumn,0);if(C>0){let n=g.startColumn-1,r=f.getColumnWidth(n),i={unitId:p,subUnitId:h,range:{startRow:x.startRow+1,endRow:x.endRow,startColumn:x.endColumn+1,endColumn:x.endColumn+C},colInfo:Array(C).fill(void 0).map(()=>({w:r,hd:t.BooleanNumber.FALSE}))};v.push({id:N.id,params:i});let a=Te(e,i);y.push({id:F.id,params:a})}let w={};t.Range.foreach(g,(e,t)=>{let n=f.getCell(e,t);!n||!n.s||(w[e]||(w[e]={}),w[e][t]={s:n.s})});let{redo:T,undo:E}=dr(e,{range:g,subUnitId:h,unitId:p,shiftDimension:t.Dimension.COLUMNS,cellValue:w});v.push(...T),y.push(...E);let D=s.onCommandExecute({id:Sr.id,params:{range:g}});if(v.push(...D.redos),v.push(Jn(g,d,f)),y.push(...D.preUndos??[]),v.unshift(...D.preRedos??[]),y.unshift(...D.undos),(0,t.sequenceExecute)(v,r).result){let e=s.afterCommandExecute({id:Sr.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,r),y.push(...e.undos),v.push(...e.redos),i.pushUndoRedo({unitID:p,undoMutations:y.reverse(),redoMutations:v}),!0}return!1}},Cr=`sheet.command.insert-row`,wr={type:t.CommandType.COMMAND,id:Cr,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(O),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:wr.id,params:n})?r.syncExecuteCommand(Tr.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},Tr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:i,worksheet:a,unitId:o,subUnitId:s}=r,{range:c,direction:l,cellValue:u}=n,{startRow:d,endRow:f}=c;c.rangeType=t.RANGE_TYPE.ROW;let p=l===t.Direction.UP?d:d-1;if(p<0||p>a.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let h=e.get(t.ICommandService),g=e.get(t.IUndoRedoService),_=e.get(O),v={unitId:o,subUnitId:s,range:c},y=a.getRowHeight(p);y!==a.getConfig().defaultRowHeight&&(v.rowInfo=Array(f-d+1).fill(void 0).map(()=>({h:y,hd:t.BooleanNumber.FALSE})));let b=we(e,v),x=[{id:M.id,params:v}],S=[{id:P.id,params:b}];u&&Object.keys(u).length>0&&x.push({id:z.id,params:{unitId:o,subUnitId:s,cellValue:u}});let C=_.onCommandExecute({id:wr.id,params:n});if(x.unshift(...C.preRedos??[]),x.push(...C.redos??[]),x.push(Jn(c,i,a)),S.unshift(...C.preUndos??[]),S.push(...C.undos??[]),(0,t.sequenceExecute)(x,h).result){let e=_.afterCommandExecute({id:wr.id,params:n});return(0,t.sequenceExecute)(e.redos,h),x.push(...e.redos),S.push(...e.undos),g.pushUndoRedo({unitID:n.unitId,undoMutations:S,redoMutations:x}),!0}return!1}},Er={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(V).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=m(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,p=s.getColumnCount()-1,h={unitId:l,subUnitId:c,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:p},cellValue:Qn(s,d,f,0,p,!0,d-1)};return e.get(t.ICommandService).executeCommand(wr.id,h)}},Dr={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(V).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=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:t.RANGE_TYPE.ROW},cellValue:Qn(o,u,d,0,f,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(wr.id,p)}},Or={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(V).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=m(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,p=s.getColumnCount()-1,h=Qn(s,d,f,0,p,!0,d-1),g={unitId:c,subUnitId:l,direction:t.Direction.UP,range:{startRow:d,endRow:f,startColumn:0,endColumn:p,rangeType:t.RANGE_TYPE.ROW},cellValue:h};return e.get(t.ICommandService).executeCommand(wr.id,g)}},kr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(V).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=m(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,p=s.getColumnCount()-1,h={unitId:c,subUnitId:l,direction:t.Direction.DOWN,range:{startRow:d,endRow:f,startColumn:0,endColumn:p,rangeType:t.RANGE_TYPE.ROW},cellValue:Qn(s,d,f,0,p,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(wr.id,h)}},Ar=`sheet.command.insert-col`,jr={type:t.CommandType.COMMAND,id:Ar,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(O),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:jr.id,params:n})?r.syncExecuteCommand(Mr.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},Mr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:i,worksheet:a,unitId:o,subUnitId:s}=r,{range:c,direction:l,cellValue:u}=n,{startColumn:d,endColumn:f}=c;c.rangeType=t.RANGE_TYPE.COLUMN;let p=l===t.Direction.LEFT?d:d-1;if(p<0||p>a.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let h=e.get(t.ICommandService),g=e.get(t.IUndoRedoService),_=e.get(O),v={unitId:o,subUnitId:s,range:c},y=a.getColumnWidth(p);y!==a.getConfig().defaultColumnWidth&&(v.colInfo=Array(f-d+1).fill(void 0).map(()=>({w:y,hd:t.BooleanNumber.FALSE})));let b=Te(e,v),x=[{id:N.id,params:v}],S=[{id:F.id,params:b}];u&&Object.keys(u).length>0&&x.push({id:z.id,params:{unitId:o,subUnitId:s,cellValue:u}});let C=_.onCommandExecute({id:jr.id,params:n});if(x.unshift(...C.preRedos??[]),x.push(...C.redos??[]),x.push(Jn(c,i,a)),S.unshift(...C.preUndos??[]),S.push(...C.undos??[]),(0,t.sequenceExecute)(x,h).result){let e=_.afterCommandExecute({id:jr.id,params:n});return(0,t.sequenceExecute)(e.redos,h),x.push(...e.redos),S.push(...e.undos),g.pushUndoRedo({unitID:n.unitId,undoMutations:S.filter(Boolean),redoMutations:x.filter(Boolean)}),!0}return!1}},Nr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Qn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(jr.id,p)}},Pr={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(V).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=m(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:Qn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(jr.id,f)}},Fr={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Qn(o,0,f,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(jr.id,p)}},Ir={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=m(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,p={unitId:s,subUnitId:c,direction:t.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:f},cellValue:Qn(o,0,f,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(jr.id,p)}},Lr=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Jn(e,t,n);r.executeCommand(i.id,i.params)}},300),Rr=`sheet.command.remove-row`,zr={type:t.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,n)=>{if(!n)return!1;let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(O),{range:s,unitId:c,subUnitId:l}=n,u=Dn([s],e,c,l).reverse(),d=[],f=[];u.forEach(e=>{let t=[],n=[],r={unitId:c,subUnitId:l,range:e},i=je(r,a),o=a.getCellMatrix().getSlice(e.startRow,e.endRow,0,a.getColumnCount()-1),s={unitId:c,subUnitId:l,cellValue:o.getMatrix()};n.push({id:P.id,params:r}),t.push({id:M.id,params:i}),t.push({id:z.id,params:s}),f.push(...n),d.unshift(...t)});let p=n,h=o.onCommandExecute({id:Rr,params:p}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...h.preRedos??[],...f,...h.redos],g).result){Lr(s,i,a,g);let n=o.afterCommandExecute({id:Rr,params:p});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...h.preUndos??[],...d,...h.undos,...n.undos],redoMutations:[...h.preRedos??[],...f,...h.redos,...n.redos]}),!0}return!1}},Br={type:t.CommandType.COMMAND,id:Rr,handler:async(e,n)=>{var r;let i=m(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=e.get(V),o=(n==null?void 0:n.range)||((r=a.getCurrentLastSelection())==null?void 0:r.range);if(!o)return!1;let s=e.get(O),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:Br.id,params:{range:o,unitId:u,subUnitId:d}})?c.syncExecuteCommand(zr.id,{range:o,unitId:u,subUnitId:d}):!1}},Vr=`sheet.command.remove-col`,Hr={type:t.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,n)=>{if(!n)return!1;let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(O),{range:s,unitId:c,subUnitId:l}=n,u={unitId:c,subUnitId:l,range:s},d=Me(e,u),f={unitId:c,subUnitId:l,cellValue:a.getCellMatrix().getSlice(0,a.getRowCount()-1,s.startColumn,s.endColumn).getMatrix()},p=n,h=o.onCommandExecute({id:Vr,params:p}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...h.preRedos??[],{id:F.id,params:u},...h.redos],g).result){Lr(s,i,a,g);let n=o.afterCommandExecute({id:Vr,params:p});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...h.preUndos??[],{id:N.id,params:d},{id:z.id,params:f},...h.undos,...n.undos],redoMutations:[...h.preRedos??[],{id:F.id,params:u},...h.redos,...n.redos]}),!0}return!1}},Ur={type:t.CommandType.COMMAND,id:Vr,handler:async(e,n)=>{var r;let i=e.get(V),a=e.get(O),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||=(r=i.getCurrentLastSelection())==null?void 0:r.range,!s)return!1;let c=m(e.get(t.IUniverInstanceService),n);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:Ur.id,params:{range:s,unitId:d,subUnitId:u}})?o.syncExecuteCommand(Hr.id,{range:s,unitId:d,subUnitId:u}):!1}},Wr=(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=h(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}},Gr={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.getUnit(a,t.UniverInstanceType.UNIVER_SHEET);return o?o.removeSheet(i):!1}};function Kr(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function qr(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let Jr=`sheet.command.move-rows`,Yr={id:Jr,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(V),{fromRange:{startRow:i},toRange:{startRow:a},range:o}=n,s=o?[Qr(o)]:r.getCurrentSelections(),c=s==null?void 0:s.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW&&e.range.startRow<=i&&i<=e.range.endRow);if((c==null?void 0:c.length)!==1)return!1;let l=e.get(O),u=m(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{workbook:d,worksheet:f}=u,p=d.getUnitId(),h=f.getSheetId(),g=e.get(t.ErrorService),_=e.get(t.LocaleService),v=c[0].range,y=c[0].primary,b=Gn(v,f,!1);if(!t.Rectangle.equals(v,b))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(Kr(a,f))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let x={...v,startRow:a,endRow:a+v.endRow-v.startRow},S={unitId:p,subUnitId:h,sourceRange:v,targetRange:x},C=De(e,S),w=e.get(t.ICommandService),T=l.onCommandExecute({id:Yr.id,params:n}),E=[...T.preRedos??[],{id:Oe.id,params:S}],D=[...T.preUndos??[],{id:Oe.id,params:C}];if(y){let e=a-i<0,t=v.endRow-v.startRow+1,n=e?x:{...x,startRow:x.startRow-t,endRow:x.endRow-t},r={unitId:p,subUnitId:h,type:2,selections:[{range:n,primary:U(n,f),style:null}]},o={unitId:p,subUnitId:h,type:2,selections:[{range:v,primary:y,style:null}]};E.push({id:W.id,params:r}),D.push({id:W.id,params:o})}if(E.push(...T.redos),D.push(...T.undos),(0,t.sequenceExecute)(E,w).result){let r=l.afterCommandExecute({id:Yr.id,params:n});return(0,t.sequenceExecute)(r.redos,w),E.push(...r.redos),D.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:D,redoMutations:E}),!0}return!1}},Xr=`sheet.command.move-cols`,Zr={id:Xr,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(V),{fromRange:{startColumn:i},toRange:{startColumn:a},range:o}=n,s=o?[Qr(o)]:r.getCurrentSelections(),c=s==null?void 0:s.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN&&e.range.startColumn<=i&&i<=e.range.endColumn);if((c==null?void 0:c.length)!==1)return!1;let l=e.get(O),u=m(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{workbook:d,worksheet:f}=u,p=d.getUnitId(),h=f.getSheetId(),g=e.get(t.ErrorService),_=e.get(t.LocaleService),v=c[0].range,y=c[0].primary,b=Gn(v,f,!1);if(!t.Rectangle.equals(v,b))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(qr(a,f))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let x={...v,startColumn:a,endColumn:a+v.endColumn-v.startColumn},S={unitId:p,subUnitId:h,sourceRange:v,targetRange:x},C=ke(e,S),w=e.get(t.ICommandService),T=l.onCommandExecute({id:Zr.id,params:n}),E=[...T.preRedos??[],{id:Ae.id,params:S}],D=[...T.preUndos??[],{id:Ae.id,params:C}];if(y){let e=v.endColumn-v.startColumn+1,t=a-i<0?x:{...x,startColumn:x.startColumn-e,endColumn:x.endColumn-e},n={unitId:p,subUnitId:h,type:2,selections:[{range:t,primary:U(t,f),style:null}]},r={unitId:p,subUnitId:h,type:2,selections:[{range:v,primary:y,style:null}]};E.push({id:W.id,params:n}),D.push({id:W.id,params:r})}if(E.push(...T.redos),D.push(...T.undos),(0,t.sequenceExecute)(E,w).result){let r=l.afterCommandExecute({id:Zr.id,params:n});return(0,t.sequenceExecute)(r.redos,w),E.push(...r.redos),D.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:D,redoMutations:E}),!0}return!1}};function Qr(e){return{range:e,primary:null,style:null}}let $r=`sheet.command.reorder-range`,ei={id:$r,type:t.CommandType.COMMAND,handler:(e,n)=>{let{subUnitId:r,unitId:i,range:a,order:o}=n,s=e.get(t.ICommandService),c={id:Pe.id,params:{unitId:i,subUnitId:r,order:o,range:a}},l={id:Pe.id,params:Ne(c.params)},u=e.get(O),d=u.onCommandExecute({id:ei.id,params:n}),f=[...d.preRedos??[],c,...d.redos],p=[...d.preUndos??[],l,...d.undos],m=(0,t.sequenceExecute)(f,s),{suitableRanges:h,remainingRanges:g}=Vn([a],e.get(H).getSkeleton(i,r)),{undos:_,redos:v}=u.generateMutationsOfAutoHeight({unitId:i,subUnitId:r,ranges:[a],autoHeightRanges:h,lazyAutoHeightRanges:g}),y=u.afterCommandExecute({id:ei.id,params:n});return m.result?((0,t.sequenceExecute)([...y.redos,...v],s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,undoMutations:[...p,...y.undos,..._],redoMutations:[...f,...y.redos,...v]}),!0):!1}},G={MoveRangeCommandId:ir,InsertRowCommandId:Cr,InsertColCommandId:Ar,RemoveColCommandId:Vr,RemoveRowCommandId:Rr,DeleteRangeMoveLeftCommandId:hr,DeleteRangeMoveUpCommandId:_r,InsertRangeMoveDownCommandId:yr,InsertRangeMoveRightCommandId:xr,MoveColsCommandId:Xr,MoveRowsCommandId:Jr,ReorderRangeCommandId:$r},ti=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}({}),ni=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},K=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}};function ri(e){return ii(e.length>1?t.Rectangle.mergeRanges(e):e)}function ii(e){return e.sort((e,t)=>e.startRow-t.startRow||e.startColumn-t.startColumn||e.endRow-t.endRow||e.endColumn-t.endColumn)}function ai(e,t,n){return{startRow:e.startRow+t,endRow:e.endRow+t,startColumn:e.startColumn+n,endColumn:e.endColumn+n}}function oi(e,t,n,r,i){let a;if(t>r)a=[{start:-1/0,end:r-1,offset:0},{start:r,end:t-1,offset:n},{start:t,end:t+n-1,offset:r-t},{start:t+n,end:1/0,offset:0}];else{if(t+n>r)throw Error(`Invalid move operation`);a=[{start:-1/0,end:t-1,offset:0},{start:t,end:t+n-1,offset:r-t-n},{start:t+n,end:r-1,offset:-n},{start:r,end:1/0,offset:0}]}let o=i?e.startRow:e.startColumn,s=i?e.endRow:e.endColumn;return ri(a.flatMap(({start:t,end:n,offset:r})=>{let a=Math.max(o,t),c=Math.min(s,n);return a>c?[]:[ai(i?{startRow:a,endRow:c,startColumn:e.startColumn,endColumn:e.endColumn}:{startRow:e.startRow,endRow:e.endRow,startColumn:a,endColumn:c},i?r:0,i?0:r)]}))}let si=(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)}},ci=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=ni(n),a=ni(r),o=ni(t),s=si({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}]},li=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startRow,a=n.endRow-n.startRow+1,o=r.startRow;return oi(t,i,a,o,!0)},ui=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[n];let a=[],o=[],s=Math.max(r.startColumn,n.startColumn),c=Math.min(r.endColumn,n.endColumn);return Object.keys(i).forEach(e=>{let t=Number(e);if(t<r.startRow||t>r.endRow)return;a.push({startRow:t,endRow:t,startColumn:r.startColumn,endColumn:r.endColumn});let l=i[t];l>=n.startRow&&l<=n.endRow&&s<=c&&o.push({startRow:t,endRow:t,startColumn:s,endColumn:c})}),ri([...t.Rectangle.subtractMulti([n],a),...o])},di=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=ni(n),a=ni(r),o=ni(t),s=si({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}]},fi=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startColumn,a=n.endColumn-n.startColumn+1,o=r.startColumn;return oi(t,i,a,o,!1)},pi=(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},mi=(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=a.startColumn-o.startColumn,c=a.startRow-o.startRow,l=(0,t.getIntersectRange)(o,n),u=t.Rectangle.subtractMulti([n],[o,a]),d=l?[ai(l,c,s)]:[];return ri([...u,...d])},hi=(e,n)=>{let r=ni(e),i=ni(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=(0,t.getIntersectRange)(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=(0,t.getIntersectRange)(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}},gi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=hi(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},_i=(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=hi(K(e),K(t));if(!n)a.push({type:1});else{let{step:e,length:t}=n;a.push({type:3,step:e,length:t})}}return a},vi=(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[]},yi=(e,t)=>{let n=ni(e),r=ni(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 bi(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 xi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(K(r),K(t));return i.push({type:3,step:a,length:o}),i},Si=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(r,t);return i.push({type:2,step:a,length:o}),i},Ci=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(K(r),K(t));return i.push({type:3,step:a,length:o}),i},wi=(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=(0,t.getIntersectRange)(o,n);return c?ii([...s,ai(c,a,0)]):[n]},Ti=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=yi(r,t);return i.push({type:2,step:a,length:o}),i},Ei=(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=(0,t.getIntersectRange)(o,n);return c?ii([...s,ai(c,0,a)]):[n]},Di=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=hi(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},Oi=(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.subtract(n,a),c=(0,t.getIntersectRange)(a,n);if(!c)return[n];let l=c?t.Rectangle.subtract(c,i).map(e=>ai(e,0,-o)):[];return ri([...s,...l])},ki=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=hi(K(r),K(t));if(!a)i.push({type:1});else{let{step:e,length:t}=a;i.push({type:3,step:e,length:t})}return i},Ai=(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.subtract(n,a),c=(0,t.getIntersectRange)(a,n);if(!c)return[n];let l=c?t.Rectangle.subtract(c,i).map(e=>ai(e,-o,0)):[];return ri([...s,...l])},ji=(e,n)=>{let r=(0,t.mergeIntervals)((e.ranges??[e.range]).map(e=>[e.startRow,e.endRow])),i=n.startRow,a=n.endRow;for(let e=r.length-1;e>=0;e--){let[t,o]=r[e];if(t<=n.startRow&&o>=n.endRow)return[];if(o<i){let e=o-t+1;i-=e,a-=e}else if(!(t>a)){let e=Math.max(t,i),n=Math.min(o,a)-e+1;if(a-=n,t<=i){let t=e-i;i-=t}}}return[{...n,startRow:i,endRow:a}]},Mi=(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]},Ni=(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]},Pi=(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},Fi=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:n=Di(t,e);break;case G.DeleteRangeMoveUpCommandId:n=ki(t,e);break;case G.InsertColCommandId:n=Si(t,e);break;case G.InsertRangeMoveDownCommandId:n=Ci(t,e);break;case G.InsertRangeMoveRightCommandId:n=Ti(t,e);break;case G.InsertRowCommandId:n=xi(t,e);break;case G.MoveColsCommandId:n=di(t,e);break;case G.MoveRangeCommandId:n=pi(t,e);break;case G.MoveRowsCommandId:n=ci(t,e);break;case G.RemoveColCommandId:n=gi(t,e);break;case G.RemoveRowCommandId:n=_i(t,e);break;case G.ReorderRangeCommandId:n=vi(t,e);break}return Pi(n,e)},Ii=(e,n,r)=>[gr.id,vr.id].includes(n.id)||Bi(n,r).some(n=>t.Rectangle.intersects(n,e))?Fi(e,n):e,Li=(e,t)=>{let n=[];switch(t.id){case G.DeleteRangeMoveLeftCommandId:return Oi(t,e);case G.DeleteRangeMoveUpCommandId:return Ai(t,e);case G.InsertRangeMoveDownCommandId:return wi(t,e);case G.InsertRangeMoveRightCommandId:return Ei(t,e);case G.InsertColCommandId:return Ni(t,e);case G.InsertRowCommandId:return Mi(t,e);case G.MoveColsCommandId:return fi(t,e);case G.MoveRangeCommandId:return mi(t,e);case G.MoveRowsCommandId:return li(t,e);case G.ReorderRangeCommandId:return ui(t,e);case G.RemoveColCommandId:n=gi(t,e);break;case G.RemoveRowCommandId:return ji(t.params,e)}let r=Pi(n,e);return r?[r]:[]},Ri=(e,n,r)=>[gr.id,vr.id,br.id,`sheet.command.insert-range-move-right`].includes(n.id)||Bi(n,r).some(n=>t.Rectangle.intersects(n,e))?Li(e,n):e;function zi(e,n){let{id:r,params:i}=n,a={length:0,step:0,type:4};switch(r){case Gr.id:a.type=1;break;case Oe.id:a=si({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 Ae.id:a=si({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 F.id:a=hi(i.range,e),a?a.type=2:a={step:0,length:0,type:1};break;case P.id:a=hi(K(i.range),K(e)),a?a.type=3:a={step:0,length:0,type:1};break;case M.id:a=yi(K(i.range),K(e)),a.type=3;break;case N.id:a=yi(i.range,e),a.type=2;break;case Ee.id:a=bi(i.fromRange||new t.ObjectMatrix(i.from).getRange(),i.toRange||new t.ObjectMatrix(i.to).getRange(),e);break;default:break}return a?Pi(Array.isArray(a)?a:[a],e):e}function Bi(e,t){let{selectionManagerService:n}=t;switch(e.id){case G.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case G.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case G.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case G.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case G.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case G.RemoveRowCommandId:return[e.params.range];case G.RemoveColCommandId:return[e.params.range];case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{var r,i;let t=((r=e.params)==null?void 0:r.range)||((i=n.getCurrentSelections())==null||(i=i.map(e=>e.range))==null?void 0:i[0]);return t?[t]:[]}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{var a,o;let t=((a=e.params)==null?void 0:a.range)||((o=n.getCurrentSelections())==null||(o=o.map(e=>e.range))==null?void 0:o[0]);return t?[t]:[]}case G.ReorderRangeCommandId:{let{range:t,order:n}=e.params,r=[];for(let e=t.startRow;e<=t.endRow;e++)e in n&&r.push({startRow:e,endRow:e,startColumn:t.startColumn,endColumn:t.endColumn});return r}}}function Vi(e){switch(e.id){case Ae.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case Oe.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Ee.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case N.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case M.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case F.id:return[e.params.range];case P.id:return[e.params.range];default:break}}function Hi(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case G.MoveColsCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startColumn:o.startColumn<s.startColumn?o.endColumn+1:s.startColumn,endColumn:o.startColumn<s.startColumn?s.endColumn-1:o.startColumn-1}]}}case G.MoveRowsCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,{...s,startRow:o.startRow<s.startRow?o.endRow+1:s.startRow,endRow:o.startRow<s.startRow?s.endRow-1:o.startRow-1}]}}case G.MoveRangeCommandId:{let e=n.params,t=m(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case G.InsertRowCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startRow>0?[{...s,startRow:s.startRow-1,endRow:s.endRow-1}]:[],{...s,startRow:s.startRow,endRow:i.getRowCount()-1}]}}case G.InsertColCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[...s.startColumn>0?[{...s,startColumn:s.startColumn-1,endColumn:s.endColumn-1}]:[],{...s,startColumn:s.startColumn,endColumn:i.getColumnCount()-1}]}}case G.RemoveRowCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.RemoveColCommandId:{let e=n.params,t=m(r,e);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let e=n.params,t=m(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let e=n.params,t=m(r);if(!t)return;let{worksheet:i,unitId:a,subUnitId:o}=t,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case G.ReorderRangeCommandId:{let e=n.params,t=m(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 Ui=(0,t.createInterceptorKey)(`MERGE_REDO`),Wi=(0,t.createInterceptorKey)(`MERGE_UNDO`);var Gi=class extends t.Disposable{constructor(e,t,n,r,i,a=!1){super(),this.revision=e,this._unitId=t,this._subUnitId=n,this._range=r,this._callback=i,this._skipIntersects=a}onMutation(e){var n,r;if(((n=e.params)==null?void 0:n.unitId)!==this._unitId)return;if(e.id===Ee.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===Gr.id)return;let n=Vi(e);if(n!=null&&n.some(e=>t.Rectangle.intersects(e,this._range)))return}let i=zi(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 Ki=class extends t.Disposable{constructor(e,n,r,i){super(),this._commandService=e,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,T(this,`interceptor`,new t.InterceptorManager({MERGE_REDO:Ui,MERGE_UNDO:Wi})),T(this,`_watchRanges`,new Set),T(this,`_watchRangesListener`,null),T(this,`_watchRangeRevision`,0),T(this,`_refRangeManagerMap`,new Map),T(this,`_serializer`,Xi()),T(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let n=(()=>{switch(e.id){case G.MoveColsCommandId:{let t=e.params,n=m(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startColumn,t.toRange.startColumn);return this._checkRange([{...t.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case G.MoveRowsCommandId:{let t=e.params,n=m(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startRow,t.toRange.startRow);return this._checkRange([{...t.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case G.MoveRangeCommandId:{let t=e.params,n=m(this._univerInstanceService,{unitId:t.fromUnitId,subUnitId:t.fromSubUnitId}),r=m(this._univerInstanceService,{unitId:t.toUnitId??t.fromUnitId,subUnitId:t.toSubUnitId??t.fromSubUnitId});if(!n&&!r)return[];if(n&&r&&n.unitId===r.unitId&&n.subUnitId===r.subUnitId)return this._checkRange([t.fromRange,t.toRange],n.unitId,n.subUnitId);let i=[];return n&&i.push(...this._checkRange([t.fromRange],n.unitId,n.subUnitId)),r&&i.push(...this._checkRange([t.toRange],r.unitId,r.subUnitId)),i}case G.InsertRowCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:Math.max(0,n.range.startRow-1),endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.InsertColCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:Math.max(0,n.range.startColumn-1),endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.RemoveRowCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:n.range.startRow,endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case G.RemoveColCommandId:{let n=e.params,r=m(this._univerInstanceService,n);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:n.range.startColumn,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case G.DeleteRangeMoveUpCommandId:case G.InsertRangeMoveDownCommandId:{let t=e.params,n=m(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case G.DeleteRangeMoveLeftCommandId:case G.InsertRangeMoveRightCommandId:{let t=e.params,n=m(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case G.ReorderRangeCommandId:{let t=e.params,n=m(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)=>(e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...t.preRedos??[]),e.preUndos.push(...t.preUndos??[]),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}}})}),T(this,`_checkRange`,(e,n,r)=>{let i=Yi(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[]}),T(this,`registerRefRange`,(e,n,r,i)=>{let a=r||qi(this._univerInstanceService),o=i||Ji(this._univerInstanceService);if(!a||!o)return(0,t.toDisposable)(()=>{});let s=Yi(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){this._watchRangesListener||=this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.type!==t.CommandType.MUTATION)return!1;let n=this._watchRangeRevision;for(let t of this._watchRanges)t.revision>n||t.onMutation(e)}));let o=new Gi(++this._watchRangeRevision,e,n,r,i,a);this._watchRanges.add(o);let s=(0,t.toDisposable)(()=>{if(this._watchRanges.delete(o),this._watchRanges.size===0){var e;(e=this._watchRangesListener)==null||e.dispose(),this._watchRangesListener=null}}),c=this.disposeWithMe(s);return(0,t.toDisposable)(()=>{c.dispose(),s.dispose()})}};Ki=D([E(0,t.ICommandService),E(1,(0,t.Inject)(O)),E(2,(0,t.Inject)(t.IUniverInstanceService)),E(3,(0,t.Inject)(V))],Ki);function qi(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function Ji(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function Yi(e,t){return`${e}_${t}`}function Xi(){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 Zi=[N.id,M.id,F.id,P.id],Qi=[Oe.id,Ae.id];function $i(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 ea=(0,t.createInterceptorKey)(`mergeCellPermissionCheck`),ta=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,T(this,`disposableCollection`,new t.DisposableCollection),T(this,`interceptor`,new t.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:ea})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case Un.id:case Wn.id:{var r;let n=e._univerInstanceService.getCurrentUnitOfType(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=I(e._injector,t);return{redos:[{id:L.id,params:t}],undos:[{id:_.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=m(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:L.id,params:{unitId:e,subUnitId:n,ranges:l}}),a.push({id:_.id,params:{unitId:e,subUnitId:n,ranges:l}}),{undos:a,redos:i}):o}})}refRangeHandle(e,t,n){switch(e.id){case G.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case G.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case wr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case jr.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Ur.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case Br.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case ar.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case Sr.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case br.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case vr.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case gr.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return;let i=r==null?void 0:r.getSheetBySheetId(n);if(!i)return;this.disposableCollection.dispose();let a=i.getMergeData(),o=t=>this.refRangeHandle(t,e,n);a.forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,o,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===zt.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===_.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=na(this._univerInstanceService,t);if(!r)return this._handleNull();let i=ra(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=Pi(ci({id:G.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=g(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:_.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:_.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=na(this._univerInstanceService,t);if(!r)return this._handleNull();let i=ra(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=Pi(di({id:G.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=g(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:_.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:_.id,params:d}]}}_handleMoveRangeCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=e.fromSubUnitId??r,o=e.toSubUnitId??a,s=ra(i,a),c=ra(i,o);if(!s||!c)return this._handleNull();let l=s.getMergeData().filter(n=>t.Rectangle.intersects(n,e.fromRange)),u=c.getMergeData().filter(n=>t.Rectangle.intersects(n,e.toRange)),d=$i(l.map(n=>t.Rectangle.getRelativeRange(n,e.fromRange)).map(n=>t.Rectangle.getPositionRange(n,e.toRange))).filter(e=>!c.getMergeData().some(n=>t.Rectangle.equals(e,n))),f=[],p=[];return r===a&&l.length>0&&(f.push({id:L.id,params:{unitId:n,subUnitId:a,ranges:l}}),p.push({id:_.id,params:{unitId:n,subUnitId:a,ranges:l}})),r===o&&u.length>0&&(f.push({id:L.id,params:{unitId:n,subUnitId:o,ranges:u}}),p.push({id:_.id,params:{unitId:n,subUnitId:o,ranges:u}})),r===o&&d.length>0&&(f.push({id:_.id,params:{unitId:n,subUnitId:o,ranges:d}}),p.unshift({id:L.id,params:{unitId:n,subUnitId:o,ranges:d}})),f.length===0?this._handleNull():{redos:f,undos:p}}_handleInsertRowCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{redos:[{id:L.id,params:d},{id:_.id,params:p}],undos:[{id:L.id,params:m},{id:_.id,params:f}]}}_handleInsertColCommand(e,n,r){let{range:i}=e,a=na(this._univerInstanceService,n);if(!a)return this._handleNull();let o=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{redos:[{id:L.id,params:d},{id:_.id,params:p}],undos:[{id:L.id,params:m},{id:_.id,params:f}]}}_handleRemoveColCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}];return{preUndos:[{id:L.id,params:m}],undos:[{id:_.id,params:f}],preRedos:h,redos:v}}_handleRemoveRowCommand(e,n,r){let{range:i}=e,a=na(this._univerInstanceService,n);if(!a)return this._handleNull();let o=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}];return{preUndos:[{id:L.id,params:m}],undos:[{id:_.id,params:f}],preRedos:h,redos:v}}_handleInsertRangeMoveRightCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:_.id,params:p}],preUndos:[{id:L.id,params:m}],undos:[{id:_.id,params:f}]}}_handleInsertRangeMoveDownCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}],y=[{id:L.id,params:m}];return{redos:v,undos:[{id:_.id,params:f}],preRedos:h,preUndos:y}}_handleDeleteRangeMoveUpCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p),h=[{id:L.id,params:d}],v=[{id:_.id,params:p}],y=[{id:L.id,params:m}];return{redos:v,undos:[{id:_.id,params:f}],preRedos:h,preUndos:y}}_handleDeleteRangeMoveLeftCommand(e,n,r){let i=na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=ra(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=I(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},m=g(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:_.id,params:p}],undos:[{id:_.id,params:f}],preUndos:[{id:L.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(Qi.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getUnit(e.params.unitId,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,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(Zi.includes(e.id)){let n=this._univerInstanceService.getUnit(e.params.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let i=r.getConfig().mergeData,a=e.params;if(!a)return;let{range:o}=a,s=e.id.includes(`row`),c=e.id.includes(`insert`),l=s?o.startRow:o.startColumn,u=s?o.endRow:o.endColumn,d=u-l+1,f=[];i.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;c?s?l<=t&&(t+=d,n+=d):l<=r&&(r+=d,i+=d):s?u<t&&(t-=d,n-=d):u<r&&(r-=d,i-=d),(e.startRow!==e.endRow||e.startColumn!==e.endColumn)&&f.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),r.setMergeData(f),this.disposableCollection.dispose();let{unitId:p,subUnitId:m}=e.params,h=e=>this.refRangeHandle(e,p,m);f.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,h,p,m))})}}))}};ta=D([E(0,(0,t.Inject)(t.ICommandService)),E(1,(0,t.Inject)(Ki)),E(2,(0,t.Inject)(t.IUniverInstanceService)),E(3,(0,t.Inject)(t.Injector)),E(4,(0,t.Inject)(O)),E(5,(0,t.Inject)(V))],ta);function na(e,n){return n?e.getUnit(n,t.UniverInstanceType.UNIVER_SHEET):e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET)}function ra(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}let ia=(e,n,r)=>{let i=e.get(V).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:W.id,params:h}}return null}return null},aa=(e,t)=>{let n=e.get(V).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:W.id,params:e}}return null},oa={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,n)=>{var r;let i=e.get(V),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=m(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{subUnitId:l,unitId:u,worksheet:d}=c,f={unitId:u,subUnitId:l,ranges:s},p=d.getConfig().mergeData.filter(e=>s.some(n=>t.Rectangle.intersects(n,e)));if(!p.length)return!1;let h=I(e,f),g=i.getCurrentSelections(),v=t.Tools.deepClone(g),y=t.Tools.deepClone(g);if(g.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:sa(d,p).getMatrix()},x=R(e,b),S=[{id:L.id,params:h},{id:z.id,params:b},{id:W.id,params:{unitId:u,subUnitId:l,selections:y,type:3}}],C=[{id:_.id,params:h},{id:z.id,params:x},{id:W.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 sa(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 ca(e,t){return t.some(t=>la(e,t))}function la(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 ua(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s=da(n,r),c={unitId:t,subUnitId:o,cellValue:s.clone()},l=R(e,c);i.push({id:z.id,params:l}),a.push({id:z.id,params:c})}),{undos:i,redos:a}}function da(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;!l&&e.cellHasValue(a)&&(a.v!==``||(((o=a.p)==null||(o=o.body)==null||(o=o.dataStream)==null?void 0:o.length)??0)>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 fa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,n)=>{let r=m(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=$i(s,n.value),d=ca(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:`sheets.merge.confirm.warning`},children:{title:`sheets.merge.confirm.title`},cancelText:r.t(`sheets.merge.confirm.cancel`),confirmText:r.t(`sheets.merge.confirm.confirm`)}))return!1}let f=[],p=[],h={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},y=I(e,h),b=g(e,v);if(y.ranges.length>0&&f.push({id:L.id,params:y}),f.push({id:_.id,params:v}),p.push({id:L.id,params:b}),y.ranges.length>0&&p.push({id:_.id,params:y}),d){let t=ua(e,a,i,u);f.unshift(...t.redos),p.push(...t.undos)}let x=ia(e,n,u);x&&f.push(x);let S=aa(e,n);S&&p.push(S);let C=e.get(O).onCommandExecute({id:fa.id,params:{unitId:a,subUnitId:o,ranges:u}});return f.push(...C.redos),p.push(...C.undos),(0,t.sequenceExecute)(f,c).result?(l.pushUndoRedo({unitID:a,undoMutations:p,redoMutations:f}),!0):!1}},pa={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var n;let r=_a(`mergeAll`,(n=e.get(V).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=m(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(fa.id,{selections:r,unitId:o,subUnitId:s})}},ma={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=_a(`mergeVertical`,(n=e.get(V).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=m(e.get(t.IUniverInstanceService));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(t.ICommandService).executeCommand(fa.id,{value:t.Dimension.COLUMNS,selections:r,unitId:o,subUnitId:s})}},ha={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=_a(`mergeHorizontal`,(n=e.get(V).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(r!=null&&r.length))return!1;let i=m(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(fa.id,{value:t.Dimension.ROWS,selections:r,unitId:s,subUnitId:c})}};function ga(e,n,r,i,a={}){let o=m(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(oa.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(fa.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function _a(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 va=class{constructor(){T(this,`_model`,new Map),T(this,`_ruleChange`,new n.Subject),T(this,`_ruleRefresh`,new n.Subject),T(this,`_resetOrder`,new n.Subject),T(this,`ruleChange$`,this._ruleChange.asObservable()),T(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),T(this,`resetOrder$`,this._resetOrder.asObservable()),T(this,`_worksheetRuleInitStateChange`,new n.BehaviorSubject(!1)),T(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 ya={id:`sheet.mutation.add-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(va),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},ba={id:`sheet.mutation.delete-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(va),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},xa={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(ya.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:ya.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:ba.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},Sa={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=xe(e,n);return r.syncExecuteCommand(be.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Se.id,params:o}],redoMutations:[{id:be.id,params:n}]}),!0):!1}},Ca={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=R(e,f),m=[{id:z.id,params:f}],h=[{id:z.id,params:p}];if(c){let t={unitId:a,subUnitId:o,range:{startRow:u,endRow:u,startColumn:0,endColumn:d-1}},n=we(e,t);m.unshift({id:M.id,params:t}),h.push({id:P.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=Te(e,t);m.unshift({id:N.id,params:t}),h.push({id:F.id,params:n})}return(0,t.sequenceExecute)(m,r).result?(i.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},wa=[`ff`,`fs`,`stf`,`tr`,`tb`],q={type:t.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(e,n)=>{var r;let i=m(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(V),p=c?[c]:(r=f.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(p!=null&&p.length))return!1;let h=new t.ObjectMatrix,g=Xn(s);if(t.Tools.isArray(l.value))for(let e=0;e<p.length;e++)g.forOperableEach(p[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<p.length;e++){let t={s:{[l.type]:l.value}};g.forOperableEach(p[e],(e,n)=>h.setValue(e,n,t))}let _={subUnitId:o,unitId:a,cellValue:h.getMatrix()},v=e.get(H).getSkeleton(a,o),y=R(e,_),b=null;if(wa.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=Vn(p,v);b={suitableRanges:e,remainingRanges:t,cellHeights:Bn(e,s)}}let x=u.syncExecuteCommand(z.id,_),S=e.get(O),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:z.id,params:y},...T,...C],redoMutations:[{id:z.id,params:_},...E,...w]}),!0):!1}},Ta={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Ea={type:t.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Da={type:t.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Oa={type:t.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},ka={type:t.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let n=e.get(V).getCurrentLastSelection();if(!n)return!1;let r=m(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)}},Aa={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)}},ja={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)}},Ma={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)}},Na={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}}})},Pa={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)}},Fa={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}}})},Ia={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)}},La={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)}},Ra={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)}},za={type:t.CommandType.COMMAND,id:`sheet.command.set-shrink-to-fit`,handler:(e,n)=>{let r=n==null?void 0:n.value;if(r===void 0){var i;let n=e.get(V).getCurrentLastSelection(),a=m(e.get(t.IUniverInstanceService));if(!(n!=null&&n.primary)||!a)return!1;let{actualRow:o,actualColumn:s}=n.primary;r=((i=a.worksheet.getComposedCellStyle(o,s))==null?void 0:i.stf)===t.BooleanNumber.TRUE?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}return e.get(t.ICommandService).syncExecuteCommand(q.id,{unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId,range:n==null?void 0:n.range,style:{type:`stf`,value:r}})}},Ba={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)}},Va={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Ha=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Ua=[``,`万`,`亿`,`万亿`,`亿亿`],Wa=[``,`十`,`百`,`千`],Ga={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function Ka(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=Va[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=Ga[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 qa(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Ha[a]+n):(i=!1,t=Ha[a],t+=Wa[r],n=t+n),r++,e=Math.floor(e/10)}return n}function Ja(e){let t=0,n=``,r=``,i=!1;if(e===0)return Ha[0];for(;e>0;){let a=e%1e4;i&&(r=Ha[0]+r),n=qa(a),n+=a===0?Ua[0]:Ua[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Ya(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Va;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Va||n[e]in Ga)){t=!1;break}}return t}function Xa(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 Za(e){let t;return t=e.length===1?e===`日`||Ka(e)<7:!1,t}function Qa(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function $a(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function eo(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function to(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 no(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 ro(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);bo(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function io(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 ao(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 oo(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function so(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&&ao(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%e.length,a=t.Tools.deepClone(e[n]);bo(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&&(yo(a)&&(a.v=o),i.push(a))}else{let o=oo(e.length);for(let s=1;s<=n;s++){let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);bo(c);let l=r===t.Direction.DOWN||r===t.Direction.RIGHT,u=co(e.length+s,a,o,l);c&&(yo(c)&&(c.v=u),i.push(c))}}return i}function co(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 lo(e,n,r){let i=[],a=e[e.length-1],o=Xa(`${a==null?void 0:a.v}`);if(!o.isExtendNumber)return ro(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(bo(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 uo(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);bo(a),a&&(delete a.v,r.push(a))}return r}function fo(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]);bo(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=Ka(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 po(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]);bo(s);let c=Ka(`${(a=e[e.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:Ja(c),s&&(s.v=l,i.push(s))}return i}let mo={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 ho(e){let t=!1;return Object.keys(mo).forEach(n=>{mo[n].includes(e)&&(t=!0)}),t}function go(e){let t=``,n=[];return Object.keys(mo).forEach(r=>{mo[r].includes(e)&&(t=r,n.push(...mo[r]))}),{name:t,series:n}}function _o(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]);bo(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 vo(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 yo(e){return!((0,t.isFormulaString)(e.f)||(0,t.isFormulaId)(e.si)||e.t===t.CellValueType.BOOLEAN)}function bo(e){e&&`custom`in e&&delete e.custom}function xo(e,t){return t?e.reverse():e}function So(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 Co={chnNumChar:Va,chnNumChar2:Ha,chnUnitSection:Ua,chnUnitChar:Wa,chnNameValue:Ga,chineseToNumber:Ka,sectionToChinese:qa,numberToChinese:Ja,isChnNumber:Ya,matchExtendNumber:Xa,isChnWeek1:Za,isChnWeek2:Qa,isChnWeek3:$a,getLenS:eo,isEqualDiff:to,getDataIndex:no,fillCopy:ro,fillCopyStyles:io,isEqualRatio:ao,getXArr:oo,fillSeries:so,forecast:co,fillExtendNumber:lo,fillOnlyFormat:uo,fillChnWeek:fo,fillChnNumber:po,isLoopSeries:ho,getLoopSeriesInfo:go,fillLoopSeries:_o,getAutoFillRepeatRange:vo,needsUpdateCellValue:yo,removeCellCustom:bo,reverseIfNeed:xo,generateNullCellValueRowCol:So},wo=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),To=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}({}),Eo=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:Do,fillChnNumber:Oo,fillChnWeek:ko,fillCopy:Ao,fillExtendNumber:jo,fillLoopSeries:Mo,fillSeries:No,getLoopSeriesInfo:Po,isChnNumber:Fo,isChnWeek2:Io,isChnWeek3:Lo,isEqualDiff:Ro,isLoopSeries:zo,matchExtendNumber:Bo,reverseIfNeed:Vo}=Co,Ho={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(),No(i,n,r).reverse()):No(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(),No(i,n,r).reverse()):No(i,n,r)}}},extendNumberRule:{type:`extendNumber`,priority:900,match:e=>Bo(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===`extendNumber`){var n;let r=Bo(`${(n=e.cellData)==null?void 0:n.v}`||``),i=Bo(`${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,Vo(jo(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`,n=Bo(t);n.isExtendNumber&&s.push(n.matchNumber)}if(a&&(i.reverse(),s.reverse()),Ro(s)){let e=i.length;return o=s[e-1]-s[e-2],Vo(jo(i,n,o),a)}return Ao(i,n)}}},chnNumberRule:{type:`chnNumber`,priority:830,match:e=>!!Fo(`${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===`日`||Do(e)<7)?Vo(ko(i,n,t),a):Vo(Oo(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&&Do(t)>0&&Do(t)<7?l.push(Do(t)+u*7):l.push(Do(t))}if(a&&(i.reverse(),l.reverse()),Ro(l)){if(s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0){let e=i.length,t=l[e-1]-l[e-2];return Vo(ko(i,n,t),a)}let e=l[1]-l[0];return Vo(Oo(i,n,e),a)}return Ao(i,n)}}},chnWeek2Rule:{type:`chnWeek2`,priority:820,match:e=>!!Io(`${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,Vo(ko(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(Do(n)+s*7)}if(a&&(i.reverse(),o.reverse()),Ro(o)){let e=i.length,t=o[e-1]-o[e-2];return Vo(ko(i,n,t,1),a)}return Ao(i,n)}}},chnWeek3Rule:{type:`chnWeek3`,priority:810,match:e=>Lo(`${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,Vo(ko(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(Do(n)+s*7)}}if(a&&(i.reverse(),o.reverse()),Ro(o)){let e=i.length,t=o[e-1]-o[e-2];return Vo(ko(i,n,t,2),a)}return Ao(i,n)}}},loopSeriesRule:{type:`loopSeries`,priority:800,match:e=>zo(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===`loopSeries`){var n;return Po(`${(n=e.cellData)==null?void 0:n.v}`||``).name===Po(`${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}=Po(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,Vo(Mo(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()),Ro(c)){let e=a.length,t=c[e-1]-c[e-2];return Vo(Mo(a,n,t,s),o)}return Ao(a,n)}}},otherRule:{type:`other`,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===`other`}},{chnNumberRule:Uo,chnWeek2Rule:Wo,chnWeek3Rule:Go,dateRule:Ko,extendNumberRule:qo,loopSeriesRule:Jo,numberRule:Yo,otherRule:Xo}=Ho,Zo=class extends t.Disposable{constructor(e,r,i,a){super(),this._commandService=e,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,T(this,`_rules`,[]),T(this,`_hooks`,[]),T(this,`_applyType$`,new n.BehaviorSubject(`SERIES`)),T(this,`_isFillingStyle`,!0),T(this,`_prevUndos`,[]),T(this,`_autoFillLocation$`,new n.BehaviorSubject(null)),T(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),T(this,`_showMenu$`,new n.BehaviorSubject(!1)),T(this,`showMenu$`,this._showMenu$.asObservable()),T(this,`_direction`,t.Direction.DOWN),T(this,`applyType$`,this._applyType$.asObservable()),T(this,`_menu$`,new n.BehaviorSubject([{label:`sheets.autoFill.copy`,value:`COPY`,disable:!1},{label:`sheets.autoFill.series`,value:`SERIES`,disable:!1},{label:`sheets.autoFill.formatOnly`,value:`ONLY_FORMAT`,disable:!1},{label:`sheets.autoFill.noFormat`,value:`NO_FORMAT`,disable:!1}])),T(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Ko,Yo,qo,Uo,Wo,Go,Jo,Xo].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(is.id,{unitId:e,subUnitId:n,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(is.id,{unitId:e,subUnitId:n,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(t=>En(r,t,e,n)),u=this._injector.invoke(t=>En(s,t,e,n));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(Tn(o),Tn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(W.id,{selections:[{primary:U({startRow:o.rows[0],endRow:o.rows[o.rows.length-1],startColumn:o.cols[0],endColumn:o.cols[o.cols.length-1]},d),range:{...p,rangeType:t.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e))||{};r&&h.push(...r),i&&g.push(...i)});let _=g.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:v,undos:y}=this._getAutoHeightUndoRedos(g,u,d);return g.push(...v),h.push(...y),_&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:g})),m.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,n,r){if(this.applyType===`NO_FORMAT`)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(e.forEach(e=>{if(e.id===z.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&&wa.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=Pt(s,r),l={id:Lt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Lt.id,params:c}]}:{undos:[],redos:[]}}};Zo=D([E(0,t.ICommandService),E(1,t.IUndoRedoService),E(2,(0,t.Inject)(t.IUniverInstanceService)),E(3,(0,t.Inject)(t.Injector))],Zo);let Qo=(0,t.createIdentifier)(`univer.auto-fill-service`),$o={type:t.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,n)=>{let r=m(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(Qo).triggerAutoFill(i,a,o,s,c)}};function es(e,n){let r=e.get(V).getCurrentLastSelection();if(!r)return null;let i=m(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 ts(e,n){let r=es(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand($o.id,r);return i&&e.get(Qo).setShowMenu(!1),i}let ns={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>ts(e,`down`)},rs={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>ts(e,`right`)},is={id:`sheet.command.auto-clear-content`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=m(e.get(t.IUniverInstanceService),n);if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(O),s=e.get(V),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:f,startRow:p}=d,h={subUnitId:l,unitId:c,cellValue:Cn([u])},g=R(e,h),_=[{id:z.id,params:h},{id:W.id,params:{selections:[{primary:{startColumn:f,startRow:p,endColumn:f,endRow:p,actualRow:p,actualColumn:f,isMerged:!1,isMergedMainCell:!1},range:{...d}}],unitId:c,subUnitId:l}}],v=[{id:z.id,params:g},{id:W.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i).result){let e=o.afterCommandExecute({id:z.id,params:h});return(0,t.sequenceExecute)(e.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...e.undos],redoMutations:[..._,...e.redos]}),!0}return!1}},as={id:`sheet.command.clear-selection-content`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(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(V),{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(H).getSkeleton(o,s);if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(O),p=[],h=[],g={subUnitId:s,unitId:o,cellValue:Cn(Dn(c,e,o,s))},_=R(e,g);p.push({id:z.id,params:g}),h.push({id:z.id,params:_});let v=f.onCommandExecute({id:as.id,params:n});p.push(...v.redos),h.unshift(...v.undos);let y=(0,t.sequenceExecute)(p,u),{suitableRanges:b,remainingRanges:x}=Vn(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?(p.push(...C),h.push(...S),d.pushUndoRedo({unitID:o,undoMutations:h,redoMutations:p}),!0):!1}},os=`sheets.config`,ss={largeSheetCellCountThreshold:6e3,batchSize:3e3},cs={},ls=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,T(this,`_tasks`,new Map),T(this,`_idleCallbackId`,null),T(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)}};ls=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService)],ls);let us={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},ds=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),fs={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.getUnit(o,t.UniverInstanceType.UNIVER_SHEET);return c?(s&&c.addStyles(s),c.addWorksheet(i.id,a,(0,t.cloneWorksheetData)(i))):!1}};function ps(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 ms(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:z.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}let hs=`sheet.command.copy-sheet`;function gs(e,n,r,i,a,o,s){let c=e.get(t.IConfigService).getConfig(os),l={...ss,...c==null?void 0:c.largeSheetOperation},u=(0,t.cloneWorksheetData)(r.getConfig());u.name=vs(n,o,u.name);let d=(0,t.generateRandomId)();u.id=d;let f=n.getSheetIndex(r),{cellData:p}=u,m=ps(p)>=l.largeSheetCellCountThreshold,h,g=[];if(m){let{firstChunkCellData:e,remainingMutations:t}=ms(i,d,p,l.batchSize),n={...u,cellData:e};h={index:f+1,sheet:n,unitId:i},g=t}else h={index:f+1,sheet:u,unitId:i};let _=ds(e,h),v=new Map,y=s.onCommandExecute({id:hs,params:{unitId:i,subUnitId:a,targetSubUnitId:u.id,copyContext:v}});return{redos:[...y.preRedos??[],{id:fs.id,params:h},...y.redos],undos:[...y.preUndos??[],{id:Gr.id,params:_},...y.undos],unitId:i,newSheetId:d,isSplit:m,scheduledMutations:g}}let _s={type:t.CommandType.COMMAND,id:hs,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(O),s=e.get(t.LocaleService),c=e.get(ls),l=m(a,n);if(!l)return!1;let{workbook:u,worksheet:d,unitId:f,subUnitId:p}=l,{redos:h,undos:g,newSheetId:_,isSplit:v,scheduledMutations:y}=gs(e,u,d,f,p,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(us.id,{unitId:f,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(f,_,y)}}else i.pushUndoRedo({unitID:f,undoMutations:g,redoMutations:h});return!0}return!1}};function vs(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 ys={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(Nn.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:Nn.id,params:c}],undoMutations:[{id:Fn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},bs={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(ba.id,{unitId:o,subUnitId:s});let c=[{id:ba.id,params:{unitId:o,subUnitId:s}}],l=[{id:ya.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},xs={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=Ce(e,n);return r.syncExecuteCommand(Se.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:be.id,params:o}],redoMutations:[{id:Se.id,params:n}]}),!0):!1}},Ss={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}},Cs={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=p(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,f=d==null?void 0:d.id,m=d==null?void 0:d.name,h=(0,t.mergeWorksheetSnapshotWithDefault)(d||{});n?(u=n.index??u,h.id=f||(0,t.generateRandomId)(),h.name=m?l.uniqueSheetName(m):l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)):(h.id=(0,t.generateRandomId)(),h.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`));let g={index:u,sheet:h,unitId:c},_=ds(e,g);return r.syncExecuteCommand(fs.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Gr.id,params:_}],redoMutations:[{id:fs.id,params:g}]}),!0):!1}},ws={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(Qo).fillData(t.type)},Ts={id:`sheet.mutation.register-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(j),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new ae(o,a);return r.registerRangeThemeStyle(i,s),!0}},Es={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!m(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(j),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},Ds={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(!m(a,n))return!1;let c={unitId:r,themeName:i.getName(),rangeThemeStyleJson:i.toJson()},l={unitId:r,themeName:i.getName()};return o.syncExecuteCommand(Ts.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:Es.id,params:l}],redoMutations:[{id:Ts.id,params:c}]}),!0}},Os={id:`sheet.command.remove-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(O);if(!n)return!1;let s={...n},c=o.onCommandExecute({id:Os.id,params:n}),l=[...c.preRedos??[],{id:r.RemoveDefinedNameMutation.id,params:s},...c.redos],u=[...c.preUndos??[],{id:r.SetDefinedNameMutation.id,params:s},...c.undos];return(0,t.sequenceExecute)(l,i).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:u.filter(Boolean),redoMutations:l.filter(Boolean)}),!0):!1}},ks={id:`sheet.command.remove-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(O),s=e.get(t.IConfigService),c=m(a,n);if(!c)return!1;let{unitId:l,subUnitId:u,workbook:d,worksheet:f}=c;if(d.getSheets().length<=1)return!1;let p=s.getConfig(os),h={...ss,...p==null?void 0:p.largeSheetOperation},g=Hn(f.getCellMatrix())>=h.largeSheetCellCountThreshold,_={subUnitId:u,unitId:l,subUnitName:f.getName()},v=g?null:Wr(e,_),y=o.onCommandExecute({id:ks.id,params:{unitId:l,subUnitId:u}}),b=[...y.preRedos??[],{id:Gr.id,params:_},...y.redos],x=g?[]:[...y.preUndos??[],{id:fs.id,params:v},...y.undos];return(0,t.sequenceExecute)(b,r).result?(g?i.clearUndoRedo(l):i.pushUndoRedo({unitID:l,undoMutations:x,redoMutations:b}),!0):!1}};var As=class{constructor(){T(this,`_borderInfo`,{type:t.BorderType.ALL,color:`#000000`,style:t.BorderStyleTypes.THIN,activeBorderType:!1}),T(this,`_borderInfo$`,new n.BehaviorSubject(this._borderInfo)),T(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 js(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 Ms=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||js(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}})}})},Ns=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 Ps(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}=Ns(y),ee=new t.ObjectMatrix,{worksheet:te,unitId:ne,subUnitId:O}=n;return{worksheet:te,unitId:ne,subUnitId:O,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:ee,borderStyle:{s:i,cl:{rgb:a}}}}let Fs=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&js(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&&js(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 Is(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)=>{Ms(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 Ls=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)=>{Ms(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))},Rs=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)=>{Ms(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(js(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))},zs={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(V),c=e.get(As),l=m(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=Ps(c,l,u);Fs(f),Ls(f),Is(f),Rs(f);let{unitId:p,subUnitId:h,mr:g}=f,_={unitId:p,subUnitId:h,cellValue:g.clone()},v=R(e,_);return i.syncExecuteCommand(z.id,_)?(a.pushUndoRedo({unitID:p,undoMutations:[{id:z.id,params:v}],redoMutations:[{id:z.id,params:_}]}),!0):!1}},Bs={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(As).setType(n.value),r.syncExecuteCommand(zs.id)}},Vs={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(As).setStyle(n.value),r.syncExecuteCommand(zs.id)}},Hs={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(As).setColor(n.value),r.syncExecuteCommand(zs.id)}},Us={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(As);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(zs.id,{unitId:r,subUnitId:i,ranges:o})}},Ws={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{columnData:o}=n,{unitId:s,subUnitId:c,worksheet:l}=a,u={subUnitId:c,unitId:s,columnData:o},d=Le(u,l);return r.syncExecuteCommand(Re.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Re.id,params:d}],redoMutations:[{id:Re.id,params:u}]}),!0):!1}},Gs={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(O),s=e.get(t.ICommandService),c=m(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!c)return!1;let{worksheet:l}=c,u={unitId:r,subUnitId:i,ranges:a},d={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,l),style:null}))},f=Ve(e,u),p={unitId:r,subUnitId:i,selections:Zs(a).map(e=>({range:e,primary:U(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:He.id,params:u},{id:W.id,params:d}],s),g=o.onCommandExecute({id:Gs.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){let i=o.afterCommandExecute({id:Gs.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Be.id,params:f},{id:W.id,params:p},...g.undos??[],...i.undos],redoMutations:[...g.preRedos??[],{id:He.id,params:u},{id:W.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Ks={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{let n=e.get(V),r=e.get(t.ICommandService),i=Js(n);if(!i.length)return!1;let a=m(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=Ys(o,i);return r.executeCommand(Gs.id,{unitId:s,subUnitId:c,ranges:l})}},qs={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r;let i=e.get(V),a=e.get(O),o=e.get(t.IUniverInstanceService),s=e.get(t.ICommandService),c=n!=null&&(r=n.ranges)!=null&&r.length?n.ranges:Js(i);if(!c.length)return!1;let l=m(o,n);if(!l)return!1;let{worksheet:u,unitId:d,subUnitId:f}=l;c=Xs(l.worksheet,c);let p={unitId:d,subUnitId:f,ranges:c},h={unitId:d,subUnitId:f,selections:Zs(c).map(e=>({range:e,primary:U(e,u),style:null}))},g=ze(e,p),_={unitId:d,subUnitId:f,reveal:!0,selections:c.map(e=>({range:e,primary:U(e,u),style:null}))},v=(0,t.sequenceExecute)([{id:Be.id,params:p},{id:W.id,params:h}],s),y=a.onCommandExecute({id:qs.id,params:p}),b=(0,t.sequenceExecute)([...y.redos],s);if(v.result&&b.result){let n=a.afterCommandExecute({id:qs.id,params:p});return(0,t.sequenceExecute)(n.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[{id:He.id,params:g},{id:W.id,params:_},...y.undos??[],...n.undos],redoMutations:[...y.preRedos??[],{id:Be.id,params:p},{id:W.id,params:h},...y.redos,...n.redos]}),!0}return!1}};function Js(e){let n=e.getCurrentSelections(),r=[];if(!n)return r;for(let e=0;e<n.length;e++){let i=n[e].range;i.rangeType===t.RANGE_TYPE.COLUMN&&r.push(i)}return r}function Ys(e,t){let n=[];for(let r=0;r<t.length;r++){let i=e.getHiddenCols(t[r].startColumn,t[r].endColumn);for(let e=0;e<i.length;e++)n.push(i[e])}return n}function Xs(e,t){let n=e.getRowCount()-1,r=e.getHiddenCols(),i=[];return t.forEach(e=>{let t=r.filter(t=>t.startColumn>=e.startColumn&&t.endColumn<=e.endColumn);if(t.length){let r=e.startColumn;t.forEach(e=>{e.startColumn>r&&(i.push({startColumn:r,endColumn:e.startColumn-1,startRow:0,endRow:n}),r=e.endColumn+1)}),r<=e.endColumn&&i.push({startColumn:r,endColumn:e.endColumn,startRow:0,endRow:n})}else i.push(e)}),i}function Zs(e){return Qs(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Qs(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 $s={id:`sheet.command.set-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(O);if(!n)return!1;let s={...n},c=(0,r.SetDefinedNameMutationFactory)(e,n),l=o.onCommandExecute({id:$s.id,params:n}),u=[...l.preRedos??[],...c?[{id:r.RemoveDefinedNameMutation.id,params:c}]:[],{id:r.SetDefinedNameMutation.id,params:s},...l.redos],d=[...l.preUndos??[],{id:r.RemoveDefinedNameMutation.id,params:s},...c?[{id:r.SetDefinedNameMutation.id,params:c}]:[],...l.undos];return(0,t.sequenceExecute)(u,i).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:d.filter(Boolean),redoMutations:u.filter(Boolean)}),!0):!1}},ec=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},tc={id:`sheet.mutation.set-frozen`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},nc={type:t.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=m(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(!Number.isInteger(u)||!Number.isInteger(l)||!Number.isInteger(d)||!Number.isInteger(f)||d<0||f<0||u>=c.getRowCount()||l>=c.getColumnCount()||d>=c.getColumnCount()||f>=c.getRowCount())return!1;let p={unitId:o,subUnitId:s,...n},h=ec(e,p);return r.syncExecuteCommand(tc.id,p)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:tc.id,params:h}],redoMutations:[{id:tc.id,params:p}]}),!0):!1}},rc={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=m(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=ec(e,l);return r.syncExecuteCommand(tc.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:tc.id,params:u}],redoMutations:[{id:tc.id,params:l}]}),!0}},ic={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().gridlinesColor;if(s===(n==null?void 0:n.color))return!1;let{unitId:c,subUnitId:l}=a,u={color:n==null?void 0:n.color,unitId:c,subUnitId:l},d={color:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Ue.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:d}],redoMutations:[{id:Ue.id,params:u}]}),!0):!1}},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(B).setRule(n,r,a,i),!0}},ac=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(B).getRule(n,r,i);return a?{id:J.id,params:{...t,rule:a}}:null},oc={id:`sheet.mutation.set-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(va).setRule(n,r,i),!0}},sc={type:t.CommandType.COMMAND,id:`sheet.command.set-protection`,async handler(e,n){if(!n)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),o=e.get(B),{rule:s,oldRule:c}=n,{unitId:l,subUnitId:u}=s,d=[],f=[];return(c==null?void 0:c.unitType)===s.unitType?s.unitType===a.UnitObject.Worksheet?(d.push({id:oc.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:oc.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:ba.id,params:{unitId:l,subUnitId:u}}),f.push({id:ya.id,params:{unitId:l,rule:c,subUnitId:c.subUnitId}})):c.unitType===a.UnitObject.SelectRange&&(d.push({id:Nn.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:Fn.id,params:{unitId:l,subUnitId:u,rules:[c]}}))),s.unitType===a.UnitObject.Worksheet?(d.push({id:ya.id,params:{unitId:l,rule:s,subUnitId:s.subUnitId}}),f.unshift({id:ba.id,params:{unitId:l,subUnitId:u}})):s.unitType===a.UnitObject.SelectRange&&(s.id=o.createRuleId(l,u),d.push({id:Fn.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:Nn.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,t.sequenceExecute)(d,r).result&&i.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},cc={id:`sheet.command.set-range-custom-metadata`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=m(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,p=t.Tools.isArray(c),h=new t.ObjectMatrix;for(let e=l;e<=d;e++)for(let t=u;t<=f;t++){let n=p?c[e-l][t-u]:c;h.setValue(e,t,n)}return i.syncExecuteCommand(z.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},lc={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=m(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=vt(u,l);return r.syncExecuteCommand(yt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:yt.id,params:d}],redoMutations:[{id:yt.id,params:u}]}),!0):!1}},uc={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(O),l=m(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d={unitId:r,subUnitId:i,ranges:a},f={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:U(e,u),style:null}))},p=bt(e,d),h={unitId:r,subUnitId:i,selections:gc(a).map(e=>({range:e,primary:U(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:xt.id,params:d},{id:W.id,params:f}],o),_=c.onCommandExecute({id:uc.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){let e=c.afterCommandExecute({id:uc.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[..._.preUndos??[],{id:Ct.id,params:p},{id:W.id,params:h},..._.undos??[],...e.undos],redoMutations:[..._.preRedos??[],{id:xt.id,params:d},{id:W.id,params:f},..._.redos,...e.redos]}),!0}return!0}},dc={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{let n=e.get(V),r=e.get(t.IUniverInstanceService),i=e.get(t.ICommandService),a=pc(n);if(!a.length)return!1;let o=m(r);if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=mc(s,a);return i.executeCommand(uc.id,{unitId:c,subUnitId:l,ranges:u})}},fc={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r;let i=e.get(V),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(O),l=n!=null&&(r=n.ranges)!=null&&r.length?n.ranges:pc(i);if(!l.length)return!1;let u=m(s,n);if(!u)return!1;l=hc(u.worksheet,l);let{unitId:d,subUnitId:f,worksheet:p}=u,h={unitId:d,subUnitId:f,ranges:l},g={unitId:d,subUnitId:f,selections:gc(l).map(e=>({range:e,primary:U(e,p),style:null}))},_=St(e,h),v={unitId:d,subUnitId:f,reveal:!0,selections:l.map(e=>({range:e,primary:U(e,p),style:null}))},y=c.onCommandExecute({id:fc.id,params:h});if((0,t.sequenceExecute)([...y.preRedos??[],{id:Ct.id,params:h},{id:W.id,params:g},...y.redos],a).result){let e=c.afterCommandExecute({id:fc.id,params:h});return(0,t.sequenceExecute)(e.redos,a),o.pushUndoRedo({unitID:d,undoMutations:[...y.preUndos??[],{id:xt.id,params:_},{id:W.id,params:v},...y.undos??[],...e.undos],redoMutations:[...y.preRedos??[],{id:Ct.id,params:h},{id:W.id,params:g},...y.redos,...e.redos]}),!0}return!0}};function pc(e){let n=e.getCurrentSelections(),r=[];if(!n)return r;for(let e=0;e<n.length;e++){let i=n[e].range;i.rangeType===t.RANGE_TYPE.ROW&&r.push(i)}return r}function mc(e,t){let n=[];for(let r=0;r<t.length;r++){let i=e.getHiddenRows(t[r].startRow,t[r].endRow);for(let e=0;e<i.length;e++)n.push(i[e])}return n}function hc(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 gc(e){return _c(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function _c(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 vc=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},yc={id:`sheet.mutation.set-tab-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},bc={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=vc(e,c);return r.syncExecuteCommand(yc.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:yc.id,params:l}],redoMutations:[{id:yc.id,params:c}]}),!0):!1}},xc={id:`sheet.mutation.set-workbook-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);return r?(r.setName(n.name),!0):!1}},Sc={type:t.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(O);if(!p(e.get(t.IUniverInstanceService),n))return!1;let a=i.onCommandExecute({id:Sc.id,params:n}),o={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...a.preRedos??[],{id:xc.id,params:o},...a.redos],r).result}},Cc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,n,r)=>{let i=e.get(t.ICommandService),a=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(zt.id,{unitId:o,subUnitId:s},r))},4)})}},wc={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=m(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,p=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,h=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN),g=p?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(H).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=Vn(_.ranges,v);Bn(y,s);let x=e.get(O),{undos:S,redos:C}=x.onCommandExecute({id:wc.id,params:_}),w=wt(_,s),T=i.syncExecuteCommand(Tt.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:ee,redos:te}=e.get(O).afterCommandExecute({id:wc.id,params:_}),ne=(0,t.sequenceExecute)([...C,...te,...D],i);return T&&ne.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:Tt.id,params:w},...S,...ee,...E],redoMutations:[{id:Tt.id,params:_},...C,...te,...D]}),!0}},Tc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(V),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(O),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=m(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:f,worksheet:p}=u,h=e.get(H).getSkeleton(f,d),g={subUnitId:d,unitId:f,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=Vn(g.ranges,h);Bn(_,p);let y=wt(g,p),b=o.syncExecuteCommand(Tt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:Tc.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){let e=c.afterCommandExecute({id:Tc.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...C.preUndos??[],{id:Tt.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...C.preRedos??[],{id:Tt.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},Ec={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(V),o=m(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(O).onCommandExecute({id:Ec.id,params:u});return(0,t.sequenceExecute)([...f],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...f]}),!0):!1}},Dc={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(!m(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount: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}},Oc={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=kt(e,n);return r.syncExecuteCommand(Ot.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Ot.id,params:o}],redoMutations:[{id:Ot.id,params:n}]}),!0):!1}},kc=(e,n)=>{let r=h(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()}},Ac={id:`sheet.mutation.set-worksheet-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().hidden=n.hidden,!0):!1}},jc={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=m(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},p=kc(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(Ac.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:Ac.id,params:p}],redoMutations:[{id:Ac.id,params:f}]}),!0):!1}},Mc=(e,n)=>{let r=h(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()}},Nc={id:`sheet.mutation.set-worksheet-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},Pc={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(O),o=m(e.get(t.IUniverInstanceService),n);if(!o)return!1;let{unitId:s,subUnitId:c}=o,l={subUnitId:c,name:n.name,unitId:s},u=Mc(e,l),d=a.onCommandExecute({id:Pc.id,params:n}),f=[...d.preRedos??[],{id:Nc.id,params:l},...d.redos],p=[...d.preUndos??[],{id:Nc.id,params:u},...d.undos];return(0,t.sequenceExecute)(f,r).result?(i.pushUndoRedo({unitID:s,undoMutations:p,redoMutations:f}),!0):!1}},Fc=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),Ic={id:`sheet.mutation.set-worksheet-order`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);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}},Lc={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=m(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=Fc(e,l);return r.syncExecuteCommand(Ic.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Ic.id,params:u}],redoMutations:[{id:Ic.id,params:l}]}),!0):!1}};var Rc=class{constructor(){T(this,`_model`,new Map),T(this,`_pointChange`,new n.Subject),T(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]}},zc=class{constructor(e,n,r){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.Delete),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!0),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(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){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.Edit),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!0),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.Edit}.${r}`}},Bc=class{constructor(e,n,r){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.ManageCollaborator),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!0),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.ManageCollaborator}.${r}`}},Vc=class{constructor(e,n,r){T(this,`type`,a.UnitObject.SelectRange),T(this,`subType`,a.UnitAction.View),T(this,`status`,t.PermissionStatus.INIT),T(this,`value`,!1),T(this,`id`,void 0),T(this,`unitId`,void 0),T(this,`subUnitId`,void 0),T(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${a.UnitObject.SelectRange}.${a.UnitAction.View}.${r}`}};let X=()=>[Vc,Y,Bc,zc],Hc=[a.UnitAction.Edit,a.UnitAction.View,a.UnitAction.ManageCollaborator,a.UnitAction.Delete],Uc=(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 Wc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Comment),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Comment}_${e}`}},Gc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Copy),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Copy}_${e}`}},Kc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`subType`,a.UnitAction.CopySheet),T(this,`status`,t.PermissionStatus.INIT),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CopySheet}_${e}`}},qc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreatePermissionObject}_${e}`}},Jc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.CreateSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.CreateSheet}_${e}`}},Yc=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}`}},Xc=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.DeleteRow),this.id=`${this.type}.${a.UnitAction.DeleteRow}_${e}`}},Zc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.DeleteSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.DeleteSheet}_${e}`}},Qc=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Duplicate),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Duplicate}_${e}`}},Z=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Edit),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Edit}_${e}`}},$c=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Export),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Export}_${e}`}},el=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.HideSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.HideSheet}_${e}`}},tl=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}`}},nl=class{constructor(e){this.unitId=e,T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}`}},rl=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}`}},il=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.MoveSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.MoveSheet}_${e}`}},al=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Print),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Print}_${e}`}},ol=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.RecoverHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RecoverHistory}_${e}`}},sl=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.RenameSheet),this.unitId=e,this.id=`${this.type}.${a.UnitAction.RenameSheet}_${e}`}},cl=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.Share),this.unitId=e,this.id=`${this.type}.${a.UnitAction.Share}_${e}`}},ll=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.View),this.unitId=e,this.id=`${this.type}.${a.UnitAction.View}_${e}`}},ul=class{constructor(e){this.unitId=e,T(this,`id`,void 0),T(this,`value`,!0),T(this,`type`,a.UnitObject.Workbook),T(this,`status`,t.PermissionStatus.INIT),T(this,`subType`,a.UnitAction.ViewHistory),this.unitId=e,this.id=`${this.type}.${a.UnitAction.ViewHistory}_${e}`}},dl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Copy),this.id=`${this.type}.${a.UnitAction.Copy}_${e}_${n}`}},fl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.DeleteColumn),this.id=`${this.type}.${a.UnitAction.DeleteColumn}_${e}_${n}`}},pl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Delete),this.id=`${this.type}.${a.UnitAction.Delete}_${e}_${n}`}},ml=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(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,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Edit),this.id=`${this.type}.${a.UnitAction.Edit}_${e}_${n}`}},hl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.EditExtraObject),this.id=`${this.type}.${a.UnitAction.EditExtraObject}_${e}_${n}`}},gl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Filter),this.id=`${this.type}.${a.UnitAction.Filter}_${e}_${n}`}},_l=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertColumn),this.id=`${this.type}.${a.UnitAction.InsertColumn}_${e}_${n}`}},vl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertHyperlink),this.id=`${this.type}.${a.UnitAction.InsertHyperlink}_${e}_${n}`}},yl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.InsertRow),this.id=`${this.type}.${a.UnitAction.InsertRow}_${e}_${n}`}},bl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.ManageCollaborator),this.id=`${this.type}.${a.UnitAction.ManageCollaborator}_${e}_${n}`}},xl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.PivotTable),this.id=`${this.type}.${a.UnitAction.PivotTable}_${e}_${n}`}},Sl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SelectProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectProtectedCells}_${e}_${n}`}},Cl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SelectUnProtectedCells),this.id=`${this.type}.${a.UnitAction.SelectUnProtectedCells}_${e}_${n}`}},wl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetCellStyle),this.id=`${this.type}.${a.UnitAction.SetCellStyle}_${e}_${n}`}},Tl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetCellValue),this.id=`${this.type}.${a.UnitAction.SetCellValue}_${e}_${n}`}},El=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetColumnStyle),this.id=`${this.type}.${a.UnitAction.SetColumnStyle}_${e}_${n}`}},Dl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.SetRowStyle),this.id=`${this.type}.${a.UnitAction.SetRowStyle}_${e}_${n}`}},Ol=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.Sort),this.id=`${this.type}.${a.UnitAction.Sort}_${e}_${n}`}},kl=class{constructor(e,n){this.unitId=e,this.subUnitId=n,T(this,`value`,!0),T(this,`type`,a.UnitObject.Worksheet),T(this,`status`,t.PermissionStatus.INIT),T(this,`id`,void 0),T(this,`subType`,a.UnitAction.View),this.id=`${this.type}.${a.UnitAction.View}_${e}_${n}`}};let Al=()=>[Z,al,Wc,ll,Gc,$c,rl,Jc,Zc,sl,el,Qc,cl,il,Kc,ul,ol,qc,nl,tl,Xc,Yc],jl=[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,kl,bl,pl],Ml=()=>[dl,fl,ml,hl,gl,_l,yl,vl,xl,wl,Tl,El,Dl,Ol],Nl=[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],Pl=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();[...$(),...Ml()].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)})}),[...$(),...Ml()].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._addOrUpdatePermissionPoint(r)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:e=>{let t=this._univerInstanceService.getUnit(e);t&&(t.getSheets().forEach(t=>{let n=t.getSheetId();[...$(),...Ml()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),Al().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=>{Ml().forEach(n=>{let r=new n(e,t);this._addOrUpdatePermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}_addOrUpdatePermissionPoint(e){if(this._permissionService.getPermissionPoint(e.id)){this._permissionService.updatePermissionPoint(e.id,e.value);return}this._permissionService.addPermissionPoint(e)}};Pl=D([E(0,(0,t.Inject)(t.IPermissionService)),E(1,(0,t.Inject)(t.IUniverInstanceService)),E(2,(0,t.Inject)(t.Injector)),E(3,(0,t.Inject)(va)),E(4,(0,t.Inject)(Rc)),E(5,(0,t.Inject)(t.IResourceManagerService)),E(6,(0,t.Inject)(B)),E(7,(0,t.Inject)(t.ILogService))],Pl);let Fl={id:`sheet.mutation.set-worksheet-permission-points`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(Rc).addRule(n),!0}},Il={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(Fl.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},Ll={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(oc.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:oc.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:oc.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Rl=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...t.Tools.deepClone(n),rightToLeft:r}},zl={id:`sheet.mutation.set-worksheet-right-to-left`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUnit(n.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig();return a.rightToLeft=n.rightToLeft,!0}},Bl={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=m(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=t.BooleanNumber.FALSE;n&&(c=n.rightToLeft??t.BooleanNumber.FALSE);let l={rightToLeft:c,unitId:o,subUnitId:s},u=Rl(e,l);return r.syncExecuteCommand(zl.id,l)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:zl.id,params:u}],redoMutations:[{id:zl.id,params:l}]}),!0):!1}},Vl={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(!m(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=At(e,c);return o.syncExecuteCommand(jt.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:jt.id,params:l}],redoMutations:[{id:jt.id,params:c}]}),!0):!1}},Hl={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(V).getCurrentSelections(),i=e.get(O);if(!(r!=null&&r.length))return!1;let a=m(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,p=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW),h=f?t.RANGE_TYPE.ALL:p.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:p.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 _=Mt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Nt(v,o),b=e.get(t.ICommandService),x=e.get(t.IUndoRedoService),S=i.onCommandExecute({id:Hl.id,params:g}),C=(0,t.sequenceExecute)([{id:Ft.id,params:g},{id:It.id,params:v}],b),w=(0,t.sequenceExecute)([...S.redos],b);if(C.result&&w.result){let e=i.afterCommandExecute({id:Hl.id,params:g});return(0,t.sequenceExecute)(e.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...S.preUndos??[],{id:Ft.id,params:_},{id:It.id,params:y},...S.undos,...e.undos],redoMutations:[...S.preRedos??[],{id:Ft.id,params:g},{id:It.id,params:v},...S.redos,...e.redos]}),!0}return!1}},Ul={type:t.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(e,n)=>{var r,i;let a=e.get(V),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(t.IUniverInstanceService),l=e.get(O),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=m(c,n);if(!d)return!1;let{unitId:f,subUnitId:p,worksheet:h}=d,g={subUnitId:p,unitId:f,ranges:u,rowHeight:n.value},_=Mt(g,h),v={unitId:f,subUnitId:p,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=Nt(v,h),b=(0,t.sequenceExecute)([{id:Ft.id,params:g},{id:It.id,params:v}],o),x=l.onCommandExecute({id:Ul.id,params:g}),S=(0,t.sequenceExecute)([...x.redos],o);if(b.result&&S.result){let e=l.afterCommandExecute({id:Ul.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...x.preRedos??[],{id:Ft.id,params:_},{id:It.id,params:y},...x.undos,...e.undos],redoMutations:[...x.preRedos??[],{id:Ft.id,params:g},{id:It.id,params:v},...x.redos,...e.redos]}),!0}return!1}},Wl={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(V),c=m(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 p={unitId:l,subUnitId:u,ranges:f,autoHeightInfo:t.BooleanNumber.TRUE},h=Nt(p,d),g=a.syncExecuteCommand(It.id,p),_=e.get(H).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=Vn(p.ranges,_),b=e.get(O),{undos:x,redos:S}=b.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:v,autoHeightRanges:v,lazyAutoHeightRanges:y}),{undos:C,redos:w}=b.onCommandExecute({id:Wl.id,params:p}),T=(0,t.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:It.id,params:h},...C,...x],redoMutations:[{id:It.id,params:p},...w,...S]}),!0):!1}},Gl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,n)=>{let r=m(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=kc(e,l),d=s.syncExecuteCommand(Ac.id,l),f={unitId:i,subUnitId:a},p=s.syncExecuteCommand(zt.id,f);return d&&p?(c.pushUndoRedo({unitID:i,undoMutations:[{id:Ac.id,params:u}],redoMutations:[{id:Ac.id,params:l}]}),!0):!1}},Kl={type:t.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,n)=>{let r=m(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:p}=_n(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+p+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:N.id,params:t});let n=Te(e,t);b.push({id:F.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+p},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=R(e,w);return y.push({id:z.id,params:w}),b.unshift({id:z.id,params:T}),(0,t.sequenceExecute)(y,_).result?(v.pushUndoRedo({unitID:i,undoMutations:b,redoMutations:y}),!0):!1}},ql=(0,t.createIdentifier)(`INumfmtService`),Jl=(e,n)=>{let r=e.get(ql),{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=Ql(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=cn(n.ranges)}),l.push({id:Yl.id,params:Ql(a,o,s)})}return c.length&&l.push({id:Xl.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},Yl={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(ql),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}},Xl={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(ql).deleteValues(n,r,i),!0}},Zl=(e,n)=>{let r=e.get(ql),{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=Ql(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=cn(t.ranges)}),[{id:Yl.id,params:c}]},Ql=(e,n,r)=>{let i=vn(r,`pattern`),a={},o={},s=yn();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}},$l={id:`sheet.command.text-to-number`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=m(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=e.get(V).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=[],p=[];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 h,g;if(d.getValue(n,r))continue;let e=c.getCellRaw(n,r),i=typeof(e==null?void 0:e.s)==`string`?(h=c.getStyleDataByHash(e.s))==null||(h=h.n)==null?void 0:h.pattern:e==null||(g=e.s)==null||(g=g.n)==null?void 0:g.pattern,a=typeof(e==null?void 0:e.v)==`string`?(0,t.getNumfmtParseValueFilter)(e.v):null,o=(0,t.isRealNum)(e==null?void 0:e.v)?Number(e==null?void 0:e.v):typeof(a==null?void 0:a.v)==`number`?a.v:null;e&&e.v&&(e.t!==t.CellValueType.NUMBER||(0,t.isTextFormat)(i))&&o!==null&&(d.setValue(n,r,{v:o,t:t.CellValueType.NUMBER}),a!=null&&a.z&&(!i||(0,t.isTextFormat)(i))?f.push({pattern:a.z,row:n,col:r}):(0,t.isTextFormat)(i)&&p.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let _={subUnitId:u,unitId:l,cellValue:d.getMatrix()},v=[{id:z.id,params:_}],y=[{id:z.id,params:R(e,_)}];if(f.length){let t=Ql(l,u,f);v.push({id:Yl.id,params:t}),y.push(...Jl(e,t))}if(p.length){let t={unitId:l,subUnitId:u,ranges:p};v.push({id:Xl.id,params:t}),y.push(...Zl(e,t))}return(0,t.sequenceExecute)(v,o).result?(s.pushUndoRedo({unitID:l,undoMutations:y,redoMutations:v}),!0):!1}},eu={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:z.id,params:g},v=R(e,g),y={id:z.id,params:v},b=[_],x=[y];return u.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:r}),d.syncExecuteCommand(_.id,_.params)}},tu={type:t.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=m(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(Rt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Rt.id,params:d}],redoMutations:[{id:Rt.id,params:u}]}),!0):!1}},nu={id:`sheet.command.unregister-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;if(!n||!m(e.get(t.IUniverInstanceService),n))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(j),{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(Ts.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:Ts.id,params:u}],redoMutations:[{id:Es.id,params:l}]}),!0):!1}},ru={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(j),a=new ae(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},iu={id:`sheet.mutation.empty`,type:t.CommandType.MUTATION,handler:()=>!0},au={id:`sheet.mutation.mark-dirty-filter-change`,type:t.CommandType.MUTATION,handler:()=>!0},ou={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(j).unregisterRangeThemeStyle(r,n),!0}},su={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(j).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}},cu={id:`sheet.operation.mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},lu={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},uu={id:`sheet.operation.scroll-to-cell`,type:t.CommandType.OPERATION,handler:()=>!0},{getLenS:du,getDataIndex:fu,fillCopy:pu,fillCopyStyles:mu,generateNullCellValueRowCol:hu}=Co,{otherRule:gu}=Ho,_u=class extends t.Disposable{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,T(this,`_beforeApplyData`,[]),T(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=du(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=fu(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(),pu(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):pu(c,n))}if(i===`ONLY_FORMAT`){let t=a==null?void 0:a.ONLY_FORMAT;return t?t(e,n,r,o):mu(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))||gu;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=Tn(c),p=Tn(l),{cols:m,rows:h}=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=h.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;h.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.getUnit(u,t.UniverInstanceType.UNIVER_SHEET))==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(I,t);o.push({id:L.id,params:t}),a.unshift({id:_.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:hu([l])},D=this._injector.invoke(R,E);o.push({id:z.id,params:E}),a.unshift({id:z.id,params:D});let ee=new t.ObjectMatrix;h.forEach((e,t)=>{m.forEach((n,r)=>{S[t][r]&&ee.setValue(e,n,S[t][r])})});let te=ee.getMatrix(),ne={subUnitId:d,unitId:u,cellValue:te},O=this._injector.invoke(R,ne);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,te)}),a.unshift({id:z.id,params:O}),o.push({id:z.id,params:ne}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:$i(C)},t=this._injector.invoke(g,e);a.unshift({id:L.id,params:t}),o.push({id:_.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`}};_u=D([E(0,t.IUniverInstanceService),E(1,Qo),E(2,(0,t.Inject)(t.Injector))],_u);let vu=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 r=i[e],o=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(!o)continue;let s=n[r];if(s==null)continue;let c=Object.keys(s);for(let e=0;e<c.length;e++){let t=c[e],n=s[t];if(n==null||!o.getSheetBySheetId(t))continue;let i={subUnitId:t,unitId:r,cellValue:this._getMergedCellData(r,t,n)};a.push({id:z.id,params:i})}}return(0,t.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,n,i){let a=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET),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()}};vu=D([E(0,(0,t.Inject)(t.IUniverInstanceService)),E(1,t.ICommandService)],vu);let yu=`maxCellsPerSheet`,bu=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)}}))}};bu=D([E(0,r.IDefinedNamesService),E(1,t.IResourceManagerService)],bu);let xu=[tc.id],Su=[M.id,N.id,P.id,F.id,Oe.id,Ae.id],Cu=class extends t.Disposable{constructor(e,n,r){var i;super(),this._univerInstanceService=e,this._commandService=n,this._configService=r,T(this,`_d`,new t.DisposableCollection),T(this,`_enabled`,!0);let a=((i=this._configService.getConfig(`sheets.config`))==null?void 0:i.freezeSync)??!0;this.setEnabled(a)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{xu.includes(e.id)&&(t||={},t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(Su.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===M.id?this._handleInsertRowMutation(r,t):n===N.id?this._handleInsertColMutation(r,t):n===P.id?this._handleRemoveRowMutation(r,t):n===F.id?this._handleRemoveColMutation(r,t):n===Oe.id?this._handleMoveRowsMutation(r,t):n===Ae.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:tc.id,params:{...r,unitId:e,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};Cu=D([E(0,(0,t.Inject)(t.IUniverInstanceService)),E(1,t.ICommandService),E(2,t.IConfigService)],Cu);let wu=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,T(this,`disposableCollection`,new t.DisposableCollection),T(this,`_triggerPermissionUIEvent$`,new n.Subject),T(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===Nc.id){let t=m(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 ur.id:a=e.params,(0,t.isICellData)(a.value)&&a.value.f?(r=this._permissionCheckWithFormula(a),i=this._localeService.t(`sheets.permission.dialog.formulaErr`)):(r=this._permissionCheckBySetRangeValue({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},a),i=this._localeService.t(`sheets.permission.dialog.editErr`));break;case q.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[wl,Q],rangeTypes:[Y]},a.range?[a.range]:void 0,a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setStyleErr`);break;case zs.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[wl,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(`sheets.permission.dialog.setStyleErr`);break;case Un.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,wl,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(`sheets.permission.dialog.editErr`);break;case as.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,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(`sheets.permission.dialog.editErr`);break;case Wn.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[wl,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(`sheets.permission.dialog.setStyleErr`);break;case wc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[El]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Tc.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[El]},a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Hl.id:r=this.permissionCheckWithoutRange({worksheetTypes:[Dl]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Ul.id:case Wl.id:a=e.params,r=this.permissionCheckWithoutRange({worksheetTypes:[Dl]},a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Yr.id:case Zr.id:a=e.params,r=this._permissionCheckByMoveRowsColsCommand(a),i=this._localeService.t(`sheets.permission.dialog.moveRowColErr`);break;case ar.id:a=e.params,r=this._permissionCheckByMoveRangeCommand(a),i=this._localeService.t(`sheets.permission.dialog.moveRangeErr`);break;case Tr.id:case Mr.id:a=e.params,r=this._permissionCheckByInsertRowColCommand(a),i=this._localeService.t(`sheets.permission.dialog.insertRowColErr`);break;case zr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Xc],worksheetTypes:[Q,ml],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.removeRowColErr`);break;case Hr.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z,Yc],worksheetTypes:[Q,fl],rangeTypes:[Y]},[a.range],a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.removeRowColErr`);break;case Lc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,il],a),i=this._localeService.t(`sheets.permission.dialog.operatorSheetErr`);break;case Pc.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,sl],a),i=this._localeService.t(`sheets.permission.dialog.operatorSheetErr`);break;case Gl.id:a=e.params,r=this._permissionCheckByWorksheetCommand([Z,el],a),i=this._localeService.t(`sheets.permission.dialog.operatorSheetErr`);break;case Gs.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,El],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case uc.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,Dl],rangeTypes:[Y]},a.ranges,a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Ks.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,El],rangeTypes:[Y]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case dc.id:r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q,Dl],rangeTypes:[Y]}),i=this._localeService.t(`sheets.permission.dialog.setRowColStyleErr`);break;case Sr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`right`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case br.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`down`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case gr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`left`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case vr.id:a=e.params,r=this._permissionCheckWithInsertOrDeleteMoveRange(`up`,a),i=this._localeService.t(`sheets.permission.dialog.insertOrDeleteMoveRangeErr`);break;case $o.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},[a.targetRange],a.unitId,a.subUnitId),i=this._localeService.t(`sheets.permission.dialog.autoFillErr`);break;case Ss.id:case $s.id:case Os.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(`sheets.permission.dialog.editErr`);break;case $l.id:a=e.params,r=this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,wl,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(`sheets.permission.dialog.editErr`);break;default:break}r||this.blockExecuteWithoutPermission(i)}permissionCheckWithRanges(e,n,r,i){let a=m(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??((d=this._selectionManagerService.getCurrentSelections())==null?void 0:d.map(e=>e.range));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=m(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=m(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 kl(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=m(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:[Tl,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:[Tl,Q],rangeTypes:[Y]},[s],r,i)}_permissionCheckByMoveRangeCommand(e){let{fromUnitId:t,fromSubUnitId:n,fromRange:r,toUnitId:i,toSubUnitId:a,toRange:o}=e,s=m(this._univerInstanceService,{unitId:t,subUnitId:n});if(!s)return!1;let c=m(this._univerInstanceService,{unitId:i,subUnitId:a});return!c||!this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},[r],s.unitId,s.subUnitId)?!1:this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Tl,Q],rangeTypes:[Y]},[o],c.unitId,c.subUnitId)}_permissionCheckByInsertRowColCommand(e){let n=m(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(nl),l.worksheetTypes.push(yl)}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(tl),l.worksheetTypes.push(_l)}return this.permissionCheckWithRanges(l,[c],i,a)}_permissionCheckByWorksheetCommand(e,t){let n=m(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;let i=m(this._univerInstanceService);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=(n==null?void 0:n.range)??((r=this._selectionManagerService.getCurrentLastSelection())==null?void 0:r.range);if(!c||!this.permissionCheckWithRanges({workbookTypes:[Z],worksheetTypes:[Q],rangeTypes:[Y]},[c],o,s))return!1;let l=this._rangeProtectionRuleModel.getSubunitRuleList(o,s);if(l.length===0)return!0;let u={...c};return e===`right`||e===`left`?u.endColumn=a.getColumnCount()-1:(e===`down`||e===`up`)&&(u.endRow=a.getRowCount()-1),!l.some(e=>e.ranges.some(e=>t.Rectangle.intersects(e,u)))}};wu=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService),E(2,t.IPermissionService),E(3,(0,t.Inject)(V)),E(4,(0,t.Inject)(B)),E(5,(0,t.Inject)(va)),E(6,(0,t.Inject)(t.LocaleService)),E(7,(0,t.Inject)(r.LexerTreeBuilder)),E(8,r.IDefinedNamesService)],wu);let Tu=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,T(this,`_unitPermissionInitStateChange`,new n.BehaviorSubject(!1)),T(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();Al().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)})}),[...$(),...Ml()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),Al().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)}};Tu=D([E(0,(0,t.Inject)(t.IPermissionService)),E(1,(0,t.Inject)(t.IUniverInstanceService)),E(2,(0,t.Inject)(B)),E(3,(0,t.Inject)(va)),E(4,(0,t.Inject)(Rc))],Tu);let Eu=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:Hc})})}),!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),[...Ml()].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:Hc}).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.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId());if(r)return this._authzIoService.allowed({objectID:r,objectType:a.UnitObject.Workbook,unitID:r,actions:jl}).then(e=>{Al().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`?([...$(),...Ml()].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:Hc}).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:Nl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||Ml().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:Hc}));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:Nl}))}),!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;[...$(),...Ml()].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();Al().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();[...$(),...Ml()].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:Hc}).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:Nl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(Ml().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:Hc}).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===Fn.id||e.id===ya.id||e.id===Fl.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};Eu=D([E(0,t.IUniverInstanceService),E(1,t.IPermissionService),E(2,t.IAuthzIoService),E(3,(0,t.Inject)(B)),E(4,(0,t.Inject)(va)),E(5,(0,t.Inject)(t.UserManagerService)),E(6,(0,t.Inject)(Rc)),E(7,(0,t.Inject)(Tu)),E(8,(0,t.Inject)(t.IUndoRedoService)),E(9,(0,t.Inject)(t.ICommandService))],Eu);let Du=class extends t.Disposable{constructor(e,t,r){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=r,T(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 M.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case xt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Ct.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case P.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Ft.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)}))}};Du=D([E(0,(0,t.Inject)(t.ICommandService)),E(1,(0,t.Inject)(j)),E(2,(0,t.Inject)(t.IUniverInstanceService))],Du);let Ou=class extends t.Disposable{constructor(e,n){super(),this._selectionProtectionRuleModel=e,this._permissionService=n,T(this,`_cache`,new t.LRUMap(1e4)),this._init()}_init(){this.disposeWithMe(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.disposeWithMe(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)=>{let i=new r(e,t,a.permissionId),o=this._permissionService.getPermissionPoint(i.id);return n[i.subType]=(o==null?void 0:o.value)??i.value,n},{});c.push({...n,ruleId:a.id,ranges:a.ranges})}return this._cache.set(o,c),c}clear(){this._cache.clear()}dispose(){super.dispose(),this._cache.clear()}};Ou=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IPermissionService))],Ou);let ku=class extends t.Disposable{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,T(this,`_cellRuleCache`,new Map),T(this,`_permissionIdCache`,new Map),T(this,`_cellInfoCache`,new Map),T(this,`_rowInfoCache`,new Map),T(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;let f=((r=this._permissionService.getPermissionPoint((i=new Y(e,t,n.permissionId))==null?void 0:i.id))==null?void 0:r.value)??!1,p=((o=this._permissionService.getPermissionPoint((s=new Vc(e,t,n.permissionId))==null?void 0:s.id))==null?void 0:o.value)??!1,m=((c=this._permissionService.getPermissionPoint((l=new Bc(e,t,n.permissionId))==null?void 0:l.id))==null?void 0:c.value)??!1,h=((u=this._permissionService.getPermissionPoint((d=new zc(e,t,n.permissionId))==null?void 0:d.id))==null?void 0:u.value)??!1;return{[a.UnitAction.Edit]:f,[a.UnitAction.View]:p,[a.UnitAction.ManageCollaborator]:m,[a.UnitAction.Delete]:h}}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})}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})}_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)})})}};ku=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IPermissionService)),E(2,(0,t.Inject)(t.IUniverInstanceService))],ku);var Au=`@univerjs/sheets`,ju=`1.0.0-beta.2`;let Mu=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,T(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Gr.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Gr.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===Ac.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===fs.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===Ac.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===W.id)return this._adjustActiveSheetOnSelection(e)}))}_adjustActiveSheetOnHideSheet(e){var n;let{unitId:r,subUnitId:i}=e.params,a=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET);if(!a||((n=a.getActiveSheet())==null?void 0:n.getSheetId())!==i)return;let o=Nu(a,a.getActiveSheetIndex());this._switchToNextSheet(r,o)}_beforeAdjustActiveSheetOnRemoveSheet(e){let{unitId:n,subUnitId:r}=e.params,i=this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_SHEET);if(!i)return;let a=i.getSheetBySheetId(r);a&&(this._previousSheetIndex=i.getSheetIndex(a))}_adjustActiveSheetOnRemoveSheet(e){if(this._previousSheetIndex===-1)return;let{unitId:n}=e.params,r=this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_SHEET);if(r&&r.getActiveSheet().getSheetId()===e.params.subUnitId){let e=this._previousSheetIndex,t=Nu(r,e>=1?e-1:0);this._switchToNextSheet(n,t)}}_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(zt.id,{unitId:e,subUnitId:t})}};Mu=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService)],Mu);function Nu(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 Pu=class extends t.Disposable{constructor(e,t,n){super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[z,N,M,fs,Ee,Oe,Ae,F,P,Gr,L,Xl,_,xc,Nc,Yl,Pe,iu,Ct,xt,cu,lu,us,jt,Dt,au].forEach(e=>{var t;this._commandService.registerCommand(e),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)}),(this._configService.getConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`)??!1)||[fa,pa,ma,ha,Ca,Un,as,Wn,_s,gr,vr,wc,Hl,Pr,Nr,Fr,Ir,Mr,jr,br,Sr,Dr,Er,kr,Or,Tr,wr,Cs,Zr,ar,Yr,zr,Ur,Hr,Br,ks,ei,oa,Fa,Na,Pa,Us,Hs,zs,Bs,Vs,qs,Be,He,Tc,Ws,Re,nc,tc,rc,La,cc,ur,Ul,fc,lc,yt,Ks,dc,Gs,uc,q,za,bc,yc,Ma,Ba,Ra,Ia,Sc,Cc,zt,jc,Ac,Pc,Lc,Ic,Lt,Ft,Wl,It,Tt,Vl,Dc,rr,W,uu,Ss,Os,$s,Gl,tu,Rt,ic,Ue,$l,Il,ya,oc,ba,Fl,In,sc,ys,xa,bs,Ll,Fn,Nn,J,eu,Ot,Oc,Kl,Se,be,Es,Ts,nu,Ds,Sa,xs,ru,su,ou,$o,ns,rs,is,ws].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(yu,3e6)}};Pu=D([E(0,t.ICommandService),E(1,t.IConfigService),E(2,(0,t.Optional)(s.DataSyncPrimaryController))],Pu);let Fu=class extends t.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(v.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);if(!(0,t.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern))return i(e);if((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));let t=String(e.v);return t.includes(`e`)&&(e.v=t.toUpperCase()),i(e)}return i(e)}}))}};Fu=D([E(0,(0,t.Inject)(O))],Fu);let Iu=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(v.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(v.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;let o=[{[a.UnitAction.View]:((s=this._permissionService.getPermissionPoint(new kl(r,i).id))==null?void 0:s.value)??!1,[a.UnitAction.Edit]:((c=this._permissionService.getPermissionPoint(new Q(r,i).id))==null?void 0:c.value)??!1}],u=!((l=o[0])!=null&&l[a.UnitAction.View]),d=!e||e===t.rawData?{...e}:e;return d.hasWorksheetRule=!0,d.selectionProtection=o,u?(delete d.s,delete d.v,delete d.p,d):n(d)}return n(e)}}))}};Iu=D([E(0,t.IPermissionService),E(1,(0,t.Inject)(va)),E(2,(0,t.Inject)(O)),E(3,(0,t.Inject)(ku))],Iu);let Lu=(0,t.createIdentifier)(`univer.exclusive-range.service`);var Ru=class extends t.Disposable{constructor(...e){super(...e),T(this,`_exclusiveRanges`,new Map),T(this,`_exclusiveRangesChange$`,new n.Subject),T(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 zu=class extends t.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,n,r,i){let a=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!a)return;let o=a==null?void 0:a.getSheetBySheetId(n);if(!o)return;let s=a.getStyles(),c=o.getCellRaw(r,i);if(c!=null&&c.s){let e=s.get(c.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,n,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);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.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);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})}})})})}};zu=D([E(0,t.IResourceManagerService),E(1,t.IUniverInstanceService),E(2,t.ILogService)],zu);let Bu=[N.id,M.id,F.id,P.id],Vu=[Oe.id,Ae.id],Hu=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,T(this,`disposableCollection`,new t.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=t=>this.refRangeHandle(t,e,n);this._selectionProtectionRuleModel.getSubunitRuleList(e,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,i,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===Cc.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===J.id||t.id===Fn.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let n=this._univerInstanceService.getCurrentUnitOfType(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 Yr.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Zr.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case wr.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case jr.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Ur.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case Br.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:Nn.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:Fn.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(Vu.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getCurrentUnitOfType(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(Bu.includes(e.id)){let n=this._univerInstanceService.getUnit(e.params.unitId,t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let 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;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=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),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:d,subUnitId:f}=e.params,p=e=>this.refRangeHandle(e,d,f);this._selectionProtectionRuleModel.getSubunitRuleList(d,f).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,p,d,f))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Bu.includes(e.id)||Vu.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===ks.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:Nn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:Fn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};Hu=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IUniverInstanceService)),E(2,t.ICommandService),E(3,(0,t.Inject)(Ki)),E(4,(0,t.Inject)(Ou)),E(5,(0,t.Inject)(ku)),E(6,(0,t.Inject)(O)),E(7,(0,t.Inject)(B))],Hu);let Uu=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:Hc})}),i.forEach(t=>{X().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._addOrUpdatePermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}_addOrUpdatePermissionPoint(e){if(this._permissionService.getPermissionPoint(e.id)){this._permissionService.updatePermissionPoint(e.id,e.value);return}this._permissionService.addPermissionPoint(e)}};Uu=D([E(0,(0,t.Inject)(B)),E(1,(0,t.Inject)(t.IPermissionService)),E(2,(0,t.Inject)(t.IResourceManagerService)),E(3,(0,t.Inject)(ku)),E(4,(0,t.Inject)(t.IUniverInstanceService))],Uu);let Wu=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()}};Wu=D([E(0,(0,t.Inject)(j))],Wu);let Gu=class extends t.Plugin{constructor(e=cs,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},cs,this._config);this._configService.setConfig(os,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=[[As],[ls],[V],[Ki],[Tu],[ql,{useClass:zu}],[O],[Wu],[H],[Pu],[ta],[Fu],[bu],[Du],[Cu],[Pl],[va],[Rc],[Iu],[Eu],[wu],[j],[Ou],[B],[ku],[Hu],[Uu],[Lu,{useClass:Ru,deps:[V]}],[Qo,{useClass:Zo}],[_u]];(e=this._config)!=null&&e.notExecuteFormula||n.push([vu]),(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)(n,this._config.override)),(0,t.touchDependencies)(this._injector,[[O],[Uu],[Lu],[Eu],[Cu]])}onStarting(){var e;(0,t.touchDependencies)(this._injector,[[Pu],[ta],[Tu],[Pl],[Iu],[H],[_u]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([Mu])}onRendered(){(0,t.touchDependencies)(this._injector,[[ql]])}onReady(){(0,t.touchDependencies)(this._injector,[[Mu],[vu],[bu],[Du],[j],[Fu],[Ou],[Hu],[Ki],[wu]])}};T(Gu,`pluginName`,`SHEET_PLUGIN`),T(Gu,`packageName`,Au),T(Gu,`version`,ju),T(Gu,`type`,t.UniverInstanceType.UNIVER_SHEET),Gu=D([(0,t.DependentOn)(r.UniverFormulaEnginePlugin),E(1,(0,t.Inject)(t.Injector)),E(2,t.IConfigService)],Gu);let Ku={WorkbookCommentPermission:Wc,WorkbookCopyPermission:Gc,WorkbookCreateProtectPermission:qc,WorkbookCreateSheetPermission:Jc,WorkbookDeleteSheetPermission:Zc,WorkbookDuplicatePermission:Qc,WorkbookEditablePermission:Z,WorkbookExportPermission:$c,WorkbookHideSheetPermission:el,WorkbookManageCollaboratorPermission:rl,WorkbookMoveSheetPermission:il,WorkbookPrintPermission:al,WorkbookRecoverHistoryPermission:ol,WorkbookRenameSheetPermission:sl,WorkbookSharePermission:cl,WorkbookViewHistoryPermission:ul,WorkbookViewPermission:ll,WorksheetCopyPermission:dl,WorksheetDeleteColumnPermission:fl,WorksheetDeleteProtectionPermission:pl,WorksheetDeleteRowPermission:ml,WorksheetEditExtraObjectPermission:hl,WorksheetEditPermission:Q,WorksheetFilterPermission:gl,WorksheetInsertColumnPermission:_l,WorksheetInsertHyperlinkPermission:vl,WorksheetInsertRowPermission:yl,WorksheetManageCollaboratorPermission:bl,WorksheetPivotTablePermission:xl,WorksheetSetCellStylePermission:wl,WorksheetSetCellValuePermission:Tl,WorksheetSetColumnStylePermission:El,WorksheetSetRowStylePermission:Dl,WorksheetSortPermission:Ol,WorksheetViewPermission:kl,RangeProtectionPermissionEditPoint:Y,RangeProtectionPermissionViewPoint:Vc},qu=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(B),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)})},Ju=(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){let t={...r,startRow:c,endRow:c};return Xu(e,n,t,i,a,!1)}},Yu=(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){let t={...r,startRow:s,endRow:s};return Zu(e,n,t,i,a,!1)}},Xu=(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){let t={...r,startColumn:c,endColumn:c};return Ju(e,n,t,i,a,!1)}},Zu=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.endColumn+i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l++,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l<=c)return{...r,endColumn:l,startColumn:l};if(o){let t={...r,startColumn:s,endColumn:s};return Yu(e,n,t,i,a,!1)}};function Qu(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 $u=(e,n,r,i,a=1)=>{switch(i){case t.Direction.UP:return Ju(e,n,r,a);case t.Direction.DOWN:return Yu(e,n,r,a);case t.Direction.LEFT:return Xu(e,n,r,a);case t.Direction.RIGHT:return Zu(e,n,r,a)}},ed=(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:$u(i.range,r,l,n);if(!e)return null;let t=h?Qu(e.endRow,e.endColumn,r):Qu(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?Qu(c.range.endRow,c.range.endColumn,r):Qu(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function td(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 nd(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:td(t,n),primaryWithCoord:r&&rd(t,r),style:i}}function rd(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 id(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=td(r,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=td(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 ad(e,t,n,r,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=td(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=wa,e.AFTER_CELL_EDIT=te,e.AUTO_FILL_APPLY_TYPE=wo,e.AUTO_FILL_DATA_TYPE=To,e.AUTO_FILL_HOOK_TYPE=Eo,e.AddMergeRedoSelectionsOperationFactory=ia,e.AddMergeUndoMutationFactory=g,e.AddMergeUndoSelectionsOperationFactory=aa,e.AddRangeProtectionCommand=In,e.AddRangeProtectionMutation=Fn,e.AddRangeThemeMutation=ru,e.AddWorksheetMergeAllCommand=pa,e.AddWorksheetMergeCommand=fa,e.AddWorksheetMergeHorizontalCommand=ha,e.AddWorksheetMergeMutation=_,e.AddWorksheetMergeVerticalCommand=ma,e.AddWorksheetProtectionCommand=xa,e.AddWorksheetProtectionMutation=ya,e.AppendRowCommand=Ca,e.AutoClearContentCommand=is,e.AutoFillCommand=$o,Object.defineProperty(e,"AutoFillController",{enumerable:!0,get:function(){return _u}}),e.AutoFillRules=Ho,Object.defineProperty(e,"AutoFillService",{enumerable:!0,get:function(){return Zo}}),e.AutoFillTools=Co,e.BEFORE_CELL_EDIT=ee,e.BorderStyleManagerService=As,e.COMMAND_LISTENER_SKELETON_CHANGE=Ht,e.COMMAND_LISTENER_VALUE_CHANGE=Ut,Object.defineProperty(e,"CalculateResultApplyController",{enumerable:!0,get:function(){return vu}}),e.CancelFrozenCommand=rc,e.CancelMarkDirtyRowAutoHeightOperation=lu,e.ClearSelectionAllCommand=Un,e.ClearSelectionContentCommand=as,e.ClearSelectionFormatCommand=Wn,e.CopySheetCommand=_s,e.CopyWorksheetEndMutation=us,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,"DefinedNameDataController",{enumerable:!0,get:function(){return bu}}),e.DeleteRangeMoveLeftCommand=gr,e.DeleteRangeMoveUpCommand=vr,e.DeleteRangeProtectionCommand=ys,e.DeleteRangeProtectionMutation=Nn,e.DeleteWorksheetProtectionCommand=bs,e.DeleteWorksheetProtectionMutation=ba,e.DeleteWorksheetRangeThemeStyleCommand=xs,e.DeleteWorksheetRangeThemeStyleMutation=Se,e.DeleteWorksheetRangeThemeStyleMutationFactory=Ce,e.DeltaColumnWidthCommand=wc,e.DeltaRowHeightCommand=Hl,e.EditStateEnum=jn,e.EffectRefRangId=G,e.EmptyMutation=iu,e.ExclusiveRangeService=Ru,e.FactoryAddRangeProtectionMutation=Pn,e.FactoryDeleteRangeProtectionMutation=Mn,e.FactorySetRangeProtectionMutation=ac,e.IAutoFillService=Qo,e.IExclusiveRangeService=Lu,e.INTERCEPTOR_POINT=v,e.INumfmtService=ql,e.IRefSelectionsService=$n,e.InsertColAfterCommand=Pr,e.InsertColBeforeCommand=Nr,e.InsertColByRangeCommand=Mr,e.InsertColCommand=jr,e.InsertColMutation=N,e.InsertColMutationUndoFactory=Te,e.InsertDefinedNameCommand=Ss,e.InsertMultiColsLeftCommand=Fr,e.InsertMultiColsRightCommand=Ir,e.InsertMultiRowsAboveCommand=Or,e.InsertMultiRowsAfterCommand=kr,e.InsertRangeMoveDownCommand=br,e.InsertRangeMoveRightCommand=Sr,e.InsertRowAfterCommand=Dr,e.InsertRowBeforeCommand=Er,e.InsertRowByRangeCommand=Tr,e.InsertRowCommand=wr,e.InsertRowMutation=M,e.InsertRowMutationUndoFactory=we,e.InsertSheetCommand=Cs,e.InsertSheetMutation=fs,e.InsertSheetUndoMutationFactory=ds,e.InterceptCellContentPriority=y,e.MAX_CELL_PER_SHEET_KEY=yu,e.MERGE_CELL_INTERCEPTOR_CHECK=ea,e.MarkDirtyFilterChangeMutation=au,e.MarkDirtyRowAutoHeightOperation=cu,Object.defineProperty(e,"MergeCellController",{enumerable:!0,get:function(){return ta}}),e.MoveColsCommand=Zr,e.MoveColsMutation=Ae,e.MoveColsMutationUndoFactory=ke,e.MoveRangeCommand=ar,e.MoveRangeMutation=Ee,e.MoveRowsCommand=Yr,e.MoveRowsMutation=Oe,e.MoveRowsMutationUndoFactory=De,Object.defineProperty(e,"NumfmtService",{enumerable:!0,get:function(){return zu}}),e.OperatorType=ti,e.PermissionPointsDefinitions=Ku,e.REF_SELECTIONS_ENABLED=zn,e.RangeMergeUtil=ln,Object.defineProperty(e,"RangeProtectionCache",{enumerable:!0,get:function(){return ku}}),e.RangeProtectionPermissionDeleteProtectionPoint=zc,e.RangeProtectionPermissionEditPoint=Y,e.RangeProtectionPermissionManageCollaPoint=Bc,e.RangeProtectionPermissionViewPoint=Vc,Object.defineProperty(e,"RangeProtectionRefRangeService",{enumerable:!0,get:function(){return Hu}}),Object.defineProperty(e,"RangeProtectionRenderModel",{enumerable:!0,get:function(){return Ou}}),e.RangeProtectionRuleModel=B,Object.defineProperty(e,"RangeProtectionService",{enumerable:!0,get:function(){return Uu}}),e.RangeThemeStyle=ae,Object.defineProperty(e,"RefRangeService",{enumerable:!0,get:function(){return Ki}}),Object.defineProperty(e,"RefSelectionsService",{enumerable:!0,get:function(){return er}}),e.RefillCommand=ws,e.RegisterWorksheetRangeThemeStyleCommand=Ds,e.RegisterWorksheetRangeThemeStyleMutation=Ts,e.RemoveColByRangeCommand=Hr,e.RemoveColCommand=Ur,e.RemoveColMutation=F,e.RemoveDefinedNameCommand=Os,e.RemoveMergeUndoMutationFactory=I,e.RemoveNumfmtMutation=Xl,e.RemoveRangeThemeMutation=ou,e.RemoveRowByRangeCommand=zr,e.RemoveRowCommand=Br,e.RemoveRowMutation=P,e.RemoveSheetCommand=ks,e.RemoveSheetMutation=Gr,e.RemoveSheetUndoMutationFactory=Wr,e.RemoveWorksheetMergeCommand=oa,e.RemoveWorksheetMergeMutation=L,e.ReorderRangeCommand=ei,e.ReorderRangeMutation=Pe,e.ReorderRangeUndoMutationFactory=Ne,e.ResetBackgroundColorCommand=Fa,e.ResetTextColorCommand=Na,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=os,e.ScrollToCellOperation=uu,e.SelectRangeCommand=rr,e.SelectionMoveType=Ln,e.SetBackgroundColorCommand=Pa,e.SetBoldCommand=Ta,e.SetBorderBasicCommand=Us,e.SetBorderColorCommand=Hs,e.SetBorderCommand=zs,e.SetBorderPositionCommand=Bs,e.SetBorderStyleCommand=Vs,e.SetColDataCommand=Ws,e.SetColDataMutation=Re,e.SetColDataMutationFactory=Le,e.SetColHiddenCommand=qs,e.SetColHiddenMutation=Be,e.SetColVisibleMutation=He,e.SetColWidthCommand=Tc,e.SetDefinedNameCommand=$s,e.SetFontFamilyCommand=Aa,e.SetFontSizeCommand=ja,e.SetFrozenCommand=nc,e.SetFrozenMutation=tc,e.SetFrozenMutationFactory=ec,e.SetGridlinesColorCommand=ic,e.SetGridlinesColorMutation=Ue,e.SetHorizontalTextAlignCommand=La,e.SetItalicCommand=Ea,e.SetNumfmtMutation=Yl,e.SetOverlineCommand=ka,e.SetProtectionCommand=sc,e.SetRangeCustomMetadataCommand=cc,e.SetRangeProtectionMutation=J,e.SetRangeThemeMutation=su,e.SetRangeValuesCommand=ur,e.SetRangeValuesMutation=z,e.SetRangeValuesUndoMutationFactory=R,e.SetRowDataCommand=lc,e.SetRowDataMutation=yt,e.SetRowDataMutationFactory=vt,e.SetRowHeightCommand=Ul,e.SetRowHiddenCommand=fc,e.SetRowHiddenMutation=Ct,e.SetRowVisibleMutation=xt,e.SetSelectedColsVisibleCommand=Ks,e.SetSelectedRowsVisibleCommand=dc,e.SetSelectionsOperation=W,e.SetShrinkToFitCommand=za,e.SetSpecificColsVisibleCommand=Gs,e.SetSpecificRowsVisibleCommand=uc,e.SetStrikeThroughCommand=Oa,e.SetStyleCommand=q,e.SetTabColorCommand=bc,e.SetTabColorMutation=yc,e.SetTextColorCommand=Ma,e.SetTextRotationCommand=Ba,e.SetTextWrapCommand=Ra,e.SetUnderlineCommand=Da,e.SetVerticalTextAlignCommand=Ia,e.SetWorkbookNameCommand=Sc,e.SetWorkbookNameMutation=xc,e.SetWorksheetActivateCommand=Cc,e.SetWorksheetActiveOperation=zt,e.SetWorksheetColWidthMutation=Tt,e.SetWorksheetColWidthMutationFactory=wt,e.SetWorksheetColumnCountCommand=Dc,e.SetWorksheetColumnCountMutation=Dt,e.SetWorksheetColumnCountUndoMutationFactory=Et,e.SetWorksheetDefaultStyleCommand=Oc,e.SetWorksheetDefaultStyleMutation=Ot,e.SetWorksheetDefaultStyleMutationFactory=kt,e.SetWorksheetHideCommand=jc,e.SetWorksheetHideMutation=Ac,e.SetWorksheetNameCommand=Pc,e.SetWorksheetNameMutation=Nc,e.SetWorksheetOrderCommand=Lc,e.SetWorksheetOrderMutation=Ic,e.SetWorksheetPermissionPointsCommand=Il,e.SetWorksheetPermissionPointsMutation=Fl,e.SetWorksheetProtectionCommand=Ll,e.SetWorksheetProtectionMutation=oc,e.SetWorksheetRangeThemeStyleCommand=Sa,e.SetWorksheetRangeThemeStyleMutation=be,e.SetWorksheetRangeThemeStyleMutationFactory=xe,e.SetWorksheetRightToLeftCommand=Bl,e.SetWorksheetRightToLeftMutation=zl,e.SetWorksheetRowAutoHeightMutation=Lt,e.SetWorksheetRowAutoHeightMutationFactory=Pt,e.SetWorksheetRowCountCommand=Vl,e.SetWorksheetRowCountMutation=jt,e.SetWorksheetRowCountUndoMutationFactory=At,e.SetWorksheetRowHeightMutation=Ft,e.SetWorksheetRowHeightMutationFactory=Mt,e.SetWorksheetRowIsAutoHeightCommand=Wl,e.SetWorksheetRowIsAutoHeightMutation=It,e.SetWorksheetRowIsAutoHeightMutationFactory=Nt,e.SetWorksheetShowCommand=Gl,e.SheetCopyDownCommand=ns,e.SheetCopyRightCommand=rs,Object.defineProperty(e,"SheetInterceptorService",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"SheetLazyExecuteScheduleService",{enumerable:!0,get:function(){return ls}}),Object.defineProperty(e,"SheetPermissionCheckController",{enumerable:!0,get:function(){return wu}}),Object.defineProperty(e,"SheetPermissionInitController",{enumerable:!0,get:function(){return Eu}}),Object.defineProperty(e,"SheetRangeThemeModel",{enumerable:!0,get:function(){return j}}),Object.defineProperty(e,"SheetRangeThemeService",{enumerable:!0,get:function(){return Wu}}),e.SheetSkeletonChangeType=Bt,Object.defineProperty(e,"SheetSkeletonService",{enumerable:!0,get:function(){return H}}),e.SheetValueChangeType=Vt,Object.defineProperty(e,"SheetsFreezeSyncController",{enumerable:!0,get:function(){return Cu}}),Object.defineProperty(e,"SheetsSelectionsService",{enumerable:!0,get:function(){return V}}),e.SplitDelimiterEnum=fn,e.SplitTextToColumnsCommand=Kl,e.TextToNumberCommand=$l,e.ToggleCellCheckboxCommand=eu,e.ToggleGridlinesCommand=tu,e.ToggleGridlinesMutation=Rt,Object.defineProperty(e,"UniverSheetsPlugin",{enumerable:!0,get:function(){return Gu}}),e.UnregisterWorksheetRangeThemeStyleCommand=nu,e.UnregisterWorksheetRangeThemeStyleMutation=Es,e.VALIDATE_CELL=ne,e.ViewStateEnum=An,e.WorkbookCommentPermission=Wc,e.WorkbookCopyPermission=Gc,e.WorkbookCopySheetPermission=Kc,e.WorkbookCreateProtectPermission=qc,e.WorkbookCreateSheetPermission=Jc,e.WorkbookDeleteColumnPermission=Yc,e.WorkbookDeleteRowPermission=Xc,e.WorkbookDeleteSheetPermission=Zc,e.WorkbookDuplicatePermission=Qc,e.WorkbookEditablePermission=Z,e.WorkbookExportPermission=$c,e.WorkbookHideSheetPermission=el,e.WorkbookInsertColumnPermission=tl,e.WorkbookInsertRowPermission=nl,e.WorkbookManageCollaboratorPermission=rl,e.WorkbookMoveSheetPermission=il,Object.defineProperty(e,"WorkbookPermissionService",{enumerable:!0,get:function(){return Tu}}),e.WorkbookPrintPermission=al,e.WorkbookRecoverHistoryPermission=ol,e.WorkbookRenameSheetPermission=sl,e.WorkbookSelectionModel=Rn,e.WorkbookSharePermission=cl,e.WorkbookViewHistoryPermission=ul,e.WorkbookViewPermission=ll,e.WorksheetCopyPermission=dl,e.WorksheetDeleteColumnPermission=fl,e.WorksheetDeleteProtectionPermission=pl,e.WorksheetDeleteRowPermission=ml,e.WorksheetEditExtraObjectPermission=hl,e.WorksheetEditPermission=Q,e.WorksheetFilterPermission=gl,e.WorksheetInsertColumnPermission=_l,e.WorksheetInsertHyperlinkPermission=vl,e.WorksheetInsertRowPermission=yl,e.WorksheetManageCollaboratorPermission=bl,Object.defineProperty(e,"WorksheetPermissionService",{enumerable:!0,get:function(){return Pl}}),e.WorksheetPivotTablePermission=xl,e.WorksheetProtectionPointModel=Rc,e.WorksheetProtectionRuleModel=va,e.WorksheetSelectProtectedCellsPermission=Sl,e.WorksheetSelectUnProtectedCellsPermission=Cl,e.WorksheetSetCellStylePermission=wl,e.WorksheetSetCellValuePermission=Tl,e.WorksheetSetColumnStylePermission=El,e.WorksheetSetRowStylePermission=Dl,e.WorksheetSortPermission=Ol,e.WorksheetViewPermission=kl,Object.defineProperty(e,"ZebraCrossingCacheController",{enumerable:!0,get:function(){return Du}}),e.addMergeCellsUtil=ga,e.adjustRangeOnMutation=zi,e.alignToMergedCellsBorders=Gn,e.attachPrimaryWithCoord=rd,e.attachRangeWithCoord=td,e.attachSelectionWithCoord=nd,e.baseProtectionActions=Hc,e.checkCellValueType=f,e.checkRangesEditablePermission=qu,e.convertPositionCellToSheetOverGrid=ad,e.convertPositionSheetOverGridToAbsolute=id,e.convertPrimaryWithCoordToPrimary=dn,e.convertSelectionDataToRange=un,e.copyRangeStyles=Qn,e.countCells=Hn,e.createTopMatrixFromMatrix=rn,e.createTopMatrixFromRanges=nn,e.defaultLargeSheetOperationConfig=ss,e.defaultWorkbookPermissionPoints=jl,e.defaultWorksheetPermissionPoint=Nl,e.deserializeListOptions=kn,e.discreteRangeToRange=Tn,e.expandToContinuousRange=tn,e.factoryRemoveNumfmtUndoMutation=Zl,e.factorySetNumfmtUndoMutation=Jl,e.findAllRectangle=sn,e.findFirstNonEmptyCell=xn,e.followSelectionOperation=Jn,e.generateNullCell=Sn,e.generateNullCellValue=Cn,e.getAddMergeMutationRangeByType=$i,e.getAllRangePermissionPoint=X,e.getAllWorkbookPermissionPoint=Al,e.getAllWorksheetPermissionPoint=$,e.getAllWorksheetPermissionPointByPointPanel=Ml,e.getCellAtRowCol=Kn,e.getClearContentMutationParamForRange=da,e.getClearContentMutationParamsForRanges=ua,e.getDefaultRangePermission=Uc,e.getInsertRangeMutations=dr,e.getMoveRangeCommandMutations=sr,e.getMoveRangeUndoRedoMutations=cr,e.getNextPrimaryCell=ed,e.getPrimaryForRange=U,e.getRemoveRangeMutations=fr,e.getSelectionsService=nr,e.getSeparateEffectedRangesOnCommand=Hi,e.getSheetCommandTarget=m,e.getSheetCommandTargetWorkbook=p,e.getSheetMutationTarget=h,e.getSkeletonChangedEffectedRange=Gt,e.getValueChangedEffectedRange=Wt,e.getVisibleRanges=Dn,e.handleBaseInsertRange=yi,e.handleBaseMoveRowsCols=si,e.handleBaseRemoveRange=hi,e.handleCommonDefaultRangeChangeWithEffectRefCommands=Li,e.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=Ri,e.handleDefaultRangeChangeWithEffectRefCommands=Fi,e.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Ii,e.handleDeleteRangeMoveLeft=Di,e.handleDeleteRangeMoveUp=ki,e.handleDeleteRangeMutation=mr,e.handleIRemoveCol=gi,e.handleIRemoveRow=_i,e.handleInsertCol=Si,e.handleInsertRangeMoveDown=Ci,e.handleInsertRangeMoveRight=Ti,e.handleInsertRangeMutation=pr,e.handleInsertRow=xi,e.handleMoveCols=di,e.handleMoveRange=pi,e.handleMoveRows=ci,e.isCellImage=c,e.isSingleCellSelection=Yn,e.rangeMerge=cn,e.rangeToDiscreteRange=En,e.rotateRange=K,e.runRefRangeMutations=Pi,e.serializeListOptions=On,e.setEndForRange=qn,e.splitRangeText=_n,e.transformCellsToRange=Ql,e.validateDefinedName=Kt});
|