@univerjs/sheets 0.20.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/es/facade.js +1 -1
- package/lib/es/index.js +1 -1
- package/lib/facade.js +1 -1
- package/lib/index.js +1 -1
- package/lib/types/commands/commands/move-range.command.d.ts +18 -5
- package/lib/types/{services/permission/permission-point/workbook/history.d.ts → commands/mutations/mark-dirty-filter-change.mutation.d.ts} +6 -10
- package/lib/types/commands/{mutations/mark-dirty-auto-height.mutation.d.ts → operations/mark-dirty-auto-height.operation.d.ts} +4 -4
- package/lib/types/controllers/permission/sheet-permission-check.controller.d.ts +1 -1
- package/lib/types/facade/f-permission.d.ts +0 -1
- package/lib/types/facade/permission/permission-types.d.ts +0 -2
- package/lib/types/index.d.ts +3 -2
- package/lib/types/services/permission/permission-point/const.d.ts +0 -5
- package/lib/types/services/permission/permission-point/index.d.ts +0 -1
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +7 -7
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-render`),require(`@univerjs/engine-formula`),require(`rxjs/operators`),require(`@univerjs/rpc`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs`,`@univerjs/engine-render`,`@univerjs/engine-formula`,`rxjs/operators`,`@univerjs/rpc`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheets={},e.UniverCore,e.rxjs,e.UniverEngineRender,e.UniverEngineFormula,e.rxjs.operators,e.UniverRpc))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function s(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(l(a)){var u;return(0,t.isTextFormat)(a==null||(u=a.n)==null?void 0:u.pattern)?t.CellValueType.STRING:c(n,r)}return(0,t.isTextFormat)(o==null||(i=o.n)==null?void 0:i.pattern)?t.CellValueType.STRING:c(n,r)}function c(e,t){return e.v===void 0?u(t.v,t.t):u(e.v,e.t)}function l(e){var t;return!!(!(e==null||(t=e.n)==null)&&t.pattern)}function u(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 d(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 f(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 p(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 m=(e,n)=>{if(!p(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)}},h={id:`sheet.mutation.add-worksheet-merge`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(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}},g={CELL_CONTENT:(0,t.createInterceptorKey)(`CELL_CONTENT`),ROW_FILTERED:(0,t.createInterceptorKey)(`ROW_FILTERED`)},_=function(e){return e[e.DATA_VALIDATION=9]=`DATA_VALIDATION`,e[e.NUMFMT=10]=`NUMFMT`,e[e.CELL_IMAGE=11]=`CELL_IMAGE`,e}({}),v=`sheet.interceptor.range-theme-id`,y=`sheet.interceptor.ignore-range-theme`;function b(e){"@babel/helpers - typeof";return b=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},b(e)}function x(e,t){if(b(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(b(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function S(e){var t=x(e,`string`);return b(t)==`symbol`?t:t+``}function C(e,t,n){return(t=S(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e,t){return function(n,r){t(n,r,e)}}function T(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 E=(0,t.createInterceptorKey)(`BEFORE_CELL_EDIT`),D=(0,t.createInterceptorKey)(`AFTER_CELL_EDIT`),O=(0,t.createInterceptorKey)(`VALIDATE_CELL`),k=class extends t.Disposable{constructor(e){super(),this._univerInstanceService=e,C(this,`_interceptorsByName`,new Map),C(this,`_commandInterceptors`,[]),C(this,`_rangeInterceptors`,[]),C(this,`_autoHeightInterceptors`,[]),C(this,`_beforeCommandInterceptor`,[]),C(this,`_afterCommandInterceptors`,[]),C(this,`_workbookDisposables`,new Map),C(this,`_worksheetDisposables`,new Map),C(this,`_interceptorsDirty`,!1),C(this,`_composedInterceptorByKey`,new Map),C(this,`_composedInterceptorsLengthByKey`,new Map),C(this,`writeCellInterceptor`,new t.InterceptorManager({BEFORE_CELL_EDIT:E,AFTER_CELL_EDIT:D,VALIDATE_CELL:O})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(g.CELL_CONTENT,{priority:-1,effect:t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value,handler:e=>e}),this.disposeWithMe(this.writeCellInterceptor.intercept(D,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(E,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(O,{priority:-1,handler:e=>e}))}dispose(){super.dispose(),this._workbookDisposables.forEach(e=>e.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.forEach(e=>e.dispose()),this._worksheetDisposables.clear(),this._interceptorsByName.clear()}interceptCommand(e){if(this._commandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._commandInterceptors.push(e),this._commandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._commandInterceptors,e)))}onCommandExecute(e){let t=this._commandInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptAfterCommand(e){if(this._afterCommandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._afterCommandInterceptors.push(e),this._afterCommandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._afterCommandInterceptors,e)))}afterCommandExecute(e){let t=this._afterCommandInterceptors.map(t=>t.getMutations(e));return{undos:t.map(e=>e.undos).flat(),redos:t.map(e=>e.redos).flat()}}interceptAutoHeight(e){if(this._autoHeightInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._autoHeightInterceptors.push(e),this._autoHeightInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._autoHeightInterceptors,e)))}generateMutationsOfAutoHeight(e){let t=this._autoHeightInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptBeforeCommand(e){if(this._beforeCommandInterceptor.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._beforeCommandInterceptor.push(e),this._beforeCommandInterceptor.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._beforeCommandInterceptor,e)))}async beforeCommandExecute(e){return(await Promise.all(this._beforeCommandInterceptor.map(t=>t.performCheck(e)))).every(e=>e)}interceptRanges(e){if(this._rangeInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._rangeInterceptors.push(e),this._rangeInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._rangeInterceptors,e)))}generateMutationsByRanges(e){let t=this._rangeInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}onWriteCell(e,n,r,i,a){let o={subUnitId:n.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:n,row:r,col:i,origin:t.Tools.deepClone(a)};return this.writeCellInterceptor.fetchThroughInterceptors(D)(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(O)(Promise.resolve(!0),i)}intercept(e,n){let r=e;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);let i=this._interceptorsByName.get(r);i.push(n);let a=i.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)});if(this._interceptorsDirty=!0,r===g.CELL_CONTENT){let e=t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value;this._interceptorsByName.set(`${r}-${e}`,a);let i=t.InterceptorEffectEnum.Style|t.InterceptorEffectEnum.Value;return this._interceptorsByName.set(`${r}-${t.InterceptorEffectEnum.Style}`,a.filter(e=>((e.effect||i)&t.InterceptorEffectEnum.Style)>0)),this._interceptorsByName.set(`${r}-${t.InterceptorEffectEnum.Value}`,a.filter(e=>((e.effect||i)&t.InterceptorEffectEnum.Value)>0)),this.disposeWithMe((0,t.toDisposable)(()=>{(0,t.remove)(this._interceptorsByName.get(r),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${e}`),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${t.InterceptorEffectEnum.Style}`),n),(0,t.remove)(this._interceptorsByName.get(`${r}-${t.InterceptorEffectEnum.Value}`),n)}))}else return this._interceptorsByName.set(r,a),this.disposeWithMe((0,t.toDisposable)(()=>(0,t.remove)(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(e,n,r,i){var a;let o=n===void 0?e:`${e}-${n}`,s=r==null?o:r,c=this._composedInterceptorByKey.get(s),l=this._composedInterceptorsLengthByKey.get(s)||0;if(!c||!this._interceptorsDirty||l!==(((a=this._interceptorsByName.get(o))==null?void 0:a.length)||0)){let e=this._interceptorsByName.get(o);e&&i&&(e=e.filter(i)),c=(0,t.composeInterceptors)(e||[]),this._composedInterceptorByKey.set(s,c),this._composedInterceptorsLengthByKey.set(s,(e==null?void 0:e.length)||0)}return c}_interceptWorkbook(e){let n=new t.DisposableCollection,r=e.getUnitId(),i=this,a=n=>{let a=n.getSheetId();n.__interceptViewModel(o=>{let s=new t.DisposableCollection;i._worksheetDisposables.set(A(r,n),s),s.add(o.registerCellContentInterceptor({getCell(t,o,s,c,l){let u=n.getCellRaw(t,o);return i.fetchThroughInterceptors(g.CELL_CONTENT,s,c,l)(u,{unitId:r,subUnitId:a,row:t,col:o,worksheet:n,workbook:e,rawData:u})}})),s.add(o.registerRowFilteredInterceptor({getRowFiltered(t){return!!i.fetchThroughInterceptors(g.ROW_FILTERED)(!1,{unitId:r,subUnitId:a,row:t,workbook:e,worksheet:n})}}))})};e.getSheets().forEach(e=>a(e)),n.add(e.sheetCreated$.subscribe(e=>a(e))),n.add((0,t.toDisposable)(()=>e.getSheets().forEach(e=>this._disposeSheetInterceptor(r,e)))),n.add(e.sheetDisposed$.subscribe(e=>this._disposeSheetInterceptor(r,e))),this._workbookDisposables.set(r,n)}_disposeWorkbookInterceptor(e){let t=e.getUnitId(),n=this._workbookDisposables.get(t);n&&(n.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(e,t){let n=A(e,t),r=this._worksheetDisposables.get(n);r&&(r.dispose(),this._worksheetDisposables.delete(n))}};k=T([w(0,t.IUniverInstanceService)],k);function A(e,t){return`${e}|${t.getSheetId()}`}let j=e=>{let t={};return e.bg&&(t.bg={...e.bg}),e.ol&&(t.ol={...e.ol}),e.bd&&(t.bd={...e.bd}),e.cl&&(t.cl={...e.cl}),e.ht&&(t.ht=e.ht),e.vt&&(t.vt=e.vt),e.bl!==void 0&&(t.bl=e.bl),t};function ee(e){let t={};if(e.length===1)return e[0];for(let n of e)n.bg&&(t.bg=n.bg),n.ol&&(t.ol=n.ol),n.bd&&(t.bd={...t.bd,...n.bd}),n.cl&&(t.cl=n.cl),n.ht&&(t.ht=n.ht),n.vt&&(t.vt=n.vt),n.bl!==void 0&&(t.bl=n.bl);return t}let M={wholeStyle:1,headerRowStyle:2,headerColumnStyle:4,firstRowStyle:8,secondRowStyle:16,lastRowStyle:32,firstColumnStyle:128,secondColumnStyle:256,lastColumnStyle:512};var te=class{constructor(e,t){C(this,`_name`,void 0),C(this,`wholeStyle`,null),C(this,`headerRowStyle`,null),C(this,`headerColumnStyle`,null),C(this,`firstRowStyle`,null),C(this,`secondRowStyle`,null),C(this,`lastRowStyle`,null),C(this,`firstColumnStyle`,null),C(this,`secondColumnStyle`,null),C(this,`lastColumnStyle`,null),C(this,`_mergeCacheMap`,new Map),t&&this.fromJson({...t,name:e}),this._name=e}getName(){return this._name}getWholeStyle(){return this.wholeStyle}setWholeStyle(e){this.wholeStyle=e,this._resetStyleCache()}getFirstRowStyle(){return this.firstRowStyle}setFirstRowStyle(e){this.firstRowStyle=e,this._resetStyleCache()}getSecondRowStyle(){return this.secondRowStyle}setSecondRowStyle(e){this.secondRowStyle=e,this._resetStyleCache()}getLastRowStyle(){return this.lastRowStyle}setLastRowStyle(e){this.lastRowStyle=e,this._resetStyleCache()}getFirstColumnStyle(){return this.firstColumnStyle}setFirstColumnStyle(e){this.firstColumnStyle=e,this._resetStyleCache()}getSecondColumnStyle(){return this.secondColumnStyle}setSecondColumnStyle(e){this.secondColumnStyle=e,this._resetStyleCache()}getLastColumnStyle(){return this.lastColumnStyle}setLastColumnStyle(e){this.lastColumnStyle=e,this._resetStyleCache()}getHeaderRowStyle(){return this.headerRowStyle}setHeaderRowStyle(e){this.headerRowStyle=e,this._resetStyleCache()}getHeaderColumnStyle(){return this.headerColumnStyle}setHeaderColumnStyle(e){this.headerColumnStyle=e,this._resetStyleCache()}getStyle(e,t,n,r,i){let a=0;return n&&(a|=M.lastRowStyle),r&&(a|=M.lastColumnStyle),e>=0&&t>=0&&(a|=M.wholeStyle),e%2==1&&(a|=i?M.secondRowStyle:M.firstRowStyle),e%2==0&&(a|=i?M.firstRowStyle:M.secondRowStyle),e===0&&(a|=M.headerRowStyle),t===0&&(a|=M.headerColumnStyle),t%2==1&&(a|=M.firstColumnStyle),t%2==0&&(a|=M.secondColumnStyle),a===0?null:this._getMergeStyle(a)}_getMergeStyle(e){let t=this._mergeCacheMap.get(e);return t||(t=this._mergeStyle(e),this._mergeCacheMap.set(e,t)),t}_mergeStyle(e){let t=[];return this.wholeStyle&&e&M.wholeStyle&&t.push(this.wholeStyle),this.firstColumnStyle&&e&M.firstColumnStyle&&t.push(this.firstColumnStyle),this.secondColumnStyle&&e&M.secondColumnStyle&&t.push(this.secondColumnStyle),this.firstRowStyle&&e&M.firstRowStyle&&t.push(this.firstRowStyle),this.secondRowStyle&&e&M.secondRowStyle&&t.push(this.secondRowStyle),this.headerColumnStyle&&e&M.headerColumnStyle&&t.push(this.headerColumnStyle),this.lastColumnStyle&&e&M.lastColumnStyle&&t.push(this.lastColumnStyle),this.headerRowStyle&&e&M.headerRowStyle&&t.push(this.headerRowStyle),this.lastRowStyle&&e&M.lastRowStyle&&t.push(this.lastRowStyle),ee(t)}_resetStyleCache(){this._mergeCacheMap.clear()}toJson(){let e={name:this._name};return this.wholeStyle&&(e.wholeStyle=j(this.wholeStyle)),this.headerRowStyle&&(e.headerRowStyle=j(this.headerRowStyle)),this.headerColumnStyle&&(e.headerColumnStyle=j(this.headerColumnStyle)),this.firstRowStyle&&(e.firstRowStyle=j(this.firstRowStyle)),this.secondRowStyle&&(e.secondRowStyle=j(this.secondRowStyle)),this.lastRowStyle&&(e.lastRowStyle=j(this.lastRowStyle)),this.firstColumnStyle&&(e.firstColumnStyle=j(this.firstColumnStyle)),this.secondColumnStyle&&(e.secondColumnStyle=j(this.secondColumnStyle)),this.lastColumnStyle&&(e.lastColumnStyle=j(this.lastColumnStyle)),e}fromJson(e){this._name=e.name,e.wholeStyle&&(this.wholeStyle=j(e.wholeStyle)),e.headerRowStyle&&(this.headerRowStyle=j(e.headerRowStyle)),e.headerColumnStyle&&(this.headerColumnStyle=j(e.headerColumnStyle)),e.firstRowStyle&&(this.firstRowStyle=j(e.firstRowStyle)),e.secondRowStyle&&(this.secondRowStyle=j(e.secondRowStyle)),e.lastRowStyle&&(this.lastRowStyle=j(e.lastRowStyle)),e.firstColumnStyle&&(this.firstColumnStyle=j(e.firstColumnStyle)),e.secondColumnStyle&&(this.secondColumnStyle=j(e.secondColumnStyle)),e.lastColumnStyle&&(this.lastColumnStyle=j(e.lastColumnStyle))}dispose(){this._mergeCacheMap.clear()}};let ne=(e,t,n)=>new te(`light-${e}`,{headerRowStyle:{bg:{rgb:t}},firstColumnStyle:{bg:{rgb:`rgb(255, 255, 255)`}},secondColumnStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}}}),re=(e,t,n)=>new te(`middle-${e}`,{headerRowStyle:{bg:{rgb:t}},headerColumnStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}},lastColumnStyle:{bg:{rgb:n}}}),ie=(e,n,r,i)=>new te(`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}}}),ae=[{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)`}],oe=[{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)`}],se=[{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)`}],ce=ae.map(({baseName:e,header:t,color:n})=>ne(e,t,n)),le=oe.map(({baseName:e,rowHeader:t,colHeader:n})=>re(e,t,n)),ue=se.map(({baseName:e,rowHeader:t,firstRow:n,secondRow:r})=>ie(e,t,n,r)),de=[...ce,...le,...ue],fe={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)`}}},pe=new te(`default`,fe),me=new te(`default-last-row`,{...fe,lastRowStyle:{bd:{t:{s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(68,114,196)`}}},ht:t.HorizontalAlign.CENTER,bl:t.BooleanNumber.TRUE}});var he=class{constructor(){C(this,`_toggleRanges`,[])}refresh(e,t){let{startRow:n,endRow:r}=e,i=[],a=0,o=!1,s=-1;for(let e=n;e<=r;e++){if(!t(e)){a++,a%2==1?o=!0:(o=!1,s!==-1&&(i.push([s,e-1]),s=-1));continue}a%2==1?o?s===-1&&(s=e):(o=!0,s=e):o&&(i.push([s,e-2]),o=!1,s=-1),e===r&&o&&i.push([s,e])}this._toggleRanges=i}getToggleRanges(){return this._toggleRanges.concat()}getIsToggled(e){let t=0,n=this._toggleRanges.length-1;for(;t<=n;){let r=Math.floor((t+n)/2),[i,a]=this._toggleRanges[r];if(e<i)n=r-1;else if(e>a)t=r+1;else return!0}return!1}};let N=class extends t.Disposable{constructor(e,t,r){super(),this._sheetInterceptorService=e,this._resourceManagerService=t,this._univerInstanceService=r,C(this,`_rangeThemeStyleMap`,new Map),C(this,`_rangeThemeStyleRuleMap`,new Map),C(this,`_rTreeCollection`,new Map),C(this,`_defaultRangeThemeMap`,new Map),C(this,`_zebraCrossingCacheMap`,new Map),C(this,`_rowVisibleFuncSet`,new Map),C(this,`_rangeThemeMapChanged$`,new n.Subject),C(this,`rangeThemeMapChange$`,this._rangeThemeMapChanged$.asObservable()),this._registerIntercept(),this._initSnapshot(),this._initDefaultTheme()}_initDefaultTheme(){this.registerDefaultRangeTheme(pe),this.registerDefaultRangeTheme(me);for(let e of de)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 he),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(g.CELL_CONTENT,{id:v,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 te(n.name);i.fromJson(n),this._ensureRangeThemeStyleMap(e).set(i.getName(),i)})}deleteUnitId(e){this._rangeThemeStyleMap.delete(e),this._rangeThemeStyleRuleMap.delete(e),this._rTreeCollection.delete(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>this.toJson(e),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:`SHEET_RANGE_THEME_MODEL_PLUGIN`,onLoad:(e,t)=>{this.fromJSON(e,t)},onUnLoad:e=>{this.deleteUnitId(e)}}))}dispose(){super.dispose(),this._rangeThemeStyleMap.clear(),this._rangeThemeStyleRuleMap.clear(),this._defaultRangeThemeMap.clear(),this._rTreeCollection.clear(),this._zebraCrossingCacheMap.clear(),this._rowVisibleFuncSet.clear()}};N=T([w(0,(0,t.Inject)(k)),w(1,(0,t.Inject)(t.IResourceManagerService)),w(2,(0,t.Inject)(t.IUniverInstanceService))],N);let ge={id:`sheet.mutation.set-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!f(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.registerRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},_e=(e,n)=>{let r=p(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}},ve={id:`sheet.mutation.remove-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!f(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.removeRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},ye=(e,n)=>{let r=p(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}},be=(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertRowMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},P={id:`sheet.mutation.insert-row`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(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}},xe=(e,n)=>{if(!p(e.get(t.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},Se={id:`sheet.mutation.insert-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);if(!r)throw Error(`Workbook or Worksheet not found at InsertColMutation`);let{worksheet:i}=r,a=i.getColumnManager(),{range:o,colInfo:s}=n,{startColumn:c,endColumn:l}=o;a.insertColumnsWithData(c,l,s);let u=l-c+1;return i.setColumnCount(i.getColumnCount()+u),i.getCellMatrix().insertColumns(o.startColumn,u),!0}},Ce={id:`sheet.mutation.move-range`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{from:r,to:i}=n;if(!r||!i)return!1;let a=e.get(t.IUniverInstanceService).getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;let o=a.getSheetBySheetId(n.from.subUnitId),s=a.getSheetBySheetId(n.to.subUnitId);if(!o||!s)return!1;let c=o.getCellMatrix(),l=s.getCellMatrix();return new t.ObjectMatrix(r.value).forValue((e,t,n)=>{n==null?c.realDeleteValue(e,t):c.setValue(e,t,n)}),new t.ObjectMatrix(i.value).forValue((e,t,n)=>{n==null?l.realDeleteValue(e,t):l.setValue(e,t,n)}),!0}};function we(e,n){let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=a.startRow>o.startRow,c=a.endRow-a.startRow+1;return s?{unitId:r,subUnitId:i,sourceRange:t.Rectangle.clone(o),targetRange:{...a,endRow:a.endRow+c,startRow:a.startRow+c}}:{unitId:r,subUnitId:i,targetRange:t.Rectangle.clone(a),sourceRange:{...o,endRow:o.endRow-c,startRow:o.startRow-c}}}let Te={id:`sheet.mutation.move-rows`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(!s)throw Error(`[MoveRowMutation] univerSheet is null!`);let c=s.getSheetBySheetId(i);if(!c)throw Error(`[MoveRowMutation] worksheet is null!`);let l=a.startRow,u=a.endRow-a.startRow+1,d=o.startRow;return(0,t.moveMatrixArray)(l,u,d,c.getRowManager().getRowData()),c.getCellMatrix().moveRows(l,u,d),!0}};function Ee(e,n){let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=a.startColumn>o.startColumn,c=a.endColumn-a.startColumn+1;return s?{unitId:r,subUnitId:i,sourceRange:t.Rectangle.clone(o),targetRange:{...a,endColumn:a.endColumn+c,startColumn:a.startColumn+c}}:{unitId:r,subUnitId:i,targetRange:t.Rectangle.clone(a),sourceRange:{...o,startColumn:o.startColumn-c,endColumn:o.endColumn-c}}}let De={id:`sheet.mutation.move-columns`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(!s)throw Error(`[MoveColumnMutation] univerSheet is null!`);let c=s.getSheetBySheetId(i);if(!c)throw Error(`[MoveColumnMutation] worksheet is null!`);let l=a.startColumn,u=a.endColumn-a.startColumn+1,d=o.startColumn;return(0,t.moveMatrixArray)(l,u,d,c.getColumnManager().getColumnData()),c.getCellMatrix().moveColumns(l,u,d),!0}},Oe=(e,n)=>{let r=n.getRowManager().getRowData(),i={},a=e.range,o=(0,t.concatMatrixArray)(i,(0,t.sliceMatrixArray)(a.startRow,a.endRow,r));return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,rowInfo:o}},ke={id:`sheet.mutation.remove-rows`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=n.range,o=i.getRowManager().getRowData(),s=[];for(let e=a.startRow;e<=a.endRow;e++)i.getRowFiltered(e)&&s.push(e);let c=a.endRow-a.startRow+1;return(0,t.spliceArray)(a.startRow,c,o),i.getCellMatrix().removeRows(a.startRow,c),i.setRowCount(i.getRowCount()-c),!0}},Ae=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(i==null)throw Error(`worksheet is null error!`);let a=i.getColumnManager().getColumnData(),o={},s=n.range,c=(0,t.concatMatrixArray)(o,(0,t.sliceMatrixArray)(s.startColumn,s.endColumn,a));return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,colInfo:c}},F={id:`sheet.mutation.remove-col`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=n.range,o=i.getColumnManager().getColumnData(),s=a.endColumn-a.startColumn+1;return(0,t.spliceArray)(a.startColumn,s,o),i.setColumnCount(i.getColumnCount()-s),i.getCellMatrix().removeColumns(a.startColumn,s),!0}},I=(e,n)=>{let r=p(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=p(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}},je=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},Me={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 Ne(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 Pe(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 Fe=(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]=Pe(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Ie={id:`sheet.mutation.set-col-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{columnData:r}=n,i=f(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}},Le=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Re={id:`sheet.mutation.set-col-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.TRUE)}}return!0}},ze=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Be={id:`sheet.mutation.set-col-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let e=0;e<n.ranges.length;e++){let r=n.ranges[e];for(let e=r.startColumn;e<r.endColumn+1;e++){let n=i.getColumnOrCreate(e);n!=null&&(n.hd=t.BooleanNumber.FALSE)}}return!0}},Ve={id:`sheet.mutation.set-gridlines-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=f(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.gridlinesColor=n.color,!0}};function He(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ue(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function We(e,t,n){if(e==null)return e;if(!He(e))return;let r={},i=!1;if(Ue(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 Ge(e,t,n){if(e==null)return e;if(!He(e))return;let r={},i=!1;return Ue(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Ke(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 qe(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function Je(e){return We(e,t.COLOR_STYLE_KEYS)}function Ye(e){return We(e,t.TEXT_DECORATION_KEYS,{cl:Je})}function Xe(e){return We(e,t.BORDER_STYLE_KEYS,{cl:Je})}function Ze(e){return Ge(e,t.BORDER_KEYS,Xe)}function Qe(e){return We(e,t.TEXT_ROTATION_KEYS)}function $e(e){return We(e,t.PADDING_KEYS)}function et(e){if(e==null)return e;if(!(!He(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function tt(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return Ye(t);case`bg`:case`cl`:return Je(t);case`bd`:return Ze(t);case`tr`:return Qe(t);case`pd`:return $e(t);case`n`:return et(t);default:return qe(t)?t:void 0}}function nt(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=t.Tools.isObject(e)?{...e}:{};return Ue(r,t.BORDER_KEYS,(e,t)=>{let n=Xe(t);n!==void 0&&(i[e]=n)}),i}function rt(e,n,r){let i=e.getStyleByCell(n);i==null&&delete n.s,typeof r.s==`string`&&(r.s=e.get(r.s));let a=ot(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:ct(n.p,r.s?r.s:null)}}function it(e,n){if(!n||!Object.keys(n).length)return e;let r=t.Tools.deepClone(e==null?{}:e)||{},i=n;for(let e of t.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(i,e))continue;let t=tt(e,i[e]);t!==void 0&&(e===`bd`?r[e]=at(r[e]||{},t):e in r||(r[e]=null))}return r}function at(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 ot(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&&Ke(e))continue;let t=tt(e,a[e]);t!==void 0&&(e===`bd`?i[e]=nt(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 st(e,t){return e.some(e=>e.startIndex===t)?st(e,t+1):t}function ct(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=ot({},n,!0);o&&t.Tools.removeNull(o),t.Tools.isEmptyObject(o)||(r.ts=o),a.push(r)}let l=ot(c,n,!0);l&&t.Tools.removeNull(l),t.Tools.isEmptyObject(l)?delete r.ts:r.ts=l,a.push(r),i=st(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=ot({},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 lt(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?ut(n.v)?1:0:e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ut(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 dt(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}=n,o=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(o==null)throw Error(`workbook is null error!`);let s=o.getSheetBySheetId(i);if(s==null)throw Error(`worksheet is null error!`);let c=s.getCellMatrix(),l=o.getStyles(),u=new t.ObjectMatrix;return new t.ObjectMatrix(a).forValue((e,n,r)=>{let i=t.Tools.deepClone(c==null?void 0:c.getValue(e,n))||{};i.s=it(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(e,n,dt(i))}),{...n,options:{},cellValue:u.getMatrix()}},z={id:`sheet.mutation.set-range-values`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{cellValue:r,subUnitId:i,unitId:a}=n,o=e.get(t.IUniverInstanceService).getUnit(a);if(!o)return!1;let s=o.getSheetBySheetId(i);if(!s)return!1;let c=s.getCellMatrix(),l=o.getStyles();return new t.ObjectMatrix(r).forValue((e,n,r)=>{if(!r)c.realDeleteValue(e,n);else{let i=c.getValue(e,n)||{};i=pt(r,i,l),t.Tools.isEmptyObject(i)?c.realDeleteValue(e,n):c.setValue(e,n,i)}}),!0}},ft=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function pt(e,t,n){let r=s(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(ft.has(a)){let n=e[a];mt(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=lt(r,e)):a===`s`&&rt(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=lt(r,t)),t.v===null&&(delete t.t,delete t.v),t}function mt(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let ht=(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]=Ne(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},gt={id:`sheet.mutation.set-row-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowData:r}=n,i=f(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}},_t=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},vt={id:`sheet.mutation.set-row-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=0)}}return!0}},yt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},bt={id:`sheet.mutation.set-row-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=1)}}return!0}},xt=(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}},St={id:`sheet.mutation.set-worksheet-col-width`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=f(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}},Ct=(e,n)=>{let r=p(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()}},wt={id:`sheet.mutation.set-worksheet-column-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Tt={id:`sheet.mutation.set-worksheet-default-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=f(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},Et=(e,n)=>{let r=p(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()}},Dt=(e,n)=>{let r=p(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()}},Ot={id:`sheet.mutation.set-worksheet-row-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},kt=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getRowManager();for(let{startRow:e,endRow:n}of i)for(let r=e;r<n+1;r++){var s,c;a[r]=(s=(c=o.getRow(r))==null?void 0:c.h)==null?t.getConfig().defaultRowHeight:s}return{unitId:n,subUnitId:r,ranges:i,rowHeight:a}},At=(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}},jt=(e,t)=>{let{unitId:n,subUnitId:r,rowsAutoHeightInfo:i}=e,a=[],o=t.getRowManager();for(let e of i){var s,c;let{row:n}=e;a.push({row:n,autoHeight:(s=(c=o.getRow(n))==null?void 0:c.ah)==null?t.getConfig().defaultRowHeight:s})}return{unitId:n,subUnitId:r,rowsAutoHeightInfo:a}},Mt={id:`sheet.mutation.set-worksheet-row-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,rowHeight:i}=n,a=f(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}},Nt={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let o=a.worksheet.getRowManager();for(let{startRow:e,endRow:t}of r)for(let n=e;n<=t;n++){let e=o.getRowOrCreate(n);if(typeof i==`number`)e.ia=i;else{var s;e.ia=(s=i[n])==null?void 0:s}}return!0}},Pt={id:`sheet.mutation.set-worksheet-row-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowsAutoHeightInfo:r}=n,i=f(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}},Ft={id:`sheet.mutation.toggle-gridlines`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=f(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},It={id:`sheet.operation.set-worksheet-active`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getWorksheets();for(let[,e]of i)if(e.getSheetId()===n.subUnitId)return r.setActiveSheet(e),!0;return!1}},B=function(e){return e.SET_WORKSHEET_ROW_HEIGHT=`sheet.mutation.set-worksheet-row-height`,e.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-is-auto-height`,e.SET_WORKSHEET_ROW_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-auto-height`,e.SET_WORKSHEET_COL_WIDTH=`sheet.mutation.set-worksheet-col-width`,e.SET_WORKSHEET_ACTIVE=`sheet.operation.set-worksheet-active`,e.MOVE_ROWS=`sheet.mutation.move-rows`,e.MOVE_COLUMNS=`sheet.mutation.move-columns`,e.SET_COL_HIDDEN=`sheet.mutation.set-col-hidden`,e.SET_COL_VISIBLE=`sheet.mutation.set-col-visible`,e.SET_ROW_HIDDEN=`sheet.mutation.set-row-hidden`,e.SET_ROW_VISIBLE=`sheet.mutation.set-row-visible`,e.INSERT_COL=`sheet.mutation.insert-col`,e.INSERT_ROW=`sheet.mutation.insert-row`,e.REMOVE_COL=`sheet.mutation.remove-col`,e.REMOVE_ROW=`sheet.mutation.remove-rows`,e.TOGGLE_GRIDLINES=`sheet.mutation.toggle-gridlines`,e.SET_GRIDLINES_COLOR=`sheet.mutation.set-gridlines-color`,e}({}),Lt=function(e){return e.SET_RANGE_VALUES=`sheet.mutation.set-range-values`,e.MOVE_RANGE=`sheet.mutation.move-range`,e.REMOVE_WORKSHEET_MERGE=`sheet.mutation.remove-worksheet-merge`,e.ADD_WORKSHEET_MERGE=`sheet.mutation.add-worksheet-merge`,e.REORDER_RANGE=`sheet.mutation.reorder-range`,e.SET_WORKSHEET_DEFAULT_STYLE=`sheet.mutation.set-worksheet-default-style`,e.SET_ROW_DATA=`sheet.mutation.set-row-data`,e.SET_COL_DATA=`sheet.mutation.set-col-data`,e.SET_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.set-worksheet-range-theme-style`,e.DELETE_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.delete-worksheet-range-theme-style`,e}({}),Rt=[Mt.id,Nt.id,Pt.id,St.id,It.id,Te.id,De.id,Re.id,Be.id,bt.id,vt.id,Se.id,P.id,F.id,ke.id,Ft.id,Ve.id,Ot.id,wt.id],zt=[z.id,Ce.id,L.id,h.id,Me.id,Tt.id,gt.id,Ie.id,ge.id,ve.id];function Bt(e,n){switch(n.id){case Lt.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 Lt.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 Lt.REMOVE_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Lt.ADD_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Lt.REORDER_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case Lt.SET_WORKSHEET_DEFAULT_STYLE:{let t=f(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 Lt.SET_ROW_DATA:{let t=f(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 Lt.SET_COL_DATA:{let t=f(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 Lt.SET_WORKSHEET_RANGE_THEME_STYLE:case Lt.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function Vt(e,n){switch(e.id){case B.SET_WORKSHEET_ROW_HEIGHT:case B.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 B.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 B.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 B.MOVE_ROWS:case B.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 B.SET_COL_HIDDEN:case B.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 B.SET_ROW_HIDDEN:case B.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 B.INSERT_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case B.INSERT_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case B.REMOVE_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case B.REMOVE_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case B.TOGGLE_GRIDLINES:case B.SET_GRIDLINES_COLOR:return[];default:return[]}}function Ht(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Ut(e,t){return e&&e.spanAnchor?Ht(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Ht(e)}function Wt(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 Gt(e,n,r,i){let{startRow:a,startColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o-r);if(l=l||Ut(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 Kt(e,n,r,i){let{startRow:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o+r);if(l=l||Ut(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=l||Ut(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 Jt(e,n,r,i){let{startColumn:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=o;e++){let t=n.getValue(s+r,e);if(l=l||Ut(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 Yt({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);Ut(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);Ut(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);Ut(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);Ut(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 Xt(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Wt(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=Yt({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}=Jt(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}=Gt(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}=Kt(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 Zt=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},Qt=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},$t=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},en=(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},tn=e=>{let t=[],n=$t(e);for(;n.area>0;)n.range&&(t.push(n.range),en(e,n.range)),n=$t(e);return t},nn=e=>tn(Zt(e));var rn=class{constructor(){C(this,`_matrix`,new t.ObjectMatrix)}add(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return tn(Qt(this._matrix))}};function an(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=on(n)),i}function on(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 sn=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 cn=class{constructor(){C(this,`_tabCount`,0),C(this,`_commaCount`,0),C(this,`_semicolonCount`,0),C(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?sn.Tab:e===this._commaCount?sn.Comma:e===this._semicolonCount?sn.Semicolon:e===this._spaceCount?sn.Space:sn.Tab}};function ln(e,t,n){let r=[];n!==void 0&&(e&sn.Custom)>0&&r.push(n),(e&sn.Tab)>0&&r.push(` `),(e&sn.Comma)>0&&r.push(`,`),(e&sn.Semicolon)>0&&r.push(`;`),(e&sn.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=un(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function un(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}let dn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function fn(e){if(e!=null){if(e.p)return dn(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 pn(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&sn.Custom)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new cn:null,f=[];for(let t=s;t<=l;t++){let n=fn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=ln(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 mn=(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)},{}),hn=(e=0)=>{let t=e;return function(){return t++}};function gn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function _n(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(gn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function vn(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 yn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})}),n.clone()}function bn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{s:null})}),n.clone()}function xn(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 Sn(e,n,r,i){let a=n.get(t.IUniverInstanceService),o=r?a.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),s=i?o==null?void 0:o.getSheetBySheetId(i):o==null?void 0:o.getActiveSheet();if(!s)return null;let{startRow:c,endRow:l,startColumn:u,endColumn:d}=e,f=[],p=[];for(let e=c;e<=l;e++)s.getRowFiltered(e)||f.push(e);for(let e=u;e<=d;e++)p.push(e);return{rows:f,cols:p}}function Cn(e,n,r,i){let a=f(n.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!a)return e;let{worksheet:o}=a,s=[];for(let t of e){let{startRow:e,endRow:n,startColumn:r,endColumn:i}=t,a=[],c=e;for(let t=e;t<=n;t++)o.getRowFiltered(t)?(c<t&&a.push([c,t-1]),c=t+1):t===n&&a.push([c,n]);let l=s.findIndex(e=>e.startColumn===r&&e.endColumn===i);l>-1?s[l].rowIntervals=s[l].rowIntervals.concat(a):s.push({startColumn:r,endColumn:i,rowIntervals:a})}let c=[];for(let e of s){let{startColumn:n,endColumn:r,rowIntervals:i}=e,a=(0,t.mergeIntervals)(i);for(let[e,t]of a)c.push({startRow:e,endRow:t,startColumn:n,endColumn:r})}return c}let wn=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),Tn=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var V=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange$`,new n.Subject),C(this,`ruleChange$`,this._ruleChange$.asObservable()),C(this,`_ruleRefresh$`,new n.Subject),C(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),C(this,`_rangeRuleInitStateChange`,new n.BehaviorSubject(!1)),C(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 En=(e,t)=>{let n=e.get(V),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:kn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Dn={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(V);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},On=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Dn.id,params:t}},kn={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(V);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},An={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(V),{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(kn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:kn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:Dn.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},H=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 jn=class extends t.Disposable{constructor(e){super(),this._workbook=e,C(this,`_worksheetSelections`,new Map),C(this,`_worksheetLastSelectionPrimaryCell`,new Map),C(this,`_selectionMoveStart$`,new n.Subject),C(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),C(this,`_selectionMoving$`,new n.Subject),C(this,`selectionMoving$`,this._selectionMoving$.asObservable()),C(this,`_selectionMoveEnd$`,new n.BehaviorSubject([])),C(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),C(this,`_selectionSet$`,new n.BehaviorSubject([])),C(this,`selectionSet$`,this._selectionSet$.asObservable()),C(this,`selectionChanged$`,void 0),C(this,`_beforeSelectionMoveEnd$`,new n.BehaviorSubject([])),C(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 H.MOVE_START:this._selectionMoveStart$.next(t);break;case H.MOVING:this._selectionMoving$.next(t);break;case H.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case H.ONLY_SET:this._selectionSet$.next(t);break;default:this._selectionSet$.next(t);break}}getCurrentSelections(){return this._getCurrentSelections()}getSelectionOfWorksheet(e){return this.getSelectionsOfWorksheet(e)}getSelectionsOfWorksheet(e){return this._worksheetSelections.has(e)||this._worksheetSelections.set(e,[]),this._worksheetSelections.get(e)}getLastSelectionPrimaryCellOfWorksheet(e){var t;return(t=this._worksheetLastSelectionPrimaryCell.get(e))==null?null:t}setSelectionsOfWorksheet(e,t){this._worksheetSelections.set(e,[...t]),t.length>0&&t[t.length-1].primary&&this._worksheetLastSelectionPrimaryCell.set(e,t[t.length-1].primary)}deleteSheetSelection(e){this._worksheetSelections.set(e,[]),this._worksheetLastSelectionPrimaryCell.delete(e)}clear(){this._worksheetSelections.clear(),this._worksheetLastSelectionPrimaryCell.clear(),this._selectionSet$.next([])}_getCurrentSelections(){return this.getSelectionsOfWorksheet(this._workbook.getActiveSheet().getSheetId())}getCurrentLastSelection(){let e=this._getCurrentSelections();return e[e.length-1]}};let U=class extends t.RxDisposable{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return null;let n=e.getActiveSheet();return{unitId:e.getUnitId(),sheetId:n.getSheetId()}}get currentSelectionParam(){return this._currentSelectionPos}constructor(e){super(),this._instanceSrv=e,C(this,`_cellStylesCache`,new Map),C(this,`selectionMoveStart$`,void 0),C(this,`selectionMoving$`,void 0),C(this,`selectionMoveEnd$`,void 0),C(this,`selectionSet$`,void 0),C(this,`selectionChanged$`,void 0),C(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.shareReplay)(1),(0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe().pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionSet$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionChanged$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,n.of)([]))).pipe((0,n.distinctUntilChanged)((e,t)=>e.length===t.length?e.length===0&&t.length===0?!0:e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n])):!1),(0,n.skip)(1)).pipe((0,n.takeUntil)(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe((0,n.takeUntil)(this.dispose$)).subscribe(()=>{this._cellStylesCache.clear()}))}dispose(){super.dispose(),this._cellStylesCache.clear(),this._workbookSelections.forEach(e=>e.dispose()),this._workbookSelections.clear(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)([]),this.selectionSet$=(0,n.of)(null),this.selectionChanged$=(0,n.of)(null)}clear(){this._workbookSelections.forEach(e=>e.clear())}getCurrentSelections(){return this._getCurrentSelections()}getCurrentLastSelection(){let e=this._getCurrentSelections();return e==null?void 0:e[e.length-1]}getCurrentLastSelectionPrimaryCell(){let e=this._currentSelectionPos;if(!e)return null;let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getLastSelectionPrimaryCellOfWorksheet(n)}addSelections(e,t,n){if(typeof e==`string`){this._ensureWorkbookSelection(e).addSelections(t,n);return}let r=this._currentSelectionPos;if(!r)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:i,sheetId:a}=r;this._ensureWorkbookSelection(i).addSelections(a,e)}setSelections(e,t,n,r){if(typeof e==`string`&&typeof t==`string`){let i=e;this._ensureWorkbookSelection(i).setSelections(t,n||[],r==null?H.ONLY_SET:r);return}let i=this._currentSelectionPos;if(!i)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:a,sheetId:o}=i;if(typeof e==`object`){var s;let r=e==null?n:e,i=(s=t)==null?H.ONLY_SET:s;this._ensureWorkbookSelection(a).setSelections(o,r,i)}}clearCurrentSelections(){this._getCurrentSelections().splice(0)}isOverlapping(){let e=this.getCurrentSelections();return e==null?!1:e.some(({range:t},n)=>e.some(({range:e},r)=>n===r?!1:t.startRow<=e.endRow&&t.endRow>=e.startRow&&t.startColumn<=e.endColumn&&t.endColumn>=e.startColumn))}_getCurrentSelections(){let e=this._currentSelectionPos;if(!e)return[];let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getSelectionsOfWorksheet(n)}getWorkbookSelections(e){return this._ensureWorkbookSelection(e)}_ensureWorkbookSelection(e){let t=this._workbookSelections.get(e);if(!t){let n=this._instanceSrv.getUnit(e);if(!n)throw Error(`[SheetsSelectionsService]: cannot resolve unit with id "${e}"!`);t=new jn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var n;let r=(n=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getActiveSheet(),i=this.getCurrentSelections();if(!r||i.length===0)return{isAllValuesSame:!1,value:null};let a=null;for(let n=0;n<i.length;n++){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=i[n].range;for(let n=o;n<=s;n++)for(let i=c;i<=l;i++){let o=`${n}_${i}`,s;this._cellStylesCache.has(o)?s=this._cellStylesCache.get(o):(s=r.getComposedCellStyle(n,i),this._cellStylesCache.set(o,s));let c=s[e];if(a!=null&&!t.Tools.diffValue(a,c))return{isAllValuesSame:!1,value:null};a=c}}return{isAllValuesSame:!0,value:a}}};U=T([w(0,t.IUniverInstanceService)],U);let Mn=`REF_SELECTIONS_ENABLED`,Nn={id:`sheet.command.clear-selection-all`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(U),s=e.get(t.IUndoRedoService),c=e.get(k),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m=Cn(p,e,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:vn(m)},v=R(e,_);h.push({id:z.id,params:_}),g.push({id:z.id,params:v});let y=c.onCommandExecute({id:Nn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,t.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}},Pn={id:`sheet.command.clear-selection-format`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(U),s=e.get(t.IUndoRedoService),c=e.get(k),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m=Cn(p,e,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:bn(m)},v=R(e,_);h.push({id:z.id,params:_}),g.push({id:z.id,params:v});let y=c.onCommandExecute({id:Pn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,t.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}};function Fn(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?Fn(o,n,r):o}function In(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 Ln(e,t,n){let{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return Number.isNaN(r)&&(e.startRow=0),Number.isNaN(a)&&(e.endRow=t-1),Number.isNaN(i)&&(e.startColumn=0),Number.isNaN(o)&&(e.endColumn=n-1),e}function W(e,n){let r=Number.isNaN(e.startRow)?0:e.startRow,i=Number.isNaN(e.startColumn)?0:e.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:e.startRow,endColumn:e.startColumn,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}let Rn=(e,t,n)=>({id:G.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:W(e,n)}]}});function zn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Bn(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 Vn=e=>e.id!==v;function Hn(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,y,Vn):e.getCellWithFilteredInterceptors(t,s,y,Vn);!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 Un=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),Wn=class extends U{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe((0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)(null),this.selectionSet$=(0,n.of)(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let e=this._instanceSrv.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET);e.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let r=new n.BehaviorSubject(e);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._ensureWorkbookSelection(e.getUnitId()),r.next([...r.getValue(),e])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),r.next(r.getValue().filter(t=>t!==e))})),r.pipe((0,n.map)(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};Wn=T([w(0,t.IUniverInstanceService)],Wn);function Gn(e,n){let r=e.get(t.IContextService).getContextValue(Mn);return e.get(r&&!n?Un:U)}let G={id:`sheet.operation.set-selections`,type:t.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return Gn(e).setSelections(i,a,[...n],r),!0}},Kn={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=f(e.get(t.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:W(a,s.worksheet),style:null}];return o.syncExecuteCommand(G.id,{unitId:r,subUnitId:i,selections:c})}},qn=`sheet.command.move-range`,Jn={type:t.CommandType.COMMAND,id:qn,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(k).beforeCommandExecute({id:Jn.id,params:n}))return!1;let s=Xn(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 Yn(e,n){var r,i,a,o,s;let c=e.get(t.IUniverInstanceService),l=f(c),u=(r=(i=n.toUnitId)==null?n.fromUnitId:i)==null?l==null?void 0:l.unitId:r,d=(a=n.fromSubUnitId)==null?l==null?void 0:l.subUnitId:a,p=(o=(s=n.toSubUnitId)==null?n.fromSubUnitId:s)==null?l==null?void 0:l.subUnitId:o;if(!u||!d||!p||n.fromUnitId&&n.toUnitId&&n.fromUnitId!==n.toUnitId)return null;let m=c.getUniverSheetInstance(u),h=m==null?void 0:m.getSheetBySheetId(d),g=m==null?void 0:m.getSheetBySheetId(p);return!h||!g?null:{unitId:u,fromSubUnitId:d,toSubUnitId:p,fromWorksheet:h,toWorksheet:g}}function Xn(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=Yn(e,t);if(!c)return null;let l=e.get(k),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=Zn(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:Jn.id,params:t},_=l.onCommandExecute(g),v=[...(r=_.preRedos)==null?[]:r,...h.redos,..._.redos],y=[...(i=_.preUndos)==null?[]:i,...h.undos,..._.undos];if(a&&(v.push({id:G.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:Qn(t.fromRange,t.toRange,p,m)}],type:H.MOVE_END}}),y.push({id:G.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:W(t.fromRange,p)}],type:H.MOVE_END}})),o){let e=l.afterCommandExecute(g);v.push(...e.redos),y.push(...e.undos)}if(s){let{undos:e,redos:n}=l.generateMutationsOfAutoHeight({unitId:u,subUnitId:f,ranges:d===f?[t.fromRange,t.toRange]:[t.toRange]});v.push(...n),y.push(...e)}return{unitId:u,redos:v,undos:y}}function Zn(e,n,r,i=!1){let a=[],o=[],{range:s,subUnitId:c,unitId:l}=n,{range:u,subUnitId:d}=r,f=e.get(t.IUniverInstanceService).getUniverSheetInstance(l),p=f==null?void 0:f.getSheetBySheetId(d),m=f==null?void 0:f.getSheetBySheetId(c),h=p==null?void 0:p.getCellMatrix(),g=m==null?void 0:m.getCellMatrix();if(p&&m&&h&&g){let e=Fn(u,p,!1);if(!t.Rectangle.equals(u,e)&&!i)return null;let m=new t.ObjectMatrix,_=new t.ObjectMatrix,v=new t.ObjectMatrix;t.Range.foreach(s,(e,n)=>{let r=g.getValue(e,n);if(m.setValue(e,n,t.Tools.deepClone(r)),r){let i=f==null?void 0:f.getStyles().get(r.s);v.setValue(e,n,t.Tools.deepClone(i))}_.setValue(e,n,null)});let y=new t.ObjectMatrix,b=new t.ObjectMatrix;t.Range.foreach(u,(e,n)=>{y.setValue(e,n,t.Tools.deepClone(h.getValue(e,n)))}),t.Range.foreach(s,(e,n)=>{let r=(0,t.cellToRange)(e,n),i=t.Rectangle.getRelativeRange(r,s),a=t.Rectangle.getPositionRange(i,u),o=t.Tools.deepClone(v.getValue(e,n)),c=t.Tools.deepClone(m.getValue(e,n));c&&o&&(c.s=o),b.setValue(a.startRow,a.startColumn,c)});let x={fromRange:n.range,toRange:r.range,from:{value:_.getMatrix(),subUnitId:c},to:{value:b.getMatrix(),subUnitId:d},unitId:l},S={fromRange:r.range,toRange:n.range,from:{value:m.getMatrix(),subUnitId:c},to:{value:y.getMatrix(),subUnitId:d},unitId:l};a.push({id:Ce.id,params:x}),o.push({id:Ce.id,params:S})}return{redos:a,undos:o}}function Qn(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=W(t,r);if(o){let e=o.endRow-o.startRow+1,t=o.endColumn-o.startColumn+1;s.endRow=s.startRow+e-1,s.endColumn=s.startColumn+t-1,s.actualRow=s.startRow,s.actualColumn=s.startColumn,s.isMerged=!1,s.isMergedMainCell=!0}return s}var $n=(e=>(e[e.OpenOrReOpen=0]=`OpenOrReOpen`,e[e.Solved=1]=`Solved`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))($n||{}),er=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Add=1]=`Add`,e[e.Reply=2]=`Reply`,e[e.Edit=3]=`Edit`,e[e.Delete=4]=`Delete`,e[e.Solve=5]=`Solve`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(er||{}),tr=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.OK=1]=`OK`,e[e.INTERNAL_ERROR=2]=`INTERNAL_ERROR`,e[e.PERMISSION_DENIED=3]=`PERMISSION_DENIED`,e[e.NOT_FOUND=4]=`NOT_FOUND`,e[e.UNAUTHENTICATED=5]=`UNAUTHENTICATED`,e[e.ALREADY_EXISTS=6]=`ALREADY_EXISTS`,e[e.INVALID_ARGUMENT=7]=`INVALID_ARGUMENT`,e[e.TOO_MANY_REQUESTS=8]=`TOO_MANY_REQUESTS`,e[e.COMPLETION_FINISHED=9]=`COMPLETION_FINISHED`,e[e.LOGIN_FAILED=10]=`LOGIN_FAILED`,e[e.MOBILE_VERIFY_CODE_MISMATCH=11]=`MOBILE_VERIFY_CODE_MISMATCH`,e[e.MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=12]=`MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.EMAIL_VERIFY_CODE_MISMATCH=13]=`EMAIL_VERIFY_CODE_MISMATCH`,e[e.EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=14]=`EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.AUTHORIZE_CODE_ILLEGAL=15]=`AUTHORIZE_CODE_ILLEGAL`,e[e.LOGIN_TOKEN_PROCESSING_FAILED=16]=`LOGIN_TOKEN_PROCESSING_FAILED`,e[e.CURRENT_STATUS_CANNOT_OPERATE=100]=`CURRENT_STATUS_CANNOT_OPERATE`,e[e.ERROR_AGAIN=101]=`ERROR_AGAIN`,e[e.USER_NOT_FOUND=201]=`USER_NOT_FOUND`,e[e.USER_IS_ANONYMOUS=202]=`USER_IS_ANONYMOUS`,e[e.CHANGESET_REVISION_CONFILICT=5001]=`CHANGESET_REVISION_CONFILICT`,e[e.SNAPSHOT_INVALID_SNAPSHOT=6001]=`SNAPSHOT_INVALID_SNAPSHOT`,e[e.SNAPSHOT_HAS_BEEN_REMOVED=6002]=`SNAPSHOT_HAS_BEEN_REMOVED`,e[e.ENSURE_SNAPSHOT_EXECUTION=6003]=`ENSURE_SNAPSHOT_EXECUTION`,e[e.APPLY_REJECT=7001]=`APPLY_REJECT`,e[e.APPLY_NON_SEQUENTIAL_REVISION=7002]=`APPLY_NON_SEQUENTIAL_REVISION`,e[e.APPLY_REVISION_CONFILICT=7003]=`APPLY_REVISION_CONFILICT`,e[e.APPLY_PERMISSION_DENIED=7004]=`APPLY_PERMISSION_DENIED`,e[e.APPLY_DUPLICATED=7005]=`APPLY_DUPLICATED`,e[e.CONNECTOR_DATA_TOO_LARGE=8001]=`CONNECTOR_DATA_TOO_LARGE`,e[e.LICENSE_MAX_UNITS_EXCEEDED=9001]=`LICENSE_MAX_UNITS_EXCEEDED`,e[e.LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED=9002]=`LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED`,e[e.LICENSE_IMPORT_SIZE_EXCEEDED=9003]=`LICENSE_IMPORT_SIZE_EXCEEDED`,e[e.LICENSE_EXPORT_SIZE_EXCEEDED=9004]=`LICENSE_EXPORT_SIZE_EXCEEDED`,e[e.LICENSE_DISTRO_REJECTED=9005]=`LICENSE_DISTRO_REJECTED`,e[e.YUUMI_UNABLE_LOAD_URL=10001]=`YUUMI_UNABLE_LOAD_URL`,e[e.YUUMI_URL_COL_OUT_OF_RANGE=10002]=`YUUMI_URL_COL_OUT_OF_RANGE`,e[e.YUUMI_RATE_OVER_LIMIT=10003]=`YUUMI_RATE_OVER_LIMIT`,e[e.YUUMI_SUBSCRIPTION_NOT_FOUND=10004]=`YUUMI_SUBSCRIPTION_NOT_FOUND`,e[e.YUUMI_NO_CUBOID_FOR_QUESTION=10010]=`YUUMI_NO_CUBOID_FOR_QUESTION`,e[e.YUUMI_ASYNCIO_CANCELLED=10011]=`YUUMI_ASYNCIO_CANCELLED`,e[e.YUUMI_TABLE_NOT_FOUND_IN_UNIT=10012]=`YUUMI_TABLE_NOT_FOUND_IN_UNIT`,e[e.YUUMI_ALL_TABLES_IS_INVALID=10013]=`YUUMI_ALL_TABLES_IS_INVALID`,e[e.YUUMI_PROMPT_MAX_TOKENS_EXCEEDED=10014]=`YUUMI_PROMPT_MAX_TOKENS_EXCEEDED`,e[e.YUUMI_AI_RUN_FAILED=10015]=`YUUMI_AI_RUN_FAILED`,e[e.YUUMI_CONNECTOR_URL_NOT_FOUND=10016]=`YUUMI_CONNECTOR_URL_NOT_FOUND`,e[e.PY_RUNTIME_SCRIPT_ERROR=11001]=`PY_RUNTIME_SCRIPT_ERROR`,e[e.INVITE_CODE_HAS_BEEN_UES=12001]=`INVITE_CODE_HAS_BEEN_UES`,e[e.INVALID_INVITE_CODE=12002]=`INVALID_INVITE_CODE`,e[e.INVITE_CODE_REQUIRED=12003]=`INVITE_CODE_REQUIRED`,e[e.USER_NOT_INVITED_CODE=12004]=`USER_NOT_INVITED_CODE`,e[e.INVITE_CODE_ALREADY_BOUND=12005]=`INVITE_CODE_ALREADY_BOUND`,e[e.WECHAT_HAS_BEEN_BOUND=13001]=`WECHAT_HAS_BEEN_BOUND`,e[e.MOBILE_HAS_BEEN_BOUND=13002]=`MOBILE_HAS_BEEN_BOUND`,e[e.EMAIL_HAS_BEEN_BOUND=13003]=`EMAIL_HAS_BEEN_BOUND`,e[e.ENTITLE_CAN_NOT_BUY_LOWER_OTP=14001]=`ENTITLE_CAN_NOT_BUY_LOWER_OTP`,e[e.ENTITLE_UPDOWN_GRADE_NOT_SUPPORT=14002]=`ENTITLE_UPDOWN_GRADE_NOT_SUPPORT`,e[e.ENTITLE_DUP_SUBSCRIPTION=14003]=`ENTITLE_DUP_SUBSCRIPTION`,e[e.PAYMENT_CHANNEL_NOT_SUPPORT=14004]=`PAYMENT_CHANNEL_NOT_SUPPORT`,e[e.ENTITLE_INVALID_COUPON_CODE=14005]=`ENTITLE_INVALID_COUPON_CODE`,e[e.ENTITLE_COUPON_EXPIRED=14006]=`ENTITLE_COUPON_EXPIRED`,e[e.ENTITLE_COUPON_USED_UP=14007]=`ENTITLE_COUPON_USED_UP`,e[e.ENTITLE_USE_COUPON_NOT_1ST_TRADE=14008]=`ENTITLE_USE_COUPON_NOT_1ST_TRADE`,e[e.ENTITLE_CHAT_LIMIT_EXCEED=14101]=`ENTITLE_CHAT_LIMIT_EXCEED`,e[e.ENTITLE_REPORT_LIMIT_EXCEED=14102]=`ENTITLE_REPORT_LIMIT_EXCEED`,e[e.ENTITLE_INSUFFICIENT_QUOTA=14103]=`ENTITLE_INSUFFICIENT_QUOTA`,e[e.ENTITLE_NEED_BILLING_ADDRESS=14301]=`ENTITLE_NEED_BILLING_ADDRESS`,e[e.REDEMPTION_INVALID_CODE=15001]=`REDEMPTION_INVALID_CODE`,e[e.REDEMPTION_CODE_INACTIVE=15002]=`REDEMPTION_CODE_INACTIVE`,e[e.REDEMPTION_CODE_FULLY_REDEEMED=15003]=`REDEMPTION_CODE_FULLY_REDEEMED`,e[e.REDEMPTION_CODE_NOT_STARTED=15004]=`REDEMPTION_CODE_NOT_STARTED`,e[e.REDEMPTION_USER_NOT_ELIGIBLE=15005]=`REDEMPTION_USER_NOT_ELIGIBLE`,e[e.REDEMPTION_USER_REDEEM_TIMES_EXCEED=15006]=`REDEMPTION_USER_REDEEM_TIMES_EXCEED`,e[e.REDEMPTION_CODE_HAS_BEEN_CREATED=15007]=`REDEMPTION_CODE_HAS_BEEN_CREATED`,e[e.DATA_SOURCE_TOO_LARGE=16001]=`DATA_SOURCE_TOO_LARGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(tr||{}),nr=(e=>(e[e.UNIVER_UNKNOWN=0]=`UNIVER_UNKNOWN`,e[e.UNIVER_DOC=1]=`UNIVER_DOC`,e[e.UNIVER_SHEET=2]=`UNIVER_SHEET`,e[e.UNIVER_SLIDE=3]=`UNIVER_SLIDE`,e[e.UNIVER_PROJECT=4]=`UNIVER_PROJECT`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(nr||{}),rr=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.TEXT=1]=`TEXT`,e[e.URL=2]=`URL`,e[e.IMAGE=3]=`IMAGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(rr||{}),K=(e=>(e[e.View=0]=`View`,e[e.Edit=1]=`Edit`,e[e.ManageCollaborator=2]=`ManageCollaborator`,e[e.Print=3]=`Print`,e[e.Duplicate=4]=`Duplicate`,e[e.Comment=5]=`Comment`,e[e.Copy=6]=`Copy`,e[e.Share=7]=`Share`,e[e.Export=8]=`Export`,e[e.MoveWorksheet=9]=`MoveWorksheet`,e[e.DeleteWorksheet=10]=`DeleteWorksheet`,e[e.HideWorksheet=11]=`HideWorksheet`,e[e.RenameWorksheet=12]=`RenameWorksheet`,e[e.CreateWorksheet=13]=`CreateWorksheet`,e[e.SetWorksheetStyle=14]=`SetWorksheetStyle`,e[e.EditWorksheetCell=15]=`EditWorksheetCell`,e[e.InsertHyperlink=16]=`InsertHyperlink`,e[e.Sort=17]=`Sort`,e[e.Filter=18]=`Filter`,e[e.PivotTable=19]=`PivotTable`,e[e.FloatImg=20]=`FloatImg`,e[e.History=21]=`History`,e[e.RwHgtClWdt=22]=`RwHgtClWdt`,e[e.ViemRwHgtClWdt=23]=`ViemRwHgtClWdt`,e[e.ViewFilter=24]=`ViewFilter`,e[e.MoveSheet=25]=`MoveSheet`,e[e.DeleteSheet=26]=`DeleteSheet`,e[e.HideSheet=27]=`HideSheet`,e[e.CopySheet=28]=`CopySheet`,e[e.RenameSheet=29]=`RenameSheet`,e[e.CreateSheet=30]=`CreateSheet`,e[e.SelectProtectedCells=31]=`SelectProtectedCells`,e[e.SelectUnProtectedCells=32]=`SelectUnProtectedCells`,e[e.SetCellStyle=33]=`SetCellStyle`,e[e.SetCellValue=34]=`SetCellValue`,e[e.SetRowStyle=35]=`SetRowStyle`,e[e.SetColumnStyle=36]=`SetColumnStyle`,e[e.InsertRow=37]=`InsertRow`,e[e.InsertColumn=38]=`InsertColumn`,e[e.DeleteRow=39]=`DeleteRow`,e[e.DeleteColumn=40]=`DeleteColumn`,e[e.EditExtraObject=41]=`EditExtraObject`,e[e.Delete=42]=`Delete`,e[e.RecoverHistory=43]=`RecoverHistory`,e[e.ViewHistory=44]=`ViewHistory`,e[e.CreatePermissionObject=45]=`CreatePermissionObject`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(K||{}),ir=(e=>(e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ir||{}),q=(e=>(e[e.Unkonwn=0]=`Unkonwn`,e[e.Workbook=1]=`Workbook`,e[e.Worksheet=2]=`Worksheet`,e[e.SelectRange=3]=`SelectRange`,e[e.Document=4]=`Document`,e[e.Slide=5]=`Slide`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(q||{}),ar=(e=>(e[e.Private=0]=`Private`,e[e.Public=1]=`Public`,e[e.Organization=2]=`Organization`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ar||{}),or=(e=>(e[e.SomeCollaborator=0]=`SomeCollaborator`,e[e.AllCollaborator=1]=`AllCollaborator`,e[e.OneSelf=2]=`OneSelf`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(or||{}),sr=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.STRING=1]=`STRING`,e[e.NUMBER=2]=`NUMBER`,e[e.BOOLEAN=3]=`BOOLEAN`,e[e.FORCE_STRING=4]=`FORCE_STRING`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(sr||{}),cr=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Colla=1]=`Colla`,e[e.Import=2]=`Import`,e[e.Export=3]=`Export`,e[e.CreateUnit=4]=`CreateUnit`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(cr||{}),lr=(e=>(e[e.valueBetween=0]=`valueBetween`,e[e.valueEqual=1]=`valueEqual`,e[e.valueGreaterThan=2]=`valueGreaterThan`,e[e.valueGreaterThanOrEqual=3]=`valueGreaterThanOrEqual`,e[e.valueLessThan=4]=`valueLessThan`,e[e.valueLessThanOrEqual=5]=`valueLessThanOrEqual`,e[e.valueNotBetween=6]=`valueNotBetween`,e[e.valueNotEqual=7]=`valueNotEqual`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(lr||{}),ur=(e=>(e[e.DataFragmentationType_None=0]=`DataFragmentationType_None`,e[e.DataFragmentationType_Charts=1]=`DataFragmentationType_Charts`,e[e.DataFragmentationType_Unit=2]=`DataFragmentationType_Unit`,e[e.DataFragmentationType_WorkSheetRef=3]=`DataFragmentationType_WorkSheetRef`,e[e.DataFragmentationType_Code=4]=`DataFragmentationType_Code`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ur||{}),dr=(e=>(e[e.AnalyseTaskStatus_None=0]=`AnalyseTaskStatus_None`,e[e.AnalyseTaskStatus_Analysing=1]=`AnalyseTaskStatus_Analysing`,e[e.AnalyseTaskStatus_Failed=2]=`AnalyseTaskStatus_Failed`,e[e.AnalyseTaskStatus_Completed=3]=`AnalyseTaskStatus_Completed`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(dr||{}),fr=(e=>(e[e.UNKNOWN_CMD=0]=`UNKNOWN_CMD`,e[e.HELLO=1]=`HELLO`,e[e.JOIN=2]=`JOIN`,e[e.LEAVE=3]=`LEAVE`,e[e.INGEST=4]=`INGEST`,e[e.HEARTBEAT=5]=`HEARTBEAT`,e[e.RECV=6]=`RECV`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(fr||{}),pr=(e=>(e[e.UNKNOWN_CODE=0]=`UNKNOWN_CODE`,e[e.OK=1]=`OK`,e[e.FAIL=2]=`FAIL`,e[e.JOIN_ROOM_FULL=1001]=`JOIN_ROOM_FULL`,e[e.JOIN_ROOM_NOT_EXISTS=1002]=`JOIN_ROOM_NOT_EXISTS`,e[e.JOIN_ROOM_PERMISSION_DENIED=1003]=`JOIN_ROOM_PERMISSION_DENIED`,e[e.GLOBAL_ROOMS_CNT_EXCEEDS=1004]=`GLOBAL_ROOMS_CNT_EXCEEDS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(pr||{}),mr=(e=>(e[e.Completion_None=0]=`Completion_None`,e[e.Completion_Completed=1]=`Completion_Completed`,e[e.Completion_UserCancelled=2]=`Completion_UserCancelled`,e[e.Completion_SystemErr=3]=`Completion_SystemErr`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(mr||{}),hr=(e=>(e[e.RoleType_None=0]=`RoleType_None`,e[e.RoleType_User=1]=`RoleType_User`,e[e.RoleType_Agent=2]=`RoleType_Agent`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(hr||{}),gr=(e=>(e[e.ContentBlockType_None=0]=`ContentBlockType_None`,e[e.ContentBlockType_Prompt=1]=`ContentBlockType_Prompt`,e[e.ContentBlockType_Thinking=2]=`ContentBlockType_Thinking`,e[e.ContentBlockType_Report=3]=`ContentBlockType_Report`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(gr||{}),_r=(e=>(e[e.ContentType_None=0]=`ContentType_None`,e[e.ContentType_PlainText=1]=`ContentType_PlainText`,e[e.ContentType_Markdown=2]=`ContentType_Markdown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(_r||{}),vr=(e=>(e[e.AttachmentType_None=0]=`AttachmentType_None`,e[e.AttachmentType_Unit=1]=`AttachmentType_Unit`,e[e.AttachmentType_Recommendation=3]=`AttachmentType_Recommendation`,e[e.AttachmentType_DataSource=4]=`AttachmentType_DataSource`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(vr||{}),yr=(e=>(e[e.Reaction_NoReact=0]=`Reaction_NoReact`,e[e.Reaction_ThumbsUp=1]=`Reaction_ThumbsUp`,e[e.Reaction_ThumbsDown=2]=`Reaction_ThumbsDown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(yr||{}),br=(e=>(e[e.ChatSSEBlockType_None=0]=`ChatSSEBlockType_None`,e[e.ChatSSEBlockType_EndOfStream=1]=`ChatSSEBlockType_EndOfStream`,e[e.ChatSSEBlockType_Reject=2]=`ChatSSEBlockType_Reject`,e[e.ChatSSEBlockType_ModConversation=3]=`ChatSSEBlockType_ModConversation`,e[e.ChatSSEBlockType_PromptAck=4]=`ChatSSEBlockType_PromptAck`,e[e.ChatSSEBlockType_ChatContent=5]=`ChatSSEBlockType_ChatContent`,e[e.ChatSSEBlockType_Attachment=6]=`ChatSSEBlockType_Attachment`,e[e.ChatSSEBlockType_RespMeta=7]=`ChatSSEBlockType_RespMeta`,e[e.ChatSSEBlockType_StreamErr=8]=`ChatSSEBlockType_StreamErr`,e[e.ChatSSEBlockType_ChatThinking=9]=`ChatSSEBlockType_ChatThinking`,e[e.ChatSSEBlockType_Fragmentation=10]=`ChatSSEBlockType_Fragmentation`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(br||{}),xr=(e=>(e[e.ChatSSEStatus_None=0]=`ChatSSEStatus_None`,e[e.ChatSSEStatus_Appending=1]=`ChatSSEStatus_Appending`,e[e.ChatSSEStatus_Success=2]=`ChatSSEStatus_Success`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(xr||{}),Sr=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.UNIT=1]=`UNIT`,e[e.JSON=2]=`JSON`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Sr||{}),Cr=(e=>(e[e.ImportScene_Unspecified=0]=`ImportScene_Unspecified`,e[e.ImportScene_General=1]=`ImportScene_General`,e[e.ImportScene_AIAnalyse=2]=`ImportScene_AIAnalyse`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Cr||{}),wr=(e=>(e[e.Undefined=0]=`Undefined`,e[e.HttpImport=1]=`HttpImport`,e[e.HttpExport=2]=`HttpExport`,e[e.UnitEmbedded=3]=`UnitEmbedded`,e[e.UnitSnapshot=4]=`UnitSnapshot`,e[e.UserProfileImg=5]=`UserProfileImg`,e[e.ClipsheetFragments=6]=`ClipsheetFragments`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(wr||{}),Tr=(e=>(e[e.UNDEFINED_ENV=0]=`UNDEFINED_ENV`,e[e.NODE=1]=`NODE`,e[e.BROWSER=2]=`BROWSER`,e[e.PYTHON=3]=`PYTHON`,e[e.REQUIREMENTS_TXT=4]=`REQUIREMENTS_TXT`,e[e.WORKSPACE_ENV_VARS=5]=`WORKSPACE_ENV_VARS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Tr||{}),Er=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.ROOT=1]=`ROOT`,e[e.TRASH=2]=`TRASH`,e[e.DEBUG=3]=`DEBUG`,e[e.AI_STASH=4]=`AI_STASH`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Er||{}),Dr=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.Edit),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!0),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.Edit}.${r}`}},Or=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.View),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!1),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.View}.${r}`}},kr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Comment),this.unitId=e,this.id=`${this.type}.${K.Comment}_${e}`}},Ar=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Copy),this.unitId=e,this.id=`${this.type}.${K.Copy}_${e}`}},jr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`subType`,K.CopySheet),C(this,`status`,t.PermissionStatus.INIT),this.unitId=e,this.id=`${this.type}.${K.CopySheet}_${e}`}},Mr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${K.CreatePermissionObject}_${e}`}},Nr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.CreateSheet),this.unitId=e,this.id=`${this.type}.${K.CreateSheet}_${e}`}},Pr=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteColumn),this.id=`${this.type}.${K.DeleteColumn}_${e}`}},Fr=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteRow),this.id=`${this.type}.${K.DeleteRow}_${e}`}},Ir=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.DeleteSheet),this.unitId=e,this.id=`${this.type}.${K.DeleteSheet}_${e}`}},Lr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Duplicate),this.unitId=e,this.id=`${this.type}.${K.Duplicate}_${e}`}},Rr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Edit),this.unitId=e,this.id=`${this.type}.${K.Edit}_${e}`}},zr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Export),this.unitId=e,this.id=`${this.type}.${K.Export}_${e}`}},Br=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.HideSheet),this.unitId=e,this.id=`${this.type}.${K.HideSheet}_${e}`}},Vr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.History),this.unitId=e,this.id=`${this.type}.${K.History}_${e}`}},Hr=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertColumn),this.id=`${this.type}.${K.InsertColumn}_${e}`}},Ur=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertRow),this.id=`${this.type}.${K.InsertRow}_${e}`}},Wr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${K.ManageCollaborator}_${e}`}},Gr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.MoveSheet),this.unitId=e,this.id=`${this.type}.${K.MoveSheet}_${e}`}},Kr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Print),this.unitId=e,this.id=`${this.type}.${K.Print}_${e}`}},qr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.RecoverHistory),this.unitId=e,this.id=`${this.type}.${K.RecoverHistory}_${e}`}},Jr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.RenameSheet),this.unitId=e,this.id=`${this.type}.${K.RenameSheet}_${e}`}},Yr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Share),this.unitId=e,this.id=`${this.type}.${K.Share}_${e}`}},Xr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.View),this.unitId=e,this.id=`${this.type}.${K.View}_${e}`}},Zr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.ViewHistory),this.unitId=e,this.id=`${this.type}.${K.ViewHistory}_${e}`}},Qr=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Copy),this.id=`${this.type}.${K.Copy}_${e}_${n}`}},$r=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteColumn),this.id=`${this.type}.${K.DeleteColumn}_${e}_${n}`}},ei=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Delete),this.id=`${this.type}.${K.Delete}_${e}_${n}`}},ti=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteRow),this.id=`${this.type}.${K.DeleteRow}_${e}_${n}`}},ni=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Edit),this.id=`${this.type}.${K.Edit}_${e}_${n}`}},ri=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.EditExtraObject),this.id=`${this.type}.${K.EditExtraObject}_${e}_${n}`}},ii=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Filter),this.id=`${this.type}.${K.Filter}_${e}_${n}`}},ai=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertColumn),this.id=`${this.type}.${K.InsertColumn}_${e}_${n}`}},oi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertHyperlink),this.id=`${this.type}.${K.InsertHyperlink}_${e}_${n}`}},si=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertRow),this.id=`${this.type}.${K.InsertRow}_${e}_${n}`}},ci=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.ManageCollaborator),this.id=`${this.type}.${K.ManageCollaborator}_${e}_${n}`}},li=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.PivotTable),this.id=`${this.type}.${K.PivotTable}_${e}_${n}`}},ui=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SelectProtectedCells),this.id=`${this.type}.${K.SelectProtectedCells}_${e}_${n}`}},di=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SelectUnProtectedCells),this.id=`${this.type}.${K.SelectUnProtectedCells}_${e}_${n}`}},fi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetCellStyle),this.id=`${this.type}.${K.SetCellStyle}_${e}_${n}`}},pi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetCellValue),this.id=`${this.type}.${K.SetCellValue}_${e}_${n}`}},mi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetColumnStyle),this.id=`${this.type}.${K.SetColumnStyle}_${e}_${n}`}},hi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetRowStyle),this.id=`${this.type}.${K.SetRowStyle}_${e}_${n}`}},gi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Sort),this.id=`${this.type}.${K.Sort}_${e}_${n}`}},_i=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.View),this.id=`${this.type}.${K.View}_${e}_${n}`}};let vi={id:`sheet.command.set-range-values`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=e.get(t.IPermissionService),d=f(s,n);if(!d)return!1;let{subUnitId:p,unitId:m,workbook:h,worksheet:g}=d,{value:_,range:v,redoUndoId:y}=n,b=v?[v]:(r=c.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!b||!b.length||!u.getPermissionPoint(new ni(m,p).id))return!1;let x=new t.ObjectMatrix,S;if(t.Tools.isArray(_))for(let e=0;e<b.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=b[e];for(let e=0;e<=r-t;e++)for(let r=0;r<=i-n;r++)x.setValue(e+t,r+n,_[e][r])}else if((0,t.isICellData)(_))for(let e=0;e<b.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=b[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)x.setValue(e,t,_)}else S=_;let C={subUnitId:p,unitId:m,cellValue:(i=S)==null?x.getMatrix():i},w=R(e,C),T=(0,t.mapObjectMatrix)(C.cellValue,(e,t)=>g.getCellHeight(e,t)||void 0);if(!a.syncExecuteCommand(z.id,C))return!1;let{undos:E,redos:D}=l.onCommandExecute({id:vi.id,params:C}),{undos:O,redos:A}=l.generateMutationsOfAutoHeight({unitId:m,subUnitId:p,ranges:b,cellHeights:new t.ObjectMatrix(T)});if((0,t.sequenceExecute)([...D,...A],a).result){let e=Rn(v==null?x.getRange():v,h,g);return o.pushUndoRedo({unitID:m,undoMutations:[{id:z.id,params:w},...E,...O,e],redoMutations:[{id:z.id,params:C},...D,...A,t.Tools.deepClone(e)],id:y}),!0}return!1}};function yi(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=e.get(t.IUniverInstanceService),d=e.get(k),f=u.getUniverSheetInstance(a),p=f==null?void 0:f.getSheetBySheetId(o);if(p){let n=p.getCellMatrix(),u=n.getDataRange();if(s.startColumn<=u.endColumn||s.startRow<=u.endRow){let l,d;if(c===t.Dimension.COLUMNS){let e=Math.min(s.endRow,u.endRow),r=0;for(let i=s.startRow;i<=e;i++){let e=n.getRow(i),a=e?(0,t.getArrayLength)(e)-1:0;r=Math.max(r,a)}l={startRow:s.startRow,startColumn:s.startColumn,endRow:e,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:l.startColumn+i,endRow:e,endColumn:l.endColumn+i}}else{let e=Math.min(s.endColumn,u.endColumn),t=u.endRow;l={startRow:s.startRow,startColumn:s.startColumn,endRow:t,endColumn:e};let n=s.endRow-s.startRow+1;d={startRow:l.startRow+n,startColumn:s.startColumn,endRow:l.endRow+n,endColumn:e}}let f=Zn(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:vi.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 bi(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=e.get(t.IUniverInstanceService),u=e.get(k),d=l.getUniverSheetInstance(a),f=d==null?void 0:d.getSheetBySheetId(o);if(f){let n=f.getCellMatrix(),l=n.getDataRange(),d={subUnitId:o,unitId:a,cellValue:vn([s])},p=R(e,d),m=u.onCommandExecute({id:vi.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=Zn(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 xi(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 Si(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 Ci=`sheet.command.delete-range-move-left`,wi={type:t.CommandType.COMMAND,id:Ci,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=f(s);if(!u)return!1;let{worksheet:d,workbook:p,subUnitId:m,unitId:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=c.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v={range:g,subUnitId:m,unitId:h,shiftDimension:t.Dimension.COLUMNS},y=l.onCommandExecute({id:wi.id,params:{range:g}}),{redo:b,undo:x}=bi(e,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(Rn(g,p,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,t.sequenceExecute)(S,a).result){let e=l.afterCommandExecute({id:wi.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),C.push(...e.undos),S.push(...e.redos),o.pushUndoRedo({unitID:h,undoMutations:C.reverse(),redoMutations:S}),!0}return!1}},Ti=`sheet.command.delete-range-move-up`,Ei={type:t.CommandType.COMMAND,id:Ti,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=f(s);if(!u)return!1;let{unitId:d,subUnitId:p,workbook:m,worksheet:h}=u,g=n==null?void 0:n.range;if(!g){let e=c.getCurrentLastSelection();g=e==null?void 0:e.range}if(!g)return!1;let _={range:g,subUnitId:p,unitId:d,shiftDimension:t.Dimension.ROWS},v=l.onCommandExecute({id:Ei.id,params:{range:g}}),{redo:y,undo:b}=bi(e,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Rn(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,t.sequenceExecute)(x,a).result){let e=l.afterCommandExecute({id:Ei.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},Di=`sheet.command.insert-range-move-down`,Oi={type:t.CommandType.COMMAND,id:Di,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let p=f(s);if(!p)return!1;let{unitId:m,subUnitId:h,worksheet:g,workbook:_}=p,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=g.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(C.startRow,C.endRow,v.startColumn,v.endColumn).getDataRange().endRow,T=Math.max(w+(v.endRow-v.startRow+1)-C.endRow,0);if(T>0){let n=v.startRow-1,r=g.getRowHeight(n),i={unitId:m,subUnitId:h,range:{startRow:C.endRow+1,endRow:C.endRow+T,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:Array(T).fill(void 0).map(()=>({h:r,hd:t.BooleanNumber.FALSE}))};b.push({id:P.id,params:i});let a=be(e,i);x.push({id:ke.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=g.getCell(e,t);n&&(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=yi(e,{range:v,subUnitId:h,unitId:m,shiftDimension:t.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:Oi.id,params:{range:v}});if(b.push(...A.redos),b.push(Rn(v,_,g)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,t.sequenceExecute)(b,a)){let e=l.afterCommandExecute({id:Oi.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:m,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},ki=`sheet.command.insert-range-move-right`,Ai={type:t.CommandType.COMMAND,id:ki,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let p=f(s);if(!p)return!1;let{workbook:m,worksheet:h,unitId:g,subUnitId:_}=p,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=h.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(v.startRow,v.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,T=Math.max(w+(v.endColumn-v.startColumn+1)-C.endColumn,0);if(T>0){let n=v.startColumn-1,r=h.getColumnWidth(n),i={unitId:g,subUnitId:_,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+T},colInfo:Array(T).fill(void 0).map(()=>({w:r,hd:t.BooleanNumber.FALSE}))};b.push({id:Se.id,params:i});let a=xe(e,i);x.push({id:F.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=h.getCell(e,t);!n||!n.s||(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=yi(e,{range:v,subUnitId:_,unitId:g,shiftDimension:t.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:Ai.id,params:{range:v}});if(b.push(...A.redos),b.push(Rn(v,m,h)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,t.sequenceExecute)(b,a).result){let e=l.afterCommandExecute({id:Ai.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:g,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},ji=`sheet.command.insert-row`,Mi={type:t.CommandType.COMMAND,id:ji,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(k),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:Mi.id,params:n})?r.syncExecuteCommand(Ni.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},Ni={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,n)=>{var r,i,a,o;let s=f(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:p,direction:m,cellValue:h}=n,{startRow:g,endRow:_}=p;p.rangeType=t.RANGE_TYPE.ROW;let v=m===t.Direction.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(k),S={unitId:u,subUnitId:d,range:p},C=l.getRowHeight(v);C!==l.getConfig().defaultRowHeight&&(S.rowInfo=Array(_-g+1).fill(void 0).map(()=>({h:C,hd:t.BooleanNumber.FALSE})));let w=be(e,S),T=[{id:P.id,params:S}],E=[{id:ke.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:z.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:Mi.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Rn(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:Mi.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E,redoMutations:T}),!0}return!1}},Pi={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,subUnitId:c,unitId:l}=o,u=n.value||0,d=a.startRow,p=a.startRow+u-1,m=s.getColumnCount()-1,h={unitId:l,subUnitId:c,direction:t.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m},cellValue:Hn(s,d,p,0,m,!0,d-1)};return e.get(t.ICommandService).executeCommand(Mi.id,h)}},Fi={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i;if((r==null?void 0:r.length)===1)i=r[0];else return!1;let a=f(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,p=o.getColumnCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:p,rangeType:t.RANGE_TYPE.ROW},cellValue:Hn(o,u,d,0,p,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(Mi.id,m)}},Ii={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.startRow,p=a.startRow+u-1,m=s.getColumnCount()-1,h=Hn(s,d,p,0,m,!0,d-1),g={unitId:c,subUnitId:l,direction:t.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:h};return e.get(t.ICommandService).executeCommand(Mi.id,g)}},Li={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.endRow+1,p=a.endRow+u,m=s.getColumnCount()-1,h={unitId:c,subUnitId:l,direction:t.Direction.DOWN,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:Hn(s,d,p,0,m,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(Mi.id,h)}},Ri=`sheet.command.insert-col`,zi={type:t.CommandType.COMMAND,id:Ri,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(k),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:zi.id,params:n})?r.syncExecuteCommand(Bi.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},Bi={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,n)=>{var r,i,a,o;let s=f(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:p,direction:m,cellValue:h}=n,{startColumn:g,endColumn:_}=p;p.rangeType=t.RANGE_TYPE.COLUMN;let v=m===t.Direction.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(k),S={unitId:u,subUnitId:d,range:p},C=l.getColumnWidth(v);C!==l.getConfig().defaultColumnWidth&&(S.colInfo=Array(_-g+1).fill(void 0).map(()=>({w:C,hd:t.BooleanNumber.FALSE})));let w=xe(e,S),T=[{id:Se.id,params:S}],E=[{id:F.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:z.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:zi.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Rn(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:zi.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E.filter(Boolean),redoMutations:T.filter(Boolean)}),!0}return!1}},Vi={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(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,p=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Hn(o,0,p,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(zi.id,m)}},Hi={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(U).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=f(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,p={unitId:o,subUnitId:s,direction:t.Direction.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:Hn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(zi.id,p)}},Ui={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(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,p=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Hn(o,0,p,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(zi.id,m)}},Wi={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(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,p=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p},cellValue:Hn(o,0,p,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(zi.id,m)}},Gi=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Rn(e,t,n);r.executeCommand(i.id,i.params)}},300),Ki=`sheet.command.remove-row`,qi={type:t.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=f(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(k),{range:c,unitId:l,subUnitId:u}=n,d=Cn([c],e,l,u).reverse(),p=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=Oe(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:ke.id,params:r}),t.push({id:P.id,params:i}),t.push({id:z.id,params:a}),m.push(...n),p.unshift(...t)});let h=s.onCommandExecute({id:Ki,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;Gi(c,a,o,g);let n=s.afterCommandExecute({id:Ki,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,...p,...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,...m,...h.redos,...n.redos]}),!0}return!1}},Ji={type:t.CommandType.COMMAND,id:Ki,handler:async(e,n)=>{var r;let i=e.get(U),a=e.get(k),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||(s=(r=i.getCurrentLastSelection())==null?void 0:r.range),!s)return!1;let c=f(e.get(t.IUniverInstanceService));if(!c)return!1;let{worksheet:l,subUnitId:u,unitId:d}=c;return s={...s,startColumn:0,endColumn:Math.max(l.getMaxColumns()-1,0)},await a.beforeCommandExecute({id:Ji.id,params:{range:s}})?o.syncExecuteCommand(qi.id,{range:s,unitId:d,subUnitId:u}):!1}},Yi=`sheet.command.remove-col`,Xi={type:t.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=f(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(k),{range:c,unitId:l,subUnitId:u}=n,d={unitId:l,subUnitId:u,range:c},p=Ae(e,d),m={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(0,o.getRowCount()-1,c.startColumn,c.endColumn).getMatrix()},h=s.onCommandExecute({id:Yi,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:F.id,params:d},...h.redos],g).result){var _,v;Gi(c,a,o,g);let n=s.afterCommandExecute({id:Yi,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:Se.id,params:p},{id:z.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:F.id,params:d},...h.redos,...n.redos]}),!0}return!1}},Zi={type:t.CommandType.COMMAND,id:Yi,handler:async(e,n)=>{var r;let i=e.get(U),a=e.get(k),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||(s=(r=i.getCurrentLastSelection())==null?void 0:r.range),!s)return!1;let c=f(e.get(t.IUniverInstanceService));if(!c)return!1;let{worksheet:l,subUnitId:u,unitId:d}=c;return s={...s,startRow:0,endRow:Math.max(l.getMaxRows()-1,0)},await a.beforeCommandExecute({id:Zi.id,params:{range:s}})?o.syncExecuteCommand(Xi.id,{range:s,unitId:d,subUnitId:u}):!1}},Qi=(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=p(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}},$i={id:`sheet.mutation.remove-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=r.getUniverSheetInstance(a);return o?o.removeSheet(i):!1}};function ea(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function ta(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let na=`sheet.command.move-rows`,ra={id:na,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[oa(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW&&e.range.startRow<=o&&o<=e.range.endRow);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(k),p=f(e.get(t.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Fn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(ea(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startRow:s,endRow:s+b.endRow-b.startRow},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=we(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:ra.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:Te.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:Te.id,params:T}];if(x){let e=s-o<0,t=b.endRow-b.startRow+1,n=e?C:{...C,startRow:C.startRow-t,endRow:C.endRow-t},r={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:n,primary:W(n,h),style:null}]},i={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:r}),A.push({id:G.id,params:i})}if(O.push(...D.redos),A.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:ra.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}},ia=`sheet.command.move-cols`,aa={id:ia,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[oa(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN&&e.range.startColumn<=o&&o<=e.range.endColumn);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(k),p=f(e.get(t.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Fn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(ta(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startColumn:s,endColumn:s+b.endColumn-b.startColumn},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=Ee(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:aa.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:De.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:De.id,params:T}];if(x){let e=b.endColumn-b.startColumn+1,t=s-o<0?C:{...C,startColumn:C.startColumn-e,endColumn:C.endColumn-e},n={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:t,primary:W(t,h),style:null}]},r={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:n}),A.push({id:G.id,params:r})}if(O.push(...D.redos),A.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:aa.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}};function oa(e){return{range:e,primary:null,style:null}}let sa=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._univerInstanceService=t,C(this,`_sceneMap`,new Map),C(this,`_sheetSkeletonParamStore`,new Map),this._init()}dispose(){super.dispose(),this._sheetSkeletonParamStore.forEach(e=>e.forEach(e=>e.skeleton.dispose())),this._sheetSkeletonParamStore.clear()}_disposeByUnitId(e){let t=this._sheetSkeletonParamStore.get(e);t&&(t.forEach(e=>e.skeleton.dispose()),this._sheetSkeletonParamStore.delete(e))}_init(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._initWorkbookSkeleton(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeByUnitId(e.getUnitId())))}_initWorkbookSkeleton(e){let t=e.getUnitId();this._initSheetsSkeleton(e),this.disposeWithMe(e.sheetCreated$.subscribe(n=>{let r=this._sheetSkeletonParamStore.get(t);if(!r)return;let i=n.getSheetId(),a=this._buildSkeleton(n,e.getStyles());r.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})})),this.disposeWithMe(e.sheetDisposed$.subscribe(e=>{let n=this._sheetSkeletonParamStore.get(t);if(!n)return;let r=e.getSheetId(),i=n.get(r);i&&i.skeleton.dispose(),n.delete(r)}))}_initSheetsSkeleton(e){let t=e.getUnitId(),n=new Map;e.getWorksheets().forEach(r=>{let i=r.getSheetId(),a=this._buildSkeleton(r,e.getStyles());n.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})}),this._sheetSkeletonParamStore.set(t,n)}_buildSkeleton(e,t){let n=this._injector.createInstance(r.SpreadsheetSkeleton,e,t),i=e.getUnitId(),a=this._sceneMap.get(i);return a&&n.setScene(a),n}setScene(e,t){this._sceneMap.set(e,t);let n=this._sheetSkeletonParamStore.get(e);n&&n.forEach(e=>e.skeleton.setScene(t))}getSkeleton(e,t){var n;return(n=this.getSkeletonParam(e,t))==null?void 0:n.skeleton}getSkeletonParam(e,t){let n=this._sheetSkeletonParamStore.get(e);if(n)return n.get(t)}newSkeleton(e,t,n,r){return this.newSkeletonParam(e,t,n,r).skeleton}newSkeletonParam(e,t,n,r){let i=this._buildSkeleton(n,r),a=this._sheetSkeletonParamStore.get(e);a||(a=new Map,this._sheetSkeletonParamStore.set(e,a));let o={unitId:e,sheetId:t,skeleton:i,dirty:!1};return a.set(t,o),o}ensureSkeleton(e,t){let n=this.getSkeleton(e,t);if(n)return n;let r=this._univerInstanceService.getUnit(e);if(!r)return;let i=r.getSheetBySheetId(t);if(i)return this.newSkeleton(e,t,i,r.getStyles())}};sa=T([w(0,(0,t.Inject)(t.Injector)),w(1,(0,t.Inject)(t.IUniverInstanceService))],sa);function ca(e,n){let r=new t.ObjectMatrix;return e.map(e=>t.Range.transformRange(e,n)).forEach(e=>{t.Range.foreach(e,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}),r}function la(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 ua(e){let t=0;return e.forEach(()=>{t++}),t}let da=`sheet.command.reorder-range`,fa={id:da,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let{subUnitId:a,unitId:o,range:s,order:c}=n,l=e.get(t.ICommandService),u={id:Me.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:Me.id,params:je(u.params)},f=e.get(k),p=f.onCommandExecute({id:fa.id,params:n}),m=[...(r=p.preRedos)==null?[]:r,u,...p.redos],h=[...(i=p.preUndos)==null?[]:i,d,...p.undos],g=(0,t.sequenceExecute)(m,l),{suitableRanges:_,remainingRanges:v}=la([s],e.get(sa).getSkeleton(o,a)),{undos:y,redos:b}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:a,ranges:[s],autoHeightRanges:_,lazyAutoHeightRanges:v}),x=f.afterCommandExecute({id:fa.id,params:n});return g.result?((0,t.sequenceExecute)([...x.redos,...b],l),e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[...h,...x.undos,...y],redoMutations:[...m,...x.redos,...b]}),!0):!1}},J={MoveRangeCommandId:qn,InsertRowCommandId:ji,InsertColCommandId:Ri,RemoveColCommandId:Yi,RemoveRowCommandId:Ki,DeleteRangeMoveLeftCommandId:Ci,DeleteRangeMoveUpCommandId:Ti,InsertRangeMoveDownCommandId:Di,InsertRangeMoveRightCommandId:ki,MoveColsCommandId:ia,MoveRowsCommandId:na,ReorderRangeCommandId:da},Y=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}({}),pa=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},ma=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}},ha=(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)}},ga=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=pa(n),a=pa(r),o=pa(t),s=ha({start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow},{start:o.startRow,end:o.endRow});return s===null?[{type:Y.Delete}]:[{type:Y.VerticalMove,step:s.step||0,length:s.length||0}]},_a=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startRow,o=r.endRow-r.startRow+1,s=i.startRow,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveRows(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},va=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[n];let a=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{a.setValue(e,t,1)});let o=new t.ObjectMatrix;return t.Range.foreach(r,(e,t)=>{if(Object.prototype.hasOwnProperty.call(i,e)){var n;let r=i[e],s=(n=a.getValue(r,t))==null?0:n;o.setValue(e,t,s)}}),o.forValue((e,t,n)=>{a.setValue(e,t,n)}),(0,t.queryObjectMatrix)(a,e=>e===1)},ya=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=pa(n),a=pa(r),o=pa(t),s=ha({start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn},{start:o.startColumn,end:o.endColumn});return s===null?[{type:Y.Delete}]:[{type:Y.HorizontalMove,step:s.step||0,length:s.length||0}]},ba=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startColumn,o=r.endColumn-r.startColumn+1,s=i.startColumn,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveColumns(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},xa=(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:Y.Delete}),t.Rectangle.contains(o,n)){s.push({type:Y.Delete});let e=t.Rectangle.getRelativeRange(n,o),r=t.Rectangle.getPositionRange(e,a);return[{type:Y.Set,range:r}]}return s},Sa=(e,n)=>{var r,i;let a=(r=e.params)==null?void 0:r.toRange,o=(i=e.params)==null?void 0:i.fromRange;if(!a||!o||!t.Rectangle.intersects(o,n)&&!t.Rectangle.intersects(a,n))return[n];if(t.Rectangle.contains(o,n)){let e=t.Rectangle.getRelativeRange(n,o);return[t.Rectangle.getPositionRange(e,a)]}let s=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{s.setValue(e,t,1)});let c=new t.ObjectMatrix,l=t.Rectangle.getIntersects(o,n);l&&t.Range.foreach(l,(e,t)=>{s.getValue(e,t)&&(s.setValue(e,t,void 0),c.setValue(e,t,1))});let u=a.startColumn-o.startColumn,d=a.startRow-o.startRow,f={startColumn:a.startColumn-u,endColumn:a.endColumn-u,startRow:a.startRow-d,endRow:a.endRow-d};return f&&t.Range.foreach(f,(e,t)=>{var n;let r=e+d,i=t+u;s.setValue(r,i,(n=c.getValue(e,t))==null?0:n)}),(0,t.queryObjectMatrix)(s,e=>e===1)},Ca=(e,n)=>{let r=pa(e),i=pa(n),a=e=>e.endColumn-e.startColumn+1,o=e=>e.endRow-e.startRow+1;if(r.startRow<=i.startRow&&r.endRow>=i.endRow){if(i.startColumn<r.startColumn&&i.endColumn>=r.startColumn&&i.endColumn<=r.endColumn||i.startColumn<r.startColumn&&i.endColumn>=r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e)return{step:0,length:-a(e)}}if(i.startColumn>=r.startColumn&&i.endColumn<=r.endColumn&&o(r)>=o(i))return null;if(i.startColumn>=r.startColumn&&i.startColumn<=r.endColumn&&i.endColumn>r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e){let t=-a(e);return{step:-(a(r)-a(e)),length:t}}}if(i.startColumn>r.endColumn)return{step:-a(r),length:0}}return{step:0,length:0}},wa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Ca(r,t);if(!a)i.push({type:Y.Delete});else{let{step:e,length:t}=a;i.push({type:Y.HorizontalMove,step:e,length:t})}return i},Ta=(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=Ca(ma(e),ma(t));if(!n)a.push({type:Y.Delete});else{let{step:e,length:t}=n;a.push({type:Y.VerticalMove,step:e,length:t})}}return a},Ea=(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:Y.VerticalMove,step:r-t,length:0}),e}return[]}return[]},Da=(e,t)=>{let n=pa(e),r=pa(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 Oa(e,n,r){let i=[];if(t.Rectangle.contains(n,r)&&i.push({type:Y.Delete}),t.Rectangle.contains(e,r)){i.push({type:Y.Delete});let a=t.Rectangle.getRelativeRange(r,e),o=t.Rectangle.getPositionRange(a,n);return[{type:Y.Set,range:o}]}return i}let ka=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Da(ma(r),ma(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},Aa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Da(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},ja=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Da(ma(r),ma(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},Ma=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endRow-i.startRow+1,o={...i,startRow:i.startRow,endRow:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e+a,t,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},Na=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Da(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},Pa=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endColumn-i.startColumn+1,o={...i,startColumn:i.startColumn,endColumn:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e,t+a,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},Fa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Ca(r,t);if(!a)i.push({type:Y.Delete});else{let{step:e,length:t}=a;i.push({type:Y.HorizontalMove,step:e,length:t})}return i},Ia=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:1/0},o=i.endColumn-i.startColumn+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e,t-o,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e,t-o,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},La=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Ca(ma(r),ma(t));if(!a)i.push({type:Y.Delete});else{let{step:e,length:t}=a;i.push({type:Y.VerticalMove,step:e,length:t})}return i},Ra=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={...i,startRow:i.startRow,endRow:1/0},o=i.endRow-i.startRow+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e-o,t,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e-o,t,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},za=(e,n)=>{var r;let i=(0,t.mergeIntervals)(((r=e.ranges)==null?[e.range]:r).map(e=>[e.startRow,e.endRow])),a=n.startRow,o=n.endRow;for(let e=i.length-1;e>=0;e--){let[t,r]=i[e];if(t<=n.startRow&&r>=n.endRow)return[];if(r<a){let e=r-t+1;a-=e,o-=e}else if(!(t>o)){let e=Math.max(t,a),n=Math.min(r,o)-e+1;if(o-=n,t<=a){let t=e-a;a-=t}}}return[{...n,startRow:a,endRow:o}]},Ba=(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]},Va=(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]},Ha=(e,t)=>{let n={...t};return e.forEach(e=>{switch(e.type){case Y.Delete:n=null;break;case Y.HorizontalMove:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case Y.VerticalMove:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case Y.Set:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Ua=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:n=Fa(t,e);break;case J.DeleteRangeMoveUpCommandId:n=La(t,e);break;case J.InsertColCommandId:n=Aa(t,e);break;case J.InsertRangeMoveDownCommandId:n=ja(t,e);break;case J.InsertRangeMoveRightCommandId:n=Na(t,e);break;case J.InsertRowCommandId:n=ka(t,e);break;case J.MoveColsCommandId:n=ya(t,e);break;case J.MoveRangeCommandId:n=xa(t,e);break;case J.MoveRowsCommandId:n=ga(t,e);break;case J.RemoveColCommandId:n=wa(t,e);break;case J.RemoveRowCommandId:n=Ta(t,e);break;case J.ReorderRangeCommandId:n=Ea(t,e);break}return Ha(n,e)},Wa=(e,n,r)=>[wi.id,Ei.id].includes(n.id)||Ja(n,r).some(n=>t.Rectangle.intersects(n,e))?Ua(e,n):e,Ga=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:return Ia(t,e);case J.DeleteRangeMoveUpCommandId:return Ra(t,e);case J.InsertRangeMoveDownCommandId:return Ma(t,e);case J.InsertRangeMoveRightCommandId:return Pa(t,e);case J.InsertColCommandId:return Va(t,e);case J.InsertRowCommandId:return Ba(t,e);case J.MoveColsCommandId:return ba(t,e);case J.MoveRangeCommandId:return Sa(t,e);case J.MoveRowsCommandId:return _a(t,e);case J.ReorderRangeCommandId:return va(t,e);case J.RemoveColCommandId:n=wa(t,e);break;case J.RemoveRowCommandId:return za(t.params,e)}let r=Ha(n,e);return r?[r]:[]},Ka=(e,n,r)=>[wi.id,Ei.id,Oi.id,`sheet.command.insert-range-move-right`].includes(n.id)||Ja(n,r).some(n=>t.Rectangle.intersects(n,e))?Ga(e,n):e;function qa(e,n){let{id:r,params:i}=n,a={length:0,step:0,type:Y.Unknown};switch(r){case $i.id:a.type=Y.Delete;break;case Te.id:a=ha({start:i.sourceRange.startRow,end:i.sourceRange.endRow},{start:i.targetRange.startRow,end:i.targetRange.endRow},{start:e.startRow,end:e.endRow}),a.type=Y.VerticalMove;break;case De.id:a=ha({start:i.sourceRange.startColumn,end:i.sourceRange.endColumn},{start:i.targetRange.startColumn,end:i.targetRange.endColumn},{start:e.startColumn,end:e.endColumn}),a.type=Y.HorizontalMove;break;case F.id:a=Ca(i.range,e),a?a.type=Y.HorizontalMove:a={step:0,length:0,type:Y.Delete};break;case ke.id:a=Ca(ma(i.range),ma(e)),a?a.type=Y.VerticalMove:a={step:0,length:0,type:Y.Delete};break;case P.id:a=Da(ma(i.range),ma(e)),a.type=Y.VerticalMove;break;case Se.id:a=Da(i.range,e),a.type=Y.HorizontalMove;break;case Ce.id:a=Oa(i.fromRange||new t.ObjectMatrix(i.from).getRange(),i.toRange||new t.ObjectMatrix(i.to).getRange(),e);break;default:break}return a?Ha(Array.isArray(a)?a:[a],e):e}function Ja(e,t){let{selectionManagerService:n}=t;switch(e.id){case J.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case J.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case J.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case J.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case J.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case J.RemoveRowCommandId:return[e.params.range];case J.RemoveColCommandId:return[e.params.range];case J.DeleteRangeMoveUpCommandId:case J.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 J.DeleteRangeMoveLeftCommandId:case J.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 J.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 Ya(e){switch(e.id){case De.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case Te.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Ce.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case Se.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case P.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case F.id:return[e.params.range];case ke.id:return[e.params.range];default:break}}function Xa(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case J.MoveColsCommandId:{let e=n.params,t=f(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 J.MoveRowsCommandId:{let e=n.params,t=f(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 J.MoveRangeCommandId:{let e=n.params,t=f(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case J.InsertRowCommandId:{let e=n.params,t=f(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 J.InsertColCommandId:{let e=n.params,t=f(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 J.RemoveRowCommandId:{let e=n.params,t=f(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 J.RemoveColCommandId:{let e=n.params,t=f(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 J.DeleteRangeMoveUpCommandId:case J.InsertRangeMoveDownCommandId:{let e=n.params,t=f(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 J.DeleteRangeMoveLeftCommandId:case J.InsertRangeMoveRightCommandId:{let e=n.params,t=f(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 J.ReorderRangeCommandId:{let e=n.params,t=f(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 Za=(0,t.createInterceptorKey)(`MERGE_REDO`),Qa=(0,t.createInterceptorKey)(`MERGE_UNDO`);var $a=class extends t.Disposable{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){var n,r;if(((n=e.params)==null?void 0:n.unitId)!==this._unitId)return;if(e.id===Ce.id){let t=e.params;if(t.from.subUnitId!==this._subUnitId||t.to.subUnitId!==this._subUnitId)return}else if(((r=e.params)==null?void 0:r.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(e.id===$i.id)return;let n=Ya(e);if(n!=null&&n.some(e=>t.Rectangle.intersects(e,this._range)))return}let i=qa(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 eo=class extends t.Disposable{constructor(e,n,r,i){super(),this._commandService=e,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,C(this,`interceptor`,new t.InterceptorManager({MERGE_REDO:Za,MERGE_UNDO:Qa})),C(this,`_watchRanges`,new Set),C(this,`_refRangeManagerMap`,new Map),C(this,`_serializer`,io()),C(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let n=(()=>{switch(e.id){case J.MoveColsCommandId:{let t=e.params,n=f(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 J.MoveRowsCommandId:{let t=e.params,n=f(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 J.MoveRangeCommandId:{var n,r;let t=e.params,i=f(this._univerInstanceService,{unitId:t.fromUnitId,subUnitId:t.fromSubUnitId}),a=f(this._univerInstanceService,{unitId:(n=t.toUnitId)==null?t.fromUnitId:n,subUnitId:(r=t.toSubUnitId)==null?t.fromSubUnitId:r});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([t.fromRange,t.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([t.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([t.toRange],a.unitId,a.subUnitId)),o}case J.InsertRowCommandId:{let n=e.params,r=f(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 J.InsertColCommandId:{let n=e.params,r=f(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 J.RemoveRowCommandId:{let n=e.params,r=f(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:n.range.startRow,endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case J.RemoveColCommandId:{let n=e.params,r=f(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:n.range.startColumn,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case J.DeleteRangeMoveUpCommandId:case J.InsertRangeMoveDownCommandId:{let t=e.params,n=f(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 J.DeleteRangeMoveLeftCommandId:case J.InsertRangeMoveRightCommandId:{let t=e.params,n=f(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 J.ReorderRangeCommandId:{let t=e.params,n=f(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=t,s=[];for(let e=a.startRow;e<=a.endRow;e++)e in o&&s.push({startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn});return this._checkRange(s,r,i)}}})();if(!n||n.length===0)return{redos:[],undos:[],preRedos:[],preUndos:[]};let r=n.reduce((t,n)=>{let r=n(e);return t.push(r),t},[]).reduce((e,t)=>{var n,r;return e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...(n=t.preRedos)==null?[]:n),e.preUndos.push(...(r=t.preUndos)==null?[]:r),e},{redos:[],undos:[],preUndos:[],preRedos:[]}),i=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.preRedos,null)||[],a=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.redos,null)||[],o=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.preUndos,null)||[];return{redos:a,undos:this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.undos,null)||[],preRedos:i,preUndos:o}}})}),C(this,`_checkRange`,(e,n,r)=>{let i=ro(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[]}),C(this,`registerRefRange`,(e,n,r,i)=>{let a=r||to(this._univerInstanceService),o=i||no(this._univerInstanceService);if(!a||!o)return(0,t.toDisposable)(()=>{});let s=ro(a,o),c=this._serializer.serialize(e),l=this._refRangeManagerMap.get(s);l||(l=new Map,this._refRangeManagerMap.set(s,l));let u=l.get(c);return u?u.add(n):l.set(c,new Set([n])),(0,t.toDisposable)(()=>{let e=l.get(c);e&&(e.delete(n),e.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(s)))})}),this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:e=>e}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:e=>e})}watchRange(e,n,r,i,a){let o;this._watchRanges.size===0&&(o=this._commandService.onCommandExecuted(e=>{if(e.type!==t.CommandType.MUTATION)return!1;for(let t of this._watchRanges)t.onMutation(e)}));let s=new $a(e,n,r,i,a);this._watchRanges.add(s);let c=(0,t.toDisposable)(()=>{this._watchRanges.delete(s),this._watchRanges.size===0&&(o==null||o.dispose(),o=null)}),l=this.disposeWithMe(c);return(0,t.toDisposable)(()=>{l.dispose(),c.dispose()})}};eo=T([w(0,t.ICommandService),w(1,(0,t.Inject)(k)),w(2,(0,t.Inject)(t.IUniverInstanceService)),w(3,(0,t.Inject)(U))],eo);function to(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function no(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function ro(e,t){return`${e}_${t}`}function io(){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 ao=[Se.id,P.id,F.id,ke.id],oo=[Te.id,De.id];function so(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 co=(0,t.createInterceptorKey)(`mergeCellPermissionCheck`),lo=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,C(this,`disposableCollection`,new t.DisposableCollection),C(this,`interceptor`,new t.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:co})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case Nn.id:case Pn.id:{var r;let n=e._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=n.getUnitId(),a=n==null?void 0:n.getActiveSheet();if(!a)return{redos:[],undos:[]};let o=a.getSheetId(),s=a.getConfig().mergeData,c=(r=e._selectionManagerService.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(c&&c.length>0&&c.some(e=>s.some(n=>t.Rectangle.intersects(n,e)))){let t={unitId:i,subUnitId:o,ranges:c},n=I(e._injector,t);return{redos:[{id:L.id,params:t}],undos:[{id:h.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=f(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:h.id,params:{unitId:e,subUnitId:n,ranges:l}}),{undos:a,redos:i}):o}})}refRangeHandle(e,t,n){switch(e.id){case J.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case J.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case Mi.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case zi.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Zi.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case Ji.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case Jn.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case Ai.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case Oi.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case Ei.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case wi.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getUniverSheetInstance(e);if(!n)return;let r=n==null?void 0:n.getSheetBySheetId(t);if(!r)return;this.disposableCollection.dispose();let i=r.getMergeData(),a=n=>this.refRangeHandle(n,e,t);i.forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,a,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===It.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===h.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=uo(this._univerInstanceService,t);if(!r)return this._handleNull();let i=fo(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=Ha(ga({id:J.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=uo(this._univerInstanceService,t);if(!r)return this._handleNull();let i=fo(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=Ha(ya({id:J.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveRangeCommand(e,n,r){var i,a;let o=uo(this._univerInstanceService,n);if(!o)return this._handleNull();let s=(i=e.fromSubUnitId)==null?r:i,c=(a=e.toSubUnitId)==null?s:a,l=fo(o,s),u=fo(o,c);if(!l||!u)return this._handleNull();let d=l.getMergeData().filter(n=>t.Rectangle.intersects(n,e.fromRange)),f=u.getMergeData().filter(n=>t.Rectangle.intersects(n,e.toRange)),p=so(d.map(n=>t.Rectangle.getRelativeRange(n,e.fromRange)).map(n=>t.Rectangle.getPositionRange(n,e.toRange))).filter(e=>!u.getMergeData().some(n=>t.Rectangle.equals(e,n))),m=[],g=[];return r===s&&d.length>0&&(m.push({id:L.id,params:{unitId:n,subUnitId:s,ranges:d}}),g.push({id:h.id,params:{unitId:n,subUnitId:s,ranges:d}})),r===c&&f.length>0&&(m.push({id:L.id,params:{unitId:n,subUnitId:c,ranges:f}}),g.push({id:h.id,params:{unitId:n,subUnitId:c,ranges:f}})),r===c&&p.length>0&&(m.push({id:h.id,params:{unitId:n,subUnitId:c,ranges:p}}),g.unshift({id:L.id,params:{unitId:n,subUnitId:c,ranges:p}})),m.length===0?this._handleNull():{redos:m,undos:g}}_handleInsertRowCommand(e,n,r){let i=uo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=fo(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},g=m(this._injector,p);return{redos:[{id:L.id,params:d},{id:h.id,params:p}],undos:[{id:L.id,params:g},{id:h.id,params:f}]}}_handleInsertColCommand(e,n,r){let{range:i}=e,a=uo(this._univerInstanceService,n);if(!a)return this._handleNull();let o=fo(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},g=m(this._injector,p);return{redos:[{id:L.id,params:d},{id:h.id,params:p}],undos:[{id:L.id,params:g},{id:h.id,params:f}]}}_handleRemoveColCommand(e,n,r){let i=uo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=fo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:L.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleRemoveRowCommand(e,n,r){let{range:i}=e,a=uo(this._univerInstanceService,n);if(!a)return this._handleNull();let o=fo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:L.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleInsertRangeMoveRightCommand(e,n,r){let i=uo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=fo(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},g=m(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:h.id,params:p}],preUndos:[{id:L.id,params:g}],undos:[{id:h.id,params:f}]}}_handleInsertRangeMoveDownCommand(e,n,r){let i=uo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=fo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}],y=[{id:L.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveUpCommand(e,n,r){let i=uo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=fo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}],y=[{id:L.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveLeftCommand(e,n,r){let i=uo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=fo(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},g=m(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:h.id,params:p}],undos:[{id:h.id,params:f}],preUndos:[{id:L.id,params:g}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(oo.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn,u=r.getConfig().mergeData,d=[];u.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f})}),r.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}if(ao.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=e.params;if(!i)return;let{range:a}=i,o=e.id.includes(`row`),s=e.id.includes(`insert`),c=o?a.startRow:a.startColumn,l=o?a.endRow:a.endColumn,u=l-c+1,d=[];r.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;s?o?c<=t&&(t+=u,n+=u):c<=r&&(r+=u,i+=u):o?l<t&&(t-=u,n-=u):l<r&&(r-=u,i-=u),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),n.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};lo=T([w(0,(0,t.Inject)(t.ICommandService)),w(1,(0,t.Inject)(eo)),w(2,(0,t.Inject)(t.IUniverInstanceService)),w(3,(0,t.Inject)(t.Injector)),w(4,(0,t.Inject)(k)),w(5,(0,t.Inject)(U))],lo);function uo(e,n){return n?e.getUniverSheetInstance(n):e.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET)}function fo(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}let po=(e,n,r)=>{let i=e.get(U).getCurrentSelections(),{value:a,selections:o,unitId:s,subUnitId:c}=n;if(i&&i.length>0){let e=i[(i==null?void 0:i.length)-1].primary;if(e){let{actualColumn:n,actualRow:l}=e,{startRow:u,startColumn:d,endRow:f,endColumn:p}=o[o.length-1];if(a===t.Dimension.COLUMNS){let e=r.find(e=>e.startColumn===n&&e.endColumn===n&&l===e.startRow);e&&(p=e.endColumn,u=e.startRow,f=e.endRow)}else if(a===t.Dimension.ROWS){let e=r.find(e=>e.startRow===l&&e.endRow===l&&n===e.startColumn);e&&(f=e.endRow,d=e.startColumn,p=e.endColumn)}let m={startRow:u,startColumn:d,endRow:f,endColumn:p,actualRow:l,actualColumn:n,isMerged:!0,isMergedMainCell:u===l&&d===n},h=i.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null})),g={unitId:s,subUnitId:c,type:H.ONLY_SET,selections:h};return{id:G.id,params:g}}return null}return null},mo=(e,t)=>{let n=e.get(U).getCurrentSelections(),{unitId:r,subUnitId:i}=t;if(n&&n.length>0&&n[(n==null?void 0:n.length)-1].primary){let e={unitId:r,subUnitId:i,type:H.ONLY_SET,selections:[...n]};return{id:G.id,params:e}}return null},ho={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,n)=>{var r;let i=e.get(U),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=(n==null?void 0:n.ranges)||((r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(s!=null&&s.length))return!1;let c=f(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{subUnitId:l,unitId:u,worksheet:d}=c,p={unitId:u,subUnitId:l,ranges:s},m=d.getConfig().mergeData.filter(e=>s.some(n=>t.Rectangle.intersects(n,e)));if(!m.length)return!1;let g=I(e,p),_=i.getCurrentSelections(),v=t.Tools.deepClone(_),y=t.Tools.deepClone(_);if(_.length){let e=y[y.length-1],{startRow:t,startColumn:n}=e.range;e.primary={startRow:t,startColumn:n,endRow:t,endColumn:n,actualRow:t,actualColumn:n,isMerged:!1,isMergedMainCell:!1}}let b={unitId:u,subUnitId:l,cellValue:go(d,m).getMatrix()},x=R(e,b),S=[{id:L.id,params:g},{id:z.id,params:b},{id:G.id,params:{unitId:u,subUnitId:l,selections:y,type:H.ONLY_SET}}],C=[{id:h.id,params:g},{id:z.id,params:x},{id:G.id,params:{unitId:u,subUnitId:l,selections:v,type:H.ONLY_SET}}];return(0,t.sequenceExecute)(S,a)?(o.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function go(e,n){let r=new t.ObjectMatrix;return n.forEach(t=>{let{startRow:n,startColumn:i,endColumn:a,endRow:o}=t,s=e.getCellMatrix().getValue(n,i);if(s!=null&&s.s)for(let e=n;e<=o;e++)for(let t=i;t<=a;t++)(e!==n||t!==i)&&r.setValue(e,t,{s:s.s})}),r}let _o=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function vo(e,t){return t.some(t=>yo(e,t))}function yo(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 bo(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:xo(n,r).getData()},c=R(e,s);i.push({id:z.id,params:c}),a.push({id:z.id,params:s})}),{undos:i,redos:a}}function xo(e,n){let{startRow:r,startColumn:i,endColumn:a,endRow:o}=n,s=e.getMatrixWithMergedCells(r,i,o,a,t.CellModeEnum.Raw),c=new t.ObjectMatrix,l=null;return s.forValue((t,n,a)=>{if(a&&t>=r&&n>=i){var o,s;!l&&e.cellHasValue(a)&&(a.v!==``||((o=(s=a.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.length)==null?0:o)>2)&&(l=a),c.setValue(t,n,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),c.setValue(r,i,l),c}let So={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,n)=>{let r=f(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=so(s,n.value),d=vo(i,u);if(d&&!n.defaultMerge){let n=e.get(t.IConfirmService),r=e.get(t.LocaleService);if(!await n.confirm({id:`merge.confirm.add-worksheet-merge`,title:{title:`merge.confirm.warning`},children:{title:`merge.confirm.title`},cancelText:r.t(`merge.confirm.cancel`),confirmText:r.t(`merge.confirm.confirm`)}))return!1}let p=[],g=[],_={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},y=I(e,_),b=m(e,v);if(y.ranges.length>0&&p.push({id:L.id,params:y}),p.push({id:h.id,params:v}),g.push({id:L.id,params:b}),y.ranges.length>0&&g.push({id:h.id,params:y}),d){let t=bo(e,a,i,u);p.unshift(...t.redos),g.push(...t.undos)}let x=po(e,n,u);x&&p.push(x);let S=mo(e,n);S&&g.push(S);let C=e.get(k).onCommandExecute({id:So.id,params:{unitId:a,subUnitId:o,ranges:u}});return p.push(...C.redos),g.push(...C.undos),(0,t.sequenceExecute)(p,c).result?(l.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:p}),!0):!1}},Co={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Do(_o.MergeAll,r);if(!(i!=null&&i.length))return!1;let a=f(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(So.id,{selections:i,unitId:s,subUnitId:c})}},wo={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Do(_o.MergeVertical,r);if(!(i!=null&&i.length))return!1;let a=f(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(So.id,{value:t.Dimension.COLUMNS,selections:i,unitId:s,subUnitId:c})}},To={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Do(_o.MergeHorizontal,r);if(!(i!=null&&i.length))return!1;let a=f(e.get(t.IUniverInstanceService));if(!a)return!1;let{workbook:o,worksheet:s}=a,c=o.getUnitId(),l=s.getSheetId();return e.get(t.ICommandService).executeCommand(So.id,{value:t.Dimension.ROWS,selections:i,unitId:c,subUnitId:l})}};function Eo(e,n,r,i,a={}){let o=f(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(ho.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(So.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function Do(e,t){return t?e===_o.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===_o.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===_o.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var Oo=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange`,new n.Subject),C(this,`_ruleRefresh`,new n.Subject),C(this,`_resetOrder`,new n.Subject),C(this,`ruleChange$`,this._ruleChange.asObservable()),C(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),C(this,`resetOrder$`,this._resetOrder.asObservable()),C(this,`_worksheetRuleInitStateChange`,new n.BehaviorSubject(!1)),C(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 ko={id:`sheet.mutation.add-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Oo),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},Ao={id:`sheet.mutation.delete-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Oo),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},jo={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(ko.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:ko.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:Ao.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},Mo={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=_e(e,n);return r.syncExecuteCommand(ge.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:o}],redoMutations:[{id:ge.id,params:n}]}),!0):!1}},No={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=be(e,t);m.unshift({id:P.id,params:t}),h.push({id:ke.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=xe(e,t);m.unshift({id:Se.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}},Po=[`ff`,`fs`,`tr`,`tb`],X={type:t.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(e,n)=>{var r;let i=f(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),p=e.get(U),m=c?[c]:(r=p.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(m!=null&&m.length))return!1;let h=new t.ObjectMatrix,g=Bn(s);if(t.Tools.isArray(l.value))for(let e=0;e<m.length;e++)g.forOperableEach(m[e],(e,t,n)=>{h.setValue(e,t,{s:{[l.type]:l.value[e-n.startRow][t-n.startColumn]}})});else for(let e=0;e<m.length;e++){let t={s:{[l.type]:l.value}};g.forOperableEach(m[e],(e,n)=>h.setValue(e,n,t))}let _={subUnitId:o,unitId:a,cellValue:h.getMatrix()},v=e.get(sa).getSkeleton(a,o),y=R(e,_),b=null;if(Po.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=la(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:ca(e,s)}}let x=u.syncExecuteCommand(z.id,_),S=e.get(k),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:X.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}},Fo={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,s)}},Io={type:t.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},Lo={type:t.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},Ro={type:t.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},zo={type:t.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},Bo={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(X.id,i)}},Vo={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(X.id,i)}},Ho={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(X.id,i)}},Uo={type:t.CommandType.COMMAND,id:`sheet.command.reset-text-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(X.id,{style:{type:`cl`,value:{rgb:null}}})},Wo={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(X.id,i)}},Go={type:t.CommandType.COMMAND,id:`sheet.command.reset-background-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(X.id,{style:{type:`bg`,value:{rgb:null}}})},Ko={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(X.id,i)}},qo={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(X.id,i)}},Jo={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(X.id,i)}},Yo={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(X.id,a)}},Xo={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Zo=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Qo=[``,`万`,`亿`,`万亿`,`亿亿`],$o=[``,`十`,`百`,`千`],es={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function ts(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=Xo[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=es[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 ns(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Zo[a]+n):(i=!1,t=Zo[a],t+=$o[r],n=t+n),r++,e=Math.floor(e/10)}return n}function rs(e){let t=0,n=``,r=``,i=!1;if(e===0)return Zo[0];for(;e>0;){let a=e%1e4;i&&(r=Zo[0]+r),n=ns(a),n+=a===0?Qo[0]:Qo[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function is(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Xo;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Xo||n[e]in es)){t=!1;break}}return t}function as(e){if(!e)return{isExtendNumber:!1};let t=/0|([1-9]+[0-9]*)/g,n=t.test(e);if(n){let n=e.match(t);if(n&&n.length>0){let t=n[n.length-1],r=e.lastIndexOf(t),i=e.substr(0,r),a=e.substr(r+t.length);return{isExtendNumber:!0,matchTxt:Number(t),beforeTxt:i,afterTxt:a}}return{isExtendNumber:!1}}return{isExtendNumber:n}}function os(e){let t;return t=e.length===1?e===`日`||ts(e)<7:!1,t}function ss(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function cs(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function ls(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function us(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 ds(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 fs(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);Os(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function ps(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 ms(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 hs(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function gs(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&&ms(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%e.length,a=t.Tools.deepClone(e[n]);Os(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&&(Ds(a)&&(a.v=o),i.push(a))}else{let o=hs(e.length);for(let s=1;s<=n;s++){let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);Os(c);let l=r===t.Direction.DOWN||r===t.Direction.RIGHT,u=_s(e.length+s,a,o,l);c&&(Ds(c)&&(c.v=u),i.push(c))}}return i}function _s(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 vs(e,n,r){let i=[],a=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=n;s++){var o;let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);Os(c);let l=`${(o=e[e.length-1])==null?void 0:o.v}`;if(!l)continue;let u=l==null?void 0:l.match(a),d=u==null?void 0:u[u.length-1];if(!d)continue;let f=Math.abs(Number(d)+r*s),p=l.lastIndexOf(d),m=l.substr(0,p)+f.toString()+l.substr(p+d.length);c&&(c.v=m,i.push(c))}return i}function ys(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);Os(a),a&&(delete a.v,r.push(a))}return r}function bs(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]);Os(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=ts(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 xs(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]);Os(s);let c=ts(`${(a=e[e.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:rs(c),s&&(s.v=l,i.push(s))}return i}let Ss={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 Cs(e){let t=!1;return Object.keys(Ss).forEach(n=>{Ss[n].includes(e)&&(t=!0)}),t}function ws(e){let t=``,n=[];return Object.keys(Ss).forEach(r=>{Ss[r].includes(e)&&(t=r,n.push(...Ss[r]))}),{name:t,series:n}}function Ts(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]);Os(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 Es(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 Ds(e){return!((0,t.isFormulaString)(e.f)||(0,t.isFormulaId)(e.si)||e.t===t.CellValueType.BOOLEAN)}function Os(e){e&&`custom`in e&&delete e.custom}function ks(e,t){return t?e.reverse():e}function As(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{rows:t,cols:r}=e;t.forEach(e=>{r.forEach(t=>{n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})})})}),n.clone()}let js={chnNumChar:Xo,chnNumChar2:Zo,chnUnitSection:Qo,chnUnitChar:$o,chnNameValue:es,chineseToNumber:ts,sectionToChinese:ns,numberToChinese:rs,isChnNumber:is,matchExtendNumber:as,isChnWeek1:os,isChnWeek2:ss,isChnWeek3:cs,getLenS:ls,isEqualDiff:us,getDataIndex:ds,fillCopy:fs,fillCopyStyles:ps,isEqualRatio:ms,getXArr:hs,fillSeries:gs,forecast:_s,fillExtendNumber:vs,fillOnlyFormat:ys,fillChnWeek:bs,fillChnNumber:xs,isLoopSeries:Cs,getLoopSeriesInfo:ws,fillLoopSeries:Ts,getAutoFillRepeatRange:Es,needsUpdateCellValue:Ds,removeCellCustom:Os,reverseIfNeed:ks,generateNullCellValueRowCol:As},Z=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),Q=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}({}),Ms=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:Ns,fillChnNumber:Ps,fillChnWeek:Fs,fillCopy:Is,fillExtendNumber:Ls,fillLoopSeries:Rs,fillSeries:zs,getLoopSeriesInfo:Bs,isChnNumber:Vs,isChnWeek2:Hs,isChnWeek3:Us,isEqualDiff:Ws,isLoopSeries:Gs,matchExtendNumber:Ks,reverseIfNeed:qs}=js,Js={dateRule:{type:Q.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===Q.DATE,applyFunctions:{[Z.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),zs(i,n,r).reverse()):zs(i,n,r)}}},numberRule:{type:Q.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===Q.NUMBER,applyFunctions:{[Z.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),zs(i,n,r).reverse()):zs(i,n,r)}}},extendNumberRule:{type:Q.EXTEND_NUMBER,priority:900,match:e=>Ks(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===Q.EXTEND_NUMBER){var n;let{beforeTxt:r,afterTxt:i}=Ks(`${(n=e.cellData)==null?void 0:n.v}`||``),{beforeTxt:a,afterTxt:o}=Ks(`${t==null?void 0:t.v}`||``);if(r===a&&i===o)return!0}return!1},applyFunctions:{[Z.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,qs(Ls(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`;t&&s.push(Number(Ks(t).matchTxt))}return a&&(i.reverse(),s.reverse()),Ws(s)?(o=s[1]-s[0],qs(Ls(i,n,o),a)):Is(i,n)}}},chnNumberRule:{type:Q.CHN_NUMBER,priority:830,match:e=>!!Vs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_NUMBER,applyFunctions:{[Z.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===`日`||Ns(e)<7)?qs(Fs(i,n,t),a):qs(Ps(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&&Ns(t)>0&&Ns(t)<7?l.push(Ns(t)+u*7):l.push(Ns(t))}return a&&(i.reverse(),l.reverse()),Ws(l)?s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0?qs(Fs(i,n,l[1]-l[0]),a):qs(Ps(i,n,l[1]-l[0]),a):Is(i,n)}}},chnWeek2Rule:{type:Q.CHN_WEEK2,priority:820,match:e=>!!Hs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK2,applyFunctions:{[Z.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,qs(Fs(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(Ns(n)+s*7)}return a&&(i.reverse(),o.reverse()),Ws(o)?qs(Fs(i,n,o[1]-o[0],1),a):Is(i,n)}}},chnWeek3Rule:{type:Q.CHN_WEEK3,priority:810,match:e=>Us(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK3,applyFunctions:{[Z.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,qs(Fs(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(Ns(n)+s*7)}}return a&&(i.reverse(),o.reverse()),Ws(o)?qs(Fs(i,n,o[1]-o[0],2),a):Is(i,n)}}},loopSeriesRule:{type:Q.LOOP_SERIES,priority:800,match:e=>Gs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===Q.LOOP_SERIES){var n;return Bs(`${(n=e.cellData)==null?void 0:n.v}`||``).name===Bs(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[Z.SERIES]:(e,n,r)=>{var i;let{data:a}=e,o=r===t.Direction.LEFT||r===t.Direction.UP,{series:s}=Bs(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,qs(Rs(a,n,e,s),o)}let c=[],l=0;for(let e=0;e<a.length;e++){var u;let t=`${(u=a[e])==null?void 0:u.v}`;t&&(t===s[0]?e===0?c.push(0):(l++,c.push(l*s.length)):c.push(s.indexOf(t)+l*7))}return o&&(a.reverse(),c.reverse()),Ws(c)?qs(Rs(a,n,c[1]-c[0],s),o):Is(a,n)}}},otherRule:{type:Q.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===Q.OTHER}},{chnNumberRule:Ys,chnWeek2Rule:Xs,chnWeek3Rule:Zs,dateRule:Qs,extendNumberRule:$s,loopSeriesRule:ec,numberRule:tc,otherRule:nc}=Js,rc=class extends t.Disposable{constructor(e,r,i,a){super(),this._commandService=e,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,C(this,`_rules`,[]),C(this,`_hooks`,[]),C(this,`_applyType$`,new n.BehaviorSubject(Z.SERIES)),C(this,`_isFillingStyle`,!0),C(this,`_prevUndos`,[]),C(this,`_autoFillLocation$`,new n.BehaviorSubject(null)),C(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),C(this,`_showMenu$`,new n.BehaviorSubject(!1)),C(this,`showMenu$`,this._showMenu$.asObservable()),C(this,`_direction`,t.Direction.DOWN),C(this,`applyType$`,this._applyType$.asObservable()),C(this,`_menu$`,new n.BehaviorSubject([{label:`autoFill.copy`,value:Z.COPY,disable:!1},{label:`autoFill.series`,value:Z.SERIES,disable:!1},{label:`autoFill.formatOnly`,value:Z.ONLY_FORMAT,disable:!1},{label:`autoFill.noFormat`,value:Z.NO_FORMAT,disable:!1}])),C(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Qs,tc,$s,Ys,Xs,Zs,ec,nc].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(uc.id,{clearRange:{startRow:i.startRow,endRow:i.endRow,startColumn:i.endColumn+1,endColumn:r.endColumn},selectionRange:i});if(i.endRow<r.endRow&&i.endRow>r.startRow)return this._commandService.executeCommand(uc.id,{clearRange:{startRow:i.endRow+1,endRow:r.endRow,startColumn:i.startColumn,endColumn:i.endColumn},selectionRange:i});let s={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:i.endColumn},c=null;if(i.startRow<r.startRow)c=t.Direction.UP,s.endRow=r.startRow-1;else if(i.endRow>r.endRow)c=t.Direction.DOWN,s.startRow=r.endRow+1;else if(i.startColumn<r.startColumn)c=t.Direction.LEFT,s.endColumn=r.startColumn-1;else if(i.endColumn>r.endColumn)c=t.Direction.RIGHT,s.startColumn=r.endColumn+1;else return!1;this.direction=c;let l=this._injector.invoke(e=>Sn(r,e)),u=this._injector.invoke(e=>Sn(s,e));if(!l||!u)return!1;this.autoFillLocation={source:l,target:u,unitId:e,subUnitId:n};let d=[];if(this.getActiveHooks().forEach(t=>{var r;let i=t==null||(r=t.onBeforeFillData)==null?void 0:r.call(t,{source:l,target:u,unitId:e,subUnitId:n},c);i&&d.unshift(i)}),this._initPrevUndo(),a)return this.fillData(a);for(let e=0;e<d.length;e++){let t=this.menu.find(t=>t.value===d[e]);if(t&&!t.disable)return this.fillData(d[e])}let f=(o=this.menu.find(e=>e.disable===!1))==null?void 0:o.value;return f?this.fillData(f):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=Ms.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===Ms.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===Ms.DEFAULT)),s=i.filter(e=>e.type===Ms.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(xn(o),xn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(G.id,{selections:[{primary:W({startRow:o.rows[0],endRow:o.rows[o.rows.length-1],startColumn:o.cols[0],endColumn:o.cols[o.cols.length-1]},d),range:{...p,rangeType:t.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e))||{};r&&h.push(...r),i&&g.push(...i)});let _=g.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:v,undos:y}=this._getAutoHeightUndoRedos(g,u,d);return g.push(...v),h.push(...y),_&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:g})),m.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,n,r){if(this.applyType===Z.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&&Po.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=jt(s,r),l={id:Pt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Pt.id,params:c}]}:{undos:[],redos:[]}}};rc=T([w(0,t.ICommandService),w(1,t.IUndoRedoService),w(2,(0,t.Inject)(t.IUniverInstanceService)),w(3,(0,t.Inject)(t.Injector))],rc);let ic=(0,t.createIdentifier)(`univer.auto-fill-service`),ac={type:t.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,n)=>{let r=f(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(ic).triggerAutoFill(i,a,o,s,c)}};function oc(e,n){let r=e.get(U).getCurrentLastSelection();if(!r)return null;let i=f(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:Z.COPY}:{sourceRange:{startRow:s,endRow:s,startColumn:l,endColumn:u},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:Z.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:Z.COPY}:{sourceRange:{startRow:s,endRow:c,startColumn:l,endColumn:l},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:Z.COPY}}async function sc(e,n){let r=oc(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand(ac.id,r);return i&&e.get(ic).setShowMenu(!1),i}let cc={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>sc(e,`down`)},lc={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>sc(e,`right`)},uc={id:`sheet.command.auto-clear-content`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=f(e.get(t.IUniverInstanceService));if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(k),s=e.get(U),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:p,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:yn([u])},g=R(e,h),_=[{id:z.id,params:h},{id:G.id,params:{selections:[{primary:{startColumn:p,startRow:m,endColumn:p,endRow:m,actualRow:m,actualColumn:p,isMerged:!1,isMergedMainCell:!1},range:{...d}}],unitId:c,subUnitId:l}}],v=[{id:z.id,params:g},{id:G.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i)){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}},dc={id:`sheet.command.clear-selection-content`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(U),s=e.get(t.IUndoRedoService),c=e.get(k),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m={subUnitId:f,unitId:u,cellValue:yn(Cn(p,e,u,f))},h=R(e,m),g=c.onCommandExecute({id:dc.id}),_=[{id:z.id,params:m},...g.redos],v=[...g.undos,{id:z.id,params:h}];return(0,t.sequenceExecute)(_,a).result?(s.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:_}),!0):!1}},fc=`sheets.config`;Symbol(fc);let pc={largeSheetCellCountThreshold:6e3,batchSize:3e3},mc={},hc=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,C(this,`_tasks`,new Map),C(this,`_idleCallbackId`,null),C(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)}};hc=T([w(0,t.ICommandService),w(1,t.IUniverInstanceService)],hc);let gc={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},_c=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),vc={id:`sheet.mutation.insert-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{sheet:i,index:a,unitId:o,styles:s}=n,c=r.getUniverSheetInstance(o);return c?(s&&c.addStyles(s),c.addWorksheet(i.id,a,(0,t.cloneWorksheetData)(i))):!1}};function yc(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 bc(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 xc=`sheet.command.copy-sheet`;function Sc(e,n,r,i,a,o,s){var c,l;let u=e.get(t.IConfigService).getConfig(fc),d={...pc,...u==null?void 0:u.largeSheetOperation},f=(0,t.cloneWorksheetData)(r.getConfig());f.name=wc(n,o,f.name);let p=(0,t.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=yc(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=bc(i,p,h,d.batchSize),n={...f,cellData:e};_={index:m+1,sheet:n,unitId:i},v=t}else _={index:m+1,sheet:f,unitId:i};let y=_c(e,_),b=s.onCommandExecute({id:xc,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:vc.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:$i.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}let Cc={type:t.CommandType.COMMAND,id:xc,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(k),s=e.get(t.LocaleService),c=e.get(hc),l=f(a,n);if(!l)return!1;let{workbook:u,worksheet:d,unitId:p,subUnitId:m}=l,{redos:h,undos:g,newSheetId:_,isSplit:v,scheduledMutations:y}=Sc(e,u,d,p,m,s,o);if((0,t.sequenceExecute)(h,r).result){if(v){if(i.pushUndoRedo({unitID:p,undoMutations:g,redoMutations:[]}),y.length>0){for(let e of y)r.syncExecuteCommand(e.id,e.params,{syncOnly:!0});r.syncExecuteCommand(gc.id,{unitId:p,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(p,_,y)}}else i.pushUndoRedo({unitID:p,undoMutations:g,redoMutations:h});return!0}return!1}};function wc(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 Tc={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(Dn.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:Dn.id,params:c}],undoMutations:[{id:kn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},Ec={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(Ao.id,{unitId:o,subUnitId:s});let c=[{id:Ao.id,params:{unitId:o,subUnitId:s}}],l=[{id:ko.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},Dc={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=ye(e,n);return r.syncExecuteCommand(ve.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:ge.id,params:o}],redoMutations:[{id:ve.id,params:n}]}),!0):!1}},Oc={id:`sheet.command.insert-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService),a=e.get(t.IUndoRedoService);if(!n)return!1;let o={...n};return r.syncExecuteCommand(i.SetDefinedNameMutation.id,o)?(a.pushUndoRedo({unitID:n.unitId,undoMutations:[{id:i.RemoveDefinedNameMutation.id,params:o}],redoMutations:[{id:i.SetDefinedNameMutation.id,params:o}]}),!0):!1}},kc={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=d(a,{unitId:n==null?void 0:n.unitId});if(!s)return!1;let{unitId:c,workbook:l}=s,u=l.getSheets().length,f=n==null?void 0:n.sheet,p=f==null?void 0:f.id,m=(0,t.mergeWorksheetSnapshotWithDefault)(f||{});if(n){var h;u=(h=n.index)==null?u:h,m.id=p||(0,t.generateRandomId)(),m.name=(f==null?void 0:f.name)||l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else m.id=(0,t.generateRandomId)(),m.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let g={index:u,sheet:m,unitId:c},_=_c(e,g);return r.syncExecuteCommand(vc.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:$i.id,params:_}],redoMutations:[{id:vc.id,params:g}]}),!0):!1}},Ac={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(ic).fillData(t.type)},jc={id:`sheet.mutation.register-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!f(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new te(o,a);return r.registerRangeThemeStyle(i,s),!0}},Mc={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!f(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},Nc={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(!f(a,n))return!1;let c={unitId:r,themeName:i.getName(),rangeThemeStyleJson:i.toJson()},l={unitId:r,themeName:i.getName()};return o.syncExecuteCommand(jc.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:Mc.id,params:l}],redoMutations:[{id:jc.id,params:c}]}),!0}},Pc={id:`sheet.command.remove-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(k);if(!n)return!1;let l={...n},u=c.onCommandExecute({id:Pc.id,params:n}),d=[...(r=u.preRedos)==null?[]:r,{id:i.RemoveDefinedNameMutation.id,params:l},...u.redos],f=[...(a=u.preUndos)==null?[]:a,{id:i.SetDefinedNameMutation.id,params:l},...u.undos];return(0,t.sequenceExecute)(d,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},Fc={id:`sheet.command.remove-sheet`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(k),l=e.get(t.IConfigService),u=f(s,n);if(!u)return!1;let{unitId:d,subUnitId:p,workbook:m,worksheet:h}=u;if(m.getSheets().length<=1)return!1;let g=l.getConfig(fc),_={...pc,...g==null?void 0:g.largeSheetOperation},v=ua(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:p,unitId:d,subUnitName:h.getName()},b=v?null:Qi(e,y),x=c.onCommandExecute({id:Fc.id,params:{unitId:d,subUnitId:p}}),S=[...(r=x.preRedos)==null?[]:r,{id:$i.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:vc.id,params:b},...x.undos];return(0,t.sequenceExecute)(S,a).result?(v?o.clearUndoRedo(d):o.pushUndoRedo({unitID:d,undoMutations:C,redoMutations:S}),!0):!1}};var Ic=class{constructor(){C(this,`_borderInfo`,{type:t.BorderType.ALL,color:`#000000`,style:t.BorderStyleTypes.THIN,activeBorderType:!1}),C(this,`_borderInfo$`,new n.BehaviorSubject(this._borderInfo)),C(this,`borderInfo$`,this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this._refresh()}setColor(e){this._borderInfo.color=e,this._refresh()}setStyle(e){this._borderInfo.style=e,this._refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}_refresh(){this._borderInfo$.next(this._borderInfo)}};function Lc(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 Rc=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||Lc(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}})}})},zc=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 Bc(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}=zc(y),O=new t.ObjectMatrix,{worksheet:k,unitId:A,subUnitId:j}=n;return{worksheet:k,unitId:A,subUnitId:j,style:i,color:a,type:o,top:s,left:c,right:u,bottom:l,vertical:d,horizontal:f,tl_br:p,tl_bc:m,tl_mr:h,bl_tr:g,ml_tr:_,bc_tr:v,topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:D,range:y,mr:O,borderStyle:{s:i,cl:{rgb:a}}}}let Vc=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&Lc(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&&Lc(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 Hc(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)=>{Rc(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 Uc=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)=>{Rc(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))},Wc=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)=>{Rc(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(Lc(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))},Gc={id:`sheet.command.set-border`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(t.IUniverInstanceService),s=e.get(U),c=e.get(Ic),l=f(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 p=Bc(c,l,u);Vc(p),Uc(p),Hc(p),Wc(p);let{unitId:m,subUnitId:h,mr:g}=p,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=R(e,_);return i.syncExecuteCommand(z.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:z.id,params:v}],redoMutations:[{id:z.id,params:_}]}),!0):!1}},Kc={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(Ic).setType(n.value),r.syncExecuteCommand(Gc.id)}},qc={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(Ic).setStyle(n.value),r.syncExecuteCommand(Gc.id)}},Jc={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(Ic).setColor(n.value),r.syncExecuteCommand(Gc.id)}},Yc={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(Ic);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(Gc.id,{unitId:r,subUnitId:i,ranges:o})}},Xc={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=f(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=Fe(u,l);return r.syncExecuteCommand(Ie.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Ie.id,params:d}],redoMutations:[{id:Ie.id,params:u}]}),!0):!1}},Zc={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(k),s=e.get(t.ICommandService),c=f(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!c)return!1;let{worksheet:l}=c,u={unitId:r,subUnitId:i,ranges:a},d={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:W(e,l),style:null}))},p=ze(e,u),m={unitId:r,subUnitId:i,selections:tl(a).map(e=>({range:e,primary:W(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:Be.id,params:u},{id:G.id,params:d}],s),g=o.onCommandExecute({id:Zc.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:Zc.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Re.id,params:p},{id:G.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:Be.id,params:u},{id:G.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Qc={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var n;let r=e.get(U),i=e.get(t.ICommandService),a=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(a!=null&&a.length))return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=a.map(e=>s.getHiddenCols(e.startColumn,e.endColumn)).flat();return i.executeCommand(Zc.id,{unitId:c,subUnitId:l,ranges:u})}},$c={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r,i;let a=e.get(U),o=e.get(k),s=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(l!=null&&l.length))return!1;let u=f(s,n);if(!u)return!1;let{worksheet:d,unitId:p,subUnitId:m}=u;l=el(u.worksheet,l);let h={unitId:p,subUnitId:m,ranges:l},g={unitId:p,subUnitId:m,selections:tl(l).map(e=>({range:e,primary:W(e,d),style:null}))},_=Le(e,h),v={unitId:p,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:W(e,d),style:null}))},y=(0,t.sequenceExecute)([{id:Re.id,params:h},{id:G.id,params:g}],c),b=o.onCommandExecute({id:$c.id,params:h}),x=(0,t.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:$c.id,params:h});return(0,t.sequenceExecute)(n.redos,c),e.get(t.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:[{id:Be.id,params:_},{id:G.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Re.id,params:h},{id:G.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function el(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 tl(e){return nl(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function nl(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 rl={id:`sheet.command.set-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(k);if(!n)return!1;let l={...n},u=(0,i.SetDefinedNameMutationFactory)(e,n),d=c.onCommandExecute({id:rl.id,params:n}),f=[...(r=d.preRedos)==null?[]:r,{id:i.RemoveDefinedNameMutation.id,params:u},{id:i.SetDefinedNameMutation.id,params:l},...d.redos],p=[...(a=d.preUndos)==null?[]:a,{id:i.RemoveDefinedNameMutation.id,params:l},{id:i.SetDefinedNameMutation.id,params:u},...d.undos];return(0,t.sequenceExecute)(f,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},il=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(i==null)throw Error(`worksheet is null error!`);let a=i.getConfig().freeze;return{unitId:n.unitId,subUnitId:n.subUnitId,...a}},al={id:`sheet.mutation.set-frozen`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig(),{startRow:o,startColumn:s,ySplit:c,xSplit:l}=n;return a.freeze={startRow:o,startColumn:s,ySplit:c,xSplit:l},!0}},ol={type:t.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=f(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:p}=n;if(u>=c.getRowCount()||l>=c.getColumnCount()||d>=c.getColumnCount()||p>=c.getRowCount())return!1;let m={unitId:o,subUnitId:s,...n},h=il(e,m);return r.syncExecuteCommand(al.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:al.id,params:h}],redoMutations:[{id:al.id,params:m}]}),!0):!1}},sl={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=f(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=il(e,l);return r.syncExecuteCommand(al.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:al.id,params:u}],redoMutations:[{id:al.id,params:l}]}),!0}},cl={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=f(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(Ve.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ve.id,params:d}],redoMutations:[{id:Ve.id,params:u}]}),!0):!1}},$={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(V).setRule(n,r,a,i),!0}},ll=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(V).getRule(n,r,i);return a?{id:$.id,params:{...t,rule:a}}:null},ul={id:`sheet.mutation.set-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(Oo).setRule(n,r,i),!0}},dl={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),a=e.get(V),{rule:o,oldRule:s}=n,{unitId:c,subUnitId:l}=o,u=[],d=[];return(s==null?void 0:s.unitType)===o.unitType?o.unitType===q.Worksheet?(u.push({id:ul.id,params:{unitId:c,subUnitId:l,rule:o}}),d.push({id:ul.id,params:{unitId:c,subUnitId:l,rule:s}})):(u.push({id:$.id,params:{unitId:c,subUnitId:l,rule:o,ruleId:o.id}}),d.push({id:$.id,params:{unitId:c,subUnitId:l,ruleId:s.id,rule:s}})):(s&&(s.unitType===q.Worksheet?(u.push({id:Ao.id,params:{unitId:c,subUnitId:l}}),d.push({id:ko.id,params:{unitId:c,rule:s,subUnitId:s.subUnitId}})):s.unitType===q.SelectRange&&(u.push({id:Dn.id,params:{unitId:c,subUnitId:l,ruleIds:[s.id]}}),d.push({id:kn.id,params:{unitId:c,subUnitId:l,rules:[s]}}))),o.unitType===q.Worksheet?(u.push({id:ko.id,params:{unitId:c,rule:o,subUnitId:o.subUnitId}}),d.unshift({id:Ao.id,params:{unitId:c,subUnitId:l}})):o.unitType===q.SelectRange&&(o.id=a.createRuleId(c,l),u.push({id:kn.id,params:{unitId:c,subUnitId:l,rules:[o]}}),d.unshift({id:Dn.id,params:{unitId:c,subUnitId:l,ruleIds:[o.id]}}))),(0,t.sequenceExecute)(u,r)&&i.pushUndoRedo({unitID:c,undoMutations:d,redoMutations:u}),!0}},fl={id:`sheet.command.set-range-custom-metadata`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=f(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:p}=s,m=t.Tools.isArray(c),h=new t.ObjectMatrix;for(let e=l;e<=d;e++)for(let t=u;t<=p;t++){let n=m?c[e-l][t-u]:c;h.setValue(e,t,n)}return i.syncExecuteCommand(z.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},pl={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=f(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=ht(u,l);return r.syncExecuteCommand(gt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:gt.id,params:d}],redoMutations:[{id:gt.id,params:u}]}),!0):!1}},ml={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(k),l=f(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d={unitId:r,subUnitId:i,ranges:a},p={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:W(e,u),style:null}))},m=_t(e,d),h={unitId:r,subUnitId:i,selections:vl(a).map(e=>({range:e,primary:W(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:vt.id,params:d},{id:G.id,params:p}],o),_=c.onCommandExecute({id:ml.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let e=c.afterCommandExecute({id:ml.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:bt.id,params:m},{id:G.id,params:h},...(b=_.undos)==null?[]:b,...e.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:vt.id,params:d},{id:G.id,params:p},..._.redos,...e.redos]}),!0}return!0}},hl={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var n;let r=e.get(U),i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(o!=null&&o.length))return!1;let s=f(i);if(!s)return!1;let{worksheet:c,unitId:l,subUnitId:u}=s,d=o.map(e=>c.getHiddenRows(e.startRow,e.endRow)).flat();return a.executeCommand(ml.id,{unitId:l,subUnitId:u,ranges:d})}},gl={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r,i,a;let o=e.get(U),s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l=e.get(t.IUniverInstanceService),u=e.get(k),d=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=o.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(d!=null&&d.length))return!1;let p=f(l,n);if(!p)return!1;d=_l(p.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=p,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:vl(d).map(e=>({range:e,primary:W(e,g),style:null}))},y=yt(e,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:W(e,g),style:null}))},x=u.onCommandExecute({id:gl.id,params:_});if((0,t.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:bt.id,params:_},{id:G.id,params:v},...x.redos],s).result){var S,C,w;let e=u.afterCommandExecute({id:gl.id,params:_});return(0,t.sequenceExecute)(e.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:vt.id,params:y},{id:G.id,params:b},...(C=x.undos)==null?[]:C,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:bt.id,params:_},{id:G.id,params:v},...x.redos,...e.redos]}),!0}return!0}};function _l(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 vl(e){return yl(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function yl(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 bl=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},xl={id:`sheet.mutation.set-tab-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},Sl={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=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=bl(e,c);return r.syncExecuteCommand(xl.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:xl.id,params:l}],redoMutations:[{id:xl.id,params:c}]}),!0):!1}},Cl={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}},wl={type:t.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(k);if(!d(e.get(t.IUniverInstanceService),n))return!1;let o=a.onCommandExecute({id:wl.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:Cl.id,params:s},...o.redos],i).result}},Tl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,n,r)=>{let i=e.get(t.ICommandService),a=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(It.id,{unitId:o,subUnitId:s},r))},4)})}},El={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,{anchorCol:u,deltaX:d}=n,p=s.getColumnWidth(u)+d,m=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,h=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN),g=m?t.RANGE_TYPE.ALL:h.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=u&&u<=n})?t.RANGE_TYPE.COLUMN:t.RANGE_TYPE.NORMAL,_;if(g===t.RANGE_TYPE.ALL){let e=s.getRowCount();_={subUnitId:l,unitId:c,colWidth:p,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:p}:{subUnitId:l,unitId:c,colWidth:p,ranges:[{startRow:0,endRow:s.getMaxRows()-1,startColumn:u,endColumn:u}]};let v=e.get(sa).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=la(_.ranges,v);ca(y,s);let x=e.get(k),{undos:S,redos:C}=x.onCommandExecute({id:El.id,params:_}),w=xt(_,s),T=i.syncExecuteCommand(St.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:O,redos:A}=e.get(k).afterCommandExecute({id:El.id,params:_}),j=(0,t.sequenceExecute)([...C,...A,...D],i);return T&&j.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:St.id,params:w},...S,...O,...E],redoMutations:[{id:St.id,params:_},...C,...A,...D]}),!0}},Dl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(U),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(k),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=f(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:p,worksheet:m}=u,h=e.get(sa).getSkeleton(p,d),g={subUnitId:d,unitId:p,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=la(g.ranges,h);ca(_,m);let y=xt(g,m),b=o.syncExecuteCommand(St.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:p,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:Dl.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let e=c.afterCommandExecute({id:Dl.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:St.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:St.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},Ol={type:t.CommandType.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(U),o=f(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:p}=e.get(k).onCommandExecute({id:Ol.id,params:u});return(0,t.sequenceExecute)([...p],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...p]}),!0):!1}},kl={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(!f(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount:a},l=Ct(e,c);return o.syncExecuteCommand(wt.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:wt.id,params:l}],redoMutations:[{id:wt.id,params:c}]}),!0):!1}},Al={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=Et(e,n);return r.syncExecuteCommand(Tt.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Tt.id,params:o}],redoMutations:[{id:Tt.id,params:n}]}),!0):!1}},jl=(e,n)=>{let r=p(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()}},Ml={id:`sheet.mutation.set-worksheet-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().hidden=n.hidden,!0):!1}},Nl={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=f(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 p={unitId:u,subUnitId:d,hidden:t.BooleanNumber.TRUE},m=jl(e,p);return c.getSheets().filter(e=>e.getConfig().hidden===t.BooleanNumber.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):r.syncExecuteCommand(Ml.id,p)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:Ml.id,params:m}],redoMutations:[{id:Ml.id,params:p}]}),!0):!1}},Pl=(e,n)=>{let r=p(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()}},Fl={id:`sheet.mutation.set-worksheet-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},Il={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(k),c=f(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d={subUnitId:u,name:n.name,unitId:l},p=Pl(e,d),m=s.onCommandExecute({id:Il.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:Fl.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:Fl.id,params:p},...m.undos];return(0,t.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},Ll=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),Rl={id:`sheet.mutation.set-worksheet-order`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getConfig();return i.sheetOrder.splice(n.fromOrder,1),i.sheetOrder.splice(n.toOrder,0,n.subUnitId),r.ensureSheetOrderUnique(),!0}},zl={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=f(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=Ll(e,l);return r.syncExecuteCommand(Rl.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Rl.id,params:u}],redoMutations:[{id:Rl.id,params:l}]}),!0):!1}};var Bl=class{constructor(){C(this,`_model`,new Map),C(this,`_pointChange`,new n.Subject),C(this,`pointChange$`,this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var 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]}},Vl=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.Delete),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!0),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.Delete}.${r}`}},Hl=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.ManageCollaborator),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!0),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.ManageCollaborator}.${r}`}};let Ul=()=>[Or,Dr,Hl,Vl],Wl=[K.Edit,K.View,K.ManageCollaborator,K.Delete],Gl=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>Ul().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{}),Kl=()=>[Rr,Kr,kr,Xr,Ar,zr,Wr,Nr,Ir,Jr,Br,Lr,Yr,Gr,jr,Zr,qr,Mr,Ur,Hr,Fr,Pr],ql=[K.Edit,K.Print,K.Comment,K.View,K.Copy,K.Export,K.ManageCollaborator,K.CreateSheet,K.DeleteSheet,K.RenameSheet,K.HideSheet,K.Duplicate,K.Share,K.MoveSheet,K.CopySheet,K.RecoverHistory,K.ViewHistory,K.CreatePermissionObject,K.InsertRow,K.InsertColumn,K.DeleteRow,K.DeleteColumn],Jl=()=>[ni,_i,ci,ei],Yl=()=>[Qr,$r,ti,ri,ii,ai,si,oi,li,fi,pi,mi,hi,gi],Xl=[K.Copy,K.DeleteColumn,K.DeleteRow,K.EditExtraObject,K.Filter,K.InsertColumn,K.InsertRow,K.InsertHyperlink,K.PivotTable,K.SetCellStyle,K.SetCellValue,K.SetColumnStyle,K.SetRowStyle,K.Sort],Zl=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();[...Jl(),...Yl()].forEach(e=>{let r=new e(t,n);this._permissionService.addPermissionPoint(r)}),this._logService.debug(`[WorksheetPermissionService]`,`Initialization completed`,t,n)};e.getSheets().forEach(e=>{n(e)}),e.sheetCreated$.subscribe(e=>{n(e)}),e.sheetDisposed$.subscribe(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Ul()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...Jl(),...Yl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,a.takeUntil)(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();Jl().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`:Jl().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:Jl().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:[nr.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{Jl().forEach(n=>{let r=new n(e,t);r.value=!1,this._permissionService.addPermissionPoint(r)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:e=>{let t=this._univerInstanceService.getUnit(e);t&&(t.getSheets().forEach(t=>{let n=t.getSheetId();[...Jl(),...Yl()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),Kl().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:[nr.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{Yl().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};Zl=T([w(0,(0,t.Inject)(t.IPermissionService)),w(1,(0,t.Inject)(t.IUniverInstanceService)),w(2,(0,t.Inject)(t.Injector)),w(3,(0,t.Inject)(Oo)),w(4,(0,t.Inject)(Bl)),w(5,(0,t.Inject)(t.IResourceManagerService)),w(6,(0,t.Inject)(V)),w(7,(0,t.Inject)(t.ILogService))],Zl);let Ql={id:`sheet.mutation.set-worksheet-permission-points`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(Bl).addRule(n),!0}},$l={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(Ql.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},eu={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(ul.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:ul.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:ul.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},tu=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...t.Tools.deepClone(n),rightToLeft:r}},nu={id:`sheet.mutation.set-worksheet-right-to-left`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig();return a.rightToLeft=n.rightToLeft,!0}},ru={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=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=t.BooleanNumber.FALSE;if(n){var l;c=(l=n.rightToLeft)==null?t.BooleanNumber.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=tu(e,u);return r.syncExecuteCommand(nu.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:nu.id,params:d}],redoMutations:[{id:nu.id,params:u}]}),!0):!1}},iu={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(!f(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=Dt(e,c);return o.syncExecuteCommand(Ot.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Ot.id,params:l}],redoMutations:[{id:Ot.id,params:c}]}),!0):!1}},au={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i=e.get(k);if(!(r!=null&&r.length))return!1;let a=f(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,p=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,m=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW),h=p?t.RANGE_TYPE.ALL:m.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?t.RANGE_TYPE.ROW:t.RANGE_TYPE.NORMAL,g;if(h===t.RANGE_TYPE.ALL){let e=o.getColumnCount();g={subUnitId:s,unitId:c,rowHeight:d,ranges:Array(o.getRowCount()).fill(void 0).map((t,n)=>({startRow:n,endRow:n,startColumn:0,endColumn:e-1}))}}else g=h===t.RANGE_TYPE.ROW?{subUnitId:s,unitId:c,ranges:m.map(e=>t.Rectangle.clone(e.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let _=kt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=At(v,o),b=e.get(t.ICommandService),x=e.get(t.IUndoRedoService),S=i.onCommandExecute({id:au.id,params:g}),C=(0,t.sequenceExecute)([{id:Mt.id,params:g},{id:Nt.id,params:v}],b),w=(0,t.sequenceExecute)([...S.redos],b);if(C.result&&w.result){var T,E;let e=i.afterCommandExecute({id:au.id,params:g});return(0,t.sequenceExecute)(e.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...(T=S.preUndos)==null?[]:T,{id:Mt.id,params:_},{id:Nt.id,params:y},...S.undos,...e.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:Mt.id,params:g},{id:Nt.id,params:v},...S.redos,...e.redos]}),!0}return!1}},ou={type:t.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(e,n)=>{var r,i;let a=e.get(U),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(t.IUniverInstanceService),l=e.get(k),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=f(c,n);if(!d)return!1;let{unitId:p,subUnitId:m,worksheet:h}=d,g={subUnitId:m,unitId:p,ranges:u,rowHeight:n.value},_=kt(g,h),v={unitId:p,subUnitId:m,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=At(v,h),b=(0,t.sequenceExecute)([{id:Mt.id,params:g},{id:Nt.id,params:v}],o),x=l.onCommandExecute({id:ou.id,params:g}),S=(0,t.sequenceExecute)([...x.redos],o);if(b.result&&S.result){var C,w;let e=l.afterCommandExecute({id:ou.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(C=x.preRedos)==null?[]:C,{id:Mt.id,params:_},{id:Nt.id,params:y},...x.undos,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:Mt.id,params:g},{id:Nt.id,params:v},...x.redos,...e.redos]}),!0}return!1}},su={type:t.CommandType.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(U),c=f(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u,worksheet:d}=c,p=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=s.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(p!=null&&p.length))return!1;let m={unitId:l,subUnitId:u,ranges:p,autoHeightInfo:t.BooleanNumber.TRUE},h=At(m,d),g=a.syncExecuteCommand(Nt.id,m),_=e.get(sa).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=la(m.ranges,_),b=e.get(k),{undos:x,redos:S}=b.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:v,autoHeightRanges:v,lazyAutoHeightRanges:y}),{undos:C,redos:w}=b.onCommandExecute({id:su.id,params:m}),T=(0,t.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Nt.id,params:h},...C,...x],redoMutations:[{id:Nt.id,params:m},...w,...S]}),!0):!1}},cu={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,n)=>{let r=f(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=jl(e,l),d=s.syncExecuteCommand(Ml.id,l),p={unitId:i,subUnitId:a},m=s.syncExecuteCommand(It.id,p);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:Ml.id,params:u}],redoMutations:[{id:Ml.id,params:l}]}),!0):!1}},lu={type:t.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,n)=>{let r=f(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:p,maxLength:m}=pn(o,s,c,l,u),h=o.getColumnCount(),{startColumn:g}=t.Range.transformRange(s,o);if(s.startColumn!==s.endColumn)return!1;let _=e.get(t.ICommandService),v=e.get(t.IUndoRedoService),y=[],b=[],x=g+m+1-h;if(x>0){let t={unitId:i,subUnitId:a,range:{startRow:0,endRow:o.getRowCount()-1,startColumn:h-1,endColumn:h-1+x}};y.push({id:Se.id,params:t});let n=xe(e,t);b.push({id:F.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+m},C=new t.ObjectMatrix;for(let e=S.startRow;e<=S.endRow;e++)for(let t=S.startColumn;t<=S.endColumn;t++){let n=p[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}},uu=(0,t.createIdentifier)(`INumfmtService`),du=(e,n)=>{let r=e.get(uu),{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=hu(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=nn(n.ranges)}),l.push({id:fu.id,params:hu(a,o,s)})}return c.length&&l.push({id:pu.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},fu={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(uu),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}},pu={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(uu).deleteValues(n,r,i),!0}},mu=(e,n)=>{let r=e.get(uu),{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=hu(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=nn(t.ranges)}),[{id:fu.id,params:c}]},hu=(e,n,r)=>{let i=mn(r,`pattern`),a={},o={},s=hn();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}},gu={id:`sheet.command.text-to-number`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=f(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(a!=null&&a.length))return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),{worksheet:c,unitId:l,subUnitId:u}=i,d=new t.ObjectMatrix,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 m,h;if(d.getValue(n,r))continue;let e=c.getCellRaw(n,r),i=typeof(e==null?void 0:e.s)==`string`?(m=c.getStyleDataByHash(e.s))==null||(m=m.n)==null?void 0:m.pattern:e==null||(h=e.s)==null||(h=h.n)==null?void 0:h.pattern;e&&e.v&&(e.t!==t.CellValueType.NUMBER||(0,t.isTextFormat)(i))&&(0,t.isRealNum)(e.v)&&(d.setValue(n,r,{v:Number(e.v),t:t.CellValueType.NUMBER}),(0,t.isTextFormat)(i)&&p.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let g={subUnitId:u,unitId:l,cellValue:d.getMatrix()},_=[{id:z.id,params:g}],v=[{id:z.id,params:R(e,g)}];if(p.length){let t={unitId:l,subUnitId:u,ranges:p};_.push({id:pu.id,params:t}),v.push(...mu(e,t))}return(0,t.sequenceExecute)(_,o).result?(s.pushUndoRedo({unitID:l,undoMutations:v,redoMutations:_}),!0):!1}},_u={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)}},vu={type:t.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=f(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(Ft.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ft.id,params:d}],redoMutations:[{id:Ft.id,params:u}]}),!0):!1}},yu={id:`sheet.command.unregister-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;if(!n||!f(e.get(t.IUniverInstanceService),n))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(N),{unitId:s,themeName:c}=n,l={unitId:s,themeName:c},u={unitId:s,themeName:c,rangeThemeStyleJson:(r=o.getRangeThemeStyle(s,c))==null?void 0:r.toJson()};return i.syncExecuteCommand(jc.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:jc.id,params:u}],redoMutations:[{id:Mc.id,params:l}]}),!0):!1}},bu={id:`sheet.mutation.add-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleJSON:n,unitId:r}=t,i=e.get(N),a=new te(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},xu={id:`sheet.mutation.empty`,type:t.CommandType.MUTATION,handler:()=>!0},Su={id:`sheet.operation.mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},Cu={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},wu={id:`sheet.mutation.remove-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(N).unregisterRangeThemeStyle(r,n),!0}},Tu={id:`sheet.mutation.set-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,styleName:r,style:i}=t,a=e.get(N).getRangeThemeStyle(n,r);return a&&(i.headerRowStyle&&a.setHeaderRowStyle(i.headerRowStyle),i.firstRowStyle&&a.setFirstRowStyle(i.firstRowStyle),i.secondRowStyle&&a.setSecondRowStyle(i.secondRowStyle),i.lastRowStyle&&a.setLastRowStyle(i.lastRowStyle)),!0}},Eu={id:`sheet.operation.scroll-to-cell`,type:t.CommandType.OPERATION,handler:()=>!0},{getLenS:Du,getDataIndex:Ou,fillCopy:ku,fillCopyStyles:Au,generateNullCellValueRowCol:ju}=js,{otherRule:Mu}=Js,Nu=class extends t.Disposable{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,C(this,`_beforeApplyData`,[]),C(this,`_copyData`,[]),this._init()}_init(){this._initDefaultHook()}quit(){this._beforeApplyData=[],this._copyData=[]}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook({id:`default`,type:Ms.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(Z.SERIES,!0),Z.COPY):(this._autoFillService.setDisableApplyType(Z.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===Z.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=Ou(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===Z.COPY){let t=a==null?void 0:a[Z.COPY];return t?t(e,n,r,o,s):(l&&c.reverse(),ku(c,n))}if(i===Z.SERIES){let t=a==null?void 0:a[Z.SERIES];return t?t(e,n,r,o):(l&&c.reverse(),a!=null&&a[Z.COPY]?a[Z.COPY](e,n,r,o,s):ku(c,n))}if(i===Z.ONLY_FORMAT){let t=a==null?void 0:a[Z.ONLY_FORMAT];return t?t(e,n,r,o):Au(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))||Mu;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===Z.NO_FORMAT&&(s=!1,r=Z.SERIES);let{source:c,target:l,unitId:u,subUnitId:d}=e;if(!c||!l||n==null)return{undos:a,redos:o};let f=xn(c),p=xn(l),{cols:g,rows:_}=l,{cols:v,rows:y}=c,b=this._copyData,x;x=n===t.Direction.DOWN||n===t.Direction.UP?y.length:v.length;let S=[];if(n===t.Direction.DOWN||n===t.Direction.UP){let t=_.length,i=[];g.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=g.length;_.forEach((i,a)=>{let o=b[a],c=this._getApplyData(o,x,t,n,r,s,e),l=[];for(let e=0;e<c.length;e++)l.push({s:null,...c[e]});S.push(l)})}let C=[],w=(i=this._univerInstanceService.getUnit(u))==null?void 0:i.getStyles();if(s?(C=this._getMergeApplyData(f,p,n,x,e),S.forEach(e=>{e.forEach(e=>{e&&w&&w&&(e.s=w.getStyleByCell(e))})})):S.forEach((e,t)=>{e.forEach((e,n)=>{e&&w&&(e.s=w.getStyleByCell(this._beforeApplyData[t][n])||null)})}),r===Z.ONLY_FORMAT&&S.forEach((e,t)=>{e.forEach((e,n)=>{if(e){let r=this._beforeApplyData[t][n]||{};e.f=r.f,e.si=r.si,e.t=r.t,e.v=r.v}})}),s){var T;let e=[],n=(T=this._univerInstanceService.getUniverSheetInstance(u))==null||(T=T.getSheetBySheetId(d))==null?void 0:T.getMergeData();if(n&&n.forEach(n=>{t.Rectangle.intersects(n,p)&&e.push(n)}),e.length){let t={unitId:u,subUnitId:d,ranges:e},n=this._injector.invoke(I,t);o.push({id:L.id,params:t}),a.unshift({id:h.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:ju([l])},D=this._injector.invoke(R,E);o.push({id:z.id,params:E}),a.unshift({id:z.id,params:D});let O=new t.ObjectMatrix;_.forEach((e,t)=>{g.forEach((n,r)=>{S[t][r]&&O.setValue(e,n,S[t][r])})});let k=O.getMatrix(),A={subUnitId:d,unitId:u,cellValue:k},j=this._injector.invoke(R,A);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,k)}),a.unshift({id:z.id,params:j}),o.push({id:z.id,params:A}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:so(C)},t=this._injector.invoke(m,e);a.unshift({id:L.id,params:t}),o.push({id:h.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||[Q.OTHER,Q.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&&Q.NUMBER===t}))?Z.COPY:Z.SERIES}};Nu=T([w(0,t.IUniverInstanceService),w(1,ic),w(2,(0,t.Inject)(t.Injector))],Nu);let Pu=`maxCellsPerSheet`,Fu=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)}}))}};Fu=T([w(0,i.IDefinedNamesService),w(1,t.IResourceManagerService)],Fu);let Iu=[al.id],Lu=[P.id,Se.id,ke.id,F.id,Te.id,De.id],Ru=class extends t.Disposable{constructor(e,n,r){var i,a;super(),this._univerInstanceService=e,this._commandService=n,this._configService=r,C(this,`_d`,new t.DisposableCollection),C(this,`_enabled`,!0);let o=(i=(a=this._configService.getConfig(`sheets.config`))==null?void 0:a.freezeSync)==null?!0:i;this.setEnabled(o)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{Iu.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(Lu.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===P.id?this._handleInsertRowMutation(r,t):n===Se.id?this._handleInsertColMutation(r,t):n===ke.id?this._handleRemoveRowMutation(r,t):n===F.id?this._handleRemoveColMutation(r,t):n===Te.id?this._handleMoveRowsMutation(r,t):n===De.id&&this._handleMoveColsMutation(r,t)}}))}_handleInsertRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=n.endRow-n.startRow+1,o={...a,startRow:Math.max(1,a.startRow+e),ySplit:Math.max(1,a.ySplit+e)};this._sequenceExecute(r,i,o,t)}}_handleInsertColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=n.endColumn-n.startColumn+1,o={...a,startColumn:Math.max(1,a.startColumn+e),xSplit:Math.max(1,a.xSplit+e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=Math.min(a.startRow,n.endRow+1)-n.startRow,o={...a,startRow:Math.max(1,a.startRow-e),ySplit:Math.max(1,a.ySplit-e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=Math.min(a.startColumn,n.endColumn+1)-n.startColumn,o={...a,startColumn:Math.max(1,a.startColumn-e),xSplit:Math.max(1,a.xSplit-e)};this._sequenceExecute(r,i,o,t)}}_handleMoveRowsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startRow<=0||n.startRow>=o.startRow&&r.startRow>=o.startRow||n.endRow<o.startRow&&r.endRow<o.startRow)return;let s=n.endRow-n.startRow+1,c=Math.max(Math.min(o.startRow,n.endRow+1)-n.startRow,0),l={...o};r.startRow>=o.startRow?(l.startRow=Math.max(1,o.startRow-c),l.ySplit=Math.max(1,o.ySplit-c)):(l.startRow=o.startRow+s-c,l.ySplit=o.ySplit+s-c),this._sequenceExecute(i,a,l,t)}_handleMoveColsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startColumn<=0||n.startColumn>=o.startColumn&&r.startColumn>=o.startColumn||n.endColumn<o.startColumn&&r.endColumn<o.startColumn)return;let s=n.endColumn-n.startColumn+1,c=Math.max(Math.min(o.startColumn,n.endColumn+1)-n.startColumn,0),l={...o};r.startColumn>=o.startColumn?(l.startColumn=Math.max(1,o.startColumn-c),l.xSplit=Math.max(1,o.xSplit-c)):(l.startColumn=o.startColumn+s-c,l.xSplit=o.xSplit+s-c),this._sequenceExecute(i,a,l,t)}_getFreeze(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return null;let i=r.getSheetBySheetId(n);return i?i.getFreeze():null}_sequenceExecute(e,n,r,i){(0,t.sequenceExecute)([{id:al.id,params:{...r,unitId:e,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};Ru=T([w(0,(0,t.Inject)(t.IUniverInstanceService)),w(1,t.ICommandService),w(2,t.IConfigService)],Ru);let zu=class extends t.Disposable{constructor(e,r,i,a,o,s,c,l,u,d){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._contextService=u,this._definedNamesService=d,C(this,`disposableCollection`,new t.DisposableCollection),C(this,`_triggerPermissionUIEvent$`,new n.Subject),C(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}blockExecuteWithoutPermission(e){throw this._triggerPermissionUIEvent$.next(e),new t.CustomCommandExecutionError(`have no permission`)}_getPermissionCheck(e,n){let r=!0,i=``;switch(e){case vi.id:(0,t.isICellData)(n.value)&&n.value.f?(r=this._permissionCheckWithFormula(n),i=this._localeService.t(`permission.dialog.formulaErr`)):r=this._permissionCheckBySetRangeValue({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[pi,ni]},n);break;case dc.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[pi,ni]},n==null?void 0:n.ranges,n==null?void 0:n.unitId,n==null?void 0:n.subUnitId),i=this._localeService.t(`permission.dialog.editErr`);break;case El.id:case Dl.id:r=this.permissionCheckWithoutRange({worksheetTypes:[mi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case au.id:case ou.id:case su.id:r=this.permissionCheckWithoutRange({worksheetTypes:[hi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case aa.id:case ra.id:r=this._permissionCheckByMoveCommand(n),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case Jn.id:r=this._permissionCheckByMoveRangeCommand(n),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case zl.id:r=this._permissionCheckByWorksheetCommand([Rr,Gr]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case Il.id:r=this._permissionCheckByWorksheetCommand([Rr,Jr]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case cu.id:{let{unitId:e,subUnitId:t}=n;r=this._permissionCheckByWorksheetCommand([Rr,Br],e,t),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder()}break;case Zc.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ni,mi]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ml.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ni,hi]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Qc.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ni,mi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case hl.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ni,hi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Ai.id:r=this._permissionCheckWithInsertRangeMove(`right`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Oi.id:r=this._permissionCheckWithInsertRangeMove(`bottom`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case wi.id:r=this._permissionCheckWithInsertRangeMove(`left`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Ei.id:r=this._permissionCheckWithInsertRangeMove(`top`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case ac.id:r=this._permissionCheckByAutoFillCommand(n),i=this._localeService.t(`permission.dialog.autoFillErr`);break;default:break}r||this.blockExecuteWithoutPermission(i)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e.id,e==null?void 0:e.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Fl.id){var n;let{unitId:r=(n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId(),subUnitId:i}=e.params;if(!r||!i)return;let a=this._worksheetProtectionRuleModel.getRule(r,i),o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i);a&&this._worksheetProtectionRuleModel.ruleRefresh(a.permissionId),o.length&&this._rangeProtectionRuleModel.ruleRefresh(i)}}))}_permissionCheckWithInsertRangeMove(e){var n;let r=f(this._univerInstanceService);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=t.Tools.deepClone((n=this._selectionManagerService.getCurrentLastSelection())==null?void 0:n.range);return!(!s||(e===`top`||e===`bottom`?s.endRow=i.getRowCount()-1:(e===`left`||e===`right`)&&(s.endColumn=i.getColumnCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(a,o).map(e=>e.ranges).flat().some(e=>t.Rectangle.getIntersects(s,e))))}_permissionCheckByWorksheetCommand(e,t,n){let r=f(this._univerInstanceService,{unitId:t,subUnitId:n});if(!r)return!1;let{unitId:i,subUnitId:a}=r,o=this._worksheetProtectionRuleModel.getRule(i,a),s=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).length>0;if(o||s){var c,l;return(c=(l=this._permissionService.getPermissionPoint(new Wr(i).id))==null?void 0:l.value)==null?!1:c}else return this._permissionService.composePermission(e.map(e=>new e(i).id)).every(e=>e.value)}permissionCheckWithoutRange(e){var t,n,r,i;let a=f(this._univerInstanceService);if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=this._selectionManagerService.getCurrentLastSelection();if(!l)return!0;let u=(t=l==null||(n=l.primary)==null?void 0:n.actualRow)==null?0:t,d=(r=l==null||(i=l.primary)==null?void 0:i.actualColumn)==null?0:r,{workbookTypes:p,worksheetTypes:m,rangeTypes:h}=e;return!(p&&p.some(e=>{var t,n;let r=new e(s);return((t=(n=this._permissionService.getPermissionPoint(r.id))==null?void 0:n.value)==null?!1:t)===!1})===!0||m&&m.some(e=>{var t,n;let r=new e(s,c);return((t=(n=this._permissionService.getPermissionPoint(r.id))==null?void 0:n.value)==null?!1:t)===!1})===!0||h&&h.some(e=>{var t,n,r,i;let a=(t=o.getCell(u,d))==null||(t=t.selectionProtection)==null?void 0:t[0];if(!(a!=null&&a.ruleId))return!1;let l=(n=this._rangeProtectionRuleModel.getRule(s,c,a.ruleId))==null?void 0:n.permissionId;if(!l)return!1;let f=new e(s,c,l);return((r=(i=this._permissionService.getPermissionPoint(f.id))==null?void 0:i.value)==null?!1:r)===!1})===!0)}permissionCheckWithRanges(e,n,r,i){var a;let o=f(this._univerInstanceService,{unitId:r,subUnitId:i});if(!o)return!1;let s=n==null?(a=this._selectionManagerService.getCurrentSelections())==null?void 0:a.map(e=>e.range):n;if(!s)return!1;let{unitId:c,subUnitId:l}=o,{workbookTypes:u,worksheetTypes:d,rangeTypes:p}=e,m=[];return u&&m.push(...u.map(e=>new e(c).id)),d&&m.push(...d.map(e=>new e(c,l).id)),p&&this._rangeProtectionRuleModel.getSubunitRuleList(c,l).forEach(e=>{s.some(n=>e.ranges.some(e=>t.Rectangle.intersects(e,n)))&&m.push(...p.map(t=>new t(c,l,e.permissionId).id))}),m.length?this._permissionService.composePermission(m).every(e=>e.value):!0}_permissionCheckByMoveCommand(e){let n=f(this._univerInstanceService,e);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,o=e.toRange;o.endRow===r.getRowCount()-1?o.endColumn=o.startColumn:o.endRow=o.startRow;let s=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>t.Rectangle.intersects(e,o));return s.length>0?!1:(s.forEach(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=r.getCell(n,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[K.Edit])===!1)return!1}}),!0)}_permissionCheckByMoveRangeCommand(e){let n=f(this._univerInstanceService);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,o=e.toRange,s=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>t.Rectangle.intersects(e,o));return s.length>0?!1:(s.forEach(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=r.getCell(n,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[K.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(e,n){let r=[];r=n.range?[n.range]:[new t.ObjectMatrix(n.value).getDataRange()];let{unitId:i,subUnitId:a}=n;return this.permissionCheckWithRanges(e,r,i,a)}_permissionCheckWithFormula(e){let n=e.value,r=e.range,a=n.f;if(a){var o;let n=a.substring(1),r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),l=(o=e.unitId)==null?r.getUnitId():o,u=this._definedNamesService.getValueByName(l,n);if(u){let e=u.formulaOrRefString;e.startsWith(i.operatorToken.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let n=t[e],a=(0,i.deserializeRangeWithSheet)(n);if(a.sheetName){let e=r.getSheetBySheetName(a.sheetName);if(!e)return!0;let{startRow:t,endRow:n,startColumn:i,endColumn:o}=a.range;for(let r=t;r<=n;r++)for(let t=i;t<=o;t++){var s;let n=(s=e.getCell(r,t))==null||(s=s.selectionProtection)==null?void 0:s[0];if((n==null?void 0:n[K.View])===!1)return!1}}}return!0}else{let e=this._lexerTreeBuilder.sequenceNodesBuilder(a);if(!e)return!0;for(let n=0;n<e.length;n++){let r=e[n];if(typeof r==`string`||r.nodeType!==i.sequenceNodeType.REFERENCE)continue;let{token:a}=r,o=(0,i.deserializeRangeWithSheetWithCache)(a),s=o.unitId?this._univerInstanceService.getUnit(o.unitId):this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!s)return!0;let l=o.sheetName?s.getSheetBySheetName(o.sheetName):s.getActiveSheet(),u=s.getUnitId();if(o.sheetName){if(l=s.getSheetBySheetName(o.sheetName),!l)return!0;let e=l==null?void 0:l.getSheetId();if(!this._permissionService.getPermissionPoint(new _i(u,e).id))return!1}if(!l)return!0;let{startRow:d,endRow:f,startColumn:p,endColumn:m}=o.range;for(let e=d;e<=f;e++)for(let t=p;t<=m;t++){var c;let n=(c=l.getCell(e,t))==null||(c=c.selectionProtection)==null?void 0:c[0];if((n==null?void 0:n[K.View])===!1)return!1}}return!0}}if(r){let n=f(this._univerInstanceService,e);if(!n)return!1;let{unitId:i,subUnitId:a}=n,o=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).filter(e=>e.ranges.some(e=>t.Rectangle.intersects(e,r))).map(e=>new Dr(i,a,e.permissionId).id);if(!this._permissionService.composePermission(o).every(e=>e.value))return!1}return!0}_permissionCheckByAutoFillCommand(e){if(!e)return!1;let{targetRange:n}=e,r=f(this._univerInstanceService,e);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r;return!this._rangeProtectionRuleModel.getSubunitRuleList(a,o).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>t.Rectangle.intersects(e,n)).some(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++){var t;let e=(t=i.getCell(n,r))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[K.Edit])===!1)return!0}return!1})}};zu=T([w(0,t.ICommandService),w(1,t.IUniverInstanceService),w(2,t.IPermissionService),w(3,(0,t.Inject)(U)),w(4,(0,t.Inject)(V)),w(5,(0,t.Inject)(Oo)),w(6,(0,t.Inject)(t.LocaleService)),w(7,(0,t.Inject)(i.LexerTreeBuilder)),w(8,t.IContextService),w(9,i.IDefinedNamesService)],zu);let Bu=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,C(this,`_unitPermissionInitStateChange`,new n.BehaviorSubject(!1)),C(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();Kl().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Ul()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...Jl(),...Yl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),Kl().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)}};Bu=T([w(0,(0,t.Inject)(t.IPermissionService)),w(1,(0,t.Inject)(t.IUniverInstanceService)),w(2,(0,t.Inject)(V)),w(3,(0,t.Inject)(Oo)),w(4,(0,t.Inject)(Bl))],Bu);let Vu=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:q.SelectRange,actions:Wl})})}),!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;Ul().forEach(r=>{let i=new r(n,t.subUnitId,e.objectID),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._rangeProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(t=>e(t))),this._rangeProtectionRuleModel.changeRuleInitState(!0)}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?this._rangeProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId),[...Yl()].forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,n.value)})):this._authzIoService.allowed({objectID:e.rule.permissionId,unitID:e.unitId,objectType:q.SelectRange,actions:Wl}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(Ul().forEach(n=>{if(e.type===`set`){let{rule:t,oldRule:n}=e;if(t.permissionId===(n==null?void 0:n.permissionId))return}let r=e.rule,i=new n(r.unitId,r.subUnitId,r.permissionId),a=i.subType,o=t.find(e=>e.action===a);o&&this._permissionService.updatePermissionPoint(i.id,o.allowed)}),this._rangeProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}async initWorkbookPermissionChange(e){var n;let r=e||((n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId());if(r)return this._authzIoService.allowed({objectID:r,objectType:q.Workbook,unitID:r,actions:ql}).then(e=>{Kl().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`?([...Jl(),...Yl()].forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId)):this._authzIoService.allowed({objectID:e.rule.permissionId,unitID:e.unitId,objectType:q.Worksheet,actions:Wl}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(Jl().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:q.Worksheet,actions:Xl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||Yl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}))}async _initWorksheetPermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId(),a=this._worksheetProtectionRuleModel.getRule(n,r);a&&(i.set(a.permissionId,a),t.push({objectID:a.permissionId,unitID:n,objectType:q.Worksheet,actions:Wl}));let o=this._worksheetProtectionPointRuleModel.getRule(n,r);o&&(i.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:n,objectType:q.Worksheet,actions:Xl}))}),!t.length){this._worksheetProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){let r=this._worksheetProtectionRuleModel.getRule(n,t.subUnitId)||this._worksheetProtectionPointRuleModel.getRule(n,t.subUnitId);if(!r||r.permissionId!==e.objectID)return;[...Jl(),...Yl()].forEach(r=>{let i=new r(n,t.subUnitId),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(t=>e(t))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe((0,n.skip)(1)).subscribe(()=>{let e=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{let n=t.getUnitId();Kl().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();[...Jl(),...Yl()].forEach(t=>{let i=new t(n,r);e.has(i.id)&&(i=e.get(i.id)),this._permissionService.addPermissionPoint(i)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(t=>{Ul().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,a]=n;this._authzIoService.allowed({objectID:t,unitID:e,objectType:q.Worksheet,actions:Wl}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let i=``;Jl().forEach(t=>{let o=new t(e,a),s=o.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(o.id))==null?void 0:l.value)!==c.allowed&&(r=!0),this._permissionService.updatePermissionPoint(o.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,a]=i;this._authzIoService.allowed({objectID:t,unitID:e,objectType:q.Worksheet,actions:Xl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(Yl().forEach(t=>{let i=new t(e,a),o=i.subType,s=n.find(e=>e.action===o);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 a=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(a){let[n,i]=a;this._authzIoService.allowed({objectID:t,unitID:e,objectType:q.SelectRange,actions:Wl}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;Ul().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===kn.id||e.id===ko.id||e.id===Ql.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};Vu=T([w(0,t.IUniverInstanceService),w(1,t.IPermissionService),w(2,t.IAuthzIoService),w(3,(0,t.Inject)(V)),w(4,(0,t.Inject)(Oo)),w(5,(0,t.Inject)(t.UserManagerService)),w(6,(0,t.Inject)(Bl)),w(7,(0,t.Inject)(Bu)),w(8,(0,t.Inject)(t.IUndoRedoService)),w(9,(0,t.Inject)(t.ICommandService))],Vu);let Hu=class extends t.Disposable{constructor(e,t,r){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=r,C(this,`_zebraCacheUpdateSubject`,new n.Subject),this._init()}_init(){this._initializeCommandListener(),this._initTriggerCacheUpdateListener()}updateZebraCrossingCache(e,t){this._zebraCacheUpdateSubject.next({unitId:e,subUnitId:t})}_initializeCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let{id:t}=e,n,r;switch(t){case P.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case vt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case bt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case ke.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Mt.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)}))}};Hu=T([w(0,(0,t.Inject)(t.ICommandService)),w(1,(0,t.Inject)(N)),w(2,(0,t.Inject)(t.IUniverInstanceService))],Hu);let Uu=class{constructor(e,n){this._selectionProtectionRuleModel=e,this._permissionService=n,C(this,`_cache`,new t.LRUMap(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe((0,a.filter)(e=>e.type===q.SelectRange),(0,a.filter)(e=>Ul().some(t=>e instanceof t)),(0,a.map)(e=>e)).subscribe(e=>{let n=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(let r of n)r.permissionId===e.permissionId&&r.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{if(e.rule.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})}),e.type===`set`){var n;(n=e.oldRule)==null||n.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),a=[];if(!i||!i.length)return a;let o=this._createKey(e,t,n,r),s=this._cache.get(o);if(s)return s;let c=[];for(let a of i)if(a.ranges.some(e=>e.startRow<=n&&e.endRow>=n&&e.startColumn<=r&&e.endColumn>=r)){let n=Ul().reduce((n,r)=>{var i;let o=new r(e,t,a.permissionId),s=this._permissionService.getPermissionPoint(o.id);return n[o.subType]=(i=s==null?void 0:s.value)==null?o.value:i,n},{});c.push({...n,ruleId:a.id,ranges:a.ranges})}return this._cache.set(o,c),c}clear(){this._cache.clear()}};Uu=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IPermissionService))],Uu);let Wu=class extends t.Disposable{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,C(this,`_cellRuleCache`,new Map),C(this,`_permissionIdCache`,new Map),C(this,`_cellInfoCache`,new Map),C(this,`_rowInfoCache`,new Map),C(this,`_colInfoCache`,new Map),this._initUpdateCellRuleCache(),this._initUpdateCellInfoCache(),this._initUpdateRowColInfoCache(),this._initCache()}_initCache(){this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();this.reBuildCache(n,r)})})}_initUpdateCellInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===q.SelectRange),(0,n.map)(e=>e)).subscribe(e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureCellInfoMap(n,t);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++)o.delete(`${e}-${t}`)})}),this._ruleModel.ruleChange$.subscribe(e=>{let{unitId:n,subUnitId:r}=e,i=this._ensureCellInfoMap(n,r);if(e.rule.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{i.delete(`${e}-${t}`)})}),e.type===`set`){var a;(a=e.oldRule)==null||a.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._cellInfoCache.delete(`${e}-${t}`)})})}})}_initUpdateCellRuleCache(){this._ruleModel.ruleChange$.subscribe(e=>{let{type:t}=e;t===`add`?this._addCellRuleCache(e):t===`delete`?this._deleteCellRuleCache(e):(this._deleteCellRuleCache({...e,rule:e.oldRule}),this._addCellRuleCache(e))})}_ensureRuleMap(e,t){let n=this._cellRuleCache.get(e);n||(n=new Map,this._cellRuleCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureCellInfoMap(e,t){let n=this._cellInfoCache.get(e);n||(n=new Map,this._cellInfoCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureRowColInfoMap(e,t,n){let r=n===`row`?this._rowInfoCache.get(e):this._colInfoCache.get(e);r||(r=new Map,n===`row`?this._rowInfoCache.set(e,r):this._colInfoCache.set(e,r));let i=r.get(t);return i||(i=new Map,r.set(t,i)),i}_addCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++)i.set(`${e}-${t}`,r.id)}),this._permissionIdCache.set(r.permissionId,r.id)}_deleteCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t),a=this._ensureCellInfoMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++)i.delete(`${e}-${t}`),a.delete(`${e}-${t}`)}),this._permissionIdCache.delete(r.permissionId)}_getSelectionActions(e,t,n){var r,i,a,o,s,c,l,u,d,f,p,m;let h=(r=(i=this._permissionService.getPermissionPoint((a=new Dr(e,t,n.permissionId))==null?void 0:a.id))==null?void 0:i.value)==null?!1:r,g=(o=(s=this._permissionService.getPermissionPoint((c=new Or(e,t,n.permissionId))==null?void 0:c.id))==null?void 0:s.value)==null?!1:o,_=(l=(u=this._permissionService.getPermissionPoint((d=new Hl(e,t,n.permissionId))==null?void 0:d.id))==null?void 0:u.value)==null?!1:l,v=(f=(p=this._permissionService.getPermissionPoint((m=new Vl(e,t,n.permissionId))==null?void 0:m.id))==null?void 0:p.value)==null?!1:f;return{[K.Edit]:h,[K.View]:g,[K.ManageCollaborator]:_,[K.Delete]:v}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===q.SelectRange),(0,n.map)(e=>e)).subscribe({next:e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureRowColInfoMap(n,t,`row`),s=this._ensureRowColInfoMap(n,t,`col`),c=this._getSelectionActions(n,t,a);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:a}=e;for(let e=t;e<=n;e++){let t=o.get(`${e}`);t?t.set(i,c):o.set(`${e}`,new Map([[i,c]]));for(let e=r;e<=a;e++){let t=s.get(`${e}`);t?t.set(i,c):s.set(`${e}`,new Map([[i,c]]))}}})}}),this._ruleModel.ruleChange$.subscribe(e=>{if(e.type===`delete`){let{unitId:t,subUnitId:n,rule:r}=e,i=this._ensureRowColInfoMap(t,n,`row`),a=this._ensureRowColInfoMap(t,n,`col`);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:o,endColumn:s}=e;for(let e=t;e<=n;e++){let t=i.get(`${e}`);t==null||t.delete(r.id);for(let e=o;e<=s;e++){let t=a.get(`${e}`);t==null||t.delete(r.id)}}})}})}getCellInfo(e,t,n,r){var i;let a=this._ensureCellInfoMap(e,t),o=a.get(`${n}-${r}`);if(o)return o;let s=(i=this._cellRuleCache.get(e))==null||(i=i.get(t))==null?void 0:i.get(`${n}-${r}`);if(!s)return;let c=this._ruleModel.getRule(e,t,s);if(c){let i={...this._getSelectionActions(e,t,c),ruleId:s,ranges:c.ranges};return a.set(`${n}-${r}`,i),i}}deleteUnit(e){this._cellRuleCache.delete(e),this._cellInfoCache.delete(e),this._rowInfoCache.delete(e),this._colInfoCache.delete(e);let t=this._univerInstanceService.getUnit(e);t==null||t.getSheets().forEach(t=>{let n=t.getSheetId();this._ruleModel.getSubunitRuleList(e,n).forEach(e=>{this._permissionIdCache.delete(e.permissionId)})})}};Wu=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IPermissionService)),w(2,(0,t.Inject)(t.IUniverInstanceService))],Wu);var Gu=`@univerjs/sheets`,Ku=`0.20.0`;let qu=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,C(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===$i.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===$i.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===Ml.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===vc.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===Ml.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===G.id)return this._adjustActiveSheetOnSelection(e)}))}_adjustActiveSheetOnHideSheet(e){var t;let{unitId:n,subUnitId:r}=e.params,i=this._univerInstanceService.getUniverSheetInstance(n);if(!i||((t=i.getActiveSheet())==null?void 0:t.getSheetId())!==r)return;let a=Ju(i,i.getActiveSheetIndex());this._switchToNextSheet(n,a)}_beforeAdjustActiveSheetOnRemoveSheet(e){let{unitId:t,subUnitId:n}=e.params,r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;let i=r.getSheetBySheetId(n);i&&(this._previousSheetIndex=r.getSheetIndex(i))}_adjustActiveSheetOnRemoveSheet(e){if(this._previousSheetIndex===-1)return;let{unitId:t}=e.params,n=this._univerInstanceService.getUniverSheetInstance(t);if(n&&n.getActiveSheet().getSheetId()===e.params.subUnitId){let e=this._previousSheetIndex,r=Ju(n,e>=1?e-1:0);this._switchToNextSheet(t,r)}}_adjustActiveSheetOnInsertSheet(e){let{unitId:t,sheet:n}=e.params;this._switchToNextSheet(t,n.id)}_adjustActiveSheetOnShowSheet(e){let{unitId:t,subUnitId:n}=e.params;this._switchToNextSheet(t,n)}_adjustActiveSheetOnSelection(e){var t;let{unitId:n,subUnitId:r}=e.params;r!==((t=this._univerInstanceService.getUnit(n))==null?void 0:t.getActiveSheet().getSheetId())&&this._switchToNextSheet(n,r)}_switchToNextSheet(e,t){this._commandService.executeCommand(It.id,{unitId:e,subUnitId:t})}};qu=T([w(0,t.ICommandService),w(1,t.IUniverInstanceService)],qu);function Ju(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 Yu=class extends t.Disposable{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[z,Se,P,vc,Ce,Te,De,F,ke,$i,L,pu,h,Cl,Fl,fu,Me,xu,bt,vt,Su,Cu,gc,Ot,wt].forEach(e=>{var t;this._commandService.registerCommand(e),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)}),(r=this._configService.getConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`))!=null&&r||[So,Co,wo,To,No,Nn,dc,Pn,Cc,wi,Ei,El,au,Hi,Vi,Ui,Wi,Bi,zi,Oi,Ai,Fi,Pi,Li,Ii,Ni,Mi,kc,aa,Jn,ra,qi,Zi,Xi,Ji,Fc,fa,ho,Go,Uo,Wo,Yc,Jc,Gc,Kc,qc,$c,Re,Be,Dl,Xc,Ie,ol,al,sl,qo,fl,vi,ou,gl,pl,gt,Qc,hl,Zc,ml,X,Sl,xl,Ho,Yo,Jo,Ko,wl,Tl,It,Nl,Ml,Il,zl,Rl,Pt,Mt,su,Nt,St,iu,kl,Kn,G,Eu,Oc,Pc,rl,cu,vu,Ft,cl,Ve,gu,$l,ko,ul,Ao,Ql,An,dl,Tc,jo,Ec,eu,kn,Dn,$,_u,Tt,Al,lu,ve,ge,Mc,jc,yu,Nc,Mo,Dc,bu,Tu,wu,ac,cc,lc,uc,Ac].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(Pu,3e6)}};Yu=T([w(0,t.ICommandService),w(1,t.IConfigService),w(2,(0,t.Optional)(o.DataSyncPrimaryController))],Yu);let Xu=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==i.SetFormulaCalculationResultMutation.id)return;let{unitData:n}=e.params,r=Object.keys(n),a=[];for(let e=0;e<r.length;e++){let t=r[e],i=n[t];if(i==null)continue;let o=Object.keys(i);for(let e=0;e<o.length;e++){let n=o[e],r=i[n];if(r==null)continue;let s={subUnitId:n,unitId:t,cellValue:this._getMergedCellData(t,n,r)};a.push({id:z.id,params:s})}}return(0,t.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,n,r){let a=this._univerInstanceService.getUniverSheetInstance(e),o=a==null?void 0:a.getStyles(),s=a==null?void 0:a.getSheetBySheetId(n),c=s==null?void 0:s.getCellMatrix(),l=new t.ObjectMatrix(r);return l.forValue((e,t,n)=>{let r=(0,i.handleNumfmtInCell)(c==null?void 0:c.getValue(e,t),n,o);l.setValue(e,t,r)}),l.getMatrix()}};Xu=T([w(0,(0,t.Inject)(t.IUniverInstanceService)),w(1,t.ICommandService)],Xu);let Zu=class extends t.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:11,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,n,r)=>{var a;if(!e)return r(e);let o=n.workbook.getStyles().getStyleByCell(e);return(0,t.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern)&&(e==null?void 0:e.t)===t.CellValueType.NUMBER&&e.v!==void 0&&e.v!==null&&(0,t.isRealNum)(e.v)?((!e||e===n.rawData)&&(e={...n.rawData}),e.v=(0,i.stripErrorMargin)(Number(e.v)),r(e)):r(e)}}))}};Zu=T([w(0,(0,t.Inject)(k))],Zu);let Qu=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(g.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i,row:a,col:o}=t,s=this._rangeProtectionCache.getCellInfo(r,i,a,o);if(s){let r=s[K.View]===!1,i=!e||e===t.rawData?{...t.rawData}:e;return i.selectionProtection=[s],r?(delete i.s,delete i.v,delete i.p,i):n(i)}return n(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._worksheetProtectionRuleModel.getRule(r,i);if(a!=null&&a.permissionId){var o,s,c,l,u;let a=[{[K.View]:(o=(s=this._permissionService.getPermissionPoint(new _i(r,i).id))==null?void 0:s.value)==null?!1:o,[K.Edit]:(c=(l=this._permissionService.getPermissionPoint(new ni(r,i).id))==null?void 0:l.value)==null?!1:c}],d=!((u=a[0])!=null&&u[K.View]),f=!e||e===t.rawData?{...e}:e;return f.hasWorksheetRule=!0,f.selectionProtection=a,d?(delete f.s,delete f.v,delete f.p,f):n(f)}return n(e)}}))}};Qu=T([w(0,t.IPermissionService),w(1,(0,t.Inject)(Oo)),w(2,(0,t.Inject)(k)),w(3,(0,t.Inject)(Wu))],Qu);let $u=(0,t.createIdentifier)(`univer.exclusive-range-service`);var ed=class extends t.Disposable{constructor(...e){super(...e),C(this,`_exclusiveRanges`,new Map),C(this,`_exclusiveRangesChange$`,new n.Subject),C(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 td=class extends t.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;let o=i.getStyles(),s=a.getCellRaw(n,r);if(s!=null&&s.s){let e=o.get(s.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles();r.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=a.getCellRaw(e,t);if(!n)return;let r=n==null?void 0:n.s,i={...r&&o.get(r)||{}};delete i.n,n.s=o.setValue(i)})})}setValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles(),s=a.getCellMatrix();r.forEach(e=>{e.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=a.getCellRaw(t,n);if(r){let t={...o.getStyleByCell(r)||{},n:{pattern:e.pattern}};r.s=o.setValue(t)}else{let r={n:{pattern:e.pattern}},i=o.setValue(r);i&&s.setValue(t,n,{s:i})}})})})}};td=T([w(0,t.IResourceManagerService),w(1,t.IUniverInstanceService),w(2,t.ILogService)],td);let nd=[Se.id,P.id,F.id,ke.id],rd=[Te.id,De.id],id=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,C(this,`disposableCollection`,new t.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=t=>this.refRangeHandle(t,e,n);this._selectionProtectionRuleModel.getSubunitRuleList(e,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,i,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===Tl.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===$.id||t.id===kn.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(n){let t=n.getActiveSheet();if(!t)return;e(n.getUnitId(),t.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case ra.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case aa.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case Mi.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case zi.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Zi.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case Ji.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:$.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:$.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})):(e.push({id:Dn.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:kn.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:$.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:$.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(rd.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),this._checkIsRightRange({startRow:n,endRow:r,startColumn:a,endColumn:u})&&(e.startColumn=a,e.endColumn=u,e.startRow=n,e.endRow=r)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}if(nd.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=e.params;if(!r)return;let{range:i}=r,a=e.id.includes(`row`),o=e.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;o?a?s<=t&&(t+=l,n+=l):s<=r&&(r+=l,i+=l):a?c<t&&(t-=l,n-=l):c<r&&(r-=l,i-=l),this._checkIsRightRange({startRow:t,endRow:n,startColumn:r,endColumn:i})&&(e.startColumn=r,e.endColumn=i,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(nd.includes(e.id)||rd.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===Fc.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:Dn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:kn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};id=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IUniverInstanceService)),w(2,t.ICommandService),w(3,(0,t.Inject)(eo)),w(4,(0,t.Inject)(Uu)),w(5,(0,t.Inject)(Wu)),w(6,(0,t.Inject)(k)),w(7,(0,t.Inject)(V))],id);let ad=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`:Ul().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:Ul().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&&Ul().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:[nr.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:q.SelectRange,actions:Wl})}),i.forEach(t=>{Ul().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};ad=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IPermissionService)),w(2,(0,t.Inject)(t.IResourceManagerService)),w(3,(0,t.Inject)(Wu)),w(4,(0,t.Inject)(t.IUniverInstanceService))],ad);let od=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()}};od=T([w(0,(0,t.Inject)(N))],od);let sd=class extends t.Plugin{constructor(e=mc,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},mc,this._config);this._configService.setConfig(fc,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=[[Ic],[hc],[U],[eo],[Bu],[uu,{useClass:td}],[k],[od],[sa],[Yu],[lo],[Zu],[Fu],[Hu],[Ru],[Zl],[Oo],[Bl],[Qu],[Vu],[zu],[N],[Uu],[V],[Wu],[id],[ad],[$u,{useClass:ed,deps:[U]}],[ic,{useClass:rc}],[Nu]];(e=this._config)!=null&&e.notExecuteFormula||n.push([Xu]),(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)(n,this._config.override)),(0,t.touchDependencies)(this._injector,[[k],[ad],[$u],[Vu],[Ru]])}onStarting(){var e;(0,t.touchDependencies)(this._injector,[[Yu],[lo],[Bu],[Zl],[Qu],[sa],[Nu]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([qu])}onRendered(){(0,t.touchDependencies)(this._injector,[[uu]])}onReady(){(0,t.touchDependencies)(this._injector,[[qu],[Xu],[Fu],[Hu],[N],[Zu],[Uu],[id],[eo],[zu]])}};C(sd,`pluginName`,`SHEET_PLUGIN`),C(sd,`packageName`,Gu),C(sd,`version`,Ku),C(sd,`type`,t.UniverInstanceType.UNIVER_SHEET),sd=T([(0,t.DependentOn)(i.UniverFormulaEnginePlugin),w(1,(0,t.Inject)(t.Injector)),w(2,t.IConfigService)],sd);let cd={WorkbookCommentPermission:kr,WorkbookCopyPermission:Ar,WorkbookCreateProtectPermission:Mr,WorkbookCreateSheetPermission:Nr,WorkbookDeleteSheetPermission:Ir,WorkbookDuplicatePermission:Lr,WorkbookEditablePermission:Rr,WorkbookExportPermission:zr,WorkbookHideSheetPermission:Br,WorkbookHistoryPermission:Vr,WorkbookManageCollaboratorPermission:Wr,WorkbookMoveSheetPermission:Gr,WorkbookPrintPermission:Kr,WorkbookRecoverHistoryPermission:qr,WorkbookRenameSheetPermission:Jr,WorkbookSharePermission:Yr,WorkbookViewHistoryPermission:Zr,WorkbookViewPermission:Xr,WorksheetCopyPermission:Qr,WorksheetDeleteColumnPermission:$r,WorksheetDeleteProtectionPermission:ei,WorksheetDeleteRowPermission:ti,WorksheetEditExtraObjectPermission:ri,WorksheetEditPermission:ni,WorksheetFilterPermission:ii,WorksheetInsertColumnPermission:ai,WorksheetInsertHyperlinkPermission:oi,WorksheetInsertRowPermission:si,WorksheetManageCollaboratorPermission:ci,WorksheetPivotTablePermission:li,WorksheetSetCellStylePermission:fi,WorksheetSetCellValuePermission:pi,WorksheetSetColumnStylePermission:mi,WorksheetSetRowStylePermission:hi,WorksheetSortPermission:gi,WorksheetViewPermission:_i,RangeProtectionPermissionEditPoint:Dr,RangeProtectionPermissionViewPoint:Or},ld=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(V),s=a.getPermissionPoint(new Rr(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new ni(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 Dr(n,r,t).id);return!!(i!=null&&i.value)}):!0},ud=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.startRow-i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l--,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l>=s)return{...r,startRow:l,endRow:l};if(o)return fd(e,n,{...r,startRow:c,endRow:c},i,a,!1)},dd=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.endRow+i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l++,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l<=c)return{...r,startRow:l,endRow:l};if(o)return pd(e,n,{...r,startRow:s,endRow:s},i,a,!1)},fd=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.startColumn-i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l--,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l>=s)return{...r,startColumn:l,endColumn:l};if(o)return ud(e,n,{...r,startColumn:c,endColumn:c},i,a,!1)},pd=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.endColumn+i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l++,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l<=c)return{...r,endColumn:l,startColumn:l};if(o)return dd(e,n,{...r,startColumn:s,endColumn:s},i,a,!1)};function md(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 hd=(e,n,r,i,a=1)=>{switch(i){case t.Direction.UP:return ud(e,n,r,a);case t.Direction.DOWN:return dd(e,n,r,a);case t.Direction.LEFT:return fd(e,n,r,a);case t.Direction.RIGHT:return pd(e,n,r,a)}},gd=(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:hd(i.range,r,l,n);if(!e)return null;let t=h?md(e.endRow,e.endColumn,r):md(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?md(c.range.endRow,c.range.endColumn,r):md(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function _d(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 vd(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:_d(t,n),primaryWithCoord:r&&yd(t,r),style:i}}function yd(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 bd(e,t,n,i){let{from:a,to:o}=n,{column:s,columnOffset:c,row:l,rowOffset:u}=a,{column:d,columnOffset:f,row:p,rowOffset:m}=o,h=_d(i,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=_d(i,{startColumn:d,endColumn:d,startRow:p,endRow:p}),{startX:_,startY:v}=h,{startX:y,startY:b}=g,x=(0,r.precisionTo)(_+c,1),S=(0,r.precisionTo)(v+u,1),C=(0,r.precisionTo)(y+f-x,1),w=(0,r.precisionTo)(b+m-S,1);return h.startX===g.endX&&(C=0),h.startY===g.endY&&(w=0),{unitId:e,subUnitId:t,left:x,top:S,width:C,height:w}}function xd(e,t,n,i,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=_d(o,{startColumn:s,endColumn:s,startRow:l,endRow:l}),p=(0,r.precisionTo)(d+c,1),m=(0,r.precisionTo)(f+u,1),h=o.getCellIndexAndOffsetByPosition(p+i,m+a);return{unitId:e,subUnitId:t,sheetTransform:{from:{column:s,columnOffset:c,row:l,rowOffset:u},to:h},transform:{left:p,top:m,width:i,height:a}}}e.AFFECT_LAYOUT_STYLES=Po,e.AFTER_CELL_EDIT=D,e.AUTO_FILL_APPLY_TYPE=Z,e.AUTO_FILL_DATA_TYPE=Q,e.AUTO_FILL_HOOK_TYPE=Ms,e.AddMergeRedoSelectionsOperationFactory=po,e.AddMergeUndoMutationFactory=m,e.AddMergeUndoSelectionsOperationFactory=mo,e.AddRangeProtectionCommand=An,e.AddRangeProtectionMutation=kn,e.AddRangeThemeMutation=bu,e.AddWorksheetMergeAllCommand=Co,e.AddWorksheetMergeCommand=So,e.AddWorksheetMergeHorizontalCommand=To,e.AddWorksheetMergeMutation=h,e.AddWorksheetMergeVerticalCommand=wo,e.AddWorksheetProtectionCommand=jo,e.AddWorksheetProtectionMutation=ko,e.AppendRowCommand=No,e.AutoClearContentCommand=uc,e.AutoFillCommand=ac,Object.defineProperty(e,`AutoFillController`,{enumerable:!0,get:function(){return Nu}}),e.AutoFillRules=Js,Object.defineProperty(e,`AutoFillService`,{enumerable:!0,get:function(){return rc}}),e.AutoFillTools=js,e.BEFORE_CELL_EDIT=E,e.BorderStyleManagerService=Ic,e.COMMAND_LISTENER_SKELETON_CHANGE=Rt,e.COMMAND_LISTENER_VALUE_CHANGE=zt,e.CancelFrozenCommand=sl,e.CancelMarkDirtyRowAutoHeightMutation=Cu,e.ClearSelectionAllCommand=Nn,e.ClearSelectionContentCommand=dc,e.ClearSelectionFormatCommand=Pn,e.CopySheetCommand=Cc,e.CopyWorksheetEndMutation=gc,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,`DefinedNameDataController`,{enumerable:!0,get:function(){return Fu}}),e.DeleteRangeMoveLeftCommand=wi,e.DeleteRangeMoveUpCommand=Ei,e.DeleteRangeProtectionCommand=Tc,e.DeleteRangeProtectionMutation=Dn,e.DeleteWorksheetProtectionCommand=Ec,e.DeleteWorksheetProtectionMutation=Ao,e.DeleteWorksheetRangeThemeStyleCommand=Dc,e.DeleteWorksheetRangeThemeStyleMutation=ve,e.DeleteWorksheetRangeThemeStyleMutationFactory=ye,e.DeltaColumnWidthCommand=El,e.DeltaRowHeightCommand=au,e.EditStateEnum=Tn,e.EffectRefRangId=J,e.EmptyMutation=xu,e.ExclusiveRangeService=ed,e.FactoryAddRangeProtectionMutation=On,e.FactoryDeleteRangeProtectionMutation=En,e.FactorySetRangeProtectionMutation=ll,e.IAutoFillService=ic,e.IExclusiveRangeService=$u,e.INTERCEPTOR_POINT=g,e.INumfmtService=uu,e.IRefSelectionsService=Un,e.InsertColAfterCommand=Hi,e.InsertColBeforeCommand=Vi,e.InsertColByRangeCommand=Bi,e.InsertColCommand=zi,e.InsertColMutation=Se,e.InsertColMutationUndoFactory=xe,e.InsertDefinedNameCommand=Oc,e.InsertMultiColsLeftCommand=Ui,e.InsertMultiColsRightCommand=Wi,e.InsertMultiRowsAboveCommand=Ii,e.InsertMultiRowsAfterCommand=Li,e.InsertRangeMoveDownCommand=Oi,e.InsertRangeMoveRightCommand=Ai,e.InsertRowAfterCommand=Fi,e.InsertRowBeforeCommand=Pi,e.InsertRowByRangeCommand=Ni,e.InsertRowCommand=Mi,e.InsertRowMutation=P,e.InsertRowMutationUndoFactory=be,e.InsertSheetCommand=kc,e.InsertSheetMutation=vc,e.InsertSheetUndoMutationFactory=_c,e.InterceptCellContentPriority=_,e.MAX_CELL_PER_SHEET_KEY=Pu,e.MERGE_CELL_INTERCEPTOR_CHECK=co,e.MarkDirtyRowAutoHeightMutation=Su,Object.defineProperty(e,`MergeCellController`,{enumerable:!0,get:function(){return lo}}),e.MoveColsCommand=aa,e.MoveColsMutation=De,e.MoveColsMutationUndoFactory=Ee,e.MoveRangeCommand=Jn,e.MoveRangeMutation=Ce,e.MoveRowsCommand=ra,e.MoveRowsMutation=Te,e.MoveRowsMutationUndoFactory=we,Object.defineProperty(e,`NumfmtService`,{enumerable:!0,get:function(){return td}}),e.OperatorType=Y,e.PermissionPointsDefinitions=cd,e.REF_SELECTIONS_ENABLED=Mn,e.RangeMergeUtil=rn,Object.defineProperty(e,`RangeProtectionCache`,{enumerable:!0,get:function(){return Wu}}),e.RangeProtectionPermissionDeleteProtectionPoint=Vl,e.RangeProtectionPermissionEditPoint=Dr,e.RangeProtectionPermissionManageCollaPoint=Hl,e.RangeProtectionPermissionViewPoint=Or,Object.defineProperty(e,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return id}}),Object.defineProperty(e,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return Uu}}),e.RangeProtectionRuleModel=V,Object.defineProperty(e,`RangeProtectionService`,{enumerable:!0,get:function(){return ad}}),e.RangeThemeStyle=te,Object.defineProperty(e,`RefRangeService`,{enumerable:!0,get:function(){return eo}}),Object.defineProperty(e,`RefSelectionsService`,{enumerable:!0,get:function(){return Wn}}),e.RefillCommand=Ac,e.RegisterWorksheetRangeThemeStyleCommand=Nc,e.RegisterWorksheetRangeThemeStyleMutation=jc,e.RemoveColByRangeCommand=Xi,e.RemoveColCommand=Zi,e.RemoveColMutation=F,e.RemoveDefinedNameCommand=Pc,e.RemoveMergeUndoMutationFactory=I,e.RemoveNumfmtMutation=pu,e.RemoveRangeThemeMutation=wu,e.RemoveRowByRangeCommand=qi,e.RemoveRowCommand=Ji,e.RemoveRowMutation=ke,e.RemoveSheetCommand=Fc,e.RemoveSheetMutation=$i,e.RemoveSheetUndoMutationFactory=Qi,e.RemoveWorksheetMergeCommand=ho,e.RemoveWorksheetMergeMutation=L,e.ReorderRangeCommand=fa,e.ReorderRangeMutation=Me,e.ReorderRangeUndoMutationFactory=je,e.ResetBackgroundColorCommand=Go,e.ResetTextColorCommand=Uo,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=fc,e.ScrollToCellOperation=Eu,e.SelectRangeCommand=Kn,e.SelectionMoveType=H,e.SetBackgroundColorCommand=Wo,e.SetBoldCommand=Fo,e.SetBorderBasicCommand=Yc,e.SetBorderColorCommand=Jc,e.SetBorderCommand=Gc,e.SetBorderPositionCommand=Kc,e.SetBorderStyleCommand=qc,e.SetColDataCommand=Xc,e.SetColDataMutation=Ie,e.SetColDataMutationFactory=Fe,e.SetColHiddenCommand=$c,e.SetColHiddenMutation=Re,e.SetColVisibleMutation=Be,e.SetColWidthCommand=Dl,e.SetDefinedNameCommand=rl,e.SetFontFamilyCommand=Bo,e.SetFontSizeCommand=Vo,e.SetFrozenCommand=ol,e.SetFrozenMutation=al,e.SetFrozenMutationFactory=il,e.SetGridlinesColorCommand=cl,e.SetGridlinesColorMutation=Ve,e.SetHorizontalTextAlignCommand=qo,e.SetItalicCommand=Io,e.SetNumfmtMutation=fu,e.SetOverlineCommand=zo,e.SetProtectionCommand=dl,e.SetRangeCustomMetadataCommand=fl,e.SetRangeProtectionMutation=$,e.SetRangeThemeMutation=Tu,e.SetRangeValuesCommand=vi,e.SetRangeValuesMutation=z,e.SetRangeValuesUndoMutationFactory=R,e.SetRowDataCommand=pl,e.SetRowDataMutation=gt,e.SetRowDataMutationFactory=ht,e.SetRowHeightCommand=ou,e.SetRowHiddenCommand=gl,e.SetRowHiddenMutation=bt,e.SetRowVisibleMutation=vt,e.SetSelectedColsVisibleCommand=Qc,e.SetSelectedRowsVisibleCommand=hl,e.SetSelectionsOperation=G,e.SetSpecificColsVisibleCommand=Zc,e.SetSpecificRowsVisibleCommand=ml,e.SetStrikeThroughCommand=Ro,e.SetStyleCommand=X,e.SetTabColorCommand=Sl,e.SetTabColorMutation=xl,e.SetTextColorCommand=Ho,e.SetTextRotationCommand=Yo,e.SetTextWrapCommand=Jo,e.SetUnderlineCommand=Lo,e.SetVerticalTextAlignCommand=Ko,e.SetWorkbookNameCommand=wl,e.SetWorkbookNameMutation=Cl,e.SetWorksheetActivateCommand=Tl,e.SetWorksheetActiveOperation=It,e.SetWorksheetColWidthMutation=St,e.SetWorksheetColWidthMutationFactory=xt,e.SetWorksheetColumnCountCommand=kl,e.SetWorksheetColumnCountMutation=wt,e.SetWorksheetColumnCountUndoMutationFactory=Ct,e.SetWorksheetDefaultStyleCommand=Al,e.SetWorksheetDefaultStyleMutation=Tt,e.SetWorksheetDefaultStyleMutationFactory=Et,e.SetWorksheetHideCommand=Nl,e.SetWorksheetHideMutation=Ml,e.SetWorksheetNameCommand=Il,e.SetWorksheetNameMutation=Fl,e.SetWorksheetOrderCommand=zl,e.SetWorksheetOrderMutation=Rl,e.SetWorksheetPermissionPointsCommand=$l,e.SetWorksheetPermissionPointsMutation=Ql,e.SetWorksheetProtectionCommand=eu,e.SetWorksheetProtectionMutation=ul,e.SetWorksheetRangeThemeStyleCommand=Mo,e.SetWorksheetRangeThemeStyleMutation=ge,e.SetWorksheetRangeThemeStyleMutationFactory=_e,e.SetWorksheetRightToLeftCommand=ru,e.SetWorksheetRightToLeftMutation=nu,e.SetWorksheetRowAutoHeightMutation=Pt,e.SetWorksheetRowAutoHeightMutationFactory=jt,e.SetWorksheetRowCountCommand=iu,e.SetWorksheetRowCountMutation=Ot,e.SetWorksheetRowCountUndoMutationFactory=Dt,e.SetWorksheetRowHeightMutation=Mt,e.SetWorksheetRowHeightMutationFactory=kt,e.SetWorksheetRowIsAutoHeightCommand=su,e.SetWorksheetRowIsAutoHeightMutation=Nt,e.SetWorksheetRowIsAutoHeightMutationFactory=At,e.SetWorksheetShowCommand=cu,e.SheetCopyDownCommand=cc,e.SheetCopyRightCommand=lc,Object.defineProperty(e,`SheetInterceptorService`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(e,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return hc}}),Object.defineProperty(e,`SheetPermissionCheckController`,{enumerable:!0,get:function(){return zu}}),Object.defineProperty(e,`SheetPermissionInitController`,{enumerable:!0,get:function(){return Vu}}),Object.defineProperty(e,`SheetRangeThemeModel`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,`SheetRangeThemeService`,{enumerable:!0,get:function(){return od}}),e.SheetSkeletonChangeType=B,Object.defineProperty(e,`SheetSkeletonService`,{enumerable:!0,get:function(){return sa}}),e.SheetValueChangeType=Lt,Object.defineProperty(e,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return Ru}}),Object.defineProperty(e,`SheetsSelectionsService`,{enumerable:!0,get:function(){return U}}),e.SplitDelimiterEnum=sn,e.SplitTextToColumnsCommand=lu,e.TextToNumberCommand=gu,e.ToggleCellCheckboxCommand=_u,e.ToggleGridlinesCommand=vu,e.ToggleGridlinesMutation=Ft,e.UnitAction=K,e.UnitObject=q,Object.defineProperty(e,`UniverSheetsPlugin`,{enumerable:!0,get:function(){return sd}}),e.UnregisterWorksheetRangeThemeStyleCommand=yu,e.UnregisterWorksheetRangeThemeStyleMutation=Mc,e.VALIDATE_CELL=O,e.ViewStateEnum=wn,e.WorkbookCommentPermission=kr,e.WorkbookCopyPermission=Ar,e.WorkbookCopySheetPermission=jr,e.WorkbookCreateProtectPermission=Mr,e.WorkbookCreateSheetPermission=Nr,e.WorkbookDeleteColumnPermission=Pr,e.WorkbookDeleteRowPermission=Fr,e.WorkbookDeleteSheetPermission=Ir,e.WorkbookDuplicatePermission=Lr,e.WorkbookEditablePermission=Rr,e.WorkbookExportPermission=zr,e.WorkbookHideSheetPermission=Br,e.WorkbookHistoryPermission=Vr,e.WorkbookInsertColumnPermission=Hr,e.WorkbookInsertRowPermission=Ur,e.WorkbookManageCollaboratorPermission=Wr,e.WorkbookMoveSheetPermission=Gr,Object.defineProperty(e,`WorkbookPermissionService`,{enumerable:!0,get:function(){return Bu}}),e.WorkbookPrintPermission=Kr,e.WorkbookRecoverHistoryPermission=qr,e.WorkbookRenameSheetPermission=Jr,e.WorkbookSelectionModel=jn,e.WorkbookSharePermission=Yr,e.WorkbookViewHistoryPermission=Zr,e.WorkbookViewPermission=Xr,e.WorksheetCopyPermission=Qr,e.WorksheetDeleteColumnPermission=$r,e.WorksheetDeleteProtectionPermission=ei,e.WorksheetDeleteRowPermission=ti,e.WorksheetEditExtraObjectPermission=ri,e.WorksheetEditPermission=ni,e.WorksheetFilterPermission=ii,e.WorksheetInsertColumnPermission=ai,e.WorksheetInsertHyperlinkPermission=oi,e.WorksheetInsertRowPermission=si,e.WorksheetManageCollaboratorPermission=ci,Object.defineProperty(e,`WorksheetPermissionService`,{enumerable:!0,get:function(){return Zl}}),e.WorksheetPivotTablePermission=li,e.WorksheetProtectionPointModel=Bl,e.WorksheetProtectionRuleModel=Oo,e.WorksheetSelectProtectedCellsPermission=ui,e.WorksheetSelectUnProtectedCellsPermission=di,e.WorksheetSetCellStylePermission=fi,e.WorksheetSetCellValuePermission=pi,e.WorksheetSetColumnStylePermission=mi,e.WorksheetSetRowStylePermission=hi,e.WorksheetSortPermission=gi,e.WorksheetViewPermission=_i,Object.defineProperty(e,`ZebraCrossingCacheController`,{enumerable:!0,get:function(){return Hu}}),e.addMergeCellsUtil=Eo,e.adjustRangeOnMutation=qa,e.alignToMergedCellsBorders=Fn,e.attachPrimaryWithCoord=yd,e.attachRangeWithCoord=_d,e.attachSelectionWithCoord=vd,e.baseProtectionActions=Wl,e.checkCellValueType=u,e.checkRangesEditablePermission=ld,e.convertPositionCellToSheetOverGrid=xd,e.convertPositionSheetOverGridToAbsolute=bd,e.convertPrimaryWithCoordToPrimary=on,e.convertSelectionDataToRange=an,e.copyRangeStyles=Hn,e.countCells=ua,e.createTopMatrixFromMatrix=Qt,e.createTopMatrixFromRanges=Zt,e.defaultLargeSheetOperationConfig=pc,e.defaultWorkbookPermissionPoints=ql,e.defaultWorksheetPermissionPoint=Xl,e.discreteRangeToRange=xn,e.expandToContinuousRange=Xt,e.factoryRemoveNumfmtUndoMutation=mu,e.factorySetNumfmtUndoMutation=du,e.findAllRectangle=tn,e.findFirstNonEmptyCell=_n,e.followSelectionOperation=Rn,e.generateNullCell=vn,e.generateNullCellValue=yn,e.getAddMergeMutationRangeByType=so,e.getAllRangePermissionPoint=Ul,e.getAllWorkbookPermissionPoint=Kl,e.getAllWorksheetPermissionPoint=Jl,e.getAllWorksheetPermissionPointByPointPanel=Yl,e.getCellAtRowCol=In,e.getClearContentMutationParamForRange=xo,e.getClearContentMutationParamsForRanges=bo,e.getDefaultRangePermission=Gl,e.getInsertRangeMutations=yi,e.getMoveRangeCommandMutations=Xn,e.getMoveRangeUndoRedoMutations=Zn,e.getNextPrimaryCell=gd,e.getPrimaryForRange=W,e.getRemoveRangeMutations=bi,e.getSelectionsService=Gn,e.getSeparateEffectedRangesOnCommand=Xa,e.getSheetCommandTarget=f,e.getSheetCommandTargetWorkbook=d,e.getSheetMutationTarget=p,e.getSkeletonChangedEffectedRange=Vt,e.getValueChangedEffectedRange=Bt,e.getVisibleRanges=Cn,e.handleBaseInsertRange=Da,e.handleBaseMoveRowsCols=ha,e.handleBaseRemoveRange=Ca,e.handleCommonDefaultRangeChangeWithEffectRefCommands=Ga,e.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=Ka,e.handleDefaultRangeChangeWithEffectRefCommands=Ua,e.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Wa,e.handleDeleteRangeMoveLeft=Fa,e.handleDeleteRangeMoveUp=La,e.handleDeleteRangeMutation=Si,e.handleIRemoveCol=wa,e.handleIRemoveRow=Ta,e.handleInsertCol=Aa,e.handleInsertRangeMoveDown=ja,e.handleInsertRangeMoveRight=Na,e.handleInsertRangeMutation=xi,e.handleInsertRow=ka,e.handleMoveCols=ya,e.handleMoveRange=xa,e.handleMoveRows=ga,e.isSingleCellSelection=zn,e.rangeMerge=nn,e.rangeToDiscreteRange=Sn,e.rotateRange=ma,e.runRefRangeMutations=Ha,e.setEndForRange=Ln,e.splitRangeText=pn,e.transformCellsToRange=hu});
|
|
2
|
+
`)?e.body.dataStream.length-2:e.body.dataStream.length;if(i<s){let e={st:i,ed:s},r=ot({},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 lt(e,n){return n.v===void 0||n.v===null?n.v:e===t.CellValueType.NUMBER?Number(n.v):e===t.CellValueType.BOOLEAN?ut(n.v)?1:0:e===t.CellValueType.STRING||e===t.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ut(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 dt(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}=n,o=e.get(t.IUniverInstanceService).getUniverSheetInstance(r);if(o==null)throw Error(`workbook is null error!`);let s=o.getSheetBySheetId(i);if(s==null)throw Error(`worksheet is null error!`);let c=s.getCellMatrix(),l=o.getStyles(),u=new t.ObjectMatrix;return new t.ObjectMatrix(a).forValue((e,n,r)=>{let i=t.Tools.deepClone(c==null?void 0:c.getValue(e,n))||{};i.s=it(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(e,n,dt(i))}),{...n,options:{},cellValue:u.getMatrix()}},z={id:`sheet.mutation.set-range-values`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{cellValue:r,subUnitId:i,unitId:a}=n,o=e.get(t.IUniverInstanceService).getUnit(a);if(!o)return!1;let s=o.getSheetBySheetId(i);if(!s)return!1;let c=s.getCellMatrix(),l=o.getStyles();return new t.ObjectMatrix(r).forValue((e,n,r)=>{if(!r)c.realDeleteValue(e,n);else{let i=c.getValue(e,n)||{};i=pt(r,i,l),t.Tools.isEmptyObject(i)?c.realDeleteValue(e,n):c.setValue(e,n,i)}}),!0}},ft=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function pt(e,t,n){let r=s(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(ft.has(a)){let n=e[a];mt(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=lt(r,e)):a===`s`&&rt(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=lt(r,t)),t.v===null&&(delete t.t,delete t.v),t}function mt(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}let ht=(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]=Ne(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},gt={id:`sheet.mutation.set-row-data`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowData:r}=n,i=f(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}},_t=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},vt={id:`sheet.mutation.set-row-visible`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=0)}}return!0}},yt=(e,n)=>{if(e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},bt={id:`sheet.mutation.set-row-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId).getRowManager();for(let e=0;e<n.ranges.length;e++){let t=n.ranges[e];for(let e=t.startRow;e<t.endRow+1;e++){let t=i.getRowOrCreate(e);t!=null&&(t.hd=1)}}return!0}},xt=(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}},St={id:`sheet.mutation.set-worksheet-col-width`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=f(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}},Ct=(e,n)=>{let r=p(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()}},wt={id:`sheet.mutation.set-worksheet-column-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Tt={id:`sheet.mutation.set-worksheet-default-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=f(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},Et=(e,n)=>{let r=p(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()}},Dt=(e,n)=>{let r=p(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()}},Ot={id:`sheet.mutation.set-worksheet-row-count`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=p(e.get(t.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},kt=(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=e,a={},o=t.getRowManager();for(let{startRow:e,endRow:n}of i)for(let r=e;r<n+1;r++){var s,c;a[r]=(s=(c=o.getRow(r))==null?void 0:c.h)==null?t.getConfig().defaultRowHeight:s}return{unitId:n,subUnitId:r,ranges:i,rowHeight:a}},At=(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}},jt=(e,t)=>{let{unitId:n,subUnitId:r,rowsAutoHeightInfo:i}=e,a=[],o=t.getRowManager();for(let e of i){var s,c;let{row:n}=e;a.push({row:n,autoHeight:(s=(c=o.getRow(n))==null?void 0:c.ah)==null?t.getConfig().defaultRowHeight:s})}return{unitId:n,subUnitId:r,rowsAutoHeightInfo:a}},Mt={id:`sheet.mutation.set-worksheet-row-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,rowHeight:i}=n,a=f(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}},Nt={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let o=a.worksheet.getRowManager();for(let{startRow:e,endRow:t}of r)for(let n=e;n<=t;n++){let e=o.getRowOrCreate(n);if(typeof i==`number`)e.ia=i;else{var s;e.ia=(s=i[n])==null?void 0:s}}return!0}},Pt={id:`sheet.mutation.set-worksheet-row-auto-height`,type:t.CommandType.MUTATION,handler:(e,n)=>{let{rowsAutoHeightInfo:r}=n,i=f(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}},Ft={id:`sheet.mutation.toggle-gridlines`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=f(e.get(t.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},It={id:`sheet.operation.set-worksheet-active`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getWorksheets();for(let[,e]of i)if(e.getSheetId()===n.subUnitId)return r.setActiveSheet(e),!0;return!1}},B=function(e){return e.SET_WORKSHEET_ROW_HEIGHT=`sheet.mutation.set-worksheet-row-height`,e.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-is-auto-height`,e.SET_WORKSHEET_ROW_AUTO_HEIGHT=`sheet.mutation.set-worksheet-row-auto-height`,e.SET_WORKSHEET_COL_WIDTH=`sheet.mutation.set-worksheet-col-width`,e.SET_WORKSHEET_ACTIVE=`sheet.operation.set-worksheet-active`,e.MOVE_ROWS=`sheet.mutation.move-rows`,e.MOVE_COLUMNS=`sheet.mutation.move-columns`,e.SET_COL_HIDDEN=`sheet.mutation.set-col-hidden`,e.SET_COL_VISIBLE=`sheet.mutation.set-col-visible`,e.SET_ROW_HIDDEN=`sheet.mutation.set-row-hidden`,e.SET_ROW_VISIBLE=`sheet.mutation.set-row-visible`,e.INSERT_COL=`sheet.mutation.insert-col`,e.INSERT_ROW=`sheet.mutation.insert-row`,e.REMOVE_COL=`sheet.mutation.remove-col`,e.REMOVE_ROW=`sheet.mutation.remove-rows`,e.TOGGLE_GRIDLINES=`sheet.mutation.toggle-gridlines`,e.SET_GRIDLINES_COLOR=`sheet.mutation.set-gridlines-color`,e}({}),Lt=function(e){return e.SET_RANGE_VALUES=`sheet.mutation.set-range-values`,e.MOVE_RANGE=`sheet.mutation.move-range`,e.REMOVE_WORKSHEET_MERGE=`sheet.mutation.remove-worksheet-merge`,e.ADD_WORKSHEET_MERGE=`sheet.mutation.add-worksheet-merge`,e.REORDER_RANGE=`sheet.mutation.reorder-range`,e.SET_WORKSHEET_DEFAULT_STYLE=`sheet.mutation.set-worksheet-default-style`,e.SET_ROW_DATA=`sheet.mutation.set-row-data`,e.SET_COL_DATA=`sheet.mutation.set-col-data`,e.SET_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.set-worksheet-range-theme-style`,e.DELETE_WORKSHEET_RANGE_THEME_STYLE=`sheet.mutation.delete-worksheet-range-theme-style`,e}({}),Rt=[Mt.id,Nt.id,Pt.id,St.id,It.id,Te.id,De.id,Re.id,Be.id,bt.id,vt.id,Se.id,P.id,F.id,ke.id,Ft.id,Ve.id,Ot.id,wt.id],zt=[z.id,Ce.id,L.id,h.id,Me.id,Tt.id,gt.id,Ie.id,ge.id,ve.id];function Bt(e,n){switch(n.id){case Lt.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 Lt.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 Lt.REMOVE_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Lt.ADD_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Lt.REORDER_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case Lt.SET_WORKSHEET_DEFAULT_STYLE:{let t=f(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 Lt.SET_ROW_DATA:{let t=f(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 Lt.SET_COL_DATA:{let t=f(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 Lt.SET_WORKSHEET_RANGE_THEME_STYLE:case Lt.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function Vt(e,n){switch(e.id){case B.SET_WORKSHEET_ROW_HEIGHT:case B.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 B.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 B.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 B.MOVE_ROWS:case B.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 B.SET_COL_HIDDEN:case B.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 B.SET_ROW_HIDDEN:case B.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 B.INSERT_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case B.INSERT_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case B.REMOVE_COL:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.COLUMN}}]}case B.REMOVE_ROW:{let n=e.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:t.RANGE_TYPE.ROW}}]}case B.TOGGLE_GRIDLINES:case B.SET_GRIDLINES_COLOR:return[];default:return[]}}function Ht(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Ut(e,t){return e&&e.spanAnchor?Ht(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Ht(e)}function Wt(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 Gt(e,n,r,i){let{startRow:a,startColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o-r);if(l=l||Ut(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 Kt(e,n,r,i){let{startRow:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o+r);if(l=l||Ut(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=l||Ut(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 Jt(e,n,r,i){let{startColumn:a,endColumn:o,endRow:s}=e,c=null,l=!1;for(let e=a;e<=o;e++){let t=n.getValue(s+r,e);if(l=l||Ut(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 Yt({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);Ut(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);Ut(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);Ut(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);Ut(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 Xt(e,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Wt(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=Yt({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}=Jt(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}=Gt(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}=Kt(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 Zt=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},Qt=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},$t=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},en=(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},tn=e=>{let t=[],n=$t(e);for(;n.area>0;)n.range&&(t.push(n.range),en(e,n.range)),n=$t(e);return t},nn=e=>tn(Zt(e));var rn=class{constructor(){C(this,`_matrix`,new t.ObjectMatrix)}add(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...e){return e.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return tn(Qt(this._matrix))}};function an(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=on(n)),i}function on(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 sn=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 cn=class{constructor(){C(this,`_tabCount`,0),C(this,`_commaCount`,0),C(this,`_semicolonCount`,0),C(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?sn.Tab:e===this._commaCount?sn.Comma:e===this._semicolonCount?sn.Semicolon:e===this._spaceCount?sn.Space:sn.Tab}};function ln(e,t,n){let r=[];n!==void 0&&(e&sn.Custom)>0&&r.push(n),(e&sn.Tab)>0&&r.push(` `),(e&sn.Comma)>0&&r.push(`,`),(e&sn.Semicolon)>0&&r.push(`;`),(e&sn.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=un(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function un(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}let dn=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function fn(e){if(e!=null){if(e.p)return dn(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 pn(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&sn.Custom)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new cn:null,f=[];for(let t=s;t<=l;t++){let n=fn(e.getCell(t,o));f.push(n),d&&d.update(n)}let p=ln(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 mn=(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)},{}),hn=(e=0)=>{let t=e;return function(){return t++}};function gn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function _n(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(gn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function vn(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 yn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})}),n.clone()}function bn(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{startRow:t,startColumn:r,endRow:i,endColumn:a}=e;for(let e=t;e<=i;e++)for(let t=r;t<=a;t++)n.setValue(e,t,{s:null})}),n.clone()}function xn(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 Sn(e,n,r,i){let a=n.get(t.IUniverInstanceService),o=r?a.getUnit(r,t.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),s=i?o==null?void 0:o.getSheetBySheetId(i):o==null?void 0:o.getActiveSheet();if(!s)return null;let{startRow:c,endRow:l,startColumn:u,endColumn:d}=e,f=[],p=[];for(let e=c;e<=l;e++)s.getRowFiltered(e)||f.push(e);for(let e=u;e<=d;e++)p.push(e);return{rows:f,cols:p}}function Cn(e,n,r,i){let a=f(n.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!a)return e;let{worksheet:o}=a,s=[];for(let t of e){let{startRow:e,endRow:n,startColumn:r,endColumn:i}=t,a=[],c=e;for(let t=e;t<=n;t++)o.getRowFiltered(t)?(c<t&&a.push([c,t-1]),c=t+1):t===n&&a.push([c,n]);let l=s.findIndex(e=>e.startColumn===r&&e.endColumn===i);l>-1?s[l].rowIntervals=s[l].rowIntervals.concat(a):s.push({startColumn:r,endColumn:i,rowIntervals:a})}let c=[];for(let e of s){let{startColumn:n,endColumn:r,rowIntervals:i}=e,a=(0,t.mergeIntervals)(i);for(let[e,t]of a)c.push({startRow:e,endRow:t,startColumn:n,endColumn:r})}return c}let wn=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),Tn=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var V=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange$`,new n.Subject),C(this,`ruleChange$`,this._ruleChange$.asObservable()),C(this,`_ruleRefresh$`,new n.Subject),C(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),C(this,`_rangeRuleInitStateChange`,new n.BehaviorSubject(!1)),C(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 En=(e,t)=>{let n=e.get(V),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:kn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Dn={id:`sheet.mutation.delete-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(V);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},On=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Dn.id,params:t}},kn={id:`sheet.mutation.add-range-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(V);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},An={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(V),{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(kn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:kn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:Dn.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},H=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 jn=class extends t.Disposable{constructor(e){super(),this._workbook=e,C(this,`_worksheetSelections`,new Map),C(this,`_worksheetLastSelectionPrimaryCell`,new Map),C(this,`_selectionMoveStart$`,new n.Subject),C(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),C(this,`_selectionMoving$`,new n.Subject),C(this,`selectionMoving$`,this._selectionMoving$.asObservable()),C(this,`_selectionMoveEnd$`,new n.BehaviorSubject([])),C(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),C(this,`_selectionSet$`,new n.BehaviorSubject([])),C(this,`selectionSet$`,this._selectionSet$.asObservable()),C(this,`selectionChanged$`,void 0),C(this,`_beforeSelectionMoveEnd$`,new n.BehaviorSubject([])),C(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 H.MOVE_START:this._selectionMoveStart$.next(t);break;case H.MOVING:this._selectionMoving$.next(t);break;case H.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case H.ONLY_SET:this._selectionSet$.next(t);break;default:this._selectionSet$.next(t);break}}getCurrentSelections(){return this._getCurrentSelections()}getSelectionOfWorksheet(e){return this.getSelectionsOfWorksheet(e)}getSelectionsOfWorksheet(e){return this._worksheetSelections.has(e)||this._worksheetSelections.set(e,[]),this._worksheetSelections.get(e)}getLastSelectionPrimaryCellOfWorksheet(e){var t;return(t=this._worksheetLastSelectionPrimaryCell.get(e))==null?null:t}setSelectionsOfWorksheet(e,t){this._worksheetSelections.set(e,[...t]),t.length>0&&t[t.length-1].primary&&this._worksheetLastSelectionPrimaryCell.set(e,t[t.length-1].primary)}deleteSheetSelection(e){this._worksheetSelections.set(e,[]),this._worksheetLastSelectionPrimaryCell.delete(e)}clear(){this._worksheetSelections.clear(),this._worksheetLastSelectionPrimaryCell.clear(),this._selectionSet$.next([])}_getCurrentSelections(){return this.getSelectionsOfWorksheet(this._workbook.getActiveSheet().getSheetId())}getCurrentLastSelection(){let e=this._getCurrentSelections();return e[e.length-1]}};let U=class extends t.RxDisposable{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return null;let n=e.getActiveSheet();return{unitId:e.getUnitId(),sheetId:n.getSheetId()}}get currentSelectionParam(){return this._currentSelectionPos}constructor(e){super(),this._instanceSrv=e,C(this,`_cellStylesCache`,new Map),C(this,`selectionMoveStart$`,void 0),C(this,`selectionMoving$`,void 0),C(this,`selectionMoveEnd$`,void 0),C(this,`selectionSet$`,void 0),C(this,`selectionChanged$`,void 0),C(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.shareReplay)(1),(0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe().pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,n.of)())).pipe((0,n.takeUntil)(this.dispose$)),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionSet$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,n.of)([]))).pipe((0,n.takeUntil)(this.dispose$)),this.selectionChanged$=e.pipe((0,n.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,n.of)([]))).pipe((0,n.distinctUntilChanged)((e,t)=>e.length===t.length?e.length===0&&t.length===0?!0:e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n])):!1),(0,n.skip)(1)).pipe((0,n.takeUntil)(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe((0,n.takeUntil)(this.dispose$)).subscribe(()=>{this._cellStylesCache.clear()}))}dispose(){super.dispose(),this._cellStylesCache.clear(),this._workbookSelections.forEach(e=>e.dispose()),this._workbookSelections.clear(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)([]),this.selectionSet$=(0,n.of)(null),this.selectionChanged$=(0,n.of)(null)}clear(){this._workbookSelections.forEach(e=>e.clear())}getCurrentSelections(){return this._getCurrentSelections()}getCurrentLastSelection(){let e=this._getCurrentSelections();return e==null?void 0:e[e.length-1]}getCurrentLastSelectionPrimaryCell(){let e=this._currentSelectionPos;if(!e)return null;let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getLastSelectionPrimaryCellOfWorksheet(n)}addSelections(e,t,n){if(typeof e==`string`){this._ensureWorkbookSelection(e).addSelections(t,n);return}let r=this._currentSelectionPos;if(!r)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:i,sheetId:a}=r;this._ensureWorkbookSelection(i).addSelections(a,e)}setSelections(e,t,n,r){if(typeof e==`string`&&typeof t==`string`){let i=e;this._ensureWorkbookSelection(i).setSelections(t,n||[],r==null?H.ONLY_SET:r);return}let i=this._currentSelectionPos;if(!i)throw Error(`[SheetsSelectionsService]: cannot find current selection position!`);let{unitId:a,sheetId:o}=i;if(typeof e==`object`){var s;let r=e==null?n:e,i=(s=t)==null?H.ONLY_SET:s;this._ensureWorkbookSelection(a).setSelections(o,r,i)}}clearCurrentSelections(){this._getCurrentSelections().splice(0)}isOverlapping(){let e=this.getCurrentSelections();return e==null?!1:e.some(({range:t},n)=>e.some(({range:e},r)=>n===r?!1:t.startRow<=e.endRow&&t.endRow>=e.startRow&&t.startColumn<=e.endColumn&&t.endColumn>=e.startColumn))}_getCurrentSelections(){let e=this._currentSelectionPos;if(!e)return[];let{unitId:t,sheetId:n}=e;return this._ensureWorkbookSelection(t).getSelectionsOfWorksheet(n)}getWorkbookSelections(e){return this._ensureWorkbookSelection(e)}_ensureWorkbookSelection(e){let t=this._workbookSelections.get(e);if(!t){let n=this._instanceSrv.getUnit(e);if(!n)throw Error(`[SheetsSelectionsService]: cannot resolve unit with id "${e}"!`);t=new jn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var n;let r=(n=this._instanceSrv.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getActiveSheet(),i=this.getCurrentSelections();if(!r||i.length===0)return{isAllValuesSame:!1,value:null};let a=null;for(let n=0;n<i.length;n++){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=i[n].range;for(let n=o;n<=s;n++)for(let i=c;i<=l;i++){let o=`${n}_${i}`,s;this._cellStylesCache.has(o)?s=this._cellStylesCache.get(o):(s=r.getComposedCellStyle(n,i),this._cellStylesCache.set(o,s));let c=s[e];if(a!=null&&!t.Tools.diffValue(a,c))return{isAllValuesSame:!1,value:null};a=c}}return{isAllValuesSame:!0,value:a}}};U=T([w(0,t.IUniverInstanceService)],U);let Mn=`REF_SELECTIONS_ENABLED`,Nn={id:`sheet.command.clear-selection-all`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(U),s=e.get(t.IUndoRedoService),c=e.get(k),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m=Cn(p,e,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:vn(m)},v=R(e,_);h.push({id:z.id,params:_}),g.push({id:z.id,params:v});let y=c.onCommandExecute({id:Nn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,t.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}},Pn={id:`sheet.command.clear-selection-format`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(U),s=e.get(t.IUndoRedoService),c=e.get(k),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m=Cn(p,e,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:bn(m)},v=R(e,_);h.push({id:z.id,params:_}),g.push({id:z.id,params:v});let y=c.onCommandExecute({id:Pn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,t.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}};function Fn(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?Fn(o,n,r):o}function In(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 Ln(e,t,n){let{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return Number.isNaN(r)&&(e.startRow=0),Number.isNaN(a)&&(e.endRow=t-1),Number.isNaN(i)&&(e.startColumn=0),Number.isNaN(o)&&(e.endColumn=n-1),e}function W(e,n){let r=Number.isNaN(e.startRow)?0:e.startRow,i=Number.isNaN(e.startColumn)?0:e.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:e.startRow,endColumn:e.startColumn,actualRow:r,actualColumn:i,rangeType:t.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}let Rn=(e,t,n)=>({id:G.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:W(e,n)}]}});function zn(e){if(!e)return!1;let{range:n,primary:r}=e;return t.Rectangle.equals(n,r)}function Bn(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 Vn=e=>e.id!==v;function Hn(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,y,Vn):e.getCellWithFilteredInterceptors(t,s,y,Vn);!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 Un=(0,t.createIdentifier)(`sheets-formula.ref-selections.service`),Wn=class extends U{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe((0,n.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe((0,n.switchMap)(e=>(0,n.merge)(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=(0,n.of)(null),this.selectionMoving$=(0,n.of)(null),this.selectionMoveEnd$=(0,n.of)(null),this.selectionSet$=(0,n.of)(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let e=this._instanceSrv.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET);e.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let r=new n.BehaviorSubject(e);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._ensureWorkbookSelection(e.getUnitId()),r.next([...r.getValue(),e])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),r.next(r.getValue().filter(t=>t!==e))})),r.pipe((0,n.map)(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};Wn=T([w(0,t.IUniverInstanceService)],Wn);function Gn(e,n){let r=e.get(t.IContextService).getContextValue(Mn);return e.get(r&&!n?Un:U)}let G={id:`sheet.operation.set-selections`,type:t.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return Gn(e).setSelections(i,a,[...n],r),!0}},Kn={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=f(e.get(t.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:W(a,s.worksheet),style:null}];return o.syncExecuteCommand(G.id,{unitId:r,subUnitId:i,selections:c})}},qn=`sheet.command.move-range`,Jn={type:t.CommandType.COMMAND,id:qn,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(k).beforeCommandExecute({id:Jn.id,params:n}))return!1;let s=Xn(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 Yn(e,n){var r,i,a,o,s;let c=e.get(t.IUniverInstanceService),l=f(c),u=(r=(i=n.toUnitId)==null?n.fromUnitId:i)==null?l==null?void 0:l.unitId:r,d=(a=n.fromSubUnitId)==null?l==null?void 0:l.subUnitId:a,p=(o=(s=n.toSubUnitId)==null?n.fromSubUnitId:s)==null?l==null?void 0:l.subUnitId:o;if(!u||!d||!p||n.fromUnitId&&n.toUnitId&&n.fromUnitId!==n.toUnitId)return null;let m=c.getUniverSheetInstance(u),h=m==null?void 0:m.getSheetBySheetId(d),g=m==null?void 0:m.getSheetBySheetId(p);return!h||!g?null:{unitId:u,fromSubUnitId:d,toSubUnitId:p,fromWorksheet:h,toWorksheet:g}}function Xn(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=Yn(e,t);if(!c)return null;let l=e.get(k),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=Zn(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:Jn.id,params:t},_=l.onCommandExecute(g),v=[...(r=_.preRedos)==null?[]:r,...h.redos,..._.redos],y=[...(i=_.preUndos)==null?[]:i,...h.undos,..._.undos];if(a&&(v.push({id:G.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:Qn(t.fromRange,t.toRange,p,m)}],type:H.MOVE_END}}),y.push({id:G.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:W(t.fromRange,p)}],type:H.MOVE_END}})),o){let e=l.afterCommandExecute(g);v.push(...e.redos),y.push(...e.undos)}if(s){let{undos:e,redos:n}=l.generateMutationsOfAutoHeight({unitId:u,subUnitId:f,ranges:d===f?[t.fromRange,t.toRange]:[t.toRange]});v.push(...n),y.push(...e)}return{unitId:u,redos:v,undos:y}}function Zn(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=Fn(u,f,!1);if(!t.Rectangle.equals(u,p)&&!i)return null;let m=d.getCellMatrix(),h=f.getCellMatrix(),g=new t.ObjectMatrix,_=new t.ObjectMatrix,v=new t.ObjectMatrix,y=new t.ObjectMatrix;t.Range.foreach(c,(e,n)=>{var r;let i=(r=t.Tools.deepClone(m.getValue(e,n)))==null?null:r;i!=null&&i.s&&(i.s=o.getStyles().get(i.s)),g.setValue(e,n,null),_.setValue(e,n,i);let a=(0,t.cellToRange)(e,n),s=t.Rectangle.getRelativeRange(a,c),l=t.Rectangle.getPositionRange(s,u);v.setValue(l.startRow,l.startColumn,t.Tools.deepClone(i))}),t.Range.foreach(u,(e,n)=>{var r;let i=(r=t.Tools.deepClone(h.getValue(e,n)))==null?null:r;y.setValue(e,n,i)});let b={fromRange:n.range,toRange:r.range,from:{value:g.getMatrix(),subUnitId:s},to:{value:v.getMatrix(),subUnitId:l},unitId:a},x={fromRange:r.range,toRange:n.range,from:{value:y.getMatrix(),subUnitId:l},to:{value:_.getMatrix(),subUnitId:s},unitId:a};return{redos:[{id:Ce.id,params:b}],undos:[{id:Ce.id,params:x}]}}function Qn(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=W(t,r);if(o){let e=o.endRow-o.startRow+1,t=o.endColumn-o.startColumn+1;s.endRow=s.startRow+e-1,s.endColumn=s.startColumn+t-1,s.actualRow=s.startRow,s.actualColumn=s.startColumn,s.isMerged=!1,s.isMergedMainCell=!0}return s}var $n=(e=>(e[e.OpenOrReOpen=0]=`OpenOrReOpen`,e[e.Solved=1]=`Solved`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))($n||{}),er=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Add=1]=`Add`,e[e.Reply=2]=`Reply`,e[e.Edit=3]=`Edit`,e[e.Delete=4]=`Delete`,e[e.Solve=5]=`Solve`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(er||{}),tr=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.OK=1]=`OK`,e[e.INTERNAL_ERROR=2]=`INTERNAL_ERROR`,e[e.PERMISSION_DENIED=3]=`PERMISSION_DENIED`,e[e.NOT_FOUND=4]=`NOT_FOUND`,e[e.UNAUTHENTICATED=5]=`UNAUTHENTICATED`,e[e.ALREADY_EXISTS=6]=`ALREADY_EXISTS`,e[e.INVALID_ARGUMENT=7]=`INVALID_ARGUMENT`,e[e.TOO_MANY_REQUESTS=8]=`TOO_MANY_REQUESTS`,e[e.COMPLETION_FINISHED=9]=`COMPLETION_FINISHED`,e[e.LOGIN_FAILED=10]=`LOGIN_FAILED`,e[e.MOBILE_VERIFY_CODE_MISMATCH=11]=`MOBILE_VERIFY_CODE_MISMATCH`,e[e.MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=12]=`MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.EMAIL_VERIFY_CODE_MISMATCH=13]=`EMAIL_VERIFY_CODE_MISMATCH`,e[e.EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=14]=`EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.AUTHORIZE_CODE_ILLEGAL=15]=`AUTHORIZE_CODE_ILLEGAL`,e[e.LOGIN_TOKEN_PROCESSING_FAILED=16]=`LOGIN_TOKEN_PROCESSING_FAILED`,e[e.CURRENT_STATUS_CANNOT_OPERATE=100]=`CURRENT_STATUS_CANNOT_OPERATE`,e[e.ERROR_AGAIN=101]=`ERROR_AGAIN`,e[e.USER_NOT_FOUND=201]=`USER_NOT_FOUND`,e[e.USER_IS_ANONYMOUS=202]=`USER_IS_ANONYMOUS`,e[e.CHANGESET_REVISION_CONFILICT=5001]=`CHANGESET_REVISION_CONFILICT`,e[e.SNAPSHOT_INVALID_SNAPSHOT=6001]=`SNAPSHOT_INVALID_SNAPSHOT`,e[e.SNAPSHOT_HAS_BEEN_REMOVED=6002]=`SNAPSHOT_HAS_BEEN_REMOVED`,e[e.ENSURE_SNAPSHOT_EXECUTION=6003]=`ENSURE_SNAPSHOT_EXECUTION`,e[e.APPLY_REJECT=7001]=`APPLY_REJECT`,e[e.APPLY_NON_SEQUENTIAL_REVISION=7002]=`APPLY_NON_SEQUENTIAL_REVISION`,e[e.APPLY_REVISION_CONFILICT=7003]=`APPLY_REVISION_CONFILICT`,e[e.APPLY_PERMISSION_DENIED=7004]=`APPLY_PERMISSION_DENIED`,e[e.APPLY_DUPLICATED=7005]=`APPLY_DUPLICATED`,e[e.CONNECTOR_DATA_TOO_LARGE=8001]=`CONNECTOR_DATA_TOO_LARGE`,e[e.LICENSE_MAX_UNITS_EXCEEDED=9001]=`LICENSE_MAX_UNITS_EXCEEDED`,e[e.LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED=9002]=`LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED`,e[e.LICENSE_IMPORT_SIZE_EXCEEDED=9003]=`LICENSE_IMPORT_SIZE_EXCEEDED`,e[e.LICENSE_EXPORT_SIZE_EXCEEDED=9004]=`LICENSE_EXPORT_SIZE_EXCEEDED`,e[e.LICENSE_DISTRO_REJECTED=9005]=`LICENSE_DISTRO_REJECTED`,e[e.YUUMI_UNABLE_LOAD_URL=10001]=`YUUMI_UNABLE_LOAD_URL`,e[e.YUUMI_URL_COL_OUT_OF_RANGE=10002]=`YUUMI_URL_COL_OUT_OF_RANGE`,e[e.YUUMI_RATE_OVER_LIMIT=10003]=`YUUMI_RATE_OVER_LIMIT`,e[e.YUUMI_SUBSCRIPTION_NOT_FOUND=10004]=`YUUMI_SUBSCRIPTION_NOT_FOUND`,e[e.YUUMI_NO_CUBOID_FOR_QUESTION=10010]=`YUUMI_NO_CUBOID_FOR_QUESTION`,e[e.YUUMI_ASYNCIO_CANCELLED=10011]=`YUUMI_ASYNCIO_CANCELLED`,e[e.YUUMI_TABLE_NOT_FOUND_IN_UNIT=10012]=`YUUMI_TABLE_NOT_FOUND_IN_UNIT`,e[e.YUUMI_ALL_TABLES_IS_INVALID=10013]=`YUUMI_ALL_TABLES_IS_INVALID`,e[e.YUUMI_PROMPT_MAX_TOKENS_EXCEEDED=10014]=`YUUMI_PROMPT_MAX_TOKENS_EXCEEDED`,e[e.YUUMI_AI_RUN_FAILED=10015]=`YUUMI_AI_RUN_FAILED`,e[e.YUUMI_CONNECTOR_URL_NOT_FOUND=10016]=`YUUMI_CONNECTOR_URL_NOT_FOUND`,e[e.PY_RUNTIME_SCRIPT_ERROR=11001]=`PY_RUNTIME_SCRIPT_ERROR`,e[e.INVITE_CODE_HAS_BEEN_UES=12001]=`INVITE_CODE_HAS_BEEN_UES`,e[e.INVALID_INVITE_CODE=12002]=`INVALID_INVITE_CODE`,e[e.INVITE_CODE_REQUIRED=12003]=`INVITE_CODE_REQUIRED`,e[e.USER_NOT_INVITED_CODE=12004]=`USER_NOT_INVITED_CODE`,e[e.INVITE_CODE_ALREADY_BOUND=12005]=`INVITE_CODE_ALREADY_BOUND`,e[e.WECHAT_HAS_BEEN_BOUND=13001]=`WECHAT_HAS_BEEN_BOUND`,e[e.MOBILE_HAS_BEEN_BOUND=13002]=`MOBILE_HAS_BEEN_BOUND`,e[e.EMAIL_HAS_BEEN_BOUND=13003]=`EMAIL_HAS_BEEN_BOUND`,e[e.ENTITLE_CAN_NOT_BUY_LOWER_OTP=14001]=`ENTITLE_CAN_NOT_BUY_LOWER_OTP`,e[e.ENTITLE_UPDOWN_GRADE_NOT_SUPPORT=14002]=`ENTITLE_UPDOWN_GRADE_NOT_SUPPORT`,e[e.ENTITLE_DUP_SUBSCRIPTION=14003]=`ENTITLE_DUP_SUBSCRIPTION`,e[e.PAYMENT_CHANNEL_NOT_SUPPORT=14004]=`PAYMENT_CHANNEL_NOT_SUPPORT`,e[e.ENTITLE_INVALID_COUPON_CODE=14005]=`ENTITLE_INVALID_COUPON_CODE`,e[e.ENTITLE_COUPON_EXPIRED=14006]=`ENTITLE_COUPON_EXPIRED`,e[e.ENTITLE_COUPON_USED_UP=14007]=`ENTITLE_COUPON_USED_UP`,e[e.ENTITLE_USE_COUPON_NOT_1ST_TRADE=14008]=`ENTITLE_USE_COUPON_NOT_1ST_TRADE`,e[e.ENTITLE_CHAT_LIMIT_EXCEED=14101]=`ENTITLE_CHAT_LIMIT_EXCEED`,e[e.ENTITLE_REPORT_LIMIT_EXCEED=14102]=`ENTITLE_REPORT_LIMIT_EXCEED`,e[e.ENTITLE_INSUFFICIENT_QUOTA=14103]=`ENTITLE_INSUFFICIENT_QUOTA`,e[e.ENTITLE_NEED_BILLING_ADDRESS=14301]=`ENTITLE_NEED_BILLING_ADDRESS`,e[e.REDEMPTION_INVALID_CODE=15001]=`REDEMPTION_INVALID_CODE`,e[e.REDEMPTION_CODE_INACTIVE=15002]=`REDEMPTION_CODE_INACTIVE`,e[e.REDEMPTION_CODE_FULLY_REDEEMED=15003]=`REDEMPTION_CODE_FULLY_REDEEMED`,e[e.REDEMPTION_CODE_NOT_STARTED=15004]=`REDEMPTION_CODE_NOT_STARTED`,e[e.REDEMPTION_USER_NOT_ELIGIBLE=15005]=`REDEMPTION_USER_NOT_ELIGIBLE`,e[e.REDEMPTION_USER_REDEEM_TIMES_EXCEED=15006]=`REDEMPTION_USER_REDEEM_TIMES_EXCEED`,e[e.REDEMPTION_CODE_HAS_BEEN_CREATED=15007]=`REDEMPTION_CODE_HAS_BEEN_CREATED`,e[e.DATA_SOURCE_TOO_LARGE=16001]=`DATA_SOURCE_TOO_LARGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(tr||{}),nr=(e=>(e[e.UNIVER_UNKNOWN=0]=`UNIVER_UNKNOWN`,e[e.UNIVER_DOC=1]=`UNIVER_DOC`,e[e.UNIVER_SHEET=2]=`UNIVER_SHEET`,e[e.UNIVER_SLIDE=3]=`UNIVER_SLIDE`,e[e.UNIVER_PROJECT=4]=`UNIVER_PROJECT`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(nr||{}),rr=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.TEXT=1]=`TEXT`,e[e.URL=2]=`URL`,e[e.IMAGE=3]=`IMAGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(rr||{}),K=(e=>(e[e.View=0]=`View`,e[e.Edit=1]=`Edit`,e[e.ManageCollaborator=2]=`ManageCollaborator`,e[e.Print=3]=`Print`,e[e.Duplicate=4]=`Duplicate`,e[e.Comment=5]=`Comment`,e[e.Copy=6]=`Copy`,e[e.Share=7]=`Share`,e[e.Export=8]=`Export`,e[e.MoveWorksheet=9]=`MoveWorksheet`,e[e.DeleteWorksheet=10]=`DeleteWorksheet`,e[e.HideWorksheet=11]=`HideWorksheet`,e[e.RenameWorksheet=12]=`RenameWorksheet`,e[e.CreateWorksheet=13]=`CreateWorksheet`,e[e.SetWorksheetStyle=14]=`SetWorksheetStyle`,e[e.EditWorksheetCell=15]=`EditWorksheetCell`,e[e.InsertHyperlink=16]=`InsertHyperlink`,e[e.Sort=17]=`Sort`,e[e.Filter=18]=`Filter`,e[e.PivotTable=19]=`PivotTable`,e[e.FloatImg=20]=`FloatImg`,e[e.History=21]=`History`,e[e.RwHgtClWdt=22]=`RwHgtClWdt`,e[e.ViemRwHgtClWdt=23]=`ViemRwHgtClWdt`,e[e.ViewFilter=24]=`ViewFilter`,e[e.MoveSheet=25]=`MoveSheet`,e[e.DeleteSheet=26]=`DeleteSheet`,e[e.HideSheet=27]=`HideSheet`,e[e.CopySheet=28]=`CopySheet`,e[e.RenameSheet=29]=`RenameSheet`,e[e.CreateSheet=30]=`CreateSheet`,e[e.SelectProtectedCells=31]=`SelectProtectedCells`,e[e.SelectUnProtectedCells=32]=`SelectUnProtectedCells`,e[e.SetCellStyle=33]=`SetCellStyle`,e[e.SetCellValue=34]=`SetCellValue`,e[e.SetRowStyle=35]=`SetRowStyle`,e[e.SetColumnStyle=36]=`SetColumnStyle`,e[e.InsertRow=37]=`InsertRow`,e[e.InsertColumn=38]=`InsertColumn`,e[e.DeleteRow=39]=`DeleteRow`,e[e.DeleteColumn=40]=`DeleteColumn`,e[e.EditExtraObject=41]=`EditExtraObject`,e[e.Delete=42]=`Delete`,e[e.RecoverHistory=43]=`RecoverHistory`,e[e.ViewHistory=44]=`ViewHistory`,e[e.CreatePermissionObject=45]=`CreatePermissionObject`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(K||{}),ir=(e=>(e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ir||{}),q=(e=>(e[e.Unkonwn=0]=`Unkonwn`,e[e.Workbook=1]=`Workbook`,e[e.Worksheet=2]=`Worksheet`,e[e.SelectRange=3]=`SelectRange`,e[e.Document=4]=`Document`,e[e.Slide=5]=`Slide`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(q||{}),ar=(e=>(e[e.Private=0]=`Private`,e[e.Public=1]=`Public`,e[e.Organization=2]=`Organization`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ar||{}),or=(e=>(e[e.SomeCollaborator=0]=`SomeCollaborator`,e[e.AllCollaborator=1]=`AllCollaborator`,e[e.OneSelf=2]=`OneSelf`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(or||{}),sr=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.STRING=1]=`STRING`,e[e.NUMBER=2]=`NUMBER`,e[e.BOOLEAN=3]=`BOOLEAN`,e[e.FORCE_STRING=4]=`FORCE_STRING`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(sr||{}),cr=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Colla=1]=`Colla`,e[e.Import=2]=`Import`,e[e.Export=3]=`Export`,e[e.CreateUnit=4]=`CreateUnit`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(cr||{}),lr=(e=>(e[e.valueBetween=0]=`valueBetween`,e[e.valueEqual=1]=`valueEqual`,e[e.valueGreaterThan=2]=`valueGreaterThan`,e[e.valueGreaterThanOrEqual=3]=`valueGreaterThanOrEqual`,e[e.valueLessThan=4]=`valueLessThan`,e[e.valueLessThanOrEqual=5]=`valueLessThanOrEqual`,e[e.valueNotBetween=6]=`valueNotBetween`,e[e.valueNotEqual=7]=`valueNotEqual`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(lr||{}),ur=(e=>(e[e.DataFragmentationType_None=0]=`DataFragmentationType_None`,e[e.DataFragmentationType_Charts=1]=`DataFragmentationType_Charts`,e[e.DataFragmentationType_Unit=2]=`DataFragmentationType_Unit`,e[e.DataFragmentationType_WorkSheetRef=3]=`DataFragmentationType_WorkSheetRef`,e[e.DataFragmentationType_Code=4]=`DataFragmentationType_Code`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ur||{}),dr=(e=>(e[e.AnalyseTaskStatus_None=0]=`AnalyseTaskStatus_None`,e[e.AnalyseTaskStatus_Analysing=1]=`AnalyseTaskStatus_Analysing`,e[e.AnalyseTaskStatus_Failed=2]=`AnalyseTaskStatus_Failed`,e[e.AnalyseTaskStatus_Completed=3]=`AnalyseTaskStatus_Completed`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(dr||{}),fr=(e=>(e[e.UNKNOWN_CMD=0]=`UNKNOWN_CMD`,e[e.HELLO=1]=`HELLO`,e[e.JOIN=2]=`JOIN`,e[e.LEAVE=3]=`LEAVE`,e[e.INGEST=4]=`INGEST`,e[e.HEARTBEAT=5]=`HEARTBEAT`,e[e.RECV=6]=`RECV`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(fr||{}),pr=(e=>(e[e.UNKNOWN_CODE=0]=`UNKNOWN_CODE`,e[e.OK=1]=`OK`,e[e.FAIL=2]=`FAIL`,e[e.JOIN_ROOM_FULL=1001]=`JOIN_ROOM_FULL`,e[e.JOIN_ROOM_NOT_EXISTS=1002]=`JOIN_ROOM_NOT_EXISTS`,e[e.JOIN_ROOM_PERMISSION_DENIED=1003]=`JOIN_ROOM_PERMISSION_DENIED`,e[e.GLOBAL_ROOMS_CNT_EXCEEDS=1004]=`GLOBAL_ROOMS_CNT_EXCEEDS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(pr||{}),mr=(e=>(e[e.Completion_None=0]=`Completion_None`,e[e.Completion_Completed=1]=`Completion_Completed`,e[e.Completion_UserCancelled=2]=`Completion_UserCancelled`,e[e.Completion_SystemErr=3]=`Completion_SystemErr`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(mr||{}),hr=(e=>(e[e.RoleType_None=0]=`RoleType_None`,e[e.RoleType_User=1]=`RoleType_User`,e[e.RoleType_Agent=2]=`RoleType_Agent`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(hr||{}),gr=(e=>(e[e.ContentBlockType_None=0]=`ContentBlockType_None`,e[e.ContentBlockType_Prompt=1]=`ContentBlockType_Prompt`,e[e.ContentBlockType_Thinking=2]=`ContentBlockType_Thinking`,e[e.ContentBlockType_Report=3]=`ContentBlockType_Report`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(gr||{}),_r=(e=>(e[e.ContentType_None=0]=`ContentType_None`,e[e.ContentType_PlainText=1]=`ContentType_PlainText`,e[e.ContentType_Markdown=2]=`ContentType_Markdown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(_r||{}),vr=(e=>(e[e.AttachmentType_None=0]=`AttachmentType_None`,e[e.AttachmentType_Unit=1]=`AttachmentType_Unit`,e[e.AttachmentType_Recommendation=3]=`AttachmentType_Recommendation`,e[e.AttachmentType_DataSource=4]=`AttachmentType_DataSource`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(vr||{}),yr=(e=>(e[e.Reaction_NoReact=0]=`Reaction_NoReact`,e[e.Reaction_ThumbsUp=1]=`Reaction_ThumbsUp`,e[e.Reaction_ThumbsDown=2]=`Reaction_ThumbsDown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(yr||{}),br=(e=>(e[e.ChatSSEBlockType_None=0]=`ChatSSEBlockType_None`,e[e.ChatSSEBlockType_EndOfStream=1]=`ChatSSEBlockType_EndOfStream`,e[e.ChatSSEBlockType_Reject=2]=`ChatSSEBlockType_Reject`,e[e.ChatSSEBlockType_ModConversation=3]=`ChatSSEBlockType_ModConversation`,e[e.ChatSSEBlockType_PromptAck=4]=`ChatSSEBlockType_PromptAck`,e[e.ChatSSEBlockType_ChatContent=5]=`ChatSSEBlockType_ChatContent`,e[e.ChatSSEBlockType_Attachment=6]=`ChatSSEBlockType_Attachment`,e[e.ChatSSEBlockType_RespMeta=7]=`ChatSSEBlockType_RespMeta`,e[e.ChatSSEBlockType_StreamErr=8]=`ChatSSEBlockType_StreamErr`,e[e.ChatSSEBlockType_ChatThinking=9]=`ChatSSEBlockType_ChatThinking`,e[e.ChatSSEBlockType_Fragmentation=10]=`ChatSSEBlockType_Fragmentation`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(br||{}),xr=(e=>(e[e.ChatSSEStatus_None=0]=`ChatSSEStatus_None`,e[e.ChatSSEStatus_Appending=1]=`ChatSSEStatus_Appending`,e[e.ChatSSEStatus_Success=2]=`ChatSSEStatus_Success`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(xr||{}),Sr=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.UNIT=1]=`UNIT`,e[e.JSON=2]=`JSON`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Sr||{}),Cr=(e=>(e[e.ImportScene_Unspecified=0]=`ImportScene_Unspecified`,e[e.ImportScene_General=1]=`ImportScene_General`,e[e.ImportScene_AIAnalyse=2]=`ImportScene_AIAnalyse`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Cr||{}),wr=(e=>(e[e.Undefined=0]=`Undefined`,e[e.HttpImport=1]=`HttpImport`,e[e.HttpExport=2]=`HttpExport`,e[e.UnitEmbedded=3]=`UnitEmbedded`,e[e.UnitSnapshot=4]=`UnitSnapshot`,e[e.UserProfileImg=5]=`UserProfileImg`,e[e.ClipsheetFragments=6]=`ClipsheetFragments`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(wr||{}),Tr=(e=>(e[e.UNDEFINED_ENV=0]=`UNDEFINED_ENV`,e[e.NODE=1]=`NODE`,e[e.BROWSER=2]=`BROWSER`,e[e.PYTHON=3]=`PYTHON`,e[e.REQUIREMENTS_TXT=4]=`REQUIREMENTS_TXT`,e[e.WORKSPACE_ENV_VARS=5]=`WORKSPACE_ENV_VARS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Tr||{}),Er=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.ROOT=1]=`ROOT`,e[e.TRASH=2]=`TRASH`,e[e.DEBUG=3]=`DEBUG`,e[e.AI_STASH=4]=`AI_STASH`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(Er||{}),Dr=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.Edit),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!0),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.Edit}.${r}`}},Or=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.View),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!1),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.View}.${r}`}},kr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Comment),this.unitId=e,this.id=`${this.type}.${K.Comment}_${e}`}},Ar=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Copy),this.unitId=e,this.id=`${this.type}.${K.Copy}_${e}`}},jr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`subType`,K.CopySheet),C(this,`status`,t.PermissionStatus.INIT),this.unitId=e,this.id=`${this.type}.${K.CopySheet}_${e}`}},Mr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${K.CreatePermissionObject}_${e}`}},Nr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.CreateSheet),this.unitId=e,this.id=`${this.type}.${K.CreateSheet}_${e}`}},Pr=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteColumn),this.id=`${this.type}.${K.DeleteColumn}_${e}`}},Fr=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteRow),this.id=`${this.type}.${K.DeleteRow}_${e}`}},Ir=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.DeleteSheet),this.unitId=e,this.id=`${this.type}.${K.DeleteSheet}_${e}`}},Lr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Duplicate),this.unitId=e,this.id=`${this.type}.${K.Duplicate}_${e}`}},Rr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Edit),this.unitId=e,this.id=`${this.type}.${K.Edit}_${e}`}},zr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Export),this.unitId=e,this.id=`${this.type}.${K.Export}_${e}`}},Br=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.HideSheet),this.unitId=e,this.id=`${this.type}.${K.HideSheet}_${e}`}},Vr=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertColumn),this.id=`${this.type}.${K.InsertColumn}_${e}`}},Hr=class{constructor(e){this.unitId=e,C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertRow),this.id=`${this.type}.${K.InsertRow}_${e}`}},Ur=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${K.ManageCollaborator}_${e}`}},Wr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.MoveSheet),this.unitId=e,this.id=`${this.type}.${K.MoveSheet}_${e}`}},Gr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Print),this.unitId=e,this.id=`${this.type}.${K.Print}_${e}`}},Kr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.RecoverHistory),this.unitId=e,this.id=`${this.type}.${K.RecoverHistory}_${e}`}},qr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.RenameSheet),this.unitId=e,this.id=`${this.type}.${K.RenameSheet}_${e}`}},Jr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.Share),this.unitId=e,this.id=`${this.type}.${K.Share}_${e}`}},Yr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.View),this.unitId=e,this.id=`${this.type}.${K.View}_${e}`}},Xr=class{constructor(e){this.unitId=e,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,q.Workbook),C(this,`status`,t.PermissionStatus.INIT),C(this,`subType`,K.ViewHistory),this.unitId=e,this.id=`${this.type}.${K.ViewHistory}_${e}`}},Zr=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Copy),this.id=`${this.type}.${K.Copy}_${e}_${n}`}},Qr=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteColumn),this.id=`${this.type}.${K.DeleteColumn}_${e}_${n}`}},$r=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Delete),this.id=`${this.type}.${K.Delete}_${e}_${n}`}},ei=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.DeleteRow),this.id=`${this.type}.${K.DeleteRow}_${e}_${n}`}},ti=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Edit),this.id=`${this.type}.${K.Edit}_${e}_${n}`}},ni=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.EditExtraObject),this.id=`${this.type}.${K.EditExtraObject}_${e}_${n}`}},ri=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Filter),this.id=`${this.type}.${K.Filter}_${e}_${n}`}},ii=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertColumn),this.id=`${this.type}.${K.InsertColumn}_${e}_${n}`}},ai=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertHyperlink),this.id=`${this.type}.${K.InsertHyperlink}_${e}_${n}`}},oi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.InsertRow),this.id=`${this.type}.${K.InsertRow}_${e}_${n}`}},si=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.ManageCollaborator),this.id=`${this.type}.${K.ManageCollaborator}_${e}_${n}`}},ci=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.PivotTable),this.id=`${this.type}.${K.PivotTable}_${e}_${n}`}},li=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SelectProtectedCells),this.id=`${this.type}.${K.SelectProtectedCells}_${e}_${n}`}},ui=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SelectUnProtectedCells),this.id=`${this.type}.${K.SelectUnProtectedCells}_${e}_${n}`}},di=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetCellStyle),this.id=`${this.type}.${K.SetCellStyle}_${e}_${n}`}},fi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetCellValue),this.id=`${this.type}.${K.SetCellValue}_${e}_${n}`}},pi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetColumnStyle),this.id=`${this.type}.${K.SetColumnStyle}_${e}_${n}`}},mi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.SetRowStyle),this.id=`${this.type}.${K.SetRowStyle}_${e}_${n}`}},hi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.Sort),this.id=`${this.type}.${K.Sort}_${e}_${n}`}},gi=class{constructor(e,n){this.unitId=e,this.subUnitId=n,C(this,`value`,!0),C(this,`type`,q.Worksheet),C(this,`status`,t.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,K.View),this.id=`${this.type}.${K.View}_${e}_${n}`}};let _i={id:`sheet.command.set-range-values`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=e.get(t.IPermissionService),d=f(s,n);if(!d)return!1;let{subUnitId:p,unitId:m,workbook:h,worksheet:g}=d,{value:_,range:v,redoUndoId:y}=n,b=v?[v]:(r=c.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!b||!b.length||!u.getPermissionPoint(new ti(m,p).id))return!1;let x=new t.ObjectMatrix,S;if(t.Tools.isArray(_))for(let e=0;e<b.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=b[e];for(let e=0;e<=r-t;e++)for(let r=0;r<=i-n;r++)x.setValue(e+t,r+n,_[e][r])}else if((0,t.isICellData)(_))for(let e=0;e<b.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=b[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)x.setValue(e,t,_)}else S=_;let C={subUnitId:p,unitId:m,cellValue:(i=S)==null?x.getMatrix():i},w=R(e,C),T=(0,t.mapObjectMatrix)(C.cellValue,(e,t)=>g.getCellHeight(e,t)||void 0);if(!a.syncExecuteCommand(z.id,C))return!1;let{undos:E,redos:D}=l.onCommandExecute({id:_i.id,params:C}),{undos:O,redos:A}=l.generateMutationsOfAutoHeight({unitId:m,subUnitId:p,ranges:b,cellHeights:new t.ObjectMatrix(T)});if((0,t.sequenceExecute)([...D,...A],a).result){let e=Rn(v==null?x.getRange():v,h,g);return o.pushUndoRedo({unitID:m,undoMutations:[{id:z.id,params:w},...E,...O,e],redoMutations:[{id:z.id,params:C},...D,...A,t.Tools.deepClone(e)],id:y}),!0}return!1}};function vi(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=e.get(t.IUniverInstanceService),d=e.get(k),f=u.getUniverSheetInstance(a),p=f==null?void 0:f.getSheetBySheetId(o);if(p){let n=p.getCellMatrix(),u=n.getDataRange();if(s.startColumn<=u.endColumn||s.startRow<=u.endRow){let l,d;if(c===t.Dimension.COLUMNS){let e=Math.min(s.endRow,u.endRow),r=0;for(let i=s.startRow;i<=e;i++){let e=n.getRow(i),a=e?(0,t.getArrayLength)(e)-1:0;r=Math.max(r,a)}l={startRow:s.startRow,startColumn:s.startColumn,endRow:e,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:l.startColumn+i,endRow:e,endColumn:l.endColumn+i}}else{let e=Math.min(s.endColumn,u.endColumn),t=u.endRow;l={startRow:s.startRow,startColumn:s.startColumn,endRow:t,endColumn:e};let n=s.endRow-s.startRow+1;d={startRow:l.startRow+n,startColumn:s.startColumn,endRow:l.endRow+n,endColumn:e}}let f=Zn(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:_i.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 yi(e,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=e.get(t.IUniverInstanceService),u=e.get(k),d=l.getUniverSheetInstance(a),f=d==null?void 0:d.getSheetBySheetId(o);if(f){let n=f.getCellMatrix(),l=n.getDataRange(),d={subUnitId:o,unitId:a,cellValue:vn([s])},p=R(e,d),m=u.onCommandExecute({id:_i.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=Zn(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 bi(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 xi(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 Si=`sheet.command.delete-range-move-left`,Ci={type:t.CommandType.COMMAND,id:Si,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=f(s);if(!u)return!1;let{worksheet:d,workbook:p,subUnitId:m,unitId:h}=u,g=n==null?void 0:n.range;if(!g){var _;g=(_=c.getCurrentLastSelection())==null?void 0:_.range}if(!g)return!1;let v={range:g,subUnitId:m,unitId:h,shiftDimension:t.Dimension.COLUMNS},y=l.onCommandExecute({id:Ci.id,params:{range:g}}),{redo:b,undo:x}=yi(e,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(Rn(g,p,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,t.sequenceExecute)(S,a).result){let e=l.afterCommandExecute({id:Ci.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),C.push(...e.undos),S.push(...e.redos),o.pushUndoRedo({unitID:h,undoMutations:C.reverse(),redoMutations:S}),!0}return!1}},wi=`sheet.command.delete-range-move-up`,Ti={type:t.CommandType.COMMAND,id:wi,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=f(s);if(!u)return!1;let{unitId:d,subUnitId:p,workbook:m,worksheet:h}=u,g=n==null?void 0:n.range;if(!g){let e=c.getCurrentLastSelection();g=e==null?void 0:e.range}if(!g)return!1;let _={range:g,subUnitId:p,unitId:d,shiftDimension:t.Dimension.ROWS},v=l.onCommandExecute({id:Ti.id,params:{range:g}}),{redo:y,undo:b}=yi(e,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Rn(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,t.sequenceExecute)(x,a).result){let e=l.afterCommandExecute({id:Ti.id,params:{range:g}});return(0,t.sequenceExecute)(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},Ei=`sheet.command.insert-range-move-down`,Di={type:t.CommandType.COMMAND,id:Ei,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let p=f(s);if(!p)return!1;let{unitId:m,subUnitId:h,worksheet:g,workbook:_}=p,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=g.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(C.startRow,C.endRow,v.startColumn,v.endColumn).getDataRange().endRow,T=Math.max(w+(v.endRow-v.startRow+1)-C.endRow,0);if(T>0){let n=v.startRow-1,r=g.getRowHeight(n),i={unitId:m,subUnitId:h,range:{startRow:C.endRow+1,endRow:C.endRow+T,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:Array(T).fill(void 0).map(()=>({h:r,hd:t.BooleanNumber.FALSE}))};b.push({id:P.id,params:i});let a=be(e,i);x.push({id:ke.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=g.getCell(e,t);n&&(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=vi(e,{range:v,subUnitId:h,unitId:m,shiftDimension:t.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:Di.id,params:{range:v}});if(b.push(...A.redos),b.push(Rn(v,_,g)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,t.sequenceExecute)(b,a)){let e=l.afterCommandExecute({id:Di.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:m,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},Oi=`sheet.command.insert-range-move-right`,ki={type:t.CommandType.COMMAND,id:Oi,handler:async(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(U),l=e.get(k),u=e.get(t.ErrorService),d=e.get(t.LocaleService);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let p=f(s);if(!p)return!1;let{workbook:m,worksheet:h,unitId:g,subUnitId:_}=p,v=n==null?void 0:n.range;if(!v){var y;v=(y=c.getCurrentLastSelection())==null?void 0:y.range}if(!v)return!1;let b=[],x=[],S=h.getCellMatrix(),C=S.getDataRange(),w=S.getSlice(v.startRow,v.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,T=Math.max(w+(v.endColumn-v.startColumn+1)-C.endColumn,0);if(T>0){let n=v.startColumn-1,r=h.getColumnWidth(n),i={unitId:g,subUnitId:_,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+T},colInfo:Array(T).fill(void 0).map(()=>({w:r,hd:t.BooleanNumber.FALSE}))};b.push({id:Se.id,params:i});let a=xe(e,i);x.push({id:F.id,params:a})}let E={};t.Range.foreach(v,(e,t)=>{let n=h.getCell(e,t);!n||!n.s||(E[e]||(E[e]={}),E[e][t]={s:n.s})});let{redo:D,undo:O}=vi(e,{range:v,subUnitId:_,unitId:g,shiftDimension:t.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:ki.id,params:{range:v}});if(b.push(...A.redos),b.push(Rn(v,m,h)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,t.sequenceExecute)(b,a).result){let e=l.afterCommandExecute({id:ki.id,params:{range:v}});return(0,t.sequenceExecute)(e.redos,a),x.push(...e.undos),b.push(...e.redos),o.pushUndoRedo({unitID:g,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},Ai=`sheet.command.insert-row`,ji={type:t.CommandType.COMMAND,id:Ai,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(k),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:ji.id,params:n})?r.syncExecuteCommand(Mi.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},Mi={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,n)=>{var r,i,a,o;let s=f(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:p,direction:m,cellValue:h}=n,{startRow:g,endRow:_}=p;p.rangeType=t.RANGE_TYPE.ROW;let v=m===t.Direction.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(k),S={unitId:u,subUnitId:d,range:p},C=l.getRowHeight(v);C!==l.getConfig().defaultRowHeight&&(S.rowInfo=Array(_-g+1).fill(void 0).map(()=>({h:C,hd:t.BooleanNumber.FALSE})));let w=be(e,S),T=[{id:P.id,params:S}],E=[{id:ke.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:z.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:ji.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Rn(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:ji.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E,redoMutations:T}),!0}return!1}},Ni={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,n)=>{var r;let i=(r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,subUnitId:c,unitId:l}=o,u=n.value||0,d=a.startRow,p=a.startRow+u-1,m=s.getColumnCount()-1,h={unitId:l,subUnitId:c,direction:t.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m},cellValue:Hn(s,d,p,0,m,!0,d-1)};return e.get(t.ICommandService).executeCommand(ji.id,h)}},Pi={type:t.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i;if((r==null?void 0:r.length)===1)i=r[0];else return!1;let a=f(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,p=o.getColumnCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:p,rangeType:t.RANGE_TYPE.ROW},cellValue:Hn(o,u,d,0,p,!0,i.endRow)};return e.get(t.ICommandService).executeCommand(ji.id,m)}},Fi={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,n)=>{var r;let i=(r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.startRow,p=a.startRow+u-1,m=s.getColumnCount()-1,h=Hn(s,d,p,0,m,!0,d-1),g={unitId:c,subUnitId:l,direction:t.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:h};return e.get(t.ICommandService).executeCommand(ji.id,g)}},Ii={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,n)=>{var r;let i=(r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range),a;if((i==null?void 0:i.length)===1)a=i[0];else return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=n.value||0,d=a.endRow+1,p=a.endRow+u,m=s.getColumnCount()-1,h={unitId:c,subUnitId:l,direction:t.Direction.DOWN,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:t.RANGE_TYPE.ROW},cellValue:Hn(s,d,p,0,m,!0,a.endRow)};return e.get(t.ICommandService).executeCommand(ji.id,h)}},Li=`sheet.command.insert-col`,Ri={type:t.CommandType.COMMAND,id:Li,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(k),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:Ri.id,params:n})?r.syncExecuteCommand(zi.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},zi={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,n)=>{var r,i,a,o;let s=f(e.get(t.IUniverInstanceService),n);if(!s)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:p,direction:m,cellValue:h}=n,{startColumn:g,endColumn:_}=p;p.rangeType=t.RANGE_TYPE.COLUMN;let v=m===t.Direction.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=e.get(t.ICommandService),b=e.get(t.IUndoRedoService),x=e.get(k),S={unitId:u,subUnitId:d,range:p},C=l.getColumnWidth(v);C!==l.getConfig().defaultColumnWidth&&(S.colInfo=Array(_-g+1).fill(void 0).map(()=>({w:C,hd:t.BooleanNumber.FALSE})));let w=xe(e,S),T=[{id:Se.id,params:S}],E=[{id:F.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:z.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:Ri.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(Rn(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,t.sequenceExecute)(T,y).result){let e=x.afterCommandExecute({id:Ri.id,params:n});return(0,t.sequenceExecute)(e.redos,y),T.push(...e.redos),E.push(...e.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E.filter(Boolean),redoMutations:T.filter(Boolean)}),!0}return!1}},Bi={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(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,p=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Hn(o,0,p,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Ri.id,m)}},Vi={type:t.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let n=e.get(U).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=f(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,p={unitId:o,subUnitId:s,direction:t.Direction.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:Hn(a,0,d,l,u,!1,r.endColumn)};return e.get(t.ICommandService).executeCommand(Ri.id,p)}},Hi={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(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,p=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:t.RANGE_TYPE.COLUMN},cellValue:Hn(o,0,p,u,d,!1,u-1)};return e.get(t.ICommandService).executeCommand(Ri.id,m)}},Ui={type:t.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(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,p=o.getRowCount()-1,m={unitId:s,subUnitId:c,direction:t.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p},cellValue:Hn(o,0,p,u,d,!1,i.endColumn)};return e.get(t.ICommandService).executeCommand(Ri.id,m)}},Wi=(0,t.throttle)((e,t,n,r)=>{if(!r.disposed){let i=Rn(e,t,n);r.executeCommand(i.id,i.params)}},300),Gi=`sheet.command.remove-row`,Ki={type:t.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=f(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(k),{range:c,unitId:l,subUnitId:u}=n,d=Cn([c],e,l,u).reverse(),p=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=Oe(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:ke.id,params:r}),t.push({id:P.id,params:i}),t.push({id:z.id,params:a}),m.push(...n),p.unshift(...t)});let h=s.onCommandExecute({id:Gi,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;Wi(c,a,o,g);let n=s.afterCommandExecute({id:Gi,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,...p,...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,...m,...h.redos,...n.redos]}),!0}return!1}},qi={type:t.CommandType.COMMAND,id:Gi,handler:async(e,n)=>{var r;let i=e.get(U),a=e.get(k),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||(s=(r=i.getCurrentLastSelection())==null?void 0:r.range),!s)return!1;let c=f(e.get(t.IUniverInstanceService));if(!c)return!1;let{worksheet:l,subUnitId:u,unitId:d}=c;return s={...s,startColumn:0,endColumn:Math.max(l.getMaxColumns()-1,0)},await a.beforeCommandExecute({id:qi.id,params:{range:s}})?o.syncExecuteCommand(Ki.id,{range:s,unitId:d,subUnitId:u}):!1}},Ji=`sheet.command.remove-col`,Yi={type:t.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,n)=>{var r;if(!n)return!1;let i=f(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=e.get(k),{range:c,unitId:l,subUnitId:u}=n,d={unitId:l,subUnitId:u,range:c},p=Ae(e,d),m={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(0,o.getRowCount()-1,c.startColumn,c.endColumn).getMatrix()},h=s.onCommandExecute({id:Ji,params:{range:c}}),g=e.get(t.ICommandService);if((0,t.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:F.id,params:d},...h.redos],g).result){var _,v;Wi(c,a,o,g);let n=s.afterCommandExecute({id:Ji,params:{range:c}});return(0,t.sequenceExecute)(n.redos,g),e.get(t.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:Se.id,params:p},{id:z.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:F.id,params:d},...h.redos,...n.redos]}),!0}return!1}},Xi={type:t.CommandType.COMMAND,id:Ji,handler:async(e,n)=>{var r;let i=e.get(U),a=e.get(k),o=e.get(t.ICommandService),s=n==null?void 0:n.range;if(s||(s=(r=i.getCurrentLastSelection())==null?void 0:r.range),!s)return!1;let c=f(e.get(t.IUniverInstanceService));if(!c)return!1;let{worksheet:l,subUnitId:u,unitId:d}=c;return s={...s,startRow:0,endRow:Math.max(l.getMaxRows()-1,0)},await a.beforeCommandExecute({id:Xi.id,params:{range:s}})?o.syncExecuteCommand(Yi.id,{range:s,unitId:d,subUnitId:u}):!1}},Zi=(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=p(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}},Qi={id:`sheet.mutation.remove-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=r.getUniverSheetInstance(a);return o?o.removeSheet(i):!1}};function $i(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function ea(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}let ta=`sheet.command.move-rows`,na={id:ta,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[aa(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW&&e.range.startRow<=o&&o<=e.range.endRow);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(k),p=f(e.get(t.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Fn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if($i(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startRow:s,endRow:s+b.endRow-b.startRow},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=we(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:na.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:Te.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:Te.id,params:T}];if(x){let e=s-o<0,t=b.endRow-b.startRow+1,n=e?C:{...C,startRow:C.startRow-t,endRow:C.endRow-t},r={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:n,primary:W(n,h),style:null}]},i={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:r}),A.push({id:G.id,params:i})}if(O.push(...D.redos),A.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:na.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}},ra=`sheet.command.move-cols`,ia={id:ra,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(U),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[aa(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN&&e.range.startColumn<=o&&o<=e.range.endColumn);if((u==null?void 0:u.length)!==1)return!1;let d=e.get(k),p=f(e.get(t.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=e.get(t.ErrorService),y=e.get(t.LocaleService),b=u[0].range,x=u[0].primary,S=Fn(b,h,!1);if(!t.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(ea(s,h))return v.emit(y.t(`sheets.info.acrossMergedCell`)),!1;let C={...b,startColumn:s,endColumn:s+b.endColumn-b.startColumn},w={unitId:g,subUnitId:_,sourceRange:b,targetRange:C},T=Ee(e,w),E=e.get(t.ICommandService),D=d.onCommandExecute({id:ia.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:De.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:De.id,params:T}];if(x){let e=b.endColumn-b.startColumn+1,t=s-o<0?C:{...C,startColumn:C.startColumn-e,endColumn:C.endColumn-e},n={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:t,primary:W(t,h),style:null}]},r={unitId:g,subUnitId:_,type:H.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:G.id,params:n}),A.push({id:G.id,params:r})}if(O.push(...D.redos),A.push(...D.undos),(0,t.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:ia.id,params:n});return(0,t.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),e.get(t.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}};function aa(e){return{range:e,primary:null,style:null}}let oa=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._univerInstanceService=t,C(this,`_sceneMap`,new Map),C(this,`_sheetSkeletonParamStore`,new Map),this._init()}dispose(){super.dispose(),this._sheetSkeletonParamStore.forEach(e=>e.forEach(e=>e.skeleton.dispose())),this._sheetSkeletonParamStore.clear()}_disposeByUnitId(e){let t=this._sheetSkeletonParamStore.get(e);t&&(t.forEach(e=>e.skeleton.dispose()),this._sheetSkeletonParamStore.delete(e))}_init(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._initWorkbookSkeleton(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeByUnitId(e.getUnitId())))}_initWorkbookSkeleton(e){let t=e.getUnitId();this._initSheetsSkeleton(e),this.disposeWithMe(e.sheetCreated$.subscribe(n=>{let r=this._sheetSkeletonParamStore.get(t);if(!r)return;let i=n.getSheetId(),a=this._buildSkeleton(n,e.getStyles());r.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})})),this.disposeWithMe(e.sheetDisposed$.subscribe(e=>{let n=this._sheetSkeletonParamStore.get(t);if(!n)return;let r=e.getSheetId(),i=n.get(r);i&&i.skeleton.dispose(),n.delete(r)}))}_initSheetsSkeleton(e){let t=e.getUnitId(),n=new Map;e.getWorksheets().forEach(r=>{let i=r.getSheetId(),a=this._buildSkeleton(r,e.getStyles());n.set(i,{unitId:t,sheetId:i,skeleton:a,dirty:!1})}),this._sheetSkeletonParamStore.set(t,n)}_buildSkeleton(e,t){let n=this._injector.createInstance(r.SpreadsheetSkeleton,e,t),i=e.getUnitId(),a=this._sceneMap.get(i);return a&&n.setScene(a),n}setScene(e,t){this._sceneMap.set(e,t);let n=this._sheetSkeletonParamStore.get(e);n&&n.forEach(e=>e.skeleton.setScene(t))}getSkeleton(e,t){var n;return(n=this.getSkeletonParam(e,t))==null?void 0:n.skeleton}getSkeletonParam(e,t){let n=this._sheetSkeletonParamStore.get(e);if(n)return n.get(t)}newSkeleton(e,t,n,r){return this.newSkeletonParam(e,t,n,r).skeleton}newSkeletonParam(e,t,n,r){let i=this._buildSkeleton(n,r),a=this._sheetSkeletonParamStore.get(e);a||(a=new Map,this._sheetSkeletonParamStore.set(e,a));let o={unitId:e,sheetId:t,skeleton:i,dirty:!1};return a.set(t,o),o}ensureSkeleton(e,t){let n=this.getSkeleton(e,t);if(n)return n;let r=this._univerInstanceService.getUnit(e);if(!r)return;let i=r.getSheetBySheetId(t);if(i)return this.newSkeleton(e,t,i,r.getStyles())}};oa=T([w(0,(0,t.Inject)(t.Injector)),w(1,(0,t.Inject)(t.IUniverInstanceService))],oa);function sa(e,n){let r=new t.ObjectMatrix;return e.map(e=>t.Range.transformRange(e,n)).forEach(e=>{t.Range.foreach(e,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}),r}function ca(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 la(e){let t=0;return e.forEach(()=>{t++}),t}let ua=`sheet.command.reorder-range`,da={id:ua,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let{subUnitId:a,unitId:o,range:s,order:c}=n,l=e.get(t.ICommandService),u={id:Me.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:Me.id,params:je(u.params)},f=e.get(k),p=f.onCommandExecute({id:da.id,params:n}),m=[...(r=p.preRedos)==null?[]:r,u,...p.redos],h=[...(i=p.preUndos)==null?[]:i,d,...p.undos],g=(0,t.sequenceExecute)(m,l),{suitableRanges:_,remainingRanges:v}=ca([s],e.get(oa).getSkeleton(o,a)),{undos:y,redos:b}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:a,ranges:[s],autoHeightRanges:_,lazyAutoHeightRanges:v}),x=f.afterCommandExecute({id:da.id,params:n});return g.result?((0,t.sequenceExecute)([...x.redos,...b],l),e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[...h,...x.undos,...y],redoMutations:[...m,...x.redos,...b]}),!0):!1}},J={MoveRangeCommandId:qn,InsertRowCommandId:Ai,InsertColCommandId:Li,RemoveColCommandId:Ji,RemoveRowCommandId:Gi,DeleteRangeMoveLeftCommandId:Si,DeleteRangeMoveUpCommandId:wi,InsertRangeMoveDownCommandId:Ei,InsertRangeMoveRightCommandId:Oi,MoveColsCommandId:ra,MoveRowsCommandId:ta,ReorderRangeCommandId:ua},Y=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}({}),fa=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},pa=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}},ma=(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)}},ha=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=fa(n),a=fa(r),o=fa(t),s=ma({start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow},{start:o.startRow,end:o.endRow});return s===null?[{type:Y.Delete}]:[{type:Y.VerticalMove,step:s.step||0,length:s.length||0}]},ga=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startRow,o=r.endRow-r.startRow+1,s=i.startRow,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveRows(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},_a=(e,n)=>{let{range:r,order:i}=e.params||{};if(!r||!i)return[n];let a=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{a.setValue(e,t,1)});let o=new t.ObjectMatrix;return t.Range.foreach(r,(e,t)=>{if(Object.prototype.hasOwnProperty.call(i,e)){var n;let r=i[e],s=(n=a.getValue(r,t))==null?0:n;o.setValue(e,t,s)}}),o.forValue((e,t,n)=>{a.setValue(e,t,n)}),(0,t.queryObjectMatrix)(a,e=>e===1)},va=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=fa(n),a=fa(r),o=fa(t),s=ma({start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn},{start:o.startColumn,end:o.endColumn});return s===null?[{type:Y.Delete}]:[{type:Y.HorizontalMove,step:s.step||0,length:s.length||0}]},ya=(e,n)=>{let{fromRange:r,toRange:i}=e.params||{};if(!r||!i)return[n];let a=r.startColumn,o=r.endColumn-r.startColumn+1,s=i.startColumn,c=new t.ObjectMatrix;return t.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveColumns(a,o,s),(0,t.queryObjectMatrix)(c,e=>e===1)},ba=(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:Y.Delete}),t.Rectangle.contains(o,n)){s.push({type:Y.Delete});let e=t.Rectangle.getRelativeRange(n,o),r=t.Rectangle.getPositionRange(e,a);return[{type:Y.Set,range:r}]}return s},xa=(e,n)=>{var r,i;let a=(r=e.params)==null?void 0:r.toRange,o=(i=e.params)==null?void 0:i.fromRange;if(!a||!o||!t.Rectangle.intersects(o,n)&&!t.Rectangle.intersects(a,n))return[n];if(t.Rectangle.contains(o,n)){let e=t.Rectangle.getRelativeRange(n,o);return[t.Rectangle.getPositionRange(e,a)]}let s=new t.ObjectMatrix;t.Range.foreach(n,(e,t)=>{s.setValue(e,t,1)});let c=new t.ObjectMatrix,l=t.Rectangle.getIntersects(o,n);l&&t.Range.foreach(l,(e,t)=>{s.getValue(e,t)&&(s.setValue(e,t,void 0),c.setValue(e,t,1))});let u=a.startColumn-o.startColumn,d=a.startRow-o.startRow,f={startColumn:a.startColumn-u,endColumn:a.endColumn-u,startRow:a.startRow-d,endRow:a.endRow-d};return f&&t.Range.foreach(f,(e,t)=>{var n;let r=e+d,i=t+u;s.setValue(r,i,(n=c.getValue(e,t))==null?0:n)}),(0,t.queryObjectMatrix)(s,e=>e===1)},Sa=(e,n)=>{let r=fa(e),i=fa(n),a=e=>e.endColumn-e.startColumn+1,o=e=>e.endRow-e.startRow+1;if(r.startRow<=i.startRow&&r.endRow>=i.endRow){if(i.startColumn<r.startColumn&&i.endColumn>=r.startColumn&&i.endColumn<=r.endColumn||i.startColumn<r.startColumn&&i.endColumn>=r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e)return{step:0,length:-a(e)}}if(i.startColumn>=r.startColumn&&i.endColumn<=r.endColumn&&o(r)>=o(i))return null;if(i.startColumn>=r.startColumn&&i.startColumn<=r.endColumn&&i.endColumn>r.endColumn){let e=t.Rectangle.getIntersects(i,r);if(e){let t=-a(e);return{step:-(a(r)-a(e)),length:t}}}if(i.startColumn>r.endColumn)return{step:-a(r),length:0}}return{step:0,length:0}},Ca=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Sa(r,t);if(!a)i.push({type:Y.Delete});else{let{step:e,length:t}=a;i.push({type:Y.HorizontalMove,step:e,length:t})}return i},wa=(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=Sa(pa(e),pa(t));if(!n)a.push({type:Y.Delete});else{let{step:e,length:t}=n;a.push({type:Y.VerticalMove,step:e,length:t})}}return a},Ta=(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:Y.VerticalMove,step:r-t,length:0}),e}return[]}return[]},Ea=(e,t)=>{let n=fa(e),r=fa(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 Da(e,n,r){let i=[];if(t.Rectangle.contains(n,r)&&i.push({type:Y.Delete}),t.Rectangle.contains(e,r)){i.push({type:Y.Delete});let a=t.Rectangle.getRelativeRange(r,e),o=t.Rectangle.getPositionRange(a,n);return[{type:Y.Set,range:o}]}return i}let Oa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Ea(pa(r),pa(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},ka=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Ea(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},Aa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Ea(pa(r),pa(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},ja=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endRow-i.startRow+1,o={...i,startRow:i.startRow,endRow:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e+a,t,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},Ma=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Ea(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},Na=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a=i.endColumn-i.startColumn+1,o={...i,startColumn:i.startColumn,endColumn:1/0},s=t.Rectangle.subtract(n,o),c=t.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new t.ObjectMatrix;return s.forEach(e=>{t.Range.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),c&&t.Range.foreach(c,(e,t)=>{l.setValue(e,t+a,1)}),(0,t.queryObjectMatrix)(l,e=>e===1)},Pa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Sa(r,t);if(!a)i.push({type:Y.Delete});else{let{step:e,length:t}=a;i.push({type:Y.HorizontalMove,step:e,length:t})}return i},Fa=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:1/0},o=i.endColumn-i.startColumn+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e,t-o,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e,t-o,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},Ia=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Sa(pa(r),pa(t));if(!a)i.push({type:Y.Delete});else{let{step:e,length:t}=a;i.push({type:Y.VerticalMove,step:e,length:t})}return i},La=(e,n)=>{var r;let i=(r=e.params)==null?void 0:r.range;if(!i)return[n];let a={...i,startRow:i.startRow,endRow:1/0},o=i.endRow-i.startRow+1,s=t.Rectangle.getIntersects(i,n),c=t.Rectangle.subtract(n,a),l=t.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new t.ObjectMatrix;return l&&t.Range.foreach(l,(e,t)=>{u.setValue(e-o,t,1)}),s&&t.Range.foreach(s,(e,t)=>{u.setValue(e-o,t,0)}),c.forEach(e=>{t.Range.foreach(e,(e,t)=>{u.setValue(e,t,1)})}),(0,t.queryObjectMatrix)(u,e=>e===1)},Ra=(e,n)=>{var r;let i=(0,t.mergeIntervals)(((r=e.ranges)==null?[e.range]:r).map(e=>[e.startRow,e.endRow])),a=n.startRow,o=n.endRow;for(let e=i.length-1;e>=0;e--){let[t,r]=i[e];if(t<=n.startRow&&r>=n.endRow)return[];if(r<a){let e=r-t+1;a-=e,o-=e}else if(!(t>o)){let e=Math.max(t,a),n=Math.min(r,o)-e+1;if(o-=n,t<=a){let t=e-a;a-=t}}}return[{...n,startRow:a,endRow:o}]},za=(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]},Ba=(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]},Va=(e,t)=>{let n={...t};return e.forEach(e=>{switch(e.type){case Y.Delete:n=null;break;case Y.HorizontalMove:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case Y.VerticalMove:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case Y.Set:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Ha=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:n=Pa(t,e);break;case J.DeleteRangeMoveUpCommandId:n=Ia(t,e);break;case J.InsertColCommandId:n=ka(t,e);break;case J.InsertRangeMoveDownCommandId:n=Aa(t,e);break;case J.InsertRangeMoveRightCommandId:n=Ma(t,e);break;case J.InsertRowCommandId:n=Oa(t,e);break;case J.MoveColsCommandId:n=va(t,e);break;case J.MoveRangeCommandId:n=ba(t,e);break;case J.MoveRowsCommandId:n=ha(t,e);break;case J.RemoveColCommandId:n=Ca(t,e);break;case J.RemoveRowCommandId:n=wa(t,e);break;case J.ReorderRangeCommandId:n=Ta(t,e);break}return Va(n,e)},Ua=(e,n,r)=>[Ci.id,Ti.id].includes(n.id)||qa(n,r).some(n=>t.Rectangle.intersects(n,e))?Ha(e,n):e,Wa=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:return Fa(t,e);case J.DeleteRangeMoveUpCommandId:return La(t,e);case J.InsertRangeMoveDownCommandId:return ja(t,e);case J.InsertRangeMoveRightCommandId:return Na(t,e);case J.InsertColCommandId:return Ba(t,e);case J.InsertRowCommandId:return za(t,e);case J.MoveColsCommandId:return ya(t,e);case J.MoveRangeCommandId:return xa(t,e);case J.MoveRowsCommandId:return ga(t,e);case J.ReorderRangeCommandId:return _a(t,e);case J.RemoveColCommandId:n=Ca(t,e);break;case J.RemoveRowCommandId:return Ra(t.params,e)}let r=Va(n,e);return r?[r]:[]},Ga=(e,n,r)=>[Ci.id,Ti.id,Di.id,`sheet.command.insert-range-move-right`].includes(n.id)||qa(n,r).some(n=>t.Rectangle.intersects(n,e))?Wa(e,n):e;function Ka(e,n){let{id:r,params:i}=n,a={length:0,step:0,type:Y.Unknown};switch(r){case Qi.id:a.type=Y.Delete;break;case Te.id:a=ma({start:i.sourceRange.startRow,end:i.sourceRange.endRow},{start:i.targetRange.startRow,end:i.targetRange.endRow},{start:e.startRow,end:e.endRow}),a.type=Y.VerticalMove;break;case De.id:a=ma({start:i.sourceRange.startColumn,end:i.sourceRange.endColumn},{start:i.targetRange.startColumn,end:i.targetRange.endColumn},{start:e.startColumn,end:e.endColumn}),a.type=Y.HorizontalMove;break;case F.id:a=Sa(i.range,e),a?a.type=Y.HorizontalMove:a={step:0,length:0,type:Y.Delete};break;case ke.id:a=Sa(pa(i.range),pa(e)),a?a.type=Y.VerticalMove:a={step:0,length:0,type:Y.Delete};break;case P.id:a=Ea(pa(i.range),pa(e)),a.type=Y.VerticalMove;break;case Se.id:a=Ea(i.range,e),a.type=Y.HorizontalMove;break;case Ce.id:a=Da(i.fromRange||new t.ObjectMatrix(i.from).getRange(),i.toRange||new t.ObjectMatrix(i.to).getRange(),e);break;default:break}return a?Va(Array.isArray(a)?a:[a],e):e}function qa(e,t){let{selectionManagerService:n}=t;switch(e.id){case J.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case J.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case J.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case J.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case J.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case J.RemoveRowCommandId:return[e.params.range];case J.RemoveColCommandId:return[e.params.range];case J.DeleteRangeMoveUpCommandId:case J.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 J.DeleteRangeMoveLeftCommandId:case J.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 J.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 Ja(e){switch(e.id){case De.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case Te.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Ce.id:{let n=e.params;return[new t.ObjectMatrix(n.from.value).getRange(),new t.ObjectMatrix(n.to.value).getRange()]}case Se.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case P.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case F.id:return[e.params.range];case ke.id:return[e.params.range];default:break}}function Ya(e,n){let r=e.get(t.IUniverInstanceService);switch(n.id){case J.MoveColsCommandId:{let e=n.params,t=f(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 J.MoveRowsCommandId:{let e=n.params,t=f(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 J.MoveRangeCommandId:{let e=n.params,t=f(r);if(!t)return;let{unitId:i,subUnitId:a}=t,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case J.InsertRowCommandId:{let e=n.params,t=f(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 J.InsertColCommandId:{let e=n.params,t=f(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 J.RemoveRowCommandId:{let e=n.params,t=f(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 J.RemoveColCommandId:{let e=n.params,t=f(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 J.DeleteRangeMoveUpCommandId:case J.InsertRangeMoveDownCommandId:{let e=n.params,t=f(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 J.DeleteRangeMoveLeftCommandId:case J.InsertRangeMoveRightCommandId:{let e=n.params,t=f(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 J.ReorderRangeCommandId:{let e=n.params,t=f(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 Xa=(0,t.createInterceptorKey)(`MERGE_REDO`),Za=(0,t.createInterceptorKey)(`MERGE_UNDO`);var Qa=class extends t.Disposable{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){var n,r;if(((n=e.params)==null?void 0:n.unitId)!==this._unitId)return;if(e.id===Ce.id){let t=e.params;if(t.from.subUnitId!==this._subUnitId||t.to.subUnitId!==this._subUnitId)return}else if(((r=e.params)==null?void 0:r.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(e.id===Qi.id)return;let n=Ja(e);if(n!=null&&n.some(e=>t.Rectangle.intersects(e,this._range)))return}let i=Ka(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 $a=class extends t.Disposable{constructor(e,n,r,i){super(),this._commandService=e,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,C(this,`interceptor`,new t.InterceptorManager({MERGE_REDO:Xa,MERGE_UNDO:Za})),C(this,`_watchRanges`,new Set),C(this,`_refRangeManagerMap`,new Map),C(this,`_serializer`,ro()),C(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let n=(()=>{switch(e.id){case J.MoveColsCommandId:{let t=e.params,n=f(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 J.MoveRowsCommandId:{let t=e.params,n=f(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 J.MoveRangeCommandId:{var n,r;let t=e.params,i=f(this._univerInstanceService,{unitId:t.fromUnitId,subUnitId:t.fromSubUnitId}),a=f(this._univerInstanceService,{unitId:(n=t.toUnitId)==null?t.fromUnitId:n,subUnitId:(r=t.toSubUnitId)==null?t.fromSubUnitId:r});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([t.fromRange,t.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([t.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([t.toRange],a.unitId,a.subUnitId)),o}case J.InsertRowCommandId:{let n=e.params,r=f(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 J.InsertColCommandId:{let n=e.params,r=f(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 J.RemoveRowCommandId:{let n=e.params,r=f(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:n.range.startRow,endRow:i.getRowCount()-1,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case J.RemoveColCommandId:{let n=e.params,r=f(this._univerInstanceService);if(!r)return[];let{worksheet:i,unitId:a,subUnitId:o}=r,s={startRow:0,endRow:i.getRowCount()-1,startColumn:n.range.startColumn,endColumn:i.getColumnCount()-1,rangeType:t.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case J.DeleteRangeMoveUpCommandId:case J.InsertRangeMoveDownCommandId:{let t=e.params,n=f(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 J.DeleteRangeMoveLeftCommandId:case J.InsertRangeMoveRightCommandId:{let t=e.params,n=f(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 J.ReorderRangeCommandId:{let t=e.params,n=f(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=t,s=[];for(let e=a.startRow;e<=a.endRow;e++)e in o&&s.push({startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn});return this._checkRange(s,r,i)}}})();if(!n||n.length===0)return{redos:[],undos:[],preRedos:[],preUndos:[]};let r=n.reduce((t,n)=>{let r=n(e);return t.push(r),t},[]).reduce((e,t)=>{var n,r;return e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...(n=t.preRedos)==null?[]:n),e.preUndos.push(...(r=t.preUndos)==null?[]:r),e},{redos:[],undos:[],preUndos:[],preRedos:[]}),i=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.preRedos,null)||[],a=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(r.redos,null)||[],o=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.preUndos,null)||[];return{redos:a,undos:this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(r.undos,null)||[],preRedos:i,preUndos:o}}})}),C(this,`_checkRange`,(e,n,r)=>{let i=no(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[]}),C(this,`registerRefRange`,(e,n,r,i)=>{let a=r||eo(this._univerInstanceService),o=i||to(this._univerInstanceService);if(!a||!o)return(0,t.toDisposable)(()=>{});let s=no(a,o),c=this._serializer.serialize(e),l=this._refRangeManagerMap.get(s);l||(l=new Map,this._refRangeManagerMap.set(s,l));let u=l.get(c);return u?u.add(n):l.set(c,new Set([n])),(0,t.toDisposable)(()=>{let e=l.get(c);e&&(e.delete(n),e.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(s)))})}),this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:e=>e}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:e=>e})}watchRange(e,n,r,i,a){let o;this._watchRanges.size===0&&(o=this._commandService.onCommandExecuted(e=>{if(e.type!==t.CommandType.MUTATION)return!1;for(let t of this._watchRanges)t.onMutation(e)}));let s=new Qa(e,n,r,i,a);this._watchRanges.add(s);let c=(0,t.toDisposable)(()=>{this._watchRanges.delete(s),this._watchRanges.size===0&&(o==null||o.dispose(),o=null)}),l=this.disposeWithMe(c);return(0,t.toDisposable)(()=>{l.dispose(),c.dispose()})}};$a=T([w(0,t.ICommandService),w(1,(0,t.Inject)(k)),w(2,(0,t.Inject)(t.IUniverInstanceService)),w(3,(0,t.Inject)(U))],$a);function eo(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function to(e){var n;return(n=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function no(e,t){return`${e}_${t}`}function ro(){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 io=[Se.id,P.id,F.id,ke.id],ao=[Te.id,De.id];function oo(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 so=(0,t.createInterceptorKey)(`mergeCellPermissionCheck`),co=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,C(this,`disposableCollection`,new t.DisposableCollection),C(this,`interceptor`,new t.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:so})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case Nn.id:case Pn.id:{var r;let n=e._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=n.getUnitId(),a=n==null?void 0:n.getActiveSheet();if(!a)return{redos:[],undos:[]};let o=a.getSheetId(),s=a.getConfig().mergeData,c=(r=e._selectionManagerService.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(c&&c.length>0&&c.some(e=>s.some(n=>t.Rectangle.intersects(n,e)))){let t={unitId:i,subUnitId:o,ranges:c},n=I(e._injector,t);return{redos:[{id:L.id,params:t}],undos:[{id:h.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=f(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:h.id,params:{unitId:e,subUnitId:n,ranges:l}}),{undos:a,redos:i}):o}})}refRangeHandle(e,t,n){switch(e.id){case J.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case J.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case ji.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case Ri.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Xi.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case qi.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case Jn.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case ki.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case Di.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case Ti.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case Ci.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getUniverSheetInstance(e);if(!n)return;let r=n==null?void 0:n.getSheetBySheetId(t);if(!r)return;this.disposableCollection.dispose();let i=r.getMergeData(),a=n=>this.refRangeHandle(n,e,t);i.forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,a,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===It.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===h.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=lo(this._univerInstanceService,t);if(!r)return this._handleNull();let i=uo(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=Va(ha({id:J.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=lo(this._univerInstanceService,t);if(!r)return this._handleNull();let i=uo(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=Va(va({id:J.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=I(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:L.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:L.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveRangeCommand(e,n,r){var i,a;let o=lo(this._univerInstanceService,n);if(!o)return this._handleNull();let s=(i=e.fromSubUnitId)==null?r:i,c=(a=e.toSubUnitId)==null?s:a,l=uo(o,s),u=uo(o,c);if(!l||!u)return this._handleNull();let d=l.getMergeData().filter(n=>t.Rectangle.intersects(n,e.fromRange)),f=u.getMergeData().filter(n=>t.Rectangle.intersects(n,e.toRange)),p=oo(d.map(n=>t.Rectangle.getRelativeRange(n,e.fromRange)).map(n=>t.Rectangle.getPositionRange(n,e.toRange))).filter(e=>!u.getMergeData().some(n=>t.Rectangle.equals(e,n))),m=[],g=[];return r===s&&d.length>0&&(m.push({id:L.id,params:{unitId:n,subUnitId:s,ranges:d}}),g.push({id:h.id,params:{unitId:n,subUnitId:s,ranges:d}})),r===c&&f.length>0&&(m.push({id:L.id,params:{unitId:n,subUnitId:c,ranges:f}}),g.push({id:h.id,params:{unitId:n,subUnitId:c,ranges:f}})),r===c&&p.length>0&&(m.push({id:h.id,params:{unitId:n,subUnitId:c,ranges:p}}),g.unshift({id:L.id,params:{unitId:n,subUnitId:c,ranges:p}})),m.length===0?this._handleNull():{redos:m,undos:g}}_handleInsertRowCommand(e,n,r){let i=lo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=uo(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},g=m(this._injector,p);return{redos:[{id:L.id,params:d},{id:h.id,params:p}],undos:[{id:L.id,params:g},{id:h.id,params:f}]}}_handleInsertColCommand(e,n,r){let{range:i}=e,a=lo(this._univerInstanceService,n);if(!a)return this._handleNull();let o=uo(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},g=m(this._injector,p);return{redos:[{id:L.id,params:d},{id:h.id,params:p}],undos:[{id:L.id,params:g},{id:h.id,params:f}]}}_handleRemoveColCommand(e,n,r){let i=lo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=uo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:L.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleRemoveRowCommand(e,n,r){let{range:i}=e,a=lo(this._univerInstanceService,n);if(!a)return this._handleNull();let o=uo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:L.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleInsertRangeMoveRightCommand(e,n,r){let i=lo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=uo(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},g=m(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:h.id,params:p}],preUndos:[{id:L.id,params:g}],undos:[{id:h.id,params:f}]}}_handleInsertRangeMoveDownCommand(e,n,r){let i=lo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=uo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}],y=[{id:L.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveUpCommand(e,n,r){let i=lo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=uo(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},g=m(this._injector,p),_=[{id:L.id,params:d}],v=[{id:h.id,params:p}],y=[{id:L.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveLeftCommand(e,n,r){let i=lo(this._univerInstanceService,n);if(!i)return this._handleNull();let a=uo(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},g=m(this._injector,p);return{preRedos:[{id:L.id,params:d}],redos:[{id:h.id,params:p}],undos:[{id:h.id,params:f}],preUndos:[{id:L.id,params:g}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(ao.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn,u=r.getConfig().mergeData,d=[];u.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f})}),r.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}if(io.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=e.params;if(!i)return;let{range:a}=i,o=e.id.includes(`row`),s=e.id.includes(`insert`),c=o?a.startRow:a.startColumn,l=o?a.endRow:a.endColumn,u=l-c+1,d=[];r.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;s?o?c<=t&&(t+=u,n+=u):c<=r&&(r+=u,i+=u):o?l<t&&(t-=u,n-=u):l<r&&(r-=u,i-=u),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),n.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};co=T([w(0,(0,t.Inject)(t.ICommandService)),w(1,(0,t.Inject)($a)),w(2,(0,t.Inject)(t.IUniverInstanceService)),w(3,(0,t.Inject)(t.Injector)),w(4,(0,t.Inject)(k)),w(5,(0,t.Inject)(U))],co);function lo(e,n){return n?e.getUniverSheetInstance(n):e.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET)}function uo(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}let fo=(e,n,r)=>{let i=e.get(U).getCurrentSelections(),{value:a,selections:o,unitId:s,subUnitId:c}=n;if(i&&i.length>0){let e=i[(i==null?void 0:i.length)-1].primary;if(e){let{actualColumn:n,actualRow:l}=e,{startRow:u,startColumn:d,endRow:f,endColumn:p}=o[o.length-1];if(a===t.Dimension.COLUMNS){let e=r.find(e=>e.startColumn===n&&e.endColumn===n&&l===e.startRow);e&&(p=e.endColumn,u=e.startRow,f=e.endRow)}else if(a===t.Dimension.ROWS){let e=r.find(e=>e.startRow===l&&e.endRow===l&&n===e.startColumn);e&&(f=e.endRow,d=e.startColumn,p=e.endColumn)}let m={startRow:u,startColumn:d,endRow:f,endColumn:p,actualRow:l,actualColumn:n,isMerged:!0,isMergedMainCell:u===l&&d===n},h=i.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null})),g={unitId:s,subUnitId:c,type:H.ONLY_SET,selections:h};return{id:G.id,params:g}}return null}return null},po=(e,t)=>{let n=e.get(U).getCurrentSelections(),{unitId:r,subUnitId:i}=t;if(n&&n.length>0&&n[(n==null?void 0:n.length)-1].primary){let e={unitId:r,subUnitId:i,type:H.ONLY_SET,selections:[...n]};return{id:G.id,params:e}}return null},mo={type:t.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,n)=>{var r;let i=e.get(U),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=(n==null?void 0:n.ranges)||((r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(s!=null&&s.length))return!1;let c=f(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{subUnitId:l,unitId:u,worksheet:d}=c,p={unitId:u,subUnitId:l,ranges:s},m=d.getConfig().mergeData.filter(e=>s.some(n=>t.Rectangle.intersects(n,e)));if(!m.length)return!1;let g=I(e,p),_=i.getCurrentSelections(),v=t.Tools.deepClone(_),y=t.Tools.deepClone(_);if(_.length){let e=y[y.length-1],{startRow:t,startColumn:n}=e.range;e.primary={startRow:t,startColumn:n,endRow:t,endColumn:n,actualRow:t,actualColumn:n,isMerged:!1,isMergedMainCell:!1}}let b={unitId:u,subUnitId:l,cellValue:ho(d,m).getMatrix()},x=R(e,b),S=[{id:L.id,params:g},{id:z.id,params:b},{id:G.id,params:{unitId:u,subUnitId:l,selections:y,type:H.ONLY_SET}}],C=[{id:h.id,params:g},{id:z.id,params:x},{id:G.id,params:{unitId:u,subUnitId:l,selections:v,type:H.ONLY_SET}}];return(0,t.sequenceExecute)(S,a)?(o.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function ho(e,n){let r=new t.ObjectMatrix;return n.forEach(t=>{let{startRow:n,startColumn:i,endColumn:a,endRow:o}=t,s=e.getCellMatrix().getValue(n,i);if(s!=null&&s.s)for(let e=n;e<=o;e++)for(let t=i;t<=a;t++)(e!==n||t!==i)&&r.setValue(e,t,{s:s.s})}),r}let go=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function _o(e,t){return t.some(t=>vo(e,t))}function vo(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 yo(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:bo(n,r).getData()},c=R(e,s);i.push({id:z.id,params:c}),a.push({id:z.id,params:s})}),{undos:i,redos:a}}function bo(e,n){let{startRow:r,startColumn:i,endColumn:a,endRow:o}=n,s=e.getMatrixWithMergedCells(r,i,o,a,t.CellModeEnum.Raw),c=new t.ObjectMatrix,l=null;return s.forValue((t,n,a)=>{if(a&&t>=r&&n>=i){var o,s;!l&&e.cellHasValue(a)&&(a.v!==``||((o=(s=a.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.length)==null?0:o)>2)&&(l=a),c.setValue(t,n,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),c.setValue(r,i,l),c}let xo={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,n)=>{let r=f(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=oo(s,n.value),d=_o(i,u);if(d&&!n.defaultMerge){let n=e.get(t.IConfirmService),r=e.get(t.LocaleService);if(!await n.confirm({id:`merge.confirm.add-worksheet-merge`,title:{title:`merge.confirm.warning`},children:{title:`merge.confirm.title`},cancelText:r.t(`merge.confirm.cancel`),confirmText:r.t(`merge.confirm.confirm`)}))return!1}let p=[],g=[],_={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:t.Tools.deepClone(u)},y=I(e,_),b=m(e,v);if(y.ranges.length>0&&p.push({id:L.id,params:y}),p.push({id:h.id,params:v}),g.push({id:L.id,params:b}),y.ranges.length>0&&g.push({id:h.id,params:y}),d){let t=yo(e,a,i,u);p.unshift(...t.redos),g.push(...t.undos)}let x=fo(e,n,u);x&&p.push(x);let S=po(e,n);S&&g.push(S);let C=e.get(k).onCommandExecute({id:xo.id,params:{unitId:a,subUnitId:o,ranges:u}});return p.push(...C.redos),g.push(...C.undos),(0,t.sequenceExecute)(p,c).result?(l.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:p}),!0):!1}},So={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Eo(go.MergeAll,r);if(!(i!=null&&i.length))return!1;let a=f(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(xo.id,{selections:i,unitId:s,subUnitId:c})}},Co={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Eo(go.MergeVertical,r);if(!(i!=null&&i.length))return!1;let a=f(e.get(t.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return e.get(t.ICommandService).executeCommand(xo.id,{value:t.Dimension.COLUMNS,selections:i,unitId:s,subUnitId:c})}},wo={type:t.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var n;let r=(n=e.get(U).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Eo(go.MergeHorizontal,r);if(!(i!=null&&i.length))return!1;let a=f(e.get(t.IUniverInstanceService));if(!a)return!1;let{workbook:o,worksheet:s}=a,c=o.getUnitId(),l=s.getSheetId();return e.get(t.ICommandService).executeCommand(xo.id,{value:t.Dimension.ROWS,selections:i,unitId:c,subUnitId:l})}};function To(e,n,r,i,a={}){let o=f(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(mo.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(xo.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function Eo(e,t){return t?e===go.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===go.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===go.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var Do=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange`,new n.Subject),C(this,`_ruleRefresh`,new n.Subject),C(this,`_resetOrder`,new n.Subject),C(this,`ruleChange$`,this._ruleChange.asObservable()),C(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),C(this,`resetOrder$`,this._resetOrder.asObservable()),C(this,`_worksheetRuleInitStateChange`,new n.BehaviorSubject(!1)),C(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 Oo={id:`sheet.mutation.add-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Do),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},ko={id:`sheet.mutation.delete-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Do),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},Ao={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(Oo.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:Oo.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:ko.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},jo={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=_e(e,n);return r.syncExecuteCommand(ge.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:o}],redoMutations:[{id:ge.id,params:n}]}),!0):!1}},Mo={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=be(e,t);m.unshift({id:P.id,params:t}),h.push({id:ke.id,params:n})}if(l){let t={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=xe(e,t);m.unshift({id:Se.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}},No=[`ff`,`fs`,`tr`,`tb`],X={type:t.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(e,n)=>{var r;let i=f(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),p=e.get(U),m=c?[c]:(r=p.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(m!=null&&m.length))return!1;let h=new t.ObjectMatrix,g=Bn(s);if(t.Tools.isArray(l.value))for(let e=0;e<m.length;e++)g.forOperableEach(m[e],(e,t,n)=>{h.setValue(e,t,{s:{[l.type]:l.value[e-n.startRow][t-n.startColumn]}})});else for(let e=0;e<m.length;e++){let t={s:{[l.type]:l.value}};g.forOperableEach(m[e],(e,n)=>h.setValue(e,n,t))}let _={subUnitId:o,unitId:a,cellValue:h.getMatrix()},v=e.get(oa).getSkeleton(a,o),y=R(e,_),b=null;if(No.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=ca(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:sa(e,s)}}let x=u.syncExecuteCommand(z.id,_),S=e.get(k),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:X.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}},Po={type:t.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,s)}},Fo={type:t.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},Io={type:t.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},Lo={type:t.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},Ro={type:t.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let n=e.get(U).getCurrentLastSelection();if(!n)return!1;let r=f(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(X.id,o)}},zo={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(X.id,i)}},Bo={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(X.id,i)}},Vo={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(X.id,i)}},Ho={type:t.CommandType.COMMAND,id:`sheet.command.reset-text-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(X.id,{style:{type:`cl`,value:{rgb:null}}})},Uo={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(X.id,i)}},Wo={type:t.CommandType.COMMAND,id:`sheet.command.reset-background-color`,handler:e=>e.get(t.ICommandService).syncExecuteCommand(X.id,{style:{type:`bg`,value:{rgb:null}}})},Go={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(X.id,i)}},Ko={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(X.id,i)}},qo={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(X.id,i)}},Jo={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(X.id,a)}},Yo={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Xo=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Zo=[``,`万`,`亿`,`万亿`,`亿亿`],Qo=[``,`十`,`百`,`千`],$o={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function es(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=Yo[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=$o[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 ts(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Xo[a]+n):(i=!1,t=Xo[a],t+=Qo[r],n=t+n),r++,e=Math.floor(e/10)}return n}function ns(e){let t=0,n=``,r=``,i=!1;if(e===0)return Xo[0];for(;e>0;){let a=e%1e4;i&&(r=Xo[0]+r),n=ts(a),n+=a===0?Zo[0]:Zo[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function rs(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Yo;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Yo||n[e]in $o)){t=!1;break}}return t}function is(e){if(!e)return{isExtendNumber:!1};let t=/0|([1-9]+[0-9]*)/g,n=t.test(e);if(n){let n=e.match(t);if(n&&n.length>0){let t=n[n.length-1],r=e.lastIndexOf(t),i=e.substr(0,r),a=e.substr(r+t.length);return{isExtendNumber:!0,matchTxt:Number(t),beforeTxt:i,afterTxt:a}}return{isExtendNumber:!1}}return{isExtendNumber:n}}function as(e){let t;return t=e.length===1?e===`日`||es(e)<7:!1,t}function os(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function ss(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function cs(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function ls(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 us(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 ds(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);Ds(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function fs(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 ps(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 ms(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function hs(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&&ps(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%e.length,a=t.Tools.deepClone(e[n]);Ds(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&&(Es(a)&&(a.v=o),i.push(a))}else{let o=ms(e.length);for(let s=1;s<=n;s++){let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);Ds(c);let l=r===t.Direction.DOWN||r===t.Direction.RIGHT,u=gs(e.length+s,a,o,l);c&&(Es(c)&&(c.v=u),i.push(c))}}return i}function gs(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 _s(e,n,r){let i=[],a=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=n;s++){var o;let n=(s-1)%e.length,c=t.Tools.deepClone(e[n]);Ds(c);let l=`${(o=e[e.length-1])==null?void 0:o.v}`;if(!l)continue;let u=l==null?void 0:l.match(a),d=u==null?void 0:u[u.length-1];if(!d)continue;let f=Math.abs(Number(d)+r*s),p=l.lastIndexOf(d),m=l.substr(0,p)+f.toString()+l.substr(p+d.length);c&&(c.v=m,i.push(c))}return i}function vs(e,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%e.length,a=t.Tools.deepClone(e[n]);Ds(a),a&&(delete a.v,r.push(a))}return r}function ys(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]);Ds(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=es(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 bs(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]);Ds(s);let c=es(`${(a=e[e.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:ns(c),s&&(s.v=l,i.push(s))}return i}let xs={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 Ss(e){let t=!1;return Object.keys(xs).forEach(n=>{xs[n].includes(e)&&(t=!0)}),t}function Cs(e){let t=``,n=[];return Object.keys(xs).forEach(r=>{xs[r].includes(e)&&(t=r,n.push(...xs[r]))}),{name:t,series:n}}function ws(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]);Ds(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 Ts(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 Es(e){return!((0,t.isFormulaString)(e.f)||(0,t.isFormulaId)(e.si)||e.t===t.CellValueType.BOOLEAN)}function Ds(e){e&&`custom`in e&&delete e.custom}function Os(e,t){return t?e.reverse():e}function ks(e){let n=new t.ObjectMatrix;return e.forEach(e=>{let{rows:t,cols:r}=e;t.forEach(e=>{r.forEach(t=>{n.setValue(e,t,{v:null,p:null,f:null,si:null,custom:null})})})}),n.clone()}let As={chnNumChar:Yo,chnNumChar2:Xo,chnUnitSection:Zo,chnUnitChar:Qo,chnNameValue:$o,chineseToNumber:es,sectionToChinese:ts,numberToChinese:ns,isChnNumber:rs,matchExtendNumber:is,isChnWeek1:as,isChnWeek2:os,isChnWeek3:ss,getLenS:cs,isEqualDiff:ls,getDataIndex:us,fillCopy:ds,fillCopyStyles:fs,isEqualRatio:ps,getXArr:ms,fillSeries:hs,forecast:gs,fillExtendNumber:_s,fillOnlyFormat:vs,fillChnWeek:ys,fillChnNumber:bs,isLoopSeries:Ss,getLoopSeriesInfo:Cs,fillLoopSeries:ws,getAutoFillRepeatRange:Ts,needsUpdateCellValue:Es,removeCellCustom:Ds,reverseIfNeed:Os,generateNullCellValueRowCol:ks},Z=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),Q=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}({}),js=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({}),{chineseToNumber:Ms,fillChnNumber:Ns,fillChnWeek:Ps,fillCopy:Fs,fillExtendNumber:Is,fillLoopSeries:Ls,fillSeries:Rs,getLoopSeriesInfo:zs,isChnNumber:Bs,isChnWeek2:Vs,isChnWeek3:Hs,isEqualDiff:Us,isLoopSeries:Ws,matchExtendNumber:Gs,reverseIfNeed:Ks}=As,qs={dateRule:{type:Q.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===Q.DATE,applyFunctions:{[Z.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),Rs(i,n,r).reverse()):Rs(i,n,r)}}},numberRule:{type:Q.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===Q.NUMBER,applyFunctions:{[Z.SERIES]:(e,n,r)=>{let{data:i}=e;return r===t.Direction.LEFT||r===t.Direction.UP?(i.reverse(),Rs(i,n,r).reverse()):Rs(i,n,r)}}},extendNumberRule:{type:Q.EXTEND_NUMBER,priority:900,match:e=>Gs(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===Q.EXTEND_NUMBER){var n;let{beforeTxt:r,afterTxt:i}=Gs(`${(n=e.cellData)==null?void 0:n.v}`||``),{beforeTxt:a,afterTxt:o}=Gs(`${t==null?void 0:t.v}`||``);if(r===a&&i===o)return!0}return!1},applyFunctions:{[Z.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,Ks(Is(i,n,o),a);let s=[];for(let e=0;e<i.length;e++){var c;let t=`${(c=i[e])==null?void 0:c.v}`;t&&s.push(Number(Gs(t).matchTxt))}return a&&(i.reverse(),s.reverse()),Us(s)?(o=s[1]-s[0],Ks(Is(i,n,o),a)):Fs(i,n)}}},chnNumberRule:{type:Q.CHN_NUMBER,priority:830,match:e=>!!Bs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_NUMBER,applyFunctions:{[Z.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===`日`||Ms(e)<7)?Ks(Ps(i,n,t),a):Ks(Ns(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&&Ms(t)>0&&Ms(t)<7?l.push(Ms(t)+u*7):l.push(Ms(t))}return a&&(i.reverse(),l.reverse()),Us(l)?s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0?Ks(Ps(i,n,l[1]-l[0]),a):Ks(Ns(i,n,l[1]-l[0]),a):Fs(i,n)}}},chnWeek2Rule:{type:Q.CHN_WEEK2,priority:820,match:e=>!!Vs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK2,applyFunctions:{[Z.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,Ks(Ps(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(Ms(n)+s*7)}return a&&(i.reverse(),o.reverse()),Us(o)?Ks(Ps(i,n,o[1]-o[0],1),a):Fs(i,n)}}},chnWeek3Rule:{type:Q.CHN_WEEK3,priority:810,match:e=>Hs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK3,applyFunctions:{[Z.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,Ks(Ps(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(Ms(n)+s*7)}}return a&&(i.reverse(),o.reverse()),Us(o)?Ks(Ps(i,n,o[1]-o[0],2),a):Fs(i,n)}}},loopSeriesRule:{type:Q.LOOP_SERIES,priority:800,match:e=>Ws(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===Q.LOOP_SERIES){var n;return zs(`${(n=e.cellData)==null?void 0:n.v}`||``).name===zs(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[Z.SERIES]:(e,n,r)=>{var i;let{data:a}=e,o=r===t.Direction.LEFT||r===t.Direction.UP,{series:s}=zs(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,Ks(Ls(a,n,e,s),o)}let c=[],l=0;for(let e=0;e<a.length;e++){var u;let t=`${(u=a[e])==null?void 0:u.v}`;t&&(t===s[0]?e===0?c.push(0):(l++,c.push(l*s.length)):c.push(s.indexOf(t)+l*7))}return o&&(a.reverse(),c.reverse()),Us(c)?Ks(Ls(a,n,c[1]-c[0],s),o):Fs(a,n)}}},otherRule:{type:Q.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===Q.OTHER}},{chnNumberRule:Js,chnWeek2Rule:Ys,chnWeek3Rule:Xs,dateRule:Zs,extendNumberRule:Qs,loopSeriesRule:$s,numberRule:ec,otherRule:tc}=qs,nc=class extends t.Disposable{constructor(e,r,i,a){super(),this._commandService=e,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,C(this,`_rules`,[]),C(this,`_hooks`,[]),C(this,`_applyType$`,new n.BehaviorSubject(Z.SERIES)),C(this,`_isFillingStyle`,!0),C(this,`_prevUndos`,[]),C(this,`_autoFillLocation$`,new n.BehaviorSubject(null)),C(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),C(this,`_showMenu$`,new n.BehaviorSubject(!1)),C(this,`showMenu$`,this._showMenu$.asObservable()),C(this,`_direction`,t.Direction.DOWN),C(this,`applyType$`,this._applyType$.asObservable()),C(this,`_menu$`,new n.BehaviorSubject([{label:`autoFill.copy`,value:Z.COPY,disable:!1},{label:`autoFill.series`,value:Z.SERIES,disable:!1},{label:`autoFill.formatOnly`,value:Z.ONLY_FORMAT,disable:!1},{label:`autoFill.noFormat`,value:Z.NO_FORMAT,disable:!1}])),C(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Zs,ec,Qs,Js,Ys,Xs,$s,tc].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(lc.id,{clearRange:{startRow:i.startRow,endRow:i.endRow,startColumn:i.endColumn+1,endColumn:r.endColumn},selectionRange:i});if(i.endRow<r.endRow&&i.endRow>r.startRow)return this._commandService.executeCommand(lc.id,{clearRange:{startRow:i.endRow+1,endRow:r.endRow,startColumn:i.startColumn,endColumn:i.endColumn},selectionRange:i});let s={startRow:i.startRow,endRow:i.endRow,startColumn:i.startColumn,endColumn:i.endColumn},c=null;if(i.startRow<r.startRow)c=t.Direction.UP,s.endRow=r.startRow-1;else if(i.endRow>r.endRow)c=t.Direction.DOWN,s.startRow=r.endRow+1;else if(i.startColumn<r.startColumn)c=t.Direction.LEFT,s.endColumn=r.startColumn-1;else if(i.endColumn>r.endColumn)c=t.Direction.RIGHT,s.startColumn=r.endColumn+1;else return!1;this.direction=c;let l=this._injector.invoke(e=>Sn(r,e)),u=this._injector.invoke(e=>Sn(s,e));if(!l||!u)return!1;this.autoFillLocation={source:l,target:u,unitId:e,subUnitId:n};let d=[];if(this.getActiveHooks().forEach(t=>{var r;let i=t==null||(r=t.onBeforeFillData)==null?void 0:r.call(t,{source:l,target:u,unitId:e,subUnitId:n},c);i&&d.unshift(i)}),this._initPrevUndo(),a)return this.fillData(a);for(let e=0;e<d.length;e++){let t=this.menu.find(t=>t.value===d[e]);if(t&&!t.disable)return this.fillData(d[e])}let f=(o=this.menu.find(e=>e.disable===!1))==null?void 0:o.value;return f?this.fillData(f):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=js.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===js.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===js.DEFAULT)),s=i.filter(e=>e.type===js.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(xn(o),xn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(G.id,{selections:[{primary:W({startRow:o.rows[0],endRow:o.rows[o.rows.length-1],startColumn:o.cols[0],endColumn:o.cols[o.cols.length-1]},d),range:{...p,rangeType:t.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e))||{};r&&h.push(...r),i&&g.push(...i)});let _=g.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:v,undos:y}=this._getAutoHeightUndoRedos(g,u,d);return g.push(...v),h.push(...y),_&&(this._prevUndos=h,this._undoRedoService.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:g})),m.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:o,target:s,unitId:c,subUnitId:l},f,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,n,r){if(this.applyType===Z.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&&No.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=jt(s,r),l={id:Pt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Pt.id,params:c}]}:{undos:[],redos:[]}}};nc=T([w(0,t.ICommandService),w(1,t.IUndoRedoService),w(2,(0,t.Inject)(t.IUniverInstanceService)),w(3,(0,t.Inject)(t.Injector))],nc);let rc=(0,t.createIdentifier)(`univer.auto-fill-service`),ic={type:t.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,n)=>{let r=f(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(rc).triggerAutoFill(i,a,o,s,c)}};function ac(e,n){let r=e.get(U).getCurrentLastSelection();if(!r)return null;let i=f(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:Z.COPY}:{sourceRange:{startRow:s,endRow:s,startColumn:l,endColumn:u},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:Z.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:Z.COPY}:{sourceRange:{startRow:s,endRow:c,startColumn:l,endColumn:l},targetRange:{startRow:s,endRow:c,startColumn:l,endColumn:u},unitId:a,subUnitId:o,applyType:Z.COPY}}async function oc(e,n){let r=ac(e,n);if(!r)return!1;let i=await e.get(t.ICommandService).executeCommand(ic.id,r);return i&&e.get(rc).setShowMenu(!1),i}let sc={type:t.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>oc(e,`down`)},cc={type:t.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>oc(e,`right`)},lc={id:`sheet.command.auto-clear-content`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=f(e.get(t.IUniverInstanceService));if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(k),s=e.get(U),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:p,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:yn([u])},g=R(e,h),_=[{id:z.id,params:h},{id:G.id,params:{selections:[{primary:{startColumn:p,startRow:m,endColumn:p,endRow:m,actualRow:m,actualColumn:p,isMerged:!1,isMergedMainCell:!1},range:{...d}}],unitId:c,subUnitId:l}}],v=[{id:z.id,params:g},{id:G.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,t.sequenceExecute)(_,i)){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}},uc={id:`sheet.command.clear-selection-content`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=e.get(U),s=e.get(t.IUndoRedoService),c=e.get(k),l=i.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;let u=(n==null?void 0:n.unitId)||l.getUnitId(),d=l.getActiveSheet();if(!d)return!1;let f=(n==null?void 0:n.subUnitId)||d.getSheetId(),p=(n==null?void 0:n.ranges)||((r=o.getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(p!=null&&p.length))return!1;let m={subUnitId:f,unitId:u,cellValue:yn(Cn(p,e,u,f))},h=R(e,m),g=c.onCommandExecute({id:uc.id}),_=[{id:z.id,params:m},...g.redos],v=[...g.undos,{id:z.id,params:h}];return(0,t.sequenceExecute)(_,a).result?(s.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:_}),!0):!1}},dc=`sheets.config`;Symbol(dc);let fc={largeSheetCellCountThreshold:6e3,batchSize:3e3},pc={},mc=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,C(this,`_tasks`,new Map),C(this,`_idleCallbackId`,null),C(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)}};mc=T([w(0,t.ICommandService),w(1,t.IUniverInstanceService)],mc);let hc={id:`sheet.mutation.copy-worksheet-end`,type:t.CommandType.MUTATION,handler:()=>!0},gc=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),_c={id:`sheet.mutation.insert-sheet`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService),{sheet:i,index:a,unitId:o,styles:s}=n,c=r.getUniverSheetInstance(o);return c?(s&&c.addStyles(s),c.addWorksheet(i.id,a,(0,t.cloneWorksheetData)(i))):!1}};function vc(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 yc(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 bc=`sheet.command.copy-sheet`;function xc(e,n,r,i,a,o,s){var c,l;let u=e.get(t.IConfigService).getConfig(dc),d={...fc,...u==null?void 0:u.largeSheetOperation},f=(0,t.cloneWorksheetData)(r.getConfig());f.name=Cc(n,o,f.name);let p=(0,t.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=vc(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=yc(i,p,h,d.batchSize),n={...f,cellData:e};_={index:m+1,sheet:n,unitId:i},v=t}else _={index:m+1,sheet:f,unitId:i};let y=gc(e,_),b=s.onCommandExecute({id:bc,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:_c.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:Qi.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}let Sc={type:t.CommandType.COMMAND,id:bc,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(t.IUniverInstanceService),o=e.get(k),s=e.get(t.LocaleService),c=e.get(mc),l=f(a,n);if(!l)return!1;let{workbook:u,worksheet:d,unitId:p,subUnitId:m}=l,{redos:h,undos:g,newSheetId:_,isSplit:v,scheduledMutations:y}=xc(e,u,d,p,m,s,o);if((0,t.sequenceExecute)(h,r).result){if(v){if(i.pushUndoRedo({unitID:p,undoMutations:g,redoMutations:[]}),y.length>0){for(let e of y)r.syncExecuteCommand(e.id,e.params,{syncOnly:!0});r.syncExecuteCommand(hc.id,{unitId:p,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(p,_,y)}}else i.pushUndoRedo({unitID:p,undoMutations:g,redoMutations:h});return!0}return!1}};function Cc(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 wc={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(Dn.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:Dn.id,params:c}],undoMutations:[{id:kn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},Tc={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(ko.id,{unitId:o,subUnitId:s});let c=[{id:ko.id,params:{unitId:o,subUnitId:s}}],l=[{id:Oo.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},Ec={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=ye(e,n);return r.syncExecuteCommand(ve.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:ge.id,params:o}],redoMutations:[{id:ve.id,params:n}]}),!0):!1}},Dc={id:`sheet.command.insert-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService),a=e.get(t.IUndoRedoService);if(!n)return!1;let o={...n};return r.syncExecuteCommand(i.SetDefinedNameMutation.id,o)?(a.pushUndoRedo({unitID:n.unitId,undoMutations:[{id:i.RemoveDefinedNameMutation.id,params:o}],redoMutations:[{id:i.SetDefinedNameMutation.id,params:o}]}),!0):!1}},Oc={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=d(a,{unitId:n==null?void 0:n.unitId});if(!s)return!1;let{unitId:c,workbook:l}=s,u=l.getSheets().length,f=n==null?void 0:n.sheet,p=f==null?void 0:f.id,m=(0,t.mergeWorksheetSnapshotWithDefault)(f||{});if(n){var h;u=(h=n.index)==null?u:h,m.id=p||(0,t.generateRandomId)(),m.name=(f==null?void 0:f.name)||l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else m.id=(0,t.generateRandomId)(),m.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let g={index:u,sheet:m,unitId:c},_=gc(e,g);return r.syncExecuteCommand(_c.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Qi.id,params:_}],redoMutations:[{id:_c.id,params:g}]}),!0):!1}},kc={id:`sheet.command.refill`,type:t.CommandType.COMMAND,handler:async(e,t)=>e.get(rc).fillData(t.type)},Ac={id:`sheet.mutation.register-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!f(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new te(o,a);return r.registerRangeThemeStyle(i,s),!0}},jc={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!f(e.get(t.IUniverInstanceService),n))return!1;let r=e.get(N),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},Mc={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(!f(a,n))return!1;let c={unitId:r,themeName:i.getName(),rangeThemeStyleJson:i.toJson()},l={unitId:r,themeName:i.getName()};return o.syncExecuteCommand(Ac.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:jc.id,params:l}],redoMutations:[{id:Ac.id,params:c}]}),!0}},Nc={id:`sheet.command.remove-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(k);if(!n)return!1;let l={...n},u=c.onCommandExecute({id:Nc.id,params:n}),d=[...(r=u.preRedos)==null?[]:r,{id:i.RemoveDefinedNameMutation.id,params:l},...u.redos],f=[...(a=u.preUndos)==null?[]:a,{id:i.SetDefinedNameMutation.id,params:l},...u.undos];return(0,t.sequenceExecute)(d,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},Pc={id:`sheet.command.remove-sheet`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),c=e.get(k),l=e.get(t.IConfigService),u=f(s,n);if(!u)return!1;let{unitId:d,subUnitId:p,workbook:m,worksheet:h}=u;if(m.getSheets().length<=1)return!1;let g=l.getConfig(dc),_={...fc,...g==null?void 0:g.largeSheetOperation},v=la(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:p,unitId:d,subUnitName:h.getName()},b=v?null:Zi(e,y),x=c.onCommandExecute({id:Pc.id,params:{unitId:d,subUnitId:p}}),S=[...(r=x.preRedos)==null?[]:r,{id:Qi.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:_c.id,params:b},...x.undos];return(0,t.sequenceExecute)(S,a).result?(v?o.clearUndoRedo(d):o.pushUndoRedo({unitID:d,undoMutations:C,redoMutations:S}),!0):!1}};var Fc=class{constructor(){C(this,`_borderInfo`,{type:t.BorderType.ALL,color:`#000000`,style:t.BorderStyleTypes.THIN,activeBorderType:!1}),C(this,`_borderInfo$`,new n.BehaviorSubject(this._borderInfo)),C(this,`borderInfo$`,this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this._refresh()}setColor(e){this._borderInfo.color=e,this._refresh()}setStyle(e){this._borderInfo.style=e,this._refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}_refresh(){this._borderInfo$.next(this._borderInfo)}};function Ic(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 Lc=(e,n,r,i)=>{let{mr:a,worksheet:o}=e;n.startRow<0||n.startColumn<0||Ic(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}})}})},Rc=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 zc(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}=Rc(y),O=new t.ObjectMatrix,{worksheet:k,unitId:A,subUnitId:j}=n;return{worksheet:k,unitId:A,subUnitId:j,style:i,color:a,type:o,top:s,left:c,right:u,bottom:l,vertical:d,horizontal:f,tl_br:p,tl_bc:m,tl_mr:h,bl_tr:g,ml_tr:_,bc_tr:v,topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:D,range:y,mr:O,borderStyle:{s:i,cl:{rgb:a}}}}let Bc=e=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=e;a&&Ic(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&&Ic(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 Vc(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)=>{Lc(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 Hc=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)=>{Lc(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))},Uc=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)=>{Lc(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(Ic(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))},Wc={id:`sheet.command.set-border`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(t.IUniverInstanceService),s=e.get(U),c=e.get(Fc),l=f(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 p=zc(c,l,u);Bc(p),Hc(p),Vc(p),Uc(p);let{unitId:m,subUnitId:h,mr:g}=p,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=R(e,_);return i.syncExecuteCommand(z.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:z.id,params:v}],redoMutations:[{id:z.id,params:_}]}),!0):!1}},Gc={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(Fc).setType(n.value),r.syncExecuteCommand(Wc.id)}},Kc={id:`sheet.command.set-border-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(Fc).setStyle(n.value),r.syncExecuteCommand(Wc.id)}},qc={id:`sheet.command.set-border-color`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=e.get(t.ICommandService);return e.get(Fc).setColor(n.value),r.syncExecuteCommand(Wc.id)}},Jc={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(Fc);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(Wc.id,{unitId:r,subUnitId:i,ranges:o})}},Yc={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=f(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=Fe(u,l);return r.syncExecuteCommand(Ie.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Ie.id,params:d}],redoMutations:[{id:Ie.id,params:u}]}),!0):!1}},Xc={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(k),s=e.get(t.ICommandService),c=f(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!c)return!1;let{worksheet:l}=c,u={unitId:r,subUnitId:i,ranges:a},d={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:W(e,l),style:null}))},p=ze(e,u),m={unitId:r,subUnitId:i,selections:el(a).map(e=>({range:e,primary:W(e,l),style:null}))},h=(0,t.sequenceExecute)([{id:Be.id,params:u},{id:G.id,params:d}],s),g=o.onCommandExecute({id:Xc.id,params:n}),_=(0,t.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:Xc.id,params:n});return(0,t.sequenceExecute)(i.redos,s),e.get(t.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Re.id,params:p},{id:G.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:Be.id,params:u},{id:G.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Zc={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var n;let r=e.get(U),i=e.get(t.ICommandService),a=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(a!=null&&a.length))return!1;let o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=a.map(e=>s.getHiddenCols(e.startColumn,e.endColumn)).flat();return i.executeCommand(Xc.id,{unitId:c,subUnitId:l,ranges:u})}},Qc={type:t.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,n)=>{var r,i;let a=e.get(U),o=e.get(k),s=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN);if(!(l!=null&&l.length))return!1;let u=f(s,n);if(!u)return!1;let{worksheet:d,unitId:p,subUnitId:m}=u;l=$c(u.worksheet,l);let h={unitId:p,subUnitId:m,ranges:l},g={unitId:p,subUnitId:m,selections:el(l).map(e=>({range:e,primary:W(e,d),style:null}))},_=Le(e,h),v={unitId:p,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:W(e,d),style:null}))},y=(0,t.sequenceExecute)([{id:Re.id,params:h},{id:G.id,params:g}],c),b=o.onCommandExecute({id:Qc.id,params:h}),x=(0,t.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:Qc.id,params:h});return(0,t.sequenceExecute)(n.redos,c),e.get(t.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:[{id:Be.id,params:_},{id:G.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Re.id,params:h},{id:G.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function $c(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 el(e){return tl(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function tl(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 nl={id:`sheet.command.set-defined-name`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,a;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(k);if(!n)return!1;let l={...n},u=(0,i.SetDefinedNameMutationFactory)(e,n),d=c.onCommandExecute({id:nl.id,params:n}),f=[...(r=d.preRedos)==null?[]:r,{id:i.RemoveDefinedNameMutation.id,params:u},{id:i.SetDefinedNameMutation.id,params:l},...d.redos],p=[...(a=d.preUndos)==null?[]:a,{id:i.RemoveDefinedNameMutation.id,params:l},{id:i.SetDefinedNameMutation.id,params:u},...d.undos];return(0,t.sequenceExecute)(f,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},rl=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(i==null)throw Error(`worksheet is null error!`);let a=i.getConfig().freeze;return{unitId:n.unitId,subUnitId:n.subUnitId,...a}},il={id:`sheet.mutation.set-frozen`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)throw Error(`universheet is null error!`);let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig(),{startRow:o,startColumn:s,ySplit:c,xSplit:l}=n;return a.freeze={startRow:o,startColumn:s,ySplit:c,xSplit:l},!0}},al={type:t.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=f(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:p}=n;if(u>=c.getRowCount()||l>=c.getColumnCount()||d>=c.getColumnCount()||p>=c.getRowCount())return!1;let m={unitId:o,subUnitId:s,...n},h=rl(e,m);return r.syncExecuteCommand(il.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:il.id,params:h}],redoMutations:[{id:il.id,params:m}]}),!0):!1}},ol={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=f(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=rl(e,l);return r.syncExecuteCommand(il.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:il.id,params:u}],redoMutations:[{id:il.id,params:l}]}),!0}},sl={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=f(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(Ve.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ve.id,params:d}],redoMutations:[{id:Ve.id,params:u}]}),!0):!1}},$={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(V).setRule(n,r,a,i),!0}},cl=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(V).getRule(n,r,i);return a?{id:$.id,params:{...t,rule:a}}:null},ll={id:`sheet.mutation.set-worksheet-protection`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(Do).setRule(n,r,i),!0}},ul={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),a=e.get(V),{rule:o,oldRule:s}=n,{unitId:c,subUnitId:l}=o,u=[],d=[];return(s==null?void 0:s.unitType)===o.unitType?o.unitType===q.Worksheet?(u.push({id:ll.id,params:{unitId:c,subUnitId:l,rule:o}}),d.push({id:ll.id,params:{unitId:c,subUnitId:l,rule:s}})):(u.push({id:$.id,params:{unitId:c,subUnitId:l,rule:o,ruleId:o.id}}),d.push({id:$.id,params:{unitId:c,subUnitId:l,ruleId:s.id,rule:s}})):(s&&(s.unitType===q.Worksheet?(u.push({id:ko.id,params:{unitId:c,subUnitId:l}}),d.push({id:Oo.id,params:{unitId:c,rule:s,subUnitId:s.subUnitId}})):s.unitType===q.SelectRange&&(u.push({id:Dn.id,params:{unitId:c,subUnitId:l,ruleIds:[s.id]}}),d.push({id:kn.id,params:{unitId:c,subUnitId:l,rules:[s]}}))),o.unitType===q.Worksheet?(u.push({id:Oo.id,params:{unitId:c,rule:o,subUnitId:o.subUnitId}}),d.unshift({id:ko.id,params:{unitId:c,subUnitId:l}})):o.unitType===q.SelectRange&&(o.id=a.createRuleId(c,l),u.push({id:kn.id,params:{unitId:c,subUnitId:l,rules:[o]}}),d.unshift({id:Dn.id,params:{unitId:c,subUnitId:l,ruleIds:[o.id]}}))),(0,t.sequenceExecute)(u,r)&&i.pushUndoRedo({unitID:c,undoMutations:d,redoMutations:u}),!0}},dl={id:`sheet.command.set-range-custom-metadata`,type:t.CommandType.COMMAND,handler:(e,n)=>{let r=f(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:p}=s,m=t.Tools.isArray(c),h=new t.ObjectMatrix;for(let e=l;e<=d;e++)for(let t=u;t<=p;t++){let n=m?c[e-l][t-u]:c;h.setValue(e,t,n)}return i.syncExecuteCommand(z.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},fl={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=f(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=ht(u,l);return r.syncExecuteCommand(gt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:gt.id,params:d}],redoMutations:[{id:gt.id,params:u}]}),!0):!1}},pl={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(k),l=f(e.get(t.IUniverInstanceService),{unitId:r,subUnitId:i});if(!l)return!1;let{worksheet:u}=l,d={unitId:r,subUnitId:i,ranges:a},p={unitId:r,subUnitId:i,reveal:!0,selections:a.map(e=>({range:e,primary:W(e,u),style:null}))},m=_t(e,d),h={unitId:r,subUnitId:i,selections:_l(a).map(e=>({range:e,primary:W(e,u),style:null}))},g=(0,t.sequenceExecute)([{id:vt.id,params:d},{id:G.id,params:p}],o),_=c.onCommandExecute({id:pl.id,params:n}),v=(0,t.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let e=c.afterCommandExecute({id:pl.id,params:n});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:bt.id,params:m},{id:G.id,params:h},...(b=_.undos)==null?[]:b,...e.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:vt.id,params:d},{id:G.id,params:p},..._.redos,...e.redos]}),!0}return!0}},ml={type:t.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var n;let r=e.get(U),i=e.get(t.IUniverInstanceService),a=e.get(t.ICommandService),o=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(o!=null&&o.length))return!1;let s=f(i);if(!s)return!1;let{worksheet:c,unitId:l,subUnitId:u}=s,d=o.map(e=>c.getHiddenRows(e.startRow,e.endRow)).flat();return a.executeCommand(pl.id,{unitId:l,subUnitId:u,ranges:d})}},hl={type:t.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,n)=>{var r,i,a;let o=e.get(U),s=e.get(t.ICommandService),c=e.get(t.IUndoRedoService),l=e.get(t.IUniverInstanceService),u=e.get(k),d=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=o.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW);if(!(d!=null&&d.length))return!1;let p=f(l,n);if(!p)return!1;d=gl(p.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=p,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:_l(d).map(e=>({range:e,primary:W(e,g),style:null}))},y=yt(e,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:W(e,g),style:null}))},x=u.onCommandExecute({id:hl.id,params:_});if((0,t.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:bt.id,params:_},{id:G.id,params:v},...x.redos],s).result){var S,C,w;let e=u.afterCommandExecute({id:hl.id,params:_});return(0,t.sequenceExecute)(e.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:vt.id,params:y},{id:G.id,params:b},...(C=x.undos)==null?[]:C,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:bt.id,params:_},{id:G.id,params:v},...x.redos,...e.redos]}),!0}return!0}};function gl(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 _l(e){return vl(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function vl(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 yl=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...t.Tools.deepClone(n),color:r}},bl={id:`sheet.mutation.set-tab-color`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},xl={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=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=yl(e,c);return r.syncExecuteCommand(bl.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:bl.id,params:l}],redoMutations:[{id:bl.id,params:c}]}),!0):!1}},Sl={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}},Cl={type:t.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,n)=>{var r;let i=e.get(t.ICommandService),a=e.get(k);if(!d(e.get(t.IUniverInstanceService),n))return!1;let o=a.onCommandExecute({id:Cl.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,t.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:Sl.id,params:s},...o.redos],i).result}},wl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,n,r)=>{let i=e.get(t.ICommandService),a=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(It.id,{unitId:o,subUnitId:s},r))},4)})}},Tl={type:t.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=f(e.get(t.IUniverInstanceService));if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,{anchorCol:u,deltaX:d}=n,p=s.getColumnWidth(u)+d,m=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,h=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.COLUMN),g=m?t.RANGE_TYPE.ALL:h.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=u&&u<=n})?t.RANGE_TYPE.COLUMN:t.RANGE_TYPE.NORMAL,_;if(g===t.RANGE_TYPE.ALL){let e=s.getRowCount();_={subUnitId:l,unitId:c,colWidth:p,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:p}:{subUnitId:l,unitId:c,colWidth:p,ranges:[{startRow:0,endRow:s.getMaxRows()-1,startColumn:u,endColumn:u}]};let v=e.get(oa).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=ca(_.ranges,v);sa(y,s);let x=e.get(k),{undos:S,redos:C}=x.onCommandExecute({id:Tl.id,params:_}),w=xt(_,s),T=i.syncExecuteCommand(St.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:O,redos:A}=e.get(k).afterCommandExecute({id:Tl.id,params:_}),j=(0,t.sequenceExecute)([...C,...A,...D],i);return T&&j.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:St.id,params:w},...S,...O,...E],redoMutations:[{id:St.id,params:_},...C,...A,...D]}),!0}},El={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,n)=>{var r,i;let a=e.get(U),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(k),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=f(e.get(t.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:p,worksheet:m}=u,h=e.get(oa).getSkeleton(p,d),g={subUnitId:d,unitId:p,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=ca(g.ranges,h);sa(_,m);let y=xt(g,m),b=o.syncExecuteCommand(St.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:p,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:El.id,params:g}),w=(0,t.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let e=c.afterCommandExecute({id:El.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:St.id,params:y},...C.undos,...e.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:St.id,params:g},...C.redos,...e.redos,...S]}),!0}return!1}},Dl={type:t.CommandType.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=e.get(U),o=f(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:p}=e.get(k).onCommandExecute({id:Dl.id,params:u});return(0,t.sequenceExecute)([...p],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...p]}),!0):!1}},Ol={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(!f(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount:a},l=Ct(e,c);return o.syncExecuteCommand(wt.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:wt.id,params:l}],redoMutations:[{id:wt.id,params:c}]}),!0):!1}},kl={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=Et(e,n);return r.syncExecuteCommand(Tt.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Tt.id,params:o}],redoMutations:[{id:Tt.id,params:n}]}),!0):!1}},Al=(e,n)=>{let r=p(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()}},jl={id:`sheet.mutation.set-worksheet-hidden`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().hidden=n.hidden,!0):!1}},Ml={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=f(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 p={unitId:u,subUnitId:d,hidden:t.BooleanNumber.TRUE},m=Al(e,p);return c.getSheets().filter(e=>e.getConfig().hidden===t.BooleanNumber.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):r.syncExecuteCommand(jl.id,p)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:jl.id,params:m}],redoMutations:[{id:jl.id,params:p}]}),!0):!1}},Nl=(e,n)=>{let r=p(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()}},Pl={id:`sheet.mutation.set-worksheet-name`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},Fl={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(k),c=f(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d={subUnitId:u,name:n.name,unitId:l},p=Nl(e,d),m=s.onCommandExecute({id:Fl.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:Pl.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:Pl.id,params:p},...m.undos];return(0,t.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},Il=(e,n)=>({...t.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),Ll={id:`sheet.mutation.set-worksheet-order`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getConfig();return i.sheetOrder.splice(n.fromOrder,1),i.sheetOrder.splice(n.toOrder,0,n.subUnitId),r.ensureSheetOrderUnique(),!0}},Rl={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=f(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=Il(e,l);return r.syncExecuteCommand(Ll.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Ll.id,params:u}],redoMutations:[{id:Ll.id,params:l}]}),!0):!1}};var zl=class{constructor(){C(this,`_model`,new Map),C(this,`_pointChange`,new n.Subject),C(this,`pointChange$`,this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var 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]}},Bl=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.Delete),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!0),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.Delete}.${r}`}},Vl=class{constructor(e,n,r){C(this,`type`,q.SelectRange),C(this,`subType`,K.ManageCollaborator),C(this,`status`,t.PermissionStatus.INIT),C(this,`value`,!0),C(this,`id`,void 0),C(this,`unitId`,void 0),C(this,`subUnitId`,void 0),C(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=n,this.permissionId=r,this.id=`${q.SelectRange}.${K.ManageCollaborator}.${r}`}};let Hl=()=>[Or,Dr,Vl,Bl],Ul=[K.Edit,K.View,K.ManageCollaborator,K.Delete],Wl=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>Hl().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{}),Gl=()=>[Rr,Gr,kr,Yr,Ar,zr,Ur,Nr,Ir,qr,Br,Lr,Jr,Wr,jr,Xr,Kr,Mr,Hr,Vr,Fr,Pr],Kl=[K.Edit,K.Print,K.Comment,K.View,K.Copy,K.Export,K.ManageCollaborator,K.CreateSheet,K.DeleteSheet,K.RenameSheet,K.HideSheet,K.Duplicate,K.Share,K.MoveSheet,K.CopySheet,K.RecoverHistory,K.ViewHistory,K.CreatePermissionObject,K.InsertRow,K.InsertColumn,K.DeleteRow,K.DeleteColumn],ql=()=>[ti,gi,si,$r],Jl=()=>[Zr,Qr,ei,ni,ri,ii,oi,ai,ci,di,fi,pi,mi,hi],Yl=[K.Copy,K.DeleteColumn,K.DeleteRow,K.EditExtraObject,K.Filter,K.InsertColumn,K.InsertRow,K.InsertHyperlink,K.PivotTable,K.SetCellStyle,K.SetCellValue,K.SetColumnStyle,K.SetRowStyle,K.Sort],Xl=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=o,this._logService=s,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){let e=e=>{let t=e.getUnitId(),n=e=>{let n=e.getSheetId();[...ql(),...Jl()].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=>{[...Hl()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...ql(),...Jl()].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,a.takeUntil)(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();ql().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`:ql().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:ql().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:[nr.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{ql().forEach(n=>{let r=new n(e,t);r.value=!1,this._permissionService.addPermissionPoint(r)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:e=>{let t=this._univerInstanceService.getUnit(e);t&&(t.getSheets().forEach(t=>{let n=t.getSheetId();[...ql(),...Jl()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),Gl().forEach(t=>{let n=new t(e);this._permissionService.deletePermissionPoint(n.id)})),this._worksheetProtectionRuleModel.deleteUnitModel(e)}}))}_initPointSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:()=>{let e=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(e)},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN`,businesses:[nr.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{Jl().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};Xl=T([w(0,(0,t.Inject)(t.IPermissionService)),w(1,(0,t.Inject)(t.IUniverInstanceService)),w(2,(0,t.Inject)(t.Injector)),w(3,(0,t.Inject)(Do)),w(4,(0,t.Inject)(zl)),w(5,(0,t.Inject)(t.IResourceManagerService)),w(6,(0,t.Inject)(V)),w(7,(0,t.Inject)(t.ILogService))],Xl);let Zl={id:`sheet.mutation.set-worksheet-permission-points`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(zl).addRule(n),!0}},Ql={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(Zl.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},$l={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(ll.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:ll.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:ll.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},eu=(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...t.Tools.deepClone(n),rightToLeft:r}},tu={id:`sheet.mutation.set-worksheet-right-to-left`,type:t.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig();return a.rightToLeft=n.rightToLeft,!0}},nu={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=f(e.get(t.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=t.BooleanNumber.FALSE;if(n){var l;c=(l=n.rightToLeft)==null?t.BooleanNumber.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=eu(e,u);return r.syncExecuteCommand(tu.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:tu.id,params:d}],redoMutations:[{id:tu.id,params:u}]}),!0):!1}},ru={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(!f(e.get(t.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=Dt(e,c);return o.syncExecuteCommand(Ot.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Ot.id,params:l}],redoMutations:[{id:Ot.id,params:c}]}),!0):!1}},iu={type:t.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,n)=>{let r=e.get(U).getCurrentSelections(),i=e.get(k);if(!(r!=null&&r.length))return!1;let a=f(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,p=r.length===1&&r[0].range.rangeType===t.RANGE_TYPE.ALL,m=r.filter(e=>e.range.rangeType===t.RANGE_TYPE.ROW),h=p?t.RANGE_TYPE.ALL:m.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?t.RANGE_TYPE.ROW:t.RANGE_TYPE.NORMAL,g;if(h===t.RANGE_TYPE.ALL){let e=o.getColumnCount();g={subUnitId:s,unitId:c,rowHeight:d,ranges:Array(o.getRowCount()).fill(void 0).map((t,n)=>({startRow:n,endRow:n,startColumn:0,endColumn:e-1}))}}else g=h===t.RANGE_TYPE.ROW?{subUnitId:s,unitId:c,ranges:m.map(e=>t.Rectangle.clone(e.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let _=kt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=At(v,o),b=e.get(t.ICommandService),x=e.get(t.IUndoRedoService),S=i.onCommandExecute({id:iu.id,params:g}),C=(0,t.sequenceExecute)([{id:Mt.id,params:g},{id:Nt.id,params:v}],b),w=(0,t.sequenceExecute)([...S.redos],b);if(C.result&&w.result){var T,E;let e=i.afterCommandExecute({id:iu.id,params:g});return(0,t.sequenceExecute)(e.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...(T=S.preUndos)==null?[]:T,{id:Mt.id,params:_},{id:Nt.id,params:y},...S.undos,...e.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:Mt.id,params:g},{id:Nt.id,params:v},...S.redos,...e.redos]}),!0}return!1}},au={type:t.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(e,n)=>{var r,i;let a=e.get(U),o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(t.IUniverInstanceService),l=e.get(k),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=f(c,n);if(!d)return!1;let{unitId:p,subUnitId:m,worksheet:h}=d,g={subUnitId:m,unitId:p,ranges:u,rowHeight:n.value},_=kt(g,h),v={unitId:p,subUnitId:m,ranges:g.ranges,autoHeightInfo:t.BooleanNumber.FALSE},y=At(v,h),b=(0,t.sequenceExecute)([{id:Mt.id,params:g},{id:Nt.id,params:v}],o),x=l.onCommandExecute({id:au.id,params:g}),S=(0,t.sequenceExecute)([...x.redos],o);if(b.result&&S.result){var C,w;let e=l.afterCommandExecute({id:au.id,params:g});return(0,t.sequenceExecute)(e.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(C=x.preRedos)==null?[]:C,{id:Mt.id,params:_},{id:Nt.id,params:y},...x.undos,...e.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:Mt.id,params:g},{id:Nt.id,params:v},...x.redos,...e.redos]}),!0}return!1}},ou={type:t.CommandType.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(e,n)=>{var r,i;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(U),c=f(e.get(t.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u,worksheet:d}=c,p=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=s.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(p!=null&&p.length))return!1;let m={unitId:l,subUnitId:u,ranges:p,autoHeightInfo:t.BooleanNumber.TRUE},h=At(m,d),g=a.syncExecuteCommand(Nt.id,m),_=e.get(oa).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=ca(m.ranges,_),b=e.get(k),{undos:x,redos:S}=b.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:v,autoHeightRanges:v,lazyAutoHeightRanges:y}),{undos:C,redos:w}=b.onCommandExecute({id:ou.id,params:m}),T=(0,t.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Nt.id,params:h},...C,...x],redoMutations:[{id:Nt.id,params:m},...w,...S]}),!0):!1}},su={type:t.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,n)=>{let r=f(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=Al(e,l),d=s.syncExecuteCommand(jl.id,l),p={unitId:i,subUnitId:a},m=s.syncExecuteCommand(It.id,p);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:jl.id,params:u}],redoMutations:[{id:jl.id,params:l}]}),!0):!1}},cu={type:t.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,n)=>{let r=f(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:p,maxLength:m}=pn(o,s,c,l,u),h=o.getColumnCount(),{startColumn:g}=t.Range.transformRange(s,o);if(s.startColumn!==s.endColumn)return!1;let _=e.get(t.ICommandService),v=e.get(t.IUndoRedoService),y=[],b=[],x=g+m+1-h;if(x>0){let t={unitId:i,subUnitId:a,range:{startRow:0,endRow:o.getRowCount()-1,startColumn:h-1,endColumn:h-1+x}};y.push({id:Se.id,params:t});let n=xe(e,t);b.push({id:F.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+m},C=new t.ObjectMatrix;for(let e=S.startRow;e<=S.endRow;e++)for(let t=S.startColumn;t<=S.endColumn;t++){let n=p[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}},lu=(0,t.createIdentifier)(`INumfmtService`),uu=(e,n)=>{let r=e.get(lu),{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=mu(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=nn(n.ranges)}),l.push({id:du.id,params:mu(a,o,s)})}return c.length&&l.push({id:fu.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},du={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(lu),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}},fu={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(lu).deleteValues(n,r,i),!0}},pu=(e,n)=>{let r=e.get(lu),{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=mu(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=nn(t.ranges)}),[{id:du.id,params:c}]},mu=(e,n,r)=>{let i=mn(r,`pattern`),a={},o={},s=hn();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}},hu={id:`sheet.command.text-to-number`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;let i=f(e.get(t.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=e.get(U).getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(a!=null&&a.length))return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),{worksheet:c,unitId:l,subUnitId:u}=i,d=new t.ObjectMatrix,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 m,h;if(d.getValue(n,r))continue;let e=c.getCellRaw(n,r),i=typeof(e==null?void 0:e.s)==`string`?(m=c.getStyleDataByHash(e.s))==null||(m=m.n)==null?void 0:m.pattern:e==null||(h=e.s)==null||(h=h.n)==null?void 0:h.pattern;e&&e.v&&(e.t!==t.CellValueType.NUMBER||(0,t.isTextFormat)(i))&&(0,t.isRealNum)(e.v)&&(d.setValue(n,r,{v:Number(e.v),t:t.CellValueType.NUMBER}),(0,t.isTextFormat)(i)&&p.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let g={subUnitId:u,unitId:l,cellValue:d.getMatrix()},_=[{id:z.id,params:g}],v=[{id:z.id,params:R(e,g)}];if(p.length){let t={unitId:l,subUnitId:u,ranges:p};_.push({id:fu.id,params:t}),v.push(...pu(e,t))}return(0,t.sequenceExecute)(_,o).result?(s.pushUndoRedo({unitID:l,undoMutations:v,redoMutations:_}),!0):!1}},gu={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)}},_u={type:t.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,n)=>{let r=e.get(t.ICommandService),i=e.get(t.IUndoRedoService),a=f(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(Ft.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ft.id,params:d}],redoMutations:[{id:Ft.id,params:u}]}),!0):!1}},vu={id:`sheet.command.unregister-worksheet-range-theme-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r;if(!n||!f(e.get(t.IUniverInstanceService),n))return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(N),{unitId:s,themeName:c}=n,l={unitId:s,themeName:c},u={unitId:s,themeName:c,rangeThemeStyleJson:(r=o.getRangeThemeStyle(s,c))==null?void 0:r.toJson()};return i.syncExecuteCommand(Ac.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:Ac.id,params:u}],redoMutations:[{id:jc.id,params:l}]}),!0):!1}},yu={id:`sheet.mutation.add-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleJSON:n,unitId:r}=t,i=e.get(N),a=new te(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},bu={id:`sheet.mutation.empty`,type:t.CommandType.MUTATION,handler:()=>!0},xu={id:`sheet.mutation.mark-dirty-filter-change`,type:t.CommandType.MUTATION,handler:()=>!0},Su={id:`sheet.mutation.remove-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(N).unregisterRangeThemeStyle(r,n),!0}},Cu={id:`sheet.mutation.set-range-theme`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,styleName:r,style:i}=t,a=e.get(N).getRangeThemeStyle(n,r);return a&&(i.headerRowStyle&&a.setHeaderRowStyle(i.headerRowStyle),i.firstRowStyle&&a.setFirstRowStyle(i.firstRowStyle),i.secondRowStyle&&a.setSecondRowStyle(i.secondRowStyle),i.lastRowStyle&&a.setLastRowStyle(i.lastRowStyle)),!0}},wu={id:`sheet.operation.mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},Tu={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:t.CommandType.OPERATION,handler:()=>!0},Eu={id:`sheet.operation.scroll-to-cell`,type:t.CommandType.OPERATION,handler:()=>!0},{getLenS:Du,getDataIndex:Ou,fillCopy:ku,fillCopyStyles:Au,generateNullCellValueRowCol:ju}=As,{otherRule:Mu}=qs,Nu=class extends t.Disposable{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,C(this,`_beforeApplyData`,[]),C(this,`_copyData`,[]),this._init()}_init(){this._initDefaultHook()}quit(){this._beforeApplyData=[],this._copyData=[]}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook({id:`default`,type:js.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(Z.SERIES,!0),Z.COPY):(this._autoFillService.setDisableApplyType(Z.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===Z.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=Ou(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===Z.COPY){let t=a==null?void 0:a[Z.COPY];return t?t(e,n,r,o,s):(l&&c.reverse(),ku(c,n))}if(i===Z.SERIES){let t=a==null?void 0:a[Z.SERIES];return t?t(e,n,r,o):(l&&c.reverse(),a!=null&&a[Z.COPY]?a[Z.COPY](e,n,r,o,s):ku(c,n))}if(i===Z.ONLY_FORMAT){let t=a==null?void 0:a[Z.ONLY_FORMAT];return t?t(e,n,r,o):Au(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))||Mu;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===Z.NO_FORMAT&&(s=!1,r=Z.SERIES);let{source:c,target:l,unitId:u,subUnitId:d}=e;if(!c||!l||n==null)return{undos:a,redos:o};let f=xn(c),p=xn(l),{cols:g,rows:_}=l,{cols:v,rows:y}=c,b=this._copyData,x;x=n===t.Direction.DOWN||n===t.Direction.UP?y.length:v.length;let S=[];if(n===t.Direction.DOWN||n===t.Direction.UP){let t=_.length,i=[];g.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=g.length;_.forEach((i,a)=>{let o=b[a],c=this._getApplyData(o,x,t,n,r,s,e),l=[];for(let e=0;e<c.length;e++)l.push({s:null,...c[e]});S.push(l)})}let C=[],w=(i=this._univerInstanceService.getUnit(u))==null?void 0:i.getStyles();if(s?(C=this._getMergeApplyData(f,p,n,x,e),S.forEach(e=>{e.forEach(e=>{e&&w&&w&&(e.s=w.getStyleByCell(e))})})):S.forEach((e,t)=>{e.forEach((e,n)=>{e&&w&&(e.s=w.getStyleByCell(this._beforeApplyData[t][n])||null)})}),r===Z.ONLY_FORMAT&&S.forEach((e,t)=>{e.forEach((e,n)=>{if(e){let r=this._beforeApplyData[t][n]||{};e.f=r.f,e.si=r.si,e.t=r.t,e.v=r.v}})}),s){var T;let e=[],n=(T=this._univerInstanceService.getUniverSheetInstance(u))==null||(T=T.getSheetBySheetId(d))==null?void 0:T.getMergeData();if(n&&n.forEach(n=>{t.Rectangle.intersects(n,p)&&e.push(n)}),e.length){let t={unitId:u,subUnitId:d,ranges:e},n=this._injector.invoke(I,t);o.push({id:L.id,params:t}),a.unshift({id:h.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:ju([l])},D=this._injector.invoke(R,E);o.push({id:z.id,params:E}),a.unshift({id:z.id,params:D});let O=new t.ObjectMatrix;_.forEach((e,t)=>{g.forEach((n,r)=>{S[t][r]&&O.setValue(e,n,S[t][r])})});let k=O.getMatrix(),A={subUnitId:d,unitId:u,cellValue:k},j=this._injector.invoke(R,A);if(this._autoFillService.getActiveHooks().forEach(t=>{var i;(i=t.onBeforeSubmit)==null||i.call(t,e,n,r,k)}),a.unshift({id:z.id,params:j}),o.push({id:z.id,params:A}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:oo(C)},t=this._injector.invoke(m,e);a.unshift({id:L.id,params:t}),o.push({id:h.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||[Q.OTHER,Q.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&&Q.NUMBER===t}))?Z.COPY:Z.SERIES}};Nu=T([w(0,t.IUniverInstanceService),w(1,rc),w(2,(0,t.Inject)(t.Injector))],Nu);let Pu=`maxCellsPerSheet`,Fu=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)}}))}};Fu=T([w(0,i.IDefinedNamesService),w(1,t.IResourceManagerService)],Fu);let Iu=[il.id],Lu=[P.id,Se.id,ke.id,F.id,Te.id,De.id],Ru=class extends t.Disposable{constructor(e,n,r){var i,a;super(),this._univerInstanceService=e,this._commandService=n,this._configService=r,C(this,`_d`,new t.DisposableCollection),C(this,`_enabled`,!0);let o=(i=(a=this._configService.getConfig(`sheets.config`))==null?void 0:a.freezeSync)==null?!0:i;this.setEnabled(o)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{Iu.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(Lu.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===P.id?this._handleInsertRowMutation(r,t):n===Se.id?this._handleInsertColMutation(r,t):n===ke.id?this._handleRemoveRowMutation(r,t):n===F.id?this._handleRemoveColMutation(r,t):n===Te.id?this._handleMoveRowsMutation(r,t):n===De.id&&this._handleMoveColsMutation(r,t)}}))}_handleInsertRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=n.endRow-n.startRow+1,o={...a,startRow:Math.max(1,a.startRow+e),ySplit:Math.max(1,a.ySplit+e)};this._sequenceExecute(r,i,o,t)}}_handleInsertColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=n.endColumn-n.startColumn+1,o={...a,startColumn:Math.max(1,a.startColumn+e),xSplit:Math.max(1,a.xSplit+e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=Math.min(a.startRow,n.endRow+1)-n.startRow,o={...a,startRow:Math.max(1,a.startRow-e),ySplit:Math.max(1,a.ySplit-e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=Math.min(a.startColumn,n.endColumn+1)-n.startColumn,o={...a,startColumn:Math.max(1,a.startColumn-e),xSplit:Math.max(1,a.xSplit-e)};this._sequenceExecute(r,i,o,t)}}_handleMoveRowsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startRow<=0||n.startRow>=o.startRow&&r.startRow>=o.startRow||n.endRow<o.startRow&&r.endRow<o.startRow)return;let s=n.endRow-n.startRow+1,c=Math.max(Math.min(o.startRow,n.endRow+1)-n.startRow,0),l={...o};r.startRow>=o.startRow?(l.startRow=Math.max(1,o.startRow-c),l.ySplit=Math.max(1,o.ySplit-c)):(l.startRow=o.startRow+s-c,l.ySplit=o.ySplit+s-c),this._sequenceExecute(i,a,l,t)}_handleMoveColsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startColumn<=0||n.startColumn>=o.startColumn&&r.startColumn>=o.startColumn||n.endColumn<o.startColumn&&r.endColumn<o.startColumn)return;let s=n.endColumn-n.startColumn+1,c=Math.max(Math.min(o.startColumn,n.endColumn+1)-n.startColumn,0),l={...o};r.startColumn>=o.startColumn?(l.startColumn=Math.max(1,o.startColumn-c),l.xSplit=Math.max(1,o.xSplit-c)):(l.startColumn=o.startColumn+s-c,l.xSplit=o.xSplit+s-c),this._sequenceExecute(i,a,l,t)}_getFreeze(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!r)return null;let i=r.getSheetBySheetId(n);return i?i.getFreeze():null}_sequenceExecute(e,n,r,i){(0,t.sequenceExecute)([{id:il.id,params:{...r,unitId:e,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};Ru=T([w(0,(0,t.Inject)(t.IUniverInstanceService)),w(1,t.ICommandService),w(2,t.IConfigService)],Ru);let zu=class extends t.Disposable{constructor(e,r,i,a,o,s,c,l,u,d){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._contextService=u,this._definedNamesService=d,C(this,`disposableCollection`,new t.DisposableCollection),C(this,`_triggerPermissionUIEvent$`,new n.Subject),C(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}blockExecuteWithoutPermission(e){throw this._triggerPermissionUIEvent$.next(e),new t.CustomCommandExecutionError(`have no permission`)}_getPermissionCheck(e,n){let r=!0,i=``;switch(e){case _i.id:(0,t.isICellData)(n.value)&&n.value.f?(r=this._permissionCheckWithFormula(n),i=this._localeService.t(`permission.dialog.formulaErr`)):r=this._permissionCheckBySetRangeValue({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[fi,ti]},n);break;case uc.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[fi,ti]},n==null?void 0:n.ranges,n==null?void 0:n.unitId,n==null?void 0:n.subUnitId),i=this._localeService.t(`permission.dialog.editErr`);break;case Tl.id:case El.id:r=this.permissionCheckWithoutRange({worksheetTypes:[pi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case iu.id:case au.id:case ou.id:r=this.permissionCheckWithoutRange({worksheetTypes:[mi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ia.id:case na.id:r=this._permissionCheckByMoveCommand(n),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case Jn.id:r=this._permissionCheckByMoveRangeCommand(n),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case Rl.id:r=this._permissionCheckByWorksheetCommand([Rr,Wr]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case Fl.id:r=this._permissionCheckByWorksheetCommand([Rr,qr]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case su.id:{let{unitId:e,subUnitId:t}=n;r=this._permissionCheckByWorksheetCommand([Rr,Br],e,t),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder()}break;case Xc.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ti,pi]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case pl.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ti,mi]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Zc.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ti,pi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ml.id:r=this.permissionCheckWithRanges({workbookTypes:[Rr],rangeTypes:[Dr],worksheetTypes:[ti,mi]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ki.id:r=this._permissionCheckWithInsertRangeMove(`right`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Di.id:r=this._permissionCheckWithInsertRangeMove(`bottom`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Ci.id:r=this._permissionCheckWithInsertRangeMove(`left`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Ti.id:r=this._permissionCheckWithInsertRangeMove(`top`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case ic.id:r=this._permissionCheckByAutoFillCommand(n),i=this._localeService.t(`permission.dialog.autoFillErr`);break;default:break}r||this.blockExecuteWithoutPermission(i)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e.id,e==null?void 0:e.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Pl.id){var n;let{unitId:r=(n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId(),subUnitId:i}=e.params;if(!r||!i)return;let a=this._worksheetProtectionRuleModel.getRule(r,i),o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i);a&&this._worksheetProtectionRuleModel.ruleRefresh(a.permissionId),o.length&&this._rangeProtectionRuleModel.ruleRefresh(i)}}))}_permissionCheckWithInsertRangeMove(e){var n;let r=f(this._univerInstanceService);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=t.Tools.deepClone((n=this._selectionManagerService.getCurrentLastSelection())==null?void 0:n.range);return!(!s||(e===`top`||e===`bottom`?s.endRow=i.getRowCount()-1:(e===`left`||e===`right`)&&(s.endColumn=i.getColumnCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(a,o).map(e=>e.ranges).flat().some(e=>t.Rectangle.getIntersects(s,e))))}_permissionCheckByWorksheetCommand(e,t,n){let r=f(this._univerInstanceService,{unitId:t,subUnitId:n});if(!r)return!1;let{unitId:i,subUnitId:a}=r,o=this._worksheetProtectionRuleModel.getRule(i,a),s=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).length>0;if(o||s){var c,l;return(c=(l=this._permissionService.getPermissionPoint(new Ur(i).id))==null?void 0:l.value)==null?!1:c}else return this._permissionService.composePermission(e.map(e=>new e(i).id)).every(e=>e.value)}permissionCheckWithoutRange(e,t,n){var r,i,a,o;let s=f(this._univerInstanceService,{unitId:t,subUnitId:n});if(!s)return!1;let{worksheet:c,unitId:l,subUnitId:u}=s,d=this._selectionManagerService.getCurrentLastSelection();if(!d)return!0;let p=(r=d==null||(i=d.primary)==null?void 0:i.actualRow)==null?0:r,m=(a=d==null||(o=d.primary)==null?void 0:o.actualColumn)==null?0:a,{workbookTypes:h,worksheetTypes:g,rangeTypes:_}=e;return!(h&&h.some(e=>{var t,n;let r=new e(l);return((t=(n=this._permissionService.getPermissionPoint(r.id))==null?void 0:n.value)==null?!1:t)===!1})===!0||g&&g.some(e=>{var t,n;let r=new e(l,u);return((t=(n=this._permissionService.getPermissionPoint(r.id))==null?void 0:n.value)==null?!1:t)===!1})===!0||_&&_.some(e=>{var t,n,r,i;let a=(t=c.getCell(p,m))==null||(t=t.selectionProtection)==null?void 0:t[0];if(!(a!=null&&a.ruleId))return!1;let o=(n=this._rangeProtectionRuleModel.getRule(l,u,a.ruleId))==null?void 0:n.permissionId;if(!o)return!1;let s=new e(l,u,o);return((r=(i=this._permissionService.getPermissionPoint(s.id))==null?void 0:i.value)==null?!1:r)===!1})===!0)}permissionCheckWithRanges(e,n,r,i){var a;let o=f(this._univerInstanceService,{unitId:r,subUnitId:i});if(!o)return!1;let s=n==null?(a=this._selectionManagerService.getCurrentSelections())==null?void 0:a.map(e=>e.range):n;if(!s)return!1;let{unitId:c,subUnitId:l}=o,{workbookTypes:u,worksheetTypes:d,rangeTypes:p}=e,m=[];return u&&m.push(...u.map(e=>new e(c).id)),d&&m.push(...d.map(e=>new e(c,l).id)),p&&this._rangeProtectionRuleModel.getSubunitRuleList(c,l).forEach(e=>{s.some(n=>e.ranges.some(e=>t.Rectangle.intersects(e,n)))&&m.push(...p.map(t=>new t(c,l,e.permissionId).id))}),m.length?this._permissionService.composePermission(m).every(e=>e.value):!0}_permissionCheckByMoveCommand(e){let n=f(this._univerInstanceService,e);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,o=e.toRange;o.endRow===r.getRowCount()-1?o.endColumn=o.startColumn:o.endRow=o.startRow;let s=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>t.Rectangle.intersects(e,o));return s.length>0?!1:(s.forEach(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=r.getCell(n,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[K.Edit])===!1)return!1}}),!0)}_permissionCheckByMoveRangeCommand(e){let n=f(this._univerInstanceService);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,o=e.toRange,s=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>t.Rectangle.intersects(e,o));return s.length>0?!1:(s.forEach(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=r.getCell(n,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[K.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(e,n){let r=[];r=n.range?[n.range]:[new t.ObjectMatrix(n.value).getDataRange()];let{unitId:i,subUnitId:a}=n;return this.permissionCheckWithRanges(e,r,i,a)}_permissionCheckWithFormula(e){let n=e.value,r=e.range,a=n.f;if(a){var o;let n=a.substring(1),r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),l=(o=e.unitId)==null?r.getUnitId():o,u=this._definedNamesService.getValueByName(l,n);if(u){let e=u.formulaOrRefString;e.startsWith(i.operatorToken.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let n=t[e],a=(0,i.deserializeRangeWithSheet)(n);if(a.sheetName){let e=r.getSheetBySheetName(a.sheetName);if(!e)return!0;let{startRow:t,endRow:n,startColumn:i,endColumn:o}=a.range;for(let r=t;r<=n;r++)for(let t=i;t<=o;t++){var s;let n=(s=e.getCell(r,t))==null||(s=s.selectionProtection)==null?void 0:s[0];if((n==null?void 0:n[K.View])===!1)return!1}}}return!0}else{let e=this._lexerTreeBuilder.sequenceNodesBuilder(a);if(!e)return!0;for(let n=0;n<e.length;n++){let r=e[n];if(typeof r==`string`||r.nodeType!==i.sequenceNodeType.REFERENCE)continue;let{token:a}=r,o=(0,i.deserializeRangeWithSheetWithCache)(a),s=o.unitId?this._univerInstanceService.getUnit(o.unitId):this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!s)return!0;let l=o.sheetName?s.getSheetBySheetName(o.sheetName):s.getActiveSheet(),u=s.getUnitId();if(o.sheetName){if(l=s.getSheetBySheetName(o.sheetName),!l)return!0;let e=l==null?void 0:l.getSheetId();if(!this._permissionService.getPermissionPoint(new gi(u,e).id))return!1}if(!l)return!0;let{startRow:d,endRow:f,startColumn:p,endColumn:m}=o.range;for(let e=d;e<=f;e++)for(let t=p;t<=m;t++){var c;let n=(c=l.getCell(e,t))==null||(c=c.selectionProtection)==null?void 0:c[0];if((n==null?void 0:n[K.View])===!1)return!1}}return!0}}if(r){let n=f(this._univerInstanceService,e);if(!n)return!1;let{unitId:i,subUnitId:a}=n,o=this._rangeProtectionRuleModel.getSubunitRuleList(i,a).filter(e=>e.ranges.some(e=>t.Rectangle.intersects(e,r))).map(e=>new Dr(i,a,e.permissionId).id);if(!this._permissionService.composePermission(o).every(e=>e.value))return!1}return!0}_permissionCheckByAutoFillCommand(e){if(!e)return!1;let{targetRange:n}=e,r=f(this._univerInstanceService,e);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r;return!this._rangeProtectionRuleModel.getSubunitRuleList(a,o).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>t.Rectangle.intersects(e,n)).some(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++){var t;let e=(t=i.getCell(n,r))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[K.Edit])===!1)return!0}return!1})}};zu=T([w(0,t.ICommandService),w(1,t.IUniverInstanceService),w(2,t.IPermissionService),w(3,(0,t.Inject)(U)),w(4,(0,t.Inject)(V)),w(5,(0,t.Inject)(Do)),w(6,(0,t.Inject)(t.LocaleService)),w(7,(0,t.Inject)(i.LexerTreeBuilder)),w(8,t.IContextService),w(9,i.IDefinedNamesService)],zu);let Bu=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,C(this,`_unitPermissionInitStateChange`,new n.BehaviorSubject(!1)),C(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();Gl().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Hl()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...ql(),...Jl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),Gl().forEach(e=>{let n=new e(t);this._permissionService.deletePermissionPoint(n.id)}),this._rangeProtectionRuleModel.deleteUnitModel(t),this._worksheetProtectionPointModel.deleteUnitModel(t),this._worksheetProtectionRuleModel.deleteUnitModel(t)}))}changeUnitInitState(e){this._unitPermissionInitStateChange.next(e)}};Bu=T([w(0,(0,t.Inject)(t.IPermissionService)),w(1,(0,t.Inject)(t.IUniverInstanceService)),w(2,(0,t.Inject)(V)),w(3,(0,t.Inject)(Do)),w(4,(0,t.Inject)(zl))],Bu);let Vu=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:q.SelectRange,actions:Ul})})}),!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;Hl().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),[...Jl()].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:q.SelectRange,actions:Ul}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(Hl().forEach(n=>{if(e.type===`set`){let{rule:t,oldRule:n}=e;if(t.permissionId===(n==null?void 0:n.permissionId))return}let r=e.rule,i=new n(r.unitId,r.subUnitId,r.permissionId),a=i.subType,o=t.find(e=>e.action===a);o&&this._permissionService.updatePermissionPoint(i.id,o.allowed)}),this._rangeProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}async initWorkbookPermissionChange(e){var n;let r=e||((n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId());if(r)return this._authzIoService.allowed({objectID:r,objectType:q.Workbook,unitID:r,actions:Kl}).then(e=>{Gl().forEach(t=>{let n=new t(r),i=n.subType,a=e.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(n.id,a.allowed)})})}async _initWorkbookPermissionFromSnapshot(){await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(e=>this.initWorkbookPermissionChange(e.getUnitId()))),this._workbookPermissionService.changeUnitInitState(!0)}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?([...ql(),...Jl()].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:q.Worksheet,actions:Ul}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(ql().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:q.Worksheet,actions:Yl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||Jl().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(),a=this._worksheetProtectionRuleModel.getRule(n,r);a&&(i.set(a.permissionId,a),t.push({objectID:a.permissionId,unitID:n,objectType:q.Worksheet,actions:Ul}));let o=this._worksheetProtectionPointRuleModel.getRule(n,r);o&&(i.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:n,objectType:q.Worksheet,actions:Yl}))}),!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;[...ql(),...Jl()].forEach(r=>{let i=new r(n,t.subUnitId),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).map(t=>e(t))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe((0,n.skip)(1)).subscribe(()=>{let e=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(t=>{let n=t.getUnitId();Gl().forEach(t=>{let r=new t(n);e.has(r.id)&&(r=e.get(r.id)),this._permissionService.addPermissionPoint(r)}),t.getSheets().forEach(t=>{let r=t.getSheetId();[...ql(),...Jl()].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=>{Hl().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,a]=n;this._authzIoService.allowed({objectID:t,unitID:e,objectType:q.Worksheet,actions:Ul}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let i=``;ql().forEach(t=>{let o=new t(e,a),s=o.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(o.id))==null?void 0:l.value)!==c.allowed&&(r=!0),this._permissionService.updatePermissionPoint(o.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,a]=i;this._authzIoService.allowed({objectID:t,unitID:e,objectType:q.Worksheet,actions:Yl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(Jl().forEach(t=>{let i=new t(e,a),o=i.subType,s=n.find(e=>e.action===o);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 a=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(a){let[n,i]=a;this._authzIoService.allowed({objectID:t,unitID:e,objectType:q.SelectRange,actions:Ul}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;Hl().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===kn.id||e.id===Oo.id||e.id===Zl.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};Vu=T([w(0,t.IUniverInstanceService),w(1,t.IPermissionService),w(2,t.IAuthzIoService),w(3,(0,t.Inject)(V)),w(4,(0,t.Inject)(Do)),w(5,(0,t.Inject)(t.UserManagerService)),w(6,(0,t.Inject)(zl)),w(7,(0,t.Inject)(Bu)),w(8,(0,t.Inject)(t.IUndoRedoService)),w(9,(0,t.Inject)(t.ICommandService))],Vu);let Hu=class extends t.Disposable{constructor(e,t,r){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=r,C(this,`_zebraCacheUpdateSubject`,new n.Subject),this._init()}_init(){this._initializeCommandListener(),this._initTriggerCacheUpdateListener()}updateZebraCrossingCache(e,t){this._zebraCacheUpdateSubject.next({unitId:e,subUnitId:t})}_initializeCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let{id:t}=e,n,r;switch(t){case P.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case vt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case bt.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case ke.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Mt.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)}))}};Hu=T([w(0,(0,t.Inject)(t.ICommandService)),w(1,(0,t.Inject)(N)),w(2,(0,t.Inject)(t.IUniverInstanceService))],Hu);let Uu=class{constructor(e,n){this._selectionProtectionRuleModel=e,this._permissionService=n,C(this,`_cache`,new t.LRUMap(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe((0,a.filter)(e=>e.type===q.SelectRange),(0,a.filter)(e=>Hl().some(t=>e instanceof t)),(0,a.map)(e=>e)).subscribe(e=>{let n=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(let r of n)r.permissionId===e.permissionId&&r.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{if(e.rule.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})}),e.type===`set`){var n;(n=e.oldRule)==null||n.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),a=[];if(!i||!i.length)return a;let o=this._createKey(e,t,n,r),s=this._cache.get(o);if(s)return s;let c=[];for(let a of i)if(a.ranges.some(e=>e.startRow<=n&&e.endRow>=n&&e.startColumn<=r&&e.endColumn>=r)){let n=Hl().reduce((n,r)=>{var i;let o=new r(e,t,a.permissionId),s=this._permissionService.getPermissionPoint(o.id);return n[o.subType]=(i=s==null?void 0:s.value)==null?o.value:i,n},{});c.push({...n,ruleId:a.id,ranges:a.ranges})}return this._cache.set(o,c),c}clear(){this._cache.clear()}};Uu=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IPermissionService))],Uu);let Wu=class extends t.Disposable{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,C(this,`_cellRuleCache`,new Map),C(this,`_permissionIdCache`,new Map),C(this,`_cellInfoCache`,new Map),C(this,`_rowInfoCache`,new Map),C(this,`_colInfoCache`,new Map),this._initUpdateCellRuleCache(),this._initUpdateCellInfoCache(),this._initUpdateRowColInfoCache(),this._initCache()}_initCache(){this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).forEach(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();this.reBuildCache(n,r)})})}_initUpdateCellInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===q.SelectRange),(0,n.map)(e=>e)).subscribe(e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureCellInfoMap(n,t);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++)o.delete(`${e}-${t}`)})}),this._ruleModel.ruleChange$.subscribe(e=>{let{unitId:n,subUnitId:r}=e,i=this._ensureCellInfoMap(n,r);if(e.rule.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{i.delete(`${e}-${t}`)})}),e.type===`set`){var a;(a=e.oldRule)==null||a.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{this._cellInfoCache.delete(`${e}-${t}`)})})}})}_initUpdateCellRuleCache(){this._ruleModel.ruleChange$.subscribe(e=>{let{type:t}=e;t===`add`?this._addCellRuleCache(e):t===`delete`?this._deleteCellRuleCache(e):(this._deleteCellRuleCache({...e,rule:e.oldRule}),this._addCellRuleCache(e))})}_ensureRuleMap(e,t){let n=this._cellRuleCache.get(e);n||(n=new Map,this._cellRuleCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureCellInfoMap(e,t){let n=this._cellInfoCache.get(e);n||(n=new Map,this._cellInfoCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureRowColInfoMap(e,t,n){let r=n===`row`?this._rowInfoCache.get(e):this._colInfoCache.get(e);r||(r=new Map,n===`row`?this._rowInfoCache.set(e,r):this._colInfoCache.set(e,r));let i=r.get(t);return i||(i=new Map,r.set(t,i)),i}_addCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++)i.set(`${e}-${t}`,r.id)}),this._permissionIdCache.set(r.permissionId,r.id)}_deleteCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t),a=this._ensureCellInfoMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++)i.delete(`${e}-${t}`),a.delete(`${e}-${t}`)}),this._permissionIdCache.delete(r.permissionId)}_getSelectionActions(e,t,n){var r,i,a,o,s,c,l,u,d,f,p,m;let h=(r=(i=this._permissionService.getPermissionPoint((a=new Dr(e,t,n.permissionId))==null?void 0:a.id))==null?void 0:i.value)==null?!1:r,g=(o=(s=this._permissionService.getPermissionPoint((c=new Or(e,t,n.permissionId))==null?void 0:c.id))==null?void 0:s.value)==null?!1:o,_=(l=(u=this._permissionService.getPermissionPoint((d=new Vl(e,t,n.permissionId))==null?void 0:d.id))==null?void 0:u.value)==null?!1:l,v=(f=(p=this._permissionService.getPermissionPoint((m=new Bl(e,t,n.permissionId))==null?void 0:m.id))==null?void 0:p.value)==null?!1:f;return{[K.Edit]:h,[K.View]:g,[K.ManageCollaborator]:_,[K.Delete]:v}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,n.filter)(e=>e.type===q.SelectRange),(0,n.map)(e=>e)).subscribe({next:e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureRowColInfoMap(n,t,`row`),s=this._ensureRowColInfoMap(n,t,`col`),c=this._getSelectionActions(n,t,a);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:a}=e;for(let e=t;e<=n;e++){let t=o.get(`${e}`);t?t.set(i,c):o.set(`${e}`,new Map([[i,c]]));for(let e=r;e<=a;e++){let t=s.get(`${e}`);t?t.set(i,c):s.set(`${e}`,new Map([[i,c]]))}}})}}),this._ruleModel.ruleChange$.subscribe(e=>{if(e.type===`delete`){let{unitId:t,subUnitId:n,rule:r}=e,i=this._ensureRowColInfoMap(t,n,`row`),a=this._ensureRowColInfoMap(t,n,`col`);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:o,endColumn:s}=e;for(let e=t;e<=n;e++){let t=i.get(`${e}`);t==null||t.delete(r.id);for(let e=o;e<=s;e++){let t=a.get(`${e}`);t==null||t.delete(r.id)}}})}})}getCellInfo(e,t,n,r){var i;let a=this._ensureCellInfoMap(e,t),o=a.get(`${n}-${r}`);if(o)return o;let s=(i=this._cellRuleCache.get(e))==null||(i=i.get(t))==null?void 0:i.get(`${n}-${r}`);if(!s)return;let c=this._ruleModel.getRule(e,t,s);if(c){let i={...this._getSelectionActions(e,t,c),ruleId:s,ranges:c.ranges};return a.set(`${n}-${r}`,i),i}}deleteUnit(e){this._cellRuleCache.delete(e),this._cellInfoCache.delete(e),this._rowInfoCache.delete(e),this._colInfoCache.delete(e);let t=this._univerInstanceService.getUnit(e);t==null||t.getSheets().forEach(t=>{let n=t.getSheetId();this._ruleModel.getSubunitRuleList(e,n).forEach(e=>{this._permissionIdCache.delete(e.permissionId)})})}};Wu=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IPermissionService)),w(2,(0,t.Inject)(t.IUniverInstanceService))],Wu);var Gu=`@univerjs/sheets`,Ku=`0.20.1`;let qu=class extends t.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,C(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Qi.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Qi.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===jl.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===_c.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===jl.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===G.id)return this._adjustActiveSheetOnSelection(e)}))}_adjustActiveSheetOnHideSheet(e){var t;let{unitId:n,subUnitId:r}=e.params,i=this._univerInstanceService.getUniverSheetInstance(n);if(!i||((t=i.getActiveSheet())==null?void 0:t.getSheetId())!==r)return;let a=Ju(i,i.getActiveSheetIndex());this._switchToNextSheet(n,a)}_beforeAdjustActiveSheetOnRemoveSheet(e){let{unitId:t,subUnitId:n}=e.params,r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;let i=r.getSheetBySheetId(n);i&&(this._previousSheetIndex=r.getSheetIndex(i))}_adjustActiveSheetOnRemoveSheet(e){if(this._previousSheetIndex===-1)return;let{unitId:t}=e.params,n=this._univerInstanceService.getUniverSheetInstance(t);if(n&&n.getActiveSheet().getSheetId()===e.params.subUnitId){let e=this._previousSheetIndex,r=Ju(n,e>=1?e-1:0);this._switchToNextSheet(t,r)}}_adjustActiveSheetOnInsertSheet(e){let{unitId:t,sheet:n}=e.params;this._switchToNextSheet(t,n.id)}_adjustActiveSheetOnShowSheet(e){let{unitId:t,subUnitId:n}=e.params;this._switchToNextSheet(t,n)}_adjustActiveSheetOnSelection(e){var t;let{unitId:n,subUnitId:r}=e.params;r!==((t=this._univerInstanceService.getUnit(n))==null?void 0:t.getActiveSheet().getSheetId())&&this._switchToNextSheet(n,r)}_switchToNextSheet(e,t){this._commandService.executeCommand(It.id,{unitId:e,subUnitId:t})}};qu=T([w(0,t.ICommandService),w(1,t.IUniverInstanceService)],qu);function Ju(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 Yu=class extends t.Disposable{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[z,Se,P,_c,Ce,Te,De,F,ke,Qi,L,fu,h,Sl,Pl,du,Me,bu,bt,vt,wu,Tu,hc,Ot,wt,xu].forEach(e=>{var t;this._commandService.registerCommand(e),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)}),(r=this._configService.getConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`))!=null&&r||[xo,So,Co,wo,Mo,Nn,uc,Pn,Sc,Ci,Ti,Tl,iu,Vi,Bi,Hi,Ui,zi,Ri,Di,ki,Pi,Ni,Ii,Fi,Mi,ji,Oc,ia,Jn,na,Ki,Xi,Yi,qi,Pc,da,mo,Wo,Ho,Uo,Jc,qc,Wc,Gc,Kc,Qc,Re,Be,El,Yc,Ie,al,il,ol,Ko,dl,_i,au,hl,fl,gt,Zc,ml,Xc,pl,X,xl,bl,Vo,Jo,qo,Go,Cl,wl,It,Ml,jl,Fl,Rl,Ll,Pt,Mt,ou,Nt,St,ru,Ol,Kn,G,Eu,Dc,Nc,nl,su,_u,Ft,sl,Ve,hu,Ql,Oo,ll,ko,Zl,An,ul,wc,Ao,Tc,$l,kn,Dn,$,gu,Tt,kl,cu,ve,ge,jc,Ac,vu,Mc,jo,Ec,yu,Cu,Su,ic,sc,cc,lc,kc].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(Pu,3e6)}};Yu=T([w(0,t.ICommandService),w(1,t.IConfigService),w(2,(0,t.Optional)(o.DataSyncPrimaryController))],Yu);let Xu=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==i.SetFormulaCalculationResultMutation.id)return;let{unitData:n}=e.params,r=Object.keys(n),a=[];for(let e=0;e<r.length;e++){let t=r[e],i=n[t];if(i==null)continue;let o=Object.keys(i);for(let e=0;e<o.length;e++){let n=o[e],r=i[n];if(r==null)continue;let s={subUnitId:n,unitId:t,cellValue:this._getMergedCellData(t,n,r)};a.push({id:z.id,params:s})}}return(0,t.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,n,r){let a=this._univerInstanceService.getUniverSheetInstance(e),o=a==null?void 0:a.getStyles(),s=a==null?void 0:a.getSheetBySheetId(n),c=s==null?void 0:s.getCellMatrix(),l=new t.ObjectMatrix(r);return l.forValue((e,t,n)=>{let r=(0,i.handleNumfmtInCell)(c==null?void 0:c.getValue(e,t),n,o);l.setValue(e,t,r)}),l.getMatrix()}};Xu=T([w(0,(0,t.Inject)(t.IUniverInstanceService)),w(1,t.ICommandService)],Xu);let Zu=class extends t.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:11,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,n,r)=>{var a;if(!e)return r(e);let o=n.workbook.getStyles().getStyleByCell(e);return(0,t.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern)&&(e==null?void 0:e.t)===t.CellValueType.NUMBER&&e.v!==void 0&&e.v!==null&&(0,t.isRealNum)(e.v)?((!e||e===n.rawData)&&(e={...n.rawData}),e.v=(0,i.stripErrorMargin)(Number(e.v)),r(e)):r(e)}}))}};Zu=T([w(0,(0,t.Inject)(k))],Zu);let Qu=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(g.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i,row:a,col:o}=t,s=this._rangeProtectionCache.getCellInfo(r,i,a,o);if(s){let r=s[K.View]===!1,i=!e||e===t.rawData?{...t.rawData}:e;return i.selectionProtection=[s],r?(delete i.s,delete i.v,delete i.p,i):n(i)}return n(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:999,effect:t.InterceptorEffectEnum.Value|t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._worksheetProtectionRuleModel.getRule(r,i);if(a!=null&&a.permissionId){var o,s,c,l,u;let a=[{[K.View]:(o=(s=this._permissionService.getPermissionPoint(new gi(r,i).id))==null?void 0:s.value)==null?!1:o,[K.Edit]:(c=(l=this._permissionService.getPermissionPoint(new ti(r,i).id))==null?void 0:l.value)==null?!1:c}],d=!((u=a[0])!=null&&u[K.View]),f=!e||e===t.rawData?{...e}:e;return f.hasWorksheetRule=!0,f.selectionProtection=a,d?(delete f.s,delete f.v,delete f.p,f):n(f)}return n(e)}}))}};Qu=T([w(0,t.IPermissionService),w(1,(0,t.Inject)(Do)),w(2,(0,t.Inject)(k)),w(3,(0,t.Inject)(Wu))],Qu);let $u=(0,t.createIdentifier)(`univer.exclusive-range-service`);var ed=class extends t.Disposable{constructor(...e){super(...e),C(this,`_exclusiveRanges`,new Map),C(this,`_exclusiveRangesChange$`,new n.Subject),C(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 td=class extends t.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;let o=i.getStyles(),s=a.getCellRaw(n,r);if(s!=null&&s.s){let e=o.get(s.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles();r.forEach(e=>{t.Range.foreach(e,(e,t)=>{let n=a.getCellRaw(e,t);if(!n)return;let r=n==null?void 0:n.s,i={...r&&o.get(r)||{}};delete i.n,n.s=o.setValue(i)})})}setValues(e,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles(),s=a.getCellMatrix();r.forEach(e=>{e.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{let r=a.getCellRaw(t,n);if(r){let t={...o.getStyleByCell(r)||{},n:{pattern:e.pattern}};r.s=o.setValue(t)}else{let r={n:{pattern:e.pattern}},i=o.setValue(r);i&&s.setValue(t,n,{s:i})}})})})}};td=T([w(0,t.IResourceManagerService),w(1,t.IUniverInstanceService),w(2,t.ILogService)],td);let nd=[Se.id,P.id,F.id,ke.id],rd=[Te.id,De.id],id=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,C(this,`disposableCollection`,new t.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,n)=>{let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=t=>this.refRangeHandle(t,e,n);this._selectionProtectionRuleModel.getSubunitRuleList(e,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(t=>{this.disposableCollection.add(this._refRangeService.registerRefRange(t,i,e,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===wl.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===$.id||t.id===kn.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(n){let t=n.getActiveSheet();if(!t)return;e(n.getUnitId(),t.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case na.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case ia.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case ji.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case Ri.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Xi.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case qi.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:$.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:$.id,params:{unitId:n,subUnitId:r,rule:i,ruleId:i.id}})):(e.push({id:Dn.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:kn.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:$.id,params:{unitId:n,subUnitId:r,rule:s,ruleId:i.id}}),o.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:c,ruleId:o.id}}),s.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:$.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:$.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:s.id}}),c.push({id:$.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(rd.includes(e.id)){if(!e.params)return;let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(e.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=e.params,o=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,s=o?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,c=o?i.startRow:i.startColumn,l=o?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u}=e;t.Rectangle.intersects(e,i)||(o?c<n&&l>r?(n-=s,r-=s):c>r&&l<=n&&(n+=s,r+=s):c<a&&l>u?(a-=s,u-=s):c>u&&l<=a&&(a+=s,u+=s)),this._checkIsRightRange({startRow:n,endRow:r,startColumn:a,endColumn:u})&&(e.startColumn=a,e.endColumn=u,e.startRow=n,e.endRow=r)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}if(nd.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=e.params;if(!r)return;let{range:i}=r,a=e.id.includes(`row`),o=e.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;o?a?s<=t&&(t+=l,n+=l):s<=r&&(r+=l,i+=l):a?c<t&&(t-=l,n-=l):c<r&&(r-=l,i-=l),this._checkIsRightRange({startRow:t,endRow:n,startColumn:r,endColumn:i})&&(e.startColumn=r,e.endColumn=i,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(nd.includes(e.id)||rd.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===Pc.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:Dn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:kn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};id=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IUniverInstanceService)),w(2,t.ICommandService),w(3,(0,t.Inject)($a)),w(4,(0,t.Inject)(Uu)),w(5,(0,t.Inject)(Wu)),w(6,(0,t.Inject)(k)),w(7,(0,t.Inject)(V))],id);let ad=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`:Hl().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:Hl().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&&Hl().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:[nr.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:q.SelectRange,actions:Ul})}),i.forEach(t=>{Hl().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};ad=T([w(0,(0,t.Inject)(V)),w(1,(0,t.Inject)(t.IPermissionService)),w(2,(0,t.Inject)(t.IResourceManagerService)),w(3,(0,t.Inject)(Wu)),w(4,(0,t.Inject)(t.IUniverInstanceService))],ad);let od=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()}};od=T([w(0,(0,t.Inject)(N))],od);let sd=class extends t.Plugin{constructor(e=pc,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},pc,this._config);this._configService.setConfig(dc,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=[[Fc],[mc],[U],[$a],[Bu],[lu,{useClass:td}],[k],[od],[oa],[Yu],[co],[Zu],[Fu],[Hu],[Ru],[Xl],[Do],[zl],[Qu],[Vu],[zu],[N],[Uu],[V],[Wu],[id],[ad],[$u,{useClass:ed,deps:[U]}],[rc,{useClass:nc}],[Nu]];(e=this._config)!=null&&e.notExecuteFormula||n.push([Xu]),(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)(n,this._config.override)),(0,t.touchDependencies)(this._injector,[[k],[ad],[$u],[Vu],[Ru]])}onStarting(){var e;(0,t.touchDependencies)(this._injector,[[Yu],[co],[Bu],[Xl],[Qu],[oa],[Nu]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([qu])}onRendered(){(0,t.touchDependencies)(this._injector,[[lu]])}onReady(){(0,t.touchDependencies)(this._injector,[[qu],[Xu],[Fu],[Hu],[N],[Zu],[Uu],[id],[$a],[zu]])}};C(sd,`pluginName`,`SHEET_PLUGIN`),C(sd,`packageName`,Gu),C(sd,`version`,Ku),C(sd,`type`,t.UniverInstanceType.UNIVER_SHEET),sd=T([(0,t.DependentOn)(i.UniverFormulaEnginePlugin),w(1,(0,t.Inject)(t.Injector)),w(2,t.IConfigService)],sd);let cd={WorkbookCommentPermission:kr,WorkbookCopyPermission:Ar,WorkbookCreateProtectPermission:Mr,WorkbookCreateSheetPermission:Nr,WorkbookDeleteSheetPermission:Ir,WorkbookDuplicatePermission:Lr,WorkbookEditablePermission:Rr,WorkbookExportPermission:zr,WorkbookHideSheetPermission:Br,WorkbookManageCollaboratorPermission:Ur,WorkbookMoveSheetPermission:Wr,WorkbookPrintPermission:Gr,WorkbookRecoverHistoryPermission:Kr,WorkbookRenameSheetPermission:qr,WorkbookSharePermission:Jr,WorkbookViewHistoryPermission:Xr,WorkbookViewPermission:Yr,WorksheetCopyPermission:Zr,WorksheetDeleteColumnPermission:Qr,WorksheetDeleteProtectionPermission:$r,WorksheetDeleteRowPermission:ei,WorksheetEditExtraObjectPermission:ni,WorksheetEditPermission:ti,WorksheetFilterPermission:ri,WorksheetInsertColumnPermission:ii,WorksheetInsertHyperlinkPermission:ai,WorksheetInsertRowPermission:oi,WorksheetManageCollaboratorPermission:si,WorksheetPivotTablePermission:ci,WorksheetSetCellStylePermission:di,WorksheetSetCellValuePermission:fi,WorksheetSetColumnStylePermission:pi,WorksheetSetRowStylePermission:mi,WorksheetSortPermission:hi,WorksheetViewPermission:gi,RangeProtectionPermissionEditPoint:Dr,RangeProtectionPermissionViewPoint:Or},ld=(e,n,r,i)=>{let a=e.get(t.IPermissionService),o=e.get(V),s=a.getPermissionPoint(new Rr(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new ti(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 Dr(n,r,t).id);return!!(i!=null&&i.value)}):!0},ud=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.startRow-i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l--,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l>=s)return{...r,startRow:l,endRow:l};if(o)return fd(e,n,{...r,startRow:c,endRow:c},i,a,!1)},dd=(e,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=t.Range.transformRange(e,n),l=r.endRow+i,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;for(;!n.getRowVisible(l)||!d;)l++,u=n.getMergedCell(l,r.startColumn),d=!u||u.startRow===l&&u.startColumn===r.startColumn;if(l<=c)return{...r,startRow:l,endRow:l};if(o)return pd(e,n,{...r,startRow:s,endRow:s},i,a,!1)},fd=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.startColumn-i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l--,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l>=s)return{...r,startColumn:l,endColumn:l};if(o)return ud(e,n,{...r,startColumn:c,endColumn:c},i,a,!1)},pd=(e,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=t.Range.transformRange(e,n),l=r.endColumn+i,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;for(;!n.getColVisible(l)||!d;)l++,u=n.getMergedCell(r.startRow,l),d=!u||u.startRow===r.startRow&&u.startColumn===l;if(l<=c)return{...r,endColumn:l,startColumn:l};if(o)return dd(e,n,{...r,startColumn:s,endColumn:s},i,a,!1)};function md(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 hd=(e,n,r,i,a=1)=>{switch(i){case t.Direction.UP:return ud(e,n,r,a);case t.Direction.DOWN:return dd(e,n,r,a);case t.Direction.LEFT:return fd(e,n,r,a);case t.Direction.RIGHT:return pd(e,n,r,a)}},gd=(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:hd(i.range,r,l,n);if(!e)return null;let t=h?md(e.endRow,e.endColumn,r):md(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?md(c.range.endRow,c.range.endColumn,r):md(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function _d(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 vd(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:_d(t,n),primaryWithCoord:r&&yd(t,r),style:i}}function yd(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 bd(e,t,n,i){let{from:a,to:o}=n,{column:s,columnOffset:c,row:l,rowOffset:u}=a,{column:d,columnOffset:f,row:p,rowOffset:m}=o,h=_d(i,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=_d(i,{startColumn:d,endColumn:d,startRow:p,endRow:p}),{startX:_,startY:v}=h,{startX:y,startY:b}=g,x=(0,r.precisionTo)(_+c,1),S=(0,r.precisionTo)(v+u,1),C=(0,r.precisionTo)(y+f-x,1),w=(0,r.precisionTo)(b+m-S,1);return h.startX===g.endX&&(C=0),h.startY===g.endY&&(w=0),{unitId:e,subUnitId:t,left:x,top:S,width:C,height:w}}function xd(e,t,n,i,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=_d(o,{startColumn:s,endColumn:s,startRow:l,endRow:l}),p=(0,r.precisionTo)(d+c,1),m=(0,r.precisionTo)(f+u,1),h=o.getCellIndexAndOffsetByPosition(p+i,m+a);return{unitId:e,subUnitId:t,sheetTransform:{from:{column:s,columnOffset:c,row:l,rowOffset:u},to:h},transform:{left:p,top:m,width:i,height:a}}}e.AFFECT_LAYOUT_STYLES=No,e.AFTER_CELL_EDIT=D,e.AUTO_FILL_APPLY_TYPE=Z,e.AUTO_FILL_DATA_TYPE=Q,e.AUTO_FILL_HOOK_TYPE=js,e.AddMergeRedoSelectionsOperationFactory=fo,e.AddMergeUndoMutationFactory=m,e.AddMergeUndoSelectionsOperationFactory=po,e.AddRangeProtectionCommand=An,e.AddRangeProtectionMutation=kn,e.AddRangeThemeMutation=yu,e.AddWorksheetMergeAllCommand=So,e.AddWorksheetMergeCommand=xo,e.AddWorksheetMergeHorizontalCommand=wo,e.AddWorksheetMergeMutation=h,e.AddWorksheetMergeVerticalCommand=Co,e.AddWorksheetProtectionCommand=Ao,e.AddWorksheetProtectionMutation=Oo,e.AppendRowCommand=Mo,e.AutoClearContentCommand=lc,e.AutoFillCommand=ic,Object.defineProperty(e,`AutoFillController`,{enumerable:!0,get:function(){return Nu}}),e.AutoFillRules=qs,Object.defineProperty(e,`AutoFillService`,{enumerable:!0,get:function(){return nc}}),e.AutoFillTools=As,e.BEFORE_CELL_EDIT=E,e.BorderStyleManagerService=Fc,e.COMMAND_LISTENER_SKELETON_CHANGE=Rt,e.COMMAND_LISTENER_VALUE_CHANGE=zt,e.CancelFrozenCommand=ol,e.CancelMarkDirtyRowAutoHeightOperation=Tu,e.ClearSelectionAllCommand=Nn,e.ClearSelectionContentCommand=uc,e.ClearSelectionFormatCommand=Pn,e.CopySheetCommand=Sc,e.CopyWorksheetEndMutation=hc,e.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(e,`DefinedNameDataController`,{enumerable:!0,get:function(){return Fu}}),e.DeleteRangeMoveLeftCommand=Ci,e.DeleteRangeMoveUpCommand=Ti,e.DeleteRangeProtectionCommand=wc,e.DeleteRangeProtectionMutation=Dn,e.DeleteWorksheetProtectionCommand=Tc,e.DeleteWorksheetProtectionMutation=ko,e.DeleteWorksheetRangeThemeStyleCommand=Ec,e.DeleteWorksheetRangeThemeStyleMutation=ve,e.DeleteWorksheetRangeThemeStyleMutationFactory=ye,e.DeltaColumnWidthCommand=Tl,e.DeltaRowHeightCommand=iu,e.EditStateEnum=Tn,e.EffectRefRangId=J,e.EmptyMutation=bu,e.ExclusiveRangeService=ed,e.FactoryAddRangeProtectionMutation=On,e.FactoryDeleteRangeProtectionMutation=En,e.FactorySetRangeProtectionMutation=cl,e.IAutoFillService=rc,e.IExclusiveRangeService=$u,e.INTERCEPTOR_POINT=g,e.INumfmtService=lu,e.IRefSelectionsService=Un,e.InsertColAfterCommand=Vi,e.InsertColBeforeCommand=Bi,e.InsertColByRangeCommand=zi,e.InsertColCommand=Ri,e.InsertColMutation=Se,e.InsertColMutationUndoFactory=xe,e.InsertDefinedNameCommand=Dc,e.InsertMultiColsLeftCommand=Hi,e.InsertMultiColsRightCommand=Ui,e.InsertMultiRowsAboveCommand=Fi,e.InsertMultiRowsAfterCommand=Ii,e.InsertRangeMoveDownCommand=Di,e.InsertRangeMoveRightCommand=ki,e.InsertRowAfterCommand=Pi,e.InsertRowBeforeCommand=Ni,e.InsertRowByRangeCommand=Mi,e.InsertRowCommand=ji,e.InsertRowMutation=P,e.InsertRowMutationUndoFactory=be,e.InsertSheetCommand=Oc,e.InsertSheetMutation=_c,e.InsertSheetUndoMutationFactory=gc,e.InterceptCellContentPriority=_,e.MAX_CELL_PER_SHEET_KEY=Pu,e.MERGE_CELL_INTERCEPTOR_CHECK=so,e.MarkDirtyFilterChangeMutation=xu,e.MarkDirtyRowAutoHeightOperation=wu,Object.defineProperty(e,`MergeCellController`,{enumerable:!0,get:function(){return co}}),e.MoveColsCommand=ia,e.MoveColsMutation=De,e.MoveColsMutationUndoFactory=Ee,e.MoveRangeCommand=Jn,e.MoveRangeMutation=Ce,e.MoveRowsCommand=na,e.MoveRowsMutation=Te,e.MoveRowsMutationUndoFactory=we,Object.defineProperty(e,`NumfmtService`,{enumerable:!0,get:function(){return td}}),e.OperatorType=Y,e.PermissionPointsDefinitions=cd,e.REF_SELECTIONS_ENABLED=Mn,e.RangeMergeUtil=rn,Object.defineProperty(e,`RangeProtectionCache`,{enumerable:!0,get:function(){return Wu}}),e.RangeProtectionPermissionDeleteProtectionPoint=Bl,e.RangeProtectionPermissionEditPoint=Dr,e.RangeProtectionPermissionManageCollaPoint=Vl,e.RangeProtectionPermissionViewPoint=Or,Object.defineProperty(e,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return id}}),Object.defineProperty(e,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return Uu}}),e.RangeProtectionRuleModel=V,Object.defineProperty(e,`RangeProtectionService`,{enumerable:!0,get:function(){return ad}}),e.RangeThemeStyle=te,Object.defineProperty(e,`RefRangeService`,{enumerable:!0,get:function(){return $a}}),Object.defineProperty(e,`RefSelectionsService`,{enumerable:!0,get:function(){return Wn}}),e.RefillCommand=kc,e.RegisterWorksheetRangeThemeStyleCommand=Mc,e.RegisterWorksheetRangeThemeStyleMutation=Ac,e.RemoveColByRangeCommand=Yi,e.RemoveColCommand=Xi,e.RemoveColMutation=F,e.RemoveDefinedNameCommand=Nc,e.RemoveMergeUndoMutationFactory=I,e.RemoveNumfmtMutation=fu,e.RemoveRangeThemeMutation=Su,e.RemoveRowByRangeCommand=Ki,e.RemoveRowCommand=qi,e.RemoveRowMutation=ke,e.RemoveSheetCommand=Pc,e.RemoveSheetMutation=Qi,e.RemoveSheetUndoMutationFactory=Zi,e.RemoveWorksheetMergeCommand=mo,e.RemoveWorksheetMergeMutation=L,e.ReorderRangeCommand=da,e.ReorderRangeMutation=Me,e.ReorderRangeUndoMutationFactory=je,e.ResetBackgroundColorCommand=Wo,e.ResetTextColorCommand=Ho,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=dc,e.ScrollToCellOperation=Eu,e.SelectRangeCommand=Kn,e.SelectionMoveType=H,e.SetBackgroundColorCommand=Uo,e.SetBoldCommand=Po,e.SetBorderBasicCommand=Jc,e.SetBorderColorCommand=qc,e.SetBorderCommand=Wc,e.SetBorderPositionCommand=Gc,e.SetBorderStyleCommand=Kc,e.SetColDataCommand=Yc,e.SetColDataMutation=Ie,e.SetColDataMutationFactory=Fe,e.SetColHiddenCommand=Qc,e.SetColHiddenMutation=Re,e.SetColVisibleMutation=Be,e.SetColWidthCommand=El,e.SetDefinedNameCommand=nl,e.SetFontFamilyCommand=zo,e.SetFontSizeCommand=Bo,e.SetFrozenCommand=al,e.SetFrozenMutation=il,e.SetFrozenMutationFactory=rl,e.SetGridlinesColorCommand=sl,e.SetGridlinesColorMutation=Ve,e.SetHorizontalTextAlignCommand=Ko,e.SetItalicCommand=Fo,e.SetNumfmtMutation=du,e.SetOverlineCommand=Ro,e.SetProtectionCommand=ul,e.SetRangeCustomMetadataCommand=dl,e.SetRangeProtectionMutation=$,e.SetRangeThemeMutation=Cu,e.SetRangeValuesCommand=_i,e.SetRangeValuesMutation=z,e.SetRangeValuesUndoMutationFactory=R,e.SetRowDataCommand=fl,e.SetRowDataMutation=gt,e.SetRowDataMutationFactory=ht,e.SetRowHeightCommand=au,e.SetRowHiddenCommand=hl,e.SetRowHiddenMutation=bt,e.SetRowVisibleMutation=vt,e.SetSelectedColsVisibleCommand=Zc,e.SetSelectedRowsVisibleCommand=ml,e.SetSelectionsOperation=G,e.SetSpecificColsVisibleCommand=Xc,e.SetSpecificRowsVisibleCommand=pl,e.SetStrikeThroughCommand=Lo,e.SetStyleCommand=X,e.SetTabColorCommand=xl,e.SetTabColorMutation=bl,e.SetTextColorCommand=Vo,e.SetTextRotationCommand=Jo,e.SetTextWrapCommand=qo,e.SetUnderlineCommand=Io,e.SetVerticalTextAlignCommand=Go,e.SetWorkbookNameCommand=Cl,e.SetWorkbookNameMutation=Sl,e.SetWorksheetActivateCommand=wl,e.SetWorksheetActiveOperation=It,e.SetWorksheetColWidthMutation=St,e.SetWorksheetColWidthMutationFactory=xt,e.SetWorksheetColumnCountCommand=Ol,e.SetWorksheetColumnCountMutation=wt,e.SetWorksheetColumnCountUndoMutationFactory=Ct,e.SetWorksheetDefaultStyleCommand=kl,e.SetWorksheetDefaultStyleMutation=Tt,e.SetWorksheetDefaultStyleMutationFactory=Et,e.SetWorksheetHideCommand=Ml,e.SetWorksheetHideMutation=jl,e.SetWorksheetNameCommand=Fl,e.SetWorksheetNameMutation=Pl,e.SetWorksheetOrderCommand=Rl,e.SetWorksheetOrderMutation=Ll,e.SetWorksheetPermissionPointsCommand=Ql,e.SetWorksheetPermissionPointsMutation=Zl,e.SetWorksheetProtectionCommand=$l,e.SetWorksheetProtectionMutation=ll,e.SetWorksheetRangeThemeStyleCommand=jo,e.SetWorksheetRangeThemeStyleMutation=ge,e.SetWorksheetRangeThemeStyleMutationFactory=_e,e.SetWorksheetRightToLeftCommand=nu,e.SetWorksheetRightToLeftMutation=tu,e.SetWorksheetRowAutoHeightMutation=Pt,e.SetWorksheetRowAutoHeightMutationFactory=jt,e.SetWorksheetRowCountCommand=ru,e.SetWorksheetRowCountMutation=Ot,e.SetWorksheetRowCountUndoMutationFactory=Dt,e.SetWorksheetRowHeightMutation=Mt,e.SetWorksheetRowHeightMutationFactory=kt,e.SetWorksheetRowIsAutoHeightCommand=ou,e.SetWorksheetRowIsAutoHeightMutation=Nt,e.SetWorksheetRowIsAutoHeightMutationFactory=At,e.SetWorksheetShowCommand=su,e.SheetCopyDownCommand=sc,e.SheetCopyRightCommand=cc,Object.defineProperty(e,`SheetInterceptorService`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(e,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return mc}}),Object.defineProperty(e,`SheetPermissionCheckController`,{enumerable:!0,get:function(){return zu}}),Object.defineProperty(e,`SheetPermissionInitController`,{enumerable:!0,get:function(){return Vu}}),Object.defineProperty(e,`SheetRangeThemeModel`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,`SheetRangeThemeService`,{enumerable:!0,get:function(){return od}}),e.SheetSkeletonChangeType=B,Object.defineProperty(e,`SheetSkeletonService`,{enumerable:!0,get:function(){return oa}}),e.SheetValueChangeType=Lt,Object.defineProperty(e,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return Ru}}),Object.defineProperty(e,`SheetsSelectionsService`,{enumerable:!0,get:function(){return U}}),e.SplitDelimiterEnum=sn,e.SplitTextToColumnsCommand=cu,e.TextToNumberCommand=hu,e.ToggleCellCheckboxCommand=gu,e.ToggleGridlinesCommand=_u,e.ToggleGridlinesMutation=Ft,e.UnitAction=K,e.UnitObject=q,Object.defineProperty(e,`UniverSheetsPlugin`,{enumerable:!0,get:function(){return sd}}),e.UnregisterWorksheetRangeThemeStyleCommand=vu,e.UnregisterWorksheetRangeThemeStyleMutation=jc,e.VALIDATE_CELL=O,e.ViewStateEnum=wn,e.WorkbookCommentPermission=kr,e.WorkbookCopyPermission=Ar,e.WorkbookCopySheetPermission=jr,e.WorkbookCreateProtectPermission=Mr,e.WorkbookCreateSheetPermission=Nr,e.WorkbookDeleteColumnPermission=Pr,e.WorkbookDeleteRowPermission=Fr,e.WorkbookDeleteSheetPermission=Ir,e.WorkbookDuplicatePermission=Lr,e.WorkbookEditablePermission=Rr,e.WorkbookExportPermission=zr,e.WorkbookHideSheetPermission=Br,e.WorkbookInsertColumnPermission=Vr,e.WorkbookInsertRowPermission=Hr,e.WorkbookManageCollaboratorPermission=Ur,e.WorkbookMoveSheetPermission=Wr,Object.defineProperty(e,`WorkbookPermissionService`,{enumerable:!0,get:function(){return Bu}}),e.WorkbookPrintPermission=Gr,e.WorkbookRecoverHistoryPermission=Kr,e.WorkbookRenameSheetPermission=qr,e.WorkbookSelectionModel=jn,e.WorkbookSharePermission=Jr,e.WorkbookViewHistoryPermission=Xr,e.WorkbookViewPermission=Yr,e.WorksheetCopyPermission=Zr,e.WorksheetDeleteColumnPermission=Qr,e.WorksheetDeleteProtectionPermission=$r,e.WorksheetDeleteRowPermission=ei,e.WorksheetEditExtraObjectPermission=ni,e.WorksheetEditPermission=ti,e.WorksheetFilterPermission=ri,e.WorksheetInsertColumnPermission=ii,e.WorksheetInsertHyperlinkPermission=ai,e.WorksheetInsertRowPermission=oi,e.WorksheetManageCollaboratorPermission=si,Object.defineProperty(e,`WorksheetPermissionService`,{enumerable:!0,get:function(){return Xl}}),e.WorksheetPivotTablePermission=ci,e.WorksheetProtectionPointModel=zl,e.WorksheetProtectionRuleModel=Do,e.WorksheetSelectProtectedCellsPermission=li,e.WorksheetSelectUnProtectedCellsPermission=ui,e.WorksheetSetCellStylePermission=di,e.WorksheetSetCellValuePermission=fi,e.WorksheetSetColumnStylePermission=pi,e.WorksheetSetRowStylePermission=mi,e.WorksheetSortPermission=hi,e.WorksheetViewPermission=gi,Object.defineProperty(e,`ZebraCrossingCacheController`,{enumerable:!0,get:function(){return Hu}}),e.addMergeCellsUtil=To,e.adjustRangeOnMutation=Ka,e.alignToMergedCellsBorders=Fn,e.attachPrimaryWithCoord=yd,e.attachRangeWithCoord=_d,e.attachSelectionWithCoord=vd,e.baseProtectionActions=Ul,e.checkCellValueType=u,e.checkRangesEditablePermission=ld,e.convertPositionCellToSheetOverGrid=xd,e.convertPositionSheetOverGridToAbsolute=bd,e.convertPrimaryWithCoordToPrimary=on,e.convertSelectionDataToRange=an,e.copyRangeStyles=Hn,e.countCells=la,e.createTopMatrixFromMatrix=Qt,e.createTopMatrixFromRanges=Zt,e.defaultLargeSheetOperationConfig=fc,e.defaultWorkbookPermissionPoints=Kl,e.defaultWorksheetPermissionPoint=Yl,e.discreteRangeToRange=xn,e.expandToContinuousRange=Xt,e.factoryRemoveNumfmtUndoMutation=pu,e.factorySetNumfmtUndoMutation=uu,e.findAllRectangle=tn,e.findFirstNonEmptyCell=_n,e.followSelectionOperation=Rn,e.generateNullCell=vn,e.generateNullCellValue=yn,e.getAddMergeMutationRangeByType=oo,e.getAllRangePermissionPoint=Hl,e.getAllWorkbookPermissionPoint=Gl,e.getAllWorksheetPermissionPoint=ql,e.getAllWorksheetPermissionPointByPointPanel=Jl,e.getCellAtRowCol=In,e.getClearContentMutationParamForRange=bo,e.getClearContentMutationParamsForRanges=yo,e.getDefaultRangePermission=Wl,e.getInsertRangeMutations=vi,e.getMoveRangeCommandMutations=Xn,e.getMoveRangeUndoRedoMutations=Zn,e.getNextPrimaryCell=gd,e.getPrimaryForRange=W,e.getRemoveRangeMutations=yi,e.getSelectionsService=Gn,e.getSeparateEffectedRangesOnCommand=Ya,e.getSheetCommandTarget=f,e.getSheetCommandTargetWorkbook=d,e.getSheetMutationTarget=p,e.getSkeletonChangedEffectedRange=Vt,e.getValueChangedEffectedRange=Bt,e.getVisibleRanges=Cn,e.handleBaseInsertRange=Ea,e.handleBaseMoveRowsCols=ma,e.handleBaseRemoveRange=Sa,e.handleCommonDefaultRangeChangeWithEffectRefCommands=Wa,e.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=Ga,e.handleDefaultRangeChangeWithEffectRefCommands=Ha,e.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Ua,e.handleDeleteRangeMoveLeft=Pa,e.handleDeleteRangeMoveUp=Ia,e.handleDeleteRangeMutation=xi,e.handleIRemoveCol=Ca,e.handleIRemoveRow=wa,e.handleInsertCol=ka,e.handleInsertRangeMoveDown=Aa,e.handleInsertRangeMoveRight=Ma,e.handleInsertRangeMutation=bi,e.handleInsertRow=Oa,e.handleMoveCols=va,e.handleMoveRange=ba,e.handleMoveRows=ha,e.isSingleCellSelection=zn,e.rangeMerge=nn,e.rangeToDiscreteRange=Sn,e.rotateRange=pa,e.runRefRangeMutations=Va,e.setEndForRange=Ln,e.splitRangeText=pn,e.transformCellsToRange=mu});
|