@univerjs/sheets 0.19.0 → 0.20.0

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/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{AUTO_HEIGHT_FOR_MERGED_CELLS as e,BORDER_KEYS as t,BORDER_STYLE_KEYS as n,BooleanNumber as r,BorderStyleTypes as i,BorderType as a,BuildTextUtils as o,COLOR_STYLE_KEYS as s,CellModeEnum as c,CellValueType as l,CommandType as u,CustomCommandExecutionError as d,DependentOn as f,Dimension as p,Direction as m,Disposable as h,DisposableCollection as g,DocumentDataModel as _,ErrorService as v,FontItalic as y,FontWeight as b,HorizontalAlign as x,IAuthzIoService as S,ICommandService as C,IConfigService as w,IConfirmService as T,IContextService as E,ILogService as ee,IPermissionService as D,IResourceManagerService as te,IS_ROW_STYLE_PRECEDE_COLUMN_STYLE as ne,IUndoRedoService as O,IUniverInstanceService as k,Inject as A,Injector as re,InterceptorEffectEnum as ie,InterceptorManager as ae,LRUMap as oe,LocaleService as se,MAX_COLUMN_COUNT as ce,MAX_ROW_COUNT as le,ObjectMatrix as j,Optional as ue,PADDING_KEYS as de,PermissionStatus as M,Plugin as fe,RANGE_TYPE as N,RTree as pe,Range as P,Rectangle as F,RxDisposable as me,STYLE_KEYS as he,TEXT_DECORATION_KEYS as ge,TEXT_ROTATION_KEYS as _e,TextX as ve,Tools as I,UniverInstanceType as L,UserManagerService as ye,cellToRange as be,cloneWorksheetData as xe,composeInterceptors as Se,concatMatrixArray as Ce,createIdentifier as we,createInterceptorKey as Te,createRowColIter as Ee,generateRandomId as De,getArrayLength as Oe,isBooleanString as ke,isDefaultFormat as Ae,isFormulaId as je,isFormulaString as Me,isICellData as Ne,isRealNum as Pe,isSafeNumeric as Fe,isTextFormat as Ie,mapObjectMatrix as Le,merge as Re,mergeIntervals as ze,mergeOverrideWithDependencies as Be,mergeWorksheetSnapshotWithDefault as Ve,moveMatrixArray as He,normalizeTextRuns as Ue,numfmt as We,queryObjectMatrix as Ge,registerDependencies as Ke,remove as qe,selectionToArray as Je,sequenceExecute as R,sliceMatrixArray as Ye,spliceArray as Xe,throttle as Ze,toDisposable as Qe,touchDependencies as $e,willLoseNumericPrecision as et}from"@univerjs/core";import{BehaviorSubject as tt,Subject as nt,distinctUntilChanged as rt,filter as it,first as at,map as ot,merge as st,of as ct,shareReplay as lt,skip as ut,switchMap as dt,takeUntil as ft}from"rxjs";import{UnitAction as pt,UnitAction as z,UnitObject as mt,UnitObject as B,UniverType as ht}from"@univerjs/protocol";import{IDefinedNamesService as gt,LexerTreeBuilder as _t,RemoveDefinedNameMutation as vt,SetDefinedNameMutation as yt,SetDefinedNameMutationFactory as bt,SetFormulaCalculationResultMutation as xt,UniverFormulaEnginePlugin as St,deserializeRangeWithSheet as Ct,deserializeRangeWithSheetWithCache as wt,handleNumfmtInCell as Tt,operatorToken as Et,sequenceNodeType as Dt,stripErrorMargin as Ot}from"@univerjs/engine-formula";import{filter as kt,map as At,takeUntil as jt}from"rxjs/operators";import{DataSyncPrimaryController as Mt}from"@univerjs/rpc";function Nt(e,t,n){var r;if(t.t)return t.t;if(t.v===null)return null;let i=e.getStyleByCell(t),a=e.getStyleByCell(n);if(n.t===l.FORCE_STRING){var o;if(!Ie(a==null||(o=a.n)==null?void 0:o.pattern)&&t.v!==void 0){if(Pe(t.v))return l.NUMBER;if(ke(`${t.v}`))return l.BOOLEAN}return l.FORCE_STRING}if(Ft(i)){var s;return Ie(i==null||(s=i.n)==null?void 0:s.pattern)?l.STRING:Pt(t,n)}return Ie(a==null||(r=a.n)==null?void 0:r.pattern)?l.STRING:Pt(t,n)}function Pt(e,t){return e.v===void 0?It(t.v,t.t):It(e.v,e.t)}function Ft(e){var t;return!!(!(e==null||(t=e.n)==null)&&t.pattern)}function It(e,t){return e===null?null:typeof e==`string`?Pe(e)?(+e==0||+e==1)&&t===l.BOOLEAN?l.BOOLEAN:t!==l.STRING&&t!==l.FORCE_STRING&&et(e)?l.FORCE_STRING:l.NUMBER:ke(e)?l.BOOLEAN:l.STRING:typeof e==`number`?(e===0||e===1)&&t===l.BOOLEAN?l.BOOLEAN:l.NUMBER:typeof e==`boolean`?l.BOOLEAN:l.FORCE_STRING}function Lt(e,t){let{unitId:n}=t,r=n?e.getUnit(n,L.UNIVER_SHEET):e.getCurrentUnitOfType(L.UNIVER_SHEET);return r?{workbook:r,unitId:r.getUnitId()}:null}function V(e,t={}){let{unitId:n,subUnitId:r}=t,i=n?e.getUnit(n,L.UNIVER_SHEET):e.getCurrentUnitOfType(L.UNIVER_SHEET);if(!i)return null;let a=r?i.getSheetBySheetId(r):i.getActiveSheet(!0);return a?{worksheet:a,workbook:i,unitId:i.getUnitId(),subUnitId:a.getSheetId()}:null}function Rt(e,t){let{unitId:n,subUnitId:r}=t,i=e.getUnit(n,L.UNIVER_SHEET);if(!i)return null;let a=i.getSheetBySheetId(r);return a?{worksheet:a,workbook:i}:null}const zt=(e,t)=>{if(!Rt(e.get(k),t))throw Error(`Workbook or worksheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:I.deepClone(t.ranges)}},H={id:`sheet.mutation.add-worksheet-merge`,type:u.MUTATION,handler:(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`Workbook or worksheet is null error!`);let{worksheet:r}=n,i=r.getConfig().mergeData,a=t.ranges;for(let e=0;e<a.length;e++)i.push(a[e]);return r.getSpanModel().rebuild(i),!0}},Bt={CELL_CONTENT:Te(`CELL_CONTENT`),ROW_FILTERED:Te(`ROW_FILTERED`)};let Vt=function(e){return e[e.DATA_VALIDATION=9]=`DATA_VALIDATION`,e[e.NUMFMT=10]=`NUMFMT`,e[e.CELL_IMAGE=11]=`CELL_IMAGE`,e}({});const Ht=`sheet.interceptor.range-theme-id`,Ut=`sheet.interceptor.ignore-range-theme`;function Wt(e){"@babel/helpers - typeof";return Wt=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},Wt(e)}function Gt(e,t){if(Wt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Wt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Kt(e){var t=Gt(e,`string`);return Wt(t)==`symbol`?t:t+``}function U(e,t,n){return(t=Kt(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 G(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 qt=Te(`BEFORE_CELL_EDIT`),Jt=Te(`AFTER_CELL_EDIT`),Yt=Te(`VALIDATE_CELL`);let K=class extends h{constructor(e){super(),this._univerInstanceService=e,U(this,`_interceptorsByName`,new Map),U(this,`_commandInterceptors`,[]),U(this,`_rangeInterceptors`,[]),U(this,`_autoHeightInterceptors`,[]),U(this,`_beforeCommandInterceptor`,[]),U(this,`_afterCommandInterceptors`,[]),U(this,`_workbookDisposables`,new Map),U(this,`_worksheetDisposables`,new Map),U(this,`_interceptorsDirty`,!1),U(this,`_composedInterceptorByKey`,new Map),U(this,`writeCellInterceptor`,new ae({BEFORE_CELL_EDIT:qt,AFTER_CELL_EDIT:Jt,VALIDATE_CELL:Yt})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(L.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(L.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(Bt.CELL_CONTENT,{priority:-1,effect:ie.Style|ie.Value,handler:e=>e}),this.disposeWithMe(this.writeCellInterceptor.intercept(Jt,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(qt,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(Yt,{priority:-1,handler:e=>e}))}dispose(){super.dispose(),this._workbookDisposables.forEach(e=>e.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.forEach(e=>e.dispose()),this._worksheetDisposables.clear(),this._interceptorsByName.clear()}interceptCommand(e){if(this._commandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._commandInterceptors.push(e),this._commandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Qe(()=>qe(this._commandInterceptors,e)))}onCommandExecute(e){let t=this._commandInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptAfterCommand(e){if(this._afterCommandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._afterCommandInterceptors.push(e),this._afterCommandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Qe(()=>qe(this._afterCommandInterceptors,e)))}afterCommandExecute(e){let t=this._afterCommandInterceptors.map(t=>t.getMutations(e));return{undos:t.map(e=>e.undos).flat(),redos:t.map(e=>e.redos).flat()}}interceptAutoHeight(e){if(this._autoHeightInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._autoHeightInterceptors.push(e),this._autoHeightInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Qe(()=>qe(this._autoHeightInterceptors,e)))}generateMutationsOfAutoHeight(e){let t=this._autoHeightInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptBeforeCommand(e){if(this._beforeCommandInterceptor.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._beforeCommandInterceptor.push(e),this._beforeCommandInterceptor.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Qe(()=>qe(this._beforeCommandInterceptor,e)))}async beforeCommandExecute(e){return(await Promise.all(this._beforeCommandInterceptor.map(t=>t.performCheck(e)))).every(e=>e)}interceptRanges(e){if(this._rangeInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._rangeInterceptors.push(e),this._rangeInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Qe(()=>qe(this._rangeInterceptors,e)))}generateMutationsByRanges(e){let t=this._rangeInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}onWriteCell(e,t,n,r,i){let a={subUnitId:t.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:t,row:n,col:r,origin:I.deepClone(i)};return this.writeCellInterceptor.fetchThroughInterceptors(Jt)(i,a)}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(Yt)(Promise.resolve(!0),i)}intercept(e,t){let n=e;this._interceptorsByName.has(n)||this._interceptorsByName.set(n,[]);let r=this._interceptorsByName.get(n);r.push(t);let i=r.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)});if(this._interceptorsDirty=!0,n===Bt.CELL_CONTENT){let e=ie.Style|ie.Value;this._interceptorsByName.set(`${n}-${e}`,i);let r=ie.Style|ie.Value;return this._interceptorsByName.set(`${n}-${ie.Style}`,i.filter(e=>((e.effect||r)&ie.Style)>0)),this._interceptorsByName.set(`${n}-${ie.Value}`,i.filter(e=>((e.effect||r)&ie.Value)>0)),this.disposeWithMe(Qe(()=>{qe(this._interceptorsByName.get(n),t),qe(this._interceptorsByName.get(`${n}-${e}`),t),qe(this._interceptorsByName.get(`${n}-${ie.Style}`),t),qe(this._interceptorsByName.get(`${n}-${ie.Value}`),t)}))}else return this._interceptorsByName.set(n,i),this.disposeWithMe(Qe(()=>qe(this._interceptorsByName.get(n),t)))}fetchThroughInterceptors(e,t,n,r){let i=t===void 0?e:`${e}-${t}`,a=n==null?i:n,o=this._composedInterceptorByKey.get(a);if(!o||!this._interceptorsDirty){let e=this._interceptorsByName.get(i);e&&r&&(e=e.filter(r)),o=Se(e||[]),this._composedInterceptorByKey.set(a,o)}return o}_interceptWorkbook(e){let t=new g,n=e.getUnitId(),r=this,i=t=>{let i=t.getSheetId();t.__interceptViewModel(a=>{let o=new g;r._worksheetDisposables.set(Xt(n,t),o),o.add(a.registerCellContentInterceptor({getCell(a,o,s,c,l){let u=t.getCellRaw(a,o);return r.fetchThroughInterceptors(Bt.CELL_CONTENT,s,c,l)(u,{unitId:n,subUnitId:i,row:a,col:o,worksheet:t,workbook:e,rawData:u})}})),o.add(a.registerRowFilteredInterceptor({getRowFiltered(a){return!!r.fetchThroughInterceptors(Bt.ROW_FILTERED)(!1,{unitId:n,subUnitId:i,row:a,workbook:e,worksheet:t})}}))})};e.getSheets().forEach(e=>i(e)),t.add(e.sheetCreated$.subscribe(e=>i(e))),t.add(Qe(()=>e.getSheets().forEach(e=>this._disposeSheetInterceptor(n,e)))),t.add(e.sheetDisposed$.subscribe(e=>this._disposeSheetInterceptor(n,e))),this._workbookDisposables.set(n,t)}_disposeWorkbookInterceptor(e){let t=e.getUnitId(),n=this._workbookDisposables.get(t);n&&(n.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(e,t){let n=Xt(e,t),r=this._worksheetDisposables.get(n);r&&(r.dispose(),this._worksheetDisposables.delete(n))}};K=G([W(0,k)],K);function Xt(e,t){return`${e}|${t.getSheetId()}`}const Zt=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 Qt(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 $t={wholeStyle:1,headerRowStyle:2,headerColumnStyle:4,firstRowStyle:8,secondRowStyle:16,lastRowStyle:32,firstColumnStyle:128,secondColumnStyle:256,lastColumnStyle:512};var en=class{constructor(e,t){U(this,`_name`,void 0),U(this,`wholeStyle`,null),U(this,`headerRowStyle`,null),U(this,`headerColumnStyle`,null),U(this,`firstRowStyle`,null),U(this,`secondRowStyle`,null),U(this,`lastRowStyle`,null),U(this,`firstColumnStyle`,null),U(this,`secondColumnStyle`,null),U(this,`lastColumnStyle`,null),U(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|=$t.lastRowStyle),r&&(a|=$t.lastColumnStyle),e>=0&&t>=0&&(a|=$t.wholeStyle),e%2==1&&(a|=i?$t.secondRowStyle:$t.firstRowStyle),e%2==0&&(a|=i?$t.firstRowStyle:$t.secondRowStyle),e===0&&(a|=$t.headerRowStyle),t===0&&(a|=$t.headerColumnStyle),t%2==1&&(a|=$t.firstColumnStyle),t%2==0&&(a|=$t.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&$t.wholeStyle&&t.push(this.wholeStyle),this.firstColumnStyle&&e&$t.firstColumnStyle&&t.push(this.firstColumnStyle),this.secondColumnStyle&&e&$t.secondColumnStyle&&t.push(this.secondColumnStyle),this.firstRowStyle&&e&$t.firstRowStyle&&t.push(this.firstRowStyle),this.secondRowStyle&&e&$t.secondRowStyle&&t.push(this.secondRowStyle),this.headerColumnStyle&&e&$t.headerColumnStyle&&t.push(this.headerColumnStyle),this.lastColumnStyle&&e&$t.lastColumnStyle&&t.push(this.lastColumnStyle),this.headerRowStyle&&e&$t.headerRowStyle&&t.push(this.headerRowStyle),this.lastRowStyle&&e&$t.lastRowStyle&&t.push(this.lastRowStyle),Qt(t)}_resetStyleCache(){this._mergeCacheMap.clear()}toJson(){let e={name:this._name};return this.wholeStyle&&(e.wholeStyle=Zt(this.wholeStyle)),this.headerRowStyle&&(e.headerRowStyle=Zt(this.headerRowStyle)),this.headerColumnStyle&&(e.headerColumnStyle=Zt(this.headerColumnStyle)),this.firstRowStyle&&(e.firstRowStyle=Zt(this.firstRowStyle)),this.secondRowStyle&&(e.secondRowStyle=Zt(this.secondRowStyle)),this.lastRowStyle&&(e.lastRowStyle=Zt(this.lastRowStyle)),this.firstColumnStyle&&(e.firstColumnStyle=Zt(this.firstColumnStyle)),this.secondColumnStyle&&(e.secondColumnStyle=Zt(this.secondColumnStyle)),this.lastColumnStyle&&(e.lastColumnStyle=Zt(this.lastColumnStyle)),e}fromJson(e){this._name=e.name,e.wholeStyle&&(this.wholeStyle=Zt(e.wholeStyle)),e.headerRowStyle&&(this.headerRowStyle=Zt(e.headerRowStyle)),e.headerColumnStyle&&(this.headerColumnStyle=Zt(e.headerColumnStyle)),e.firstRowStyle&&(this.firstRowStyle=Zt(e.firstRowStyle)),e.secondRowStyle&&(this.secondRowStyle=Zt(e.secondRowStyle)),e.lastRowStyle&&(this.lastRowStyle=Zt(e.lastRowStyle)),e.firstColumnStyle&&(this.firstColumnStyle=Zt(e.firstColumnStyle)),e.secondColumnStyle&&(this.secondColumnStyle=Zt(e.secondColumnStyle)),e.lastColumnStyle&&(this.lastColumnStyle=Zt(e.lastColumnStyle))}dispose(){this._mergeCacheMap.clear()}};const tn=(e,t,n)=>new en(`light-${e}`,{headerRowStyle:{bg:{rgb:t}},firstColumnStyle:{bg:{rgb:`rgb(255, 255, 255)`}},secondColumnStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}}}),nn=(e,t,n)=>new en(`middle-${e}`,{headerRowStyle:{bg:{rgb:t}},headerColumnStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}},lastColumnStyle:{bg:{rgb:n}}}),rn=(e,t,n,i)=>new en(`dark-${e}`,{headerRowStyle:{bg:{rgb:t},cl:{rgb:`rgb(255, 255, 255)`},ht:x.CENTER,bl:r.TRUE},firstRowStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:i}},lastRowStyle:{bg:{rgb:t}}}),an=[{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)`}],on=[{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)`}],sn=[{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)`}],cn=an.map(({baseName:e,header:t,color:n})=>tn(e,t,n)),ln=on.map(({baseName:e,rowHeader:t,colHeader:n})=>nn(e,t,n)),un=sn.map(({baseName:e,rowHeader:t,firstRow:n,secondRow:r})=>rn(e,t,n,r)),dn=[...cn,...ln,...un],fn={headerRowStyle:{bg:{rgb:`rgb(68,114,196)`},cl:{rgb:`rgb(255,255,255)`},ht:x.CENTER,bl:r.TRUE},firstRowStyle:{bg:{rgb:`rgb(217,225,242)`}}},pn=new en(`default`,fn),mn=new en(`default-last-row`,{...fn,lastRowStyle:{bd:{t:{s:i.THIN,cl:{rgb:`rgb(68,114,196)`}}},ht:x.CENTER,bl:r.TRUE}});var hn=class{constructor(){U(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 gn=class extends h{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._resourceManagerService=t,this._univerInstanceService=n,U(this,`_rangeThemeStyleMap`,new Map),U(this,`_rangeThemeStyleRuleMap`,new Map),U(this,`_rTreeCollection`,new Map),U(this,`_defaultRangeThemeMap`,new Map),U(this,`_zebraCrossingCacheMap`,new Map),U(this,`_rowVisibleFuncSet`,new Map),U(this,`_rangeThemeMapChanged$`,new nt),U(this,`rangeThemeMapChange$`,this._rangeThemeMapChanged$.asObservable()),this._registerIntercept(),this._initSnapshot(),this._initDefaultTheme()}_initDefaultTheme(){this.registerDefaultRangeTheme(pn),this.registerDefaultRangeTheme(mn);for(let e of dn)this.registerDefaultRangeTheme(e)}_ensureRangeThemeStyleMap(e){return this._rangeThemeStyleMap.has(e)||this._rangeThemeStyleMap.set(e,new Map),this._rangeThemeStyleMap.get(e)}_ensureRangeThemeStyleRuleMap(e){return this._rangeThemeStyleRuleMap.has(e)||this._rangeThemeStyleRuleMap.set(e,new Map),this._rangeThemeStyleRuleMap.get(e)}_ensureRTreeCollection(e){return this._rTreeCollection.has(e)||this._rTreeCollection.set(e,new pe),this._rTreeCollection.get(e)}getDefaultRangeThemeStyle(e){return this._defaultRangeThemeMap.get(e)}getCustomRangeThemeStyle(e,t){return this._ensureRangeThemeStyleMap(e).get(t)}_getSheetRowVisibleFuncSet(e,t){this._rowVisibleFuncSet.has(e)||this._rowVisibleFuncSet.set(e,new Map);let n=this._rowVisibleFuncSet.get(e);return n.has(t)||n.set(t,new Set),n.get(t)}_getSheetRowVisibleHasInit(e,t){var n;return!!(this._rowVisibleFuncSet.has(e)&&(n=this._rowVisibleFuncSet.get(e))!=null&&n.has(t))}refreshSheetRowVisibleFuncSet(e,t){let n=this._getSheetRowVisibleFuncSet(e,t);n.clear();let r=this._univerInstanceService.getUnit(e);if(r){let e=r.getSheetBySheetId(t);if(e){let t=e.getRowCount(),r=e.getRowManager();for(let i=1;i<=t;i++)e.getRowVisible(i)?r.getRowHeight(i)===0&&n.add(i):n.add(i)}}}_ensureZebraCrossingCache(e,t,n){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);let r=this._zebraCrossingCacheMap.get(e);r.has(t)||r.set(t,new Map);let i=r.get(t);return i.has(n)||i.set(n,new hn),i.get(n)}registerRangeThemeRule(e,t){let{unitId:n,subUnitId:r,range:i}=t,a=De(),o=this._ensureRangeThemeStyleRuleMap(n),s=this._ensureRTreeCollection(n);o.set(a,{rangeInfo:t,themeName:e}),s.insert({unitId:n,sheetId:r,range:i,id:a}),this._getSheetRowVisibleHasInit(n,r)||this.refreshSheetRowVisibleFuncSet(n,r);let c=this._ensureZebraCrossingCache(n,r,a),l=this._getSheetRowVisibleFuncSet(n,r);c.refresh(i,e=>!l.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(Bt.CELL_CONTENT,{id:Ht,effect:ie.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 en(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:[L.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()}};gn=G([W(0,A(K)),W(1,A(te)),W(2,A(k))],gn);const _n={id:`sheet.mutation.set-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!V(e.get(k),t))return!1;let n=e.get(gn),{unitId:r,subUnitId:i,range:a,themeName:o}=t;return n.registerRangeThemeRule(o,{range:a,unitId:r,subUnitId:i}),!0}},vn=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`[SetWorksheetRangeThemeStyleMutation]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,subUnitId:r.getSheetId(),range:t.range,themeName:t.themeName}},yn={id:`sheet.mutation.remove-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!V(e.get(k),t))return!1;let n=e.get(gn),{unitId:r,subUnitId:i,range:a,themeName:o}=t;return n.removeRangeThemeRule(o,{range:a,unitId:r,subUnitId:i}),!0}},bn=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`[DeleteWorksheetRangeThemeStyleMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,subUnitId:r.getSheetId(),range:t.range,themeName:t.themeName}},xn=(e,t)=>{if(!Rt(e.get(k),t))throw Error(`Workbook or Worksheet not found at InsertRowMutationUndoFactory`);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Sn={id:`sheet.mutation.insert-row`,type:u.MUTATION,handler:(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`Workbook or Worksheet not found at InsertRowMutation`);let{worksheet:r}=n,i=r.getRowManager(),{range:a,rowInfo:o}=t,{startRow:s,endRow:c}=a;i.insertRowsWithData(s,c,o);let l=c-s+1;return r.setRowCount(r.getRowCount()+l),r.getCellMatrix().insertRows(s,l),!0}},Cn=(e,t)=>{if(!Rt(e.get(k),t))throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},wn={id:`sheet.mutation.insert-col`,type:u.MUTATION,handler:(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`Workbook or Worksheet not found at InsertColMutation`);let{worksheet:r}=n,i=r.getColumnManager(),{range:a,colInfo:o}=t,{startColumn:s,endColumn:c}=a;i.insertColumnsWithData(s,c,o);let l=c-s+1;return r.setColumnCount(r.getColumnCount()+l),r.getCellMatrix().insertColumns(a.startColumn,l),!0}},Tn={id:`sheet.mutation.move-range`,type:u.MUTATION,handler:(e,t)=>{let{from:n,to:r}=t;if(!n||!r)return!1;let i=e.get(k).getCurrentUnitForType(L.UNIVER_SHEET);if(!i)return!1;let a=i.getSheetBySheetId(t.from.subUnitId),o=i.getSheetBySheetId(t.to.subUnitId);if(!a||!o)return!1;let s=a.getCellMatrix(),c=o.getCellMatrix();return new j(n.value).forValue((e,t,n)=>{n==null?s.realDeleteValue(e,t):s.setValue(e,t,n)}),new j(r.value).forValue((e,t,n)=>{n==null?c.realDeleteValue(e,t):c.setValue(e,t,n)}),!0}};function En(e,t){let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=i.startRow>a.startRow,s=i.endRow-i.startRow+1;return o?{unitId:n,subUnitId:r,sourceRange:F.clone(a),targetRange:{...i,endRow:i.endRow+s,startRow:i.startRow+s}}:{unitId:n,subUnitId:r,targetRange:F.clone(i),sourceRange:{...a,endRow:a.endRow-s,startRow:a.startRow-s}}}const Dn={id:`sheet.mutation.move-rows`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=e.get(k).getUniverSheetInstance(n);if(!o)throw Error(`[MoveRowMutation] univerSheet is null!`);let s=o.getSheetBySheetId(r);if(!s)throw Error(`[MoveRowMutation] worksheet is null!`);let c=i.startRow,l=i.endRow-i.startRow+1,u=a.startRow;return He(c,l,u,s.getRowManager().getRowData()),s.getCellMatrix().moveRows(c,l,u),!0}};function On(e,t){let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=i.startColumn>a.startColumn,s=i.endColumn-i.startColumn+1;return o?{unitId:n,subUnitId:r,sourceRange:F.clone(a),targetRange:{...i,endColumn:i.endColumn+s,startColumn:i.startColumn+s}}:{unitId:n,subUnitId:r,targetRange:F.clone(i),sourceRange:{...a,startColumn:a.startColumn-s,endColumn:a.endColumn-s}}}const kn={id:`sheet.mutation.move-columns`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=e.get(k).getUniverSheetInstance(n);if(!o)throw Error(`[MoveColumnMutation] univerSheet is null!`);let s=o.getSheetBySheetId(r);if(!s)throw Error(`[MoveColumnMutation] worksheet is null!`);let c=i.startColumn,l=i.endColumn-i.startColumn+1,u=a.startColumn;return He(c,l,u,s.getColumnManager().getColumnData()),s.getCellMatrix().moveColumns(c,l,u),!0}},An=(e,t)=>{let n=t.getRowManager().getRowData(),r={},i=e.range,a=Ce(r,Ye(i.startRow,i.endRow,n));return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,rowInfo:a}},jn={id:`sheet.mutation.remove-rows`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=t.range,a=r.getRowManager().getRowData(),o=[];for(let e=i.startRow;e<=i.endRow;e++)r.getRowFiltered(e)&&o.push(e);let s=i.endRow-i.startRow+1;return Xe(i.startRow,s,a),r.getCellMatrix().removeRows(i.startRow,s),r.setRowCount(r.getRowCount()-s),!0}},Mn=(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(r==null)throw Error(`worksheet is null error!`);let i=r.getColumnManager().getColumnData(),a={},o=t.range,s=Ce(a,Ye(o.startColumn,o.endColumn,i));return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:s}},Nn={id:`sheet.mutation.remove-col`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=t.range,a=r.getColumnManager().getColumnData(),o=i.endColumn-i.startColumn+1;return Xe(i.startColumn,o,a),r.setColumnCount(r.getColumnCount()-o),r.getCellMatrix().removeColumns(i.startColumn,o),!0}},Pn=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`Workbook or worksheet is null error!`);let{worksheet:r}=n,i=r.getConfig().mergeData,a=t.ranges,o=[];for(let e=0;e<a.length;e++)for(let t=i.length-1;t>=0;t--){let n=i[t],r=a[e];F.intersects(n,r)&&o.push(i[t])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:o}},q={id:`sheet.mutation.remove-worksheet-merge`,type:u.MUTATION,handler:(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`Workbook or worksheet is null error!`);let{worksheet:r}=n,i=r.getConfig().mergeData,a=t.ranges;for(let e=0;e<a.length;e++)for(let t=i.length-1;t>=0;t--){let n=i[t],r=a[e];F.intersects(n,r)&&i.splice(t,1)}return r.getSpanModel().rebuild(i),!0}},Fn=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},In={id:`sheet.mutation.reorder-range`,type:u.MUTATION,handler:(e,t)=>{let{subUnitId:n,unitId:r,range:i,order:a}=t,o=e.get(k).getUnit(r).getSheetBySheetId(n);if(!o)return!1;let s=new j;P.foreach(i,(e,t)=>{if(a.hasOwnProperty(e)){let n=a[e],r=I.deepClone(o.getCellRaw(n,t));s.setValue(e,t,r)}});let c=o.getCellMatrix();return s.forValue((e,t,n)=>{c.setValue(e,t,n)}),!0}};function Ln(e,t){if(e==null)return e;let n=I.deepClone(e);if(t==null)return n;let r={};return`h`in t&&(r.h=n.h),`ia`in t&&(r.ia=n.ia),`ah`in t&&(r.ah=n.ah),`hd`in t&&(r.hd=n.hd),`s`in t&&(r.s=n.s),`custom`in t&&(r.custom=n.custom),r}function Rn(e,t){if(e==null)return e;let n=I.deepClone(e);if(t==null)return n;let r={};return`w`in t&&(r.w=n.w),`hd`in t&&(r.hd=n.hd),`s`in t&&(r.s=n.s),`custom`in t&&(r.custom=n.custom),r}const zn=(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]=Rn(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Bn={id:`sheet.mutation.set-col-data`,type:u.MUTATION,handler:(e,t)=>{let{columnData:n}=t,r=V(e.get(k),t);if(!r)return!1;let{worksheet:i}=r,a=i.getColumnManager();for(let e in n){let t=n[e];if(t==null){a.removeColumn(Number(e));continue}let r=a.getColumnOrCreate(Number(e));Object.assign(r,t)}return!0}},Vn=(e,t)=>{if(e.get(k).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Hn={id:`sheet.mutation.set-col-hidden`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(!n)return!1;let i=n.getSheetBySheetId(t.subUnitId).getColumnManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startColumn;e<n.endColumn+1;e++){let t=i.getColumnOrCreate(e);t!=null&&(t.hd=r.TRUE)}}return!0}},Un=(e,t)=>{if(e.get(k).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Wn={id:`sheet.mutation.set-col-visible`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(!n)return!1;let i=n.getSheetBySheetId(t.subUnitId).getColumnManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startColumn;e<n.endColumn+1;e++){let t=i.getColumnOrCreate(e);t!=null&&(t.hd=r.FALSE)}}return!0}},Gn={id:`sheet.mutation.set-gridlines-color`,type:u.MUTATION,handler:(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{worksheet:r}=n,i=r.getConfig();return i.gridlinesColor=t.color,!0}};function Kn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function qn(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function Jn(e,t,n){if(e==null)return e;if(!Kn(e))return;let r={},i=!1;if(qn(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 Yn(e,t,n){if(e==null)return e;if(!Kn(e))return;let r={},i=!1;return qn(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Xn(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 Zn(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function Qn(e){return Jn(e,s)}function $n(e){return Jn(e,ge,{cl:Qn})}function er(e){return Jn(e,n,{cl:Qn})}function tr(e){return Yn(e,t,er)}function nr(e){return Jn(e,_e)}function rr(e){return Jn(e,de)}function ir(e){if(e==null)return e;if(!(!Kn(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function ar(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return $n(t);case`bg`:case`cl`:return Qn(t);case`bd`:return tr(t);case`tr`:return nr(t);case`pd`:return rr(t);case`n`:return ir(t);default:return Zn(t)?t:void 0}}function or(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=I.isObject(e)?{...e}:{};return qn(r,t,(e,t)=>{let n=er(t);n!==void 0&&(i[e]=n)}),i}function sr(e,t,n){let r=e.getStyleByCell(t);r==null&&delete t.s,typeof n.s==`string`&&(n.s=e.get(n.s));let i=ur(r,n.s?n.s:null);i&&(I.removeNull(i),Object.entries(i).forEach(([e,t])=>{typeof t==`object`&&t&&Object.keys(t).length===0&&delete i[e]})),I.isEmptyObject(i)?delete t.s:t.s=e.setValue(i);let a=n.v?`${n.v}\r\n`:``;if(!n.p&&t.p){var o;a&&a!==((o=t.p.body)==null?void 0:o.dataStream)?delete t.p:fr(t.p,n.s?n.s:null)}}function cr(e,t){if(!t||!Object.keys(t).length)return e;let n=I.deepClone(e==null?{}:e)||{},r=t;for(let e of he){if(!Object.prototype.hasOwnProperty.call(r,e))continue;let t=ar(e,r[e]);t!==void 0&&(e===`bd`?n[e]=lr(n[e]||{},t):e in n||(n[e]=null))}return n}function lr(e,n){if(!n||!Object.keys(n).length)return e;let r=e;for(let i of t)Object.prototype.hasOwnProperty.call(n,i)&&(i in e||(r[i]=null));return e}function ur(e,t,n=!1){if(t===null)return t;if(t===void 0)return e;let r=I.deepClone(e)||{},i=t;for(let e of he){if(!Object.prototype.hasOwnProperty.call(i,e)||n&&Xn(e))continue;let t=ar(e,i[e]);t!==void 0&&(e===`bd`?r[e]=or(r[e],t):r[e]=t)}if(`cl`in r){let e=r,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 r}function dr(e,t){return e.some(e=>e.startIndex===t)?dr(e,t+1):t}function fr(e,t){var n;if(e.body==null)return;Array.isArray(e.body.textRuns)||(e.body.textRuns=[]);let r=0,i=[],a=((n=e.body)==null?void 0:n.paragraphs)||[];for(let n of e.body.textRuns){let{st:e,ed:o,ts:s={}}=n;if(r<e){let n={st:r,ed:e},a=ur({},t,!0);a&&I.removeNull(a),I.isEmptyObject(a)||(n.ts=a),i.push(n)}let c=ur(s,t,!0);c&&I.removeNull(c),I.isEmptyObject(c)?delete n.ts:n.ts=c,i.push(n),r=dr(a,o)}let o=e.body.dataStream.endsWith(`\r
2
- `)?e.body.dataStream.length-2:e.body.dataStream.length;if(r<o){let e={st:r,ed:o},n=ur({},t,!0);n&&I.removeNull(n),I.isEmptyObject(n)||(e.ts=n),i.push(e)}e.body.textRuns=Ue(i)}function pr(e,t){return t.v===void 0||t.v===null?t.v:e===l.NUMBER?Number(t.v):e===l.BOOLEAN?mr(t.v)?1:0:e===l.STRING||e===l.FORCE_STRING?`${t.v}`:t.v}function mr(e){if(typeof e==`string`){if(e.toUpperCase()===`TRUE`)return!0;if(e.toUpperCase()===`FALSE`)return!1;if(Fe(e)){if(Number(e)===0)return!1;if(Number(e)===1)return!0}}if(typeof e==`number`){if(e===0)return!1;if(e===1)return!0}return typeof e==`boolean`?e:null}function hr(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 gr=(e,t)=>{let{unitId:n,subUnitId:r,cellValue:i}=t,a=e.get(k).getUniverSheetInstance(n);if(a==null)throw Error(`workbook is null error!`);let o=a.getSheetBySheetId(r);if(o==null)throw Error(`worksheet is null error!`);let s=o.getCellMatrix(),c=a.getStyles(),l=new j;return new j(i).forValue((e,t,n)=>{let r=I.deepClone(s==null?void 0:s.getValue(e,t))||{};r.s=cr(c.getStyleByCell(r),c.getStyleByCell(n)),l.setValue(e,t,hr(r))}),{...t,options:{},cellValue:l.getMatrix()}},J={id:`sheet.mutation.set-range-values`,type:u.MUTATION,handler:(e,t)=>{let{cellValue:n,subUnitId:r,unitId:i}=t,a=e.get(k).getUnit(i);if(!a)return!1;let o=a.getSheetBySheetId(r);if(!o)return!1;let s=o.getCellMatrix(),c=a.getStyles();return new j(n).forValue((e,t,n)=>{if(!n)s.realDeleteValue(e,t);else{let r=s.getValue(e,t)||{};r=vr(n,r,c),I.isEmptyObject(r)?s.realDeleteValue(e,t):s.setValue(e,t,r)}}),!0}},_r=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function vr(e,t,n){let r=Nt(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(_r.has(a)){let n=e[a];yr(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=pr(r,e)):a===`s`&&sr(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=pr(r,t)),t.v===null&&(delete t.t,delete t.v),t}function yr(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}const br=(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]=Ln(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},xr={id:`sheet.mutation.set-row-data`,type:u.MUTATION,handler:(e,t)=>{let{rowData:n}=t,r=V(e.get(k),t);if(!r)return!1;let{worksheet:i}=r,a=i.getRowManager();for(let e in n){let t=n[e];if(t==null){a.removeRow(Number(e));continue}let r=a.getRowOrCreate(Number(e));Object.assign(r,t)}return!0}},Sr=(e,t)=>{if(e.get(k).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Cr={id:`sheet.mutation.set-row-visible`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId).getRowManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startRow;e<n.endRow+1;e++){let t=r.getRowOrCreate(e);t!=null&&(t.hd=0)}}return!0}},wr=(e,t)=>{if(e.get(k).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Tr={id:`sheet.mutation.set-row-hidden`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId).getRowManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startRow;e<n.endRow+1;e++){let t=r.getRowOrCreate(e);t!=null&&(t.hd=1)}}return!0}},Er=(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}},Dr={id:`sheet.mutation.set-worksheet-col-width`,type:u.MUTATION,handler:(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{worksheet:r}=n,i=r.getColumnManager(),a=t.ranges;for(let e=0;e<a.length;e++){let n=a[e];for(let e=n.startColumn;e<n.endColumn+1;e++)r.getColVisible(e)&&(typeof t.colWidth==`number`?i.setColumnWidth(e,t.colWidth):I.isDefine(t.colWidth[e])&&i.setColumnWidth(e,t.colWidth[e]))}return!0}},Or=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,columnCount:n.worksheet.getColumnCount()}},kr={id:`sheet.mutation.set-worksheet-column-count`,type:u.MUTATION,handler:(e,t)=>{let n=Rt(e.get(k),t);return n?(n.worksheet.setColumnCount(t.columnCount),!0):!1}},Ar={id:`sheet.mutation.set-worksheet-default-style`,type:u.MUTATION,handler:(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{worksheet:r}=n,{defaultStyle:i}=t;return r.setDefaultCellStyle(i),!0}},jr=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`[SetWorksheetDefaultStyleMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,subUnitId:r.getSheetId(),defaultStyle:r.getDefaultCellStyle()}},Mr=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,rowCount:n.worksheet.getRowCount()}},Nr={id:`sheet.mutation.set-worksheet-row-count`,type:u.MUTATION,handler:(e,t)=>{let n=Rt(e.get(k),t);return n?(n.worksheet.setRowCount(t.rowCount),!0):!1}},Pr=(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}},Fr=(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}},Ir=(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}},Lr={id:`sheet.mutation.set-worksheet-row-height`,type:u.MUTATION,handler:(e,t)=>{let{ranges:n,rowHeight:r}=t,i=V(e.get(k),t);if(!i)return!1;let{worksheet:a}=i,o=a.getRowManager();for(let{startRow:e,endRow:t}of n)for(let n=e;n<=t;n++)typeof r==`number`?o.setRowHeight(n,r):I.isDefine(r[n])&&o.setRowHeight(n,r[n]);return!0}},Rr={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:u.MUTATION,handler:(e,t)=>{let{ranges:n,autoHeightInfo:r}=t,i=V(e.get(k),t);if(!i)return!1;let a=i.worksheet.getRowManager();for(let{startRow:e,endRow:t}of n)for(let n=e;n<=t;n++){let e=a.getRowOrCreate(n);if(typeof r==`number`)e.ia=r;else{var o;e.ia=(o=r[n])==null?void 0:o}}return!0}},zr={id:`sheet.mutation.set-worksheet-row-auto-height`,type:u.MUTATION,handler:(e,t)=>{let{rowsAutoHeightInfo:n}=t,r=V(e.get(k),t);if(!r)return!1;let i=r.worksheet.getRowManager();for(let{row:e,autoHeight:t}of n){let n=i.getRowOrCreate(e);n.ah=t}return!0}},Br={id:`sheet.mutation.toggle-gridlines`,type:u.MUTATION,handler:(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{worksheet:r}=n,i=r.getConfig();return i.showGridlines=t.showGridlines,!0}},Vr={id:`sheet.operation.set-worksheet-active`,type:u.OPERATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getWorksheets();for(let[,e]of r)if(e.getSheetId()===t.subUnitId)return n.setActiveSheet(e),!0;return!1}};let Hr=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}({}),Ur=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 Wr=[Lr.id,Rr.id,zr.id,Dr.id,Vr.id,Dn.id,kn.id,Hn.id,Wn.id,Tr.id,Cr.id,wn.id,Sn.id,Nn.id,jn.id,Br.id,Gn.id,Nr.id,kr.id],Gr=[J.id,Tn.id,q.id,H.id,In.id,Ar.id,xr.id,Bn.id,_n.id,yn.id];function Kr(e,t){switch(t.id){case Ur.SET_RANGE_VALUES:{let e=t.params,n=new j(e.cellValue).getDataRange();return n.endRow===-1?[]:e.cellValue?[{unitId:e.unitId,subUnitId:e.subUnitId,range:n}]:[]}case Ur.MOVE_RANGE:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.from.subUnitId,range:new j(e.from.value).getRange()},{unitId:e.unitId,subUnitId:e.to.subUnitId,range:new j(e.to.value).getRange()}]}case Ur.REMOVE_WORKSHEET_MERGE:{let e=t.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Ur.ADD_WORKSHEET_MERGE:{let e=t.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Ur.REORDER_RANGE:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case Ur.SET_WORKSHEET_DEFAULT_STYLE:{let n=V(e,t.params);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n;return[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1}}]}case Ur.SET_ROW_DATA:{let n=V(e,t.params);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,{rowData:o}=t.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 Ur.SET_COL_DATA:{let n=V(e,t.params);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,{columnData:o}=t.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 Ur.SET_WORKSHEET_RANGE_THEME_STYLE:case Ur.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function qr(e,t){switch(e.id){case Hr.SET_WORKSHEET_ROW_HEIGHT:case Hr.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:N.ROW}}))}case Hr.SET_WORKSHEET_ROW_AUTO_HEIGHT:{let n=e.params;return n.rowsAutoHeightInfo.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{startRow:e.row,endRow:e.row,startColumn:0,endColumn:t-1,rangeType:N.ROW}}))}case Hr.SET_WORKSHEET_COL_WIDTH:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:N.COLUMN}}))}case Hr.MOVE_ROWS:case Hr.MOVE_COLUMNS:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:t.targetRange},{unitId:t.unitId,subUnitId:t.subUnitId,range:t.sourceRange}]}case Hr.SET_COL_HIDDEN:case Hr.SET_COL_VISIBLE:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:N.COLUMN}}))}case Hr.SET_ROW_HIDDEN:case Hr.SET_ROW_VISIBLE:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:N.ROW}}))}case Hr.INSERT_COL:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:N.COLUMN}}]}case Hr.INSERT_ROW:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:N.ROW}}]}case Hr.REMOVE_COL:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:N.COLUMN}}]}case Hr.REMOVE_ROW:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:N.ROW}}]}case Hr.TOGGLE_GRIDLINES:case Hr.SET_GRIDLINES_COLOR:return[];default:return[]}}function Jr(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Yr(e,t){return e&&e.spanAnchor?Jr(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Jr(e)}function Xr(e,t,n,r,i){let a=e.getCellMatrix(),o=e.getSpanModel().getMergedCellRange(t,n,r,i),s=new j;return a.forValue((e,t)=>{let n=a.getValue(e,t);n&&s.setValue(e,t,n)}),o.forEach(e=>{let{startColumn:t,startRow:n,endColumn:r,endRow:i}=e;Ee(n,i,t,r).forEach((e,o)=>{e===n&&o===t&&s.setValue(e,o,{...a.getValue(e,o),spanAnchor:{startRow:n,endRow:i,startColumn:t,endColumn:r}}),(e!==n||o!==t)&&(s.realDeleteValue(e,o),s.setValue(e,o,{spanAnchor:{startRow:n,endRow:i,startColumn:t,endColumn:r}}))})}),s}function Zr(e,t,n,r){let{startRow:i,startColumn:a,endRow:o}=e,s=null,c=!1;for(let e=i;e<=o;e++){let i=t.getValue(e,a-n);if(c=c||Yr(i,t),!r&&c)break;i&&i.spanAnchor&&(s=s?{startRow:Math.min(i.spanAnchor.startRow,s.startRow),startColumn:Math.min(i.spanAnchor.startColumn,s.startColumn),endRow:Math.max(i.spanAnchor.endRow,s.endRow),endColumn:Math.max(i.spanAnchor.endColumn,s.endColumn)}:{startRow:i.spanAnchor.startRow,startColumn:i.spanAnchor.startColumn,endRow:i.spanAnchor.endRow,endColumn:i.spanAnchor.endColumn})}return c?(e.startColumn-=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:F.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function Qr(e,t,n,r){let{startRow:i,endColumn:a,endRow:o}=e,s=null,c=!1;for(let e=i;e<=o;e++){let i=t.getValue(e,a+n);if(c=c||Yr(i,t),!r&&c)break;i&&i.spanAnchor&&(s=s?{startRow:Math.min(i.spanAnchor.startRow,s.startRow),startColumn:Math.min(i.spanAnchor.startColumn,s.startColumn),endRow:Math.max(i.spanAnchor.endRow,s.endRow),endColumn:Math.max(i.spanAnchor.endColumn,s.endColumn)}:{startRow:i.spanAnchor.startRow,startColumn:i.spanAnchor.startColumn,endRow:i.spanAnchor.endRow,endColumn:i.spanAnchor.endColumn})}return c?(e.endColumn+=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:F.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function $r(e,t,n,r){let{startRow:i,startColumn:a,endColumn:o}=e,s=null,c=!1;for(let e=a;e<=o;e++){let a=t.getValue(i-n,e);if(c=c||Yr(a,t),!r&&c)break;a&&a.spanAnchor&&(s=s?{startRow:Math.min(a.spanAnchor.startRow,s.startRow),startColumn:Math.min(a.spanAnchor.startColumn,s.startColumn),endRow:Math.max(a.spanAnchor.endRow,s.endRow),endColumn:Math.max(a.spanAnchor.endColumn,s.endColumn)}:{startRow:a.spanAnchor.startRow,startColumn:a.spanAnchor.startColumn,endRow:a.spanAnchor.endRow,endColumn:a.spanAnchor.endColumn})}return c?(e.startRow-=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:F.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function ei(e,t,n,r){let{startColumn:i,endColumn:a,endRow:o}=e,s=null,c=!1;for(let e=i;e<=a;e++){let i=t.getValue(o+n,e);if(c=c||Yr(i,t),!r&&c)break;i&&i.spanAnchor&&(s=s?{startRow:Math.min(i.spanAnchor.startRow,s.startRow),startColumn:Math.min(i.spanAnchor.startColumn,s.startColumn),endRow:Math.max(i.spanAnchor.endRow,s.endRow),endColumn:Math.max(i.spanAnchor.endColumn,s.endColumn)}:{startRow:i.spanAnchor.startRow,startColumn:i.spanAnchor.startColumn,endRow:i.spanAnchor.endRow,endColumn:i.spanAnchor.endColumn})}return c?(e.endRow+=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:F.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function ti({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);Yr(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);Yr(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);Yr(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);Yr(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 ni(e,t,n){let r=n.getMaxRows(),i=n.getMaxColumns(),a=Xr(n,0,0,r-1,i-1),o=n.getSnapshot().mergeData.length>0,{left:s,right:c,up:l,down:u}=t,d=!0,f={...e},p=[];for(;d;){d=!1;let e=ti({range:f,allMatrixWithSpan:a,directions:t,isWorksheetHasSpan:o,maxRow:r,maxColumn:i});if(e.hasValue){f=e.range,d=!0;continue}if(l&&f.startRow!==0){let{hasValue:e,range:t,spanAnchor:n}=$r(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}if(u&&f.endRow!==r-1){let{hasValue:e,range:t,spanAnchor:n}=ei(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}if(s&&f.startColumn!==0){let{hasValue:e,range:t,spanAnchor:n}=Zr(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}if(c&&f.endColumn!==i-1){let{hasValue:e,range:t,spanAnchor:n}=Qr(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}}return p.length>0&&(f=F.union(f,...p)),f}const ri=e=>{let t=new j;return e.forEach(e=>{P.foreach(e,(e,n)=>{t.setValue(e,n,1)})}),t.forValue((e,n)=>{let r=t.getValue(e-1,n);r&&t.setValue(e,n,r+1)}),t},ii=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},ai=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},oi=(e,t)=>{P.foreach(t,(t,n)=>{e.realDeleteValue(t,n)});for(let n=t.startColumn;n<=t.endColumn;n++){let r=t.endRow+1;if(e.getValue(r,n)>0){e.setValue(r,n,1);let t=r+1;for(;e.getValue(t,n)>0;)e.setValue(t,n,e.getValue(t-1,n)+1),t++}}return e},si=e=>{let t=[],n=ai(e);for(;n.area>0;)n.range&&(t.push(n.range),oi(e,n.range)),n=ai(e);return t},ci=e=>si(ri(e));var li=class{constructor(){U(this,`_matrix`,new j)}add(...e){return e.forEach(e=>{P.foreach(e,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...e){return e.forEach(e=>{P.foreach(e,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return si(ii(this._matrix))}};const ui=1.5,di=`rgba(255, 255, 255, 0.01)`;function fi(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=pi(n)),i}function pi(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 mi=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 hi=class{constructor(){U(this,`_tabCount`,0),U(this,`_commaCount`,0),U(this,`_semicolonCount`,0),U(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?mi.Tab:e===this._commaCount?mi.Comma:e===this._semicolonCount?mi.Semicolon:e===this._spaceCount?mi.Space:mi.Tab}};function gi(e,t,n){let r=[];n!==void 0&&(e&mi.Custom)>0&&r.push(n),(e&mi.Tab)>0&&r.push(` `),(e&mi.Comma)>0&&r.push(`,`),(e&mi.Semicolon)>0&&r.push(`;`),(e&mi.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=_i(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function _i(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const vi=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function yi(e){if(e!=null){if(e.p)return vi(e.p);if(e.v&&typeof e.v==`string`)return e.v;if(e.t&&(e.t===l.FORCE_STRING||e.t===l.STRING))return String(e.v)}}function bi(e,t,n,r,i=!1){let{startColumn:a,startRow:o,endColumn:s,endRow:c}=P.transformRange(t,e);if(a!==s)throw Error(`The range must be in the same column.`);if(n&&(n&mi.Custom)>0&&(r===void 0||r.length!==1))throw Error(`The custom delimiter must a character.`);let l=n===void 0,u=l?new hi:null,d=[];for(let t=o;t<=c;t++){let n=yi(e.getCell(t,a));d.push(n),u&&u.update(n)}let f=gi(l?u.getDelimiter():n,i,r),p=-1,m=0,h=0,g=[];for(let e of d){if(e!==void 0){let t=String(e).split(f);p=p<0?t.length:Math.max(p,t.length),g.push(t),m=h}else g.push(void 0);h++}return{rs:g,maxLength:p===-1?0:p,lastRow:m}}const xi=(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)},{}),Si=(e=0)=>{let t=e;return function(){return t++}};function Ci(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function wi(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(Ci(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function Ti(e){let t=new j;return e.forEach(e=>{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.setValue(e,n,null)}),t.clone()}function Ei(e){let t=new j;return e.forEach(e=>{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.setValue(e,n,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}function Di(e){let t=new j;return e.forEach(e=>{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.setValue(e,n,{s:null})}),t.clone()}function Oi(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 ki(e,t,n,r){let i=t.get(k),a=n?i.getUnit(n,L.UNIVER_SHEET):i.getCurrentUnitForType(L.UNIVER_SHEET),o=r?a==null?void 0:a.getSheetBySheetId(r):a==null?void 0:a.getActiveSheet();if(!o)return null;let{startRow:s,endRow:c,startColumn:l,endColumn:u}=e,d=[],f=[];for(let e=s;e<=c;e++)o.getRowFiltered(e)||d.push(e);for(let e=l;e<=u;e++)f.push(e);return{rows:d,cols:f}}function Ai(e,t,n,r){let i=V(t.get(k),{unitId:n,subUnitId:r});if(!i)return e;let{worksheet:a}=i,o=[];for(let t of e){let{startRow:e,endRow:n,startColumn:r,endColumn:i}=t,s=[],c=e;for(let t=e;t<=n;t++)a.getRowFiltered(t)?(c<t&&s.push([c,t-1]),c=t+1):t===n&&s.push([c,n]);let l=o.findIndex(e=>e.startColumn===r&&e.endColumn===i);l>-1?o[l].rowIntervals=o[l].rowIntervals.concat(s):o.push({startColumn:r,endColumn:i,rowIntervals:s})}let s=[];for(let e of o){let{startColumn:t,endColumn:n,rowIntervals:r}=e,i=ze(r);for(let[e,r]of i)s.push({startRow:e,endRow:r,startColumn:t,endColumn:n})}return s}let ji=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),Mi=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var Ni=class{constructor(){U(this,`_model`,new Map),U(this,`_ruleChange$`,new nt),U(this,`ruleChange$`,this._ruleChange$.asObservable()),U(this,`_ruleRefresh$`,new nt),U(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),U(this,`_rangeRuleInitStateChange`,new tt(!1)),U(this,`rangeRuleInitStateChange$`,this._rangeRuleInitStateChange.asObservable())}dispose(){this._ruleChange$.complete(),this._ruleRefresh$.complete()}ruleRefresh(e){this._ruleRefresh$.next(e)}getRangeRuleInitState(){return this._rangeRuleInitStateChange.value}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,t,n){this._ensureRuleMap(e,t).set(n.id,n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:n,type:`add`})}deleteRule(e,t,n){var r;let i=(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.delete(n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:i,type:`delete`})}}setRule(e,t,n,r){let i=this.getRule(e,t,n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.set(n,r),this._ruleChange$.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:`set`})}}getRule(e,t,n){var r;return(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}getSubunitRuleList(e,t){var n;return[...(((n=this._model.get(e))==null?void 0:n.get(t))||new Map).values()]}getSubunitRuleListLength(e,t){var n;let r=(n=this._model.get(e))==null?void 0:n.get(t);return r?r.size:0}_ensureRuleMap(e,t){let n=this._model.get(e);n||(n=new Map,this._model.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t),r=[...n.keys()];e[t]={},r.forEach(r=>{let i=n.get(r);e[t][r]=[...i.values()]})}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n],i=new Map;Object.keys(r).forEach(e=>{let t=r[e].reduce((e,t)=>(e.set(t.id,t),e),new Map);i.set(e,t)}),t.set(n,i)}),this._model=t}deleteUnitModel(e){this._model.delete(e)}createRuleId(e,t){let n=De(4),r=this._ensureRuleMap(e,t);for(;r.has(n);)n=De(4);return n}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 Pi=(e,t)=>{let n=e.get(Ni),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:Li.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Fi={id:`sheet.mutation.delete-range-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(Ni);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},Ii=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Fi.id,params:t}},Li={id:`sheet.mutation.add-range-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(Ni);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},Ri={type:u.COMMAND,id:`sheet.command.add-range-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(O),i=e.get(Ni),{rule:a,permissionId:o}=t,{unitId:s,subUnitId:c,ranges:l,description:u,viewState:d,editState:f}=a,p=[{ranges:l,permissionId:o,id:i.createRuleId(s,c),description:u,unitType:a.unitType,unitId:s,subUnitId:c,viewState:d,editState:f}];if(await n.executeCommand(Li.id,{unitId:s,subUnitId:c,rules:p})){let e=[{id:Li.id,params:{unitId:s,subUnitId:c,rules:p}}],t=[{id:Fi.id,params:{unitId:s,subUnitId:c,ruleIds:p.map(e=>e.id)}}];r.pushUndoRedo({unitID:s,redoMutations:e,undoMutations:t})}return!0}};let zi=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 Bi=class extends h{constructor(e){super(),this._workbook=e,U(this,`_worksheetSelections`,new Map),U(this,`_worksheetLastSelectionPrimaryCell`,new Map),U(this,`_selectionMoveStart$`,new nt),U(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),U(this,`_selectionMoving$`,new nt),U(this,`selectionMoving$`,this._selectionMoving$.asObservable()),U(this,`_selectionMoveEnd$`,new tt([])),U(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),U(this,`_selectionSet$`,new tt([])),U(this,`selectionSet$`,this._selectionSet$.asObservable()),U(this,`selectionChanged$`,void 0),U(this,`_beforeSelectionMoveEnd$`,new tt([])),U(this,`beforeSelectionMoveEnd$`,this._beforeSelectionMoveEnd$.asObservable()),this.selectionChanged$=st(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 zi.MOVE_START:this._selectionMoveStart$.next(t);break;case zi.MOVING:this._selectionMoving$.next(t);break;case zi.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case zi.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 Y=class extends me{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitForType(L.UNIVER_SHEET);if(!e)return null;let t=e.getActiveSheet();return{unitId:e.getUnitId(),sheetId:t.getSheetId()}}get currentSelectionParam(){return this._currentSelectionPos}constructor(e){super(),this._instanceSrv=e,U(this,`_cellStylesCache`,new Map),U(this,`selectionMoveStart$`,void 0),U(this,`selectionMoving$`,void 0),U(this,`selectionMoveEnd$`,void 0),U(this,`selectionSet$`,void 0),U(this,`selectionChanged$`,void 0),U(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(L.UNIVER_SHEET).pipe(lt(1),ft(this.dispose$));this.selectionMoveStart$=e.pipe().pipe(dt(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:ct())).pipe(ft(this.dispose$)),this.selectionMoving$=e.pipe(dt(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:ct())).pipe(ft(this.dispose$)),this.selectionMoveEnd$=e.pipe(dt(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:ct([]))).pipe(ft(this.dispose$)),this.selectionSet$=e.pipe(dt(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:ct([]))).pipe(ft(this.dispose$)),this.selectionChanged$=e.pipe(dt(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:ct([]))).pipe(rt((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),ut(1)).pipe(ft(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(L.UNIVER_SHEET).pipe(ft(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe(ft(this.dispose$)).subscribe(()=>{this._cellStylesCache.clear()}))}dispose(){super.dispose(),this._cellStylesCache.clear(),this._workbookSelections.forEach(e=>e.dispose()),this._workbookSelections.clear(),this.selectionMoveStart$=ct(null),this.selectionMoving$=ct(null),this.selectionMoveEnd$=ct([]),this.selectionSet$=ct(null),this.selectionChanged$=ct(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?zi.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?zi.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 Bi(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var t;let n=(t=this._instanceSrv.getCurrentUnitForType(L.UNIVER_SHEET))==null?void 0:t.getActiveSheet(),r=this.getCurrentSelections();if(!n||r.length===0)return{isAllValuesSame:!1,value:null};let i=null;for(let t=0;t<r.length;t++){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=r[t].range;for(let t=a;t<=o;t++)for(let r=s;r<=c;r++){let a=`${t}_${r}`,o;this._cellStylesCache.has(a)?o=this._cellStylesCache.get(a):(o=n.getComposedCellStyle(t,r),this._cellStylesCache.set(a,o));let s=o[e];if(i!=null&&!I.diffValue(i,s))return{isAllValuesSame:!1,value:null};i=s}}return{isAllValuesSame:!0,value:i}}};Y=G([W(0,k)],Y);const Vi=`DISABLE_NORMAL_SELECTIONS`,Hi=`SELECTIONS_ENABLED`,Ui=`REF_SELECTIONS_ENABLED`,Wi={id:`sheet.command.clear-selection-all`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(k),i=e.get(C),a=e.get(Y),o=e.get(O),s=e.get(K),c=r.getCurrentUnitForType(L.UNIVER_SHEET);if(!c)return!1;let l=(t==null?void 0:t.unitId)||c.getUnitId(),u=c.getActiveSheet();if(!u)return!1;let d=(t==null?void 0:t.subUnitId)||u.getSheetId(),f=(t==null?void 0:t.ranges)||((n=a.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(f!=null&&f.length))return!1;let p=Ai(f,e,l,d),m=[],h=[],g={subUnitId:d,unitId:l,cellValue:Ti(p)},_=gr(e,g);m.push({id:J.id,params:g}),h.push({id:J.id,params:_});let v=s.onCommandExecute({id:Wi.id});return m.push(...v.redos),h.unshift(...v.undos),R(m,i)?(o.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:m}),!0):!1}},Gi={id:`sheet.command.clear-selection-format`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(k),i=e.get(C),a=e.get(Y),o=e.get(O),s=e.get(K),c=r.getCurrentUnitForType(L.UNIVER_SHEET);if(!c)return!1;let l=(t==null?void 0:t.unitId)||c.getUnitId(),u=c.getActiveSheet();if(!u)return!1;let d=(t==null?void 0:t.subUnitId)||u.getSheetId(),f=(t==null?void 0:t.ranges)||((n=a.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(f!=null&&f.length))return!1;let p=Ai(f,e,l,d),m=[],h=[],g={subUnitId:d,unitId:l,cellValue:Di(p)},_=gr(e,g);m.push({id:J.id,params:g}),h.push({id:J.id,params:_});let v=s.onCommandExecute({id:Gi.id});return m.push(...v.redos),h.unshift(...v.undos),R(m,i)?(o.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:m}),!0):!1}};function Ki(e,t,n=!0){let r=t.getMatrixWithMergedCells(...Je(e)),i=[];if(r.forValue((t,n,r)=>{if(r.colSpan!==void 0&&r.rowSpan!==void 0){let a={startRow:t,startColumn:n,endRow:t+r.rowSpan-1,endColumn:n+r.colSpan-1};F.contains(e,a)||i.push(a)}}),i.length===0)return e;let a=F.union(e,...i);return n?Ki(a,t,n):a}function qi(e,t,n){let r=null;return n.getMatrixWithMergedCells(e,t,e,t).forValue((e,t,n)=>(r={actualRow:e,actualColumn:t,startRow:e,startColumn:t,isMerged:n.rowSpan!==void 0||n.colSpan!==void 0,isMergedMainCell:n.rowSpan!==void 0&&n.colSpan!==void 0,endRow:e+(n.rowSpan===void 0?0:n.rowSpan-1),endColumn:t+(n.colSpan===void 0?0:n.colSpan-1),rangeType:N.NORMAL},!1)),r||{actualColumn:t,actualRow:e,startRow:e,startColumn:t,endRow:e,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:N.NORMAL}}function Ji(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 Yi(e,t){let n=Number.isNaN(e.startRow)?0:e.startRow,r=Number.isNaN(e.startColumn)?0:e.startColumn,i=t.getMergedCell(n,r);return i?{...i,actualRow:n,actualColumn:r,rangeType:N.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:r,endRow:e.startRow,endColumn:e.startColumn,actualRow:n,actualColumn:r,rangeType:N.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Xi=(e,t,n)=>({id:X.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:Yi(e,n)}]}});function Zi(e){if(!e)return!1;let{range:t,primary:n}=e;return F.equals(t,n)}function Qi(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 $i=e=>e.id!==Ht;function ea(e,t,n,r,i,a,o){let s={};for(let c=t;c<=n;c++)for(let t=r;t<=i;t++){let n=a?e.getCellWithFilteredInterceptors(o,t,Ut,$i):e.getCellWithFilteredInterceptors(c,o,Ut,$i);!n||!n.s||(s[c]||(s[c]={}),s[c][t]={s:n.s})}for(let e in s){for(let t in s[e]){let n=s[e][t];n.s&&typeof n.s==`object`&&I.isEmptyObject(n.s)&&delete n.s,I.isEmptyObject(n)&&delete s[e][t]}I.isEmptyObject(s[e])&&delete s[e]}return s}const ta=we(`sheets-formula.ref-selections.service`);let na=class extends Y{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe(ft(this.dispose$));this.selectionMoveStart$=e.pipe(dt(e=>st(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe(dt(e=>st(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe(dt(e=>st(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe(dt(e=>st(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=ct(null),this.selectionMoving$=ct(null),this.selectionMoveEnd$=ct(null),this.selectionSet$=ct(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let e=this._instanceSrv.getAllUnitsForType(L.UNIVER_SHEET);e.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let t=new tt(e);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(L.UNIVER_SHEET).subscribe(e=>{this._ensureWorkbookSelection(e.getUnitId()),t.next([...t.getValue(),e])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(L.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),t.next(t.getValue().filter(t=>t!==e))})),t.pipe(ot(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};na=G([W(0,k)],na);function ra(e,t){let n=e.get(E).getContextValue(Ui);return e.get(n&&!t?ta:Y)}const X={id:`sheet.operation.set-selections`,type:u.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return ra(e).setSelections(i,a,[...n],r),!0}},ia={id:`sheet.command.select-range`,type:u.COMMAND,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnit:r,range:i}=t,a=e.get(C),o=V(e.get(k),t);if(!o)return!1;let s=[{range:i,primary:Yi(i,o.worksheet),style:null}];return a.syncExecuteCommand(X.id,{unitId:n,subUnitId:r,selections:s})}},aa=`sheet.command.move-range`,oa={type:u.COMMAND,id:aa,handler:async(e,t)=>{let n=e.get(C),r=e.get(O),i=e.get(v),a=e.get(se);if(!await e.get(K).beforeCommandExecute({id:oa.id,params:t}))return!1;let o=ca(e,t);return o?R(o.redos,n).result?(r.pushUndoRedo({unitID:o.unitId,undoMutations:o.undos,redoMutations:o.redos}),!0):!1:(i.emit(a.t(`sheets.info.acrossMergedCell`)),!1)}};function sa(e,t){var n,r,i,a,o;let s=e.get(k),c=V(s),l=(n=(r=t.toUnitId)==null?t.fromUnitId:r)==null?c==null?void 0:c.unitId:n,u=(i=t.fromSubUnitId)==null?c==null?void 0:c.subUnitId:i,d=(a=(o=t.toSubUnitId)==null?t.fromSubUnitId:o)==null?c==null?void 0:c.subUnitId:a;if(!l||!u||!d||t.fromUnitId&&t.toUnitId&&t.fromUnitId!==t.toUnitId)return null;let f=s.getUniverSheetInstance(l),p=f==null?void 0:f.getSheetBySheetId(u),m=f==null?void 0:f.getSheetBySheetId(d);return!p||!m?null:{unitId:l,fromSubUnitId:u,toSubUnitId:d,fromWorksheet:p,toWorksheet:m}}function ca(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=sa(e,t);if(!c)return null;let l=e.get(K),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=la(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:oa.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:X.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:ua(t.fromRange,t.toRange,p,m)}],type:zi.MOVE_END}}),y.push({id:X.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:Yi(t.fromRange,p)}],type:zi.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 la(e,t,n,r=!1){let i=[],a=[],{range:o,subUnitId:s,unitId:c}=t,{range:l,subUnitId:u}=n,d=e.get(k).getUniverSheetInstance(c),f=d==null?void 0:d.getSheetBySheetId(u),p=d==null?void 0:d.getSheetBySheetId(s),m=f==null?void 0:f.getCellMatrix(),h=p==null?void 0:p.getCellMatrix();if(f&&p&&m&&h){let e=Ki(l,f,!1);if(!F.equals(l,e)&&!r)return null;let p=new j,g=new j,_=new j;P.foreach(o,(e,t)=>{let n=h.getValue(e,t);if(p.setValue(e,t,I.deepClone(n)),n){let r=d==null?void 0:d.getStyles().get(n.s);_.setValue(e,t,I.deepClone(r))}g.setValue(e,t,null)});let v=new j,y=new j;P.foreach(l,(e,t)=>{v.setValue(e,t,I.deepClone(m.getValue(e,t)))}),P.foreach(o,(e,t)=>{let n=be(e,t),r=F.getRelativeRange(n,o),i=F.getPositionRange(r,l),a=I.deepClone(_.getValue(e,t)),s=I.deepClone(p.getValue(e,t));s&&a&&(s.s=a),y.setValue(i.startRow,i.startColumn,s)});let b={fromRange:t.range,toRange:n.range,from:{value:g.getMatrix(),subUnitId:s},to:{value:y.getMatrix(),subUnitId:u},unitId:c},x={fromRange:n.range,toRange:t.range,from:{value:p.getMatrix(),subUnitId:s},to:{value:v.getMatrix(),subUnitId:u},unitId:c};i.push({id:Tn.id,params:b}),a.push({id:Tn.id,params:x})}return{redos:i,undos:a}}function ua(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=Yi(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 da=class{constructor(e,t,n){U(this,`type`,B.SelectRange),U(this,`subType`,z.Edit),U(this,`status`,M.INIT),U(this,`value`,!0),U(this,`id`,void 0),U(this,`unitId`,void 0),U(this,`subUnitId`,void 0),U(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${B.SelectRange}.${z.Edit}.${n}`}},fa=class{constructor(e,t,n){U(this,`type`,B.SelectRange),U(this,`subType`,z.View),U(this,`status`,M.INIT),U(this,`value`,!1),U(this,`id`,void 0),U(this,`unitId`,void 0),U(this,`subUnitId`,void 0),U(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${B.SelectRange}.${z.View}.${n}`}},pa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.Comment),this.unitId=e,this.id=`${this.type}.${z.Comment}_${e}`}},ma=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.Copy),this.unitId=e,this.id=`${this.type}.${z.Copy}_${e}`}},ha=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`subType`,z.CopySheet),U(this,`status`,M.INIT),this.unitId=e,this.id=`${this.type}.${z.CopySheet}_${e}`}},ga=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${z.CreatePermissionObject}_${e}`}},_a=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.CreateSheet),this.unitId=e,this.id=`${this.type}.${z.CreateSheet}_${e}`}},va=class{constructor(e){this.unitId=e,U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.DeleteColumn),this.id=`${this.type}.${z.DeleteColumn}_${e}`}},ya=class{constructor(e){this.unitId=e,U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.DeleteRow),this.id=`${this.type}.${z.DeleteRow}_${e}`}},ba=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.DeleteSheet),this.unitId=e,this.id=`${this.type}.${z.DeleteSheet}_${e}`}},xa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.Duplicate),this.unitId=e,this.id=`${this.type}.${z.Duplicate}_${e}`}},Sa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.Edit),this.unitId=e,this.id=`${this.type}.${z.Edit}_${e}`}},Ca=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.Export),this.unitId=e,this.id=`${this.type}.${z.Export}_${e}`}},wa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.HideSheet),this.unitId=e,this.id=`${this.type}.${z.HideSheet}_${e}`}},Ta=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.History),this.unitId=e,this.id=`${this.type}.${z.History}_${e}`}},Ea=class{constructor(e){this.unitId=e,U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.InsertColumn),this.id=`${this.type}.${z.InsertColumn}_${e}`}},Da=class{constructor(e){this.unitId=e,U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.InsertRow),this.id=`${this.type}.${z.InsertRow}_${e}`}},Oa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${z.ManageCollaborator}_${e}`}},ka=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.MoveSheet),this.unitId=e,this.id=`${this.type}.${z.MoveSheet}_${e}`}},Aa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.Print),this.unitId=e,this.id=`${this.type}.${z.Print}_${e}`}},ja=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.RecoverHistory),this.unitId=e,this.id=`${this.type}.${z.RecoverHistory}_${e}`}},Ma=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.RenameSheet),this.unitId=e,this.id=`${this.type}.${z.RenameSheet}_${e}`}},Na=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.Share),this.unitId=e,this.id=`${this.type}.${z.Share}_${e}`}},Pa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.View),this.unitId=e,this.id=`${this.type}.${z.View}_${e}`}},Fa=class{constructor(e){this.unitId=e,U(this,`id`,void 0),U(this,`value`,!0),U(this,`type`,B.Workbook),U(this,`status`,M.INIT),U(this,`subType`,z.ViewHistory),this.unitId=e,this.id=`${this.type}.${z.ViewHistory}_${e}`}},Ia=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.Copy),this.id=`${this.type}.${z.Copy}_${e}_${t}`}},La=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.DeleteColumn),this.id=`${this.type}.${z.DeleteColumn}_${e}_${t}`}},Ra=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.Delete),this.id=`${this.type}.${z.Delete}_${e}_${t}`}},za=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.DeleteRow),this.id=`${this.type}.${z.DeleteRow}_${e}_${t}`}},Ba=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.Edit),this.id=`${this.type}.${z.Edit}_${e}_${t}`}},Va=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.EditExtraObject),this.id=`${this.type}.${z.EditExtraObject}_${e}_${t}`}},Ha=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.Filter),this.id=`${this.type}.${z.Filter}_${e}_${t}`}},Ua=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.InsertColumn),this.id=`${this.type}.${z.InsertColumn}_${e}_${t}`}},Wa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.InsertHyperlink),this.id=`${this.type}.${z.InsertHyperlink}_${e}_${t}`}},Ga=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.InsertRow),this.id=`${this.type}.${z.InsertRow}_${e}_${t}`}},Ka=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.ManageCollaborator),this.id=`${this.type}.${z.ManageCollaborator}_${e}_${t}`}},qa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.PivotTable),this.id=`${this.type}.${z.PivotTable}_${e}_${t}`}},Ja=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.SelectProtectedCells),this.id=`${this.type}.${z.SelectProtectedCells}_${e}_${t}`}},Ya=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.SelectUnProtectedCells),this.id=`${this.type}.${z.SelectUnProtectedCells}_${e}_${t}`}},Xa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.SetCellStyle),this.id=`${this.type}.${z.SetCellStyle}_${e}_${t}`}},Za=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.SetCellValue),this.id=`${this.type}.${z.SetCellValue}_${e}_${t}`}},Qa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.SetColumnStyle),this.id=`${this.type}.${z.SetColumnStyle}_${e}_${t}`}},$a=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.SetRowStyle),this.id=`${this.type}.${z.SetRowStyle}_${e}_${t}`}},eo=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.Sort),this.id=`${this.type}.${z.Sort}_${e}_${t}`}},to=class{constructor(e,t){this.unitId=e,this.subUnitId=t,U(this,`value`,!0),U(this,`type`,B.Worksheet),U(this,`status`,M.INIT),U(this,`id`,void 0),U(this,`subType`,z.View),this.id=`${this.type}.${z.View}_${e}_${t}`}};const no={id:`sheet.command.set-range-values`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(O),o=e.get(k),s=e.get(Y),c=e.get(K),l=e.get(D),u=V(o,t);if(!u)return!1;let{subUnitId:d,unitId:f,workbook:p,worksheet:m}=u,{value:h,range:g,redoUndoId:_}=t,v=g?[g]:(n=s.getCurrentSelections())==null?void 0:n.map(e=>e.range);if(!v||!v.length||!l.getPermissionPoint(new Ba(f,d).id))return!1;let y=new j,b;if(I.isArray(h))for(let e=0;e<v.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=v[e];for(let e=0;e<=r-t;e++)for(let r=0;r<=i-n;r++)y.setValue(e+t,r+n,h[e][r])}else if(Ne(h))for(let e=0;e<v.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=v[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)y.setValue(e,t,h)}else b=h;let x={subUnitId:d,unitId:f,cellValue:(r=b)==null?y.getMatrix():r},S=gr(e,x),w=Le(x.cellValue,(e,t)=>m.getCellHeight(e,t)||void 0);if(!i.syncExecuteCommand(J.id,x))return!1;let{undos:T,redos:E}=c.onCommandExecute({id:no.id,params:x}),{undos:ee,redos:te}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:v,cellHeights:new j(w)});if(R([...E,...te],i).result){let e=Xi(g==null?y.getRange():g,p,m);return a.pushUndoRedo({unitID:f,undoMutations:[{id:J.id,params:S},...T,...ee,e],redoMutations:[{id:J.id,params:x},...E,...te,I.deepClone(e)],id:_}),!0}return!1}};function ro(e,t){let n=[],r=[],{unitId:i,subUnitId:a,range:o,shiftDimension:s,cellValue:c={}}=t,l=e.get(k),u=e.get(K),d=l.getUniverSheetInstance(i),f=d==null?void 0:d.getSheetBySheetId(a);if(f){let t=f.getCellMatrix(),l=t.getDataRange();if(o.startColumn<=l.endColumn||o.startRow<=l.endRow){let c,u;if(s===p.COLUMNS){let e=Math.min(o.endRow,l.endRow),n=0;for(let r=o.startRow;r<=e;r++){let e=t.getRow(r),i=e?Oe(e)-1:0;n=Math.max(n,i)}c={startRow:o.startRow,startColumn:o.startColumn,endRow:e,endColumn:n};let r=o.endColumn-o.startColumn+1;u={startRow:o.startRow,startColumn:c.startColumn+r,endRow:e,endColumn:c.endColumn+r}}else{let e=Math.min(o.endColumn,l.endColumn),t=l.endRow;c={startRow:o.startRow,startColumn:o.startColumn,endRow:t,endColumn:e};let n=o.endRow-o.startRow+1;u={startRow:c.startRow+n,startColumn:o.startColumn,endRow:c.endRow+n,endColumn:e}}let d=la(e,{unitId:i,subUnitId:a,range:c},{unitId:i,subUnitId:a,range:u},!0);d&&(n.push(...d.redos),r.push(...d.undos))}if(Object.entries(c).length===0)for(let e=o.startRow;e<=o.endRow;e++){c[e]||(c[e]={});for(let t=o.startColumn;t<=o.endColumn;t++)c[e][t]=null}let d={subUnitId:a,unitId:i,cellValue:c},m=gr(e,d),{undos:h,redos:g}=u.onCommandExecute({id:no.id,params:{...d,range:o}});n.push({id:J.id,params:d},...g),r.push({id:J.id,params:m},...h)}return{redo:n,undo:r}}function io(e,t){let n=[],r=[],{unitId:i,subUnitId:a,range:o,shiftDimension:s}=t,c=e.get(k),l=e.get(K),u=c.getUniverSheetInstance(i),d=u==null?void 0:u.getSheetBySheetId(a);if(d){let t=d.getCellMatrix(),c=t.getDataRange(),u={subUnitId:a,unitId:i,cellValue:Ti([o])},f=gr(e,u),m=l.onCommandExecute({id:no.id,params:u});if(n.push({id:J.id,params:u},...m.redos),r.push(...m.undos,{id:J.id,params:f}),o.startColumn<=c.endColumn||o.startRow<=c.endRow){let l=null,u=null;if(s===p.COLUMNS&&o.endColumn<c.endColumn){let e=Math.min(o.endRow,c.endRow),n=0;for(let r=o.startRow;r<=e;r++){let e=t.getRow(r),i=e?Oe(e)-1:0;n=Math.max(n,i)}l={startRow:o.startRow,startColumn:o.endColumn+1,endRow:e,endColumn:n};let r=o.endColumn-o.startColumn+1;u={startRow:o.startRow,startColumn:l.startColumn-r,endRow:e,endColumn:l.endColumn-r}}if(s===p.ROWS&&o.endRow<c.endRow){let e=Math.min(o.endColumn,c.endColumn),t=c.endRow;l={startRow:o.endRow+1,startColumn:o.startColumn,endRow:t,endColumn:e};let n=o.endRow-o.startRow+1;u={startRow:l.startRow-n,startColumn:o.startColumn,endRow:l.endRow-n,endColumn:e}}if(l&&u){let t=la(e,{unitId:i,subUnitId:a,range:l},{unitId:i,subUnitId:a,range:u},!0);t&&(n.push(...t.redos),r.push(...t.undos))}}}return{redo:n,undo:r}}function ao(e,t,n,r,i,a){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=t;if(i===p.ROWS){let t=s-o+1;for(let r=n;r>=o;r--)for(let n=c;n<=l;n++){let i=e.getValue(r,n);i==null?e.realDeleteValue(r+t,n):e.setValue(r+t,n,i)}for(let t=s;t>=o;t--)for(let n=c;n<=l;n++)a&&a[t]&&a[t][n]?e.setValue(t,n,a[t][n]):e.realDeleteValue(t,n)}else if(i===p.COLUMNS){let t=l-c+1;for(let n=o;n<=s;n++)for(let i=r;i>=c;i--){let r=e.getValue(n,i);r==null?e.realDeleteValue(n,i+t):e.setValue(n,i+t,r)}for(let t=o;t<=s;t++)for(let n=l;n>=c;n--)a&&a[t]&&a[t][n]?e.setValue(t,n,a[t][n]):e.realDeleteValue(t,n)}}function oo(e,t,n,r,i){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=t,l=o-a+1,u=c-s+1;if(i===p.ROWS)for(let t=a;t<=n;t++)for(let n=s;n<=c;n++){let r=e.getValue(t+l,n);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}else if(i===p.COLUMNS)for(let t=a;t<=o;t++)for(let n=s;n<=r;n++){let r=e.getValue(t,n+u);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}}const so=`sheet.command.delete-range-move-left`,co={type:u.COMMAND,id:so,handler:async(e,t)=>{var n,r;let i=e.get(C),a=e.get(O),o=e.get(k),s=e.get(Y),c=e.get(K),l=V(o);if(!l)return!1;let{worksheet:u,workbook:d,subUnitId:f,unitId:m}=l,h=t==null?void 0:t.range;if(!h){var g;h=(g=s.getCurrentLastSelection())==null?void 0:g.range}if(!h)return!1;let _={range:h,subUnitId:f,unitId:m,shiftDimension:p.COLUMNS},v=c.onCommandExecute({id:co.id,params:{range:h}}),{redo:y,undo:b}=io(e,_),x=[...(n=v.preRedos)==null?[]:n,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Xi(h,d,u)),S.push(...(r=v.preUndos)==null?[]:r),R(x,i).result){let e=c.afterCommandExecute({id:co.id,params:{range:h}});return R(e.redos,i),S.push(...e.undos),x.push(...e.redos),a.pushUndoRedo({unitID:m,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},lo=`sheet.command.delete-range-move-up`,uo={type:u.COMMAND,id:lo,handler:async(e,t)=>{var n,r;let i=e.get(C),a=e.get(O),o=e.get(k),s=e.get(Y),c=e.get(K),l=V(o);if(!l)return!1;let{unitId:u,subUnitId:d,workbook:f,worksheet:m}=l,h=t==null?void 0:t.range;if(!h){let e=s.getCurrentLastSelection();h=e==null?void 0:e.range}if(!h)return!1;let g={range:h,subUnitId:d,unitId:u,shiftDimension:p.ROWS},_=c.onCommandExecute({id:uo.id,params:{range:h}}),{redo:v,undo:y}=io(e,g),b=[...(n=_.preRedos)==null?[]:n,...v],x=[..._.undos,...y];if(b.push(..._.redos),b.push(Xi(h,f,m)),x.push(...(r=_.preUndos)==null?[]:r),R(b,i).result){let e=c.afterCommandExecute({id:uo.id,params:{range:h}});return R(e.redos,i),x.push(...e.undos),b.push(...e.redos),a.pushUndoRedo({unitID:u,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},fo=`sheet.command.insert-range-move-down`,po={type:u.COMMAND,id:fo,handler:async(e,t)=>{var n,i;let a=e.get(C),o=e.get(O),s=e.get(k),c=e.get(Y),l=e.get(K),u=e.get(v),d=e.get(se);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=V(s);if(!f)return!1;let{unitId:m,subUnitId:h,worksheet:g,workbook:_}=f,y=t==null?void 0:t.range;if(!y){var b;y=(b=c.getCurrentLastSelection())==null?void 0:b.range}if(!y)return!1;let x=[],S=[],w=g.getCellMatrix(),T=w.getDataRange(),E=w.getSlice(T.startRow,T.endRow,y.startColumn,y.endColumn).getDataRange().endRow,ee=Math.max(E+(y.endRow-y.startRow+1)-T.endRow,0);if(ee>0){let t=y.startRow-1,n=g.getRowHeight(t),i={unitId:m,subUnitId:h,range:{startRow:T.endRow+1,endRow:T.endRow+ee,startColumn:T.startColumn,endColumn:T.endColumn},rowInfo:Array(ee).fill(void 0).map(()=>({h:n,hd:r.FALSE}))};x.push({id:Sn.id,params:i});let a=xn(e,i);S.push({id:jn.id,params:a})}let D={};P.foreach(y,(e,t)=>{let n=g.getCell(e,t);n&&(D[e]||(D[e]={}),D[e][t]={s:n.s})});let{redo:te,undo:ne}=ro(e,{range:y,subUnitId:h,unitId:m,shiftDimension:p.ROWS,cellValue:D});x.push(...te),S.push(...ne);let A=l.onCommandExecute({id:po.id,params:{range:y}});if(x.push(...A.redos),x.push(Xi(y,_,g)),S.push(...(n=A.preUndos)==null?[]:n),x.unshift(...(i=A.preRedos)==null?[]:i),S.unshift(...A.undos),R(x,a)){let e=l.afterCommandExecute({id:po.id,params:{range:y}});return R(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:m,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},mo=`sheet.command.insert-range-move-right`,ho={type:u.COMMAND,id:mo,handler:async(e,t)=>{var n,i;let a=e.get(C),o=e.get(O),s=e.get(k),c=e.get(Y),l=e.get(K),u=e.get(v),d=e.get(se);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=V(s);if(!f)return!1;let{workbook:m,worksheet:h,unitId:g,subUnitId:_}=f,y=t==null?void 0:t.range;if(!y){var b;y=(b=c.getCurrentLastSelection())==null?void 0:b.range}if(!y)return!1;let x=[],S=[],w=h.getCellMatrix(),T=w.getDataRange(),E=w.getSlice(y.startRow,y.endRow,T.startColumn,T.endColumn).getDataRange().endColumn,ee=Math.max(E+(y.endColumn-y.startColumn+1)-T.endColumn,0);if(ee>0){let t=y.startColumn-1,n=h.getColumnWidth(t),i={unitId:g,subUnitId:_,range:{startRow:T.startRow+1,endRow:T.endRow,startColumn:T.endColumn+1,endColumn:T.endColumn+ee},colInfo:Array(ee).fill(void 0).map(()=>({w:n,hd:r.FALSE}))};x.push({id:wn.id,params:i});let a=Cn(e,i);S.push({id:Nn.id,params:a})}let D={};P.foreach(y,(e,t)=>{let n=h.getCell(e,t);!n||!n.s||(D[e]||(D[e]={}),D[e][t]={s:n.s})});let{redo:te,undo:ne}=ro(e,{range:y,subUnitId:_,unitId:g,shiftDimension:p.COLUMNS,cellValue:D});x.push(...te),S.push(...ne);let A=l.onCommandExecute({id:ho.id,params:{range:y}});if(x.push(...A.redos),x.push(Xi(y,m,h)),S.push(...(n=A.preUndos)==null?[]:n),x.unshift(...(i=A.preRedos)==null?[]:i),S.unshift(...A.undos),R(x,a).result){let e=l.afterCommandExecute({id:ho.id,params:{range:y}});return R(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:g,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},go=`sheet.command.insert-row`,_o={type:u.COMMAND,id:go,handler:async(e,t)=>{let n=e.get(C),r=e.get(K),{range:i,direction:a,unitId:o,subUnitId:s,cellValue:c}=t;return await r.beforeCommandExecute({id:_o.id,params:t})?n.syncExecuteCommand(vo.id,{range:i,direction:a,unitId:o,subUnitId:s,cellValue:c}):!1}},vo={type:u.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,t)=>{var n,i,a,o;let s=V(e.get(k),t);if(!s)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:p,cellValue:h}=t,{startRow:g,endRow:_}=f;f.rangeType=N.ROW;let v=p===m.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=e.get(C),b=e.get(O),x=e.get(K),S={unitId:u,subUnitId:d,range:f},w=l.getRowHeight(v);w!==l.getConfig().defaultRowHeight&&(S.rowInfo=Array(_-g+1).fill(void 0).map(()=>({h:w,hd:r.FALSE})));let T=xn(e,S),E=[{id:Sn.id,params:S}],ee=[{id:jn.id,params:T}];h&&Object.keys(h).length>0&&E.push({id:J.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:_o.id,params:t});if(E.unshift(...(n=D.preRedos)==null?[]:n),E.push(...(i=D.redos)==null?[]:i),E.push(Xi(f,c,l)),ee.unshift(...(a=D.preUndos)==null?[]:a),ee.push(...(o=D.undos)==null?[]:o),R(E,y).result){let e=x.afterCommandExecute({id:_o.id,params:t});return R(e.redos,y),E.push(...e.redos),ee.push(...e.undos),b.pushUndoRedo({unitID:t.unitId,undoMutations:ee,redoMutations:E}),!0}return!1}},yo={type:u.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,t)=>{var n;let r=(n=e.get(Y).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=V(e.get(k));if(!a)return!1;let{worksheet:o,subUnitId:s,unitId:c}=a,l=t.value||0,u=i.startRow,d=i.startRow+l-1,f=o.getColumnCount()-1,p={unitId:c,subUnitId:s,direction:m.UP,range:{startRow:u,endRow:d,startColumn:0,endColumn:f},cellValue:ea(o,u,d,0,f,!0,u-1)};return e.get(C).executeCommand(_o.id,p)}},bo={type:u.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r;if((n==null?void 0:n.length)===1)r=n[0];else return!1;let i=V(e.get(k));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=r.endRow-r.startRow+1,l=r.endRow+1,u=r.endRow+c,d=a.getColumnCount()-1,f={unitId:o,subUnitId:s,direction:m.DOWN,range:{startRow:l,endRow:u,startColumn:0,endColumn:d,rangeType:N.ROW},cellValue:ea(a,l,u,0,d,!0,r.endRow)};return e.get(C).executeCommand(_o.id,f)}},xo={type:u.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,t)=>{var n;let r=(n=e.get(Y).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=V(e.get(k));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=t.value||0,u=i.startRow,d=i.startRow+l-1,f=o.getColumnCount()-1,p=ea(o,u,d,0,f,!0,u-1),h={unitId:s,subUnitId:c,direction:m.UP,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:N.ROW},cellValue:p};return e.get(C).executeCommand(_o.id,h)}},So={type:u.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,t)=>{var n;let r=(n=e.get(Y).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=V(e.get(k));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=t.value||0,u=i.endRow+1,d=i.endRow+l,f=o.getColumnCount()-1,p={unitId:s,subUnitId:c,direction:m.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:N.ROW},cellValue:ea(o,u,d,0,f,!0,i.endRow)};return e.get(C).executeCommand(_o.id,p)}},Co=`sheet.command.insert-col`,wo={type:u.COMMAND,id:Co,handler:async(e,t)=>{let n=e.get(C),r=e.get(K),{range:i,direction:a,subUnitId:o,unitId:s,cellValue:c}=t;return await r.beforeCommandExecute({id:wo.id,params:t})?n.syncExecuteCommand(To.id,{range:i,direction:a,unitId:s,subUnitId:o,cellValue:c}):!1}},To={type:u.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,t)=>{var n,i,a,o;let s=V(e.get(k),t);if(!s)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:p,cellValue:h}=t,{startColumn:g,endColumn:_}=f;f.rangeType=N.COLUMN;let v=p===m.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=e.get(C),b=e.get(O),x=e.get(K),S={unitId:u,subUnitId:d,range:f},w=l.getColumnWidth(v);w!==l.getConfig().defaultColumnWidth&&(S.colInfo=Array(_-g+1).fill(void 0).map(()=>({w,hd:r.FALSE})));let T=Cn(e,S),E=[{id:wn.id,params:S}],ee=[{id:Nn.id,params:T}];h&&Object.keys(h).length>0&&E.push({id:J.id,params:{unitId:u,subUnitId:d,cellValue:h}});let D=x.onCommandExecute({id:wo.id,params:t});if(E.unshift(...(n=D.preRedos)==null?[]:n),E.push(...(i=D.redos)==null?[]:i),E.push(Xi(f,c,l)),ee.unshift(...(a=D.preUndos)==null?[]:a),ee.push(...(o=D.undos)==null?[]:o),R(E,y).result){let e=x.afterCommandExecute({id:wo.id,params:t});return R(e.redos,y),E.push(...e.redos),ee.push(...e.undos),b.pushUndoRedo({unitID:t.unitId,undoMutations:ee.filter(Boolean),redoMutations:E.filter(Boolean)}),!0}return!1}},Eo={type:u.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=V(e.get(k));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=t.value||0,l=r.startColumn,u=r.startColumn+c-1,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:m.LEFT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d,rangeType:N.COLUMN},cellValue:ea(a,0,d,l,u,!1,l-1)};return e.get(C).executeCommand(wo.id,f)}},Do={type:u.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let t=e.get(Y).getCurrentSelections(),n;if((t==null?void 0:t.length)===1)n=t[0].range;else return!1;let r=V(e.get(k));if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=n.endColumn-n.startColumn+1,c=n.endColumn+1,l=n.endColumn+s,u=i.getRowCount()-1,d={unitId:a,subUnitId:o,direction:m.RIGHT,range:{startColumn:c,endColumn:l,startRow:0,endRow:u},cellValue:ea(i,0,u,c,l,!1,n.endColumn)};return e.get(C).executeCommand(wo.id,d)}},Oo={type:u.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=V(e.get(k));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=t.value||0,l=r.startColumn,u=r.startColumn+c-1,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:m.LEFT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d,rangeType:N.COLUMN},cellValue:ea(a,0,d,l,u,!1,l-1)};return e.get(C).executeCommand(wo.id,f)}},ko={type:u.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=V(e.get(k));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=t.value||0,l=r.endColumn+1,u=r.endColumn+c,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:m.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:ea(a,0,d,l,u,!1,r.endColumn)};return e.get(C).executeCommand(wo.id,f)}},Ao=Ze((e,t,n,r)=>{if(!r.disposed){let i=Xi(e,t,n);r.executeCommand(i.id,i.params)}},300),jo=`sheet.command.remove-row`,Mo={type:u.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,t)=>{var n;if(!t)return!1;let r=V(e.get(k),t);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(K),{range:s,unitId:c,subUnitId:l}=t,u=Ai([s],e,c,l).reverse(),d=[],f=[];u.forEach(e=>{let t=[],n=[],r={unitId:c,subUnitId:l,range:e},i=An(r,a),o={unitId:c,subUnitId:l,cellValue:a.getCellMatrix().getSlice(e.startRow,e.endRow,0,a.getColumnCount()-1).getMatrix()};n.push({id:jn.id,params:r}),t.push({id:Sn.id,params:i}),t.push({id:J.id,params:o}),f.push(...n),d.unshift(...t)});let p=o.onCommandExecute({id:jo,params:{range:s}}),m=e.get(C);if(R([...(n=p.preRedos)==null?[]:n,...f,...p.redos],m).result){var h,g;Ao(s,i,a,m);let t=o.afterCommandExecute({id:jo,params:{range:s}});return R(t.redos,m),e.get(O).pushUndoRedo({unitID:c,undoMutations:[...(h=p.preUndos)==null?[]:h,...d,...p.undos,...t.undos],redoMutations:[...(g=p.preRedos)==null?[]:g,...f,...p.redos,...t.redos]}),!0}return!1}},No={type:u.COMMAND,id:jo,handler:async(e,t)=>{var n;let r=e.get(Y),i=e.get(K),a=e.get(C),o=t==null?void 0:t.range;if(o||(o=(n=r.getCurrentLastSelection())==null?void 0:n.range),!o)return!1;let s=V(e.get(k));if(!s)return!1;let{worksheet:c,subUnitId:l,unitId:u}=s;return o={...o,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)},await i.beforeCommandExecute({id:No.id,params:{range:o}})?a.syncExecuteCommand(Mo.id,{range:o,unitId:u,subUnitId:l}):!1}},Po=`sheet.command.remove-col`,Fo={type:u.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,t)=>{var n;if(!t)return!1;let r=V(e.get(k),t);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(K),{range:s,unitId:c,subUnitId:l}=t,u={unitId:c,subUnitId:l,range:s},d=Mn(e,u),f={unitId:c,subUnitId:l,cellValue:a.getCellMatrix().getSlice(0,a.getRowCount()-1,s.startColumn,s.endColumn).getMatrix()},p=o.onCommandExecute({id:Po,params:{range:s}}),m=e.get(C);if(R([...(n=p.preRedos)==null?[]:n,{id:Nn.id,params:u},...p.redos],m).result){var h,g;Ao(s,i,a,m);let t=o.afterCommandExecute({id:Po,params:{range:s}});return R(t.redos,m),e.get(O).pushUndoRedo({unitID:c,undoMutations:[...(h=p.preUndos)==null?[]:h,{id:wn.id,params:d},{id:J.id,params:f},...p.undos,...t.undos],redoMutations:[...(g=p.preRedos)==null?[]:g,{id:Nn.id,params:u},...p.redos,...t.redos]}),!0}return!1}},Io={type:u.COMMAND,id:Po,handler:async(e,t)=>{var n;let r=e.get(Y),i=e.get(K),a=e.get(C),o=t==null?void 0:t.range;if(o||(o=(n=r.getCurrentLastSelection())==null?void 0:n.range),!o)return!1;let s=V(e.get(k));if(!s)return!1;let{worksheet:c,subUnitId:l,unitId:u}=s;return o={...o,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)},await i.beforeCommandExecute({id:Io.id,params:{range:o}})?a.syncExecuteCommand(Fo.id,{range:o,unitId:u,subUnitId:l}):!1}},Lo=(e,t)=>{let n=e.get(k),{subUnitId:r,unitId:i}=t,a=Rt(n,t);if(!a)throw Error(`[RemoveSheetUndoMutationFactory]: Worksheet is null error!`);let{workbook:o,worksheet:s}=a,c=s.getConfig();return{index:o.getConfig().sheetOrder.findIndex(e=>e===r),sheet:c,unitId:i}},Ro={id:`sheet.mutation.remove-sheet`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k),{subUnitId:r,unitId:i}=t,a=n.getUniverSheetInstance(i);return a?a.removeSheet(r):!1}};function zo(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function Bo(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}const Vo=`sheet.command.move-rows`,Ho={id:Vo,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(Y),{fromRange:{startRow:a},toRange:{startRow:o},range:s}=t,c=s?[Go(s)]:i.getCurrentSelections(),l=c==null?void 0:c.filter(e=>e.range.rangeType===N.ROW&&e.range.startRow<=a&&a<=e.range.endRow);if((l==null?void 0:l.length)!==1)return!1;let u=e.get(K),d=V(e.get(k),t);if(!d)return!1;let{workbook:f,worksheet:p}=d,m=f.getUnitId(),h=p.getSheetId(),g=e.get(v),_=e.get(se),y=l[0].range,b=l[0].primary,x=Ki(y,p,!1);if(!F.equals(y,x))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(zo(o,p))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let S={...y,startRow:o,endRow:o+y.endRow-y.startRow},w={unitId:m,subUnitId:h,sourceRange:y,targetRange:S},T=En(e,w),E=e.get(C),ee=u.onCommandExecute({id:Ho.id,params:t}),D=[...(n=ee.preRedos)==null?[]:n,{id:Dn.id,params:w}],te=[...(r=ee.preUndos)==null?[]:r,{id:Dn.id,params:T}];if(b){let e=o-a<0,t=y.endRow-y.startRow+1,n=e?S:{...S,startRow:S.startRow-t,endRow:S.endRow-t},r={unitId:m,subUnitId:h,type:zi.MOVE_END,selections:[{range:n,primary:Yi(n,p),style:null}]},i={unitId:m,subUnitId:h,type:zi.MOVE_END,selections:[{range:y,primary:b,style:null}]};D.push({id:X.id,params:r}),te.push({id:X.id,params:i})}if(D.push(...ee.redos),te.push(...ee.undos),R(D,E).result){let n=u.afterCommandExecute({id:Ho.id,params:t});return R(n.redos,E),D.push(...n.redos),te.push(...n.undos),e.get(O).pushUndoRedo({unitID:m,undoMutations:te,redoMutations:D}),!0}return!1}},Uo=`sheet.command.move-cols`,Wo={id:Uo,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(Y),{fromRange:{startColumn:a},toRange:{startColumn:o},range:s}=t,c=s?[Go(s)]:i.getCurrentSelections(),l=c==null?void 0:c.filter(e=>e.range.rangeType===N.COLUMN&&e.range.startColumn<=a&&a<=e.range.endColumn);if((l==null?void 0:l.length)!==1)return!1;let u=e.get(K),d=V(e.get(k),t);if(!d)return!1;let{workbook:f,worksheet:p}=d,m=f.getUnitId(),h=p.getSheetId(),g=e.get(v),_=e.get(se),y=l[0].range,b=l[0].primary,x=Ki(y,p,!1);if(!F.equals(y,x))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(Bo(o,p))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let S={...y,startColumn:o,endColumn:o+y.endColumn-y.startColumn},w={unitId:m,subUnitId:h,sourceRange:y,targetRange:S},T=On(e,w),E=e.get(C),ee=u.onCommandExecute({id:Wo.id,params:t}),D=[...(n=ee.preRedos)==null?[]:n,{id:kn.id,params:w}],te=[...(r=ee.preUndos)==null?[]:r,{id:kn.id,params:T}];if(b){let e=y.endColumn-y.startColumn+1,t=o-a<0?S:{...S,startColumn:S.startColumn-e,endColumn:S.endColumn-e},n={unitId:m,subUnitId:h,type:zi.MOVE_END,selections:[{range:t,primary:Yi(t,p),style:null}]},r={unitId:m,subUnitId:h,type:zi.MOVE_END,selections:[{range:y,primary:b,style:null}]};D.push({id:X.id,params:n}),te.push({id:X.id,params:r})}if(D.push(...ee.redos),te.push(...ee.undos),R(D,E).result){let n=u.afterCommandExecute({id:Wo.id,params:t});return R(n.redos,E),D.push(...n.redos),te.push(...n.undos),e.get(O).pushUndoRedo({unitID:m,undoMutations:te,redoMutations:D}),!0}return!1}};function Go(e){return{range:e,primary:null,style:null}}let Ko=class extends h{constructor(e){super(),this._injector=e,U(this,`_sheetSkeletonStore`,new Map),this.disposeWithMe(()=>{this._sheetSkeletonStore=new Map})}getSkeleton(e,t){if(this._sheetSkeletonStore.has(e))return this._sheetSkeletonStore.get(e).get(t)}setSkeleton(e,t,n){this._sheetSkeletonStore.has(e)||this._sheetSkeletonStore.set(e,new Map),this._sheetSkeletonStore.get(e).set(t,n)}deleteSkeleton(e,t){this._sheetSkeletonStore.has(e)&&this._sheetSkeletonStore.get(e).delete(t)}};Ko=G([W(0,A(re))],Ko);function qo(e,t){let n=new j;return e.map(e=>P.transformRange(e,t)).forEach(e=>{P.foreach(e,(e,r)=>{let i=t.getCellHeight(e,r);i&&n.setValue(e,r,i)})}),n}function Jo(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 Yo(e){let t=0;return e.forEach(()=>{t++}),t}const Xo=`sheet.command.reorder-range`,Zo={id:Xo,type:u.COMMAND,handler:(e,t)=>{var n,r;let{subUnitId:i,unitId:a,range:o,order:s}=t,c=e.get(C),l={id:In.id,params:{unitId:a,subUnitId:i,order:s,range:o}},u={id:In.id,params:Fn(l.params)},d=e.get(K),f=d.onCommandExecute({id:Zo.id,params:t}),p=[...(n=f.preRedos)==null?[]:n,l,...f.redos],m=[...(r=f.preUndos)==null?[]:r,u,...f.undos],h=R(p,c),{suitableRanges:g,remainingRanges:_}=Jo([o],e.get(Ko).getSkeleton(a,i)),{undos:v,redos:y}=d.generateMutationsOfAutoHeight({unitId:a,subUnitId:i,ranges:[o],autoHeightRanges:g,lazyAutoHeightRanges:_}),b=d.afterCommandExecute({id:Zo.id,params:t});return h.result?(R([...b.redos,...y],c),e.get(O).pushUndoRedo({unitID:a,undoMutations:[...m,...b.undos,...v],redoMutations:[...p,...b.redos,...y]}),!0):!1}},Z={MoveRangeCommandId:aa,InsertRowCommandId:go,InsertColCommandId:Co,RemoveColCommandId:Po,RemoveRowCommandId:jo,DeleteRangeMoveLeftCommandId:so,DeleteRangeMoveUpCommandId:lo,InsertRangeMoveDownCommandId:fo,InsertRangeMoveRightCommandId:mo,MoveColsCommandId:Uo,MoveRowsCommandId:Vo,ReorderRangeCommandId:Xo};let Q=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 Qo=e=>{let t={...e},n=Number.isNaN(t.startRow)&&Number.isNaN(t.endRow)&&!Number.isNaN(t.startColumn)&&!Number.isNaN(t.endColumn),r=Number.isNaN(t.startColumn)&&Number.isNaN(t.endColumn)&&!Number.isNaN(t.startRow)&&!Number.isNaN(t.endRow);return(t.rangeType===N.COLUMN||n)&&(t.startRow=0,t.endRow=le-1),(t.rangeType===N.ROW||r)&&(t.startColumn=0,t.endColumn=ce-1),t.rangeType===N.ALL&&(t.startColumn=0,t.endColumn=ce-1,t.startRow=0,t.endRow=le-1),t},$o=e=>{let t=e.rangeType;return e.rangeType===N.COLUMN?t=N.ROW:e.rangeType===N.ROW&&(t=N.COLUMN),{startRow:e.startColumn,endRow:e.endColumn,startColumn:e.startRow,endColumn:e.endRow,rangeType:t}},es=(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)}},ts=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Qo(n),a=Qo(r),o=Qo(t),s=es({start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow},{start:o.startRow,end:o.endRow});return s===null?[{type:Q.Delete}]:[{type:Q.VerticalMove,step:s.step||0,length:s.length||0}]},ns=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startRow,a=n.endRow-n.startRow+1,o=r.startRow,s=new j;return P.foreach(t,(e,t)=>{s.setValue(e,t,1)}),s.moveRows(i,a,o),Ge(s,e=>e===1)},rs=(e,t)=>{let{range:n,order:r}=e.params||{};if(!n||!r)return[t];let i=new j;P.foreach(t,(e,t)=>{i.setValue(e,t,1)});let a=new j;return P.foreach(n,(e,t)=>{if(Object.prototype.hasOwnProperty.call(r,e)){var n;let o=r[e],s=(n=i.getValue(o,t))==null?0:n;a.setValue(e,t,s)}}),a.forValue((e,t,n)=>{i.setValue(e,t,n)}),Ge(i,e=>e===1)},is=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=Qo(n),a=Qo(r),o=Qo(t),s=es({start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn},{start:o.startColumn,end:o.endColumn});return s===null?[{type:Q.Delete}]:[{type:Q.HorizontalMove,step:s.step||0,length:s.length||0}]},as=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startColumn,a=n.endColumn-n.startColumn+1,o=r.startColumn,s=new j;return P.foreach(t,(e,t)=>{s.setValue(e,t,1)}),s.moveColumns(i,a,o),Ge(s,e=>e===1)},os=(e,t)=>{var n,r;let i=(n=e.params)==null?void 0:n.toRange,a=(r=e.params)==null?void 0:r.fromRange;if(!i||!a)return[];let o=[];if(F.contains(i,t)&&o.push({type:Q.Delete}),F.contains(a,t)){o.push({type:Q.Delete});let e=F.getRelativeRange(t,a),n=F.getPositionRange(e,i);return[{type:Q.Set,range:n}]}return o},ss=(e,t)=>{var n,r;let i=(n=e.params)==null?void 0:n.toRange,a=(r=e.params)==null?void 0:r.fromRange;if(!i||!a||!F.intersects(a,t)&&!F.intersects(i,t))return[t];if(F.contains(a,t)){let e=F.getRelativeRange(t,a);return[F.getPositionRange(e,i)]}let o=new j;P.foreach(t,(e,t)=>{o.setValue(e,t,1)});let s=new j,c=F.getIntersects(a,t);c&&P.foreach(c,(e,t)=>{o.getValue(e,t)&&(o.setValue(e,t,void 0),s.setValue(e,t,1))});let l=i.startColumn-a.startColumn,u=i.startRow-a.startRow,d={startColumn:i.startColumn-l,endColumn:i.endColumn-l,startRow:i.startRow-u,endRow:i.endRow-u};return d&&P.foreach(d,(e,t)=>{var n;let r=e+u,i=t+l;o.setValue(r,i,(n=s.getValue(e,t))==null?0:n)}),Ge(o,e=>e===1)},cs=(e,t)=>{let n=Qo(e),r=Qo(t),i=e=>e.endColumn-e.startColumn+1,a=e=>e.endRow-e.startRow+1;if(n.startRow<=r.startRow&&n.endRow>=r.endRow){if(r.startColumn<n.startColumn&&r.endColumn>=n.startColumn&&r.endColumn<=n.endColumn||r.startColumn<n.startColumn&&r.endColumn>=n.endColumn){let e=F.getIntersects(r,n);if(e)return{step:0,length:-i(e)}}if(r.startColumn>=n.startColumn&&r.endColumn<=n.endColumn&&a(n)>=a(r))return null;if(r.startColumn>=n.startColumn&&r.startColumn<=n.endColumn&&r.endColumn>n.endColumn){let e=F.getIntersects(r,n);if(e){let t=-i(e);return{step:-(i(n)-i(e)),length:t}}}if(r.startColumn>n.endColumn)return{step:-i(n),length:0}}return{step:0,length:0}},ls=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=cs(r,t);if(!a)i.push({type:Q.Delete});else{let{step:e,length:t}=a;i.push({type:Q.HorizontalMove,step:e,length:t})}return i},us=(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=cs($o(e),$o(t));if(!n)a.push({type:Q.Delete});else{let{step:e,length:t}=n;a.push({type:Q.VerticalMove,step:e,length:t})}}return a},ds=(e,t)=>{let{range:n,order:r}=e.params||{};if(!n||!r)return[];if(F.contains(n,t)&&t.endRow===t.startRow){let e=[],n=t.startRow;for(let t in r)if(r[t]===n){let r=Number(t);return e.push({type:Q.VerticalMove,step:r-n,length:0}),e}return[]}return[]},fs=(e,t)=>{let n=Qo(e),r=Qo(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 ps(e,t,n){let r=[];if(F.contains(t,n)&&r.push({type:Q.Delete}),F.contains(e,n)){r.push({type:Q.Delete});let i=F.getRelativeRange(n,e),a=F.getPositionRange(i,t);return[{type:Q.Set,range:a}]}return r}const ms=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=fs($o(r),$o(t));return i.push({type:Q.VerticalMove,step:a,length:o}),i},hs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=fs(r,t);return i.push({type:Q.HorizontalMove,step:a,length:o}),i},gs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=fs($o(r),$o(t));return i.push({type:Q.VerticalMove,step:a,length:o}),i},_s=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i=r.endRow-r.startRow+1,a={...r,startRow:r.startRow,endRow:1/0},o=F.subtract(t,a),s=F.getIntersects(a,t);if(!s)return[t];let c=new j;return o.forEach(e=>{P.foreach(e,(e,t)=>{c.setValue(e,t,1)})}),s&&P.foreach(s,(e,t)=>{c.setValue(e+i,t,1)}),Ge(c,e=>e===1)},vs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=fs(r,t);return i.push({type:Q.HorizontalMove,step:a,length:o}),i},ys=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i=r.endColumn-r.startColumn+1,a={...r,startColumn:r.startColumn,endColumn:1/0},o=F.subtract(t,a),s=F.getIntersects(a,t);if(!s)return[t];let c=new j;return o.forEach(e=>{P.foreach(e,(e,t)=>{c.setValue(e,t,1)})}),s&&P.foreach(s,(e,t)=>{c.setValue(e,t+i,1)}),Ge(c,e=>e===1)},bs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=cs(r,t);if(!a)i.push({type:Q.Delete});else{let{step:e,length:t}=a;i.push({type:Q.HorizontalMove,step:e,length:t})}return i},xs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i={startRow:r.startRow,endRow:r.endRow,startColumn:r.startColumn,endColumn:1/0},a=r.endColumn-r.startColumn+1,o=F.getIntersects(r,t),s=F.subtract(t,i),c=F.getIntersects(i,t);if(!o&&!c)return[t];let l=new j;return c&&P.foreach(c,(e,t)=>{l.setValue(e,t-a,1)}),o&&P.foreach(o,(e,t)=>{l.setValue(e,t-a,0)}),s.forEach(e=>{P.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),Ge(l,e=>e===1)},Ss=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=cs($o(r),$o(t));if(!a)i.push({type:Q.Delete});else{let{step:e,length:t}=a;i.push({type:Q.VerticalMove,step:e,length:t})}return i},Cs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i={...r,startRow:r.startRow,endRow:1/0},a=r.endRow-r.startRow+1,o=F.getIntersects(r,t),s=F.subtract(t,i),c=F.getIntersects(i,t);if(!o&&!c)return[t];let l=new j;return c&&P.foreach(c,(e,t)=>{l.setValue(e-a,t,1)}),o&&P.foreach(o,(e,t)=>{l.setValue(e-a,t,0)}),s.forEach(e=>{P.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),Ge(l,e=>e===1)},ws=(e,t)=>{var n;let r=ze(((n=e.ranges)==null?[e.range]:n).map(e=>[e.startRow,e.endRow])),i=t.startRow,a=t.endRow;for(let e=r.length-1;e>=0;e--){let[n,o]=r[e];if(n<=t.startRow&&o>=t.endRow)return[];if(o<i){let e=o-n+1;i-=e,a-=e}else if(!(n>a)){let e=Math.max(n,i),t=Math.min(o,a)-e+1;if(a-=t,n<=i){let t=e-i;i-=t}}}return[{...t,startRow:i,endRow:a}]},Ts=(e,t)=>{let n=e.params,r=n.range.startRow,i=n.range.endRow-n.range.startRow+1;if(n.direction===m.UP){if(r<t.startRow)return[{...t,startRow:t.startRow+i,endRow:t.endRow+i}];if(r<=t.endRow)return[{...t,endRow:t.endRow+i}]}else if(r<=t.startRow)return[{...t,startRow:t.startRow+i,endRow:t.endRow+i}];else if(r<=t.endRow+1)return[{...t,endRow:t.endRow+i}];return[t]},Es=(e,t)=>{let n=e.params,r=n.range.startColumn,i=n.range.endColumn-n.range.startColumn+1;if(n.direction===m.LEFT){if(r<t.startColumn)return[{...t,startColumn:t.startColumn+i,endColumn:t.endColumn+i}];if(r<=t.endColumn)return[{...t,endColumn:t.endColumn+i}]}else if(r<=t.startColumn)return[{...t,startColumn:t.startColumn+i,endColumn:t.endColumn+i}];else if(r<=t.endColumn+1)return[{...t,endColumn:t.endColumn+i}];return[t]},Ds=(e,t)=>{let n={...t};return e.forEach(e=>{switch(e.type){case Q.Delete:n=null;break;case Q.HorizontalMove:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case Q.VerticalMove:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case Q.Set:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},Os=(e,t)=>{let n=[];switch(t.id){case Z.DeleteRangeMoveLeftCommandId:n=bs(t,e);break;case Z.DeleteRangeMoveUpCommandId:n=Ss(t,e);break;case Z.InsertColCommandId:n=hs(t,e);break;case Z.InsertRangeMoveDownCommandId:n=gs(t,e);break;case Z.InsertRangeMoveRightCommandId:n=vs(t,e);break;case Z.InsertRowCommandId:n=ms(t,e);break;case Z.MoveColsCommandId:n=is(t,e);break;case Z.MoveRangeCommandId:n=os(t,e);break;case Z.MoveRowsCommandId:n=ts(t,e);break;case Z.RemoveColCommandId:n=ls(t,e);break;case Z.RemoveRowCommandId:n=us(t,e);break;case Z.ReorderRangeCommandId:n=ds(t,e);break}return Ds(n,e)},ks=(e,t,n)=>[co.id,uo.id].includes(t.id)||Ns(t,n).some(t=>F.intersects(t,e))?Os(e,t):e,As=(e,t)=>{let n=[];switch(t.id){case Z.DeleteRangeMoveLeftCommandId:return xs(t,e);case Z.DeleteRangeMoveUpCommandId:return Cs(t,e);case Z.InsertRangeMoveDownCommandId:return _s(t,e);case Z.InsertRangeMoveRightCommandId:return ys(t,e);case Z.InsertColCommandId:return Es(t,e);case Z.InsertRowCommandId:return Ts(t,e);case Z.MoveColsCommandId:return as(t,e);case Z.MoveRangeCommandId:return ss(t,e);case Z.MoveRowsCommandId:return ns(t,e);case Z.ReorderRangeCommandId:return rs(t,e);case Z.RemoveColCommandId:n=ls(t,e);break;case Z.RemoveRowCommandId:return ws(t.params,e)}let r=Ds(n,e);return r?[r]:[]},js=(e,t,n)=>[co.id,uo.id,po.id,`sheet.command.insert-range-move-right`].includes(t.id)||Ns(t,n).some(t=>F.intersects(t,e))?As(e,t):e;function Ms(e,t){let{id:n,params:r}=t,i={length:0,step:0,type:Q.Unknown};switch(n){case Ro.id:i.type=Q.Delete;break;case Dn.id:i=es({start:r.sourceRange.startRow,end:r.sourceRange.endRow},{start:r.targetRange.startRow,end:r.targetRange.endRow},{start:e.startRow,end:e.endRow}),i.type=Q.VerticalMove;break;case kn.id:i=es({start:r.sourceRange.startColumn,end:r.sourceRange.endColumn},{start:r.targetRange.startColumn,end:r.targetRange.endColumn},{start:e.startColumn,end:e.endColumn}),i.type=Q.HorizontalMove;break;case Nn.id:i=cs(r.range,e),i?i.type=Q.HorizontalMove:i={step:0,length:0,type:Q.Delete};break;case jn.id:i=cs($o(r.range),$o(e)),i?i.type=Q.VerticalMove:i={step:0,length:0,type:Q.Delete};break;case Sn.id:i=fs($o(r.range),$o(e)),i.type=Q.VerticalMove;break;case wn.id:i=fs(r.range,e),i.type=Q.HorizontalMove;break;case Tn.id:i=ps(r.fromRange||new j(r.from).getRange(),r.toRange||new j(r.to).getRange(),e);break;default:break}return i?Ds(Array.isArray(i)?i:[i],e):e}function Ns(e,t){let{selectionManagerService:n}=t;switch(e.id){case Z.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case Z.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case Z.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case Z.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case Z.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case Z.RemoveRowCommandId:return[e.params.range];case Z.RemoveColCommandId:return[e.params.range];case Z.DeleteRangeMoveUpCommandId:case Z.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 Z.DeleteRangeMoveLeftCommandId:case Z.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 Z.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 Ps(e){switch(e.id){case kn.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case Dn.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Tn.id:{let t=e.params;return[new j(t.from.value).getRange(),new j(t.to.value).getRange()]}case wn.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case Sn.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case Nn.id:return[e.params.range];case jn.id:return[e.params.range];default:break}}function Fs(e,t){let n=e.get(k);switch(t.id){case Z.MoveColsCommandId:{let e=t.params,r=V(n,e);if(!r)return;let{unitId:i,subUnitId:a}=r,{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 Z.MoveRowsCommandId:{let e=t.params,r=V(n,e);if(!r)return;let{unitId:i,subUnitId:a}=r,{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 Z.MoveRangeCommandId:{let e=t.params,r=V(n);if(!r)return;let{unitId:i,subUnitId:a}=r,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case Z.InsertRowCommandId:{let e=t.params,r=V(n,e);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{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 Z.InsertColCommandId:{let e=t.params,r=V(n,e);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{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 Z.RemoveRowCommandId:{let e=t.params,r=V(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case Z.RemoveColCommandId:{let e=t.params,r=V(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case Z.DeleteRangeMoveUpCommandId:case Z.InsertRangeMoveDownCommandId:{let e=t.params,r=V(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case Z.DeleteRangeMoveLeftCommandId:case Z.InsertRangeMoveRightCommandId:{let e=t.params,r=V(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case Z.ReorderRangeCommandId:{let e=t.params,r=V(n);if(!r)return;let{unitId:i,subUnitId:a}=r,{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 Is=Te(`MERGE_REDO`),Ls=Te(`MERGE_UNDO`);var Rs=class extends h{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){var t,n;if(((t=e.params)==null?void 0:t.unitId)!==this._unitId)return;if(e.id===Tn.id){let t=e.params;if(t.from.subUnitId!==this._subUnitId||t.to.subUnitId!==this._subUnitId)return}else if(((n=e.params)==null?void 0:n.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(e.id===Ro.id)return;let t=Ps(e);if(t!=null&&t.some(e=>F.intersects(e,this._range)))return}let r=Ms(this._range,e);if(r&&F.equals(r,this._range))return!1;let i=this._range;this._range=r,this._callback(i,r)}};let zs=class extends h{constructor(e,t,n,r){super(),this._commandService=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._selectionManagerService=r,U(this,`interceptor`,new ae({MERGE_REDO:Is,MERGE_UNDO:Ls})),U(this,`_watchRanges`,new Set),U(this,`_refRangeManagerMap`,new Map),U(this,`_serializer`,Us()),U(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let t=(()=>{switch(e.id){case Z.MoveColsCommandId:{let t=e.params,n=V(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startColumn,t.toRange.startColumn);return this._checkRange([{...t.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case Z.MoveRowsCommandId:{let t=e.params,n=V(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startRow,t.toRange.startRow);return this._checkRange([{...t.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case Z.MoveRangeCommandId:{var t,n;let r=e.params,i=V(this._univerInstanceService,{unitId:r.fromUnitId,subUnitId:r.fromSubUnitId}),a=V(this._univerInstanceService,{unitId:(t=r.toUnitId)==null?r.fromUnitId:t,subUnitId:(n=r.toSubUnitId)==null?r.fromSubUnitId:n});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([r.fromRange,r.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([r.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([r.toRange],a.unitId,a.subUnitId)),o}case Z.InsertRowCommandId:{let t=e.params,n=V(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:Math.max(0,t.range.startRow-1),endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1,rangeType:N.ROW};return this._checkRange([o],i,a)}case Z.InsertColCommandId:{let t=e.params,n=V(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:0,endRow:r.getRowCount()-1,startColumn:Math.max(0,t.range.startColumn-1),endColumn:r.getColumnCount()-1,rangeType:N.COLUMN};return this._checkRange([o],i,a)}case Z.RemoveRowCommandId:{let t=e.params,n=V(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:t.range.startRow,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1,rangeType:N.ROW};return this._checkRange([o],i,a)}case Z.RemoveColCommandId:{let t=e.params,n=V(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:0,endRow:r.getRowCount()-1,startColumn:t.range.startColumn,endColumn:r.getColumnCount()-1,rangeType:N.COLUMN};return this._checkRange([o],i,a)}case Z.DeleteRangeMoveUpCommandId:case Z.InsertRangeMoveDownCommandId:{let t=e.params,n=V(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case Z.DeleteRangeMoveLeftCommandId:case Z.InsertRangeMoveRightCommandId:{let t=e.params,n=V(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case Z.ReorderRangeCommandId:{let t=e.params,n=V(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=t,s=[];for(let e=a.startRow;e<=a.endRow;e++)e in o&&s.push({startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn});return this._checkRange(s,r,i)}}})();if(!t||t.length===0)return{redos:[],undos:[],preRedos:[],preUndos:[]};let n=t.reduce((t,n)=>{let r=n(e);return t.push(r),t},[]).reduce((e,t)=>{var n,r;return e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...(n=t.preRedos)==null?[]:n),e.preUndos.push(...(r=t.preUndos)==null?[]:r),e},{redos:[],undos:[],preUndos:[],preRedos:[]}),r=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(n.preRedos,null)||[],i=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(n.redos,null)||[],a=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(n.preUndos,null)||[];return{redos:i,undos:this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(n.undos,null)||[],preRedos:r,preUndos:a}}})}),U(this,`_checkRange`,(e,t,n)=>{let r=Hs(t,n),i=this._refRangeManagerMap.get(r);if(i){let t=new Set;return[...i.keys()].forEach(n=>{let r=i.get(n),a=this._serializer.deserialize(n),o={...a,startRow:+a.startRow,endRow:+a.endRow,startColumn:+a.startColumn,endColumn:+a.endColumn,rangeType:a.rangeType&&+a.rangeType};e.some(e=>F.intersects(e,o))&&r&&r.forEach(e=>{t.add(e)})}),[...t]}return[]}),U(this,`registerRefRange`,(e,t,n,r)=>{let i=n||Bs(this._univerInstanceService),a=r||Vs(this._univerInstanceService);if(!i||!a)return Qe(()=>{});let o=Hs(i,a),s=this._serializer.serialize(e),c=this._refRangeManagerMap.get(o);c||(c=new Map,this._refRangeManagerMap.set(o,c));let l=c.get(s);return l?l.add(t):c.set(s,new Set([t])),Qe(()=>{let e=c.get(s);e&&(e.delete(t),e.size||(c.delete(s),c.size||this._refRangeManagerMap.delete(o)))})}),this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:e=>e}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:e=>e})}watchRange(e,t,n,r,i){let a;this._watchRanges.size===0&&(a=this._commandService.onCommandExecuted(e=>{if(e.type!==u.MUTATION)return!1;for(let t of this._watchRanges)t.onMutation(e)}));let o=new Rs(e,t,n,r,i);this._watchRanges.add(o);let s=Qe(()=>{this._watchRanges.delete(o),this._watchRanges.size===0&&(a==null||a.dispose(),a=null)}),c=this.disposeWithMe(s);return Qe(()=>{c.dispose(),s.dispose()})}};zs=G([W(0,C),W(1,A(K)),W(2,A(k)),W(3,A(Y))],zs);function Bs(e){var t;return(t=e.getCurrentUnitOfType(L.UNIVER_SHEET))==null?void 0:t.getUnitId()}function Vs(e){var t;return(t=e.getCurrentUnitOfType(L.UNIVER_SHEET))==null||(t=t.getActiveSheet())==null?void 0:t.getSheetId()}function Hs(e,t){return`${e}_${t}`}function Us(){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 Ws=[wn.id,Sn.id,Nn.id,jn.id],Gs=[Dn.id,kn.id];function Ks(e,t){let n=e;if(t!==void 0){let e=[];for(let r=0;r<n.length;r++){let{startRow:i,endRow:a,startColumn:o,endColumn:s}=n[r];if(t===p.ROWS)for(let t=i;t<=a;t++){let n={startRow:t,endRow:t,startColumn:o,endColumn:s};e.push(n)}else if(t===p.COLUMNS)for(let t=o;t<=s;t++){let n={startRow:i,endRow:a,startColumn:t,endColumn:t};e.push(n)}}n=e}return n}const qs=Te(`mergeCellPermissionCheck`);let Js=class extends h{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._selectionManagerService=a,U(this,`disposableCollection`,new g),U(this,`interceptor`,new ae({MERGE_CELL_INTERCEPTOR_CHECK:qs})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(t){switch(t.id){case Wi.id:case Gi.id:{var n;let t=e._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET),r=t.getUnitId(),i=t==null?void 0:t.getActiveSheet();if(!i)return{redos:[],undos:[]};let a=i.getSheetId(),o=i.getConfig().mergeData,s=(n=e._selectionManagerService.getCurrentSelections())==null?void 0:n.map(e=>e.range);if(s&&s.length>0&&s.some(e=>o.some(t=>F.intersects(t,e)))){let t={unitId:r,subUnitId:a,ranges:s},n=Pn(e._injector,t);return{redos:[{id:q.id,params:t}],undos:[{id:H.id,params:n}]}}}}return{redos:[],undos:[]}}}),this._sheetInterceptorService.interceptRanges({getMutations:({unitId:e,subUnitId:t,ranges:n})=>{let r=[],i=[],a={redos:r,undos:i};if(!n||!n.length)return a;let o=V(this._univerInstanceService,{unitId:e,subUnitId:t});if(!o)return a;let{worksheet:s}=o,c=s.getMergeData().filter(e=>n.some(t=>F.intersects(e,t)));return c.length?(r.push({id:q.id,params:{unitId:e,subUnitId:t,ranges:c}}),i.push({id:H.id,params:{unitId:e,subUnitId:t,ranges:c}}),{undos:i,redos:r}):a}})}refRangeHandle(e,t,n){switch(e.id){case Z.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case Z.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case _o.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case wo.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Io.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case No.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case oa.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case ho.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case po.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case uo.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case co.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getUniverSheetInstance(e);if(!n)return;let r=n==null?void 0:n.getSheetBySheetId(t);if(!r)return;this.disposableCollection.dispose();let i=r.getMergeData(),a=n=>this.refRangeHandle(n,e,t);i.forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,a,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===Vr.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===H.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(n.unitId,n.subUnitId)}})),this._univerInstanceService.getCurrentTypeOfUnit$(L.UNIVER_SHEET).pipe(at(e=>!!e)).subscribe(t=>{let n=t.getActiveSheet();n&&e(t.getUnitId(),n.getSheetId())})}_handleMoveRowsCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(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=Ds(ts({id:Z.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=Pn(this._injector,o),f=zt(this._injector,s);return{preRedos:[{id:q.id,params:o}],redos:[{id:H.id,params:s}],preUndos:[{id:q.id,params:f}],undos:[{id:H.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(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=Ds(is({id:Z.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=Pn(this._injector,o),f=zt(this._injector,s);return{preRedos:[{id:q.id,params:o}],redos:[{id:H.id,params:s}],preUndos:[{id:q.id,params:f}],undos:[{id:H.id,params:d}]}}_handleMoveRangeCommand(e,t,n){var r,i;let a=Ys(this._univerInstanceService,t);if(!a)return this._handleNull();let o=(r=e.fromSubUnitId)==null?n:r,s=(i=e.toSubUnitId)==null?o:i,c=Xs(a,o),l=Xs(a,s);if(!c||!l)return this._handleNull();let u=c.getMergeData().filter(t=>F.intersects(t,e.fromRange)),d=l.getMergeData().filter(t=>F.intersects(t,e.toRange)),f=Ks(u.map(t=>F.getRelativeRange(t,e.fromRange)).map(t=>F.getPositionRange(t,e.toRange))).filter(e=>!l.getMergeData().some(t=>F.equals(e,t))),p=[],m=[];return n===o&&u.length>0&&(p.push({id:q.id,params:{unitId:t,subUnitId:o,ranges:u}}),m.push({id:H.id,params:{unitId:t,subUnitId:o,ranges:u}})),n===s&&d.length>0&&(p.push({id:q.id,params:{unitId:t,subUnitId:s,ranges:d}}),m.push({id:H.id,params:{unitId:t,subUnitId:s,ranges:d}})),n===s&&f.length>0&&(p.push({id:H.id,params:{unitId:t,subUnitId:s,ranges:f}}),m.unshift({id:q.id,params:{unitId:t,subUnitId:s,ranges:f}})),p.length===0?this._handleNull():{redos:p,undos:m}}_handleInsertRowCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(r,n);if(!i)return this._handleNull();let{range:a}=e,{startRow:o,endRow:s}=a,c=I.deepClone(i.getMergeData()).reduce((e,t)=>(o>t.startRow&&o<=t.endRow&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=I.deepClone(i.getMergeData()).reduce((e,t)=>{if(o>t.startRow&&o<=t.endRow){let n=s-o+1;t.endRow+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f);return{redos:[{id:q.id,params:u},{id:H.id,params:f}],undos:[{id:q.id,params:p},{id:H.id,params:d}]}}_handleInsertColCommand(e,t,n){let{range:r}=e,i=Ys(this._univerInstanceService,t);if(!i)return this._handleNull();let a=Xs(i,n);if(!a)return this._handleNull();let{startColumn:o,endColumn:s}=r,c=I.deepClone(a.getMergeData()).reduce((e,t)=>(o>t.startColumn&&o<=t.endColumn&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=I.deepClone(a.getMergeData()).reduce((e,t)=>{if(o>t.startColumn&&o<=t.endColumn){let n=s-o+1;t.endColumn+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f);return{redos:[{id:q.id,params:u},{id:H.id,params:f}],undos:[{id:q.id,params:p},{id:H.id,params:d}]}}_handleRemoveColCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(r,n);if(!i)return this._handleNull();let{range:a}=e,{startColumn:o,endColumn:s}=a,c=I.deepClone(i.getMergeData()).reduce((e,t)=>(F.intersects(a,t)&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=I.deepClone(i.getMergeData()).reduce((e,t)=>{if(F.intersects(a,t)){if(o<=t.startColumn&&s>=t.endColumn)return e;o>=t.startColumn&&s<=t.endColumn?t.endColumn-=s-o+1:o<t.startColumn?(t.startColumn=o,t.endColumn-=s-o+1):s>t.endColumn&&(t.endColumn=o-1),this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:H.id,params:f}];return{preUndos:[{id:q.id,params:p}],undos:[{id:H.id,params:d}],preRedos:m,redos:h}}_handleRemoveRowCommand(e,t,n){let{range:r}=e,i=Ys(this._univerInstanceService,t);if(!i)return this._handleNull();let a=Xs(i,n);if(!a)return this._handleNull();let{startRow:o,endRow:s}=r,c=I.deepClone(a.getMergeData()).reduce((e,t)=>(F.intersects(r,t)&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=I.deepClone(a.getMergeData()).reduce((e,t)=>{if(F.intersects(r,t)){if(o<=t.startRow&&s>=t.endRow)return e;o>=t.startRow&&s<=t.endRow?t.endRow-=s-o+1:o<t.startRow?(t.startRow=o,t.endRow-=s-o+1):s>t.endRow&&(t.endRow=o-1),this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:H.id,params:f}];return{preUndos:[{id:q.id,params:p}],undos:[{id:H.id,params:d}],preRedos:m,redos:h}}_handleInsertRangeMoveRightCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxColumns()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=a;if(F.intersects({startRow:t,startColumn:r,endRow:n,endColumn:o},e)&&(c.push(e),F.contains({startRow:t,startColumn:r,endRow:n,endColumn:o},e))){let t=i-r+1;l.push({startRow:e.startRow,startColumn:e.startColumn+t,endRow:e.endRow,endColumn:e.endColumn+t})}});let u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f);return{preRedos:[{id:q.id,params:u}],redos:[{id:H.id,params:f}],preUndos:[{id:q.id,params:p}],undos:[{id:H.id,params:d}]}}_handleInsertRangeMoveDownCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxRows()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,startColumn:n,endColumn:r,endRow:i}=a;if(F.intersects({startRow:t,startColumn:n,endRow:o,endColumn:r},e)&&(c.push(e),F.contains({startRow:t,startColumn:n,endRow:o,endColumn:r},e))){let n=i-t+1;l.push({startRow:e.startRow+n,startColumn:e.startColumn,endRow:e.endRow+n,endColumn:e.endColumn})}});let u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:H.id,params:f}],g=[{id:q.id,params:p}];return{redos:h,undos:[{id:H.id,params:d}],preRedos:m,preUndos:g}}_handleDeleteRangeMoveUpCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxRows()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,startColumn:n,endColumn:r,endRow:i}=a;if(F.intersects({startRow:t,startColumn:n,endRow:o,endColumn:r},e)&&(c.push(e),F.contains({startRow:t,startColumn:n,endRow:o,endColumn:r},e))){let n=i-t+1,r=F.moveVertical(e,-n);l.push(r)}});let u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:H.id,params:f}],g=[{id:q.id,params:p}];return{redos:h,undos:[{id:H.id,params:d}],preRedos:m,preUndos:g}}_handleDeleteRangeMoveLeftCommand(e,t,n){let r=Ys(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Xs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxColumns()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=a;if(F.intersects({startRow:t,startColumn:r,endRow:n,endColumn:o},e)&&(c.push(e),F.contains({startRow:t,startColumn:r,endRow:n,endColumn:o},e))){let t=i-r+1;l.push({startRow:e.startRow,startColumn:e.startColumn-t,endRow:e.endRow,endColumn:e.endColumn-t})}});let u={unitId:t,subUnitId:n,ranges:c},d=Pn(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=zt(this._injector,f);return{preRedos:[{id:q.id,params:u}],redos:[{id:H.id,params:f}],undos:[{id:H.id,params:d}],preUndos:[{id:q.id,params:p}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Gs.includes(e.id)){if(!e.params)return;let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let{sourceRange:r,targetRange:i}=e.params,a=r.startColumn===i.startColumn&&r.endColumn===i.endColumn,o=a?r.endRow-r.startRow+1:r.endColumn-r.startColumn+1,s=a?r.startRow:r.startColumn,c=a?i.startRow:i.startColumn,l=n.getConfig().mergeData,u=[];l.forEach(e=>{let{startRow:t,endRow:n,startColumn:i,endColumn:l,rangeType:d}=e;F.intersects(e,r)||(a?s<t&&c>n?(t-=o,n-=o):s>n&&c<=t&&(t+=o,n+=o):s<i&&c>l?(i-=o,l-=o):s>l&&c<=i&&(i+=o,l+=o)),e.startRow===e.endRow&&e.startColumn===e.endColumn||u.push({startRow:t,endRow:n,startColumn:i,endColumn:l,rangeType:d})}),n.setMergeData(u),this.disposableCollection.dispose();let{unitId:d,subUnitId:f}=e.params,p=e=>this.refRangeHandle(e,d,f);u.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,p,d,f))})}if(Ws.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=e.params;if(!i)return;let{range:a}=i,o=e.id.includes(`row`),s=e.id.includes(`insert`),c=o?a.startRow:a.startColumn,l=o?a.endRow:a.endColumn,u=l-c+1,d=[];r.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;s?o?c<=t&&(t+=u,n+=u):c<=r&&(r+=u,i+=u):o?l<t&&(t-=u,n-=u):l<r&&(r-=u,i-=u),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),n.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};Js=G([W(0,A(C)),W(1,A(zs)),W(2,A(k)),W(3,A(re)),W(4,A(K)),W(5,A(Y))],Js);function Ys(e,t){return t?e.getUniverSheetInstance(t):e.getCurrentUnitForType(L.UNIVER_SHEET)}function Xs(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}const Zs=(e,t,n)=>{let r=e.get(Y).getCurrentSelections(),{value:i,selections:a,unitId:o,subUnitId:s}=t;if(r&&r.length>0){let e=r[(r==null?void 0:r.length)-1].primary;if(e){let{actualColumn:t,actualRow:c}=e,{startRow:l,startColumn:u,endRow:d,endColumn:f}=a[a.length-1];if(i===p.COLUMNS){let e=n.find(e=>e.startColumn===t&&e.endColumn===t&&c===e.startRow);e&&(f=e.endColumn,l=e.startRow,d=e.endRow)}else if(i===p.ROWS){let e=n.find(e=>e.startRow===c&&e.endRow===c&&t===e.startColumn);e&&(d=e.endRow,u=e.startColumn,f=e.endColumn)}let m={startRow:l,startColumn:u,endRow:d,endColumn:f,actualRow:c,actualColumn:t,isMerged:!0,isMergedMainCell:l===c&&u===t},h=r.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null})),g={unitId:o,subUnitId:s,type:zi.ONLY_SET,selections:h};return{id:X.id,params:g}}return null}return null},Qs=(e,t)=>{let n=e.get(Y).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:zi.ONLY_SET,selections:[...n]};return{id:X.id,params:e}}return null},$s={type:u.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,t)=>{var n;let r=e.get(Y),i=e.get(C),a=e.get(O),o=(t==null?void 0:t.ranges)||((n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(o!=null&&o.length))return!1;let s=V(e.get(k),t);if(!s)return!1;let{subUnitId:c,unitId:l,worksheet:u}=s,d={unitId:l,subUnitId:c,ranges:o},f=u.getConfig().mergeData.filter(e=>o.some(t=>F.intersects(t,e)));if(!f.length)return!1;let p=Pn(e,d),m=r.getCurrentSelections(),h=I.deepClone(m),g=I.deepClone(m);if(m.length){let e=g[g.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 _={unitId:l,subUnitId:c,cellValue:ec(u,f).getMatrix()},v=gr(e,_),y=[{id:q.id,params:p},{id:J.id,params:_},{id:X.id,params:{unitId:l,subUnitId:c,selections:g,type:zi.ONLY_SET}}],b=[{id:H.id,params:p},{id:J.id,params:v},{id:X.id,params:{unitId:l,subUnitId:c,selections:h,type:zi.ONLY_SET}}];return R(y,i)?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}};function ec(e,t){let n=new j;return t.forEach(t=>{let{startRow:r,startColumn:i,endColumn:a,endRow:o}=t,s=e.getCellMatrix().getValue(r,i);if(s!=null&&s.s)for(let e=r;e<=o;e++)for(let t=i;t<=a;t++)(e!==r||t!==i)&&n.setValue(e,t,{s:s.s})}),n}let tc=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function nc(e,t){return t.some(t=>rc(e,t))}function rc(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 ic(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:ac(n,r).getData()},c=gr(e,s);i.push({id:J.id,params:c}),a.push({id:J.id,params:s})}),{undos:i,redos:a}}function ac(e,t){let{startRow:n,startColumn:r,endColumn:i,endRow:a}=t,o=e.getMatrixWithMergedCells(n,r,a,i,c.Raw),s=new j,l=null;return o.forValue((t,i,a)=>{if(a&&t>=n&&i>=r){var o,c;!l&&e.cellHasValue(a)&&(a.v!==``||((o=(c=a.p)==null||(c=c.body)==null||(c=c.dataStream)==null?void 0:c.length)==null?0:o)>2)&&(l=a),s.setValue(t,i,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),s.setValue(n,r,l),s}const oc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{worksheet:r}=n,{unitId:i,subUnitId:a,selections:o}=t,s=e.get(C),c=e.get(O),l=Ks(o,t.value),u=nc(r,l);if(u&&!t.defaultMerge){let t=e.get(T),n=e.get(se);if(!await t.confirm({id:`merge.confirm.add-worksheet-merge`,title:{title:`merge.confirm.warning`},children:{title:`merge.confirm.title`},cancelText:n.t(`merge.confirm.cancel`),confirmText:n.t(`merge.confirm.confirm`)}))return!1}let d=[],f=[],p={unitId:i,subUnitId:a,ranges:I.deepClone(l)},m={unitId:i,subUnitId:a,ranges:I.deepClone(l)},h=Pn(e,p),g=zt(e,m);if(h.ranges.length>0&&d.push({id:q.id,params:h}),d.push({id:H.id,params:m}),f.push({id:q.id,params:g}),h.ranges.length>0&&f.push({id:H.id,params:h}),u){let t=ic(e,i,r,l);d.unshift(...t.redos),f.push(...t.undos)}let _=Zs(e,t,l);_&&d.push(_);let v=Qs(e,t);v&&f.push(v);let y=e.get(K).onCommandExecute({id:oc.id,params:{unitId:i,subUnitId:a,ranges:l}});return d.push(...y.redos),f.push(...y.undos),R(d,s).result?(c.pushUndoRedo({unitID:i,undoMutations:f,redoMutations:d}),!0):!1}},sc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r=dc(tc.MergeAll,n);if(!(r!=null&&r.length))return!1;let i=V(e.get(k));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(C).executeCommand(oc.id,{selections:r,unitId:o,subUnitId:s})}},cc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r=dc(tc.MergeVertical,n);if(!(r!=null&&r.length))return!1;let i=V(e.get(k));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(C).executeCommand(oc.id,{value:p.COLUMNS,selections:r,unitId:o,subUnitId:s})}},lc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r=dc(tc.MergeHorizontal,n);if(!(r!=null&&r.length))return!1;let i=V(e.get(k));if(!i)return!1;let{workbook:a,worksheet:o}=i,s=a.getUnitId(),c=o.getSheetId();return e.get(C).executeCommand(oc.id,{value:p.ROWS,selections:r,unitId:s,subUnitId:c})}};function uc(e,t,n,r,i={}){let a=V(e.get(k),{unitId:t,subUnitId:n});if(!a)return;let o=e.get(C),{defaultMerge:s=!0,isForceMerge:c=!1}=i,{worksheet:l}=a;if(l.getMergeData().some(e=>r.some(t=>F.intersects(t,e)))){if(!c)throw Error(`The ranges to be merged overlap with the existing merged cells`);o.syncExecuteCommand($s.id,{unitId:t,subUnitId:n,ranges:r})}o.executeCommand(oc.id,{unitId:t,subUnitId:n,selections:r,defaultMerge:s})}function dc(e,t){return t?e===tc.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===tc.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===tc.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var fc=class{constructor(){U(this,`_model`,new Map),U(this,`_ruleChange`,new nt),U(this,`_ruleRefresh`,new nt),U(this,`_resetOrder`,new nt),U(this,`ruleChange$`,this._ruleChange.asObservable()),U(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),U(this,`resetOrder$`,this._resetOrder.asObservable()),U(this,`_worksheetRuleInitStateChange`,new tt(!1)),U(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 pc={id:`sheet.mutation.add-worksheet-protection`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(fc),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},mc={id:`sheet.mutation.delete-worksheet-protection`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(fc),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},hc={type:u.COMMAND,id:`sheet.command.add-worksheet-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(O),{rule:i,unitId:a}=t,o=i.subUnitId;if(await n.executeCommand(pc.id,{unitId:a,rule:i,subUnitId:i.subUnitId})){let e=[{id:pc.id,params:{unitId:a,rule:i,subUnitId:i.subUnitId}}],t=[{id:mc.id,params:{unitId:a,subUnitId:o}}];r.pushUndoRedo({unitID:a,redoMutations:e,undoMutations:t})}return!0}},gc={type:u.COMMAND,id:`sheet.command.set-worksheet-range-theme-style`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),{unitId:i}=t,a=vn(e,t);return n.syncExecuteCommand(_n.id,t)?(r.pushUndoRedo({unitID:i,undoMutations:[{id:yn.id,params:a}],redoMutations:[{id:_n.id,params:t}]}),!0):!1}},_c={type:u.COMMAND,id:`sheet.command.append-row`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),{unitId:i,subUnitId:a,cellValue:o,insertRowNums:s,insertColumnNums:c,maxRows:l,maxColumns:u}=t,d={unitId:i,subUnitId:a,cellValue:o},f=gr(e,d),p=[{id:J.id,params:d}],m=[{id:J.id,params:f}];if(s){let t={unitId:i,subUnitId:a,range:{startRow:l,endRow:l,startColumn:0,endColumn:u-1}},n=xn(e,t);p.unshift({id:Sn.id,params:t}),m.push({id:jn.id,params:n})}if(c){let t={unitId:i,subUnitId:a,range:{startRow:0,endRow:l-1,startColumn:u,endColumn:u-1+c}},n=Cn(e,t);p.unshift({id:wn.id,params:t}),m.push({id:Nn.id,params:n})}return R(p,n).result?(r.pushUndoRedo({unitID:i,undoMutations:m,redoMutations:p}),!0):!1}},vc=[`ff`,`fs`,`tr`,`tb`],yc={type:u.COMMAND,id:`sheet.command.set-style`,handler:(e,t)=>{var n;let r=V(e.get(k),t);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r,{range:s,style:c}=t,l=e.get(C),u=e.get(O),d=e.get(Y),f=s?[s]:(n=d.getCurrentSelections())==null?void 0:n.map(e=>e.range);if(!(f!=null&&f.length))return!1;let p=new j,m=Qi(o);if(I.isArray(c.value))for(let e=0;e<f.length;e++)m.forOperableEach(f[e],(e,t,n)=>{p.setValue(e,t,{s:{[c.type]:c.value[e-n.startRow][t-n.startColumn]}})});else for(let e=0;e<f.length;e++){let t={s:{[c.type]:c.value}};m.forOperableEach(f[e],(e,n)=>p.setValue(e,n,t))}let h={subUnitId:a,unitId:i,cellValue:p.getMatrix()},g=e.get(Ko).getSkeleton(i,a),_=gr(e,h),v=null;if(vc.includes(t==null?void 0:t.style.type)){let{suitableRanges:e,remainingRanges:t}=Jo(f,g);v={suitableRanges:e,remainingRanges:t,cellHeights:qo(e,o)}}let y=l.syncExecuteCommand(J.id,h),b=e.get(K),x=[],S=[];if(v){let{suitableRanges:e,remainingRanges:t,cellHeights:n}=v,{undos:r,redos:o}=b.generateMutationsOfAutoHeight({unitId:i,subUnitId:a,ranges:e,autoHeightRanges:e,lazyAutoHeightRanges:t,cellHeights:n});x=r,S=o}let{undos:w,redos:T}=b.onCommandExecute({id:yc.id,params:t}),E=R([...T,...S],l);return y&&E.result?(u.pushUndoRedo({unitID:h.unitId,undoMutations:[{id:J.id,params:_},...w,...x],redoMutations:[{id:J.id,params:h},...T,...S]}),!0):!1}},bc={type:u.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=V(e.get(k));if(!n)return!1;let{worksheet:i}=n,{actualRow:a,actualColumn:o}=t.primary,s={style:{type:`bl`,value:i.getRange(a,o).getFontWeight()===b.BOLD?r.FALSE:r.TRUE}};return e.get(C).syncExecuteCommand(yc.id,s)}},xc={type:u.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=V(e.get(k));if(!n)return!1;let{worksheet:i}=n,a=!0;if(t.primary){let{startRow:e,startColumn:n}=t.primary;a=i.getRange(e,n).getFontStyle()===y.ITALIC}let o={style:{type:`it`,value:a?r.FALSE:r.TRUE}};return e.get(C).syncExecuteCommand(yc.id,o)}},Sc={type:u.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=V(e.get(k));if(!n)return!1;let{worksheet:i}=n,a=!0;t.primary&&(a=!!i.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);let o={style:{type:`ul`,value:{s:a?r.FALSE:r.TRUE}}};return e.get(C).syncExecuteCommand(yc.id,o)}},Cc={type:u.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=V(e.get(k));if(!n)return!1;let{worksheet:i}=n,a=!0;t.primary&&(a=!!i.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);let o={style:{type:`st`,value:{s:a?r.FALSE:r.TRUE}}};return e.get(C).syncExecuteCommand(yc.id,o)}},wc={type:u.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=V(e.get(k));if(!n)return!1;let{worksheet:i}=n,a=!0;t.primary&&(a=!!i.getRange(t.primary.startRow,t.primary.startColumn).getOverline().s);let o={style:{type:`ol`,value:{s:a?r.FALSE:r.TRUE}}};return e.get(C).syncExecuteCommand(yc.id,o)}},Tc={type:u.COMMAND,id:`sheet.command.set-font-family`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={style:{type:`ff`,value:t.value}};return n.syncExecuteCommand(yc.id,r)}},Ec={type:u.COMMAND,id:`sheet.command.set-font-size`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={style:{type:`fs`,value:t.value}};return n.syncExecuteCommand(yc.id,r)}},Dc={type:u.COMMAND,id:`sheet.command.set-text-color`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={style:{type:`cl`,value:{rgb:t.value}}};return n.syncExecuteCommand(yc.id,r)}},Oc={type:u.COMMAND,id:`sheet.command.reset-text-color`,handler:e=>e.get(C).syncExecuteCommand(yc.id,{style:{type:`cl`,value:{rgb:null}}})},kc={type:u.COMMAND,id:`sheet.command.set-background-color`,handler:(e,t)=>{if(!t||!t.value)return!1;let n=e.get(C),r={style:{type:`bg`,value:{rgb:t.value}}};return n.syncExecuteCommand(yc.id,r)}},Ac={type:u.COMMAND,id:`sheet.command.reset-background-color`,handler:e=>e.get(C).syncExecuteCommand(yc.id,{style:{type:`bg`,value:{rgb:null}}})},jc={type:u.COMMAND,id:`sheet.command.set-vertical-text-align`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`vt`,value:t.value}};return n.syncExecuteCommand(yc.id,r)}},Mc={type:u.COMMAND,id:`sheet.command.set-horizontal-text-align`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`ht`,value:t.value}};return n.syncExecuteCommand(yc.id,r)}},Nc={type:u.COMMAND,id:`sheet.command.set-text-wrap`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`tb`,value:t.value}};return n.syncExecuteCommand(yc.id,r)}},Pc={type:u.COMMAND,id:`sheet.command.set-text-rotation`,handler:(e,t)=>{if(!t)return!1;let n=typeof t.value==`number`?{a:t.value}:{a:0,v:r.TRUE},i=e.get(C),a={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`tr`,value:n}};return i.syncExecuteCommand(yc.id,a)}},Fc={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Ic=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Lc=[``,`万`,`亿`,`万亿`,`亿亿`],Rc=[``,`十`,`百`,`千`],zc={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function Bc(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=Fc[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=zc[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 Vc(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Ic[a]+n):(i=!1,t=Ic[a],t+=Rc[r],n=t+n),r++,e=Math.floor(e/10)}return n}function Hc(e){let t=0,n=``,r=``,i=!1;if(e===0)return Ic[0];for(;e>0;){let a=e%1e4;i&&(r=Ic[0]+r),n=Vc(a),n+=a===0?Lc[0]:Lc[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Uc(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Fc;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Fc||n[e]in zc)){t=!1;break}}return t}function Wc(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 Gc(e){let t;return t=e.length===1?e===`日`||Bc(e)<7:!1,t}function Kc(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function qc(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function Jc(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function Yc(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 Xc(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 Zc(e,t){let n=[];for(let r=1;r<=t;r++){let t=(r-1)%e.length,i=I.deepClone(e[t]);pl(i),n.push({v:null,s:null,p:null,f:null,si:null,t:null,...i})}return n}function Qc(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 $c(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 el(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function tl(e,t,n){let r=[],i=[];for(let t=0;t<e.length;t++){var a;i.push(Number((a=e[t])==null?void 0:a.v))}if(e.length>2&&$c(i))for(let n=1;n<=t;n++){var o,s,c;let t=(n-1)%e.length,i=I.deepClone(e[t]);pl(i);let a=Number((o=e[e.length-1])==null?void 0:o.v)*(Number((s=e[1])==null?void 0:s.v)/Number((c=e[0])==null?void 0:c.v))**n;i&&(fl(i)&&(i.v=a),r.push(i))}else{let a=el(e.length);for(let o=1;o<=t;o++){let t=(o-1)%e.length,s=I.deepClone(e[t]);pl(s);let c=n===m.DOWN||n===m.RIGHT,l=nl(e.length+o,i,a,c);s&&(fl(s)&&(s.v=l),r.push(s))}}return r}function nl(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 rl(e,t,n){let r=[],i=/0|([1-9]+[0-9]*)/g;for(let o=1;o<=t;o++){var a;let t=(o-1)%e.length,s=I.deepClone(e[t]);pl(s);let c=`${(a=e[e.length-1])==null?void 0:a.v}`;if(!c)continue;let l=c==null?void 0:c.match(i),u=l==null?void 0:l[l.length-1];if(!u)continue;let d=Math.abs(Number(u)+n*o),f=c.lastIndexOf(u),p=c.substr(0,f)+d.toString()+c.substr(f+u.length);s&&(s.v=p,r.push(s))}return r}function il(e,t){let n=[];for(let r=1;r<=t;r++){let t=(r-1)%e.length,i=I.deepClone(e[t]);pl(i),i&&(delete i.v,n.push(i))}return n}function al(e,t,n,r=0){let i=[[`日`,`一`,`二`,`三`,`四`,`五`,`六`],[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`]];if(r>=i.length)return[];let a=i[r],o=[];for(let r=1;r<=t;r++){var s;let t=(r-1)%e.length,i=I.deepClone(e[t]);pl(i);let l=0;if(((s=e[e.length-1])==null?void 0:s.v)===a[0])l=7+n*r;else{var c;let t=`${(c=e[e.length-1])==null?void 0:c.v}`;t&&(l=Bc(t.substr(t.length-1,1))+n*r)}l<0&&(l=Math.ceil(Math.abs(l)/7)*7+l);let u=l%7;i&&(i.v=a[u],o.push(i))}return o}function ol(e,t,n){let r=[];for(let a=1;a<=t;a++){var i;let t=(a-1)%e.length,o=I.deepClone(e[t]);pl(o);let s=Bc(`${(i=e[e.length-1])==null?void 0:i.v}`)+n*a,c;c=s<=0?`零`:Hc(s),o&&(o.v=c,r.push(o))}return r}const sl={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 cl(e){let t=!1;return Object.keys(sl).forEach(n=>{sl[n].includes(e)&&(t=!0)}),t}function ll(e){let t=``,n=[];return Object.keys(sl).forEach(r=>{sl[r].includes(e)&&(t=r,n.push(...sl[r]))}),{name:t,series:n}}function ul(e,t,n,r){let i=r.length,a=[];for(let s=1;s<=t;s++){var o;let t=(s-1)%e.length,c=I.deepClone(e[t]);pl(c);let l=`${(o=e[e.length-1])==null?void 0:o.v}`,u=r.indexOf(l)+n*s;u<0&&(u+=Math.abs(n)*i);let d=u%i;c&&(c.v=r[d],a.push(c))}return a}function dl(e,t){let n=[],r;if(t.startRow<e.startRow)r=m.UP;else if(t.endRow>e.endRow)r=m.DOWN;else if(t.startColumn<e.startColumn)r=m.LEFT;else if(t.endColumn>e.endColumn)r=m.RIGHT;else return[];if(r===m.DOWN||r===m.UP){let i=e.endRow-e.startRow+1,a=t.endRow-t.startRow+1,o=Math.floor(a/i),s=a%i,c={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(r===m.DOWN){for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow+(t+1)*i,col:e.startColumn},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow+(o+1)*i,col:e.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:s-1,endColumn:e.endColumn-e.startColumn}})}else{for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow-(t+1)*i,col:e.startColumn},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow-(o+1)*i,col:e.startColumn},relativeRange:{startRow:i-s,endRow:i-1,startColumn:0,endColumn:e.endColumn-e.startColumn}})}}if(r===m.RIGHT||r===m.LEFT){let i=e.endColumn-e.startColumn+1,a=t.endColumn-t.startColumn+1,o=Math.floor(a/i),s=a%i,c={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(r===m.RIGHT){for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(t+1)*i},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(o+1)*i},relativeRange:{startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:s-1}})}else{for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(t+1)*i},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(o+1)*i},relativeRange:{startRow:0,startColumn:i-s,endRow:e.endRow-e.startRow,endColumn:i-1}})}}return n}function fl(e){return!(Me(e.f)||je(e.si)||e.t===l.BOOLEAN)}function pl(e){e&&`custom`in e&&delete e.custom}function ml(e,t){return t?e.reverse():e}function hl(e){let t=new j;return e.forEach(e=>{let{rows:n,cols:r}=e;n.forEach(e=>{r.forEach(n=>{t.setValue(e,n,{v:null,p:null,f:null,si:null,custom:null})})})}),t.clone()}const gl={chnNumChar:Fc,chnNumChar2:Ic,chnUnitSection:Lc,chnUnitChar:Rc,chnNameValue:zc,chineseToNumber:Bc,sectionToChinese:Vc,numberToChinese:Hc,isChnNumber:Uc,matchExtendNumber:Wc,isChnWeek1:Gc,isChnWeek2:Kc,isChnWeek3:qc,getLenS:Jc,isEqualDiff:Yc,getDataIndex:Xc,fillCopy:Zc,fillCopyStyles:Qc,isEqualRatio:$c,getXArr:el,fillSeries:tl,forecast:nl,fillExtendNumber:rl,fillOnlyFormat:il,fillChnWeek:al,fillChnNumber:ol,isLoopSeries:cl,getLoopSeriesInfo:ll,fillLoopSeries:ul,getAutoFillRepeatRange:dl,needsUpdateCellValue:fl,removeCellCustom:pl,reverseIfNeed:ml,generateNullCellValueRowCol:hl};let $=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),_l=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}({}),vl=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({});const{chineseToNumber:yl,fillChnNumber:bl,fillChnWeek:xl,fillCopy:Sl,fillExtendNumber:Cl,fillLoopSeries:wl,fillSeries:Tl,getLoopSeriesInfo:El,isChnNumber:Dl,isChnWeek2:Ol,isChnWeek3:kl,isEqualDiff:Al,isLoopSeries:jl,matchExtendNumber:Ml,reverseIfNeed:Nl}=gl,Pl={dateRule:{type:_l.DATE,priority:1100,match:(e,t)=>{if(e!=null&&e.f||e!=null&&e.si)return!1;if((typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===l.NUMBER)&&e.s){if(typeof e.s==`string`){var n;let r=t.get(k).getCurrentUnitOfType(L.UNIVER_SHEET);if(!r)return!1;let i=r.getStyles().get(e.s),a=i==null||(n=i.n)==null?void 0:n.pattern;if(a)return We.getFormatInfo(a).isDate}else if(e.s.n&&We.getFormatInfo(e.s.n.pattern).isDate)return!0}return!1},isContinue:(e,t)=>e.type===_l.DATE,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e;return n===m.LEFT||n===m.UP?(r.reverse(),Tl(r,t,n).reverse()):Tl(r,t,n)}}},numberRule:{type:_l.NUMBER,priority:1e3,match:e=>typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===l.NUMBER,isContinue:(e,t)=>e.type===_l.NUMBER,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e;return n===m.LEFT||n===m.UP?(r.reverse(),Tl(r,t,n).reverse()):Tl(r,t,n)}}},extendNumberRule:{type:_l.EXTEND_NUMBER,priority:900,match:e=>Ml(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===_l.EXTEND_NUMBER){var n;let{beforeTxt:r,afterTxt:i}=Ml(`${(n=e.cellData)==null?void 0:n.v}`||``),{beforeTxt:a,afterTxt:o}=Ml(`${t==null?void 0:t.v}`||``);if(r===a&&i===o)return!0}return!1},applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.UP||n===m.LEFT,a;if(r.length===1)return a=i?-1:1,Nl(Cl(r,t,a),i);let o=[];for(let e=0;e<r.length;e++){var s;let t=`${(s=r[e])==null?void 0:s.v}`;t&&o.push(Number(Ml(t).matchTxt))}return i&&(r.reverse(),o.reverse()),Al(o)?(a=o[1]-o[0],Nl(Cl(r,t,a),i)):Sl(r,t)}}},chnNumberRule:{type:_l.CHN_NUMBER,priority:830,match:e=>!!Dl(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===_l.CHN_NUMBER,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.LEFT||n===m.UP;if(r.length===1){var a;let e=`${(a=r[0])==null?void 0:a.v}`,n;return n=i?-1:1,e&&(e===`日`||yl(e)<7)?Nl(xl(r,t,n),i):Nl(bl(r,t,n),i)}let o=!1;for(let e=0;e<r.length;e++){var s;if(((s=r[e])==null?void 0:s.v)===`日`){o=!0;break}}let c=[],l=0;for(let e=0;e<r.length;e++){var u;let t=`${(u=r[e])==null?void 0:u.v}`;t===`日`?e===0?c.push(0):(l++,c.push(l*7)):o&&yl(t)>0&&yl(t)<7?c.push(yl(t)+l*7):c.push(yl(t))}return i&&(r.reverse(),c.reverse()),Al(c)?o||c[c.length-1]<6&&c[0]>0||c[0]<6&&c[c.length-1]>0?Nl(xl(r,t,c[1]-c[0]),i):Nl(bl(r,t,c[1]-c[0]),i):Sl(r,t)}}},chnWeek2Rule:{type:_l.CHN_WEEK2,priority:820,match:e=>!!Ol(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===_l.CHN_WEEK2,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.LEFT||n===m.UP;if(r.length===1){let e;return e=i?-1:1,Nl(xl(r,t,e,1),i)}let a=[],o=0;for(let e=0;e<r.length;e++){var s;let t=`${(s=r[e])==null?void 0:s.v}`,n=t==null?void 0:t.substr(t.length-1,1);t===`周日`?e===0?a.push(0):(o++,a.push(o*7)):a.push(yl(n)+o*7)}return i&&(r.reverse(),a.reverse()),Al(a)?Nl(xl(r,t,a[1]-a[0],1),i):Sl(r,t)}}},chnWeek3Rule:{type:_l.CHN_WEEK3,priority:810,match:e=>kl(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===_l.CHN_WEEK3,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.LEFT||n===m.UP;if(r.length===1){let e;return e=i?-1:1,Nl(xl(r,t,e,2),i)}let a=[],o=0;for(let e=0;e<r.length;e++){var s;let t=`${(s=r[e])==null?void 0:s.v}`;if(t){let n=t.substr(t.length-1,1);t===`星期日`?e===0?a.push(0):(o++,a.push(o*7)):a.push(yl(n)+o*7)}}return i&&(r.reverse(),a.reverse()),Al(a)?Nl(xl(r,t,a[1]-a[0],2),i):Sl(r,t)}}},loopSeriesRule:{type:_l.LOOP_SERIES,priority:800,match:e=>jl(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===_l.LOOP_SERIES){var n;return El(`${(n=e.cellData)==null?void 0:n.v}`||``).name===El(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[$.SERIES]:(e,t,n)=>{var r;let{data:i}=e,a=n===m.LEFT||n===m.UP,{series:o}=El(`${(r=i[0])==null?void 0:r.v}`||``);if(i.length===1){let e;return e=a?-1:1,Nl(wl(i,t,e,o),a)}let s=[],c=0;for(let e=0;e<i.length;e++){var l;let t=`${(l=i[e])==null?void 0:l.v}`;t&&(t===o[0]?e===0?s.push(0):(c++,s.push(c*o.length)):s.push(o.indexOf(t)+c*7))}return a&&(i.reverse(),s.reverse()),Al(s)?Nl(wl(i,t,s[1]-s[0],o),a):Sl(i,t)}}},otherRule:{type:_l.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===_l.OTHER}},{chnNumberRule:Fl,chnWeek2Rule:Il,chnWeek3Rule:Ll,dateRule:Rl,extendNumberRule:zl,loopSeriesRule:Bl,numberRule:Vl,otherRule:Hl}=Pl;let Ul=class extends h{constructor(e,t,n,r){super(),this._commandService=e,this._undoRedoService=t,this._univerInstanceService=n,this._injector=r,U(this,`_rules`,[]),U(this,`_hooks`,[]),U(this,`_applyType$`,new tt($.SERIES)),U(this,`_isFillingStyle`,!0),U(this,`_prevUndos`,[]),U(this,`_autoFillLocation$`,new tt(null)),U(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),U(this,`_showMenu$`,new tt(!1)),U(this,`showMenu$`,this._showMenu$.asObservable()),U(this,`_direction`,m.DOWN),U(this,`applyType$`,this._applyType$.asObservable()),U(this,`_menu$`,new tt([{label:`autoFill.copy`,value:$.COPY,disable:!1},{label:`autoFill.series`,value:$.SERIES,disable:!1},{label:`autoFill.formatOnly`,value:$.ONLY_FORMAT,disable:!1},{label:`autoFill.noFormat`,value:$.NO_FORMAT,disable:!1}])),U(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Rl,Vl,zl,Fl,Il,Ll,Bl,Hl].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}_getOneByPriority(e){return e.length<=0?[]:[e.reduce((e,t)=>(t.priority||0)>(e.priority||0)?t:e,e[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(e,t,n,r,i){var a;if(n.startColumn===r.startColumn&&n.startRow===r.startRow&&n.endColumn===r.endColumn&&n.endRow===r.endRow)return!1;if(r.endColumn<n.endColumn&&r.endColumn>n.startColumn)return this._commandService.executeCommand(Xl.id,{clearRange:{startRow:r.startRow,endRow:r.endRow,startColumn:r.endColumn+1,endColumn:n.endColumn},selectionRange:r});if(r.endRow<n.endRow&&r.endRow>n.startRow)return this._commandService.executeCommand(Xl.id,{clearRange:{startRow:r.endRow+1,endRow:n.endRow,startColumn:r.startColumn,endColumn:r.endColumn},selectionRange:r});let o={startRow:r.startRow,endRow:r.endRow,startColumn:r.startColumn,endColumn:r.endColumn},s=null;if(r.startRow<n.startRow)s=m.UP,o.endRow=n.startRow-1;else if(r.endRow>n.endRow)s=m.DOWN,o.startRow=n.endRow+1;else if(r.startColumn<n.startColumn)s=m.LEFT,o.endColumn=n.startColumn-1;else if(r.endColumn>n.endColumn)s=m.RIGHT,o.startColumn=n.endColumn+1;else return!1;this.direction=s;let c=this._injector.invoke(e=>ki(n,e)),l=this._injector.invoke(e=>ki(o,e));if(!c||!l)return!1;this.autoFillLocation={source:c,target:l,unitId:e,subUnitId:t};let u=[];if(this.getActiveHooks().forEach(n=>{var r;let i=n==null||(r=n.onBeforeFillData)==null?void 0:r.call(n,{source:c,target:l,unitId:e,subUnitId:t},s);i&&u.unshift(i)}),this._initPrevUndo(),i)return this.fillData(i);for(let e=0;e<u.length;e++){let t=this.menu.find(t=>t.value===u[e]);if(t&&!t.disable)return this.fillData(u[e])}let d=(a=this.menu.find(e=>e.disable===!1))==null?void 0:a.value;return d?this.fillData(d):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=vl.APPEND),this._hooks.push(e),Qe(()=>{let t=this._hooks.findIndex(t=>t===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(t=>t.type===e.type))throw Error(`Registry rule failed, type '${e.type}' already exist!`);let t=this._rules.findIndex(t=>t.priority<e.priority);this._rules.splice(t===-1?this._rules.length:t,0,e)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){let{source:e,target:t,unitId:n,subUnitId:r}=this.autoFillLocation||{};if(!e||!t||!n||!r)return[];let i=this._hooks.filter(i=>{var a;return!((a=i.disable)!=null&&a.call(i,{source:e,target:t,unitId:n,subUnitId:r},this._direction,this.applyType))}),a=i.filter(e=>e.type===vl.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===vl.DEFAULT)),s=i.filter(e=>e.type===vl.APPEND)||[];return[...o,...s]}get applyType(){return this._applyType$.getValue()}set applyType(e){this._applyType$.next(e)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(e){this._direction=e}isFillingStyle(){return this._isFillingStyle}setFillingStyle(e){this._isFillingStyle=e}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(e){this._autoFillLocation$.next(e)}setDisableApplyType(e,t){this._menu$.next(this._menu$.getValue().map(n=>n.value===e?{...n,disable:t}:n))}setShowMenu(e){this._showMenu$.next(e)}fillData(e){var t;this.applyType=e;let n=this._univerInstanceService.getCurrentUnitOfType(L.UNIVER_SHEET),r=n==null?void 0:n.getUnitId(),i=n==null||(t=n.getActiveSheet())==null?void 0:t.getSheetId(),{source:a,target:o,unitId:s=r,subUnitId:c=i}=this.autoFillLocation||{};if(!a||!o||!s||!c)return!1;let l=this._univerInstanceService.getUnit(s,L.UNIVER_SHEET);if(!l)return!1;let u=l.getSheetBySheetId(c);if(!u)return!1;let d=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(e=>{this._commandService.syncExecuteCommand(e.id,e.params)}),this._prevUndos=[];let f=F.union(Oi(a),Oi(o)),p=this.getActiveHooks();s===r&&c===i&&this._commandService.syncExecuteCommand(X.id,{selections:[{primary:Yi({startRow:a.rows[0],endRow:a.rows[a.rows.length-1],startColumn:a.cols[0],endColumn:a.cols[a.cols.length-1]},u),range:{...f,rangeType:N.NORMAL}}],unitId:s,subUnitId:c});let m=[],h=[];p.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:a,target:o,unitId:s,subUnitId:c},d,e))||{};r&&m.push(...r),i&&h.push(...i)});let g=h.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:_,undos:v}=this._getAutoHeightUndoRedos(h,l,u);return h.push(..._),m.push(...v),g&&(this._prevUndos=m,this._undoRedoService.pushUndoRedo({unitID:s,undoMutations:m,redoMutations:h})),p.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:a,target:o,unitId:s,subUnitId:c},d,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,t,n){if(this.applyType===$.NO_FORMAT)return{undos:[],redos:[]};let r=[],i=n.getConfig().defaultRowHeight,a=n.getRowManager();if(e.forEach(e=>{if(e.id===J.id){let{cellValue:o}=e.params;new j(o).forValue((e,o,s)=>{let c=Object.keys(t.getStyles().get(s==null?void 0:s.s)||{});if(s!=null&&s.p||c.length&&vc.some(e=>c.includes(e))){let t=n.getCellHeight(e,o),s=a.getRow(e);(!s&&t!==i||s&&t!==a.getRowHeight(e))&&r.push({row:e,autoHeight:t})}})}}),r.length===0)return{undos:[],redos:[]};let o={unitId:t.getUnitId(),subUnitId:n.getSheetId(),rowsAutoHeightInfo:r},s=Ir(o,n),c={id:zr.id,params:o};return this._commandService.syncExecuteCommand(c.id,c.params)?{redos:[c],undos:[{id:zr.id,params:s}]}:{undos:[],redos:[]}}};Ul=G([W(0,C),W(1,O),W(2,A(k)),W(3,A(re))],Ul);const Wl=we(`univer.auto-fill-service`),Gl={type:u.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{unitId:r,subUnitId:i}=n,{sourceRange:a,targetRange:o,applyType:s}=t;return e.get(Wl).triggerAutoFill(r,i,a,o,s)}};function Kl(e,t){let n=e.get(Y).getCurrentLastSelection();if(!n)return null;let r=V(e.get(k));if(!r)return null;let{unitId:i,subUnitId:a}=r,{startRow:o,endRow:s,startColumn:c,endColumn:l}=n.range;return t===`down`?o===s?o===0?null:{sourceRange:{startRow:o-1,endRow:o-1,startColumn:c,endColumn:l},targetRange:{startRow:o-1,endRow:s,startColumn:c,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}:{sourceRange:{startRow:o,endRow:o,startColumn:c,endColumn:l},targetRange:{startRow:o,endRow:s,startColumn:c,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}:c===l?c===0?null:{sourceRange:{startRow:o,endRow:s,startColumn:c-1,endColumn:c-1},targetRange:{startRow:o,endRow:s,startColumn:c-1,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}:{sourceRange:{startRow:o,endRow:s,startColumn:c,endColumn:c},targetRange:{startRow:o,endRow:s,startColumn:c,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}}async function ql(e,t){let n=Kl(e,t);if(!n)return!1;let r=await e.get(C).executeCommand(Gl.id,n);return r&&e.get(Wl).setShowMenu(!1),r}const Jl={type:u.COMMAND,id:`sheet.command.copy-down`,handler:async e=>ql(e,`down`)},Yl={type:u.COMMAND,id:`sheet.command.copy-right`,handler:async e=>ql(e,`right`)},Xl={id:`sheet.command.auto-clear-content`,type:u.COMMAND,handler:async(e,t)=>{let n=V(e.get(k));if(!n)return!1;let r=e.get(C),i=e.get(O),a=e.get(K),o=e.get(Y),{unitId:s,subUnitId:c}=n,{clearRange:l,selectionRange:u}=t,{startColumn:d,startRow:f}=u,p={subUnitId:c,unitId:s,cellValue:Ei([l])},m=gr(e,p),h=[{id:J.id,params:p},{id:X.id,params:{selections:[{primary:{startColumn:d,startRow:f,endColumn:d,endRow:f,actualRow:f,actualColumn:d,isMerged:!1,isMergedMainCell:!1},range:{...u}}],unitId:s,subUnitId:c}}],g=[{id:J.id,params:m},{id:X.id,params:{selections:[o.getCurrentLastSelection()],unitId:s,subUnitId:c}}];if(R(h,r)){let e=a.afterCommandExecute({id:J.id,params:p});return R(e.redos,r),i.pushUndoRedo({unitID:s,undoMutations:[...g,...e.undos],redoMutations:[...h,...e.redos]}),!0}return!1}},Zl={id:`sheet.command.clear-selection-content`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(k),i=e.get(C),a=e.get(Y),o=e.get(O),s=e.get(K),c=r.getCurrentUnitForType(L.UNIVER_SHEET);if(!c)return!1;let l=(t==null?void 0:t.unitId)||c.getUnitId(),u=c.getActiveSheet();if(!u)return!1;let d=(t==null?void 0:t.subUnitId)||u.getSheetId(),f=(t==null?void 0:t.ranges)||((n=a.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(f!=null&&f.length))return!1;let p={subUnitId:d,unitId:l,cellValue:Ei(Ai(f,e,l,d))},m=gr(e,p),h=s.onCommandExecute({id:Zl.id}),g=[{id:J.id,params:p},...h.redos],_=[...h.undos,{id:J.id,params:m}];return R(g,i).result?(o.pushUndoRedo({unitID:l,undoMutations:_,redoMutations:g}),!0):!1}},Ql=`sheets.config`;Symbol(Ql);const $l={largeSheetCellCountThreshold:6e3,batchSize:3e3},eu={};let tu=class extends h{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,U(this,`_tasks`,new Map),U(this,`_idleCallbackId`,null),U(this,`_beforeUnloadHandler`,null),this._setupBeforeUnloadListener(),this.disposeWithMe(()=>{this._cancelAllTasks(),this._removeBeforeUnloadListener()})}hasPendingTasks(){return this._tasks.size>0}getPendingMutationsCount(){let e=0;for(let t of this._tasks.values())e+=t.mutations.length-t.currentIndex;return e}scheduleMutations(e,t,n){if(n.length===0)return;let r=`${e}_${t}`;this._cancelTask(r),this._tasks.set(r,{unitId:e,subUnitId:t,mutations:n,currentIndex:0}),this._scheduleNextIdle()}cancelScheduledMutations(e,t){let n=`${e}_${t}`;this._cancelTask(n)}_cancelTask(e){this._tasks.delete(e),this._tasks.size===0&&this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_cancelAllTasks(){this._tasks.clear(),this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_scheduleNextIdle(){this._idleCallbackId===null&&(typeof requestIdleCallback<`u`?this._idleCallbackId=requestIdleCallback(e=>this._processIdleTasks(e),{timeout:1e3*60}):this._idleCallbackId=setTimeout(()=>{this._processIdleTasks({didTimeout:!1,timeRemaining:()=>16})},16))}_processIdleTasks(e){this._idleCallbackId=null;for(let[t,n]of this._tasks){if(!this._isSheetExist(n.unitId,n.subUnitId)){this._tasks.delete(t);continue}for(n.currentIndex;n.currentIndex<n.mutations.length;){if(e.timeRemaining()<=0&&!e.didTimeout){this._scheduleNextIdle();return}let t=n.mutations[n.currentIndex];this._commandService.syncExecuteCommand(t.id,t.params,{onlyLocal:!0}),n.currentIndex++}this._tasks.delete(t)}this._tasks.size>0&&this._scheduleNextIdle()}_isSheetExist(e,t){let n=this._univerInstanceService.getUnit(e,L.UNIVER_SHEET);return n?n.getSheetBySheetId(t)!==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)}};tu=G([W(0,C),W(1,k)],tu);const nu={id:`sheet.mutation.copy-worksheet-end`,type:u.MUTATION,handler:()=>!0},ru=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),iu={id:`sheet.mutation.insert-sheet`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k),{sheet:r,index:i,unitId:a,styles:o}=t,s=n.getUniverSheetInstance(a);return s?(o&&s.addStyles(o),s.addWorksheet(r.id,i,xe(r))):!1}};function au(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 ou(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:J.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}const su=`sheet.command.copy-sheet`;function cu(e,t,n,r,i,a,o){var s,c;let l=e.get(w).getConfig(Ql),u={...$l,...l==null?void 0:l.largeSheetOperation},d=xe(n.getConfig());d.name=uu(t,a,d.name);let f=De();d.id=f;let p=t.getSheetIndex(n),{cellData:m}=d,h=au(m)>=u.largeSheetCellCountThreshold,g,_=[];if(h){let{firstChunkCellData:e,remainingMutations:t}=ou(r,f,m,u.batchSize),n={...d,cellData:e};g={index:p+1,sheet:n,unitId:r},_=t}else g={index:p+1,sheet:d,unitId:r};let v=ru(e,g),y=o.onCommandExecute({id:su,params:{unitId:r,subUnitId:i,targetSubUnitId:d.id}});return{redos:[...(s=y.preRedos)==null?[]:s,{id:iu.id,params:g},...y.redos],undos:[...(c=y.preUndos)==null?[]:c,{id:Ro.id,params:v},...y.undos],unitId:r,newSheetId:f,isSplit:h,scheduledMutations:_}}const lu={type:u.COMMAND,id:su,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=e.get(k),a=e.get(K),o=e.get(se),s=e.get(tu),c=V(i,t);if(!c)return!1;let{workbook:l,worksheet:u,unitId:d,subUnitId:f}=c,{redos:p,undos:m,newSheetId:h,isSplit:g,scheduledMutations:_}=cu(e,l,u,d,f,o,a);if(R(p,n).result){if(g){if(r.pushUndoRedo({unitID:d,undoMutations:m,redoMutations:[]}),_.length>0){for(let e of _)n.syncExecuteCommand(e.id,e.params,{syncOnly:!0});n.syncExecuteCommand(nu.id,{unitId:d,subUnitId:h},{syncOnly:!0}),s.scheduleMutations(d,h,_)}}else r.pushUndoRedo({unitID:d,undoMutations:m,redoMutations:p});return!0}return!1}};function uu(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 du={type:u.COMMAND,id:`sheet.command.delete-range-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(O),{unitId:i,subUnitId:a,rule:o}=t,s={unitId:i,subUnitId:a,ruleIds:[o.id]};return await n.executeCommand(Fi.id,s)&&r.pushUndoRedo({unitID:i,redoMutations:[{id:Fi.id,params:s}],undoMutations:[{id:Li.id,params:{unitId:i,subUnitId:a,rules:[o]}}]}),!0}},fu={type:u.COMMAND,id:`sheet.command.delete-worksheet-protection`,handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(O),{rule:i,unitId:a,subUnitId:o}=t;n.executeCommand(mc.id,{unitId:a,subUnitId:o});let s=[{id:mc.id,params:{unitId:a,subUnitId:o}}],c=[{id:pc.id,params:{unitId:a,rule:i,subUnitId:o}}];return r.pushUndoRedo({unitID:a,redoMutations:s,undoMutations:c}),!0}},pu={type:u.COMMAND,id:`sheet.command.remove-worksheet-range-theme-style`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),{unitId:i}=t,a=bn(e,t);return n.syncExecuteCommand(yn.id,t)?(r.pushUndoRedo({unitID:i,undoMutations:[{id:_n.id,params:a}],redoMutations:[{id:yn.id,params:t}]}),!0):!1}},mu={id:`sheet.command.insert-defined-name`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C),r=e.get(O);if(!t)return!1;let i={...t};return n.syncExecuteCommand(yt.id,i)?(r.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:vt.id,params:i}],redoMutations:[{id:yt.id,params:i}]}),!0):!1}},hu={id:`sheet.command.insert-sheet`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=e.get(k),a=e.get(se),o=Lt(i,{unitId:t==null?void 0:t.unitId});if(!o)return!1;let{unitId:s,workbook:c}=o,l=c.getSheets().length,u=t==null?void 0:t.sheet,d=u==null?void 0:u.id,f=Ve(u||{});if(t){var p;l=(p=t.index)==null?l:p,f.id=d||De(),f.name=(u==null?void 0:u.name)||c.generateNewSheetName(`${a.t(`sheets.tabs.sheet`)}`)}else f.id=De(),f.name=c.generateNewSheetName(`${a.t(`sheets.tabs.sheet`)}`);let m={index:l,sheet:f,unitId:s},h=ru(e,m);return n.syncExecuteCommand(iu.id,m)?(r.pushUndoRedo({unitID:s,undoMutations:[{id:Ro.id,params:h}],redoMutations:[{id:iu.id,params:m}]}),!0):!1}},gu={id:`sheet.command.refill`,type:u.COMMAND,handler:async(e,t)=>e.get(Wl).fillData(t.type)},_u={id:`sheet.mutation.register-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!V(e.get(k),t))return!1;let n=e.get(gn),{unitId:r,rangeThemeStyleJson:i,themeName:a}=t,o=new en(a,i);return n.registerRangeThemeStyle(r,o),!0}},vu={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!V(e.get(k),t))return!1;let n=e.get(gn),{unitId:r,themeName:i}=t;return n.unregisterRangeThemeStyle(r,i),!0}},yu={id:`sheet.command.register-worksheet-range-theme-style`,type:u.COMMAND,handler:(e,t)=>{if(!t)return!1;let{unitId:n,rangeThemeStyle:r}=t,i=e.get(k),a=e.get(C),o=e.get(O);if(!V(i,t))return!1;let s={unitId:n,themeName:r.getName(),rangeThemeStyleJson:r.toJson()},c={unitId:n,themeName:r.getName()};return a.syncExecuteCommand(_u.id,s)&&o.pushUndoRedo({unitID:n,undoMutations:[{id:vu.id,params:c}],redoMutations:[{id:_u.id,params:s}]}),!0}},bu={id:`sheet.command.remove-defined-name`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(O),o=e.get(K);if(!t)return!1;let s={...t},c=o.onCommandExecute({id:bu.id,params:t}),l=[...(n=c.preRedos)==null?[]:n,{id:vt.id,params:s},...c.redos],u=[...(r=c.preUndos)==null?[]:r,{id:yt.id,params:s},...c.undos];return R(l,i)?(a.pushUndoRedo({unitID:t.unitId,undoMutations:u.filter(Boolean),redoMutations:l.filter(Boolean)}),!0):!1}},xu={id:`sheet.command.remove-sheet`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(O),o=e.get(k),s=e.get(K),c=e.get(w),l=V(o,t);if(!l)return!1;let{unitId:u,subUnitId:d,workbook:f,worksheet:p}=l;if(f.getSheets().length<=1)return!1;let m=c.getConfig(Ql),h={...$l,...m==null?void 0:m.largeSheetOperation},g=Yo(p.getCellMatrix())>=h.largeSheetCellCountThreshold,_={subUnitId:d,unitId:u,subUnitName:p.getName()},v=g?null:Lo(e,_),y=s.onCommandExecute({id:xu.id,params:{unitId:u,subUnitId:d}}),b=[...(n=y.preRedos)==null?[]:n,{id:Ro.id,params:_},...y.redos],x=g?[]:[...(r=y.preUndos)==null?[]:r,{id:iu.id,params:v},...y.undos];return R(b,i).result?(g?a.clearUndoRedo(u):a.pushUndoRedo({unitID:u,undoMutations:x,redoMutations:b}),!0):!1}};var Su=class{constructor(){U(this,`_borderInfo`,{type:a.ALL,color:`#000000`,style:i.THIN,activeBorderType:!1}),U(this,`_borderInfo$`,new tt(this._borderInfo)),U(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 Cu(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 wu=(e,t,n,r)=>{let{mr:i,worksheet:a}=e;t.startRow<0||t.startColumn<0||Cu(t,(e,t)=>{let o=a.getMergedCell(e,t),s=n;if(o&&(n.bc_tr||n.ml_tr||n.bl_tr||n.tl_mr||n.tl_bc||n.tl_br)){if(r){var c;let e=I.deepClone((c=i.getValue(o.startRow,o.startColumn))==null?void 0:c.s);s=e!=null&&e.bd?Object.assign(e.bd,n):n}i.setValue(o.startRow,o.startColumn,{s:{bd:s}})}else{if(r){var l;let r=I.deepClone((l=i.getValue(e,t))==null?void 0:l.s);s=r!=null&&r.bd?Object.assign(r.bd,n):n}i.setValue(e,t,{s:{bd:s}})}})},Tu=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 Eu(e,t,n){let{style:r,color:i,type:o}=e.getBorderInfo(),s=o===a.TOP||o===a.ALL||o===a.OUTSIDE,c=o===a.LEFT||o===a.ALL||o===a.OUTSIDE,l=o===a.BOTTOM||o===a.ALL||o===a.OUTSIDE,u=o===a.RIGHT||o===a.ALL||o===a.OUTSIDE,d=o===a.VERTICAL||o===a.ALL||o===a.INSIDE,f=o===a.HORIZONTAL||o===a.ALL||o===a.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=n[0],{topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:ee}=Tu(y),D=new j,{worksheet:te,unitId:ne,subUnitId:O}=t;return{worksheet:te,unitId:ne,subUnitId:O,style:r,color:i,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:ee,range:y,mr:D,borderStyle:{s:r,cl:{rgb:i}}}}const Du=e=>{let{range:t,mr:n,borderStyle:r,vertical:i,horizontal:a,worksheet:o}=e;i&&Cu(t,(e,i)=>{let a=o.getMergedCell(e,i);if(a){var s;let o=(s=n.getValue(a.startRow,a.startColumn))==null?void 0:s.s;a.startColumn!==t.startColumn&&n.setValue(e,i,{s:{bd:o!=null&&o.bd?Object.assign(o.bd,{l:I.deepClone(r)}):{l:I.deepClone(r)}}})}else{if(i!==t.endColumn){var c;let t=(c=n.getValue(e,i))==null?void 0:c.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{r:I.deepClone(r)}):{r:I.deepClone(r)}}})}if(i!==t.startColumn){var l;let t=(l=n.getValue(e,i))==null?void 0:l.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{l:I.deepClone(r)}):{l:I.deepClone(r)}}})}}}),a&&Cu(t,(e,i)=>{let a=o.getMergedCell(e,i);if(a){var s;let o=(s=n.getValue(a.startRow,a.startColumn))==null?void 0:s.s;a.startRow!==t.startRow&&n.setValue(e,i,{s:{bd:o!=null&&o.bd?Object.assign(o.bd,{t:I.deepClone(r)}):{t:I.deepClone(r)}}})}else{if(e!==t.endRow){var c;let t=(c=n.getValue(e,i))==null?void 0:c.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{b:I.deepClone(r)}):{b:I.deepClone(r)}}})}if(e!==t.startRow){var l;let t=(l=n.getValue(e,i))==null?void 0:l.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{t:I.deepClone(r)}):{t:I.deepClone(r)}}})}}})};function Ou(e){let{borderStyle:t,tl_br:n,tl_bc:r,tl_mr:i,bl_tr:a,ml_tr:o,bc_tr:s}=e,c=(t,n,r)=>{wu(e,t,n,r)};n&&c(e.range,{tl_br:I.deepClone(t)},!0),r&&c(e.range,{tl_bc:I.deepClone(t)},!0),i&&c(e.range,{tl_mr:I.deepClone(t)},!0),a&&c(e.range,{bl_tr:I.deepClone(t)},!0),o&&c(e.range,{ml_tr:I.deepClone(t)},!0),s&&c(e.range,{bc_tr:I.deepClone(t)},!0)}const ku=e=>{let{top:t,left:n,right:r,bottom:i,borderStyle:a,bottomRange:o,topRange:s,leftRange:c,rightRange:l,bottomRangeOut:u,topRangeOut:d,leftRangeOut:f,rightRangeOut:p}=e,m=(t,n,r)=>{wu(e,t,n,r)};t&&(m(d,{b:null}),m(s,{t:I.deepClone(a)},!0)),i&&(m(u,{t:null}),m(o,{b:I.deepClone(a)},!0)),n&&(m(f,{r:null}),m(c,{l:I.deepClone(a)},!0)),r&&(m(p,{l:null}),m(l,{r:I.deepClone(a)},!0))},Au=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)=>{wu(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(Cu(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))},ju={id:`sheet.command.set-border`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(C),i=e.get(O),a=e.get(k),o=e.get(Y),s=e.get(Su),c=V(a,t);if(!c)return!1;let l=(t==null?void 0:t.ranges)||((n=o.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(l!=null&&l.length))return!1;let{activeBorderType:u}=s.getBorderInfo();if(!u)return!1;let d=Eu(s,c,l);Du(d),ku(d),Ou(d),Au(d);let{unitId:f,subUnitId:p,mr:m}=d,h={unitId:f,subUnitId:p,cellValue:m.getData()},g=gr(e,h);return r.syncExecuteCommand(J.id,h)?(i.pushUndoRedo({unitID:f,undoMutations:[{id:J.id,params:g}],redoMutations:[{id:J.id,params:h}]}),!0):!1}},Mu={id:`sheet.command.set-border-position`,type:u.COMMAND,handler:(e,t)=>{if(!t.value)return!1;let n=e.get(C);return e.get(Su).setType(t.value),n.syncExecuteCommand(ju.id)}},Nu={id:`sheet.command.set-border-style`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C);return e.get(Su).setStyle(t.value),n.syncExecuteCommand(ju.id)}},Pu={id:`sheet.command.set-border-color`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C);return e.get(Su).setColor(t.value),n.syncExecuteCommand(ju.id)}},Fu={id:`sheet.command.set-border-basic`,type:u.COMMAND,handler:(e,t)=>{let{unitId:n,subUnitId:r,value:i,ranges:a}=t,{type:o,color:s,style:c}=i,l=e.get(C),u=e.get(Su);return u.setType(o),s&&u.setColor(s),u.setStyle(c),l.syncExecuteCommand(ju.id,{unitId:n,subUnitId:r,ranges:a})}},Iu={type:u.COMMAND,id:`sheet.command.set-col-data`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=V(e.get(k),t);if(!i)return!1;let{columnData:a}=t,{unitId:o,subUnitId:s,worksheet:c}=i,l={subUnitId:s,unitId:o,columnData:a},u=zn(l,c);return n.syncExecuteCommand(Bn.id,l)?(r.pushUndoRedo({unitID:o,undoMutations:[{id:Bn.id,params:u}],redoMutations:[{id:Bn.id,params:l}]}),!0):!1}},Lu={type:u.COMMAND,id:`sheet.command.set-col-visible-on-cols`,handler:(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=t,a=e.get(K),o=e.get(C),s=V(e.get(k),{unitId:n,subUnitId:r});if(!s)return!1;let{worksheet:c}=s,l={unitId:n,subUnitId:r,ranges:i},u={unitId:n,subUnitId:r,reveal:!0,selections:i.map(e=>({range:e,primary:Yi(e,c),style:null}))},d=Un(e,l),f={unitId:n,subUnitId:r,selections:Vu(i).map(e=>({range:e,primary:Yi(e,c),style:null}))},p=R([{id:Wn.id,params:l},{id:X.id,params:u}],o),m=a.onCommandExecute({id:Lu.id,params:t}),h=R([...m.redos],o);if(p.result&&h.result){var g,_;let r=a.afterCommandExecute({id:Lu.id,params:t});return R(r.redos,o),e.get(O).pushUndoRedo({unitID:n,undoMutations:[{id:Hn.id,params:d},{id:X.id,params:f},...(g=m.undos)==null?[]:g,...r.undos],redoMutations:[...(_=m.preRedos)==null?[]:_,{id:Wn.id,params:l},{id:X.id,params:u},...m.redos,...r.redos]}),!0}return!0}},Ru={type:u.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var t;let n=e.get(Y),r=e.get(C),i=(t=n.getCurrentSelections())==null?void 0:t.map(e=>e.range).filter(e=>e.rangeType===N.COLUMN);if(!(i!=null&&i.length))return!1;let a=V(e.get(k));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=i.map(e=>o.getHiddenCols(e.startColumn,e.endColumn)).flat();return r.executeCommand(Lu.id,{unitId:s,subUnitId:c,ranges:l})}},zu={type:u.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,t)=>{var n,r;let i=e.get(Y),a=e.get(K),o=e.get(k),s=e.get(C),c=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range).filter(e=>e.rangeType===N.COLUMN);if(!(c!=null&&c.length))return!1;let l=V(o,t);if(!l)return!1;let{worksheet:u,unitId:d,subUnitId:f}=l;c=Bu(l.worksheet,c);let p={unitId:d,subUnitId:f,ranges:c},m={unitId:d,subUnitId:f,selections:Vu(c).map(e=>({range:e,primary:Yi(e,u),style:null}))},h=Vn(e,p),g={unitId:d,subUnitId:f,reveal:!0,selections:c.map(e=>({range:e,primary:Yi(e,u),style:null}))},_=R([{id:Hn.id,params:p},{id:X.id,params:m}],s),v=a.onCommandExecute({id:zu.id,params:p}),y=R([...v.redos],s);if(_.result&&y.result){var b,x;let t=a.afterCommandExecute({id:zu.id,params:p});return R(t.redos,s),e.get(O).pushUndoRedo({unitID:d,undoMutations:[{id:Wn.id,params:h},{id:X.id,params:g},...(b=v.undos)==null?[]:b,...t.undos],redoMutations:[...(x=v.preRedos)==null?[]:x,{id:Hn.id,params:p},{id:X.id,params:m},...v.redos,...t.redos]}),!0}return!1}};function Bu(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 Vu(e){return Hu(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Hu(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 Uu={id:`sheet.command.set-defined-name`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(O),o=e.get(K);if(!t)return!1;let s={...t},c=bt(e,t),l=o.onCommandExecute({id:Uu.id,params:t}),u=[...(n=l.preRedos)==null?[]:n,{id:vt.id,params:c},{id:yt.id,params:s},...l.redos],d=[...(r=l.preUndos)==null?[]:r,{id:vt.id,params:s},{id:yt.id,params:c},...l.undos];return R(u,i)?(a.pushUndoRedo({unitID:t.unitId,undoMutations:d.filter(Boolean),redoMutations:u.filter(Boolean)}),!0):!1}},Wu=(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(r==null)throw Error(`worksheet is null error!`);let i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},Gu={id:`sheet.mutation.set-frozen`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=r.getConfig(),{startRow:a,startColumn:o,ySplit:s,xSplit:c}=t;return i.freeze={startRow:a,startColumn:o,ySplit:s,xSplit:c},!0}},Ku={type:u.COMMAND,id:`sheet.command.set-frozen`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=V(e.get(k),{unitId:t.unitId,subUnitId:t.subUnitId});if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,{startColumn:c,startRow:l,xSplit:u,ySplit:d}=t;if(l>=s.getRowCount()||c>=s.getColumnCount()||u>=s.getColumnCount()||d>=s.getRowCount())return!1;let f={unitId:a,subUnitId:o,...t},p=Wu(e,f);return n.syncExecuteCommand(Gu.id,f)?(r.pushUndoRedo({unitID:a,undoMutations:[{id:Gu.id,params:p}],redoMutations:[{id:Gu.id,params:f}]}),!0):!1}},qu={type:u.COMMAND,id:`sheet.command.cancel-frozen`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=e.get(O),a=V(r,{unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId});if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={unitId:o,subUnitId:s,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},l=Wu(e,c);return n.syncExecuteCommand(Gu.id,c)&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Gu.id,params:l}],redoMutations:[{id:Gu.id,params:c}]}),!0}},Ju={type:u.COMMAND,id:`sheet.command.set-gridlines-color`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=V(e.get(k),t);if(!i)return!1;let{worksheet:a}=i,o=a.getConfig().gridlinesColor;if(o===(t==null?void 0:t.color))return!1;let{unitId:s,subUnitId:c}=i,l={color:t==null?void 0:t.color,unitId:s,subUnitId:c},u={color:o,unitId:s,subUnitId:c};return n.syncExecuteCommand(Gn.id,l)?(r.pushUndoRedo({unitID:s,undoMutations:[{id:Gn.id,params:u}],redoMutations:[{id:Gn.id,params:l}]}),!0):!1}},Yu={id:`sheet.mutation.set-range-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i,ruleId:a}=t;return e.get(Ni).setRule(n,r,a,i),!0}},Xu=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(Ni).getRule(n,r,i);return a?{id:Yu.id,params:{...t,rule:a}}:null},Zu={id:`sheet.mutation.set-worksheet-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(fc).setRule(n,r,i),!0}},Qu={type:u.COMMAND,id:`sheet.command.set-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(O),i=e.get(Ni),{rule:a,oldRule:o}=t,{unitId:s,subUnitId:c}=a,l=[],u=[];return(o==null?void 0:o.unitType)===a.unitType?a.unitType===B.Worksheet?(l.push({id:Zu.id,params:{unitId:s,subUnitId:c,rule:a}}),u.push({id:Zu.id,params:{unitId:s,subUnitId:c,rule:o}})):(l.push({id:Yu.id,params:{unitId:s,subUnitId:c,rule:a,ruleId:a.id}}),u.push({id:Yu.id,params:{unitId:s,subUnitId:c,ruleId:o.id,rule:o}})):(o&&(o.unitType===B.Worksheet?(l.push({id:mc.id,params:{unitId:s,subUnitId:c}}),u.push({id:pc.id,params:{unitId:s,rule:o,subUnitId:o.subUnitId}})):o.unitType===B.SelectRange&&(l.push({id:Fi.id,params:{unitId:s,subUnitId:c,ruleIds:[o.id]}}),u.push({id:Li.id,params:{unitId:s,subUnitId:c,rules:[o]}}))),a.unitType===B.Worksheet?(l.push({id:pc.id,params:{unitId:s,rule:a,subUnitId:a.subUnitId}}),u.unshift({id:mc.id,params:{unitId:s,subUnitId:c}})):a.unitType===B.SelectRange&&(a.id=i.createRuleId(s,c),l.push({id:Li.id,params:{unitId:s,subUnitId:c,rules:[a]}}),u.unshift({id:Fi.id,params:{unitId:s,subUnitId:c,ruleIds:[a.id]}}))),R(l,n)&&r.pushUndoRedo({unitID:s,undoMutations:u,redoMutations:l}),!0}},$u={id:`sheet.command.set-range-custom-metadata`,type:u.COMMAND,handler:(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let r=e.get(C),{unitId:i,subUnitId:a}=n,{range:o,customMetadata:s}=t,{startRow:c,startColumn:l,endRow:u,endColumn:d}=o,f=I.isArray(s),p=new j;for(let e=c;e<=u;e++)for(let t=l;t<=d;t++){let n=f?s[e-c][t-l]:s;p.setValue(e,t,n)}return r.syncExecuteCommand(J.id,{unitId:i,subUnitId:a,cellValue:p.getMatrix()})}},ed={type:u.COMMAND,id:`sheet.command.set-row-data`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=V(e.get(k),t);if(!i)return!1;let{rowData:a}=t,{unitId:o,subUnitId:s,worksheet:c}=i,l={subUnitId:s,unitId:o,rowData:a},u=br(l,c);return n.syncExecuteCommand(xr.id,l)?(r.pushUndoRedo({unitID:o,undoMutations:[{id:xr.id,params:u}],redoMutations:[{id:xr.id,params:l}]}),!0):!1}},td={type:u.COMMAND,id:`sheet.command.set-specific-rows-visible`,handler:(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=t,a=e.get(C),o=e.get(O),s=e.get(K),c=V(e.get(k),{unitId:n,subUnitId:r});if(!c)return!1;let{worksheet:l}=c,u={unitId:n,subUnitId:r,ranges:i},d={unitId:n,subUnitId:r,reveal:!0,selections:i.map(e=>({range:e,primary:Yi(e,l),style:null}))},f=Sr(e,u),p={unitId:n,subUnitId:r,selections:ad(i).map(e=>({range:e,primary:Yi(e,l),style:null}))},m=R([{id:Cr.id,params:u},{id:X.id,params:d}],a),h=s.onCommandExecute({id:td.id,params:t}),g=R([...h.redos],a);if(m.result&&g.result){var _,v,y;let e=s.afterCommandExecute({id:td.id,params:t});return R(e.redos,a),o.pushUndoRedo({unitID:n,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:Tr.id,params:f},{id:X.id,params:p},...(v=h.undos)==null?[]:v,...e.undos],redoMutations:[...(y=h.preRedos)==null?[]:y,{id:Cr.id,params:u},{id:X.id,params:d},...h.redos,...e.redos]}),!0}return!0}},nd={type:u.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var t;let n=e.get(Y),r=e.get(k),i=e.get(C),a=(t=n.getCurrentSelections())==null?void 0:t.map(e=>e.range).filter(e=>e.rangeType===N.ROW);if(!(a!=null&&a.length))return!1;let o=V(r);if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=a.map(e=>s.getHiddenRows(e.startRow,e.endRow)).flat();return i.executeCommand(td.id,{unitId:c,subUnitId:l,ranges:u})}},rd={type:u.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,t)=>{var n,r,i;let a=e.get(Y),o=e.get(C),s=e.get(O),c=e.get(k),l=e.get(K),u=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(r=a.getCurrentSelections())==null?void 0:r.map(e=>e.range).filter(e=>e.rangeType===N.ROW);if(!(u!=null&&u.length))return!1;let d=V(c,t);if(!d)return!1;u=id(d.worksheet,u);let{unitId:f,subUnitId:p,worksheet:m}=d,h={unitId:f,subUnitId:p,ranges:u},g={unitId:f,subUnitId:p,selections:ad(u).map(e=>({range:e,primary:Yi(e,m),style:null}))},_=wr(e,h),v={unitId:f,subUnitId:p,reveal:!0,selections:u.map(e=>({range:e,primary:Yi(e,m),style:null}))},y=l.onCommandExecute({id:rd.id,params:h});if(R([...(i=y.preRedos)==null?[]:i,{id:Tr.id,params:h},{id:X.id,params:g},...y.redos],o).result){var b,x,S;let e=l.afterCommandExecute({id:rd.id,params:h});return R(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(b=y.preUndos)==null?[]:b,{id:Cr.id,params:_},{id:X.id,params:v},...(x=y.undos)==null?[]:x,...e.undos],redoMutations:[...(S=y.preRedos)==null?[]:S,{id:Tr.id,params:h},{id:X.id,params:g},...y.redos,...e.redos]}),!0}return!0}};function id(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 ad(e){return od(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function od(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 sd=(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...I.deepClone(t),color:n}},cd={id:`sheet.mutation.set-tab-color`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getSheetBySheetId(t.subUnitId);return r?(r.getConfig().tabColor=t.color,!0):!1}},ld={type:u.COMMAND,id:`sheet.command.set-tab-color`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=V(e.get(k),t);if(!i)return!1;let{unitId:a,subUnitId:o}=i,s={color:t.value,unitId:a,subUnitId:o},c=sd(e,s);return n.syncExecuteCommand(cd.id,s)?(r.pushUndoRedo({unitID:a,undoMutations:[{id:cd.id,params:c}],redoMutations:[{id:cd.id,params:s}]}),!0):!1}},ud={id:`sheet.mutation.set-workbook-name`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUnit(t.unitId,L.UNIVER_SHEET);return n?(n.setName(t.name),!0):!1}},dd={type:u.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,t)=>{var n;let r=e.get(C),i=e.get(K);if(!Lt(e.get(k),t))return!1;let a=i.onCommandExecute({id:dd.id,params:t}),o={name:t.name,unitId:t.unitId};return R([...(n=a.preRedos)==null?[]:n,{id:ud.id,params:o},...a.redos],r).result}},fd={type:u.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,t,n)=>{let r=e.get(C),i=V(e.get(k),t);if(!i)return!1;let{unitId:a,subUnitId:o}=i;return new Promise(e=>{setTimeout(()=>{e(r.syncExecuteCommand(Vr.id,{unitId:a,subUnitId:o},n))},4)})}},pd={type:u.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections();if(!(n!=null&&n.length))return!1;let r=e.get(C),i=e.get(O),a=V(e.get(k));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,{anchorCol:l,deltaX:u}=t,d=o.getColumnWidth(l)+u,f=n.length===1&&n[0].range.rangeType===N.ALL,p=n.filter(e=>e.range.rangeType===N.COLUMN),m=f?N.ALL:p.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=l&&l<=n})?N.COLUMN:N.NORMAL,h;if(m===N.ALL){let e=o.getRowCount();h={subUnitId:c,unitId:s,colWidth:d,ranges:Array(o.getColumnCount()).fill(void 0).map((t,n)=>({startRow:0,endRow:e-1,startColumn:n,endColumn:n}))}}else h=m===N.COLUMN?{subUnitId:c,unitId:s,ranges:p.map(e=>F.clone(e.range)),colWidth:d}:{subUnitId:c,unitId:s,colWidth:d,ranges:[{startRow:0,endRow:o.getMaxRows()-1,startColumn:l,endColumn:l}]};let g=e.get(Ko).getSkeleton(s,c),{suitableRanges:_,remainingRanges:v}=Jo(h.ranges,g);qo(_,o);let y=e.get(K),{undos:b,redos:x}=y.onCommandExecute({id:pd.id,params:h}),S=Er(h,o),w=r.syncExecuteCommand(Dr.id,h),{undos:T,redos:E}=y.generateMutationsOfAutoHeight({unitId:s,subUnitId:c,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),{undos:ee,redos:D}=e.get(K).afterCommandExecute({id:pd.id,params:h}),te=R([...x,...D,...E],r);return w&&te.result&&i.pushUndoRedo({unitID:s,undoMutations:[{id:Dr.id,params:S},...b,...ee,...T],redoMutations:[{id:Dr.id,params:h},...x,...D,...E]}),!0}},md={type:u.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,t)=>{var n,r;let i=e.get(Y),a=e.get(C),o=e.get(O),s=e.get(K),c=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(c!=null&&c.length))return!1;let l=V(e.get(k),t);if(!l)return!1;let{subUnitId:u,unitId:d,worksheet:f}=l,p=e.get(Ko).getSkeleton(d,u),m={subUnitId:u,unitId:d,ranges:c,colWidth:t.value},{suitableRanges:h,remainingRanges:g}=Jo(m.ranges,p);qo(h,f);let _=Er(m,f),v=a.syncExecuteCommand(Dr.id,m),{undos:y,redos:b}=s.generateMutationsOfAutoHeight({unitId:d,subUnitId:u,ranges:h,autoHeightRanges:h,lazyAutoHeightRanges:g}),x=s.onCommandExecute({id:md.id,params:m}),S=R([...x.redos,...b],a);if(v&&S.result){var w,T;let e=s.afterCommandExecute({id:md.id,params:m});return R(e.redos,a),o.pushUndoRedo({unitID:d,undoMutations:[...(w=x.preUndos)==null?[]:w,{id:Dr.id,params:_},...x.undos,...e.undos,...y],redoMutations:[...(T=x.preRedos)==null?[]:T,{id:Dr.id,params:m},...x.redos,...e.redos,...b]}),!0}return!1}},hd={type:u.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(e,t)=>{let n=e.get(C),r=e.get(O),i=e.get(Y),a=V(e.get(k),t);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=[];if(t!=null&&t.ranges)c=[...t.ranges];else{let e=i.getCurrentSelections();for(let t=0;t<e.length;t++)c.push(e[t].range)}if(!(c!=null&&c.length))return!1;let l={unitId:o,subUnitId:s,ranges:c},{undos:u,redos:d}=e.get(K).onCommandExecute({id:hd.id,params:l});return R([...d],n).result?(r.pushUndoRedo({unitID:o,undoMutations:[...u],redoMutations:[...d]}),!0):!1}},gd={type:u.COMMAND,id:`sheet.command.set-worksheet-column-count`,handler:(e,t)=>{let{unitId:n,subUnitId:r,columnCount:i}=t,a=e.get(C),o=e.get(O);if(!V(e.get(k),t))return!1;let s={unitId:n,subUnitId:r,columnCount:i},c=Or(e,s);return a.syncExecuteCommand(kr.id,s)?(o.pushUndoRedo({unitID:n,undoMutations:[{id:kr.id,params:c}],redoMutations:[{id:kr.id,params:s}]}),!0):!1}},_d={type:u.COMMAND,id:`sheet.command.set-worksheet-default-style`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),{unitId:i}=t,a=jr(e,t);return n.syncExecuteCommand(Ar.id,t)?(r.pushUndoRedo({unitID:i,undoMutations:[{id:Ar.id,params:a}],redoMutations:[{id:Ar.id,params:t}]}),!0):!1}},vd=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`[SetWorksheetHideMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{hidden:r.isSheetHidden(),unitId:t.unitId,subUnitId:r.getSheetId()}},yd={id:`sheet.mutation.set-worksheet-hidden`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)return!1;let r=n.getSheetBySheetId(t.subUnitId);return r?(r.getConfig().hidden=t.hidden,!0):!1}},bd={type:u.COMMAND,id:`sheet.command.set-worksheet-hidden`,handler:(e,t)=>{let n=e.get(C),i=e.get(O),a=e.get(v),o=e.get(se),s=V(e.get(k),t);if(!s)return!1;let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s;if(l.getConfig().hidden===r.TRUE)return!1;let f={unitId:u,subUnitId:d,hidden:r.TRUE},p=vd(e,f);return c.getSheets().filter(e=>e.getConfig().hidden===r.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):n.syncExecuteCommand(yd.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:yd.id,params:p}],redoMutations:[{id:yd.id,params:f}]}),!0):!1}},xd=(e,t)=>{let n=Rt(e.get(k),t);if(!n)throw Error(`[SetWorksheetNameMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,name:r.getName(),subUnitId:r.getSheetId()}},Sd={id:`sheet.mutation.set-worksheet-name`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(n==null)return!1;let r=n.getSheetBySheetId(t.subUnitId);return r?(r.getConfig().name=t.name,!0):!1}},Cd={type:u.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(O),o=e.get(K),s=V(e.get(k),t);if(!s)return!1;let{unitId:c,subUnitId:l}=s,u={subUnitId:l,name:t.name,unitId:c},d=xd(e,u),f=o.onCommandExecute({id:Cd.id,params:t}),p=[...(n=f.preRedos)==null?[]:n,{id:Sd.id,params:u},...f.redos],m=[...(r=f.preUndos)==null?[]:r,{id:Sd.id,params:d},...f.undos];return R(p,i).result?(a.pushUndoRedo({unitID:c,undoMutations:m,redoMutations:p}),!0):!1}},wd=(e,t)=>({...I.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Td={id:`sheet.mutation.set-worksheet-order`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getConfig();return r.sheetOrder.splice(t.fromOrder,1),r.sheetOrder.splice(t.toOrder,0,t.subUnitId),n.ensureSheetOrderUnique(),!0}},Ed={type:u.COMMAND,id:`sheet.command.set-worksheet-order`,handler:(e,t)=>{let n=e.get(C),r=e.get(O),i=V(e.get(k),t);if(!i)return!1;let{workbook:a,unitId:o,subUnitId:s}=i,c={fromOrder:a.getConfig().sheetOrder.indexOf(s),toOrder:t.order,unitId:o,subUnitId:s},l=wd(e,c);return n.syncExecuteCommand(Td.id,c)?(r.pushUndoRedo({unitID:o,undoMutations:[{id:Td.id,params:l}],redoMutations:[{id:Td.id,params:c}]}),!0):!1}};var Dd=class{constructor(){U(this,`_model`,new Map),U(this,`_pointChange`,new nt),U(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]}},Od=class{constructor(e,t,n){U(this,`type`,B.SelectRange),U(this,`subType`,z.Delete),U(this,`status`,M.INIT),U(this,`value`,!0),U(this,`id`,void 0),U(this,`unitId`,void 0),U(this,`subUnitId`,void 0),U(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${B.SelectRange}.${z.Delete}.${n}`}},kd=class{constructor(e,t,n){U(this,`type`,B.SelectRange),U(this,`subType`,z.ManageCollaborator),U(this,`status`,M.INIT),U(this,`value`,!0),U(this,`id`,void 0),U(this,`unitId`,void 0),U(this,`subUnitId`,void 0),U(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${B.SelectRange}.${z.ManageCollaborator}.${n}`}};const Ad=()=>[fa,da,kd,Od],jd=[z.Edit,z.View,z.ManageCollaborator,z.Delete],Md=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>Ad().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{}),Nd=()=>[Sa,Aa,pa,Pa,ma,Ca,Oa,_a,ba,Ma,wa,xa,Na,ka,ha,Fa,ja,ga,Da,Ea,ya,va],Pd=[z.Edit,z.Print,z.Comment,z.View,z.Copy,z.Export,z.ManageCollaborator,z.CreateSheet,z.DeleteSheet,z.RenameSheet,z.HideSheet,z.Duplicate,z.Share,z.MoveSheet,z.CopySheet,z.RecoverHistory,z.ViewHistory,z.CreatePermissionObject,z.InsertRow,z.InsertColumn,z.DeleteRow,z.DeleteColumn],Fd=()=>[Ba,to,Ka,Ra],Id=()=>[Ia,La,za,Va,Ha,Ua,Ga,Wa,qa,Xa,Za,Qa,$a,eo],Ld=[z.Copy,z.DeleteColumn,z.DeleteRow,z.EditExtraObject,z.Filter,z.InsertColumn,z.InsertRow,z.InsertHyperlink,z.PivotTable,z.SetCellStyle,z.SetCellValue,z.SetColumnStyle,z.SetRowStyle,z.Sort];let Rd=class extends me{constructor(e,t,n,r,i,a,o,s){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=o,this._logService=s,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){let e=e=>{let t=e.getUnitId(),n=e=>{let n=e.getSheetId();[...Fd(),...Id()].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=>{[...Ad()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...Fd(),...Id()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})})};this._univerInstanceService.getAllUnitsForType(L.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(L.UNIVER_SHEET).pipe(jt(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(L.UNIVER_SHEET).pipe(jt(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();Fd().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`:Fd().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:Fd().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:[ht.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{Fd().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();[...Fd(),...Id()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),Nd().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:[ht.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{Id().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};Rd=G([W(0,A(D)),W(1,A(k)),W(2,A(re)),W(3,A(fc)),W(4,A(Dd)),W(5,A(te)),W(6,A(Ni)),W(7,A(ee))],Rd);const zd={id:`sheet.mutation.set-worksheet-permission-points`,type:u.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(Dd).addRule(n),!0}},Bd={type:u.COMMAND,id:`sheet.command.set-worksheet-permission-points`,async handler(e,t){if(!t)return!1;let n=e.get(C),{rule:r}=t;return n.executeCommand(zd.id,{rule:r,unitId:r.unitId,subUnitId:r.subUnitId}),!0}},Vd={type:u.COMMAND,id:`sheet.command.set-worksheet-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(O),{rule:i,permissionId:a,oldRule:o}=t,{unitId:s,subUnitId:c}=i,l={...i,permissionId:a};if(await n.executeCommand(Zu.id,{unitId:s,subUnitId:c,newRule:l})){let e=[{id:Zu.id,params:{unitId:s,subUnitId:c,newRule:l}}],t=[{id:Zu.id,params:{unitId:s,subUnitId:c,rule:o}}];r.pushUndoRedo({unitID:s,redoMutations:e,undoMutations:t})}return!0}},Hd=(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().rightToLeft;return{...I.deepClone(t),rightToLeft:n}},Ud={id:`sheet.mutation.set-worksheet-right-to-left`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(k).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=r.getConfig();return i.rightToLeft=t.rightToLeft,!0}},Wd={type:u.COMMAND,id:`sheet.command.set-worksheet-right-to-left`,handler:async(e,t)=>{let n=e.get(C),i=e.get(O),a=V(e.get(k),t);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=r.FALSE;if(t){var l;c=(l=t.rightToLeft)==null?r.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=Hd(e,u);return n.syncExecuteCommand(Ud.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Ud.id,params:d}],redoMutations:[{id:Ud.id,params:u}]}),!0):!1}},Gd={type:u.COMMAND,id:`sheet.command.set-worksheet-row-count`,handler:(e,t)=>{let{unitId:n,subUnitId:r,rowCount:i}=t,a=e.get(C),o=e.get(O);if(!V(e.get(k),t))return!1;let s={unitId:n,subUnitId:r,rowCount:i},c=Mr(e,s);return a.syncExecuteCommand(Nr.id,s)?(o.pushUndoRedo({unitID:n,undoMutations:[{id:Nr.id,params:c}],redoMutations:[{id:Nr.id,params:s}]}),!0):!1}},Kd={type:u.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),i=e.get(K);if(!(n!=null&&n.length))return!1;let a=V(e.get(k));if(!a)return!1;let{worksheet:o,subUnitId:s,unitId:c}=a,{anchorRow:l,deltaY:u}=t,d=o.getRowHeight(l)+u,f=n.length===1&&n[0].range.rangeType===N.ALL,p=n.filter(e=>e.range.rangeType===N.ROW),m=f?N.ALL:p.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?N.ROW:N.NORMAL,h;if(m===N.ALL){let e=o.getColumnCount();h={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 h=m===N.ROW?{subUnitId:s,unitId:c,ranges:p.map(e=>F.clone(e.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let g=Pr(h,o),_={unitId:c,subUnitId:s,ranges:h.ranges,autoHeightInfo:r.FALSE},v=Fr(_,o),y=e.get(C),b=e.get(O),x=i.onCommandExecute({id:Kd.id,params:h}),S=R([{id:Lr.id,params:h},{id:Rr.id,params:_}],y),w=R([...x.redos],y);if(S.result&&w.result){var T,E;let e=i.afterCommandExecute({id:Kd.id,params:h});return R(e.redos,y),b.pushUndoRedo({unitID:c,undoMutations:[...(T=x.preUndos)==null?[]:T,{id:Lr.id,params:g},{id:Rr.id,params:v},...x.undos,...e.undos],redoMutations:[...(E=x.preRedos)==null?[]:E,{id:Lr.id,params:h},{id:Rr.id,params:_},...x.redos,...e.redos]}),!0}return!1}},qd={type:u.COMMAND,id:`sheet.command.set-row-height`,handler:(e,t)=>{var n,i;let a=e.get(Y),o=e.get(C),s=e.get(O),c=e.get(k),l=e.get(K),u=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(u!=null&&u.length))return!1;let d=V(c,t);if(!d)return!1;let{unitId:f,subUnitId:p,worksheet:m}=d,h={subUnitId:p,unitId:f,ranges:u,rowHeight:t.value},g=Pr(h,m),_={unitId:f,subUnitId:p,ranges:h.ranges,autoHeightInfo:r.FALSE},v=Fr(_,m),y=R([{id:Lr.id,params:h},{id:Rr.id,params:_}],o),b=l.onCommandExecute({id:qd.id,params:h}),x=R([...b.redos],o);if(y.result&&x.result){var S,w;let e=l.afterCommandExecute({id:qd.id,params:h});return R(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(S=b.preRedos)==null?[]:S,{id:Lr.id,params:g},{id:Rr.id,params:v},...b.undos,...e.undos],redoMutations:[...(w=b.preRedos)==null?[]:w,{id:Lr.id,params:h},{id:Rr.id,params:_},...b.redos,...e.redos]}),!0}return!1}},Jd={type:u.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(e,t)=>{var n,i;let a=e.get(C),o=e.get(O),s=e.get(Y),c=V(e.get(k),t);if(!c)return!1;let{unitId:l,subUnitId:u,worksheet:d}=c,f=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(i=s.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(f!=null&&f.length))return!1;let p={unitId:l,subUnitId:u,ranges:f,autoHeightInfo:r.TRUE},m=Fr(p,d),h=a.syncExecuteCommand(Rr.id,p),g=e.get(Ko).getSkeleton(l,u),{suitableRanges:_,remainingRanges:v}=Jo(p.ranges,g),y=e.get(K),{undos:b,redos:x}=y.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),{undos:S,redos:w}=y.onCommandExecute({id:Jd.id,params:p}),T=R([...w,...x],a);return h&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Rr.id,params:m},...S,...b],redoMutations:[{id:Rr.id,params:p},...w,...x]}),!0):!1}},Yd={type:u.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{unitId:i,subUnitId:a,worksheet:o}=n;if(o.getConfig().hidden===r.FALSE)return!1;let s=e.get(C),c=e.get(O),l={unitId:i,subUnitId:a,hidden:r.FALSE},u=vd(e,l),d=s.syncExecuteCommand(yd.id,l),f={unitId:i,subUnitId:a},p=s.syncExecuteCommand(Vr.id,f);return d&&p?(c.pushUndoRedo({unitID:i,undoMutations:[{id:yd.id,params:u}],redoMutations:[{id:yd.id,params:l}]}),!0):!1}},Xd={type:u.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,t)=>{let n=V(e.get(k),t);if(!n)return!1;let{unitId:r,subUnitId:i,worksheet:a}=n,{range:o,delimiter:s,customDelimiter:c,treatMultipleDelimitersAsOne:l}=t,{lastRow:u,rs:d,maxLength:f}=bi(a,o,s,c,l),p=a.getColumnCount(),{startColumn:m}=P.transformRange(o,a);if(o.startColumn!==o.endColumn)return!1;let h=e.get(C),g=e.get(O),_=[],v=[],y=m+f+1-p;if(y>0){let t={unitId:r,subUnitId:i,range:{startRow:0,endRow:a.getRowCount()-1,startColumn:p-1,endColumn:p-1+y}};_.push({id:wn.id,params:t});let n=Cn(e,t);v.push({id:Nn.id,params:n})}let b={startRow:o.startRow,endRow:u,startColumn:m,endColumn:m+f},x=new j;for(let e=b.startRow;e<=b.endRow;e++)for(let t=b.startColumn;t<=b.endColumn;t++){let n=d[e-b.startRow];t===0&&(n==null?void 0:n.length)===1?x.setValue(e,t,a.getCell(e,t)):x.setValue(e,t,{v:(n==null?void 0:n[t-b.startColumn])||null,p:null,f:null,si:null,custom:null})}let S={unitId:r,subUnitId:i,cellValue:x.clone()},w=gr(e,S);return _.push({id:J.id,params:S}),v.unshift({id:J.id,params:w}),R(_,h).result?(g.pushUndoRedo({unitID:r,undoMutations:v,redoMutations:_}),!0):!1}},Zd=we(`INumfmtService`),Qd=(e,t)=>{let n=e.get(Zd),{values:r,unitId:i,subUnitId:a}=t,o=[],s=[];Object.keys(r).forEach(e=>{r[e].ranges.forEach(e=>{P.foreach(e,(e,t)=>{let r=n.getValue(i,a,e,t);r?o.push({pattern:r.pattern,row:e,col:t}):s.push({startColumn:t,endColumn:t,startRow:e,endRow:e})})})});let c=[];if(o.length){let e=nf(i,a,o);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=ci(n.ranges)}),c.push({id:$d.id,params:nf(i,a,o)})}return s.length&&c.push({id:ef.id,params:{unitId:i,subUnitId:a,ranges:s}}),c},$d={id:`sheet.mutation.set.numfmt`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{values:n,refMap:r}=t,i=e.get(Zd),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}},ef={id:`sheet.mutation.remove.numfmt`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t;return e.get(Zd).deleteValues(n,r,i),!0}},tf=(e,t)=>{let n=e.get(Zd),{ranges:r,unitId:i,subUnitId:a}=t,o=[];if(r.forEach(e=>{P.foreach(e,(e,t)=>{let r=n.getValue(i,a,e,t);r&&o.push({pattern:r.pattern,row:e,col:t})})}),!o.length)return[];let s=nf(i,a,o);return Object.keys(s.values).forEach(e=>{let t=s.values[e];t.ranges=ci(t.ranges)}),[{id:$d.id,params:s}]},nf=(e,t,n)=>{let r=xi(n,`pattern`),i={},a={},o=Si();return Object.keys(r).forEach(e=>{let t=r[e],n=o();i[n]={pattern:e},t.forEach(e=>{a[n]||(a[n]={ranges:[]}),a[n].ranges.push(be(e.row,e.col))})}),{unitId:e,subUnitId:t,refMap:i,values:a}},rf={id:`sheet.command.text-to-number`,type:u.COMMAND,handler:(e,t)=>{var n;let r=V(e.get(k),t);if(!r)return!1;let i=(t==null?void 0:t.ranges)||((n=e.get(Y).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(i!=null&&i.length))return!1;let a=e.get(C),o=e.get(O),{worksheet:s,unitId:c,subUnitId:u}=r,d=new j,f=[];for(let e=0;e<i.length;e++)for(let t=i[e].startRow;t<=i[e].endRow;t++)for(let n=i[e].startColumn;n<=i[e].endColumn;n++){var p,m;if(d.getValue(t,n))continue;let e=s.getCellRaw(t,n),r=typeof(e==null?void 0:e.s)==`string`?(p=s.getStyleDataByHash(e.s))==null||(p=p.n)==null?void 0:p.pattern:e==null||(m=e.s)==null||(m=m.n)==null?void 0:m.pattern;e&&e.v&&(e.t!==l.NUMBER||Ie(r))&&Pe(e.v)&&(d.setValue(t,n,{v:Number(e.v),t:l.NUMBER}),Ie(r)&&f.push({startRow:t,endRow:t,startColumn:n,endColumn:n}))}let h={subUnitId:u,unitId:c,cellValue:d.getMatrix()},g=[{id:J.id,params:h}],_=[{id:J.id,params:gr(e,h)}];if(f.length){let t={unitId:c,subUnitId:u,ranges:f};g.push({id:ef.id,params:t}),_.push(...tf(e,t))}return R(g,a).result?(o.pushUndoRedo({unitID:c,undoMutations:_,redoMutations:g}),!0):!1}},af={id:`sheet.command.toggle-cell-checkbox`,type:u.COMMAND,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,row:i,col:a,paragraphIndex:s}=t,c=e.get(k).getUnit(n,L.UNIVER_SHEET),u=c==null?void 0:c.getSheetBySheetId(r),d=e.get(O),f=e.get(C);if(!u)return!1;let p=u.getCell(i,a);if(!(p!=null&&p.p))return!1;let m=I.deepClone(p.p),h=new _(m),g=o.paragraph.bullet.toggleChecklist({document:h,paragraphIndex:s});if(!g)return!1;ve.apply(h.getBody(),g.serialize());let v={unitId:n,subUnitId:r,cellValue:{[i]:{[a]:{p:m,t:l.STRING}}}},y={id:J.id,params:v},b=gr(e,v),x={id:J.id,params:b},S=[y],w=[x];return d.pushUndoRedo({redoMutations:S,undoMutations:w,unitID:n}),f.syncExecuteCommand(y.id,y.params)}},of={type:u.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,t)=>{let n=e.get(C),i=e.get(O),a=V(e.get(k),t);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().showGridlines;if(s===(t==null?void 0:t.showGridlines))return!1;let{unitId:c,subUnitId:l}=a,u={showGridlines:s===r.TRUE?r.FALSE:r.TRUE,unitId:c,subUnitId:l},d={showGridlines:s,unitId:c,subUnitId:l};return n.syncExecuteCommand(Br.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Br.id,params:d}],redoMutations:[{id:Br.id,params:u}]}),!0):!1}},sf={id:`sheet.command.unregister-worksheet-range-theme-style`,type:u.COMMAND,handler:(e,t)=>{var n;if(!t||!V(e.get(k),t))return!1;let r=e.get(C),i=e.get(O),a=e.get(gn),{unitId:o,themeName:s}=t,c={unitId:o,themeName:s},l={unitId:o,themeName:s,rangeThemeStyleJson:(n=a.getRangeThemeStyle(o,s))==null?void 0:n.toJson()};return r.syncExecuteCommand(_u.id,t)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:_u.id,params:l}],redoMutations:[{id:vu.id,params:c}]}),!0):!1}},cf={id:`sheet.mutation.add-range-theme`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleJSON:n,unitId:r}=t,i=e.get(gn),a=new en(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},lf={id:`sheet.mutation.empty`,type:u.MUTATION,handler:()=>!0},uf={id:`sheet.operation.mark-dirty-row-auto-height`,type:u.OPERATION,handler:()=>!0},df={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:u.OPERATION,handler:()=>!0},ff={id:`sheet.mutation.remove-range-theme`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(gn).unregisterRangeThemeStyle(r,n),!0}},pf={id:`sheet.mutation.set-range-theme`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,styleName:r,style:i}=t,a=e.get(gn).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}},mf={id:`sheet.operation.scroll-to-cell`,type:u.OPERATION,handler:()=>!0},{getLenS:hf,getDataIndex:gf,fillCopy:_f,fillCopyStyles:vf,generateNullCellValueRowCol:yf}=gl,{otherRule:bf}=Pl;let xf=class extends h{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,U(this,`_beforeApplyData`,[]),U(this,`_copyData`,[]),this._init()}_init(){this._initDefaultHook()}quit(){this._beforeApplyData=[],this._copyData=[]}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook({id:`default`,type:vl.DEFAULT,priority:0,onBeforeFillData:(e,t)=>this._presetAndCacheData(e,t),onFillData:(e,t,n)=>this._fillData(e,t,n)}))}_presetAndCacheData(e,t){var n;let{unitId:r,subUnitId:i,target:a}=e,o=(n=this._univerInstanceService.getUnit(r))==null?void 0:n.getSheetBySheetId(i);if(!o)throw Error(`Worksheet not found for unitId: ${r}, subUnitId: ${i}`);let s=o.getCellMatrix(),c=[];return a.rows.forEach(e=>{let t=[];a.cols.forEach(n=>{t.push(I.deepClone(s.getValue(e,n)))}),c.push(t)}),this._beforeApplyData=c,this._copyData=this._getCopyData(e,t),this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType($.SERIES,!0),$.COPY):(this._autoFillService.setDisableApplyType($.SERIES,!1),this._getPreferredApplyType(this._copyData))}_getApplyData(e,t,n,r,i,a=!0,o){let s=[],c=Math.floor(n/t),l=n%t,u=this._autoFillService.getRules();if(!a&&i===$.ONLY_FORMAT)return console.error(`ERROR: only format can not be applied when hasStyle is false`),[];let d={};u.forEach(e=>{d[e.type]=[]}),u.forEach(a=>{let{type:s,applyFunctions:u={}}=a,f=e[s];f&&f.forEach(a=>{let f=hf(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=gf(t,n,a.index);d[s].push({data:m,index:h})})});for(let e=0;e<n;e++)u.forEach(t=>{let{type:n}=t,r=d[n];for(let t=0;t<r.length;t++)e in r[t].index&&s.push(r[t].data[r[t].index[e]])});return s}_applyFunctions(e,t,n,r,i,a,o){let{data:s}=e,c=n===m.UP||n===m.LEFT;if(r===$.COPY){let r=i==null?void 0:i[$.COPY];return r?r(e,t,n,a,o):(c&&s.reverse(),_f(s,t))}if(r===$.SERIES){let r=i==null?void 0:i[$.SERIES];return r?r(e,t,n,a):(c&&s.reverse(),i!=null&&i[$.COPY]?i[$.COPY](e,t,n,a,o):_f(s,t))}if(r===$.ONLY_FORMAT){let r=i==null?void 0:i[$.ONLY_FORMAT];return r?r(e,t,n,a):vf(s,t)}}_getCopyData(e,t){var n;let{unitId:r,subUnitId:i,source:a}=e,o=(n=this._univerInstanceService.getUnit(r))==null?void 0:n.getSheetBySheetId(i);if(!o)throw Error(`No worksheet found`);let s=o.getCellMatrix(),c=this._autoFillService.getRules(),l=[],u=t===m.DOWN||t===m.UP,d,f;return u?(d=a.cols,f=a.rows):(d=a.rows,f=a.cols),d.forEach(e=>{let t=this._getEmptyCopyDataPiece(),n={type:void 0,cellData:void 0};f.forEach(r=>{let i;i=u?s.getValue(r,e):s.getValue(e,r);let{type:a,isContinue:o}=c.find(e=>e.match(i,this._injector))||bf;if(o(n,i)){let e=t[a],n=e[e.length-1];n.data.push(i),n.index.push(r-f[0])}else{let e=t[a];e?e.push({data:[i],index:[r-f[0]]}):t[a]=[{data:[i],index:[r-f[0]]}]}n.type=a,n.cellData=i}),l.push(t)}),l}_getEmptyCopyDataPiece(){let e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,t,n,r,i){var a;let{unitId:o,subUnitId:s}=i,c=(a=this._univerInstanceService.getUnit(o))==null?void 0:a.getSheetBySheetId(s);if(!c)throw Error(`No active sheet found`);let l=[];for(let i=e.startRow;i<=e.endRow;i++)for(let a=e.startColumn;a<=e.endColumn;a++){let{isMergedMainCell:e,startRow:o,startColumn:s,endRow:u,endColumn:d}=c.getCellInfoInMergeData(i,a);if(e){if(n===m.DOWN){let e=o+r,n=u+r;for(;n<=t.endRow;)l.push({startRow:e,startColumn:s,endRow:n,endColumn:d}),e+=r,n+=r}else if(n===m.UP){let e=o-r,n=u-r;for(;e>=t.startRow;)l.push({startRow:e,startColumn:s,endRow:n,endColumn:d}),e-=r,n-=r}else if(n===m.RIGHT){let e=s+r,n=d+r;for(;n<=t.endColumn;)l.push({startRow:o,startColumn:e,endRow:u,endColumn:n}),e+=r,n+=r}else if(n===m.LEFT){let e=s-r,n=d-r;for(;e>=t.startColumn;)l.push({startRow:o,startColumn:e,endRow:u,endColumn:n}),e-=r,n-=r}}}return l}_fillData(e,t,n){var r;let i=[],a=[],o=!0;n===$.NO_FORMAT&&(o=!1,n=$.SERIES);let{source:s,target:c,unitId:l,subUnitId:u}=e;if(!s||!c||t==null)return{undos:i,redos:a};let d=Oi(s),f=Oi(c),{cols:p,rows:h}=c,{cols:g,rows:_}=s,v=this._copyData,y;y=t===m.DOWN||t===m.UP?_.length:g.length;let b=[];if(t===m.DOWN||t===m.UP){let r=h.length,i=[];p.forEach((a,s)=>{let c=v[s],l=this._getApplyData(c,y,r,t,n,o,e);i.push(l)});for(let e=0;e<i[0].length;e++){let t=[];for(let n=0;n<i.length;n++)t.push({s:null,...i[n][e]});b.push(t)}}else{let r=p.length;h.forEach((i,a)=>{let s=v[a],c=this._getApplyData(s,y,r,t,n,o,e),l=[];for(let e=0;e<c.length;e++)l.push({s:null,...c[e]});b.push(l)})}let x=[],S=(r=this._univerInstanceService.getUnit(l))==null?void 0:r.getStyles();if(o?(x=this._getMergeApplyData(d,f,t,y,e),b.forEach(e=>{e.forEach(e=>{e&&S&&S&&(e.s=S.getStyleByCell(e))})})):b.forEach((e,t)=>{e.forEach((e,n)=>{e&&S&&(e.s=S.getStyleByCell(this._beforeApplyData[t][n])||null)})}),n===$.ONLY_FORMAT&&b.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}})}),o){var C;let e=[],t=(C=this._univerInstanceService.getUniverSheetInstance(l))==null||(C=C.getSheetBySheetId(u))==null?void 0:C.getMergeData();if(t&&t.forEach(t=>{F.intersects(t,f)&&e.push(t)}),e.length){let t={unitId:l,subUnitId:u,ranges:e},n=this._injector.invoke(Pn,t);a.push({id:q.id,params:t}),i.unshift({id:H.id,params:n})}}let w={subUnitId:u,unitId:l,cellValue:yf([c])},T=this._injector.invoke(gr,w);a.push({id:J.id,params:w}),i.unshift({id:J.id,params:T});let E=new j;h.forEach((e,t)=>{p.forEach((n,r)=>{b[t][r]&&E.setValue(e,n,b[t][r])})});let ee=E.getMatrix(),D={subUnitId:u,unitId:l,cellValue:ee},te=this._injector.invoke(gr,D);if(this._autoFillService.getActiveHooks().forEach(r=>{var i;(i=r.onBeforeSubmit)==null||i.call(r,e,t,n,ee)}),i.unshift({id:J.id,params:te}),a.push({id:J.id,params:D}),x!=null&&x.length){let e={unitId:l,subUnitId:u,ranges:Ks(x)},t=this._injector.invoke(zt,e);i.unshift({id:q.id,params:t}),a.push({id:H.id,params:e})}return{undos:i,redos:a}}_shouldDisableSeries(e){return e.every(e=>Object.keys(e).every(t=>{var n;return((n=e[t])==null?void 0:n.length)===0||[_l.OTHER,_l.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&&_l.NUMBER===t}))?$.COPY:$.SERIES}};xf=G([W(0,k),W(1,Wl),W(2,A(re))],xf);const Sf=`maxCellsPerSheet`,Cf=`AllDefaultWorkbook`;let wf=class extends h{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){let e=e=>{let t=this._definedNamesService.getDefinedNameMap(e);return t?JSON.stringify(t):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:`SHEET_DEFINED_NAME_PLUGIN`,businesses:[L.UNIVER_SHEET],toJson:t=>e(t),parseJson:e=>t(e),onUnLoad:e=>{this._definedNamesService.removeUnitDefinedName(e)},onLoad:(e,t)=>{this._definedNamesService.registerDefinedNames(e,t)}}))}};wf=G([W(0,gt),W(1,te)],wf);const Tf=[Gu.id],Ef=[Sn.id,wn.id,jn.id,Nn.id,Dn.id,kn.id];let Df=class extends h{constructor(e,t,n){var r,i;super(),this._univerInstanceService=e,this._commandService=t,this._configService=n,U(this,`_d`,new g),U(this,`_enabled`,!0);let a=(r=(i=this._configService.getConfig(`sheets.config`))==null?void 0:i.freezeSync)==null?!0:r;this.setEnabled(a)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{Tf.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(Ef.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===Sn.id?this._handleInsertRowMutation(r,t):n===wn.id?this._handleInsertColMutation(r,t):n===jn.id?this._handleRemoveRowMutation(r,t):n===Nn.id?this._handleRemoveColMutation(r,t):n===Dn.id?this._handleMoveRowsMutation(r,t):n===kn.id&&this._handleMoveColsMutation(r,t)}}))}_handleInsertRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=n.endRow-n.startRow+1,o={...a,startRow:Math.max(1,a.startRow+e),ySplit:Math.max(1,a.ySplit+e)};this._sequenceExecute(r,i,o,t)}}_handleInsertColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=n.endColumn-n.startColumn+1,o={...a,startColumn:Math.max(1,a.startColumn+e),xSplit:Math.max(1,a.xSplit+e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=Math.min(a.startRow,n.endRow+1)-n.startRow,o={...a,startRow:Math.max(1,a.startRow-e),ySplit:Math.max(1,a.ySplit-e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=Math.min(a.startColumn,n.endColumn+1)-n.startColumn,o={...a,startColumn:Math.max(1,a.startColumn-e),xSplit:Math.max(1,a.xSplit-e)};this._sequenceExecute(r,i,o,t)}}_handleMoveRowsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startRow<=0||n.startRow>=o.startRow&&r.startRow>=o.startRow||n.endRow<o.startRow&&r.endRow<o.startRow)return;let s=n.endRow-n.startRow+1,c=Math.max(Math.min(o.startRow,n.endRow+1)-n.startRow,0),l={...o};r.startRow>=o.startRow?(l.startRow=Math.max(1,o.startRow-c),l.ySplit=Math.max(1,o.ySplit-c)):(l.startRow=o.startRow+s-c,l.ySplit=o.ySplit+s-c),this._sequenceExecute(i,a,l,t)}_handleMoveColsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startColumn<=0||n.startColumn>=o.startColumn&&r.startColumn>=o.startColumn||n.endColumn<o.startColumn&&r.endColumn<o.startColumn)return;let s=n.endColumn-n.startColumn+1,c=Math.max(Math.min(o.startColumn,n.endColumn+1)-n.startColumn,0),l={...o};r.startColumn>=o.startColumn?(l.startColumn=Math.max(1,o.startColumn-c),l.xSplit=Math.max(1,o.xSplit-c)):(l.startColumn=o.startColumn+s-c,l.xSplit=o.xSplit+s-c),this._sequenceExecute(i,a,l,t)}_getFreeze(e,t){let n=this._univerInstanceService.getUnit(e,L.UNIVER_SHEET);if(!n)return null;let r=n.getSheetBySheetId(t);return r?r.getFreeze():null}_sequenceExecute(e,t,n,r){R([{id:Gu.id,params:{...n,unitId:e,subUnitId:t,resetScroll:!1}}],this._commandService,r)}};Df=G([W(0,A(k)),W(1,C),W(2,w)],Df);let Of=class extends h{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._commandService=e,this._univerInstanceService=t,this._permissionService=n,this._selectionManagerService=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionRuleModel=a,this._localeService=o,this._lexerTreeBuilder=s,this._contextService=c,this._definedNamesService=l,U(this,`disposableCollection`,new g),U(this,`_triggerPermissionUIEvent$`,new nt),U(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}blockExecuteWithoutPermission(e){throw this._triggerPermissionUIEvent$.next(e),new d(`have no permission`)}_getPermissionCheck(e,t){let n=!0,r=``;switch(e){case no.id:Ne(t.value)&&t.value.f?(n=this._permissionCheckWithFormula(t),r=this._localeService.t(`permission.dialog.formulaErr`)):n=this._permissionCheckBySetRangeValue({workbookTypes:[Sa],rangeTypes:[da],worksheetTypes:[Za,Ba]},t);break;case Zl.id:n=this.permissionCheckWithRanges({workbookTypes:[Sa],rangeTypes:[da],worksheetTypes:[Za,Ba]},t==null?void 0:t.ranges,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),r=this._localeService.t(`permission.dialog.editErr`);break;case pd.id:case md.id:n=this.permissionCheckWithoutRange({worksheetTypes:[Qa]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Kd.id:case qd.id:case Jd.id:n=this.permissionCheckWithoutRange({worksheetTypes:[$a]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Wo.id:case Ho.id:n=this._permissionCheckByMoveCommand(t),r=this._localeService.t(`permission.dialog.moveRowColErr`);break;case oa.id:n=this._permissionCheckByMoveRangeCommand(t),r=this._localeService.t(`permission.dialog.moveRangeErr`);break;case Ed.id:n=this._permissionCheckByWorksheetCommand([Sa,ka]),r=this._localeService.t(`permission.dialog.operatorSheetErr`),n===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case Cd.id:n=this._permissionCheckByWorksheetCommand([Sa,Ma]),r=this._localeService.t(`permission.dialog.operatorSheetErr`),n===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case Yd.id:{let{unitId:e,subUnitId:i}=t;n=this._permissionCheckByWorksheetCommand([Sa,wa],e,i),r=this._localeService.t(`permission.dialog.operatorSheetErr`),n===!1&&this._worksheetProtectionRuleModel.resetOrder()}break;case Lu.id:n=this.permissionCheckWithRanges({workbookTypes:[Sa],rangeTypes:[da],worksheetTypes:[Ba,Qa]},t.ranges,t.unitId,t.subUnitId),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case td.id:n=this.permissionCheckWithRanges({workbookTypes:[Sa],rangeTypes:[da],worksheetTypes:[Ba,$a]},t.ranges,t.unitId,t.subUnitId),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Ru.id:n=this.permissionCheckWithRanges({workbookTypes:[Sa],rangeTypes:[da],worksheetTypes:[Ba,Qa]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case nd.id:n=this.permissionCheckWithRanges({workbookTypes:[Sa],rangeTypes:[da],worksheetTypes:[Ba,$a]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case ho.id:n=this._permissionCheckWithInsertRangeMove(`right`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case po.id:n=this._permissionCheckWithInsertRangeMove(`bottom`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case co.id:n=this._permissionCheckWithInsertRangeMove(`left`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case uo.id:n=this._permissionCheckWithInsertRangeMove(`top`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case Gl.id:n=this._permissionCheckByAutoFillCommand(t),r=this._localeService.t(`permission.dialog.autoFillErr`);break;default:break}n||this.blockExecuteWithoutPermission(r)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e.id,e==null?void 0:e.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Sd.id){var t;let{unitId:n=(t=this._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET))==null?void 0:t.getUnitId(),subUnitId:r}=e.params;if(!n||!r)return;let i=this._worksheetProtectionRuleModel.getRule(n,r),a=this._rangeProtectionRuleModel.getSubunitRuleList(n,r);i&&this._worksheetProtectionRuleModel.ruleRefresh(i.permissionId),a.length&&this._rangeProtectionRuleModel.ruleRefresh(r)}}))}_permissionCheckWithInsertRangeMove(e){var t;let n=V(this._univerInstanceService);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,o=I.deepClone((t=this._selectionManagerService.getCurrentLastSelection())==null?void 0:t.range);return!(!o||(e===`top`||e===`bottom`?o.endRow=r.getRowCount()-1:(e===`left`||e===`right`)&&(o.endColumn=r.getColumnCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(i,a).map(e=>e.ranges).flat().some(e=>F.getIntersects(o,e))))}_permissionCheckByWorksheetCommand(e,t,n){let r=V(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 Oa(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=V(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:f,worksheetTypes:p,rangeTypes:m}=e;return!(f&&f.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||p&&p.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||m&&m.some(e=>{var t,n,r,i;let a=(t=o.getCell(u,d))==null||(t=t.selectionProtection)==null?void 0:t[0];if(!(a!=null&&a.ruleId))return!1;let l=(n=this._rangeProtectionRuleModel.getRule(s,c,a.ruleId))==null?void 0:n.permissionId;if(!l)return!1;let f=new e(s,c,l);return((r=(i=this._permissionService.getPermissionPoint(f.id))==null?void 0:i.value)==null?!1:r)===!1})===!0)}permissionCheckWithRanges(e,t,n,r){var i;let a=V(this._univerInstanceService,{unitId:n,subUnitId:r});if(!a)return!1;let o=t==null?(i=this._selectionManagerService.getCurrentSelections())==null?void 0:i.map(e=>e.range):t;if(!o)return!1;let{unitId:s,subUnitId:c}=a,{workbookTypes:l,worksheetTypes:u,rangeTypes:d}=e,f=[];return l&&f.push(...l.map(e=>new e(s).id)),u&&f.push(...u.map(e=>new e(s,c).id)),d&&this._rangeProtectionRuleModel.getSubunitRuleList(s,c).forEach(e=>{o.some(t=>e.ranges.some(e=>F.intersects(e,t)))&&f.push(...d.map(t=>new t(s,c,e.permissionId).id))}),f.length?this._permissionService.composePermission(f).every(e=>e.value):!0}_permissionCheckByMoveCommand(e){let t=V(this._univerInstanceService,e);if(!t)return!1;let{worksheet:n,unitId:r,subUnitId:i}=t,a=e.toRange;a.endRow===n.getRowCount()-1?a.endColumn=a.startColumn:a.endRow=a.startRow;let o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>F.intersects(e,a));return o.length>0?!1:(o.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=n.getCell(r,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[z.Edit])===!1)return!1}}),!0)}_permissionCheckByMoveRangeCommand(e){let t=V(this._univerInstanceService);if(!t)return!1;let{worksheet:n,unitId:r,subUnitId:i}=t,a=e.toRange,o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>F.intersects(e,a));return o.length>0?!1:(o.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=n.getCell(r,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[z.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(e,t){let n=[];n=t.range?[t.range]:[new j(t.value).getDataRange()];let{unitId:r,subUnitId:i}=t;return this.permissionCheckWithRanges(e,n,r,i)}_permissionCheckWithFormula(e){let t=e.value,n=e.range,r=t.f;if(r){var i;let t=r.substring(1),n=this._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET),s=(i=e.unitId)==null?n.getUnitId():i,c=this._definedNamesService.getValueByName(s,t);if(c){let e=c.formulaOrRefString;e.startsWith(Et.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let r=t[e],i=Ct(r);if(i.sheetName){let e=n.getSheetBySheetName(i.sheetName);if(!e)return!0;let{startRow:t,endRow:r,startColumn:o,endColumn:s}=i.range;for(let n=t;n<=r;n++)for(let t=o;t<=s;t++){var a;let r=(a=e.getCell(n,t))==null||(a=a.selectionProtection)==null?void 0:a[0];if((r==null?void 0:r[z.View])===!1)return!1}}}return!0}else{let e=this._lexerTreeBuilder.sequenceNodesBuilder(r);if(!e)return!0;for(let t=0;t<e.length;t++){let n=e[t];if(typeof n==`string`||n.nodeType!==Dt.REFERENCE)continue;let{token:r}=n,i=wt(r),a=i.unitId?this._univerInstanceService.getUnit(i.unitId):this._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET);if(!a)return!0;let s=i.sheetName?a.getSheetBySheetName(i.sheetName):a.getActiveSheet(),c=a.getUnitId();if(i.sheetName){if(s=a.getSheetBySheetName(i.sheetName),!s)return!0;let e=s==null?void 0:s.getSheetId();if(!this._permissionService.getPermissionPoint(new to(c,e).id))return!1}if(!s)return!0;let{startRow:l,endRow:u,startColumn:d,endColumn:f}=i.range;for(let e=l;e<=u;e++)for(let t=d;t<=f;t++){var o;let n=(o=s.getCell(e,t))==null||(o=o.selectionProtection)==null?void 0:o[0];if((n==null?void 0:n[z.View])===!1)return!1}}return!0}}if(n){let t=V(this._univerInstanceService,e);if(!t)return!1;let{unitId:r,subUnitId:i}=t,a=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).filter(e=>e.ranges.some(e=>F.intersects(e,n))).map(e=>new da(r,i,e.permissionId).id);if(!this._permissionService.composePermission(a).every(e=>e.value))return!1}return!0}_permissionCheckByAutoFillCommand(e){if(!e)return!1;let{targetRange:t}=e,n=V(this._univerInstanceService,e);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n;return!this._rangeProtectionRuleModel.getSubunitRuleList(i,a).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>F.intersects(e,t)).some(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=r.getCell(n,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[z.Edit])===!1)return!0}return!1})}};Of=G([W(0,C),W(1,k),W(2,D),W(3,A(Y)),W(4,A(Ni)),W(5,A(fc)),W(6,A(se)),W(7,A(_t)),W(8,E),W(9,gt)],Of);let kf=class extends h{constructor(e,t,n,r,i){super(),this._permissionService=e,this._univerInstanceService=t,this._rangeProtectionRuleModel=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointModel=i,U(this,`_unitPermissionInitStateChange`,new tt(!1)),U(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();Nd().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(L.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(L.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(L.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Ad()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...Fd(),...Id()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),Nd().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)}};kf=G([W(0,A(D)),W(1,A(k)),W(2,A(Ni)),W(3,A(fc)),W(4,A(Dd))],kf);let Af=class extends h{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._univerInstanceService=e,this._permissionService=t,this._authzIoService=n,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._userManagerService=a,this._worksheetProtectionPointRuleModel=o,this._workbookPermissionService=s,this._undoRedoService=c,this._commandService=l}initPermission(){this._initRangePermissionFromSnapshot(),this._initRangePermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initWorksheetPermissionChange(),this._initWorksheetPermissionPointsChange(),this._initWorkbookPermissionFromSnapshot(),this._initUserChange(),this._refreshPermissionByCollaCreate()}refreshRangeProtectPermission(){this._initRangePermissionFromSnapshot()}async _initRangePermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(e=>{i.set(e.permissionId,e),t.push({objectID:e.permissionId,unitID:n,objectType:B.SelectRange,actions:jd})})}),!t.length){this._rangeProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){if(!this._rangeProtectionRuleModel.getRule(n,t.subUnitId,t.id))return;Ad().forEach(r=>{let i=new r(n,t.subUnitId,e.objectID),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._rangeProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(L.UNIVER_SHEET).map(t=>e(t))),this._rangeProtectionRuleModel.changeRuleInitState(!0)}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?this._rangeProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId),[...Id()].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:B.SelectRange,actions:jd}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(Ad().forEach(n=>{if(e.type===`set`){let{rule:t,oldRule:n}=e;if(t.permissionId===(n==null?void 0:n.permissionId))return}let r=e.rule,i=new n(r.unitId,r.subUnitId,r.permissionId),a=i.subType,o=t.find(e=>e.action===a);o&&this._permissionService.updatePermissionPoint(i.id,o.allowed)}),this._rangeProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}async initWorkbookPermissionChange(e){var t;let n=e||((t=this._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET))==null?void 0:t.getUnitId());if(n)return this._authzIoService.allowed({objectID:n,objectType:B.Workbook,unitID:n,actions:Pd}).then(e=>{Nd().forEach(t=>{let r=new t(n),i=r.subType,a=e.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}async _initWorkbookPermissionFromSnapshot(){await Promise.all(this._univerInstanceService.getAllUnitsForType(L.UNIVER_SHEET).map(e=>this.initWorkbookPermissionChange(e.getUnitId()))),this._workbookPermissionService.changeUnitInitState(!0)}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?([...Fd(),...Id()].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:B.Worksheet,actions:jd}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(Fd().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:B.Worksheet,actions:Ld}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||Id().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}))}async _initWorksheetPermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId(),a=this._worksheetProtectionRuleModel.getRule(n,r);a&&(i.set(a.permissionId,a),t.push({objectID:a.permissionId,unitID:n,objectType:B.Worksheet,actions:jd}));let o=this._worksheetProtectionPointRuleModel.getRule(n,r);o&&(i.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:n,objectType:B.Worksheet,actions:Ld}))}),!t.length){this._worksheetProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){let r=this._worksheetProtectionRuleModel.getRule(n,t.subUnitId)||this._worksheetProtectionPointRuleModel.getRule(n,t.subUnitId);if(!r||r.permissionId!==e.objectID)return;[...Fd(),...Id()].forEach(r=>{let i=new r(n,t.subUnitId),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(L.UNIVER_SHEET).map(t=>e(t))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe(ut(1)).subscribe(()=>{let e=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(L.UNIVER_SHEET).forEach(t=>{let n=t.getUnitId();Nd().forEach(t=>{let r=new t(n);e.has(r.id)&&(r=e.get(r.id)),this._permissionService.addPermissionPoint(r)}),t.getSheets().forEach(t=>{let r=t.getSheetId();[...Fd(),...Id()].forEach(t=>{let i=new t(n,r);e.has(i.id)&&(i=e.get(i.id)),this._permissionService.addPermissionPoint(i)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(t=>{Ad().forEach(i=>{let a=new i(n,r,t.permissionId);e.has(a.id)&&(a=e.get(a.id)),this._permissionService.addPermissionPoint(a)})})}),this._initWorkbookPermissionFromSnapshot(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}refreshPermission(e,t){let n=this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t),r=!1;if(n){let[i,a]=n;this._authzIoService.allowed({objectID:t,unitID:e,objectType:B.Worksheet,actions:jd}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let i=``;Fd().forEach(t=>{let o=new t(e,a),s=o.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(o.id))==null?void 0:l.value)!==c.allowed&&(r=!0),this._permissionService.updatePermissionPoint(o.id,c.allowed),i+=`${c.action}_${c.allowed}`}}),this._worksheetProtectionRuleModel.ruleRefresh(`${t}_${i}`),r&&this._undoRedoService.clearUndoRedo(e)})}let i=this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t);if(i){let[n,a]=i;this._authzIoService.allowed({objectID:t,unitID:e,objectType:B.Worksheet,actions:Ld}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(Id().forEach(t=>{let i=new t(e,a),o=i.subType,s=n.find(e=>e.action===o);if(s){var c;((c=this._permissionService.getPermissionPoint(i.id))==null?void 0:c.value)!==s.allowed&&(r=!0),this._permissionService.updatePermissionPoint(i.id,s.allowed)}}),r&&this._undoRedoService.clearUndoRedo(e))})}let a=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(a){let[n,i]=a;this._authzIoService.allowed({objectID:t,unitID:e,objectType:B.SelectRange,actions:jd}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;Ad().forEach(o=>{let s=new o(e,i,t),c=s.subType,l=n.find(e=>e.action===c);if(l){var u;((u=this._permissionService.getPermissionPoint(s.id))==null?void 0:u.value)!==l.allowed&&(r=!0),this._permissionService.updatePermissionPoint(s.id,l.allowed),a+=`${l.action}_${l.allowed}`}}),this._rangeProtectionRuleModel.ruleRefresh(`${t}_${a}`),r&&this._undoRedoService.clearUndoRedo(e)})}}_refreshPermissionByCollaCreate(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(t!=null&&t.fromCollab&&(e.id===Li.id||e.id===pc.id||e.id===zd.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};Af=G([W(0,k),W(1,D),W(2,S),W(3,A(Ni)),W(4,A(fc)),W(5,A(ye)),W(6,A(Dd)),W(7,A(kf)),W(8,A(O)),W(9,A(C))],Af);let jf=class extends h{constructor(e,t,n){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=n,U(this,`_zebraCacheUpdateSubject`,new nt),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 Sn.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Cr.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Tr.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case jn.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Lr.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)}))}};jf=G([W(0,A(C)),W(1,A(gn)),W(2,A(k))],jf);let Mf=class{constructor(e,t){this._selectionProtectionRuleModel=e,this._permissionService=t,U(this,`_cache`,new oe(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(kt(e=>e.type===B.SelectRange),kt(e=>Ad().some(t=>e instanceof t)),At(e=>e)).subscribe(e=>{let t=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(let n of t)n.permissionId===e.permissionId&&n.ranges.forEach(t=>{P.foreach(t,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{if(e.rule.ranges.forEach(t=>{P.foreach(t,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})}),e.type===`set`){var t;(t=e.oldRule)==null||t.ranges.forEach(t=>{P.foreach(t,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),a=[];if(!i||!i.length)return a;let o=this._createKey(e,t,n,r),s=this._cache.get(o);if(s)return s;let c=[];for(let a of i)if(a.ranges.some(e=>e.startRow<=n&&e.endRow>=n&&e.startColumn<=r&&e.endColumn>=r)){let n=Ad().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()}};Mf=G([W(0,A(Ni)),W(1,A(D))],Mf);let Nf=class extends h{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,U(this,`_cellRuleCache`,new Map),U(this,`_permissionIdCache`,new Map),U(this,`_cellInfoCache`,new Map),U(this,`_rowInfoCache`,new Map),U(this,`_colInfoCache`,new Map),this._initUpdateCellRuleCache(),this._initUpdateCellInfoCache(),this._initUpdateRowColInfoCache(),this._initCache()}_initCache(){this._univerInstanceService.getAllUnitsForType(L.UNIVER_SHEET).forEach(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();this.reBuildCache(n,r)})})}_initUpdateCellInfoCache(){this._permissionService.permissionPointUpdate$.pipe(it(e=>e.type===B.SelectRange),ot(e=>e)).subscribe(e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureCellInfoMap(n,t);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++)o.delete(`${e}-${t}`)})}),this._ruleModel.ruleChange$.subscribe(e=>{let{unitId:t,subUnitId:n}=e,r=this._ensureCellInfoMap(t,n);if(e.rule.ranges.forEach(e=>{P.foreach(e,(e,t)=>{r.delete(`${e}-${t}`)})}),e.type===`set`){var i;(i=e.oldRule)==null||i.ranges.forEach(e=>{P.foreach(e,(e,t)=>{this._cellInfoCache.delete(`${e}-${t}`)})})}})}_initUpdateCellRuleCache(){this._ruleModel.ruleChange$.subscribe(e=>{let{type:t}=e;t===`add`?this._addCellRuleCache(e):t===`delete`?this._deleteCellRuleCache(e):(this._deleteCellRuleCache({...e,rule:e.oldRule}),this._addCellRuleCache(e))})}_ensureRuleMap(e,t){let n=this._cellRuleCache.get(e);n||(n=new Map,this._cellRuleCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureCellInfoMap(e,t){let n=this._cellInfoCache.get(e);n||(n=new Map,this._cellInfoCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureRowColInfoMap(e,t,n){let r=n===`row`?this._rowInfoCache.get(e):this._colInfoCache.get(e);r||(r=new Map,n===`row`?this._rowInfoCache.set(e,r):this._colInfoCache.set(e,r));let i=r.get(t);return i||(i=new Map,r.set(t,i)),i}_addCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++)i.set(`${e}-${t}`,r.id)}),this._permissionIdCache.set(r.permissionId,r.id)}_deleteCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t),a=this._ensureCellInfoMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++)i.delete(`${e}-${t}`),a.delete(`${e}-${t}`)}),this._permissionIdCache.delete(r.permissionId)}_getSelectionActions(e,t,n){var r,i,a,o,s,c,l,u,d,f,p,m;let h=(r=(i=this._permissionService.getPermissionPoint((a=new da(e,t,n.permissionId))==null?void 0:a.id))==null?void 0:i.value)==null?!1:r,g=(o=(s=this._permissionService.getPermissionPoint((c=new fa(e,t,n.permissionId))==null?void 0:c.id))==null?void 0:s.value)==null?!1:o,_=(l=(u=this._permissionService.getPermissionPoint((d=new kd(e,t,n.permissionId))==null?void 0:d.id))==null?void 0:u.value)==null?!1:l,v=(f=(p=this._permissionService.getPermissionPoint((m=new Od(e,t,n.permissionId))==null?void 0:m.id))==null?void 0:p.value)==null?!1:f;return{[z.Edit]:h,[z.View]:g,[z.ManageCollaborator]:_,[z.Delete]:v}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe(it(e=>e.type===B.SelectRange),ot(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)})})}};Nf=G([W(0,A(Ni)),W(1,A(D)),W(2,A(k))],Nf);var Pf=`@univerjs/sheets`,Ff=`0.19.0`;let If=class extends h{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,U(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Ro.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Ro.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===yd.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===iu.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===yd.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===X.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=Lf(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=Lf(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(Vr.id,{unitId:e,subUnitId:t})}};If=G([W(0,C),W(1,k)],If);function Lf(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 Rf=class extends h{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[J,wn,Sn,iu,Tn,Dn,kn,Nn,jn,Ro,q,ef,H,ud,Sd,$d,In,lf,Tr,Cr,uf,df,nu,Nr,kr].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||[oc,sc,cc,lc,_c,Wi,Zl,Gi,lu,co,uo,pd,Kd,Do,Eo,Oo,ko,To,wo,po,ho,bo,yo,So,xo,vo,_o,hu,Wo,oa,Ho,Mo,Io,Fo,No,xu,Zo,$s,Ac,Oc,kc,Fu,Pu,ju,Mu,Nu,zu,Hn,Wn,md,Iu,Bn,Ku,Gu,qu,Mc,$u,no,qd,rd,ed,xr,Ru,nd,Lu,td,yc,ld,cd,Dc,Pc,Nc,jc,dd,fd,Vr,bd,yd,Cd,Ed,Td,zr,Lr,Jd,Rr,Dr,Gd,gd,ia,X,mf,mu,bu,Uu,Yd,of,Br,Ju,Gn,rf,Bd,pc,Zu,mc,zd,Ri,Qu,du,hc,fu,Vd,Li,Fi,Yu,af,Ar,_d,Xd,yn,_n,vu,_u,sf,yu,gc,pu,cf,pf,ff,Gl,Jl,Yl,Xl,gu].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(Sf,3e6)}};Rf=G([W(0,C),W(1,w),W(2,ue(Mt))],Rf);let zf=class extends h{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==xt.id)return;let{unitData:t}=e.params,n=Object.keys(t),r=[];for(let e=0;e<n.length;e++){let i=n[e],a=t[i];if(a==null)continue;let o=Object.keys(a);for(let e=0;e<o.length;e++){let t=o[e],n=a[t];if(n==null)continue;let s={subUnitId:t,unitId:i,cellValue:this._getMergedCellData(i,t,n)};r.push({id:J.id,params:s})}}return R(r,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,t,n){let r=this._univerInstanceService.getUniverSheetInstance(e),i=r==null?void 0:r.getStyles(),a=r==null?void 0:r.getSheetBySheetId(t),o=a==null?void 0:a.getCellMatrix(),s=new j(n);return s.forValue((e,t,n)=>{let r=Tt(o==null?void 0:o.getValue(e,t),n,i);s.setValue(e,t,r)}),s.getMatrix()}};zf=G([W(0,A(k)),W(1,C)],zf);let Bf=class extends h{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(Bt.CELL_CONTENT,{priority:11,effect:ie.Value|ie.Style,handler:(e,t,n)=>{var r;if(!e)return n(e);let i=t.workbook.getStyles().getStyleByCell(e);return Ae(i==null||(r=i.n)==null?void 0:r.pattern)&&(e==null?void 0:e.t)===l.NUMBER&&e.v!==void 0&&e.v!==null&&Pe(e.v)?((!e||e===t.rawData)&&(e={...t.rawData}),e.v=Ot(Number(e.v)),n(e)):n(e)}}))}};Bf=G([W(0,A(K))],Bf);let Vf=class extends h{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(Bt.CELL_CONTENT,{priority:999,effect:ie.Value|ie.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i,row:a,col:o}=t,s=this._rangeProtectionCache.getCellInfo(r,i,a,o);if(s){let r=s[z.View]===!1,i=!e||e===t.rawData?{...t.rawData}:e;return i.selectionProtection=[s],r?(delete i.s,delete i.v,delete i.p,i):n(i)}return n(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(Bt.CELL_CONTENT,{priority:999,effect:ie.Value|ie.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._worksheetProtectionRuleModel.getRule(r,i);if(a!=null&&a.permissionId){var o,s,c,l,u;let a=[{[z.View]:(o=(s=this._permissionService.getPermissionPoint(new to(r,i).id))==null?void 0:s.value)==null?!1:o,[z.Edit]:(c=(l=this._permissionService.getPermissionPoint(new Ba(r,i).id))==null?void 0:l.value)==null?!1:c}],d=!((u=a[0])!=null&&u[z.View]),f=!e||e===t.rawData?{...e}:e;return f.hasWorksheetRule=!0,f.selectionProtection=a,d?(delete f.s,delete f.v,delete f.p,f):n(f)}return n(e)}}))}};Vf=G([W(0,D),W(1,A(fc)),W(2,A(K)),W(3,A(Nf))],Vf);const Hf=we(`univer.exclusive-range-service`);var Uf=class extends h{constructor(...e){super(...e),U(this,`_exclusiveRanges`,new Map),U(this,`_exclusiveRangesChange$`,new nt),U(this,`exclusiveRangesChange$`,this._exclusiveRangesChange$.asObservable())}_ensureUnitMap(e){return this._exclusiveRanges.has(e)||this._exclusiveRanges.set(e,new Map),this._exclusiveRanges.get(e)}_ensureSubunitMap(e,t){let n=this._ensureUnitMap(e);return n.has(t)||n.set(t,new Map),n.get(t)}_ensureFeature(e,t,n){let r=this._ensureSubunitMap(e,t);return r.has(n)||r.set(n,[]),r.get(n)}addExclusiveRange(e,t,n,r){let i=this._ensureFeature(e,t,n);i.push(...r),this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:i.map(e=>e.range)})}getExclusiveRanges(e,t,n){var r;return(r=this._exclusiveRanges.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}clearExclusiveRanges(e,t,n){let r=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(r==null?void 0:r.map(e=>e.range))||[]}),this._ensureFeature(e,t,n),this._exclusiveRanges.get(e).get(t).set(n,[])}clearExclusiveRangesByGroupId(e,t,n,r){let i=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(i==null?void 0:i.map(e=>e.range))||[]});let a=this.getExclusiveRanges(e,t,n);if(a){let i=a.filter(e=>e.groupId!==r);this._exclusiveRanges.get(e).get(t).set(n,i)}}getInterestGroupId(e){let t=[];return e.forEach(e=>{var n;let r=e.range,{unitId:i,sheetId:a}=r;if(!i||!a)return;let o=(n=this._exclusiveRanges.get(i))==null?void 0:n.get(a);if(o)for(let e of o.keys()){let n=o.get(e);if(n){for(let i of n)if(F.intersects(r,i.range)){t.push(e);break}}}}),t}};let Wf=class extends h{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;let o=i.getStyles(),s=a.getCellRaw(n,r);if(s!=null&&s.s){let e=o.get(s.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,t,n){let r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;let i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;let a=r.getStyles();n.forEach(e=>{P.foreach(e,(e,t)=>{let n=i.getCellRaw(e,t);if(!n)return;let r=n==null?void 0:n.s,o={...r&&a.get(r)||{}};delete o.n,n.s=a.setValue(o)})})}setValues(e,t,n){let r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;let i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;let a=r.getStyles(),o=i.getCellMatrix();n.forEach(e=>{e.ranges.forEach(t=>{P.foreach(t,(t,n)=>{let r=i.getCellRaw(t,n);if(r){let t={...a.getStyleByCell(r)||{},n:{pattern:e.pattern}};r.s=a.setValue(t)}else{let r={n:{pattern:e.pattern}},i=a.setValue(r);i&&o.setValue(t,n,{s:i})}})})})}};Wf=G([W(0,te),W(1,k),W(2,ee)],Wf);const Gf=[wn.id,Sn.id,Nn.id,jn.id],Kf=[Dn.id,kn.id];let qf=class extends h{constructor(e,t,n,r,i,a,o,s){super(),this._selectionProtectionRuleModel=e,this._univerInstanceService=t,this._commandService=n,this._refRangeService=r,this._selectionProtectionRenderModel=i,this._rangeProtectionCache=a,this._sheetInterceptorService=o,this._rangeProtectionRuleModel=s,U(this,`disposableCollection`,new g),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET);if(!n||!(n!=null&&n.getSheetBySheetId(t)))return;this.disposableCollection.dispose();let r=n=>this.refRangeHandle(n,e,t);this._selectionProtectionRuleModel.getSubunitRuleList(e,t).reduce((e,t)=>[...e,...t.ranges],[]).forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,r,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===fd.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===Yu.id||t.id===Li.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let t=this._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET);if(t){let n=t.getActiveSheet();if(!n)return;e(t.getUnitId(),n.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case Ho.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Wo.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case _o.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case wo.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Io.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case No.id:return this._getRefRangeMutationsByDeleteRows(e.params,t,n);default:break}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(e,t,n){let r=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(t=>t.ranges.some(t=>F.intersects(t,e.range))),i=e.range;if(r.length){let e=[],a=[];return r.forEach(r=>{let o=I.deepClone(r);o.ranges=o.ranges.reduce((e,t)=>{if(F.intersects(t,i)){let n=I.deepClone(t),{startColumn:r,endColumn:a}=i;if(r<=n.startColumn&&a>=n.endColumn)return e;r>=n.startColumn&&a<=n.endColumn?n.endColumn-=a-r+1:r<n.startColumn?(n.startColumn=r,n.endColumn-=a-r+1):a>n.endColumn&&(n.endColumn=r-1),this._checkIsRightRange(n)&&e.push(n)}return e},[]),o.ranges.length?(e.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:r.id}}),a.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:r,ruleId:r.id}})):(e.push({id:Fi.id,params:{unitId:t,subUnitId:n,ruleIds:[r.id]}}),a.push({id:Li.id,params:{unitId:t,subUnitId:n,name:``,rules:[r]}}))}),{redos:e,undos:a}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(e,t,n){let r=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(t=>t.ranges.some(t=>F.intersects(t,e.range))),i=e.range;if(r.length){let e=[],a=[];return r.forEach(r=>{let o=I.deepClone(r);o.ranges=o.ranges.reduce((e,t)=>{if(F.intersects(t,i)){let n=I.deepClone(t),{startRow:r,endRow:a}=i;if(r<=n.startRow&&a>=n.endRow)return e;r>=n.startRow&&a<=n.endRow?n.endRow-=a-r+1:r<n.startRow?(n.startRow=r,n.endRow-=a-r+1):a>n.endRow&&(n.endRow=r-1),this._checkIsRightRange(n)&&e.push(n)}return e},[]),e.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:r.id}}),a.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:r,ruleId:r.id}})}),{redos:e,undos:a}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(e,t,n){let r=e.range.startColumn,i=e.range.endColumn-e.range.startColumn+1,a=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>r>e.startColumn&&r<=e.endColumn));if(a.length){let e=[],o=[];return a.forEach(a=>{let s=I.deepClone(a),c=!1;s.ranges.forEach(e=>{r>e.startColumn&&r<=e.endColumn&&(e.endColumn+=i,c=!0)}),c&&(e.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:s,ruleId:a.id}}),o.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:a,ruleId:a.id}}))}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(e,t,n){let r=e.range.startRow,i=e.range.endRow-e.range.startRow+1,a=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>r>e.startRow&&r<=e.endRow));if(a.length){let e=[],o=[];return a.forEach(a=>{let s=I.deepClone(a),c=!1;s.ranges.forEach(e=>{r>e.startRow&&r<=e.endRow&&(e.endRow+=i,c=!0)}),c&&(e.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:s,ruleId:a.id}}),o.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:a,ruleId:a.id}}))}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(e,t,n){let r=e.toRange,i=r.startRow,a=r.endRow-r.startRow+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>i>e.startRow&&i<=e.endRow));if(o.length){let r=[],s=[];return o.forEach(o=>{let c=I.deepClone(o),l=e.fromRange.startRow,u=!1;c.ranges.forEach(e=>{i>e.startRow&&i<=e.endRow&&(l<e.startRow&&(e.startRow-=a,e.endRow-=a),e.endRow+=a,u=!0)}),u&&(r.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:c,ruleId:o.id}}),s.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:o.id}}))}),{redos:r,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(e,t,n){let r=e.toRange,i=r.startColumn,a=r.endColumn-r.startColumn+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>i>e.startColumn&&i<=e.endColumn));if(o.length){let r=[],s=[];return o.forEach(o=>{let c=I.deepClone(o),l=e.fromRange.startColumn,u=!1;c.ranges.forEach(e=>{i>e.startColumn&&i<=e.endColumn&&(l<e.startColumn&&(e.startColumn-=a,e.endColumn-=a),e.endColumn+=a,u=!0)}),u&&(r.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:c,ruleId:o.id}}),s.push({id:Yu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:o.id}}))}),{redos:r,undos:s}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Kf.includes(e.id)){if(!e.params)return;let t=this._univerInstanceService.getCurrentUnitForType(L.UNIVER_SHEET);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let{sourceRange:r,targetRange:i}=e.params,a=r.startColumn===i.startColumn&&r.endColumn===i.endColumn,o=a?r.endRow-r.startRow+1:r.endColumn-r.startColumn+1,s=a?r.startRow:r.startColumn,c=a?i.startRow:i.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:i,endColumn:l}=e;F.intersects(e,r)||(a?s<t&&c>n?(t-=o,n-=o):s>n&&c<=t&&(t+=o,n+=o):s<i&&c>l?(i-=o,l-=o):s>l&&c<=i&&(i+=o,l+=o)),this._checkIsRightRange({startRow:t,endRow:n,startColumn:i,endColumn:l})&&(e.startColumn=i,e.endColumn=l,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:l,subUnitId:u}=e.params,d=e=>this.refRangeHandle(e,l,u);this._selectionProtectionRuleModel.getSubunitRuleList(l,u).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,d,l,u))}),this._selectionProtectionRenderModel.clear()}if(Gf.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=e.params;if(!r)return;let{range:i}=r,a=e.id.includes(`row`),o=e.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;o?a?s<=t&&(t+=l,n+=l):s<=r&&(r+=l,i+=l):a?c<t&&(t-=l,n-=l):c<r&&(r-=l,i-=l),this._checkIsRightRange({startRow:t,endRow:n,startColumn:r,endColumn:i})&&(e.startColumn=r,e.endColumn=i,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Gf.includes(e.id)||Kf.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===xu.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:Fi.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:Li.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};qf=G([W(0,A(Ni)),W(1,A(k)),W(2,C),W(3,A(zs)),W(4,A(Mf)),W(5,A(Nf)),W(6,A(K)),W(7,A(Ni))],qf);let Jf=class extends h{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`:Ad().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:Ad().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&&Ad().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:[ht.UNIVER_SHEET],onLoad:(e,t)=>{let n=this._selectionProtectionRuleModel.toObject();n[e]=t,this._selectionProtectionRuleModel.fromObject(n);let r=[];Object.keys(t).forEach(n=>{let i=t[n];this._selectionProtectionRuleModel.getSubunitRuleList(e,n).forEach(t=>{r.push({objectID:t.permissionId,unitID:e,objectType:B.SelectRange,actions:jd})}),i.forEach(t=>{Ad().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};Jf=G([W(0,A(Ni)),W(1,A(D)),W(2,A(te)),W(3,A(Nf)),W(4,A(k))],Jf);let Yf=class extends h{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()}};Yf=G([W(0,A(gn))],Yf);let Xf=class extends fe{constructor(e=eu,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Re({},eu,this._config);this._configService.setConfig(Ql,r),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(ne,!0),(r=this._config)!=null&&r.autoHeightForMergedCells&&this._configService.setConfig(e,!0)}_initDependencies(){var e;let t=[[Su],[tu],[Y],[zs],[kf],[Zd,{useClass:Wf}],[K],[Yf],[Ko],[Rf],[Js],[Bf],[wf],[jf],[Df],[Rd],[fc],[Dd],[Vf],[Af],[Of],[gn],[Mf],[Ni],[Nf],[qf],[Jf],[Hf,{useClass:Uf,deps:[Y]}],[Wl,{useClass:Ul}],[xf]];(e=this._config)!=null&&e.notExecuteFormula||t.push([zf]),Ke(this._injector,Be(t,this._config.override)),$e(this._injector,[[K],[Jf],[Hf],[Af],[Df]])}onStarting(){var e;$e(this._injector,[[Rf],[Js],[kf],[Rd],[Vf],[Ko],[xf]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([If])}onRendered(){$e(this._injector,[[Zd]])}onReady(){$e(this._injector,[[If],[zf],[wf],[jf],[gn],[Bf],[Mf],[qf],[zs],[Of]])}};U(Xf,`pluginName`,`SHEET_PLUGIN`),U(Xf,`packageName`,Pf),U(Xf,`version`,Ff),U(Xf,`type`,L.UNIVER_SHEET),Xf=G([f(St),W(1,A(re)),W(2,w)],Xf);const Zf={WorkbookCommentPermission:pa,WorkbookCopyPermission:ma,WorkbookCreateProtectPermission:ga,WorkbookCreateSheetPermission:_a,WorkbookDeleteSheetPermission:ba,WorkbookDuplicatePermission:xa,WorkbookEditablePermission:Sa,WorkbookExportPermission:Ca,WorkbookHideSheetPermission:wa,WorkbookHistoryPermission:Ta,WorkbookManageCollaboratorPermission:Oa,WorkbookMoveSheetPermission:ka,WorkbookPrintPermission:Aa,WorkbookRecoverHistoryPermission:ja,WorkbookRenameSheetPermission:Ma,WorkbookSharePermission:Na,WorkbookViewHistoryPermission:Fa,WorkbookViewPermission:Pa,WorksheetCopyPermission:Ia,WorksheetDeleteColumnPermission:La,WorksheetDeleteProtectionPermission:Ra,WorksheetDeleteRowPermission:za,WorksheetEditExtraObjectPermission:Va,WorksheetEditPermission:Ba,WorksheetFilterPermission:Ha,WorksheetInsertColumnPermission:Ua,WorksheetInsertHyperlinkPermission:Wa,WorksheetInsertRowPermission:Ga,WorksheetManageCollaboratorPermission:Ka,WorksheetPivotTablePermission:qa,WorksheetSetCellStylePermission:Xa,WorksheetSetCellValuePermission:Za,WorksheetSetColumnStylePermission:Qa,WorksheetSetRowStylePermission:$a,WorksheetSortPermission:eo,WorksheetViewPermission:to,RangeProtectionPermissionEditPoint:da,RangeProtectionPermissionViewPoint:fa},Qf=(e,t,n,r)=>{let i=e.get(D),a=e.get(Ni),o=i.getPermissionPoint(new Sa(t).id);if(!(o!=null&&o.value))return!1;let s=i.getPermissionPoint(new Ba(t,n).id);if(!(s!=null&&s.value))return!1;let c=a.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>r.some(t=>F.intersects(e,t))));return c.length?c.every(e=>{let r=e.permissionId,a=i.getPermissionPoint(new da(t,n,r).id);return!!(a!=null&&a.value)}):!0},$f=(e,t,n,r=1,i=!0,a=!0)=>{let{startRow:o,endRow:s}=P.transformRange(e,t),c=n.startRow-r,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;for(;!t.getRowVisible(c)||!u;)c--,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;if(c>=o)return{...n,startRow:c,endRow:c};if(a)return tp(e,t,{...n,startRow:s,endRow:s},r,i,!1)},ep=(e,t,n,r=1,i=!0,a=!0)=>{let{startRow:o,endRow:s}=P.transformRange(e,t),c=n.endRow+r,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;for(;!t.getRowVisible(c)||!u;)c++,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;if(c<=s)return{...n,startRow:c,endRow:c};if(a)return np(e,t,{...n,startRow:o,endRow:o},r,i,!1)},tp=(e,t,n,r=1,i=!0,a=!0)=>{let{startColumn:o,endColumn:s}=P.transformRange(e,t),c=n.startColumn-r,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;for(;!t.getColVisible(c)||!u;)c--,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;if(c>=o)return{...n,startColumn:c,endColumn:c};if(a)return $f(e,t,{...n,startColumn:s,endColumn:s},r,i,!1)},np=(e,t,n,r=1,i=!0,a=!0)=>{let{startColumn:o,endColumn:s}=P.transformRange(e,t),c=n.endColumn+r,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;for(;!t.getColVisible(c)||!u;)c++,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;if(c<=s)return{...n,endColumn:c,startColumn:c};if(a)return ep(e,t,{...n,startColumn:o,endColumn:o},r,i,!1)};function rp(e,t,n){let r=null;return n.getMatrixWithMergedCells(e,t,e,t).forValue((e,t,n)=>(r={actualRow:e,actualColumn:t,startRow:e,startColumn:t,isMerged:n.rowSpan!==void 0||n.colSpan!==void 0,isMergedMainCell:n.rowSpan!==void 0&&n.colSpan!==void 0,endRow:e+(n.rowSpan===void 0?0:n.rowSpan-1),endColumn:t+(n.colSpan===void 0?0:n.colSpan-1),rangeType:N.NORMAL},!1)),r||{actualColumn:t,actualRow:e,startRow:e,startColumn:t,endRow:e,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:N.NORMAL}}const ip=(e,t,n,r,i=1)=>{switch(r){case m.UP:return $f(e,t,n,i);case m.DOWN:return ep(e,t,n,i);case m.LEFT:return tp(e,t,n,i);case m.RIGHT:return np(e,t,n,i)}},ap=(e,t,n)=>{let r,i=-1,a;for(let t=0;t<e.length;t++)if(e[t].primary){r=e[t],i=t,a=r.primary;break}if(i===-1)return null;let o=t===m.LEFT||t===m.UP,s=e[o?i-1>=0?i-1:e.length-1:i+1<e.length?i+1:0];if(!r||!a)return null;let c={...a},{startRow:l,startColumn:u,endRow:d,endColumn:f}=r.range,p=o?c.startRow===l&&c.startColumn===u:c.endRow===d&&c.endColumn===f,h=p&&o;if(!F.equals(r.range,c)){let e=p?s.range:ip(r.range,n,c,t);if(!e)return null;let i=h?rp(e.endRow,e.endColumn,n):rp(e.startRow,e.startColumn,n);return{startRow:i.startRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.endColumn}}let g=h?rp(s.range.endRow,s.range.endColumn,n):rp(s.range.startRow,s.range.startColumn,n);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};export{vc as AFFECT_LAYOUT_STYLES,Jt as AFTER_CELL_EDIT,$ as AUTO_FILL_APPLY_TYPE,_l as AUTO_FILL_DATA_TYPE,vl as AUTO_FILL_HOOK_TYPE,Zs as AddMergeRedoSelectionsOperationFactory,zt as AddMergeUndoMutationFactory,Qs as AddMergeUndoSelectionsOperationFactory,Ri as AddRangeProtectionCommand,Li as AddRangeProtectionMutation,cf as AddRangeThemeMutation,sc as AddWorksheetMergeAllCommand,oc as AddWorksheetMergeCommand,lc as AddWorksheetMergeHorizontalCommand,H as AddWorksheetMergeMutation,cc as AddWorksheetMergeVerticalCommand,hc as AddWorksheetProtectionCommand,pc as AddWorksheetProtectionMutation,_c as AppendRowCommand,Xl as AutoClearContentCommand,Gl as AutoFillCommand,xf as AutoFillController,Pl as AutoFillRules,Ul as AutoFillService,gl as AutoFillTools,qt as BEFORE_CELL_EDIT,Su as BorderStyleManagerService,Wr as COMMAND_LISTENER_SKELETON_CHANGE,Gr as COMMAND_LISTENER_VALUE_CHANGE,qu as CancelFrozenCommand,df as CancelMarkDirtyRowAutoHeightMutation,Wi as ClearSelectionAllCommand,Zl as ClearSelectionContentCommand,Gi as ClearSelectionFormatCommand,lu as CopySheetCommand,nu as CopyWorksheetEndMutation,Vi as DISABLE_NORMAL_SELECTIONS,wf as DefinedNameDataController,co as DeleteRangeMoveLeftCommand,uo as DeleteRangeMoveUpCommand,du as DeleteRangeProtectionCommand,Fi as DeleteRangeProtectionMutation,fu as DeleteWorksheetProtectionCommand,mc as DeleteWorksheetProtectionMutation,pu as DeleteWorksheetRangeThemeStyleCommand,yn as DeleteWorksheetRangeThemeStyleMutation,bn as DeleteWorksheetRangeThemeStyleMutationFactory,pd as DeltaColumnWidthCommand,Kd as DeltaRowHeightCommand,Mi as EditStateEnum,Z as EffectRefRangId,lf as EmptyMutation,Uf as ExclusiveRangeService,Ii as FactoryAddRangeProtectionMutation,Pi as FactoryDeleteRangeProtectionMutation,Xu as FactorySetRangeProtectionMutation,Wl as IAutoFillService,Hf as IExclusiveRangeService,Bt as INTERCEPTOR_POINT,Zd as INumfmtService,ta as IRefSelectionsService,Do as InsertColAfterCommand,Eo as InsertColBeforeCommand,To as InsertColByRangeCommand,wo as InsertColCommand,wn as InsertColMutation,Cn as InsertColMutationUndoFactory,mu as InsertDefinedNameCommand,Oo as InsertMultiColsLeftCommand,ko as InsertMultiColsRightCommand,xo as InsertMultiRowsAboveCommand,So as InsertMultiRowsAfterCommand,po as InsertRangeMoveDownCommand,ho as InsertRangeMoveRightCommand,bo as InsertRowAfterCommand,yo as InsertRowBeforeCommand,vo as InsertRowByRangeCommand,_o as InsertRowCommand,Sn as InsertRowMutation,xn as InsertRowMutationUndoFactory,hu as InsertSheetCommand,iu as InsertSheetMutation,ru as InsertSheetUndoMutationFactory,Vt as InterceptCellContentPriority,Sf as MAX_CELL_PER_SHEET_KEY,qs as MERGE_CELL_INTERCEPTOR_CHECK,uf as MarkDirtyRowAutoHeightMutation,Js as MergeCellController,Wo as MoveColsCommand,kn as MoveColsMutation,On as MoveColsMutationUndoFactory,oa as MoveRangeCommand,Tn as MoveRangeMutation,Ho as MoveRowsCommand,Dn as MoveRowsMutation,En as MoveRowsMutationUndoFactory,Wf as NumfmtService,Q as OperatorType,Zf as PermissionPointsDefinitions,Ui as REF_SELECTIONS_ENABLED,li as RangeMergeUtil,Nf as RangeProtectionCache,Od as RangeProtectionPermissionDeleteProtectionPoint,da as RangeProtectionPermissionEditPoint,kd as RangeProtectionPermissionManageCollaPoint,fa as RangeProtectionPermissionViewPoint,qf as RangeProtectionRefRangeService,Mf as RangeProtectionRenderModel,Ni as RangeProtectionRuleModel,Jf as RangeProtectionService,en as RangeThemeStyle,zs as RefRangeService,na as RefSelectionsService,gu as RefillCommand,yu as RegisterWorksheetRangeThemeStyleCommand,_u as RegisterWorksheetRangeThemeStyleMutation,Fo as RemoveColByRangeCommand,Io as RemoveColCommand,Nn as RemoveColMutation,bu as RemoveDefinedNameCommand,Pn as RemoveMergeUndoMutationFactory,ef as RemoveNumfmtMutation,ff as RemoveRangeThemeMutation,Mo as RemoveRowByRangeCommand,No as RemoveRowCommand,jn as RemoveRowMutation,xu as RemoveSheetCommand,Ro as RemoveSheetMutation,Lo as RemoveSheetUndoMutationFactory,$s as RemoveWorksheetMergeCommand,q as RemoveWorksheetMergeMutation,Zo as ReorderRangeCommand,In as ReorderRangeMutation,Fn as ReorderRangeUndoMutationFactory,Ac as ResetBackgroundColorCommand,Oc as ResetTextColorCommand,Cf as SCOPE_WORKBOOK_VALUE_DEFINED_NAME,Hi as SELECTIONS_ENABLED,di as SELECTION_CONTROL_BORDER_BUFFER_COLOR,ui as SELECTION_CONTROL_BORDER_BUFFER_WIDTH,Ql as SHEETS_PLUGIN_CONFIG_KEY,mf as ScrollToCellOperation,ia as SelectRangeCommand,zi as SelectionMoveType,kc as SetBackgroundColorCommand,bc as SetBoldCommand,Fu as SetBorderBasicCommand,Pu as SetBorderColorCommand,ju as SetBorderCommand,Mu as SetBorderPositionCommand,Nu as SetBorderStyleCommand,Iu as SetColDataCommand,Bn as SetColDataMutation,zn as SetColDataMutationFactory,zu as SetColHiddenCommand,Hn as SetColHiddenMutation,Wn as SetColVisibleMutation,md as SetColWidthCommand,Uu as SetDefinedNameCommand,Tc as SetFontFamilyCommand,Ec as SetFontSizeCommand,Ku as SetFrozenCommand,Gu as SetFrozenMutation,Wu as SetFrozenMutationFactory,Ju as SetGridlinesColorCommand,Gn as SetGridlinesColorMutation,Mc as SetHorizontalTextAlignCommand,xc as SetItalicCommand,$d as SetNumfmtMutation,wc as SetOverlineCommand,Qu as SetProtectionCommand,$u as SetRangeCustomMetadataCommand,Yu as SetRangeProtectionMutation,pf as SetRangeThemeMutation,no as SetRangeValuesCommand,J as SetRangeValuesMutation,gr as SetRangeValuesUndoMutationFactory,ed as SetRowDataCommand,xr as SetRowDataMutation,br as SetRowDataMutationFactory,qd as SetRowHeightCommand,rd as SetRowHiddenCommand,Tr as SetRowHiddenMutation,Cr as SetRowVisibleMutation,Ru as SetSelectedColsVisibleCommand,nd as SetSelectedRowsVisibleCommand,X as SetSelectionsOperation,Lu as SetSpecificColsVisibleCommand,td as SetSpecificRowsVisibleCommand,Cc as SetStrikeThroughCommand,yc as SetStyleCommand,ld as SetTabColorCommand,cd as SetTabColorMutation,Dc as SetTextColorCommand,Pc as SetTextRotationCommand,Nc as SetTextWrapCommand,Sc as SetUnderlineCommand,jc as SetVerticalTextAlignCommand,dd as SetWorkbookNameCommand,ud as SetWorkbookNameMutation,fd as SetWorksheetActivateCommand,Vr as SetWorksheetActiveOperation,Dr as SetWorksheetColWidthMutation,Er as SetWorksheetColWidthMutationFactory,gd as SetWorksheetColumnCountCommand,kr as SetWorksheetColumnCountMutation,Or as SetWorksheetColumnCountUndoMutationFactory,_d as SetWorksheetDefaultStyleCommand,Ar as SetWorksheetDefaultStyleMutation,jr as SetWorksheetDefaultStyleMutationFactory,bd as SetWorksheetHideCommand,yd as SetWorksheetHideMutation,Cd as SetWorksheetNameCommand,Sd as SetWorksheetNameMutation,Ed as SetWorksheetOrderCommand,Td as SetWorksheetOrderMutation,Bd as SetWorksheetPermissionPointsCommand,zd as SetWorksheetPermissionPointsMutation,Vd as SetWorksheetProtectionCommand,Zu as SetWorksheetProtectionMutation,gc as SetWorksheetRangeThemeStyleCommand,_n as SetWorksheetRangeThemeStyleMutation,vn as SetWorksheetRangeThemeStyleMutationFactory,Wd as SetWorksheetRightToLeftCommand,Ud as SetWorksheetRightToLeftMutation,zr as SetWorksheetRowAutoHeightMutation,Ir as SetWorksheetRowAutoHeightMutationFactory,Gd as SetWorksheetRowCountCommand,Nr as SetWorksheetRowCountMutation,Mr as SetWorksheetRowCountUndoMutationFactory,Lr as SetWorksheetRowHeightMutation,Pr as SetWorksheetRowHeightMutationFactory,Jd as SetWorksheetRowIsAutoHeightCommand,Rr as SetWorksheetRowIsAutoHeightMutation,Fr as SetWorksheetRowIsAutoHeightMutationFactory,Yd as SetWorksheetShowCommand,Jl as SheetCopyDownCommand,Yl as SheetCopyRightCommand,K as SheetInterceptorService,tu as SheetLazyExecuteScheduleService,Of as SheetPermissionCheckController,Af as SheetPermissionInitController,gn as SheetRangeThemeModel,Yf as SheetRangeThemeService,Hr as SheetSkeletonChangeType,Ko as SheetSkeletonService,Ur as SheetValueChangeType,Df as SheetsFreezeSyncController,Y as SheetsSelectionsService,mi as SplitDelimiterEnum,Xd as SplitTextToColumnsCommand,rf as TextToNumberCommand,af as ToggleCellCheckboxCommand,of as ToggleGridlinesCommand,Br as ToggleGridlinesMutation,pt as UnitAction,mt as UnitObject,Xf as UniverSheetsPlugin,sf as UnregisterWorksheetRangeThemeStyleCommand,vu as UnregisterWorksheetRangeThemeStyleMutation,Yt as VALIDATE_CELL,ji as ViewStateEnum,pa as WorkbookCommentPermission,ma as WorkbookCopyPermission,ha as WorkbookCopySheetPermission,ga as WorkbookCreateProtectPermission,_a as WorkbookCreateSheetPermission,va as WorkbookDeleteColumnPermission,ya as WorkbookDeleteRowPermission,ba as WorkbookDeleteSheetPermission,xa as WorkbookDuplicatePermission,Sa as WorkbookEditablePermission,Ca as WorkbookExportPermission,wa as WorkbookHideSheetPermission,Ta as WorkbookHistoryPermission,Ea as WorkbookInsertColumnPermission,Da as WorkbookInsertRowPermission,Oa as WorkbookManageCollaboratorPermission,ka as WorkbookMoveSheetPermission,kf as WorkbookPermissionService,Aa as WorkbookPrintPermission,ja as WorkbookRecoverHistoryPermission,Ma as WorkbookRenameSheetPermission,Bi as WorkbookSelectionModel,Na as WorkbookSharePermission,Fa as WorkbookViewHistoryPermission,Pa as WorkbookViewPermission,Ia as WorksheetCopyPermission,La as WorksheetDeleteColumnPermission,Ra as WorksheetDeleteProtectionPermission,za as WorksheetDeleteRowPermission,Va as WorksheetEditExtraObjectPermission,Ba as WorksheetEditPermission,Ha as WorksheetFilterPermission,Ua as WorksheetInsertColumnPermission,Wa as WorksheetInsertHyperlinkPermission,Ga as WorksheetInsertRowPermission,Ka as WorksheetManageCollaboratorPermission,Rd as WorksheetPermissionService,qa as WorksheetPivotTablePermission,Dd as WorksheetProtectionPointModel,fc as WorksheetProtectionRuleModel,Ja as WorksheetSelectProtectedCellsPermission,Ya as WorksheetSelectUnProtectedCellsPermission,Xa as WorksheetSetCellStylePermission,Za as WorksheetSetCellValuePermission,Qa as WorksheetSetColumnStylePermission,$a as WorksheetSetRowStylePermission,eo as WorksheetSortPermission,to as WorksheetViewPermission,jf as ZebraCrossingCacheController,uc as addMergeCellsUtil,Ms as adjustRangeOnMutation,Ki as alignToMergedCellsBorders,jd as baseProtectionActions,It as checkCellValueType,Qf as checkRangesEditablePermission,pi as convertPrimaryWithCoordToPrimary,fi as convertSelectionDataToRange,ea as copyRangeStyles,Yo as countCells,ii as createTopMatrixFromMatrix,ri as createTopMatrixFromRanges,$l as defaultLargeSheetOperationConfig,Pd as defaultWorkbookPermissionPoints,Ld as defaultWorksheetPermissionPoint,Oi as discreteRangeToRange,ni as expandToContinuousRange,tf as factoryRemoveNumfmtUndoMutation,Qd as factorySetNumfmtUndoMutation,si as findAllRectangle,wi as findFirstNonEmptyCell,Xi as followSelectionOperation,Ti as generateNullCell,Ei as generateNullCellValue,Ks as getAddMergeMutationRangeByType,Ad as getAllRangePermissionPoint,Nd as getAllWorkbookPermissionPoint,Fd as getAllWorksheetPermissionPoint,Id as getAllWorksheetPermissionPointByPointPanel,qi as getCellAtRowCol,ac as getClearContentMutationParamForRange,ic as getClearContentMutationParamsForRanges,Md as getDefaultRangePermission,ro as getInsertRangeMutations,ca as getMoveRangeCommandMutations,la as getMoveRangeUndoRedoMutations,ap as getNextPrimaryCell,Yi as getPrimaryForRange,io as getRemoveRangeMutations,ra as getSelectionsService,Fs as getSeparateEffectedRangesOnCommand,V as getSheetCommandTarget,Lt as getSheetCommandTargetWorkbook,Rt as getSheetMutationTarget,qr as getSkeletonChangedEffectedRange,Kr as getValueChangedEffectedRange,Ai as getVisibleRanges,fs as handleBaseInsertRange,es as handleBaseMoveRowsCols,cs as handleBaseRemoveRange,As as handleCommonDefaultRangeChangeWithEffectRefCommands,js as handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests,Os as handleDefaultRangeChangeWithEffectRefCommands,ks as handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests,bs as handleDeleteRangeMoveLeft,Ss as handleDeleteRangeMoveUp,oo as handleDeleteRangeMutation,ls as handleIRemoveCol,us as handleIRemoveRow,hs as handleInsertCol,gs as handleInsertRangeMoveDown,vs as handleInsertRangeMoveRight,ao as handleInsertRangeMutation,ms as handleInsertRow,is as handleMoveCols,os as handleMoveRange,ts as handleMoveRows,Zi as isSingleCellSelection,ci as rangeMerge,ki as rangeToDiscreteRange,$o as rotateRange,Ds as runRefRangeMutations,Ji as setEndForRange,bi as splitRangeText,nf as transformCellsToRange};
1
+ import{AUTO_HEIGHT_FOR_MERGED_CELLS as e,BORDER_KEYS as t,BORDER_STYLE_KEYS as n,BooleanNumber as r,BorderStyleTypes as i,BorderType as a,BuildTextUtils as o,COLOR_STYLE_KEYS as s,CellModeEnum as c,CellValueType as l,CommandType as u,CustomCommandExecutionError as d,DependentOn as f,Dimension as p,Direction as m,Disposable as h,DisposableCollection as g,DocumentDataModel as _,ErrorService as v,FontItalic as y,FontWeight as b,HorizontalAlign as x,IAuthzIoService as S,ICommandService as C,IConfigService as w,IConfirmService as T,IContextService as E,ILogService as D,IPermissionService as O,IResourceManagerService as ee,IS_ROW_STYLE_PRECEDE_COLUMN_STYLE as te,IUndoRedoService as k,IUniverInstanceService as A,Inject as j,Injector as ne,InterceptorEffectEnum as re,InterceptorManager as ie,LRUMap as ae,LocaleService as oe,MAX_COLUMN_COUNT as se,MAX_ROW_COUNT as ce,ObjectMatrix as M,Optional as le,PADDING_KEYS as ue,PermissionStatus as N,Plugin as de,RANGE_TYPE as P,RTree as fe,Range as F,Rectangle as I,RxDisposable as pe,STYLE_KEYS as me,TEXT_DECORATION_KEYS as he,TEXT_ROTATION_KEYS as ge,TextX as _e,Tools as L,UniverInstanceType as R,UserManagerService as ve,cellToRange as ye,cloneWorksheetData as be,composeInterceptors as xe,concatMatrixArray as Se,createIdentifier as Ce,createInterceptorKey as we,createRowColIter as Te,generateRandomId as Ee,getArrayLength as De,isBooleanString as Oe,isDefaultFormat as ke,isFormulaId as Ae,isFormulaString as je,isICellData as Me,isRealNum as Ne,isSafeNumeric as Pe,isTextFormat as Fe,mapObjectMatrix as Ie,merge as Le,mergeIntervals as Re,mergeOverrideWithDependencies as ze,mergeWorksheetSnapshotWithDefault as Be,moveMatrixArray as Ve,normalizeTextRuns as He,numfmt as Ue,queryObjectMatrix as We,registerDependencies as Ge,remove as Ke,selectionToArray as qe,sequenceExecute as z,sliceMatrixArray as Je,spliceArray as Ye,throttle as Xe,toDisposable as Ze,touchDependencies as Qe,willLoseNumericPrecision as $e}from"@univerjs/core";import{BehaviorSubject as et,Subject as tt,distinctUntilChanged as nt,filter as rt,first as it,map as at,merge as ot,of as st,shareReplay as ct,skip as lt,switchMap as ut,takeUntil as dt}from"rxjs";import{UnitAction as ft,UnitAction as B,UnitObject as pt,UnitObject as V,UniverType as mt}from"@univerjs/protocol";import{SpreadsheetSkeleton as ht,precisionTo as gt}from"@univerjs/engine-render";import{IDefinedNamesService as _t,LexerTreeBuilder as vt,RemoveDefinedNameMutation as yt,SetDefinedNameMutation as bt,SetDefinedNameMutationFactory as xt,SetFormulaCalculationResultMutation as St,UniverFormulaEnginePlugin as Ct,deserializeRangeWithSheet as wt,deserializeRangeWithSheetWithCache as Tt,handleNumfmtInCell as Et,operatorToken as Dt,sequenceNodeType as Ot,stripErrorMargin as kt}from"@univerjs/engine-formula";import{filter as At,map as jt,takeUntil as Mt}from"rxjs/operators";import{DataSyncPrimaryController as Nt}from"@univerjs/rpc";function Pt(e,t,n){var r;if(t.t)return t.t;if(t.v===null)return null;let i=e.getStyleByCell(t),a=e.getStyleByCell(n);if(n.t===l.FORCE_STRING){var o;if(!Fe(a==null||(o=a.n)==null?void 0:o.pattern)&&t.v!==void 0){if(Ne(t.v))return l.NUMBER;if(Oe(`${t.v}`))return l.BOOLEAN}return l.FORCE_STRING}if(It(i)){var s;return Fe(i==null||(s=i.n)==null?void 0:s.pattern)?l.STRING:Ft(t,n)}return Fe(a==null||(r=a.n)==null?void 0:r.pattern)?l.STRING:Ft(t,n)}function Ft(e,t){return e.v===void 0?Lt(t.v,t.t):Lt(e.v,e.t)}function It(e){var t;return!!(!(e==null||(t=e.n)==null)&&t.pattern)}function Lt(e,t){return e===null?null:typeof e==`string`?Ne(e)?(+e==0||+e==1)&&t===l.BOOLEAN?l.BOOLEAN:t!==l.STRING&&t!==l.FORCE_STRING&&$e(e)?l.FORCE_STRING:l.NUMBER:Oe(e)?l.BOOLEAN:l.STRING:typeof e==`number`?(e===0||e===1)&&t===l.BOOLEAN?l.BOOLEAN:l.NUMBER:typeof e==`boolean`?l.BOOLEAN:l.FORCE_STRING}function Rt(e,t){let{unitId:n}=t,r=n?e.getUnit(n,R.UNIVER_SHEET):e.getCurrentUnitOfType(R.UNIVER_SHEET);return r?{workbook:r,unitId:r.getUnitId()}:null}function H(e,t={}){let{unitId:n,subUnitId:r}=t,i=n?e.getUnit(n,R.UNIVER_SHEET):e.getCurrentUnitOfType(R.UNIVER_SHEET);if(!i)return null;let a=r?i.getSheetBySheetId(r):i.getActiveSheet(!0);return a?{worksheet:a,workbook:i,unitId:i.getUnitId(),subUnitId:a.getSheetId()}:null}function zt(e,t){let{unitId:n,subUnitId:r}=t,i=e.getUnit(n,R.UNIVER_SHEET);if(!i)return null;let a=i.getSheetBySheetId(r);return a?{worksheet:a,workbook:i}:null}const Bt=(e,t)=>{if(!zt(e.get(A),t))throw Error(`Workbook or worksheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:L.deepClone(t.ranges)}},U={id:`sheet.mutation.add-worksheet-merge`,type:u.MUTATION,handler:(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`Workbook or worksheet is null error!`);let{worksheet:r}=n,i=r.getConfig().mergeData,a=t.ranges;for(let e=0;e<a.length;e++)i.push(a[e]);return r.getSpanModel().rebuild(i),!0}},Vt={CELL_CONTENT:we(`CELL_CONTENT`),ROW_FILTERED:we(`ROW_FILTERED`)};let Ht=function(e){return e[e.DATA_VALIDATION=9]=`DATA_VALIDATION`,e[e.NUMFMT=10]=`NUMFMT`,e[e.CELL_IMAGE=11]=`CELL_IMAGE`,e}({});const Ut=`sheet.interceptor.range-theme-id`,Wt=`sheet.interceptor.ignore-range-theme`;function Gt(e){"@babel/helpers - typeof";return Gt=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},Gt(e)}function Kt(e,t){if(Gt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Gt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function qt(e){var t=Kt(e,`string`);return Gt(t)==`symbol`?t:t+``}function W(e,t,n){return(t=qt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e,t){return function(n,r){t(n,r,e)}}function Jt(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 Yt=we(`BEFORE_CELL_EDIT`),Xt=we(`AFTER_CELL_EDIT`),Zt=we(`VALIDATE_CELL`);let K=class extends h{constructor(e){super(),this._univerInstanceService=e,W(this,`_interceptorsByName`,new Map),W(this,`_commandInterceptors`,[]),W(this,`_rangeInterceptors`,[]),W(this,`_autoHeightInterceptors`,[]),W(this,`_beforeCommandInterceptor`,[]),W(this,`_afterCommandInterceptors`,[]),W(this,`_workbookDisposables`,new Map),W(this,`_worksheetDisposables`,new Map),W(this,`_interceptorsDirty`,!1),W(this,`_composedInterceptorByKey`,new Map),W(this,`_composedInterceptorsLengthByKey`,new Map),W(this,`writeCellInterceptor`,new ie({BEFORE_CELL_EDIT:Yt,AFTER_CELL_EDIT:Xt,VALIDATE_CELL:Zt})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(R.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(R.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(Vt.CELL_CONTENT,{priority:-1,effect:re.Style|re.Value,handler:e=>e}),this.disposeWithMe(this.writeCellInterceptor.intercept(Xt,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(Yt,{priority:-1,handler:e=>e})),this.disposeWithMe(this.writeCellInterceptor.intercept(Zt,{priority:-1,handler:e=>e}))}dispose(){super.dispose(),this._workbookDisposables.forEach(e=>e.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.forEach(e=>e.dispose()),this._worksheetDisposables.clear(),this._interceptorsByName.clear()}interceptCommand(e){if(this._commandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._commandInterceptors.push(e),this._commandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Ze(()=>Ke(this._commandInterceptors,e)))}onCommandExecute(e){let t=this._commandInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptAfterCommand(e){if(this._afterCommandInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._afterCommandInterceptors.push(e),this._afterCommandInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Ze(()=>Ke(this._afterCommandInterceptors,e)))}afterCommandExecute(e){let t=this._afterCommandInterceptors.map(t=>t.getMutations(e));return{undos:t.map(e=>e.undos).flat(),redos:t.map(e=>e.redos).flat()}}interceptAutoHeight(e){if(this._autoHeightInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._autoHeightInterceptors.push(e),this._autoHeightInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Ze(()=>Ke(this._autoHeightInterceptors,e)))}generateMutationsOfAutoHeight(e){let t=this._autoHeightInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}interceptBeforeCommand(e){if(this._beforeCommandInterceptor.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._beforeCommandInterceptor.push(e),this._beforeCommandInterceptor.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Ze(()=>Ke(this._beforeCommandInterceptor,e)))}async beforeCommandExecute(e){return(await Promise.all(this._beforeCommandInterceptor.map(t=>t.performCheck(e)))).every(e=>e)}interceptRanges(e){if(this._rangeInterceptors.includes(e))throw Error(`[SheetInterceptorService]: Interceptor already exists!`);return this._rangeInterceptors.push(e),this._rangeInterceptors.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)}),this.disposeWithMe(Ze(()=>Ke(this._rangeInterceptors,e)))}generateMutationsByRanges(e){let t=this._rangeInterceptors.map(t=>t.getMutations(e));return{preUndos:t.map(e=>{var t;return(t=e.preUndos)==null?[]:t}).flat(),undos:t.map(e=>e.undos).flat(),preRedos:t.map(e=>{var t;return(t=e.preRedos)==null?[]:t}).flat(),redos:t.map(e=>e.redos).flat()}}onWriteCell(e,t,n,r,i){let a={subUnitId:t.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:t,row:n,col:r,origin:L.deepClone(i)};return this.writeCellInterceptor.fetchThroughInterceptors(Xt)(i,a)}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(Zt)(Promise.resolve(!0),i)}intercept(e,t){let n=e;this._interceptorsByName.has(n)||this._interceptorsByName.set(n,[]);let r=this._interceptorsByName.get(n);r.push(t);let i=r.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)});if(this._interceptorsDirty=!0,n===Vt.CELL_CONTENT){let e=re.Style|re.Value;this._interceptorsByName.set(`${n}-${e}`,i);let r=re.Style|re.Value;return this._interceptorsByName.set(`${n}-${re.Style}`,i.filter(e=>((e.effect||r)&re.Style)>0)),this._interceptorsByName.set(`${n}-${re.Value}`,i.filter(e=>((e.effect||r)&re.Value)>0)),this.disposeWithMe(Ze(()=>{Ke(this._interceptorsByName.get(n),t),Ke(this._interceptorsByName.get(`${n}-${e}`),t),Ke(this._interceptorsByName.get(`${n}-${re.Style}`),t),Ke(this._interceptorsByName.get(`${n}-${re.Value}`),t)}))}else return this._interceptorsByName.set(n,i),this.disposeWithMe(Ze(()=>Ke(this._interceptorsByName.get(n),t)))}fetchThroughInterceptors(e,t,n,r){var i;let a=t===void 0?e:`${e}-${t}`,o=n==null?a:n,s=this._composedInterceptorByKey.get(o),c=this._composedInterceptorsLengthByKey.get(o)||0;if(!s||!this._interceptorsDirty||c!==(((i=this._interceptorsByName.get(a))==null?void 0:i.length)||0)){let e=this._interceptorsByName.get(a);e&&r&&(e=e.filter(r)),s=xe(e||[]),this._composedInterceptorByKey.set(o,s),this._composedInterceptorsLengthByKey.set(o,(e==null?void 0:e.length)||0)}return s}_interceptWorkbook(e){let t=new g,n=e.getUnitId(),r=this,i=t=>{let i=t.getSheetId();t.__interceptViewModel(a=>{let o=new g;r._worksheetDisposables.set(Qt(n,t),o),o.add(a.registerCellContentInterceptor({getCell(a,o,s,c,l){let u=t.getCellRaw(a,o);return r.fetchThroughInterceptors(Vt.CELL_CONTENT,s,c,l)(u,{unitId:n,subUnitId:i,row:a,col:o,worksheet:t,workbook:e,rawData:u})}})),o.add(a.registerRowFilteredInterceptor({getRowFiltered(a){return!!r.fetchThroughInterceptors(Vt.ROW_FILTERED)(!1,{unitId:n,subUnitId:i,row:a,workbook:e,worksheet:t})}}))})};e.getSheets().forEach(e=>i(e)),t.add(e.sheetCreated$.subscribe(e=>i(e))),t.add(Ze(()=>e.getSheets().forEach(e=>this._disposeSheetInterceptor(n,e)))),t.add(e.sheetDisposed$.subscribe(e=>this._disposeSheetInterceptor(n,e))),this._workbookDisposables.set(n,t)}_disposeWorkbookInterceptor(e){let t=e.getUnitId(),n=this._workbookDisposables.get(t);n&&(n.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(e,t){let n=Qt(e,t),r=this._worksheetDisposables.get(n);r&&(r.dispose(),this._worksheetDisposables.delete(n))}};K=Jt([G(0,A)],K);function Qt(e,t){return`${e}|${t.getSheetId()}`}const $t=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 en(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 tn={wholeStyle:1,headerRowStyle:2,headerColumnStyle:4,firstRowStyle:8,secondRowStyle:16,lastRowStyle:32,firstColumnStyle:128,secondColumnStyle:256,lastColumnStyle:512};var nn=class{constructor(e,t){W(this,`_name`,void 0),W(this,`wholeStyle`,null),W(this,`headerRowStyle`,null),W(this,`headerColumnStyle`,null),W(this,`firstRowStyle`,null),W(this,`secondRowStyle`,null),W(this,`lastRowStyle`,null),W(this,`firstColumnStyle`,null),W(this,`secondColumnStyle`,null),W(this,`lastColumnStyle`,null),W(this,`_mergeCacheMap`,new Map),t&&this.fromJson({...t,name:e}),this._name=e}getName(){return this._name}getWholeStyle(){return this.wholeStyle}setWholeStyle(e){this.wholeStyle=e,this._resetStyleCache()}getFirstRowStyle(){return this.firstRowStyle}setFirstRowStyle(e){this.firstRowStyle=e,this._resetStyleCache()}getSecondRowStyle(){return this.secondRowStyle}setSecondRowStyle(e){this.secondRowStyle=e,this._resetStyleCache()}getLastRowStyle(){return this.lastRowStyle}setLastRowStyle(e){this.lastRowStyle=e,this._resetStyleCache()}getFirstColumnStyle(){return this.firstColumnStyle}setFirstColumnStyle(e){this.firstColumnStyle=e,this._resetStyleCache()}getSecondColumnStyle(){return this.secondColumnStyle}setSecondColumnStyle(e){this.secondColumnStyle=e,this._resetStyleCache()}getLastColumnStyle(){return this.lastColumnStyle}setLastColumnStyle(e){this.lastColumnStyle=e,this._resetStyleCache()}getHeaderRowStyle(){return this.headerRowStyle}setHeaderRowStyle(e){this.headerRowStyle=e,this._resetStyleCache()}getHeaderColumnStyle(){return this.headerColumnStyle}setHeaderColumnStyle(e){this.headerColumnStyle=e,this._resetStyleCache()}getStyle(e,t,n,r,i){let a=0;return n&&(a|=tn.lastRowStyle),r&&(a|=tn.lastColumnStyle),e>=0&&t>=0&&(a|=tn.wholeStyle),e%2==1&&(a|=i?tn.secondRowStyle:tn.firstRowStyle),e%2==0&&(a|=i?tn.firstRowStyle:tn.secondRowStyle),e===0&&(a|=tn.headerRowStyle),t===0&&(a|=tn.headerColumnStyle),t%2==1&&(a|=tn.firstColumnStyle),t%2==0&&(a|=tn.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&tn.wholeStyle&&t.push(this.wholeStyle),this.firstColumnStyle&&e&tn.firstColumnStyle&&t.push(this.firstColumnStyle),this.secondColumnStyle&&e&tn.secondColumnStyle&&t.push(this.secondColumnStyle),this.firstRowStyle&&e&tn.firstRowStyle&&t.push(this.firstRowStyle),this.secondRowStyle&&e&tn.secondRowStyle&&t.push(this.secondRowStyle),this.headerColumnStyle&&e&tn.headerColumnStyle&&t.push(this.headerColumnStyle),this.lastColumnStyle&&e&tn.lastColumnStyle&&t.push(this.lastColumnStyle),this.headerRowStyle&&e&tn.headerRowStyle&&t.push(this.headerRowStyle),this.lastRowStyle&&e&tn.lastRowStyle&&t.push(this.lastRowStyle),en(t)}_resetStyleCache(){this._mergeCacheMap.clear()}toJson(){let e={name:this._name};return this.wholeStyle&&(e.wholeStyle=$t(this.wholeStyle)),this.headerRowStyle&&(e.headerRowStyle=$t(this.headerRowStyle)),this.headerColumnStyle&&(e.headerColumnStyle=$t(this.headerColumnStyle)),this.firstRowStyle&&(e.firstRowStyle=$t(this.firstRowStyle)),this.secondRowStyle&&(e.secondRowStyle=$t(this.secondRowStyle)),this.lastRowStyle&&(e.lastRowStyle=$t(this.lastRowStyle)),this.firstColumnStyle&&(e.firstColumnStyle=$t(this.firstColumnStyle)),this.secondColumnStyle&&(e.secondColumnStyle=$t(this.secondColumnStyle)),this.lastColumnStyle&&(e.lastColumnStyle=$t(this.lastColumnStyle)),e}fromJson(e){this._name=e.name,e.wholeStyle&&(this.wholeStyle=$t(e.wholeStyle)),e.headerRowStyle&&(this.headerRowStyle=$t(e.headerRowStyle)),e.headerColumnStyle&&(this.headerColumnStyle=$t(e.headerColumnStyle)),e.firstRowStyle&&(this.firstRowStyle=$t(e.firstRowStyle)),e.secondRowStyle&&(this.secondRowStyle=$t(e.secondRowStyle)),e.lastRowStyle&&(this.lastRowStyle=$t(e.lastRowStyle)),e.firstColumnStyle&&(this.firstColumnStyle=$t(e.firstColumnStyle)),e.secondColumnStyle&&(this.secondColumnStyle=$t(e.secondColumnStyle)),e.lastColumnStyle&&(this.lastColumnStyle=$t(e.lastColumnStyle))}dispose(){this._mergeCacheMap.clear()}};const rn=(e,t,n)=>new nn(`light-${e}`,{headerRowStyle:{bg:{rgb:t}},firstColumnStyle:{bg:{rgb:`rgb(255, 255, 255)`}},secondColumnStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}}}),an=(e,t,n)=>new nn(`middle-${e}`,{headerRowStyle:{bg:{rgb:t}},headerColumnStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:n}},lastRowStyle:{bg:{rgb:t}},lastColumnStyle:{bg:{rgb:n}}}),on=(e,t,n,i)=>new nn(`dark-${e}`,{headerRowStyle:{bg:{rgb:t},cl:{rgb:`rgb(255, 255, 255)`},ht:x.CENTER,bl:r.TRUE},firstRowStyle:{bg:{rgb:n}},secondRowStyle:{bg:{rgb:i}},lastRowStyle:{bg:{rgb:t}}}),sn=[{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)`}],cn=[{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)`}],ln=[{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)`}],un=sn.map(({baseName:e,header:t,color:n})=>rn(e,t,n)),dn=cn.map(({baseName:e,rowHeader:t,colHeader:n})=>an(e,t,n)),fn=ln.map(({baseName:e,rowHeader:t,firstRow:n,secondRow:r})=>on(e,t,n,r)),pn=[...un,...dn,...fn],mn={headerRowStyle:{bg:{rgb:`rgb(68,114,196)`},cl:{rgb:`rgb(255,255,255)`},ht:x.CENTER,bl:r.TRUE},firstRowStyle:{bg:{rgb:`rgb(217,225,242)`}}},hn=new nn(`default`,mn),gn=new nn(`default-last-row`,{...mn,lastRowStyle:{bd:{t:{s:i.THIN,cl:{rgb:`rgb(68,114,196)`}}},ht:x.CENTER,bl:r.TRUE}});var _n=class{constructor(){W(this,`_toggleRanges`,[])}refresh(e,t){let{startRow:n,endRow:r}=e,i=[],a=0,o=!1,s=-1;for(let e=n;e<=r;e++){if(!t(e)){a++,a%2==1?o=!0:(o=!1,s!==-1&&(i.push([s,e-1]),s=-1));continue}a%2==1?o?s===-1&&(s=e):(o=!0,s=e):o&&(i.push([s,e-2]),o=!1,s=-1),e===r&&o&&i.push([s,e])}this._toggleRanges=i}getToggleRanges(){return this._toggleRanges.concat()}getIsToggled(e){let t=0,n=this._toggleRanges.length-1;for(;t<=n;){let r=Math.floor((t+n)/2),[i,a]=this._toggleRanges[r];if(e<i)n=r-1;else if(e>a)t=r+1;else return!0}return!1}};let vn=class extends h{constructor(e,t,n){super(),this._sheetInterceptorService=e,this._resourceManagerService=t,this._univerInstanceService=n,W(this,`_rangeThemeStyleMap`,new Map),W(this,`_rangeThemeStyleRuleMap`,new Map),W(this,`_rTreeCollection`,new Map),W(this,`_defaultRangeThemeMap`,new Map),W(this,`_zebraCrossingCacheMap`,new Map),W(this,`_rowVisibleFuncSet`,new Map),W(this,`_rangeThemeMapChanged$`,new tt),W(this,`rangeThemeMapChange$`,this._rangeThemeMapChanged$.asObservable()),this._registerIntercept(),this._initSnapshot(),this._initDefaultTheme()}_initDefaultTheme(){this.registerDefaultRangeTheme(hn),this.registerDefaultRangeTheme(gn);for(let e of pn)this.registerDefaultRangeTheme(e)}_ensureRangeThemeStyleMap(e){return this._rangeThemeStyleMap.has(e)||this._rangeThemeStyleMap.set(e,new Map),this._rangeThemeStyleMap.get(e)}_ensureRangeThemeStyleRuleMap(e){return this._rangeThemeStyleRuleMap.has(e)||this._rangeThemeStyleRuleMap.set(e,new Map),this._rangeThemeStyleRuleMap.get(e)}_ensureRTreeCollection(e){return this._rTreeCollection.has(e)||this._rTreeCollection.set(e,new fe),this._rTreeCollection.get(e)}getDefaultRangeThemeStyle(e){return this._defaultRangeThemeMap.get(e)}getCustomRangeThemeStyle(e,t){return this._ensureRangeThemeStyleMap(e).get(t)}_getSheetRowVisibleFuncSet(e,t){this._rowVisibleFuncSet.has(e)||this._rowVisibleFuncSet.set(e,new Map);let n=this._rowVisibleFuncSet.get(e);return n.has(t)||n.set(t,new Set),n.get(t)}_getSheetRowVisibleHasInit(e,t){var n;return!!(this._rowVisibleFuncSet.has(e)&&(n=this._rowVisibleFuncSet.get(e))!=null&&n.has(t))}refreshSheetRowVisibleFuncSet(e,t){let n=this._getSheetRowVisibleFuncSet(e,t);n.clear();let r=this._univerInstanceService.getUnit(e);if(r){let e=r.getSheetBySheetId(t);if(e){let t=e.getRowCount(),r=e.getRowManager();for(let i=1;i<=t;i++)e.getRowVisible(i)?r.getRowHeight(i)===0&&n.add(i):n.add(i)}}}_ensureZebraCrossingCache(e,t,n){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);let r=this._zebraCrossingCacheMap.get(e);r.has(t)||r.set(t,new Map);let i=r.get(t);return i.has(n)||i.set(n,new _n),i.get(n)}registerRangeThemeRule(e,t){let{unitId:n,subUnitId:r,range:i}=t,a=Ee(),o=this._ensureRangeThemeStyleRuleMap(n),s=this._ensureRTreeCollection(n);o.set(a,{rangeInfo:t,themeName:e}),s.insert({unitId:n,sheetId:r,range:i,id:a}),this._getSheetRowVisibleHasInit(n,r)||this.refreshSheetRowVisibleFuncSet(n,r);let c=this._ensureZebraCrossingCache(n,r,a),l=this._getSheetRowVisibleFuncSet(n,r);c.refresh(i,e=>!l.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(Vt.CELL_CONTENT,{id:Ut,effect:re.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 nn(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:[R.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()}};vn=Jt([G(0,j(K)),G(1,j(ee)),G(2,j(A))],vn);const yn={id:`sheet.mutation.set-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!H(e.get(A),t))return!1;let n=e.get(vn),{unitId:r,subUnitId:i,range:a,themeName:o}=t;return n.registerRangeThemeRule(o,{range:a,unitId:r,subUnitId:i}),!0}},bn=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`[SetWorksheetRangeThemeStyleMutation]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,subUnitId:r.getSheetId(),range:t.range,themeName:t.themeName}},xn={id:`sheet.mutation.remove-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!H(e.get(A),t))return!1;let n=e.get(vn),{unitId:r,subUnitId:i,range:a,themeName:o}=t;return n.removeRangeThemeRule(o,{range:a,unitId:r,subUnitId:i}),!0}},Sn=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`[DeleteWorksheetRangeThemeStyleMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,subUnitId:r.getSheetId(),range:t.range,themeName:t.themeName}},Cn=(e,t)=>{if(!zt(e.get(A),t))throw Error(`Workbook or Worksheet not found at InsertRowMutationUndoFactory`);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},wn={id:`sheet.mutation.insert-row`,type:u.MUTATION,handler:(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`Workbook or Worksheet not found at InsertRowMutation`);let{worksheet:r}=n,i=r.getRowManager(),{range:a,rowInfo:o}=t,{startRow:s,endRow:c}=a;i.insertRowsWithData(s,c,o);let l=c-s+1;return r.setRowCount(r.getRowCount()+l),r.getCellMatrix().insertRows(s,l),!0}},Tn=(e,t)=>{if(!zt(e.get(A),t))throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},En={id:`sheet.mutation.insert-col`,type:u.MUTATION,handler:(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`Workbook or Worksheet not found at InsertColMutation`);let{worksheet:r}=n,i=r.getColumnManager(),{range:a,colInfo:o}=t,{startColumn:s,endColumn:c}=a;i.insertColumnsWithData(s,c,o);let l=c-s+1;return r.setColumnCount(r.getColumnCount()+l),r.getCellMatrix().insertColumns(a.startColumn,l),!0}},Dn={id:`sheet.mutation.move-range`,type:u.MUTATION,handler:(e,t)=>{let{from:n,to:r}=t;if(!n||!r)return!1;let i=e.get(A).getCurrentUnitForType(R.UNIVER_SHEET);if(!i)return!1;let a=i.getSheetBySheetId(t.from.subUnitId),o=i.getSheetBySheetId(t.to.subUnitId);if(!a||!o)return!1;let s=a.getCellMatrix(),c=o.getCellMatrix();return new M(n.value).forValue((e,t,n)=>{n==null?s.realDeleteValue(e,t):s.setValue(e,t,n)}),new M(r.value).forValue((e,t,n)=>{n==null?c.realDeleteValue(e,t):c.setValue(e,t,n)}),!0}};function On(e,t){let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=i.startRow>a.startRow,s=i.endRow-i.startRow+1;return o?{unitId:n,subUnitId:r,sourceRange:I.clone(a),targetRange:{...i,endRow:i.endRow+s,startRow:i.startRow+s}}:{unitId:n,subUnitId:r,targetRange:I.clone(i),sourceRange:{...a,endRow:a.endRow-s,startRow:a.startRow-s}}}const kn={id:`sheet.mutation.move-rows`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=e.get(A).getUniverSheetInstance(n);if(!o)throw Error(`[MoveRowMutation] univerSheet is null!`);let s=o.getSheetBySheetId(r);if(!s)throw Error(`[MoveRowMutation] worksheet is null!`);let c=i.startRow,l=i.endRow-i.startRow+1,u=a.startRow;return Ve(c,l,u,s.getRowManager().getRowData()),s.getCellMatrix().moveRows(c,l,u),!0}};function An(e,t){let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=i.startColumn>a.startColumn,s=i.endColumn-i.startColumn+1;return o?{unitId:n,subUnitId:r,sourceRange:I.clone(a),targetRange:{...i,endColumn:i.endColumn+s,startColumn:i.startColumn+s}}:{unitId:n,subUnitId:r,targetRange:I.clone(i),sourceRange:{...a,startColumn:a.startColumn-s,endColumn:a.endColumn-s}}}const jn={id:`sheet.mutation.move-columns`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,sourceRange:i,targetRange:a}=t,o=e.get(A).getUniverSheetInstance(n);if(!o)throw Error(`[MoveColumnMutation] univerSheet is null!`);let s=o.getSheetBySheetId(r);if(!s)throw Error(`[MoveColumnMutation] worksheet is null!`);let c=i.startColumn,l=i.endColumn-i.startColumn+1,u=a.startColumn;return Ve(c,l,u,s.getColumnManager().getColumnData()),s.getCellMatrix().moveColumns(c,l,u),!0}},Mn=(e,t)=>{let n=t.getRowManager().getRowData(),r={},i=e.range,a=Se(r,Je(i.startRow,i.endRow,n));return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,rowInfo:a}},Nn={id:`sheet.mutation.remove-rows`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=t.range,a=r.getRowManager().getRowData(),o=[];for(let e=i.startRow;e<=i.endRow;e++)r.getRowFiltered(e)&&o.push(e);let s=i.endRow-i.startRow+1;return Ye(i.startRow,s,a),r.getCellMatrix().removeRows(i.startRow,s),r.setRowCount(r.getRowCount()-s),!0}},Pn=(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(r==null)throw Error(`worksheet is null error!`);let i=r.getColumnManager().getColumnData(),a={},o=t.range,s=Se(a,Je(o.startColumn,o.endColumn,i));return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:s}},Fn={id:`sheet.mutation.remove-col`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=t.range,a=r.getColumnManager().getColumnData(),o=i.endColumn-i.startColumn+1;return Ye(i.startColumn,o,a),r.setColumnCount(r.getColumnCount()-o),r.getCellMatrix().removeColumns(i.startColumn,o),!0}},In=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`Workbook or worksheet is null error!`);let{worksheet:r}=n,i=r.getConfig().mergeData,a=t.ranges,o=[];for(let e=0;e<a.length;e++)for(let t=i.length-1;t>=0;t--){let n=i[t],r=a[e];I.intersects(n,r)&&o.push(i[t])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:o}},q={id:`sheet.mutation.remove-worksheet-merge`,type:u.MUTATION,handler:(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`Workbook or worksheet is null error!`);let{worksheet:r}=n,i=r.getConfig().mergeData,a=t.ranges;for(let e=0;e<a.length;e++)for(let t=i.length-1;t>=0;t--){let n=i[t],r=a[e];I.intersects(n,r)&&i.splice(t,1)}return r.getSpanModel().rebuild(i),!0}},Ln=e=>{let{order:t}=e,n={};return Object.keys(t).forEach(e=>{n[t[Number(e)]]=Number(e)}),{...e,order:n}},Rn={id:`sheet.mutation.reorder-range`,type:u.MUTATION,handler:(e,t)=>{let{subUnitId:n,unitId:r,range:i,order:a}=t,o=e.get(A).getUnit(r).getSheetBySheetId(n);if(!o)return!1;let s=new M;F.foreach(i,(e,t)=>{if(a.hasOwnProperty(e)){let n=a[e],r=L.deepClone(o.getCellRaw(n,t));s.setValue(e,t,r)}});let c=o.getCellMatrix();return s.forValue((e,t,n)=>{c.setValue(e,t,n)}),!0}};function zn(e,t){if(e==null)return e;let n=L.deepClone(e);if(t==null)return n;let r={};return`h`in t&&(r.h=n.h),`ia`in t&&(r.ia=n.ia),`ah`in t&&(r.ah=n.ah),`hd`in t&&(r.hd=n.hd),`s`in t&&(r.s=n.s),`custom`in t&&(r.custom=n.custom),r}function Bn(e,t){if(e==null)return e;let n=L.deepClone(e);if(t==null)return n;let r={};return`w`in t&&(r.w=n.w),`hd`in t&&(r.hd=n.hd),`s`in t&&(r.s=n.s),`custom`in t&&(r.custom=n.custom),r}const Vn=(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]=Bn(o.getColumn(Number(e)),t)}return{unitId:n,subUnitId:r,columnData:a}},Hn={id:`sheet.mutation.set-col-data`,type:u.MUTATION,handler:(e,t)=>{let{columnData:n}=t,r=H(e.get(A),t);if(!r)return!1;let{worksheet:i}=r,a=i.getColumnManager();for(let e in n){let t=n[e];if(t==null){a.removeColumn(Number(e));continue}let r=a.getColumnOrCreate(Number(e));Object.assign(r,t)}return!0}},Un=(e,t)=>{if(e.get(A).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Wn={id:`sheet.mutation.set-col-hidden`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(!n)return!1;let i=n.getSheetBySheetId(t.subUnitId).getColumnManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startColumn;e<n.endColumn+1;e++){let t=i.getColumnOrCreate(e);t!=null&&(t.hd=r.TRUE)}}return!0}},Gn=(e,t)=>{if(e.get(A).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Kn={id:`sheet.mutation.set-col-visible`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(!n)return!1;let i=n.getSheetBySheetId(t.subUnitId).getColumnManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startColumn;e<n.endColumn+1;e++){let t=i.getColumnOrCreate(e);t!=null&&(t.hd=r.FALSE)}}return!0}},qn={id:`sheet.mutation.set-gridlines-color`,type:u.MUTATION,handler:(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{worksheet:r}=n,i=r.getConfig();return i.gridlinesColor=t.color,!0}};function Jn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Yn(e,t,n){for(let r of t)Object.prototype.hasOwnProperty.call(e,r)&&n(r,e[r])}function Xn(e,t,n){if(e==null)return e;if(!Jn(e))return;let r={},i=!1;if(Yn(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 Zn(e,t,n){if(e==null)return e;if(!Jn(e))return;let r={},i=!1;return Yn(e,t,(e,t)=>{let a=n(t);a!==void 0&&(r[e]=a,i=!0)}),i?r:void 0}function Qn(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 $n(e){return e==null||[`string`,`number`,`boolean`].includes(typeof e)}function er(e){return Xn(e,s)}function tr(e){return Xn(e,he,{cl:er})}function nr(e){return Xn(e,n,{cl:er})}function rr(e){return Zn(e,t,nr)}function ir(e){return Xn(e,ge)}function ar(e){return Xn(e,ue)}function or(e){if(e==null)return e;if(!(!Jn(e)||!Object.prototype.hasOwnProperty.call(e,`pattern`)||typeof e.pattern!=`string`))return{pattern:e.pattern}}function sr(e,t){switch(e){case`ul`:case`bbl`:case`st`:case`ol`:return tr(t);case`bg`:case`cl`:return er(t);case`bd`:return rr(t);case`tr`:return ir(t);case`pd`:return ar(t);case`n`:return or(t);default:return $n(t)?t:void 0}}function cr(e,n){if(n===null)return null;if(n===void 0)return e;let r=n,i=L.isObject(e)?{...e}:{};return Yn(r,t,(e,t)=>{let n=nr(t);n!==void 0&&(i[e]=n)}),i}function lr(e,t,n){let r=e.getStyleByCell(t);r==null&&delete t.s,typeof n.s==`string`&&(n.s=e.get(n.s));let i=fr(r,n.s?n.s:null);i&&(L.removeNull(i),Object.entries(i).forEach(([e,t])=>{typeof t==`object`&&t&&Object.keys(t).length===0&&delete i[e]})),L.isEmptyObject(i)?delete t.s:t.s=e.setValue(i);let a=n.v?`${n.v}\r\n`:``;if(!n.p&&t.p){var o;a&&a!==((o=t.p.body)==null?void 0:o.dataStream)?delete t.p:mr(t.p,n.s?n.s:null)}}function ur(e,t){if(!t||!Object.keys(t).length)return e;let n=L.deepClone(e==null?{}:e)||{},r=t;for(let e of me){if(!Object.prototype.hasOwnProperty.call(r,e))continue;let t=sr(e,r[e]);t!==void 0&&(e===`bd`?n[e]=dr(n[e]||{},t):e in n||(n[e]=null))}return n}function dr(e,n){if(!n||!Object.keys(n).length)return e;let r=e;for(let i of t)Object.prototype.hasOwnProperty.call(n,i)&&(i in e||(r[i]=null));return e}function fr(e,t,n=!1){if(t===null)return t;if(t===void 0)return e;let r=L.deepClone(e)||{},i=t;for(let e of me){if(!Object.prototype.hasOwnProperty.call(i,e)||n&&Qn(e))continue;let t=sr(e,i[e]);t!==void 0&&(e===`bd`?r[e]=cr(r[e],t):r[e]=t)}if(`cl`in r){let e=r,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 r}function pr(e,t){return e.some(e=>e.startIndex===t)?pr(e,t+1):t}function mr(e,t){var n;if(e.body==null)return;Array.isArray(e.body.textRuns)||(e.body.textRuns=[]);let r=0,i=[],a=((n=e.body)==null?void 0:n.paragraphs)||[];for(let n of e.body.textRuns){let{st:e,ed:o,ts:s={}}=n;if(r<e){let n={st:r,ed:e},a=fr({},t,!0);a&&L.removeNull(a),L.isEmptyObject(a)||(n.ts=a),i.push(n)}let c=fr(s,t,!0);c&&L.removeNull(c),L.isEmptyObject(c)?delete n.ts:n.ts=c,i.push(n),r=pr(a,o)}let o=e.body.dataStream.endsWith(`\r
2
+ `)?e.body.dataStream.length-2:e.body.dataStream.length;if(r<o){let e={st:r,ed:o},n=fr({},t,!0);n&&L.removeNull(n),L.isEmptyObject(n)||(e.ts=n),i.push(e)}e.body.textRuns=He(i)}function hr(e,t){return t.v===void 0||t.v===null?t.v:e===l.NUMBER?Number(t.v):e===l.BOOLEAN?gr(t.v)?1:0:e===l.STRING||e===l.FORCE_STRING?`${t.v}`:t.v}function gr(e){if(typeof e==`string`){if(e.toUpperCase()===`TRUE`)return!0;if(e.toUpperCase()===`FALSE`)return!1;if(Pe(e)){if(Number(e)===0)return!1;if(Number(e)===1)return!0}}if(typeof e==`number`){if(e===0)return!1;if(e===1)return!0}return typeof e==`boolean`?e:null}function _r(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 vr=(e,t)=>{let{unitId:n,subUnitId:r,cellValue:i}=t,a=e.get(A).getUniverSheetInstance(n);if(a==null)throw Error(`workbook is null error!`);let o=a.getSheetBySheetId(r);if(o==null)throw Error(`worksheet is null error!`);let s=o.getCellMatrix(),c=a.getStyles(),l=new M;return new M(i).forValue((e,t,n)=>{let r=L.deepClone(s==null?void 0:s.getValue(e,t))||{};r.s=ur(c.getStyleByCell(r),c.getStyleByCell(n)),l.setValue(e,t,_r(r))}),{...t,options:{},cellValue:l.getMatrix()}},J={id:`sheet.mutation.set-range-values`,type:u.MUTATION,handler:(e,t)=>{let{cellValue:n,subUnitId:r,unitId:i}=t,a=e.get(A).getUnit(i);if(!a)return!1;let o=a.getSheetBySheetId(r);if(!o)return!1;let s=o.getCellMatrix(),c=a.getStyles();return new M(n).forValue((e,t,n)=>{if(!n)s.realDeleteValue(e,t);else{let r=s.getValue(e,t)||{};r=br(n,r,c),L.isEmptyObject(r)?s.realDeleteValue(e,t):s.setValue(e,t,r)}}),!0}},yr=new Set([`f`,`p`,`si`,`custom`,`ref`,`xf`]);function br(e,t,n){let r=Pt(n,e,t);return Object.keys(e).forEach(i=>{let a=i;if(yr.has(a)){let n=e[a];xr(t,a,n)}else a===`v`?e.v!==void 0&&(t.v=hr(r,e)):a===`s`&&lr(n,t,e)}),t.v!==void 0&&(t.t=r,t.v=hr(r,t)),t.v===null&&(delete t.t,delete t.v),t}function xr(e,t,n){n===void 0||(n===null?delete e[t]:e[t]=n)}const Sr=(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]=zn(o.getRow(Number(e)),t)}return{unitId:n,subUnitId:r,rowData:a}},Cr={id:`sheet.mutation.set-row-data`,type:u.MUTATION,handler:(e,t)=>{let{rowData:n}=t,r=H(e.get(A),t);if(!r)return!1;let{worksheet:i}=r,a=i.getRowManager();for(let e in n){let t=n[e];if(t==null){a.removeRow(Number(e));continue}let r=a.getRowOrCreate(Number(e));Object.assign(r,t)}return!0}},wr=(e,t)=>{if(e.get(A).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Tr={id:`sheet.mutation.set-row-visible`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId).getRowManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startRow;e<n.endRow+1;e++){let t=r.getRowOrCreate(e);t!=null&&(t.hd=0)}}return!0}},Er=(e,t)=>{if(e.get(A).getUniverSheetInstance(t.unitId)==null)throw Error(`universheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Dr={id:`sheet.mutation.set-row-hidden`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId).getRowManager();for(let e=0;e<t.ranges.length;e++){let n=t.ranges[e];for(let e=n.startRow;e<n.endRow+1;e++){let t=r.getRowOrCreate(e);t!=null&&(t.hd=1)}}return!0}},Or=(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}},kr={id:`sheet.mutation.set-worksheet-col-width`,type:u.MUTATION,handler:(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{worksheet:r}=n,i=r.getColumnManager(),a=t.ranges;for(let e=0;e<a.length;e++){let n=a[e];for(let e=n.startColumn;e<n.endColumn+1;e++)r.getColVisible(e)&&(typeof t.colWidth==`number`?i.setColumnWidth(e,t.colWidth):L.isDefine(t.colWidth[e])&&i.setColumnWidth(e,t.colWidth[e]))}return!0}},Ar=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,columnCount:n.worksheet.getColumnCount()}},jr={id:`sheet.mutation.set-worksheet-column-count`,type:u.MUTATION,handler:(e,t)=>{let n=zt(e.get(A),t);return n?(n.worksheet.setColumnCount(t.columnCount),!0):!1}},Mr={id:`sheet.mutation.set-worksheet-default-style`,type:u.MUTATION,handler:(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{worksheet:r}=n,{defaultStyle:i}=t;return r.setDefaultCellStyle(i),!0}},Nr=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`[SetWorksheetDefaultStyleMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,subUnitId:r.getSheetId(),defaultStyle:r.getDefaultCellStyle()}},Pr=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!`);return{unitId:t.unitId,subUnitId:t.subUnitId,rowCount:n.worksheet.getRowCount()}},Fr={id:`sheet.mutation.set-worksheet-row-count`,type:u.MUTATION,handler:(e,t)=>{let n=zt(e.get(A),t);return n?(n.worksheet.setRowCount(t.rowCount),!0):!1}},Ir=(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}},Lr=(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}},Rr=(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}},zr={id:`sheet.mutation.set-worksheet-row-height`,type:u.MUTATION,handler:(e,t)=>{let{ranges:n,rowHeight:r}=t,i=H(e.get(A),t);if(!i)return!1;let{worksheet:a}=i,o=a.getRowManager();for(let{startRow:e,endRow:t}of n)for(let n=e;n<=t;n++)typeof r==`number`?o.setRowHeight(n,r):L.isDefine(r[n])&&o.setRowHeight(n,r[n]);return!0}},Br={id:`sheet.mutation.set-worksheet-row-is-auto-height`,type:u.MUTATION,handler:(e,t)=>{let{ranges:n,autoHeightInfo:r}=t,i=H(e.get(A),t);if(!i)return!1;let a=i.worksheet.getRowManager();for(let{startRow:e,endRow:t}of n)for(let n=e;n<=t;n++){let e=a.getRowOrCreate(n);if(typeof r==`number`)e.ia=r;else{var o;e.ia=(o=r[n])==null?void 0:o}}return!0}},Vr={id:`sheet.mutation.set-worksheet-row-auto-height`,type:u.MUTATION,handler:(e,t)=>{let{rowsAutoHeightInfo:n}=t,r=H(e.get(A),t);if(!r)return!1;let i=r.worksheet.getRowManager();for(let{row:e,autoHeight:t}of n){let n=i.getRowOrCreate(e);n.ah=t}return!0}},Hr={id:`sheet.mutation.toggle-gridlines`,type:u.MUTATION,handler:(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{worksheet:r}=n,i=r.getConfig();return i.showGridlines=t.showGridlines,!0}},Ur={id:`sheet.operation.set-worksheet-active`,type:u.OPERATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getWorksheets();for(let[,e]of r)if(e.getSheetId()===t.subUnitId)return n.setActiveSheet(e),!0;return!1}};let Wr=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}({}),Gr=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 Kr=[zr.id,Br.id,Vr.id,kr.id,Ur.id,kn.id,jn.id,Wn.id,Kn.id,Dr.id,Tr.id,En.id,wn.id,Fn.id,Nn.id,Hr.id,qn.id,Fr.id,jr.id],qr=[J.id,Dn.id,q.id,U.id,Rn.id,Mr.id,Cr.id,Hn.id,yn.id,xn.id];function Jr(e,t){switch(t.id){case Gr.SET_RANGE_VALUES:{let e=t.params,n=new M(e.cellValue).getDataRange();return n.endRow===-1?[]:e.cellValue?[{unitId:e.unitId,subUnitId:e.subUnitId,range:n}]:[]}case Gr.MOVE_RANGE:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.from.subUnitId,range:new M(e.from.value).getRange()},{unitId:e.unitId,subUnitId:e.to.subUnitId,range:new M(e.to.value).getRange()}]}case Gr.REMOVE_WORKSHEET_MERGE:{let e=t.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Gr.ADD_WORKSHEET_MERGE:{let e=t.params;return e.ranges.map(t=>({unitId:e.unitId,subUnitId:e.subUnitId,range:t}))}case Gr.REORDER_RANGE:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}case Gr.SET_WORKSHEET_DEFAULT_STYLE:{let n=H(e,t.params);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n;return[{unitId:i,subUnitId:a,range:{startRow:0,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1}}]}case Gr.SET_ROW_DATA:{let n=H(e,t.params);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,{rowData:o}=t.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 Gr.SET_COL_DATA:{let n=H(e,t.params);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,{columnData:o}=t.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 Gr.SET_WORKSHEET_RANGE_THEME_STYLE:case Gr.DELETE_WORKSHEET_RANGE_THEME_STYLE:{let e=t.params;return[{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}]}default:return[]}}function Yr(e,t){switch(e.id){case Wr.SET_WORKSHEET_ROW_HEIGHT:case Wr.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:P.ROW}}))}case Wr.SET_WORKSHEET_ROW_AUTO_HEIGHT:{let n=e.params;return n.rowsAutoHeightInfo.map(e=>({unitId:n.unitId,subUnitId:n.subUnitId,range:{startRow:e.row,endRow:e.row,startColumn:0,endColumn:t-1,rangeType:P.ROW}}))}case Wr.SET_WORKSHEET_COL_WIDTH:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:P.COLUMN}}))}case Wr.MOVE_ROWS:case Wr.MOVE_COLUMNS:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:t.targetRange},{unitId:t.unitId,subUnitId:t.subUnitId,range:t.sourceRange}]}case Wr.SET_COL_HIDDEN:case Wr.SET_COL_VISIBLE:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:P.COLUMN}}))}case Wr.SET_ROW_HIDDEN:case Wr.SET_ROW_VISIBLE:{let t=e.params;return t.ranges.map(e=>({unitId:t.unitId,subUnitId:t.subUnitId,range:{...e,rangeType:P.ROW}}))}case Wr.INSERT_COL:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:P.COLUMN}}]}case Wr.INSERT_ROW:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:P.ROW}}]}case Wr.REMOVE_COL:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:P.COLUMN}}]}case Wr.REMOVE_ROW:{let t=e.params;return[{unitId:t.unitId,subUnitId:t.subUnitId,range:{...t.range,rangeType:P.ROW}}]}case Wr.TOGGLE_GRIDLINES:case Wr.SET_GRIDLINES_COLOR:return[];default:return[]}}function Xr(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Zr(e,t){return e&&e.spanAnchor?Xr(t.getValue(e.spanAnchor.startRow,e.spanAnchor.startColumn)):Xr(e)}function Qr(e,t,n,r,i){let a=e.getCellMatrix(),o=e.getSpanModel().getMergedCellRange(t,n,r,i),s=new M;return a.forValue((e,t)=>{let n=a.getValue(e,t);n&&s.setValue(e,t,n)}),o.forEach(e=>{let{startColumn:t,startRow:n,endColumn:r,endRow:i}=e;Te(n,i,t,r).forEach((e,o)=>{e===n&&o===t&&s.setValue(e,o,{...a.getValue(e,o),spanAnchor:{startRow:n,endRow:i,startColumn:t,endColumn:r}}),(e!==n||o!==t)&&(s.realDeleteValue(e,o),s.setValue(e,o,{spanAnchor:{startRow:n,endRow:i,startColumn:t,endColumn:r}}))})}),s}function $r(e,t,n,r){let{startRow:i,startColumn:a,endRow:o}=e,s=null,c=!1;for(let e=i;e<=o;e++){let i=t.getValue(e,a-n);if(c=c||Zr(i,t),!r&&c)break;i&&i.spanAnchor&&(s=s?{startRow:Math.min(i.spanAnchor.startRow,s.startRow),startColumn:Math.min(i.spanAnchor.startColumn,s.startColumn),endRow:Math.max(i.spanAnchor.endRow,s.endRow),endColumn:Math.max(i.spanAnchor.endColumn,s.endColumn)}:{startRow:i.spanAnchor.startRow,startColumn:i.spanAnchor.startColumn,endRow:i.spanAnchor.endRow,endColumn:i.spanAnchor.endColumn})}return c?(e.startColumn-=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:I.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function ei(e,t,n,r){let{startRow:i,endColumn:a,endRow:o}=e,s=null,c=!1;for(let e=i;e<=o;e++){let i=t.getValue(e,a+n);if(c=c||Zr(i,t),!r&&c)break;i&&i.spanAnchor&&(s=s?{startRow:Math.min(i.spanAnchor.startRow,s.startRow),startColumn:Math.min(i.spanAnchor.startColumn,s.startColumn),endRow:Math.max(i.spanAnchor.endRow,s.endRow),endColumn:Math.max(i.spanAnchor.endColumn,s.endColumn)}:{startRow:i.spanAnchor.startRow,startColumn:i.spanAnchor.startColumn,endRow:i.spanAnchor.endRow,endColumn:i.spanAnchor.endColumn})}return c?(e.endColumn+=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:I.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function ti(e,t,n,r){let{startRow:i,startColumn:a,endColumn:o}=e,s=null,c=!1;for(let e=a;e<=o;e++){let a=t.getValue(i-n,e);if(c=c||Zr(a,t),!r&&c)break;a&&a.spanAnchor&&(s=s?{startRow:Math.min(a.spanAnchor.startRow,s.startRow),startColumn:Math.min(a.spanAnchor.startColumn,s.startColumn),endRow:Math.max(a.spanAnchor.endRow,s.endRow),endColumn:Math.max(a.spanAnchor.endColumn,s.endColumn)}:{startRow:a.spanAnchor.startRow,startColumn:a.spanAnchor.startColumn,endRow:a.spanAnchor.endRow,endColumn:a.spanAnchor.endColumn})}return c?(e.startRow-=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:I.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function ni(e,t,n,r){let{startColumn:i,endColumn:a,endRow:o}=e,s=null,c=!1;for(let e=i;e<=a;e++){let i=t.getValue(o+n,e);if(c=c||Zr(i,t),!r&&c)break;i&&i.spanAnchor&&(s=s?{startRow:Math.min(i.spanAnchor.startRow,s.startRow),startColumn:Math.min(i.spanAnchor.startColumn,s.startColumn),endRow:Math.max(i.spanAnchor.endRow,s.endRow),endColumn:Math.max(i.spanAnchor.endColumn,s.endColumn)}:{startRow:i.spanAnchor.startRow,startColumn:i.spanAnchor.startColumn,endRow:i.spanAnchor.endRow,endColumn:i.spanAnchor.endColumn})}return c?(e.endRow+=n,{spanAnchor:s,hasValue:!0,range:e}):s?{spanAnchor:I.simpleRangesIntersect(e,s)?s:null,hasValue:!1,range:e}:{spanAnchor:null,hasValue:!1,range:e}}function ri({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);Zr(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);Zr(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);Zr(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);Zr(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 ii(e,t,n){let r=n.getMaxRows(),i=n.getMaxColumns(),a=Qr(n,0,0,r-1,i-1),o=n.getSnapshot().mergeData.length>0,{left:s,right:c,up:l,down:u}=t,d=!0,f={...e},p=[];for(;d;){d=!1;let e=ri({range:f,allMatrixWithSpan:a,directions:t,isWorksheetHasSpan:o,maxRow:r,maxColumn:i});if(e.hasValue){f=e.range,d=!0;continue}if(l&&f.startRow!==0){let{hasValue:e,range:t,spanAnchor:n}=ti(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}if(u&&f.endRow!==r-1){let{hasValue:e,range:t,spanAnchor:n}=ni(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}if(s&&f.startColumn!==0){let{hasValue:e,range:t,spanAnchor:n}=$r(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}if(c&&f.endColumn!==i-1){let{hasValue:e,range:t,spanAnchor:n}=ei(f,a,1,o);if(n&&p.push(n),e){f=t,d=!0;continue}}}return p.length>0&&(f=I.union(f,...p)),f}const ai=e=>{let t=new M;return e.forEach(e=>{F.foreach(e,(e,n)=>{t.setValue(e,n,1)})}),t.forValue((e,n)=>{let r=t.getValue(e-1,n);r&&t.setValue(e,n,r+1)}),t},oi=e=>{let t=e;return t.forValue((n,r)=>{let i=e.getValue(n-1,r);i&&t.setValue(n,r,i+1)}),t},si=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},ci=(e,t)=>{F.foreach(t,(t,n)=>{e.realDeleteValue(t,n)});for(let n=t.startColumn;n<=t.endColumn;n++){let r=t.endRow+1;if(e.getValue(r,n)>0){e.setValue(r,n,1);let t=r+1;for(;e.getValue(t,n)>0;)e.setValue(t,n,e.getValue(t-1,n)+1),t++}}return e},li=e=>{let t=[],n=si(e);for(;n.area>0;)n.range&&(t.push(n.range),ci(e,n.range)),n=si(e);return t},ui=e=>li(ai(e));var di=class{constructor(){W(this,`_matrix`,new M)}add(...e){return e.forEach(e=>{F.foreach(e,(e,t)=>{this._matrix.setValue(e,t,1)})}),this}subtract(...e){return e.forEach(e=>{F.foreach(e,(e,t)=>{this._matrix.realDeleteValue(e,t)})}),this}merge(){return li(oi(this._matrix))}};const fi=1.5,pi=`rgba(255, 255, 255, 0.01)`;function mi(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=hi(n)),i}function hi(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 gi=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 _i=class{constructor(){W(this,`_tabCount`,0),W(this,`_commaCount`,0),W(this,`_semicolonCount`,0),W(this,`_spaceCount`,0)}add(e){switch(e){case` `:this._tabCount++;break;case`,`:this._commaCount++;break;case`;`:this._semicolonCount++;break;case` `:this._spaceCount++;break;default:break}}update(e){e&&typeof e==`string`&&(e.includes(` `)&&this._tabCount++,e.includes(`,`)&&this._commaCount++,e.includes(`;`)&&this._semicolonCount++,e.trim().includes(` `)&&this._spaceCount++)}getDelimiter(){let e=Math.max(this._tabCount,this._commaCount,this._semicolonCount,this._spaceCount);return e===0||e===this._tabCount?gi.Tab:e===this._commaCount?gi.Comma:e===this._semicolonCount?gi.Semicolon:e===this._spaceCount?gi.Space:gi.Tab}};function vi(e,t,n){let r=[];n!==void 0&&(e&gi.Custom)>0&&r.push(n),(e&gi.Tab)>0&&r.push(` `),(e&gi.Comma)>0&&r.push(`,`),(e&gi.Semicolon)>0&&r.push(`;`),(e&gi.Space)>0&&r.push(` `);let i=``;for(let e of r)i+=yi(e);let a=`[${i}]`;return t&&(a+=`+`),new RegExp(a)}function yi(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const bi=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function xi(e){if(e!=null){if(e.p)return bi(e.p);if(e.v&&typeof e.v==`string`)return e.v;if(e.t&&(e.t===l.FORCE_STRING||e.t===l.STRING))return String(e.v)}}function Si(e,t,n,r,i=!1){let{startColumn:a,startRow:o,endColumn:s,endRow:c}=F.transformRange(t,e);if(a!==s)throw Error(`The range must be in the same column.`);if(n&&(n&gi.Custom)>0&&(r===void 0||r.length!==1))throw Error(`The custom delimiter must a character.`);let l=n===void 0,u=l?new _i:null,d=[];for(let t=o;t<=c;t++){let n=xi(e.getCell(t,a));d.push(n),u&&u.update(n)}let f=vi(l?u.getDelimiter():n,i,r),p=-1,m=0,h=0,g=[];for(let e of d){if(e!==void 0){let t=String(e).split(f);p=p<0?t.length:Math.max(p,t.length),g.push(t),m=h}else g.push(void 0);h++}return{rs:g,maxLength:p===-1?0:p,lastRow:m}}const Ci=(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)},{}),wi=(e=0)=>{let t=e;return function(){return t++}};function Ti(e){return e==null?!1:e.v!==void 0&&e.v!==null&&e.v!==``||e.p!==void 0}function Ei(e,t){for(let n=e.startRow;n<=e.endRow;n++)for(let r=e.startColumn;r<=e.endColumn;r++)if(Ti(t.getCell(n,r)))return{startRow:n,startColumn:r,endRow:n,endColumn:r};return null}function Di(e){let t=new M;return e.forEach(e=>{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.setValue(e,n,null)}),t.clone()}function Oi(e){let t=new M;return e.forEach(e=>{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.setValue(e,n,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}function ki(e){let t=new M;return e.forEach(e=>{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.setValue(e,n,{s:null})}),t.clone()}function Ai(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 ji(e,t,n,r){let i=t.get(A),a=n?i.getUnit(n,R.UNIVER_SHEET):i.getCurrentUnitForType(R.UNIVER_SHEET),o=r?a==null?void 0:a.getSheetBySheetId(r):a==null?void 0:a.getActiveSheet();if(!o)return null;let{startRow:s,endRow:c,startColumn:l,endColumn:u}=e,d=[],f=[];for(let e=s;e<=c;e++)o.getRowFiltered(e)||d.push(e);for(let e=l;e<=u;e++)f.push(e);return{rows:d,cols:f}}function Mi(e,t,n,r){let i=H(t.get(A),{unitId:n,subUnitId:r});if(!i)return e;let{worksheet:a}=i,o=[];for(let t of e){let{startRow:e,endRow:n,startColumn:r,endColumn:i}=t,s=[],c=e;for(let t=e;t<=n;t++)a.getRowFiltered(t)?(c<t&&s.push([c,t-1]),c=t+1):t===n&&s.push([c,n]);let l=o.findIndex(e=>e.startColumn===r&&e.endColumn===i);l>-1?o[l].rowIntervals=o[l].rowIntervals.concat(s):o.push({startColumn:r,endColumn:i,rowIntervals:s})}let s=[];for(let e of o){let{startColumn:t,endColumn:n,rowIntervals:r}=e,i=Re(r);for(let[e,r]of i)s.push({startRow:e,endRow:r,startColumn:t,endColumn:n})}return s}let Ni=function(e){return e.OthersCanView=`othersCanView`,e.NoOneElseCanView=`noOneElseCanView`,e}({}),Pi=function(e){return e.DesignedUserCanEdit=`designedUserCanEdit`,e.OnlyMe=`onlyMe`,e}({});var Fi=class{constructor(){W(this,`_model`,new Map),W(this,`_ruleChange$`,new tt),W(this,`ruleChange$`,this._ruleChange$.asObservable()),W(this,`_ruleRefresh$`,new tt),W(this,`ruleRefresh$`,this._ruleRefresh$.asObservable()),W(this,`_rangeRuleInitStateChange`,new et(!1)),W(this,`rangeRuleInitStateChange$`,this._rangeRuleInitStateChange.asObservable())}dispose(){this._ruleChange$.complete(),this._ruleRefresh$.complete()}ruleRefresh(e){this._ruleRefresh$.next(e)}getRangeRuleInitState(){return this._rangeRuleInitStateChange.value}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,t,n){this._ensureRuleMap(e,t).set(n.id,n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:n,type:`add`})}deleteRule(e,t,n){var r;let i=(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.delete(n),this._ruleChange$.next({unitId:e,subUnitId:t,rule:i,type:`delete`})}}setRule(e,t,n,r){let i=this.getRule(e,t,n);if(i){var a;(a=this._model.get(e))==null||(a=a.get(t))==null||a.set(n,r),this._ruleChange$.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:`set`})}}getRule(e,t,n){var r;return(r=this._model.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}getSubunitRuleList(e,t){var n;return[...(((n=this._model.get(e))==null?void 0:n.get(t))||new Map).values()]}getSubunitRuleListLength(e,t){var n;let r=(n=this._model.get(e))==null?void 0:n.get(t);return r?r.size:0}_ensureRuleMap(e,t){let n=this._model.get(e);n||(n=new Map,this._model.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t),r=[...n.keys()];e[t]={},r.forEach(r=>{let i=n.get(r);e[t][r]=[...i.values()]})}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n],i=new Map;Object.keys(r).forEach(e=>{let t=r[e].reduce((e,t)=>(e.set(t.id,t),e),new Map);i.set(e,t)}),t.set(n,i)}),this._model=t}deleteUnitModel(e){this._model.delete(e)}createRuleId(e,t){let n=Ee(4),r=this._ensureRuleMap(e,t);for(;r.has(n);)n=Ee(4);return n}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 Ii=(e,t)=>{let n=e.get(Fi),r=t.ruleIds.map(e=>n.getRule(t.unitId,t.subUnitId,e)).filter(e=>!!e);return{id:zi.id,params:{subUnitId:t.subUnitId,unitId:t.unitId,rules:r}}},Li={id:`sheet.mutation.delete-range-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,ruleIds:i}=t,a=e.get(Fi);return i.forEach(e=>{a.deleteRule(n,r,e)}),!0}},Ri=e=>{let t={...e,ruleIds:e.rules.map(e=>e.id)};return{id:Li.id,params:t}},zi={id:`sheet.mutation.add-range-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rules:i}=t,a=e.get(Fi);return i.forEach(e=>{a.addRule(n,r,e)}),!0}},Bi={type:u.COMMAND,id:`sheet.command.add-range-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(k),i=e.get(Fi),{rule:a,permissionId:o}=t,{unitId:s,subUnitId:c,ranges:l,description:u,viewState:d,editState:f}=a,p=[{ranges:l,permissionId:o,id:i.createRuleId(s,c),description:u,unitType:a.unitType,unitId:s,subUnitId:c,viewState:d,editState:f}];if(await n.executeCommand(zi.id,{unitId:s,subUnitId:c,rules:p})){let e=[{id:zi.id,params:{unitId:s,subUnitId:c,rules:p}}],t=[{id:Li.id,params:{unitId:s,subUnitId:c,ruleIds:p.map(e=>e.id)}}];r.pushUndoRedo({unitID:s,redoMutations:e,undoMutations:t})}return!0}};let Vi=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 Hi=class extends h{constructor(e){super(),this._workbook=e,W(this,`_worksheetSelections`,new Map),W(this,`_worksheetLastSelectionPrimaryCell`,new Map),W(this,`_selectionMoveStart$`,new tt),W(this,`selectionMoveStart$`,this._selectionMoveStart$.asObservable()),W(this,`_selectionMoving$`,new tt),W(this,`selectionMoving$`,this._selectionMoving$.asObservable()),W(this,`_selectionMoveEnd$`,new et([])),W(this,`selectionMoveEnd$`,this._selectionMoveEnd$.asObservable()),W(this,`_selectionSet$`,new et([])),W(this,`selectionSet$`,this._selectionSet$.asObservable()),W(this,`selectionChanged$`,void 0),W(this,`_beforeSelectionMoveEnd$`,new et([])),W(this,`beforeSelectionMoveEnd$`,this._beforeSelectionMoveEnd$.asObservable()),this.selectionChanged$=ot(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 Vi.MOVE_START:this._selectionMoveStart$.next(t);break;case Vi.MOVING:this._selectionMoving$.next(t);break;case Vi.MOVE_END:this._beforeSelectionMoveEnd$.next(t),this._selectionMoveEnd$.next(t);break;case Vi.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 Y=class extends pe{get _currentSelectionPos(){let e=this._instanceSrv.getCurrentUnitForType(R.UNIVER_SHEET);if(!e)return null;let t=e.getActiveSheet();return{unitId:e.getUnitId(),sheetId:t.getSheetId()}}get currentSelectionParam(){return this._currentSelectionPos}constructor(e){super(),this._instanceSrv=e,W(this,`_cellStylesCache`,new Map),W(this,`selectionMoveStart$`,void 0),W(this,`selectionMoving$`,void 0),W(this,`selectionMoveEnd$`,void 0),W(this,`selectionSet$`,void 0),W(this,`selectionChanged$`,void 0),W(this,`_workbookSelections`,new Map),this._init()}_init(){let e=this._instanceSrv.getCurrentTypeOfUnit$(R.UNIVER_SHEET).pipe(ct(1),dt(this.dispose$));this.selectionMoveStart$=e.pipe().pipe(ut(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveStart$:st())).pipe(dt(this.dispose$)),this.selectionMoving$=e.pipe(ut(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoving$:st())).pipe(dt(this.dispose$)),this.selectionMoveEnd$=e.pipe(ut(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionMoveEnd$:st([]))).pipe(dt(this.dispose$)),this.selectionSet$=e.pipe(ut(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionSet$:st([]))).pipe(dt(this.dispose$)),this.selectionChanged$=e.pipe(ut(e=>e?this._ensureWorkbookSelection(e.getUnitId()).selectionChanged$:st([]))).pipe(nt((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),lt(1)).pipe(dt(this.dispose$)),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(R.UNIVER_SHEET).pipe(dt(this.dispose$)).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId())})),this.disposeWithMe(this.selectionChanged$.pipe(dt(this.dispose$)).subscribe(()=>{this._cellStylesCache.clear()}))}dispose(){super.dispose(),this._cellStylesCache.clear(),this._workbookSelections.forEach(e=>e.dispose()),this._workbookSelections.clear(),this.selectionMoveStart$=st(null),this.selectionMoving$=st(null),this.selectionMoveEnd$=st([]),this.selectionSet$=st(null),this.selectionChanged$=st(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?Vi.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?Vi.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 Hi(n),this._workbookSelections.set(e,t)}return t}_removeWorkbookSelection(e){this._workbookSelections.delete(e)}getCellStylesProperty(e){var t;let n=(t=this._instanceSrv.getCurrentUnitForType(R.UNIVER_SHEET))==null?void 0:t.getActiveSheet(),r=this.getCurrentSelections();if(!n||r.length===0)return{isAllValuesSame:!1,value:null};let i=null;for(let t=0;t<r.length;t++){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=r[t].range;for(let t=a;t<=o;t++)for(let r=s;r<=c;r++){let a=`${t}_${r}`,o;this._cellStylesCache.has(a)?o=this._cellStylesCache.get(a):(o=n.getComposedCellStyle(t,r),this._cellStylesCache.set(a,o));let s=o[e];if(i!=null&&!L.diffValue(i,s))return{isAllValuesSame:!1,value:null};i=s}}return{isAllValuesSame:!0,value:i}}};Y=Jt([G(0,A)],Y);const Ui=`DISABLE_NORMAL_SELECTIONS`,Wi=`SELECTIONS_ENABLED`,Gi=`REF_SELECTIONS_ENABLED`,Ki={id:`sheet.command.clear-selection-all`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(A),i=e.get(C),a=e.get(Y),o=e.get(k),s=e.get(K),c=r.getCurrentUnitForType(R.UNIVER_SHEET);if(!c)return!1;let l=(t==null?void 0:t.unitId)||c.getUnitId(),u=c.getActiveSheet();if(!u)return!1;let d=(t==null?void 0:t.subUnitId)||u.getSheetId(),f=(t==null?void 0:t.ranges)||((n=a.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(f!=null&&f.length))return!1;let p=Mi(f,e,l,d),m=[],h=[],g={subUnitId:d,unitId:l,cellValue:Di(p)},_=vr(e,g);m.push({id:J.id,params:g}),h.push({id:J.id,params:_});let v=s.onCommandExecute({id:Ki.id});return m.push(...v.redos),h.unshift(...v.undos),z(m,i)?(o.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:m}),!0):!1}},qi={id:`sheet.command.clear-selection-format`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(A),i=e.get(C),a=e.get(Y),o=e.get(k),s=e.get(K),c=r.getCurrentUnitForType(R.UNIVER_SHEET);if(!c)return!1;let l=(t==null?void 0:t.unitId)||c.getUnitId(),u=c.getActiveSheet();if(!u)return!1;let d=(t==null?void 0:t.subUnitId)||u.getSheetId(),f=(t==null?void 0:t.ranges)||((n=a.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(f!=null&&f.length))return!1;let p=Mi(f,e,l,d),m=[],h=[],g={subUnitId:d,unitId:l,cellValue:ki(p)},_=vr(e,g);m.push({id:J.id,params:g}),h.push({id:J.id,params:_});let v=s.onCommandExecute({id:qi.id});return m.push(...v.redos),h.unshift(...v.undos),z(m,i)?(o.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:m}),!0):!1}};function Ji(e,t,n=!0){let r=t.getMatrixWithMergedCells(...qe(e)),i=[];if(r.forValue((t,n,r)=>{if(r.colSpan!==void 0&&r.rowSpan!==void 0){let a={startRow:t,startColumn:n,endRow:t+r.rowSpan-1,endColumn:n+r.colSpan-1};I.contains(e,a)||i.push(a)}}),i.length===0)return e;let a=I.union(e,...i);return n?Ji(a,t,n):a}function Yi(e,t,n){let r=null;return n.getMatrixWithMergedCells(e,t,e,t).forValue((e,t,n)=>(r={actualRow:e,actualColumn:t,startRow:e,startColumn:t,isMerged:n.rowSpan!==void 0||n.colSpan!==void 0,isMergedMainCell:n.rowSpan!==void 0&&n.colSpan!==void 0,endRow:e+(n.rowSpan===void 0?0:n.rowSpan-1),endColumn:t+(n.colSpan===void 0?0:n.colSpan-1),rangeType:P.NORMAL},!1)),r||{actualColumn:t,actualRow:e,startRow:e,startColumn:t,endRow:e,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:P.NORMAL}}function Xi(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 Zi(e,t){let n=Number.isNaN(e.startRow)?0:e.startRow,r=Number.isNaN(e.startColumn)?0:e.startColumn,i=t.getMergedCell(n,r);return i?{...i,actualRow:n,actualColumn:r,rangeType:P.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:r,endRow:e.startRow,endColumn:e.startColumn,actualRow:n,actualColumn:r,rangeType:P.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Qi=(e,t,n)=>({id:X.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),reveal:!0,selections:[{range:e,primary:Zi(e,n)}]}});function $i(e){if(!e)return!1;let{range:t,primary:n}=e;return I.equals(t,n)}function ea(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 ta=e=>e.id!==Ut;function na(e,t,n,r,i,a,o){let s={};for(let c=t;c<=n;c++)for(let t=r;t<=i;t++){let n=a?e.getCellWithFilteredInterceptors(o,t,Wt,ta):e.getCellWithFilteredInterceptors(c,o,Wt,ta);!n||!n.s||(s[c]||(s[c]={}),s[c][t]={s:n.s})}for(let e in s){for(let t in s[e]){let n=s[e][t];n.s&&typeof n.s==`object`&&L.isEmptyObject(n.s)&&delete n.s,L.isEmptyObject(n)&&delete s[e][t]}L.isEmptyObject(s[e])&&delete s[e]}return s}const ra=Ce(`sheets-formula.ref-selections.service`);let ia=class extends Y{constructor(e){super(e)}_init(){let e=this._getAliveWorkbooks$().pipe(dt(this.dispose$));this.selectionMoveStart$=e.pipe(ut(e=>ot(...e.map(e=>e.selectionMoveStart$)))),this.selectionMoving$=e.pipe(ut(e=>ot(...e.map(e=>e.selectionMoving$)))),this.selectionMoveEnd$=e.pipe(ut(e=>ot(...e.map(e=>e.selectionMoveEnd$)))),this.selectionSet$=e.pipe(ut(e=>ot(...e.map(e=>e.selectionSet$))))}dispose(){super.dispose(),this.selectionMoveStart$=st(null),this.selectionMoving$=st(null),this.selectionMoveEnd$=st(null),this.selectionSet$=st(null),delete this._instanceSrv,this._workbookSelections.clear()}_getAliveWorkbooks$(){let e=this._instanceSrv.getAllUnitsForType(R.UNIVER_SHEET);e.forEach(e=>this._ensureWorkbookSelection(e.getUnitId()));let t=new et(e);return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(R.UNIVER_SHEET).subscribe(e=>{this._ensureWorkbookSelection(e.getUnitId()),t.next([...t.getValue(),e])})),this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(R.UNIVER_SHEET).subscribe(e=>{this._removeWorkbookSelection(e.getUnitId()),t.next(t.getValue().filter(t=>t!==e))})),t.pipe(at(e=>e.map(e=>this._ensureWorkbookSelection(e.getUnitId()))))}};ia=Jt([G(0,A)],ia);function aa(e,t){let n=e.get(E).getContextValue(Gi);return e.get(n&&!t?ra:Y)}const X={id:`sheet.operation.set-selections`,type:u.OPERATION,handler:(e,t)=>{if(!t)return!1;let{selections:n,type:r,unitId:i,subUnitId:a}=t;return aa(e).setSelections(i,a,[...n],r),!0}},oa={id:`sheet.command.select-range`,type:u.COMMAND,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnit:r,range:i}=t,a=e.get(C),o=H(e.get(A),t);if(!o)return!1;let s=[{range:i,primary:Zi(i,o.worksheet),style:null}];return a.syncExecuteCommand(X.id,{unitId:n,subUnitId:r,selections:s})}},sa=`sheet.command.move-range`,ca={type:u.COMMAND,id:sa,handler:async(e,t)=>{let n=e.get(C),r=e.get(k),i=e.get(v),a=e.get(oe);if(!await e.get(K).beforeCommandExecute({id:ca.id,params:t}))return!1;let o=ua(e,t);return o?z(o.redos,n).result?(r.pushUndoRedo({unitID:o.unitId,undoMutations:o.undos,redoMutations:o.redos}),!0):!1:(i.emit(a.t(`sheets.info.acrossMergedCell`)),!1)}};function la(e,t){var n,r,i,a,o;let s=e.get(A),c=H(s),l=(n=(r=t.toUnitId)==null?t.fromUnitId:r)==null?c==null?void 0:c.unitId:n,u=(i=t.fromSubUnitId)==null?c==null?void 0:c.subUnitId:i,d=(a=(o=t.toSubUnitId)==null?t.fromSubUnitId:o)==null?c==null?void 0:c.subUnitId:a;if(!l||!u||!d||t.fromUnitId&&t.toUnitId&&t.fromUnitId!==t.toUnitId)return null;let f=s.getUniverSheetInstance(l),p=f==null?void 0:f.getSheetBySheetId(u),m=f==null?void 0:f.getSheetBySheetId(d);return!p||!m?null:{unitId:l,fromSubUnitId:u,toSubUnitId:d,fromWorksheet:p,toWorksheet:m}}function ua(e,t,n={}){var r,i;let{includeSelection:a=!0,includeAfterCommand:o=!0,includeAutoHeight:s=!0}=n,c=la(e,t);if(!c)return null;let l=e.get(K),{unitId:u,fromSubUnitId:d,toSubUnitId:f,fromWorksheet:p,toWorksheet:m}=c,h=da(e,{unitId:u,subUnitId:d,range:t.fromRange},{unitId:u,subUnitId:f,range:t.toRange});if(h===null)return null;let g={id:ca.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:X.id,params:{unitId:u,subUnitId:f,selections:[{range:t.toRange,primary:fa(t.fromRange,t.toRange,p,m)}],type:Vi.MOVE_END}}),y.push({id:X.id,params:{unitId:u,subUnitId:d,selections:[{range:t.fromRange,primary:Zi(t.fromRange,p)}],type:Vi.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 da(e,t,n,r=!1){let i=[],a=[],{range:o,subUnitId:s,unitId:c}=t,{range:l,subUnitId:u}=n,d=e.get(A).getUniverSheetInstance(c),f=d==null?void 0:d.getSheetBySheetId(u),p=d==null?void 0:d.getSheetBySheetId(s),m=f==null?void 0:f.getCellMatrix(),h=p==null?void 0:p.getCellMatrix();if(f&&p&&m&&h){let e=Ji(l,f,!1);if(!I.equals(l,e)&&!r)return null;let p=new M,g=new M,_=new M;F.foreach(o,(e,t)=>{let n=h.getValue(e,t);if(p.setValue(e,t,L.deepClone(n)),n){let r=d==null?void 0:d.getStyles().get(n.s);_.setValue(e,t,L.deepClone(r))}g.setValue(e,t,null)});let v=new M,y=new M;F.foreach(l,(e,t)=>{v.setValue(e,t,L.deepClone(m.getValue(e,t)))}),F.foreach(o,(e,t)=>{let n=ye(e,t),r=I.getRelativeRange(n,o),i=I.getPositionRange(r,l),a=L.deepClone(_.getValue(e,t)),s=L.deepClone(p.getValue(e,t));s&&a&&(s.s=a),y.setValue(i.startRow,i.startColumn,s)});let b={fromRange:t.range,toRange:n.range,from:{value:g.getMatrix(),subUnitId:s},to:{value:y.getMatrix(),subUnitId:u},unitId:c},x={fromRange:n.range,toRange:t.range,from:{value:p.getMatrix(),subUnitId:s},to:{value:v.getMatrix(),subUnitId:u},unitId:c};i.push({id:Dn.id,params:b}),a.push({id:Dn.id,params:x})}return{redos:i,undos:a}}function fa(e,t,n,r=n){let i=e.startRow,a=e.startColumn,o=n.getMergedCell(i,a),s=Zi(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 pa=class{constructor(e,t,n){W(this,`type`,V.SelectRange),W(this,`subType`,B.Edit),W(this,`status`,N.INIT),W(this,`value`,!0),W(this,`id`,void 0),W(this,`unitId`,void 0),W(this,`subUnitId`,void 0),W(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${V.SelectRange}.${B.Edit}.${n}`}},ma=class{constructor(e,t,n){W(this,`type`,V.SelectRange),W(this,`subType`,B.View),W(this,`status`,N.INIT),W(this,`value`,!1),W(this,`id`,void 0),W(this,`unitId`,void 0),W(this,`subUnitId`,void 0),W(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${V.SelectRange}.${B.View}.${n}`}},ha=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.Comment),this.unitId=e,this.id=`${this.type}.${B.Comment}_${e}`}},ga=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.Copy),this.unitId=e,this.id=`${this.type}.${B.Copy}_${e}`}},_a=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`subType`,B.CopySheet),W(this,`status`,N.INIT),this.unitId=e,this.id=`${this.type}.${B.CopySheet}_${e}`}},va=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.CreatePermissionObject),this.unitId=e,this.id=`${this.type}.${B.CreatePermissionObject}_${e}`}},ya=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.CreateSheet),this.unitId=e,this.id=`${this.type}.${B.CreateSheet}_${e}`}},ba=class{constructor(e){this.unitId=e,W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.DeleteColumn),this.id=`${this.type}.${B.DeleteColumn}_${e}`}},xa=class{constructor(e){this.unitId=e,W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.DeleteRow),this.id=`${this.type}.${B.DeleteRow}_${e}`}},Sa=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.DeleteSheet),this.unitId=e,this.id=`${this.type}.${B.DeleteSheet}_${e}`}},Ca=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.Duplicate),this.unitId=e,this.id=`${this.type}.${B.Duplicate}_${e}`}},wa=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.Edit),this.unitId=e,this.id=`${this.type}.${B.Edit}_${e}`}},Ta=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.Export),this.unitId=e,this.id=`${this.type}.${B.Export}_${e}`}},Ea=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.HideSheet),this.unitId=e,this.id=`${this.type}.${B.HideSheet}_${e}`}},Da=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.History),this.unitId=e,this.id=`${this.type}.${B.History}_${e}`}},Oa=class{constructor(e){this.unitId=e,W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.InsertColumn),this.id=`${this.type}.${B.InsertColumn}_${e}`}},ka=class{constructor(e){this.unitId=e,W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.InsertRow),this.id=`${this.type}.${B.InsertRow}_${e}`}},Aa=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.ManageCollaborator),this.unitId=e,this.id=`${this.type}.${B.ManageCollaborator}_${e}`}},ja=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.MoveSheet),this.unitId=e,this.id=`${this.type}.${B.MoveSheet}_${e}`}},Ma=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.Print),this.unitId=e,this.id=`${this.type}.${B.Print}_${e}`}},Na=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.RecoverHistory),this.unitId=e,this.id=`${this.type}.${B.RecoverHistory}_${e}`}},Pa=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.RenameSheet),this.unitId=e,this.id=`${this.type}.${B.RenameSheet}_${e}`}},Fa=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.Share),this.unitId=e,this.id=`${this.type}.${B.Share}_${e}`}},Ia=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.View),this.unitId=e,this.id=`${this.type}.${B.View}_${e}`}},La=class{constructor(e){this.unitId=e,W(this,`id`,void 0),W(this,`value`,!0),W(this,`type`,V.Workbook),W(this,`status`,N.INIT),W(this,`subType`,B.ViewHistory),this.unitId=e,this.id=`${this.type}.${B.ViewHistory}_${e}`}},Ra=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.Copy),this.id=`${this.type}.${B.Copy}_${e}_${t}`}},za=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.DeleteColumn),this.id=`${this.type}.${B.DeleteColumn}_${e}_${t}`}},Ba=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.Delete),this.id=`${this.type}.${B.Delete}_${e}_${t}`}},Va=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.DeleteRow),this.id=`${this.type}.${B.DeleteRow}_${e}_${t}`}},Ha=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.Edit),this.id=`${this.type}.${B.Edit}_${e}_${t}`}},Ua=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.EditExtraObject),this.id=`${this.type}.${B.EditExtraObject}_${e}_${t}`}},Wa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.Filter),this.id=`${this.type}.${B.Filter}_${e}_${t}`}},Ga=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.InsertColumn),this.id=`${this.type}.${B.InsertColumn}_${e}_${t}`}},Ka=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.InsertHyperlink),this.id=`${this.type}.${B.InsertHyperlink}_${e}_${t}`}},qa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.InsertRow),this.id=`${this.type}.${B.InsertRow}_${e}_${t}`}},Ja=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.ManageCollaborator),this.id=`${this.type}.${B.ManageCollaborator}_${e}_${t}`}},Ya=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.PivotTable),this.id=`${this.type}.${B.PivotTable}_${e}_${t}`}},Xa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.SelectProtectedCells),this.id=`${this.type}.${B.SelectProtectedCells}_${e}_${t}`}},Za=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.SelectUnProtectedCells),this.id=`${this.type}.${B.SelectUnProtectedCells}_${e}_${t}`}},Qa=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.SetCellStyle),this.id=`${this.type}.${B.SetCellStyle}_${e}_${t}`}},$a=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.SetCellValue),this.id=`${this.type}.${B.SetCellValue}_${e}_${t}`}},eo=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.SetColumnStyle),this.id=`${this.type}.${B.SetColumnStyle}_${e}_${t}`}},to=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.SetRowStyle),this.id=`${this.type}.${B.SetRowStyle}_${e}_${t}`}},no=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.Sort),this.id=`${this.type}.${B.Sort}_${e}_${t}`}},ro=class{constructor(e,t){this.unitId=e,this.subUnitId=t,W(this,`value`,!0),W(this,`type`,V.Worksheet),W(this,`status`,N.INIT),W(this,`id`,void 0),W(this,`subType`,B.View),this.id=`${this.type}.${B.View}_${e}_${t}`}};const io={id:`sheet.command.set-range-values`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(k),o=e.get(A),s=e.get(Y),c=e.get(K),l=e.get(O),u=H(o,t);if(!u)return!1;let{subUnitId:d,unitId:f,workbook:p,worksheet:m}=u,{value:h,range:g,redoUndoId:_}=t,v=g?[g]:(n=s.getCurrentSelections())==null?void 0:n.map(e=>e.range);if(!v||!v.length||!l.getPermissionPoint(new Ha(f,d).id))return!1;let y=new M,b;if(L.isArray(h))for(let e=0;e<v.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=v[e];for(let e=0;e<=r-t;e++)for(let r=0;r<=i-n;r++)y.setValue(e+t,r+n,h[e][r])}else if(Me(h))for(let e=0;e<v.length;e++){let{startRow:t,startColumn:n,endRow:r,endColumn:i}=v[e];for(let e=t;e<=r;e++)for(let t=n;t<=i;t++)y.setValue(e,t,h)}else b=h;let x={subUnitId:d,unitId:f,cellValue:(r=b)==null?y.getMatrix():r},S=vr(e,x),w=Ie(x.cellValue,(e,t)=>m.getCellHeight(e,t)||void 0);if(!i.syncExecuteCommand(J.id,x))return!1;let{undos:T,redos:E}=c.onCommandExecute({id:io.id,params:x}),{undos:D,redos:ee}=c.generateMutationsOfAutoHeight({unitId:f,subUnitId:d,ranges:v,cellHeights:new M(w)});if(z([...E,...ee],i).result){let e=Qi(g==null?y.getRange():g,p,m);return a.pushUndoRedo({unitID:f,undoMutations:[{id:J.id,params:S},...T,...D,e],redoMutations:[{id:J.id,params:x},...E,...ee,L.deepClone(e)],id:_}),!0}return!1}};function ao(e,t){let n=[],r=[],{unitId:i,subUnitId:a,range:o,shiftDimension:s,cellValue:c={}}=t,l=e.get(A),u=e.get(K),d=l.getUniverSheetInstance(i),f=d==null?void 0:d.getSheetBySheetId(a);if(f){let t=f.getCellMatrix(),l=t.getDataRange();if(o.startColumn<=l.endColumn||o.startRow<=l.endRow){let c,u;if(s===p.COLUMNS){let e=Math.min(o.endRow,l.endRow),n=0;for(let r=o.startRow;r<=e;r++){let e=t.getRow(r),i=e?De(e)-1:0;n=Math.max(n,i)}c={startRow:o.startRow,startColumn:o.startColumn,endRow:e,endColumn:n};let r=o.endColumn-o.startColumn+1;u={startRow:o.startRow,startColumn:c.startColumn+r,endRow:e,endColumn:c.endColumn+r}}else{let e=Math.min(o.endColumn,l.endColumn),t=l.endRow;c={startRow:o.startRow,startColumn:o.startColumn,endRow:t,endColumn:e};let n=o.endRow-o.startRow+1;u={startRow:c.startRow+n,startColumn:o.startColumn,endRow:c.endRow+n,endColumn:e}}let d=da(e,{unitId:i,subUnitId:a,range:c},{unitId:i,subUnitId:a,range:u},!0);d&&(n.push(...d.redos),r.push(...d.undos))}if(Object.entries(c).length===0)for(let e=o.startRow;e<=o.endRow;e++){c[e]||(c[e]={});for(let t=o.startColumn;t<=o.endColumn;t++)c[e][t]=null}let d={subUnitId:a,unitId:i,cellValue:c},m=vr(e,d),{undos:h,redos:g}=u.onCommandExecute({id:io.id,params:{...d,range:o}});n.push({id:J.id,params:d},...g),r.push({id:J.id,params:m},...h)}return{redo:n,undo:r}}function oo(e,t){let n=[],r=[],{unitId:i,subUnitId:a,range:o,shiftDimension:s}=t,c=e.get(A),l=e.get(K),u=c.getUniverSheetInstance(i),d=u==null?void 0:u.getSheetBySheetId(a);if(d){let t=d.getCellMatrix(),c=t.getDataRange(),u={subUnitId:a,unitId:i,cellValue:Di([o])},f=vr(e,u),m=l.onCommandExecute({id:io.id,params:u});if(n.push({id:J.id,params:u},...m.redos),r.push(...m.undos,{id:J.id,params:f}),o.startColumn<=c.endColumn||o.startRow<=c.endRow){let l=null,u=null;if(s===p.COLUMNS&&o.endColumn<c.endColumn){let e=Math.min(o.endRow,c.endRow),n=0;for(let r=o.startRow;r<=e;r++){let e=t.getRow(r),i=e?De(e)-1:0;n=Math.max(n,i)}l={startRow:o.startRow,startColumn:o.endColumn+1,endRow:e,endColumn:n};let r=o.endColumn-o.startColumn+1;u={startRow:o.startRow,startColumn:l.startColumn-r,endRow:e,endColumn:l.endColumn-r}}if(s===p.ROWS&&o.endRow<c.endRow){let e=Math.min(o.endColumn,c.endColumn),t=c.endRow;l={startRow:o.endRow+1,startColumn:o.startColumn,endRow:t,endColumn:e};let n=o.endRow-o.startRow+1;u={startRow:l.startRow-n,startColumn:o.startColumn,endRow:l.endRow-n,endColumn:e}}if(l&&u){let t=da(e,{unitId:i,subUnitId:a,range:l},{unitId:i,subUnitId:a,range:u},!0);t&&(n.push(...t.redos),r.push(...t.undos))}}}return{redo:n,undo:r}}function so(e,t,n,r,i,a){let{startRow:o,endRow:s,startColumn:c,endColumn:l}=t;if(i===p.ROWS){let t=s-o+1;for(let r=n;r>=o;r--)for(let n=c;n<=l;n++){let i=e.getValue(r,n);i==null?e.realDeleteValue(r+t,n):e.setValue(r+t,n,i)}for(let t=s;t>=o;t--)for(let n=c;n<=l;n++)a&&a[t]&&a[t][n]?e.setValue(t,n,a[t][n]):e.realDeleteValue(t,n)}else if(i===p.COLUMNS){let t=l-c+1;for(let n=o;n<=s;n++)for(let i=r;i>=c;i--){let r=e.getValue(n,i);r==null?e.realDeleteValue(n,i+t):e.setValue(n,i+t,r)}for(let t=o;t<=s;t++)for(let n=l;n>=c;n--)a&&a[t]&&a[t][n]?e.setValue(t,n,a[t][n]):e.realDeleteValue(t,n)}}function co(e,t,n,r,i){let{startRow:a,endRow:o,startColumn:s,endColumn:c}=t,l=o-a+1,u=c-s+1;if(i===p.ROWS)for(let t=a;t<=n;t++)for(let n=s;n<=c;n++){let r=e.getValue(t+l,n);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}else if(i===p.COLUMNS)for(let t=a;t<=o;t++)for(let n=s;n<=r;n++){let r=e.getValue(t,n+u);r==null?e.realDeleteValue(t,n):e.setValue(t,n,r)}}const lo=`sheet.command.delete-range-move-left`,uo={type:u.COMMAND,id:lo,handler:async(e,t)=>{var n,r;let i=e.get(C),a=e.get(k),o=e.get(A),s=e.get(Y),c=e.get(K),l=H(o);if(!l)return!1;let{worksheet:u,workbook:d,subUnitId:f,unitId:m}=l,h=t==null?void 0:t.range;if(!h){var g;h=(g=s.getCurrentLastSelection())==null?void 0:g.range}if(!h)return!1;let _={range:h,subUnitId:f,unitId:m,shiftDimension:p.COLUMNS},v=c.onCommandExecute({id:uo.id,params:{range:h}}),{redo:y,undo:b}=oo(e,_),x=[...(n=v.preRedos)==null?[]:n,...y],S=[...v.undos,...b];if(x.push(...v.redos),x.push(Qi(h,d,u)),S.push(...(r=v.preUndos)==null?[]:r),z(x,i).result){let e=c.afterCommandExecute({id:uo.id,params:{range:h}});return z(e.redos,i),S.push(...e.undos),x.push(...e.redos),a.pushUndoRedo({unitID:m,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},fo=`sheet.command.delete-range-move-up`,po={type:u.COMMAND,id:fo,handler:async(e,t)=>{var n,r;let i=e.get(C),a=e.get(k),o=e.get(A),s=e.get(Y),c=e.get(K),l=H(o);if(!l)return!1;let{unitId:u,subUnitId:d,workbook:f,worksheet:m}=l,h=t==null?void 0:t.range;if(!h){let e=s.getCurrentLastSelection();h=e==null?void 0:e.range}if(!h)return!1;let g={range:h,subUnitId:d,unitId:u,shiftDimension:p.ROWS},_=c.onCommandExecute({id:po.id,params:{range:h}}),{redo:v,undo:y}=oo(e,g),b=[...(n=_.preRedos)==null?[]:n,...v],x=[..._.undos,...y];if(b.push(..._.redos),b.push(Qi(h,f,m)),x.push(...(r=_.preUndos)==null?[]:r),z(b,i).result){let e=c.afterCommandExecute({id:po.id,params:{range:h}});return z(e.redos,i),x.push(...e.undos),b.push(...e.redos),a.pushUndoRedo({unitID:u,undoMutations:x.reverse(),redoMutations:b}),!0}return!1}},mo=`sheet.command.insert-range-move-down`,ho={type:u.COMMAND,id:mo,handler:async(e,t)=>{var n,i;let a=e.get(C),o=e.get(k),s=e.get(A),c=e.get(Y),l=e.get(K),u=e.get(v),d=e.get(oe);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=H(s);if(!f)return!1;let{unitId:m,subUnitId:h,worksheet:g,workbook:_}=f,y=t==null?void 0:t.range;if(!y){var b;y=(b=c.getCurrentLastSelection())==null?void 0:b.range}if(!y)return!1;let x=[],S=[],w=g.getCellMatrix(),T=w.getDataRange(),E=w.getSlice(T.startRow,T.endRow,y.startColumn,y.endColumn).getDataRange().endRow,D=Math.max(E+(y.endRow-y.startRow+1)-T.endRow,0);if(D>0){let t=y.startRow-1,n=g.getRowHeight(t),i={unitId:m,subUnitId:h,range:{startRow:T.endRow+1,endRow:T.endRow+D,startColumn:T.startColumn,endColumn:T.endColumn},rowInfo:Array(D).fill(void 0).map(()=>({h:n,hd:r.FALSE}))};x.push({id:wn.id,params:i});let a=Cn(e,i);S.push({id:Nn.id,params:a})}let O={};F.foreach(y,(e,t)=>{let n=g.getCell(e,t);n&&(O[e]||(O[e]={}),O[e][t]={s:n.s})});let{redo:ee,undo:te}=ao(e,{range:y,subUnitId:h,unitId:m,shiftDimension:p.ROWS,cellValue:O});x.push(...ee),S.push(...te);let j=l.onCommandExecute({id:ho.id,params:{range:y}});if(x.push(...j.redos),x.push(Qi(y,_,g)),S.push(...(n=j.preUndos)==null?[]:n),x.unshift(...(i=j.preRedos)==null?[]:i),S.unshift(...j.undos),z(x,a)){let e=l.afterCommandExecute({id:ho.id,params:{range:y}});return z(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:m,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},go=`sheet.command.insert-range-move-right`,_o={type:u.COMMAND,id:go,handler:async(e,t)=>{var n,i;let a=e.get(C),o=e.get(k),s=e.get(A),c=e.get(Y),l=e.get(K),u=e.get(v),d=e.get(oe);if(c.isOverlapping())return u.emit(d.t(`sheets.info.overlappingSelections`)),!1;let f=H(s);if(!f)return!1;let{workbook:m,worksheet:h,unitId:g,subUnitId:_}=f,y=t==null?void 0:t.range;if(!y){var b;y=(b=c.getCurrentLastSelection())==null?void 0:b.range}if(!y)return!1;let x=[],S=[],w=h.getCellMatrix(),T=w.getDataRange(),E=w.getSlice(y.startRow,y.endRow,T.startColumn,T.endColumn).getDataRange().endColumn,D=Math.max(E+(y.endColumn-y.startColumn+1)-T.endColumn,0);if(D>0){let t=y.startColumn-1,n=h.getColumnWidth(t),i={unitId:g,subUnitId:_,range:{startRow:T.startRow+1,endRow:T.endRow,startColumn:T.endColumn+1,endColumn:T.endColumn+D},colInfo:Array(D).fill(void 0).map(()=>({w:n,hd:r.FALSE}))};x.push({id:En.id,params:i});let a=Tn(e,i);S.push({id:Fn.id,params:a})}let O={};F.foreach(y,(e,t)=>{let n=h.getCell(e,t);!n||!n.s||(O[e]||(O[e]={}),O[e][t]={s:n.s})});let{redo:ee,undo:te}=ao(e,{range:y,subUnitId:_,unitId:g,shiftDimension:p.COLUMNS,cellValue:O});x.push(...ee),S.push(...te);let j=l.onCommandExecute({id:_o.id,params:{range:y}});if(x.push(...j.redos),x.push(Qi(y,m,h)),S.push(...(n=j.preUndos)==null?[]:n),x.unshift(...(i=j.preRedos)==null?[]:i),S.unshift(...j.undos),z(x,a).result){let e=l.afterCommandExecute({id:_o.id,params:{range:y}});return z(e.redos,a),S.push(...e.undos),x.push(...e.redos),o.pushUndoRedo({unitID:g,undoMutations:S.reverse(),redoMutations:x}),!0}return!1}},vo=`sheet.command.insert-row`,yo={type:u.COMMAND,id:vo,handler:async(e,t)=>{let n=e.get(C),r=e.get(K),{range:i,direction:a,unitId:o,subUnitId:s,cellValue:c}=t;return await r.beforeCommandExecute({id:yo.id,params:t})?n.syncExecuteCommand(bo.id,{range:i,direction:a,unitId:o,subUnitId:s,cellValue:c}):!1}},bo={type:u.COMMAND,id:`sheet.command.insert-row-by-range`,handler:(e,t)=>{var n,i,a,o;let s=H(e.get(A),t);if(!s)throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:p,cellValue:h}=t,{startRow:g,endRow:_}=f;f.rangeType=P.ROW;let v=p===m.UP?g:g-1;if(v<0||v>l.getRowCount()-1)throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`);let y=e.get(C),b=e.get(k),x=e.get(K),S={unitId:u,subUnitId:d,range:f},w=l.getRowHeight(v);w!==l.getConfig().defaultRowHeight&&(S.rowInfo=Array(_-g+1).fill(void 0).map(()=>({h:w,hd:r.FALSE})));let T=Cn(e,S),E=[{id:wn.id,params:S}],D=[{id:Nn.id,params:T}];h&&Object.keys(h).length>0&&E.push({id:J.id,params:{unitId:u,subUnitId:d,cellValue:h}});let O=x.onCommandExecute({id:yo.id,params:t});if(E.unshift(...(n=O.preRedos)==null?[]:n),E.push(...(i=O.redos)==null?[]:i),E.push(Qi(f,c,l)),D.unshift(...(a=O.preUndos)==null?[]:a),D.push(...(o=O.undos)==null?[]:o),z(E,y).result){let e=x.afterCommandExecute({id:yo.id,params:t});return z(e.redos,y),E.push(...e.redos),D.push(...e.undos),b.pushUndoRedo({unitID:t.unitId,undoMutations:D,redoMutations:E}),!0}return!1}},xo={type:u.COMMAND,id:`sheet.command.insert-row-before`,handler:async(e,t)=>{var n;let r=(n=e.get(Y).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=H(e.get(A));if(!a)return!1;let{worksheet:o,subUnitId:s,unitId:c}=a,l=t.value||0,u=i.startRow,d=i.startRow+l-1,f=o.getColumnCount()-1,p={unitId:c,subUnitId:s,direction:m.UP,range:{startRow:u,endRow:d,startColumn:0,endColumn:f},cellValue:na(o,u,d,0,f,!0,u-1)};return e.get(C).executeCommand(yo.id,p)}},So={type:u.COMMAND,id:`sheet.command.insert-row-after`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r;if((n==null?void 0:n.length)===1)r=n[0];else return!1;let i=H(e.get(A));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=r.endRow-r.startRow+1,l=r.endRow+1,u=r.endRow+c,d=a.getColumnCount()-1,f={unitId:o,subUnitId:s,direction:m.DOWN,range:{startRow:l,endRow:u,startColumn:0,endColumn:d,rangeType:P.ROW},cellValue:na(a,l,u,0,d,!0,r.endRow)};return e.get(C).executeCommand(yo.id,f)}},Co={type:u.COMMAND,id:`sheet.command.insert-multi-rows-above`,handler:async(e,t)=>{var n;let r=(n=e.get(Y).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=H(e.get(A));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=t.value||0,u=i.startRow,d=i.startRow+l-1,f=o.getColumnCount()-1,p=na(o,u,d,0,f,!0,u-1),h={unitId:s,subUnitId:c,direction:m.UP,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:P.ROW},cellValue:p};return e.get(C).executeCommand(yo.id,h)}},wo={type:u.COMMAND,id:`sheet.command.insert-multi-rows-after`,handler:async(e,t)=>{var n;let r=(n=e.get(Y).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=H(e.get(A));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=t.value||0,u=i.endRow+1,d=i.endRow+l,f=o.getColumnCount()-1,p={unitId:s,subUnitId:c,direction:m.DOWN,range:{startRow:u,endRow:d,startColumn:0,endColumn:f,rangeType:P.ROW},cellValue:na(o,u,d,0,f,!0,i.endRow)};return e.get(C).executeCommand(yo.id,p)}},To=`sheet.command.insert-col`,Eo={type:u.COMMAND,id:To,handler:async(e,t)=>{let n=e.get(C),r=e.get(K),{range:i,direction:a,subUnitId:o,unitId:s,cellValue:c}=t;return await r.beforeCommandExecute({id:Eo.id,params:t})?n.syncExecuteCommand(Do.id,{range:i,direction:a,unitId:s,subUnitId:o,cellValue:c}):!1}},Do={type:u.COMMAND,id:`sheet.command.insert-col-by-range`,handler:(e,t)=>{var n,i,a,o;let s=H(e.get(A),t);if(!s)throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`);let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s,{range:f,direction:p,cellValue:h}=t,{startColumn:g,endColumn:_}=f;f.rangeType=P.COLUMN;let v=p===m.LEFT?g:g-1;if(v<0||v>l.getColumnCount()-1)throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`);let y=e.get(C),b=e.get(k),x=e.get(K),S={unitId:u,subUnitId:d,range:f},w=l.getColumnWidth(v);w!==l.getConfig().defaultColumnWidth&&(S.colInfo=Array(_-g+1).fill(void 0).map(()=>({w,hd:r.FALSE})));let T=Tn(e,S),E=[{id:En.id,params:S}],D=[{id:Fn.id,params:T}];h&&Object.keys(h).length>0&&E.push({id:J.id,params:{unitId:u,subUnitId:d,cellValue:h}});let O=x.onCommandExecute({id:Eo.id,params:t});if(E.unshift(...(n=O.preRedos)==null?[]:n),E.push(...(i=O.redos)==null?[]:i),E.push(Qi(f,c,l)),D.unshift(...(a=O.preUndos)==null?[]:a),D.push(...(o=O.undos)==null?[]:o),z(E,y).result){let e=x.afterCommandExecute({id:Eo.id,params:t});return z(e.redos,y),E.push(...e.redos),D.push(...e.undos),b.pushUndoRedo({unitID:t.unitId,undoMutations:D.filter(Boolean),redoMutations:E.filter(Boolean)}),!0}return!1}},Oo={type:u.COMMAND,id:`sheet.command.insert-col-before`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=H(e.get(A));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=t.value||0,l=r.startColumn,u=r.startColumn+c-1,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:m.LEFT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d,rangeType:P.COLUMN},cellValue:na(a,0,d,l,u,!1,l-1)};return e.get(C).executeCommand(Eo.id,f)}},ko={type:u.COMMAND,id:`sheet.command.insert-col-after`,handler:async e=>{let t=e.get(Y).getCurrentSelections(),n;if((t==null?void 0:t.length)===1)n=t[0].range;else return!1;let r=H(e.get(A));if(!r)return!1;let{worksheet:i,unitId:a,subUnitId:o}=r,s=n.endColumn-n.startColumn+1,c=n.endColumn+1,l=n.endColumn+s,u=i.getRowCount()-1,d={unitId:a,subUnitId:o,direction:m.RIGHT,range:{startColumn:c,endColumn:l,startRow:0,endRow:u},cellValue:na(i,0,u,c,l,!1,n.endColumn)};return e.get(C).executeCommand(Eo.id,d)}},Ao={type:u.COMMAND,id:`sheet.command.insert-multi-cols-before`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=H(e.get(A));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=t.value||0,l=r.startColumn,u=r.startColumn+c-1,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:m.LEFT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d,rangeType:P.COLUMN},cellValue:na(a,0,d,l,u,!1,l-1)};return e.get(C).executeCommand(Eo.id,f)}},jo={type:u.COMMAND,id:`sheet.command.insert-multi-cols-right`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),r;if((n==null?void 0:n.length)===1)r=n[0].range;else return!1;let i=H(e.get(A));if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=t.value||0,l=r.endColumn+1,u=r.endColumn+c,d=a.getRowCount()-1,f={unitId:o,subUnitId:s,direction:m.RIGHT,range:{startColumn:l,endColumn:u,startRow:0,endRow:d},cellValue:na(a,0,d,l,u,!1,r.endColumn)};return e.get(C).executeCommand(Eo.id,f)}},Mo=Xe((e,t,n,r)=>{if(!r.disposed){let i=Qi(e,t,n);r.executeCommand(i.id,i.params)}},300),No=`sheet.command.remove-row`,Po={type:u.COMMAND,id:`sheet.command.remove-row-by-range`,handler:(e,t)=>{var n;if(!t)return!1;let r=H(e.get(A),t);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(K),{range:s,unitId:c,subUnitId:l}=t,u=Mi([s],e,c,l).reverse(),d=[],f=[];u.forEach(e=>{let t=[],n=[],r={unitId:c,subUnitId:l,range:e},i=Mn(r,a),o={unitId:c,subUnitId:l,cellValue:a.getCellMatrix().getSlice(e.startRow,e.endRow,0,a.getColumnCount()-1).getMatrix()};n.push({id:Nn.id,params:r}),t.push({id:wn.id,params:i}),t.push({id:J.id,params:o}),f.push(...n),d.unshift(...t)});let p=o.onCommandExecute({id:No,params:{range:s}}),m=e.get(C);if(z([...(n=p.preRedos)==null?[]:n,...f,...p.redos],m).result){var h,g;Mo(s,i,a,m);let t=o.afterCommandExecute({id:No,params:{range:s}});return z(t.redos,m),e.get(k).pushUndoRedo({unitID:c,undoMutations:[...(h=p.preUndos)==null?[]:h,...d,...p.undos,...t.undos],redoMutations:[...(g=p.preRedos)==null?[]:g,...f,...p.redos,...t.redos]}),!0}return!1}},Fo={type:u.COMMAND,id:No,handler:async(e,t)=>{var n;let r=e.get(Y),i=e.get(K),a=e.get(C),o=t==null?void 0:t.range;if(o||(o=(n=r.getCurrentLastSelection())==null?void 0:n.range),!o)return!1;let s=H(e.get(A));if(!s)return!1;let{worksheet:c,subUnitId:l,unitId:u}=s;return o={...o,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)},await i.beforeCommandExecute({id:Fo.id,params:{range:o}})?a.syncExecuteCommand(Po.id,{range:o,unitId:u,subUnitId:l}):!1}},Io=`sheet.command.remove-col`,Lo={type:u.COMMAND,id:`sheet.command.remove-col-by-range`,handler:(e,t)=>{var n;if(!t)return!1;let r=H(e.get(A),t);if(!r)return!1;let{workbook:i,worksheet:a}=r,o=e.get(K),{range:s,unitId:c,subUnitId:l}=t,u={unitId:c,subUnitId:l,range:s},d=Pn(e,u),f={unitId:c,subUnitId:l,cellValue:a.getCellMatrix().getSlice(0,a.getRowCount()-1,s.startColumn,s.endColumn).getMatrix()},p=o.onCommandExecute({id:Io,params:{range:s}}),m=e.get(C);if(z([...(n=p.preRedos)==null?[]:n,{id:Fn.id,params:u},...p.redos],m).result){var h,g;Mo(s,i,a,m);let t=o.afterCommandExecute({id:Io,params:{range:s}});return z(t.redos,m),e.get(k).pushUndoRedo({unitID:c,undoMutations:[...(h=p.preUndos)==null?[]:h,{id:En.id,params:d},{id:J.id,params:f},...p.undos,...t.undos],redoMutations:[...(g=p.preRedos)==null?[]:g,{id:Fn.id,params:u},...p.redos,...t.redos]}),!0}return!1}},Ro={type:u.COMMAND,id:Io,handler:async(e,t)=>{var n;let r=e.get(Y),i=e.get(K),a=e.get(C),o=t==null?void 0:t.range;if(o||(o=(n=r.getCurrentLastSelection())==null?void 0:n.range),!o)return!1;let s=H(e.get(A));if(!s)return!1;let{worksheet:c,subUnitId:l,unitId:u}=s;return o={...o,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)},await i.beforeCommandExecute({id:Ro.id,params:{range:o}})?a.syncExecuteCommand(Lo.id,{range:o,unitId:u,subUnitId:l}):!1}},zo=(e,t)=>{let n=e.get(A),{subUnitId:r,unitId:i}=t,a=zt(n,t);if(!a)throw Error(`[RemoveSheetUndoMutationFactory]: Worksheet is null error!`);let{workbook:o,worksheet:s}=a,c=s.getConfig();return{index:o.getConfig().sheetOrder.findIndex(e=>e===r),sheet:c,unitId:i}},Bo={id:`sheet.mutation.remove-sheet`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A),{subUnitId:r,unitId:i}=t,a=n.getUniverSheetInstance(i);return a?a.removeSheet(r):!1}};function Vo(e,t){return t.getMergeData().some(t=>t.startRow<e&&e<=t.endRow)}function Ho(e,t){return t.getMergeData().some(t=>t.startColumn<e&&e<=t.endColumn)}const Uo=`sheet.command.move-rows`,Wo={id:Uo,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(Y),{fromRange:{startRow:a},toRange:{startRow:o},range:s}=t,c=s?[qo(s)]:i.getCurrentSelections(),l=c==null?void 0:c.filter(e=>e.range.rangeType===P.ROW&&e.range.startRow<=a&&a<=e.range.endRow);if((l==null?void 0:l.length)!==1)return!1;let u=e.get(K),d=H(e.get(A),t);if(!d)return!1;let{workbook:f,worksheet:p}=d,m=f.getUnitId(),h=p.getSheetId(),g=e.get(v),_=e.get(oe),y=l[0].range,b=l[0].primary,x=Ji(y,p,!1);if(!I.equals(y,x))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(Vo(o,p))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let S={...y,startRow:o,endRow:o+y.endRow-y.startRow},w={unitId:m,subUnitId:h,sourceRange:y,targetRange:S},T=On(e,w),E=e.get(C),D=u.onCommandExecute({id:Wo.id,params:t}),O=[...(n=D.preRedos)==null?[]:n,{id:kn.id,params:w}],ee=[...(r=D.preUndos)==null?[]:r,{id:kn.id,params:T}];if(b){let e=o-a<0,t=y.endRow-y.startRow+1,n=e?S:{...S,startRow:S.startRow-t,endRow:S.endRow-t},r={unitId:m,subUnitId:h,type:Vi.MOVE_END,selections:[{range:n,primary:Zi(n,p),style:null}]},i={unitId:m,subUnitId:h,type:Vi.MOVE_END,selections:[{range:y,primary:b,style:null}]};O.push({id:X.id,params:r}),ee.push({id:X.id,params:i})}if(O.push(...D.redos),ee.push(...D.undos),z(O,E).result){let n=u.afterCommandExecute({id:Wo.id,params:t});return z(n.redos,E),O.push(...n.redos),ee.push(...n.undos),e.get(k).pushUndoRedo({unitID:m,undoMutations:ee,redoMutations:O}),!0}return!1}},Go=`sheet.command.move-cols`,Ko={id:Go,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(Y),{fromRange:{startColumn:a},toRange:{startColumn:o},range:s}=t,c=s?[qo(s)]:i.getCurrentSelections(),l=c==null?void 0:c.filter(e=>e.range.rangeType===P.COLUMN&&e.range.startColumn<=a&&a<=e.range.endColumn);if((l==null?void 0:l.length)!==1)return!1;let u=e.get(K),d=H(e.get(A),t);if(!d)return!1;let{workbook:f,worksheet:p}=d,m=f.getUnitId(),h=p.getSheetId(),g=e.get(v),_=e.get(oe),y=l[0].range,b=l[0].primary,x=Ji(y,p,!1);if(!I.equals(y,x))return g.emit(_.t(`sheets.info.partOfCell`)),!1;if(Ho(o,p))return g.emit(_.t(`sheets.info.acrossMergedCell`)),!1;let S={...y,startColumn:o,endColumn:o+y.endColumn-y.startColumn},w={unitId:m,subUnitId:h,sourceRange:y,targetRange:S},T=An(e,w),E=e.get(C),D=u.onCommandExecute({id:Ko.id,params:t}),O=[...(n=D.preRedos)==null?[]:n,{id:jn.id,params:w}],ee=[...(r=D.preUndos)==null?[]:r,{id:jn.id,params:T}];if(b){let e=y.endColumn-y.startColumn+1,t=o-a<0?S:{...S,startColumn:S.startColumn-e,endColumn:S.endColumn-e},n={unitId:m,subUnitId:h,type:Vi.MOVE_END,selections:[{range:t,primary:Zi(t,p),style:null}]},r={unitId:m,subUnitId:h,type:Vi.MOVE_END,selections:[{range:y,primary:b,style:null}]};O.push({id:X.id,params:n}),ee.push({id:X.id,params:r})}if(O.push(...D.redos),ee.push(...D.undos),z(O,E).result){let n=u.afterCommandExecute({id:Ko.id,params:t});return z(n.redos,E),O.push(...n.redos),ee.push(...n.undos),e.get(k).pushUndoRedo({unitID:m,undoMutations:ee,redoMutations:O}),!0}return!1}};function qo(e){return{range:e,primary:null,style:null}}let Jo=class extends h{constructor(e,t){super(),this._injector=e,this._univerInstanceService=t,W(this,`_sceneMap`,new Map),W(this,`_sheetSkeletonParamStore`,new Map),this._init()}dispose(){super.dispose(),this._sheetSkeletonParamStore.forEach(e=>e.forEach(e=>e.skeleton.dispose())),this._sheetSkeletonParamStore.clear()}_disposeByUnitId(e){let t=this._sheetSkeletonParamStore.get(e);t&&(t.forEach(e=>e.skeleton.dispose()),this._sheetSkeletonParamStore.delete(e))}_init(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(R.UNIVER_SHEET).subscribe(e=>this._initWorkbookSkeleton(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(R.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(ht,e,t),r=e.getUnitId(),i=this._sceneMap.get(r);return i&&n.setScene(i),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())}};Jo=Jt([G(0,j(ne)),G(1,j(A))],Jo);function Yo(e,t){let n=new M;return e.map(e=>F.transformRange(e,t)).forEach(e=>{F.foreach(e,(e,r)=>{let i=t.getCellHeight(e,r);i&&n.setValue(e,r,i)})}),n}function Xo(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 Zo(e){let t=0;return e.forEach(()=>{t++}),t}const Qo=`sheet.command.reorder-range`,$o={id:Qo,type:u.COMMAND,handler:(e,t)=>{var n,r;let{subUnitId:i,unitId:a,range:o,order:s}=t,c=e.get(C),l={id:Rn.id,params:{unitId:a,subUnitId:i,order:s,range:o}},u={id:Rn.id,params:Ln(l.params)},d=e.get(K),f=d.onCommandExecute({id:$o.id,params:t}),p=[...(n=f.preRedos)==null?[]:n,l,...f.redos],m=[...(r=f.preUndos)==null?[]:r,u,...f.undos],h=z(p,c),{suitableRanges:g,remainingRanges:_}=Xo([o],e.get(Jo).getSkeleton(a,i)),{undos:v,redos:y}=d.generateMutationsOfAutoHeight({unitId:a,subUnitId:i,ranges:[o],autoHeightRanges:g,lazyAutoHeightRanges:_}),b=d.afterCommandExecute({id:$o.id,params:t});return h.result?(z([...b.redos,...y],c),e.get(k).pushUndoRedo({unitID:a,undoMutations:[...m,...b.undos,...v],redoMutations:[...p,...b.redos,...y]}),!0):!1}},Z={MoveRangeCommandId:sa,InsertRowCommandId:vo,InsertColCommandId:To,RemoveColCommandId:Io,RemoveRowCommandId:No,DeleteRangeMoveLeftCommandId:lo,DeleteRangeMoveUpCommandId:fo,InsertRangeMoveDownCommandId:mo,InsertRangeMoveRightCommandId:go,MoveColsCommandId:Go,MoveRowsCommandId:Uo,ReorderRangeCommandId:Qo};let Q=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 es=e=>{let t={...e},n=Number.isNaN(t.startRow)&&Number.isNaN(t.endRow)&&!Number.isNaN(t.startColumn)&&!Number.isNaN(t.endColumn),r=Number.isNaN(t.startColumn)&&Number.isNaN(t.endColumn)&&!Number.isNaN(t.startRow)&&!Number.isNaN(t.endRow);return(t.rangeType===P.COLUMN||n)&&(t.startRow=0,t.endRow=ce-1),(t.rangeType===P.ROW||r)&&(t.startColumn=0,t.endColumn=se-1),t.rangeType===P.ALL&&(t.startColumn=0,t.endColumn=se-1,t.startRow=0,t.endRow=ce-1),t},ts=e=>{let t=e.rangeType;return e.rangeType===P.COLUMN?t=P.ROW:e.rangeType===P.ROW&&(t=P.COLUMN),{startRow:e.startColumn,endRow:e.endColumn,startColumn:e.startRow,endColumn:e.endRow,rangeType:t}},ns=(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)}},rs=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=es(n),a=es(r),o=es(t),s=ns({start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow},{start:o.startRow,end:o.endRow});return s===null?[{type:Q.Delete}]:[{type:Q.VerticalMove,step:s.step||0,length:s.length||0}]},is=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startRow,a=n.endRow-n.startRow+1,o=r.startRow,s=new M;return F.foreach(t,(e,t)=>{s.setValue(e,t,1)}),s.moveRows(i,a,o),We(s,e=>e===1)},as=(e,t)=>{let{range:n,order:r}=e.params||{};if(!n||!r)return[t];let i=new M;F.foreach(t,(e,t)=>{i.setValue(e,t,1)});let a=new M;return F.foreach(n,(e,t)=>{if(Object.prototype.hasOwnProperty.call(r,e)){var n;let o=r[e],s=(n=i.getValue(o,t))==null?0:n;a.setValue(e,t,s)}}),a.forValue((e,t,n)=>{i.setValue(e,t,n)}),We(i,e=>e===1)},os=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!r||!n)return[];let i=es(n),a=es(r),o=es(t),s=ns({start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn},{start:o.startColumn,end:o.endColumn});return s===null?[{type:Q.Delete}]:[{type:Q.HorizontalMove,step:s.step||0,length:s.length||0}]},ss=(e,t)=>{let{fromRange:n,toRange:r}=e.params||{};if(!n||!r)return[t];let i=n.startColumn,a=n.endColumn-n.startColumn+1,o=r.startColumn,s=new M;return F.foreach(t,(e,t)=>{s.setValue(e,t,1)}),s.moveColumns(i,a,o),We(s,e=>e===1)},cs=(e,t)=>{var n,r;let i=(n=e.params)==null?void 0:n.toRange,a=(r=e.params)==null?void 0:r.fromRange;if(!i||!a)return[];let o=[];if(I.contains(i,t)&&o.push({type:Q.Delete}),I.contains(a,t)){o.push({type:Q.Delete});let e=I.getRelativeRange(t,a),n=I.getPositionRange(e,i);return[{type:Q.Set,range:n}]}return o},ls=(e,t)=>{var n,r;let i=(n=e.params)==null?void 0:n.toRange,a=(r=e.params)==null?void 0:r.fromRange;if(!i||!a||!I.intersects(a,t)&&!I.intersects(i,t))return[t];if(I.contains(a,t)){let e=I.getRelativeRange(t,a);return[I.getPositionRange(e,i)]}let o=new M;F.foreach(t,(e,t)=>{o.setValue(e,t,1)});let s=new M,c=I.getIntersects(a,t);c&&F.foreach(c,(e,t)=>{o.getValue(e,t)&&(o.setValue(e,t,void 0),s.setValue(e,t,1))});let l=i.startColumn-a.startColumn,u=i.startRow-a.startRow,d={startColumn:i.startColumn-l,endColumn:i.endColumn-l,startRow:i.startRow-u,endRow:i.endRow-u};return d&&F.foreach(d,(e,t)=>{var n;let r=e+u,i=t+l;o.setValue(r,i,(n=s.getValue(e,t))==null?0:n)}),We(o,e=>e===1)},us=(e,t)=>{let n=es(e),r=es(t),i=e=>e.endColumn-e.startColumn+1,a=e=>e.endRow-e.startRow+1;if(n.startRow<=r.startRow&&n.endRow>=r.endRow){if(r.startColumn<n.startColumn&&r.endColumn>=n.startColumn&&r.endColumn<=n.endColumn||r.startColumn<n.startColumn&&r.endColumn>=n.endColumn){let e=I.getIntersects(r,n);if(e)return{step:0,length:-i(e)}}if(r.startColumn>=n.startColumn&&r.endColumn<=n.endColumn&&a(n)>=a(r))return null;if(r.startColumn>=n.startColumn&&r.startColumn<=n.endColumn&&r.endColumn>n.endColumn){let e=I.getIntersects(r,n);if(e){let t=-i(e);return{step:-(i(n)-i(e)),length:t}}}if(r.startColumn>n.endColumn)return{step:-i(n),length:0}}return{step:0,length:0}},ds=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=us(r,t);if(!a)i.push({type:Q.Delete});else{let{step:e,length:t}=a;i.push({type:Q.HorizontalMove,step:e,length:t})}return i},fs=(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=us(ts(e),ts(t));if(!n)a.push({type:Q.Delete});else{let{step:e,length:t}=n;a.push({type:Q.VerticalMove,step:e,length:t})}}return a},ps=(e,t)=>{let{range:n,order:r}=e.params||{};if(!n||!r)return[];if(I.contains(n,t)&&t.endRow===t.startRow){let e=[],n=t.startRow;for(let t in r)if(r[t]===n){let r=Number(t);return e.push({type:Q.VerticalMove,step:r-n,length:0}),e}return[]}return[]},ms=(e,t)=>{let n=es(e),r=es(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 hs(e,t,n){let r=[];if(I.contains(t,n)&&r.push({type:Q.Delete}),I.contains(e,n)){r.push({type:Q.Delete});let i=I.getRelativeRange(n,e),a=I.getPositionRange(i,t);return[{type:Q.Set,range:a}]}return r}const gs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ms(ts(r),ts(t));return i.push({type:Q.VerticalMove,step:a,length:o}),i},_s=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ms(r,t);return i.push({type:Q.HorizontalMove,step:a,length:o}),i},vs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ms(ts(r),ts(t));return i.push({type:Q.VerticalMove,step:a,length:o}),i},ys=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i=r.endRow-r.startRow+1,a={...r,startRow:r.startRow,endRow:1/0},o=I.subtract(t,a),s=I.getIntersects(a,t);if(!s)return[t];let c=new M;return o.forEach(e=>{F.foreach(e,(e,t)=>{c.setValue(e,t,1)})}),s&&F.foreach(s,(e,t)=>{c.setValue(e+i,t,1)}),We(c,e=>e===1)},bs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],{step:a,length:o}=ms(r,t);return i.push({type:Q.HorizontalMove,step:a,length:o}),i},xs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i=r.endColumn-r.startColumn+1,a={...r,startColumn:r.startColumn,endColumn:1/0},o=I.subtract(t,a),s=I.getIntersects(a,t);if(!s)return[t];let c=new M;return o.forEach(e=>{F.foreach(e,(e,t)=>{c.setValue(e,t,1)})}),s&&F.foreach(s,(e,t)=>{c.setValue(e,t+i,1)}),We(c,e=>e===1)},Ss=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=us(r,t);if(!a)i.push({type:Q.Delete});else{let{step:e,length:t}=a;i.push({type:Q.HorizontalMove,step:e,length:t})}return i},Cs=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i={startRow:r.startRow,endRow:r.endRow,startColumn:r.startColumn,endColumn:1/0},a=r.endColumn-r.startColumn+1,o=I.getIntersects(r,t),s=I.subtract(t,i),c=I.getIntersects(i,t);if(!o&&!c)return[t];let l=new M;return c&&F.foreach(c,(e,t)=>{l.setValue(e,t-a,1)}),o&&F.foreach(o,(e,t)=>{l.setValue(e,t-a,0)}),s.forEach(e=>{F.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),We(l,e=>e===1)},ws=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[];let i=[],a=us(ts(r),ts(t));if(!a)i.push({type:Q.Delete});else{let{step:e,length:t}=a;i.push({type:Q.VerticalMove,step:e,length:t})}return i},Ts=(e,t)=>{var n;let r=(n=e.params)==null?void 0:n.range;if(!r)return[t];let i={...r,startRow:r.startRow,endRow:1/0},a=r.endRow-r.startRow+1,o=I.getIntersects(r,t),s=I.subtract(t,i),c=I.getIntersects(i,t);if(!o&&!c)return[t];let l=new M;return c&&F.foreach(c,(e,t)=>{l.setValue(e-a,t,1)}),o&&F.foreach(o,(e,t)=>{l.setValue(e-a,t,0)}),s.forEach(e=>{F.foreach(e,(e,t)=>{l.setValue(e,t,1)})}),We(l,e=>e===1)},Es=(e,t)=>{var n;let r=Re(((n=e.ranges)==null?[e.range]:n).map(e=>[e.startRow,e.endRow])),i=t.startRow,a=t.endRow;for(let e=r.length-1;e>=0;e--){let[n,o]=r[e];if(n<=t.startRow&&o>=t.endRow)return[];if(o<i){let e=o-n+1;i-=e,a-=e}else if(!(n>a)){let e=Math.max(n,i),t=Math.min(o,a)-e+1;if(a-=t,n<=i){let t=e-i;i-=t}}}return[{...t,startRow:i,endRow:a}]},Ds=(e,t)=>{let n=e.params,r=n.range.startRow,i=n.range.endRow-n.range.startRow+1;if(n.direction===m.UP){if(r<t.startRow)return[{...t,startRow:t.startRow+i,endRow:t.endRow+i}];if(r<=t.endRow)return[{...t,endRow:t.endRow+i}]}else if(r<=t.startRow)return[{...t,startRow:t.startRow+i,endRow:t.endRow+i}];else if(r<=t.endRow+1)return[{...t,endRow:t.endRow+i}];return[t]},Os=(e,t)=>{let n=e.params,r=n.range.startColumn,i=n.range.endColumn-n.range.startColumn+1;if(n.direction===m.LEFT){if(r<t.startColumn)return[{...t,startColumn:t.startColumn+i,endColumn:t.endColumn+i}];if(r<=t.endColumn)return[{...t,endColumn:t.endColumn+i}]}else if(r<=t.startColumn)return[{...t,startColumn:t.startColumn+i,endColumn:t.endColumn+i}];else if(r<=t.endColumn+1)return[{...t,endColumn:t.endColumn+i}];return[t]},ks=(e,t)=>{let n={...t};return e.forEach(e=>{switch(e.type){case Q.Delete:n=null;break;case Q.HorizontalMove:if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break;case Q.VerticalMove:if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break;case Q.Set:n=e.range;break}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},As=(e,t)=>{let n=[];switch(t.id){case Z.DeleteRangeMoveLeftCommandId:n=Ss(t,e);break;case Z.DeleteRangeMoveUpCommandId:n=ws(t,e);break;case Z.InsertColCommandId:n=_s(t,e);break;case Z.InsertRangeMoveDownCommandId:n=vs(t,e);break;case Z.InsertRangeMoveRightCommandId:n=bs(t,e);break;case Z.InsertRowCommandId:n=gs(t,e);break;case Z.MoveColsCommandId:n=os(t,e);break;case Z.MoveRangeCommandId:n=cs(t,e);break;case Z.MoveRowsCommandId:n=rs(t,e);break;case Z.RemoveColCommandId:n=ds(t,e);break;case Z.RemoveRowCommandId:n=fs(t,e);break;case Z.ReorderRangeCommandId:n=ps(t,e);break}return ks(n,e)},js=(e,t,n)=>[uo.id,po.id].includes(t.id)||Fs(t,n).some(t=>I.intersects(t,e))?As(e,t):e,Ms=(e,t)=>{let n=[];switch(t.id){case Z.DeleteRangeMoveLeftCommandId:return Cs(t,e);case Z.DeleteRangeMoveUpCommandId:return Ts(t,e);case Z.InsertRangeMoveDownCommandId:return ys(t,e);case Z.InsertRangeMoveRightCommandId:return xs(t,e);case Z.InsertColCommandId:return Os(t,e);case Z.InsertRowCommandId:return Ds(t,e);case Z.MoveColsCommandId:return ss(t,e);case Z.MoveRangeCommandId:return ls(t,e);case Z.MoveRowsCommandId:return is(t,e);case Z.ReorderRangeCommandId:return as(t,e);case Z.RemoveColCommandId:n=ds(t,e);break;case Z.RemoveRowCommandId:return Es(t.params,e)}let r=ks(n,e);return r?[r]:[]},Ns=(e,t,n)=>[uo.id,po.id,ho.id,`sheet.command.insert-range-move-right`].includes(t.id)||Fs(t,n).some(t=>I.intersects(t,e))?Ms(e,t):e;function Ps(e,t){let{id:n,params:r}=t,i={length:0,step:0,type:Q.Unknown};switch(n){case Bo.id:i.type=Q.Delete;break;case kn.id:i=ns({start:r.sourceRange.startRow,end:r.sourceRange.endRow},{start:r.targetRange.startRow,end:r.targetRange.endRow},{start:e.startRow,end:e.endRow}),i.type=Q.VerticalMove;break;case jn.id:i=ns({start:r.sourceRange.startColumn,end:r.sourceRange.endColumn},{start:r.targetRange.startColumn,end:r.targetRange.endColumn},{start:e.startColumn,end:e.endColumn}),i.type=Q.HorizontalMove;break;case Fn.id:i=us(r.range,e),i?i.type=Q.HorizontalMove:i={step:0,length:0,type:Q.Delete};break;case Nn.id:i=us(ts(r.range),ts(e)),i?i.type=Q.VerticalMove:i={step:0,length:0,type:Q.Delete};break;case wn.id:i=ms(ts(r.range),ts(e)),i.type=Q.VerticalMove;break;case En.id:i=ms(r.range,e),i.type=Q.HorizontalMove;break;case Dn.id:i=hs(r.fromRange||new M(r.from).getRange(),r.toRange||new M(r.to).getRange(),e);break;default:break}return i?ks(Array.isArray(i)?i:[i],e):e}function Fs(e,t){let{selectionManagerService:n}=t;switch(e.id){case Z.MoveColsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startColumn:t.toRange.startColumn-.5,endColumn:t.toRange.endColumn-.5}]}case Z.MoveRowsCommandId:{let t=e.params;return[t.fromRange,{...t.toRange,startRow:t.toRange.startRow-.5,endRow:t.toRange.startRow-.5}]}case Z.MoveRangeCommandId:{let t=e;return[t.params.fromRange,t.params.toRange]}case Z.InsertRowCommandId:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.endRow-.5}]}case Z.InsertColCommandId:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.endColumn-.5}]}case Z.RemoveRowCommandId:return[e.params.range];case Z.RemoveColCommandId:return[e.params.range];case Z.DeleteRangeMoveUpCommandId:case Z.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 Z.DeleteRangeMoveLeftCommandId:case Z.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 Z.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 Is(e){switch(e.id){case jn.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startColumn:t.targetRange.startColumn-.5,endColumn:t.targetRange.startColumn-.5}]}case kn.id:{let t=e.params;return[t.sourceRange,{...t.targetRange,startRow:t.targetRange.startRow-.5,endRow:t.targetRange.startRow-.5}]}case Dn.id:{let t=e.params;return[new M(t.from.value).getRange(),new M(t.to.value).getRange()]}case En.id:{let t=e.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case wn.id:{let t=e.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case Fn.id:return[e.params.range];case Nn.id:return[e.params.range];default:break}}function Ls(e,t){let n=e.get(A);switch(t.id){case Z.MoveColsCommandId:{let e=t.params,r=H(n,e);if(!r)return;let{unitId:i,subUnitId:a}=r,{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 Z.MoveRowsCommandId:{let e=t.params,r=H(n,e);if(!r)return;let{unitId:i,subUnitId:a}=r,{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 Z.MoveRangeCommandId:{let e=t.params,r=H(n);if(!r)return;let{unitId:i,subUnitId:a}=r,{fromRange:o,toRange:s}=e;return{unitId:i,subUnitId:a,ranges:[o,s]}}case Z.InsertRowCommandId:{let e=t.params,r=H(n,e);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{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 Z.InsertColCommandId:{let e=t.params,r=H(n,e);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{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 Z.RemoveRowCommandId:{let e=t.params,r=H(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case Z.RemoveColCommandId:{let e=t.params,r=H(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case Z.DeleteRangeMoveUpCommandId:case Z.InsertRangeMoveDownCommandId:{let e=t.params,r=H(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startRow:s.endRow+1,endRow:i.getRowCount()-1}]}}case Z.DeleteRangeMoveLeftCommandId:case Z.InsertRangeMoveRightCommandId:{let e=t.params,r=H(n);if(!r)return;let{worksheet:i,unitId:a,subUnitId:o}=r,{range:s}=e;return{unitId:a,subUnitId:o,ranges:[s,{...s,startColumn:s.endColumn+1,endColumn:i.getColumnCount()-1}]}}case Z.ReorderRangeCommandId:{let e=t.params,r=H(n);if(!r)return;let{unitId:i,subUnitId:a}=r,{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 Rs=we(`MERGE_REDO`),zs=we(`MERGE_UNDO`);var Bs=class extends h{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){var t,n;if(((t=e.params)==null?void 0:t.unitId)!==this._unitId)return;if(e.id===Dn.id){let t=e.params;if(t.from.subUnitId!==this._subUnitId||t.to.subUnitId!==this._subUnitId)return}else if(((n=e.params)==null?void 0:n.subUnitId)!==this._subUnitId)return;if(!this._range)return;if(this._skipIntersects){if(e.id===Bo.id)return;let t=Is(e);if(t!=null&&t.some(e=>I.intersects(e,this._range)))return}let r=Ps(this._range,e);if(r&&I.equals(r,this._range))return!1;let i=this._range;this._range=r,this._callback(i,r)}};let Vs=class extends h{constructor(e,t,n,r){super(),this._commandService=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._selectionManagerService=r,W(this,`interceptor`,new ie({MERGE_REDO:Rs,MERGE_UNDO:zs})),W(this,`_watchRanges`,new Set),W(this,`_refRangeManagerMap`,new Map),W(this,`_serializer`,Gs()),W(this,`_onRefRangeChange`,()=>{this._sheetInterceptorService.interceptCommand({getMutations:e=>{let t=(()=>{switch(e.id){case Z.MoveColsCommandId:{let t=e.params,n=H(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startColumn,t.toRange.startColumn);return this._checkRange([{...t.fromRange,startColumn:o,endColumn:r.getColumnCount()-1}],i,a)}case Z.MoveRowsCommandId:{let t=e.params,n=H(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o=Math.min(t.fromRange.startRow,t.toRange.startRow);return this._checkRange([{...t.fromRange,startRow:o,endRow:r.getRowCount()-1}],i,a)}case Z.MoveRangeCommandId:{var t,n;let r=e.params,i=H(this._univerInstanceService,{unitId:r.fromUnitId,subUnitId:r.fromSubUnitId}),a=H(this._univerInstanceService,{unitId:(t=r.toUnitId)==null?r.fromUnitId:t,subUnitId:(n=r.toSubUnitId)==null?r.fromSubUnitId:n});if(!i&&!a)return[];if(i&&a&&i.unitId===a.unitId&&i.subUnitId===a.subUnitId)return this._checkRange([r.fromRange,r.toRange],i.unitId,i.subUnitId);let o=[];return i&&o.push(...this._checkRange([r.fromRange],i.unitId,i.subUnitId)),a&&o.push(...this._checkRange([r.toRange],a.unitId,a.subUnitId)),o}case Z.InsertRowCommandId:{let t=e.params,n=H(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:Math.max(0,t.range.startRow-1),endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1,rangeType:P.ROW};return this._checkRange([o],i,a)}case Z.InsertColCommandId:{let t=e.params,n=H(this._univerInstanceService,t);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:0,endRow:r.getRowCount()-1,startColumn:Math.max(0,t.range.startColumn-1),endColumn:r.getColumnCount()-1,rangeType:P.COLUMN};return this._checkRange([o],i,a)}case Z.RemoveRowCommandId:{let t=e.params,n=H(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:t.range.startRow,endRow:r.getRowCount()-1,startColumn:0,endColumn:r.getColumnCount()-1,rangeType:P.ROW};return this._checkRange([o],i,a)}case Z.RemoveColCommandId:{let t=e.params,n=H(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={startRow:0,endRow:r.getRowCount()-1,startColumn:t.range.startColumn,endColumn:r.getColumnCount()-1,rangeType:P.COLUMN};return this._checkRange([o],i,a)}case Z.DeleteRangeMoveUpCommandId:case Z.InsertRangeMoveDownCommandId:{let t=e.params,n=H(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endRow:r.getRowCount()-1};return this._checkRange([o],i,a)}case Z.DeleteRangeMoveLeftCommandId:case Z.InsertRangeMoveRightCommandId:{let t=e.params,n=H(this._univerInstanceService);if(!n)return[];let{worksheet:r,unitId:i,subUnitId:a}=n,o={...t.range,endColumn:r.getColumnCount()-1};return this._checkRange([o],i,a)}case Z.ReorderRangeCommandId:{let t=e.params,n=H(this._univerInstanceService);if(!n)return[];let{unitId:r,subUnitId:i}=n,{range:a,order:o}=t,s=[];for(let e=a.startRow;e<=a.endRow;e++)e in o&&s.push({startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn});return this._checkRange(s,r,i)}}})();if(!t||t.length===0)return{redos:[],undos:[],preRedos:[],preUndos:[]};let n=t.reduce((t,n)=>{let r=n(e);return t.push(r),t},[]).reduce((e,t)=>{var n,r;return e.redos.push(...t.redos),e.undos.push(...t.undos),e.preRedos.push(...(n=t.preRedos)==null?[]:n),e.preUndos.push(...(r=t.preUndos)==null?[]:r),e},{redos:[],undos:[],preUndos:[],preRedos:[]}),r=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(n.preRedos,null)||[],i=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(n.redos,null)||[],a=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(n.preUndos,null)||[];return{redos:i,undos:this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(n.undos,null)||[],preRedos:r,preUndos:a}}})}),W(this,`_checkRange`,(e,t,n)=>{let r=Ws(t,n),i=this._refRangeManagerMap.get(r);if(i){let t=new Set;return[...i.keys()].forEach(n=>{let r=i.get(n),a=this._serializer.deserialize(n),o={...a,startRow:+a.startRow,endRow:+a.endRow,startColumn:+a.startColumn,endColumn:+a.endColumn,rangeType:a.rangeType&&+a.rangeType};e.some(e=>I.intersects(e,o))&&r&&r.forEach(e=>{t.add(e)})}),[...t]}return[]}),W(this,`registerRefRange`,(e,t,n,r)=>{let i=n||Hs(this._univerInstanceService),a=r||Us(this._univerInstanceService);if(!i||!a)return Ze(()=>{});let o=Ws(i,a),s=this._serializer.serialize(e),c=this._refRangeManagerMap.get(o);c||(c=new Map,this._refRangeManagerMap.set(o,c));let l=c.get(s);return l?l.add(t):c.set(s,new Set([t])),Ze(()=>{let e=c.get(s);e&&(e.delete(t),e.size||(c.delete(s),c.size||this._refRangeManagerMap.delete(o)))})}),this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:e=>e}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:e=>e})}watchRange(e,t,n,r,i){let a;this._watchRanges.size===0&&(a=this._commandService.onCommandExecuted(e=>{if(e.type!==u.MUTATION)return!1;for(let t of this._watchRanges)t.onMutation(e)}));let o=new Bs(e,t,n,r,i);this._watchRanges.add(o);let s=Ze(()=>{this._watchRanges.delete(o),this._watchRanges.size===0&&(a==null||a.dispose(),a=null)}),c=this.disposeWithMe(s);return Ze(()=>{c.dispose(),s.dispose()})}};Vs=Jt([G(0,C),G(1,j(K)),G(2,j(A)),G(3,j(Y))],Vs);function Hs(e){var t;return(t=e.getCurrentUnitOfType(R.UNIVER_SHEET))==null?void 0:t.getUnitId()}function Us(e){var t;return(t=e.getCurrentUnitOfType(R.UNIVER_SHEET))==null||(t=t.getActiveSheet())==null?void 0:t.getSheetId()}function Ws(e,t){return`${e}_${t}`}function Gs(){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 Ks=[En.id,wn.id,Fn.id,Nn.id],qs=[kn.id,jn.id];function Js(e,t){let n=e;if(t!==void 0){let e=[];for(let r=0;r<n.length;r++){let{startRow:i,endRow:a,startColumn:o,endColumn:s}=n[r];if(t===p.ROWS)for(let t=i;t<=a;t++){let n={startRow:t,endRow:t,startColumn:o,endColumn:s};e.push(n)}else if(t===p.COLUMNS)for(let t=o;t<=s;t++){let n={startRow:i,endRow:a,startColumn:t,endColumn:t};e.push(n)}}n=e}return n}const Ys=we(`mergeCellPermissionCheck`);let Xs=class extends h{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._selectionManagerService=a,W(this,`disposableCollection`,new g),W(this,`interceptor`,new ie({MERGE_CELL_INTERCEPTOR_CHECK:Ys})),this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({getMutations(t){switch(t.id){case Ki.id:case qi.id:{var n;let t=e._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET),r=t.getUnitId(),i=t==null?void 0:t.getActiveSheet();if(!i)return{redos:[],undos:[]};let a=i.getSheetId(),o=i.getConfig().mergeData,s=(n=e._selectionManagerService.getCurrentSelections())==null?void 0:n.map(e=>e.range);if(s&&s.length>0&&s.some(e=>o.some(t=>I.intersects(t,e)))){let t={unitId:r,subUnitId:a,ranges:s},n=In(e._injector,t);return{redos:[{id:q.id,params:t}],undos:[{id:U.id,params:n}]}}}}return{redos:[],undos:[]}}}),this._sheetInterceptorService.interceptRanges({getMutations:({unitId:e,subUnitId:t,ranges:n})=>{let r=[],i=[],a={redos:r,undos:i};if(!n||!n.length)return a;let o=H(this._univerInstanceService,{unitId:e,subUnitId:t});if(!o)return a;let{worksheet:s}=o,c=s.getMergeData().filter(e=>n.some(t=>I.intersects(e,t)));return c.length?(r.push({id:q.id,params:{unitId:e,subUnitId:t,ranges:c}}),i.push({id:U.id,params:{unitId:e,subUnitId:t,ranges:c}}),{undos:i,redos:r}):a}})}refRangeHandle(e,t,n){switch(e.id){case Z.MoveColsCommandId:{let r=e.params;return this._handleMoveColsCommand(r,t,n)}case Z.MoveRowsCommandId:{let r=e.params;return this._handleMoveRowsCommand(r,t,n)}case yo.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertRowCommand(r,i,a)}case Eo.id:{let r=e.params,i=r.unitId||t,a=r.subUnitId||n;return this._handleInsertColCommand(r,i,a)}case Ro.id:{let r=e.params;return this._handleRemoveColCommand(r,t,n)}case Fo.id:{let r=e.params;return this._handleRemoveRowCommand(r,t,n)}case ca.id:{let r=e.params;return this._handleMoveRangeCommand(r,t,n)}case _o.id:{let r=e.params;return this._handleInsertRangeMoveRightCommand(r,t,n)}case ho.id:{let r=e.params;return this._handleInsertRangeMoveDownCommand(r,t,n)}case po.id:{let r=e.params;return this._handleDeleteRangeMoveUpCommand(r,t,n)}case uo.id:{let r=e.params;return this._handleDeleteRangeMoveLeftCommand(r,t,n)}}return{redos:[],undos:[]}}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getUniverSheetInstance(e);if(!n)return;let r=n==null?void 0:n.getSheetBySheetId(t);if(!r)return;this.disposableCollection.dispose();let i=r.getMergeData(),a=n=>this.refRangeHandle(n,e,t);i.forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,a,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===Ur.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===U.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(n.unitId,n.subUnitId)}})),this._univerInstanceService.getCurrentTypeOfUnit$(R.UNIVER_SHEET).pipe(it(e=>!!e)).subscribe(t=>{let n=t.getActiveSheet();n&&e(t.getUnitId(),n.getSheetId())})}_handleMoveRowsCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(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=ks(rs({id:Z.MoveRowsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=In(this._injector,o),f=Bt(this._injector,s);return{preRedos:[{id:q.id,params:o}],redos:[{id:U.id,params:s}],preUndos:[{id:q.id,params:f}],undos:[{id:U.id,params:d}]}}_handleMoveColsCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(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=ks(os({id:Z.MoveColsCommandId,params:e},t),t);n&&s.ranges.push(n)}}),o.ranges.length===0)return this._handleNull();let d=In(this._injector,o),f=Bt(this._injector,s);return{preRedos:[{id:q.id,params:o}],redos:[{id:U.id,params:s}],preUndos:[{id:q.id,params:f}],undos:[{id:U.id,params:d}]}}_handleMoveRangeCommand(e,t,n){var r,i;let a=Zs(this._univerInstanceService,t);if(!a)return this._handleNull();let o=(r=e.fromSubUnitId)==null?n:r,s=(i=e.toSubUnitId)==null?o:i,c=Qs(a,o),l=Qs(a,s);if(!c||!l)return this._handleNull();let u=c.getMergeData().filter(t=>I.intersects(t,e.fromRange)),d=l.getMergeData().filter(t=>I.intersects(t,e.toRange)),f=Js(u.map(t=>I.getRelativeRange(t,e.fromRange)).map(t=>I.getPositionRange(t,e.toRange))).filter(e=>!l.getMergeData().some(t=>I.equals(e,t))),p=[],m=[];return n===o&&u.length>0&&(p.push({id:q.id,params:{unitId:t,subUnitId:o,ranges:u}}),m.push({id:U.id,params:{unitId:t,subUnitId:o,ranges:u}})),n===s&&d.length>0&&(p.push({id:q.id,params:{unitId:t,subUnitId:s,ranges:d}}),m.push({id:U.id,params:{unitId:t,subUnitId:s,ranges:d}})),n===s&&f.length>0&&(p.push({id:U.id,params:{unitId:t,subUnitId:s,ranges:f}}),m.unshift({id:q.id,params:{unitId:t,subUnitId:s,ranges:f}})),p.length===0?this._handleNull():{redos:p,undos:m}}_handleInsertRowCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(r,n);if(!i)return this._handleNull();let{range:a}=e,{startRow:o,endRow:s}=a,c=L.deepClone(i.getMergeData()).reduce((e,t)=>(o>t.startRow&&o<=t.endRow&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=L.deepClone(i.getMergeData()).reduce((e,t)=>{if(o>t.startRow&&o<=t.endRow){let n=s-o+1;t.endRow+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f);return{redos:[{id:q.id,params:u},{id:U.id,params:f}],undos:[{id:q.id,params:p},{id:U.id,params:d}]}}_handleInsertColCommand(e,t,n){let{range:r}=e,i=Zs(this._univerInstanceService,t);if(!i)return this._handleNull();let a=Qs(i,n);if(!a)return this._handleNull();let{startColumn:o,endColumn:s}=r,c=L.deepClone(a.getMergeData()).reduce((e,t)=>(o>t.startColumn&&o<=t.endColumn&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=L.deepClone(a.getMergeData()).reduce((e,t)=>{if(o>t.startColumn&&o<=t.endColumn){let n=s-o+1;t.endColumn+=n,this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f);return{redos:[{id:q.id,params:u},{id:U.id,params:f}],undos:[{id:q.id,params:p},{id:U.id,params:d}]}}_handleRemoveColCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(r,n);if(!i)return this._handleNull();let{range:a}=e,{startColumn:o,endColumn:s}=a,c=L.deepClone(i.getMergeData()).reduce((e,t)=>(I.intersects(a,t)&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=L.deepClone(i.getMergeData()).reduce((e,t)=>{if(I.intersects(a,t)){if(o<=t.startColumn&&s>=t.endColumn)return e;o>=t.startColumn&&s<=t.endColumn?t.endColumn-=s-o+1:o<t.startColumn?(t.startColumn=o,t.endColumn-=s-o+1):s>t.endColumn&&(t.endColumn=o-1),this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:U.id,params:f}];return{preUndos:[{id:q.id,params:p}],undos:[{id:U.id,params:d}],preRedos:m,redos:h}}_handleRemoveRowCommand(e,t,n){let{range:r}=e,i=Zs(this._univerInstanceService,t);if(!i)return this._handleNull();let a=Qs(i,n);if(!a)return this._handleNull();let{startRow:o,endRow:s}=r,c=L.deepClone(a.getMergeData()).reduce((e,t)=>(I.intersects(r,t)&&e.push(t),e),[]);if(c.length===0)return this._handleNull();let l=L.deepClone(a.getMergeData()).reduce((e,t)=>{if(I.intersects(r,t)){if(o<=t.startRow&&s>=t.endRow)return e;o>=t.startRow&&s<=t.endRow?t.endRow-=s-o+1:o<t.startRow?(t.startRow=o,t.endRow-=s-o+1):s>t.endRow&&(t.endRow=o-1),this._checkIsMergeCell(t)&&e.push(t)}return e},[]),u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:U.id,params:f}];return{preUndos:[{id:q.id,params:p}],undos:[{id:U.id,params:d}],preRedos:m,redos:h}}_handleInsertRangeMoveRightCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxColumns()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=a;if(I.intersects({startRow:t,startColumn:r,endRow:n,endColumn:o},e)&&(c.push(e),I.contains({startRow:t,startColumn:r,endRow:n,endColumn:o},e))){let t=i-r+1;l.push({startRow:e.startRow,startColumn:e.startColumn+t,endRow:e.endRow,endColumn:e.endColumn+t})}});let u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f);return{preRedos:[{id:q.id,params:u}],redos:[{id:U.id,params:f}],preUndos:[{id:q.id,params:p}],undos:[{id:U.id,params:d}]}}_handleInsertRangeMoveDownCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxRows()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,startColumn:n,endColumn:r,endRow:i}=a;if(I.intersects({startRow:t,startColumn:n,endRow:o,endColumn:r},e)&&(c.push(e),I.contains({startRow:t,startColumn:n,endRow:o,endColumn:r},e))){let n=i-t+1;l.push({startRow:e.startRow+n,startColumn:e.startColumn,endRow:e.endRow+n,endColumn:e.endColumn})}});let u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:U.id,params:f}],g=[{id:q.id,params:p}];return{redos:h,undos:[{id:U.id,params:d}],preRedos:m,preUndos:g}}_handleDeleteRangeMoveUpCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxRows()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,startColumn:n,endColumn:r,endRow:i}=a;if(I.intersects({startRow:t,startColumn:n,endRow:o,endColumn:r},e)&&(c.push(e),I.contains({startRow:t,startColumn:n,endRow:o,endColumn:r},e))){let n=i-t+1,r=I.moveVertical(e,-n);l.push(r)}});let u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f),m=[{id:q.id,params:u}],h=[{id:U.id,params:f}],g=[{id:q.id,params:p}];return{redos:h,undos:[{id:U.id,params:d}],preRedos:m,preUndos:g}}_handleDeleteRangeMoveLeftCommand(e,t,n){let r=Zs(this._univerInstanceService,t);if(!r)return this._handleNull();let i=Qs(r,n);if(!i)return this._handleNull();let a=e.range,o=i.getMaxColumns()-1,s=i.getMergeData(),c=[],l=[];s.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=a;if(I.intersects({startRow:t,startColumn:r,endRow:n,endColumn:o},e)&&(c.push(e),I.contains({startRow:t,startColumn:r,endRow:n,endColumn:o},e))){let t=i-r+1;l.push({startRow:e.startRow,startColumn:e.startColumn-t,endRow:e.endRow,endColumn:e.endColumn-t})}});let u={unitId:t,subUnitId:n,ranges:c},d=In(this._injector,u),f={unitId:t,subUnitId:n,ranges:l},p=Bt(this._injector,f);return{preRedos:[{id:q.id,params:u}],redos:[{id:U.id,params:f}],undos:[{id:U.id,params:d}],preUndos:[{id:q.id,params:p}]}}_checkIsMergeCell(e){return!(e.startRow===e.endRow&&e.startColumn===e.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(qs.includes(e.id)){if(!e.params)return;let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let{sourceRange:r,targetRange:i}=e.params,a=r.startColumn===i.startColumn&&r.endColumn===i.endColumn,o=a?r.endRow-r.startRow+1:r.endColumn-r.startColumn+1,s=a?r.startRow:r.startColumn,c=a?i.startRow:i.startColumn,l=n.getConfig().mergeData,u=[];l.forEach(e=>{let{startRow:t,endRow:n,startColumn:i,endColumn:l,rangeType:d}=e;I.intersects(e,r)||(a?s<t&&c>n?(t-=o,n-=o):s>n&&c<=t&&(t+=o,n+=o):s<i&&c>l?(i-=o,l-=o):s>l&&c<=i&&(i+=o,l+=o)),e.startRow===e.endRow&&e.startColumn===e.endColumn||u.push({startRow:t,endRow:n,startColumn:i,endColumn:l,rangeType:d})}),n.setMergeData(u),this.disposableCollection.dispose();let{unitId:d,subUnitId:f}=e.params,p=e=>this.refRangeHandle(e,d,f);u.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,p,d,f))})}if(Ks.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=n.getConfig().mergeData,i=e.params;if(!i)return;let{range:a}=i,o=e.id.includes(`row`),s=e.id.includes(`insert`),c=o?a.startRow:a.startColumn,l=o?a.endRow:a.endColumn,u=l-c+1,d=[];r.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a}=e;s?o?c<=t&&(t+=u,n+=u):c<=r&&(r+=u,i+=u):o?l<t&&(t-=u,n-=u):l<r&&(r-=u,i-=u),e.startRow===e.endRow&&e.startColumn===e.endColumn||d.push({startRow:t,endRow:n,startColumn:r,endColumn:i,rangeType:a})}),n.setMergeData(d),this.disposableCollection.dispose();let{unitId:f,subUnitId:p}=e.params,m=e=>this.refRangeHandle(e,f,p);d.forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,m,f,p))})}}))}};Xs=Jt([G(0,j(C)),G(1,j(Vs)),G(2,j(A)),G(3,j(ne)),G(4,j(K)),G(5,j(Y))],Xs);function Zs(e,t){return t?e.getUniverSheetInstance(t):e.getCurrentUnitForType(R.UNIVER_SHEET)}function Qs(e,t){return t?e.getSheetBySheetId(t):e.getActiveSheet()}const $s=(e,t,n)=>{let r=e.get(Y).getCurrentSelections(),{value:i,selections:a,unitId:o,subUnitId:s}=t;if(r&&r.length>0){let e=r[(r==null?void 0:r.length)-1].primary;if(e){let{actualColumn:t,actualRow:c}=e,{startRow:l,startColumn:u,endRow:d,endColumn:f}=a[a.length-1];if(i===p.COLUMNS){let e=n.find(e=>e.startColumn===t&&e.endColumn===t&&c===e.startRow);e&&(f=e.endColumn,l=e.startRow,d=e.endRow)}else if(i===p.ROWS){let e=n.find(e=>e.startRow===c&&e.endRow===c&&t===e.startColumn);e&&(d=e.endRow,u=e.startColumn,f=e.endColumn)}let m={startRow:l,startColumn:u,endRow:d,endColumn:f,actualRow:c,actualColumn:t,isMerged:!0,isMergedMainCell:l===c&&u===t},h=r.map((e,t,n)=>({range:e.range,style:null,primary:t===n.length-1?m:null})),g={unitId:o,subUnitId:s,type:Vi.ONLY_SET,selections:h};return{id:X.id,params:g}}return null}return null},ec=(e,t)=>{let n=e.get(Y).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:Vi.ONLY_SET,selections:[...n]};return{id:X.id,params:e}}return null},tc={type:u.COMMAND,id:`sheet.command.remove-worksheet-merge`,handler:(e,t)=>{var n;let r=e.get(Y),i=e.get(C),a=e.get(k),o=(t==null?void 0:t.ranges)||((n=r.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(o!=null&&o.length))return!1;let s=H(e.get(A),t);if(!s)return!1;let{subUnitId:c,unitId:l,worksheet:u}=s,d={unitId:l,subUnitId:c,ranges:o},f=u.getConfig().mergeData.filter(e=>o.some(t=>I.intersects(t,e)));if(!f.length)return!1;let p=In(e,d),m=r.getCurrentSelections(),h=L.deepClone(m),g=L.deepClone(m);if(m.length){let e=g[g.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 _={unitId:l,subUnitId:c,cellValue:nc(u,f).getMatrix()},v=vr(e,_),y=[{id:q.id,params:p},{id:J.id,params:_},{id:X.id,params:{unitId:l,subUnitId:c,selections:g,type:Vi.ONLY_SET}}],b=[{id:U.id,params:p},{id:J.id,params:v},{id:X.id,params:{unitId:l,subUnitId:c,selections:h,type:Vi.ONLY_SET}}];return z(y,i)?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}};function nc(e,t){let n=new M;return t.forEach(t=>{let{startRow:r,startColumn:i,endColumn:a,endRow:o}=t,s=e.getCellMatrix().getValue(r,i);if(s!=null&&s.s)for(let e=r;e<=o;e++)for(let t=i;t<=a;t++)(e!==r||t!==i)&&n.setValue(e,t,{s:s.s})}),n}let rc=function(e){return e.MergeAll=`mergeAll`,e.MergeVertical=`mergeVertical`,e.MergeHorizontal=`mergeHorizontal`,e}({});function ic(e,t){return t.some(t=>ac(e,t))}function ac(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 oc(e,t,n,r){let i=[],a=[],o=n.getSheetId();return r.forEach(r=>{let s={unitId:t,subUnitId:o,cellValue:sc(n,r).getData()},c=vr(e,s);i.push({id:J.id,params:c}),a.push({id:J.id,params:s})}),{undos:i,redos:a}}function sc(e,t){let{startRow:n,startColumn:r,endColumn:i,endRow:a}=t,o=e.getMatrixWithMergedCells(n,r,a,i,c.Raw),s=new M,l=null;return o.forValue((t,i,a)=>{if(a&&t>=n&&i>=r){var o,c;!l&&e.cellHasValue(a)&&(a.v!==``||((o=(c=a.p)==null||(c=c.body)==null||(c=c.dataStream)==null?void 0:c.length)==null?0:o)>2)&&(l=a),s.setValue(t,i,a.s?{v:null,t:null,f:null,si:null,p:null,s:a.s}:null)}}),s.setValue(n,r,l),s}const cc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge`,handler:async(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{worksheet:r}=n,{unitId:i,subUnitId:a,selections:o}=t,s=e.get(C),c=e.get(k),l=Js(o,t.value),u=ic(r,l);if(u&&!t.defaultMerge){let t=e.get(T),n=e.get(oe);if(!await t.confirm({id:`merge.confirm.add-worksheet-merge`,title:{title:`merge.confirm.warning`},children:{title:`merge.confirm.title`},cancelText:n.t(`merge.confirm.cancel`),confirmText:n.t(`merge.confirm.confirm`)}))return!1}let d=[],f=[],p={unitId:i,subUnitId:a,ranges:L.deepClone(l)},m={unitId:i,subUnitId:a,ranges:L.deepClone(l)},h=In(e,p),g=Bt(e,m);if(h.ranges.length>0&&d.push({id:q.id,params:h}),d.push({id:U.id,params:m}),f.push({id:q.id,params:g}),h.ranges.length>0&&f.push({id:U.id,params:h}),u){let t=oc(e,i,r,l);d.unshift(...t.redos),f.push(...t.undos)}let _=$s(e,t,l);_&&d.push(_);let v=ec(e,t);v&&f.push(v);let y=e.get(K).onCommandExecute({id:cc.id,params:{unitId:i,subUnitId:a,ranges:l}});return d.push(...y.redos),f.push(...y.undos),z(d,s).result?(c.pushUndoRedo({unitID:i,undoMutations:f,redoMutations:d}),!0):!1}},lc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge-all`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r=pc(rc.MergeAll,n);if(!(r!=null&&r.length))return!1;let i=H(e.get(A));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(C).executeCommand(cc.id,{selections:r,unitId:o,subUnitId:s})}},uc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge-vertical`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r=pc(rc.MergeVertical,n);if(!(r!=null&&r.length))return!1;let i=H(e.get(A));if(!i)return!1;let{worksheet:a}=i,o=a.getUnitId(),s=a.getSheetId();return e.get(C).executeCommand(cc.id,{value:p.COLUMNS,selections:r,unitId:o,subUnitId:s})}},dc={type:u.COMMAND,id:`sheet.command.add-worksheet-merge-horizontal`,handler:async e=>{var t;let n=(t=e.get(Y).getCurrentSelections())==null?void 0:t.map(e=>e.range),r=pc(rc.MergeHorizontal,n);if(!(r!=null&&r.length))return!1;let i=H(e.get(A));if(!i)return!1;let{workbook:a,worksheet:o}=i,s=a.getUnitId(),c=o.getSheetId();return e.get(C).executeCommand(cc.id,{value:p.ROWS,selections:r,unitId:s,subUnitId:c})}};function fc(e,t,n,r,i={}){let a=H(e.get(A),{unitId:t,subUnitId:n});if(!a)return;let o=e.get(C),{defaultMerge:s=!0,isForceMerge:c=!1}=i,{worksheet:l}=a;if(l.getMergeData().some(e=>r.some(t=>I.intersects(t,e)))){if(!c)throw Error(`The ranges to be merged overlap with the existing merged cells`);o.syncExecuteCommand(tc.id,{unitId:t,subUnitId:n,ranges:r})}o.executeCommand(cc.id,{unitId:t,subUnitId:n,selections:r,defaultMerge:s})}function pc(e,t){return t?e===rc.MergeAll?t.filter(e=>!(e.startRow===e.endRow&&e.startColumn===e.endColumn)):e===rc.MergeVertical?t.filter(e=>e.startRow!==e.endRow):e===rc.MergeHorizontal?t.filter(e=>e.startColumn!==e.endColumn):t:null}var mc=class{constructor(){W(this,`_model`,new Map),W(this,`_ruleChange`,new tt),W(this,`_ruleRefresh`,new tt),W(this,`_resetOrder`,new tt),W(this,`ruleChange$`,this._ruleChange.asObservable()),W(this,`ruleRefresh$`,this._ruleRefresh.asObservable()),W(this,`resetOrder$`,this._resetOrder.asObservable()),W(this,`_worksheetRuleInitStateChange`,new et(!1)),W(this,`worksheetRuleInitStateChange$`,this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}getSheetRuleInitState(){return this._worksheetRuleInitStateChange.value}addRule(e,t){this._ensureSubUnitMap(e).set(t.subUnitId,t),this._ruleChange.next({unitId:e,rule:t,type:`add`,subUnitId:t.subUnitId})}deleteRule(e,t){var n;let r=(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t);if(r){var i;(i=this._model.get(e))==null||i.delete(t),this._ruleChange.next({unitId:e,rule:r,type:`delete`,subUnitId:t})}}setRule(e,t,n){let r=this.getRule(e,t);if(r){var i;(i=this._model)==null||(i=i.get(e))==null||i.set(t,n),this._ruleChange.next({unitId:e,oldRule:r,rule:n,type:`set`,subUnitId:t})}}getRule(e,t){var n;return(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t)}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t);n!=null&&n.size&&(e[t]=[],[...n.keys()].forEach(r=>{let i=n.get(r);i&&e[t].push(i)}))}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n];if(r!=null&&r.length){let e=new Map;r.forEach(t=>{e.set(t.subUnitId,t)}),t.set(n,e)}}),this._model=t}deleteUnitModel(e){this._model.delete(e)}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}ruleRefresh(e){this._ruleRefresh.next(e)}resetOrder(){this._resetOrder.next(Math.random())}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)if(i.permissionId===t)return[e,r]}};const hc={id:`sheet.mutation.add-worksheet-protection`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(mc),{unitId:r,rule:i}=t;return n.addRule(r,i),!0}},gc={id:`sheet.mutation.delete-worksheet-protection`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(mc),{unitId:r,subUnitId:i}=t;return n.deleteRule(r,i),!0}},_c={type:u.COMMAND,id:`sheet.command.add-worksheet-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(k),{rule:i,unitId:a}=t,o=i.subUnitId;if(await n.executeCommand(hc.id,{unitId:a,rule:i,subUnitId:i.subUnitId})){let e=[{id:hc.id,params:{unitId:a,rule:i,subUnitId:i.subUnitId}}],t=[{id:gc.id,params:{unitId:a,subUnitId:o}}];r.pushUndoRedo({unitID:a,redoMutations:e,undoMutations:t})}return!0}},vc={type:u.COMMAND,id:`sheet.command.set-worksheet-range-theme-style`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),{unitId:i}=t,a=bn(e,t);return n.syncExecuteCommand(yn.id,t)?(r.pushUndoRedo({unitID:i,undoMutations:[{id:xn.id,params:a}],redoMutations:[{id:yn.id,params:t}]}),!0):!1}},yc={type:u.COMMAND,id:`sheet.command.append-row`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),{unitId:i,subUnitId:a,cellValue:o,insertRowNums:s,insertColumnNums:c,maxRows:l,maxColumns:u}=t,d={unitId:i,subUnitId:a,cellValue:o},f=vr(e,d),p=[{id:J.id,params:d}],m=[{id:J.id,params:f}];if(s){let t={unitId:i,subUnitId:a,range:{startRow:l,endRow:l,startColumn:0,endColumn:u-1}},n=Cn(e,t);p.unshift({id:wn.id,params:t}),m.push({id:Nn.id,params:n})}if(c){let t={unitId:i,subUnitId:a,range:{startRow:0,endRow:l-1,startColumn:u,endColumn:u-1+c}},n=Tn(e,t);p.unshift({id:En.id,params:t}),m.push({id:Fn.id,params:n})}return z(p,n).result?(r.pushUndoRedo({unitID:i,undoMutations:m,redoMutations:p}),!0):!1}},bc=[`ff`,`fs`,`tr`,`tb`],xc={type:u.COMMAND,id:`sheet.command.set-style`,handler:(e,t)=>{var n;let r=H(e.get(A),t);if(!r)return!1;let{unitId:i,subUnitId:a,worksheet:o}=r,{range:s,style:c}=t,l=e.get(C),u=e.get(k),d=e.get(Y),f=s?[s]:(n=d.getCurrentSelections())==null?void 0:n.map(e=>e.range);if(!(f!=null&&f.length))return!1;let p=new M,m=ea(o);if(L.isArray(c.value))for(let e=0;e<f.length;e++)m.forOperableEach(f[e],(e,t,n)=>{p.setValue(e,t,{s:{[c.type]:c.value[e-n.startRow][t-n.startColumn]}})});else for(let e=0;e<f.length;e++){let t={s:{[c.type]:c.value}};m.forOperableEach(f[e],(e,n)=>p.setValue(e,n,t))}let h={subUnitId:a,unitId:i,cellValue:p.getMatrix()},g=e.get(Jo).getSkeleton(i,a),_=vr(e,h),v=null;if(bc.includes(t==null?void 0:t.style.type)){let{suitableRanges:e,remainingRanges:t}=Xo(f,g);v={suitableRanges:e,remainingRanges:t,cellHeights:Yo(e,o)}}let y=l.syncExecuteCommand(J.id,h),b=e.get(K),x=[],S=[];if(v){let{suitableRanges:e,remainingRanges:t,cellHeights:n}=v,{undos:r,redos:o}=b.generateMutationsOfAutoHeight({unitId:i,subUnitId:a,ranges:e,autoHeightRanges:e,lazyAutoHeightRanges:t,cellHeights:n});x=r,S=o}let{undos:w,redos:T}=b.onCommandExecute({id:xc.id,params:t}),E=z([...T,...S],l);return y&&E.result?(u.pushUndoRedo({unitID:h.unitId,undoMutations:[{id:J.id,params:_},...w,...x],redoMutations:[{id:J.id,params:h},...T,...S]}),!0):!1}},Sc={type:u.COMMAND,id:`sheet.command.set-bold`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=H(e.get(A));if(!n)return!1;let{worksheet:i}=n,{actualRow:a,actualColumn:o}=t.primary,s={style:{type:`bl`,value:i.getRange(a,o).getFontWeight()===b.BOLD?r.FALSE:r.TRUE}};return e.get(C).syncExecuteCommand(xc.id,s)}},Cc={type:u.COMMAND,id:`sheet.command.set-italic`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=H(e.get(A));if(!n)return!1;let{worksheet:i}=n,a=!0;if(t.primary){let{startRow:e,startColumn:n}=t.primary;a=i.getRange(e,n).getFontStyle()===y.ITALIC}let o={style:{type:`it`,value:a?r.FALSE:r.TRUE}};return e.get(C).syncExecuteCommand(xc.id,o)}},wc={type:u.COMMAND,id:`sheet.command.set-underline`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=H(e.get(A));if(!n)return!1;let{worksheet:i}=n,a=!0;t.primary&&(a=!!i.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);let o={style:{type:`ul`,value:{s:a?r.FALSE:r.TRUE}}};return e.get(C).syncExecuteCommand(xc.id,o)}},Tc={type:u.COMMAND,id:`sheet.command.set-stroke`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=H(e.get(A));if(!n)return!1;let{worksheet:i}=n,a=!0;t.primary&&(a=!!i.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);let o={style:{type:`st`,value:{s:a?r.FALSE:r.TRUE}}};return e.get(C).syncExecuteCommand(xc.id,o)}},Ec={type:u.COMMAND,id:`sheet.command.set-overline`,handler:e=>{let t=e.get(Y).getCurrentLastSelection();if(!t)return!1;let n=H(e.get(A));if(!n)return!1;let{worksheet:i}=n,a=!0;t.primary&&(a=!!i.getRange(t.primary.startRow,t.primary.startColumn).getOverline().s);let o={style:{type:`ol`,value:{s:a?r.FALSE:r.TRUE}}};return e.get(C).syncExecuteCommand(xc.id,o)}},Dc={type:u.COMMAND,id:`sheet.command.set-font-family`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={style:{type:`ff`,value:t.value}};return n.syncExecuteCommand(xc.id,r)}},Oc={type:u.COMMAND,id:`sheet.command.set-font-size`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={style:{type:`fs`,value:t.value}};return n.syncExecuteCommand(xc.id,r)}},kc={type:u.COMMAND,id:`sheet.command.set-text-color`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={style:{type:`cl`,value:{rgb:t.value}}};return n.syncExecuteCommand(xc.id,r)}},Ac={type:u.COMMAND,id:`sheet.command.reset-text-color`,handler:e=>e.get(C).syncExecuteCommand(xc.id,{style:{type:`cl`,value:{rgb:null}}})},jc={type:u.COMMAND,id:`sheet.command.set-background-color`,handler:(e,t)=>{if(!t||!t.value)return!1;let n=e.get(C),r={style:{type:`bg`,value:{rgb:t.value}}};return n.syncExecuteCommand(xc.id,r)}},Mc={type:u.COMMAND,id:`sheet.command.reset-background-color`,handler:e=>e.get(C).syncExecuteCommand(xc.id,{style:{type:`bg`,value:{rgb:null}}})},Nc={type:u.COMMAND,id:`sheet.command.set-vertical-text-align`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`vt`,value:t.value}};return n.syncExecuteCommand(xc.id,r)}},Pc={type:u.COMMAND,id:`sheet.command.set-horizontal-text-align`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`ht`,value:t.value}};return n.syncExecuteCommand(xc.id,r)}},Fc={type:u.COMMAND,id:`sheet.command.set-text-wrap`,handler:(e,t)=>{if(!t)return!1;let n=e.get(C),r={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`tb`,value:t.value}};return n.syncExecuteCommand(xc.id,r)}},Ic={type:u.COMMAND,id:`sheet.command.set-text-rotation`,handler:(e,t)=>{if(!t)return!1;let n=typeof t.value==`number`?{a:t.value}:{a:0,v:r.TRUE},i=e.get(C),a={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:`tr`,value:n}};return i.syncExecuteCommand(xc.id,a)}},Lc={零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},Rc=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],zc=[``,`万`,`亿`,`万亿`,`亿亿`],Bc=[``,`十`,`百`,`千`],Vc={十:{value:10,secUnit:!1},百:{value:100,secUnit:!1},千:{value:1e3,secUnit:!1},万:{value:1e4,secUnit:!0},亿:{value:1e8,secUnit:!0}};function Hc(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=Lc[a[e]];if(o!==void 0)r=o,e===a.length-1&&(n+=r);else{let o=Vc[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 Uc(e){let t=``,n=``,r=0,i=!0;for(;e>0;){let a=e%10;a===0?i||(i=!0,n=Rc[a]+n):(i=!1,t=Rc[a],t+=Bc[r],n=t+n),r++,e=Math.floor(e/10)}return n}function Wc(e){let t=0,n=``,r=``,i=!1;if(e===0)return Rc[0];for(;e>0;){let a=e%1e4;i&&(r=Rc[0]+r),n=Uc(a),n+=a===0?zc[0]:zc[t],r=n+r,i=a<1e3&&a>0,e=Math.floor(e/1e4),t++}return r}function Gc(e){if(!e)return!1;let t=!0;if(e)if(e.length===1)t=e===`日`||e in Lc;else{let n=e.split(``);for(let e=0;e<n.length;e++)if(!(n[e]in Lc||n[e]in Vc)){t=!1;break}}return t}function Kc(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 qc(e){let t;return t=e.length===1?e===`日`||Hc(e)<7:!1,t}function Jc(e){let t;return t=e.length===2?e===`周一`||e===`周二`||e===`周三`||e===`周四`||e===`周五`||e===`周六`||e===`周日`:!1,t}function Yc(e){let t;return t=e.length===3?e===`星期一`||e===`星期二`||e===`星期三`||e===`星期四`||e===`星期五`||e===`星期六`||e===`星期日`:!1,t}function Xc(e,t){let n=0;for(let r=0;r<e.length&&e[r]<t;r++)n++;return n}function Zc(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 Qc(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 $c(e,t){let n=[];for(let r=1;r<=t;r++){let t=(r-1)%e.length,i=L.deepClone(e[t]);hl(i),n.push({v:null,s:null,p:null,f:null,si:null,t:null,...i})}return n}function el(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 tl(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 nl(e){let t=[];for(let n=1;n<=e;n++)t.push(n);return t}function rl(e,t,n){let r=[],i=[];for(let t=0;t<e.length;t++){var a;i.push(Number((a=e[t])==null?void 0:a.v))}if(e.length>2&&tl(i))for(let n=1;n<=t;n++){var o,s,c;let t=(n-1)%e.length,i=L.deepClone(e[t]);hl(i);let a=Number((o=e[e.length-1])==null?void 0:o.v)*(Number((s=e[1])==null?void 0:s.v)/Number((c=e[0])==null?void 0:c.v))**n;i&&(ml(i)&&(i.v=a),r.push(i))}else{let a=nl(e.length);for(let o=1;o<=t;o++){let t=(o-1)%e.length,s=L.deepClone(e[t]);hl(s);let c=n===m.DOWN||n===m.RIGHT,l=il(e.length+o,i,a,c);s&&(ml(s)&&(s.v=l),r.push(s))}}return r}function il(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 al(e,t,n){let r=[],i=/0|([1-9]+[0-9]*)/g;for(let o=1;o<=t;o++){var a;let t=(o-1)%e.length,s=L.deepClone(e[t]);hl(s);let c=`${(a=e[e.length-1])==null?void 0:a.v}`;if(!c)continue;let l=c==null?void 0:c.match(i),u=l==null?void 0:l[l.length-1];if(!u)continue;let d=Math.abs(Number(u)+n*o),f=c.lastIndexOf(u),p=c.substr(0,f)+d.toString()+c.substr(f+u.length);s&&(s.v=p,r.push(s))}return r}function ol(e,t){let n=[];for(let r=1;r<=t;r++){let t=(r-1)%e.length,i=L.deepClone(e[t]);hl(i),i&&(delete i.v,n.push(i))}return n}function sl(e,t,n,r=0){let i=[[`日`,`一`,`二`,`三`,`四`,`五`,`六`],[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`]];if(r>=i.length)return[];let a=i[r],o=[];for(let r=1;r<=t;r++){var s;let t=(r-1)%e.length,i=L.deepClone(e[t]);hl(i);let l=0;if(((s=e[e.length-1])==null?void 0:s.v)===a[0])l=7+n*r;else{var c;let t=`${(c=e[e.length-1])==null?void 0:c.v}`;t&&(l=Hc(t.substr(t.length-1,1))+n*r)}l<0&&(l=Math.ceil(Math.abs(l)/7)*7+l);let u=l%7;i&&(i.v=a[u],o.push(i))}return o}function cl(e,t,n){let r=[];for(let a=1;a<=t;a++){var i;let t=(a-1)%e.length,o=L.deepClone(e[t]);hl(o);let s=Hc(`${(i=e[e.length-1])==null?void 0:i.v}`)+n*a,c;c=s<=0?`零`:Wc(s),o&&(o.v=c,r.push(o))}return r}const ll={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 ul(e){let t=!1;return Object.keys(ll).forEach(n=>{ll[n].includes(e)&&(t=!0)}),t}function dl(e){let t=``,n=[];return Object.keys(ll).forEach(r=>{ll[r].includes(e)&&(t=r,n.push(...ll[r]))}),{name:t,series:n}}function fl(e,t,n,r){let i=r.length,a=[];for(let s=1;s<=t;s++){var o;let t=(s-1)%e.length,c=L.deepClone(e[t]);hl(c);let l=`${(o=e[e.length-1])==null?void 0:o.v}`,u=r.indexOf(l)+n*s;u<0&&(u+=Math.abs(n)*i);let d=u%i;c&&(c.v=r[d],a.push(c))}return a}function pl(e,t){let n=[],r;if(t.startRow<e.startRow)r=m.UP;else if(t.endRow>e.endRow)r=m.DOWN;else if(t.startColumn<e.startColumn)r=m.LEFT;else if(t.endColumn>e.endColumn)r=m.RIGHT;else return[];if(r===m.DOWN||r===m.UP){let i=e.endRow-e.startRow+1,a=t.endRow-t.startRow+1,o=Math.floor(a/i),s=a%i,c={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(r===m.DOWN){for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow+(t+1)*i,col:e.startColumn},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow+(o+1)*i,col:e.startColumn},relativeRange:{startRow:0,startColumn:0,endRow:s-1,endColumn:e.endColumn-e.startColumn}})}else{for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow-(t+1)*i,col:e.startColumn},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow-(o+1)*i,col:e.startColumn},relativeRange:{startRow:i-s,endRow:i-1,startColumn:0,endColumn:e.endColumn-e.startColumn}})}}if(r===m.RIGHT||r===m.LEFT){let i=e.endColumn-e.startColumn+1,a=t.endColumn-t.startColumn+1,o=Math.floor(a/i),s=a%i,c={startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:e.endColumn-e.startColumn};if(r===m.RIGHT){for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(t+1)*i},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow,col:e.startColumn+(o+1)*i},relativeRange:{startRow:0,startColumn:0,endRow:e.endRow-e.startRow,endColumn:s-1}})}else{for(let t=0;t<o;t++)n.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(t+1)*i},relativeRange:c});s>0&&n.push({repeatStartCell:{row:e.startRow,col:e.startColumn-(o+1)*i},relativeRange:{startRow:0,startColumn:i-s,endRow:e.endRow-e.startRow,endColumn:i-1}})}}return n}function ml(e){return!(je(e.f)||Ae(e.si)||e.t===l.BOOLEAN)}function hl(e){e&&`custom`in e&&delete e.custom}function gl(e,t){return t?e.reverse():e}function _l(e){let t=new M;return e.forEach(e=>{let{rows:n,cols:r}=e;n.forEach(e=>{r.forEach(n=>{t.setValue(e,n,{v:null,p:null,f:null,si:null,custom:null})})})}),t.clone()}const vl={chnNumChar:Lc,chnNumChar2:Rc,chnUnitSection:zc,chnUnitChar:Bc,chnNameValue:Vc,chineseToNumber:Hc,sectionToChinese:Uc,numberToChinese:Wc,isChnNumber:Gc,matchExtendNumber:Kc,isChnWeek1:qc,isChnWeek2:Jc,isChnWeek3:Yc,getLenS:Xc,isEqualDiff:Zc,getDataIndex:Qc,fillCopy:$c,fillCopyStyles:el,isEqualRatio:tl,getXArr:nl,fillSeries:rl,forecast:il,fillExtendNumber:al,fillOnlyFormat:ol,fillChnWeek:sl,fillChnNumber:cl,isLoopSeries:ul,getLoopSeriesInfo:dl,fillLoopSeries:fl,getAutoFillRepeatRange:pl,needsUpdateCellValue:ml,removeCellCustom:hl,reverseIfNeed:gl,generateNullCellValueRowCol:_l};let $=function(e){return e.COPY=`COPY`,e.SERIES=`SERIES`,e.ONLY_FORMAT=`ONLY_FORMAT`,e.NO_FORMAT=`NO_FORMAT`,e}({}),yl=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}({}),bl=function(e){return e.APPEND=`APPEND`,e.DEFAULT=`DEFAULT`,e.ONLY=`ONLY`,e}({});const{chineseToNumber:xl,fillChnNumber:Sl,fillChnWeek:Cl,fillCopy:wl,fillExtendNumber:Tl,fillLoopSeries:El,fillSeries:Dl,getLoopSeriesInfo:Ol,isChnNumber:kl,isChnWeek2:Al,isChnWeek3:jl,isEqualDiff:Ml,isLoopSeries:Nl,matchExtendNumber:Pl,reverseIfNeed:Fl}=vl,Il={dateRule:{type:yl.DATE,priority:1100,match:(e,t)=>{if(e!=null&&e.f||e!=null&&e.si)return!1;if((typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===l.NUMBER)&&e.s){if(typeof e.s==`string`){var n;let r=t.get(A).getCurrentUnitOfType(R.UNIVER_SHEET);if(!r)return!1;let i=r.getStyles().get(e.s),a=i==null||(n=i.n)==null?void 0:n.pattern;if(a)return Ue.getFormatInfo(a).isDate}else if(e.s.n&&Ue.getFormatInfo(e.s.n.pattern).isDate)return!0}return!1},isContinue:(e,t)=>e.type===yl.DATE,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e;return n===m.LEFT||n===m.UP?(r.reverse(),Dl(r,t,n).reverse()):Dl(r,t,n)}}},numberRule:{type:yl.NUMBER,priority:1e3,match:e=>typeof(e==null?void 0:e.v)==`number`||(e==null?void 0:e.t)===l.NUMBER,isContinue:(e,t)=>e.type===yl.NUMBER,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e;return n===m.LEFT||n===m.UP?(r.reverse(),Dl(r,t,n).reverse()):Dl(r,t,n)}}},extendNumberRule:{type:yl.EXTEND_NUMBER,priority:900,match:e=>Pl(`${e==null?void 0:e.v}`||``).isExtendNumber,isContinue:(e,t)=>{if(e.type===yl.EXTEND_NUMBER){var n;let{beforeTxt:r,afterTxt:i}=Pl(`${(n=e.cellData)==null?void 0:n.v}`||``),{beforeTxt:a,afterTxt:o}=Pl(`${t==null?void 0:t.v}`||``);if(r===a&&i===o)return!0}return!1},applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.UP||n===m.LEFT,a;if(r.length===1)return a=i?-1:1,Fl(Tl(r,t,a),i);let o=[];for(let e=0;e<r.length;e++){var s;let t=`${(s=r[e])==null?void 0:s.v}`;t&&o.push(Number(Pl(t).matchTxt))}return i&&(r.reverse(),o.reverse()),Ml(o)?(a=o[1]-o[0],Fl(Tl(r,t,a),i)):wl(r,t)}}},chnNumberRule:{type:yl.CHN_NUMBER,priority:830,match:e=>!!kl(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===yl.CHN_NUMBER,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.LEFT||n===m.UP;if(r.length===1){var a;let e=`${(a=r[0])==null?void 0:a.v}`,n;return n=i?-1:1,e&&(e===`日`||xl(e)<7)?Fl(Cl(r,t,n),i):Fl(Sl(r,t,n),i)}let o=!1;for(let e=0;e<r.length;e++){var s;if(((s=r[e])==null?void 0:s.v)===`日`){o=!0;break}}let c=[],l=0;for(let e=0;e<r.length;e++){var u;let t=`${(u=r[e])==null?void 0:u.v}`;t===`日`?e===0?c.push(0):(l++,c.push(l*7)):o&&xl(t)>0&&xl(t)<7?c.push(xl(t)+l*7):c.push(xl(t))}return i&&(r.reverse(),c.reverse()),Ml(c)?o||c[c.length-1]<6&&c[0]>0||c[0]<6&&c[c.length-1]>0?Fl(Cl(r,t,c[1]-c[0]),i):Fl(Sl(r,t,c[1]-c[0]),i):wl(r,t)}}},chnWeek2Rule:{type:yl.CHN_WEEK2,priority:820,match:e=>!!Al(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===yl.CHN_WEEK2,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.LEFT||n===m.UP;if(r.length===1){let e;return e=i?-1:1,Fl(Cl(r,t,e,1),i)}let a=[],o=0;for(let e=0;e<r.length;e++){var s;let t=`${(s=r[e])==null?void 0:s.v}`,n=t==null?void 0:t.substr(t.length-1,1);t===`周日`?e===0?a.push(0):(o++,a.push(o*7)):a.push(xl(n)+o*7)}return i&&(r.reverse(),a.reverse()),Ml(a)?Fl(Cl(r,t,a[1]-a[0],1),i):wl(r,t)}}},chnWeek3Rule:{type:yl.CHN_WEEK3,priority:810,match:e=>jl(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>e.type===yl.CHN_WEEK3,applyFunctions:{[$.SERIES]:(e,t,n)=>{let{data:r}=e,i=n===m.LEFT||n===m.UP;if(r.length===1){let e;return e=i?-1:1,Fl(Cl(r,t,e,2),i)}let a=[],o=0;for(let e=0;e<r.length;e++){var s;let t=`${(s=r[e])==null?void 0:s.v}`;if(t){let n=t.substr(t.length-1,1);t===`星期日`?e===0?a.push(0):(o++,a.push(o*7)):a.push(xl(n)+o*7)}}return i&&(r.reverse(),a.reverse()),Ml(a)?Fl(Cl(r,t,a[1]-a[0],2),i):wl(r,t)}}},loopSeriesRule:{type:yl.LOOP_SERIES,priority:800,match:e=>Nl(`${e==null?void 0:e.v}`||``),isContinue:(e,t)=>{if(e.type===yl.LOOP_SERIES){var n;return Ol(`${(n=e.cellData)==null?void 0:n.v}`||``).name===Ol(`${t==null?void 0:t.v}`||``).name}return!1},applyFunctions:{[$.SERIES]:(e,t,n)=>{var r;let{data:i}=e,a=n===m.LEFT||n===m.UP,{series:o}=Ol(`${(r=i[0])==null?void 0:r.v}`||``);if(i.length===1){let e;return e=a?-1:1,Fl(El(i,t,e,o),a)}let s=[],c=0;for(let e=0;e<i.length;e++){var l;let t=`${(l=i[e])==null?void 0:l.v}`;t&&(t===o[0]?e===0?s.push(0):(c++,s.push(c*o.length)):s.push(o.indexOf(t)+c*7))}return a&&(i.reverse(),s.reverse()),Ml(s)?Fl(El(i,t,s[1]-s[0],o),a):wl(i,t)}}},otherRule:{type:yl.OTHER,priority:0,match:()=>!0,isContinue:(e,t)=>e.type===yl.OTHER}},{chnNumberRule:Ll,chnWeek2Rule:Rl,chnWeek3Rule:zl,dateRule:Bl,extendNumberRule:Vl,loopSeriesRule:Hl,numberRule:Ul,otherRule:Wl}=Il;let Gl=class extends h{constructor(e,t,n,r){super(),this._commandService=e,this._undoRedoService=t,this._univerInstanceService=n,this._injector=r,W(this,`_rules`,[]),W(this,`_hooks`,[]),W(this,`_applyType$`,new et($.SERIES)),W(this,`_isFillingStyle`,!0),W(this,`_prevUndos`,[]),W(this,`_autoFillLocation$`,new et(null)),W(this,`autoFillLocation$`,this._autoFillLocation$.asObservable()),W(this,`_showMenu$`,new et(!1)),W(this,`showMenu$`,this._showMenu$.asObservable()),W(this,`_direction`,m.DOWN),W(this,`applyType$`,this._applyType$.asObservable()),W(this,`_menu$`,new et([{label:`autoFill.copy`,value:$.COPY,disable:!1},{label:`autoFill.series`,value:$.SERIES,disable:!1},{label:`autoFill.formatOnly`,value:$.ONLY_FORMAT,disable:!1},{label:`autoFill.noFormat`,value:$.NO_FORMAT,disable:!1}])),W(this,`menu$`,this._menu$.asObservable()),this._init()}_init(){this._rules=[Bl,Ul,Vl,Ll,Rl,zl,Hl,Wl].sort((e,t)=>t.priority-e.priority),this._isFillingStyle=!0}_getOneByPriority(e){return e.length<=0?[]:[e.reduce((e,t)=>(t.priority||0)>(e.priority||0)?t:e,e[0])]}_initPrevUndo(){this._prevUndos=[]}async triggerAutoFill(e,t,n,r,i){var a;if(n.startColumn===r.startColumn&&n.startRow===r.startRow&&n.endColumn===r.endColumn&&n.endRow===r.endRow)return!1;if(r.endColumn<n.endColumn&&r.endColumn>n.startColumn)return this._commandService.executeCommand(Ql.id,{clearRange:{startRow:r.startRow,endRow:r.endRow,startColumn:r.endColumn+1,endColumn:n.endColumn},selectionRange:r});if(r.endRow<n.endRow&&r.endRow>n.startRow)return this._commandService.executeCommand(Ql.id,{clearRange:{startRow:r.endRow+1,endRow:n.endRow,startColumn:r.startColumn,endColumn:r.endColumn},selectionRange:r});let o={startRow:r.startRow,endRow:r.endRow,startColumn:r.startColumn,endColumn:r.endColumn},s=null;if(r.startRow<n.startRow)s=m.UP,o.endRow=n.startRow-1;else if(r.endRow>n.endRow)s=m.DOWN,o.startRow=n.endRow+1;else if(r.startColumn<n.startColumn)s=m.LEFT,o.endColumn=n.startColumn-1;else if(r.endColumn>n.endColumn)s=m.RIGHT,o.startColumn=n.endColumn+1;else return!1;this.direction=s;let c=this._injector.invoke(e=>ji(n,e)),l=this._injector.invoke(e=>ji(o,e));if(!c||!l)return!1;this.autoFillLocation={source:c,target:l,unitId:e,subUnitId:t};let u=[];if(this.getActiveHooks().forEach(n=>{var r;let i=n==null||(r=n.onBeforeFillData)==null?void 0:r.call(n,{source:c,target:l,unitId:e,subUnitId:t},s);i&&u.unshift(i)}),this._initPrevUndo(),i)return this.fillData(i);for(let e=0;e<u.length;e++){let t=this.menu.find(t=>t.value===u[e]);if(t&&!t.disable)return this.fillData(u[e])}let d=(a=this.menu.find(e=>e.disable===!1))==null?void 0:a.value;return d?this.fillData(d):!1}addHook(e){if(this._hooks.find(t=>t.id===e.id))throw Error(`Add hook failed, hook id '${e.id}' already exist!`);return e.priority===void 0&&(e.priority=0),e.type===void 0&&(e.type=bl.APPEND),this._hooks.push(e),Ze(()=>{let t=this._hooks.findIndex(t=>t===e);t>-1&&this._hooks.splice(t,1)})}registerRule(e){if(this._rules.find(t=>t.type===e.type))throw Error(`Registry rule failed, type '${e.type}' already exist!`);let t=this._rules.findIndex(t=>t.priority<e.priority);this._rules.splice(t===-1?this._rules.length:t,0,e)}getRules(){return this._rules}getAllHooks(){return this._hooks}getActiveHooks(){let{source:e,target:t,unitId:n,subUnitId:r}=this.autoFillLocation||{};if(!e||!t||!n||!r)return[];let i=this._hooks.filter(i=>{var a;return!((a=i.disable)!=null&&a.call(i,{source:e,target:t,unitId:n,subUnitId:r},this._direction,this.applyType))}),a=i.filter(e=>e.type===bl.ONLY);if(a.length>0)return this._getOneByPriority(a);let o=this._getOneByPriority(i.filter(e=>e.type===bl.DEFAULT)),s=i.filter(e=>e.type===bl.APPEND)||[];return[...o,...s]}get applyType(){return this._applyType$.getValue()}set applyType(e){this._applyType$.next(e)}get menu(){return this._menu$.getValue()}get direction(){return this._direction}set direction(e){this._direction=e}isFillingStyle(){return this._isFillingStyle}setFillingStyle(e){this._isFillingStyle=e}get autoFillLocation(){return this._autoFillLocation$.getValue()}set autoFillLocation(e){this._autoFillLocation$.next(e)}setDisableApplyType(e,t){this._menu$.next(this._menu$.getValue().map(n=>n.value===e?{...n,disable:t}:n))}setShowMenu(e){this._showMenu$.next(e)}fillData(e){var t;this.applyType=e;let n=this._univerInstanceService.getCurrentUnitOfType(R.UNIVER_SHEET),r=n==null?void 0:n.getUnitId(),i=n==null||(t=n.getActiveSheet())==null?void 0:t.getSheetId(),{source:a,target:o,unitId:s=r,subUnitId:c=i}=this.autoFillLocation||{};if(!a||!o||!s||!c)return!1;let l=this._univerInstanceService.getUnit(s,R.UNIVER_SHEET);if(!l)return!1;let u=l.getSheetBySheetId(c);if(!u)return!1;let d=this.direction;this._prevUndos.length>0&&this._prevUndos.forEach(e=>{this._commandService.syncExecuteCommand(e.id,e.params)}),this._prevUndos=[];let f=I.union(Ai(a),Ai(o)),p=this.getActiveHooks();s===r&&c===i&&this._commandService.syncExecuteCommand(X.id,{selections:[{primary:Zi({startRow:a.rows[0],endRow:a.rows[a.rows.length-1],startColumn:a.cols[0],endColumn:a.cols[a.cols.length-1]},u),range:{...f,rangeType:P.NORMAL}}],unitId:s,subUnitId:c});let m=[],h=[];p.forEach(t=>{var n;let{undos:r,redos:i}=((n=t.onFillData)==null?void 0:n.call(t,{source:a,target:o,unitId:s,subUnitId:c},d,e))||{};r&&m.push(...r),i&&h.push(...i)});let g=h.every(e=>this._commandService.syncExecuteCommand(e.id,e.params)),{redos:_,undos:v}=this._getAutoHeightUndoRedos(h,l,u);return h.push(..._),m.push(...v),g&&(this._prevUndos=m,this._undoRedoService.pushUndoRedo({unitID:s,undoMutations:m,redoMutations:h})),p.forEach(t=>{var n;(n=t.onAfterFillData)==null||n.call(t,{source:a,target:o,unitId:s,subUnitId:c},d,e)}),this.setShowMenu(!0),!0}_getAutoHeightUndoRedos(e,t,n){if(this.applyType===$.NO_FORMAT)return{undos:[],redos:[]};let r=[],i=n.getConfig().defaultRowHeight,a=n.getRowManager();if(e.forEach(e=>{if(e.id===J.id){let{cellValue:o}=e.params;new M(o).forValue((e,o,s)=>{let c=Object.keys(t.getStyles().get(s==null?void 0:s.s)||{});if(s!=null&&s.p||c.length&&bc.some(e=>c.includes(e))){let t=n.getCellHeight(e,o),s=a.getRow(e);(!s&&t!==i||s&&t!==a.getRowHeight(e))&&r.push({row:e,autoHeight:t})}})}}),r.length===0)return{undos:[],redos:[]};let o={unitId:t.getUnitId(),subUnitId:n.getSheetId(),rowsAutoHeightInfo:r},s=Rr(o,n),c={id:Vr.id,params:o};return this._commandService.syncExecuteCommand(c.id,c.params)?{redos:[c],undos:[{id:Vr.id,params:s}]}:{undos:[],redos:[]}}};Gl=Jt([G(0,C),G(1,k),G(2,j(A)),G(3,j(ne))],Gl);const Kl=Ce(`univer.auto-fill-service`),ql={type:u.COMMAND,id:`sheet.command.auto-fill`,handler:async(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{unitId:r,subUnitId:i}=n,{sourceRange:a,targetRange:o,applyType:s}=t;return e.get(Kl).triggerAutoFill(r,i,a,o,s)}};function Jl(e,t){let n=e.get(Y).getCurrentLastSelection();if(!n)return null;let r=H(e.get(A));if(!r)return null;let{unitId:i,subUnitId:a}=r,{startRow:o,endRow:s,startColumn:c,endColumn:l}=n.range;return t===`down`?o===s?o===0?null:{sourceRange:{startRow:o-1,endRow:o-1,startColumn:c,endColumn:l},targetRange:{startRow:o-1,endRow:s,startColumn:c,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}:{sourceRange:{startRow:o,endRow:o,startColumn:c,endColumn:l},targetRange:{startRow:o,endRow:s,startColumn:c,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}:c===l?c===0?null:{sourceRange:{startRow:o,endRow:s,startColumn:c-1,endColumn:c-1},targetRange:{startRow:o,endRow:s,startColumn:c-1,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}:{sourceRange:{startRow:o,endRow:s,startColumn:c,endColumn:c},targetRange:{startRow:o,endRow:s,startColumn:c,endColumn:l},unitId:i,subUnitId:a,applyType:$.COPY}}async function Yl(e,t){let n=Jl(e,t);if(!n)return!1;let r=await e.get(C).executeCommand(ql.id,n);return r&&e.get(Kl).setShowMenu(!1),r}const Xl={type:u.COMMAND,id:`sheet.command.copy-down`,handler:async e=>Yl(e,`down`)},Zl={type:u.COMMAND,id:`sheet.command.copy-right`,handler:async e=>Yl(e,`right`)},Ql={id:`sheet.command.auto-clear-content`,type:u.COMMAND,handler:async(e,t)=>{let n=H(e.get(A));if(!n)return!1;let r=e.get(C),i=e.get(k),a=e.get(K),o=e.get(Y),{unitId:s,subUnitId:c}=n,{clearRange:l,selectionRange:u}=t,{startColumn:d,startRow:f}=u,p={subUnitId:c,unitId:s,cellValue:Oi([l])},m=vr(e,p),h=[{id:J.id,params:p},{id:X.id,params:{selections:[{primary:{startColumn:d,startRow:f,endColumn:d,endRow:f,actualRow:f,actualColumn:d,isMerged:!1,isMergedMainCell:!1},range:{...u}}],unitId:s,subUnitId:c}}],g=[{id:J.id,params:m},{id:X.id,params:{selections:[o.getCurrentLastSelection()],unitId:s,subUnitId:c}}];if(z(h,r)){let e=a.afterCommandExecute({id:J.id,params:p});return z(e.redos,r),i.pushUndoRedo({unitID:s,undoMutations:[...g,...e.undos],redoMutations:[...h,...e.redos]}),!0}return!1}},$l={id:`sheet.command.clear-selection-content`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(A),i=e.get(C),a=e.get(Y),o=e.get(k),s=e.get(K),c=r.getCurrentUnitForType(R.UNIVER_SHEET);if(!c)return!1;let l=(t==null?void 0:t.unitId)||c.getUnitId(),u=c.getActiveSheet();if(!u)return!1;let d=(t==null?void 0:t.subUnitId)||u.getSheetId(),f=(t==null?void 0:t.ranges)||((n=a.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(f!=null&&f.length))return!1;let p={subUnitId:d,unitId:l,cellValue:Oi(Mi(f,e,l,d))},m=vr(e,p),h=s.onCommandExecute({id:$l.id}),g=[{id:J.id,params:p},...h.redos],_=[...h.undos,{id:J.id,params:m}];return z(g,i).result?(o.pushUndoRedo({unitID:l,undoMutations:_,redoMutations:g}),!0):!1}},eu=`sheets.config`;Symbol(eu);const tu={largeSheetCellCountThreshold:6e3,batchSize:3e3},nu={};let ru=class extends h{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,W(this,`_tasks`,new Map),W(this,`_idleCallbackId`,null),W(this,`_beforeUnloadHandler`,null),this._setupBeforeUnloadListener(),this.disposeWithMe(()=>{this._cancelAllTasks(),this._removeBeforeUnloadListener()})}hasPendingTasks(){return this._tasks.size>0}getPendingMutationsCount(){let e=0;for(let t of this._tasks.values())e+=t.mutations.length-t.currentIndex;return e}scheduleMutations(e,t,n){if(n.length===0)return;let r=`${e}_${t}`;this._cancelTask(r),this._tasks.set(r,{unitId:e,subUnitId:t,mutations:n,currentIndex:0}),this._scheduleNextIdle()}cancelScheduledMutations(e,t){let n=`${e}_${t}`;this._cancelTask(n)}_cancelTask(e){this._tasks.delete(e),this._tasks.size===0&&this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_cancelAllTasks(){this._tasks.clear(),this._idleCallbackId!==null&&(typeof cancelIdleCallback<`u`&&cancelIdleCallback(this._idleCallbackId),this._idleCallbackId=null)}_scheduleNextIdle(){this._idleCallbackId===null&&(typeof requestIdleCallback<`u`?this._idleCallbackId=requestIdleCallback(e=>this._processIdleTasks(e),{timeout:1e3*60}):this._idleCallbackId=setTimeout(()=>{this._processIdleTasks({didTimeout:!1,timeRemaining:()=>16})},16))}_processIdleTasks(e){this._idleCallbackId=null;for(let[t,n]of this._tasks){if(!this._isSheetExist(n.unitId,n.subUnitId)){this._tasks.delete(t);continue}for(n.currentIndex;n.currentIndex<n.mutations.length;){if(e.timeRemaining()<=0&&!e.didTimeout){this._scheduleNextIdle();return}let t=n.mutations[n.currentIndex];this._commandService.syncExecuteCommand(t.id,t.params,{onlyLocal:!0}),n.currentIndex++}this._tasks.delete(t)}this._tasks.size>0&&this._scheduleNextIdle()}_isSheetExist(e,t){let n=this._univerInstanceService.getUnit(e,R.UNIVER_SHEET);return n?n.getSheetBySheetId(t)!==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)}};ru=Jt([G(0,C),G(1,A)],ru);const iu={id:`sheet.mutation.copy-worksheet-end`,type:u.MUTATION,handler:()=>!0},au=(e,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),ou={id:`sheet.mutation.insert-sheet`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A),{sheet:r,index:i,unitId:a,styles:o}=t,s=n.getUniverSheetInstance(a);return s?(o&&s.addStyles(o),s.addWorksheet(r.id,i,be(r))):!1}};function su(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 cu(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:J.id,params:{unitId:e,subUnitId:t,cellValue:n,__splitChunk__:!0}}))}}const lu=`sheet.command.copy-sheet`;function uu(e,t,n,r,i,a,o){var s,c;let l=e.get(w).getConfig(eu),u={...tu,...l==null?void 0:l.largeSheetOperation},d=be(n.getConfig());d.name=fu(t,a,d.name);let f=Ee();d.id=f;let p=t.getSheetIndex(n),{cellData:m}=d,h=su(m)>=u.largeSheetCellCountThreshold,g,_=[];if(h){let{firstChunkCellData:e,remainingMutations:t}=cu(r,f,m,u.batchSize),n={...d,cellData:e};g={index:p+1,sheet:n,unitId:r},_=t}else g={index:p+1,sheet:d,unitId:r};let v=au(e,g),y=o.onCommandExecute({id:lu,params:{unitId:r,subUnitId:i,targetSubUnitId:d.id}});return{redos:[...(s=y.preRedos)==null?[]:s,{id:ou.id,params:g},...y.redos],undos:[...(c=y.preUndos)==null?[]:c,{id:Bo.id,params:v},...y.undos],unitId:r,newSheetId:f,isSplit:h,scheduledMutations:_}}const du={type:u.COMMAND,id:lu,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=e.get(A),a=e.get(K),o=e.get(oe),s=e.get(ru),c=H(i,t);if(!c)return!1;let{workbook:l,worksheet:u,unitId:d,subUnitId:f}=c,{redos:p,undos:m,newSheetId:h,isSplit:g,scheduledMutations:_}=uu(e,l,u,d,f,o,a);if(z(p,n).result){if(g){if(r.pushUndoRedo({unitID:d,undoMutations:m,redoMutations:[]}),_.length>0){for(let e of _)n.syncExecuteCommand(e.id,e.params,{syncOnly:!0});n.syncExecuteCommand(iu.id,{unitId:d,subUnitId:h},{syncOnly:!0}),s.scheduleMutations(d,h,_)}}else r.pushUndoRedo({unitID:d,undoMutations:m,redoMutations:p});return!0}return!1}};function fu(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 pu={type:u.COMMAND,id:`sheet.command.delete-range-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(k),{unitId:i,subUnitId:a,rule:o}=t,s={unitId:i,subUnitId:a,ruleIds:[o.id]};return await n.executeCommand(Li.id,s)&&r.pushUndoRedo({unitID:i,redoMutations:[{id:Li.id,params:s}],undoMutations:[{id:zi.id,params:{unitId:i,subUnitId:a,rules:[o]}}]}),!0}},mu={type:u.COMMAND,id:`sheet.command.delete-worksheet-protection`,handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(k),{rule:i,unitId:a,subUnitId:o}=t;n.executeCommand(gc.id,{unitId:a,subUnitId:o});let s=[{id:gc.id,params:{unitId:a,subUnitId:o}}],c=[{id:hc.id,params:{unitId:a,rule:i,subUnitId:o}}];return r.pushUndoRedo({unitID:a,redoMutations:s,undoMutations:c}),!0}},hu={type:u.COMMAND,id:`sheet.command.remove-worksheet-range-theme-style`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),{unitId:i}=t,a=Sn(e,t);return n.syncExecuteCommand(xn.id,t)?(r.pushUndoRedo({unitID:i,undoMutations:[{id:yn.id,params:a}],redoMutations:[{id:xn.id,params:t}]}),!0):!1}},gu={id:`sheet.command.insert-defined-name`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C),r=e.get(k);if(!t)return!1;let i={...t};return n.syncExecuteCommand(bt.id,i)?(r.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:yt.id,params:i}],redoMutations:[{id:bt.id,params:i}]}),!0):!1}},_u={id:`sheet.command.insert-sheet`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=e.get(A),a=e.get(oe),o=Rt(i,{unitId:t==null?void 0:t.unitId});if(!o)return!1;let{unitId:s,workbook:c}=o,l=c.getSheets().length,u=t==null?void 0:t.sheet,d=u==null?void 0:u.id,f=Be(u||{});if(t){var p;l=(p=t.index)==null?l:p,f.id=d||Ee(),f.name=(u==null?void 0:u.name)||c.generateNewSheetName(`${a.t(`sheets.tabs.sheet`)}`)}else f.id=Ee(),f.name=c.generateNewSheetName(`${a.t(`sheets.tabs.sheet`)}`);let m={index:l,sheet:f,unitId:s},h=au(e,m);return n.syncExecuteCommand(ou.id,m)?(r.pushUndoRedo({unitID:s,undoMutations:[{id:Bo.id,params:h}],redoMutations:[{id:ou.id,params:m}]}),!0):!1}},vu={id:`sheet.command.refill`,type:u.COMMAND,handler:async(e,t)=>e.get(Kl).fillData(t.type)},yu={id:`sheet.mutation.register-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!H(e.get(A),t))return!1;let n=e.get(vn),{unitId:r,rangeThemeStyleJson:i,themeName:a}=t,o=new nn(a,i);return n.registerRangeThemeStyle(r,o),!0}},bu={id:`sheet.mutation.unregister-worksheet-range-theme-style`,type:u.MUTATION,handler:(e,t)=>{if(!H(e.get(A),t))return!1;let n=e.get(vn),{unitId:r,themeName:i}=t;return n.unregisterRangeThemeStyle(r,i),!0}},xu={id:`sheet.command.register-worksheet-range-theme-style`,type:u.COMMAND,handler:(e,t)=>{if(!t)return!1;let{unitId:n,rangeThemeStyle:r}=t,i=e.get(A),a=e.get(C),o=e.get(k);if(!H(i,t))return!1;let s={unitId:n,themeName:r.getName(),rangeThemeStyleJson:r.toJson()},c={unitId:n,themeName:r.getName()};return a.syncExecuteCommand(yu.id,s)&&o.pushUndoRedo({unitID:n,undoMutations:[{id:bu.id,params:c}],redoMutations:[{id:yu.id,params:s}]}),!0}},Su={id:`sheet.command.remove-defined-name`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(k),o=e.get(K);if(!t)return!1;let s={...t},c=o.onCommandExecute({id:Su.id,params:t}),l=[...(n=c.preRedos)==null?[]:n,{id:yt.id,params:s},...c.redos],u=[...(r=c.preUndos)==null?[]:r,{id:bt.id,params:s},...c.undos];return z(l,i)?(a.pushUndoRedo({unitID:t.unitId,undoMutations:u.filter(Boolean),redoMutations:l.filter(Boolean)}),!0):!1}},Cu={id:`sheet.command.remove-sheet`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(k),o=e.get(A),s=e.get(K),c=e.get(w),l=H(o,t);if(!l)return!1;let{unitId:u,subUnitId:d,workbook:f,worksheet:p}=l;if(f.getSheets().length<=1)return!1;let m=c.getConfig(eu),h={...tu,...m==null?void 0:m.largeSheetOperation},g=Zo(p.getCellMatrix())>=h.largeSheetCellCountThreshold,_={subUnitId:d,unitId:u,subUnitName:p.getName()},v=g?null:zo(e,_),y=s.onCommandExecute({id:Cu.id,params:{unitId:u,subUnitId:d}}),b=[...(n=y.preRedos)==null?[]:n,{id:Bo.id,params:_},...y.redos],x=g?[]:[...(r=y.preUndos)==null?[]:r,{id:ou.id,params:v},...y.undos];return z(b,i).result?(g?a.clearUndoRedo(u):a.pushUndoRedo({unitID:u,undoMutations:x,redoMutations:b}),!0):!1}};var wu=class{constructor(){W(this,`_borderInfo`,{type:a.ALL,color:`#000000`,style:i.THIN,activeBorderType:!1}),W(this,`_borderInfo$`,new et(this._borderInfo)),W(this,`borderInfo$`,this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this._refresh()}setColor(e){this._borderInfo.color=e,this._refresh()}setStyle(e){this._borderInfo.style=e,this._refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}_refresh(){this._borderInfo$.next(this._borderInfo)}};function Tu(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 Eu=(e,t,n,r)=>{let{mr:i,worksheet:a}=e;t.startRow<0||t.startColumn<0||Tu(t,(e,t)=>{let o=a.getMergedCell(e,t),s=n;if(o&&(n.bc_tr||n.ml_tr||n.bl_tr||n.tl_mr||n.tl_bc||n.tl_br)){if(r){var c;let e=L.deepClone((c=i.getValue(o.startRow,o.startColumn))==null?void 0:c.s);s=e!=null&&e.bd?Object.assign(e.bd,n):n}i.setValue(o.startRow,o.startColumn,{s:{bd:s}})}else{if(r){var l;let r=L.deepClone((l=i.getValue(e,t))==null?void 0:l.s);s=r!=null&&r.bd?Object.assign(r.bd,n):n}i.setValue(e,t,{s:{bd:s}})}})},Du=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 Ou(e,t,n){let{style:r,color:i,type:o}=e.getBorderInfo(),s=o===a.TOP||o===a.ALL||o===a.OUTSIDE,c=o===a.LEFT||o===a.ALL||o===a.OUTSIDE,l=o===a.BOTTOM||o===a.ALL||o===a.OUTSIDE,u=o===a.RIGHT||o===a.ALL||o===a.OUTSIDE,d=o===a.VERTICAL||o===a.ALL||o===a.INSIDE,f=o===a.HORIZONTAL||o===a.ALL||o===a.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=n[0],{topRangeOut:b,leftRangeOut:x,bottomRangeOut:S,rightRangeOut:C,topRange:w,leftRange:T,bottomRange:E,rightRange:D}=Du(y),O=new M,{worksheet:ee,unitId:te,subUnitId:k}=t;return{worksheet:ee,unitId:te,subUnitId:k,style:r,color:i,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:r,cl:{rgb:i}}}}const ku=e=>{let{range:t,mr:n,borderStyle:r,vertical:i,horizontal:a,worksheet:o}=e;i&&Tu(t,(e,i)=>{let a=o.getMergedCell(e,i);if(a){var s;let o=(s=n.getValue(a.startRow,a.startColumn))==null?void 0:s.s;a.startColumn!==t.startColumn&&n.setValue(e,i,{s:{bd:o!=null&&o.bd?Object.assign(o.bd,{l:L.deepClone(r)}):{l:L.deepClone(r)}}})}else{if(i!==t.endColumn){var c;let t=(c=n.getValue(e,i))==null?void 0:c.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{r:L.deepClone(r)}):{r:L.deepClone(r)}}})}if(i!==t.startColumn){var l;let t=(l=n.getValue(e,i))==null?void 0:l.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{l:L.deepClone(r)}):{l:L.deepClone(r)}}})}}}),a&&Tu(t,(e,i)=>{let a=o.getMergedCell(e,i);if(a){var s;let o=(s=n.getValue(a.startRow,a.startColumn))==null?void 0:s.s;a.startRow!==t.startRow&&n.setValue(e,i,{s:{bd:o!=null&&o.bd?Object.assign(o.bd,{t:L.deepClone(r)}):{t:L.deepClone(r)}}})}else{if(e!==t.endRow){var c;let t=(c=n.getValue(e,i))==null?void 0:c.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{b:L.deepClone(r)}):{b:L.deepClone(r)}}})}if(e!==t.startRow){var l;let t=(l=n.getValue(e,i))==null?void 0:l.s;n.setValue(e,i,{s:{bd:t!=null&&t.bd?Object.assign(t.bd,{t:L.deepClone(r)}):{t:L.deepClone(r)}}})}}})};function Au(e){let{borderStyle:t,tl_br:n,tl_bc:r,tl_mr:i,bl_tr:a,ml_tr:o,bc_tr:s}=e,c=(t,n,r)=>{Eu(e,t,n,r)};n&&c(e.range,{tl_br:L.deepClone(t)},!0),r&&c(e.range,{tl_bc:L.deepClone(t)},!0),i&&c(e.range,{tl_mr:L.deepClone(t)},!0),a&&c(e.range,{bl_tr:L.deepClone(t)},!0),o&&c(e.range,{ml_tr:L.deepClone(t)},!0),s&&c(e.range,{bc_tr:L.deepClone(t)},!0)}const ju=e=>{let{top:t,left:n,right:r,bottom:i,borderStyle:a,bottomRange:o,topRange:s,leftRange:c,rightRange:l,bottomRangeOut:u,topRangeOut:d,leftRangeOut:f,rightRangeOut:p}=e,m=(t,n,r)=>{Eu(e,t,n,r)};t&&(m(d,{b:null}),m(s,{t:L.deepClone(a)},!0)),i&&(m(u,{t:null}),m(o,{b:L.deepClone(a)},!0)),n&&(m(f,{r:null}),m(c,{l:L.deepClone(a)},!0)),r&&(m(p,{l:null}),m(l,{r:L.deepClone(a)},!0))},Mu=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)=>{Eu(e,t,n,r)};!i&&!a&&!o&&!s&&!c&&!l&&!u&&!d&&!f&&!p&&!m&&!h&&(Tu(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))},Nu={id:`sheet.command.set-border`,type:u.COMMAND,handler:(e,t)=>{var n;let r=e.get(C),i=e.get(k),a=e.get(A),o=e.get(Y),s=e.get(wu),c=H(a,t);if(!c)return!1;let l=(t==null?void 0:t.ranges)||((n=o.getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(l!=null&&l.length))return!1;let{activeBorderType:u}=s.getBorderInfo();if(!u)return!1;let d=Ou(s,c,l);ku(d),ju(d),Au(d),Mu(d);let{unitId:f,subUnitId:p,mr:m}=d,h={unitId:f,subUnitId:p,cellValue:m.getData()},g=vr(e,h);return r.syncExecuteCommand(J.id,h)?(i.pushUndoRedo({unitID:f,undoMutations:[{id:J.id,params:g}],redoMutations:[{id:J.id,params:h}]}),!0):!1}},Pu={id:`sheet.command.set-border-position`,type:u.COMMAND,handler:(e,t)=>{if(!t.value)return!1;let n=e.get(C);return e.get(wu).setType(t.value),n.syncExecuteCommand(Nu.id)}},Fu={id:`sheet.command.set-border-style`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C);return e.get(wu).setStyle(t.value),n.syncExecuteCommand(Nu.id)}},Iu={id:`sheet.command.set-border-color`,type:u.COMMAND,handler:(e,t)=>{let n=e.get(C);return e.get(wu).setColor(t.value),n.syncExecuteCommand(Nu.id)}},Lu={id:`sheet.command.set-border-basic`,type:u.COMMAND,handler:(e,t)=>{let{unitId:n,subUnitId:r,value:i,ranges:a}=t,{type:o,color:s,style:c}=i,l=e.get(C),u=e.get(wu);return u.setType(o),s&&u.setColor(s),u.setStyle(c),l.syncExecuteCommand(Nu.id,{unitId:n,subUnitId:r,ranges:a})}},Ru={type:u.COMMAND,id:`sheet.command.set-col-data`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=H(e.get(A),t);if(!i)return!1;let{columnData:a}=t,{unitId:o,subUnitId:s,worksheet:c}=i,l={subUnitId:s,unitId:o,columnData:a},u=Vn(l,c);return n.syncExecuteCommand(Hn.id,l)?(r.pushUndoRedo({unitID:o,undoMutations:[{id:Hn.id,params:u}],redoMutations:[{id:Hn.id,params:l}]}),!0):!1}},zu={type:u.COMMAND,id:`sheet.command.set-col-visible-on-cols`,handler:(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=t,a=e.get(K),o=e.get(C),s=H(e.get(A),{unitId:n,subUnitId:r});if(!s)return!1;let{worksheet:c}=s,l={unitId:n,subUnitId:r,ranges:i},u={unitId:n,subUnitId:r,reveal:!0,selections:i.map(e=>({range:e,primary:Zi(e,c),style:null}))},d=Gn(e,l),f={unitId:n,subUnitId:r,selections:Uu(i).map(e=>({range:e,primary:Zi(e,c),style:null}))},p=z([{id:Kn.id,params:l},{id:X.id,params:u}],o),m=a.onCommandExecute({id:zu.id,params:t}),h=z([...m.redos],o);if(p.result&&h.result){var g,_;let r=a.afterCommandExecute({id:zu.id,params:t});return z(r.redos,o),e.get(k).pushUndoRedo({unitID:n,undoMutations:[{id:Wn.id,params:d},{id:X.id,params:f},...(g=m.undos)==null?[]:g,...r.undos],redoMutations:[...(_=m.preRedos)==null?[]:_,{id:Kn.id,params:l},{id:X.id,params:u},...m.redos,...r.redos]}),!0}return!0}},Bu={type:u.COMMAND,id:`sheet.command.set-selected-cols-visible`,handler:e=>{var t;let n=e.get(Y),r=e.get(C),i=(t=n.getCurrentSelections())==null?void 0:t.map(e=>e.range).filter(e=>e.rangeType===P.COLUMN);if(!(i!=null&&i.length))return!1;let a=H(e.get(A));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=i.map(e=>o.getHiddenCols(e.startColumn,e.endColumn)).flat();return r.executeCommand(zu.id,{unitId:s,subUnitId:c,ranges:l})}},Vu={type:u.COMMAND,id:`sheet.command.set-col-hidden`,handler:(e,t)=>{var n,r;let i=e.get(Y),a=e.get(K),o=e.get(A),s=e.get(C),c=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range).filter(e=>e.rangeType===P.COLUMN);if(!(c!=null&&c.length))return!1;let l=H(o,t);if(!l)return!1;let{worksheet:u,unitId:d,subUnitId:f}=l;c=Hu(l.worksheet,c);let p={unitId:d,subUnitId:f,ranges:c},m={unitId:d,subUnitId:f,selections:Uu(c).map(e=>({range:e,primary:Zi(e,u),style:null}))},h=Un(e,p),g={unitId:d,subUnitId:f,reveal:!0,selections:c.map(e=>({range:e,primary:Zi(e,u),style:null}))},_=z([{id:Wn.id,params:p},{id:X.id,params:m}],s),v=a.onCommandExecute({id:Vu.id,params:p}),y=z([...v.redos],s);if(_.result&&y.result){var b,x;let t=a.afterCommandExecute({id:Vu.id,params:p});return z(t.redos,s),e.get(k).pushUndoRedo({unitID:d,undoMutations:[{id:Kn.id,params:h},{id:X.id,params:g},...(b=v.undos)==null?[]:b,...t.undos],redoMutations:[...(x=v.preRedos)==null?[]:x,{id:Wn.id,params:p},{id:X.id,params:m},...v.redos,...t.redos]}),!0}return!1}};function Hu(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 Uu(e){return Wu(e).map(e=>{let t=e.startColumn===0?e.endColumn+1:e.startColumn-1;return{...e,startColumn:t,endColumn:t}})}function Wu(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 Gu={id:`sheet.command.set-defined-name`,type:u.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(k),o=e.get(K);if(!t)return!1;let s={...t},c=xt(e,t),l=o.onCommandExecute({id:Gu.id,params:t}),u=[...(n=l.preRedos)==null?[]:n,{id:yt.id,params:c},{id:bt.id,params:s},...l.redos],d=[...(r=l.preUndos)==null?[]:r,{id:yt.id,params:s},{id:bt.id,params:c},...l.undos];return z(u,i)?(a.pushUndoRedo({unitID:t.unitId,undoMutations:d.filter(Boolean),redoMutations:u.filter(Boolean)}),!0):!1}},Ku=(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(r==null)throw Error(`worksheet is null error!`);let i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},qu={id:`sheet.mutation.set-frozen`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)throw Error(`universheet is null error!`);let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=r.getConfig(),{startRow:a,startColumn:o,ySplit:s,xSplit:c}=t;return i.freeze={startRow:a,startColumn:o,ySplit:s,xSplit:c},!0}},Ju={type:u.COMMAND,id:`sheet.command.set-frozen`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=H(e.get(A),{unitId:t.unitId,subUnitId:t.subUnitId});if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,{startColumn:c,startRow:l,xSplit:u,ySplit:d}=t;if(l>=s.getRowCount()||c>=s.getColumnCount()||u>=s.getColumnCount()||d>=s.getRowCount())return!1;let f={unitId:a,subUnitId:o,...t},p=Ku(e,f);return n.syncExecuteCommand(qu.id,f)?(r.pushUndoRedo({unitID:a,undoMutations:[{id:qu.id,params:p}],redoMutations:[{id:qu.id,params:f}]}),!0):!1}},Yu={type:u.COMMAND,id:`sheet.command.cancel-frozen`,handler:(e,t)=>{let n=e.get(C),r=e.get(A),i=e.get(k),a=H(r,{unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId});if(!a)return!1;let{unitId:o,subUnitId:s}=a,c={unitId:o,subUnitId:s,startRow:-1,startColumn:-1,xSplit:0,ySplit:0},l=Ku(e,c);return n.syncExecuteCommand(qu.id,c)&&i.pushUndoRedo({unitID:o,undoMutations:[{id:qu.id,params:l}],redoMutations:[{id:qu.id,params:c}]}),!0}},Xu={type:u.COMMAND,id:`sheet.command.set-gridlines-color`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=H(e.get(A),t);if(!i)return!1;let{worksheet:a}=i,o=a.getConfig().gridlinesColor;if(o===(t==null?void 0:t.color))return!1;let{unitId:s,subUnitId:c}=i,l={color:t==null?void 0:t.color,unitId:s,subUnitId:c},u={color:o,unitId:s,subUnitId:c};return n.syncExecuteCommand(qn.id,l)?(r.pushUndoRedo({unitID:s,undoMutations:[{id:qn.id,params:u}],redoMutations:[{id:qn.id,params:l}]}),!0):!1}},Zu={id:`sheet.mutation.set-range-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i,ruleId:a}=t;return e.get(Fi).setRule(n,r,a,i),!0}},Qu=(e,t)=>{let{unitId:n,subUnitId:r,ruleId:i}=t,a=e.get(Fi).getRule(n,r,i);return a?{id:Zu.id,params:{...t,rule:a}}:null},$u={id:`sheet.mutation.set-worksheet-protection`,type:u.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,rule:i}=t;return e.get(mc).setRule(n,r,i),!0}},ed={type:u.COMMAND,id:`sheet.command.set-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(k),i=e.get(Fi),{rule:a,oldRule:o}=t,{unitId:s,subUnitId:c}=a,l=[],u=[];return(o==null?void 0:o.unitType)===a.unitType?a.unitType===V.Worksheet?(l.push({id:$u.id,params:{unitId:s,subUnitId:c,rule:a}}),u.push({id:$u.id,params:{unitId:s,subUnitId:c,rule:o}})):(l.push({id:Zu.id,params:{unitId:s,subUnitId:c,rule:a,ruleId:a.id}}),u.push({id:Zu.id,params:{unitId:s,subUnitId:c,ruleId:o.id,rule:o}})):(o&&(o.unitType===V.Worksheet?(l.push({id:gc.id,params:{unitId:s,subUnitId:c}}),u.push({id:hc.id,params:{unitId:s,rule:o,subUnitId:o.subUnitId}})):o.unitType===V.SelectRange&&(l.push({id:Li.id,params:{unitId:s,subUnitId:c,ruleIds:[o.id]}}),u.push({id:zi.id,params:{unitId:s,subUnitId:c,rules:[o]}}))),a.unitType===V.Worksheet?(l.push({id:hc.id,params:{unitId:s,rule:a,subUnitId:a.subUnitId}}),u.unshift({id:gc.id,params:{unitId:s,subUnitId:c}})):a.unitType===V.SelectRange&&(a.id=i.createRuleId(s,c),l.push({id:zi.id,params:{unitId:s,subUnitId:c,rules:[a]}}),u.unshift({id:Li.id,params:{unitId:s,subUnitId:c,ruleIds:[a.id]}}))),z(l,n)&&r.pushUndoRedo({unitID:s,undoMutations:u,redoMutations:l}),!0}},td={id:`sheet.command.set-range-custom-metadata`,type:u.COMMAND,handler:(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let r=e.get(C),{unitId:i,subUnitId:a}=n,{range:o,customMetadata:s}=t,{startRow:c,startColumn:l,endRow:u,endColumn:d}=o,f=L.isArray(s),p=new M;for(let e=c;e<=u;e++)for(let t=l;t<=d;t++){let n=f?s[e-c][t-l]:s;p.setValue(e,t,n)}return r.syncExecuteCommand(J.id,{unitId:i,subUnitId:a,cellValue:p.getMatrix()})}},nd={type:u.COMMAND,id:`sheet.command.set-row-data`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=H(e.get(A),t);if(!i)return!1;let{rowData:a}=t,{unitId:o,subUnitId:s,worksheet:c}=i,l={subUnitId:s,unitId:o,rowData:a},u=Sr(l,c);return n.syncExecuteCommand(Cr.id,l)?(r.pushUndoRedo({unitID:o,undoMutations:[{id:Cr.id,params:u}],redoMutations:[{id:Cr.id,params:l}]}),!0):!1}},rd={type:u.COMMAND,id:`sheet.command.set-specific-rows-visible`,handler:(e,t)=>{let{unitId:n,subUnitId:r,ranges:i}=t,a=e.get(C),o=e.get(k),s=e.get(K),c=H(e.get(A),{unitId:n,subUnitId:r});if(!c)return!1;let{worksheet:l}=c,u={unitId:n,subUnitId:r,ranges:i},d={unitId:n,subUnitId:r,reveal:!0,selections:i.map(e=>({range:e,primary:Zi(e,l),style:null}))},f=wr(e,u),p={unitId:n,subUnitId:r,selections:sd(i).map(e=>({range:e,primary:Zi(e,l),style:null}))},m=z([{id:Tr.id,params:u},{id:X.id,params:d}],a),h=s.onCommandExecute({id:rd.id,params:t}),g=z([...h.redos],a);if(m.result&&g.result){var _,v,y;let e=s.afterCommandExecute({id:rd.id,params:t});return z(e.redos,a),o.pushUndoRedo({unitID:n,undoMutations:[...(_=h.preUndos)==null?[]:_,{id:Dr.id,params:f},{id:X.id,params:p},...(v=h.undos)==null?[]:v,...e.undos],redoMutations:[...(y=h.preRedos)==null?[]:y,{id:Tr.id,params:u},{id:X.id,params:d},...h.redos,...e.redos]}),!0}return!0}},id={type:u.COMMAND,id:`sheet.command.set-selected-rows-visible`,handler:async e=>{var t;let n=e.get(Y),r=e.get(A),i=e.get(C),a=(t=n.getCurrentSelections())==null?void 0:t.map(e=>e.range).filter(e=>e.rangeType===P.ROW);if(!(a!=null&&a.length))return!1;let o=H(r);if(!o)return!1;let{worksheet:s,unitId:c,subUnitId:l}=o,u=a.map(e=>s.getHiddenRows(e.startRow,e.endRow)).flat();return i.executeCommand(rd.id,{unitId:c,subUnitId:l,ranges:u})}},ad={type:u.COMMAND,id:`sheet.command.set-rows-hidden`,handler:(e,t)=>{var n,r,i;let a=e.get(Y),o=e.get(C),s=e.get(k),c=e.get(A),l=e.get(K),u=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(r=a.getCurrentSelections())==null?void 0:r.map(e=>e.range).filter(e=>e.rangeType===P.ROW);if(!(u!=null&&u.length))return!1;let d=H(c,t);if(!d)return!1;u=od(d.worksheet,u);let{unitId:f,subUnitId:p,worksheet:m}=d,h={unitId:f,subUnitId:p,ranges:u},g={unitId:f,subUnitId:p,selections:sd(u).map(e=>({range:e,primary:Zi(e,m),style:null}))},_=Er(e,h),v={unitId:f,subUnitId:p,reveal:!0,selections:u.map(e=>({range:e,primary:Zi(e,m),style:null}))},y=l.onCommandExecute({id:ad.id,params:h});if(z([...(i=y.preRedos)==null?[]:i,{id:Dr.id,params:h},{id:X.id,params:g},...y.redos],o).result){var b,x,S;let e=l.afterCommandExecute({id:ad.id,params:h});return z(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(b=y.preUndos)==null?[]:b,{id:Tr.id,params:_},{id:X.id,params:v},...(x=y.undos)==null?[]:x,...e.undos],redoMutations:[...(S=y.preRedos)==null?[]:S,{id:Dr.id,params:h},{id:X.id,params:g},...y.redos,...e.redos]}),!0}return!0}};function od(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 sd(e){return cd(e).map(e=>{let t=e.startRow===0?e.endRow+1:e.startRow-1;return{...e,startRow:t,endRow:t}})}function cd(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 ld=(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...L.deepClone(t),color:n}},ud={id:`sheet.mutation.set-tab-color`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getSheetBySheetId(t.subUnitId);return r?(r.getConfig().tabColor=t.color,!0):!1}},dd={type:u.COMMAND,id:`sheet.command.set-tab-color`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=H(e.get(A),t);if(!i)return!1;let{unitId:a,subUnitId:o}=i,s={color:t.value,unitId:a,subUnitId:o},c=ld(e,s);return n.syncExecuteCommand(ud.id,s)?(r.pushUndoRedo({unitID:a,undoMutations:[{id:ud.id,params:c}],redoMutations:[{id:ud.id,params:s}]}),!0):!1}},fd={id:`sheet.mutation.set-workbook-name`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUnit(t.unitId,R.UNIVER_SHEET);return n?(n.setName(t.name),!0):!1}},pd={type:u.COMMAND,id:`sheet.command.set-workbook-name`,handler:(e,t)=>{var n;let r=e.get(C),i=e.get(K);if(!Rt(e.get(A),t))return!1;let a=i.onCommandExecute({id:pd.id,params:t}),o={name:t.name,unitId:t.unitId};return z([...(n=a.preRedos)==null?[]:n,{id:fd.id,params:o},...a.redos],r).result}},md={type:u.COMMAND,id:`sheet.command.set-worksheet-activate`,handler:(e,t,n)=>{let r=e.get(C),i=H(e.get(A),t);if(!i)return!1;let{unitId:a,subUnitId:o}=i;return new Promise(e=>{setTimeout(()=>{e(r.syncExecuteCommand(Ur.id,{unitId:a,subUnitId:o},n))},4)})}},hd={type:u.COMMAND,id:`sheet.command.delta-column-width`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections();if(!(n!=null&&n.length))return!1;let r=e.get(C),i=e.get(k),a=H(e.get(A));if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,{anchorCol:l,deltaX:u}=t,d=o.getColumnWidth(l)+u,f=n.length===1&&n[0].range.rangeType===P.ALL,p=n.filter(e=>e.range.rangeType===P.COLUMN),m=f?P.ALL:p.some(({range:e})=>{let{startColumn:t,endColumn:n}=e;return t<=l&&l<=n})?P.COLUMN:P.NORMAL,h;if(m===P.ALL){let e=o.getRowCount();h={subUnitId:c,unitId:s,colWidth:d,ranges:Array(o.getColumnCount()).fill(void 0).map((t,n)=>({startRow:0,endRow:e-1,startColumn:n,endColumn:n}))}}else h=m===P.COLUMN?{subUnitId:c,unitId:s,ranges:p.map(e=>I.clone(e.range)),colWidth:d}:{subUnitId:c,unitId:s,colWidth:d,ranges:[{startRow:0,endRow:o.getMaxRows()-1,startColumn:l,endColumn:l}]};let g=e.get(Jo).getSkeleton(s,c),{suitableRanges:_,remainingRanges:v}=Xo(h.ranges,g);Yo(_,o);let y=e.get(K),{undos:b,redos:x}=y.onCommandExecute({id:hd.id,params:h}),S=Or(h,o),w=r.syncExecuteCommand(kr.id,h),{undos:T,redos:E}=y.generateMutationsOfAutoHeight({unitId:s,subUnitId:c,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),{undos:D,redos:O}=e.get(K).afterCommandExecute({id:hd.id,params:h}),ee=z([...x,...O,...E],r);return w&&ee.result&&i.pushUndoRedo({unitID:s,undoMutations:[{id:kr.id,params:S},...b,...D,...T],redoMutations:[{id:kr.id,params:h},...x,...O,...E]}),!0}},gd={type:u.COMMAND,id:`sheet.command.set-worksheet-col-width`,handler:(e,t)=>{var n,r;let i=e.get(Y),a=e.get(C),o=e.get(k),s=e.get(K),c=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(r=i.getCurrentSelections())==null?void 0:r.map(e=>e.range);if(!(c!=null&&c.length))return!1;let l=H(e.get(A),t);if(!l)return!1;let{subUnitId:u,unitId:d,worksheet:f}=l,p=e.get(Jo).getSkeleton(d,u),m={subUnitId:u,unitId:d,ranges:c,colWidth:t.value},{suitableRanges:h,remainingRanges:g}=Xo(m.ranges,p);Yo(h,f);let _=Or(m,f),v=a.syncExecuteCommand(kr.id,m),{undos:y,redos:b}=s.generateMutationsOfAutoHeight({unitId:d,subUnitId:u,ranges:h,autoHeightRanges:h,lazyAutoHeightRanges:g}),x=s.onCommandExecute({id:gd.id,params:m}),S=z([...x.redos,...b],a);if(v&&S.result){var w,T;let e=s.afterCommandExecute({id:gd.id,params:m});return z(e.redos,a),o.pushUndoRedo({unitID:d,undoMutations:[...(w=x.preUndos)==null?[]:w,{id:kr.id,params:_},...x.undos,...e.undos,...y],redoMutations:[...(T=x.preRedos)==null?[]:T,{id:kr.id,params:m},...x.redos,...e.redos,...b]}),!0}return!1}},_d={type:u.COMMAND,id:`sheet.command.set-col-is-auto-width`,handler:async(e,t)=>{let n=e.get(C),r=e.get(k),i=e.get(Y),a=H(e.get(A),t);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=[];if(t!=null&&t.ranges)c=[...t.ranges];else{let e=i.getCurrentSelections();for(let t=0;t<e.length;t++)c.push(e[t].range)}if(!(c!=null&&c.length))return!1;let l={unitId:o,subUnitId:s,ranges:c},{undos:u,redos:d}=e.get(K).onCommandExecute({id:_d.id,params:l});return z([...d],n).result?(r.pushUndoRedo({unitID:o,undoMutations:[...u],redoMutations:[...d]}),!0):!1}},vd={type:u.COMMAND,id:`sheet.command.set-worksheet-column-count`,handler:(e,t)=>{let{unitId:n,subUnitId:r,columnCount:i}=t,a=e.get(C),o=e.get(k);if(!H(e.get(A),t))return!1;let s={unitId:n,subUnitId:r,columnCount:i},c=Ar(e,s);return a.syncExecuteCommand(jr.id,s)?(o.pushUndoRedo({unitID:n,undoMutations:[{id:jr.id,params:c}],redoMutations:[{id:jr.id,params:s}]}),!0):!1}},yd={type:u.COMMAND,id:`sheet.command.set-worksheet-default-style`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),{unitId:i}=t,a=Nr(e,t);return n.syncExecuteCommand(Mr.id,t)?(r.pushUndoRedo({unitID:i,undoMutations:[{id:Mr.id,params:a}],redoMutations:[{id:Mr.id,params:t}]}),!0):!1}},bd=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`[SetWorksheetHideMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{hidden:r.isSheetHidden(),unitId:t.unitId,subUnitId:r.getSheetId()}},xd={id:`sheet.mutation.set-worksheet-hidden`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)return!1;let r=n.getSheetBySheetId(t.subUnitId);return r?(r.getConfig().hidden=t.hidden,!0):!1}},Sd={type:u.COMMAND,id:`sheet.command.set-worksheet-hidden`,handler:(e,t)=>{let n=e.get(C),i=e.get(k),a=e.get(v),o=e.get(oe),s=H(e.get(A),t);if(!s)return!1;let{workbook:c,worksheet:l,unitId:u,subUnitId:d}=s;if(l.getConfig().hidden===r.TRUE)return!1;let f={unitId:u,subUnitId:d,hidden:r.TRUE},p=bd(e,f);return c.getSheets().filter(e=>e.getConfig().hidden===r.FALSE).length===1?(a.emit(o.t(`sheets.info.hideSheet`)),!1):n.syncExecuteCommand(xd.id,f)?(i.pushUndoRedo({unitID:u,undoMutations:[{id:xd.id,params:p}],redoMutations:[{id:xd.id,params:f}]}),!0):!1}},Cd=(e,t)=>{let n=zt(e.get(A),t);if(!n)throw Error(`[SetWorksheetNameMutationFactory]: worksheet is null error!`);let{worksheet:r}=n;return{unitId:t.unitId,name:r.getName(),subUnitId:r.getSheetId()}},wd={id:`sheet.mutation.set-worksheet-name`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(n==null)return!1;let r=n.getSheetBySheetId(t.subUnitId);return r?(r.getConfig().name=t.name,!0):!1}},Td={type:u.COMMAND,id:`sheet.command.set-worksheet-name`,handler:(e,t)=>{var n,r;let i=e.get(C),a=e.get(k),o=e.get(K),s=H(e.get(A),t);if(!s)return!1;let{unitId:c,subUnitId:l}=s,u={subUnitId:l,name:t.name,unitId:c},d=Cd(e,u),f=o.onCommandExecute({id:Td.id,params:t}),p=[...(n=f.preRedos)==null?[]:n,{id:wd.id,params:u},...f.redos],m=[...(r=f.preUndos)==null?[]:r,{id:wd.id,params:d},...f.undos];return z(p,i).result?(a.pushUndoRedo({unitID:c,undoMutations:m,redoMutations:p}),!0):!1}},Ed=(e,t)=>({...L.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Dd={id:`sheet.mutation.set-worksheet-order`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getConfig();return r.sheetOrder.splice(t.fromOrder,1),r.sheetOrder.splice(t.toOrder,0,t.subUnitId),n.ensureSheetOrderUnique(),!0}},Od={type:u.COMMAND,id:`sheet.command.set-worksheet-order`,handler:(e,t)=>{let n=e.get(C),r=e.get(k),i=H(e.get(A),t);if(!i)return!1;let{workbook:a,unitId:o,subUnitId:s}=i,c={fromOrder:a.getConfig().sheetOrder.indexOf(s),toOrder:t.order,unitId:o,subUnitId:s},l=Ed(e,c);return n.syncExecuteCommand(Dd.id,c)?(r.pushUndoRedo({unitID:o,undoMutations:[{id:Dd.id,params:l}],redoMutations:[{id:Dd.id,params:c}]}),!0):!1}};var kd=class{constructor(){W(this,`_model`,new Map),W(this,`_pointChange`,new tt),W(this,`pointChange$`,this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var n;let r=(n=this._model.get(e))==null?void 0:n.get(t);if(r){var i;(i=this._model)==null||(i=i.get(e))==null||i.delete(t),this._pointChange.next(r)}}getRule(e,t){var n;return(n=this._model)==null||(n=n.get(e))==null?void 0:n.get(t)}toObject(){let e={};return[...this._model.keys()].forEach(t=>{let n=this._model.get(t);n!=null&&n.size&&(e[t]=[],[...n.keys()].forEach(r=>{let i=n.get(r);i&&e[t].push(i)}))}),e}fromObject(e){let t=new Map;Object.keys(e).forEach(n=>{let r=e[n];if(r!=null&&r.length){let e=new Map;r.forEach(t=>{e.set(t.subUnitId,t)}),t.set(n,e)}}),this._model=t}deleteUnitModel(e){this._model.delete(e)}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}getTargetByPermissionId(e,t){let n=this._model.get(e);if(!n)return null;for(let[r,i]of n)if(i.permissionId===t)return[e,r]}},Ad=class{constructor(e,t,n){W(this,`type`,V.SelectRange),W(this,`subType`,B.Delete),W(this,`status`,N.INIT),W(this,`value`,!0),W(this,`id`,void 0),W(this,`unitId`,void 0),W(this,`subUnitId`,void 0),W(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${V.SelectRange}.${B.Delete}.${n}`}},jd=class{constructor(e,t,n){W(this,`type`,V.SelectRange),W(this,`subType`,B.ManageCollaborator),W(this,`status`,N.INIT),W(this,`value`,!0),W(this,`id`,void 0),W(this,`unitId`,void 0),W(this,`subUnitId`,void 0),W(this,`permissionId`,void 0),this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${V.SelectRange}.${B.ManageCollaborator}.${n}`}};const Md=()=>[ma,pa,jd,Ad],Nd=[B.Edit,B.View,B.ManageCollaborator,B.Delete],Pd=(e=`unitId`,t=`subUnitId`,n=`permissionId`)=>Md().reduce((r,i)=>{let a=new i(e,t,n);return r[a.subType]=a.value,r},{}),Fd=()=>[wa,Ma,ha,Ia,ga,Ta,Aa,ya,Sa,Pa,Ea,Ca,Fa,ja,_a,La,Na,va,ka,Oa,xa,ba],Id=[B.Edit,B.Print,B.Comment,B.View,B.Copy,B.Export,B.ManageCollaborator,B.CreateSheet,B.DeleteSheet,B.RenameSheet,B.HideSheet,B.Duplicate,B.Share,B.MoveSheet,B.CopySheet,B.RecoverHistory,B.ViewHistory,B.CreatePermissionObject,B.InsertRow,B.InsertColumn,B.DeleteRow,B.DeleteColumn],Ld=()=>[Ha,ro,Ja,Ba],Rd=()=>[Ra,za,Va,Ua,Wa,Ga,qa,Ka,Ya,Qa,$a,eo,to,no],zd=[B.Copy,B.DeleteColumn,B.DeleteRow,B.EditExtraObject,B.Filter,B.InsertColumn,B.InsertRow,B.InsertHyperlink,B.PivotTable,B.SetCellStyle,B.SetCellValue,B.SetColumnStyle,B.SetRowStyle,B.Sort];let Bd=class extends pe{constructor(e,t,n,r,i,a,o,s){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=o,this._logService=s,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){let e=e=>{let t=e.getUnitId(),n=e=>{let n=e.getSheetId();[...Ld(),...Rd()].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=>{[...Md()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...Ld(),...Rd()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})})};this._univerInstanceService.getAllUnitsForType(R.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(R.UNIVER_SHEET).pipe(Mt(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(R.UNIVER_SHEET).pipe(Mt(this.dispose$)).subscribe(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();Ld().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`:Ld().forEach(t=>{let n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,!0)});break;case`set`:Ld().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:[mt.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionRuleModel.fromObject(t),Object.keys(t).forEach(t=>{Ld().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();[...Ld(),...Rd()].forEach(t=>{let r=new t(e,n);this._permissionService.deletePermissionPoint(r.id)})}),Fd().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:[mt.UNIVER_SHEET],onLoad:(e,t)=>{this._worksheetProtectionPointRuleModel.fromObject(t),Object.keys(t).forEach(t=>{Rd().forEach(n=>{let r=new n(e,t);this._permissionService.addPermissionPoint(r)})})},onUnLoad:e=>{this._worksheetProtectionPointRuleModel.deleteUnitModel(e)}}))}};Bd=Jt([G(0,j(O)),G(1,j(A)),G(2,j(ne)),G(3,j(mc)),G(4,j(kd)),G(5,j(ee)),G(6,j(Fi)),G(7,j(D))],Bd);const Vd={id:`sheet.mutation.set-worksheet-permission-points`,type:u.MUTATION,handler:(e,t)=>{let{rule:n}=t;return e.get(kd).addRule(n),!0}},Hd={type:u.COMMAND,id:`sheet.command.set-worksheet-permission-points`,async handler(e,t){if(!t)return!1;let n=e.get(C),{rule:r}=t;return n.executeCommand(Vd.id,{rule:r,unitId:r.unitId,subUnitId:r.subUnitId}),!0}},Ud={type:u.COMMAND,id:`sheet.command.set-worksheet-protection`,async handler(e,t){if(!t)return!1;let n=e.get(C),r=e.get(k),{rule:i,permissionId:a,oldRule:o}=t,{unitId:s,subUnitId:c}=i,l={...i,permissionId:a};if(await n.executeCommand($u.id,{unitId:s,subUnitId:c,newRule:l})){let e=[{id:$u.id,params:{unitId:s,subUnitId:c,newRule:l}}],t=[{id:$u.id,params:{unitId:s,subUnitId:c,rule:o}}];r.pushUndoRedo({unitID:s,redoMutations:e,undoMutations:t})}return!0}},Wd=(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().rightToLeft;return{...L.deepClone(t),rightToLeft:n}},Gd={id:`sheet.mutation.set-worksheet-right-to-left`,type:u.MUTATION,handler:(e,t)=>{let n=e.get(A).getUniverSheetInstance(t.unitId);if(!n)return!1;let r=n.getSheetBySheetId(t.subUnitId);if(!r)return!1;let i=r.getConfig();return i.rightToLeft=t.rightToLeft,!0}},Kd={type:u.COMMAND,id:`sheet.command.set-worksheet-right-to-left`,handler:async(e,t)=>{let n=e.get(C),i=e.get(k),a=H(e.get(A),t);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=r.FALSE;if(t){var l;c=(l=t.rightToLeft)==null?r.FALSE:l}let u={rightToLeft:c,unitId:o,subUnitId:s},d=Wd(e,u);return n.syncExecuteCommand(Gd.id,u)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:Gd.id,params:d}],redoMutations:[{id:Gd.id,params:u}]}),!0):!1}},qd={type:u.COMMAND,id:`sheet.command.set-worksheet-row-count`,handler:(e,t)=>{let{unitId:n,subUnitId:r,rowCount:i}=t,a=e.get(C),o=e.get(k);if(!H(e.get(A),t))return!1;let s={unitId:n,subUnitId:r,rowCount:i},c=Pr(e,s);return a.syncExecuteCommand(Fr.id,s)?(o.pushUndoRedo({unitID:n,undoMutations:[{id:Fr.id,params:c}],redoMutations:[{id:Fr.id,params:s}]}),!0):!1}},Jd={type:u.COMMAND,id:`sheet.command.delta-row-height`,handler:async(e,t)=>{let n=e.get(Y).getCurrentSelections(),i=e.get(K);if(!(n!=null&&n.length))return!1;let a=H(e.get(A));if(!a)return!1;let{worksheet:o,subUnitId:s,unitId:c}=a,{anchorRow:l,deltaY:u}=t,d=o.getRowHeight(l)+u,f=n.length===1&&n[0].range.rangeType===P.ALL,p=n.filter(e=>e.range.rangeType===P.ROW),m=f?P.ALL:p.some(({range:e})=>{let{startRow:t,endRow:n}=e;return t<=l&&l<=n})?P.ROW:P.NORMAL,h;if(m===P.ALL){let e=o.getColumnCount();h={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 h=m===P.ROW?{subUnitId:s,unitId:c,ranges:p.map(e=>I.clone(e.range)),rowHeight:d}:{subUnitId:s,unitId:c,rowHeight:d,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:o.getMaxColumns()-1}]};let g=Ir(h,o),_={unitId:c,subUnitId:s,ranges:h.ranges,autoHeightInfo:r.FALSE},v=Lr(_,o),y=e.get(C),b=e.get(k),x=i.onCommandExecute({id:Jd.id,params:h}),S=z([{id:zr.id,params:h},{id:Br.id,params:_}],y),w=z([...x.redos],y);if(S.result&&w.result){var T,E;let e=i.afterCommandExecute({id:Jd.id,params:h});return z(e.redos,y),b.pushUndoRedo({unitID:c,undoMutations:[...(T=x.preUndos)==null?[]:T,{id:zr.id,params:g},{id:Br.id,params:v},...x.undos,...e.undos],redoMutations:[...(E=x.preRedos)==null?[]:E,{id:zr.id,params:h},{id:Br.id,params:_},...x.redos,...e.redos]}),!0}return!1}},Yd={type:u.COMMAND,id:`sheet.command.set-row-height`,handler:(e,t)=>{var n,i;let a=e.get(Y),o=e.get(C),s=e.get(k),c=e.get(A),l=e.get(K),u=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(u!=null&&u.length))return!1;let d=H(c,t);if(!d)return!1;let{unitId:f,subUnitId:p,worksheet:m}=d,h={subUnitId:p,unitId:f,ranges:u,rowHeight:t.value},g=Ir(h,m),_={unitId:f,subUnitId:p,ranges:h.ranges,autoHeightInfo:r.FALSE},v=Lr(_,m),y=z([{id:zr.id,params:h},{id:Br.id,params:_}],o),b=l.onCommandExecute({id:Yd.id,params:h}),x=z([...b.redos],o);if(y.result&&x.result){var S,w;let e=l.afterCommandExecute({id:Yd.id,params:h});return z(e.redos,o),s.pushUndoRedo({unitID:f,undoMutations:[...(S=b.preRedos)==null?[]:S,{id:zr.id,params:g},{id:Br.id,params:v},...b.undos,...e.undos],redoMutations:[...(w=b.preRedos)==null?[]:w,{id:zr.id,params:h},{id:Br.id,params:_},...b.redos,...e.redos]}),!0}return!1}},Xd={type:u.COMMAND,id:`sheet.command.set-row-is-auto-height`,handler:(e,t)=>{var n,i;let a=e.get(C),o=e.get(k),s=e.get(Y),c=H(e.get(A),t);if(!c)return!1;let{unitId:l,subUnitId:u,worksheet:d}=c,f=!(t==null||(n=t.ranges)==null)&&n.length?t.ranges:(i=s.getCurrentSelections())==null?void 0:i.map(e=>e.range);if(!(f!=null&&f.length))return!1;let p={unitId:l,subUnitId:u,ranges:f,autoHeightInfo:r.TRUE},m=Lr(p,d),h=a.syncExecuteCommand(Br.id,p),g=e.get(Jo).getSkeleton(l,u),{suitableRanges:_,remainingRanges:v}=Xo(p.ranges,g),y=e.get(K),{undos:b,redos:x}=y.generateMutationsOfAutoHeight({unitId:l,subUnitId:u,ranges:_,autoHeightRanges:_,lazyAutoHeightRanges:v}),{undos:S,redos:w}=y.onCommandExecute({id:Xd.id,params:p}),T=z([...w,...x],a);return h&&T.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:Br.id,params:m},...S,...b],redoMutations:[{id:Br.id,params:p},...w,...x]}),!0):!1}},Zd={type:u.COMMAND,id:`sheet.command.set-worksheet-show`,handler:(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{unitId:i,subUnitId:a,worksheet:o}=n;if(o.getConfig().hidden===r.FALSE)return!1;let s=e.get(C),c=e.get(k),l={unitId:i,subUnitId:a,hidden:r.FALSE},u=bd(e,l),d=s.syncExecuteCommand(xd.id,l),f={unitId:i,subUnitId:a},p=s.syncExecuteCommand(Ur.id,f);return d&&p?(c.pushUndoRedo({unitID:i,undoMutations:[{id:xd.id,params:u}],redoMutations:[{id:xd.id,params:l}]}),!0):!1}},Qd={type:u.COMMAND,id:`sheet.command.split-text-to-columns`,handler:(e,t)=>{let n=H(e.get(A),t);if(!n)return!1;let{unitId:r,subUnitId:i,worksheet:a}=n,{range:o,delimiter:s,customDelimiter:c,treatMultipleDelimitersAsOne:l}=t,{lastRow:u,rs:d,maxLength:f}=Si(a,o,s,c,l),p=a.getColumnCount(),{startColumn:m}=F.transformRange(o,a);if(o.startColumn!==o.endColumn)return!1;let h=e.get(C),g=e.get(k),_=[],v=[],y=m+f+1-p;if(y>0){let t={unitId:r,subUnitId:i,range:{startRow:0,endRow:a.getRowCount()-1,startColumn:p-1,endColumn:p-1+y}};_.push({id:En.id,params:t});let n=Tn(e,t);v.push({id:Fn.id,params:n})}let b={startRow:o.startRow,endRow:u,startColumn:m,endColumn:m+f},x=new M;for(let e=b.startRow;e<=b.endRow;e++)for(let t=b.startColumn;t<=b.endColumn;t++){let n=d[e-b.startRow];t===0&&(n==null?void 0:n.length)===1?x.setValue(e,t,a.getCell(e,t)):x.setValue(e,t,{v:(n==null?void 0:n[t-b.startColumn])||null,p:null,f:null,si:null,custom:null})}let S={unitId:r,subUnitId:i,cellValue:x.clone()},w=vr(e,S);return _.push({id:J.id,params:S}),v.unshift({id:J.id,params:w}),z(_,h).result?(g.pushUndoRedo({unitID:r,undoMutations:v,redoMutations:_}),!0):!1}},$d=Ce(`INumfmtService`),ef=(e,t)=>{let n=e.get($d),{values:r,unitId:i,subUnitId:a}=t,o=[],s=[];Object.keys(r).forEach(e=>{r[e].ranges.forEach(e=>{F.foreach(e,(e,t)=>{let r=n.getValue(i,a,e,t);r?o.push({pattern:r.pattern,row:e,col:t}):s.push({startColumn:t,endColumn:t,startRow:e,endRow:e})})})});let c=[];if(o.length){let e=af(i,a,o);Object.keys(e.values).forEach(t=>{let n=e.values[t];n.ranges=ui(n.ranges)}),c.push({id:tf.id,params:af(i,a,o)})}return s.length&&c.push({id:nf.id,params:{unitId:i,subUnitId:a,ranges:s}}),c},tf={id:`sheet.mutation.set.numfmt`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{values:n,refMap:r}=t,i=e.get($d),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}},nf={id:`sheet.mutation.remove.numfmt`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,ranges:i}=t;return e.get($d).deleteValues(n,r,i),!0}},rf=(e,t)=>{let n=e.get($d),{ranges:r,unitId:i,subUnitId:a}=t,o=[];if(r.forEach(e=>{F.foreach(e,(e,t)=>{let r=n.getValue(i,a,e,t);r&&o.push({pattern:r.pattern,row:e,col:t})})}),!o.length)return[];let s=af(i,a,o);return Object.keys(s.values).forEach(e=>{let t=s.values[e];t.ranges=ui(t.ranges)}),[{id:tf.id,params:s}]},af=(e,t,n)=>{let r=Ci(n,`pattern`),i={},a={},o=wi();return Object.keys(r).forEach(e=>{let t=r[e],n=o();i[n]={pattern:e},t.forEach(e=>{a[n]||(a[n]={ranges:[]}),a[n].ranges.push(ye(e.row,e.col))})}),{unitId:e,subUnitId:t,refMap:i,values:a}},of={id:`sheet.command.text-to-number`,type:u.COMMAND,handler:(e,t)=>{var n;let r=H(e.get(A),t);if(!r)return!1;let i=(t==null?void 0:t.ranges)||((n=e.get(Y).getCurrentSelections())==null?void 0:n.map(e=>e.range));if(!(i!=null&&i.length))return!1;let a=e.get(C),o=e.get(k),{worksheet:s,unitId:c,subUnitId:u}=r,d=new M,f=[];for(let e=0;e<i.length;e++)for(let t=i[e].startRow;t<=i[e].endRow;t++)for(let n=i[e].startColumn;n<=i[e].endColumn;n++){var p,m;if(d.getValue(t,n))continue;let e=s.getCellRaw(t,n),r=typeof(e==null?void 0:e.s)==`string`?(p=s.getStyleDataByHash(e.s))==null||(p=p.n)==null?void 0:p.pattern:e==null||(m=e.s)==null||(m=m.n)==null?void 0:m.pattern;e&&e.v&&(e.t!==l.NUMBER||Fe(r))&&Ne(e.v)&&(d.setValue(t,n,{v:Number(e.v),t:l.NUMBER}),Fe(r)&&f.push({startRow:t,endRow:t,startColumn:n,endColumn:n}))}let h={subUnitId:u,unitId:c,cellValue:d.getMatrix()},g=[{id:J.id,params:h}],_=[{id:J.id,params:vr(e,h)}];if(f.length){let t={unitId:c,subUnitId:u,ranges:f};g.push({id:nf.id,params:t}),_.push(...rf(e,t))}return z(g,a).result?(o.pushUndoRedo({unitID:c,undoMutations:_,redoMutations:g}),!0):!1}},sf={id:`sheet.command.toggle-cell-checkbox`,type:u.COMMAND,handler:(e,t)=>{if(!t)return!1;let{unitId:n,subUnitId:r,row:i,col:a,paragraphIndex:s}=t,c=e.get(A).getUnit(n,R.UNIVER_SHEET),u=c==null?void 0:c.getSheetBySheetId(r),d=e.get(k),f=e.get(C);if(!u)return!1;let p=u.getCell(i,a);if(!(p!=null&&p.p))return!1;let m=L.deepClone(p.p),h=new _(m),g=o.paragraph.bullet.toggleChecklist({document:h,paragraphIndex:s});if(!g)return!1;_e.apply(h.getBody(),g.serialize());let v={unitId:n,subUnitId:r,cellValue:{[i]:{[a]:{p:m,t:l.STRING}}}},y={id:J.id,params:v},b=vr(e,v),x={id:J.id,params:b},S=[y],w=[x];return d.pushUndoRedo({redoMutations:S,undoMutations:w,unitID:n}),f.syncExecuteCommand(y.id,y.params)}},cf={type:u.COMMAND,id:`sheet.command.toggle-gridlines`,handler:(e,t)=>{let n=e.get(C),i=e.get(k),a=H(e.get(A),t);if(!a)return!1;let{worksheet:o}=a,s=o.getConfig().showGridlines;if(s===(t==null?void 0:t.showGridlines))return!1;let{unitId:c,subUnitId:l}=a,u={showGridlines:s===r.TRUE?r.FALSE:r.TRUE,unitId:c,subUnitId:l},d={showGridlines:s,unitId:c,subUnitId:l};return n.syncExecuteCommand(Hr.id,u)?(i.pushUndoRedo({unitID:c,undoMutations:[{id:Hr.id,params:d}],redoMutations:[{id:Hr.id,params:u}]}),!0):!1}},lf={id:`sheet.command.unregister-worksheet-range-theme-style`,type:u.COMMAND,handler:(e,t)=>{var n;if(!t||!H(e.get(A),t))return!1;let r=e.get(C),i=e.get(k),a=e.get(vn),{unitId:o,themeName:s}=t,c={unitId:o,themeName:s},l={unitId:o,themeName:s,rangeThemeStyleJson:(n=a.getRangeThemeStyle(o,s))==null?void 0:n.toJson()};return r.syncExecuteCommand(yu.id,t)?(i.pushUndoRedo({unitID:o,undoMutations:[{id:yu.id,params:l}],redoMutations:[{id:bu.id,params:c}]}),!0):!1}},uf={id:`sheet.mutation.add-range-theme`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleJSON:n,unitId:r}=t,i=e.get(vn),a=new nn(n.name);return a.fromJson(n),i.registerRangeThemeStyle(r,a),!0}},df={id:`sheet.mutation.empty`,type:u.MUTATION,handler:()=>!0},ff={id:`sheet.operation.mark-dirty-row-auto-height`,type:u.OPERATION,handler:()=>!0},pf={id:`sheet.operation.cancel-mark-dirty-row-auto-height`,type:u.OPERATION,handler:()=>!0},mf={id:`sheet.mutation.remove-range-theme`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{styleName:n,unitId:r}=t;return e.get(vn).unregisterRangeThemeStyle(r,n),!0}},hf={id:`sheet.mutation.set-range-theme`,type:u.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,styleName:r,style:i}=t,a=e.get(vn).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}},gf={id:`sheet.operation.scroll-to-cell`,type:u.OPERATION,handler:()=>!0},{getLenS:_f,getDataIndex:vf,fillCopy:yf,fillCopyStyles:bf,generateNullCellValueRowCol:xf}=vl,{otherRule:Sf}=Il;let Cf=class extends h{constructor(e,t,n){super(),this._univerInstanceService=e,this._autoFillService=t,this._injector=n,W(this,`_beforeApplyData`,[]),W(this,`_copyData`,[]),this._init()}_init(){this._initDefaultHook()}quit(){this._beforeApplyData=[],this._copyData=[]}_initDefaultHook(){this.disposeWithMe(this._autoFillService.addHook({id:`default`,type:bl.DEFAULT,priority:0,onBeforeFillData:(e,t)=>this._presetAndCacheData(e,t),onFillData:(e,t,n)=>this._fillData(e,t,n)}))}_presetAndCacheData(e,t){var n;let{unitId:r,subUnitId:i,target:a}=e,o=(n=this._univerInstanceService.getUnit(r))==null?void 0:n.getSheetBySheetId(i);if(!o)throw Error(`Worksheet not found for unitId: ${r}, subUnitId: ${i}`);let s=o.getCellMatrix(),c=[];return a.rows.forEach(e=>{let t=[];a.cols.forEach(n=>{t.push(L.deepClone(s.getValue(e,n)))}),c.push(t)}),this._beforeApplyData=c,this._copyData=this._getCopyData(e,t),this._shouldDisableSeries(this._copyData)?(this._autoFillService.setDisableApplyType($.SERIES,!0),$.COPY):(this._autoFillService.setDisableApplyType($.SERIES,!1),this._getPreferredApplyType(this._copyData))}_getApplyData(e,t,n,r,i,a=!0,o){let s=[],c=Math.floor(n/t),l=n%t,u=this._autoFillService.getRules();if(!a&&i===$.ONLY_FORMAT)return console.error(`ERROR: only format can not be applied when hasStyle is false`),[];let d={};u.forEach(e=>{d[e.type]=[]}),u.forEach(a=>{let{type:s,applyFunctions:u={}}=a,f=e[s];f&&f.forEach(a=>{let f=_f(a.index,l),p=a.index.length*c+f,m=this._applyFunctions(a,p,r,i,u,e,o),h=vf(t,n,a.index);d[s].push({data:m,index:h})})});for(let e=0;e<n;e++)u.forEach(t=>{let{type:n}=t,r=d[n];for(let t=0;t<r.length;t++)e in r[t].index&&s.push(r[t].data[r[t].index[e]])});return s}_applyFunctions(e,t,n,r,i,a,o){let{data:s}=e,c=n===m.UP||n===m.LEFT;if(r===$.COPY){let r=i==null?void 0:i[$.COPY];return r?r(e,t,n,a,o):(c&&s.reverse(),yf(s,t))}if(r===$.SERIES){let r=i==null?void 0:i[$.SERIES];return r?r(e,t,n,a):(c&&s.reverse(),i!=null&&i[$.COPY]?i[$.COPY](e,t,n,a,o):yf(s,t))}if(r===$.ONLY_FORMAT){let r=i==null?void 0:i[$.ONLY_FORMAT];return r?r(e,t,n,a):bf(s,t)}}_getCopyData(e,t){var n;let{unitId:r,subUnitId:i,source:a}=e,o=(n=this._univerInstanceService.getUnit(r))==null?void 0:n.getSheetBySheetId(i);if(!o)throw Error(`No worksheet found`);let s=o.getCellMatrix(),c=this._autoFillService.getRules(),l=[],u=t===m.DOWN||t===m.UP,d,f;return u?(d=a.cols,f=a.rows):(d=a.rows,f=a.cols),d.forEach(e=>{let t=this._getEmptyCopyDataPiece(),n={type:void 0,cellData:void 0};f.forEach(r=>{let i;i=u?s.getValue(r,e):s.getValue(e,r);let{type:a,isContinue:o}=c.find(e=>e.match(i,this._injector))||Sf;if(o(n,i)){let e=t[a],n=e[e.length-1];n.data.push(i),n.index.push(r-f[0])}else{let e=t[a];e?e.push({data:[i],index:[r-f[0]]}):t[a]=[{data:[i],index:[r-f[0]]}]}n.type=a,n.cellData=i}),l.push(t)}),l}_getEmptyCopyDataPiece(){let e={};return this._autoFillService.getRules().forEach(t=>{e[t.type]=[]}),e}_getMergeApplyData(e,t,n,r,i){var a;let{unitId:o,subUnitId:s}=i,c=(a=this._univerInstanceService.getUnit(o))==null?void 0:a.getSheetBySheetId(s);if(!c)throw Error(`No active sheet found`);let l=[];for(let i=e.startRow;i<=e.endRow;i++)for(let a=e.startColumn;a<=e.endColumn;a++){let{isMergedMainCell:e,startRow:o,startColumn:s,endRow:u,endColumn:d}=c.getCellInfoInMergeData(i,a);if(e){if(n===m.DOWN){let e=o+r,n=u+r;for(;n<=t.endRow;)l.push({startRow:e,startColumn:s,endRow:n,endColumn:d}),e+=r,n+=r}else if(n===m.UP){let e=o-r,n=u-r;for(;e>=t.startRow;)l.push({startRow:e,startColumn:s,endRow:n,endColumn:d}),e-=r,n-=r}else if(n===m.RIGHT){let e=s+r,n=d+r;for(;n<=t.endColumn;)l.push({startRow:o,startColumn:e,endRow:u,endColumn:n}),e+=r,n+=r}else if(n===m.LEFT){let e=s-r,n=d-r;for(;e>=t.startColumn;)l.push({startRow:o,startColumn:e,endRow:u,endColumn:n}),e-=r,n-=r}}}return l}_fillData(e,t,n){var r;let i=[],a=[],o=!0;n===$.NO_FORMAT&&(o=!1,n=$.SERIES);let{source:s,target:c,unitId:l,subUnitId:u}=e;if(!s||!c||t==null)return{undos:i,redos:a};let d=Ai(s),f=Ai(c),{cols:p,rows:h}=c,{cols:g,rows:_}=s,v=this._copyData,y;y=t===m.DOWN||t===m.UP?_.length:g.length;let b=[];if(t===m.DOWN||t===m.UP){let r=h.length,i=[];p.forEach((a,s)=>{let c=v[s],l=this._getApplyData(c,y,r,t,n,o,e);i.push(l)});for(let e=0;e<i[0].length;e++){let t=[];for(let n=0;n<i.length;n++)t.push({s:null,...i[n][e]});b.push(t)}}else{let r=p.length;h.forEach((i,a)=>{let s=v[a],c=this._getApplyData(s,y,r,t,n,o,e),l=[];for(let e=0;e<c.length;e++)l.push({s:null,...c[e]});b.push(l)})}let x=[],S=(r=this._univerInstanceService.getUnit(l))==null?void 0:r.getStyles();if(o?(x=this._getMergeApplyData(d,f,t,y,e),b.forEach(e=>{e.forEach(e=>{e&&S&&S&&(e.s=S.getStyleByCell(e))})})):b.forEach((e,t)=>{e.forEach((e,n)=>{e&&S&&(e.s=S.getStyleByCell(this._beforeApplyData[t][n])||null)})}),n===$.ONLY_FORMAT&&b.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}})}),o){var C;let e=[],t=(C=this._univerInstanceService.getUniverSheetInstance(l))==null||(C=C.getSheetBySheetId(u))==null?void 0:C.getMergeData();if(t&&t.forEach(t=>{I.intersects(t,f)&&e.push(t)}),e.length){let t={unitId:l,subUnitId:u,ranges:e},n=this._injector.invoke(In,t);a.push({id:q.id,params:t}),i.unshift({id:U.id,params:n})}}let w={subUnitId:u,unitId:l,cellValue:xf([c])},T=this._injector.invoke(vr,w);a.push({id:J.id,params:w}),i.unshift({id:J.id,params:T});let E=new M;h.forEach((e,t)=>{p.forEach((n,r)=>{b[t][r]&&E.setValue(e,n,b[t][r])})});let D=E.getMatrix(),O={subUnitId:u,unitId:l,cellValue:D},ee=this._injector.invoke(vr,O);if(this._autoFillService.getActiveHooks().forEach(r=>{var i;(i=r.onBeforeSubmit)==null||i.call(r,e,t,n,D)}),i.unshift({id:J.id,params:ee}),a.push({id:J.id,params:O}),x!=null&&x.length){let e={unitId:l,subUnitId:u,ranges:Js(x)},t=this._injector.invoke(Bt,e);i.unshift({id:q.id,params:t}),a.push({id:U.id,params:e})}return{undos:i,redos:a}}_shouldDisableSeries(e){return e.every(e=>Object.keys(e).every(t=>{var n;return((n=e[t])==null?void 0:n.length)===0||[yl.OTHER,yl.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&&yl.NUMBER===t}))?$.COPY:$.SERIES}};Cf=Jt([G(0,A),G(1,Kl),G(2,j(ne))],Cf);const wf=`maxCellsPerSheet`,Tf=`AllDefaultWorkbook`;let Ef=class extends h{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){let e=e=>{let t=this._definedNamesService.getDefinedNameMap(e);return t?JSON.stringify(t):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:`SHEET_DEFINED_NAME_PLUGIN`,businesses:[R.UNIVER_SHEET],toJson:t=>e(t),parseJson:e=>t(e),onUnLoad:e=>{this._definedNamesService.removeUnitDefinedName(e)},onLoad:(e,t)=>{this._definedNamesService.registerDefinedNames(e,t)}}))}};Ef=Jt([G(0,_t),G(1,ee)],Ef);const Df=[qu.id],Of=[wn.id,En.id,Nn.id,Fn.id,kn.id,jn.id];let kf=class extends h{constructor(e,t,n){var r,i;super(),this._univerInstanceService=e,this._commandService=t,this._configService=n,W(this,`_d`,new g),W(this,`_enabled`,!0);let a=(r=(i=this._configService.getConfig(`sheets.config`))==null?void 0:i.freezeSync)==null?!0:r;this.setEnabled(a)}getEnabled(){return this._enabled}setEnabled(e){e?this._d.dispose():this._initOnlyLocalListener(),this._enabled=e}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{Df.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,t)=>{if(Of.includes(e.id)&&t!=null&&t.fromCollab){let{id:n,params:r}=e;n===wn.id?this._handleInsertRowMutation(r,t):n===En.id?this._handleInsertColMutation(r,t):n===Nn.id?this._handleRemoveRowMutation(r,t):n===Fn.id?this._handleRemoveColMutation(r,t):n===kn.id?this._handleMoveRowsMutation(r,t):n===jn.id&&this._handleMoveColsMutation(r,t)}}))}_handleInsertRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=n.endRow-n.startRow+1,o={...a,startRow:Math.max(1,a.startRow+e),ySplit:Math.max(1,a.ySplit+e)};this._sequenceExecute(r,i,o,t)}}_handleInsertColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=n.endColumn-n.startColumn+1,o={...a,startColumn:Math.max(1,a.startColumn+e),xSplit:Math.max(1,a.xSplit+e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveRowMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startRow<a.startRow){let e=Math.min(a.startRow,n.endRow+1)-n.startRow,o={...a,startRow:Math.max(1,a.startRow-e),ySplit:Math.max(1,a.ySplit-e)};this._sequenceExecute(r,i,o,t)}}_handleRemoveColMutation(e,t){let{range:n,unitId:r,subUnitId:i}=e,a=this._getFreeze(r,i);if(a&&n.startColumn<a.startColumn){let e=Math.min(a.startColumn,n.endColumn+1)-n.startColumn,o={...a,startColumn:Math.max(1,a.startColumn-e),xSplit:Math.max(1,a.xSplit-e)};this._sequenceExecute(r,i,o,t)}}_handleMoveRowsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startRow<=0||n.startRow>=o.startRow&&r.startRow>=o.startRow||n.endRow<o.startRow&&r.endRow<o.startRow)return;let s=n.endRow-n.startRow+1,c=Math.max(Math.min(o.startRow,n.endRow+1)-n.startRow,0),l={...o};r.startRow>=o.startRow?(l.startRow=Math.max(1,o.startRow-c),l.ySplit=Math.max(1,o.ySplit-c)):(l.startRow=o.startRow+s-c,l.ySplit=o.ySplit+s-c),this._sequenceExecute(i,a,l,t)}_handleMoveColsMutation(e,t){let{sourceRange:n,targetRange:r,unitId:i,subUnitId:a}=e,o=this._getFreeze(i,a);if(!o||o.startColumn<=0||n.startColumn>=o.startColumn&&r.startColumn>=o.startColumn||n.endColumn<o.startColumn&&r.endColumn<o.startColumn)return;let s=n.endColumn-n.startColumn+1,c=Math.max(Math.min(o.startColumn,n.endColumn+1)-n.startColumn,0),l={...o};r.startColumn>=o.startColumn?(l.startColumn=Math.max(1,o.startColumn-c),l.xSplit=Math.max(1,o.xSplit-c)):(l.startColumn=o.startColumn+s-c,l.xSplit=o.xSplit+s-c),this._sequenceExecute(i,a,l,t)}_getFreeze(e,t){let n=this._univerInstanceService.getUnit(e,R.UNIVER_SHEET);if(!n)return null;let r=n.getSheetBySheetId(t);return r?r.getFreeze():null}_sequenceExecute(e,t,n,r){z([{id:qu.id,params:{...n,unitId:e,subUnitId:t,resetScroll:!1}}],this._commandService,r)}};kf=Jt([G(0,j(A)),G(1,C),G(2,w)],kf);let Af=class extends h{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._commandService=e,this._univerInstanceService=t,this._permissionService=n,this._selectionManagerService=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionRuleModel=a,this._localeService=o,this._lexerTreeBuilder=s,this._contextService=c,this._definedNamesService=l,W(this,`disposableCollection`,new g),W(this,`_triggerPermissionUIEvent$`,new tt),W(this,`triggerPermissionUIEvent$`,this._triggerPermissionUIEvent$.asObservable()),this._initialize()}blockExecuteWithoutPermission(e){throw this._triggerPermissionUIEvent$.next(e),new d(`have no permission`)}_getPermissionCheck(e,t){let n=!0,r=``;switch(e){case io.id:Me(t.value)&&t.value.f?(n=this._permissionCheckWithFormula(t),r=this._localeService.t(`permission.dialog.formulaErr`)):n=this._permissionCheckBySetRangeValue({workbookTypes:[wa],rangeTypes:[pa],worksheetTypes:[$a,Ha]},t);break;case $l.id:n=this.permissionCheckWithRanges({workbookTypes:[wa],rangeTypes:[pa],worksheetTypes:[$a,Ha]},t==null?void 0:t.ranges,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),r=this._localeService.t(`permission.dialog.editErr`);break;case hd.id:case gd.id:n=this.permissionCheckWithoutRange({worksheetTypes:[eo]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Jd.id:case Yd.id:case Xd.id:n=this.permissionCheckWithoutRange({worksheetTypes:[to]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Ko.id:case Wo.id:n=this._permissionCheckByMoveCommand(t),r=this._localeService.t(`permission.dialog.moveRowColErr`);break;case ca.id:n=this._permissionCheckByMoveRangeCommand(t),r=this._localeService.t(`permission.dialog.moveRangeErr`);break;case Od.id:n=this._permissionCheckByWorksheetCommand([wa,ja]),r=this._localeService.t(`permission.dialog.operatorSheetErr`),n===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case Td.id:n=this._permissionCheckByWorksheetCommand([wa,Pa]),r=this._localeService.t(`permission.dialog.operatorSheetErr`),n===!1&&this._worksheetProtectionRuleModel.resetOrder();break;case Zd.id:{let{unitId:e,subUnitId:i}=t;n=this._permissionCheckByWorksheetCommand([wa,Ea],e,i),r=this._localeService.t(`permission.dialog.operatorSheetErr`),n===!1&&this._worksheetProtectionRuleModel.resetOrder()}break;case zu.id:n=this.permissionCheckWithRanges({workbookTypes:[wa],rangeTypes:[pa],worksheetTypes:[Ha,eo]},t.ranges,t.unitId,t.subUnitId),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case rd.id:n=this.permissionCheckWithRanges({workbookTypes:[wa],rangeTypes:[pa],worksheetTypes:[Ha,to]},t.ranges,t.unitId,t.subUnitId),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case Bu.id:n=this.permissionCheckWithRanges({workbookTypes:[wa],rangeTypes:[pa],worksheetTypes:[Ha,eo]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case id.id:n=this.permissionCheckWithRanges({workbookTypes:[wa],rangeTypes:[pa],worksheetTypes:[Ha,to]}),r=this._localeService.t(`permission.dialog.setRowColStyleErr`);break;case _o.id:n=this._permissionCheckWithInsertRangeMove(`right`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case ho.id:n=this._permissionCheckWithInsertRangeMove(`bottom`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case uo.id:n=this._permissionCheckWithInsertRangeMove(`left`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case po.id:n=this._permissionCheckWithInsertRangeMove(`top`),r=this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`);break;case ql.id:n=this._permissionCheckByAutoFillCommand(t),r=this._localeService.t(`permission.dialog.autoFillErr`);break;default:break}n||this.blockExecuteWithoutPermission(r)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{this._getPermissionCheck(e.id,e==null?void 0:e.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===wd.id){var t;let{unitId:n=(t=this._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET))==null?void 0:t.getUnitId(),subUnitId:r}=e.params;if(!n||!r)return;let i=this._worksheetProtectionRuleModel.getRule(n,r),a=this._rangeProtectionRuleModel.getSubunitRuleList(n,r);i&&this._worksheetProtectionRuleModel.ruleRefresh(i.permissionId),a.length&&this._rangeProtectionRuleModel.ruleRefresh(r)}}))}_permissionCheckWithInsertRangeMove(e){var t;let n=H(this._univerInstanceService);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n,o=L.deepClone((t=this._selectionManagerService.getCurrentLastSelection())==null?void 0:t.range);return!(!o||(e===`top`||e===`bottom`?o.endRow=r.getRowCount()-1:(e===`left`||e===`right`)&&(o.endColumn=r.getColumnCount()-1),this._rangeProtectionRuleModel.getSubunitRuleList(i,a).map(e=>e.ranges).flat().some(e=>I.getIntersects(o,e))))}_permissionCheckByWorksheetCommand(e,t,n){let r=H(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 Aa(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=H(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:f,worksheetTypes:p,rangeTypes:m}=e;return!(f&&f.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||p&&p.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||m&&m.some(e=>{var t,n,r,i;let a=(t=o.getCell(u,d))==null||(t=t.selectionProtection)==null?void 0:t[0];if(!(a!=null&&a.ruleId))return!1;let l=(n=this._rangeProtectionRuleModel.getRule(s,c,a.ruleId))==null?void 0:n.permissionId;if(!l)return!1;let f=new e(s,c,l);return((r=(i=this._permissionService.getPermissionPoint(f.id))==null?void 0:i.value)==null?!1:r)===!1})===!0)}permissionCheckWithRanges(e,t,n,r){var i;let a=H(this._univerInstanceService,{unitId:n,subUnitId:r});if(!a)return!1;let o=t==null?(i=this._selectionManagerService.getCurrentSelections())==null?void 0:i.map(e=>e.range):t;if(!o)return!1;let{unitId:s,subUnitId:c}=a,{workbookTypes:l,worksheetTypes:u,rangeTypes:d}=e,f=[];return l&&f.push(...l.map(e=>new e(s).id)),u&&f.push(...u.map(e=>new e(s,c).id)),d&&this._rangeProtectionRuleModel.getSubunitRuleList(s,c).forEach(e=>{o.some(t=>e.ranges.some(e=>I.intersects(e,t)))&&f.push(...d.map(t=>new t(s,c,e.permissionId).id))}),f.length?this._permissionService.composePermission(f).every(e=>e.value):!0}_permissionCheckByMoveCommand(e){let t=H(this._univerInstanceService,e);if(!t)return!1;let{worksheet:n,unitId:r,subUnitId:i}=t,a=e.toRange;a.endRow===n.getRowCount()-1?a.endColumn=a.startColumn:a.endRow=a.startRow;let o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>I.intersects(e,a));return o.length>0?!1:(o.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=n.getCell(r,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[B.Edit])===!1)return!1}}),!0)}_permissionCheckByMoveRangeCommand(e){let t=H(this._univerInstanceService);if(!t)return!1;let{worksheet:n,unitId:r,subUnitId:i}=t,a=e.toRange,o=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>I.intersects(e,a));return o.length>0?!1:(o.forEach(e=>{for(let r=e.startRow;r<=e.endRow;r++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=n.getCell(r,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[B.Edit])===!1)return!1}}),!0)}_permissionCheckBySetRangeValue(e,t){let n=[];n=t.range?[t.range]:[new M(t.value).getDataRange()];let{unitId:r,subUnitId:i}=t;return this.permissionCheckWithRanges(e,n,r,i)}_permissionCheckWithFormula(e){let t=e.value,n=e.range,r=t.f;if(r){var i;let t=r.substring(1),n=this._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET),s=(i=e.unitId)==null?n.getUnitId():i,c=this._definedNamesService.getValueByName(s,t);if(c){let e=c.formulaOrRefString;e.startsWith(Dt.EQUALS)&&(e=e.slice(1));let t=e.split(`,`);for(let e=0;e<t.length;e++){let r=t[e],i=wt(r);if(i.sheetName){let e=n.getSheetBySheetName(i.sheetName);if(!e)return!0;let{startRow:t,endRow:r,startColumn:o,endColumn:s}=i.range;for(let n=t;n<=r;n++)for(let t=o;t<=s;t++){var a;let r=(a=e.getCell(n,t))==null||(a=a.selectionProtection)==null?void 0:a[0];if((r==null?void 0:r[B.View])===!1)return!1}}}return!0}else{let e=this._lexerTreeBuilder.sequenceNodesBuilder(r);if(!e)return!0;for(let t=0;t<e.length;t++){let n=e[t];if(typeof n==`string`||n.nodeType!==Ot.REFERENCE)continue;let{token:r}=n,i=Tt(r),a=i.unitId?this._univerInstanceService.getUnit(i.unitId):this._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET);if(!a)return!0;let s=i.sheetName?a.getSheetBySheetName(i.sheetName):a.getActiveSheet(),c=a.getUnitId();if(i.sheetName){if(s=a.getSheetBySheetName(i.sheetName),!s)return!0;let e=s==null?void 0:s.getSheetId();if(!this._permissionService.getPermissionPoint(new ro(c,e).id))return!1}if(!s)return!0;let{startRow:l,endRow:u,startColumn:d,endColumn:f}=i.range;for(let e=l;e<=u;e++)for(let t=d;t<=f;t++){var o;let n=(o=s.getCell(e,t))==null||(o=o.selectionProtection)==null?void 0:o[0];if((n==null?void 0:n[B.View])===!1)return!1}}return!0}}if(n){let t=H(this._univerInstanceService,e);if(!t)return!1;let{unitId:r,subUnitId:i}=t,a=this._rangeProtectionRuleModel.getSubunitRuleList(r,i).filter(e=>e.ranges.some(e=>I.intersects(e,n))).map(e=>new pa(r,i,e.permissionId).id);if(!this._permissionService.composePermission(a).every(e=>e.value))return!1}return!0}_permissionCheckByAutoFillCommand(e){if(!e)return!1;let{targetRange:t}=e,n=H(this._univerInstanceService,e);if(!n)return!1;let{worksheet:r,unitId:i,subUnitId:a}=n;return!this._rangeProtectionRuleModel.getSubunitRuleList(i,a).reduce((e,t)=>[...e,...t.ranges],[]).filter(e=>I.intersects(e,t)).some(e=>{for(let n=e.startRow;n<=e.endRow;n++)for(let i=e.startColumn;i<=e.endColumn;i++){var t;let e=(t=r.getCell(n,i))==null||(t=t.selectionProtection)==null?void 0:t[0];if((e==null?void 0:e[B.Edit])===!1)return!0}return!1})}};Af=Jt([G(0,C),G(1,A),G(2,O),G(3,j(Y)),G(4,j(Fi)),G(5,j(mc)),G(6,j(oe)),G(7,j(vt)),G(8,E),G(9,_t)],Af);let jf=class extends h{constructor(e,t,n,r,i){super(),this._permissionService=e,this._univerInstanceService=t,this._rangeProtectionRuleModel=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointModel=i,W(this,`_unitPermissionInitStateChange`,new et(!1)),W(this,`unitPermissionInitStateChange$`,this._unitPermissionInitStateChange.asObservable()),this._init()}_init(){let e=e=>{let t=e.getUnitId();Fd().forEach(e=>{let n=new e(t);this._permissionService.addPermissionPoint(n)})};this._univerInstanceService.getAllUnitsForType(R.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(R.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(R.UNIVER_SHEET).subscribe(e=>{let t=e.getUnitId();e.getSheets().forEach(e=>{let n=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(t,n).forEach(e=>{[...Md()].forEach(r=>{let i=new r(t,n,e.permissionId);this._permissionService.deletePermissionPoint(i.id)})}),[...Ld(),...Rd()].forEach(e=>{let r=new e(t,n);this._permissionService.deletePermissionPoint(r.id)})}),Fd().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)}};jf=Jt([G(0,j(O)),G(1,j(A)),G(2,j(Fi)),G(3,j(mc)),G(4,j(kd))],jf);let Mf=class extends h{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._univerInstanceService=e,this._permissionService=t,this._authzIoService=n,this._rangeProtectionRuleModel=r,this._worksheetProtectionRuleModel=i,this._userManagerService=a,this._worksheetProtectionPointRuleModel=o,this._workbookPermissionService=s,this._undoRedoService=c,this._commandService=l}initPermission(){this._initRangePermissionFromSnapshot(),this._initRangePermissionChange(),this._initWorksheetPermissionFromSnapshot(),this._initWorksheetPermissionChange(),this._initWorksheetPermissionPointsChange(),this._initWorkbookPermissionFromSnapshot(),this._initUserChange(),this._refreshPermissionByCollaCreate()}refreshRangeProtectPermission(){this._initRangePermissionFromSnapshot()}async _initRangePermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(e=>{i.set(e.permissionId,e),t.push({objectID:e.permissionId,unitID:n,objectType:V.SelectRange,actions:Nd})})}),!t.length){this._rangeProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){if(!this._rangeProtectionRuleModel.getRule(n,t.subUnitId,t.id))return;Md().forEach(r=>{let i=new r(n,t.subUnitId,e.objectID),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._rangeProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(R.UNIVER_SHEET).map(t=>e(t))),this._rangeProtectionRuleModel.changeRuleInitState(!0)}_initRangePermissionChange(){this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?this._rangeProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e.unitId,e.subUnitId),[...Rd()].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:V.SelectRange,actions:Nd}).then(t=>{this._rangeProtectionRuleModel.getRule(e.unitId,e.subUnitId,e.rule.id)&&(Md().forEach(n=>{if(e.type===`set`){let{rule:t,oldRule:n}=e;if(t.permissionId===(n==null?void 0:n.permissionId))return}let r=e.rule,i=new n(r.unitId,r.subUnitId,r.permissionId),a=i.subType,o=t.find(e=>e.action===a);o&&this._permissionService.updatePermissionPoint(i.id,o.allowed)}),this._rangeProtectionRuleModel.ruleRefresh(e.rule.permissionId))})}))}async initWorkbookPermissionChange(e){var t;let n=e||((t=this._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET))==null?void 0:t.getUnitId());if(n)return this._authzIoService.allowed({objectID:n,objectType:V.Workbook,unitID:n,actions:Id}).then(e=>{Fd().forEach(t=>{let r=new t(n),i=r.subType,a=e.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}async _initWorkbookPermissionFromSnapshot(){await Promise.all(this._univerInstanceService.getAllUnitsForType(R.UNIVER_SHEET).map(e=>this.initWorkbookPermissionChange(e.getUnitId()))),this._workbookPermissionService.changeUnitInitState(!0)}_initWorksheetPermissionChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{e.type===`delete`?([...Ld(),...Rd()].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:V.Worksheet,actions:Nd}).then(t=>{let n=this._worksheetProtectionRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.rule.permissionId||(Ld().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:V.Worksheet,actions:zd}).then(t=>{let n=this._worksheetProtectionPointRuleModel.getRule(e.unitId,e.subUnitId);!n||n.permissionId!==e.permissionId||Rd().forEach(n=>{let r=new n(e.unitId,e.subUnitId),i=r.subType,a=t.find(e=>e.action===i);a&&this._permissionService.updatePermissionPoint(r.id,a.allowed)})})}))}async _initWorksheetPermissionFromSnapshot(){let e=async e=>{let t=[],n=e.getUnitId(),r=e.getSheets(),i=new Map;if(r.forEach(e=>{let r=e.getSheetId(),a=this._worksheetProtectionRuleModel.getRule(n,r);a&&(i.set(a.permissionId,a),t.push({objectID:a.permissionId,unitID:n,objectType:V.Worksheet,actions:Nd}));let o=this._worksheetProtectionPointRuleModel.getRule(n,r);o&&(i.set(o.permissionId,o),t.push({objectID:o.permissionId,unitID:n,objectType:V.Worksheet,actions:zd}))}),!t.length){this._worksheetProtectionRuleModel.changeRuleInitState(!0);return}this._authzIoService.batchAllowed(t).then(e=>{e.forEach(e=>{let t=i.get(e.objectID);if(t){let r=this._worksheetProtectionRuleModel.getRule(n,t.subUnitId)||this._worksheetProtectionPointRuleModel.getRule(n,t.subUnitId);if(!r||r.permissionId!==e.objectID)return;[...Ld(),...Rd()].forEach(r=>{let i=new r(n,t.subUnitId),a=i.subType,o=e.actions.find(e=>e.action===a);(o==null?void 0:o.allowed)!==void 0&&this._permissionService.updatePermissionPoint(i.id,o.allowed)})}}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)})};await Promise.all(this._univerInstanceService.getAllUnitsForType(R.UNIVER_SHEET).map(t=>e(t))),this._worksheetProtectionRuleModel.changeRuleInitState(!0)}_initUserChange(){this.disposeWithMe(this._userManagerService.currentUser$.pipe(lt(1)).subscribe(()=>{let e=this._permissionService.getAllPermissionPoint();this._permissionService.clearPermissionMap(),this._worksheetProtectionRuleModel.changeRuleInitState(!1),this._univerInstanceService.getAllUnitsForType(R.UNIVER_SHEET).forEach(t=>{let n=t.getUnitId();Fd().forEach(t=>{let r=new t(n);e.has(r.id)&&(r=e.get(r.id)),this._permissionService.addPermissionPoint(r)}),t.getSheets().forEach(t=>{let r=t.getSheetId();[...Ld(),...Rd()].forEach(t=>{let i=new t(n,r);e.has(i.id)&&(i=e.get(i.id)),this._permissionService.addPermissionPoint(i)}),this._rangeProtectionRuleModel.getSubunitRuleList(n,r).forEach(t=>{Md().forEach(i=>{let a=new i(n,r,t.permissionId);e.has(a.id)&&(a=e.get(a.id)),this._permissionService.addPermissionPoint(a)})})}),this._initWorkbookPermissionFromSnapshot(),this._initWorksheetPermissionFromSnapshot(),this._initRangePermissionFromSnapshot()})}))}refreshPermission(e,t){let n=this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t),r=!1;if(n){let[i,a]=n;this._authzIoService.allowed({objectID:t,unitID:e,objectType:V.Worksheet,actions:Nd}).then(n=>{if(!this._worksheetProtectionRuleModel.getTargetByPermissionId(e,t))return;let i=``;Ld().forEach(t=>{let o=new t(e,a),s=o.subType,c=n.find(e=>e.action===s);if(c){var l;((l=this._permissionService.getPermissionPoint(o.id))==null?void 0:l.value)!==c.allowed&&(r=!0),this._permissionService.updatePermissionPoint(o.id,c.allowed),i+=`${c.action}_${c.allowed}`}}),this._worksheetProtectionRuleModel.ruleRefresh(`${t}_${i}`),r&&this._undoRedoService.clearUndoRedo(e)})}let i=this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t);if(i){let[n,a]=i;this._authzIoService.allowed({objectID:t,unitID:e,objectType:V.Worksheet,actions:zd}).then(n=>{this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e,t)&&(Rd().forEach(t=>{let i=new t(e,a),o=i.subType,s=n.find(e=>e.action===o);if(s){var c;((c=this._permissionService.getPermissionPoint(i.id))==null?void 0:c.value)!==s.allowed&&(r=!0),this._permissionService.updatePermissionPoint(i.id,s.allowed)}}),r&&this._undoRedoService.clearUndoRedo(e))})}let a=this._rangeProtectionRuleModel.getTargetByPermissionId(e,t);if(a){let[n,i]=a;this._authzIoService.allowed({objectID:t,unitID:e,objectType:V.SelectRange,actions:Nd}).then(n=>{if(!this._rangeProtectionRuleModel.getTargetByPermissionId(e,t))return;let a=``;Md().forEach(o=>{let s=new o(e,i,t),c=s.subType,l=n.find(e=>e.action===c);if(l){var u;((u=this._permissionService.getPermissionPoint(s.id))==null?void 0:u.value)!==l.allowed&&(r=!0),this._permissionService.updatePermissionPoint(s.id,l.allowed),a+=`${l.action}_${l.allowed}`}}),this._rangeProtectionRuleModel.ruleRefresh(`${t}_${a}`),r&&this._undoRedoService.clearUndoRedo(e)})}}_refreshPermissionByCollaCreate(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(t!=null&&t.fromCollab&&(e.id===zi.id||e.id===hc.id||e.id===Vd.id)){let t=e.params;this._undoRedoService.clearUndoRedo(t.unitId)}}))}};Mf=Jt([G(0,A),G(1,O),G(2,S),G(3,j(Fi)),G(4,j(mc)),G(5,j(ve)),G(6,j(kd)),G(7,j(jf)),G(8,j(k)),G(9,j(C))],Mf);let Nf=class extends h{constructor(e,t,n){super(),this._commandService=e,this._sheetRangeThemeModel=t,this._univerInstanceService=n,W(this,`_zebraCacheUpdateSubject`,new tt),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 wn.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Tr.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Dr.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case Nn.id:{let t=e.params;n=t.unitId,r=t.subUnitId}break;case zr.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)}))}};Nf=Jt([G(0,j(C)),G(1,j(vn)),G(2,j(A))],Nf);let Pf=class{constructor(e,t){this._selectionProtectionRuleModel=e,this._permissionService=t,W(this,`_cache`,new ae(1e4)),this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(At(e=>e.type===V.SelectRange),At(e=>Md().some(t=>e instanceof t)),jt(e=>e)).subscribe(e=>{let t=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(let n of t)n.permissionId===e.permissionId&&n.ranges.forEach(t=>{F.foreach(t,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{if(e.rule.ranges.forEach(t=>{F.foreach(t,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})}),e.type===`set`){var t;(t=e.oldRule)==null||t.ranges.forEach(t=>{F.foreach(t,(t,n)=>{let r=this._createKey(e.unitId,e.subUnitId,t,n);this._cache.delete(r)})})}})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){let i=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),a=[];if(!i||!i.length)return a;let o=this._createKey(e,t,n,r),s=this._cache.get(o);if(s)return s;let c=[];for(let a of i)if(a.ranges.some(e=>e.startRow<=n&&e.endRow>=n&&e.startColumn<=r&&e.endColumn>=r)){let n=Md().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()}};Pf=Jt([G(0,j(Fi)),G(1,j(O))],Pf);let Ff=class extends h{constructor(e,t,n){super(),this._ruleModel=e,this._permissionService=t,this._univerInstanceService=n,W(this,`_cellRuleCache`,new Map),W(this,`_permissionIdCache`,new Map),W(this,`_cellInfoCache`,new Map),W(this,`_rowInfoCache`,new Map),W(this,`_colInfoCache`,new Map),this._initUpdateCellRuleCache(),this._initUpdateCellInfoCache(),this._initUpdateRowColInfoCache(),this._initCache()}_initCache(){this._univerInstanceService.getAllUnitsForType(R.UNIVER_SHEET).forEach(e=>{e.getSheets().forEach(t=>{let n=e.getUnitId(),r=t.getSheetId();this.reBuildCache(n,r)})})}_initUpdateCellInfoCache(){this._permissionService.permissionPointUpdate$.pipe(rt(e=>e.type===V.SelectRange),at(e=>e)).subscribe(e=>{let{subUnitId:t,unitId:n,permissionId:r}=e,i=this._permissionIdCache.get(r);if(!i)return;let a=this._ruleModel.getRule(n,t,i);if(!a)return;let o=this._ensureCellInfoMap(n,t);a.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++)o.delete(`${e}-${t}`)})}),this._ruleModel.ruleChange$.subscribe(e=>{let{unitId:t,subUnitId:n}=e,r=this._ensureCellInfoMap(t,n);if(e.rule.ranges.forEach(e=>{F.foreach(e,(e,t)=>{r.delete(`${e}-${t}`)})}),e.type===`set`){var i;(i=e.oldRule)==null||i.ranges.forEach(e=>{F.foreach(e,(e,t)=>{this._cellInfoCache.delete(`${e}-${t}`)})})}})}_initUpdateCellRuleCache(){this._ruleModel.ruleChange$.subscribe(e=>{let{type:t}=e;t===`add`?this._addCellRuleCache(e):t===`delete`?this._deleteCellRuleCache(e):(this._deleteCellRuleCache({...e,rule:e.oldRule}),this._addCellRuleCache(e))})}_ensureRuleMap(e,t){let n=this._cellRuleCache.get(e);n||(n=new Map,this._cellRuleCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureCellInfoMap(e,t){let n=this._cellInfoCache.get(e);n||(n=new Map,this._cellInfoCache.set(e,n));let r=n.get(t);return r||(r=new Map,n.set(t,r)),r}_ensureRowColInfoMap(e,t,n){let r=n===`row`?this._rowInfoCache.get(e):this._colInfoCache.get(e);r||(r=new Map,n===`row`?this._rowInfoCache.set(e,r):this._colInfoCache.set(e,r));let i=r.get(t);return i||(i=new Map,r.set(t,i)),i}_addCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++)i.set(`${e}-${t}`,r.id)}),this._permissionIdCache.set(r.permissionId,r.id)}_deleteCellRuleCache(e){let{subUnitId:t,unitId:n,rule:r}=e,i=this._ensureRuleMap(n,t),a=this._ensureCellInfoMap(n,t);r.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++)i.delete(`${e}-${t}`),a.delete(`${e}-${t}`)}),this._permissionIdCache.delete(r.permissionId)}_getSelectionActions(e,t,n){var r,i,a,o,s,c,l,u,d,f,p,m;let h=(r=(i=this._permissionService.getPermissionPoint((a=new pa(e,t,n.permissionId))==null?void 0:a.id))==null?void 0:i.value)==null?!1:r,g=(o=(s=this._permissionService.getPermissionPoint((c=new ma(e,t,n.permissionId))==null?void 0:c.id))==null?void 0:s.value)==null?!1:o,_=(l=(u=this._permissionService.getPermissionPoint((d=new jd(e,t,n.permissionId))==null?void 0:d.id))==null?void 0:u.value)==null?!1:l,v=(f=(p=this._permissionService.getPermissionPoint((m=new Ad(e,t,n.permissionId))==null?void 0:m.id))==null?void 0:p.value)==null?!1:f;return{[B.Edit]:h,[B.View]:g,[B.ManageCollaborator]:_,[B.Delete]:v}}reBuildCache(e,t){let n=this._ensureRuleMap(e,t),r=this._ensureCellInfoMap(e,t);n.clear(),r.clear();let i=this._ensureRowColInfoMap(e,t,`row`),a=this._ensureRowColInfoMap(e,t,`col`);i.clear(),a.clear(),this._ruleModel.getSubunitRuleList(e,t).forEach(o=>{let s=this._getSelectionActions(e,t,o),c={...s,ruleId:o.id,ranges:o.ranges};o.ranges.forEach(e=>{let{startRow:t,endRow:l,startColumn:u,endColumn:d}=e;for(let e=t;e<=l;e++){let t=i.get(`${e}`);t?t.set(o.id,s):i.set(`${e}`,new Map([[o.id,s]]));for(let t=u;t<=d;t++){n.set(`${e}-${t}`,o.id),r.set(`${e}-${t}`,c);let i=a.get(`${t}`);i?i.set(o.id,s):a.set(`${t}`,new Map([[o.id,s]]))}}}),this._permissionIdCache.set(o.permissionId,o.id)})}getRowPermissionInfo(e,t,n,r){var i;let a=(i=this._rowInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}getColPermissionInfo(e,t,n,r){var i;let a=(i=this._colInfoCache.get(e))==null?void 0:i.get(t);if(!a)return!0;let o=a.get(`${n}`);return o?r.every(e=>{for(let t of o.values())if(t[e]===!1)return!1;return!0}):!0}_initUpdateRowColInfoCache(){this._permissionService.permissionPointUpdate$.pipe(rt(e=>e.type===V.SelectRange),at(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)})})}};Ff=Jt([G(0,j(Fi)),G(1,j(O)),G(2,j(A))],Ff);var If=`@univerjs/sheets`,Lf=`0.20.0`;let Rf=class extends h{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,W(this,`_previousSheetIndex`,-1),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Bo.id)return this._beforeAdjustActiveSheetOnRemoveSheet(e)})),this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{if(e.id===Bo.id)return this._adjustActiveSheetOnRemoveSheet(e);if(e.id===xd.id&&e.params.hidden)return this._adjustActiveSheetOnHideSheet(e);if(t!=null&&t.fromCollab)return!1;if(e.id===ou.id)return this._adjustActiveSheetOnInsertSheet(e);if(e.id===xd.id&&!e.params.hidden)return this._adjustActiveSheetOnShowSheet(e);if(e.id===X.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=zf(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=zf(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(Ur.id,{unitId:e,subUnitId:t})}};Rf=Jt([G(0,C),G(1,A)],Rf);function zf(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 Bf=class extends h{constructor(e,t,n){var r;super(),this._commandService=e,this._configService=t,this._dataSyncPrimaryController=n,[J,En,wn,ou,Dn,kn,jn,Fn,Nn,Bo,q,nf,U,fd,wd,tf,Rn,df,Dr,Tr,ff,pf,iu,Fr,jr].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||[cc,lc,uc,dc,yc,Ki,$l,qi,du,uo,po,hd,Jd,ko,Oo,Ao,jo,Do,Eo,ho,_o,So,xo,wo,Co,bo,yo,_u,Ko,ca,Wo,Po,Ro,Lo,Fo,Cu,$o,tc,Mc,Ac,jc,Lu,Iu,Nu,Pu,Fu,Vu,Wn,Kn,gd,Ru,Hn,Ju,qu,Yu,Pc,td,io,Yd,ad,nd,Cr,Bu,id,zu,rd,xc,dd,ud,kc,Ic,Fc,Nc,pd,md,Ur,Sd,xd,Td,Od,Dd,Vr,zr,Xd,Br,kr,qd,vd,oa,X,gf,gu,Su,Gu,Zd,cf,Hr,Xu,qn,of,Hd,hc,$u,gc,Vd,Bi,ed,pu,_c,mu,Ud,zi,Li,Zu,sf,Mr,yd,Qd,xn,yn,bu,yu,lf,xu,vc,hu,uf,hf,mf,ql,Xl,Zl,Ql,vu].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e))),this._configService.setConfig(wf,3e6)}};Bf=Jt([G(0,C),G(1,w),G(2,le(Nt))],Bf);let Vf=class extends h{constructor(e,t){super(),this._univerInstanceService=e,this._commandService=t,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==St.id)return;let{unitData:t}=e.params,n=Object.keys(t),r=[];for(let e=0;e<n.length;e++){let i=n[e],a=t[i];if(a==null)continue;let o=Object.keys(a);for(let e=0;e<o.length;e++){let t=o[e],n=a[t];if(n==null)continue;let s={subUnitId:t,unitId:i,cellValue:this._getMergedCellData(i,t,n)};r.push({id:J.id,params:s})}}return z(r,this._commandService,{onlyLocal:!0,fromFormula:!0,applyFormulaCalculationResult:!0})}))}_getMergedCellData(e,t,n){let r=this._univerInstanceService.getUniverSheetInstance(e),i=r==null?void 0:r.getStyles(),a=r==null?void 0:r.getSheetBySheetId(t),o=a==null?void 0:a.getCellMatrix(),s=new M(n);return s.forValue((e,t,n)=>{let r=Et(o==null?void 0:o.getValue(e,t),n,i);s.setValue(e,t,r)}),s.getMatrix()}};Vf=Jt([G(0,j(A)),G(1,C)],Vf);let Hf=class extends h{constructor(e){super(),this._sheetInterceptorService=e,this._initialize()}_initialize(){this._initInterceptorCellContent()}_initInterceptorCellContent(){this.disposeWithMe(this._sheetInterceptorService.intercept(Vt.CELL_CONTENT,{priority:11,effect:re.Value|re.Style,handler:(e,t,n)=>{var r;if(!e)return n(e);let i=t.workbook.getStyles().getStyleByCell(e);return ke(i==null||(r=i.n)==null?void 0:r.pattern)&&(e==null?void 0:e.t)===l.NUMBER&&e.v!==void 0&&e.v!==null&&Ne(e.v)?((!e||e===t.rawData)&&(e={...t.rawData}),e.v=kt(Number(e.v)),n(e)):n(e)}}))}};Hf=Jt([G(0,j(K))],Hf);let Uf=class extends h{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(Vt.CELL_CONTENT,{priority:999,effect:re.Value|re.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i,row:a,col:o}=t,s=this._rangeProtectionCache.getCellInfo(r,i,a,o);if(s){let r=s[B.View]===!1,i=!e||e===t.rawData?{...t.rawData}:e;return i.selectionProtection=[s],r?(delete i.s,delete i.v,delete i.p,i):n(i)}return n(e)}}))}_initViewModelBySheetInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(Vt.CELL_CONTENT,{priority:999,effect:re.Value|re.Style,handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._worksheetProtectionRuleModel.getRule(r,i);if(a!=null&&a.permissionId){var o,s,c,l,u;let a=[{[B.View]:(o=(s=this._permissionService.getPermissionPoint(new ro(r,i).id))==null?void 0:s.value)==null?!1:o,[B.Edit]:(c=(l=this._permissionService.getPermissionPoint(new Ha(r,i).id))==null?void 0:l.value)==null?!1:c}],d=!((u=a[0])!=null&&u[B.View]),f=!e||e===t.rawData?{...e}:e;return f.hasWorksheetRule=!0,f.selectionProtection=a,d?(delete f.s,delete f.v,delete f.p,f):n(f)}return n(e)}}))}};Uf=Jt([G(0,O),G(1,j(mc)),G(2,j(K)),G(3,j(Ff))],Uf);const Wf=Ce(`univer.exclusive-range-service`);var Gf=class extends h{constructor(...e){super(...e),W(this,`_exclusiveRanges`,new Map),W(this,`_exclusiveRangesChange$`,new tt),W(this,`exclusiveRangesChange$`,this._exclusiveRangesChange$.asObservable())}_ensureUnitMap(e){return this._exclusiveRanges.has(e)||this._exclusiveRanges.set(e,new Map),this._exclusiveRanges.get(e)}_ensureSubunitMap(e,t){let n=this._ensureUnitMap(e);return n.has(t)||n.set(t,new Map),n.get(t)}_ensureFeature(e,t,n){let r=this._ensureSubunitMap(e,t);return r.has(n)||r.set(n,[]),r.get(n)}addExclusiveRange(e,t,n,r){let i=this._ensureFeature(e,t,n);i.push(...r),this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:i.map(e=>e.range)})}getExclusiveRanges(e,t,n){var r;return(r=this._exclusiveRanges.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}clearExclusiveRanges(e,t,n){let r=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(r==null?void 0:r.map(e=>e.range))||[]}),this._ensureFeature(e,t,n),this._exclusiveRanges.get(e).get(t).set(n,[])}clearExclusiveRangesByGroupId(e,t,n,r){let i=this.getExclusiveRanges(e,t,n);this._exclusiveRangesChange$.next({unitId:e,subUnitId:t,ranges:(i==null?void 0:i.map(e=>e.range))||[]});let a=this.getExclusiveRanges(e,t,n);if(a){let i=a.filter(e=>e.groupId!==r);this._exclusiveRanges.get(e).get(t).set(n,i)}}getInterestGroupId(e){let t=[];return e.forEach(e=>{var n;let r=e.range,{unitId:i,sheetId:a}=r;if(!i||!a)return;let o=(n=this._exclusiveRanges.get(i))==null?void 0:n.get(a);if(o)for(let e of o.keys()){let n=o.get(e);if(n){for(let i of n)if(I.intersects(r,i.range)){t.push(e);break}}}}),t}};let Kf=class extends h{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){let i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;let a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;let o=i.getStyles(),s=a.getCellRaw(n,r);if(s!=null&&s.s){let e=o.get(s.s);if(e!=null&&e.n)return e.n}return null}deleteValues(e,t,n){let r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;let i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;let a=r.getStyles();n.forEach(e=>{F.foreach(e,(e,t)=>{let n=i.getCellRaw(e,t);if(!n)return;let r=n==null?void 0:n.s,o={...r&&a.get(r)||{}};delete o.n,n.s=a.setValue(o)})})}setValues(e,t,n){let r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;let i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;let a=r.getStyles(),o=i.getCellMatrix();n.forEach(e=>{e.ranges.forEach(t=>{F.foreach(t,(t,n)=>{let r=i.getCellRaw(t,n);if(r){let t={...a.getStyleByCell(r)||{},n:{pattern:e.pattern}};r.s=a.setValue(t)}else{let r={n:{pattern:e.pattern}},i=a.setValue(r);i&&o.setValue(t,n,{s:i})}})})})}};Kf=Jt([G(0,ee),G(1,A),G(2,D)],Kf);const qf=[En.id,wn.id,Fn.id,Nn.id],Jf=[kn.id,jn.id];let Yf=class extends h{constructor(e,t,n,r,i,a,o,s){super(),this._selectionProtectionRuleModel=e,this._univerInstanceService=t,this._commandService=n,this._refRangeService=r,this._selectionProtectionRenderModel=i,this._rangeProtectionCache=a,this._sheetInterceptorService=o,this._rangeProtectionRuleModel=s,W(this,`disposableCollection`,new g),this._onRefRangeChange(),this._correctPermissionRange(),this._initReBuildCache(),this._initRemoveSheet()}_onRefRangeChange(){let e=(e,t)=>{let n=this._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET);if(!n||!(n!=null&&n.getSheetBySheetId(t)))return;this.disposableCollection.dispose();let r=n=>this.refRangeHandle(n,e,t);this._selectionProtectionRuleModel.getSubunitRuleList(e,t).reduce((e,t)=>[...e,...t.ranges],[]).forEach(n=>{this.disposableCollection.add(this._refRangeService.registerRefRange(n,r,e,t))})};this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===md.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}if(t.id===Zu.id||t.id===zi.id){let n=t.params,r=n.subUnitId,i=n.unitId;if(!r||!i)return;e(i,r)}}));let t=this._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET);if(t){let n=t.getActiveSheet();if(!n)return;e(t.getUnitId(),n.getSheetId())}}refRangeHandle(e,t,n){switch(e.id){case Wo.id:return this._getRefRangeMutationsByMoveRows(e.params,t,n);case Ko.id:return this._getRefRangeMutationsByMoveCols(e.params,t,n);case yo.id:return this._getRefRangeMutationsByInsertRows(e.params,t,n);case Eo.id:return this._getRefRangeMutationsByInsertCols(e.params,t,n);case Ro.id:return this._getRefRangeMutationsByDeleteCols(e.params,t,n);case Fo.id:return this._getRefRangeMutationsByDeleteRows(e.params,t,n);default:break}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(e,t,n){let r=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(t=>t.ranges.some(t=>I.intersects(t,e.range))),i=e.range;if(r.length){let e=[],a=[];return r.forEach(r=>{let o=L.deepClone(r);o.ranges=o.ranges.reduce((e,t)=>{if(I.intersects(t,i)){let n=L.deepClone(t),{startColumn:r,endColumn:a}=i;if(r<=n.startColumn&&a>=n.endColumn)return e;r>=n.startColumn&&a<=n.endColumn?n.endColumn-=a-r+1:r<n.startColumn?(n.startColumn=r,n.endColumn-=a-r+1):a>n.endColumn&&(n.endColumn=r-1),this._checkIsRightRange(n)&&e.push(n)}return e},[]),o.ranges.length?(e.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:r.id}}),a.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:r,ruleId:r.id}})):(e.push({id:Li.id,params:{unitId:t,subUnitId:n,ruleIds:[r.id]}}),a.push({id:zi.id,params:{unitId:t,subUnitId:n,name:``,rules:[r]}}))}),{redos:e,undos:a}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(e,t,n){let r=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(t=>t.ranges.some(t=>I.intersects(t,e.range))),i=e.range;if(r.length){let e=[],a=[];return r.forEach(r=>{let o=L.deepClone(r);o.ranges=o.ranges.reduce((e,t)=>{if(I.intersects(t,i)){let n=L.deepClone(t),{startRow:r,endRow:a}=i;if(r<=n.startRow&&a>=n.endRow)return e;r>=n.startRow&&a<=n.endRow?n.endRow-=a-r+1:r<n.startRow?(n.startRow=r,n.endRow-=a-r+1):a>n.endRow&&(n.endRow=r-1),this._checkIsRightRange(n)&&e.push(n)}return e},[]),e.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:r.id}}),a.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:r,ruleId:r.id}})}),{redos:e,undos:a}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(e,t,n){let r=e.range.startColumn,i=e.range.endColumn-e.range.startColumn+1,a=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>r>e.startColumn&&r<=e.endColumn));if(a.length){let e=[],o=[];return a.forEach(a=>{let s=L.deepClone(a),c=!1;s.ranges.forEach(e=>{r>e.startColumn&&r<=e.endColumn&&(e.endColumn+=i,c=!0)}),c&&(e.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:s,ruleId:a.id}}),o.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:a,ruleId:a.id}}))}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(e,t,n){let r=e.range.startRow,i=e.range.endRow-e.range.startRow+1,a=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>r>e.startRow&&r<=e.endRow));if(a.length){let e=[],o=[];return a.forEach(a=>{let s=L.deepClone(a),c=!1;s.ranges.forEach(e=>{r>e.startRow&&r<=e.endRow&&(e.endRow+=i,c=!0)}),c&&(e.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:s,ruleId:a.id}}),o.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:a,ruleId:a.id}}))}),{redos:e,undos:o}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(e,t,n){let r=e.toRange,i=r.startRow,a=r.endRow-r.startRow+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>i>e.startRow&&i<=e.endRow));if(o.length){let r=[],s=[];return o.forEach(o=>{let c=L.deepClone(o),l=e.fromRange.startRow,u=!1;c.ranges.forEach(e=>{i>e.startRow&&i<=e.endRow&&(l<e.startRow&&(e.startRow-=a,e.endRow-=a),e.endRow+=a,u=!0)}),u&&(r.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:c,ruleId:o.id}}),s.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:o.id}}))}),{redos:r,undos:s}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(e,t,n){let r=e.toRange,i=r.startColumn,a=r.endColumn-r.startColumn+1,o=this._selectionProtectionRuleModel.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>i>e.startColumn&&i<=e.endColumn));if(o.length){let r=[],s=[];return o.forEach(o=>{let c=L.deepClone(o),l=e.fromRange.startColumn,u=!1;c.ranges.forEach(e=>{i>e.startColumn&&i<=e.endColumn&&(l<e.startColumn&&(e.startColumn-=a,e.endColumn-=a),e.endColumn+=a,u=!0)}),u&&(r.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:c,ruleId:o.id}}),s.push({id:Zu.id,params:{unitId:t,subUnitId:n,rule:o,ruleId:o.id}}))}),{redos:r,undos:s}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(Jf.includes(e.id)){if(!e.params)return;let t=this._univerInstanceService.getCurrentUnitForType(R.UNIVER_SHEET);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let{sourceRange:r,targetRange:i}=e.params,a=r.startColumn===i.startColumn&&r.endColumn===i.endColumn,o=a?r.endRow-r.startRow+1:r.endColumn-r.startColumn+1,s=a?r.startRow:r.startColumn,c=a?i.startRow:i.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:i,endColumn:l}=e;I.intersects(e,r)||(a?s<t&&c>n?(t-=o,n-=o):s>n&&c<=t&&(t+=o,n+=o):s<i&&c>l?(i-=o,l-=o):s>l&&c<=i&&(i+=o,l+=o)),this._checkIsRightRange({startRow:t,endRow:n,startColumn:i,endColumn:l})&&(e.startColumn=i,e.endColumn=l,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:l,subUnitId:u}=e.params,d=e=>this.refRangeHandle(e,l,u);this._selectionProtectionRuleModel.getSubunitRuleList(l,u).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,d,l,u))}),this._selectionProtectionRenderModel.clear()}if(qf.includes(e.id)){let t=this._univerInstanceService.getUniverSheetInstance(e.params.unitId);if(!t)return;let n=t.getSheetBySheetId(e.params.subUnitId);if(!n)return;let r=e.params;if(!r)return;let{range:i}=r,a=e.id.includes(`row`),o=e.id.includes(`insert`),s=a?i.startRow:i.startColumn,c=a?i.endRow:i.endColumn,l=c-s+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),n.getSheetId()).forEach(e=>{e.ranges.forEach(e=>{let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;o?a?s<=t&&(t+=l,n+=l):s<=r&&(r+=l,i+=l):a?c<t&&(t-=l,n-=l):c<r&&(r-=l,i-=l),this._checkIsRightRange({startRow:t,endRow:n,startColumn:r,endColumn:i})&&(e.startColumn=r,e.endColumn=i,e.startRow=t,e.endRow=n)})}),this.disposableCollection.dispose();let{unitId:u,subUnitId:d}=e.params,f=e=>this.refRangeHandle(e,u,d);this._selectionProtectionRuleModel.getSubunitRuleList(u,d).reduce((e,t)=>[...e,...t.ranges],[]).forEach(e=>{this.disposableCollection.add(this._refRangeService.registerRefRange(e,f,u,d))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(e){return e.startRow<=e.endRow&&e.startColumn<=e.endColumn}_initReBuildCache(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(qf.includes(e.id)||Jf.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===Cu.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:Li.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,ruleIds:i}}),t.push({id:zi.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,name:``,rules:a}}))}return{redos:n,undos:t,preRedos:r,preUndos:i}}})}};Yf=Jt([G(0,j(Fi)),G(1,j(A)),G(2,C),G(3,j(Vs)),G(4,j(Pf)),G(5,j(Ff)),G(6,j(K)),G(7,j(Fi))],Yf);let Xf=class extends h{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`:Md().forEach(t=>{let n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break;case`delete`:Md().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&&Md().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:[mt.UNIVER_SHEET],onLoad:(e,t)=>{let n=this._selectionProtectionRuleModel.toObject();n[e]=t,this._selectionProtectionRuleModel.fromObject(n);let r=[];Object.keys(t).forEach(n=>{let i=t[n];this._selectionProtectionRuleModel.getSubunitRuleList(e,n).forEach(t=>{r.push({objectID:t.permissionId,unitID:e,objectType:V.SelectRange,actions:Nd})}),i.forEach(t=>{Md().forEach(r=>{let i=new r(e,n,t.permissionId);i.value=!1,this._permissionService.addPermissionPoint(i)})}),this._selectionProtectionCache.reBuildCache(e,n)})},onUnLoad:e=>{this._selectionProtectionCache.deleteUnit(e)}}))}};Xf=Jt([G(0,j(Fi)),G(1,j(O)),G(2,j(ee)),G(3,j(Ff)),G(4,j(A))],Xf);let Zf=class extends h{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()}};Zf=Jt([G(0,j(vn))],Zf);let Qf=class extends de{constructor(e=nu,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{...r}=Le({},nu,this._config);this._configService.setConfig(eu,r),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(te,!0),(r=this._config)!=null&&r.autoHeightForMergedCells&&this._configService.setConfig(e,!0)}_initDependencies(){var e;let t=[[wu],[ru],[Y],[Vs],[jf],[$d,{useClass:Kf}],[K],[Zf],[Jo],[Bf],[Xs],[Hf],[Ef],[Nf],[kf],[Bd],[mc],[kd],[Uf],[Mf],[Af],[vn],[Pf],[Fi],[Ff],[Yf],[Xf],[Wf,{useClass:Gf,deps:[Y]}],[Kl,{useClass:Gl}],[Cf]];(e=this._config)!=null&&e.notExecuteFormula||t.push([Vf]),Ge(this._injector,ze(t,this._config.override)),Qe(this._injector,[[K],[Xf],[Wf],[Mf],[kf]])}onStarting(){var e;Qe(this._injector,[[Bf],[Xs],[jf],[Bd],[Uf],[Jo],[Cf]]),(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations||this._injector.add([Rf])}onRendered(){Qe(this._injector,[[$d]])}onReady(){Qe(this._injector,[[Rf],[Vf],[Ef],[Nf],[vn],[Hf],[Pf],[Yf],[Vs],[Af]])}};W(Qf,`pluginName`,`SHEET_PLUGIN`),W(Qf,`packageName`,If),W(Qf,`version`,Lf),W(Qf,`type`,R.UNIVER_SHEET),Qf=Jt([f(Ct),G(1,j(ne)),G(2,w)],Qf);const $f={WorkbookCommentPermission:ha,WorkbookCopyPermission:ga,WorkbookCreateProtectPermission:va,WorkbookCreateSheetPermission:ya,WorkbookDeleteSheetPermission:Sa,WorkbookDuplicatePermission:Ca,WorkbookEditablePermission:wa,WorkbookExportPermission:Ta,WorkbookHideSheetPermission:Ea,WorkbookHistoryPermission:Da,WorkbookManageCollaboratorPermission:Aa,WorkbookMoveSheetPermission:ja,WorkbookPrintPermission:Ma,WorkbookRecoverHistoryPermission:Na,WorkbookRenameSheetPermission:Pa,WorkbookSharePermission:Fa,WorkbookViewHistoryPermission:La,WorkbookViewPermission:Ia,WorksheetCopyPermission:Ra,WorksheetDeleteColumnPermission:za,WorksheetDeleteProtectionPermission:Ba,WorksheetDeleteRowPermission:Va,WorksheetEditExtraObjectPermission:Ua,WorksheetEditPermission:Ha,WorksheetFilterPermission:Wa,WorksheetInsertColumnPermission:Ga,WorksheetInsertHyperlinkPermission:Ka,WorksheetInsertRowPermission:qa,WorksheetManageCollaboratorPermission:Ja,WorksheetPivotTablePermission:Ya,WorksheetSetCellStylePermission:Qa,WorksheetSetCellValuePermission:$a,WorksheetSetColumnStylePermission:eo,WorksheetSetRowStylePermission:to,WorksheetSortPermission:no,WorksheetViewPermission:ro,RangeProtectionPermissionEditPoint:pa,RangeProtectionPermissionViewPoint:ma},ep=(e,t,n,r)=>{let i=e.get(O),a=e.get(Fi),o=i.getPermissionPoint(new wa(t).id);if(!(o!=null&&o.value))return!1;let s=i.getPermissionPoint(new Ha(t,n).id);if(!(s!=null&&s.value))return!1;let c=a.getSubunitRuleList(t,n).filter(e=>e.ranges.some(e=>r.some(t=>I.intersects(e,t))));return c.length?c.every(e=>{let r=e.permissionId,a=i.getPermissionPoint(new pa(t,n,r).id);return!!(a!=null&&a.value)}):!0},tp=(e,t,n,r=1,i=!0,a=!0)=>{let{startRow:o,endRow:s}=F.transformRange(e,t),c=n.startRow-r,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;for(;!t.getRowVisible(c)||!u;)c--,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;if(c>=o)return{...n,startRow:c,endRow:c};if(a)return rp(e,t,{...n,startRow:s,endRow:s},r,i,!1)},np=(e,t,n,r=1,i=!0,a=!0)=>{let{startRow:o,endRow:s}=F.transformRange(e,t),c=n.endRow+r,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;for(;!t.getRowVisible(c)||!u;)c++,l=t.getMergedCell(c,n.startColumn),u=!l||l.startRow===c&&l.startColumn===n.startColumn;if(c<=s)return{...n,startRow:c,endRow:c};if(a)return ip(e,t,{...n,startRow:o,endRow:o},r,i,!1)},rp=(e,t,n,r=1,i=!0,a=!0)=>{let{startColumn:o,endColumn:s}=F.transformRange(e,t),c=n.startColumn-r,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;for(;!t.getColVisible(c)||!u;)c--,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;if(c>=o)return{...n,startColumn:c,endColumn:c};if(a)return tp(e,t,{...n,startColumn:s,endColumn:s},r,i,!1)},ip=(e,t,n,r=1,i=!0,a=!0)=>{let{startColumn:o,endColumn:s}=F.transformRange(e,t),c=n.endColumn+r,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;for(;!t.getColVisible(c)||!u;)c++,l=t.getMergedCell(n.startRow,c),u=!l||l.startRow===n.startRow&&l.startColumn===c;if(c<=s)return{...n,endColumn:c,startColumn:c};if(a)return np(e,t,{...n,startColumn:o,endColumn:o},r,i,!1)};function ap(e,t,n){let r=null;return n.getMatrixWithMergedCells(e,t,e,t).forValue((e,t,n)=>(r={actualRow:e,actualColumn:t,startRow:e,startColumn:t,isMerged:n.rowSpan!==void 0||n.colSpan!==void 0,isMergedMainCell:n.rowSpan!==void 0&&n.colSpan!==void 0,endRow:e+(n.rowSpan===void 0?0:n.rowSpan-1),endColumn:t+(n.colSpan===void 0?0:n.colSpan-1),rangeType:P.NORMAL},!1)),r||{actualColumn:t,actualRow:e,startRow:e,startColumn:t,endRow:e,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:P.NORMAL}}const op=(e,t,n,r,i=1)=>{switch(r){case m.UP:return tp(e,t,n,i);case m.DOWN:return np(e,t,n,i);case m.LEFT:return rp(e,t,n,i);case m.RIGHT:return ip(e,t,n,i)}},sp=(e,t,n)=>{let r,i=-1,a;for(let t=0;t<e.length;t++)if(e[t].primary){r=e[t],i=t,a=r.primary;break}if(i===-1)return null;let o=t===m.LEFT||t===m.UP,s=e[o?i-1>=0?i-1:e.length-1:i+1<e.length?i+1:0];if(!r||!a)return null;let c={...a},{startRow:l,startColumn:u,endRow:d,endColumn:f}=r.range,p=o?c.startRow===l&&c.startColumn===u:c.endRow===d&&c.endColumn===f,h=p&&o;if(!I.equals(r.range,c)){let e=p?s.range:op(r.range,n,c,t);if(!e)return null;let i=h?ap(e.endRow,e.endColumn,n):ap(e.startRow,e.startColumn,n);return{startRow:i.startRow,startColumn:i.startColumn,endRow:i.endRow,endColumn:i.endColumn}}let g=h?ap(s.range.endRow,s.range.endColumn,n):ap(s.range.startRow,s.range.startColumn,n);return{startRow:g.startRow,startColumn:g.startColumn,endRow:g.endRow,endColumn:g.endColumn}};function cp(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 lp(e,t){let{range:n,primary:r,style:i}=e;return{rangeWithCoord:cp(t,n),primaryWithCoord:r&&up(t,r),style:i}}function up(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 dp(e,t,n,r){let{from:i,to:a}=n,{column:o,columnOffset:s,row:c,rowOffset:l}=i,{column:u,columnOffset:d,row:f,rowOffset:p}=a,m=cp(r,{startColumn:o,endColumn:o,startRow:c,endRow:c}),h=cp(r,{startColumn:u,endColumn:u,startRow:f,endRow:f}),{startX:g,startY:_}=m,{startX:v,startY:y}=h,b=gt(g+s,1),x=gt(_+l,1),S=gt(v+d-b,1),C=gt(y+p-x,1);return m.startX===h.endX&&(S=0),m.startY===h.endY&&(C=0),{unitId:e,subUnitId:t,left:b,top:x,width:S,height:C}}function fp(e,t,n,r,i,a){let{column:o,columnOffset:s,row:c,rowOffset:l}=n,{startX:u,startY:d}=cp(a,{startColumn:o,endColumn:o,startRow:c,endRow:c}),f=gt(u+s,1),p=gt(d+l,1),m=a.getCellIndexAndOffsetByPosition(f+r,p+i);return{unitId:e,subUnitId:t,sheetTransform:{from:{column:o,columnOffset:s,row:c,rowOffset:l},to:m},transform:{left:f,top:p,width:r,height:i}}}export{bc as AFFECT_LAYOUT_STYLES,Xt as AFTER_CELL_EDIT,$ as AUTO_FILL_APPLY_TYPE,yl as AUTO_FILL_DATA_TYPE,bl as AUTO_FILL_HOOK_TYPE,$s as AddMergeRedoSelectionsOperationFactory,Bt as AddMergeUndoMutationFactory,ec as AddMergeUndoSelectionsOperationFactory,Bi as AddRangeProtectionCommand,zi as AddRangeProtectionMutation,uf as AddRangeThemeMutation,lc as AddWorksheetMergeAllCommand,cc as AddWorksheetMergeCommand,dc as AddWorksheetMergeHorizontalCommand,U as AddWorksheetMergeMutation,uc as AddWorksheetMergeVerticalCommand,_c as AddWorksheetProtectionCommand,hc as AddWorksheetProtectionMutation,yc as AppendRowCommand,Ql as AutoClearContentCommand,ql as AutoFillCommand,Cf as AutoFillController,Il as AutoFillRules,Gl as AutoFillService,vl as AutoFillTools,Yt as BEFORE_CELL_EDIT,wu as BorderStyleManagerService,Kr as COMMAND_LISTENER_SKELETON_CHANGE,qr as COMMAND_LISTENER_VALUE_CHANGE,Yu as CancelFrozenCommand,pf as CancelMarkDirtyRowAutoHeightMutation,Ki as ClearSelectionAllCommand,$l as ClearSelectionContentCommand,qi as ClearSelectionFormatCommand,du as CopySheetCommand,iu as CopyWorksheetEndMutation,Ui as DISABLE_NORMAL_SELECTIONS,Ef as DefinedNameDataController,uo as DeleteRangeMoveLeftCommand,po as DeleteRangeMoveUpCommand,pu as DeleteRangeProtectionCommand,Li as DeleteRangeProtectionMutation,mu as DeleteWorksheetProtectionCommand,gc as DeleteWorksheetProtectionMutation,hu as DeleteWorksheetRangeThemeStyleCommand,xn as DeleteWorksheetRangeThemeStyleMutation,Sn as DeleteWorksheetRangeThemeStyleMutationFactory,hd as DeltaColumnWidthCommand,Jd as DeltaRowHeightCommand,Pi as EditStateEnum,Z as EffectRefRangId,df as EmptyMutation,Gf as ExclusiveRangeService,Ri as FactoryAddRangeProtectionMutation,Ii as FactoryDeleteRangeProtectionMutation,Qu as FactorySetRangeProtectionMutation,Kl as IAutoFillService,Wf as IExclusiveRangeService,Vt as INTERCEPTOR_POINT,$d as INumfmtService,ra as IRefSelectionsService,ko as InsertColAfterCommand,Oo as InsertColBeforeCommand,Do as InsertColByRangeCommand,Eo as InsertColCommand,En as InsertColMutation,Tn as InsertColMutationUndoFactory,gu as InsertDefinedNameCommand,Ao as InsertMultiColsLeftCommand,jo as InsertMultiColsRightCommand,Co as InsertMultiRowsAboveCommand,wo as InsertMultiRowsAfterCommand,ho as InsertRangeMoveDownCommand,_o as InsertRangeMoveRightCommand,So as InsertRowAfterCommand,xo as InsertRowBeforeCommand,bo as InsertRowByRangeCommand,yo as InsertRowCommand,wn as InsertRowMutation,Cn as InsertRowMutationUndoFactory,_u as InsertSheetCommand,ou as InsertSheetMutation,au as InsertSheetUndoMutationFactory,Ht as InterceptCellContentPriority,wf as MAX_CELL_PER_SHEET_KEY,Ys as MERGE_CELL_INTERCEPTOR_CHECK,ff as MarkDirtyRowAutoHeightMutation,Xs as MergeCellController,Ko as MoveColsCommand,jn as MoveColsMutation,An as MoveColsMutationUndoFactory,ca as MoveRangeCommand,Dn as MoveRangeMutation,Wo as MoveRowsCommand,kn as MoveRowsMutation,On as MoveRowsMutationUndoFactory,Kf as NumfmtService,Q as OperatorType,$f as PermissionPointsDefinitions,Gi as REF_SELECTIONS_ENABLED,di as RangeMergeUtil,Ff as RangeProtectionCache,Ad as RangeProtectionPermissionDeleteProtectionPoint,pa as RangeProtectionPermissionEditPoint,jd as RangeProtectionPermissionManageCollaPoint,ma as RangeProtectionPermissionViewPoint,Yf as RangeProtectionRefRangeService,Pf as RangeProtectionRenderModel,Fi as RangeProtectionRuleModel,Xf as RangeProtectionService,nn as RangeThemeStyle,Vs as RefRangeService,ia as RefSelectionsService,vu as RefillCommand,xu as RegisterWorksheetRangeThemeStyleCommand,yu as RegisterWorksheetRangeThemeStyleMutation,Lo as RemoveColByRangeCommand,Ro as RemoveColCommand,Fn as RemoveColMutation,Su as RemoveDefinedNameCommand,In as RemoveMergeUndoMutationFactory,nf as RemoveNumfmtMutation,mf as RemoveRangeThemeMutation,Po as RemoveRowByRangeCommand,Fo as RemoveRowCommand,Nn as RemoveRowMutation,Cu as RemoveSheetCommand,Bo as RemoveSheetMutation,zo as RemoveSheetUndoMutationFactory,tc as RemoveWorksheetMergeCommand,q as RemoveWorksheetMergeMutation,$o as ReorderRangeCommand,Rn as ReorderRangeMutation,Ln as ReorderRangeUndoMutationFactory,Mc as ResetBackgroundColorCommand,Ac as ResetTextColorCommand,Tf as SCOPE_WORKBOOK_VALUE_DEFINED_NAME,Wi as SELECTIONS_ENABLED,pi as SELECTION_CONTROL_BORDER_BUFFER_COLOR,fi as SELECTION_CONTROL_BORDER_BUFFER_WIDTH,eu as SHEETS_PLUGIN_CONFIG_KEY,gf as ScrollToCellOperation,oa as SelectRangeCommand,Vi as SelectionMoveType,jc as SetBackgroundColorCommand,Sc as SetBoldCommand,Lu as SetBorderBasicCommand,Iu as SetBorderColorCommand,Nu as SetBorderCommand,Pu as SetBorderPositionCommand,Fu as SetBorderStyleCommand,Ru as SetColDataCommand,Hn as SetColDataMutation,Vn as SetColDataMutationFactory,Vu as SetColHiddenCommand,Wn as SetColHiddenMutation,Kn as SetColVisibleMutation,gd as SetColWidthCommand,Gu as SetDefinedNameCommand,Dc as SetFontFamilyCommand,Oc as SetFontSizeCommand,Ju as SetFrozenCommand,qu as SetFrozenMutation,Ku as SetFrozenMutationFactory,Xu as SetGridlinesColorCommand,qn as SetGridlinesColorMutation,Pc as SetHorizontalTextAlignCommand,Cc as SetItalicCommand,tf as SetNumfmtMutation,Ec as SetOverlineCommand,ed as SetProtectionCommand,td as SetRangeCustomMetadataCommand,Zu as SetRangeProtectionMutation,hf as SetRangeThemeMutation,io as SetRangeValuesCommand,J as SetRangeValuesMutation,vr as SetRangeValuesUndoMutationFactory,nd as SetRowDataCommand,Cr as SetRowDataMutation,Sr as SetRowDataMutationFactory,Yd as SetRowHeightCommand,ad as SetRowHiddenCommand,Dr as SetRowHiddenMutation,Tr as SetRowVisibleMutation,Bu as SetSelectedColsVisibleCommand,id as SetSelectedRowsVisibleCommand,X as SetSelectionsOperation,zu as SetSpecificColsVisibleCommand,rd as SetSpecificRowsVisibleCommand,Tc as SetStrikeThroughCommand,xc as SetStyleCommand,dd as SetTabColorCommand,ud as SetTabColorMutation,kc as SetTextColorCommand,Ic as SetTextRotationCommand,Fc as SetTextWrapCommand,wc as SetUnderlineCommand,Nc as SetVerticalTextAlignCommand,pd as SetWorkbookNameCommand,fd as SetWorkbookNameMutation,md as SetWorksheetActivateCommand,Ur as SetWorksheetActiveOperation,kr as SetWorksheetColWidthMutation,Or as SetWorksheetColWidthMutationFactory,vd as SetWorksheetColumnCountCommand,jr as SetWorksheetColumnCountMutation,Ar as SetWorksheetColumnCountUndoMutationFactory,yd as SetWorksheetDefaultStyleCommand,Mr as SetWorksheetDefaultStyleMutation,Nr as SetWorksheetDefaultStyleMutationFactory,Sd as SetWorksheetHideCommand,xd as SetWorksheetHideMutation,Td as SetWorksheetNameCommand,wd as SetWorksheetNameMutation,Od as SetWorksheetOrderCommand,Dd as SetWorksheetOrderMutation,Hd as SetWorksheetPermissionPointsCommand,Vd as SetWorksheetPermissionPointsMutation,Ud as SetWorksheetProtectionCommand,$u as SetWorksheetProtectionMutation,vc as SetWorksheetRangeThemeStyleCommand,yn as SetWorksheetRangeThemeStyleMutation,bn as SetWorksheetRangeThemeStyleMutationFactory,Kd as SetWorksheetRightToLeftCommand,Gd as SetWorksheetRightToLeftMutation,Vr as SetWorksheetRowAutoHeightMutation,Rr as SetWorksheetRowAutoHeightMutationFactory,qd as SetWorksheetRowCountCommand,Fr as SetWorksheetRowCountMutation,Pr as SetWorksheetRowCountUndoMutationFactory,zr as SetWorksheetRowHeightMutation,Ir as SetWorksheetRowHeightMutationFactory,Xd as SetWorksheetRowIsAutoHeightCommand,Br as SetWorksheetRowIsAutoHeightMutation,Lr as SetWorksheetRowIsAutoHeightMutationFactory,Zd as SetWorksheetShowCommand,Xl as SheetCopyDownCommand,Zl as SheetCopyRightCommand,K as SheetInterceptorService,ru as SheetLazyExecuteScheduleService,Af as SheetPermissionCheckController,Mf as SheetPermissionInitController,vn as SheetRangeThemeModel,Zf as SheetRangeThemeService,Wr as SheetSkeletonChangeType,Jo as SheetSkeletonService,Gr as SheetValueChangeType,kf as SheetsFreezeSyncController,Y as SheetsSelectionsService,gi as SplitDelimiterEnum,Qd as SplitTextToColumnsCommand,of as TextToNumberCommand,sf as ToggleCellCheckboxCommand,cf as ToggleGridlinesCommand,Hr as ToggleGridlinesMutation,ft as UnitAction,pt as UnitObject,Qf as UniverSheetsPlugin,lf as UnregisterWorksheetRangeThemeStyleCommand,bu as UnregisterWorksheetRangeThemeStyleMutation,Zt as VALIDATE_CELL,Ni as ViewStateEnum,ha as WorkbookCommentPermission,ga as WorkbookCopyPermission,_a as WorkbookCopySheetPermission,va as WorkbookCreateProtectPermission,ya as WorkbookCreateSheetPermission,ba as WorkbookDeleteColumnPermission,xa as WorkbookDeleteRowPermission,Sa as WorkbookDeleteSheetPermission,Ca as WorkbookDuplicatePermission,wa as WorkbookEditablePermission,Ta as WorkbookExportPermission,Ea as WorkbookHideSheetPermission,Da as WorkbookHistoryPermission,Oa as WorkbookInsertColumnPermission,ka as WorkbookInsertRowPermission,Aa as WorkbookManageCollaboratorPermission,ja as WorkbookMoveSheetPermission,jf as WorkbookPermissionService,Ma as WorkbookPrintPermission,Na as WorkbookRecoverHistoryPermission,Pa as WorkbookRenameSheetPermission,Hi as WorkbookSelectionModel,Fa as WorkbookSharePermission,La as WorkbookViewHistoryPermission,Ia as WorkbookViewPermission,Ra as WorksheetCopyPermission,za as WorksheetDeleteColumnPermission,Ba as WorksheetDeleteProtectionPermission,Va as WorksheetDeleteRowPermission,Ua as WorksheetEditExtraObjectPermission,Ha as WorksheetEditPermission,Wa as WorksheetFilterPermission,Ga as WorksheetInsertColumnPermission,Ka as WorksheetInsertHyperlinkPermission,qa as WorksheetInsertRowPermission,Ja as WorksheetManageCollaboratorPermission,Bd as WorksheetPermissionService,Ya as WorksheetPivotTablePermission,kd as WorksheetProtectionPointModel,mc as WorksheetProtectionRuleModel,Xa as WorksheetSelectProtectedCellsPermission,Za as WorksheetSelectUnProtectedCellsPermission,Qa as WorksheetSetCellStylePermission,$a as WorksheetSetCellValuePermission,eo as WorksheetSetColumnStylePermission,to as WorksheetSetRowStylePermission,no as WorksheetSortPermission,ro as WorksheetViewPermission,Nf as ZebraCrossingCacheController,fc as addMergeCellsUtil,Ps as adjustRangeOnMutation,Ji as alignToMergedCellsBorders,up as attachPrimaryWithCoord,cp as attachRangeWithCoord,lp as attachSelectionWithCoord,Nd as baseProtectionActions,Lt as checkCellValueType,ep as checkRangesEditablePermission,fp as convertPositionCellToSheetOverGrid,dp as convertPositionSheetOverGridToAbsolute,hi as convertPrimaryWithCoordToPrimary,mi as convertSelectionDataToRange,na as copyRangeStyles,Zo as countCells,oi as createTopMatrixFromMatrix,ai as createTopMatrixFromRanges,tu as defaultLargeSheetOperationConfig,Id as defaultWorkbookPermissionPoints,zd as defaultWorksheetPermissionPoint,Ai as discreteRangeToRange,ii as expandToContinuousRange,rf as factoryRemoveNumfmtUndoMutation,ef as factorySetNumfmtUndoMutation,li as findAllRectangle,Ei as findFirstNonEmptyCell,Qi as followSelectionOperation,Di as generateNullCell,Oi as generateNullCellValue,Js as getAddMergeMutationRangeByType,Md as getAllRangePermissionPoint,Fd as getAllWorkbookPermissionPoint,Ld as getAllWorksheetPermissionPoint,Rd as getAllWorksheetPermissionPointByPointPanel,Yi as getCellAtRowCol,sc as getClearContentMutationParamForRange,oc as getClearContentMutationParamsForRanges,Pd as getDefaultRangePermission,ao as getInsertRangeMutations,ua as getMoveRangeCommandMutations,da as getMoveRangeUndoRedoMutations,sp as getNextPrimaryCell,Zi as getPrimaryForRange,oo as getRemoveRangeMutations,aa as getSelectionsService,Ls as getSeparateEffectedRangesOnCommand,H as getSheetCommandTarget,Rt as getSheetCommandTargetWorkbook,zt as getSheetMutationTarget,Yr as getSkeletonChangedEffectedRange,Jr as getValueChangedEffectedRange,Mi as getVisibleRanges,ms as handleBaseInsertRange,ns as handleBaseMoveRowsCols,us as handleBaseRemoveRange,Ms as handleCommonDefaultRangeChangeWithEffectRefCommands,Ns as handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests,As as handleDefaultRangeChangeWithEffectRefCommands,js as handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests,Ss as handleDeleteRangeMoveLeft,ws as handleDeleteRangeMoveUp,co as handleDeleteRangeMutation,ds as handleIRemoveCol,fs as handleIRemoveRow,_s as handleInsertCol,vs as handleInsertRangeMoveDown,bs as handleInsertRangeMoveRight,so as handleInsertRangeMutation,gs as handleInsertRow,os as handleMoveCols,cs as handleMoveRange,rs as handleMoveRows,$i as isSingleCellSelection,ui as rangeMerge,ji as rangeToDiscreteRange,ts as rotateRange,ks as runRefRangeMutations,Xi as setEndForRange,Si as splitRangeText,af as transformCellsToRange};