@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/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`rxjs`),n=require(`@univerjs/protocol`),r=require(`@univerjs/engine-render`),i=require(`@univerjs/engine-formula`),a=require(`rxjs/operators`),o=require(`@univerjs/rpc`);function s(t,n,r){var i;if(n.t)return n.t;if(n.v===null)return null;let a=t.getStyleByCell(n),o=t.getStyleByCell(r);if(r.t===e.CellValueType.FORCE_STRING){var s;if(!(0,e.isTextFormat)(o==null||(s=o.n)==null?void 0:s.pattern)&&n.v!==void 0){if((0,e.isRealNum)(n.v))return e.CellValueType.NUMBER;if((0,e.isBooleanString)(`${n.v}`))return e.CellValueType.BOOLEAN}return e.CellValueType.FORCE_STRING}if(l(a)){var u;return(0,e.isTextFormat)(a==null||(u=a.n)==null?void 0:u.pattern)?e.CellValueType.STRING:c(n,r)}return(0,e.isTextFormat)(o==null||(i=o.n)==null?void 0:i.pattern)?e.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(t,n){return t===null?null:typeof t==`string`?(0,e.isRealNum)(t)?(+t==0||+t==1)&&n===e.CellValueType.BOOLEAN?e.CellValueType.BOOLEAN:n!==e.CellValueType.STRING&&n!==e.CellValueType.FORCE_STRING&&(0,e.willLoseNumericPrecision)(t)?e.CellValueType.FORCE_STRING:e.CellValueType.NUMBER:(0,e.isBooleanString)(t)?e.CellValueType.BOOLEAN:e.CellValueType.STRING:typeof t==`number`?(t===0||t===1)&&n===e.CellValueType.BOOLEAN?e.CellValueType.BOOLEAN:e.CellValueType.NUMBER:typeof t==`boolean`?e.CellValueType.BOOLEAN:e.CellValueType.FORCE_STRING}function d(t,n){let{unitId:r}=n,i=r?t.getUnit(r,e.UniverInstanceType.UNIVER_SHEET):t.getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET);return i?{workbook:i,unitId:i.getUnitId()}:null}function f(t,n={}){let{unitId:r,subUnitId:i}=n,a=r?t.getUnit(r,e.UniverInstanceType.UNIVER_SHEET):t.getCurrentUnitOfType(e.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(t,n){let{unitId:r,subUnitId:i}=n,a=t.getUnit(r,e.UniverInstanceType.UNIVER_SHEET);if(!a)return null;let o=a.getSheetBySheetId(i);return o?{worksheet:o,workbook:a}:null}const m=(t,n)=>{if(!p(t.get(e.IUniverInstanceService),n))throw Error(`Workbook or worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:e.Tools.deepClone(n.ranges)}},h={id:`sheet.mutation.add-worksheet-merge`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.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,e.createInterceptorKey)(`CELL_CONTENT`),ROW_FILTERED:(0,e.createInterceptorKey)(`ROW_FILTERED`)};let _=function(e){return e[e.DATA_VALIDATION=9]=`DATA_VALIDATION`,e[e.NUMFMT=10]=`NUMFMT`,e[e.CELL_IMAGE=11]=`CELL_IMAGE`,e}({});const 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}const E=(0,e.createInterceptorKey)(`BEFORE_CELL_EDIT`),D=(0,e.createInterceptorKey)(`AFTER_CELL_EDIT`),O=(0,e.createInterceptorKey)(`VALIDATE_CELL`);let k=class extends e.Disposable{constructor(t){super(),this._univerInstanceService=t,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 e.InterceptorManager({BEFORE_CELL_EDIT:E,AFTER_CELL_EDIT:D,VALIDATE_CELL:O})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(g.CELL_CONTENT,{priority:-1,effect:e.InterceptorEffectEnum.Style|e.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(t){if(this._commandInterceptors.includes(t))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._commandInterceptors.push(t),this._commandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,e.toDisposable)(()=>(0,e.remove)(this._commandInterceptors,t)))}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(t){if(this._afterCommandInterceptors.includes(t))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._afterCommandInterceptors.push(t),this._afterCommandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,e.toDisposable)(()=>(0,e.remove)(this._afterCommandInterceptors,t)))}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(t){if(this._autoHeightInterceptors.includes(t))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._autoHeightInterceptors.push(t),this._autoHeightInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,e.toDisposable)(()=>(0,e.remove)(this._autoHeightInterceptors,t)))}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(t){if(this._beforeCommandInterceptor.includes(t))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._beforeCommandInterceptor.push(t),this._beforeCommandInterceptor.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,e.toDisposable)(()=>(0,e.remove)(this._beforeCommandInterceptor,t)))}async beforeCommandExecute(e){return(await Promise.all(this._beforeCommandInterceptor.map(t=>t.performCheck(e)))).every(e=>e)}interceptRanges(t){if(this._rangeInterceptors.includes(t))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._rangeInterceptors.push(t),this._rangeInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe((0,e.toDisposable)(()=>(0,e.remove)(this._rangeInterceptors,t)))}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(t,n,r,i,a){let o={subUnitId:n.getSheetId(),unitId:t.getUnitId(),workbook:t,worksheet:n,row:r,col:i,origin:e.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(t,n){let r=t;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 t=e.InterceptorEffectEnum.Style|e.InterceptorEffectEnum.Value;this._interceptorsByName.set(`${r}-${t}`,a);let i=e.InterceptorEffectEnum.Style|e.InterceptorEffectEnum.Value;return this._interceptorsByName.set(`${r}-${e.InterceptorEffectEnum.Style}`,a.filter(t=>((t.effect||i)&e.InterceptorEffectEnum.Style)>0)),this._interceptorsByName.set(`${r}-${e.InterceptorEffectEnum.Value}`,a.filter(t=>((t.effect||i)&e.InterceptorEffectEnum.Value)>0)),this.disposeWithMe((0,e.toDisposable)(()=>{(0,e.remove)(this._interceptorsByName.get(r),n),(0,e.remove)(this._interceptorsByName.get(`${r}-${t}`),n),(0,e.remove)(this._interceptorsByName.get(`${r}-${e.InterceptorEffectEnum.Style}`),n),(0,e.remove)(this._interceptorsByName.get(`${r}-${e.InterceptorEffectEnum.Value}`),n)}))}else return this._interceptorsByName.set(r,a),this.disposeWithMe((0,e.toDisposable)(()=>(0,e.remove)(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(t,n,r,i){var a;let o=n===void 0?t:`${t}-${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 t=this._interceptorsByName.get(o);t&&i&&(t=t.filter(i)),c=(0,e.composeInterceptors)(t||[]),this._composedInterceptorByKey.set(s,c),this._composedInterceptorsLengthByKey.set(s,(t==null?void 0:t.length)||0)}return c}_interceptWorkbook(t){let n=new e.DisposableCollection,r=t.getUnitId(),i=this,a=n=>{let a=n.getSheetId();n.__interceptViewModel(o=>{let s=new e.DisposableCollection;i._worksheetDisposables.set(A(r,n),s),s.add(o.registerCellContentInterceptor({getCell(e,o,s,c,l){let u=n.getCellRaw(e,o);return i.fetchThroughInterceptors(g.CELL_CONTENT,s,c,l)(u,{unitId:r,subUnitId:a,row:e,col:o,worksheet:n,workbook:t,rawData:u})}})),s.add(o.registerRowFilteredInterceptor({getRowFiltered(e){return!!i.fetchThroughInterceptors(g.ROW_FILTERED)(!1,{unitId:r,subUnitId:a,row:e,workbook:t,worksheet:n})}}))})};t.getSheets().forEach(e=>a(e)),n.add(t.sheetCreated$.subscribe(e=>a(e))),n.add((0,e.toDisposable)(()=>t.getSheets().forEach(e=>this._disposeSheetInterceptor(r,e)))),n.add(t.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,e.IUniverInstanceService)],k);function A(e,t){return`${e}|${t.getSheetId()}`}const 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}const 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()}};const 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=(t,n,r,i)=>new te(`dark-${t}`,{headerRowStyle:{bg:{rgb:n},cl:{rgb:`rgb(255, 255, 255)`},ht:e.HorizontalAlign.CENTER,bl:e.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:e.HorizontalAlign.CENTER,bl:e.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:e.BorderStyleTypes.THIN,cl:{rgb:`rgb(68,114,196)`}}},ht:e.HorizontalAlign.CENTER,bl:e.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 e.Disposable{constructor(e,n,r){super(),this._sheetInterceptorService=e,this._resourceManagerService=n,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 t.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(t){return this._rTreeCollection.has(t)||this._rTreeCollection.set(t,new e.RTree),this._rTreeCollection.get(t)}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(t,n){let{unitId:r,subUnitId:i,range:a}=n,o=(0,e.generateRandomId)(),s=this._ensureRangeThemeStyleRuleMap(r),c=this._ensureRTreeCollection(r);s.set(o,{rangeInfo:n,themeName:t}),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:e.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:[e.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,e.Inject)(k)),w(1,(0,e.Inject)(e.IResourceManagerService)),w(2,(0,e.Inject)(e.IUniverInstanceService))],N);const ge={id:`sheet.mutation.set-worksheet-range-theme-style`,type:e.CommandType.MUTATION,handler:(t,n)=>{if(!f(t.get(e.IUniverInstanceService),n))return!1;let r=t.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.registerRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},_e=(t,n)=>{let r=p(t.get(e.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:e.CommandType.MUTATION,handler:(t,n)=>{if(!f(t.get(e.IUniverInstanceService),n))return!1;let r=t.get(N),{unitId:i,subUnitId:a,range:o,themeName:s}=n;return r.removeRangeThemeRule(s,{range:o,unitId:i,subUnitId:a}),!0}},ye=(t,n)=>{let r=p(t.get(e.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=(t,n)=>{if(!p(t.get(e.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:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.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=(t,n)=>{if(!p(t.get(e.IUniverInstanceService),n))throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},F={id:`sheet.mutation.insert-col`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.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}},Se={id:`sheet.mutation.move-range`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{from:r,to:i}=n;if(!r||!i)return!1;let a=t.get(e.IUniverInstanceService).getCurrentUnitForType(e.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 e.ObjectMatrix(r.value).forValue((e,t,n)=>{n==null?c.realDeleteValue(e,t):c.setValue(e,t,n)}),new e.ObjectMatrix(i.value).forValue((e,t,n)=>{n==null?l.realDeleteValue(e,t):l.setValue(e,t,n)}),!0}};function Ce(t,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:e.Rectangle.clone(o),targetRange:{...a,endRow:a.endRow+c,startRow:a.startRow+c}}:{unitId:r,subUnitId:i,targetRange:e.Rectangle.clone(a),sourceRange:{...o,endRow:o.endRow-c,startRow:o.startRow-c}}}const we={id:`sheet.mutation.move-rows`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=t.get(e.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,e.moveMatrixArray)(l,u,d,c.getRowManager().getRowData()),c.getCellMatrix().moveRows(l,u,d),!0}};function Te(t,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:e.Rectangle.clone(o),targetRange:{...a,endColumn:a.endColumn+c,startColumn:a.startColumn+c}}:{unitId:r,subUnitId:i,targetRange:e.Rectangle.clone(a),sourceRange:{...o,startColumn:o.startColumn-c,endColumn:o.endColumn-c}}}const Ee={id:`sheet.mutation.move-columns`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{unitId:r,subUnitId:i,sourceRange:a,targetRange:o}=n,s=t.get(e.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,e.moveMatrixArray)(l,u,d,c.getColumnManager().getColumnData()),c.getCellMatrix().moveColumns(l,u,d),!0}},De=(t,n)=>{let r=n.getRowManager().getRowData(),i={},a=t.range,o=(0,e.concatMatrixArray)(i,(0,e.sliceMatrixArray)(a.startRow,a.endRow,r));return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,rowInfo:o}},I={id:`sheet.mutation.remove-rows`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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,e.spliceArray)(a.startRow,c,o),i.getCellMatrix().removeRows(a.startRow,c),i.setRowCount(i.getRowCount()-c),!0}},Oe=(t,n)=>{let r=t.get(e.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,e.concatMatrixArray)(o,(0,e.sliceMatrixArray)(s.startColumn,s.endColumn,a));return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,colInfo:c}},L={id:`sheet.mutation.remove-col`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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,e.spliceArray)(a.startColumn,s,o),i.setColumnCount(i.getColumnCount()-s),i.getCellMatrix().removeColumns(a.startColumn,s),!0}},R=(t,n)=>{let r=p(t.get(e.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 t=0;t<o.length;t++)for(let n=a.length-1;n>=0;n--){let r=a[n],i=o[t];e.Rectangle.intersects(r,i)&&s.push(a[n])}return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:s}},z={id:`sheet.mutation.remove-worksheet-merge`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.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 t=0;t<o.length;t++)for(let n=a.length-1;n>=0;n--){let r=a[n],i=o[t];e.Rectangle.intersects(r,i)&&a.splice(n,1)}return i.getSpanModel().rebuild(a),!0}},ke=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},Ae={id:`sheet.mutation.reorder-range`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{subUnitId:r,unitId:i,range:a,order:o}=n,s=t.get(e.IUniverInstanceService).getUnit(i).getSheetBySheetId(r);if(!s)return!1;let c=new e.ObjectMatrix;e.Range.foreach(a,(t,n)=>{if(o.hasOwnProperty(t)){let r=o[t],i=e.Tools.deepClone(s.getCellRaw(r,n));c.setValue(t,n,i)}});let l=s.getCellMatrix();return c.forValue((e,t,n)=>{l.setValue(e,t,n)}),!0}};function je(t,n){if(t==null)return t;let r=e.Tools.deepClone(t);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 Me(t,n){if(t==null)return t;let r=e.Tools.deepClone(t);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}const Ne=(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]=Me(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Pe={id:`sheet.mutation.set-col-data`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{columnData:r}=n,i=f(t.get(e.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}},Fe=(t,n)=>{if(t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Ie={id:`sheet.mutation.set-col-hidden`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let t=0;t<n.ranges.length;t++){let r=n.ranges[t];for(let t=r.startColumn;t<r.endColumn+1;t++){let n=i.getColumnOrCreate(t);n!=null&&(n.hd=e.BooleanNumber.TRUE)}}return!0}},Le=(t,n)=>{if(t.get(e.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-visible`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId).getColumnManager();for(let t=0;t<n.ranges.length;t++){let r=n.ranges[t];for(let t=r.startColumn;t<r.endColumn+1;t++){let n=i.getColumnOrCreate(t);n!=null&&(n.hd=e.BooleanNumber.FALSE)}}return!0}},ze={id:`sheet.mutation.set-gridlines-color`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.gridlinesColor=n.color,!0}};function Be(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ve(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function He(e,t,n){if(e==null)return e;if(!Be(e))return;let r={},i=!1;if(Ve(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 Ue(e,t,n){if(e==null)return e;if(!Be(e))return;let r={},i=!1;return Ve(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function We(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 Ge(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function Ke(t){return He(t,e.COLOR_STYLE_KEYS)}function qe(t){return He(t,e.TEXT_DECORATION_KEYS,{cl:Ke})}function Je(t){return He(t,e.BORDER_STYLE_KEYS,{cl:Ke})}function Ye(t){return Ue(t,e.BORDER_KEYS,Je)}function Xe(t){return He(t,e.TEXT_ROTATION_KEYS)}function Ze(t){return He(t,e.PADDING_KEYS)}function Qe(e){if(e==null)return e;if(!(!Be(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function $e(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return qe(t);case`bg`:case`cl`:return Ke(t);case`bd`:return Ye(t);case`tr`:return Xe(t);case`pd`:return Ze(t);case`n`:return Qe(t);default:return Ge(t)?t:void 0}}function et(t,n){if(n===null)return null;if(n===void 0)return t;let r=n,i=e.Tools.isObject(t)?{...t}:{};return Ve(r,e.BORDER_KEYS,(e,t)=>{let n=Je(t);n!==void 0&&(i[e]=n)}),i}function tt(t,n,r){let i=t.getStyleByCell(n);i==null&&delete n.s,typeof r.s==`string`&&(r.s=t.get(r.s));let a=it(i,r.s?r.s:null);a&&(e.Tools.removeNull(a),Object.entries(a).forEach(([e,t])=>{typeof t==`object`&&t&&Object.keys(t).length===0&&delete a[e]})),e.Tools.isEmptyObject(a)?delete n.s:n.s=t.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:ot(n.p,r.s?r.s:null)}}function nt(t,n){if(!n||!Object.keys(n).length)return t;let r=e.Tools.deepClone(t==null?{}:t)||{},i=n;for(let t of e.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(i,t))continue;let e=$e(t,i[t]);e!==void 0&&(t===`bd`?r[t]=rt(r[t]||{},e):t in r||(r[t]=null))}return r}function rt(t,n){if(!n||!Object.keys(n).length)return t;let r=t;for(let i of e.BORDER_KEYS)Object.prototype.hasOwnProperty.call(n,i)&&(i in t||(r[i]=null));return t}function it(t,n,r=!1){if(n===null)return n;if(n===void 0)return t;let i=e.Tools.deepClone(t)||{},a=n;for(let t of e.STYLE_KEYS){if(!Object.prototype.hasOwnProperty.call(a,t)||r&&We(t))continue;let e=$e(t,a[t]);e!==void 0&&(t===`bd`?i[t]=et(i[t],e):i[t]=e)}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 at(e,t){return e.some(e=>e.startIndex===t)?at(e,t+1):t}function ot(t,n){var r;if(t.body==null)return;Array.isArray(t.body.textRuns)||(t.body.textRuns=[]);let i=0,a=[],o=((r=t.body)==null?void 0:r.paragraphs)||[];for(let r of t.body.textRuns){let{st:t,ed:s,ts:c={}}=r;if(i<t){let r={st:i,ed:t},o=it({},n,!0);o&&e.Tools.removeNull(o),e.Tools.isEmptyObject(o)||(r.ts=o),a.push(r)}let l=it(c,n,!0);l&&e.Tools.removeNull(l),e.Tools.isEmptyObject(l)?delete r.ts:r.ts=l,a.push(r),i=at(o,s)}let s=t.body.dataStream.endsWith(`\r
|
|
2
|
-
`)?t.body.dataStream.length-2:t.body.dataStream.length;if(i<s){let t={st:i,ed:s},r=it({},n,!0);r&&e.Tools.removeNull(r),e.Tools.isEmptyObject(r)||(t.ts=r),a.push(t)}t.body.textRuns=(0,e.normalizeTextRuns)(a)}function st(t,n){return n.v===void 0||n.v===null?n.v:t===e.CellValueType.NUMBER?Number(n.v):t===e.CellValueType.BOOLEAN?ct(n.v)?1:0:t===e.CellValueType.STRING||t===e.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ct(t){if(typeof t==`string`){if(t.toUpperCase()===`TRUE`)return!0;if(t.toUpperCase()===`FALSE`)return!1;if((0,e.isSafeNumeric)(t)){if(Number(t)===0)return!1;if(Number(t)===1)return!0}}if(typeof t==`number`){if(t===0)return!1;if(t===1)return!0}return typeof t==`boolean`?t:null}function lt(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)}const B=(t,n)=>{let{unitId:r,subUnitId:i,cellValue:a}=n,o=t.get(e.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 e.ObjectMatrix;return new e.ObjectMatrix(a).forValue((t,n,r)=>{let i=e.Tools.deepClone(c==null?void 0:c.getValue(t,n))||{};i.s=nt(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(t,n,lt(i))}),{...n,options:{},cellValue:u.getMatrix()}},V={id:`sheet.mutation.set-range-values`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{cellValue:r,subUnitId:i,unitId:a}=n,o=t.get(e.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 e.ObjectMatrix(r).forValue((t,n,r)=>{if(!r)c.realDeleteValue(t,n);else{let i=c.getValue(t,n)||{};i=dt(r,i,l),e.Tools.isEmptyObject(i)?c.realDeleteValue(t,n):c.setValue(t,n,i)}}),!0}},ut=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function dt(e,t,n){let r=s(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(ut.has(a)){let n=e[a];ft(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=st(r,e)):a===`s`&&tt(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=st(r,t)),t.v===null&&(delete t.t,delete t.v),t}function ft(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}const pt=(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]=je(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},mt={id:`sheet.mutation.set-row-data`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{rowData:r}=n,i=f(t.get(e.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}},ht=(t,n)=>{if(t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},gt={id:`sheet.mutation.set-row-visible`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},_t=(t,n)=>{if(t.get(e.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-hidden`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},yt=(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}},bt={id:`sheet.mutation.set-worksheet-col-width`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getColumnManager(),o=n.ranges;for(let t=0;t<o.length;t++){let r=o[t];for(let t=r.startColumn;t<r.endColumn+1;t++)i.getColVisible(t)&&(typeof n.colWidth==`number`?a.setColumnWidth(t,n.colWidth):e.Tools.isDefine(n.colWidth[t])&&a.setColumnWidth(t,n.colWidth[t]))}return!0}},xt=(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,columnCount:r.worksheet.getColumnCount()}},St={id:`sheet.mutation.set-worksheet-column-count`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Ct={id:`sheet.mutation.set-worksheet-default-style`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},wt=(t,n)=>{let r=p(t.get(e.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()}},Tt=(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,rowCount:r.worksheet.getRowCount()}},Et={id:`sheet.mutation.set-worksheet-row-count`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},Dt=(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}},Ot=(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}},kt=(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}},At={id:`sheet.mutation.set-worksheet-row-height`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{ranges:r,rowHeight:i}=n,a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getRowManager();for(let{startRow:t,endRow:n}of r)for(let r=t;r<=n;r++)typeof i==`number`?s.setRowHeight(r,i):e.Tools.isDefine(i[r])&&s.setRowHeight(r,i[r]);return!0}},jt={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=f(t.get(e.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}},Mt={id:`sheet.mutation.set-worksheet-row-auto-height`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{rowsAutoHeightInfo:r}=n,i=f(t.get(e.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}},Nt={id:`sheet.mutation.toggle-gridlines`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},Pt={id:`sheet.operation.set-worksheet-active`,type:e.CommandType.OPERATION,handler:(t,n)=>{let r=t.get(e.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}};let H=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}({}),Ft=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}({});const It=[At.id,jt.id,Mt.id,bt.id,Pt.id,we.id,Ee.id,Ie.id,Re.id,vt.id,gt.id,F.id,P.id,L.id,I.id,Nt.id,ze.id,Et.id,St.id],Lt=[V.id,Se.id,z.id,h.id,Ae.id,Ct.id,mt.id,Pe.id,ge.id,ve.id];function Rt(t,n){switch(n.id){case Ft.SET_RANGE_VALUES:{let t=n.params,r=new e.ObjectMatrix(t.cellValue).getDataRange();return r.endRow===-1?[]:t.cellValue?[{unitId:t.unitId,subUnitId:t.subUnitId,range:r}]:[]}case Ft.MOVE_RANGE:{let t=n.params;return[{unitId:t.unitId,subUnitId:t.from.subUnitId,range:new e.ObjectMatrix(t.from.value).getRange()},{unitId:t.unitId,subUnitId:t.to.subUnitId,range:new e.ObjectMatrix(t.to.value).getRange()}]}case Ft.REMOVE_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Ft.ADD_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Ft.REORDER_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case Ft.SET_WORKSHEET_DEFAULT_STYLE:{let e=f(t,n.params);if(!e)return[];let{worksheet:r,unitId:i,subUnitId:a}=e;return[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1}}]}case Ft.SET_ROW_DATA:{let e=f(t,n.params);if(!e)return[];let{worksheet:r,unitId:i,subUnitId:a}=e,{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 Ft.SET_COL_DATA:{let e=f(t,n.params);if(!e)return[];let{worksheet:r,unitId:i,subUnitId:a}=e,{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 Ft.SET_WORKSHEET_RANGE_THEME_STYLE:case Ft.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function zt(t,n){switch(t.id){case H.SET_WORKSHEET_ROW_HEIGHT:case H.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.ROW}}))}case H.SET_WORKSHEET_ROW_AUTO_HEIGHT:{let r=t.params;return r.rowsAutoHeightInfo.map(t=>({unitId:r.unitId,subUnitId:r.subUnitId,range:{startRow:t.row,endRow:t.row,startColumn:0,endColumn:n-1,rangeType:e.RANGE_TYPE.ROW}}))}case H.SET_WORKSHEET_COL_WIDTH:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.COLUMN}}))}case H.MOVE_ROWS:case H.MOVE_COLUMNS:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.targetRange},{unitId:e.unitId,subUnitId:e.subUnitId,range:e.sourceRange}]}case H.SET_COL_HIDDEN:case H.SET_COL_VISIBLE:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.COLUMN}}))}case H.SET_ROW_HIDDEN:case H.SET_ROW_VISIBLE:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.ROW}}))}case H.INSERT_COL:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.COLUMN}}]}case H.INSERT_ROW:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.ROW}}]}case H.REMOVE_COL:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.COLUMN}}]}case H.REMOVE_ROW:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.ROW}}]}case H.TOGGLE_GRIDLINES:case H.SET_GRIDLINES_COLOR:return[];default:return[]}}function Bt(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Vt(e,t){return e&&e.spanAnchor?Bt(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Bt(e)}function Ht(t,n,r,i,a){let o=t.getCellMatrix(),s=t.getSpanModel().getMergedCellRange(n,r,i,a),c=new e.ObjectMatrix;return o.forValue((e,t)=>{let n=o.getValue(e,t);n&&c.setValue(e,t,n)}),s.forEach(t=>{let{startColumn:n,startRow:r,endColumn:i,endRow:a}=t;(0,e.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 Ut(t,n,r,i){let{startRow:a,startColumn:o,endRow:s}=t,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o-r);if(l=l||Vt(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?(t.startColumn-=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function Wt(t,n,r,i){let{startRow:a,endColumn:o,endRow:s}=t,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o+r);if(l=l||Vt(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?(t.endColumn+=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function Gt(t,n,r,i){let{startRow:a,startColumn:o,endColumn:s}=t,c=null,l=!1;for(let e=o;e<=s;e++){let t=n.getValue(a-r,e);if(l=l||Vt(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?(t.startRow-=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function Kt(t,n,r,i){let{startColumn:a,endColumn:o,endRow:s}=t,c=null,l=!1;for(let e=a;e<=o;e++){let t=n.getValue(s+r,e);if(l=l||Vt(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?(t.endRow+=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function qt({range:e,allMatrixWithSpan:t,directions:n,isWorksheetHasSpan:r,maxRow:i,maxColumn:a}){let{left:o,right:s,up:c,down:l}=n,{startRow:u,startColumn:d,endRow:f,endColumn:p}=e,m=!1;if(o&&c&&u>0&&d>0){let n=t.getValue(u-1,d-1);Vt(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);Vt(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);Vt(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);Vt(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 Jt(t,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Ht(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={...t},m=[];for(;f;){f=!1;let e=qt({range:p,allMatrixWithSpan:o,directions:n,isWorksheetHasSpan:s,maxRow:i,maxColumn:a});if(e.hasValue){p=e.range,f=!0;continue}if(u&&p.startRow!==0){let{hasValue:e,range:t,spanAnchor:n}=Gt(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}=Kt(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}=Ut(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}=Wt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}}return m.length>0&&(p=e.Rectangle.union(p,...m)),p}const Yt=t=>{let n=new e.ObjectMatrix;return t.forEach(t=>{e.Range.foreach(t,(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},Xt=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},Zt=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},Qt=(t,n)=>{e.Range.foreach(n,(e,n)=>{t.realDeleteValue(e,n)});for(let e=n.startColumn;e<=n.endColumn;e++){let r=n.endRow+1;if(t.getValue(r,e)>0){t.setValue(r,e,1);let n=r+1;for(;t.getValue(n,e)>0;)t.setValue(n,e,t.getValue(n-1,e)+1),n++}}return t},$t=e=>{let t=[],n=Zt(e);for(;n.area>0;)n.range&&(t.push(n.range),Qt(e,n.range)),n=Zt(e);return t},en=e=>$t(Yt(e));var tn=class{constructor(){C(this,`_matrix`,new e.ObjectMatrix)}add(...t){return t.forEach(t=>{e.Range.foreach(t,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...t){return t.forEach(t=>{e.Range.foreach(t,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return $t(Xt(this._matrix))}};function nn(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=rn(n)),i}function rn(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 an=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 on=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?an.Tab:e===this._commaCount?an.Comma:e===this._semicolonCount?an.Semicolon:e===this._spaceCount?an.Space:an.Tab}};function sn(e,t,n){let r=[];n!==void 0&&(e&an.Custom)>0&&r.push(n),(e&an.Tab)>0&&r.push(` `),(e&an.Comma)>0&&r.push(`,`),(e&an.Semicolon)>0&&r.push(`;`),(e&an.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=cn(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function cn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const ln=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function un(t){if(t!=null){if(t.p)return ln(t.p);if(t.v&&typeof t.v==`string`)return t.v;if(t.t&&(t.t===e.CellValueType.FORCE_STRING||t.t===e.CellValueType.STRING))return String(t.v)}}function dn(t,n,r,i,a=!1){let{startColumn:o,startRow:s,endColumn:c,endRow:l}=e.Range.transformRange(n,t);if(o!==c)throw Error(`The range must be in the same column.`);if(r&&(r&an.Custom)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new on:null,f=[];for(let e=s;e<=l;e++){let n=un(t.getCell(e,o));f.push(n),d&&d.update(n)}let p=sn(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}}const fn=(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)},{}),pn=(e=0)=>{let t=e;return function(){return t++}};function mn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function hn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(mn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function gn(t){let n=new e.ObjectMatrix;return t.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 _n(t){let n=new e.ObjectMatrix;return t.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 vn(t){let n=new e.ObjectMatrix;return t.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 yn(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 bn(t,n,r,i){let a=n.get(e.IUniverInstanceService),o=r?a.getUnit(r,e.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitForType(e.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}=t,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 xn(t,n,r,i){let a=f(n.get(e.IUniverInstanceService),{unitId:r,subUnitId:i});if(!a)return t;let{worksheet:o}=a,s=[];for(let e of t){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e,a=[],c=t;for(let e=t;e<=n;e++)o.getRowFiltered(e)?(c<e&&a.push([c,e-1]),c=e+1):e===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 t of s){let{startColumn:n,endColumn:r,rowIntervals:i}=t,a=(0,e.mergeIntervals)(i);for(let[e,t]of a)c.push({startRow:e,endRow:t,startColumn:n,endColumn:r})}return c}let Sn=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),Cn=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var U=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange$`,new t.Subject),C(this,`ruleChange$`,this._ruleChange$.asObservable()),C(this,`_ruleRefresh$`,new t.Subject),C(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),C(this,`_rangeRuleInitStateChange`,new t.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(t,n){let r=(0,e.generateRandomId)(4),i=this._ensureRuleMap(t,n);for(;i.has(r);)r=(0,e.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}};const wn=(e,t)=>{let n=e.get(U),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:Dn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Tn={id:`sheet.mutation.delete-range-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(U);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},En=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Tn.id,params:t}},Dn={id:`sheet.mutation.add-range-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(U);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},On={type:e.CommandType.COMMAND,id:`sheet.command.add-range-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(U),{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(Dn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:Dn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:Tn.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}};let W=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 kn=class extends e.Disposable{constructor(e){super(),this._workbook=e,C(this,`_worksheetSelections`,new Map),C(this,`_worksheetLastSelectionPrimaryCell`,new Map),C(this,`_selectionMoveStart$`,new t.Subject),C(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),C(this,`_selectionMoving$`,new t.Subject),C(this,`selectionMoving$`,this._selectionMoving$.asObservable()),C(this,`_selectionMoveEnd$`,new t.BehaviorSubject([])),C(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),C(this,`_selectionSet$`,new t.BehaviorSubject([])),C(this,`selectionSet$`,this._selectionSet$.asObservable()),C(this,`selectionChanged$`,void 0),C(this,`_beforeSelectionMoveEnd$`,new t.BehaviorSubject([])),C(this,`beforeSelectionMoveEnd$`,this._beforeSelectionMoveEnd$.asObservable()),this.selectionChanged$=(0,t.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 W.MOVE_START:this._selectionMoveStart$.next(t);break;case W.MOVING:this._selectionMoving$.next(t);break;case W.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case W.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 G=class extends e.RxDisposable{get _currentSelectionPos(){let t=this._instanceSrv.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!t)return null;let n=t.getActiveSheet();return{unitId:t.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 n=this._instanceSrv.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,t.shareReplay)(1),(0,t.takeUntil)(this.dispose$));this.selectionMoveStart$=n.pipe().pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,t.of)())).pipe((0,t.takeUntil)(this.dispose$)),this.selectionMoving$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,t.of)())).pipe((0,t.takeUntil)(this.dispose$)),this.selectionMoveEnd$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,t.of)([]))).pipe((0,t.takeUntil)(this.dispose$)),this.selectionSet$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,t.of)([]))).pipe((0,t.takeUntil)(this.dispose$)),this.selectionChanged$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,t.of)([]))).pipe((0,t.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,t.skip)(1)).pipe((0,t.takeUntil)(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,t.takeUntil)(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe((0,t.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,t.of)(null),this.selectionMoving$=(0,t.of)(null),this.selectionMoveEnd$=(0,t.of)([]),this.selectionSet$=(0,t.of)(null),this.selectionChanged$=(0,t.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?W.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?W.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 kn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(t){var n;let r=(n=this._instanceSrv.getCurrentUnitForType(e.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[t];if(a!=null&&!e.Tools.diffValue(a,c))return{isAllValuesSame:!1,value:null};a=c}}return{isAllValuesSame:!0,value:a}}};G=T([w(0,e.IUniverInstanceService)],G);const An=`REF_SELECTIONS_ENABLED`,jn={id:`sheet.command.clear-selection-all`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=t.get(G),s=t.get(e.IUndoRedoService),c=t.get(k),l=i.getCurrentUnitForType(e.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=xn(p,t,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:gn(m)},v=B(t,_);h.push({id:V.id,params:_}),g.push({id:V.id,params:v});let y=c.onCommandExecute({id:jn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,e.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}},Mn={id:`sheet.command.clear-selection-format`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=t.get(G),s=t.get(e.IUndoRedoService),c=t.get(k),l=i.getCurrentUnitForType(e.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=xn(p,t,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:vn(m)},v=B(t,_);h.push({id:V.id,params:_}),g.push({id:V.id,params:v});let y=c.onCommandExecute({id:Mn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,e.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}};function Nn(t,n,r=!0){let i=n.getMatrixWithMergedCells(...(0,e.selectionToArray)(t)),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};e.Rectangle.contains(t,o)||a.push(o)}}),a.length===0)return t;let o=e.Rectangle.union(t,...a);return r?Nn(o,n,r):o}function Pn(t,n,r){let i=null;return r.getMatrixWithMergedCells(t,n,t,n).forValue((t,n,r)=>(i={actualRow:t,actualColumn:n,startRow:t,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:t+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:e.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:t,startRow:t,startColumn:n,endRow:t,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:e.RANGE_TYPE.NORMAL}}function Fn(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 K(t,n){let r=Number.isNaN(t.startRow)?0:t.startRow,i=Number.isNaN(t.startColumn)?0:t.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:e.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:t.startRow,endColumn:t.startColumn,actualRow:r,actualColumn:i,rangeType:e.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const In=(e,t,n)=>({id:q.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:K(e,n)}]}});function Ln(t){if(!t)return!1;let{range:n,primary:r}=t;return e.Rectangle.equals(n,r)}function Rn(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}}const zn=e=>e.id!==v;function Bn(t,n,r,i,a,o,s){let c={};for(let e=n;e<=r;e++)for(let n=i;n<=a;n++){let r=o?t.getCellWithFilteredInterceptors(s,n,y,zn):t.getCellWithFilteredInterceptors(e,s,y,zn);!r||!r.s||(c[e]||(c[e]={}),c[e][n]={s:r.s})}for(let t in c){for(let n in c[t]){let r=c[t][n];r.s&&typeof r.s==`object`&&e.Tools.isEmptyObject(r.s)&&delete r.s,e.Tools.isEmptyObject(r)&&delete c[t][n]}e.Tools.isEmptyObject(c[t])&&delete c[t]}return c}const Vn=(0,e.createIdentifier)(`sheets-formula.ref-selections.service`);let Hn=class extends G{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe((0,t.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=(0,t.of)(null),this.selectionMoving$=(0,t.of)(null),this.selectionMoveEnd$=(0,t.of)(null),this.selectionSet$=(0,t.of)(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let n=this._instanceSrv.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET);n.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let r=new t.BehaviorSubject(n);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._ensureWorkbookSelection(e.getUnitId()),r.next([...r.getValue(),e])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),r.next(r.getValue().filter(t=>t!==e))})),r.pipe((0,t.map)(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};Hn=T([w(0,e.IUniverInstanceService)],Hn);function Un(t,n){let r=t.get(e.IContextService).getContextValue(An);return t.get(r&&!n?Vn:G)}const q={id:`sheet.operation.set-selections`,type:e.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return Un(e).setSelections(i,a,[...n],r),!0}},Wn={id:`sheet.command.select-range`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n)return!1;let{unitId:r,subUnit:i,range:a}=n,o=t.get(e.ICommandService),s=f(t.get(e.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:K(a,s.worksheet),style:null}];return o.syncExecuteCommand(q.id,{unitId:r,subUnitId:i,selections:c})}},Gn=`sheet.command.move-range`,Kn={type:e.CommandType.COMMAND,id:Gn,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.ErrorService),o=t.get(e.LocaleService);if(!await t.get(k).beforeCommandExecute({id:Kn.id,params:n}))return!1;let s=Jn(t,n);return s?(0,e.sequenceExecute)(s.redos,r).result?(i.pushUndoRedo({unitID:s.unitId,undoMutations:s.undos,redoMutations:s.redos}),!0):!1:(a.emit(o.t(`sheets.info.acrossMergedCell`)),!1)}};function qn(t,n){var r,i,a,o,s;let c=t.get(e.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 Jn(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=qn(e,t);if(!c)return null;let l=e.get(k),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=Yn(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:Kn.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:q.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:Xn(t.fromRange,t.toRange,p,m)}],type:W.MOVE_END}}),y.push({id:q.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:K(t.fromRange,p)}],type:W.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 Yn(t,n,r,i=!1){let a=[],o=[],{range:s,subUnitId:c,unitId:l}=n,{range:u,subUnitId:d}=r,f=t.get(e.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 t=Nn(u,p,!1);if(!e.Rectangle.equals(u,t)&&!i)return null;let m=new e.ObjectMatrix,_=new e.ObjectMatrix,v=new e.ObjectMatrix;e.Range.foreach(s,(t,n)=>{let r=g.getValue(t,n);if(m.setValue(t,n,e.Tools.deepClone(r)),r){let i=f==null?void 0:f.getStyles().get(r.s);v.setValue(t,n,e.Tools.deepClone(i))}_.setValue(t,n,null)});let y=new e.ObjectMatrix,b=new e.ObjectMatrix;e.Range.foreach(u,(t,n)=>{y.setValue(t,n,e.Tools.deepClone(h.getValue(t,n)))}),e.Range.foreach(s,(t,n)=>{let r=(0,e.cellToRange)(t,n),i=e.Rectangle.getRelativeRange(r,s),a=e.Rectangle.getPositionRange(i,u),o=e.Tools.deepClone(v.getValue(t,n)),c=e.Tools.deepClone(m.getValue(t,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:Se.id,params:x}),o.push({id:Se.id,params:S})}return{redos:a,undos:o}}function Xn(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=K(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 Zn=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.Edit),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.Edit}.${i}`}},Qn=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.View),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.View}.${i}`}},$n=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Comment),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Comment}_${t}`}},er=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Copy),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Copy}_${t}`}},tr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`subType`,n.UnitAction.CopySheet),C(this,`status`,e.PermissionStatus.INIT),this.unitId=t,this.id=`${this.type}.${n.UnitAction.CopySheet}_${t}`}},nr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.CreatePermissionObject),this.unitId=t,this.id=`${this.type}.${n.UnitAction.CreatePermissionObject}_${t}`}},rr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.CreateSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.CreateSheet}_${t}`}},ir=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteColumn),this.id=`${this.type}.${n.UnitAction.DeleteColumn}_${t}`}},ar=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteRow),this.id=`${this.type}.${n.UnitAction.DeleteRow}_${t}`}},or=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.DeleteSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.DeleteSheet}_${t}`}},sr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Duplicate),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Duplicate}_${t}`}},cr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Edit),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Edit}_${t}`}},lr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Export),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Export}_${t}`}},ur=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.HideSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.HideSheet}_${t}`}},dr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.History),this.unitId=t,this.id=`${this.type}.${n.UnitAction.History}_${t}`}},fr=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertColumn),this.id=`${this.type}.${n.UnitAction.InsertColumn}_${t}`}},pr=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertRow),this.id=`${this.type}.${n.UnitAction.InsertRow}_${t}`}},mr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.ManageCollaborator),this.unitId=t,this.id=`${this.type}.${n.UnitAction.ManageCollaborator}_${t}`}},hr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.MoveSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.MoveSheet}_${t}`}},gr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Print),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Print}_${t}`}},_r=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.RecoverHistory),this.unitId=t,this.id=`${this.type}.${n.UnitAction.RecoverHistory}_${t}`}},vr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.RenameSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.RenameSheet}_${t}`}},yr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Share),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Share}_${t}`}},br=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.View),this.unitId=t,this.id=`${this.type}.${n.UnitAction.View}_${t}`}},xr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.ViewHistory),this.unitId=t,this.id=`${this.type}.${n.UnitAction.ViewHistory}_${t}`}},Sr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Copy),this.id=`${this.type}.${n.UnitAction.Copy}_${t}_${r}`}},Cr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteColumn),this.id=`${this.type}.${n.UnitAction.DeleteColumn}_${t}_${r}`}},wr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Delete),this.id=`${this.type}.${n.UnitAction.Delete}_${t}_${r}`}},Tr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteRow),this.id=`${this.type}.${n.UnitAction.DeleteRow}_${t}_${r}`}},Er=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Edit),this.id=`${this.type}.${n.UnitAction.Edit}_${t}_${r}`}},Dr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.EditExtraObject),this.id=`${this.type}.${n.UnitAction.EditExtraObject}_${t}_${r}`}},Or=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Filter),this.id=`${this.type}.${n.UnitAction.Filter}_${t}_${r}`}},kr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertColumn),this.id=`${this.type}.${n.UnitAction.InsertColumn}_${t}_${r}`}},Ar=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertHyperlink),this.id=`${this.type}.${n.UnitAction.InsertHyperlink}_${t}_${r}`}},jr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertRow),this.id=`${this.type}.${n.UnitAction.InsertRow}_${t}_${r}`}},Mr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.ManageCollaborator),this.id=`${this.type}.${n.UnitAction.ManageCollaborator}_${t}_${r}`}},Nr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.PivotTable),this.id=`${this.type}.${n.UnitAction.PivotTable}_${t}_${r}`}},Pr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SelectProtectedCells),this.id=`${this.type}.${n.UnitAction.SelectProtectedCells}_${t}_${r}`}},Fr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SelectUnProtectedCells),this.id=`${this.type}.${n.UnitAction.SelectUnProtectedCells}_${t}_${r}`}},Ir=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetCellStyle),this.id=`${this.type}.${n.UnitAction.SetCellStyle}_${t}_${r}`}},Lr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetCellValue),this.id=`${this.type}.${n.UnitAction.SetCellValue}_${t}_${r}`}},Rr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetColumnStyle),this.id=`${this.type}.${n.UnitAction.SetColumnStyle}_${t}_${r}`}},zr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetRowStyle),this.id=`${this.type}.${n.UnitAction.SetRowStyle}_${t}_${r}`}},Br=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Sort),this.id=`${this.type}.${n.UnitAction.Sort}_${t}_${r}`}},Vr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.View),this.id=`${this.type}.${n.UnitAction.View}_${t}_${r}`}};const Hr={id:`sheet.command.set-range-values`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.get(k),u=t.get(e.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 Er(m,p).id))return!1;let x=new e.ObjectMatrix,S;if(e.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,e.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=B(t,C),T=(0,e.mapObjectMatrix)(C.cellValue,(e,t)=>g.getCellHeight(e,t)||void 0);if(!a.syncExecuteCommand(V.id,C))return!1;let{undos:E,redos:D}=l.onCommandExecute({id:Hr.id,params:C}),{undos:O,redos:A}=l.generateMutationsOfAutoHeight({unitId:m,subUnitId:p,ranges:b,cellHeights:new e.ObjectMatrix(T)});if((0,e.sequenceExecute)([...D,...A],a).result){let t=In(v==null?x.getRange():v,h,g);return o.pushUndoRedo({unitID:m,undoMutations:[{id:V.id,params:w},...E,...O,t],redoMutations:[{id:V.id,params:C},...D,...A,e.Tools.deepClone(t)],id:y}),!0}return!1}};function Ur(t,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=t.get(e.IUniverInstanceService),d=t.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===e.Dimension.COLUMNS){let t=Math.min(s.endRow,u.endRow),r=0;for(let i=s.startRow;i<=t;i++){let t=n.getRow(i),a=t?(0,e.getArrayLength)(t)-1:0;r=Math.max(r,a)}l={startRow:s.startRow,startColumn:s.startColumn,endRow:t,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:l.startColumn+i,endRow:t,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=Yn(t,{unitId:a,subUnitId:o,range:l},{unitId:a,subUnitId:o,range:d},!0);f&&(r.push(...f.redos),i.push(...f.undos))}if(Object.entries(l).length===0)for(let e=s.startRow;e<=s.endRow;e++){l[e]||(l[e]={});for(let t=s.startColumn;t<=s.endColumn;t++)l[e][t]=null}let f={subUnitId:o,unitId:a,cellValue:l},m=B(t,f),{undos:h,redos:g}=d.onCommandExecute({id:Hr.id,params:{...f,range:s}});r.push({id:V.id,params:f},...g),i.push({id:V.id,params:m},...h)}return{redo:r,undo:i}}function Wr(t,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=t.get(e.IUniverInstanceService),u=t.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:gn([s])},p=B(t,d),m=u.onCommandExecute({id:Hr.id,params:d});if(r.push({id:V.id,params:d},...m.redos),i.push(...m.undos,{id:V.id,params:p}),s.startColumn<=l.endColumn||s.startRow<=l.endRow){let u=null,d=null;if(c===e.Dimension.COLUMNS&&s.endColumn<l.endColumn){let t=Math.min(s.endRow,l.endRow),r=0;for(let i=s.startRow;i<=t;i++){let t=n.getRow(i),a=t?(0,e.getArrayLength)(t)-1:0;r=Math.max(r,a)}u={startRow:s.startRow,startColumn:s.endColumn+1,endRow:t,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:u.startColumn-i,endRow:t,endColumn:u.endColumn-i}}if(c===e.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 e=Yn(t,{unitId:a,subUnitId:o,range:u},{unitId:a,subUnitId:o,range:d},!0);e&&(r.push(...e.redos),i.push(...e.undos))}}}return{redo:r,undo:i}}function Gr(t,n,r,i,a,o){let{startRow:s,endRow:c,startColumn:l,endColumn:u}=n;if(a===e.Dimension.ROWS){let e=c-s+1;for(let n=r;n>=s;n--)for(let r=l;r<=u;r++){let i=t.getValue(n,r);i==null?t.realDeleteValue(n+e,r):t.setValue(n+e,r,i)}for(let e=c;e>=s;e--)for(let n=l;n<=u;n++)o&&o[e]&&o[e][n]?t.setValue(e,n,o[e][n]):t.realDeleteValue(e,n)}else if(a===e.Dimension.COLUMNS){let e=u-l+1;for(let n=s;n<=c;n++)for(let r=i;r>=l;r--){let i=t.getValue(n,r);i==null?t.realDeleteValue(n,r+e):t.setValue(n,r+e,i)}for(let e=s;e<=c;e++)for(let n=u;n>=l;n--)o&&o[e]&&o[e][n]?t.setValue(e,n,o[e][n]):t.realDeleteValue(e,n)}}function Kr(t,n,r,i,a){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=n,u=s-o+1,d=l-c+1;if(a===e.Dimension.ROWS)for(let e=o;e<=r;e++)for(let n=c;n<=l;n++){let r=t.getValue(e+u,n);r==null?t.realDeleteValue(e,n):t.setValue(e,n,r)}else if(a===e.Dimension.COLUMNS)for(let e=o;e<=s;e++)for(let n=c;n<=i;n++){let r=t.getValue(e,n+d);r==null?t.realDeleteValue(e,n):t.setValue(e,n,r)}}const qr=`sheet.command.delete-range-move-left`,Jr={type:e.CommandType.COMMAND,id:qr,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.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:e.Dimension.COLUMNS},y=l.onCommandExecute({id:Jr.id,params:{range:g}}),{redo:b,undo:x}=Wr(t,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(In(g,p,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,e.sequenceExecute)(S,a).result){let t=l.afterCommandExecute({id:Jr.id,params:{range:g}});return(0,e.sequenceExecute)(t.redos,a),C.push(...t.undos),S.push(...t.redos),o.pushUndoRedo({unitID:h,undoMutations:C.reverse(),redoMutations:S}),!0}return!1}},Yr=`sheet.command.delete-range-move-up`,Xr={type:e.CommandType.COMMAND,id:Yr,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.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:e.Dimension.ROWS},v=l.onCommandExecute({id:Xr.id,params:{range:g}}),{redo:y,undo:b}=Wr(t,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(In(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,e.sequenceExecute)(x,a).result){let t=l.afterCommandExecute({id:Xr.id,params:{range:g}});return(0,e.sequenceExecute)(t.redos,a),S.push(...t.undos),x.push(...t.redos),o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},Zr=`sheet.command.insert-range-move-down`,Qr={type:e.CommandType.COMMAND,id:Zr,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.get(k),u=t.get(e.ErrorService),d=t.get(e.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:e.BooleanNumber.FALSE}))};b.push({id:P.id,params:i});let a=be(t,i);x.push({id:I.id,params:a})}let E={};e.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}=Ur(t,{range:v,subUnitId:h,unitId:m,shiftDimension:e.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:Qr.id,params:{range:v}});if(b.push(...A.redos),b.push(In(v,_,g)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,e.sequenceExecute)(b,a)){let t=l.afterCommandExecute({id:Qr.id,params:{range:v}});return(0,e.sequenceExecute)(t.redos,a),x.push(...t.undos),b.push(...t.redos),o.pushUndoRedo({unitID:m,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},$r=`sheet.command.insert-range-move-right`,ei={type:e.CommandType.COMMAND,id:$r,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.get(k),u=t.get(e.ErrorService),d=t.get(e.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:e.BooleanNumber.FALSE}))};b.push({id:F.id,params:i});let a=xe(t,i);x.push({id:L.id,params:a})}let E={};e.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}=Ur(t,{range:v,subUnitId:_,unitId:g,shiftDimension:e.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:ei.id,params:{range:v}});if(b.push(...A.redos),b.push(In(v,m,h)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,e.sequenceExecute)(b,a).result){let t=l.afterCommandExecute({id:ei.id,params:{range:v}});return(0,e.sequenceExecute)(t.redos,a),x.push(...t.undos),b.push(...t.redos),o.pushUndoRedo({unitID:g,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},ti=`sheet.command.insert-row`,ni={type:e.CommandType.COMMAND,id:ti,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(k),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:ni.id,params:n})?r.syncExecuteCommand(ri.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},ri={type:e.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(t,n)=>{var r,i,a,o;let s=f(t.get(e.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=e.RANGE_TYPE.ROW;let v=m===e.Direction.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=t.get(e.ICommandService),b=t.get(e.IUndoRedoService),x=t.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:e.BooleanNumber.FALSE})));let w=be(t,S),T=[{id:P.id,params:S}],E=[{id:I.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:ni.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(In(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,e.sequenceExecute)(T,y).result){let t=x.afterCommandExecute({id:ni.id,params:n});return(0,e.sequenceExecute)(t.redos,y),T.push(...t.redos),E.push(...t.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E,redoMutations:T}),!0}return!1}},ii={type:e.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(t,n)=>{var r;let i=(r=t.get(G).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(t.get(e.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:e.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m},cellValue:Bn(s,d,p,0,m,!0,d-1)};return t.get(e.ICommandService).executeCommand(ni.id,h)}},ai={type:e.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async t=>{var n;let r=(n=t.get(G).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(t.get(e.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:e.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:p,rangeType:e.RANGE_TYPE.ROW},cellValue:Bn(o,u,d,0,p,!0,i.endRow)};return t.get(e.ICommandService).executeCommand(ni.id,m)}},oi={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(t,n)=>{var r;let i=(r=t.get(G).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(t.get(e.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=Bn(s,d,p,0,m,!0,d-1),g={unitId:c,subUnitId:l,direction:e.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:e.RANGE_TYPE.ROW},cellValue:h};return t.get(e.ICommandService).executeCommand(ni.id,g)}},si={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(t,n)=>{var r;let i=(r=t.get(G).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(t.get(e.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:e.Direction.DOWN,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:e.RANGE_TYPE.ROW},cellValue:Bn(s,d,p,0,m,!0,a.endRow)};return t.get(e.ICommandService).executeCommand(ni.id,h)}},ci=`sheet.command.insert-col`,li={type:e.CommandType.COMMAND,id:ci,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(k),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:li.id,params:n})?r.syncExecuteCommand(ui.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},ui={type:e.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(t,n)=>{var r,i,a,o;let s=f(t.get(e.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=e.RANGE_TYPE.COLUMN;let v=m===e.Direction.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=t.get(e.ICommandService),b=t.get(e.IUndoRedoService),x=t.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:e.BooleanNumber.FALSE})));let w=xe(t,S),T=[{id:F.id,params:S}],E=[{id:L.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:li.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(In(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,e.sequenceExecute)(T,y).result){let t=x.afterCommandExecute({id:li.id,params:n});return(0,e.sequenceExecute)(t.redos,y),T.push(...t.redos),E.push(...t.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E.filter(Boolean),redoMutations:T.filter(Boolean)}),!0}return!1}},di={type:e.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(t.get(e.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:e.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:e.RANGE_TYPE.COLUMN},cellValue:Bn(o,0,p,u,d,!1,u-1)};return t.get(e.ICommandService).executeCommand(li.id,m)}},fi={type:e.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async t=>{let n=t.get(G).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=f(t.get(e.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:e.Direction.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:Bn(a,0,d,l,u,!1,r.endColumn)};return t.get(e.ICommandService).executeCommand(li.id,p)}},pi={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(t.get(e.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:e.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:e.RANGE_TYPE.COLUMN},cellValue:Bn(o,0,p,u,d,!1,u-1)};return t.get(e.ICommandService).executeCommand(li.id,m)}},mi={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(t.get(e.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:e.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p},cellValue:Bn(o,0,p,u,d,!1,i.endColumn)};return t.get(e.ICommandService).executeCommand(li.id,m)}},hi=(0,e.throttle)((e,t,n,r)=>{if(!r.disposed){let i=In(e,t,n);r.executeCommand(i.id,i.params)}},300),gi=`sheet.command.remove-row`,_i={type:e.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(t,n)=>{var r;if(!n)return!1;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=t.get(k),{range:c,unitId:l,subUnitId:u}=n,d=xn([c],t,l,u).reverse(),p=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=De(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:I.id,params:r}),t.push({id:P.id,params:i}),t.push({id:V.id,params:a}),m.push(...n),p.unshift(...t)});let h=s.onCommandExecute({id:gi,params:{range:c}}),g=t.get(e.ICommandService);if((0,e.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;hi(c,a,o,g);let n=s.afterCommandExecute({id:gi,params:{range:c}});return(0,e.sequenceExecute)(n.redos,g),t.get(e.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}},vi={type:e.CommandType.COMMAND,id:gi,handler:async(t,n)=>{var r;let i=t.get(G),a=t.get(k),o=t.get(e.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(t.get(e.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:vi.id,params:{range:s}})?o.syncExecuteCommand(_i.id,{range:s,unitId:d,subUnitId:u}):!1}},yi=`sheet.command.remove-col`,bi={type:e.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(t,n)=>{var r;if(!n)return!1;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=t.get(k),{range:c,unitId:l,subUnitId:u}=n,d={unitId:l,subUnitId:u,range:c},p=Oe(t,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=t.get(e.ICommandService);if((0,e.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:L.id,params:d},...h.redos],g).result){var _,v;hi(c,a,o,g);let n=s.afterCommandExecute({id:yi,params:{range:c}});return(0,e.sequenceExecute)(n.redos,g),t.get(e.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:F.id,params:p},{id:V.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:L.id,params:d},...h.redos,...n.redos]}),!0}return!1}},xi={type:e.CommandType.COMMAND,id:yi,handler:async(t,n)=>{var r;let i=t.get(G),a=t.get(k),o=t.get(e.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(t.get(e.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(bi.id,{range:s,unitId:d,subUnitId:u}):!1}},Si=(t,n)=>{let r=t.get(e.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}},Ci={id:`sheet.mutation.remove-sheet`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=r.getUniverSheetInstance(a);return o?o.removeSheet(i):!1}};function wi(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function Ti(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}const Ei=`sheet.command.move-rows`,Di={id:Ei,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(G),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[Ai(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(t=>t.range.rangeType===e.RANGE_TYPE.ROW&&t.range.startRow<=o&&o<=t.range.endRow);if((u==null?void 0:u.length)!==1)return!1;let d=t.get(k),p=f(t.get(e.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=t.get(e.ErrorService),y=t.get(e.LocaleService),b=u[0].range,x=u[0].primary,S=Nn(b,h,!1);if(!e.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(wi(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=Ce(t,w),E=t.get(e.ICommandService),D=d.onCommandExecute({id:Di.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:we.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:we.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:W.MOVE_END,selections:[{range:n,primary:K(n,h),style:null}]},i={unitId:g,subUnitId:_,type:W.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:q.id,params:r}),A.push({id:q.id,params:i})}if(O.push(...D.redos),A.push(...D.undos),(0,e.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Di.id,params:n});return(0,e.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),t.get(e.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}},Oi=`sheet.command.move-cols`,ki={id:Oi,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(G),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[Ai(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(t=>t.range.rangeType===e.RANGE_TYPE.COLUMN&&t.range.startColumn<=o&&o<=t.range.endColumn);if((u==null?void 0:u.length)!==1)return!1;let d=t.get(k),p=f(t.get(e.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=t.get(e.ErrorService),y=t.get(e.LocaleService),b=u[0].range,x=u[0].primary,S=Nn(b,h,!1);if(!e.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Ti(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=Te(t,w),E=t.get(e.ICommandService),D=d.onCommandExecute({id:ki.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:Ee.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:Ee.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:W.MOVE_END,selections:[{range:t,primary:K(t,h),style:null}]},r={unitId:g,subUnitId:_,type:W.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:q.id,params:n}),A.push({id:q.id,params:r})}if(O.push(...D.redos),A.push(...D.undos),(0,e.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:ki.id,params:n});return(0,e.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),t.get(e.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}};function Ai(e){return{range:e,primary:null,style:null}}let ji=class extends e.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$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._initWorkbookSkeleton(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(e.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())}};ji=T([w(0,(0,e.Inject)(e.Injector)),w(1,(0,e.Inject)(e.IUniverInstanceService))],ji);function Mi(t,n){let r=new e.ObjectMatrix;return t.map(t=>e.Range.transformRange(t,n)).forEach(t=>{e.Range.foreach(t,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}),r}function Ni(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 Pi(e){let t=0;return e.forEach(()=>{t++}),t}const Fi=`sheet.command.reorder-range`,Ii={id:Fi,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let{subUnitId:a,unitId:o,range:s,order:c}=n,l=t.get(e.ICommandService),u={id:Ae.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:Ae.id,params:ke(u.params)},f=t.get(k),p=f.onCommandExecute({id:Ii.id,params:n}),m=[...(r=p.preRedos)==null?[]:r,u,...p.redos],h=[...(i=p.preUndos)==null?[]:i,d,...p.undos],g=(0,e.sequenceExecute)(m,l),{suitableRanges:_,remainingRanges:v}=Ni([s],t.get(ji).getSkeleton(o,a)),{undos:y,redos:b}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:a,ranges:[s],autoHeightRanges:_,lazyAutoHeightRanges:v}),x=f.afterCommandExecute({id:Ii.id,params:n});return g.result?((0,e.sequenceExecute)([...x.redos,...b],l),t.get(e.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[...h,...x.undos,...y],redoMutations:[...m,...x.redos,...b]}),!0):!1}},J={MoveRangeCommandId:Gn,InsertRowCommandId:ti,InsertColCommandId:ci,RemoveColCommandId:yi,RemoveRowCommandId:gi,DeleteRangeMoveLeftCommandId:qr,DeleteRangeMoveUpCommandId:Yr,InsertRangeMoveDownCommandId:Zr,InsertRangeMoveRightCommandId:$r,MoveColsCommandId:Oi,MoveRowsCommandId:Ei,ReorderRangeCommandId:Fi};let 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}({});const Li=t=>{let n={...t},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===e.RANGE_TYPE.COLUMN||r)&&(n.startRow=0,n.endRow=e.MAX_ROW_COUNT-1),(n.rangeType===e.RANGE_TYPE.ROW||i)&&(n.startColumn=0,n.endColumn=e.MAX_COLUMN_COUNT-1),n.rangeType===e.RANGE_TYPE.ALL&&(n.startColumn=0,n.endColumn=e.MAX_COLUMN_COUNT-1,n.startRow=0,n.endRow=e.MAX_ROW_COUNT-1),n},Ri=t=>{let n=t.rangeType;return t.rangeType===e.RANGE_TYPE.COLUMN?n=e.RANGE_TYPE.ROW:t.rangeType===e.RANGE_TYPE.ROW&&(n=e.RANGE_TYPE.COLUMN),{startRow:t.startColumn,endRow:t.endColumn,startColumn:t.startRow,endColumn:t.endRow,rangeType:n}},zi=(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)}},Bi=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Li(n),a=Li(r),o=Li(t),s=zi({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}]},Vi=(t,n)=>{let{fromRange:r,toRange:i}=t.params||{};if(!r||!i)return[n];let a=r.startRow,o=r.endRow-r.startRow+1,s=i.startRow,c=new e.ObjectMatrix;return e.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveRows(a,o,s),(0,e.queryObjectMatrix)(c,e=>e===1)},Hi=(t,n)=>{let{range:r,order:i}=t.params||{};if(!r||!i)return[n];let a=new e.ObjectMatrix;e.Range.foreach(n,(e,t)=>{a.setValue(e,t,1)});let o=new e.ObjectMatrix;return e.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,e.queryObjectMatrix)(a,e=>e===1)},Ui=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Li(n),a=Li(r),o=Li(t),s=zi({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}]},Wi=(t,n)=>{let{fromRange:r,toRange:i}=t.params||{};if(!r||!i)return[n];let a=r.startColumn,o=r.endColumn-r.startColumn+1,s=i.startColumn,c=new e.ObjectMatrix;return e.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveColumns(a,o,s),(0,e.queryObjectMatrix)(c,e=>e===1)},Gi=(t,n)=>{var r,i;let a=(r=t.params)==null?void 0:r.toRange,o=(i=t.params)==null?void 0:i.fromRange;if(!a||!o)return[];let s=[];if(e.Rectangle.contains(a,n)&&s.push({type:Y.Delete}),e.Rectangle.contains(o,n)){s.push({type:Y.Delete});let t=e.Rectangle.getRelativeRange(n,o),r=e.Rectangle.getPositionRange(t,a);return[{type:Y.Set,range:r}]}return s},Ki=(t,n)=>{var r,i;let a=(r=t.params)==null?void 0:r.toRange,o=(i=t.params)==null?void 0:i.fromRange;if(!a||!o||!e.Rectangle.intersects(o,n)&&!e.Rectangle.intersects(a,n))return[n];if(e.Rectangle.contains(o,n)){let t=e.Rectangle.getRelativeRange(n,o);return[e.Rectangle.getPositionRange(t,a)]}let s=new e.ObjectMatrix;e.Range.foreach(n,(e,t)=>{s.setValue(e,t,1)});let c=new e.ObjectMatrix,l=e.Rectangle.getIntersects(o,n);l&&e.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&&e.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,e.queryObjectMatrix)(s,e=>e===1)},qi=(t,n)=>{let r=Li(t),i=Li(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 t=e.Rectangle.getIntersects(i,r);if(t)return{step:0,length:-a(t)}}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 t=e.Rectangle.getIntersects(i,r);if(t){let e=-a(t);return{step:-(a(r)-a(t)),length:e}}}if(i.startColumn>r.endColumn)return{step:-a(r),length:0}}return{step:0,length:0}},Ji=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=qi(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},Yi=(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=qi(Ri(e),Ri(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},Xi=(t,n)=>{let{range:r,order:i}=t.params||{};if(!r||!i)return[];if(e.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[]},Zi=(e,t)=>{let n=Li(e),r=Li(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 Qi(t,n,r){let i=[];if(e.Rectangle.contains(n,r)&&i.push({type:Y.Delete}),e.Rectangle.contains(t,r)){i.push({type:Y.Delete});let a=e.Rectangle.getRelativeRange(r,t),o=e.Rectangle.getPositionRange(a,n);return[{type:Y.Set,range:o}]}return i}const $i=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Zi(Ri(r),Ri(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},ea=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Zi(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},ta=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Zi(Ri(r),Ri(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},na=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.subtract(n,o),c=e.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new e.ObjectMatrix;return s.forEach(t=>{e.Range.foreach(t,(e,t)=>{l.setValue(e,t,1)})}),c&&e.Range.foreach(c,(e,t)=>{l.setValue(e+a,t,1)}),(0,e.queryObjectMatrix)(l,e=>e===1)},ra=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Zi(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},ia=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.subtract(n,o),c=e.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new e.ObjectMatrix;return s.forEach(t=>{e.Range.foreach(t,(e,t)=>{l.setValue(e,t,1)})}),c&&e.Range.foreach(c,(e,t)=>{l.setValue(e,t+a,1)}),(0,e.queryObjectMatrix)(l,e=>e===1)},aa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=qi(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},oa=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.getIntersects(i,n),c=e.Rectangle.subtract(n,a),l=e.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new e.ObjectMatrix;return l&&e.Range.foreach(l,(e,t)=>{u.setValue(e,t-o,1)}),s&&e.Range.foreach(s,(e,t)=>{u.setValue(e,t-o,0)}),c.forEach(t=>{e.Range.foreach(t,(e,t)=>{u.setValue(e,t,1)})}),(0,e.queryObjectMatrix)(u,e=>e===1)},sa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=qi(Ri(r),Ri(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},ca=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.getIntersects(i,n),c=e.Rectangle.subtract(n,a),l=e.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new e.ObjectMatrix;return l&&e.Range.foreach(l,(e,t)=>{u.setValue(e-o,t,1)}),s&&e.Range.foreach(s,(e,t)=>{u.setValue(e-o,t,0)}),c.forEach(t=>{e.Range.foreach(t,(e,t)=>{u.setValue(e,t,1)})}),(0,e.queryObjectMatrix)(u,e=>e===1)},la=(t,n)=>{var r;let i=(0,e.mergeIntervals)(((r=t.ranges)==null?[t.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}]},ua=(t,n)=>{let r=t.params,i=r.range.startRow,a=r.range.endRow-r.range.startRow+1;if(r.direction===e.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]},da=(t,n)=>{let r=t.params,i=r.range.startColumn,a=r.range.endColumn-r.range.startColumn+1;if(r.direction===e.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]},fa=(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},pa=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:n=aa(t,e);break;case J.DeleteRangeMoveUpCommandId:n=sa(t,e);break;case J.InsertColCommandId:n=ea(t,e);break;case J.InsertRangeMoveDownCommandId:n=ta(t,e);break;case J.InsertRangeMoveRightCommandId:n=ra(t,e);break;case J.InsertRowCommandId:n=$i(t,e);break;case J.MoveColsCommandId:n=Ui(t,e);break;case J.MoveRangeCommandId:n=Gi(t,e);break;case J.MoveRowsCommandId:n=Bi(t,e);break;case J.RemoveColCommandId:n=Ji(t,e);break;case J.RemoveRowCommandId:n=Yi(t,e);break;case J.ReorderRangeCommandId:n=Xi(t,e);break}return fa(n,e)},ma=(t,n,r)=>[Jr.id,Xr.id].includes(n.id)||va(n,r).some(n=>e.Rectangle.intersects(n,t))?pa(t,n):t,ha=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:return oa(t,e);case J.DeleteRangeMoveUpCommandId:return ca(t,e);case J.InsertRangeMoveDownCommandId:return na(t,e);case J.InsertRangeMoveRightCommandId:return ia(t,e);case J.InsertColCommandId:return da(t,e);case J.InsertRowCommandId:return ua(t,e);case J.MoveColsCommandId:return Wi(t,e);case J.MoveRangeCommandId:return Ki(t,e);case J.MoveRowsCommandId:return Vi(t,e);case J.ReorderRangeCommandId:return Hi(t,e);case J.RemoveColCommandId:n=Ji(t,e);break;case J.RemoveRowCommandId:return la(t.params,e)}let r=fa(n,e);return r?[r]:[]},ga=(t,n,r)=>[Jr.id,Xr.id,Qr.id,`sheet.command.insert-range-move-right`].includes(n.id)||va(n,r).some(n=>e.Rectangle.intersects(n,t))?ha(t,n):t;function _a(t,n){let{id:r,params:i}=n,a={length:0,step:0,type:Y.Unknown};switch(r){case Ci.id:a.type=Y.Delete;break;case we.id:a=zi({start:i.sourceRange.startRow,end:i.sourceRange.endRow},{start:i.targetRange.startRow,end:i.targetRange.endRow},{start:t.startRow,end:t.endRow}),a.type=Y.VerticalMove;break;case Ee.id:a=zi({start:i.sourceRange.startColumn,end:i.sourceRange.endColumn},{start:i.targetRange.startColumn,end:i.targetRange.endColumn},{start:t.startColumn,end:t.endColumn}),a.type=Y.HorizontalMove;break;case L.id:a=qi(i.range,t),a?a.type=Y.HorizontalMove:a={step:0,length:0,type:Y.Delete};break;case I.id:a=qi(Ri(i.range),Ri(t)),a?a.type=Y.VerticalMove:a={step:0,length:0,type:Y.Delete};break;case P.id:a=Zi(Ri(i.range),Ri(t)),a.type=Y.VerticalMove;break;case F.id:a=Zi(i.range,t),a.type=Y.HorizontalMove;break;case Se.id:a=Qi(i.fromRange||new e.ObjectMatrix(i.from).getRange(),i.toRange||new e.ObjectMatrix(i.to).getRange(),t);break;default:break}return a?fa(Array.isArray(a)?a:[a],t):t}function va(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(t){switch(t.id){case Ee.id:{let e=t.params;return[e.sourceRange,{...e.targetRange,startColumn:e.targetRange.startColumn-.5,endColumn:e.targetRange.startColumn-.5}]}case we.id:{let e=t.params;return[e.sourceRange,{...e.targetRange,startRow:e.targetRange.startRow-.5,endRow:e.targetRange.startRow-.5}]}case Se.id:{let n=t.params;return[new e.ObjectMatrix(n.from.value).getRange(),new e.ObjectMatrix(n.to.value).getRange()]}case F.id:{let e=t.params.range;return[{...e,startColumn:e.startColumn-.5,endColumn:e.startColumn-.5}]}case P.id:{let e=t.params.range;return[{...e,startRow:e.startRow-.5,endRow:e.startRow-.5}]}case L.id:return[t.params.range];case I.id:return[t.params.range];default:break}}function ba(t,n){let r=t.get(e.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}}}}const xa=(0,e.createInterceptorKey)(`MERGE_REDO`),Sa=(0,e.createInterceptorKey)(`MERGE_UNDO`);var Ca=class extends e.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(t){var n,r;if(((n=t.params)==null?void 0:n.unitId)!==this._unitId)return;if(t.id===Se.id){let e=t.params;if(e.from.subUnitId!==this._subUnitId||e.to.subUnitId!==this._subUnitId)return}else if(((r=t.params)==null?void 0:r.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(t.id===Ci.id)return;let n=ya(t);if(n!=null&&n.some(t=>e.Rectangle.intersects(t,this._range)))return}let i=_a(this._range,t);if(i&&e.Rectangle.equals(i,this._range))return!1;let a=this._range;this._range=i,this._callback(a,i)}};let wa=class extends e.Disposable{constructor(t,n,r,i){super(),this._commandService=t,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,C(this,`interceptor`,new e.InterceptorManager({MERGE_REDO:xa,MERGE_UNDO:Sa})),C(this,`_watchRanges`,new Set),C(this,`_refRangeManagerMap`,new Map),C(this,`_serializer`,Oa()),C(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:t=>{let n=(()=>{switch(t.id){case J.MoveColsCommandId:{let e=t.params,n=f(this._univerInstanceService,e);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(e.fromRange.startColumn,e.toRange.startColumn);return this._checkRange([{...e.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case J.MoveRowsCommandId:{let e=t.params,n=f(this._univerInstanceService,e);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(e.fromRange.startRow,e.toRange.startRow);return this._checkRange([{...e.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case J.MoveRangeCommandId:{var n,r;let e=t.params,i=f(this._univerInstanceService,{unitId:e.fromUnitId,subUnitId:e.fromSubUnitId}),a=f(this._univerInstanceService,{unitId:(n=e.toUnitId)==null?e.fromUnitId:n,subUnitId:(r=e.toSubUnitId)==null?e.fromSubUnitId:r});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([e.fromRange,e.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([e.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([e.toRange],a.unitId,a.subUnitId)),o}case J.InsertRowCommandId:{let n=t.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:e.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case J.InsertColCommandId:{let n=t.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:e.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case J.RemoveRowCommandId:{let n=t.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:e.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case J.RemoveColCommandId:{let n=t.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:e.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case J.DeleteRangeMoveUpCommandId:case J.InsertRangeMoveDownCommandId:{let e=t.params,n=f(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...e.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case J.DeleteRangeMoveLeftCommandId:case J.InsertRangeMoveRightCommandId:{let e=t.params,n=f(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...e.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case J.ReorderRangeCommandId:{let e=t.params,n=f(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=e,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((e,n)=>{let r=n(t);return e.push(r),e},[]).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`,(t,n,r)=>{let i=Da(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};t.some(t=>e.Rectangle.intersects(t,s))&&i&&i.forEach(e=>{n.add(e)})}),[...n]}return[]}),C(this,`registerRefRange`,(t,n,r,i)=>{let a=r||Ta(this._univerInstanceService),o=i||Ea(this._univerInstanceService);if(!a||!o)return(0,e.toDisposable)(()=>{});let s=Da(a,o),c=this._serializer.serialize(t),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,e.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(t,n,r,i,a){let o;this._watchRanges.size===0&&(o=this._commandService.onCommandExecuted(t=>{if(t.type!==e.CommandType.MUTATION)return!1;for(let e of this._watchRanges)e.onMutation(t)}));let s=new Ca(t,n,r,i,a);this._watchRanges.add(s);let c=(0,e.toDisposable)(()=>{this._watchRanges.delete(s),this._watchRanges.size===0&&(o==null||o.dispose(),o=null)}),l=this.disposeWithMe(c);return(0,e.toDisposable)(()=>{l.dispose(),c.dispose()})}};wa=T([w(0,e.ICommandService),w(1,(0,e.Inject)(k)),w(2,(0,e.Inject)(e.IUniverInstanceService)),w(3,(0,e.Inject)(G))],wa);function Ta(t){var n;return(n=t.getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function Ea(t){var n;return(n=t.getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function Da(e,t){return`${e}_${t}`}function Oa(){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}`},``)}}const ka=[F.id,P.id,L.id,I.id],Aa=[we.id,Ee.id];function ja(t,n){let r=t;if(n!==void 0){let t=[];for(let i=0;i<r.length;i++){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=r[i];if(n===e.Dimension.ROWS)for(let e=a;e<=o;e++){let n={startRow:e,endRow:e,startColumn:s,endColumn:c};t.push(n)}else if(n===e.Dimension.COLUMNS)for(let e=s;e<=c;e++){let n={startRow:a,endRow:o,startColumn:e,endColumn:e};t.push(n)}}r=t}return r}const Ma=(0,e.createInterceptorKey)(`mergeCellPermissionCheck`);let Na=class extends e.Disposable{constructor(t,n,r,i,a,o){super(),this._commandService=t,this._refRangeService=n,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=o,C(this,`disposableCollection`,new e.DisposableCollection),C(this,`interceptor`,new e.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:Ma})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let t=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case jn.id:case Mn.id:{var r;let n=t._univerInstanceService.getCurrentUnitForType(e.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=t._selectionManagerService.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(c&&c.length>0&&c.some(t=>s.some(n=>e.Rectangle.intersects(n,t)))){let e={unitId:i,subUnitId:o,ranges:c},n=R(t._injector,e);return{redos:[{id:z.id,params:e}],undos:[{id:h.id,params:n}]}}}}return{redos:[],undos:[]}}}),this._sheetInterceptorService.interceptRanges({getMutations:({unitId:t,subUnitId:n,ranges:r})=>{let i=[],a=[],o={redos:i,undos:a};if(!r||!r.length)return o;let s=f(this._univerInstanceService,{unitId:t,subUnitId:n});if(!s)return o;let{worksheet:c}=s,l=c.getMergeData().filter(t=>r.some(n=>e.Rectangle.intersects(t,n)));return l.length?(i.push({id:z.id,params:{unitId:t,subUnitId:n,ranges:l}}),a.push({id:h.id,params:{unitId:t,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 ni.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case li.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 vi.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case Kn.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case ei.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case Qr.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case Xr.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case Jr.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let n=(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(e=>{if(e.id===Pt.id){let t=e.params,r=t.subUnitId,i=t.unitId;if(!r||!i)return;n(i,r)}if(e.id===h.id){let t=e.params,r=t.subUnitId,i=t.unitId;if(!r||!i)return;n(t.unitId,t.subUnitId)}})),this._univerInstanceService.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,t.first)(e=>!!e)).subscribe(e=>{let t=e.getActiveSheet();t&&n(e.getUnitId(),t.getSheetId())})}_handleMoveRowsCommand(e,t,n){let r=Pa(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Fa(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=fa(Bi({id:J.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:z.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=Pa(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Fa(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=fa(Ui({id:J.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:z.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveRangeCommand(t,n,r){var i,a;let o=Pa(this._univerInstanceService,n);if(!o)return this._handleNull();let s=(i=t.fromSubUnitId)==null?r:i,c=(a=t.toSubUnitId)==null?s:a,l=Fa(o,s),u=Fa(o,c);if(!l||!u)return this._handleNull();let d=l.getMergeData().filter(n=>e.Rectangle.intersects(n,t.fromRange)),f=u.getMergeData().filter(n=>e.Rectangle.intersects(n,t.toRange)),p=ja(d.map(n=>e.Rectangle.getRelativeRange(n,t.fromRange)).map(n=>e.Rectangle.getPositionRange(n,t.toRange))).filter(t=>!u.getMergeData().some(n=>e.Rectangle.equals(t,n))),m=[],g=[];return r===s&&d.length>0&&(m.push({id:z.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:z.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:z.id,params:{unitId:n,subUnitId:c,ranges:p}})),m.length===0?this._handleNull():{redos:m,undos:g}}_handleInsertRowCommand(t,n,r){let i=Pa(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Fa(i,r);if(!a)return this._handleNull();let{range:o}=t,{startRow:s,endRow:c}=o,l=e.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=e.Tools.deepClone(a.getMergeData()).reduce((e,t)=>{if(s>t.startRow&&s<=t.endRow){let n=c-s+1;t.endRow+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{redos:[{id:z.id,params:d},{id:h.id,params:p}],undos:[{id:z.id,params:g},{id:h.id,params:f}]}}_handleInsertColCommand(t,n,r){let{range:i}=t,a=Pa(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Fa(a,r);if(!o)return this._handleNull();let{startColumn:s,endColumn:c}=i,l=e.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=e.Tools.deepClone(o.getMergeData()).reduce((e,t)=>{if(s>t.startColumn&&s<=t.endColumn){let n=c-s+1;t.endColumn+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{redos:[{id:z.id,params:d},{id:h.id,params:p}],undos:[{id:z.id,params:g},{id:h.id,params:f}]}}_handleRemoveColCommand(t,n,r){let i=Pa(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Fa(i,r);if(!a)return this._handleNull();let{range:o}=t,{startColumn:s,endColumn:c}=o,l=e.Tools.deepClone(a.getMergeData()).reduce((t,n)=>(e.Rectangle.intersects(o,n)&&t.push(n),t),[]);if(l.length===0)return this._handleNull();let u=e.Tools.deepClone(a.getMergeData()).reduce((t,n)=>{if(e.Rectangle.intersects(o,n)){if(s<=n.startColumn&&c>=n.endColumn)return t;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)&&t.push(n)}return t},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:z.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleRemoveRowCommand(t,n,r){let{range:i}=t,a=Pa(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Fa(a,r);if(!o)return this._handleNull();let{startRow:s,endRow:c}=i,l=e.Tools.deepClone(o.getMergeData()).reduce((t,n)=>(e.Rectangle.intersects(i,n)&&t.push(n),t),[]);if(l.length===0)return this._handleNull();let u=e.Tools.deepClone(o.getMergeData()).reduce((t,n)=>{if(e.Rectangle.intersects(i,n)){if(s<=n.startRow&&c>=n.endRow)return t;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)&&t.push(n)}return t},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:z.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleInsertRangeMoveRightCommand(t,n,r){let i=Pa(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Fa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},t))){let e=a-i+1;u.push({startRow:t.startRow,startColumn:t.startColumn+e,endRow:t.endRow,endColumn:t.endColumn+e})}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:h.id,params:p}],preUndos:[{id:z.id,params:g}],undos:[{id:h.id,params:f}]}}_handleInsertRangeMoveDownCommand(t,n,r){let i=Pa(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Fa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},t))){let e=a-n+1;u.push({startRow:t.startRow+e,startColumn:t.startColumn,endRow:t.endRow+e,endColumn:t.endColumn})}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}],y=[{id:z.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveUpCommand(t,n,r){let i=Pa(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Fa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},t))){let r=a-n+1,i=e.Rectangle.moveVertical(t,-r);u.push(i)}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}],y=[{id:z.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveLeftCommand(t,n,r){let i=Pa(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Fa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},t))){let e=a-i+1;u.push({startRow:t.startRow,startColumn:t.startColumn-e,endRow:t.endRow,endColumn:t.endColumn-e})}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:h.id,params:p}],undos:[{id:h.id,params:f}],preUndos:[{id:z.id,params:g}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Aa.includes(t.id)){if(!t.params)return;let n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;let r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=t.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(t=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f}=t;e.Rectangle.intersects(t,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)),t.startRow===t.endRow&&t.startColumn===t.endColumn||d.push({startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f})}),r.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=t.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}if(ka.includes(t.id)){let e=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!e)return;let n=e.getSheetBySheetId(t.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=t.params;if(!i)return;let{range:a}=i,o=t.id.includes(`row`),s=t.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}=t.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};Na=T([w(0,(0,e.Inject)(e.ICommandService)),w(1,(0,e.Inject)(wa)),w(2,(0,e.Inject)(e.IUniverInstanceService)),w(3,(0,e.Inject)(e.Injector)),w(4,(0,e.Inject)(k)),w(5,(0,e.Inject)(G))],Na);function Pa(t,n){return n?t.getUniverSheetInstance(n):t.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET)}function Fa(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}const Ia=(t,n,r)=>{let i=t.get(G).getCurrentSelections(),{value:a,selections:o,unitId:s,subUnitId:c}=n;if(i&&i.length>0){let t=i[(i==null?void 0:i.length)-1].primary;if(t){let{actualColumn:n,actualRow:l}=t,{startRow:u,startColumn:d,endRow:f,endColumn:p}=o[o.length-1];if(a===e.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===e.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:W.ONLY_SET,selections:h};return{id:q.id,params:g}}return null}return null},La=(e,t)=>{let n=e.get(G).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:W.ONLY_SET,selections:[...n]};return{id:q.id,params:e}}return null},Ra={type:e.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(t,n)=>{var r;let i=t.get(G),a=t.get(e.ICommandService),o=t.get(e.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(t.get(e.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(t=>s.some(n=>e.Rectangle.intersects(n,t)));if(!m.length)return!1;let g=R(t,p),_=i.getCurrentSelections(),v=e.Tools.deepClone(_),y=e.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:za(d,m).getMatrix()},x=B(t,b),S=[{id:z.id,params:g},{id:V.id,params:b},{id:q.id,params:{unitId:u,subUnitId:l,selections:y,type:W.ONLY_SET}}],C=[{id:h.id,params:g},{id:V.id,params:x},{id:q.id,params:{unitId:u,subUnitId:l,selections:v,type:W.ONLY_SET}}];return(0,e.sequenceExecute)(S,a)?(o.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function za(t,n){let r=new e.ObjectMatrix;return n.forEach(e=>{let{startRow:n,startColumn:i,endColumn:a,endRow:o}=e,s=t.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 Ba=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function Va(e,t){return t.some(t=>Ha(e,t))}function Ha(e,t){let{startRow:n,startColumn:r,endColumn:i,endRow:a}=t,o=e.getMatrixWithMergedCells(n,r,a,i),s=!1;return o.forValue((t,i,a)=>{if(a&&(t!==n||i!==r)&&e.cellHasValue(a))return s=!0,!1}),s}function Ua(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:Wa(n,r).getData()},c=B(e,s);i.push({id:V.id,params:c}),a.push({id:V.id,params:s})}),{undos:i,redos:a}}function Wa(t,n){let{startRow:r,startColumn:i,endColumn:a,endRow:o}=n,s=t.getMatrixWithMergedCells(r,i,o,a,e.CellModeEnum.Raw),c=new e.ObjectMatrix,l=null;return s.forValue((e,n,a)=>{if(a&&e>=r&&n>=i){var o,s;!l&&t.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(e,n,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),c.setValue(r,i,l),c}const Ga={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{unitId:a,subUnitId:o,selections:s}=n,c=t.get(e.ICommandService),l=t.get(e.IUndoRedoService),u=ja(s,n.value),d=Va(i,u);if(d&&!n.defaultMerge){let n=t.get(e.IConfirmService),r=t.get(e.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:e.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:e.Tools.deepClone(u)},y=R(t,_),b=m(t,v);if(y.ranges.length>0&&p.push({id:z.id,params:y}),p.push({id:h.id,params:v}),g.push({id:z.id,params:b}),y.ranges.length>0&&g.push({id:h.id,params:y}),d){let e=Ua(t,a,i,u);p.unshift(...e.redos),g.push(...e.undos)}let x=Ia(t,n,u);x&&p.push(x);let S=La(t,n);S&&g.push(S);let C=t.get(k).onCommandExecute({id:Ga.id,params:{unitId:a,subUnitId:o,ranges:u}});return p.push(...C.redos),g.push(...C.undos),(0,e.sequenceExecute)(p,c).result?(l.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:p}),!0):!1}},Ka={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async t=>{var n;let r=(n=t.get(G).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Xa(Ba.MergeAll,r);if(!(i!=null&&i.length))return!1;let a=f(t.get(e.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return t.get(e.ICommandService).executeCommand(Ga.id,{selections:i,unitId:s,subUnitId:c})}},qa={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async t=>{var n;let r=(n=t.get(G).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Xa(Ba.MergeVertical,r);if(!(i!=null&&i.length))return!1;let a=f(t.get(e.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return t.get(e.ICommandService).executeCommand(Ga.id,{value:e.Dimension.COLUMNS,selections:i,unitId:s,subUnitId:c})}},Ja={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async t=>{var n;let r=(n=t.get(G).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Xa(Ba.MergeHorizontal,r);if(!(i!=null&&i.length))return!1;let a=f(t.get(e.IUniverInstanceService));if(!a)return!1;let{workbook:o,worksheet:s}=a,c=o.getUnitId(),l=s.getSheetId();return t.get(e.ICommandService).executeCommand(Ga.id,{value:e.Dimension.ROWS,selections:i,unitId:c,subUnitId:l})}};function Ya(t,n,r,i,a={}){let o=f(t.get(e.IUniverInstanceService),{unitId:n,subUnitId:r});if(!o)return;let s=t.get(e.ICommandService),{defaultMerge:c=!0,isForceMerge:l=!1}=a,{worksheet:u}=o;if(u.getMergeData().some(t=>i.some(n=>e.Rectangle.intersects(n,t)))){if(!l)throw Error(`The ranges to be merged overlap with the existing merged cells`);s.syncExecuteCommand(Ra.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(Ga.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function Xa(e,t){return t?e===Ba.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===Ba.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===Ba.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var Za=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange`,new t.Subject),C(this,`_ruleRefresh`,new t.Subject),C(this,`_resetOrder`,new t.Subject),C(this,`ruleChange$`,this._ruleChange.asObservable()),C(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),C(this,`resetOrder$`,this._resetOrder.asObservable()),C(this,`_worksheetRuleInitStateChange`,new t.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]}};const Qa={id:`sheet.mutation.add-worksheet-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Za),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},$a={id:`sheet.mutation.delete-worksheet-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Za),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},eo={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{rule:a,unitId:o}=n,s=a.subUnitId;if(await r.executeCommand(Qa.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:Qa.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:$a.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},to={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-range-theme-style`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a}=n,o=_e(t,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:e.CommandType.COMMAND,id:`sheet.command.append-row`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a,subUnitId:o,cellValue:s,insertRowNums:c,insertColumnNums:l,maxRows:u,maxColumns:d}=n,f={unitId:a,subUnitId:o,cellValue:s},p=B(t,f),m=[{id:V.id,params:f}],h=[{id:V.id,params:p}];if(c){let e={unitId:a,subUnitId:o,range:{startRow:u,endRow:u,startColumn:0,endColumn:d-1}},n=be(t,e);m.unshift({id:P.id,params:e}),h.push({id:I.id,params:n})}if(l){let e={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=xe(t,e);m.unshift({id:F.id,params:e}),h.push({id:L.id,params:n})}return(0,e.sequenceExecute)(m,r).result?(i.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},ro=[`ff`,`fs`,`tr`,`tb`],X={type:e.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(t,n)=>{var r;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,{range:c,style:l}=n,u=t.get(e.ICommandService),d=t.get(e.IUndoRedoService),p=t.get(G),m=c?[c]:(r=p.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(m!=null&&m.length))return!1;let h=new e.ObjectMatrix,g=Rn(s);if(e.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=t.get(ji).getSkeleton(a,o),y=B(t,_),b=null;if(ro.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=Ni(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:Mi(e,s)}}let x=u.syncExecuteCommand(V.id,_),S=t.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,e.sequenceExecute)([...E,...w],u);return x&&D.result?(d.pushUndoRedo({unitID:_.unitId,undoMutations:[{id:V.id,params:y},...T,...C],redoMutations:[{id:V.id,params:_},...E,...w]}),!0):!1}},io={type:e.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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()===e.FontWeight.BOLD?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}};return t.get(e.ICommandService).syncExecuteCommand(X.id,s)}},ao={type:e.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;if(n.primary){let{startRow:t,startColumn:r}=n.primary;a=i.getRange(t,r).getFontStyle()===e.FontItalic.ITALIC}let o={style:{type:`it`,value:a?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},oo={type:e.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},so={type:e.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},co={type:e.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},lo={type:e.CommandType.COMMAND,id:`sheet.command.set-font-family`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={style:{type:`ff`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},uo={type:e.CommandType.COMMAND,id:`sheet.command.set-font-size`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={style:{type:`fs`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},fo={type:e.CommandType.COMMAND,id:`sheet.command.set-text-color`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={style:{type:`cl`,value:{rgb:n.value}}};return r.syncExecuteCommand(X.id,i)}},po={type:e.CommandType.COMMAND,id:`sheet.command.reset-text-color`,handler:t=>t.get(e.ICommandService).syncExecuteCommand(X.id,{style:{type:`cl`,value:{rgb:null}}})},mo={type:e.CommandType.COMMAND,id:`sheet.command.set-background-color`,handler:(t,n)=>{if(!n||!n.value)return!1;let r=t.get(e.ICommandService),i={style:{type:`bg`,value:{rgb:n.value}}};return r.syncExecuteCommand(X.id,i)}},ho={type:e.CommandType.COMMAND,id:`sheet.command.reset-background-color`,handler:t=>t.get(e.ICommandService).syncExecuteCommand(X.id,{style:{type:`bg`,value:{rgb:null}}})},go={type:e.CommandType.COMMAND,id:`sheet.command.set-vertical-text-align`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`vt`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},_o={type:e.CommandType.COMMAND,id:`sheet.command.set-horizontal-text-align`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`ht`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},vo={type:e.CommandType.COMMAND,id:`sheet.command.set-text-wrap`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.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:e.CommandType.COMMAND,id:`sheet.command.set-text-rotation`,handler:(t,n)=>{if(!n)return!1;let r=typeof n.value==`number`?{a:n.value}:{a:0,v:e.BooleanNumber.TRUE},i=t.get(e.ICommandService),a={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`tr`,value:r}};return i.syncExecuteCommand(X.id,a)}},bo={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},xo=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],So=[``,`万`,`亿`,`万亿`,`亿亿`],Co=[``,`十`,`百`,`千`],wo={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function To(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=bo[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=wo[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 Eo(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+=Co[r],n=t+n),r++,e=Math.floor(e/10)}return n}function Do(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=Eo(a),n+=a===0?So[0]:So[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Oo(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in bo;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in bo||n[e]in wo)){t=!1;break}}return t}function ko(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 Ao(e){let t;return t=e.length===1?e===`日`||To(e)<7:!1,t}function jo(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function Mo(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function No(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function Po(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 Fo(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 Io(t,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%t.length,a=e.Tools.deepClone(t[n]);Qo(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function Lo(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 Ro(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 zo(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function Bo(t,n,r){let i=[],a=[];for(let e=0;e<t.length;e++){var o;a.push(Number((o=t[e])==null?void 0:o.v))}if(t.length>2&&Ro(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%t.length,a=e.Tools.deepClone(t[n]);Qo(a);let o=Number((s=t[t.length-1])==null?void 0:s.v)*(Number((c=t[1])==null?void 0:c.v)/Number((l=t[0])==null?void 0:l.v))**r;a&&(Zo(a)&&(a.v=o),i.push(a))}else{let o=zo(t.length);for(let s=1;s<=n;s++){let n=(s-1)%t.length,c=e.Tools.deepClone(t[n]);Qo(c);let l=r===e.Direction.DOWN||r===e.Direction.RIGHT,u=Vo(t.length+s,a,o,l);c&&(Zo(c)&&(c.v=u),i.push(c))}}return i}function Vo(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 Ho(t,n,r){let i=[],a=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=n;s++){var o;let n=(s-1)%t.length,c=e.Tools.deepClone(t[n]);Qo(c);let l=`${(o=t[t.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 Uo(t,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%t.length,a=e.Tools.deepClone(t[n]);Qo(a),a&&(delete a.v,r.push(a))}return r}function Wo(t,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)%t.length,a=e.Tools.deepClone(t[n]);Qo(a);let u=0;if(((c=t[t.length-1])==null?void 0:c.v)===o[0])u=7+r*i;else{var l;let e=`${(l=t[t.length-1])==null?void 0:l.v}`;e&&(u=To(e.substr(e.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 Go(t,n,r){let i=[];for(let o=1;o<=n;o++){var a;let n=(o-1)%t.length,s=e.Tools.deepClone(t[n]);Qo(s);let c=To(`${(a=t[t.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:Do(c),s&&(s.v=l,i.push(s))}return i}const Ko={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 qo(e){let t=!1;return Object.keys(Ko).forEach(n=>{Ko[n].includes(e)&&(t=!0)}),t}function Jo(e){let t=``,n=[];return Object.keys(Ko).forEach(r=>{Ko[r].includes(e)&&(t=r,n.push(...Ko[r]))}),{name:t,series:n}}function Yo(t,n,r,i){let a=i.length,o=[];for(let c=1;c<=n;c++){var s;let n=(c-1)%t.length,l=e.Tools.deepClone(t[n]);Qo(l);let u=`${(s=t[t.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 Xo(t,n){let r=[],i;if(n.startRow<t.startRow)i=e.Direction.UP;else if(n.endRow>t.endRow)i=e.Direction.DOWN;else if(n.startColumn<t.startColumn)i=e.Direction.LEFT;else if(n.endColumn>t.endColumn)i=e.Direction.RIGHT;else return[];if(i===e.Direction.DOWN||i===e.Direction.UP){let a=t.endRow-t.startRow+1,o=n.endRow-n.startRow+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:t.endRow-t.startRow,endColumn:t.endColumn-t.startColumn};if(i===e.Direction.DOWN){for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow+(e+1)*a,col:t.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow+(s+1)*a,col:t.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:c-1,endColumn:t.endColumn-t.startColumn}})}else{for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow-(e+1)*a,col:t.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow-(s+1)*a,col:t.startColumn},relativeRange:{startRow:a-c,endRow:a-1,startColumn:0,endColumn:t.endColumn-t.startColumn}})}}if(i===e.Direction.RIGHT||i===e.Direction.LEFT){let a=t.endColumn-t.startColumn+1,o=n.endColumn-n.startColumn+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:t.endRow-t.startRow,endColumn:t.endColumn-t.startColumn};if(i===e.Direction.RIGHT){for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow,col:t.startColumn+(e+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow,col:t.startColumn+(s+1)*a},relativeRange:{startRow:0,startColumn:0,endRow:t.endRow-t.startRow,endColumn:c-1}})}else{for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow,col:t.startColumn-(e+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow,col:t.startColumn-(s+1)*a},relativeRange:{startRow:0,startColumn:a-c,endRow:t.endRow-t.startRow,endColumn:a-1}})}}return r}function Zo(t){return!((0,e.isFormulaString)(t.f)||(0,e.isFormulaId)(t.si)||t.t===e.CellValueType.BOOLEAN)}function Qo(e){e&&`custom`in e&&delete e.custom}function $o(e,t){return t?e.reverse():e}function es(t){let n=new e.ObjectMatrix;return t.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()}const ts={chnNumChar:bo,chnNumChar2:xo,chnUnitSection:So,chnUnitChar:Co,chnNameValue:wo,chineseToNumber:To,sectionToChinese:Eo,numberToChinese:Do,isChnNumber:Oo,matchExtendNumber:ko,isChnWeek1:Ao,isChnWeek2:jo,isChnWeek3:Mo,getLenS:No,isEqualDiff:Po,getDataIndex:Fo,fillCopy:Io,fillCopyStyles:Lo,isEqualRatio:Ro,getXArr:zo,fillSeries:Bo,forecast:Vo,fillExtendNumber:Ho,fillOnlyFormat:Uo,fillChnWeek:Wo,fillChnNumber:Go,isLoopSeries:qo,getLoopSeriesInfo:Jo,fillLoopSeries:Yo,getAutoFillRepeatRange:Xo,needsUpdateCellValue:Zo,removeCellCustom:Qo,reverseIfNeed:$o,generateNullCellValueRowCol:es};let 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}({}),ns=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({});const{chineseToNumber:rs,fillChnNumber:is,fillChnWeek:as,fillCopy:os,fillExtendNumber:ss,fillLoopSeries:cs,fillSeries:ls,getLoopSeriesInfo:us,isChnNumber:ds,isChnWeek2:fs,isChnWeek3:ps,isEqualDiff:ms,isLoopSeries:hs,matchExtendNumber:gs,reverseIfNeed:_s}=ts,vs={dateRule:{type:Q.DATE,priority:1100,match:(t,n)=>{if(t!=null&&t.f||t!=null&&t.si)return!1;if((typeof(t==null?void 0:t.v)==`number`||(t==null?void 0:t.t)===e.CellValueType.NUMBER)&&t.s){if(typeof t.s==`string`){var r;let i=n.get(e.IUniverInstanceService).getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getStyles().get(t.s),o=a==null||(r=a.n)==null?void 0:r.pattern;if(o)return e.numfmt.getFormatInfo(o).isDate}else if(t.s.n&&e.numfmt.getFormatInfo(t.s.n.pattern).isDate)return!0}return!1},isContinue:(e,t)=>e.type===Q.DATE,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t;return r===e.Direction.LEFT||r===e.Direction.UP?(i.reverse(),ls(i,n,r).reverse()):ls(i,n,r)}}},numberRule:{type:Q.NUMBER,priority:1e3,match:t=>typeof(t==null?void 0:t.v)==`number`||(t==null?void 0:t.t)===e.CellValueType.NUMBER,isContinue:(e,t)=>e.type===Q.NUMBER,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t;return r===e.Direction.LEFT||r===e.Direction.UP?(i.reverse(),ls(i,n,r).reverse()):ls(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]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.UP||r===e.Direction.LEFT,o;if(i.length===1)return o=a?-1:1,_s(ss(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()),ms(s)?(o=s[1]-s[0],_s(ss(i,n,o),a)):os(i,n)}}},chnNumberRule:{type:Q.CHN_NUMBER,priority:830,match:e=>!!ds(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_NUMBER,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.LEFT||r===e.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===`日`||rs(e)<7)?_s(as(i,n,t),a):_s(is(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&&rs(t)>0&&rs(t)<7?l.push(rs(t)+u*7):l.push(rs(t))}return a&&(i.reverse(),l.reverse()),ms(l)?s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0?_s(as(i,n,l[1]-l[0]),a):_s(is(i,n,l[1]-l[0]),a):os(i,n)}}},chnWeek2Rule:{type:Q.CHN_WEEK2,priority:820,match:e=>!!fs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK2,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.LEFT||r===e.Direction.UP;if(i.length===1){let e;return e=a?-1:1,_s(as(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(rs(n)+s*7)}return a&&(i.reverse(),o.reverse()),ms(o)?_s(as(i,n,o[1]-o[0],1),a):os(i,n)}}},chnWeek3Rule:{type:Q.CHN_WEEK3,priority:810,match:e=>ps(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK3,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.LEFT||r===e.Direction.UP;if(i.length===1){let e;return e=a?-1:1,_s(as(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(rs(n)+s*7)}}return a&&(i.reverse(),o.reverse()),ms(o)?_s(as(i,n,o[1]-o[0],2),a):os(i,n)}}},loopSeriesRule:{type:Q.LOOP_SERIES,priority:800,match:e=>hs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===Q.LOOP_SERIES){var n;return us(`${(n=e.cellData)==null?void 0:n.v}`||``).name===us(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[Z.SERIES]:(t,n,r)=>{var i;let{data:a}=t,o=r===e.Direction.LEFT||r===e.Direction.UP,{series:s}=us(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,_s(cs(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()),ms(c)?_s(cs(a,n,c[1]-c[0],s),o):os(a,n)}}},otherRule:{type:Q.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===Q.OTHER}},{chnNumberRule:ys,chnWeek2Rule:bs,chnWeek3Rule:xs,dateRule:Ss,extendNumberRule:Cs,loopSeriesRule:ws,numberRule:Ts,otherRule:Es}=vs;let Ds=class extends e.Disposable{constructor(n,r,i,a){super(),this._commandService=n,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,C(this,`_rules`,[]),C(this,`_hooks`,[]),C(this,`_applyType$`,new t.BehaviorSubject(Z.SERIES)),C(this,`_isFillingStyle`,!0),C(this,`_prevUndos`,[]),C(this,`_autoFillLocation$`,new t.BehaviorSubject(null)),C(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),C(this,`_showMenu$`,new t.BehaviorSubject(!1)),C(this,`showMenu$`,this._showMenu$.asObservable()),C(this,`_direction`,e.Direction.DOWN),C(this,`applyType$`,this._applyType$.asObservable()),C(this,`_menu$`,new t.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=[Ss,Ts,Cs,ys,bs,xs,ws,Es].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(t,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(Ps.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(Ps.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=e.Direction.UP,s.endRow=r.startRow-1;else if(i.endRow>r.endRow)c=e.Direction.DOWN,s.startRow=r.endRow+1;else if(i.startColumn<r.startColumn)c=e.Direction.LEFT,s.endColumn=r.startColumn-1;else if(i.endColumn>r.endColumn)c=e.Direction.RIGHT,s.startColumn=r.endColumn+1;else return!1;this.direction=c;let l=this._injector.invoke(e=>bn(r,e)),u=this._injector.invoke(e=>bn(s,e));if(!l||!u)return!1;this.autoFillLocation={source:l,target:u,unitId:t,subUnitId:n};let d=[];if(this.getActiveHooks().forEach(e=>{var r;let i=e==null||(r=e.onBeforeFillData)==null?void 0:r.call(e,{source:l,target:u,unitId:t,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(t){if(this._hooks.find(e=>e.id===t.id))throw Error(`Add hook failed, hook id '${t.id}' already exist!`);return t.priority===void 0&&(t.priority=0),t.type===void 0&&(t.type=ns.APPEND),this._hooks.push(t),(0,e.toDisposable)(()=>{let e=this._hooks.findIndex(e=>e===t);e>-1&&this._hooks.splice(e,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===ns.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===ns.DEFAULT)),s=i.filter(e=>e.type===ns.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(t){var n;this.applyType=t;let r=this._univerInstanceService.getCurrentUnitOfType(e.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,e.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=e.Rectangle.union(yn(o),yn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(q.id,{selections:[{primary:K({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:e.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(e=>{var n;let{undos:r,redos:i}=((n=e.onFillData)==null?void 0:n.call(e,{source:o,target:s,unitId:c,subUnitId:l},f,t))||{};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(e=>{var n;(n=e.onAfterFillData)==null||n.call(e,{source:o,target:s,unitId:c,subUnitId:l},f,t)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(t,n,r){if(this.applyType===Z.NO_FORMAT)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(t.forEach(t=>{if(t.id===V.id){let{cellValue:s}=t.params;new e.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&&ro.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=kt(s,r),l={id:Mt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Mt.id,params:c}]}:{undos:[],redos:[]}}};Ds=T([w(0,e.ICommandService),w(1,e.IUndoRedoService),w(2,(0,e.Inject)(e.IUniverInstanceService)),w(3,(0,e.Inject)(e.Injector))],Ds);const Os=(0,e.createIdentifier)(`univer.auto-fill-service`),ks={type:e.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a}=r,{sourceRange:o,targetRange:s,applyType:c}=n;return t.get(Os).triggerAutoFill(i,a,o,s,c)}};function As(t,n){let r=t.get(G).getCurrentLastSelection();if(!r)return null;let i=f(t.get(e.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 js(t,n){let r=As(t,n);if(!r)return!1;let i=await t.get(e.ICommandService).executeCommand(ks.id,r);return i&&t.get(Os).setShowMenu(!1),i}const Ms={type:e.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>js(e,`down`)},Ns={type:e.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>js(e,`right`)},Ps={id:`sheet.command.auto-clear-content`,type:e.CommandType.COMMAND,handler:async(t,n)=>{let r=f(t.get(e.IUniverInstanceService));if(!r)return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.get(k),s=t.get(G),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:p,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:_n([u])},g=B(t,h),_=[{id:V.id,params:h},{id:q.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:V.id,params:g},{id:q.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,e.sequenceExecute)(_,i)){let t=o.afterCommandExecute({id:V.id,params:h});return(0,e.sequenceExecute)(t.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...t.undos],redoMutations:[..._,...t.redos]}),!0}return!1}},Fs={id:`sheet.command.clear-selection-content`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=t.get(G),s=t.get(e.IUndoRedoService),c=t.get(k),l=i.getCurrentUnitForType(e.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:_n(xn(p,t,u,f))},h=B(t,m),g=c.onCommandExecute({id:Fs.id}),_=[{id:V.id,params:m},...g.redos],v=[...g.undos,{id:V.id,params:h}];return(0,e.sequenceExecute)(_,a).result?(s.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:_}),!0):!1}},Is=`sheets.config`;Symbol(Is);const Ls={largeSheetCellCountThreshold:6e3,batchSize:3e3},Rs={};let zs=class extends e.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(t,n){let r=this._univerInstanceService.getUnit(t,e.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)}};zs=T([w(0,e.ICommandService),w(1,e.IUniverInstanceService)],zs);const Bs={id:`sheet.mutation.copy-worksheet-end`,type:e.CommandType.MUTATION,handler:()=>!0},Vs=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Hs={id:`sheet.mutation.insert-sheet`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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,e.cloneWorksheetData)(i))):!1}};function Us(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 Ws(e,t,n,r){let i=[],a={},o=0;for(let e in n){let t=Number(e),s=n[t];if(!s)continue;let c=Object.keys(s).length;o>0&&o+c>r&&(i.push(a),a={},o=0),a[t]=s,o+=c,o>=r&&(i.push(a),a={},o=0)}return o>0&&i.push(a),{firstChunkCellData:i.length>0?i[0]:{},remainingMutations:i.slice(1).map(n=>({id:V.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}const Gs=`sheet.command.copy-sheet`;function Ks(t,n,r,i,a,o,s){var c,l;let u=t.get(e.IConfigService).getConfig(Is),d={...Ls,...u==null?void 0:u.largeSheetOperation},f=(0,e.cloneWorksheetData)(r.getConfig());f.name=Js(n,o,f.name);let p=(0,e.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=Us(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=Ws(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=Vs(t,_),b=s.onCommandExecute({id:Gs,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:Hs.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:Ci.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}const qs={type:e.CommandType.COMMAND,id:Gs,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.IUniverInstanceService),o=t.get(k),s=t.get(e.LocaleService),c=t.get(zs),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}=Ks(t,u,d,p,m,s,o);if((0,e.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(Bs.id,{unitId:p,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(p,_,y)}}else i.pushUndoRedo({unitID:p,undoMutations:g,redoMutations:h});return!0}return!1}};function Js(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}const Ys={type:e.CommandType.COMMAND,id:`sheet.command.delete-range-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a,subUnitId:o,rule:s}=n,c={unitId:a,subUnitId:o,ruleIds:[s.id]};return await r.executeCommand(Tn.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:Tn.id,params:c}],undoMutations:[{id:Dn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},Xs={type:e.CommandType.COMMAND,id:`sheet.command.delete-worksheet-protection`,handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{rule:a,unitId:o,subUnitId:s}=n;r.executeCommand($a.id,{unitId:o,subUnitId:s});let c=[{id:$a.id,params:{unitId:o,subUnitId:s}}],l=[{id:Qa.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},Zs={type:e.CommandType.COMMAND,id:`sheet.command.remove-worksheet-range-theme-style`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a}=n,o=ye(t,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}},Qs={id:`sheet.command.insert-defined-name`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService),a=t.get(e.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}},$s={id:`sheet.command.insert-sheet`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.IUniverInstanceService),o=t.get(e.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,e.mergeWorksheetSnapshotWithDefault)(f||{});if(n){var h;u=(h=n.index)==null?u:h,m.id=p||(0,e.generateRandomId)(),m.name=(f==null?void 0:f.name)||l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else m.id=(0,e.generateRandomId)(),m.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let g={index:u,sheet:m,unitId:c},_=Vs(t,g);return r.syncExecuteCommand(Hs.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Ci.id,params:_}],redoMutations:[{id:Hs.id,params:g}]}),!0):!1}},ec={id:`sheet.command.refill`,type:e.CommandType.COMMAND,handler:async(e,t)=>e.get(Os).fillData(t.type)},tc={id:`sheet.mutation.register-worksheet-range-theme-style`,type:e.CommandType.MUTATION,handler:(t,n)=>{if(!f(t.get(e.IUniverInstanceService),n))return!1;let r=t.get(N),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new te(o,a);return r.registerRangeThemeStyle(i,s),!0}},nc={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:e.CommandType.MUTATION,handler:(t,n)=>{if(!f(t.get(e.IUniverInstanceService),n))return!1;let r=t.get(N),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},rc={id:`sheet.command.register-worksheet-range-theme-style`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n)return!1;let{unitId:r,rangeThemeStyle:i}=n,a=t.get(e.IUniverInstanceService),o=t.get(e.ICommandService),s=t.get(e.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(tc.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:nc.id,params:l}],redoMutations:[{id:tc.id,params:c}]}),!0}},ic={id:`sheet.command.remove-defined-name`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,a;let o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(k);if(!n)return!1;let l={...n},u=c.onCommandExecute({id:ic.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,e.sequenceExecute)(d,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},ac={id:`sheet.command.remove-sheet`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(k),l=t.get(e.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(Is),_={...Ls,...g==null?void 0:g.largeSheetOperation},v=Pi(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:p,unitId:d,subUnitName:h.getName()},b=v?null:Si(t,y),x=c.onCommandExecute({id:ac.id,params:{unitId:d,subUnitId:p}}),S=[...(r=x.preRedos)==null?[]:r,{id:Ci.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:Hs.id,params:b},...x.undos];return(0,e.sequenceExecute)(S,a).result?(v?o.clearUndoRedo(d):o.pushUndoRedo({unitID:d,undoMutations:C,redoMutations:S}),!0):!1}};var oc=class{constructor(){C(this,`_borderInfo`,{type:e.BorderType.ALL,color:`#000000`,style:e.BorderStyleTypes.THIN,activeBorderType:!1}),C(this,`_borderInfo$`,new t.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 sc(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)}const cc=(t,n,r,i)=>{let{mr:a,worksheet:o}=t;n.startRow<0||n.startColumn<0||sc(n,(t,n)=>{let s=o.getMergedCell(t,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 t=e.Tools.deepClone((l=a.getValue(s.startRow,s.startColumn))==null?void 0:l.s);c=t!=null&&t.bd?Object.assign(t.bd,r):r}a.setValue(s.startRow,s.startColumn,{s:{bd:c}})}else{if(i){var u;let i=e.Tools.deepClone((u=a.getValue(t,n))==null?void 0:u.s);c=i!=null&&i.bd?Object.assign(i.bd,r):r}a.setValue(t,n,{s:{bd:c}})}})},lc=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 uc(t,n,r){let{style:i,color:a,type:o}=t.getBorderInfo(),s=o===e.BorderType.TOP||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,c=o===e.BorderType.LEFT||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,l=o===e.BorderType.BOTTOM||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,u=o===e.BorderType.RIGHT||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,d=o===e.BorderType.VERTICAL||o===e.BorderType.ALL||o===e.BorderType.INSIDE,f=o===e.BorderType.HORIZONTAL||o===e.BorderType.ALL||o===e.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}=lc(y),O=new e.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}}}}const dc=t=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=t;a&&sc(n,(t,a)=>{let o=s.getMergedCell(t,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(t,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{l:e.Tools.deepClone(i)}):{l:e.Tools.deepClone(i)}}})}else{if(a!==n.endColumn){var l;let n=(l=r.getValue(t,a))==null?void 0:l.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{r:e.Tools.deepClone(i)}):{r:e.Tools.deepClone(i)}}})}if(a!==n.startColumn){var u;let n=(u=r.getValue(t,a))==null?void 0:u.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{l:e.Tools.deepClone(i)}):{l:e.Tools.deepClone(i)}}})}}}),o&&sc(n,(t,a)=>{let o=s.getMergedCell(t,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(t,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{t:e.Tools.deepClone(i)}):{t:e.Tools.deepClone(i)}}})}else{if(t!==n.endRow){var l;let n=(l=r.getValue(t,a))==null?void 0:l.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{b:e.Tools.deepClone(i)}):{b:e.Tools.deepClone(i)}}})}if(t!==n.startRow){var u;let n=(u=r.getValue(t,a))==null?void 0:u.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{t:e.Tools.deepClone(i)}):{t:e.Tools.deepClone(i)}}})}}})};function fc(t){let{borderStyle:n,tl_br:r,tl_bc:i,tl_mr:a,bl_tr:o,ml_tr:s,bc_tr:c}=t,l=(e,n,r)=>{cc(t,e,n,r)};r&&l(t.range,{tl_br:e.Tools.deepClone(n)},!0),i&&l(t.range,{tl_bc:e.Tools.deepClone(n)},!0),a&&l(t.range,{tl_mr:e.Tools.deepClone(n)},!0),o&&l(t.range,{bl_tr:e.Tools.deepClone(n)},!0),s&&l(t.range,{ml_tr:e.Tools.deepClone(n)},!0),c&&l(t.range,{bc_tr:e.Tools.deepClone(n)},!0)}const pc=t=>{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}=t,h=(e,n,r)=>{cc(t,e,n,r)};n&&(h(f,{b:null}),h(c,{t:e.Tools.deepClone(o)},!0)),a&&(h(d,{t:null}),h(s,{b:e.Tools.deepClone(o)},!0)),r&&(h(p,{r:null}),h(l,{l:e.Tools.deepClone(o)},!0)),i&&(h(m,{l:null}),h(u,{r:e.Tools.deepClone(o)},!0))},mc=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)=>{cc(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(sc(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))},hc={id:`sheet.command.set-border`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.get(e.IUniverInstanceService),s=t.get(G),c=t.get(oc),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=uc(c,l,u);dc(p),pc(p),fc(p),mc(p);let{unitId:m,subUnitId:h,mr:g}=p,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=B(t,_);return i.syncExecuteCommand(V.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:V.id,params:v}],redoMutations:[{id:V.id,params:_}]}),!0):!1}},gc={id:`sheet.command.set-border-position`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n.value)return!1;let r=t.get(e.ICommandService);return t.get(oc).setType(n.value),r.syncExecuteCommand(hc.id)}},_c={id:`sheet.command.set-border-style`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService);return t.get(oc).setStyle(n.value),r.syncExecuteCommand(hc.id)}},vc={id:`sheet.command.set-border-color`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService);return t.get(oc).setColor(n.value),r.syncExecuteCommand(hc.id)}},yc={id:`sheet.command.set-border-basic`,type:e.CommandType.COMMAND,handler:(t,n)=>{let{unitId:r,subUnitId:i,value:a,ranges:o}=n,{type:s,color:c,style:l}=a,u=t.get(e.ICommandService),d=t.get(oc);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(hc.id,{unitId:r,subUnitId:i,ranges:o})}},bc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-data`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=Ne(u,l);return r.syncExecuteCommand(Pe.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Pe.id,params:d}],redoMutations:[{id:Pe.id,params:u}]}),!0):!1}},xc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-visible-on-cols`,handler:(t,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=t.get(k),s=t.get(e.ICommandService),c=f(t.get(e.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:K(e,l),style:null}))},p=Le(t,u),m={unitId:r,subUnitId:i,selections:Tc(a).map(e=>({range:e,primary:K(e,l),style:null}))},h=(0,e.sequenceExecute)([{id:Re.id,params:u},{id:q.id,params:d}],s),g=o.onCommandExecute({id:xc.id,params:n}),_=(0,e.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:xc.id,params:n});return(0,e.sequenceExecute)(i.redos,s),t.get(e.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Ie.id,params:p},{id:q.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:Re.id,params:u},{id:q.id,params:d},...g.redos,...i.redos]}),!0}return!0}},Sc={type:e.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:t=>{var n;let r=t.get(G),i=t.get(e.ICommandService),a=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(t=>t.rangeType===e.RANGE_TYPE.COLUMN);if(!(a!=null&&a.length))return!1;let o=f(t.get(e.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})}},Cc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(t,n)=>{var r,i;let a=t.get(G),o=t.get(k),s=t.get(e.IUniverInstanceService),c=t.get(e.ICommandService),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(t=>t.rangeType===e.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=wc(u.worksheet,l);let h={unitId:p,subUnitId:m,ranges:l},g={unitId:p,subUnitId:m,selections:Tc(l).map(e=>({range:e,primary:K(e,d),style:null}))},_=Fe(t,h),v={unitId:p,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:K(e,d),style:null}))},y=(0,e.sequenceExecute)([{id:Ie.id,params:h},{id:q.id,params:g}],c),b=o.onCommandExecute({id:Cc.id,params:h}),x=(0,e.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:Cc.id,params:h});return(0,e.sequenceExecute)(n.redos,c),t.get(e.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:[{id:Re.id,params:_},{id:q.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Ie.id,params:h},{id:q.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function wc(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 Tc(e){return Ec(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Ec(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}const Dc={id:`sheet.command.set-defined-name`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,a;let o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(k);if(!n)return!1;let l={...n},u=(0,i.SetDefinedNameMutationFactory)(t,n),d=c.onCommandExecute({id:Dc.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,e.sequenceExecute)(f,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Oc=(t,n)=>{let r=t.get(e.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}},kc={id:`sheet.mutation.set-frozen`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},Ac={type:e.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=Oc(t,m);return r.syncExecuteCommand(kc.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:kc.id,params:h}],redoMutations:[{id:kc.id,params:m}]}),!0):!1}},jc={type:e.CommandType.COMMAND,id:`sheet.command.cancel-frozen`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUniverInstanceService),a=t.get(e.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=Oc(t,l);return r.syncExecuteCommand(kc.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:kc.id,params:u}],redoMutations:[{id:kc.id,params:l}]}),!0}},Mc={type:e.CommandType.COMMAND,id:`sheet.command.set-gridlines-color`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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(ze.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:ze.id,params:d}],redoMutations:[{id:ze.id,params:u}]}),!0):!1}},$={id:`sheet.mutation.set-range-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i,ruleId:a}=t;return e.get(U).setRule(n,r,a,i),!0}},Nc=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(U).getRule(n,r,i);return a?{id:$.id,params:{...t,rule:a}}:null},Pc={id:`sheet.mutation.set-worksheet-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(Za).setRule(n,r,i),!0}},Fc={type:e.CommandType.COMMAND,id:`sheet.command.set-protection`,async handler(t,r){if(!r)return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.get(U),{rule:s,oldRule:c}=r,{unitId:l,subUnitId:u}=s,d=[],f=[];return(c==null?void 0:c.unitType)===s.unitType?s.unitType===n.UnitObject.Worksheet?(d.push({id:Pc.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:Pc.id,params:{unitId:l,subUnitId:u,rule:c}})):(d.push({id:$.id,params:{unitId:l,subUnitId:u,rule:s,ruleId:s.id}}),f.push({id:$.id,params:{unitId:l,subUnitId:u,ruleId:c.id,rule:c}})):(c&&(c.unitType===n.UnitObject.Worksheet?(d.push({id:$a.id,params:{unitId:l,subUnitId:u}}),f.push({id:Qa.id,params:{unitId:l,rule:c,subUnitId:c.subUnitId}})):c.unitType===n.UnitObject.SelectRange&&(d.push({id:Tn.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:Dn.id,params:{unitId:l,subUnitId:u,rules:[c]}}))),s.unitType===n.UnitObject.Worksheet?(d.push({id:Qa.id,params:{unitId:l,rule:s,subUnitId:s.subUnitId}}),f.unshift({id:$a.id,params:{unitId:l,subUnitId:u}})):s.unitType===n.UnitObject.SelectRange&&(s.id=o.createRuleId(l,u),d.push({id:Dn.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:Tn.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,e.sequenceExecute)(d,i)&&a.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},Ic={id:`sheet.command.set-range-custom-metadata`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let i=t.get(e.ICommandService),{unitId:a,subUnitId:o}=r,{range:s,customMetadata:c}=n,{startRow:l,startColumn:u,endRow:d,endColumn:p}=s,m=e.Tools.isArray(c),h=new e.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(V.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},Lc={type:e.CommandType.COMMAND,id:`sheet.command.set-row-data`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=pt(u,l);return r.syncExecuteCommand(mt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:mt.id,params:d}],redoMutations:[{id:mt.id,params:u}]}),!0):!1}},Rc={type:e.CommandType.COMMAND,id:`sheet.command.set-specific-rows-visible`,handler:(t,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(k),l=f(t.get(e.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:K(e,u),style:null}))},m=ht(t,d),h={unitId:r,subUnitId:i,selections:Hc(a).map(e=>({range:e,primary:K(e,u),style:null}))},g=(0,e.sequenceExecute)([{id:gt.id,params:d},{id:q.id,params:p}],o),_=c.onCommandExecute({id:Rc.id,params:n}),v=(0,e.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let t=c.afterCommandExecute({id:Rc.id,params:n});return(0,e.sequenceExecute)(t.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:vt.id,params:m},{id:q.id,params:h},...(b=_.undos)==null?[]:b,...t.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:gt.id,params:d},{id:q.id,params:p},..._.redos,...t.redos]}),!0}return!0}},zc={type:e.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async t=>{var n;let r=t.get(G),i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(t=>t.rangeType===e.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(Rc.id,{unitId:l,subUnitId:u,ranges:d})}},Bc={type:e.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(t,n)=>{var r,i,a;let o=t.get(G),s=t.get(e.ICommandService),c=t.get(e.IUndoRedoService),l=t.get(e.IUniverInstanceService),u=t.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(t=>t.rangeType===e.RANGE_TYPE.ROW);if(!(d!=null&&d.length))return!1;let p=f(l,n);if(!p)return!1;d=Vc(p.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=p,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:Hc(d).map(e=>({range:e,primary:K(e,g),style:null}))},y=_t(t,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:K(e,g),style:null}))},x=u.onCommandExecute({id:Bc.id,params:_});if((0,e.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:vt.id,params:_},{id:q.id,params:v},...x.redos],s).result){var S,C,w;let t=u.afterCommandExecute({id:Bc.id,params:_});return(0,e.sequenceExecute)(t.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:gt.id,params:y},{id:q.id,params:b},...(C=x.undos)==null?[]:C,...t.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:vt.id,params:_},{id:q.id,params:v},...x.redos,...t.redos]}),!0}return!0}};function Vc(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 Hc(e){return Uc(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function Uc(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}const Wc=(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...e.Tools.deepClone(n),color:r}},Gc={id:`sheet.mutation.set-tab-color`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},Kc={type:e.CommandType.COMMAND,id:`sheet.command.set-tab-color`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=Wc(t,c);return r.syncExecuteCommand(Gc.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Gc.id,params:l}],redoMutations:[{id:Gc.id,params:c}]}),!0):!1}},qc={id:`sheet.mutation.set-workbook-name`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUnit(n.unitId,e.UniverInstanceType.UNIVER_SHEET);return r?(r.setName(n.name),!0):!1}},Jc={type:e.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(t,n)=>{var r;let i=t.get(e.ICommandService),a=t.get(k);if(!d(t.get(e.IUniverInstanceService),n))return!1;let o=a.onCommandExecute({id:Jc.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,e.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:qc.id,params:s},...o.redos],i).result}},Yc={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(t,n,r)=>{let i=t.get(e.ICommandService),a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(Pt.id,{unitId:o,subUnitId:s},r))},4)})}},Xc={type:e.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=f(t.get(e.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===e.RANGE_TYPE.ALL,h=r.filter(t=>t.range.rangeType===e.RANGE_TYPE.COLUMN),g=m?e.RANGE_TYPE.ALL:h.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=u&&u<=n})?e.RANGE_TYPE.COLUMN:e.RANGE_TYPE.NORMAL,_;if(g===e.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===e.RANGE_TYPE.COLUMN?{subUnitId:l,unitId:c,ranges:h.map(t=>e.Rectangle.clone(t.range)),colWidth:p}:{subUnitId:l,unitId:c,colWidth:p,ranges:[{startRow:0,endRow:s.getMaxRows()-1,startColumn:u,endColumn:u}]};let v=t.get(ji).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=Ni(_.ranges,v);Mi(y,s);let x=t.get(k),{undos:S,redos:C}=x.onCommandExecute({id:Xc.id,params:_}),w=yt(_,s),T=i.syncExecuteCommand(bt.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:O,redos:A}=t.get(k).afterCommandExecute({id:Xc.id,params:_}),j=(0,e.sequenceExecute)([...C,...A,...D],i);return T&&j.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:bt.id,params:w},...S,...O,...E],redoMutations:[{id:bt.id,params:_},...C,...A,...D]}),!0}},Zc={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(t,n)=>{var r,i;let a=t.get(G),o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.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(t.get(e.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:p,worksheet:m}=u,h=t.get(ji).getSkeleton(p,d),g={subUnitId:d,unitId:p,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=Ni(g.ranges,h);Mi(_,m);let y=yt(g,m),b=o.syncExecuteCommand(bt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:p,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:Zc.id,params:g}),w=(0,e.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let t=c.afterCommandExecute({id:Zc.id,params:g});return(0,e.sequenceExecute)(t.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:bt.id,params:y},...C.undos,...t.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:bt.id,params:g},...C.redos,...t.redos,...S]}),!0}return!1}},Qc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(G),o=f(t.get(e.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}=t.get(k).onCommandExecute({id:Qc.id,params:u});return(0,e.sequenceExecute)([...p],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...p]}),!0):!1}},$c={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-column-count`,handler:(t,n)=>{let{unitId:r,subUnitId:i,columnCount:a}=n,o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService);if(!f(t.get(e.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount:a},l=xt(t,c);return o.syncExecuteCommand(St.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:St.id,params:l}],redoMutations:[{id:St.id,params:c}]}),!0):!1}},el={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-default-style`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a}=n,o=wt(t,n);return r.syncExecuteCommand(Ct.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Ct.id,params:o}],redoMutations:[{id:Ct.id,params:n}]}),!0):!1}},tl=(t,n)=>{let r=p(t.get(e.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()}},nl={id:`sheet.mutation.set-worksheet-hidden`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().hidden=n.hidden,!0):!1}},rl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-hidden`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.ErrorService),o=t.get(e.LocaleService),s=f(t.get(e.IUniverInstanceService),n);if(!s)return!1;let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s;if(l.getConfig().hidden===e.BooleanNumber.TRUE)return!1;let p={unitId:u,subUnitId:d,hidden:e.BooleanNumber.TRUE},m=tl(t,p);return c.getSheets().filter(t=>t.getConfig().hidden===e.BooleanNumber.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):r.syncExecuteCommand(nl.id,p)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:nl.id,params:m}],redoMutations:[{id:nl.id,params:p}]}),!0):!1}},il=(t,n)=>{let r=p(t.get(e.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()}},al={id:`sheet.mutation.set-worksheet-name`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},ol={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(k),c=f(t.get(e.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d={subUnitId:u,name:n.name,unitId:l},p=il(t,d),m=s.onCommandExecute({id:ol.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:al.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:al.id,params:p},...m.undos];return(0,e.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},sl=(t,n)=>({...e.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),cl={id:`sheet.mutation.set-worksheet-order`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},ll={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-order`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=sl(t,l);return r.syncExecuteCommand(cl.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:cl.id,params:u}],redoMutations:[{id:cl.id,params:l}]}),!0):!1}};var ul=class{constructor(){C(this,`_model`,new Map),C(this,`_pointChange`,new t.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]}},dl=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.Delete),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.Delete}.${i}`}},fl=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.ManageCollaborator),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.ManageCollaborator}.${i}`}};const pl=()=>[Qn,Zn,fl,dl],ml=[n.UnitAction.Edit,n.UnitAction.View,n.UnitAction.ManageCollaborator,n.UnitAction.Delete],hl=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>pl().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{}),gl=()=>[cr,gr,$n,br,er,lr,mr,rr,or,vr,ur,sr,yr,hr,tr,xr,_r,nr,pr,fr,ar,ir],_l=[n.UnitAction.Edit,n.UnitAction.Print,n.UnitAction.Comment,n.UnitAction.View,n.UnitAction.Copy,n.UnitAction.Export,n.UnitAction.ManageCollaborator,n.UnitAction.CreateSheet,n.UnitAction.DeleteSheet,n.UnitAction.RenameSheet,n.UnitAction.HideSheet,n.UnitAction.Duplicate,n.UnitAction.Share,n.UnitAction.MoveSheet,n.UnitAction.CopySheet,n.UnitAction.RecoverHistory,n.UnitAction.ViewHistory,n.UnitAction.CreatePermissionObject,n.UnitAction.InsertRow,n.UnitAction.InsertColumn,n.UnitAction.DeleteRow,n.UnitAction.DeleteColumn],vl=()=>[Er,Vr,Mr,wr],yl=()=>[Sr,Cr,Tr,Dr,Or,kr,jr,Ar,Nr,Ir,Lr,Rr,zr,Br],bl=[n.UnitAction.Copy,n.UnitAction.DeleteColumn,n.UnitAction.DeleteRow,n.UnitAction.EditExtraObject,n.UnitAction.Filter,n.UnitAction.InsertColumn,n.UnitAction.InsertRow,n.UnitAction.InsertHyperlink,n.UnitAction.PivotTable,n.UnitAction.SetCellStyle,n.UnitAction.SetCellValue,n.UnitAction.SetColumnStyle,n.UnitAction.SetRowStyle,n.UnitAction.Sort];let xl=class extends e.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 t=e=>{let t=e.getUnitId(),n=e=>{let n=e.getSheetId();[...vl(),...yl()].forEach(e=>{let r=new e(t,n);this._permissionService.addPermissionPoint(r)}),this._logService.debug(`[WorksheetPermissionService]`,`Initialization completed`,t,n)};e.getSheets().forEach(e=>{n(e)}),e.sheetCreated$.subscribe(e=>{n(e)}),e.sheetDisposed$.subscribe(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...pl()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...vl(),...yl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})})};this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this._univerInstanceService.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,a.takeUntil)(this.dispose$)).subscribe(t),this._univerInstanceService.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();vl().forEach(e=>{let t=new e(n,r);this._permissionService.deletePermissionPoint(t.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case`add`:break;case`delete`:vl().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:vl().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,e.rule)});break}}))}_initRuleSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:()=>{let e=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(e)},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_WORKSHEET_PROTECTION_PLUGIN`,businesses:[n.UniverType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{vl().forEach(n=>{let r=new n(e,t);r.value=!1,this._permissionService.addPermissionPoint(r)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:e=>{let t=this._univerInstanceService.getUnit(e);t&&(t.getSheets().forEach(t=>{let n=t.getSheetId();[...vl(),...yl()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),gl().forEach(t=>{let n=new t(e);this._permissionService.deletePermissionPoint(n.id)})),this._worksheetProtectionRuleModel.deleteUnitModel(e)}}))}_initPointSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:()=>{let e=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(e)},parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},pluginName:`SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN`,businesses:[n.UniverType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{yl().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};xl=T([w(0,(0,e.Inject)(e.IPermissionService)),w(1,(0,e.Inject)(e.IUniverInstanceService)),w(2,(0,e.Inject)(e.Injector)),w(3,(0,e.Inject)(Za)),w(4,(0,e.Inject)(ul)),w(5,(0,e.Inject)(e.IResourceManagerService)),w(6,(0,e.Inject)(U)),w(7,(0,e.Inject)(e.ILogService))],xl);const Sl={id:`sheet.mutation.set-worksheet-permission-points`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(ul).addRule(n),!0}},Cl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-permission-points`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),{rule:i}=n;return r.executeCommand(Sl.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},wl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{rule:a,permissionId:o,oldRule:s}=n,{unitId:c,subUnitId:l}=a,u={...a,permissionId:o};if(await r.executeCommand(Pc.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:Pc.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:Pc.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},Tl=(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...e.Tools.deepClone(n),rightToLeft:r}},El={id:`sheet.mutation.set-worksheet-right-to-left`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);if(!i)return!1;let a=i.getConfig();return a.rightToLeft=n.rightToLeft,!0}},Dl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-right-to-left`,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=e.BooleanNumber.FALSE;if(n){var l;c=(l=n.rightToLeft)==null?e.BooleanNumber.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=Tl(t,u);return r.syncExecuteCommand(El.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:El.id,params:d}],redoMutations:[{id:El.id,params:u}]}),!0):!1}},Ol={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-row-count`,handler:(t,n)=>{let{unitId:r,subUnitId:i,rowCount:a}=n,o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService);if(!f(t.get(e.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=Tt(t,c);return o.syncExecuteCommand(Et.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Et.id,params:l}],redoMutations:[{id:Et.id,params:c}]}),!0):!1}},kl={type:e.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i=t.get(k);if(!(r!=null&&r.length))return!1;let a=f(t.get(e.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===e.RANGE_TYPE.ALL,m=r.filter(t=>t.range.rangeType===e.RANGE_TYPE.ROW),h=p?e.RANGE_TYPE.ALL:m.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?e.RANGE_TYPE.ROW:e.RANGE_TYPE.NORMAL,g;if(h===e.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===e.RANGE_TYPE.ROW?{subUnitId:s,unitId:c,ranges:m.map(t=>e.Rectangle.clone(t.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let _=Dt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:e.BooleanNumber.FALSE},y=Ot(v,o),b=t.get(e.ICommandService),x=t.get(e.IUndoRedoService),S=i.onCommandExecute({id:kl.id,params:g}),C=(0,e.sequenceExecute)([{id:At.id,params:g},{id:jt.id,params:v}],b),w=(0,e.sequenceExecute)([...S.redos],b);if(C.result&&w.result){var T,E;let t=i.afterCommandExecute({id:kl.id,params:g});return(0,e.sequenceExecute)(t.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...(T=S.preUndos)==null?[]:T,{id:At.id,params:_},{id:jt.id,params:y},...S.undos,...t.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:At.id,params:g},{id:jt.id,params:v},...S.redos,...t.redos]}),!0}return!1}},Al={type:e.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(t,n)=>{var r,i;let a=t.get(G),o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(e.IUniverInstanceService),l=t.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},_=Dt(g,h),v={unitId:p,subUnitId:m,ranges:g.ranges,autoHeightInfo:e.BooleanNumber.FALSE},y=Ot(v,h),b=(0,e.sequenceExecute)([{id:At.id,params:g},{id:jt.id,params:v}],o),x=l.onCommandExecute({id:Al.id,params:g}),S=(0,e.sequenceExecute)([...x.redos],o);if(b.result&&S.result){var C,w;let t=l.afterCommandExecute({id:Al.id,params:g});return(0,e.sequenceExecute)(t.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(C=x.preRedos)==null?[]:C,{id:At.id,params:_},{id:jt.id,params:y},...x.undos,...t.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:At.id,params:g},{id:jt.id,params:v},...x.redos,...t.redos]}),!0}return!1}},jl={type:e.CommandType.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(G),c=f(t.get(e.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:e.BooleanNumber.TRUE},h=Ot(m,d),g=a.syncExecuteCommand(jt.id,m),_=t.get(ji).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=Ni(m.ranges,_),b=t.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:jl.id,params:m}),T=(0,e.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:jt.id,params:h},...C,...x],redoMutations:[{id:jt.id,params:m},...w,...S]}),!0):!1}},Ml={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r;if(o.getConfig().hidden===e.BooleanNumber.FALSE)return!1;let s=t.get(e.ICommandService),c=t.get(e.IUndoRedoService),l={unitId:i,subUnitId:a,hidden:e.BooleanNumber.FALSE},u=tl(t,l),d=s.syncExecuteCommand(nl.id,l),p={unitId:i,subUnitId:a},m=s.syncExecuteCommand(Pt.id,p);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:nl.id,params:u}],redoMutations:[{id:nl.id,params:l}]}),!0):!1}},Nl={type:e.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(t,n)=>{let r=f(t.get(e.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}=dn(o,s,c,l,u),h=o.getColumnCount(),{startColumn:g}=e.Range.transformRange(s,o);if(s.startColumn!==s.endColumn)return!1;let _=t.get(e.ICommandService),v=t.get(e.IUndoRedoService),y=[],b=[],x=g+m+1-h;if(x>0){let e={unitId:i,subUnitId:a,range:{startRow:0,endRow:o.getRowCount()-1,startColumn:h-1,endColumn:h-1+x}};y.push({id:F.id,params:e});let n=xe(t,e);b.push({id:L.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+m},C=new e.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=B(t,w);return y.push({id:V.id,params:w}),b.unshift({id:V.id,params:T}),(0,e.sequenceExecute)(y,_).result?(v.pushUndoRedo({unitID:i,undoMutations:b,redoMutations:y}),!0):!1}},Pl=(0,e.createIdentifier)(`INumfmtService`),Fl=(t,n)=>{let r=t.get(Pl),{values:i,unitId:a,subUnitId:o}=n,s=[],c=[];Object.keys(i).forEach(t=>{i[t].ranges.forEach(t=>{e.Range.foreach(t,(e,t)=>{let n=r.getValue(a,o,e,t);n?s.push({pattern:n.pattern,row:e,col:t}):c.push({startColumn:t,endColumn:t,startRow:e,endRow:e})})})});let l=[];if(s.length){let e=zl(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=en(n.ranges)}),l.push({id:Il.id,params:zl(a,o,s)})}return c.length&&l.push({id:Ll.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},Il={id:`sheet.mutation.set.numfmt`,type:e.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{values:n,refMap:r}=t,i=e.get(Pl),a=t.unitId,o=t.subUnitId,s=Object.keys(n).reduce((e,t)=>{let i=r[t],a=n[t].ranges;return i&&e.push({...i,ranges:a}),e},[]);return i.setValues(a,o,s),!0}},Ll={id:`sheet.mutation.remove.numfmt`,type:e.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t;return e.get(Pl).deleteValues(n,r,i),!0}},Rl=(t,n)=>{let r=t.get(Pl),{ranges:i,unitId:a,subUnitId:o}=n,s=[];if(i.forEach(t=>{e.Range.foreach(t,(e,t)=>{let n=r.getValue(a,o,e,t);n&&s.push({pattern:n.pattern,row:e,col:t})})}),!s.length)return[];let c=zl(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=en(t.ranges)}),[{id:Il.id,params:c}]},zl=(t,n,r)=>{let i=fn(r,`pattern`),a={},o={},s=pn();return Object.keys(i).forEach(t=>{let n=i[t],r=s();a[r]={pattern:t},n.forEach(t=>{o[r]||(o[r]={ranges:[]}),o[r].ranges.push((0,e.cellToRange)(t.row,t.col))})}),{unitId:t,subUnitId:n,refMap:a,values:o}},Bl={id:`sheet.command.text-to-number`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=t.get(G).getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(a!=null&&a.length))return!1;let o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),{worksheet:c,unitId:l,subUnitId:u}=i,d=new e.ObjectMatrix,p=[];for(let t=0;t<a.length;t++)for(let n=a[t].startRow;n<=a[t].endRow;n++)for(let r=a[t].startColumn;r<=a[t].endColumn;r++){var m,h;if(d.getValue(n,r))continue;let t=c.getCellRaw(n,r),i=typeof(t==null?void 0:t.s)==`string`?(m=c.getStyleDataByHash(t.s))==null||(m=m.n)==null?void 0:m.pattern:t==null||(h=t.s)==null||(h=h.n)==null?void 0:h.pattern;t&&t.v&&(t.t!==e.CellValueType.NUMBER||(0,e.isTextFormat)(i))&&(0,e.isRealNum)(t.v)&&(d.setValue(n,r,{v:Number(t.v),t:e.CellValueType.NUMBER}),(0,e.isTextFormat)(i)&&p.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let g={subUnitId:u,unitId:l,cellValue:d.getMatrix()},_=[{id:V.id,params:g}],v=[{id:V.id,params:B(t,g)}];if(p.length){let e={unitId:l,subUnitId:u,ranges:p};_.push({id:Ll.id,params:e}),v.push(...Rl(t,e))}return(0,e.sequenceExecute)(_,o).result?(s.pushUndoRedo({unitID:l,undoMutations:v,redoMutations:_}),!0):!1}},Vl={id:`sheet.command.toggle-cell-checkbox`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n)return!1;let{unitId:r,subUnitId:i,row:a,col:o,paragraphIndex:s}=n,c=t.get(e.IUniverInstanceService).getUnit(r,e.UniverInstanceType.UNIVER_SHEET),l=c==null?void 0:c.getSheetBySheetId(i),u=t.get(e.IUndoRedoService),d=t.get(e.ICommandService);if(!l)return!1;let f=l.getCell(a,o);if(!(f!=null&&f.p))return!1;let p=e.Tools.deepClone(f.p),m=new e.DocumentDataModel(p),h=e.BuildTextUtils.paragraph.bullet.toggleChecklist({document:m,paragraphIndex:s});if(!h)return!1;e.TextX.apply(m.getBody(),h.serialize());let g={unitId:r,subUnitId:i,cellValue:{[a]:{[o]:{p,t:e.CellValueType.STRING}}}},_={id:V.id,params:g},v=B(t,g),y={id:V.id,params:v},b=[_],x=[y];return u.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:r}),d.syncExecuteCommand(_.id,_.params)}},Hl={type:e.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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===e.BooleanNumber.TRUE?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE,unitId:c,subUnitId:l},d={showGridlines:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Nt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Nt.id,params:d}],redoMutations:[{id:Nt.id,params:u}]}),!0):!1}},Ul={id:`sheet.command.unregister-worksheet-range-theme-style`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;if(!n||!f(t.get(e.IUniverInstanceService),n))return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.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(tc.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:tc.id,params:u}],redoMutations:[{id:nc.id,params:l}]}),!0):!1}},Wl={id:`sheet.mutation.add-range-theme`,type:e.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}},Gl={id:`sheet.mutation.empty`,type:e.CommandType.MUTATION,handler:()=>!0},Kl={id:`sheet.operation.mark-dirty-row-auto-height`,type:e.CommandType.OPERATION,handler:()=>!0},ql={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:e.CommandType.OPERATION,handler:()=>!0},Jl={id:`sheet.mutation.remove-range-theme`,type:e.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(N).unregisterRangeThemeStyle(r,n),!0}},Yl={id:`sheet.mutation.set-range-theme`,type:e.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,styleName:r,style:i}=t,a=e.get(N).getRangeThemeStyle(n,r);return a&&(i.headerRowStyle&&a.setHeaderRowStyle(i.headerRowStyle),i.firstRowStyle&&a.setFirstRowStyle(i.firstRowStyle),i.secondRowStyle&&a.setSecondRowStyle(i.secondRowStyle),i.lastRowStyle&&a.setLastRowStyle(i.lastRowStyle)),!0}},Xl={id:`sheet.operation.scroll-to-cell`,type:e.CommandType.OPERATION,handler:()=>!0},{getLenS:Zl,getDataIndex:Ql,fillCopy:$l,fillCopyStyles:eu,generateNullCellValueRowCol:tu}=ts,{otherRule:nu}=vs;let ru=class extends e.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:ns.DEFAULT,priority:0,onBeforeFillData:(e,t)=>this._presetAndCacheData(e,t),onFillData:(e,t,n)=>this._fillData(e,t,n)}))}_presetAndCacheData(t,n){var r;let{unitId:i,subUnitId:a,target:o}=t,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(t=>{let n=[];o.cols.forEach(r=>{n.push(e.Tools.deepClone(c.getValue(t,r)))}),l.push(n)}),this._beforeApplyData=l,this._copyData=this._getCopyData(t,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=Zl(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=Ql(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(t,n,r,i,a,o,s){let{data:c}=t,l=r===e.Direction.UP||r===e.Direction.LEFT;if(i===Z.COPY){let e=a==null?void 0:a[Z.COPY];return e?e(t,n,r,o,s):(l&&c.reverse(),$l(c,n))}if(i===Z.SERIES){let e=a==null?void 0:a[Z.SERIES];return e?e(t,n,r,o):(l&&c.reverse(),a!=null&&a[Z.COPY]?a[Z.COPY](t,n,r,o,s):$l(c,n))}if(i===Z.ONLY_FORMAT){let e=a==null?void 0:a[Z.ONLY_FORMAT];return e?e(t,n,r,o):eu(c,n)}}_getCopyData(t,n){var r;let{unitId:i,subUnitId:a,source:o}=t,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===e.Direction.DOWN||n===e.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))||nu;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(t,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=t.startRow;a<=t.endRow;a++)for(let o=t.startColumn;o<=t.endColumn;o++){let{isMergedMainCell:t,startRow:s,startColumn:c,endRow:d,endColumn:f}=l.getCellInfoInMergeData(a,o);if(t){if(r===e.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===e.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===e.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===e.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(t,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}=t;if(!c||!l||n==null)return{undos:a,redos:o};let f=yn(c),p=yn(l),{cols:g,rows:_}=l,{cols:v,rows:y}=c,b=this._copyData,x;x=n===e.Direction.DOWN||n===e.Direction.UP?y.length:v.length;let S=[];if(n===e.Direction.DOWN||n===e.Direction.UP){let e=_.length,i=[];g.forEach((a,o)=>{let c=b[o],l=this._getApplyData(c,x,e,n,r,s,t);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 e=g.length;_.forEach((i,a)=>{let o=b[a],c=this._getApplyData(o,x,e,n,r,s,t),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,t),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 t=[],n=(T=this._univerInstanceService.getUniverSheetInstance(u))==null||(T=T.getSheetBySheetId(d))==null?void 0:T.getMergeData();if(n&&n.forEach(n=>{e.Rectangle.intersects(n,p)&&t.push(n)}),t.length){let e={unitId:u,subUnitId:d,ranges:t},n=this._injector.invoke(R,e);o.push({id:z.id,params:e}),a.unshift({id:h.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:tu([l])},D=this._injector.invoke(B,E);o.push({id:V.id,params:E}),a.unshift({id:V.id,params:D});let O=new e.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(B,A);if(this._autoFillService.getActiveHooks().forEach(e=>{var i;(i=e.onBeforeSubmit)==null||i.call(e,t,n,r,k)}),a.unshift({id:V.id,params:j}),o.push({id:V.id,params:A}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:ja(C)},t=this._injector.invoke(m,e);a.unshift({id:z.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}};ru=T([w(0,e.IUniverInstanceService),w(1,Os),w(2,(0,e.Inject)(e.Injector))],ru);const iu=`maxCellsPerSheet`;let au=class extends e.Disposable{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){let t=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:[e.UniverInstanceType.UNIVER_SHEET],toJson:e=>t(e),parseJson:e=>n(e),onUnLoad:e=>{this._definedNamesService.removeUnitDefinedName(e)},onLoad:(e,t)=>{this._definedNamesService.registerDefinedNames(e,t)}}))}};au=T([w(0,i.IDefinedNamesService),w(1,e.IResourceManagerService)],au);const ou=[kc.id],su=[P.id,F.id,I.id,L.id,we.id,Ee.id];let cu=class extends e.Disposable{constructor(t,n,r){var i,a;super(),this._univerInstanceService=t,this._commandService=n,this._configService=r,C(this,`_d`,new e.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)=>{ou.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(su.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===P.id?this._handleInsertRowMutation(r,t):n===F.id?this._handleInsertColMutation(r,t):n===I.id?this._handleRemoveRowMutation(r,t):n===L.id?this._handleRemoveColMutation(r,t):n===we.id?this._handleMoveRowsMutation(r,t):n===Ee.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(t,n){let r=this._univerInstanceService.getUnit(t,e.UniverInstanceType.UNIVER_SHEET);if(!r)return null;let i=r.getSheetBySheetId(n);return i?i.getFreeze():null}_sequenceExecute(t,n,r,i){(0,e.sequenceExecute)([{id:kc.id,params:{...r,unitId:t,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};cu=T([w(0,(0,e.Inject)(e.IUniverInstanceService)),w(1,e.ICommandService),w(2,e.IConfigService)],cu);let lu=class extends e.Disposable{constructor(n,r,i,a,o,s,c,l,u,d){super(),this._commandService=n,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 e.DisposableCollection),C(this,`_triggerPermissionUIEvent$`,new t.Subject),C(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}blockExecuteWithoutPermission(t){throw this._triggerPermissionUIEvent$.next(t),new e.CustomCommandExecutionError(`have no permission`)}_getPermissionCheck(t,n){let r=!0,i=``;switch(t){case Hr.id:(0,e.isICellData)(n.value)&&n.value.f?(r=this._permissionCheckWithFormula(n),i=this._localeService.t(`permission.dialog.formulaErr`)):r=this._permissionCheckBySetRangeValue({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Lr,Er]},n);break;case Fs.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Lr,Er]},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 Xc.id:case Zc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[Rr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case kl.id:case Al.id:case jl.id:r=this.permissionCheckWithoutRange({worksheetTypes:[zr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ki.id:case Di.id:r=this._permissionCheckByMoveCommand(n),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case Kn.id:r=this._permissionCheckByMoveRangeCommand(n),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case ll.id:r=this._permissionCheckByWorksheetCommand([cr,hr]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case ol.id:r=this._permissionCheckByWorksheetCommand([cr,vr]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case Ml.id:{let{unitId:e,subUnitId:t}=n;r=this._permissionCheckByWorksheetCommand([cr,ur],e,t),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder()}break;case xc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Er,Rr]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Rc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Er,zr]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Sc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Er,Rr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case zc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Er,zr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ei.id:r=this._permissionCheckWithInsertRangeMove(`right`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Qr.id:r=this._permissionCheckWithInsertRangeMove(`bottom`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Jr.id:r=this._permissionCheckWithInsertRangeMove(`left`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Xr.id:r=this._permissionCheckWithInsertRangeMove(`top`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case ks.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(t=>{if(t.id===al.id){var n;let{unitId:r=(n=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId(),subUnitId:i}=t.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(t){var n;let r=f(this._univerInstanceService);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=e.Tools.deepClone((n=this._selectionManagerService.getCurrentLastSelection())==null?void 0:n.range);return!(!s||(t===`top`||t===`bottom`?s.endRow=i.getRowCount()-1:(t===`left`||t===`right`)&&(s.endColumn=i.getColumnCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(a,o).map(e=>e.ranges).flat().some(t=>e.Rectangle.getIntersects(s,t))))}_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 mr(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(t,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}=t,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(t=>{s.some(n=>t.ranges.some(t=>e.Rectangle.intersects(t,n)))&&m.push(...p.map(e=>new e(c,l,t.permissionId).id))}),m.length?this._permissionService.composePermission(m).every(e=>e.value):!0}_permissionCheckByMoveCommand(t){let r=f(this._univerInstanceService,t);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=t.toRange;s.endRow===i.getRowCount()-1?s.endColumn=s.startColumn:s.endRow=s.startRow;let c=this._rangeProtectionRuleModel.getSubunitRuleList(a,o).reduce((e,t)=>[...e,...t.ranges],[]).filter(t=>e.Rectangle.intersects(t,s));return c.length>0?!1:(c.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let a=e.startColumn;a<=e.endColumn;a++){var t;let e=(t=i.getCell(r,a))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[n.UnitAction.Edit])===!1)return!1}}),!0)}_permissionCheckByMoveRangeCommand(t){let r=f(this._univerInstanceService);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=t.toRange,c=this._rangeProtectionRuleModel.getSubunitRuleList(a,o).reduce((e,t)=>[...e,...t.ranges],[]).filter(t=>e.Rectangle.intersects(t,s));return c.length>0?!1:(c.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let a=e.startColumn;a<=e.endColumn;a++){var t;let e=(t=i.getCell(r,a))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[n.UnitAction.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(t,n){let r=[];r=n.range?[n.range]:[new e.ObjectMatrix(n.value).getDataRange()];let{unitId:i,subUnitId:a}=n;return this.permissionCheckWithRanges(t,r,i,a)}_permissionCheckWithFormula(t){let r=t.value,a=t.range,o=r.f;if(o){var s;let r=o.substring(1),a=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET),u=(s=t.unitId)==null?a.getUnitId():s,d=this._definedNamesService.getValueByName(u,r);if(d){let e=d.formulaOrRefString;e.startsWith(i.operatorToken.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let r=t[e],o=(0,i.deserializeRangeWithSheet)(r);if(o.sheetName){let e=a.getSheetBySheetName(o.sheetName);if(!e)return!0;let{startRow:t,endRow:r,startColumn:i,endColumn:s}=o.range;for(let a=t;a<=r;a++)for(let t=i;t<=s;t++){var c;let r=(c=e.getCell(a,t))==null||(c=c.selectionProtection)==null?void 0:c[0];if((r==null?void 0:r[n.UnitAction.View])===!1)return!1}}}return!0}else{let t=this._lexerTreeBuilder.sequenceNodesBuilder(o);if(!t)return!0;for(let r=0;r<t.length;r++){let a=t[r];if(typeof a==`string`||a.nodeType!==i.sequenceNodeType.REFERENCE)continue;let{token:o}=a,s=(0,i.deserializeRangeWithSheetWithCache)(o),c=s.unitId?this._univerInstanceService.getUnit(s.unitId):this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!c)return!0;let u=s.sheetName?c.getSheetBySheetName(s.sheetName):c.getActiveSheet(),d=c.getUnitId();if(s.sheetName){if(u=c.getSheetBySheetName(s.sheetName),!u)return!0;let e=u==null?void 0:u.getSheetId();if(!this._permissionService.getPermissionPoint(new Vr(d,e).id))return!1}if(!u)return!0;let{startRow:f,endRow:p,startColumn:m,endColumn:h}=s.range;for(let e=f;e<=p;e++)for(let t=m;t<=h;t++){var l;let r=(l=u.getCell(e,t))==null||(l=l.selectionProtection)==null?void 0:l[0];if((r==null?void 0:r[n.UnitAction.View])===!1)return!1}}return!0}}if(a){let n=f(this._univerInstanceService,t);if(!n)return!1;let{unitId:r,subUnitId:i}=n,o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).filter(t=>t.ranges.some(t=>e.Rectangle.intersects(t,a))).map(e=>new Zn(r,i,e.permissionId).id);if(!this._permissionService.composePermission(o).every(e=>e.value))return!1}return!0}_permissionCheckByAutoFillCommand(t){if(!t)return!1;let{targetRange:r}=t,i=f(this._univerInstanceService,t);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i;return!this._rangeProtectionRuleModel.getSubunitRuleList(o,s).reduce((e,t)=>[...e,...t.ranges],[]).filter(t=>e.Rectangle.intersects(t,r)).some(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=a.getCell(r,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[n.UnitAction.Edit])===!1)return!0}return!1})}};lu=T([w(0,e.ICommandService),w(1,e.IUniverInstanceService),w(2,e.IPermissionService),w(3,(0,e.Inject)(G)),w(4,(0,e.Inject)(U)),w(5,(0,e.Inject)(Za)),w(6,(0,e.Inject)(e.LocaleService)),w(7,(0,e.Inject)(i.LexerTreeBuilder)),w(8,e.IContextService),w(9,i.IDefinedNamesService)],lu);let uu=class extends e.Disposable{constructor(e,n,r,i,a){super(),this._permissionService=e,this._univerInstanceService=n,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._worksheetProtectionPointModel=a,C(this,`_unitPermissionInitStateChange`,new t.BehaviorSubject(!1)),C(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let t=e=>{let t=e.getUnitId();gl().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{t(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...pl()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...vl(),...yl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),gl().forEach(e=>{let n=new e(t);this._permissionService.deletePermissionPoint(n.id)}),this._rangeProtectionRuleModel.deleteUnitModel(t),this._worksheetProtectionPointModel.deleteUnitModel(t),this._worksheetProtectionRuleModel.deleteUnitModel(t)}))}changeUnitInitState(e){this._unitPermissionInitStateChange.next(e)}};uu=T([w(0,(0,e.Inject)(e.IPermissionService)),w(1,(0,e.Inject)(e.IUniverInstanceService)),w(2,(0,e.Inject)(U)),w(3,(0,e.Inject)(Za)),w(4,(0,e.Inject)(ul))],uu);let du=class extends e.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 t=async e=>{let t=[],r=e.getUnitId(),i=e.getSheets(),a=new Map;if(i.forEach(e=>{let i=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(r,i).forEach(e=>{a.set(e.permissionId,e),t.push({objectID:e.permissionId,unitID:r,objectType:n.UnitObject.SelectRange,actions:ml})})}),!t.length){this._rangeProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=a.get(e.objectID);if(t){if(!this._rangeProtectionRuleModel.getRule(r,t.subUnitId,t.id))return;pl().forEach(n=>{let i=new n(r,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(e.UniverInstanceType.UNIVER_SHEET).map(e=>t(e))),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:n.UnitObject.SelectRange,actions:ml}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(pl().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(t){var r;let i=t||((r=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.getUnitId());if(i)return this._authzIoService.allowed({objectID:i,objectType:n.UnitObject.Workbook,unitID:i,actions:_l}).then(e=>{gl().forEach(t=>{let n=new t(i),r=n.subType,a=e.find(e=>e.action===r);a&&this._permissionService.updatePermissionPoint(n.id,a.allowed)})})}async _initWorkbookPermissionFromSnapshot(){await Promise.all(this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).map(e=>this.initWorkbookPermissionChange(e.getUnitId()))),this._workbookPermissionService.changeUnitInitState(!0)}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?([...vl(),...yl()].forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId)):this._authzIoService.allowed({objectID:e.rule.permissionId,unitID:e.unitId,objectType:n.UnitObject.Worksheet,actions:ml}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(vl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)}),this._worksheetProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}_initWorksheetPermissionPointsChange(){this.disposeWithMe(this._worksheetProtectionPointRuleModel.pointChange$.subscribe(e=>{this._authzIoService.allowed({objectID:e.permissionId,unitID:e.unitId,objectType:n.UnitObject.Worksheet,actions:bl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||yl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}))}async _initWorksheetPermissionFromSnapshot(){let t=async e=>{let t=[],r=e.getUnitId(),i=e.getSheets(),a=new Map;if(i.forEach(e=>{let i=e.getSheetId(),o=this._worksheetProtectionRuleModel.getRule(r,i);o&&(a.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:r,objectType:n.UnitObject.Worksheet,actions:ml}));let s=this._worksheetProtectionPointRuleModel.getRule(r,i);s&&(a.set(s.permissionId,s),t.push({objectID:s.permissionId,unitID:r,objectType:n.UnitObject.Worksheet,actions:bl}))}),!t.length){this._worksheetProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=a.get(e.objectID);if(t){let n=this._worksheetProtectionRuleModel.getRule(r,t.subUnitId)||this._worksheetProtectionPointRuleModel.getRule(r,t.subUnitId);if(!n||n.permissionId!==e.objectID)return;[...vl(),...yl()].forEach(n=>{let i=new n(r,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(e.UniverInstanceType.UNIVER_SHEET).map(e=>t(e))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe((0,t.skip)(1)).subscribe(()=>{let t=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).forEach(e=>{let n=e.getUnitId();gl().forEach(e=>{let r=new e(n);t.has(r.id)&&(r=t.get(r.id)),this._permissionService.addPermissionPoint(r)}),e.getSheets().forEach(e=>{let r=e.getSheetId();[...vl(),...yl()].forEach(e=>{let i=new e(n,r);t.has(i.id)&&(i=t.get(i.id)),this._permissionService.addPermissionPoint(i)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(e=>{pl().forEach(i=>{let a=new i(n,r,e.permissionId);t.has(a.id)&&(a=t.get(a.id)),this._permissionService.addPermissionPoint(a)})})}),this._initWorkbookPermissionFromSnapshot(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}refreshPermission(e,t){let r=this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t),i=!1;if(r){let[a,o]=r;this._authzIoService.allowed({objectID:t,unitID:e,objectType:n.UnitObject.Worksheet,actions:ml}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let r=``;vl().forEach(t=>{let a=new t(e,o),s=a.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(a.id))==null?void 0:l.value)!==c.allowed&&(i=!0),this._permissionService.updatePermissionPoint(a.id,c.allowed),r+=`${c.action}_${c.allowed}`}}),this._worksheetProtectionRuleModel.ruleRefresh(`${t}_${r}`),i&&this._undoRedoService.clearUndoRedo(e)})}let a=this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t);if(a){let[r,o]=a;this._authzIoService.allowed({objectID:t,unitID:e,objectType:n.UnitObject.Worksheet,actions:bl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(yl().forEach(t=>{let r=new t(e,o),a=r.subType,s=n.find(e=>e.action===a);if(s){var c;((c=this._permissionService.getPermissionPoint(r.id))==null?void 0:c.value)!==s.allowed&&(i=!0),this._permissionService.updatePermissionPoint(r.id,s.allowed)}}),i&&this._undoRedoService.clearUndoRedo(e))})}let o=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(o){let[r,a]=o;this._authzIoService.allowed({objectID:t,unitID:e,objectType:n.UnitObject.SelectRange,actions:ml}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let r=``;pl().forEach(o=>{let s=new o(e,a,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&&(i=!0),this._permissionService.updatePermissionPoint(s.id,l.allowed),r+=`${l.action}_${l.allowed}`}}),this._rangeProtectionRuleModel.ruleRefresh(`${t}_${r}`),i&&this._undoRedoService.clearUndoRedo(e)})}}_refreshPermissionByCollaCreate(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(t!=null&&t.fromCollab&&(e.id===Dn.id||e.id===Qa.id||e.id===Sl.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};du=T([w(0,e.IUniverInstanceService),w(1,e.IPermissionService),w(2,e.IAuthzIoService),w(3,(0,e.Inject)(U)),w(4,(0,e.Inject)(Za)),w(5,(0,e.Inject)(e.UserManagerService)),w(6,(0,e.Inject)(ul)),w(7,(0,e.Inject)(uu)),w(8,(0,e.Inject)(e.IUndoRedoService)),w(9,(0,e.Inject)(e.ICommandService))],du);let fu=class extends e.Disposable{constructor(e,n,r){super(),this._commandService=e,this._sheetRangeThemeModel=n,this._univerInstanceService=r,C(this,`_zebraCacheUpdateSubject`,new t.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 gt.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 I.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case At.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)}))}};fu=T([w(0,(0,e.Inject)(e.ICommandService)),w(1,(0,e.Inject)(N)),w(2,(0,e.Inject)(e.IUniverInstanceService))],fu);let pu=class{constructor(t,n){this._selectionProtectionRuleModel=t,this._permissionService=n,C(this,`_cache`,new e.LRUMap(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe((0,a.filter)(e=>e.type===n.UnitObject.SelectRange),(0,a.filter)(e=>pl().some(t=>e instanceof t)),(0,a.map)(e=>e)).subscribe(t=>{let n=this._selectionProtectionRuleModel.getSubunitRuleList(t.unitId,t.subUnitId);for(let r of n)r.permissionId===t.permissionId&&r.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=this._createKey(t.unitId,t.subUnitId,e,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(t=>{if(t.rule.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=this._createKey(t.unitId,t.subUnitId,e,n);this._cache.delete(r)})}),t.type===`set`){var n;(n=t.oldRule)==null||n.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=this._createKey(t.unitId,t.subUnitId,e,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=pl().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()}};pu=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IPermissionService))],pu);let mu=class extends e.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(e.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,t.filter)(e=>e.type===n.UnitObject.SelectRange),(0,t.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(t=>{let{unitId:n,subUnitId:r}=t,i=this._ensureCellInfoMap(n,r);if(t.rule.ranges.forEach(t=>{e.Range.foreach(t,(e,t)=>{i.delete(`${e}-${t}`)})}),t.type===`set`){var a;(a=t.oldRule)==null||a.ranges.forEach(t=>{e.Range.foreach(t,(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,r){var i,a,o,s,c,l,u,d,f,p,m,h;let g=(i=(a=this._permissionService.getPermissionPoint((o=new Zn(e,t,r.permissionId))==null?void 0:o.id))==null?void 0:a.value)==null?!1:i,_=(s=(c=this._permissionService.getPermissionPoint((l=new Qn(e,t,r.permissionId))==null?void 0:l.id))==null?void 0:c.value)==null?!1:s,v=(u=(d=this._permissionService.getPermissionPoint((f=new fl(e,t,r.permissionId))==null?void 0:f.id))==null?void 0:d.value)==null?!1:u,y=(p=(m=this._permissionService.getPermissionPoint((h=new dl(e,t,r.permissionId))==null?void 0:h.id))==null?void 0:m.value)==null?!1:p;return{[n.UnitAction.Edit]:g,[n.UnitAction.View]:_,[n.UnitAction.ManageCollaborator]:v,[n.UnitAction.Delete]:y}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,t.filter)(e=>e.type===n.UnitObject.SelectRange),(0,t.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)})})}};mu=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IPermissionService)),w(2,(0,e.Inject)(e.IUniverInstanceService))],mu);var hu=`@univerjs/sheets`,gu=`0.20.0`;let _u=class extends e.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,C(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Ci.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Ci.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===nl.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===Hs.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===nl.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===q.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=vu(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=vu(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(Pt.id,{unitId:e,subUnitId:t})}};_u=T([w(0,e.ICommandService),w(1,e.IUniverInstanceService)],_u);function vu(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 e.Disposable{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[V,F,P,Hs,Se,we,Ee,L,I,Ci,z,Ll,h,qc,al,Il,Ae,Gl,vt,gt,Kl,ql,Bs,Et,St].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||[Ga,Ka,qa,Ja,no,jn,Fs,Mn,qs,Jr,Xr,Xc,kl,fi,di,pi,mi,ui,li,Qr,ei,ai,ii,si,oi,ri,ni,$s,ki,Kn,Di,_i,xi,bi,vi,ac,Ii,Ra,ho,po,mo,yc,vc,hc,gc,_c,Cc,Ie,Re,Zc,bc,Pe,Ac,kc,jc,_o,Ic,Hr,Al,Bc,Lc,mt,Sc,zc,xc,Rc,X,Kc,Gc,fo,yo,vo,go,Jc,Yc,Pt,rl,nl,ol,ll,cl,Mt,At,jl,jt,bt,Ol,$c,Wn,q,Xl,Qs,ic,Dc,Ml,Hl,Nt,Mc,ze,Bl,Cl,Qa,Pc,$a,Sl,On,Fc,Ys,eo,Xs,wl,Dn,Tn,$,Vl,Ct,el,Nl,ve,ge,nc,tc,Ul,rc,to,Zs,Wl,Yl,Jl,ks,Ms,Ns,Ps,ec].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(iu,3e6)}};yu=T([w(0,e.ICommandService),w(1,e.IConfigService),w(2,(0,e.Optional)(o.DataSyncPrimaryController))],yu);let bu=class extends e.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id!==i.SetFormulaCalculationResultMutation.id)return;let{unitData:n}=t.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:V.id,params:s})}}return(0,e.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(t,n,r){let a=this._univerInstanceService.getUniverSheetInstance(t),o=a==null?void 0:a.getStyles(),s=a==null?void 0:a.getSheetBySheetId(n),c=s==null?void 0:s.getCellMatrix(),l=new e.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()}};bu=T([w(0,(0,e.Inject)(e.IUniverInstanceService)),w(1,e.ICommandService)],bu);let xu=class extends e.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:11,effect:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(t,n,r)=>{var a;if(!t)return r(t);let o=n.workbook.getStyles().getStyleByCell(t);return(0,e.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern)&&(t==null?void 0:t.t)===e.CellValueType.NUMBER&&t.v!==void 0&&t.v!==null&&(0,e.isRealNum)(t.v)?((!t||t===n.rawData)&&(t={...n.rawData}),t.v=(0,i.stripErrorMargin)(Number(t.v)),r(t)):r(t)}}))}};xu=T([w(0,(0,e.Inject)(k))],xu);let Su=class extends e.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:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(e,t,r)=>{let{unitId:i,subUnitId:a,row:o,col:s}=t,c=this._rangeProtectionCache.getCellInfo(i,a,o,s);if(c){let i=c[n.UnitAction.View]===!1,a=!e||e===t.rawData?{...t.rawData}:e;return a.selectionProtection=[c],i?(delete a.s,delete a.v,delete a.p,a):r(a)}return r(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:999,effect:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(e,t,r)=>{let{unitId:i,subUnitId:a}=t,o=this._worksheetProtectionRuleModel.getRule(i,a);if(o!=null&&o.permissionId){var s,c,l,u,d;let o=[{[n.UnitAction.View]:(s=(c=this._permissionService.getPermissionPoint(new Vr(i,a).id))==null?void 0:c.value)==null?!1:s,[n.UnitAction.Edit]:(l=(u=this._permissionService.getPermissionPoint(new Er(i,a).id))==null?void 0:u.value)==null?!1:l}],f=!((d=o[0])!=null&&d[n.UnitAction.View]),p=!e||e===t.rawData?{...e}:e;return p.hasWorksheetRule=!0,p.selectionProtection=o,f?(delete p.s,delete p.v,delete p.p,p):r(p)}return r(e)}}))}};Su=T([w(0,e.IPermissionService),w(1,(0,e.Inject)(Za)),w(2,(0,e.Inject)(k)),w(3,(0,e.Inject)(mu))],Su);const Cu=(0,e.createIdentifier)(`univer.exclusive-range-service`);var wu=class extends e.Disposable{constructor(...e){super(...e),C(this,`_exclusiveRanges`,new Map),C(this,`_exclusiveRangesChange$`,new t.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(t){let n=[];return t.forEach(t=>{var r;let i=t.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 t of s.keys()){let r=s.get(t);if(r){for(let a of r)if(e.Rectangle.intersects(i,a.range)){n.push(t);break}}}}),n}};let Tu=class extends e.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(t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(t);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles();r.forEach(t=>{e.Range.foreach(t,(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(t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(t);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles(),s=a.getCellMatrix();r.forEach(t=>{t.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=a.getCellRaw(e,n);if(r){let e={...o.getStyleByCell(r)||{},n:{pattern:t.pattern}};r.s=o.setValue(e)}else{let r={n:{pattern:t.pattern}},i=o.setValue(r);i&&s.setValue(e,n,{s:i})}})})})}};Tu=T([w(0,e.IResourceManagerService),w(1,e.IUniverInstanceService),w(2,e.ILogService)],Tu);const Eu=[F.id,P.id,L.id,I.id],Du=[we.id,Ee.id];let Ou=class extends e.Disposable{constructor(t,n,r,i,a,o,s,c){super(),this._selectionProtectionRuleModel=t,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 e.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let t=(t,n)=>{let r=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=e=>this.refRangeHandle(e,t,n);this._selectionProtectionRuleModel.getSubunitRuleList(t,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,i,t,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Yc.id){let n=e.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;t(i,r)}if(e.id===$.id||e.id===Dn.id){let n=e.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;t(i,r)}}));let n=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(n){let e=n.getActiveSheet();if(!e)return;t(n.getUnitId(),e.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case Di.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case ki.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case ni.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case li.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case xi.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case vi.id:return this._getRefRangeMutationsByDeleteRows(e.params,t,n);default:break}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>e.Rectangle.intersects(n,t.range))),a=t.range;if(i.length){let t=[],o=[];return i.forEach(i=>{let s=e.Tools.deepClone(i);s.ranges=s.ranges.reduce((t,n)=>{if(e.Rectangle.intersects(n,a)){let r=e.Tools.deepClone(n),{startColumn:i,endColumn:o}=a;if(i<=r.startColumn&&o>=r.endColumn)return t;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)&&t.push(r)}return t},[]),s.ranges.length?(t.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}})):(t.push({id:Tn.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:Dn.id,params:{unitId:n,subUnitId:r,name:``,rules:[i]}}))}),{redos:t,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>e.Rectangle.intersects(n,t.range))),a=t.range;if(i.length){let t=[],o=[];return i.forEach(i=>{let s=e.Tools.deepClone(i);s.ranges=s.ranges.reduce((t,n)=>{if(e.Rectangle.intersects(n,a)){let r=e.Tools.deepClone(n),{startRow:i,endRow:o}=a;if(i<=r.startRow&&o>=r.endRow)return t;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)&&t.push(r)}return t},[]),t.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:t,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(t,n,r){let i=t.range.startColumn,a=t.range.endColumn-t.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 t=[],s=[];return o.forEach(o=>{let c=e.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startColumn&&i<=e.endColumn&&(e.endColumn+=a,l=!0)}),l&&(t.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:t,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(t,n,r){let i=t.range.startRow,a=t.range.endRow-t.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 t=[],s=[];return o.forEach(o=>{let c=e.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startRow&&i<=e.endRow&&(e.endRow+=a,l=!0)}),l&&(t.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:t,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(t,n,r){let i=t.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=e.Tools.deepClone(s),u=t.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(t,n,r){let i=t.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=e.Tools.deepClone(s),u=t.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(t=>{if(Du.includes(t.id)){if(!t.params)return;let n=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=t.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(t=>{t.ranges.forEach(t=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u}=t;e.Rectangle.intersects(t,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})&&(t.startColumn=a,t.endColumn=u,t.startRow=n,t.endRow=r)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=t.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(Eu.includes(t.id)){let e=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!e)return;let n=e.getSheetBySheetId(t.params.subUnitId);if(!n)return;let r=t.params;if(!r)return;let{range:i}=r,a=t.id.includes(`row`),o=t.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(e.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}=t.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(Eu.includes(e.id)||Du.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===ac.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:Tn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:Dn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};Ou=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IUniverInstanceService)),w(2,e.ICommandService),w(3,(0,e.Inject)(wa)),w(4,(0,e.Inject)(pu)),w(5,(0,e.Inject)(mu)),w(6,(0,e.Inject)(k)),w(7,(0,e.Inject)(U))],Ou);let ku=class extends e.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`:pl().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:pl().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&&pl().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:[n.UniverType.UNIVER_SHEET],onLoad:(e,t)=>{let r=this._selectionProtectionRuleModel.toObject();r[e]=t,this._selectionProtectionRuleModel.fromObject(r);let i=[];Object.keys(t).forEach(r=>{let a=t[r];this._selectionProtectionRuleModel.getSubunitRuleList(e,r).forEach(t=>{i.push({objectID:t.permissionId,unitID:e,objectType:n.UnitObject.SelectRange,actions:ml})}),a.forEach(t=>{pl().forEach(n=>{let i=new n(e,r,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,r)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};ku=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IPermissionService)),w(2,(0,e.Inject)(e.IResourceManagerService)),w(3,(0,e.Inject)(mu)),w(4,(0,e.Inject)(e.IUniverInstanceService))],ku);let Au=class extends e.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()}};Au=T([w(0,(0,e.Inject)(N))],Au);let ju=class extends e.Plugin{constructor(t=Rs,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{...i}=(0,e.merge)({},Rs,this._config);this._configService.setConfig(Is,i),this._initConfig(),this._initDependencies()}_initConfig(){var t,n,r;(t=this._config)!=null&&t.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`,!0),(n=this._config)!=null&&n.isRowStylePrecedeColumnStyle&&this._configService.setConfig(e.IS_ROW_STYLE_PRECEDE_COLUMN_STYLE,!0),(r=this._config)!=null&&r.autoHeightForMergedCells&&this._configService.setConfig(e.AUTO_HEIGHT_FOR_MERGED_CELLS,!0)}_initDependencies(){var t;let n=[[oc],[zs],[G],[wa],[uu],[Pl,{useClass:Tu}],[k],[Au],[ji],[yu],[Na],[xu],[au],[fu],[cu],[xl],[Za],[ul],[Su],[du],[lu],[N],[pu],[U],[mu],[Ou],[ku],[Cu,{useClass:wu,deps:[G]}],[Os,{useClass:Ds}],[ru]];(t=this._config)!=null&&t.notExecuteFormula||n.push([bu]),(0,e.registerDependencies)(this._injector,(0,e.mergeOverrideWithDependencies)(n,this._config.override)),(0,e.touchDependencies)(this._injector,[[k],[ku],[Cu],[du],[cu]])}onStarting(){var t;(0,e.touchDependencies)(this._injector,[[yu],[Na],[uu],[xl],[Su],[ji],[ru]]),(t=this._config)!=null&&t.onlyRegisterFormulaRelatedMutations||this._injector.add([_u])}onRendered(){(0,e.touchDependencies)(this._injector,[[Pl]])}onReady(){(0,e.touchDependencies)(this._injector,[[_u],[bu],[au],[fu],[N],[xu],[pu],[Ou],[wa],[lu]])}};C(ju,`pluginName`,`SHEET_PLUGIN`),C(ju,`packageName`,hu),C(ju,`version`,gu),C(ju,`type`,e.UniverInstanceType.UNIVER_SHEET),ju=T([(0,e.DependentOn)(i.UniverFormulaEnginePlugin),w(1,(0,e.Inject)(e.Injector)),w(2,e.IConfigService)],ju);const Mu={WorkbookCommentPermission:$n,WorkbookCopyPermission:er,WorkbookCreateProtectPermission:nr,WorkbookCreateSheetPermission:rr,WorkbookDeleteSheetPermission:or,WorkbookDuplicatePermission:sr,WorkbookEditablePermission:cr,WorkbookExportPermission:lr,WorkbookHideSheetPermission:ur,WorkbookHistoryPermission:dr,WorkbookManageCollaboratorPermission:mr,WorkbookMoveSheetPermission:hr,WorkbookPrintPermission:gr,WorkbookRecoverHistoryPermission:_r,WorkbookRenameSheetPermission:vr,WorkbookSharePermission:yr,WorkbookViewHistoryPermission:xr,WorkbookViewPermission:br,WorksheetCopyPermission:Sr,WorksheetDeleteColumnPermission:Cr,WorksheetDeleteProtectionPermission:wr,WorksheetDeleteRowPermission:Tr,WorksheetEditExtraObjectPermission:Dr,WorksheetEditPermission:Er,WorksheetFilterPermission:Or,WorksheetInsertColumnPermission:kr,WorksheetInsertHyperlinkPermission:Ar,WorksheetInsertRowPermission:jr,WorksheetManageCollaboratorPermission:Mr,WorksheetPivotTablePermission:Nr,WorksheetSetCellStylePermission:Ir,WorksheetSetCellValuePermission:Lr,WorksheetSetColumnStylePermission:Rr,WorksheetSetRowStylePermission:zr,WorksheetSortPermission:Br,WorksheetViewPermission:Vr,RangeProtectionPermissionEditPoint:Zn,RangeProtectionPermissionViewPoint:Qn},Nu=(t,n,r,i)=>{let a=t.get(e.IPermissionService),o=t.get(U),s=a.getPermissionPoint(new cr(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new Er(n,r).id);if(!(c!=null&&c.value))return!1;let l=o.getSubunitRuleList(n,r).filter(t=>t.ranges.some(t=>i.some(n=>e.Rectangle.intersects(t,n))));return l.length?l.every(e=>{let t=e.permissionId,i=a.getPermissionPoint(new Zn(n,r,t).id);return!!(i!=null&&i.value)}):!0},Pu=(t,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=e.Range.transformRange(t,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 Iu(t,n,{...r,startRow:c,endRow:c},i,a,!1)},Fu=(t,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=e.Range.transformRange(t,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 Lu(t,n,{...r,startRow:s,endRow:s},i,a,!1)},Iu=(t,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=e.Range.transformRange(t,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 Pu(t,n,{...r,startColumn:c,endColumn:c},i,a,!1)},Lu=(t,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=e.Range.transformRange(t,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 Fu(t,n,{...r,startColumn:s,endColumn:s},i,a,!1)};function Ru(t,n,r){let i=null;return r.getMatrixWithMergedCells(t,n,t,n).forValue((t,n,r)=>(i={actualRow:t,actualColumn:n,startRow:t,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:t+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:e.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:t,startRow:t,startColumn:n,endRow:t,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:e.RANGE_TYPE.NORMAL}}const zu=(t,n,r,i,a=1)=>{switch(i){case e.Direction.UP:return Pu(t,n,r,a);case e.Direction.DOWN:return Fu(t,n,r,a);case e.Direction.LEFT:return Iu(t,n,r,a);case e.Direction.RIGHT:return Lu(t,n,r,a)}},Bu=(t,n,r)=>{let i,a=-1,o;for(let e=0;e<t.length;e++)if(t[e].primary){i=t[e],a=e,o=i.primary;break}if(a===-1)return null;let s=n===e.Direction.LEFT||n===e.Direction.UP,c=t[s?a-1>=0?a-1:t.length-1:a+1<t.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(!e.Rectangle.equals(i.range,l)){let e=m?c.range:zu(i.range,r,l,n);if(!e)return null;let t=h?Ru(e.endRow,e.endColumn,r):Ru(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?Ru(c.range.endRow,c.range.endColumn,r):Ru(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function Vu(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 Hu(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:Vu(t,n),primaryWithCoord:r&&Uu(t,r),style:i}}function Uu(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 Wu(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=Vu(i,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=Vu(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 Gu(e,t,n,i,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=Vu(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}}}exports.AFFECT_LAYOUT_STYLES=ro,exports.AFTER_CELL_EDIT=D,exports.AUTO_FILL_APPLY_TYPE=Z,exports.AUTO_FILL_DATA_TYPE=Q,exports.AUTO_FILL_HOOK_TYPE=ns,exports.AddMergeRedoSelectionsOperationFactory=Ia,exports.AddMergeUndoMutationFactory=m,exports.AddMergeUndoSelectionsOperationFactory=La,exports.AddRangeProtectionCommand=On,exports.AddRangeProtectionMutation=Dn,exports.AddRangeThemeMutation=Wl,exports.AddWorksheetMergeAllCommand=Ka,exports.AddWorksheetMergeCommand=Ga,exports.AddWorksheetMergeHorizontalCommand=Ja,exports.AddWorksheetMergeMutation=h,exports.AddWorksheetMergeVerticalCommand=qa,exports.AddWorksheetProtectionCommand=eo,exports.AddWorksheetProtectionMutation=Qa,exports.AppendRowCommand=no,exports.AutoClearContentCommand=Ps,exports.AutoFillCommand=ks,Object.defineProperty(exports,`AutoFillController`,{enumerable:!0,get:function(){return ru}}),exports.AutoFillRules=vs,Object.defineProperty(exports,`AutoFillService`,{enumerable:!0,get:function(){return Ds}}),exports.AutoFillTools=ts,exports.BEFORE_CELL_EDIT=E,exports.BorderStyleManagerService=oc,exports.COMMAND_LISTENER_SKELETON_CHANGE=It,exports.COMMAND_LISTENER_VALUE_CHANGE=Lt,exports.CancelFrozenCommand=jc,exports.CancelMarkDirtyRowAutoHeightMutation=ql,exports.ClearSelectionAllCommand=jn,exports.ClearSelectionContentCommand=Fs,exports.ClearSelectionFormatCommand=Mn,exports.CopySheetCommand=qs,exports.CopyWorksheetEndMutation=Bs,exports.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(exports,`DefinedNameDataController`,{enumerable:!0,get:function(){return au}}),exports.DeleteRangeMoveLeftCommand=Jr,exports.DeleteRangeMoveUpCommand=Xr,exports.DeleteRangeProtectionCommand=Ys,exports.DeleteRangeProtectionMutation=Tn,exports.DeleteWorksheetProtectionCommand=Xs,exports.DeleteWorksheetProtectionMutation=$a,exports.DeleteWorksheetRangeThemeStyleCommand=Zs,exports.DeleteWorksheetRangeThemeStyleMutation=ve,exports.DeleteWorksheetRangeThemeStyleMutationFactory=ye,exports.DeltaColumnWidthCommand=Xc,exports.DeltaRowHeightCommand=kl,exports.EditStateEnum=Cn,exports.EffectRefRangId=J,exports.EmptyMutation=Gl,exports.ExclusiveRangeService=wu,exports.FactoryAddRangeProtectionMutation=En,exports.FactoryDeleteRangeProtectionMutation=wn,exports.FactorySetRangeProtectionMutation=Nc,exports.IAutoFillService=Os,exports.IExclusiveRangeService=Cu,exports.INTERCEPTOR_POINT=g,exports.INumfmtService=Pl,exports.IRefSelectionsService=Vn,exports.InsertColAfterCommand=fi,exports.InsertColBeforeCommand=di,exports.InsertColByRangeCommand=ui,exports.InsertColCommand=li,exports.InsertColMutation=F,exports.InsertColMutationUndoFactory=xe,exports.InsertDefinedNameCommand=Qs,exports.InsertMultiColsLeftCommand=pi,exports.InsertMultiColsRightCommand=mi,exports.InsertMultiRowsAboveCommand=oi,exports.InsertMultiRowsAfterCommand=si,exports.InsertRangeMoveDownCommand=Qr,exports.InsertRangeMoveRightCommand=ei,exports.InsertRowAfterCommand=ai,exports.InsertRowBeforeCommand=ii,exports.InsertRowByRangeCommand=ri,exports.InsertRowCommand=ni,exports.InsertRowMutation=P,exports.InsertRowMutationUndoFactory=be,exports.InsertSheetCommand=$s,exports.InsertSheetMutation=Hs,exports.InsertSheetUndoMutationFactory=Vs,exports.InterceptCellContentPriority=_,exports.MAX_CELL_PER_SHEET_KEY=iu,exports.MERGE_CELL_INTERCEPTOR_CHECK=Ma,exports.MarkDirtyRowAutoHeightMutation=Kl,Object.defineProperty(exports,`MergeCellController`,{enumerable:!0,get:function(){return Na}}),exports.MoveColsCommand=ki,exports.MoveColsMutation=Ee,exports.MoveColsMutationUndoFactory=Te,exports.MoveRangeCommand=Kn,exports.MoveRangeMutation=Se,exports.MoveRowsCommand=Di,exports.MoveRowsMutation=we,exports.MoveRowsMutationUndoFactory=Ce,Object.defineProperty(exports,`NumfmtService`,{enumerable:!0,get:function(){return Tu}}),exports.OperatorType=Y,exports.PermissionPointsDefinitions=Mu,exports.REF_SELECTIONS_ENABLED=An,exports.RangeMergeUtil=tn,Object.defineProperty(exports,`RangeProtectionCache`,{enumerable:!0,get:function(){return mu}}),exports.RangeProtectionPermissionDeleteProtectionPoint=dl,exports.RangeProtectionPermissionEditPoint=Zn,exports.RangeProtectionPermissionManageCollaPoint=fl,exports.RangeProtectionPermissionViewPoint=Qn,Object.defineProperty(exports,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return Ou}}),Object.defineProperty(exports,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return pu}}),exports.RangeProtectionRuleModel=U,Object.defineProperty(exports,`RangeProtectionService`,{enumerable:!0,get:function(){return ku}}),exports.RangeThemeStyle=te,Object.defineProperty(exports,`RefRangeService`,{enumerable:!0,get:function(){return wa}}),Object.defineProperty(exports,`RefSelectionsService`,{enumerable:!0,get:function(){return Hn}}),exports.RefillCommand=ec,exports.RegisterWorksheetRangeThemeStyleCommand=rc,exports.RegisterWorksheetRangeThemeStyleMutation=tc,exports.RemoveColByRangeCommand=bi,exports.RemoveColCommand=xi,exports.RemoveColMutation=L,exports.RemoveDefinedNameCommand=ic,exports.RemoveMergeUndoMutationFactory=R,exports.RemoveNumfmtMutation=Ll,exports.RemoveRangeThemeMutation=Jl,exports.RemoveRowByRangeCommand=_i,exports.RemoveRowCommand=vi,exports.RemoveRowMutation=I,exports.RemoveSheetCommand=ac,exports.RemoveSheetMutation=Ci,exports.RemoveSheetUndoMutationFactory=Si,exports.RemoveWorksheetMergeCommand=Ra,exports.RemoveWorksheetMergeMutation=z,exports.ReorderRangeCommand=Ii,exports.ReorderRangeMutation=Ae,exports.ReorderRangeUndoMutationFactory=ke,exports.ResetBackgroundColorCommand=ho,exports.ResetTextColorCommand=po,exports.SCOPE_WORKBOOK_VALUE_DEFINED_NAME=`AllDefaultWorkbook`,exports.SELECTIONS_ENABLED=`SELECTIONS_ENABLED`,exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=`rgba(255, 255, 255, 0.01)`,exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=1.5,exports.SHEETS_PLUGIN_CONFIG_KEY=Is,exports.ScrollToCellOperation=Xl,exports.SelectRangeCommand=Wn,exports.SelectionMoveType=W,exports.SetBackgroundColorCommand=mo,exports.SetBoldCommand=io,exports.SetBorderBasicCommand=yc,exports.SetBorderColorCommand=vc,exports.SetBorderCommand=hc,exports.SetBorderPositionCommand=gc,exports.SetBorderStyleCommand=_c,exports.SetColDataCommand=bc,exports.SetColDataMutation=Pe,exports.SetColDataMutationFactory=Ne,exports.SetColHiddenCommand=Cc,exports.SetColHiddenMutation=Ie,exports.SetColVisibleMutation=Re,exports.SetColWidthCommand=Zc,exports.SetDefinedNameCommand=Dc,exports.SetFontFamilyCommand=lo,exports.SetFontSizeCommand=uo,exports.SetFrozenCommand=Ac,exports.SetFrozenMutation=kc,exports.SetFrozenMutationFactory=Oc,exports.SetGridlinesColorCommand=Mc,exports.SetGridlinesColorMutation=ze,exports.SetHorizontalTextAlignCommand=_o,exports.SetItalicCommand=ao,exports.SetNumfmtMutation=Il,exports.SetOverlineCommand=co,exports.SetProtectionCommand=Fc,exports.SetRangeCustomMetadataCommand=Ic,exports.SetRangeProtectionMutation=$,exports.SetRangeThemeMutation=Yl,exports.SetRangeValuesCommand=Hr,exports.SetRangeValuesMutation=V,exports.SetRangeValuesUndoMutationFactory=B,exports.SetRowDataCommand=Lc,exports.SetRowDataMutation=mt,exports.SetRowDataMutationFactory=pt,exports.SetRowHeightCommand=Al,exports.SetRowHiddenCommand=Bc,exports.SetRowHiddenMutation=vt,exports.SetRowVisibleMutation=gt,exports.SetSelectedColsVisibleCommand=Sc,exports.SetSelectedRowsVisibleCommand=zc,exports.SetSelectionsOperation=q,exports.SetSpecificColsVisibleCommand=xc,exports.SetSpecificRowsVisibleCommand=Rc,exports.SetStrikeThroughCommand=so,exports.SetStyleCommand=X,exports.SetTabColorCommand=Kc,exports.SetTabColorMutation=Gc,exports.SetTextColorCommand=fo,exports.SetTextRotationCommand=yo,exports.SetTextWrapCommand=vo,exports.SetUnderlineCommand=oo,exports.SetVerticalTextAlignCommand=go,exports.SetWorkbookNameCommand=Jc,exports.SetWorkbookNameMutation=qc,exports.SetWorksheetActivateCommand=Yc,exports.SetWorksheetActiveOperation=Pt,exports.SetWorksheetColWidthMutation=bt,exports.SetWorksheetColWidthMutationFactory=yt,exports.SetWorksheetColumnCountCommand=$c,exports.SetWorksheetColumnCountMutation=St,exports.SetWorksheetColumnCountUndoMutationFactory=xt,exports.SetWorksheetDefaultStyleCommand=el,exports.SetWorksheetDefaultStyleMutation=Ct,exports.SetWorksheetDefaultStyleMutationFactory=wt,exports.SetWorksheetHideCommand=rl,exports.SetWorksheetHideMutation=nl,exports.SetWorksheetNameCommand=ol,exports.SetWorksheetNameMutation=al,exports.SetWorksheetOrderCommand=ll,exports.SetWorksheetOrderMutation=cl,exports.SetWorksheetPermissionPointsCommand=Cl,exports.SetWorksheetPermissionPointsMutation=Sl,exports.SetWorksheetProtectionCommand=wl,exports.SetWorksheetProtectionMutation=Pc,exports.SetWorksheetRangeThemeStyleCommand=to,exports.SetWorksheetRangeThemeStyleMutation=ge,exports.SetWorksheetRangeThemeStyleMutationFactory=_e,exports.SetWorksheetRightToLeftCommand=Dl,exports.SetWorksheetRightToLeftMutation=El,exports.SetWorksheetRowAutoHeightMutation=Mt,exports.SetWorksheetRowAutoHeightMutationFactory=kt,exports.SetWorksheetRowCountCommand=Ol,exports.SetWorksheetRowCountMutation=Et,exports.SetWorksheetRowCountUndoMutationFactory=Tt,exports.SetWorksheetRowHeightMutation=At,exports.SetWorksheetRowHeightMutationFactory=Dt,exports.SetWorksheetRowIsAutoHeightCommand=jl,exports.SetWorksheetRowIsAutoHeightMutation=jt,exports.SetWorksheetRowIsAutoHeightMutationFactory=Ot,exports.SetWorksheetShowCommand=Ml,exports.SheetCopyDownCommand=Ms,exports.SheetCopyRightCommand=Ns,Object.defineProperty(exports,`SheetInterceptorService`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return zs}}),Object.defineProperty(exports,`SheetPermissionCheckController`,{enumerable:!0,get:function(){return lu}}),Object.defineProperty(exports,`SheetPermissionInitController`,{enumerable:!0,get:function(){return du}}),Object.defineProperty(exports,`SheetRangeThemeModel`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`SheetRangeThemeService`,{enumerable:!0,get:function(){return Au}}),exports.SheetSkeletonChangeType=H,Object.defineProperty(exports,`SheetSkeletonService`,{enumerable:!0,get:function(){return ji}}),exports.SheetValueChangeType=Ft,Object.defineProperty(exports,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return cu}}),Object.defineProperty(exports,`SheetsSelectionsService`,{enumerable:!0,get:function(){return G}}),exports.SplitDelimiterEnum=an,exports.SplitTextToColumnsCommand=Nl,exports.TextToNumberCommand=Bl,exports.ToggleCellCheckboxCommand=Vl,exports.ToggleGridlinesCommand=Hl,exports.ToggleGridlinesMutation=Nt,Object.defineProperty(exports,`UnitAction`,{enumerable:!0,get:function(){return n.UnitAction}}),Object.defineProperty(exports,`UnitObject`,{enumerable:!0,get:function(){return n.UnitObject}}),Object.defineProperty(exports,`UniverSheetsPlugin`,{enumerable:!0,get:function(){return ju}}),exports.UnregisterWorksheetRangeThemeStyleCommand=Ul,exports.UnregisterWorksheetRangeThemeStyleMutation=nc,exports.VALIDATE_CELL=O,exports.ViewStateEnum=Sn,exports.WorkbookCommentPermission=$n,exports.WorkbookCopyPermission=er,exports.WorkbookCopySheetPermission=tr,exports.WorkbookCreateProtectPermission=nr,exports.WorkbookCreateSheetPermission=rr,exports.WorkbookDeleteColumnPermission=ir,exports.WorkbookDeleteRowPermission=ar,exports.WorkbookDeleteSheetPermission=or,exports.WorkbookDuplicatePermission=sr,exports.WorkbookEditablePermission=cr,exports.WorkbookExportPermission=lr,exports.WorkbookHideSheetPermission=ur,exports.WorkbookHistoryPermission=dr,exports.WorkbookInsertColumnPermission=fr,exports.WorkbookInsertRowPermission=pr,exports.WorkbookManageCollaboratorPermission=mr,exports.WorkbookMoveSheetPermission=hr,Object.defineProperty(exports,`WorkbookPermissionService`,{enumerable:!0,get:function(){return uu}}),exports.WorkbookPrintPermission=gr,exports.WorkbookRecoverHistoryPermission=_r,exports.WorkbookRenameSheetPermission=vr,exports.WorkbookSelectionModel=kn,exports.WorkbookSharePermission=yr,exports.WorkbookViewHistoryPermission=xr,exports.WorkbookViewPermission=br,exports.WorksheetCopyPermission=Sr,exports.WorksheetDeleteColumnPermission=Cr,exports.WorksheetDeleteProtectionPermission=wr,exports.WorksheetDeleteRowPermission=Tr,exports.WorksheetEditExtraObjectPermission=Dr,exports.WorksheetEditPermission=Er,exports.WorksheetFilterPermission=Or,exports.WorksheetInsertColumnPermission=kr,exports.WorksheetInsertHyperlinkPermission=Ar,exports.WorksheetInsertRowPermission=jr,exports.WorksheetManageCollaboratorPermission=Mr,Object.defineProperty(exports,`WorksheetPermissionService`,{enumerable:!0,get:function(){return xl}}),exports.WorksheetPivotTablePermission=Nr,exports.WorksheetProtectionPointModel=ul,exports.WorksheetProtectionRuleModel=Za,exports.WorksheetSelectProtectedCellsPermission=Pr,exports.WorksheetSelectUnProtectedCellsPermission=Fr,exports.WorksheetSetCellStylePermission=Ir,exports.WorksheetSetCellValuePermission=Lr,exports.WorksheetSetColumnStylePermission=Rr,exports.WorksheetSetRowStylePermission=zr,exports.WorksheetSortPermission=Br,exports.WorksheetViewPermission=Vr,Object.defineProperty(exports,`ZebraCrossingCacheController`,{enumerable:!0,get:function(){return fu}}),exports.addMergeCellsUtil=Ya,exports.adjustRangeOnMutation=_a,exports.alignToMergedCellsBorders=Nn,exports.attachPrimaryWithCoord=Uu,exports.attachRangeWithCoord=Vu,exports.attachSelectionWithCoord=Hu,exports.baseProtectionActions=ml,exports.checkCellValueType=u,exports.checkRangesEditablePermission=Nu,exports.convertPositionCellToSheetOverGrid=Gu,exports.convertPositionSheetOverGridToAbsolute=Wu,exports.convertPrimaryWithCoordToPrimary=rn,exports.convertSelectionDataToRange=nn,exports.copyRangeStyles=Bn,exports.countCells=Pi,exports.createTopMatrixFromMatrix=Xt,exports.createTopMatrixFromRanges=Yt,exports.defaultLargeSheetOperationConfig=Ls,exports.defaultWorkbookPermissionPoints=_l,exports.defaultWorksheetPermissionPoint=bl,exports.discreteRangeToRange=yn,exports.expandToContinuousRange=Jt,exports.factoryRemoveNumfmtUndoMutation=Rl,exports.factorySetNumfmtUndoMutation=Fl,exports.findAllRectangle=$t,exports.findFirstNonEmptyCell=hn,exports.followSelectionOperation=In,exports.generateNullCell=gn,exports.generateNullCellValue=_n,exports.getAddMergeMutationRangeByType=ja,exports.getAllRangePermissionPoint=pl,exports.getAllWorkbookPermissionPoint=gl,exports.getAllWorksheetPermissionPoint=vl,exports.getAllWorksheetPermissionPointByPointPanel=yl,exports.getCellAtRowCol=Pn,exports.getClearContentMutationParamForRange=Wa,exports.getClearContentMutationParamsForRanges=Ua,exports.getDefaultRangePermission=hl,exports.getInsertRangeMutations=Ur,exports.getMoveRangeCommandMutations=Jn,exports.getMoveRangeUndoRedoMutations=Yn,exports.getNextPrimaryCell=Bu,exports.getPrimaryForRange=K,exports.getRemoveRangeMutations=Wr,exports.getSelectionsService=Un,exports.getSeparateEffectedRangesOnCommand=ba,exports.getSheetCommandTarget=f,exports.getSheetCommandTargetWorkbook=d,exports.getSheetMutationTarget=p,exports.getSkeletonChangedEffectedRange=zt,exports.getValueChangedEffectedRange=Rt,exports.getVisibleRanges=xn,exports.handleBaseInsertRange=Zi,exports.handleBaseMoveRowsCols=zi,exports.handleBaseRemoveRange=qi,exports.handleCommonDefaultRangeChangeWithEffectRefCommands=ha,exports.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=ga,exports.handleDefaultRangeChangeWithEffectRefCommands=pa,exports.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=ma,exports.handleDeleteRangeMoveLeft=aa,exports.handleDeleteRangeMoveUp=sa,exports.handleDeleteRangeMutation=Kr,exports.handleIRemoveCol=Ji,exports.handleIRemoveRow=Yi,exports.handleInsertCol=ea,exports.handleInsertRangeMoveDown=ta,exports.handleInsertRangeMoveRight=ra,exports.handleInsertRangeMutation=Gr,exports.handleInsertRow=$i,exports.handleMoveCols=Ui,exports.handleMoveRange=Gi,exports.handleMoveRows=Bi,exports.isSingleCellSelection=Ln,exports.rangeMerge=en,exports.rangeToDiscreteRange=bn,exports.rotateRange=Ri,exports.runRefRangeMutations=fa,exports.setEndForRange=Fn,exports.splitRangeText=dn,exports.transformCellsToRange=zl;
|
|
2
|
+
`)?t.body.dataStream.length-2:t.body.dataStream.length;if(i<s){let t={st:i,ed:s},r=it({},n,!0);r&&e.Tools.removeNull(r),e.Tools.isEmptyObject(r)||(t.ts=r),a.push(t)}t.body.textRuns=(0,e.normalizeTextRuns)(a)}function st(t,n){return n.v===void 0||n.v===null?n.v:t===e.CellValueType.NUMBER?Number(n.v):t===e.CellValueType.BOOLEAN?ct(n.v)?1:0:t===e.CellValueType.STRING||t===e.CellValueType.FORCE_STRING?`${n.v}`:n.v}function ct(t){if(typeof t==`string`){if(t.toUpperCase()===`TRUE`)return!0;if(t.toUpperCase()===`FALSE`)return!1;if((0,e.isSafeNumeric)(t)){if(Number(t)===0)return!1;if(Number(t)===1)return!0}}if(typeof t==`number`){if(t===0)return!1;if(t===1)return!0}return typeof t==`boolean`?t:null}function lt(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)}const B=(t,n)=>{let{unitId:r,subUnitId:i,cellValue:a}=n,o=t.get(e.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 e.ObjectMatrix;return new e.ObjectMatrix(a).forValue((t,n,r)=>{let i=e.Tools.deepClone(c==null?void 0:c.getValue(t,n))||{};i.s=nt(l.getStyleByCell(i),l.getStyleByCell(r)),u.setValue(t,n,lt(i))}),{...n,options:{},cellValue:u.getMatrix()}},V={id:`sheet.mutation.set-range-values`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{cellValue:r,subUnitId:i,unitId:a}=n,o=t.get(e.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 e.ObjectMatrix(r).forValue((t,n,r)=>{if(!r)c.realDeleteValue(t,n);else{let i=c.getValue(t,n)||{};i=dt(r,i,l),e.Tools.isEmptyObject(i)?c.realDeleteValue(t,n):c.setValue(t,n,i)}}),!0}},ut=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function dt(e,t,n){let r=s(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(ut.has(a)){let n=e[a];ft(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=st(r,e)):a===`s`&&tt(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=st(r,t)),t.v===null&&(delete t.t,delete t.v),t}function ft(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}const pt=(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]=je(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},mt={id:`sheet.mutation.set-row-data`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{rowData:r}=n,i=f(t.get(e.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}},ht=(t,n)=>{if(t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw Error(`universheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},gt={id:`sheet.mutation.set-row-visible`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},_t=(t,n)=>{if(t.get(e.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-hidden`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},yt=(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}},bt={id:`sheet.mutation.set-worksheet-col-width`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getColumnManager(),o=n.ranges;for(let t=0;t<o.length;t++){let r=o[t];for(let t=r.startColumn;t<r.endColumn+1;t++)i.getColVisible(t)&&(typeof n.colWidth==`number`?a.setColumnWidth(t,n.colWidth):e.Tools.isDefine(n.colWidth[t])&&a.setColumnWidth(t,n.colWidth[t]))}return!0}},xt=(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,columnCount:r.worksheet.getColumnCount()}},St={id:`sheet.mutation.set-worksheet-column-count`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);return r?(r.worksheet.setColumnCount(n.columnCount),!0):!1}},Ct={id:`sheet.mutation.set-worksheet-default-style`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{defaultStyle:a}=n;return i.setDefaultCellStyle(a),!0}},wt=(t,n)=>{let r=p(t.get(e.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()}},Tt=(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);if(!r)throw Error(`[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!`);return{unitId:n.unitId,subUnitId:n.subUnitId,rowCount:r.worksheet.getRowCount()}},Et={id:`sheet.mutation.set-worksheet-row-count`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=p(t.get(e.IUniverInstanceService),n);return r?(r.worksheet.setRowCount(n.rowCount),!0):!1}},Dt=(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}},Ot=(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}},kt=(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}},At={id:`sheet.mutation.set-worksheet-row-height`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{ranges:r,rowHeight:i}=n,a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{worksheet:o}=a,s=o.getRowManager();for(let{startRow:t,endRow:n}of r)for(let r=t;r<=n;r++)typeof i==`number`?s.setRowHeight(r,i):e.Tools.isDefine(i[r])&&s.setRowHeight(r,i[r]);return!0}},jt={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{ranges:r,autoHeightInfo:i}=n,a=f(t.get(e.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}},Mt={id:`sheet.mutation.set-worksheet-row-auto-height`,type:e.CommandType.MUTATION,handler:(t,n)=>{let{rowsAutoHeightInfo:r}=n,i=f(t.get(e.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}},Nt={id:`sheet.mutation.toggle-gridlines`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,a=i.getConfig();return a.showGridlines=n.showGridlines,!0}},Pt={id:`sheet.operation.set-worksheet-active`,type:e.CommandType.OPERATION,handler:(t,n)=>{let r=t.get(e.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}};let H=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}({}),Ft=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}({});const It=[At.id,jt.id,Mt.id,bt.id,Pt.id,we.id,Ee.id,Ie.id,Re.id,vt.id,gt.id,F.id,P.id,L.id,I.id,Nt.id,ze.id,Et.id,St.id],Lt=[V.id,Se.id,z.id,h.id,Ae.id,Ct.id,mt.id,Pe.id,ge.id,ve.id];function Rt(t,n){switch(n.id){case Ft.SET_RANGE_VALUES:{let t=n.params,r=new e.ObjectMatrix(t.cellValue).getDataRange();return r.endRow===-1?[]:t.cellValue?[{unitId:t.unitId,subUnitId:t.subUnitId,range:r}]:[]}case Ft.MOVE_RANGE:{let t=n.params;return[{unitId:t.unitId,subUnitId:t.from.subUnitId,range:new e.ObjectMatrix(t.from.value).getRange()},{unitId:t.unitId,subUnitId:t.to.subUnitId,range:new e.ObjectMatrix(t.to.value).getRange()}]}case Ft.REMOVE_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Ft.ADD_WORKSHEET_MERGE:{let e=n.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Ft.REORDER_RANGE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case Ft.SET_WORKSHEET_DEFAULT_STYLE:{let e=f(t,n.params);if(!e)return[];let{worksheet:r,unitId:i,subUnitId:a}=e;return[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1}}]}case Ft.SET_ROW_DATA:{let e=f(t,n.params);if(!e)return[];let{worksheet:r,unitId:i,subUnitId:a}=e,{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 Ft.SET_COL_DATA:{let e=f(t,n.params);if(!e)return[];let{worksheet:r,unitId:i,subUnitId:a}=e,{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 Ft.SET_WORKSHEET_RANGE_THEME_STYLE:case Ft.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=n.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function zt(t,n){switch(t.id){case H.SET_WORKSHEET_ROW_HEIGHT:case H.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.ROW}}))}case H.SET_WORKSHEET_ROW_AUTO_HEIGHT:{let r=t.params;return r.rowsAutoHeightInfo.map(t=>({unitId:r.unitId,subUnitId:r.subUnitId,range:{startRow:t.row,endRow:t.row,startColumn:0,endColumn:n-1,rangeType:e.RANGE_TYPE.ROW}}))}case H.SET_WORKSHEET_COL_WIDTH:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.COLUMN}}))}case H.MOVE_ROWS:case H.MOVE_COLUMNS:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.targetRange},{unitId:e.unitId,subUnitId:e.subUnitId,range:e.sourceRange}]}case H.SET_COL_HIDDEN:case H.SET_COL_VISIBLE:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.COLUMN}}))}case H.SET_ROW_HIDDEN:case H.SET_ROW_VISIBLE:{let n=t.params;return n.ranges.map(t=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{...t,rangeType:e.RANGE_TYPE.ROW}}))}case H.INSERT_COL:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.COLUMN}}]}case H.INSERT_ROW:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.ROW}}]}case H.REMOVE_COL:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.COLUMN}}]}case H.REMOVE_ROW:{let n=t.params;return[{unitId:n.unitId,subUnitId:n.subUnitId,range:{...n.range,rangeType:e.RANGE_TYPE.ROW}}]}case H.TOGGLE_GRIDLINES:case H.SET_GRIDLINES_COLOR:return[];default:return[]}}function Bt(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Vt(e,t){return e&&e.spanAnchor?Bt(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Bt(e)}function Ht(t,n,r,i,a){let o=t.getCellMatrix(),s=t.getSpanModel().getMergedCellRange(n,r,i,a),c=new e.ObjectMatrix;return o.forValue((e,t)=>{let n=o.getValue(e,t);n&&c.setValue(e,t,n)}),s.forEach(t=>{let{startColumn:n,startRow:r,endColumn:i,endRow:a}=t;(0,e.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 Ut(t,n,r,i){let{startRow:a,startColumn:o,endRow:s}=t,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o-r);if(l=l||Vt(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?(t.startColumn-=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function Wt(t,n,r,i){let{startRow:a,endColumn:o,endRow:s}=t,c=null,l=!1;for(let e=a;e<=s;e++){let t=n.getValue(e,o+r);if(l=l||Vt(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?(t.endColumn+=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function Gt(t,n,r,i){let{startRow:a,startColumn:o,endColumn:s}=t,c=null,l=!1;for(let e=o;e<=s;e++){let t=n.getValue(a-r,e);if(l=l||Vt(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?(t.startRow-=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function Kt(t,n,r,i){let{startColumn:a,endColumn:o,endRow:s}=t,c=null,l=!1;for(let e=a;e<=o;e++){let t=n.getValue(s+r,e);if(l=l||Vt(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?(t.endRow+=r,{spanAnchor:c,hasValue:!0,range:t}):c?{spanAnchor:e.Rectangle.simpleRangesIntersect(t,c)?c:null,hasValue:!1,range:t}:{spanAnchor:null,hasValue:!1,range:t}}function qt({range:e,allMatrixWithSpan:t,directions:n,isWorksheetHasSpan:r,maxRow:i,maxColumn:a}){let{left:o,right:s,up:c,down:l}=n,{startRow:u,startColumn:d,endRow:f,endColumn:p}=e,m=!1;if(o&&c&&u>0&&d>0){let n=t.getValue(u-1,d-1);Vt(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);Vt(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);Vt(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);Vt(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 Jt(t,n,r){let i=r.getMaxRows(),a=r.getMaxColumns(),o=Ht(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={...t},m=[];for(;f;){f=!1;let e=qt({range:p,allMatrixWithSpan:o,directions:n,isWorksheetHasSpan:s,maxRow:i,maxColumn:a});if(e.hasValue){p=e.range,f=!0;continue}if(u&&p.startRow!==0){let{hasValue:e,range:t,spanAnchor:n}=Gt(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}=Kt(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}=Ut(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}=Wt(p,o,1,s);if(n&&m.push(n),e){p=t,f=!0;continue}}}return m.length>0&&(p=e.Rectangle.union(p,...m)),p}const Yt=t=>{let n=new e.ObjectMatrix;return t.forEach(t=>{e.Range.foreach(t,(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},Xt=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},Zt=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},Qt=(t,n)=>{e.Range.foreach(n,(e,n)=>{t.realDeleteValue(e,n)});for(let e=n.startColumn;e<=n.endColumn;e++){let r=n.endRow+1;if(t.getValue(r,e)>0){t.setValue(r,e,1);let n=r+1;for(;t.getValue(n,e)>0;)t.setValue(n,e,t.getValue(n-1,e)+1),n++}}return t},$t=e=>{let t=[],n=Zt(e);for(;n.area>0;)n.range&&(t.push(n.range),Qt(e,n.range)),n=Zt(e);return t},en=e=>$t(Yt(e));var tn=class{constructor(){C(this,`_matrix`,new e.ObjectMatrix)}add(...t){return t.forEach(t=>{e.Range.foreach(t,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...t){return t.forEach(t=>{e.Range.foreach(t,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return $t(Xt(this._matrix))}};function nn(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=rn(n)),i}function rn(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 an=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 on=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?an.Tab:e===this._commaCount?an.Comma:e===this._semicolonCount?an.Semicolon:e===this._spaceCount?an.Space:an.Tab}};function sn(e,t,n){let r=[];n!==void 0&&(e&an.Custom)>0&&r.push(n),(e&an.Tab)>0&&r.push(` `),(e&an.Comma)>0&&r.push(`,`),(e&an.Semicolon)>0&&r.push(`;`),(e&an.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=cn(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function cn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const ln=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function un(t){if(t!=null){if(t.p)return ln(t.p);if(t.v&&typeof t.v==`string`)return t.v;if(t.t&&(t.t===e.CellValueType.FORCE_STRING||t.t===e.CellValueType.STRING))return String(t.v)}}function dn(t,n,r,i,a=!1){let{startColumn:o,startRow:s,endColumn:c,endRow:l}=e.Range.transformRange(n,t);if(o!==c)throw Error(`The range must be in the same column.`);if(r&&(r&an.Custom)>0&&(i===void 0||i.length!==1))throw Error(`The custom delimiter must a character.`);let u=r===void 0,d=u?new on:null,f=[];for(let e=s;e<=l;e++){let n=un(t.getCell(e,o));f.push(n),d&&d.update(n)}let p=sn(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}}const fn=(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)},{}),pn=(e=0)=>{let t=e;return function(){return t++}};function mn(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function hn(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(mn(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function gn(t){let n=new e.ObjectMatrix;return t.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 _n(t){let n=new e.ObjectMatrix;return t.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 vn(t){let n=new e.ObjectMatrix;return t.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 yn(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 bn(t,n,r,i){let a=n.get(e.IUniverInstanceService),o=r?a.getUnit(r,e.UniverInstanceType.UNIVER_SHEET):a.getCurrentUnitForType(e.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}=t,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 xn(t,n,r,i){let a=f(n.get(e.IUniverInstanceService),{unitId:r,subUnitId:i});if(!a)return t;let{worksheet:o}=a,s=[];for(let e of t){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e,a=[],c=t;for(let e=t;e<=n;e++)o.getRowFiltered(e)?(c<e&&a.push([c,e-1]),c=e+1):e===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 t of s){let{startColumn:n,endColumn:r,rowIntervals:i}=t,a=(0,e.mergeIntervals)(i);for(let[e,t]of a)c.push({startRow:e,endRow:t,startColumn:n,endColumn:r})}return c}let Sn=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),Cn=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var U=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange$`,new t.Subject),C(this,`ruleChange$`,this._ruleChange$.asObservable()),C(this,`_ruleRefresh$`,new t.Subject),C(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),C(this,`_rangeRuleInitStateChange`,new t.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(t,n){let r=(0,e.generateRandomId)(4),i=this._ensureRuleMap(t,n);for(;i.has(r);)r=(0,e.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}};const wn=(e,t)=>{let n=e.get(U),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:Dn.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Tn={id:`sheet.mutation.delete-range-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(U);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},En=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Tn.id,params:t}},Dn={id:`sheet.mutation.add-range-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(U);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},On={type:e.CommandType.COMMAND,id:`sheet.command.add-range-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(U),{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(Dn.id,{unitId:c,subUnitId:l,rules:m})){let e=[{id:Dn.id,params:{unitId:c,subUnitId:l,rules:m}}],t=[{id:Tn.id,params:{unitId:c,subUnitId:l,ruleIds:m.map(e=>e.id)}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}};let W=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 kn=class extends e.Disposable{constructor(e){super(),this._workbook=e,C(this,`_worksheetSelections`,new Map),C(this,`_worksheetLastSelectionPrimaryCell`,new Map),C(this,`_selectionMoveStart$`,new t.Subject),C(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),C(this,`_selectionMoving$`,new t.Subject),C(this,`selectionMoving$`,this._selectionMoving$.asObservable()),C(this,`_selectionMoveEnd$`,new t.BehaviorSubject([])),C(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),C(this,`_selectionSet$`,new t.BehaviorSubject([])),C(this,`selectionSet$`,this._selectionSet$.asObservable()),C(this,`selectionChanged$`,void 0),C(this,`_beforeSelectionMoveEnd$`,new t.BehaviorSubject([])),C(this,`beforeSelectionMoveEnd$`,this._beforeSelectionMoveEnd$.asObservable()),this.selectionChanged$=(0,t.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 W.MOVE_START:this._selectionMoveStart$.next(t);break;case W.MOVING:this._selectionMoving$.next(t);break;case W.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case W.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 G=class extends e.RxDisposable{get _currentSelectionPos(){let t=this._instanceSrv.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!t)return null;let n=t.getActiveSheet();return{unitId:t.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 n=this._instanceSrv.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,t.shareReplay)(1),(0,t.takeUntil)(this.dispose$));this.selectionMoveStart$=n.pipe().pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:(0,t.of)())).pipe((0,t.takeUntil)(this.dispose$)),this.selectionMoving$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:(0,t.of)())).pipe((0,t.takeUntil)(this.dispose$)),this.selectionMoveEnd$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:(0,t.of)([]))).pipe((0,t.takeUntil)(this.dispose$)),this.selectionSet$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:(0,t.of)([]))).pipe((0,t.takeUntil)(this.dispose$)),this.selectionChanged$=n.pipe((0,t.switchMap)(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:(0,t.of)([]))).pipe((0,t.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,t.skip)(1)).pipe((0,t.takeUntil)(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,t.takeUntil)(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe((0,t.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,t.of)(null),this.selectionMoving$=(0,t.of)(null),this.selectionMoveEnd$=(0,t.of)([]),this.selectionSet$=(0,t.of)(null),this.selectionChanged$=(0,t.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?W.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?W.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 kn(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(t){var n;let r=(n=this._instanceSrv.getCurrentUnitForType(e.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[t];if(a!=null&&!e.Tools.diffValue(a,c))return{isAllValuesSame:!1,value:null};a=c}}return{isAllValuesSame:!0,value:a}}};G=T([w(0,e.IUniverInstanceService)],G);const An=`REF_SELECTIONS_ENABLED`,jn={id:`sheet.command.clear-selection-all`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=t.get(G),s=t.get(e.IUndoRedoService),c=t.get(k),l=i.getCurrentUnitForType(e.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=xn(p,t,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:gn(m)},v=B(t,_);h.push({id:V.id,params:_}),g.push({id:V.id,params:v});let y=c.onCommandExecute({id:jn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,e.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}},Mn={id:`sheet.command.clear-selection-format`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=t.get(G),s=t.get(e.IUndoRedoService),c=t.get(k),l=i.getCurrentUnitForType(e.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=xn(p,t,u,f),h=[],g=[],_={subUnitId:f,unitId:u,cellValue:vn(m)},v=B(t,_);h.push({id:V.id,params:_}),g.push({id:V.id,params:v});let y=c.onCommandExecute({id:Mn.id});return h.push(...y.redos),g.unshift(...y.undos),(0,e.sequenceExecute)(h,a)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:h}),!0):!1}};function Nn(t,n,r=!0){let i=n.getMatrixWithMergedCells(...(0,e.selectionToArray)(t)),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};e.Rectangle.contains(t,o)||a.push(o)}}),a.length===0)return t;let o=e.Rectangle.union(t,...a);return r?Nn(o,n,r):o}function Pn(t,n,r){let i=null;return r.getMatrixWithMergedCells(t,n,t,n).forValue((t,n,r)=>(i={actualRow:t,actualColumn:n,startRow:t,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:t+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:e.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:t,startRow:t,startColumn:n,endRow:t,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:e.RANGE_TYPE.NORMAL}}function Fn(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 K(t,n){let r=Number.isNaN(t.startRow)?0:t.startRow,i=Number.isNaN(t.startColumn)?0:t.startColumn,a=n.getMergedCell(r,i);return a?{...a,actualRow:r,actualColumn:i,rangeType:e.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:r,startColumn:i,endRow:t.startRow,endColumn:t.startColumn,actualRow:r,actualColumn:i,rangeType:e.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const In=(e,t,n)=>({id:q.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:K(e,n)}]}});function Ln(t){if(!t)return!1;let{range:n,primary:r}=t;return e.Rectangle.equals(n,r)}function Rn(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}}const zn=e=>e.id!==v;function Bn(t,n,r,i,a,o,s){let c={};for(let e=n;e<=r;e++)for(let n=i;n<=a;n++){let r=o?t.getCellWithFilteredInterceptors(s,n,y,zn):t.getCellWithFilteredInterceptors(e,s,y,zn);!r||!r.s||(c[e]||(c[e]={}),c[e][n]={s:r.s})}for(let t in c){for(let n in c[t]){let r=c[t][n];r.s&&typeof r.s==`object`&&e.Tools.isEmptyObject(r.s)&&delete r.s,e.Tools.isEmptyObject(r)&&delete c[t][n]}e.Tools.isEmptyObject(c[t])&&delete c[t]}return c}const Vn=(0,e.createIdentifier)(`sheets-formula.ref-selections.service`);let Hn=class extends G{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe((0,t.takeUntil)(this.dispose$));this.selectionMoveStart$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe((0,t.switchMap)(e=>(0,t.merge)(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=(0,t.of)(null),this.selectionMoving$=(0,t.of)(null),this.selectionMoveEnd$=(0,t.of)(null),this.selectionSet$=(0,t.of)(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let n=this._instanceSrv.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET);n.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let r=new t.BehaviorSubject(n);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._ensureWorkbookSelection(e.getUnitId()),r.next([...r.getValue(),e])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),r.next(r.getValue().filter(t=>t!==e))})),r.pipe((0,t.map)(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};Hn=T([w(0,e.IUniverInstanceService)],Hn);function Un(t,n){let r=t.get(e.IContextService).getContextValue(An);return t.get(r&&!n?Vn:G)}const q={id:`sheet.operation.set-selections`,type:e.CommandType.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return Un(e).setSelections(i,a,[...n],r),!0}},Wn={id:`sheet.command.select-range`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n)return!1;let{unitId:r,subUnit:i,range:a}=n,o=t.get(e.ICommandService),s=f(t.get(e.IUniverInstanceService),n);if(!s)return!1;let c=[{range:a,primary:K(a,s.worksheet),style:null}];return o.syncExecuteCommand(q.id,{unitId:r,subUnitId:i,selections:c})}},Gn=`sheet.command.move-range`,Kn={type:e.CommandType.COMMAND,id:Gn,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.ErrorService),o=t.get(e.LocaleService);if(!await t.get(k).beforeCommandExecute({id:Kn.id,params:n}))return!1;let s=Jn(t,n);return s?(0,e.sequenceExecute)(s.redos,r).result?(i.pushUndoRedo({unitID:s.unitId,undoMutations:s.undos,redoMutations:s.redos}),!0):!1:(a.emit(o.t(`sheets.info.acrossMergedCell`)),!1)}};function qn(t,n){var r,i,a,o,s;let c=t.get(e.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 Jn(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=qn(e,t);if(!c)return null;let l=e.get(k),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=Yn(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:Kn.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:q.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:Xn(t.fromRange,t.toRange,p,m)}],type:W.MOVE_END}}),y.push({id:q.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:K(t.fromRange,p)}],type:W.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 Yn(t,n,r,i=!1){let a=n.unitId,o=t.get(e.IUniverInstanceService).getUnit(a,e.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=Nn(u,f,!1);if(!e.Rectangle.equals(u,p)&&!i)return null;let m=d.getCellMatrix(),h=f.getCellMatrix(),g=new e.ObjectMatrix,_=new e.ObjectMatrix,v=new e.ObjectMatrix,y=new e.ObjectMatrix;e.Range.foreach(c,(t,n)=>{var r;let i=(r=e.Tools.deepClone(m.getValue(t,n)))==null?null:r;i!=null&&i.s&&(i.s=o.getStyles().get(i.s)),g.setValue(t,n,null),_.setValue(t,n,i);let a=(0,e.cellToRange)(t,n),s=e.Rectangle.getRelativeRange(a,c),l=e.Rectangle.getPositionRange(s,u);v.setValue(l.startRow,l.startColumn,e.Tools.deepClone(i))}),e.Range.foreach(u,(t,n)=>{var r;let i=(r=e.Tools.deepClone(h.getValue(t,n)))==null?null:r;y.setValue(t,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:Se.id,params:b}],undos:[{id:Se.id,params:x}]}}function Xn(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=K(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 Zn=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.Edit),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.Edit}.${i}`}},Qn=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.View),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.View}.${i}`}},$n=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Comment),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Comment}_${t}`}},er=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Copy),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Copy}_${t}`}},tr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`subType`,n.UnitAction.CopySheet),C(this,`status`,e.PermissionStatus.INIT),this.unitId=t,this.id=`${this.type}.${n.UnitAction.CopySheet}_${t}`}},nr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.CreatePermissionObject),this.unitId=t,this.id=`${this.type}.${n.UnitAction.CreatePermissionObject}_${t}`}},rr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.CreateSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.CreateSheet}_${t}`}},ir=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteColumn),this.id=`${this.type}.${n.UnitAction.DeleteColumn}_${t}`}},ar=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteRow),this.id=`${this.type}.${n.UnitAction.DeleteRow}_${t}`}},or=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.DeleteSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.DeleteSheet}_${t}`}},sr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Duplicate),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Duplicate}_${t}`}},cr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Edit),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Edit}_${t}`}},lr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Export),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Export}_${t}`}},ur=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.HideSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.HideSheet}_${t}`}},dr=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertColumn),this.id=`${this.type}.${n.UnitAction.InsertColumn}_${t}`}},fr=class{constructor(t){this.unitId=t,C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertRow),this.id=`${this.type}.${n.UnitAction.InsertRow}_${t}`}},pr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.ManageCollaborator),this.unitId=t,this.id=`${this.type}.${n.UnitAction.ManageCollaborator}_${t}`}},mr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.MoveSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.MoveSheet}_${t}`}},hr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Print),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Print}_${t}`}},gr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.RecoverHistory),this.unitId=t,this.id=`${this.type}.${n.UnitAction.RecoverHistory}_${t}`}},_r=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.RenameSheet),this.unitId=t,this.id=`${this.type}.${n.UnitAction.RenameSheet}_${t}`}},vr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.Share),this.unitId=t,this.id=`${this.type}.${n.UnitAction.Share}_${t}`}},yr=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.View),this.unitId=t,this.id=`${this.type}.${n.UnitAction.View}_${t}`}},br=class{constructor(t){this.unitId=t,C(this,`id`,void 0),C(this,`value`,!0),C(this,`type`,n.UnitObject.Workbook),C(this,`status`,e.PermissionStatus.INIT),C(this,`subType`,n.UnitAction.ViewHistory),this.unitId=t,this.id=`${this.type}.${n.UnitAction.ViewHistory}_${t}`}},xr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Copy),this.id=`${this.type}.${n.UnitAction.Copy}_${t}_${r}`}},Sr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteColumn),this.id=`${this.type}.${n.UnitAction.DeleteColumn}_${t}_${r}`}},Cr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Delete),this.id=`${this.type}.${n.UnitAction.Delete}_${t}_${r}`}},wr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.DeleteRow),this.id=`${this.type}.${n.UnitAction.DeleteRow}_${t}_${r}`}},Tr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Edit),this.id=`${this.type}.${n.UnitAction.Edit}_${t}_${r}`}},Er=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.EditExtraObject),this.id=`${this.type}.${n.UnitAction.EditExtraObject}_${t}_${r}`}},Dr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Filter),this.id=`${this.type}.${n.UnitAction.Filter}_${t}_${r}`}},Or=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertColumn),this.id=`${this.type}.${n.UnitAction.InsertColumn}_${t}_${r}`}},kr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertHyperlink),this.id=`${this.type}.${n.UnitAction.InsertHyperlink}_${t}_${r}`}},Ar=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.InsertRow),this.id=`${this.type}.${n.UnitAction.InsertRow}_${t}_${r}`}},jr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.ManageCollaborator),this.id=`${this.type}.${n.UnitAction.ManageCollaborator}_${t}_${r}`}},Mr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.PivotTable),this.id=`${this.type}.${n.UnitAction.PivotTable}_${t}_${r}`}},Nr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SelectProtectedCells),this.id=`${this.type}.${n.UnitAction.SelectProtectedCells}_${t}_${r}`}},Pr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SelectUnProtectedCells),this.id=`${this.type}.${n.UnitAction.SelectUnProtectedCells}_${t}_${r}`}},Fr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetCellStyle),this.id=`${this.type}.${n.UnitAction.SetCellStyle}_${t}_${r}`}},Ir=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetCellValue),this.id=`${this.type}.${n.UnitAction.SetCellValue}_${t}_${r}`}},Lr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetColumnStyle),this.id=`${this.type}.${n.UnitAction.SetColumnStyle}_${t}_${r}`}},Rr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.SetRowStyle),this.id=`${this.type}.${n.UnitAction.SetRowStyle}_${t}_${r}`}},zr=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.Sort),this.id=`${this.type}.${n.UnitAction.Sort}_${t}_${r}`}},Br=class{constructor(t,r){this.unitId=t,this.subUnitId=r,C(this,`value`,!0),C(this,`type`,n.UnitObject.Worksheet),C(this,`status`,e.PermissionStatus.INIT),C(this,`id`,void 0),C(this,`subType`,n.UnitAction.View),this.id=`${this.type}.${n.UnitAction.View}_${t}_${r}`}};const Vr={id:`sheet.command.set-range-values`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.get(k),u=t.get(e.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 Tr(m,p).id))return!1;let x=new e.ObjectMatrix,S;if(e.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,e.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=B(t,C),T=(0,e.mapObjectMatrix)(C.cellValue,(e,t)=>g.getCellHeight(e,t)||void 0);if(!a.syncExecuteCommand(V.id,C))return!1;let{undos:E,redos:D}=l.onCommandExecute({id:Vr.id,params:C}),{undos:O,redos:A}=l.generateMutationsOfAutoHeight({unitId:m,subUnitId:p,ranges:b,cellHeights:new e.ObjectMatrix(T)});if((0,e.sequenceExecute)([...D,...A],a).result){let t=In(v==null?x.getRange():v,h,g);return o.pushUndoRedo({unitID:m,undoMutations:[{id:V.id,params:w},...E,...O,t],redoMutations:[{id:V.id,params:C},...D,...A,e.Tools.deepClone(t)],id:y}),!0}return!1}};function Hr(t,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c,cellValue:l={}}=n,u=t.get(e.IUniverInstanceService),d=t.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===e.Dimension.COLUMNS){let t=Math.min(s.endRow,u.endRow),r=0;for(let i=s.startRow;i<=t;i++){let t=n.getRow(i),a=t?(0,e.getArrayLength)(t)-1:0;r=Math.max(r,a)}l={startRow:s.startRow,startColumn:s.startColumn,endRow:t,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:l.startColumn+i,endRow:t,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=Yn(t,{unitId:a,subUnitId:o,range:l},{unitId:a,subUnitId:o,range:d},!0);f&&(r.push(...f.redos),i.push(...f.undos))}if(Object.entries(l).length===0)for(let e=s.startRow;e<=s.endRow;e++){l[e]||(l[e]={});for(let t=s.startColumn;t<=s.endColumn;t++)l[e][t]=null}let f={subUnitId:o,unitId:a,cellValue:l},m=B(t,f),{undos:h,redos:g}=d.onCommandExecute({id:Vr.id,params:{...f,range:s}});r.push({id:V.id,params:f},...g),i.push({id:V.id,params:m},...h)}return{redo:r,undo:i}}function Ur(t,n){let r=[],i=[],{unitId:a,subUnitId:o,range:s,shiftDimension:c}=n,l=t.get(e.IUniverInstanceService),u=t.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:gn([s])},p=B(t,d),m=u.onCommandExecute({id:Vr.id,params:d});if(r.push({id:V.id,params:d},...m.redos),i.push(...m.undos,{id:V.id,params:p}),s.startColumn<=l.endColumn||s.startRow<=l.endRow){let u=null,d=null;if(c===e.Dimension.COLUMNS&&s.endColumn<l.endColumn){let t=Math.min(s.endRow,l.endRow),r=0;for(let i=s.startRow;i<=t;i++){let t=n.getRow(i),a=t?(0,e.getArrayLength)(t)-1:0;r=Math.max(r,a)}u={startRow:s.startRow,startColumn:s.endColumn+1,endRow:t,endColumn:r};let i=s.endColumn-s.startColumn+1;d={startRow:s.startRow,startColumn:u.startColumn-i,endRow:t,endColumn:u.endColumn-i}}if(c===e.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 e=Yn(t,{unitId:a,subUnitId:o,range:u},{unitId:a,subUnitId:o,range:d},!0);e&&(r.push(...e.redos),i.push(...e.undos))}}}return{redo:r,undo:i}}function Wr(t,n,r,i,a,o){let{startRow:s,endRow:c,startColumn:l,endColumn:u}=n;if(a===e.Dimension.ROWS){let e=c-s+1;for(let n=r;n>=s;n--)for(let r=l;r<=u;r++){let i=t.getValue(n,r);i==null?t.realDeleteValue(n+e,r):t.setValue(n+e,r,i)}for(let e=c;e>=s;e--)for(let n=l;n<=u;n++)o&&o[e]&&o[e][n]?t.setValue(e,n,o[e][n]):t.realDeleteValue(e,n)}else if(a===e.Dimension.COLUMNS){let e=u-l+1;for(let n=s;n<=c;n++)for(let r=i;r>=l;r--){let i=t.getValue(n,r);i==null?t.realDeleteValue(n,r+e):t.setValue(n,r+e,i)}for(let e=s;e<=c;e++)for(let n=u;n>=l;n--)o&&o[e]&&o[e][n]?t.setValue(e,n,o[e][n]):t.realDeleteValue(e,n)}}function Gr(t,n,r,i,a){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=n,u=s-o+1,d=l-c+1;if(a===e.Dimension.ROWS)for(let e=o;e<=r;e++)for(let n=c;n<=l;n++){let r=t.getValue(e+u,n);r==null?t.realDeleteValue(e,n):t.setValue(e,n,r)}else if(a===e.Dimension.COLUMNS)for(let e=o;e<=s;e++)for(let n=c;n<=i;n++){let r=t.getValue(e,n+d);r==null?t.realDeleteValue(e,n):t.setValue(e,n,r)}}const Kr=`sheet.command.delete-range-move-left`,qr={type:e.CommandType.COMMAND,id:Kr,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.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:e.Dimension.COLUMNS},y=l.onCommandExecute({id:qr.id,params:{range:g}}),{redo:b,undo:x}=Ur(t,v),S=[...(r=y.preRedos)==null?[]:r,...b],C=[...y.undos,...x];if(S.push(...y.redos),S.push(In(g,p,d)),C.push(...(i=y.preUndos)==null?[]:i),(0,e.sequenceExecute)(S,a).result){let t=l.afterCommandExecute({id:qr.id,params:{range:g}});return(0,e.sequenceExecute)(t.redos,a),C.push(...t.undos),S.push(...t.redos),o.pushUndoRedo({unitID:h,undoMutations:C.reverse(),redoMutations:S}),!0}return!1}},Jr=`sheet.command.delete-range-move-up`,Yr={type:e.CommandType.COMMAND,id:Jr,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.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:e.Dimension.ROWS},v=l.onCommandExecute({id:Yr.id,params:{range:g}}),{redo:y,undo:b}=Ur(t,_),x=[...(r=v.preRedos)==null?[]:r,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(In(g,m,h)),S.push(...(i=v.preUndos)==null?[]:i),(0,e.sequenceExecute)(x,a).result){let t=l.afterCommandExecute({id:Yr.id,params:{range:g}});return(0,e.sequenceExecute)(t.redos,a),S.push(...t.undos),x.push(...t.redos),o.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},Xr=`sheet.command.insert-range-move-down`,Zr={type:e.CommandType.COMMAND,id:Xr,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.get(k),u=t.get(e.ErrorService),d=t.get(e.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:e.BooleanNumber.FALSE}))};b.push({id:P.id,params:i});let a=be(t,i);x.push({id:I.id,params:a})}let E={};e.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}=Hr(t,{range:v,subUnitId:h,unitId:m,shiftDimension:e.Dimension.ROWS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:Zr.id,params:{range:v}});if(b.push(...A.redos),b.push(In(v,_,g)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,e.sequenceExecute)(b,a)){let t=l.afterCommandExecute({id:Zr.id,params:{range:v}});return(0,e.sequenceExecute)(t.redos,a),x.push(...t.undos),b.push(...t.redos),o.pushUndoRedo({unitID:m,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},Qr=`sheet.command.insert-range-move-right`,$r={type:e.CommandType.COMMAND,id:Qr,handler:async(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(G),l=t.get(k),u=t.get(e.ErrorService),d=t.get(e.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:e.BooleanNumber.FALSE}))};b.push({id:F.id,params:i});let a=xe(t,i);x.push({id:L.id,params:a})}let E={};e.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}=Hr(t,{range:v,subUnitId:_,unitId:g,shiftDimension:e.Dimension.COLUMNS,cellValue:E});b.push(...D),x.push(...O);let A=l.onCommandExecute({id:$r.id,params:{range:v}});if(b.push(...A.redos),b.push(In(v,m,h)),x.push(...(r=A.preUndos)==null?[]:r),b.unshift(...(i=A.preRedos)==null?[]:i),x.unshift(...A.undos),(0,e.sequenceExecute)(b,a).result){let t=l.afterCommandExecute({id:$r.id,params:{range:v}});return(0,e.sequenceExecute)(t.redos,a),x.push(...t.undos),b.push(...t.redos),o.pushUndoRedo({unitID:g,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},ei=`sheet.command.insert-row`,ti={type:e.CommandType.COMMAND,id:ei,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(k),{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:ti.id,params:n})?r.syncExecuteCommand(ni.id,{range:a,direction:o,unitId:s,subUnitId:c,cellValue:l}):!1}},ni={type:e.CommandType.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(t,n)=>{var r,i,a,o;let s=f(t.get(e.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=e.RANGE_TYPE.ROW;let v=m===e.Direction.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=t.get(e.ICommandService),b=t.get(e.IUndoRedoService),x=t.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:e.BooleanNumber.FALSE})));let w=be(t,S),T=[{id:P.id,params:S}],E=[{id:I.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:ti.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(In(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,e.sequenceExecute)(T,y).result){let t=x.afterCommandExecute({id:ti.id,params:n});return(0,e.sequenceExecute)(t.redos,y),T.push(...t.redos),E.push(...t.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E,redoMutations:T}),!0}return!1}},ri={type:e.CommandType.COMMAND,id:`sheet.command.insert-row-before`,handler:async(t,n)=>{var r;let i=(r=t.get(G).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(t.get(e.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:e.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m},cellValue:Bn(s,d,p,0,m,!0,d-1)};return t.get(e.ICommandService).executeCommand(ti.id,h)}},ii={type:e.CommandType.COMMAND,id:`sheet.command.insert-row-after`,handler:async t=>{var n;let r=(n=t.get(G).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(t.get(e.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:e.Direction.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:p,rangeType:e.RANGE_TYPE.ROW},cellValue:Bn(o,u,d,0,p,!0,i.endRow)};return t.get(e.ICommandService).executeCommand(ti.id,m)}},ai={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(t,n)=>{var r;let i=(r=t.get(G).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(t.get(e.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=Bn(s,d,p,0,m,!0,d-1),g={unitId:c,subUnitId:l,direction:e.Direction.UP,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:e.RANGE_TYPE.ROW},cellValue:h};return t.get(e.ICommandService).executeCommand(ti.id,g)}},oi={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(t,n)=>{var r;let i=(r=t.get(G).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(t.get(e.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:e.Direction.DOWN,range:{startRow:d,endRow:p,startColumn:0,endColumn:m,rangeType:e.RANGE_TYPE.ROW},cellValue:Bn(s,d,p,0,m,!0,a.endRow)};return t.get(e.ICommandService).executeCommand(ti.id,h)}},si=`sheet.command.insert-col`,ci={type:e.CommandType.COMMAND,id:si,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(k),{range:a,direction:o,subUnitId:s,unitId:c,cellValue:l}=n;return await i.beforeCommandExecute({id:ci.id,params:n})?r.syncExecuteCommand(li.id,{range:a,direction:o,unitId:c,subUnitId:s,cellValue:l}):!1}},li={type:e.CommandType.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(t,n)=>{var r,i,a,o;let s=f(t.get(e.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=e.RANGE_TYPE.COLUMN;let v=m===e.Direction.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=t.get(e.ICommandService),b=t.get(e.IUndoRedoService),x=t.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:e.BooleanNumber.FALSE})));let w=xe(t,S),T=[{id:F.id,params:S}],E=[{id:L.id,params:w}];h&&Object.keys(h).length>0&&T.push({id:V.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:ci.id,params:n});if(T.unshift(...(r=D.preRedos)==null?[]:r),T.push(...(i=D.redos)==null?[]:i),T.push(In(p,c,l)),E.unshift(...(a=D.preUndos)==null?[]:a),E.push(...(o=D.undos)==null?[]:o),(0,e.sequenceExecute)(T,y).result){let t=x.afterCommandExecute({id:ci.id,params:n});return(0,e.sequenceExecute)(t.redos,y),T.push(...t.redos),E.push(...t.undos),b.pushUndoRedo({unitID:n.unitId,undoMutations:E.filter(Boolean),redoMutations:T.filter(Boolean)}),!0}return!1}},ui={type:e.CommandType.COMMAND,id:`sheet.command.insert-col-before`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(t.get(e.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:e.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:e.RANGE_TYPE.COLUMN},cellValue:Bn(o,0,p,u,d,!1,u-1)};return t.get(e.ICommandService).executeCommand(ci.id,m)}},di={type:e.CommandType.COMMAND,id:`sheet.command.insert-col-after`,handler:async t=>{let n=t.get(G).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=f(t.get(e.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:e.Direction.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:Bn(a,0,d,l,u,!1,r.endColumn)};return t.get(e.ICommandService).executeCommand(ci.id,p)}},fi={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(t.get(e.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:e.Direction.LEFT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p,rangeType:e.RANGE_TYPE.COLUMN},cellValue:Bn(o,0,p,u,d,!1,u-1)};return t.get(e.ICommandService).executeCommand(ci.id,m)}},pi={type:e.CommandType.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i;if((r==null?void 0:r.length)===1)i=r[0].range;else return!1;let a=f(t.get(e.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:e.Direction.RIGHT,range:{startColumn:u,endColumn:d,startRow:0,endRow:p},cellValue:Bn(o,0,p,u,d,!1,i.endColumn)};return t.get(e.ICommandService).executeCommand(ci.id,m)}},mi=(0,e.throttle)((e,t,n,r)=>{if(!r.disposed){let i=In(e,t,n);r.executeCommand(i.id,i.params)}},300),hi=`sheet.command.remove-row`,gi={type:e.CommandType.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(t,n)=>{var r;if(!n)return!1;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=t.get(k),{range:c,unitId:l,subUnitId:u}=n,d=xn([c],t,l,u).reverse(),p=[],m=[];d.forEach(e=>{let t=[],n=[],r={unitId:l,subUnitId:u,range:e},i=De(r,o),a={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(e.startRow,e.endRow,0,o.getColumnCount()-1).getMatrix()};n.push({id:I.id,params:r}),t.push({id:P.id,params:i}),t.push({id:V.id,params:a}),m.push(...n),p.unshift(...t)});let h=s.onCommandExecute({id:hi,params:{range:c}}),g=t.get(e.ICommandService);if((0,e.sequenceExecute)([...(r=h.preRedos)==null?[]:r,...m,...h.redos],g).result){var _,v;mi(c,a,o,g);let n=s.afterCommandExecute({id:hi,params:{range:c}});return(0,e.sequenceExecute)(n.redos,g),t.get(e.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}},_i={type:e.CommandType.COMMAND,id:hi,handler:async(t,n)=>{var r;let i=t.get(G),a=t.get(k),o=t.get(e.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(t.get(e.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:_i.id,params:{range:s}})?o.syncExecuteCommand(gi.id,{range:s,unitId:d,subUnitId:u}):!1}},vi=`sheet.command.remove-col`,yi={type:e.CommandType.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(t,n)=>{var r;if(!n)return!1;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,worksheet:o}=i,s=t.get(k),{range:c,unitId:l,subUnitId:u}=n,d={unitId:l,subUnitId:u,range:c},p=Oe(t,d),m={unitId:l,subUnitId:u,cellValue:o.getCellMatrix().getSlice(0,o.getRowCount()-1,c.startColumn,c.endColumn).getMatrix()},h=s.onCommandExecute({id:vi,params:{range:c}}),g=t.get(e.ICommandService);if((0,e.sequenceExecute)([...(r=h.preRedos)==null?[]:r,{id:L.id,params:d},...h.redos],g).result){var _,v;mi(c,a,o,g);let n=s.afterCommandExecute({id:vi,params:{range:c}});return(0,e.sequenceExecute)(n.redos,g),t.get(e.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:F.id,params:p},{id:V.id,params:m},...h.undos,...n.undos],redoMutations:[...(v=h.preRedos)==null?[]:v,{id:L.id,params:d},...h.redos,...n.redos]}),!0}return!1}},bi={type:e.CommandType.COMMAND,id:vi,handler:async(t,n)=>{var r;let i=t.get(G),a=t.get(k),o=t.get(e.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(t.get(e.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:bi.id,params:{range:s}})?o.syncExecuteCommand(yi.id,{range:s,unitId:d,subUnitId:u}):!1}},xi=(t,n)=>{let r=t.get(e.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}},Si={id:`sheet.mutation.remove-sheet`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService),{subUnitId:i,unitId:a}=n,o=r.getUniverSheetInstance(a);return o?o.removeSheet(i):!1}};function Ci(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function wi(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}const Ti=`sheet.command.move-rows`,Ei={id:Ti,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(G),{fromRange:{startRow:o},toRange:{startRow:s},range:c}=n,l=c?[ki(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(t=>t.range.rangeType===e.RANGE_TYPE.ROW&&t.range.startRow<=o&&o<=t.range.endRow);if((u==null?void 0:u.length)!==1)return!1;let d=t.get(k),p=f(t.get(e.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=t.get(e.ErrorService),y=t.get(e.LocaleService),b=u[0].range,x=u[0].primary,S=Nn(b,h,!1);if(!e.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(Ci(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=Ce(t,w),E=t.get(e.ICommandService),D=d.onCommandExecute({id:Ei.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:we.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:we.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:W.MOVE_END,selections:[{range:n,primary:K(n,h),style:null}]},i={unitId:g,subUnitId:_,type:W.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:q.id,params:r}),A.push({id:q.id,params:i})}if(O.push(...D.redos),A.push(...D.undos),(0,e.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Ei.id,params:n});return(0,e.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),t.get(e.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}},Di=`sheet.command.move-cols`,Oi={id:Di,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(G),{fromRange:{startColumn:o},toRange:{startColumn:s},range:c}=n,l=c?[ki(c)]:a.getCurrentSelections(),u=l==null?void 0:l.filter(t=>t.range.rangeType===e.RANGE_TYPE.COLUMN&&t.range.startColumn<=o&&o<=t.range.endColumn);if((u==null?void 0:u.length)!==1)return!1;let d=t.get(k),p=f(t.get(e.IUniverInstanceService),n);if(!p)return!1;let{workbook:m,worksheet:h}=p,g=m.getUnitId(),_=h.getSheetId(),v=t.get(e.ErrorService),y=t.get(e.LocaleService),b=u[0].range,x=u[0].primary,S=Nn(b,h,!1);if(!e.Rectangle.equals(b,S))return v.emit(y.t(`sheets.info.partOfCell`)),!1;if(wi(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=Te(t,w),E=t.get(e.ICommandService),D=d.onCommandExecute({id:Oi.id,params:n}),O=[...(r=D.preRedos)==null?[]:r,{id:Ee.id,params:w}],A=[...(i=D.preUndos)==null?[]:i,{id:Ee.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:W.MOVE_END,selections:[{range:t,primary:K(t,h),style:null}]},r={unitId:g,subUnitId:_,type:W.MOVE_END,selections:[{range:b,primary:x,style:null}]};O.push({id:q.id,params:n}),A.push({id:q.id,params:r})}if(O.push(...D.redos),A.push(...D.undos),(0,e.sequenceExecute)(O,E).result){let r=d.afterCommandExecute({id:Oi.id,params:n});return(0,e.sequenceExecute)(r.redos,E),O.push(...r.redos),A.push(...r.undos),t.get(e.IUndoRedoService).pushUndoRedo({unitID:g,undoMutations:A,redoMutations:O}),!0}return!1}};function ki(e){return{range:e,primary:null,style:null}}let Ai=class extends e.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$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._initWorkbookSkeleton(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(e.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())}};Ai=T([w(0,(0,e.Inject)(e.Injector)),w(1,(0,e.Inject)(e.IUniverInstanceService))],Ai);function ji(t,n){let r=new e.ObjectMatrix;return t.map(t=>e.Range.transformRange(t,n)).forEach(t=>{e.Range.foreach(t,(e,t)=>{let i=n.getCellHeight(e,t);i&&r.setValue(e,t,i)})}),r}function Mi(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 Ni(e){let t=0;return e.forEach(()=>{t++}),t}const Pi=`sheet.command.reorder-range`,Fi={id:Pi,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let{subUnitId:a,unitId:o,range:s,order:c}=n,l=t.get(e.ICommandService),u={id:Ae.id,params:{unitId:o,subUnitId:a,order:c,range:s}},d={id:Ae.id,params:ke(u.params)},f=t.get(k),p=f.onCommandExecute({id:Fi.id,params:n}),m=[...(r=p.preRedos)==null?[]:r,u,...p.redos],h=[...(i=p.preUndos)==null?[]:i,d,...p.undos],g=(0,e.sequenceExecute)(m,l),{suitableRanges:_,remainingRanges:v}=Mi([s],t.get(Ai).getSkeleton(o,a)),{undos:y,redos:b}=f.generateMutationsOfAutoHeight({unitId:o,subUnitId:a,ranges:[s],autoHeightRanges:_,lazyAutoHeightRanges:v}),x=f.afterCommandExecute({id:Fi.id,params:n});return g.result?((0,e.sequenceExecute)([...x.redos,...b],l),t.get(e.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[...h,...x.undos,...y],redoMutations:[...m,...x.redos,...b]}),!0):!1}},J={MoveRangeCommandId:Gn,InsertRowCommandId:ei,InsertColCommandId:si,RemoveColCommandId:vi,RemoveRowCommandId:hi,DeleteRangeMoveLeftCommandId:Kr,DeleteRangeMoveUpCommandId:Jr,InsertRangeMoveDownCommandId:Xr,InsertRangeMoveRightCommandId:Qr,MoveColsCommandId:Di,MoveRowsCommandId:Ti,ReorderRangeCommandId:Pi};let 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}({});const Ii=t=>{let n={...t},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===e.RANGE_TYPE.COLUMN||r)&&(n.startRow=0,n.endRow=e.MAX_ROW_COUNT-1),(n.rangeType===e.RANGE_TYPE.ROW||i)&&(n.startColumn=0,n.endColumn=e.MAX_COLUMN_COUNT-1),n.rangeType===e.RANGE_TYPE.ALL&&(n.startColumn=0,n.endColumn=e.MAX_COLUMN_COUNT-1,n.startRow=0,n.endRow=e.MAX_ROW_COUNT-1),n},Li=t=>{let n=t.rangeType;return t.rangeType===e.RANGE_TYPE.COLUMN?n=e.RANGE_TYPE.ROW:t.rangeType===e.RANGE_TYPE.ROW&&(n=e.RANGE_TYPE.COLUMN),{startRow:t.startColumn,endRow:t.endColumn,startColumn:t.startRow,endColumn:t.endRow,rangeType:n}},Ri=(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)}},zi=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Ii(n),a=Ii(r),o=Ii(t),s=Ri({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}]},Bi=(t,n)=>{let{fromRange:r,toRange:i}=t.params||{};if(!r||!i)return[n];let a=r.startRow,o=r.endRow-r.startRow+1,s=i.startRow,c=new e.ObjectMatrix;return e.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveRows(a,o,s),(0,e.queryObjectMatrix)(c,e=>e===1)},Vi=(t,n)=>{let{range:r,order:i}=t.params||{};if(!r||!i)return[n];let a=new e.ObjectMatrix;e.Range.foreach(n,(e,t)=>{a.setValue(e,t,1)});let o=new e.ObjectMatrix;return e.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,e.queryObjectMatrix)(a,e=>e===1)},Hi=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Ii(n),a=Ii(r),o=Ii(t),s=Ri({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}]},Ui=(t,n)=>{let{fromRange:r,toRange:i}=t.params||{};if(!r||!i)return[n];let a=r.startColumn,o=r.endColumn-r.startColumn+1,s=i.startColumn,c=new e.ObjectMatrix;return e.Range.foreach(n,(e,t)=>{c.setValue(e,t,1)}),c.moveColumns(a,o,s),(0,e.queryObjectMatrix)(c,e=>e===1)},Wi=(t,n)=>{var r,i;let a=(r=t.params)==null?void 0:r.toRange,o=(i=t.params)==null?void 0:i.fromRange;if(!a||!o)return[];let s=[];if(e.Rectangle.contains(a,n)&&s.push({type:Y.Delete}),e.Rectangle.contains(o,n)){s.push({type:Y.Delete});let t=e.Rectangle.getRelativeRange(n,o),r=e.Rectangle.getPositionRange(t,a);return[{type:Y.Set,range:r}]}return s},Gi=(t,n)=>{var r,i;let a=(r=t.params)==null?void 0:r.toRange,o=(i=t.params)==null?void 0:i.fromRange;if(!a||!o||!e.Rectangle.intersects(o,n)&&!e.Rectangle.intersects(a,n))return[n];if(e.Rectangle.contains(o,n)){let t=e.Rectangle.getRelativeRange(n,o);return[e.Rectangle.getPositionRange(t,a)]}let s=new e.ObjectMatrix;e.Range.foreach(n,(e,t)=>{s.setValue(e,t,1)});let c=new e.ObjectMatrix,l=e.Rectangle.getIntersects(o,n);l&&e.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&&e.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,e.queryObjectMatrix)(s,e=>e===1)},Ki=(t,n)=>{let r=Ii(t),i=Ii(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 t=e.Rectangle.getIntersects(i,r);if(t)return{step:0,length:-a(t)}}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 t=e.Rectangle.getIntersects(i,r);if(t){let e=-a(t);return{step:-(a(r)-a(t)),length:e}}}if(i.startColumn>r.endColumn)return{step:-a(r),length:0}}return{step:0,length:0}},qi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Ki(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},Ji=(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=Ki(Li(e),Li(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},Yi=(t,n)=>{let{range:r,order:i}=t.params||{};if(!r||!i)return[];if(e.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[]},Xi=(e,t)=>{let n=Ii(e),r=Ii(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 Zi(t,n,r){let i=[];if(e.Rectangle.contains(n,r)&&i.push({type:Y.Delete}),e.Rectangle.contains(t,r)){i.push({type:Y.Delete});let a=e.Rectangle.getRelativeRange(r,t),o=e.Rectangle.getPositionRange(a,n);return[{type:Y.Set,range:o}]}return i}const Qi=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Xi(Li(r),Li(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},$i=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Xi(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},ea=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=Xi(Li(r),Li(t));return i.push({type:Y.VerticalMove,step:a,length:o}),i},ta=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.subtract(n,o),c=e.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new e.ObjectMatrix;return s.forEach(t=>{e.Range.foreach(t,(e,t)=>{l.setValue(e,t,1)})}),c&&e.Range.foreach(c,(e,t)=>{l.setValue(e+a,t,1)}),(0,e.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}=Xi(r,t);return i.push({type:Y.HorizontalMove,step:a,length:o}),i},ra=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.subtract(n,o),c=e.Rectangle.getIntersects(o,n);if(!c)return[n];let l=new e.ObjectMatrix;return s.forEach(t=>{e.Range.foreach(t,(e,t)=>{l.setValue(e,t,1)})}),c&&e.Range.foreach(c,(e,t)=>{l.setValue(e,t+a,1)}),(0,e.queryObjectMatrix)(l,e=>e===1)},ia=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Ki(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},aa=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.getIntersects(i,n),c=e.Rectangle.subtract(n,a),l=e.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new e.ObjectMatrix;return l&&e.Range.foreach(l,(e,t)=>{u.setValue(e,t-o,1)}),s&&e.Range.foreach(s,(e,t)=>{u.setValue(e,t-o,0)}),c.forEach(t=>{e.Range.foreach(t,(e,t)=>{u.setValue(e,t,1)})}),(0,e.queryObjectMatrix)(u,e=>e===1)},oa=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=Ki(Li(r),Li(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},sa=(t,n)=>{var r;let i=(r=t.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=e.Rectangle.getIntersects(i,n),c=e.Rectangle.subtract(n,a),l=e.Rectangle.getIntersects(a,n);if(!s&&!l)return[n];let u=new e.ObjectMatrix;return l&&e.Range.foreach(l,(e,t)=>{u.setValue(e-o,t,1)}),s&&e.Range.foreach(s,(e,t)=>{u.setValue(e-o,t,0)}),c.forEach(t=>{e.Range.foreach(t,(e,t)=>{u.setValue(e,t,1)})}),(0,e.queryObjectMatrix)(u,e=>e===1)},ca=(t,n)=>{var r;let i=(0,e.mergeIntervals)(((r=t.ranges)==null?[t.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}]},la=(t,n)=>{let r=t.params,i=r.range.startRow,a=r.range.endRow-r.range.startRow+1;if(r.direction===e.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]},ua=(t,n)=>{let r=t.params,i=r.range.startColumn,a=r.range.endColumn-r.range.startColumn+1;if(r.direction===e.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]},da=(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},fa=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:n=ia(t,e);break;case J.DeleteRangeMoveUpCommandId:n=oa(t,e);break;case J.InsertColCommandId:n=$i(t,e);break;case J.InsertRangeMoveDownCommandId:n=ea(t,e);break;case J.InsertRangeMoveRightCommandId:n=na(t,e);break;case J.InsertRowCommandId:n=Qi(t,e);break;case J.MoveColsCommandId:n=Hi(t,e);break;case J.MoveRangeCommandId:n=Wi(t,e);break;case J.MoveRowsCommandId:n=zi(t,e);break;case J.RemoveColCommandId:n=qi(t,e);break;case J.RemoveRowCommandId:n=Ji(t,e);break;case J.ReorderRangeCommandId:n=Yi(t,e);break}return da(n,e)},pa=(t,n,r)=>[qr.id,Yr.id].includes(n.id)||_a(n,r).some(n=>e.Rectangle.intersects(n,t))?fa(t,n):t,ma=(e,t)=>{let n=[];switch(t.id){case J.DeleteRangeMoveLeftCommandId:return aa(t,e);case J.DeleteRangeMoveUpCommandId:return sa(t,e);case J.InsertRangeMoveDownCommandId:return ta(t,e);case J.InsertRangeMoveRightCommandId:return ra(t,e);case J.InsertColCommandId:return ua(t,e);case J.InsertRowCommandId:return la(t,e);case J.MoveColsCommandId:return Ui(t,e);case J.MoveRangeCommandId:return Gi(t,e);case J.MoveRowsCommandId:return Bi(t,e);case J.ReorderRangeCommandId:return Vi(t,e);case J.RemoveColCommandId:n=qi(t,e);break;case J.RemoveRowCommandId:return ca(t.params,e)}let r=da(n,e);return r?[r]:[]},ha=(t,n,r)=>[qr.id,Yr.id,Zr.id,`sheet.command.insert-range-move-right`].includes(n.id)||_a(n,r).some(n=>e.Rectangle.intersects(n,t))?ma(t,n):t;function ga(t,n){let{id:r,params:i}=n,a={length:0,step:0,type:Y.Unknown};switch(r){case Si.id:a.type=Y.Delete;break;case we.id:a=Ri({start:i.sourceRange.startRow,end:i.sourceRange.endRow},{start:i.targetRange.startRow,end:i.targetRange.endRow},{start:t.startRow,end:t.endRow}),a.type=Y.VerticalMove;break;case Ee.id:a=Ri({start:i.sourceRange.startColumn,end:i.sourceRange.endColumn},{start:i.targetRange.startColumn,end:i.targetRange.endColumn},{start:t.startColumn,end:t.endColumn}),a.type=Y.HorizontalMove;break;case L.id:a=Ki(i.range,t),a?a.type=Y.HorizontalMove:a={step:0,length:0,type:Y.Delete};break;case I.id:a=Ki(Li(i.range),Li(t)),a?a.type=Y.VerticalMove:a={step:0,length:0,type:Y.Delete};break;case P.id:a=Xi(Li(i.range),Li(t)),a.type=Y.VerticalMove;break;case F.id:a=Xi(i.range,t),a.type=Y.HorizontalMove;break;case Se.id:a=Zi(i.fromRange||new e.ObjectMatrix(i.from).getRange(),i.toRange||new e.ObjectMatrix(i.to).getRange(),t);break;default:break}return a?da(Array.isArray(a)?a:[a],t):t}function _a(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 va(t){switch(t.id){case Ee.id:{let e=t.params;return[e.sourceRange,{...e.targetRange,startColumn:e.targetRange.startColumn-.5,endColumn:e.targetRange.startColumn-.5}]}case we.id:{let e=t.params;return[e.sourceRange,{...e.targetRange,startRow:e.targetRange.startRow-.5,endRow:e.targetRange.startRow-.5}]}case Se.id:{let n=t.params;return[new e.ObjectMatrix(n.from.value).getRange(),new e.ObjectMatrix(n.to.value).getRange()]}case F.id:{let e=t.params.range;return[{...e,startColumn:e.startColumn-.5,endColumn:e.startColumn-.5}]}case P.id:{let e=t.params.range;return[{...e,startRow:e.startRow-.5,endRow:e.startRow-.5}]}case L.id:return[t.params.range];case I.id:return[t.params.range];default:break}}function ya(t,n){let r=t.get(e.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}}}}const ba=(0,e.createInterceptorKey)(`MERGE_REDO`),xa=(0,e.createInterceptorKey)(`MERGE_UNDO`);var Sa=class extends e.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(t){var n,r;if(((n=t.params)==null?void 0:n.unitId)!==this._unitId)return;if(t.id===Se.id){let e=t.params;if(e.from.subUnitId!==this._subUnitId||e.to.subUnitId!==this._subUnitId)return}else if(((r=t.params)==null?void 0:r.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(t.id===Si.id)return;let n=va(t);if(n!=null&&n.some(t=>e.Rectangle.intersects(t,this._range)))return}let i=ga(this._range,t);if(i&&e.Rectangle.equals(i,this._range))return!1;let a=this._range;this._range=i,this._callback(a,i)}};let Ca=class extends e.Disposable{constructor(t,n,r,i){super(),this._commandService=t,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,C(this,`interceptor`,new e.InterceptorManager({MERGE_REDO:ba,MERGE_UNDO:xa})),C(this,`_watchRanges`,new Set),C(this,`_refRangeManagerMap`,new Map),C(this,`_serializer`,Da()),C(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:t=>{let n=(()=>{switch(t.id){case J.MoveColsCommandId:{let e=t.params,n=f(this._univerInstanceService,e);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(e.fromRange.startColumn,e.toRange.startColumn);return this._checkRange([{...e.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case J.MoveRowsCommandId:{let e=t.params,n=f(this._univerInstanceService,e);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(e.fromRange.startRow,e.toRange.startRow);return this._checkRange([{...e.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case J.MoveRangeCommandId:{var n,r;let e=t.params,i=f(this._univerInstanceService,{unitId:e.fromUnitId,subUnitId:e.fromSubUnitId}),a=f(this._univerInstanceService,{unitId:(n=e.toUnitId)==null?e.fromUnitId:n,subUnitId:(r=e.toSubUnitId)==null?e.fromSubUnitId:r});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([e.fromRange,e.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([e.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([e.toRange],a.unitId,a.subUnitId)),o}case J.InsertRowCommandId:{let n=t.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:e.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case J.InsertColCommandId:{let n=t.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:e.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case J.RemoveRowCommandId:{let n=t.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:e.RANGE_TYPE.ROW};return this._checkRange([s],a,o)}case J.RemoveColCommandId:{let n=t.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:e.RANGE_TYPE.COLUMN};return this._checkRange([s],a,o)}case J.DeleteRangeMoveUpCommandId:case J.InsertRangeMoveDownCommandId:{let e=t.params,n=f(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...e.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case J.DeleteRangeMoveLeftCommandId:case J.InsertRangeMoveRightCommandId:{let e=t.params,n=f(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...e.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case J.ReorderRangeCommandId:{let e=t.params,n=f(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=e,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((e,n)=>{let r=n(t);return e.push(r),e},[]).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`,(t,n,r)=>{let i=Ea(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};t.some(t=>e.Rectangle.intersects(t,s))&&i&&i.forEach(e=>{n.add(e)})}),[...n]}return[]}),C(this,`registerRefRange`,(t,n,r,i)=>{let a=r||wa(this._univerInstanceService),o=i||Ta(this._univerInstanceService);if(!a||!o)return(0,e.toDisposable)(()=>{});let s=Ea(a,o),c=this._serializer.serialize(t),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,e.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(t,n,r,i,a){let o;this._watchRanges.size===0&&(o=this._commandService.onCommandExecuted(t=>{if(t.type!==e.CommandType.MUTATION)return!1;for(let e of this._watchRanges)e.onMutation(t)}));let s=new Sa(t,n,r,i,a);this._watchRanges.add(s);let c=(0,e.toDisposable)(()=>{this._watchRanges.delete(s),this._watchRanges.size===0&&(o==null||o.dispose(),o=null)}),l=this.disposeWithMe(c);return(0,e.toDisposable)(()=>{l.dispose(),c.dispose()})}};Ca=T([w(0,e.ICommandService),w(1,(0,e.Inject)(k)),w(2,(0,e.Inject)(e.IUniverInstanceService)),w(3,(0,e.Inject)(G))],Ca);function wa(t){var n;return(n=t.getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId()}function Ta(t){var n;return(n=t.getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET))==null||(n=n.getActiveSheet())==null?void 0:n.getSheetId()}function Ea(e,t){return`${e}_${t}`}function Da(){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}`},``)}}const Oa=[F.id,P.id,L.id,I.id],ka=[we.id,Ee.id];function Aa(t,n){let r=t;if(n!==void 0){let t=[];for(let i=0;i<r.length;i++){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=r[i];if(n===e.Dimension.ROWS)for(let e=a;e<=o;e++){let n={startRow:e,endRow:e,startColumn:s,endColumn:c};t.push(n)}else if(n===e.Dimension.COLUMNS)for(let e=s;e<=c;e++){let n={startRow:a,endRow:o,startColumn:e,endColumn:e};t.push(n)}}r=t}return r}const ja=(0,e.createInterceptorKey)(`mergeCellPermissionCheck`);let Ma=class extends e.Disposable{constructor(t,n,r,i,a,o){super(),this._commandService=t,this._refRangeService=n,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=o,C(this,`disposableCollection`,new e.DisposableCollection),C(this,`interceptor`,new e.InterceptorManager({MERGE_CELL_INTERCEPTOR_CHECK:ja})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let t=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case jn.id:case Mn.id:{var r;let n=t._univerInstanceService.getCurrentUnitForType(e.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=t._selectionManagerService.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(c&&c.length>0&&c.some(t=>s.some(n=>e.Rectangle.intersects(n,t)))){let e={unitId:i,subUnitId:o,ranges:c},n=R(t._injector,e);return{redos:[{id:z.id,params:e}],undos:[{id:h.id,params:n}]}}}}return{redos:[],undos:[]}}}),this._sheetInterceptorService.interceptRanges({getMutations:({unitId:t,subUnitId:n,ranges:r})=>{let i=[],a=[],o={redos:i,undos:a};if(!r||!r.length)return o;let s=f(this._univerInstanceService,{unitId:t,subUnitId:n});if(!s)return o;let{worksheet:c}=s,l=c.getMergeData().filter(t=>r.some(n=>e.Rectangle.intersects(t,n)));return l.length?(i.push({id:z.id,params:{unitId:t,subUnitId:n,ranges:l}}),a.push({id:h.id,params:{unitId:t,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 ti.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case ci.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case bi.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case _i.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case Kn.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case $r.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case Zr.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case Yr.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case qr.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let n=(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(e=>{if(e.id===Pt.id){let t=e.params,r=t.subUnitId,i=t.unitId;if(!r||!i)return;n(i,r)}if(e.id===h.id){let t=e.params,r=t.subUnitId,i=t.unitId;if(!r||!i)return;n(t.unitId,t.subUnitId)}})),this._univerInstanceService.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,t.first)(e=>!!e)).subscribe(e=>{let t=e.getActiveSheet();t&&n(e.getUnitId(),t.getSheetId())})}_handleMoveRowsCommand(e,t,n){let r=Na(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Pa(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=da(zi({id:J.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:z.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=Na(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Pa(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=da(Hi({id:J.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=R(this._injector,o),f=m(this._injector,s);return{preRedos:[{id:z.id,params:o}],redos:[{id:h.id,params:s}],preUndos:[{id:z.id,params:f}],undos:[{id:h.id,params:d}]}}_handleMoveRangeCommand(t,n,r){var i,a;let o=Na(this._univerInstanceService,n);if(!o)return this._handleNull();let s=(i=t.fromSubUnitId)==null?r:i,c=(a=t.toSubUnitId)==null?s:a,l=Pa(o,s),u=Pa(o,c);if(!l||!u)return this._handleNull();let d=l.getMergeData().filter(n=>e.Rectangle.intersects(n,t.fromRange)),f=u.getMergeData().filter(n=>e.Rectangle.intersects(n,t.toRange)),p=Aa(d.map(n=>e.Rectangle.getRelativeRange(n,t.fromRange)).map(n=>e.Rectangle.getPositionRange(n,t.toRange))).filter(t=>!u.getMergeData().some(n=>e.Rectangle.equals(t,n))),m=[],g=[];return r===s&&d.length>0&&(m.push({id:z.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:z.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:z.id,params:{unitId:n,subUnitId:c,ranges:p}})),m.length===0?this._handleNull():{redos:m,undos:g}}_handleInsertRowCommand(t,n,r){let i=Na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Pa(i,r);if(!a)return this._handleNull();let{range:o}=t,{startRow:s,endRow:c}=o,l=e.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=e.Tools.deepClone(a.getMergeData()).reduce((e,t)=>{if(s>t.startRow&&s<=t.endRow){let n=c-s+1;t.endRow+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{redos:[{id:z.id,params:d},{id:h.id,params:p}],undos:[{id:z.id,params:g},{id:h.id,params:f}]}}_handleInsertColCommand(t,n,r){let{range:i}=t,a=Na(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Pa(a,r);if(!o)return this._handleNull();let{startColumn:s,endColumn:c}=i,l=e.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=e.Tools.deepClone(o.getMergeData()).reduce((e,t)=>{if(s>t.startColumn&&s<=t.endColumn){let n=c-s+1;t.endColumn+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{redos:[{id:z.id,params:d},{id:h.id,params:p}],undos:[{id:z.id,params:g},{id:h.id,params:f}]}}_handleRemoveColCommand(t,n,r){let i=Na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Pa(i,r);if(!a)return this._handleNull();let{range:o}=t,{startColumn:s,endColumn:c}=o,l=e.Tools.deepClone(a.getMergeData()).reduce((t,n)=>(e.Rectangle.intersects(o,n)&&t.push(n),t),[]);if(l.length===0)return this._handleNull();let u=e.Tools.deepClone(a.getMergeData()).reduce((t,n)=>{if(e.Rectangle.intersects(o,n)){if(s<=n.startColumn&&c>=n.endColumn)return t;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)&&t.push(n)}return t},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:z.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleRemoveRowCommand(t,n,r){let{range:i}=t,a=Na(this._univerInstanceService,n);if(!a)return this._handleNull();let o=Pa(a,r);if(!o)return this._handleNull();let{startRow:s,endRow:c}=i,l=e.Tools.deepClone(o.getMergeData()).reduce((t,n)=>(e.Rectangle.intersects(i,n)&&t.push(n),t),[]);if(l.length===0)return this._handleNull();let u=e.Tools.deepClone(o.getMergeData()).reduce((t,n)=>{if(e.Rectangle.intersects(i,n)){if(s<=n.startRow&&c>=n.endRow)return t;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)&&t.push(n)}return t},[]),d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}];return{preUndos:[{id:z.id,params:g}],undos:[{id:h.id,params:f}],preRedos:_,redos:v}}_handleInsertRangeMoveRightCommand(t,n,r){let i=Na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Pa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},t))){let e=a-i+1;u.push({startRow:t.startRow,startColumn:t.startColumn+e,endRow:t.endRow,endColumn:t.endColumn+e})}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:h.id,params:p}],preUndos:[{id:z.id,params:g}],undos:[{id:h.id,params:f}]}}_handleInsertRangeMoveDownCommand(t,n,r){let i=Na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Pa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},t))){let e=a-n+1;u.push({startRow:t.startRow+e,startColumn:t.startColumn,endRow:t.endRow+e,endColumn:t.endColumn})}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}],y=[{id:z.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveUpCommand(t,n,r){let i=Na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Pa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxRows()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,startColumn:r,endColumn:i,endRow:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:r,endRow:s,endColumn:i},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:r,endRow:s,endColumn:i},t))){let r=a-n+1,i=e.Rectangle.moveVertical(t,-r);u.push(i)}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p),_=[{id:z.id,params:d}],v=[{id:h.id,params:p}],y=[{id:z.id,params:g}];return{redos:v,undos:[{id:h.id,params:f}],preRedos:_,preUndos:y}}_handleDeleteRangeMoveLeftCommand(t,n,r){let i=Na(this._univerInstanceService,n);if(!i)return this._handleNull();let a=Pa(i,r);if(!a)return this._handleNull();let o=t.range,s=a.getMaxColumns()-1,c=a.getMergeData(),l=[],u=[];c.forEach(t=>{let{startRow:n,endRow:r,startColumn:i,endColumn:a}=o;if(e.Rectangle.intersects({startRow:n,startColumn:i,endRow:r,endColumn:s},t)&&(l.push(t),e.Rectangle.contains({startRow:n,startColumn:i,endRow:r,endColumn:s},t))){let e=a-i+1;u.push({startRow:t.startRow,startColumn:t.startColumn-e,endRow:t.endRow,endColumn:t.endColumn-e})}});let d={unitId:n,subUnitId:r,ranges:l},f=R(this._injector,d),p={unitId:n,subUnitId:r,ranges:u},g=m(this._injector,p);return{preRedos:[{id:z.id,params:d}],redos:[{id:h.id,params:p}],undos:[{id:h.id,params:f}],preUndos:[{id:z.id,params:g}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(ka.includes(t.id)){if(!t.params)return;let n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;let r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=t.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(t=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f}=t;e.Rectangle.intersects(t,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)),t.startRow===t.endRow&&t.startColumn===t.endColumn||d.push({startRow:n,endRow:r,startColumn:a,endColumn:u,rangeType:f})}),r.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=t.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}if(Oa.includes(t.id)){let e=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!e)return;let n=e.getSheetBySheetId(t.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=t.params;if(!i)return;let{range:a}=i,o=t.id.includes(`row`),s=t.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}=t.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};Ma=T([w(0,(0,e.Inject)(e.ICommandService)),w(1,(0,e.Inject)(Ca)),w(2,(0,e.Inject)(e.IUniverInstanceService)),w(3,(0,e.Inject)(e.Injector)),w(4,(0,e.Inject)(k)),w(5,(0,e.Inject)(G))],Ma);function Na(t,n){return n?t.getUniverSheetInstance(n):t.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET)}function Pa(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}const Fa=(t,n,r)=>{let i=t.get(G).getCurrentSelections(),{value:a,selections:o,unitId:s,subUnitId:c}=n;if(i&&i.length>0){let t=i[(i==null?void 0:i.length)-1].primary;if(t){let{actualColumn:n,actualRow:l}=t,{startRow:u,startColumn:d,endRow:f,endColumn:p}=o[o.length-1];if(a===e.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===e.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:W.ONLY_SET,selections:h};return{id:q.id,params:g}}return null}return null},Ia=(e,t)=>{let n=e.get(G).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:W.ONLY_SET,selections:[...n]};return{id:q.id,params:e}}return null},La={type:e.CommandType.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(t,n)=>{var r;let i=t.get(G),a=t.get(e.ICommandService),o=t.get(e.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(t.get(e.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(t=>s.some(n=>e.Rectangle.intersects(n,t)));if(!m.length)return!1;let g=R(t,p),_=i.getCurrentSelections(),v=e.Tools.deepClone(_),y=e.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:Ra(d,m).getMatrix()},x=B(t,b),S=[{id:z.id,params:g},{id:V.id,params:b},{id:q.id,params:{unitId:u,subUnitId:l,selections:y,type:W.ONLY_SET}}],C=[{id:h.id,params:g},{id:V.id,params:x},{id:q.id,params:{unitId:u,subUnitId:l,selections:v,type:W.ONLY_SET}}];return(0,e.sequenceExecute)(S,a)?(o.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function Ra(t,n){let r=new e.ObjectMatrix;return n.forEach(e=>{let{startRow:n,startColumn:i,endColumn:a,endRow:o}=e,s=t.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 za=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function Ba(e,t){return t.some(t=>Va(e,t))}function Va(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 Ha(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:Ua(n,r).getData()},c=B(e,s);i.push({id:V.id,params:c}),a.push({id:V.id,params:s})}),{undos:i,redos:a}}function Ua(t,n){let{startRow:r,startColumn:i,endColumn:a,endRow:o}=n,s=t.getMatrixWithMergedCells(r,i,o,a,e.CellModeEnum.Raw),c=new e.ObjectMatrix,l=null;return s.forValue((e,n,a)=>{if(a&&e>=r&&n>=i){var o,s;!l&&t.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(e,n,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),c.setValue(r,i,l),c}const Wa={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{worksheet:i}=r,{unitId:a,subUnitId:o,selections:s}=n,c=t.get(e.ICommandService),l=t.get(e.IUndoRedoService),u=Aa(s,n.value),d=Ba(i,u);if(d&&!n.defaultMerge){let n=t.get(e.IConfirmService),r=t.get(e.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:e.Tools.deepClone(u)},v={unitId:a,subUnitId:o,ranges:e.Tools.deepClone(u)},y=R(t,_),b=m(t,v);if(y.ranges.length>0&&p.push({id:z.id,params:y}),p.push({id:h.id,params:v}),g.push({id:z.id,params:b}),y.ranges.length>0&&g.push({id:h.id,params:y}),d){let e=Ha(t,a,i,u);p.unshift(...e.redos),g.push(...e.undos)}let x=Fa(t,n,u);x&&p.push(x);let S=Ia(t,n);S&&g.push(S);let C=t.get(k).onCommandExecute({id:Wa.id,params:{unitId:a,subUnitId:o,ranges:u}});return p.push(...C.redos),g.push(...C.undos),(0,e.sequenceExecute)(p,c).result?(l.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:p}),!0):!1}},Ga={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async t=>{var n;let r=(n=t.get(G).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Ya(za.MergeAll,r);if(!(i!=null&&i.length))return!1;let a=f(t.get(e.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return t.get(e.ICommandService).executeCommand(Wa.id,{selections:i,unitId:s,subUnitId:c})}},Ka={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async t=>{var n;let r=(n=t.get(G).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Ya(za.MergeVertical,r);if(!(i!=null&&i.length))return!1;let a=f(t.get(e.IUniverInstanceService));if(!a)return!1;let{worksheet:o}=a,s=o.getUnitId(),c=o.getSheetId();return t.get(e.ICommandService).executeCommand(Wa.id,{value:e.Dimension.COLUMNS,selections:i,unitId:s,subUnitId:c})}},qa={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async t=>{var n;let r=(n=t.get(G).getCurrentSelections())==null?void 0:n.map(e=>e.range),i=Ya(za.MergeHorizontal,r);if(!(i!=null&&i.length))return!1;let a=f(t.get(e.IUniverInstanceService));if(!a)return!1;let{workbook:o,worksheet:s}=a,c=o.getUnitId(),l=s.getSheetId();return t.get(e.ICommandService).executeCommand(Wa.id,{value:e.Dimension.ROWS,selections:i,unitId:c,subUnitId:l})}};function Ja(t,n,r,i,a={}){let o=f(t.get(e.IUniverInstanceService),{unitId:n,subUnitId:r});if(!o)return;let s=t.get(e.ICommandService),{defaultMerge:c=!0,isForceMerge:l=!1}=a,{worksheet:u}=o;if(u.getMergeData().some(t=>i.some(n=>e.Rectangle.intersects(n,t)))){if(!l)throw Error(`The ranges to be merged overlap with the existing merged cells`);s.syncExecuteCommand(La.id,{unitId:n,subUnitId:r,ranges:i})}s.executeCommand(Wa.id,{unitId:n,subUnitId:r,selections:i,defaultMerge:c})}function Ya(e,t){return t?e===za.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===za.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===za.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var Xa=class{constructor(){C(this,`_model`,new Map),C(this,`_ruleChange`,new t.Subject),C(this,`_ruleRefresh`,new t.Subject),C(this,`_resetOrder`,new t.Subject),C(this,`ruleChange$`,this._ruleChange.asObservable()),C(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),C(this,`resetOrder$`,this._resetOrder.asObservable()),C(this,`_worksheetRuleInitStateChange`,new t.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]}};const Za={id:`sheet.mutation.add-worksheet-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Xa),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},Qa={id:`sheet.mutation.delete-worksheet-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(Xa),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},$a={type:e.CommandType.COMMAND,id:`sheet.command.add-worksheet-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{rule:a,unitId:o}=n,s=a.subUnitId;if(await r.executeCommand(Za.id,{unitId:o,rule:a,subUnitId:a.subUnitId})){let e=[{id:Za.id,params:{unitId:o,rule:a,subUnitId:a.subUnitId}}],t=[{id:Qa.id,params:{unitId:o,subUnitId:s}}];i.pushUndoRedo({unitID:o,redoMutations:e,undoMutations:t})}return!0}},eo={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-range-theme-style`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a}=n,o=_e(t,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}},to={type:e.CommandType.COMMAND,id:`sheet.command.append-row`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a,subUnitId:o,cellValue:s,insertRowNums:c,insertColumnNums:l,maxRows:u,maxColumns:d}=n,f={unitId:a,subUnitId:o,cellValue:s},p=B(t,f),m=[{id:V.id,params:f}],h=[{id:V.id,params:p}];if(c){let e={unitId:a,subUnitId:o,range:{startRow:u,endRow:u,startColumn:0,endColumn:d-1}},n=be(t,e);m.unshift({id:P.id,params:e}),h.push({id:I.id,params:n})}if(l){let e={unitId:a,subUnitId:o,range:{startRow:0,endRow:u-1,startColumn:d,endColumn:d-1+l}},n=xe(t,e);m.unshift({id:F.id,params:e}),h.push({id:L.id,params:n})}return(0,e.sequenceExecute)(m,r).result?(i.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},no=[`ff`,`fs`,`tr`,`tb`],X={type:e.CommandType.COMMAND,id:`sheet.command.set-style`,handler:(t,n)=>{var r;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,{range:c,style:l}=n,u=t.get(e.ICommandService),d=t.get(e.IUndoRedoService),p=t.get(G),m=c?[c]:(r=p.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(m!=null&&m.length))return!1;let h=new e.ObjectMatrix,g=Rn(s);if(e.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=t.get(Ai).getSkeleton(a,o),y=B(t,_),b=null;if(no.includes(n==null?void 0:n.style.type)){let{suitableRanges:e,remainingRanges:t}=Mi(m,v);b={suitableRanges:e,remainingRanges:t,cellHeights:ji(e,s)}}let x=u.syncExecuteCommand(V.id,_),S=t.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,e.sequenceExecute)([...E,...w],u);return x&&D.result?(d.pushUndoRedo({unitID:_.unitId,undoMutations:[{id:V.id,params:y},...T,...C],redoMutations:[{id:V.id,params:_},...E,...w]}),!0):!1}},ro={type:e.CommandType.COMMAND,id:`sheet.command.set-bold`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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()===e.FontWeight.BOLD?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}};return t.get(e.ICommandService).syncExecuteCommand(X.id,s)}},io={type:e.CommandType.COMMAND,id:`sheet.command.set-italic`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.IUniverInstanceService));if(!r)return!1;let{worksheet:i}=r,a=!0;if(n.primary){let{startRow:t,startColumn:r}=n.primary;a=i.getRange(t,r).getFontStyle()===e.FontItalic.ITALIC}let o={style:{type:`it`,value:a?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},ao={type:e.CommandType.COMMAND,id:`sheet.command.set-underline`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},oo={type:e.CommandType.COMMAND,id:`sheet.command.set-stroke`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},so={type:e.CommandType.COMMAND,id:`sheet.command.set-overline`,handler:t=>{let n=t.get(G).getCurrentLastSelection();if(!n)return!1;let r=f(t.get(e.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?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE}}};return t.get(e.ICommandService).syncExecuteCommand(X.id,o)}},co={type:e.CommandType.COMMAND,id:`sheet.command.set-font-family`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={style:{type:`ff`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},lo={type:e.CommandType.COMMAND,id:`sheet.command.set-font-size`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={style:{type:`fs`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},uo={type:e.CommandType.COMMAND,id:`sheet.command.set-text-color`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={style:{type:`cl`,value:{rgb:n.value}}};return r.syncExecuteCommand(X.id,i)}},fo={type:e.CommandType.COMMAND,id:`sheet.command.reset-text-color`,handler:t=>t.get(e.ICommandService).syncExecuteCommand(X.id,{style:{type:`cl`,value:{rgb:null}}})},po={type:e.CommandType.COMMAND,id:`sheet.command.set-background-color`,handler:(t,n)=>{if(!n||!n.value)return!1;let r=t.get(e.ICommandService),i={style:{type:`bg`,value:{rgb:n.value}}};return r.syncExecuteCommand(X.id,i)}},mo={type:e.CommandType.COMMAND,id:`sheet.command.reset-background-color`,handler:t=>t.get(e.ICommandService).syncExecuteCommand(X.id,{style:{type:`bg`,value:{rgb:null}}})},ho={type:e.CommandType.COMMAND,id:`sheet.command.set-vertical-text-align`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`vt`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},go={type:e.CommandType.COMMAND,id:`sheet.command.set-horizontal-text-align`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`ht`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},_o={type:e.CommandType.COMMAND,id:`sheet.command.set-text-wrap`,handler:(t,n)=>{if(!n)return!1;let r=t.get(e.ICommandService),i={unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,style:{type:`tb`,value:n.value}};return r.syncExecuteCommand(X.id,i)}},vo={type:e.CommandType.COMMAND,id:`sheet.command.set-text-rotation`,handler:(t,n)=>{if(!n)return!1;let r=typeof n.value==`number`?{a:n.value}:{a:0,v:e.BooleanNumber.TRUE},i=t.get(e.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},bo=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],xo=[``,`万`,`亿`,`万亿`,`亿亿`],So=[``,`十`,`百`,`千`],Co={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function wo(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=Co[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 To(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=bo[a]+n):(i=!1,t=bo[a],t+=So[r],n=t+n),r++,e=Math.floor(e/10)}return n}function Eo(e){let t=0,n=``,r=``,i=!1;if(e===0)return bo[0];for(;e>0;){let a=e%1e4;i&&(r=bo[0]+r),n=To(a),n+=a===0?xo[0]:xo[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Do(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 Co)){t=!1;break}}return t}function Oo(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 ko(e){let t;return t=e.length===1?e===`日`||wo(e)<7:!1,t}function Ao(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function jo(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function Mo(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function No(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 Po(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 Fo(t,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%t.length,a=e.Tools.deepClone(t[n]);Zo(a),r.push({v:null,s:null,p:null,f:null,si:null,t:null,...a})}return r}function Io(e,t){let n=[];for(let i=1;i<=t;i++){var r;let t={s:(r=e[(i-1)%e.length])==null?void 0:r.s};n.push(t)}return n}function Lo(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 Ro(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function zo(t,n,r){let i=[],a=[];for(let e=0;e<t.length;e++){var o;a.push(Number((o=t[e])==null?void 0:o.v))}if(t.length>2&&Lo(a))for(let r=1;r<=n;r++){var s,c,l;let n=(r-1)%t.length,a=e.Tools.deepClone(t[n]);Zo(a);let o=Number((s=t[t.length-1])==null?void 0:s.v)*(Number((c=t[1])==null?void 0:c.v)/Number((l=t[0])==null?void 0:l.v))**r;a&&(Xo(a)&&(a.v=o),i.push(a))}else{let o=Ro(t.length);for(let s=1;s<=n;s++){let n=(s-1)%t.length,c=e.Tools.deepClone(t[n]);Zo(c);let l=r===e.Direction.DOWN||r===e.Direction.RIGHT,u=Bo(t.length+s,a,o,l);c&&(Xo(c)&&(c.v=u),i.push(c))}}return i}function Bo(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 Vo(t,n,r){let i=[],a=/0|([1-9]+[0-9]*)/g;for(let s=1;s<=n;s++){var o;let n=(s-1)%t.length,c=e.Tools.deepClone(t[n]);Zo(c);let l=`${(o=t[t.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 Ho(t,n){let r=[];for(let i=1;i<=n;i++){let n=(i-1)%t.length,a=e.Tools.deepClone(t[n]);Zo(a),a&&(delete a.v,r.push(a))}return r}function Uo(t,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)%t.length,a=e.Tools.deepClone(t[n]);Zo(a);let u=0;if(((c=t[t.length-1])==null?void 0:c.v)===o[0])u=7+r*i;else{var l;let e=`${(l=t[t.length-1])==null?void 0:l.v}`;e&&(u=wo(e.substr(e.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 Wo(t,n,r){let i=[];for(let o=1;o<=n;o++){var a;let n=(o-1)%t.length,s=e.Tools.deepClone(t[n]);Zo(s);let c=wo(`${(a=t[t.length-1])==null?void 0:a.v}`)+r*o,l;l=c<=0?`零`:Eo(c),s&&(s.v=l,i.push(s))}return i}const Go={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 Ko(e){let t=!1;return Object.keys(Go).forEach(n=>{Go[n].includes(e)&&(t=!0)}),t}function qo(e){let t=``,n=[];return Object.keys(Go).forEach(r=>{Go[r].includes(e)&&(t=r,n.push(...Go[r]))}),{name:t,series:n}}function Jo(t,n,r,i){let a=i.length,o=[];for(let c=1;c<=n;c++){var s;let n=(c-1)%t.length,l=e.Tools.deepClone(t[n]);Zo(l);let u=`${(s=t[t.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 Yo(t,n){let r=[],i;if(n.startRow<t.startRow)i=e.Direction.UP;else if(n.endRow>t.endRow)i=e.Direction.DOWN;else if(n.startColumn<t.startColumn)i=e.Direction.LEFT;else if(n.endColumn>t.endColumn)i=e.Direction.RIGHT;else return[];if(i===e.Direction.DOWN||i===e.Direction.UP){let a=t.endRow-t.startRow+1,o=n.endRow-n.startRow+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:t.endRow-t.startRow,endColumn:t.endColumn-t.startColumn};if(i===e.Direction.DOWN){for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow+(e+1)*a,col:t.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow+(s+1)*a,col:t.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:c-1,endColumn:t.endColumn-t.startColumn}})}else{for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow-(e+1)*a,col:t.startColumn},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow-(s+1)*a,col:t.startColumn},relativeRange:{startRow:a-c,endRow:a-1,startColumn:0,endColumn:t.endColumn-t.startColumn}})}}if(i===e.Direction.RIGHT||i===e.Direction.LEFT){let a=t.endColumn-t.startColumn+1,o=n.endColumn-n.startColumn+1,s=Math.floor(o/a),c=o%a,l={startRow:0,startColumn:0,endRow:t.endRow-t.startRow,endColumn:t.endColumn-t.startColumn};if(i===e.Direction.RIGHT){for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow,col:t.startColumn+(e+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow,col:t.startColumn+(s+1)*a},relativeRange:{startRow:0,startColumn:0,endRow:t.endRow-t.startRow,endColumn:c-1}})}else{for(let e=0;e<s;e++)r.push({repeatStartCell:{row:t.startRow,col:t.startColumn-(e+1)*a},relativeRange:l});c>0&&r.push({repeatStartCell:{row:t.startRow,col:t.startColumn-(s+1)*a},relativeRange:{startRow:0,startColumn:a-c,endRow:t.endRow-t.startRow,endColumn:a-1}})}}return r}function Xo(t){return!((0,e.isFormulaString)(t.f)||(0,e.isFormulaId)(t.si)||t.t===e.CellValueType.BOOLEAN)}function Zo(e){e&&`custom`in e&&delete e.custom}function Qo(e,t){return t?e.reverse():e}function $o(t){let n=new e.ObjectMatrix;return t.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()}const es={chnNumChar:yo,chnNumChar2:bo,chnUnitSection:xo,chnUnitChar:So,chnNameValue:Co,chineseToNumber:wo,sectionToChinese:To,numberToChinese:Eo,isChnNumber:Do,matchExtendNumber:Oo,isChnWeek1:ko,isChnWeek2:Ao,isChnWeek3:jo,getLenS:Mo,isEqualDiff:No,getDataIndex:Po,fillCopy:Fo,fillCopyStyles:Io,isEqualRatio:Lo,getXArr:Ro,fillSeries:zo,forecast:Bo,fillExtendNumber:Vo,fillOnlyFormat:Ho,fillChnWeek:Uo,fillChnNumber:Wo,isLoopSeries:Ko,getLoopSeriesInfo:qo,fillLoopSeries:Jo,getAutoFillRepeatRange:Yo,needsUpdateCellValue:Xo,removeCellCustom:Zo,reverseIfNeed:Qo,generateNullCellValueRowCol:$o};let 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}({}),ts=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({});const{chineseToNumber:ns,fillChnNumber:rs,fillChnWeek:is,fillCopy:as,fillExtendNumber:os,fillLoopSeries:ss,fillSeries:cs,getLoopSeriesInfo:ls,isChnNumber:us,isChnWeek2:ds,isChnWeek3:fs,isEqualDiff:ps,isLoopSeries:ms,matchExtendNumber:hs,reverseIfNeed:gs}=es,_s={dateRule:{type:Q.DATE,priority:1100,match:(t,n)=>{if(t!=null&&t.f||t!=null&&t.si)return!1;if((typeof(t==null?void 0:t.v)==`number`||(t==null?void 0:t.t)===e.CellValueType.NUMBER)&&t.s){if(typeof t.s==`string`){var r;let i=n.get(e.IUniverInstanceService).getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;let a=i.getStyles().get(t.s),o=a==null||(r=a.n)==null?void 0:r.pattern;if(o)return e.numfmt.getFormatInfo(o).isDate}else if(t.s.n&&e.numfmt.getFormatInfo(t.s.n.pattern).isDate)return!0}return!1},isContinue:(e,t)=>e.type===Q.DATE,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t;return r===e.Direction.LEFT||r===e.Direction.UP?(i.reverse(),cs(i,n,r).reverse()):cs(i,n,r)}}},numberRule:{type:Q.NUMBER,priority:1e3,match:t=>typeof(t==null?void 0:t.v)==`number`||(t==null?void 0:t.t)===e.CellValueType.NUMBER,isContinue:(e,t)=>e.type===Q.NUMBER,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t;return r===e.Direction.LEFT||r===e.Direction.UP?(i.reverse(),cs(i,n,r).reverse()):cs(i,n,r)}}},extendNumberRule:{type:Q.EXTEND_NUMBER,priority:900,match:e=>hs(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===Q.EXTEND_NUMBER){var n;let{beforeTxt:r,afterTxt:i}=hs(`${(n=e.cellData)==null?void 0:n.v}`||``),{beforeTxt:a,afterTxt:o}=hs(`${t==null?void 0:t.v}`||``);if(r===a&&i===o)return!0}return!1},applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.UP||r===e.Direction.LEFT,o;if(i.length===1)return o=a?-1:1,gs(os(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(hs(t).matchTxt))}return a&&(i.reverse(),s.reverse()),ps(s)?(o=s[1]-s[0],gs(os(i,n,o),a)):as(i,n)}}},chnNumberRule:{type:Q.CHN_NUMBER,priority:830,match:e=>!!us(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_NUMBER,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.LEFT||r===e.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)?gs(is(i,n,t),a):gs(rs(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()),ps(l)?s||l[l.length-1]<6&&l[0]>0||l[0]<6&&l[l.length-1]>0?gs(is(i,n,l[1]-l[0]),a):gs(rs(i,n,l[1]-l[0]),a):as(i,n)}}},chnWeek2Rule:{type:Q.CHN_WEEK2,priority:820,match:e=>!!ds(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK2,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.LEFT||r===e.Direction.UP;if(i.length===1){let e;return e=a?-1:1,gs(is(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()),ps(o)?gs(is(i,n,o[1]-o[0],1),a):as(i,n)}}},chnWeek3Rule:{type:Q.CHN_WEEK3,priority:810,match:e=>fs(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===Q.CHN_WEEK3,applyFunctions:{[Z.SERIES]:(t,n,r)=>{let{data:i}=t,a=r===e.Direction.LEFT||r===e.Direction.UP;if(i.length===1){let e;return e=a?-1:1,gs(is(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()),ps(o)?gs(is(i,n,o[1]-o[0],2),a):as(i,n)}}},loopSeriesRule:{type:Q.LOOP_SERIES,priority:800,match:e=>ms(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===Q.LOOP_SERIES){var n;return ls(`${(n=e.cellData)==null?void 0:n.v}`||``).name===ls(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[Z.SERIES]:(t,n,r)=>{var i;let{data:a}=t,o=r===e.Direction.LEFT||r===e.Direction.UP,{series:s}=ls(`${(i=a[0])==null?void 0:i.v}`||``);if(a.length===1){let e;return e=o?-1:1,gs(ss(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()),ps(c)?gs(ss(a,n,c[1]-c[0],s),o):as(a,n)}}},otherRule:{type:Q.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===Q.OTHER}},{chnNumberRule:vs,chnWeek2Rule:ys,chnWeek3Rule:bs,dateRule:xs,extendNumberRule:Ss,loopSeriesRule:Cs,numberRule:ws,otherRule:Ts}=_s;let Es=class extends e.Disposable{constructor(n,r,i,a){super(),this._commandService=n,this._undoRedoService=r,this._univerInstanceService=i,this._injector=a,C(this,`_rules`,[]),C(this,`_hooks`,[]),C(this,`_applyType$`,new t.BehaviorSubject(Z.SERIES)),C(this,`_isFillingStyle`,!0),C(this,`_prevUndos`,[]),C(this,`_autoFillLocation$`,new t.BehaviorSubject(null)),C(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),C(this,`_showMenu$`,new t.BehaviorSubject(!1)),C(this,`showMenu$`,this._showMenu$.asObservable()),C(this,`_direction`,e.Direction.DOWN),C(this,`applyType$`,this._applyType$.asObservable()),C(this,`_menu$`,new t.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=[xs,ws,Ss,vs,ys,bs,Cs,Ts].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(t,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(Ns.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(Ns.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=e.Direction.UP,s.endRow=r.startRow-1;else if(i.endRow>r.endRow)c=e.Direction.DOWN,s.startRow=r.endRow+1;else if(i.startColumn<r.startColumn)c=e.Direction.LEFT,s.endColumn=r.startColumn-1;else if(i.endColumn>r.endColumn)c=e.Direction.RIGHT,s.startColumn=r.endColumn+1;else return!1;this.direction=c;let l=this._injector.invoke(e=>bn(r,e)),u=this._injector.invoke(e=>bn(s,e));if(!l||!u)return!1;this.autoFillLocation={source:l,target:u,unitId:t,subUnitId:n};let d=[];if(this.getActiveHooks().forEach(e=>{var r;let i=e==null||(r=e.onBeforeFillData)==null?void 0:r.call(e,{source:l,target:u,unitId:t,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(t){if(this._hooks.find(e=>e.id===t.id))throw Error(`Add hook failed, hook id '${t.id}' already exist!`);return t.priority===void 0&&(t.priority=0),t.type===void 0&&(t.type=ts.APPEND),this._hooks.push(t),(0,e.toDisposable)(()=>{let e=this._hooks.findIndex(e=>e===t);e>-1&&this._hooks.splice(e,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===ts.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===ts.DEFAULT)),s=i.filter(e=>e.type===ts.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(t){var n;this.applyType=t;let r=this._univerInstanceService.getCurrentUnitOfType(e.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,e.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=e.Rectangle.union(yn(o),yn(s)),m=this.getActiveHooks();c===i&&l===a&&this._commandService.syncExecuteCommand(q.id,{selections:[{primary:K({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:e.RANGE_TYPE.NORMAL}}],unitId:c,subUnitId:l});let h=[],g=[];m.forEach(e=>{var n;let{undos:r,redos:i}=((n=e.onFillData)==null?void 0:n.call(e,{source:o,target:s,unitId:c,subUnitId:l},f,t))||{};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(e=>{var n;(n=e.onAfterFillData)==null||n.call(e,{source:o,target:s,unitId:c,subUnitId:l},f,t)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(t,n,r){if(this.applyType===Z.NO_FORMAT)return{undos:[],redos:[]};let i=[],a=r.getConfig().defaultRowHeight,o=r.getRowManager();if(t.forEach(t=>{if(t.id===V.id){let{cellValue:s}=t.params;new e.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=kt(s,r),l={id:Mt.id,params:s};return this._commandService.syncExecuteCommand(l.id,l.params)?{redos:[l],undos:[{id:Mt.id,params:c}]}:{undos:[],redos:[]}}};Es=T([w(0,e.ICommandService),w(1,e.IUndoRedoService),w(2,(0,e.Inject)(e.IUniverInstanceService)),w(3,(0,e.Inject)(e.Injector))],Es);const Ds=(0,e.createIdentifier)(`univer.auto-fill-service`),Os={type:e.CommandType.COMMAND,id:`sheet.command.auto-fill`,handler:async(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a}=r,{sourceRange:o,targetRange:s,applyType:c}=n;return t.get(Ds).triggerAutoFill(i,a,o,s,c)}};function ks(t,n){let r=t.get(G).getCurrentLastSelection();if(!r)return null;let i=f(t.get(e.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 As(t,n){let r=ks(t,n);if(!r)return!1;let i=await t.get(e.ICommandService).executeCommand(Os.id,r);return i&&t.get(Ds).setShowMenu(!1),i}const js={type:e.CommandType.COMMAND,id:`sheet.command.copy-down`,handler:async e=>As(e,`down`)},Ms={type:e.CommandType.COMMAND,id:`sheet.command.copy-right`,handler:async e=>As(e,`right`)},Ns={id:`sheet.command.auto-clear-content`,type:e.CommandType.COMMAND,handler:async(t,n)=>{let r=f(t.get(e.IUniverInstanceService));if(!r)return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.get(k),s=t.get(G),{unitId:c,subUnitId:l}=r,{clearRange:u,selectionRange:d}=n,{startColumn:p,startRow:m}=d,h={subUnitId:l,unitId:c,cellValue:_n([u])},g=B(t,h),_=[{id:V.id,params:h},{id:q.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:V.id,params:g},{id:q.id,params:{selections:[s.getCurrentLastSelection()],unitId:c,subUnitId:l}}];if((0,e.sequenceExecute)(_,i)){let t=o.afterCommandExecute({id:V.id,params:h});return(0,e.sequenceExecute)(t.redos,i),a.pushUndoRedo({unitID:c,undoMutations:[...v,...t.undos],redoMutations:[..._,...t.redos]}),!0}return!1}},Ps={id:`sheet.command.clear-selection-content`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=t.get(G),s=t.get(e.IUndoRedoService),c=t.get(k),l=i.getCurrentUnitForType(e.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:_n(xn(p,t,u,f))},h=B(t,m),g=c.onCommandExecute({id:Ps.id}),_=[{id:V.id,params:m},...g.redos],v=[...g.undos,{id:V.id,params:h}];return(0,e.sequenceExecute)(_,a).result?(s.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:_}),!0):!1}},Fs=`sheets.config`;Symbol(Fs);const Is={largeSheetCellCountThreshold:6e3,batchSize:3e3},Ls={};let Rs=class extends e.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(t,n){let r=this._univerInstanceService.getUnit(t,e.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)}};Rs=T([w(0,e.ICommandService),w(1,e.IUniverInstanceService)],Rs);const zs={id:`sheet.mutation.copy-worksheet-end`,type:e.CommandType.MUTATION,handler:()=>!0},Bs=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Vs={id:`sheet.mutation.insert-sheet`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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,e.cloneWorksheetData)(i))):!1}};function Hs(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 Us(e,t,n,r){let i=[],a={},o=0;for(let e in n){let t=Number(e),s=n[t];if(!s)continue;let c=Object.keys(s).length;o>0&&o+c>r&&(i.push(a),a={},o=0),a[t]=s,o+=c,o>=r&&(i.push(a),a={},o=0)}return o>0&&i.push(a),{firstChunkCellData:i.length>0?i[0]:{},remainingMutations:i.slice(1).map(n=>({id:V.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}const Ws=`sheet.command.copy-sheet`;function Gs(t,n,r,i,a,o,s){var c,l;let u=t.get(e.IConfigService).getConfig(Fs),d={...Is,...u==null?void 0:u.largeSheetOperation},f=(0,e.cloneWorksheetData)(r.getConfig());f.name=qs(n,o,f.name);let p=(0,e.generateRandomId)();f.id=p;let m=n.getSheetIndex(r),{cellData:h}=f,g=Hs(h)>=d.largeSheetCellCountThreshold,_,v=[];if(g){let{firstChunkCellData:e,remainingMutations:t}=Us(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=Bs(t,_),b=s.onCommandExecute({id:Ws,params:{unitId:i,subUnitId:a,targetSubUnitId:f.id}});return{redos:[...(c=b.preRedos)==null?[]:c,{id:Vs.id,params:_},...b.redos],undos:[...(l=b.preUndos)==null?[]:l,{id:Si.id,params:y},...b.undos],unitId:i,newSheetId:p,isSplit:g,scheduledMutations:v}}const Ks={type:e.CommandType.COMMAND,id:Ws,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.IUniverInstanceService),o=t.get(k),s=t.get(e.LocaleService),c=t.get(Rs),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}=Gs(t,u,d,p,m,s,o);if((0,e.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(zs.id,{unitId:p,subUnitId:_},{syncOnly:!0}),c.scheduleMutations(p,_,y)}}else i.pushUndoRedo({unitID:p,undoMutations:g,redoMutations:h});return!0}return!1}};function qs(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}const Js={type:e.CommandType.COMMAND,id:`sheet.command.delete-range-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a,subUnitId:o,rule:s}=n,c={unitId:a,subUnitId:o,ruleIds:[s.id]};return await r.executeCommand(Tn.id,c)&&i.pushUndoRedo({unitID:a,redoMutations:[{id:Tn.id,params:c}],undoMutations:[{id:Dn.id,params:{unitId:a,subUnitId:o,rules:[s]}}]}),!0}},Ys={type:e.CommandType.COMMAND,id:`sheet.command.delete-worksheet-protection`,handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{rule:a,unitId:o,subUnitId:s}=n;r.executeCommand(Qa.id,{unitId:o,subUnitId:s});let c=[{id:Qa.id,params:{unitId:o,subUnitId:s}}],l=[{id:Za.id,params:{unitId:o,rule:a,subUnitId:s}}];return i.pushUndoRedo({unitID:o,redoMutations:c,undoMutations:l}),!0}},Xs={type:e.CommandType.COMMAND,id:`sheet.command.remove-worksheet-range-theme-style`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a}=n,o=ye(t,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}},Zs={id:`sheet.command.insert-defined-name`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService),a=t.get(e.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}},Qs={id:`sheet.command.insert-sheet`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.IUniverInstanceService),o=t.get(e.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,e.mergeWorksheetSnapshotWithDefault)(f||{});if(n){var h;u=(h=n.index)==null?u:h,m.id=p||(0,e.generateRandomId)(),m.name=(f==null?void 0:f.name)||l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`)}else m.id=(0,e.generateRandomId)(),m.name=l.generateNewSheetName(`${o.t(`sheets.tabs.sheet`)}`);let g={index:u,sheet:m,unitId:c},_=Bs(t,g);return r.syncExecuteCommand(Vs.id,g)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Si.id,params:_}],redoMutations:[{id:Vs.id,params:g}]}),!0):!1}},$s={id:`sheet.command.refill`,type:e.CommandType.COMMAND,handler:async(e,t)=>e.get(Ds).fillData(t.type)},ec={id:`sheet.mutation.register-worksheet-range-theme-style`,type:e.CommandType.MUTATION,handler:(t,n)=>{if(!f(t.get(e.IUniverInstanceService),n))return!1;let r=t.get(N),{unitId:i,rangeThemeStyleJson:a,themeName:o}=n,s=new te(o,a);return r.registerRangeThemeStyle(i,s),!0}},tc={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:e.CommandType.MUTATION,handler:(t,n)=>{if(!f(t.get(e.IUniverInstanceService),n))return!1;let r=t.get(N),{unitId:i,themeName:a}=n;return r.unregisterRangeThemeStyle(i,a),!0}},nc={id:`sheet.command.register-worksheet-range-theme-style`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n)return!1;let{unitId:r,rangeThemeStyle:i}=n,a=t.get(e.IUniverInstanceService),o=t.get(e.ICommandService),s=t.get(e.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(ec.id,c)&&s.pushUndoRedo({unitID:r,undoMutations:[{id:tc.id,params:l}],redoMutations:[{id:ec.id,params:c}]}),!0}},rc={id:`sheet.command.remove-defined-name`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,a;let o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(k);if(!n)return!1;let l={...n},u=c.onCommandExecute({id:rc.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,e.sequenceExecute)(d,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:f.filter(Boolean),redoMutations:d.filter(Boolean)}),!0):!1}},ic={id:`sheet.command.remove-sheet`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(e.IUniverInstanceService),c=t.get(k),l=t.get(e.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(Fs),_={...Is,...g==null?void 0:g.largeSheetOperation},v=Ni(h.getCellMatrix())>=_.largeSheetCellCountThreshold,y={subUnitId:p,unitId:d,subUnitName:h.getName()},b=v?null:xi(t,y),x=c.onCommandExecute({id:ic.id,params:{unitId:d,subUnitId:p}}),S=[...(r=x.preRedos)==null?[]:r,{id:Si.id,params:y},...x.redos],C=v?[]:[...(i=x.preUndos)==null?[]:i,{id:Vs.id,params:b},...x.undos];return(0,e.sequenceExecute)(S,a).result?(v?o.clearUndoRedo(d):o.pushUndoRedo({unitID:d,undoMutations:C,redoMutations:S}),!0):!1}};var ac=class{constructor(){C(this,`_borderInfo`,{type:e.BorderType.ALL,color:`#000000`,style:e.BorderStyleTypes.THIN,activeBorderType:!1}),C(this,`_borderInfo$`,new t.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 oc(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)}const sc=(t,n,r,i)=>{let{mr:a,worksheet:o}=t;n.startRow<0||n.startColumn<0||oc(n,(t,n)=>{let s=o.getMergedCell(t,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 t=e.Tools.deepClone((l=a.getValue(s.startRow,s.startColumn))==null?void 0:l.s);c=t!=null&&t.bd?Object.assign(t.bd,r):r}a.setValue(s.startRow,s.startColumn,{s:{bd:c}})}else{if(i){var u;let i=e.Tools.deepClone((u=a.getValue(t,n))==null?void 0:u.s);c=i!=null&&i.bd?Object.assign(i.bd,r):r}a.setValue(t,n,{s:{bd:c}})}})},cc=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 lc(t,n,r){let{style:i,color:a,type:o}=t.getBorderInfo(),s=o===e.BorderType.TOP||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,c=o===e.BorderType.LEFT||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,l=o===e.BorderType.BOTTOM||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,u=o===e.BorderType.RIGHT||o===e.BorderType.ALL||o===e.BorderType.OUTSIDE,d=o===e.BorderType.VERTICAL||o===e.BorderType.ALL||o===e.BorderType.INSIDE,f=o===e.BorderType.HORIZONTAL||o===e.BorderType.ALL||o===e.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}=cc(y),O=new e.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}}}}const uc=t=>{let{range:n,mr:r,borderStyle:i,vertical:a,horizontal:o,worksheet:s}=t;a&&oc(n,(t,a)=>{let o=s.getMergedCell(t,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(t,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{l:e.Tools.deepClone(i)}):{l:e.Tools.deepClone(i)}}})}else{if(a!==n.endColumn){var l;let n=(l=r.getValue(t,a))==null?void 0:l.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{r:e.Tools.deepClone(i)}):{r:e.Tools.deepClone(i)}}})}if(a!==n.startColumn){var u;let n=(u=r.getValue(t,a))==null?void 0:u.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{l:e.Tools.deepClone(i)}):{l:e.Tools.deepClone(i)}}})}}}),o&&oc(n,(t,a)=>{let o=s.getMergedCell(t,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(t,a,{s:{bd:s!=null&&s.bd?Object.assign(s.bd,{t:e.Tools.deepClone(i)}):{t:e.Tools.deepClone(i)}}})}else{if(t!==n.endRow){var l;let n=(l=r.getValue(t,a))==null?void 0:l.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{b:e.Tools.deepClone(i)}):{b:e.Tools.deepClone(i)}}})}if(t!==n.startRow){var u;let n=(u=r.getValue(t,a))==null?void 0:u.s;r.setValue(t,a,{s:{bd:n!=null&&n.bd?Object.assign(n.bd,{t:e.Tools.deepClone(i)}):{t:e.Tools.deepClone(i)}}})}}})};function dc(t){let{borderStyle:n,tl_br:r,tl_bc:i,tl_mr:a,bl_tr:o,ml_tr:s,bc_tr:c}=t,l=(e,n,r)=>{sc(t,e,n,r)};r&&l(t.range,{tl_br:e.Tools.deepClone(n)},!0),i&&l(t.range,{tl_bc:e.Tools.deepClone(n)},!0),a&&l(t.range,{tl_mr:e.Tools.deepClone(n)},!0),o&&l(t.range,{bl_tr:e.Tools.deepClone(n)},!0),s&&l(t.range,{ml_tr:e.Tools.deepClone(n)},!0),c&&l(t.range,{bc_tr:e.Tools.deepClone(n)},!0)}const fc=t=>{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}=t,h=(e,n,r)=>{sc(t,e,n,r)};n&&(h(f,{b:null}),h(c,{t:e.Tools.deepClone(o)},!0)),a&&(h(d,{t:null}),h(s,{b:e.Tools.deepClone(o)},!0)),r&&(h(p,{r:null}),h(l,{l:e.Tools.deepClone(o)},!0)),i&&(h(m,{l:null}),h(u,{r:e.Tools.deepClone(o)},!0))},pc=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)=>{sc(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(oc(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))},mc={id:`sheet.command.set-border`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.get(e.IUniverInstanceService),s=t.get(G),c=t.get(ac),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=lc(c,l,u);uc(p),fc(p),dc(p),pc(p);let{unitId:m,subUnitId:h,mr:g}=p,_={unitId:m,subUnitId:h,cellValue:g.getData()},v=B(t,_);return i.syncExecuteCommand(V.id,_)?(a.pushUndoRedo({unitID:m,undoMutations:[{id:V.id,params:v}],redoMutations:[{id:V.id,params:_}]}),!0):!1}},hc={id:`sheet.command.set-border-position`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n.value)return!1;let r=t.get(e.ICommandService);return t.get(ac).setType(n.value),r.syncExecuteCommand(mc.id)}},gc={id:`sheet.command.set-border-style`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService);return t.get(ac).setStyle(n.value),r.syncExecuteCommand(mc.id)}},_c={id:`sheet.command.set-border-color`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=t.get(e.ICommandService);return t.get(ac).setColor(n.value),r.syncExecuteCommand(mc.id)}},vc={id:`sheet.command.set-border-basic`,type:e.CommandType.COMMAND,handler:(t,n)=>{let{unitId:r,subUnitId:i,value:a,ranges:o}=n,{type:s,color:c,style:l}=a,u=t.get(e.ICommandService),d=t.get(ac);return d.setType(s),c&&d.setColor(c),d.setStyle(l),u.syncExecuteCommand(mc.id,{unitId:r,subUnitId:i,ranges:o})}},yc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-data`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=Ne(u,l);return r.syncExecuteCommand(Pe.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:Pe.id,params:d}],redoMutations:[{id:Pe.id,params:u}]}),!0):!1}},bc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-visible-on-cols`,handler:(t,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=t.get(k),s=t.get(e.ICommandService),c=f(t.get(e.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:K(e,l),style:null}))},p=Le(t,u),m={unitId:r,subUnitId:i,selections:wc(a).map(e=>({range:e,primary:K(e,l),style:null}))},h=(0,e.sequenceExecute)([{id:Re.id,params:u},{id:q.id,params:d}],s),g=o.onCommandExecute({id:bc.id,params:n}),_=(0,e.sequenceExecute)([...g.redos],s);if(h.result&&_.result){var v,y;let i=o.afterCommandExecute({id:bc.id,params:n});return(0,e.sequenceExecute)(i.redos,s),t.get(e.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:[{id:Ie.id,params:p},{id:q.id,params:m},...(v=g.undos)==null?[]:v,...i.undos],redoMutations:[...(y=g.preRedos)==null?[]:y,{id:Re.id,params:u},{id:q.id,params:d},...g.redos,...i.redos]}),!0}return!0}},xc={type:e.CommandType.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:t=>{var n;let r=t.get(G),i=t.get(e.ICommandService),a=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(t=>t.rangeType===e.RANGE_TYPE.COLUMN);if(!(a!=null&&a.length))return!1;let o=f(t.get(e.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(bc.id,{unitId:c,subUnitId:l,ranges:u})}},Sc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-hidden`,handler:(t,n)=>{var r,i;let a=t.get(G),o=t.get(k),s=t.get(e.IUniverInstanceService),c=t.get(e.ICommandService),l=!(n==null||(r=n.ranges)==null)&&r.length?n.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(t=>t.rangeType===e.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=Cc(u.worksheet,l);let h={unitId:p,subUnitId:m,ranges:l},g={unitId:p,subUnitId:m,selections:wc(l).map(e=>({range:e,primary:K(e,d),style:null}))},_=Fe(t,h),v={unitId:p,subUnitId:m,reveal:!0,selections:l.map(e=>({range:e,primary:K(e,d),style:null}))},y=(0,e.sequenceExecute)([{id:Ie.id,params:h},{id:q.id,params:g}],c),b=o.onCommandExecute({id:Sc.id,params:h}),x=(0,e.sequenceExecute)([...b.redos],c);if(y.result&&x.result){var S,C;let n=o.afterCommandExecute({id:Sc.id,params:h});return(0,e.sequenceExecute)(n.redos,c),t.get(e.IUndoRedoService).pushUndoRedo({unitID:p,undoMutations:[{id:Re.id,params:_},{id:q.id,params:v},...(S=b.undos)==null?[]:S,...n.undos],redoMutations:[...(C=b.preRedos)==null?[]:C,{id:Ie.id,params:h},{id:q.id,params:g},...b.redos,...n.redos]}),!0}return!1}};function Cc(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 wc(e){return Tc(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Tc(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}const Ec={id:`sheet.command.set-defined-name`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r,a;let o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(k);if(!n)return!1;let l={...n},u=(0,i.SetDefinedNameMutationFactory)(t,n),d=c.onCommandExecute({id:Ec.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,e.sequenceExecute)(f,o)?(s.pushUndoRedo({unitID:n.unitId,undoMutations:p.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Dc=(t,n)=>{let r=t.get(e.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}},Oc={id:`sheet.mutation.set-frozen`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},kc={type:e.CommandType.COMMAND,id:`sheet.command.set-frozen`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=Dc(t,m);return r.syncExecuteCommand(Oc.id,m)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Oc.id,params:h}],redoMutations:[{id:Oc.id,params:m}]}),!0):!1}},Ac={type:e.CommandType.COMMAND,id:`sheet.command.cancel-frozen`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUniverInstanceService),a=t.get(e.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=Dc(t,l);return r.syncExecuteCommand(Oc.id,l)&&a.pushUndoRedo({unitID:s,undoMutations:[{id:Oc.id,params:u}],redoMutations:[{id:Oc.id,params:l}]}),!0}},jc={type:e.CommandType.COMMAND,id:`sheet.command.set-gridlines-color`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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(ze.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:ze.id,params:d}],redoMutations:[{id:ze.id,params:u}]}),!0):!1}},$={id:`sheet.mutation.set-range-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i,ruleId:a}=t;return e.get(U).setRule(n,r,a,i),!0}},Mc=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(U).getRule(n,r,i);return a?{id:$.id,params:{...t,rule:a}}:null},Nc={id:`sheet.mutation.set-worksheet-protection`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(Xa).setRule(n,r,i),!0}},Pc={type:e.CommandType.COMMAND,id:`sheet.command.set-protection`,async handler(t,r){if(!r)return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.get(U),{rule:s,oldRule:c}=r,{unitId:l,subUnitId:u}=s,d=[],f=[];return(c==null?void 0:c.unitType)===s.unitType?s.unitType===n.UnitObject.Worksheet?(d.push({id:Nc.id,params:{unitId:l,subUnitId:u,rule:s}}),f.push({id:Nc.id,params:{unitId:l,subUnitId:u,rule:c}})):(d.push({id:$.id,params:{unitId:l,subUnitId:u,rule:s,ruleId:s.id}}),f.push({id:$.id,params:{unitId:l,subUnitId:u,ruleId:c.id,rule:c}})):(c&&(c.unitType===n.UnitObject.Worksheet?(d.push({id:Qa.id,params:{unitId:l,subUnitId:u}}),f.push({id:Za.id,params:{unitId:l,rule:c,subUnitId:c.subUnitId}})):c.unitType===n.UnitObject.SelectRange&&(d.push({id:Tn.id,params:{unitId:l,subUnitId:u,ruleIds:[c.id]}}),f.push({id:Dn.id,params:{unitId:l,subUnitId:u,rules:[c]}}))),s.unitType===n.UnitObject.Worksheet?(d.push({id:Za.id,params:{unitId:l,rule:s,subUnitId:s.subUnitId}}),f.unshift({id:Qa.id,params:{unitId:l,subUnitId:u}})):s.unitType===n.UnitObject.SelectRange&&(s.id=o.createRuleId(l,u),d.push({id:Dn.id,params:{unitId:l,subUnitId:u,rules:[s]}}),f.unshift({id:Tn.id,params:{unitId:l,subUnitId:u,ruleIds:[s.id]}}))),(0,e.sequenceExecute)(d,i)&&a.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:d}),!0}},Fc={id:`sheet.command.set-range-custom-metadata`,type:e.CommandType.COMMAND,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let i=t.get(e.ICommandService),{unitId:a,subUnitId:o}=r,{range:s,customMetadata:c}=n,{startRow:l,startColumn:u,endRow:d,endColumn:p}=s,m=e.Tools.isArray(c),h=new e.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(V.id,{unitId:a,subUnitId:o,cellValue:h.getMatrix()})}},Ic={type:e.CommandType.COMMAND,id:`sheet.command.set-row-data`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=pt(u,l);return r.syncExecuteCommand(mt.id,u)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:mt.id,params:d}],redoMutations:[{id:mt.id,params:u}]}),!0):!1}},Lc={type:e.CommandType.COMMAND,id:`sheet.command.set-specific-rows-visible`,handler:(t,n)=>{let{unitId:r,subUnitId:i,ranges:a}=n,o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(k),l=f(t.get(e.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:K(e,u),style:null}))},m=ht(t,d),h={unitId:r,subUnitId:i,selections:Vc(a).map(e=>({range:e,primary:K(e,u),style:null}))},g=(0,e.sequenceExecute)([{id:gt.id,params:d},{id:q.id,params:p}],o),_=c.onCommandExecute({id:Lc.id,params:n}),v=(0,e.sequenceExecute)([..._.redos],o);if(g.result&&v.result){var y,b,x;let t=c.afterCommandExecute({id:Lc.id,params:n});return(0,e.sequenceExecute)(t.redos,o),s.pushUndoRedo({unitID:r,undoMutations:[...(y=_.preUndos)==null?[]:y,{id:vt.id,params:m},{id:q.id,params:h},...(b=_.undos)==null?[]:b,...t.undos],redoMutations:[...(x=_.preRedos)==null?[]:x,{id:gt.id,params:d},{id:q.id,params:p},..._.redos,...t.redos]}),!0}return!0}},Rc={type:e.CommandType.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async t=>{var n;let r=t.get(G),i=t.get(e.IUniverInstanceService),a=t.get(e.ICommandService),o=(n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range).filter(t=>t.rangeType===e.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(Lc.id,{unitId:l,subUnitId:u,ranges:d})}},zc={type:e.CommandType.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(t,n)=>{var r,i,a;let o=t.get(G),s=t.get(e.ICommandService),c=t.get(e.IUndoRedoService),l=t.get(e.IUniverInstanceService),u=t.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(t=>t.rangeType===e.RANGE_TYPE.ROW);if(!(d!=null&&d.length))return!1;let p=f(l,n);if(!p)return!1;d=Bc(p.worksheet,d);let{unitId:m,subUnitId:h,worksheet:g}=p,_={unitId:m,subUnitId:h,ranges:d},v={unitId:m,subUnitId:h,selections:Vc(d).map(e=>({range:e,primary:K(e,g),style:null}))},y=_t(t,_),b={unitId:m,subUnitId:h,reveal:!0,selections:d.map(e=>({range:e,primary:K(e,g),style:null}))},x=u.onCommandExecute({id:zc.id,params:_});if((0,e.sequenceExecute)([...(a=x.preRedos)==null?[]:a,{id:vt.id,params:_},{id:q.id,params:v},...x.redos],s).result){var S,C,w;let t=u.afterCommandExecute({id:zc.id,params:_});return(0,e.sequenceExecute)(t.redos,s),c.pushUndoRedo({unitID:m,undoMutations:[...(S=x.preUndos)==null?[]:S,{id:gt.id,params:y},{id:q.id,params:b},...(C=x.undos)==null?[]:C,...t.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:vt.id,params:_},{id:q.id,params:v},...x.redos,...t.redos]}),!0}return!0}};function Bc(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 Vc(e){return Hc(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function Hc(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}const Uc=(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().tabColor;return{...e.Tools.deepClone(n),color:r}},Wc={id:`sheet.mutation.set-tab-color`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!r)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().tabColor=n.color,!0):!1}},Gc={type:e.CommandType.COMMAND,id:`sheet.command.set-tab-color`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={color:n.value,unitId:o,subUnitId:s},l=Uc(t,c);return r.syncExecuteCommand(Wc.id,c)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Wc.id,params:l}],redoMutations:[{id:Wc.id,params:c}]}),!0):!1}},Kc={id:`sheet.mutation.set-workbook-name`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUnit(n.unitId,e.UniverInstanceType.UNIVER_SHEET);return r?(r.setName(n.name),!0):!1}},qc={type:e.CommandType.COMMAND,id:`sheet.command.set-workbook-name`,handler:(t,n)=>{var r;let i=t.get(e.ICommandService),a=t.get(k);if(!d(t.get(e.IUniverInstanceService),n))return!1;let o=a.onCommandExecute({id:qc.id,params:n}),s={name:n.name,unitId:n.unitId};return(0,e.sequenceExecute)([...(r=o.preRedos)==null?[]:r,{id:Kc.id,params:s},...o.redos],i).result}},Jc={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(t,n,r)=>{let i=t.get(e.ICommandService),a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a;return new Promise(e=>{setTimeout(()=>{e(i.syncExecuteCommand(Pt.id,{unitId:o,subUnitId:s},r))},4)})}},Yc={type:e.CommandType.COMMAND,id:`sheet.command.delta-column-width`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections();if(!(r!=null&&r.length))return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=f(t.get(e.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===e.RANGE_TYPE.ALL,h=r.filter(t=>t.range.rangeType===e.RANGE_TYPE.COLUMN),g=m?e.RANGE_TYPE.ALL:h.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=u&&u<=n})?e.RANGE_TYPE.COLUMN:e.RANGE_TYPE.NORMAL,_;if(g===e.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===e.RANGE_TYPE.COLUMN?{subUnitId:l,unitId:c,ranges:h.map(t=>e.Rectangle.clone(t.range)),colWidth:p}:{subUnitId:l,unitId:c,colWidth:p,ranges:[{startRow:0,endRow:s.getMaxRows()-1,startColumn:u,endColumn:u}]};let v=t.get(Ai).getSkeleton(c,l),{suitableRanges:y,remainingRanges:b}=Mi(_.ranges,v);ji(y,s);let x=t.get(k),{undos:S,redos:C}=x.onCommandExecute({id:Yc.id,params:_}),w=yt(_,s),T=i.syncExecuteCommand(bt.id,_),{undos:E,redos:D}=x.generateMutationsOfAutoHeight({unitId:c,subUnitId:l,ranges:y,autoHeightRanges:y,lazyAutoHeightRanges:b}),{undos:O,redos:A}=t.get(k).afterCommandExecute({id:Yc.id,params:_}),j=(0,e.sequenceExecute)([...C,...A,...D],i);return T&&j.result&&a.pushUndoRedo({unitID:c,undoMutations:[{id:bt.id,params:w},...S,...O,...E],redoMutations:[{id:bt.id,params:_},...C,...A,...D]}),!0}},Xc={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(t,n)=>{var r,i;let a=t.get(G),o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.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(t.get(e.IUniverInstanceService),n);if(!u)return!1;let{subUnitId:d,unitId:p,worksheet:m}=u,h=t.get(Ai).getSkeleton(p,d),g={subUnitId:d,unitId:p,ranges:l,colWidth:n.value},{suitableRanges:_,remainingRanges:v}=Mi(g.ranges,h);ji(_,m);let y=yt(g,m),b=o.syncExecuteCommand(bt.id,g),{undos:x,redos:S}=c.generateMutationsOfAutoHeight({unitId:p,subUnitId:d,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),C=c.onCommandExecute({id:Xc.id,params:g}),w=(0,e.sequenceExecute)([...C.redos,...S],o);if(b&&w.result){var T,E;let t=c.afterCommandExecute({id:Xc.id,params:g});return(0,e.sequenceExecute)(t.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(T=C.preUndos)==null?[]:T,{id:bt.id,params:y},...C.undos,...t.undos,...x],redoMutations:[...(E=C.preRedos)==null?[]:E,{id:bt.id,params:g},...C.redos,...t.redos,...S]}),!0}return!1}},Zc={type:e.CommandType.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(G),o=f(t.get(e.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}=t.get(k).onCommandExecute({id:Zc.id,params:u});return(0,e.sequenceExecute)([...p],r).result?(i.pushUndoRedo({unitID:s,undoMutations:[...d],redoMutations:[...p]}),!0):!1}},Qc={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-column-count`,handler:(t,n)=>{let{unitId:r,subUnitId:i,columnCount:a}=n,o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService);if(!f(t.get(e.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,columnCount:a},l=xt(t,c);return o.syncExecuteCommand(St.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:St.id,params:l}],redoMutations:[{id:St.id,params:c}]}),!0):!1}},$c={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-default-style`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{unitId:a}=n,o=wt(t,n);return r.syncExecuteCommand(Ct.id,n)?(i.pushUndoRedo({unitID:a,undoMutations:[{id:Ct.id,params:o}],redoMutations:[{id:Ct.id,params:n}]}),!0):!1}},el=(t,n)=>{let r=p(t.get(e.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()}},tl={id:`sheet.mutation.set-worksheet-hidden`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-hidden`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=t.get(e.ErrorService),o=t.get(e.LocaleService),s=f(t.get(e.IUniverInstanceService),n);if(!s)return!1;let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s;if(l.getConfig().hidden===e.BooleanNumber.TRUE)return!1;let p={unitId:u,subUnitId:d,hidden:e.BooleanNumber.TRUE},m=el(t,p);return c.getSheets().filter(t=>t.getConfig().hidden===e.BooleanNumber.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):r.syncExecuteCommand(tl.id,p)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:tl.id,params:m}],redoMutations:[{id:tl.id,params:p}]}),!0):!1}},rl=(t,n)=>{let r=p(t.get(e.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()}},il={id:`sheet.mutation.set-worksheet-name`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(r==null)return!1;let i=r.getSheetBySheetId(n.subUnitId);return i?(i.getConfig().name=n.name,!0):!1}},al={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(k),c=f(t.get(e.IUniverInstanceService),n);if(!c)return!1;let{unitId:l,subUnitId:u}=c,d={subUnitId:u,name:n.name,unitId:l},p=rl(t,d),m=s.onCommandExecute({id:al.id,params:n}),h=[...(r=m.preRedos)==null?[]:r,{id:il.id,params:d},...m.redos],g=[...(i=m.preUndos)==null?[]:i,{id:il.id,params:p},...m.undos];return(0,e.sequenceExecute)(h,a).result?(o.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},ol=(t,n)=>({...e.Tools.deepClone(n),toOrder:n.fromOrder,fromOrder:n.toOrder}),sl={id:`sheet.mutation.set-worksheet-order`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},cl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-order`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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=ol(t,l);return r.syncExecuteCommand(sl.id,l)?(i.pushUndoRedo({unitID:s,undoMutations:[{id:sl.id,params:u}],redoMutations:[{id:sl.id,params:l}]}),!0):!1}};var ll=class{constructor(){C(this,`_model`,new Map),C(this,`_pointChange`,new t.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]}},ul=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.Delete),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.Delete}.${i}`}},dl=class{constructor(t,r,i){C(this,`type`,n.UnitObject.SelectRange),C(this,`subType`,n.UnitAction.ManageCollaborator),C(this,`status`,e.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=t,this.subUnitId=r,this.permissionId=i,this.id=`${n.UnitObject.SelectRange}.${n.UnitAction.ManageCollaborator}.${i}`}};const fl=()=>[Qn,Zn,dl,ul],pl=[n.UnitAction.Edit,n.UnitAction.View,n.UnitAction.ManageCollaborator,n.UnitAction.Delete],ml=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>fl().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{}),hl=()=>[cr,hr,$n,yr,er,lr,pr,rr,or,_r,ur,sr,vr,mr,tr,br,gr,nr,fr,dr,ar,ir],gl=[n.UnitAction.Edit,n.UnitAction.Print,n.UnitAction.Comment,n.UnitAction.View,n.UnitAction.Copy,n.UnitAction.Export,n.UnitAction.ManageCollaborator,n.UnitAction.CreateSheet,n.UnitAction.DeleteSheet,n.UnitAction.RenameSheet,n.UnitAction.HideSheet,n.UnitAction.Duplicate,n.UnitAction.Share,n.UnitAction.MoveSheet,n.UnitAction.CopySheet,n.UnitAction.RecoverHistory,n.UnitAction.ViewHistory,n.UnitAction.CreatePermissionObject,n.UnitAction.InsertRow,n.UnitAction.InsertColumn,n.UnitAction.DeleteRow,n.UnitAction.DeleteColumn],_l=()=>[Tr,Br,jr,Cr],vl=()=>[xr,Sr,wr,Er,Dr,Or,Ar,kr,Mr,Fr,Ir,Lr,Rr,zr],yl=[n.UnitAction.Copy,n.UnitAction.DeleteColumn,n.UnitAction.DeleteRow,n.UnitAction.EditExtraObject,n.UnitAction.Filter,n.UnitAction.InsertColumn,n.UnitAction.InsertRow,n.UnitAction.InsertHyperlink,n.UnitAction.PivotTable,n.UnitAction.SetCellStyle,n.UnitAction.SetCellValue,n.UnitAction.SetColumnStyle,n.UnitAction.SetRowStyle,n.UnitAction.Sort];let bl=class extends e.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 t=e=>{let t=e.getUnitId(),n=e=>{let n=e.getSheetId();[..._l(),...vl()].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=>{[...fl()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[..._l(),...vl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})})};this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this._univerInstanceService.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,a.takeUntil)(this.dispose$)).subscribe(t),this._univerInstanceService.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).pipe((0,a.takeUntil)(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();_l().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`:_l().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:_l().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:[n.UniverType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{_l().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();[..._l(),...vl()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),hl().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:[n.UniverType.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{vl().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};bl=T([w(0,(0,e.Inject)(e.IPermissionService)),w(1,(0,e.Inject)(e.IUniverInstanceService)),w(2,(0,e.Inject)(e.Injector)),w(3,(0,e.Inject)(Xa)),w(4,(0,e.Inject)(ll)),w(5,(0,e.Inject)(e.IResourceManagerService)),w(6,(0,e.Inject)(U)),w(7,(0,e.Inject)(e.ILogService))],bl);const xl={id:`sheet.mutation.set-worksheet-permission-points`,type:e.CommandType.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(ll).addRule(n),!0}},Sl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-permission-points`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),{rule:i}=n;return r.executeCommand(xl.id,{rule:i,unitId:i.unitId,subUnitId:i.subUnitId}),!0}},Cl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-protection`,async handler(t,n){if(!n)return!1;let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),{rule:a,permissionId:o,oldRule:s}=n,{unitId:c,subUnitId:l}=a,u={...a,permissionId:o};if(await r.executeCommand(Nc.id,{unitId:c,subUnitId:l,newRule:u})){let e=[{id:Nc.id,params:{unitId:c,subUnitId:l,newRule:u}}],t=[{id:Nc.id,params:{unitId:c,subUnitId:l,rule:s}}];i.pushUndoRedo({unitID:c,redoMutations:e,undoMutations:t})}return!0}},wl=(t,n)=>{let r=t.get(e.IUniverInstanceService).getUniverSheetInstance(n.unitId).getSheetBySheetId(n.subUnitId).getConfig().rightToLeft;return{...e.Tools.deepClone(n),rightToLeft:r}},Tl={id:`sheet.mutation.set-worksheet-right-to-left`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.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}},El={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-right-to-left`,handler:async(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.IUniverInstanceService),n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=e.BooleanNumber.FALSE;if(n){var l;c=(l=n.rightToLeft)==null?e.BooleanNumber.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=wl(t,u);return r.syncExecuteCommand(Tl.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Tl.id,params:d}],redoMutations:[{id:Tl.id,params:u}]}),!0):!1}},Dl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-row-count`,handler:(t,n)=>{let{unitId:r,subUnitId:i,rowCount:a}=n,o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService);if(!f(t.get(e.IUniverInstanceService),n))return!1;let c={unitId:r,subUnitId:i,rowCount:a},l=Tt(t,c);return o.syncExecuteCommand(Et.id,c)?(s.pushUndoRedo({unitID:r,undoMutations:[{id:Et.id,params:l}],redoMutations:[{id:Et.id,params:c}]}),!0):!1}},Ol={type:e.CommandType.COMMAND,id:`sheet.command.delta-row-height`,handler:async(t,n)=>{let r=t.get(G).getCurrentSelections(),i=t.get(k);if(!(r!=null&&r.length))return!1;let a=f(t.get(e.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===e.RANGE_TYPE.ALL,m=r.filter(t=>t.range.rangeType===e.RANGE_TYPE.ROW),h=p?e.RANGE_TYPE.ALL:m.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?e.RANGE_TYPE.ROW:e.RANGE_TYPE.NORMAL,g;if(h===e.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===e.RANGE_TYPE.ROW?{subUnitId:s,unitId:c,ranges:m.map(t=>e.Rectangle.clone(t.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let _=Dt(g,o),v={unitId:c,subUnitId:s,ranges:g.ranges,autoHeightInfo:e.BooleanNumber.FALSE},y=Ot(v,o),b=t.get(e.ICommandService),x=t.get(e.IUndoRedoService),S=i.onCommandExecute({id:Ol.id,params:g}),C=(0,e.sequenceExecute)([{id:At.id,params:g},{id:jt.id,params:v}],b),w=(0,e.sequenceExecute)([...S.redos],b);if(C.result&&w.result){var T,E;let t=i.afterCommandExecute({id:Ol.id,params:g});return(0,e.sequenceExecute)(t.redos,b),x.pushUndoRedo({unitID:c,undoMutations:[...(T=S.preUndos)==null?[]:T,{id:At.id,params:_},{id:jt.id,params:y},...S.undos,...t.undos],redoMutations:[...(E=S.preRedos)==null?[]:E,{id:At.id,params:g},{id:jt.id,params:v},...S.redos,...t.redos]}),!0}return!1}},kl={type:e.CommandType.COMMAND,id:`sheet.command.set-row-height`,handler:(t,n)=>{var r,i;let a=t.get(G),o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),c=t.get(e.IUniverInstanceService),l=t.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},_=Dt(g,h),v={unitId:p,subUnitId:m,ranges:g.ranges,autoHeightInfo:e.BooleanNumber.FALSE},y=Ot(v,h),b=(0,e.sequenceExecute)([{id:At.id,params:g},{id:jt.id,params:v}],o),x=l.onCommandExecute({id:kl.id,params:g}),S=(0,e.sequenceExecute)([...x.redos],o);if(b.result&&S.result){var C,w;let t=l.afterCommandExecute({id:kl.id,params:g});return(0,e.sequenceExecute)(t.redos,o),s.pushUndoRedo({unitID:p,undoMutations:[...(C=x.preRedos)==null?[]:C,{id:At.id,params:_},{id:jt.id,params:y},...x.undos,...t.undos],redoMutations:[...(w=x.preRedos)==null?[]:w,{id:At.id,params:g},{id:jt.id,params:v},...x.redos,...t.redos]}),!0}return!1}},Al={type:e.CommandType.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(t,n)=>{var r,i;let a=t.get(e.ICommandService),o=t.get(e.IUndoRedoService),s=t.get(G),c=f(t.get(e.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:e.BooleanNumber.TRUE},h=Ot(m,d),g=a.syncExecuteCommand(jt.id,m),_=t.get(Ai).getSkeleton(l,u),{suitableRanges:v,remainingRanges:y}=Mi(m.ranges,_),b=t.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:Al.id,params:m}),T=(0,e.sequenceExecute)([...w,...S],a);return g&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:jt.id,params:h},...C,...x],redoMutations:[{id:jt.id,params:m},...w,...S]}),!0):!1}},jl={type:e.CommandType.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(t,n)=>{let r=f(t.get(e.IUniverInstanceService),n);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r;if(o.getConfig().hidden===e.BooleanNumber.FALSE)return!1;let s=t.get(e.ICommandService),c=t.get(e.IUndoRedoService),l={unitId:i,subUnitId:a,hidden:e.BooleanNumber.FALSE},u=el(t,l),d=s.syncExecuteCommand(tl.id,l),p={unitId:i,subUnitId:a},m=s.syncExecuteCommand(Pt.id,p);return d&&m?(c.pushUndoRedo({unitID:i,undoMutations:[{id:tl.id,params:u}],redoMutations:[{id:tl.id,params:l}]}),!0):!1}},Ml={type:e.CommandType.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(t,n)=>{let r=f(t.get(e.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}=dn(o,s,c,l,u),h=o.getColumnCount(),{startColumn:g}=e.Range.transformRange(s,o);if(s.startColumn!==s.endColumn)return!1;let _=t.get(e.ICommandService),v=t.get(e.IUndoRedoService),y=[],b=[],x=g+m+1-h;if(x>0){let e={unitId:i,subUnitId:a,range:{startRow:0,endRow:o.getRowCount()-1,startColumn:h-1,endColumn:h-1+x}};y.push({id:F.id,params:e});let n=xe(t,e);b.push({id:L.id,params:n})}let S={startRow:s.startRow,endRow:d,startColumn:g,endColumn:g+m},C=new e.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=B(t,w);return y.push({id:V.id,params:w}),b.unshift({id:V.id,params:T}),(0,e.sequenceExecute)(y,_).result?(v.pushUndoRedo({unitID:i,undoMutations:b,redoMutations:y}),!0):!1}},Nl=(0,e.createIdentifier)(`INumfmtService`),Pl=(t,n)=>{let r=t.get(Nl),{values:i,unitId:a,subUnitId:o}=n,s=[],c=[];Object.keys(i).forEach(t=>{i[t].ranges.forEach(t=>{e.Range.foreach(t,(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=Rl(a,o,s);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=en(n.ranges)}),l.push({id:Fl.id,params:Rl(a,o,s)})}return c.length&&l.push({id:Il.id,params:{unitId:a,subUnitId:o,ranges:c}}),l},Fl={id:`sheet.mutation.set.numfmt`,type:e.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{values:n,refMap:r}=t,i=e.get(Nl),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}},Il={id:`sheet.mutation.remove.numfmt`,type:e.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t;return e.get(Nl).deleteValues(n,r,i),!0}},Ll=(t,n)=>{let r=t.get(Nl),{ranges:i,unitId:a,subUnitId:o}=n,s=[];if(i.forEach(t=>{e.Range.foreach(t,(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=Rl(a,o,s);return Object.keys(c.values).forEach(e=>{let t=c.values[e];t.ranges=en(t.ranges)}),[{id:Fl.id,params:c}]},Rl=(t,n,r)=>{let i=fn(r,`pattern`),a={},o={},s=pn();return Object.keys(i).forEach(t=>{let n=i[t],r=s();a[r]={pattern:t},n.forEach(t=>{o[r]||(o[r]={ranges:[]}),o[r].ranges.push((0,e.cellToRange)(t.row,t.col))})}),{unitId:t,subUnitId:n,refMap:a,values:o}},zl={id:`sheet.command.text-to-number`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;let i=f(t.get(e.IUniverInstanceService),n);if(!i)return!1;let a=(n==null?void 0:n.ranges)||((r=t.get(G).getCurrentSelections())==null?void 0:r.map(e=>e.range));if(!(a!=null&&a.length))return!1;let o=t.get(e.ICommandService),s=t.get(e.IUndoRedoService),{worksheet:c,unitId:l,subUnitId:u}=i,d=new e.ObjectMatrix,p=[];for(let t=0;t<a.length;t++)for(let n=a[t].startRow;n<=a[t].endRow;n++)for(let r=a[t].startColumn;r<=a[t].endColumn;r++){var m,h;if(d.getValue(n,r))continue;let t=c.getCellRaw(n,r),i=typeof(t==null?void 0:t.s)==`string`?(m=c.getStyleDataByHash(t.s))==null||(m=m.n)==null?void 0:m.pattern:t==null||(h=t.s)==null||(h=h.n)==null?void 0:h.pattern;t&&t.v&&(t.t!==e.CellValueType.NUMBER||(0,e.isTextFormat)(i))&&(0,e.isRealNum)(t.v)&&(d.setValue(n,r,{v:Number(t.v),t:e.CellValueType.NUMBER}),(0,e.isTextFormat)(i)&&p.push({startRow:n,endRow:n,startColumn:r,endColumn:r}))}let g={subUnitId:u,unitId:l,cellValue:d.getMatrix()},_=[{id:V.id,params:g}],v=[{id:V.id,params:B(t,g)}];if(p.length){let e={unitId:l,subUnitId:u,ranges:p};_.push({id:Il.id,params:e}),v.push(...Ll(t,e))}return(0,e.sequenceExecute)(_,o).result?(s.pushUndoRedo({unitID:l,undoMutations:v,redoMutations:_}),!0):!1}},Bl={id:`sheet.command.toggle-cell-checkbox`,type:e.CommandType.COMMAND,handler:(t,n)=>{if(!n)return!1;let{unitId:r,subUnitId:i,row:a,col:o,paragraphIndex:s}=n,c=t.get(e.IUniverInstanceService).getUnit(r,e.UniverInstanceType.UNIVER_SHEET),l=c==null?void 0:c.getSheetBySheetId(i),u=t.get(e.IUndoRedoService),d=t.get(e.ICommandService);if(!l)return!1;let f=l.getCell(a,o);if(!(f!=null&&f.p))return!1;let p=e.Tools.deepClone(f.p),m=new e.DocumentDataModel(p),h=e.BuildTextUtils.paragraph.bullet.toggleChecklist({document:m,paragraphIndex:s});if(!h)return!1;e.TextX.apply(m.getBody(),h.serialize());let g={unitId:r,subUnitId:i,cellValue:{[a]:{[o]:{p,t:e.CellValueType.STRING}}}},_={id:V.id,params:g},v=B(t,g),y={id:V.id,params:v},b=[_],x=[y];return u.pushUndoRedo({redoMutations:b,undoMutations:x,unitID:r}),d.syncExecuteCommand(_.id,_.params)}},Vl={type:e.CommandType.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(t,n)=>{let r=t.get(e.ICommandService),i=t.get(e.IUndoRedoService),a=f(t.get(e.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===e.BooleanNumber.TRUE?e.BooleanNumber.FALSE:e.BooleanNumber.TRUE,unitId:c,subUnitId:l},d={showGridlines:s,unitId:c,subUnitId:l};return r.syncExecuteCommand(Nt.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Nt.id,params:d}],redoMutations:[{id:Nt.id,params:u}]}),!0):!1}},Hl={id:`sheet.command.unregister-worksheet-range-theme-style`,type:e.CommandType.COMMAND,handler:(t,n)=>{var r;if(!n||!f(t.get(e.IUniverInstanceService),n))return!1;let i=t.get(e.ICommandService),a=t.get(e.IUndoRedoService),o=t.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(ec.id,n)?(a.pushUndoRedo({unitID:s,undoMutations:[{id:ec.id,params:u}],redoMutations:[{id:tc.id,params:l}]}),!0):!1}},Ul={id:`sheet.mutation.add-range-theme`,type:e.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}},Wl={id:`sheet.mutation.empty`,type:e.CommandType.MUTATION,handler:()=>!0},Gl={id:`sheet.mutation.mark-dirty-filter-change`,type:e.CommandType.MUTATION,handler:()=>!0},Kl={id:`sheet.mutation.remove-range-theme`,type:e.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(N).unregisterRangeThemeStyle(r,n),!0}},ql={id:`sheet.mutation.set-range-theme`,type:e.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}},Jl={id:`sheet.operation.mark-dirty-row-auto-height`,type:e.CommandType.OPERATION,handler:()=>!0},Yl={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:e.CommandType.OPERATION,handler:()=>!0},Xl={id:`sheet.operation.scroll-to-cell`,type:e.CommandType.OPERATION,handler:()=>!0},{getLenS:Zl,getDataIndex:Ql,fillCopy:$l,fillCopyStyles:eu,generateNullCellValueRowCol:tu}=es,{otherRule:nu}=_s;let ru=class extends e.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:ts.DEFAULT,priority:0,onBeforeFillData:(e,t)=>this._presetAndCacheData(e,t),onFillData:(e,t,n)=>this._fillData(e,t,n)}))}_presetAndCacheData(t,n){var r;let{unitId:i,subUnitId:a,target:o}=t,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(t=>{let n=[];o.cols.forEach(r=>{n.push(e.Tools.deepClone(c.getValue(t,r)))}),l.push(n)}),this._beforeApplyData=l,this._copyData=this._getCopyData(t,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=Zl(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=Ql(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(t,n,r,i,a,o,s){let{data:c}=t,l=r===e.Direction.UP||r===e.Direction.LEFT;if(i===Z.COPY){let e=a==null?void 0:a[Z.COPY];return e?e(t,n,r,o,s):(l&&c.reverse(),$l(c,n))}if(i===Z.SERIES){let e=a==null?void 0:a[Z.SERIES];return e?e(t,n,r,o):(l&&c.reverse(),a!=null&&a[Z.COPY]?a[Z.COPY](t,n,r,o,s):$l(c,n))}if(i===Z.ONLY_FORMAT){let e=a==null?void 0:a[Z.ONLY_FORMAT];return e?e(t,n,r,o):eu(c,n)}}_getCopyData(t,n){var r;let{unitId:i,subUnitId:a,source:o}=t,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===e.Direction.DOWN||n===e.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))||nu;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(t,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=t.startRow;a<=t.endRow;a++)for(let o=t.startColumn;o<=t.endColumn;o++){let{isMergedMainCell:t,startRow:s,startColumn:c,endRow:d,endColumn:f}=l.getCellInfoInMergeData(a,o);if(t){if(r===e.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===e.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===e.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===e.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(t,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}=t;if(!c||!l||n==null)return{undos:a,redos:o};let f=yn(c),p=yn(l),{cols:g,rows:_}=l,{cols:v,rows:y}=c,b=this._copyData,x;x=n===e.Direction.DOWN||n===e.Direction.UP?y.length:v.length;let S=[];if(n===e.Direction.DOWN||n===e.Direction.UP){let e=_.length,i=[];g.forEach((a,o)=>{let c=b[o],l=this._getApplyData(c,x,e,n,r,s,t);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 e=g.length;_.forEach((i,a)=>{let o=b[a],c=this._getApplyData(o,x,e,n,r,s,t),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,t),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 t=[],n=(T=this._univerInstanceService.getUniverSheetInstance(u))==null||(T=T.getSheetBySheetId(d))==null?void 0:T.getMergeData();if(n&&n.forEach(n=>{e.Rectangle.intersects(n,p)&&t.push(n)}),t.length){let e={unitId:u,subUnitId:d,ranges:t},n=this._injector.invoke(R,e);o.push({id:z.id,params:e}),a.unshift({id:h.id,params:n})}}let E={subUnitId:d,unitId:u,cellValue:tu([l])},D=this._injector.invoke(B,E);o.push({id:V.id,params:E}),a.unshift({id:V.id,params:D});let O=new e.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(B,A);if(this._autoFillService.getActiveHooks().forEach(e=>{var i;(i=e.onBeforeSubmit)==null||i.call(e,t,n,r,k)}),a.unshift({id:V.id,params:j}),o.push({id:V.id,params:A}),C!=null&&C.length){let e={unitId:u,subUnitId:d,ranges:Aa(C)},t=this._injector.invoke(m,e);a.unshift({id:z.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}};ru=T([w(0,e.IUniverInstanceService),w(1,Ds),w(2,(0,e.Inject)(e.Injector))],ru);const iu=`maxCellsPerSheet`;let au=class extends e.Disposable{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){let t=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:[e.UniverInstanceType.UNIVER_SHEET],toJson:e=>t(e),parseJson:e=>n(e),onUnLoad:e=>{this._definedNamesService.removeUnitDefinedName(e)},onLoad:(e,t)=>{this._definedNamesService.registerDefinedNames(e,t)}}))}};au=T([w(0,i.IDefinedNamesService),w(1,e.IResourceManagerService)],au);const ou=[Oc.id],su=[P.id,F.id,I.id,L.id,we.id,Ee.id];let cu=class extends e.Disposable{constructor(t,n,r){var i,a;super(),this._univerInstanceService=t,this._commandService=n,this._configService=r,C(this,`_d`,new e.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)=>{ou.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(su.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===P.id?this._handleInsertRowMutation(r,t):n===F.id?this._handleInsertColMutation(r,t):n===I.id?this._handleRemoveRowMutation(r,t):n===L.id?this._handleRemoveColMutation(r,t):n===we.id?this._handleMoveRowsMutation(r,t):n===Ee.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(t,n){let r=this._univerInstanceService.getUnit(t,e.UniverInstanceType.UNIVER_SHEET);if(!r)return null;let i=r.getSheetBySheetId(n);return i?i.getFreeze():null}_sequenceExecute(t,n,r,i){(0,e.sequenceExecute)([{id:Oc.id,params:{...r,unitId:t,subUnitId:n,resetScroll:!1}}],this._commandService,i)}};cu=T([w(0,(0,e.Inject)(e.IUniverInstanceService)),w(1,e.ICommandService),w(2,e.IConfigService)],cu);let lu=class extends e.Disposable{constructor(n,r,i,a,o,s,c,l,u,d){super(),this._commandService=n,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 e.DisposableCollection),C(this,`_triggerPermissionUIEvent$`,new t.Subject),C(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}blockExecuteWithoutPermission(t){throw this._triggerPermissionUIEvent$.next(t),new e.CustomCommandExecutionError(`have no permission`)}_getPermissionCheck(t,n){let r=!0,i=``;switch(t){case Vr.id:(0,e.isICellData)(n.value)&&n.value.f?(r=this._permissionCheckWithFormula(n),i=this._localeService.t(`permission.dialog.formulaErr`)):r=this._permissionCheckBySetRangeValue({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Ir,Tr]},n);break;case Ps.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Ir,Tr]},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 Yc.id:case Xc.id:r=this.permissionCheckWithoutRange({worksheetTypes:[Lr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Ol.id:case kl.id:case Al.id:r=this.permissionCheckWithoutRange({worksheetTypes:[Rr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Oi.id:case Ei.id:r=this._permissionCheckByMoveCommand(n),i=this._localeService.t(`permission.dialog.moveRowColErr`);break;case Kn.id:r=this._permissionCheckByMoveRangeCommand(n),i=this._localeService.t(`permission.dialog.moveRangeErr`);break;case cl.id:r=this._permissionCheckByWorksheetCommand([cr,mr]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case al.id:r=this._permissionCheckByWorksheetCommand([cr,_r]),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case jl.id:{let{unitId:e,subUnitId:t}=n;r=this._permissionCheckByWorksheetCommand([cr,ur],e,t),i=this._localeService.t(`permission.dialog.operatorSheetErr`),r===!1&&this._worksheetProtectionRuleModel.resetOrder()}break;case bc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Tr,Lr]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Lc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Tr,Rr]},n.ranges,n.unitId,n.subUnitId),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case xc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Tr,Lr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Rc.id:r=this.permissionCheckWithRanges({workbookTypes:[cr],rangeTypes:[Zn],worksheetTypes:[Tr,Rr]}),i=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case $r.id:r=this._permissionCheckWithInsertRangeMove(`right`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Zr.id:r=this._permissionCheckWithInsertRangeMove(`bottom`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case qr.id:r=this._permissionCheckWithInsertRangeMove(`left`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Yr.id:r=this._permissionCheckWithInsertRangeMove(`top`),i=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Os.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(t=>{if(t.id===il.id){var n;let{unitId:r=(n=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId(),subUnitId:i}=t.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(t){var n;let r=f(this._univerInstanceService);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=e.Tools.deepClone((n=this._selectionManagerService.getCurrentLastSelection())==null?void 0:n.range);return!(!s||(t===`top`||t===`bottom`?s.endRow=i.getRowCount()-1:(t===`left`||t===`right`)&&(s.endColumn=i.getColumnCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(a,o).map(e=>e.ranges).flat().some(t=>e.Rectangle.getIntersects(s,t))))}_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 pr(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(t,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}=t,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(t=>{s.some(n=>t.ranges.some(t=>e.Rectangle.intersects(t,n)))&&m.push(...p.map(e=>new e(c,l,t.permissionId).id))}),m.length?this._permissionService.composePermission(m).every(e=>e.value):!0}_permissionCheckByMoveCommand(t){let r=f(this._univerInstanceService,t);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=t.toRange;s.endRow===i.getRowCount()-1?s.endColumn=s.startColumn:s.endRow=s.startRow;let c=this._rangeProtectionRuleModel.getSubunitRuleList(a,o).reduce((e,t)=>[...e,...t.ranges],[]).filter(t=>e.Rectangle.intersects(t,s));return c.length>0?!1:(c.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let a=e.startColumn;a<=e.endColumn;a++){var t;let e=(t=i.getCell(r,a))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[n.UnitAction.Edit])===!1)return!1}}),!0)}_permissionCheckByMoveRangeCommand(t){let r=f(this._univerInstanceService);if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=t.toRange,c=this._rangeProtectionRuleModel.getSubunitRuleList(a,o).reduce((e,t)=>[...e,...t.ranges],[]).filter(t=>e.Rectangle.intersects(t,s));return c.length>0?!1:(c.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let a=e.startColumn;a<=e.endColumn;a++){var t;let e=(t=i.getCell(r,a))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[n.UnitAction.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(t,n){let r=[];r=n.range?[n.range]:[new e.ObjectMatrix(n.value).getDataRange()];let{unitId:i,subUnitId:a}=n;return this.permissionCheckWithRanges(t,r,i,a)}_permissionCheckWithFormula(t){let r=t.value,a=t.range,o=r.f;if(o){var s;let r=o.substring(1),a=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET),u=(s=t.unitId)==null?a.getUnitId():s,d=this._definedNamesService.getValueByName(u,r);if(d){let e=d.formulaOrRefString;e.startsWith(i.operatorToken.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let r=t[e],o=(0,i.deserializeRangeWithSheet)(r);if(o.sheetName){let e=a.getSheetBySheetName(o.sheetName);if(!e)return!0;let{startRow:t,endRow:r,startColumn:i,endColumn:s}=o.range;for(let a=t;a<=r;a++)for(let t=i;t<=s;t++){var c;let r=(c=e.getCell(a,t))==null||(c=c.selectionProtection)==null?void 0:c[0];if((r==null?void 0:r[n.UnitAction.View])===!1)return!1}}}return!0}else{let t=this._lexerTreeBuilder.sequenceNodesBuilder(o);if(!t)return!0;for(let r=0;r<t.length;r++){let a=t[r];if(typeof a==`string`||a.nodeType!==i.sequenceNodeType.REFERENCE)continue;let{token:o}=a,s=(0,i.deserializeRangeWithSheetWithCache)(o),c=s.unitId?this._univerInstanceService.getUnit(s.unitId):this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!c)return!0;let u=s.sheetName?c.getSheetBySheetName(s.sheetName):c.getActiveSheet(),d=c.getUnitId();if(s.sheetName){if(u=c.getSheetBySheetName(s.sheetName),!u)return!0;let e=u==null?void 0:u.getSheetId();if(!this._permissionService.getPermissionPoint(new Br(d,e).id))return!1}if(!u)return!0;let{startRow:f,endRow:p,startColumn:m,endColumn:h}=s.range;for(let e=f;e<=p;e++)for(let t=m;t<=h;t++){var l;let r=(l=u.getCell(e,t))==null||(l=l.selectionProtection)==null?void 0:l[0];if((r==null?void 0:r[n.UnitAction.View])===!1)return!1}}return!0}}if(a){let n=f(this._univerInstanceService,t);if(!n)return!1;let{unitId:r,subUnitId:i}=n,o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).filter(t=>t.ranges.some(t=>e.Rectangle.intersects(t,a))).map(e=>new Zn(r,i,e.permissionId).id);if(!this._permissionService.composePermission(o).every(e=>e.value))return!1}return!0}_permissionCheckByAutoFillCommand(t){if(!t)return!1;let{targetRange:r}=t,i=f(this._univerInstanceService,t);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i;return!this._rangeProtectionRuleModel.getSubunitRuleList(o,s).reduce((e,t)=>[...e,...t.ranges],[]).filter(t=>e.Rectangle.intersects(t,r)).some(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=a.getCell(r,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[n.UnitAction.Edit])===!1)return!0}return!1})}};lu=T([w(0,e.ICommandService),w(1,e.IUniverInstanceService),w(2,e.IPermissionService),w(3,(0,e.Inject)(G)),w(4,(0,e.Inject)(U)),w(5,(0,e.Inject)(Xa)),w(6,(0,e.Inject)(e.LocaleService)),w(7,(0,e.Inject)(i.LexerTreeBuilder)),w(8,e.IContextService),w(9,i.IDefinedNamesService)],lu);let uu=class extends e.Disposable{constructor(e,n,r,i,a){super(),this._permissionService=e,this._univerInstanceService=n,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._worksheetProtectionPointModel=a,C(this,`_unitPermissionInitStateChange`,new t.BehaviorSubject(!1)),C(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let t=e=>{let t=e.getUnitId();hl().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).forEach(e=>{t(e)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{t(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(e.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...fl()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[..._l(),...vl()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),hl().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)}};uu=T([w(0,(0,e.Inject)(e.IPermissionService)),w(1,(0,e.Inject)(e.IUniverInstanceService)),w(2,(0,e.Inject)(U)),w(3,(0,e.Inject)(Xa)),w(4,(0,e.Inject)(ll))],uu);let du=class extends e.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 t=async e=>{let t=[],r=e.getUnitId(),i=e.getSheets(),a=new Map;if(i.forEach(e=>{let i=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(r,i).forEach(e=>{a.set(e.permissionId,e),t.push({objectID:e.permissionId,unitID:r,objectType:n.UnitObject.SelectRange,actions:pl})})}),!t.length){this._rangeProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=a.get(e.objectID);if(t){if(!this._rangeProtectionRuleModel.getRule(r,t.subUnitId,t.id))return;fl().forEach(n=>{let i=new n(r,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(e.UniverInstanceType.UNIVER_SHEET).map(e=>t(e))),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),[...vl()].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:n.UnitObject.SelectRange,actions:pl}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(fl().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(t){var r;let i=t||((r=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.getUnitId());if(i)return this._authzIoService.allowed({objectID:i,objectType:n.UnitObject.Workbook,unitID:i,actions:gl}).then(e=>{hl().forEach(t=>{let n=new t(i),r=n.subType,a=e.find(e=>e.action===r);a&&this._permissionService.updatePermissionPoint(n.id,a.allowed)})})}async _initWorkbookPermissionFromSnapshot(){await Promise.all(this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).map(e=>this.initWorkbookPermissionChange(e.getUnitId()))),this._workbookPermissionService.changeUnitInitState(!0)}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?([..._l(),...vl()].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:n.UnitObject.Worksheet,actions:pl}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(_l().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:n.UnitObject.Worksheet,actions:yl}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||vl().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}))}async _initWorksheetPermissionFromSnapshot(){let t=async e=>{let t=[],r=e.getUnitId(),i=e.getSheets(),a=new Map;if(i.forEach(e=>{let i=e.getSheetId(),o=this._worksheetProtectionRuleModel.getRule(r,i);o&&(a.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:r,objectType:n.UnitObject.Worksheet,actions:pl}));let s=this._worksheetProtectionPointRuleModel.getRule(r,i);s&&(a.set(s.permissionId,s),t.push({objectID:s.permissionId,unitID:r,objectType:n.UnitObject.Worksheet,actions:yl}))}),!t.length){this._worksheetProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=a.get(e.objectID);if(t){let n=this._worksheetProtectionRuleModel.getRule(r,t.subUnitId)||this._worksheetProtectionPointRuleModel.getRule(r,t.subUnitId);if(!n||n.permissionId!==e.objectID)return;[..._l(),...vl()].forEach(n=>{let i=new n(r,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(e.UniverInstanceType.UNIVER_SHEET).map(e=>t(e))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe((0,t.skip)(1)).subscribe(()=>{let t=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(e.UniverInstanceType.UNIVER_SHEET).forEach(e=>{let n=e.getUnitId();hl().forEach(e=>{let r=new e(n);t.has(r.id)&&(r=t.get(r.id)),this._permissionService.addPermissionPoint(r)}),e.getSheets().forEach(e=>{let r=e.getSheetId();[..._l(),...vl()].forEach(e=>{let i=new e(n,r);t.has(i.id)&&(i=t.get(i.id)),this._permissionService.addPermissionPoint(i)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(e=>{fl().forEach(i=>{let a=new i(n,r,e.permissionId);t.has(a.id)&&(a=t.get(a.id)),this._permissionService.addPermissionPoint(a)})})}),this._initWorkbookPermissionFromSnapshot(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}refreshPermission(e,t){let r=this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t),i=!1;if(r){let[a,o]=r;this._authzIoService.allowed({objectID:t,unitID:e,objectType:n.UnitObject.Worksheet,actions:pl}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let r=``;_l().forEach(t=>{let a=new t(e,o),s=a.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(a.id))==null?void 0:l.value)!==c.allowed&&(i=!0),this._permissionService.updatePermissionPoint(a.id,c.allowed),r+=`${c.action}_${c.allowed}`}}),this._worksheetProtectionRuleModel.ruleRefresh(`${t}_${r}`),i&&this._undoRedoService.clearUndoRedo(e)})}let a=this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t);if(a){let[r,o]=a;this._authzIoService.allowed({objectID:t,unitID:e,objectType:n.UnitObject.Worksheet,actions:yl}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(vl().forEach(t=>{let r=new t(e,o),a=r.subType,s=n.find(e=>e.action===a);if(s){var c;((c=this._permissionService.getPermissionPoint(r.id))==null?void 0:c.value)!==s.allowed&&(i=!0),this._permissionService.updatePermissionPoint(r.id,s.allowed)}}),i&&this._undoRedoService.clearUndoRedo(e))})}let o=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(o){let[r,a]=o;this._authzIoService.allowed({objectID:t,unitID:e,objectType:n.UnitObject.SelectRange,actions:pl}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let r=``;fl().forEach(o=>{let s=new o(e,a,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&&(i=!0),this._permissionService.updatePermissionPoint(s.id,l.allowed),r+=`${l.action}_${l.allowed}`}}),this._rangeProtectionRuleModel.ruleRefresh(`${t}_${r}`),i&&this._undoRedoService.clearUndoRedo(e)})}}_refreshPermissionByCollaCreate(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(t!=null&&t.fromCollab&&(e.id===Dn.id||e.id===Za.id||e.id===xl.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};du=T([w(0,e.IUniverInstanceService),w(1,e.IPermissionService),w(2,e.IAuthzIoService),w(3,(0,e.Inject)(U)),w(4,(0,e.Inject)(Xa)),w(5,(0,e.Inject)(e.UserManagerService)),w(6,(0,e.Inject)(ll)),w(7,(0,e.Inject)(uu)),w(8,(0,e.Inject)(e.IUndoRedoService)),w(9,(0,e.Inject)(e.ICommandService))],du);let fu=class extends e.Disposable{constructor(e,n,r){super(),this._commandService=e,this._sheetRangeThemeModel=n,this._univerInstanceService=r,C(this,`_zebraCacheUpdateSubject`,new t.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 gt.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 I.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case At.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)}))}};fu=T([w(0,(0,e.Inject)(e.ICommandService)),w(1,(0,e.Inject)(N)),w(2,(0,e.Inject)(e.IUniverInstanceService))],fu);let pu=class{constructor(t,n){this._selectionProtectionRuleModel=t,this._permissionService=n,C(this,`_cache`,new e.LRUMap(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe((0,a.filter)(e=>e.type===n.UnitObject.SelectRange),(0,a.filter)(e=>fl().some(t=>e instanceof t)),(0,a.map)(e=>e)).subscribe(t=>{let n=this._selectionProtectionRuleModel.getSubunitRuleList(t.unitId,t.subUnitId);for(let r of n)r.permissionId===t.permissionId&&r.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=this._createKey(t.unitId,t.subUnitId,e,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(t=>{if(t.rule.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=this._createKey(t.unitId,t.subUnitId,e,n);this._cache.delete(r)})}),t.type===`set`){var n;(n=t.oldRule)==null||n.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=this._createKey(t.unitId,t.subUnitId,e,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=fl().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()}};pu=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IPermissionService))],pu);let mu=class extends e.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(e.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,t.filter)(e=>e.type===n.UnitObject.SelectRange),(0,t.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(t=>{let{unitId:n,subUnitId:r}=t,i=this._ensureCellInfoMap(n,r);if(t.rule.ranges.forEach(t=>{e.Range.foreach(t,(e,t)=>{i.delete(`${e}-${t}`)})}),t.type===`set`){var a;(a=t.oldRule)==null||a.ranges.forEach(t=>{e.Range.foreach(t,(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,r){var i,a,o,s,c,l,u,d,f,p,m,h;let g=(i=(a=this._permissionService.getPermissionPoint((o=new Zn(e,t,r.permissionId))==null?void 0:o.id))==null?void 0:a.value)==null?!1:i,_=(s=(c=this._permissionService.getPermissionPoint((l=new Qn(e,t,r.permissionId))==null?void 0:l.id))==null?void 0:c.value)==null?!1:s,v=(u=(d=this._permissionService.getPermissionPoint((f=new dl(e,t,r.permissionId))==null?void 0:f.id))==null?void 0:d.value)==null?!1:u,y=(p=(m=this._permissionService.getPermissionPoint((h=new ul(e,t,r.permissionId))==null?void 0:h.id))==null?void 0:m.value)==null?!1:p;return{[n.UnitAction.Edit]:g,[n.UnitAction.View]:_,[n.UnitAction.ManageCollaborator]:v,[n.UnitAction.Delete]:y}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe((0,t.filter)(e=>e.type===n.UnitObject.SelectRange),(0,t.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)})})}};mu=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IPermissionService)),w(2,(0,e.Inject)(e.IUniverInstanceService))],mu);var hu=`@univerjs/sheets`,gu=`0.20.1`;let _u=class extends e.Disposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,C(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Si.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Si.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===tl.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===Vs.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===tl.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===q.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=vu(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=vu(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(Pt.id,{unitId:e,subUnitId:t})}};_u=T([w(0,e.ICommandService),w(1,e.IUniverInstanceService)],_u);function vu(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 e.Disposable{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[V,F,P,Vs,Se,we,Ee,L,I,Si,z,Il,h,Kc,il,Fl,Ae,Wl,vt,gt,Jl,Yl,zs,Et,St,Gl].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||[Wa,Ga,Ka,qa,to,jn,Ps,Mn,Ks,qr,Yr,Yc,Ol,di,ui,fi,pi,li,ci,Zr,$r,ii,ri,oi,ai,ni,ti,Qs,Oi,Kn,Ei,gi,bi,yi,_i,ic,Fi,La,mo,fo,po,vc,_c,mc,hc,gc,Sc,Ie,Re,Xc,yc,Pe,kc,Oc,Ac,go,Fc,Vr,kl,zc,Ic,mt,xc,Rc,bc,Lc,X,Gc,Wc,uo,vo,_o,ho,qc,Jc,Pt,nl,tl,al,cl,sl,Mt,At,Al,jt,bt,Dl,Qc,Wn,q,Xl,Zs,rc,Ec,jl,Vl,Nt,jc,ze,zl,Sl,Za,Nc,Qa,xl,On,Pc,Js,$a,Ys,Cl,Dn,Tn,$,Bl,Ct,$c,Ml,ve,ge,tc,ec,Hl,nc,eo,Xs,Ul,ql,Kl,Os,js,Ms,Ns,$s].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(iu,3e6)}};yu=T([w(0,e.ICommandService),w(1,e.IConfigService),w(2,(0,e.Optional)(o.DataSyncPrimaryController))],yu);let bu=class extends e.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id!==i.SetFormulaCalculationResultMutation.id)return;let{unitData:n}=t.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:V.id,params:s})}}return(0,e.sequenceExecute)(a,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(t,n,r){let a=this._univerInstanceService.getUniverSheetInstance(t),o=a==null?void 0:a.getStyles(),s=a==null?void 0:a.getSheetBySheetId(n),c=s==null?void 0:s.getCellMatrix(),l=new e.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()}};bu=T([w(0,(0,e.Inject)(e.IUniverInstanceService)),w(1,e.ICommandService)],bu);let xu=class extends e.Disposable{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:11,effect:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(t,n,r)=>{var a;if(!t)return r(t);let o=n.workbook.getStyles().getStyleByCell(t);return(0,e.isDefaultFormat)(o==null||(a=o.n)==null?void 0:a.pattern)&&(t==null?void 0:t.t)===e.CellValueType.NUMBER&&t.v!==void 0&&t.v!==null&&(0,e.isRealNum)(t.v)?((!t||t===n.rawData)&&(t={...n.rawData}),t.v=(0,i.stripErrorMargin)(Number(t.v)),r(t)):r(t)}}))}};xu=T([w(0,(0,e.Inject)(k))],xu);let Su=class extends e.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:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(e,t,r)=>{let{unitId:i,subUnitId:a,row:o,col:s}=t,c=this._rangeProtectionCache.getCellInfo(i,a,o,s);if(c){let i=c[n.UnitAction.View]===!1,a=!e||e===t.rawData?{...t.rawData}:e;return a.selectionProtection=[c],i?(delete a.s,delete a.v,delete a.p,a):r(a)}return r(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(g.CELL_CONTENT,{priority:999,effect:e.InterceptorEffectEnum.Value|e.InterceptorEffectEnum.Style,handler:(e,t,r)=>{let{unitId:i,subUnitId:a}=t,o=this._worksheetProtectionRuleModel.getRule(i,a);if(o!=null&&o.permissionId){var s,c,l,u,d;let o=[{[n.UnitAction.View]:(s=(c=this._permissionService.getPermissionPoint(new Br(i,a).id))==null?void 0:c.value)==null?!1:s,[n.UnitAction.Edit]:(l=(u=this._permissionService.getPermissionPoint(new Tr(i,a).id))==null?void 0:u.value)==null?!1:l}],f=!((d=o[0])!=null&&d[n.UnitAction.View]),p=!e||e===t.rawData?{...e}:e;return p.hasWorksheetRule=!0,p.selectionProtection=o,f?(delete p.s,delete p.v,delete p.p,p):r(p)}return r(e)}}))}};Su=T([w(0,e.IPermissionService),w(1,(0,e.Inject)(Xa)),w(2,(0,e.Inject)(k)),w(3,(0,e.Inject)(mu))],Su);const Cu=(0,e.createIdentifier)(`univer.exclusive-range-service`);var wu=class extends e.Disposable{constructor(...e){super(...e),C(this,`_exclusiveRanges`,new Map),C(this,`_exclusiveRangesChange$`,new t.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(t){let n=[];return t.forEach(t=>{var r;let i=t.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 t of s.keys()){let r=s.get(t);if(r){for(let a of r)if(e.Rectangle.intersects(i,a.range)){n.push(t);break}}}}),n}};let Tu=class extends e.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(t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(t);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles();r.forEach(t=>{e.Range.foreach(t,(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(t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(t);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;let o=i.getStyles(),s=a.getCellMatrix();r.forEach(t=>{t.ranges.forEach(n=>{e.Range.foreach(n,(e,n)=>{let r=a.getCellRaw(e,n);if(r){let e={...o.getStyleByCell(r)||{},n:{pattern:t.pattern}};r.s=o.setValue(e)}else{let r={n:{pattern:t.pattern}},i=o.setValue(r);i&&s.setValue(e,n,{s:i})}})})})}};Tu=T([w(0,e.IResourceManagerService),w(1,e.IUniverInstanceService),w(2,e.ILogService)],Tu);const Eu=[F.id,P.id,L.id,I.id],Du=[we.id,Ee.id];let Ou=class extends e.Disposable{constructor(t,n,r,i,a,o,s,c){super(),this._selectionProtectionRuleModel=t,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 e.DisposableCollection),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let t=(t,n)=>{let r=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!r||!(r!=null&&r.getSheetBySheetId(n)))return;this.disposableCollection.dispose();let i=e=>this.refRangeHandle(e,t,n);this._selectionProtectionRuleModel.getSubunitRuleList(t,n).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,i,t,n))})};this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Jc.id){let n=e.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;t(i,r)}if(e.id===$.id||e.id===Dn.id){let n=e.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;t(i,r)}}));let n=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(n){let e=n.getActiveSheet();if(!e)return;t(n.getUnitId(),e.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case Ei.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Oi.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case ti.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case ci.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case bi.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case _i.id:return this._getRefRangeMutationsByDeleteRows(e.params,t,n);default:break}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>e.Rectangle.intersects(n,t.range))),a=t.range;if(i.length){let t=[],o=[];return i.forEach(i=>{let s=e.Tools.deepClone(i);s.ranges=s.ranges.reduce((t,n)=>{if(e.Rectangle.intersects(n,a)){let r=e.Tools.deepClone(n),{startColumn:i,endColumn:o}=a;if(i<=r.startColumn&&o>=r.endColumn)return t;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)&&t.push(r)}return t},[]),s.ranges.length?(t.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}})):(t.push({id:Tn.id,params:{unitId:n,subUnitId:r,ruleIds:[i.id]}}),o.push({id:Dn.id,params:{unitId:n,subUnitId:r,name:``,rules:[i]}}))}),{redos:t,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(n=>n.ranges.some(n=>e.Rectangle.intersects(n,t.range))),a=t.range;if(i.length){let t=[],o=[];return i.forEach(i=>{let s=e.Tools.deepClone(i);s.ranges=s.ranges.reduce((t,n)=>{if(e.Rectangle.intersects(n,a)){let r=e.Tools.deepClone(n),{startRow:i,endRow:o}=a;if(i<=r.startRow&&o>=r.endRow)return t;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)&&t.push(r)}return t},[]),t.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:t,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(t,n,r){let i=t.range.startColumn,a=t.range.endColumn-t.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 t=[],s=[];return o.forEach(o=>{let c=e.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startColumn&&i<=e.endColumn&&(e.endColumn+=a,l=!0)}),l&&(t.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:t,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(t,n,r){let i=t.range.startRow,a=t.range.endRow-t.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 t=[],s=[];return o.forEach(o=>{let c=e.Tools.deepClone(o),l=!1;c.ranges.forEach(e=>{i>e.startRow&&i<=e.endRow&&(e.endRow+=a,l=!0)}),l&&(t.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:t,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(t,n,r){let i=t.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=e.Tools.deepClone(s),u=t.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(t,n,r){let i=t.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=e.Tools.deepClone(s),u=t.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(t=>{if(Du.includes(t.id)){if(!t.params)return;let n=this._univerInstanceService.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(!n)return;let r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;let{sourceRange:i,targetRange:a}=t.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(t=>{t.ranges.forEach(t=>{let{startRow:n,endRow:r,startColumn:a,endColumn:u}=t;e.Rectangle.intersects(t,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})&&(t.startColumn=a,t.endColumn=u,t.startRow=n,t.endRow=r)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=t.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(Eu.includes(t.id)){let e=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!e)return;let n=e.getSheetBySheetId(t.params.subUnitId);if(!n)return;let r=t.params;if(!r)return;let{range:i}=r,a=t.id.includes(`row`),o=t.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(e.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}=t.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(Eu.includes(e.id)||Du.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===ic.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:Tn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:Dn.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};Ou=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IUniverInstanceService)),w(2,e.ICommandService),w(3,(0,e.Inject)(Ca)),w(4,(0,e.Inject)(pu)),w(5,(0,e.Inject)(mu)),w(6,(0,e.Inject)(k)),w(7,(0,e.Inject)(U))],Ou);let ku=class extends e.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`:fl().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:fl().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&&fl().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:[n.UniverType.UNIVER_SHEET],onLoad:(e,t)=>{let r=this._selectionProtectionRuleModel.toObject();r[e]=t,this._selectionProtectionRuleModel.fromObject(r);let i=[];Object.keys(t).forEach(r=>{let a=t[r];this._selectionProtectionRuleModel.getSubunitRuleList(e,r).forEach(t=>{i.push({objectID:t.permissionId,unitID:e,objectType:n.UnitObject.SelectRange,actions:pl})}),a.forEach(t=>{fl().forEach(n=>{let i=new n(e,r,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,r)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};ku=T([w(0,(0,e.Inject)(U)),w(1,(0,e.Inject)(e.IPermissionService)),w(2,(0,e.Inject)(e.IResourceManagerService)),w(3,(0,e.Inject)(mu)),w(4,(0,e.Inject)(e.IUniverInstanceService))],ku);let Au=class extends e.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()}};Au=T([w(0,(0,e.Inject)(N))],Au);let ju=class extends e.Plugin{constructor(t=Ls,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{...i}=(0,e.merge)({},Ls,this._config);this._configService.setConfig(Fs,i),this._initConfig(),this._initDependencies()}_initConfig(){var t,n,r;(t=this._config)!=null&&t.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`,!0),(n=this._config)!=null&&n.isRowStylePrecedeColumnStyle&&this._configService.setConfig(e.IS_ROW_STYLE_PRECEDE_COLUMN_STYLE,!0),(r=this._config)!=null&&r.autoHeightForMergedCells&&this._configService.setConfig(e.AUTO_HEIGHT_FOR_MERGED_CELLS,!0)}_initDependencies(){var t;let n=[[ac],[Rs],[G],[Ca],[uu],[Nl,{useClass:Tu}],[k],[Au],[Ai],[yu],[Ma],[xu],[au],[fu],[cu],[bl],[Xa],[ll],[Su],[du],[lu],[N],[pu],[U],[mu],[Ou],[ku],[Cu,{useClass:wu,deps:[G]}],[Ds,{useClass:Es}],[ru]];(t=this._config)!=null&&t.notExecuteFormula||n.push([bu]),(0,e.registerDependencies)(this._injector,(0,e.mergeOverrideWithDependencies)(n,this._config.override)),(0,e.touchDependencies)(this._injector,[[k],[ku],[Cu],[du],[cu]])}onStarting(){var t;(0,e.touchDependencies)(this._injector,[[yu],[Ma],[uu],[bl],[Su],[Ai],[ru]]),(t=this._config)!=null&&t.onlyRegisterFormulaRelatedMutations||this._injector.add([_u])}onRendered(){(0,e.touchDependencies)(this._injector,[[Nl]])}onReady(){(0,e.touchDependencies)(this._injector,[[_u],[bu],[au],[fu],[N],[xu],[pu],[Ou],[Ca],[lu]])}};C(ju,`pluginName`,`SHEET_PLUGIN`),C(ju,`packageName`,hu),C(ju,`version`,gu),C(ju,`type`,e.UniverInstanceType.UNIVER_SHEET),ju=T([(0,e.DependentOn)(i.UniverFormulaEnginePlugin),w(1,(0,e.Inject)(e.Injector)),w(2,e.IConfigService)],ju);const Mu={WorkbookCommentPermission:$n,WorkbookCopyPermission:er,WorkbookCreateProtectPermission:nr,WorkbookCreateSheetPermission:rr,WorkbookDeleteSheetPermission:or,WorkbookDuplicatePermission:sr,WorkbookEditablePermission:cr,WorkbookExportPermission:lr,WorkbookHideSheetPermission:ur,WorkbookManageCollaboratorPermission:pr,WorkbookMoveSheetPermission:mr,WorkbookPrintPermission:hr,WorkbookRecoverHistoryPermission:gr,WorkbookRenameSheetPermission:_r,WorkbookSharePermission:vr,WorkbookViewHistoryPermission:br,WorkbookViewPermission:yr,WorksheetCopyPermission:xr,WorksheetDeleteColumnPermission:Sr,WorksheetDeleteProtectionPermission:Cr,WorksheetDeleteRowPermission:wr,WorksheetEditExtraObjectPermission:Er,WorksheetEditPermission:Tr,WorksheetFilterPermission:Dr,WorksheetInsertColumnPermission:Or,WorksheetInsertHyperlinkPermission:kr,WorksheetInsertRowPermission:Ar,WorksheetManageCollaboratorPermission:jr,WorksheetPivotTablePermission:Mr,WorksheetSetCellStylePermission:Fr,WorksheetSetCellValuePermission:Ir,WorksheetSetColumnStylePermission:Lr,WorksheetSetRowStylePermission:Rr,WorksheetSortPermission:zr,WorksheetViewPermission:Br,RangeProtectionPermissionEditPoint:Zn,RangeProtectionPermissionViewPoint:Qn},Nu=(t,n,r,i)=>{let a=t.get(e.IPermissionService),o=t.get(U),s=a.getPermissionPoint(new cr(n).id);if(!(s!=null&&s.value))return!1;let c=a.getPermissionPoint(new Tr(n,r).id);if(!(c!=null&&c.value))return!1;let l=o.getSubunitRuleList(n,r).filter(t=>t.ranges.some(t=>i.some(n=>e.Rectangle.intersects(t,n))));return l.length?l.every(e=>{let t=e.permissionId,i=a.getPermissionPoint(new Zn(n,r,t).id);return!!(i!=null&&i.value)}):!0},Pu=(t,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=e.Range.transformRange(t,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 Iu(t,n,{...r,startRow:c,endRow:c},i,a,!1)},Fu=(t,n,r,i=1,a=!0,o=!0)=>{let{startRow:s,endRow:c}=e.Range.transformRange(t,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 Lu(t,n,{...r,startRow:s,endRow:s},i,a,!1)},Iu=(t,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=e.Range.transformRange(t,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 Pu(t,n,{...r,startColumn:c,endColumn:c},i,a,!1)},Lu=(t,n,r,i=1,a=!0,o=!0)=>{let{startColumn:s,endColumn:c}=e.Range.transformRange(t,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 Fu(t,n,{...r,startColumn:s,endColumn:s},i,a,!1)};function Ru(t,n,r){let i=null;return r.getMatrixWithMergedCells(t,n,t,n).forValue((t,n,r)=>(i={actualRow:t,actualColumn:n,startRow:t,startColumn:n,isMerged:r.rowSpan!==void 0||r.colSpan!==void 0,isMergedMainCell:r.rowSpan!==void 0&&r.colSpan!==void 0,endRow:t+(r.rowSpan===void 0?0:r.rowSpan-1),endColumn:n+(r.colSpan===void 0?0:r.colSpan-1),rangeType:e.RANGE_TYPE.NORMAL},!1)),i||{actualColumn:n,actualRow:t,startRow:t,startColumn:n,endRow:t,endColumn:n,isMerged:!1,isMergedMainCell:!1,rangeType:e.RANGE_TYPE.NORMAL}}const zu=(t,n,r,i,a=1)=>{switch(i){case e.Direction.UP:return Pu(t,n,r,a);case e.Direction.DOWN:return Fu(t,n,r,a);case e.Direction.LEFT:return Iu(t,n,r,a);case e.Direction.RIGHT:return Lu(t,n,r,a)}},Bu=(t,n,r)=>{let i,a=-1,o;for(let e=0;e<t.length;e++)if(t[e].primary){i=t[e],a=e,o=i.primary;break}if(a===-1)return null;let s=n===e.Direction.LEFT||n===e.Direction.UP,c=t[s?a-1>=0?a-1:t.length-1:a+1<t.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(!e.Rectangle.equals(i.range,l)){let e=m?c.range:zu(i.range,r,l,n);if(!e)return null;let t=h?Ru(e.endRow,e.endColumn,r):Ru(e.startRow,e.startColumn,r);return{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn}}let g=h?Ru(c.range.endRow,c.range.endColumn,r):Ru(c.range.startRow,c.range.startColumn,r);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function Vu(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 Hu(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:Vu(t,n),primaryWithCoord:r&&Uu(t,r),style:i}}function Uu(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 Wu(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=Vu(i,{startColumn:s,endColumn:s,startRow:l,endRow:l}),g=Vu(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 Gu(e,t,n,i,a,o){let{column:s,columnOffset:c,row:l,rowOffset:u}=n,{startX:d,startY:f}=Vu(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}}}exports.AFFECT_LAYOUT_STYLES=no,exports.AFTER_CELL_EDIT=D,exports.AUTO_FILL_APPLY_TYPE=Z,exports.AUTO_FILL_DATA_TYPE=Q,exports.AUTO_FILL_HOOK_TYPE=ts,exports.AddMergeRedoSelectionsOperationFactory=Fa,exports.AddMergeUndoMutationFactory=m,exports.AddMergeUndoSelectionsOperationFactory=Ia,exports.AddRangeProtectionCommand=On,exports.AddRangeProtectionMutation=Dn,exports.AddRangeThemeMutation=Ul,exports.AddWorksheetMergeAllCommand=Ga,exports.AddWorksheetMergeCommand=Wa,exports.AddWorksheetMergeHorizontalCommand=qa,exports.AddWorksheetMergeMutation=h,exports.AddWorksheetMergeVerticalCommand=Ka,exports.AddWorksheetProtectionCommand=$a,exports.AddWorksheetProtectionMutation=Za,exports.AppendRowCommand=to,exports.AutoClearContentCommand=Ns,exports.AutoFillCommand=Os,Object.defineProperty(exports,`AutoFillController`,{enumerable:!0,get:function(){return ru}}),exports.AutoFillRules=_s,Object.defineProperty(exports,`AutoFillService`,{enumerable:!0,get:function(){return Es}}),exports.AutoFillTools=es,exports.BEFORE_CELL_EDIT=E,exports.BorderStyleManagerService=ac,exports.COMMAND_LISTENER_SKELETON_CHANGE=It,exports.COMMAND_LISTENER_VALUE_CHANGE=Lt,exports.CancelFrozenCommand=Ac,exports.CancelMarkDirtyRowAutoHeightOperation=Yl,exports.ClearSelectionAllCommand=jn,exports.ClearSelectionContentCommand=Ps,exports.ClearSelectionFormatCommand=Mn,exports.CopySheetCommand=Ks,exports.CopyWorksheetEndMutation=zs,exports.DISABLE_NORMAL_SELECTIONS=`DISABLE_NORMAL_SELECTIONS`,Object.defineProperty(exports,`DefinedNameDataController`,{enumerable:!0,get:function(){return au}}),exports.DeleteRangeMoveLeftCommand=qr,exports.DeleteRangeMoveUpCommand=Yr,exports.DeleteRangeProtectionCommand=Js,exports.DeleteRangeProtectionMutation=Tn,exports.DeleteWorksheetProtectionCommand=Ys,exports.DeleteWorksheetProtectionMutation=Qa,exports.DeleteWorksheetRangeThemeStyleCommand=Xs,exports.DeleteWorksheetRangeThemeStyleMutation=ve,exports.DeleteWorksheetRangeThemeStyleMutationFactory=ye,exports.DeltaColumnWidthCommand=Yc,exports.DeltaRowHeightCommand=Ol,exports.EditStateEnum=Cn,exports.EffectRefRangId=J,exports.EmptyMutation=Wl,exports.ExclusiveRangeService=wu,exports.FactoryAddRangeProtectionMutation=En,exports.FactoryDeleteRangeProtectionMutation=wn,exports.FactorySetRangeProtectionMutation=Mc,exports.IAutoFillService=Ds,exports.IExclusiveRangeService=Cu,exports.INTERCEPTOR_POINT=g,exports.INumfmtService=Nl,exports.IRefSelectionsService=Vn,exports.InsertColAfterCommand=di,exports.InsertColBeforeCommand=ui,exports.InsertColByRangeCommand=li,exports.InsertColCommand=ci,exports.InsertColMutation=F,exports.InsertColMutationUndoFactory=xe,exports.InsertDefinedNameCommand=Zs,exports.InsertMultiColsLeftCommand=fi,exports.InsertMultiColsRightCommand=pi,exports.InsertMultiRowsAboveCommand=ai,exports.InsertMultiRowsAfterCommand=oi,exports.InsertRangeMoveDownCommand=Zr,exports.InsertRangeMoveRightCommand=$r,exports.InsertRowAfterCommand=ii,exports.InsertRowBeforeCommand=ri,exports.InsertRowByRangeCommand=ni,exports.InsertRowCommand=ti,exports.InsertRowMutation=P,exports.InsertRowMutationUndoFactory=be,exports.InsertSheetCommand=Qs,exports.InsertSheetMutation=Vs,exports.InsertSheetUndoMutationFactory=Bs,exports.InterceptCellContentPriority=_,exports.MAX_CELL_PER_SHEET_KEY=iu,exports.MERGE_CELL_INTERCEPTOR_CHECK=ja,exports.MarkDirtyFilterChangeMutation=Gl,exports.MarkDirtyRowAutoHeightOperation=Jl,Object.defineProperty(exports,`MergeCellController`,{enumerable:!0,get:function(){return Ma}}),exports.MoveColsCommand=Oi,exports.MoveColsMutation=Ee,exports.MoveColsMutationUndoFactory=Te,exports.MoveRangeCommand=Kn,exports.MoveRangeMutation=Se,exports.MoveRowsCommand=Ei,exports.MoveRowsMutation=we,exports.MoveRowsMutationUndoFactory=Ce,Object.defineProperty(exports,`NumfmtService`,{enumerable:!0,get:function(){return Tu}}),exports.OperatorType=Y,exports.PermissionPointsDefinitions=Mu,exports.REF_SELECTIONS_ENABLED=An,exports.RangeMergeUtil=tn,Object.defineProperty(exports,`RangeProtectionCache`,{enumerable:!0,get:function(){return mu}}),exports.RangeProtectionPermissionDeleteProtectionPoint=ul,exports.RangeProtectionPermissionEditPoint=Zn,exports.RangeProtectionPermissionManageCollaPoint=dl,exports.RangeProtectionPermissionViewPoint=Qn,Object.defineProperty(exports,`RangeProtectionRefRangeService`,{enumerable:!0,get:function(){return Ou}}),Object.defineProperty(exports,`RangeProtectionRenderModel`,{enumerable:!0,get:function(){return pu}}),exports.RangeProtectionRuleModel=U,Object.defineProperty(exports,`RangeProtectionService`,{enumerable:!0,get:function(){return ku}}),exports.RangeThemeStyle=te,Object.defineProperty(exports,`RefRangeService`,{enumerable:!0,get:function(){return Ca}}),Object.defineProperty(exports,`RefSelectionsService`,{enumerable:!0,get:function(){return Hn}}),exports.RefillCommand=$s,exports.RegisterWorksheetRangeThemeStyleCommand=nc,exports.RegisterWorksheetRangeThemeStyleMutation=ec,exports.RemoveColByRangeCommand=yi,exports.RemoveColCommand=bi,exports.RemoveColMutation=L,exports.RemoveDefinedNameCommand=rc,exports.RemoveMergeUndoMutationFactory=R,exports.RemoveNumfmtMutation=Il,exports.RemoveRangeThemeMutation=Kl,exports.RemoveRowByRangeCommand=gi,exports.RemoveRowCommand=_i,exports.RemoveRowMutation=I,exports.RemoveSheetCommand=ic,exports.RemoveSheetMutation=Si,exports.RemoveSheetUndoMutationFactory=xi,exports.RemoveWorksheetMergeCommand=La,exports.RemoveWorksheetMergeMutation=z,exports.ReorderRangeCommand=Fi,exports.ReorderRangeMutation=Ae,exports.ReorderRangeUndoMutationFactory=ke,exports.ResetBackgroundColorCommand=mo,exports.ResetTextColorCommand=fo,exports.SCOPE_WORKBOOK_VALUE_DEFINED_NAME=`AllDefaultWorkbook`,exports.SELECTIONS_ENABLED=`SELECTIONS_ENABLED`,exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=`rgba(255, 255, 255, 0.01)`,exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=1.5,exports.SHEETS_PLUGIN_CONFIG_KEY=Fs,exports.ScrollToCellOperation=Xl,exports.SelectRangeCommand=Wn,exports.SelectionMoveType=W,exports.SetBackgroundColorCommand=po,exports.SetBoldCommand=ro,exports.SetBorderBasicCommand=vc,exports.SetBorderColorCommand=_c,exports.SetBorderCommand=mc,exports.SetBorderPositionCommand=hc,exports.SetBorderStyleCommand=gc,exports.SetColDataCommand=yc,exports.SetColDataMutation=Pe,exports.SetColDataMutationFactory=Ne,exports.SetColHiddenCommand=Sc,exports.SetColHiddenMutation=Ie,exports.SetColVisibleMutation=Re,exports.SetColWidthCommand=Xc,exports.SetDefinedNameCommand=Ec,exports.SetFontFamilyCommand=co,exports.SetFontSizeCommand=lo,exports.SetFrozenCommand=kc,exports.SetFrozenMutation=Oc,exports.SetFrozenMutationFactory=Dc,exports.SetGridlinesColorCommand=jc,exports.SetGridlinesColorMutation=ze,exports.SetHorizontalTextAlignCommand=go,exports.SetItalicCommand=io,exports.SetNumfmtMutation=Fl,exports.SetOverlineCommand=so,exports.SetProtectionCommand=Pc,exports.SetRangeCustomMetadataCommand=Fc,exports.SetRangeProtectionMutation=$,exports.SetRangeThemeMutation=ql,exports.SetRangeValuesCommand=Vr,exports.SetRangeValuesMutation=V,exports.SetRangeValuesUndoMutationFactory=B,exports.SetRowDataCommand=Ic,exports.SetRowDataMutation=mt,exports.SetRowDataMutationFactory=pt,exports.SetRowHeightCommand=kl,exports.SetRowHiddenCommand=zc,exports.SetRowHiddenMutation=vt,exports.SetRowVisibleMutation=gt,exports.SetSelectedColsVisibleCommand=xc,exports.SetSelectedRowsVisibleCommand=Rc,exports.SetSelectionsOperation=q,exports.SetSpecificColsVisibleCommand=bc,exports.SetSpecificRowsVisibleCommand=Lc,exports.SetStrikeThroughCommand=oo,exports.SetStyleCommand=X,exports.SetTabColorCommand=Gc,exports.SetTabColorMutation=Wc,exports.SetTextColorCommand=uo,exports.SetTextRotationCommand=vo,exports.SetTextWrapCommand=_o,exports.SetUnderlineCommand=ao,exports.SetVerticalTextAlignCommand=ho,exports.SetWorkbookNameCommand=qc,exports.SetWorkbookNameMutation=Kc,exports.SetWorksheetActivateCommand=Jc,exports.SetWorksheetActiveOperation=Pt,exports.SetWorksheetColWidthMutation=bt,exports.SetWorksheetColWidthMutationFactory=yt,exports.SetWorksheetColumnCountCommand=Qc,exports.SetWorksheetColumnCountMutation=St,exports.SetWorksheetColumnCountUndoMutationFactory=xt,exports.SetWorksheetDefaultStyleCommand=$c,exports.SetWorksheetDefaultStyleMutation=Ct,exports.SetWorksheetDefaultStyleMutationFactory=wt,exports.SetWorksheetHideCommand=nl,exports.SetWorksheetHideMutation=tl,exports.SetWorksheetNameCommand=al,exports.SetWorksheetNameMutation=il,exports.SetWorksheetOrderCommand=cl,exports.SetWorksheetOrderMutation=sl,exports.SetWorksheetPermissionPointsCommand=Sl,exports.SetWorksheetPermissionPointsMutation=xl,exports.SetWorksheetProtectionCommand=Cl,exports.SetWorksheetProtectionMutation=Nc,exports.SetWorksheetRangeThemeStyleCommand=eo,exports.SetWorksheetRangeThemeStyleMutation=ge,exports.SetWorksheetRangeThemeStyleMutationFactory=_e,exports.SetWorksheetRightToLeftCommand=El,exports.SetWorksheetRightToLeftMutation=Tl,exports.SetWorksheetRowAutoHeightMutation=Mt,exports.SetWorksheetRowAutoHeightMutationFactory=kt,exports.SetWorksheetRowCountCommand=Dl,exports.SetWorksheetRowCountMutation=Et,exports.SetWorksheetRowCountUndoMutationFactory=Tt,exports.SetWorksheetRowHeightMutation=At,exports.SetWorksheetRowHeightMutationFactory=Dt,exports.SetWorksheetRowIsAutoHeightCommand=Al,exports.SetWorksheetRowIsAutoHeightMutation=jt,exports.SetWorksheetRowIsAutoHeightMutationFactory=Ot,exports.SetWorksheetShowCommand=jl,exports.SheetCopyDownCommand=js,exports.SheetCopyRightCommand=Ms,Object.defineProperty(exports,`SheetInterceptorService`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`SheetLazyExecuteScheduleService`,{enumerable:!0,get:function(){return Rs}}),Object.defineProperty(exports,`SheetPermissionCheckController`,{enumerable:!0,get:function(){return lu}}),Object.defineProperty(exports,`SheetPermissionInitController`,{enumerable:!0,get:function(){return du}}),Object.defineProperty(exports,`SheetRangeThemeModel`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`SheetRangeThemeService`,{enumerable:!0,get:function(){return Au}}),exports.SheetSkeletonChangeType=H,Object.defineProperty(exports,`SheetSkeletonService`,{enumerable:!0,get:function(){return Ai}}),exports.SheetValueChangeType=Ft,Object.defineProperty(exports,`SheetsFreezeSyncController`,{enumerable:!0,get:function(){return cu}}),Object.defineProperty(exports,`SheetsSelectionsService`,{enumerable:!0,get:function(){return G}}),exports.SplitDelimiterEnum=an,exports.SplitTextToColumnsCommand=Ml,exports.TextToNumberCommand=zl,exports.ToggleCellCheckboxCommand=Bl,exports.ToggleGridlinesCommand=Vl,exports.ToggleGridlinesMutation=Nt,Object.defineProperty(exports,`UnitAction`,{enumerable:!0,get:function(){return n.UnitAction}}),Object.defineProperty(exports,`UnitObject`,{enumerable:!0,get:function(){return n.UnitObject}}),Object.defineProperty(exports,`UniverSheetsPlugin`,{enumerable:!0,get:function(){return ju}}),exports.UnregisterWorksheetRangeThemeStyleCommand=Hl,exports.UnregisterWorksheetRangeThemeStyleMutation=tc,exports.VALIDATE_CELL=O,exports.ViewStateEnum=Sn,exports.WorkbookCommentPermission=$n,exports.WorkbookCopyPermission=er,exports.WorkbookCopySheetPermission=tr,exports.WorkbookCreateProtectPermission=nr,exports.WorkbookCreateSheetPermission=rr,exports.WorkbookDeleteColumnPermission=ir,exports.WorkbookDeleteRowPermission=ar,exports.WorkbookDeleteSheetPermission=or,exports.WorkbookDuplicatePermission=sr,exports.WorkbookEditablePermission=cr,exports.WorkbookExportPermission=lr,exports.WorkbookHideSheetPermission=ur,exports.WorkbookInsertColumnPermission=dr,exports.WorkbookInsertRowPermission=fr,exports.WorkbookManageCollaboratorPermission=pr,exports.WorkbookMoveSheetPermission=mr,Object.defineProperty(exports,`WorkbookPermissionService`,{enumerable:!0,get:function(){return uu}}),exports.WorkbookPrintPermission=hr,exports.WorkbookRecoverHistoryPermission=gr,exports.WorkbookRenameSheetPermission=_r,exports.WorkbookSelectionModel=kn,exports.WorkbookSharePermission=vr,exports.WorkbookViewHistoryPermission=br,exports.WorkbookViewPermission=yr,exports.WorksheetCopyPermission=xr,exports.WorksheetDeleteColumnPermission=Sr,exports.WorksheetDeleteProtectionPermission=Cr,exports.WorksheetDeleteRowPermission=wr,exports.WorksheetEditExtraObjectPermission=Er,exports.WorksheetEditPermission=Tr,exports.WorksheetFilterPermission=Dr,exports.WorksheetInsertColumnPermission=Or,exports.WorksheetInsertHyperlinkPermission=kr,exports.WorksheetInsertRowPermission=Ar,exports.WorksheetManageCollaboratorPermission=jr,Object.defineProperty(exports,`WorksheetPermissionService`,{enumerable:!0,get:function(){return bl}}),exports.WorksheetPivotTablePermission=Mr,exports.WorksheetProtectionPointModel=ll,exports.WorksheetProtectionRuleModel=Xa,exports.WorksheetSelectProtectedCellsPermission=Nr,exports.WorksheetSelectUnProtectedCellsPermission=Pr,exports.WorksheetSetCellStylePermission=Fr,exports.WorksheetSetCellValuePermission=Ir,exports.WorksheetSetColumnStylePermission=Lr,exports.WorksheetSetRowStylePermission=Rr,exports.WorksheetSortPermission=zr,exports.WorksheetViewPermission=Br,Object.defineProperty(exports,`ZebraCrossingCacheController`,{enumerable:!0,get:function(){return fu}}),exports.addMergeCellsUtil=Ja,exports.adjustRangeOnMutation=ga,exports.alignToMergedCellsBorders=Nn,exports.attachPrimaryWithCoord=Uu,exports.attachRangeWithCoord=Vu,exports.attachSelectionWithCoord=Hu,exports.baseProtectionActions=pl,exports.checkCellValueType=u,exports.checkRangesEditablePermission=Nu,exports.convertPositionCellToSheetOverGrid=Gu,exports.convertPositionSheetOverGridToAbsolute=Wu,exports.convertPrimaryWithCoordToPrimary=rn,exports.convertSelectionDataToRange=nn,exports.copyRangeStyles=Bn,exports.countCells=Ni,exports.createTopMatrixFromMatrix=Xt,exports.createTopMatrixFromRanges=Yt,exports.defaultLargeSheetOperationConfig=Is,exports.defaultWorkbookPermissionPoints=gl,exports.defaultWorksheetPermissionPoint=yl,exports.discreteRangeToRange=yn,exports.expandToContinuousRange=Jt,exports.factoryRemoveNumfmtUndoMutation=Ll,exports.factorySetNumfmtUndoMutation=Pl,exports.findAllRectangle=$t,exports.findFirstNonEmptyCell=hn,exports.followSelectionOperation=In,exports.generateNullCell=gn,exports.generateNullCellValue=_n,exports.getAddMergeMutationRangeByType=Aa,exports.getAllRangePermissionPoint=fl,exports.getAllWorkbookPermissionPoint=hl,exports.getAllWorksheetPermissionPoint=_l,exports.getAllWorksheetPermissionPointByPointPanel=vl,exports.getCellAtRowCol=Pn,exports.getClearContentMutationParamForRange=Ua,exports.getClearContentMutationParamsForRanges=Ha,exports.getDefaultRangePermission=ml,exports.getInsertRangeMutations=Hr,exports.getMoveRangeCommandMutations=Jn,exports.getMoveRangeUndoRedoMutations=Yn,exports.getNextPrimaryCell=Bu,exports.getPrimaryForRange=K,exports.getRemoveRangeMutations=Ur,exports.getSelectionsService=Un,exports.getSeparateEffectedRangesOnCommand=ya,exports.getSheetCommandTarget=f,exports.getSheetCommandTargetWorkbook=d,exports.getSheetMutationTarget=p,exports.getSkeletonChangedEffectedRange=zt,exports.getValueChangedEffectedRange=Rt,exports.getVisibleRanges=xn,exports.handleBaseInsertRange=Xi,exports.handleBaseMoveRowsCols=Ri,exports.handleBaseRemoveRange=Ki,exports.handleCommonDefaultRangeChangeWithEffectRefCommands=ma,exports.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests=ha,exports.handleDefaultRangeChangeWithEffectRefCommands=fa,exports.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=pa,exports.handleDeleteRangeMoveLeft=ia,exports.handleDeleteRangeMoveUp=oa,exports.handleDeleteRangeMutation=Gr,exports.handleIRemoveCol=qi,exports.handleIRemoveRow=Ji,exports.handleInsertCol=$i,exports.handleInsertRangeMoveDown=ea,exports.handleInsertRangeMoveRight=na,exports.handleInsertRangeMutation=Wr,exports.handleInsertRow=Qi,exports.handleMoveCols=Hi,exports.handleMoveRange=Wi,exports.handleMoveRows=zi,exports.isSingleCellSelection=Ln,exports.rangeMerge=en,exports.rangeToDiscreteRange=bn,exports.rotateRange=Li,exports.runRefRangeMutations=da,exports.setEndForRange=Fn,exports.splitRangeText=dn,exports.transformCellsToRange=Rl;
|