@univerjs/sheets 0.1.15 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,2 +1,3 @@
1
- "use strict";var xr=Object.defineProperty;var Lr=(o,e,t)=>e in o?xr(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var C=(o,e,t)=>(Lr(o,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),V=require("@wendellhu/redi"),se=require("@univerjs/engine-formula"),Vr=require("@univerjs/rpc"),ge=require("rxjs"),et=require("rxjs/operators");var $r=Object.defineProperty,Br=Object.getOwnPropertyDescriptor,jr=(o,e,t,n)=>{for(var r=n>1?void 0:n?Br(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&$r(e,t,r),r},Fr=(o,e)=>(t,n)=>e(t,n,o);const X="normalSelectionPluginName";var $n=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))($n||{});exports.SelectionManagerService=class{constructor(e){C(this,"_selectionInfo",new Map);C(this,"_currentSelection",null);C(this,"_selectionMoveStart$",new ge.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new ge.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new ge.BehaviorSubject(null));C(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());C(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var t,n;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var n,r;if(this._currentSelection==null||this._currentSelection.pluginName===e)return;const t=this.getSelectionDatasByParam(this._currentSelection);this._currentSelection={pluginName:e,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(r=this._currentSelection)==null?void 0:r.sheetId},t!=null&&this.add([])}reset(){var e,t;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=X,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(t=>t.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,t=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),t===0?this._refreshStart(this._currentSelection):t===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const e=this.getSelections();return e==null?!1:e.some(({range:t},n)=>e.some(({range:r},i)=>n===i?!1:t.startRow<=r.endRow&&t.endRow>=r.startRow&&t.startColumn<=r.endColumn&&t.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:t,unitId:n,sheetId:r}=e;return(a=(i=this._selectionInfo.get(t))==null?void 0:i.get(n))==null?void 0:a.get(r)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[0]}_getLastByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[t.length-1]}_addByParam(e,t=!0){const{pluginName:n,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const c=this._selectionInfo.get(n);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(i))u.set(i,[...a]);else{let l=u.get(i);l==null&&(l=[],u.set(i,l)),l.push(...a)}t&&this._refresh({pluginName:n,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:t,unitId:n,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const a=this._selectionInfo.get(t);a.has(n)||a.set(n,new Map);const c=a.get(n);if(!c.has(r))c.set(r,i);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...i)}}_clearByParam(e){const t=this._getSelectionDatas(e);t==null||t.splice(0),this._refresh(e)}_removeByParam(e,t){const n=this._getSelectionDatas(t);n==null||n.splice(e,1),this._refresh(t)}};exports.SelectionManagerService=jr([Fr(0,V.Inject(s.ThemeService))],exports.SelectionManagerService);const Hr=s.createInterceptorKey("CELL_CONTENT"),Gr=s.createInterceptorKey("ROW_FILTERED"),St={CELL_CONTENT:Hr,ROW_FILTERED:Gr};var qr=Object.defineProperty,zr=Object.getOwnPropertyDescriptor,Yr=(o,e,t,n)=>{for(var r=n>1?void 0:n?zr(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&qr(e,t,r),r},Kr=(o,e)=>(t,n)=>e(t,n,o);exports.SheetInterceptorService=class extends s.Disposable{constructor(t){super();C(this,"_interceptorsByName",new Map);C(this,"_commandInterceptors",[]);C(this,"_workbookDisposables",new Map);C(this,"_worksheetDisposables",new Map);this._univerInstanceService=t,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{this._interceptWorkbook(n)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>this._disposeWorkbookInterceptor(n))),this.intercept(St.CELL_CONTENT,{priority:-1,handler(n,r){const i=r.worksheet.getCellRaw(r.row,r.col);return n?{...i,...n}:i}})}dispose(){super.dispose(),this._workbookDisposables.forEach(t=>t.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(t){if(this._commandInterceptors.includes(t))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(t),this._commandInterceptors.sort((n,r)=>{var i,a;return((i=r.priority)!=null?i:0)-((a=n.priority)!=null?a:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,t)))}onCommandExecute(t){const n=this._commandInterceptors.map(r=>r.getMutations(t));return{preUndos:n.map(r=>{var i;return(i=r.preUndos)!=null?i:[]}).flat(),undos:n.map(r=>r.undos).flat(),preRedos:n.map(r=>{var i;return(i=r.preRedos)!=null?i:[]}).flat(),redos:n.map(r=>r.redos).flat()}}intercept(t,n){const r=t;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(n),this._interceptorsByName.set(r,i.sort((a,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=a.priority)!=null?l:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(t){const n=t,r=this._interceptorsByName.get(n);return s.composeInterceptors(r||[])}_interceptWorkbook(t){const n=new s.DisposableCollection,r=t.getUnitId(),i=this,a=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection;i._worksheetDisposables.set(Tn(r,c),d),d.add(l.registerCellContentInterceptor({getCell(m,g){return i.fetchThroughInterceptors(St.CELL_CONTENT)(c.getCellRaw(m,g),{unitId:r,subUnitId:u,row:m,col:g,worksheet:c,workbook:t})}})),d.add(l.registerRowFilteredInterceptor({getRowFiltered(m){return!!i.fetchThroughInterceptors(St.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:t,worksheet:c})}}))})};t.getSheets().forEach(c=>a(c)),n.add(s.toDisposable(t.sheetCreated$.subscribe(c=>a(c)))),n.add(s.toDisposable(()=>t.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),n.add(s.toDisposable(t.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,n)}_disposeWorkbookInterceptor(t){const n=t.getUnitId(),r=this._workbookDisposables.get(n);r&&(r.dispose(),this._workbookDisposables.delete(n))}_disposeSheetInterceptor(t,n){const r=Tn(t,n),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Yr([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Kr(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Tn(o,e){return`${o}|${e.getSheetId()}`}const Ue=(o,e)=>{const{unitId:t,subUnitId:n,cellValue:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(n);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=a.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,R,h)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,R))||{},v=l.getStyleByCell(S);let p=l.getStyleByCell(h);p=Zr(v,p),S.s=p,d.setValue(g,R,Jr(S))}),{...e,options:{},cellValue:d.getMatrix()}};function Jr(o){return o==null?null:(o.f===void 0&&(o.f=null),o.si===void 0&&(o.si=null),o.p===void 0&&(o.p=null),o.v===void 0&&(o.v=null),o.t===void 0&&(o.t=null),o.s===void 0&&(o.s=null),o.custom===void 0&&(o.custom=null),o)}const z={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(o,e)=>{const{cellValue:t,subUnitId:n,unitId:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(n);if(!c)return!1;const u=c.getCellMatrix(),l=a.getStyles();return new s.ObjectMatrix(t).forValue((m,g,R)=>{if(!R)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},S=R.t?R.t:R.v!==void 0?En(R.v,R.t):En(h.v,h.t);if(R.f!==void 0&&(h.f=R.f),R.si!==void 0&&(h.si=R.si),R.p!==void 0&&(h.p=R.p),R.v!==void 0&&(h.v=S===s.CellValueType.NUMBER?Number(R.v):S===s.CellValueType.BOOLEAN?Xr(R.v)?1:0:R.v),h.v!==void 0&&(h.t=S),R.s!==void 0){const v=l.getStyleByCell(h);v==null&&delete h.s,typeof R.s=="string"&&(R.s=l.get(R.s));const p=Ct(v,R.s?R.s:null);p&&s.Tools.removeNull(p),s.Tools.isEmptyObject(p)?delete h.s:h.s=l.setValue(p),!R.p&&h.p&&ts(h.p,R.s?R.s:null)}R.custom!==void 0&&(h.custom=R.custom),u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function En(o,e){return o===null?null:typeof o=="string"?s.isSafeNumeric(o)?(+o==0||+o==1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(o)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof o=="number"?(o===0||o===1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof o=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function Xr(o){if(typeof o=="string"){if(o.toUpperCase()==="TRUE")return!0;if(o.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(o)){if(Number(o)===0)return!1;if(Number(o)===1)return!0}}if(typeof o=="number"){if(o===0)return!1;if(o===1)return!0}return typeof o=="boolean"?o:null}function Zr(o,e){return Qr(o,e)}function Qr(o,e){if(!e||!Object.keys(e).length)return o;const t=o||{};for(const n in e)n==="bd"?t[n]=es(t[n]||{},e[n]):n in t||(t[n]=null);return t}function es(o,e){if(!e||!Object.keys(e).length)return o;for(const t in e)t in o||(o[t]=null);return o}function Ct(o,e,t=!1){if(e===null)return e;if(e===void 0)return o;const n=s.Tools.deepClone(o)||{};if(n){for(const r in e)t&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in n&&r==="bd"?n[r]=Object.assign(n[r],e[r]):n[r]=e[r]);return"cl"in n&&("ul"in n&&n.ul&&(n.ul.cl=n.cl),"ol"in n&&n.ol&&(n.ol.cl=n.cl),"st"in n&&n.st&&(n.st.cl=n.cl)),n}}function Bn(o,e){return o.some(t=>t.startIndex===e)?Bn(o,e+1):e}function ts(o,e){var a;if(o.body==null)return;Array.isArray(o.body.textRuns)||(o.body.textRuns=[]);let t=0;const n=[],r=((a=o.body)==null?void 0:a.paragraphs)||[];for(const c of o.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(t<u){const g={st:t,ed:u},R=Ct({},e,!0);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)||(g.ts=R),n.push(g)}const m=Ct(d,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,n.push(c),t=Bn(r,l)}const i=o.body.dataStream.endsWith(`\r
2
- `)?o.body.dataStream.length-2:o.body.dataStream.length;if(t<i){const c={st:t,ed:i},u=Ct({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),n.push(c)}o.body.textRuns=s.normalizeTextRuns(n)}const bt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async o=>{const e=o.get(s.IUniverInstanceService),t=o.get(s.ICommandService),n=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],R={subUnitId:l,unitId:c,cellValue:ns(d)},h=Ue(o,R);m.push({id:z.id,params:R}),g.push({id:z.id,params:h});const S=i.onCommandExecute({id:bt.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function ns(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.clone()}const qt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async o=>{const e=o.get(s.IUniverInstanceService),t=o.get(s.ICommandService),n=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:os(d)},g=Ue(o,m),R=i.onCommandExecute({id:qt.id}),h=[{id:z.id,params:m},...R.redos],S=[...R.undos,{id:z.id,params:g}];return s.sequenceExecute(h,t).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:h}),!0):!1}};function os(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),e.clone()}const Ut={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async o=>{const e=o.get(s.IUniverInstanceService),t=o.get(s.ICommandService),n=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=n.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],R={subUnitId:l,unitId:c,cellValue:rs(d)},h=Ue(o,R);m.push({id:z.id,params:R}),g.push({id:z.id,params:h});const S=i.onCommandExecute({id:Ut.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function rs(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{s:null})}),e.clone()}const zt=(o,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),De={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService),{sheet:n,index:r,unitId:i}=e,a=t.getUniverSheetInstance(i);return a?a.addWorksheet(n.id,r,n):!1}};function jn(o,e){const{unitId:t}=e,n=t?o.getUniverSheetInstance(t):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return n?{workbook:n,unitId:n.getUnitId()}:null}function j(o,e={}){const{unitId:t,subUnitId:n}=e,r=t?o.getUniverSheetInstance(t):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const i=n?r.getSheetBySheetId(n):r.getActiveSheet();return i?{worksheet:i,workbook:r,unitId:r.getUnitId(),subUnitId:i.getSheetId()}:null}function Pt(o,e){const{unitId:t,subUnitId:n}=e,r=o.getUniverSheetInstance(t);if(!r)return null;const i=r.getSheetBySheetId(n);return i?{worksheet:i,workbook:r}:null}const Fn=(o,e)=>{const t=o.get(s.IUniverInstanceService),{subUnitId:n,unitId:r}=e,i=Pt(t,e);if(!i)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:a,worksheet:c}=i,u=c.getConfig();return{index:a.getConfig().sheetOrder.findIndex(m=>m===n),sheet:u,unitId:r}},Je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService),{subUnitId:n,unitId:r}=e,i=t.getUniverSheetInstance(r);return i?i.removeSheet(n):!1}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.LocaleService),a=j(r,e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:l}=a,d=s.Tools.deepClone(u.getConfig());d.name+=i.t("sheets.tabs.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},R=zt(o,g);return t.syncExecuteCommand(De.id,g)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:Je.id,params:R}],redoMutations:[{id:De.id,params:g}]}),!0):!1}},Ae={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(o,e)=>{const{from:t,to:n}=e;if(!t||!n)return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getSheetBySheetId(e.from.subUnitId),c=i.getSheetBySheetId(e.to.subUnitId);if(!a||!c)return!1;const u=a.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(t.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(n.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(o,e)=>{const t=o.get(exports.SelectionManagerService);if(!e)return!1;const{selections:n,type:r}=e;return t.replace(n,r),!0}};function rt(o,e,t=!0){const n=e.getMatrixWithMergedCells(...s.selectionToArray(o)),r=[];if(n.forValue((a,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(o,l)||r.push(l)}}),r.length===0)return o;const i=s.Rectangle.union(o,...r);return t?rt(i,e,t):i}function ss(o,e,t){let n=null;return t.getMatrixWithMergedCells(o,e,o,e).forValue((i,a,c)=>(n={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:i+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:a+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),n||{actualColumn:e,actualRow:o,startRow:o,startColumn:e,endRow:o,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function is(o,e,t){const{startRow:n,startColumn:r,endRow:i,endColumn:a}=o;return Number.isNaN(n)&&(o.startRow=0),Number.isNaN(i)&&(o.endRow=e-1),Number.isNaN(r)&&(o.startColumn=0),Number.isNaN(a)&&(o.endColumn=t-1),o}function ae(o,e){const t=Number.isNaN(o.startRow)?0:o.startRow,n=Number.isNaN(o.startColumn)?0:o.startColumn,r=e.getMergedCell(t,n);return r?{...r,actualRow:t,actualColumn:n,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:t,startColumn:n,endRow:o.startRow,endColumn:o.startColumn,actualRow:t,actualColumn:n,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Pe=(o,e,t)=>({id:K.id,params:{unitId:e.getUnitId(),subUnitId:t.getSheetId(),pluginName:X,selections:[{range:o,primary:ae(o,t)}]}});function as(o){if(!o)return!1;const{range:e,primary:t}=o;return s.Rectangle.equals(e,t)}function cs(o){function e(t,n){function r(i){for(let a=i.startRow;a<=i.endRow;a++)if(!o.getRowFiltered(a))for(let c=i.startColumn;c<=i.endColumn;c++)n(a,c,i)}r(t)}return{forOperableEach:e}}const Gn="sheet.command.move-range",Tt={type:s.CommandType.COMMAND,id:Gn,handler:(o,e)=>{var p,I;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.ErrorService),a=o.get(s.LocaleService),c=j(r);if(!c)return!1;const{worksheet:u,subUnitId:l,unitId:d}=c,m=Et(o,{unitId:d,subUnitId:l,range:e.fromRange},{unitId:d,subUnitId:l,range:e.toRange});if(m===null)return i.emit(a.t("sheets.info.acrossMergedCell")),!1;const R=o.get(exports.SheetInterceptorService).onCommandExecute({id:Tt.id,params:{...e}}),h=[...(p=R.preRedos)!=null?p:[],...m.redos,...R.redos,{id:K.id,params:{unitId:d,subUnitId:l,pluginName:X,selections:[{range:e.toRange,primary:ae(e.toRange,u)}]}}],S=[...(I=R.preUndos)!=null?I:[],...m.undos,...R.undos,{id:K.id,params:{unitId:d,subUnitId:l,pluginName:X,selections:[{range:e.fromRange,primary:ae(e.fromRange,u)}]}}];return s.sequenceExecute(h,t).result?(n.pushUndoRedo({unitID:d,undoMutations:S,redoMutations:h}),!0):!1}};function Et(o,e,t,n=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:l,subUnitId:d}=t,g=o.get(s.IUniverInstanceService).getUniverSheetInstance(u),R=g==null?void 0:g.getSheetBySheetId(d),h=g==null?void 0:g.getSheetBySheetId(c),S=R==null?void 0:R.getCellMatrix(),v=h==null?void 0:h.getCellMatrix();if(R&&h&&S&&v){const p=rt(l,R,!1);if(!s.Rectangle.equals(l,p)&&!n)return null;const I=new s.ObjectMatrix,f=new s.ObjectMatrix;s.Range.foreach(a,(U,N)=>{I.setValue(U,N,v.getValue(U,N)),f.setValue(U,N,null)});const w=new s.ObjectMatrix;s.Range.foreach(l,(U,N)=>{w.setValue(U,N,S.getValue(U,N))});const M=new s.ObjectMatrix;s.Range.foreach(a,(U,N)=>{const D=s.cellToRange(U,N),F=s.Rectangle.getRelativeRange(D,a),B=s.Rectangle.getPositionRange(F,l);M.setValue(B.startRow,B.startColumn,v.getValue(U,N))});const y={from:{value:f.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u},P={from:{value:I.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:d},unitId:u};r.push({id:Ae.id,params:y}),i.push({id:Ae.id,params:P})}return{redos:r,undos:i}}var Mt=(o=>(o[o.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",o[o.UNIVER_DOC=1]="UNIVER_DOC",o[o.UNIVER_SHEET=2]="UNIVER_SHEET",o[o.UNIVER_SLIDE=3]="UNIVER_SLIDE",o[o.UNRECOGNIZED=-1]="UNRECOGNIZED",o))(Mt||{}),_=(o=>(o[o.View=0]="View",o[o.Edit=1]="Edit",o[o.ManageCollaborator=2]="ManageCollaborator",o[o.Print=3]="Print",o[o.Duplicate=4]="Duplicate",o[o.Comment=5]="Comment",o[o.Copy=6]="Copy",o[o.Share=7]="Share",o[o.Export=8]="Export",o[o.MoveWorksheet=9]="MoveWorksheet",o[o.DeleteWorksheet=10]="DeleteWorksheet",o[o.HideWorksheet=11]="HideWorksheet",o[o.RenameWorksheet=12]="RenameWorksheet",o[o.CreateWorksheet=13]="CreateWorksheet",o[o.SetWorksheetStyle=14]="SetWorksheetStyle",o[o.EditWorksheetCell=15]="EditWorksheetCell",o[o.InsertHyperlink=16]="InsertHyperlink",o[o.Sort=17]="Sort",o[o.Filter=18]="Filter",o[o.PivotTable=19]="PivotTable",o[o.FloatImg=20]="FloatImg",o[o.History=21]="History",o[o.RwHgtClWdt=22]="RwHgtClWdt",o[o.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",o[o.ViewFilter=24]="ViewFilter",o[o.MoveSheet=25]="MoveSheet",o[o.DeleteSheet=26]="DeleteSheet",o[o.HideSheet=27]="HideSheet",o[o.CopySheet=28]="CopySheet",o[o.RenameSheet=29]="RenameSheet",o[o.CreateSheet=30]="CreateSheet",o[o.SelectProtectedCells=31]="SelectProtectedCells",o[o.SelectUnProtectedCells=32]="SelectUnProtectedCells",o[o.SetCellStyle=33]="SetCellStyle",o[o.SetCellValue=34]="SetCellValue",o[o.SetRowStyle=35]="SetRowStyle",o[o.SetColumnStyle=36]="SetColumnStyle",o[o.InsertRow=37]="InsertRow",o[o.InsertColumn=38]="InsertColumn",o[o.DeleteRow=39]="DeleteRow",o[o.DeleteColumn=40]="DeleteColumn",o[o.EditExtraObject=41]="EditExtraObject",o[o.Delete=42]="Delete",o[o.UNRECOGNIZED=-1]="UNRECOGNIZED",o))(_||{}),O=(o=>(o[o.Unkonwn=0]="Unkonwn",o[o.Workbook=1]="Workbook",o[o.Worksheet=2]="Worksheet",o[o.SelectRange=3]="SelectRange",o[o.Document=4]="Document",o[o.Slide=5]="Slide",o[o.UNRECOGNIZED=-1]="UNRECOGNIZED",o))(O||{});class qn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Copy);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Copy}_${e}_${t}`}}class us{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectProtectedCells}_${e}_${t}`}}class ls{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectUnProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectUnProtectedCells}_${e}_${t}`}}class zn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellStyle}_${e}_${t}`}}class Yn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellValue);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellValue}_${e}_${t}`}}class Kn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.View);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.View}_${e}_${t}`}}class Jn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetRowStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetRowStyle}_${e}_${t}`}}class Xn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetColumnStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetColumnStyle}_${e}_${t}`}}class Zn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertRow}_${e}_${t}`}}class Qn{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertColumn}_${e}_${t}`}}class eo{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertHyperlink);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertHyperlink}_${e}_${t}`}}class to{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteRow}_${e}_${t}`}}class no{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteColumn}_${e}_${t}`}}class oo{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Sort);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Sort}_${e}_${t}`}}class ro{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Filter);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Filter}_${e}_${t}`}}class so{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.PivotTable);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.PivotTable}_${e}_${t}`}}class io{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.EditExtraObject);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.EditExtraObject}_${e}_${t}`}}class ds{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.ManageCollaborator);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.ManageCollaborator}_${e}_${t}`}}class Yt{constructor(e,t){C(this,"value",!0);C(this,"type",O.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Edit);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Edit}_${e}_${t}`}}class ao{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Comment}_${e}`}}class co{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Edit}_${e}`}}class uo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Duplicate}_${e}`}}class lo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Print}_${e}`}}class mo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Export}_${e}`}}class go{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.MoveSheet}_${e}`}}class ho{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.DeleteSheet}_${e}`}}class Ro{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.HideSheet}_${e}`}}class So{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.RenameSheet}_${e}`}}class Co{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CreateSheet}_${e}`}}class ms{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.History);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.History}_${e}`}}class vo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.View}_${e}`}}class fo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Share}_${e}`}}class po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Copy}_${e}`}}class Io{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"subType",_.CopySheet);C(this,"status",s.PermissionStatus.INIT);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CopySheet}_${e}`}}class Mo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",O.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.ManageCollaborator}_${e}`}}class wo{constructor(e,t,n){C(this,"type",O.SelectRange);C(this,"subType",_.Edit);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${O.SelectRange}.${_.Edit}.${n}`}}class yo{constructor(e,t,n){C(this,"type",O.SelectRange);C(this,"subType",_.View);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=n,this.id=`${O.SelectRange}.${_.View}.${n}`}}const st={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=o.get(s.IPermissionService),u=j(r,{subUnitId:e.subUnitId,unitId:e.unitId});if(!u)return!1;const{subUnitId:l,unitId:d}=u,{value:m,range:g}=e,R=g?[g]:i.getSelectionRanges();if(!R||!R.length||!c.getPermissionPoint(new Yt(d,l).id))return!1;const h=new s.ObjectMatrix;let S;if(s.Tools.isArray(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:N,endColumn:D}=R[y];for(let F=0;F<=N-P;F++)for(let B=0;B<=D-U;B++)h.setValue(F+P,B+U,m[F][B])}else if(s.isICellData(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:N,endColumn:D}=R[y];for(let F=P;F<=N;F++)for(let B=U;B<=D;B++)h.setValue(F,B,m)}else S=m;const v={subUnitId:l,unitId:d,cellValue:S!=null?S:h.getMatrix()},p=Ue(o,v),I=t.syncExecuteCommand(z.id,v),{undos:f,redos:w}=a.onCommandExecute({id:st.id,params:{...v,range:R}}),M=s.sequenceExecute([...w],t);return I&&M.result?(n.pushUndoRedo({unitID:d,undoMutations:[{id:z.id,params:p},...f],redoMutations:[{id:z.id,params:v},...w]}),!0):!1}};function Kt(o,e){const t=[],n=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c,cellValue:u={}}=e,l=o.get(s.IUniverInstanceService),d=o.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(i);if(g){const R=g.getCellMatrix(),h=R.getDataRange();if(a.startColumn<=h.endColumn||a.startRow<=h.endRow){let f,w;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,h.endRow);let P=0;for(let N=a.startRow;N<=y;N++){const D=R.getRow(N),F=D?s.getArrayLength(D)-1:0;P=Math.max(P,F)}f={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:P};const U=a.endColumn-a.startColumn+1;w={startRow:a.startRow,startColumn:f.startColumn+U,endRow:y,endColumn:f.endColumn+U}}else{const y=Math.min(a.endColumn,h.endColumn),P=h.endRow;f={startRow:a.startRow,startColumn:a.startColumn,endRow:P,endColumn:y};const U=a.endRow-a.startRow+1;w={startRow:f.startRow+U,startColumn:a.startColumn,endRow:f.endRow+U,endColumn:y}}const M=Et(o,{unitId:r,subUnitId:i,range:f},{unitId:r,subUnitId:i,range:w},!0);M&&(t.push(...M.redos),n.push(...M.undos))}if(Object.entries(u).length===0)for(let f=a.startRow;f<=a.endRow;f++){u[f]||(u[f]={});for(let w=a.startColumn;w<=a.endColumn;w++)u[f][w]=null}const S={subUnitId:i,unitId:r,cellValue:u},v=Ue(o,S),{undos:p,redos:I}=d.onCommandExecute({id:st.id,params:{...S,range:a}});t.push({id:z.id,params:S},...I),n.push({id:z.id,params:v},...p)}return{redo:t,undo:n}}function Jt(o,e){const t=[],n=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c}=e,u=o.get(s.IUniverInstanceService),l=o.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(i);if(m){const g=m.getCellMatrix(),R=g.getDataRange(),h={subUnitId:i,unitId:r,cellValue:Rs([a])},S=Ue(o,h),v=l.onCommandExecute({id:st.id,params:h});if(t.push({id:z.id,params:h},...v.redos),n.push(...v.undos,{id:z.id,params:S}),a.startColumn<=R.endColumn||a.startRow<=R.endRow){let p=null,I=null;if(c===s.Dimension.COLUMNS&&a.endColumn<R.endColumn){const f=Math.min(a.endRow,R.endRow);let w=0;for(let y=a.startRow;y<=f;y++){const P=g.getRow(y),U=P?s.getArrayLength(P)-1:0;w=Math.max(w,U)}p={startRow:a.startRow,startColumn:a.endColumn+1,endRow:f,endColumn:w};const M=a.endColumn-a.startColumn+1;I={startRow:a.startRow,startColumn:p.startColumn-M,endRow:f,endColumn:p.endColumn-M}}if(c===s.Dimension.ROWS&&a.endRow<R.endRow){const f=Math.min(a.endColumn,R.endColumn),w=R.endRow;p={startRow:a.endRow+1,startColumn:a.startColumn,endRow:w,endColumn:f};const M=a.endRow-a.startRow+1;I={startRow:p.startRow-M,startColumn:a.startColumn,endRow:p.endRow-M,endColumn:f}}if(p&&I){const f=Et(o,{unitId:r,subUnitId:i,range:p},{unitId:r,subUnitId:i,range:I},!0);f&&(t.push(...f.redos),n.push(...f.undos))}}}return{redo:t,undo:n}}function gs(o,e,t,n,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:l}=e;if(r===s.Dimension.ROWS){const d=c-a+1;for(let m=t;m>=a;m--)for(let g=u;g<=l;g++){const R=o.getValue(m,g);R==null?o.realDeleteValue(m+d,g):o.setValue(m+d,g,R)}for(let m=c;m>=a;m--)for(let g=u;g<=l;g++)i&&i[m]&&i[m][g]?o.setValue(m,g,i[m][g]):o.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=a;m<=c;m++)for(let g=n;g>=u;g--){const R=o.getValue(m,g);R==null?o.realDeleteValue(m,g+d):o.setValue(m,g+d,R)}for(let m=a;m<=c;m++)for(let g=l;g>=u;g--)i&&i[m]&&i[m][g]?o.setValue(m,g,i[m][g]):o.realDeleteValue(m,g)}}function hs(o,e,t,n,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=e,l=a-i+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=t;m++)for(let g=c;g<=u;g++){const R=o.getValue(m+l,g);R==null?o.realDeleteValue(m,g):o.setValue(m,g,R)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let g=c;g<=n;g++){const R=o.getValue(m,g+d);R==null?o.realDeleteValue(m,g):o.setValue(m,g,R)}}function Rs(o){const e=new s.ObjectMatrix;return o.forEach(t=>{const{startRow:n,startColumn:r,endRow:i,endColumn:a}=t;for(let c=n;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.getData()}const _o="sheet.command.delete-range-move-left",Nt={type:s.CommandType.COMMAND,id:_o,handler:async(o,e)=>{var w,M,y;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=j(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let g=e==null?void 0:e.range;if(g||(g=(w=i.getLast())==null?void 0:w.range),!g)return!1;const R={range:g,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},h=a.onCommandExecute({id:Nt.id,params:{range:g}}),{redo:S,undo:v}=Jt(o,R),p=[...(M=h.preRedos)!=null?M:[],...S],I=[...h.undos,...v];return p.push(...h.redos),p.push(Pe(g,l,u)),I.push(...(y=h.preUndos)!=null?y:[]),s.sequenceExecute(p,t).result?(n.pushUndoRedo({unitID:m,undoMutations:I.reverse(),redoMutations:p}),!0):!1}},bo="sheet.command.delete-range-move-up",kt={type:s.CommandType.COMMAND,id:bo,handler:async(o,e)=>{var w,M,y;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=j(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let g=e==null?void 0:e.range;if(g||(g=(w=i.getLast())==null?void 0:w.range),!g)return!1;const R={range:g,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},h=a.onCommandExecute({id:kt.id,params:{range:g}}),{redo:S,undo:v}=Jt(o,R),p=[...(M=h.preRedos)!=null?M:[],...S],I=[...h.undos,...v];return p.push(...h.redos),p.push(Pe(g,d,m)),I.push(...(y=h.preUndos)!=null?y:[]),s.sequenceExecute(p,t).result?(n.pushUndoRedo({unitID:u,undoMutations:I.reverse(),redoMutations:p}),!0):!1}},Xt=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},pe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(o,e)=>{var h;const{unitId:t,subUnitId:n,range:r,rowInfo:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(n);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let S=m;S<m+g;S++)i?s.insertMatrixArray(S,(h=i[S-r.startRow])!=null?h:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},Zt=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Ie={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(o,e)=>{var h;const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getColumnManager(),{range:a,colInfo:c}=e,l=i.getColumnData(),d=a.startColumn,m=a.endColumn-a.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const v={w:g,hd:0};c?s.insertMatrixArray(S,(h=c[S-a.startColumn])!=null?h:v,l):s.insertMatrixArray(S,v,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},Ss=(o,e)=>{const r=e.getRowManager().getRowData(),i={},a=o.range,c=s.sliceMatrixArray(a.startRow,a.endRow,r),u=s.concatMatrixArray(i,c);return{unitId:o.unitId,subUnitId:o.subUnitId,range:o.range,rowInfo:u}},Me={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getRowManager().getRowData();for(let d=i.startRow;d<=i.endRow;d++)r.getRowFiltered(d);const u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.getCellMatrix().removeRows(i.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Cs=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},l=e.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:m}},ve={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getColumnManager().getColumnData(),u=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(i.startColumn,u),!0}},vs="sheet.command.insert-range-move-down",Ot={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(o,e)=>{var B,b,oe;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=o.get(s.ErrorService),u=o.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=j(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:g,workbook:R}=l;let h=e==null?void 0:e.range;if(h||(h=(B=i.getLast())==null?void 0:B.range),!h)return!1;const S=[],v=[],p=g.getCellMatrix(),I=p.getDataRange(),w=p.getSlice(I.startRow,I.endRow,h.startColumn,h.endColumn).getDataRange().endRow,M=Math.max(w+(h.endRow-h.startRow+1)-I.endRow,0);if(M>0){const Z=h.startRow-1,Q=g.getRowHeight(Z),J={unitId:d,subUnitId:m,range:{startRow:I.endRow+1,endRow:I.endRow+M,startColumn:I.startColumn,endColumn:I.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};S.push({id:pe.id,params:J});const ne=Xt(o,J);v.push({id:Me.id,params:ne})}const y={};s.Range.foreach(h,(Z,Q)=>{const J=g.getCell(Z,Q);J&&(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:h,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:U,undo:N}=Kt(o,P);S.push(...U),v.push(...N);const D=a.onCommandExecute({id:Ot.id,params:{range:h}});return S.push(...D.redos),S.push(Pe(h,R,g)),v.push(...(b=D.preUndos)!=null?b:[]),S.unshift(...(oe=D.preRedos)!=null?oe:[]),v.unshift(...D.undos),s.sequenceExecute(S,t)?(n.pushUndoRedo({unitID:d,undoMutations:v.reverse(),redoMutations:S}),!0):!1}},Uo="sheet.command.insert-range-move-right",Dt={type:s.CommandType.COMMAND,id:Uo,handler:async(o,e)=>{var B,b,oe;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(exports.SheetInterceptorService),c=o.get(s.ErrorService),u=o.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=j(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:g,subUnitId:R}=l;let h=e==null?void 0:e.range;if(h||(h=(B=i.getLast())==null?void 0:B.range),!h)return!1;const S=[],v=[],p=m.getCellMatrix(),I=p.getDataRange(),w=p.getSlice(h.startRow,h.endRow,I.startColumn,I.endColumn).getDataRange().endColumn,M=Math.max(w+(h.endColumn-h.startColumn+1)-I.endColumn,0);if(M>0){const Z=h.startColumn-1,Q=m.getColumnWidth(Z),J={unitId:g,subUnitId:R,range:{startRow:I.startRow+1,endRow:I.endRow,startColumn:I.endColumn+1,endColumn:I.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};S.push({id:Ie.id,params:J});const ne=Zt(o,J);v.push({id:ve.id,params:ne})}const y={};s.Range.foreach(h,(Z,Q)=>{const J=m.getCell(Z,Q);!J||!J.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:h,subUnitId:R,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:U,undo:N}=Kt(o,P);S.push(...U),v.push(...N);const D=a.onCommandExecute({id:Dt.id,params:{range:h}});return S.push(...D.redos),S.push(Pe(h,d,m)),v.push(...(b=D.preUndos)!=null?b:[]),S.unshift(...(oe=D.preRedos)!=null?oe:[]),v.unshift(...D.undos),s.sequenceExecute(S,t).result?(n.pushUndoRedo({unitID:g,undoMutations:v.reverse(),redoMutations:S}),!0):!1}},Po="sheet.command.insert-row",Ve={type:s.CommandType.COMMAND,id:Po,handler:async(o,e)=>{var P,U,N,D;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),a=r.getUniverSheetInstance(e.unitId),c=a.getSheetBySheetId(e.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m,cellValue:g}=e,{startRow:R,endRow:h}=u,S=l===s.Direction.UP?R:R-1,v=c.getRowHeight(S),p={unitId:d,subUnitId:m,range:u,rowInfo:new Array(h-R+1).fill(void 0).map(()=>({h:v,hd:s.BooleanNumber.FALSE}))},I=Xt(o,p),f=[{id:pe.id,params:p}],w=[{id:Me.id,params:I}];g&&f.push({id:z.id,params:{unitId:d,subUnitId:m,cellValue:g}});const M=i.onCommandExecute({id:Ve.id,params:e});return f.unshift(...(P=M.preRedos)!=null?P:[]),f.push(...(U=M.redos)!=null?U:[]),f.push(Pe(u,a,c)),w.unshift(...(N=M.preUndos)!=null?N:[]),w.push(...(D=M.undos)!=null?D:[]),s.sequenceExecute(f,t).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:w,redoMutations:f}),!0):!1}},To={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var g;const t=(g=o.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(R=>R.range);let n;if((t==null?void 0:t.length)===1)n=t[0];else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endRow-n.startRow+1,d={};s.Range.foreach(n,(R,h)=>{const S=a.getCell(R,h);!S||!S.s||(d[R]||(d[R]={}),d[R][h]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:n.startRow,endRow:n.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:d};return o.get(s.ICommandService).executeCommand(Ve.id,m)}},Eo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async o=>{var m;const t=(m=o.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let n;if((t==null?void 0:t.length)===1)n=t[0];else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endRow-n.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:n.endRow+1,endRow:n.endRow+l,startColumn:0,endColumn:a.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW}};return o.get(s.ICommandService).executeCommand(Ve.id,d)}},No="sheet.command.insert-col",$e={type:s.CommandType.COMMAND,id:No,handler:async(o,e)=>{var P,U,N,D;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),{range:a,direction:c,subUnitId:u,unitId:l,cellValue:d}=e,{startColumn:m,endColumn:g}=e.range,R=r.getUniverSheetInstance(e.unitId),h=R.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?m:m-1,v=h.getColumnWidth(S),p={unitId:l,subUnitId:u,range:a,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:v,hd:s.BooleanNumber.FALSE}))},I=Zt(o,p),f=[{id:Ie.id,params:p}],w=[{id:ve.id,params:I}];d&&f.push({id:z.id,params:{unitId:l,subUnitId:u,cellValue:d}});const M=i.onCommandExecute({id:$e.id,params:e});return f.unshift(...(P=M.preRedos)!=null?P:[]),f.push(...(U=M.redos)!=null?U:[]),f.push(Pe(a,R,h)),w.unshift(...(N=M.preUndos)!=null?N:[]),w.push(...(D=M.undos)!=null?D:[]),s.sequenceExecute(f,t).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:w.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},ko={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async o=>{const t=o.get(exports.SelectionManagerService).getSelections();let n;if((t==null?void 0:t.length)===1)n=t[0].range;else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endColumn-n.startColumn+1,d={};s.Range.foreach(n,(g,R)=>{const h=a.getCell(g,R);!h||!h.s||(d[g]||(d[g]={}),d[g][R]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:n.startColumn,endColumn:n.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent(),rangeType:s.RANGE_TYPE.COLUMN},cellValue:d};return o.get(s.ICommandService).executeCommand($e.id,m)}},Oo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async o=>{const t=o.get(exports.SelectionManagerService).getSelections();let n;if((t==null?void 0:t.length)===1)n=t[0].range;else return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=n.endColumn-n.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:n.endColumn+1,endColumn:n.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return o.get(s.ICommandService).executeCommand($e.id,d)}},Do={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(o,e)=>{var v;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.LocaleService),a=jn(r,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:c,workbook:u}=a;let l=u.getSheets().length;const d=e==null?void 0:e.sheet,m=d==null?void 0:d.id,g=s.mergeWorksheetSnapshotWithDefault(d||{});e?(l=(v=e.index)!=null?v:l,g.id=m||s.Tools.generateRandomId(),g.name=(d==null?void 0:d.name)||u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`)):(g.id=s.Tools.generateRandomId(),g.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const R={index:l,sheet:g,unitId:c},h=zt(o,R);return t.syncExecuteCommand(De.id,R)?(n.pushUndoRedo({unitID:c,undoMutations:[{id:Je.id,params:h}],redoMutations:[{id:De.id,params:R}]}),!0):!1}};function Ao(o,e){const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:t,subUnitId:n,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:t,subUnitId:n,targetRange:s.Rectangle.clone(r),sourceRange:{...i,endRow:i.endRow-c,startRow:i.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(n);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=i.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function Wo(o,e){const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:t,subUnitId:n,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:t,subUnitId:n,targetRange:s.Rectangle.clone(r),sourceRange:{...i,startColumn:i.startColumn-c,endColumn:i.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,sourceRange:r,targetRange:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(n);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=i.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function fs(o,e){return e.getMergeData().some(t=>t.startRow<o&&o<=t.endRow)}function ps(o,e){return e.getMergeData().some(t=>t.startColumn<o&&o<=t.endColumn)}const xo="sheet.command.move-rows",At={id:xo,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,J;const n=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:i}}=e,a=n==null?void 0:n.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.ROW&&ne.range.startRow<=r&&r<=ne.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),R=o.get(s.ErrorService),h=o.get(s.LocaleService),S=a[0].range,v=a[0].primary,p=rt(S,d,!1);if(!s.Rectangle.equals(S,p))return R.emit(h.t("sheets.info.partOfCell")),!1;if(fs(i,d))return R.emit(h.t("sheets.info.acrossMergedCell")),!1;const I={...S,startRow:i,endRow:i+S.endRow-S.startRow},f={unitId:m,subUnitId:g,sourceRange:S,targetRange:I},w=Ao(o,f),y=i-r<0,P=S.endRow-S.startRow+1,U=y?I:{...I,startRow:I.startRow-P,endRow:I.endRow-P},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ae(U,d),style:null}]},D={unitId:m,subUnitId:g,pluginName:X,selections:[{range:S,primary:v,style:null}]},F=o.get(s.ICommandService),B=c.onCommandExecute({id:At.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:_e.id,params:f},{id:K.id,params:N},...B.redos],oe=[...(J=B.preUndos)!=null?J:[],{id:_e.id,params:w},{id:K.id,params:D},...B.undos];return s.sequenceExecute(b,F).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},Lo="sheet.command.move-cols",Wt={id:Lo,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,J;const n=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:i}}=e,a=n==null?void 0:n.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.COLUMN&&ne.range.startColumn<=r&&r<=ne.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),R=o.get(s.ErrorService),h=o.get(s.LocaleService),S=a[0].range,v=a[0].primary,p=rt(S,d,!1);if(!s.Rectangle.equals(S,p))return R.emit(h.t("sheets.info.partOfCell")),!1;if(ps(i,d))return R.emit(h.t("sheets.info.acrossMergedCell")),!1;const I={...S,startColumn:i,endColumn:i+S.endColumn-S.startColumn},f={unitId:m,subUnitId:g,sourceRange:S,targetRange:I},w=Wo(o,f),M=S.endColumn-S.startColumn+1,U=i-r<0?I:{...I,startColumn:I.startColumn-M,endColumn:I.endColumn-M},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ae(U,d),style:null}]},D={unitId:m,subUnitId:g,pluginName:X,selections:[{range:S,primary:v,style:null}]},F=o.get(s.ICommandService),B=c.onCommandExecute({id:Wt.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:be.id,params:f},{id:K.id,params:N},...B.redos],oe=[...(J=B.preUndos)!=null?J:[],{id:be.id,params:w},{id:K.id,params:D},...B.undos];return s.sequenceExecute(b,F).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},Vo="sheet.command.remove-row",it={type:s.CommandType.COMMAND,id:Vo,handler:async(o,e)=>{var I,f,w,M;const t=o.get(exports.SelectionManagerService),n=o.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(I=t.getLast())==null?void 0:I.range),!r)return!1;const i=o.get(s.IUniverInstanceService),a=j(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=a;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)u.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[r.startRow,...m.map(U=>U+1)],P=[...m.map(U=>U-1),r.endRow];for(let U=y.length-1;U>=0;U--)y[U]<=P[U]&&g.push({startRow:y[U],endRow:P[U],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const R=[],h=[];g.forEach(y=>{const P={unitId:d,subUnitId:l,range:y},U=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),N={unitId:d,subUnitId:l,cellValue:U.getMatrix()},D=Ss(P,u);R.push({id:Me.id,params:P}),h.unshift({id:pe.id,params:D},{id:z.id,params:N})});const S=n.onCommandExecute({id:it.id,params:{range:r}}),v=o.get(s.ICommandService);return s.sequenceExecute([...(f=S.preRedos)!=null?f:[],...R,...S.redos,Pe(r,c,u)],v).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],...h,...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],...R,...S.redos]}),!0):!1}},$o="sheet.command.remove-col",at={type:s.CommandType.COMMAND,id:$o,handler:async(o,e)=>{var I,f,w,M;const t=o.get(exports.SelectionManagerService),n=o.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(I=t.getLast())==null?void 0:I.range),!r)return!1;const i=o.get(s.IUniverInstanceService),a=j(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=a;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:d,subUnitId:l,range:r},g=Cs(o,m),R=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),h={unitId:d,subUnitId:l,cellValue:R.getMatrix()},S=n.onCommandExecute({id:at.id,params:{range:r}}),v=o.get(s.ICommandService);return s.sequenceExecute([...(f=S.preRedos)!=null?f:[],{id:ve.id,params:m},...S.redos,Pe(r,c,u)],v).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],{id:Ie.id,params:g},{id:z.id,params:h},...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],{id:ve.id,params:m},...S.redos]}),!0):!1}},Qt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(o,e)=>{var I,f;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),a=j(r,e);if(!a)return!1;const{unitId:c,subUnitId:u,workbook:l,worksheet:d}=a;if(l.getSheets().length<=1)return!1;const m=l.getSheetIndex(d);l.getConfig().sheetOrder[m+1];const g={subUnitId:u,unitId:c,subUnitName:d.getName()},R=Fn(o,g),h=i.onCommandExecute({id:Qt.id,params:{unitId:c,subUnitId:u}}),S=[...(I=h.preRedos)!=null?I:[],{id:Je.id,params:g},...h.redos],v=[...(f=h.preUndos)!=null?f:[],{id:De.id,params:R},...h.undos];return s.sequenceExecute(S,t)?(n.pushUndoRedo({unitID:c,undoMutations:v,redoMutations:S}),!0):!1}},Ce=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},H={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)a.push(c[u]);return!0}},ue=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,c=e.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=a.length-1;d>=0;d--){const m=a[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(a[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},G={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let l=a.length-1;l>=0;l--){const d=a[l],m=c[u];s.Rectangle.intersects(d,m)&&a.splice(l,1)}return!0}},Bo={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async o=>{const e=o.get(exports.SelectionManagerService),t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=j(r);if(!a)return!1;const{subUnitId:c,unitId:u,worksheet:l}=a,d={unitId:u,subUnitId:c,ranges:i};let m=!1;const g=l.getConfig().mergeData;if(i.forEach(M=>{g.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const R=ue(o,d),h=e.getSelections();if(!(h!=null&&h.length))return!1;const S=s.Tools.deepClone(h),v=s.Tools.deepClone(h),p=v[v.length-1],{startRow:I,startColumn:f}=p.range;return p.primary={startRow:I,startColumn:f,endRow:I,endColumn:f,actualRow:I,actualColumn:f,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:G.id,params:R},{id:K.id,params:{selections:v}}],t)?(n.pushUndoRedo({unitID:u,undoMutations:[{id:H.id,params:R},{id:K.id,params:{selections:S}}],redoMutations:[{id:G.id,params:R},{id:K.id,params:{selections:v}}]}),!0):!1}};class Be{constructor(){C(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new ge.BehaviorSubject(this._borderInfo));C(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function lt(o,e){const{startRow:t,startColumn:n,endRow:r,endColumn:i}=o;for(let a=t;a<=r;a++)for(let c=n;c<=i;c++)e(a,c)}const jo={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(o,e)=>{const{unitId:t,subUnitId:n,value:r}=e,{type:i,color:a,style:c}=r,u=o.get(s.ICommandService),l=o.get(Be);return l.setType(i),l.setColor(a),l.setStyle(c),u.executeCommand(Xe.id,{unitId:t,subUnitId:n})}},Fo={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(o,e)=>{if(!e.value)return!1;const t=o.get(s.ICommandService);return o.get(Be).setType(e.value),t.executeCommand(Xe.id)}},Ho={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService);return o.get(Be).setStyle(e.value),t.executeCommand(Xe.id)}},Go={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService);return o.get(Be).setColor(e.value),t.executeCommand(Xe.id)}},Xe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get(Be),c=j(r,e);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=i.getSelectionRanges(),g=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:R,color:h,type:S,activeBorderType:v}=a.getBorderInfo();if(!v)return!1;const p=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,I=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,f=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,w=S===s.BorderType.RIGHT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,M=S===s.BorderType.VERTICAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,y=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,P=S.indexOf("tlbr")>-1,U=S.indexOf("tlbc")>-1,N=S.indexOf("tlmr")>-1,D=S.indexOf("bltr")>-1,F=S.indexOf("mltr")>-1,B=S.indexOf("bctr")>-1,b=m[0],oe={startRow:b.startRow-1,startColumn:b.startColumn,endRow:b.startRow-1,endColumn:b.endColumn},Z={startRow:b.startRow,startColumn:b.startColumn-1,endRow:b.endRow,endColumn:b.startColumn-1},Q={startRow:b.endRow+1,startColumn:b.startColumn,endRow:b.endRow+1,endColumn:b.endColumn},J={startRow:b.startRow,startColumn:b.endColumn+1,endRow:b.endRow,endColumn:b.endColumn+1},ne={startRow:b.startRow,startColumn:b.startColumn,endRow:b.startRow,endColumn:b.endColumn},_n={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.startColumn},bn={startRow:b.endRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn},Un={startRow:b.startRow,startColumn:b.endColumn,endRow:b.endRow,endColumn:b.endColumn},L=new s.ObjectMatrix,Y={s:R,cl:{rgb:h}},ut=(A,E)=>{let $=null;return g.forEach(re=>{s.Rectangle.intersects(re,{startColumn:E,endColumn:E,startRow:A,endRow:A})&&($=re)}),$};function q(A,E,$){A.startRow<0||A.startColumn<0||lt(A,(re,de)=>{var k,Ze;const ie=ut(re,de);let ce=E;if(ie&&(E.bc_tr||E.ml_tr||E.bl_tr||E.tl_mr||E.tl_bc||E.tl_br)){if($){const me=s.Tools.deepClone((k=L.getValue(ie.startRow,ie.startColumn))==null?void 0:k.s);ce=me!=null&&me.bd?Object.assign(me.bd,E):E}L.setValue(ie.startRow,ie.startColumn,{s:{bd:ce}})}else{if($){const me=s.Tools.deepClone((Ze=L.getValue(re,de))==null?void 0:Ze.s);ce=me!=null&&me.bd?Object.assign(me.bd,E):E}L.setValue(re,de,{s:{bd:ce}})}})}p&&(q(oe,{b:null}),q(ne,{t:s.Tools.deepClone(Y)},!0)),f&&(q(Q,{t:null}),q(bn,{b:s.Tools.deepClone(Y)},!0)),I&&(q(Z,{r:null}),q(_n,{l:s.Tools.deepClone(Y)},!0)),w&&(q(J,{l:null}),q(Un,{r:s.Tools.deepClone(Y)},!0)),P&&q(b,{tl_br:s.Tools.deepClone(Y)},!0),U&&q(b,{tl_bc:s.Tools.deepClone(Y)},!0),N&&q(b,{tl_mr:s.Tools.deepClone(Y)},!0),D&&q(b,{bl_tr:s.Tools.deepClone(Y)},!0),F&&q(b,{ml_tr:s.Tools.deepClone(Y)},!0),B&&q(b,{bc_tr:s.Tools.deepClone(Y)},!0),M&&lt(b,(A,E)=>{var re,de,ie,ce;const $=ut(A,E);if($){if($.endColumn!==b.endColumn){const k=(re=L.getValue($.startRow,$.startColumn))==null?void 0:re.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if($.startColumn!==b.startColumn){const k=(de=L.getValue($.startRow,$.startColumn))==null?void 0:de.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}else{if(E!==b.endColumn){const k=(ie=L.getValue(A,E))==null?void 0:ie.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(E!==b.startColumn){const k=(ce=L.getValue(A,E))==null?void 0:ce.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}}),y&&lt(b,(A,E)=>{var re,de,ie,ce;const $=ut(A,E);if($){if($.endRow!==b.endRow){const k=(re=L.getValue($.startRow,$.startColumn))==null?void 0:re.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if($.startRow!==b.startRow){const k=(de=L.getValue($.startRow,$.startColumn))==null?void 0:de.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}else{if(A!==b.endRow){const k=(ie=L.getValue(A,E))==null?void 0:ie.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(A!==b.startRow){const k=(ce=L.getValue(A,E))==null?void 0:ce.s;L.setValue(A,E,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}}),!p&&!f&&!I&&!w&&!M&&!y&&!P&&!U&&!N&&!D&&!F&&!B&&(q(oe,{b:null}),q(ne,{t:null},!0),q(Q,{t:null}),q(bn,{b:null},!0),q(Z,{r:null}),q(_n,{l:null},!0),q(J,{l:null}),q(Un,{r:null},!0),q(b,{tl_br:null},!0),q(b,{tl_bc:null},!0),q(b,{tl_mr:null},!0),q(b,{bl_tr:null},!0),q(b,{ml_tr:null},!0),q(b,{bc_tr:null},!0),lt(b,(A,E)=>{var re,de,ie,ce,k,Ze,me,Pn;const $=ut(A,E);if($){if($.endColumn!==b.endColumn){const W=(re=L.getValue($.startRow,$.startColumn))==null?void 0:re.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{r:null}):{r:null}}})}if($.startColumn!==b.startColumn){const W=(de=L.getValue($.startRow,$.startColumn))==null?void 0:de.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{l:null}):{l:null}}})}if($.endRow!==b.endRow){const W=(ie=L.getValue($.startRow,$.startColumn))==null?void 0:ie.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{b:null}):{b:null}}})}if($.startRow!==b.startRow){const W=(ce=L.getValue($.startRow,$.startColumn))==null?void 0:ce.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{t:null}):{t:null}}})}}else{if(E!==b.endColumn){const W=(k=L.getValue(A,E))==null?void 0:k.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{r:null}):{r:null}}})}if(E!==b.startColumn){const W=(Ze=L.getValue(A,E))==null?void 0:Ze.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{l:null}):{l:null}}})}if(A!==b.endRow){const W=(me=L.getValue(A,E))==null?void 0:me.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{b:null}):{b:null}}})}if(A!==b.startRow){const W=(Pn=L.getValue(A,E))==null?void 0:Pn.s;L.setValue(A,E,{s:{bd:W!=null&&W.bd?Object.assign(W.bd,{t:null}):{t:null}}})}}}));const Bt={unitId:l,subUnitId:d,cellValue:L.getData()},Wr=Ue(o,Bt);return t.syncExecuteCommand(z.id,Bt)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:z.id,params:Wr}],redoMutations:[{id:z.id,params:Bt}]}),!0):!1}},Is=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},He={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const r=n.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},Ms=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ge={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const r=n.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},xt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(o,e)=>{var S,v;const t=o.get(exports.SheetInterceptorService),{unitId:n,subUnitId:r,ranges:i}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(r),c={unitId:n,subUnitId:r,ranges:i},u=Ms(o,c),l={unitId:n,subUnitId:r,pluginName:X,selections:i.map(p=>({range:p,primary:ae(p,a),style:null}))},d={unitId:n,subUnitId:r,pluginName:X,selections:zo(i).map(p=>({range:p,primary:ae(p,a),style:null}))},m=o.get(s.ICommandService),g=s.sequenceExecute([{id:Ge.id,params:c},{id:K.id,params:l}],m),R=t.onCommandExecute({id:xt.id,params:e}),h=s.sequenceExecute([...R.redos],m);return g.result&&h.result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:He.id,params:u},{id:K.id,params:d},...(S=R.undos)!=null?S:[]],redoMutations:[...(v=R.preRedos)!=null?v:[],{id:Ge.id,params:c},{id:K.id,params:l},...R.redos]}),!0}},qo={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async o=>{var l;const t=(l=o.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(t!=null&&t.length))return!1;const r=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u=t.map(d=>i.getHiddenCols(d.startColumn,d.endColumn)).flat();return o.get(s.ICommandService).executeCommand(xt.id,{unitId:a,subUnitId:c,ranges:u})}},en={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var v,p,I;const e=o.get(exports.SelectionManagerService),t=o.get(exports.SheetInterceptorService),n=(v=e.getSelections())==null?void 0:v.map(f=>f.range).filter(f=>f.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const i=o.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l={unitId:c,subUnitId:u,ranges:n},d={unitId:c,subUnitId:u,pluginName:X,selections:zo(n).map(f=>({range:f,primary:ae(f,a),style:null}))},m={unitId:c,subUnitId:u,pluginName:X,selections:n.map(f=>({range:f,primary:ae(f,a),style:null}))},g=o.get(s.ICommandService),R=s.sequenceExecute([{id:He.id,params:l},{id:K.id,params:d}],g),h=t.onCommandExecute({id:en.id,params:l}),S=s.sequenceExecute([...h.redos],g);if(R.result&&S.result){const f=o.get(s.IUndoRedoService),w=Is(o,l);return f.pushUndoRedo({unitID:c,undoMutations:[{id:Ge.id,params:w},{id:K.id,params:m},...(p=h.undos)!=null?p:[]],redoMutations:[...(I=h.preRedos)!=null?I:[],{id:He.id,params:l},{id:K.id,params:d},...h.redos]}),!0}return!1}};function zo(o){return ws(o).map(t=>{const n=t.startColumn===0?t.endColumn+1:t.startColumn-1;return{...t,startColumn:n,endColumn:n}})}function ws(o){const e=[];let t;return o.sort((n,r)=>n.startColumn-r.startColumn).forEach(n=>{if(!t){t=n;return}t.endColumn===n.startColumn-1?t.endColumn=n.endColumn:(e.push(t),t=n)}),e.push(t),e}const tn=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...a}},Ne={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:c,ySplit:u,xSplit:l}=e;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:l},!0}},Yo={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=j(r);if(!i)return!1;const{unitId:a,subUnitId:c,worksheet:u}=i,{startColumn:l,startRow:d,xSplit:m,ySplit:g}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const R={unitId:a,subUnitId:c,...e},h=tn(o,R);return t.syncExecuteCommand(Ne.id,R)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:Ne.id,params:h}],redoMutations:[{id:Ne.id,params:R}]}),!0):!1}},ys={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async o=>{const e=o.get(s.ICommandService),t=o.get(s.IUndoRedoService),n=o.get(s.IUniverInstanceService),r=j(n);if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={unitId:i,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=tn(o,c);return e.syncExecuteCommand(Ne.id,c)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Ne.id,params:u}],redoMutations:[{id:Ne.id,params:c}]}),!0):!1}},_s=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},qe={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},bs=(o,e)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},ze={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(o,e)=>{var v,p,I;const{unitId:t,subUnitId:n,ranges:r}=e,i=o.get(s.ICommandService),a=o.get(s.IUndoRedoService),c=o.get(exports.SheetInterceptorService),u=o.get(s.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(n),l={unitId:t,subUnitId:n,ranges:r},d=_s(o,l),m={unitId:t,subUnitId:n,pluginName:X,selections:r.map(f=>({range:f,primary:ae(f,u),style:null}))},g={unitId:t,subUnitId:n,pluginName:X,selections:Jo(r).map(f=>({range:f,primary:ae(f,u),style:null}))},R=s.sequenceExecute([{id:qe.id,params:l},{id:K.id,params:m}],i),h=c.onCommandExecute({id:Lt.id,params:e}),S=s.sequenceExecute([...h.redos],i);return R.result&&S.result&&a.pushUndoRedo({unitID:t,undoMutations:[...(v=h.preUndos)!=null?v:[],{id:ze.id,params:d},{id:K.id,params:g},...(p=h.undos)!=null?p:[]],redoMutations:[...(I=h.preRedos)!=null?I:[],{id:qe.id,params:l},{id:K.id,params:m},...h.redos]}),!0}},Ko={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async o=>{var l;const e=o.get(exports.SelectionManagerService),t=o.get(s.IUniverInstanceService),n=(l=e.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(n!=null&&n.length))return!1;const r=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u=n.map(d=>i.getHiddenRows(d.startRow,d.endRow)).flat();return o.get(s.ICommandService).executeCommand(Lt.id,{unitId:a,subUnitId:c,ranges:u})}},nn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async o=>{var I,f,w,M;const e=o.get(exports.SelectionManagerService),t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),a=(I=e.getSelections())==null?void 0:I.map(y=>y.range).filter(y=>y.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const c=j(r);if(!c)return!1;const{unitId:u,subUnitId:l,worksheet:d}=c,m={unitId:u,subUnitId:l,ranges:a},g={unitId:u,subUnitId:l,pluginName:X,selections:Jo(a).map(y=>({range:y,primary:ae(y,d),style:null}))},R={unitId:u,subUnitId:l,pluginName:X,selections:a.map(y=>({range:y,primary:ae(y,d),style:null}))},h=bs(o,m),S=i.onCommandExecute({id:nn.id,params:m});S.preRedos&&S.preRedos.length>0&&s.sequenceExecute([...S.preRedos],t);const v=s.sequenceExecute([{id:ze.id,params:m},{id:K.id,params:g}],t),p=s.sequenceExecute([...S.redos],t);return v.result&&p.result&&n.pushUndoRedo({unitID:u,undoMutations:[...(f=S.preUndos)!=null?f:[],{id:qe.id,params:h},{id:K.id,params:R},...(w=S.undos)!=null?w:[]],redoMutations:[...(M=S.preRedos)!=null?M:[],{id:ze.id,params:m},{id:K.id,params:g},...S.redos]}),!0}};function Jo(o){return Us(o).map(t=>{const n=t.startRow===0?t.endRow+1:t.startRow-1;return{...t,startRow:n,endRow:n}})}function Us(o){const e=[];let t;return o.sort((n,r)=>n.startRow-r.startRow).forEach(n=>{if(!t){t=n;return}n.startRow===t.endRow+1?t.endRow=n.endRow:(e.push(t),t=n)}),e.push(t),e}const te={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(o,e)=>{const t=o.get(s.IUniverInstanceService),n=j(t);if(!n)return!1;const{unitId:r,subUnitId:i,worksheet:a}=n,{range:c,style:u}=e,l=o.get(s.ICommandService),d=o.get(s.IUndoRedoService),m=o.get(exports.SelectionManagerService),g=c?[c]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const R=new s.ObjectMatrix,h=cs(a);if(s.Tools.isArray(u.value))for(let M=0;M<g.length;M++)h.forOperableEach(g[M],(y,P,U)=>{R.setValue(y,P,{s:{[u.type]:u.value[y-U.startRow][P-U.startColumn]}})});else for(let M=0;M<g.length;M++){const y={s:{[u.type]:u.value}};h.forOperableEach(g[M],(P,U)=>R.setValue(P,U,y))}const S={subUnitId:i,unitId:r,cellValue:R.getMatrix()},v=Ue(o,S),p=l.syncExecuteCommand(z.id,S),{undos:I,redos:f}=o.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),w=s.sequenceExecute([...f],l);return p&&w.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:z.id,params:v},...I],redoMutations:[{id:z.id,params:S},...f]}),!0):!1}},Ps={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=j(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t,{actualRow:r,actualColumn:i}=e.primary,c={style:{type:"bl",value:n.getRange(r,i).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(te.id,c)}},Ts={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=j(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t;let r=!0;if(e.primary){const{startRow:a,startColumn:c}=e.primary;r=n.getRange(a,c).getFontStyle()===s.FontItalic.ITALIC}const i={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(te.id,i)}},Es={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=j(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t;let r=!0;e.primary&&(r=!!n.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const i={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(te.id,i)}},Ns={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=j(o.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:n}=t;let r=!0;e.primary&&(r=!!n.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const i={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(te.id,i)}};s.CommandType.COMMAND;const ks={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={style:{type:"ff",value:e.value}};return t.executeCommand(te.id,n)}},Os={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={style:{type:"fs",value:e.value}};return t.executeCommand(te.id,n)}},Xo={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(o,e)=>{if(!e||!e.value)return!1;const t=o.get(s.ICommandService),n={style:{type:"cl",value:{rgb:e.value}}};return t.executeCommand(te.id,n)}},Zo={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async o=>{const e=o.get(s.ICommandService),t={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(te.id,t)}},Qo={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(o,e)=>{if(!e||!e.value)return!1;const t=o.get(s.ICommandService),n={style:{type:"bg",value:{rgb:e.value}}};return t.executeCommand(te.id,n)}},er={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async o=>{const e=o.get(s.ICommandService),t={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(te.id,t)}},tr={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"vt",value:e.value}};return t.executeCommand(te.id,n)}},nr={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"ht",value:e.value}};return t.executeCommand(te.id,n)}},or={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(o,e)=>{if(!e)return!1;const t=o.get(s.ICommandService),n={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"tb",value:e.value}};return t.executeCommand(te.id,n)}},rr={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(o,e)=>{if(!e)return!1;const t=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},n=o.get(s.ICommandService),r={style:{type:"tr",value:t}};return n.executeCommand(te.id,r)}},Ds=(o,e)=>{const i=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},tt={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const n=t.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().tabColor=e.color,!0):!1}},sr={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=j(o.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={color:e.value,unitId:i,subUnitId:a},u=Ds(o,c);return t.syncExecuteCommand(tt.id,c)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:tt.id,params:u}],redoMutations:[{id:tt.id,params:c}]}),!0):!1}},ct={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const n=t.getWorksheets();for(const[,r]of n)if(r.getSheetId()===e.subUnitId)return t.setActiveSheet(r),!0;return!1}},As=4,Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,e,t)=>{const n=o.get(s.ICommandService),r=j(o.get(s.IUniverInstanceService),e);if(!r)return!1;const{unitId:i,subUnitId:a}=r;return new Promise(c=>{setTimeout(()=>{const u=n.syncExecuteCommand(ct.id,{unitId:i,subUnitId:a},t);c(u)},As)})}},on=(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const i={},a=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=a.getColumnOrCreate(d);i[d]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},we={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(o,e)=>{var u;const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)throw new Error("universheet is null error!");const r=n.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),c=e.ranges;for(let l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const g=a.getColumnOrCreate(m);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(u=e.colWidth[m-d.startColumn])!=null?u:i}}return!0}},rn={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(o,e)=>{const n=o.get(exports.SelectionManagerService).getSelections();if(o.get(exports.SheetInterceptorService),!(n!=null&&n.length))return!1;const r=o.get(s.ICommandService),i=o.get(s.IUndoRedoService),a=j(o.get(s.IUniverInstanceService));if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:l}=a,{anchorCol:d,deltaX:m}=e,R=c.getColumnWidth(d)+m,h=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,S=n.filter(P=>P.range.rangeType===s.RANGE_TYPE.COLUMN),v=h?s.RANGE_TYPE.ALL:S.some(({range:P})=>{const{startColumn:U,endColumn:N}=P;return U<=d&&d<=N})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let p;if(v===s.RANGE_TYPE.ALL){const P=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((N,D)=>({startRow:0,endRow:P-1,startColumn:D,endColumn:D}));p={subUnitId:l,unitId:u,colWidth:R,ranges:U}}else v===s.RANGE_TYPE.COLUMN?p={subUnitId:l,unitId:u,ranges:S.map(P=>s.Rectangle.clone(P.range)),colWidth:R}:p={subUnitId:l,unitId:u,colWidth:R,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const{undos:I,redos:f}=o.get(exports.SheetInterceptorService).onCommandExecute({id:rn.id,params:p}),w=on(o,p),M=r.syncExecuteCommand(we.id,p),y=s.sequenceExecute([...f],r);return M&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:we.id,params:w},...I],redoMutations:[{id:we.id,params:p},...f]}),!0}},wt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,e)=>{var p,I;const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const c=j(o.get(s.IUniverInstanceService));if(!c)return!1;const{subUnitId:u,unitId:l}=c,d={subUnitId:u,unitId:l,ranges:a,colWidth:e.value},m=on(o,d),g=n.syncExecuteCommand(we.id,d),{undos:R,redos:h}=o.get(exports.SheetInterceptorService).onCommandExecute({id:wt.id,params:d}),S=i.onCommandExecute({id:wt.id,params:d}),v=s.sequenceExecute([...h,...S.redos],n);return g&&v.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(p=S.preUndos)!=null?p:[],{id:we.id,params:m},...R],redoMutations:[...(I=S.preRedos)!=null?I:[],{id:we.id,params:d},...h]}),!0):!1}},ir=(o,e)=>{const t=Pt(o.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:n}=t;return{hidden:n.isSheetHidden(),unitId:e.unitId,subUnitId:n.getSheetId()}},ke={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const n=t.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().hidden=e.hidden,!0):!1}},ar={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.ErrorService),i=o.get(s.LocaleService),a=j(o.get(s.IUniverInstanceService),e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:l,subUnitId:d}=a;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},R=ir(o,g);return c.getSheets().filter(p=>p.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):t.syncExecuteCommand(ke.id,g)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:ke.id,params:R}],redoMutations:[{id:ke.id,params:g}]}),!0):!1}},Ws=(o,e)=>{const t=Pt(o.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:n}=t;return{unitId:e.unitId,name:n.getName(),subUnitId:n.getSheetId()}},yt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const n=t.getSheetBySheetId(e.subUnitId);return n?(n.getConfig().name=e.name,!0):!1}},sn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,e)=>{var h,S;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(exports.SheetInterceptorService),i=j(o.get(s.IUniverInstanceService),e);if(!i)return!1;const{unitId:a,subUnitId:c}=i,u={subUnitId:c,name:e.name,unitId:a},l=Ws(o,u),d=r.onCommandExecute({id:sn.id,params:e}),m=[...(h=d.preRedos)!=null?h:[],{id:yt.id,params:u},...d.redos],g=[...(S=d.preUndos)!=null?S:[],{id:yt.id,params:l},...d.undos];return await s.sequenceExecute(m,t).result?(n.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:m}),!0):!1}},xs=(o,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),nt={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const n=t.getConfig();return n.sheetOrder.splice(e.fromOrder,1),n.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},cr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=j(o.get(s.IUniverInstanceService),e);if(!r)return!1;const{workbook:i,unitId:a,subUnitId:c}=r,l={fromOrder:i.getConfig().sheetOrder.indexOf(c),toOrder:e.order,unitId:a,subUnitId:c},d=xs(o,l);return t.syncExecuteCommand(nt.id,l)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:nt.id,params:d}],redoMutations:[{id:nt.id,params:l}]}),!0):!1}},Ls=2e3,ur=(o,e)=>{const{unitId:t,subUnitId:n,ranges:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(n);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const R=l.getRowOrCreate(g);u[g]=R.h}return{unitId:t,subUnitId:n,ranges:r,rowHeight:u}},an=(o,e)=>{const{unitId:t,subUnitId:n,ranges:r}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(n),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const R=l.getRowOrCreate(g);u[g]=R.ia}return{unitId:t,subUnitId:n,ranges:r,autoHeightInfo:u}},Vs=(o,e)=>{const{unitId:t,subUnitId:n,rowsAutoHeightInfo:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(n);if(!c)return{unitId:t,subUnitId:n,rowsAutoHeightInfo:[]};const u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:t,subUnitId:n,rowsAutoHeightInfo:u}},ye={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(o,e)=>{var m;const{unitId:t,subUnitId:n,ranges:r,rowHeight:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(n);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:R}of r)for(let h=g;h<=R;h++){const S=d.getRowOrCreate(h);typeof i=="number"?S.h=i:S.h=(m=i[h])!=null?m:l,S.h=Math.min(Ls,S.h)}return!0}},he={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(o,e)=>{var m;const{unitId:t,subUnitId:n,ranges:r,autoHeightInfo:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(n);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:g,endRow:R}of r)for(let h=g;h<=R;h++){const S=d.getRowOrCreate(h);typeof i=="number"?S.ia=i:S.ia=(m=i[h-g])!=null?m:l}return!0}},cn={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rowsAutoHeightInfo:r}=e,a=o.get(s.IUniverInstanceService).getUnit(t),c=a==null?void 0:a.getSheetBySheetId(n);if(!c||!a)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},un={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(o,e)=>{var N,D;const n=o.get(exports.SelectionManagerService).getSelections(),r=o.get(exports.SheetInterceptorService);if(!(n!=null&&n.length))return!1;const i=j(o.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:a,subUnitId:c,unitId:u}=i,{anchorRow:l,deltaY:d}=e,g=a.getRowHeight(l)+d,R=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,h=n.filter(F=>F.range.rangeType===s.RANGE_TYPE.ROW),S=R?s.RANGE_TYPE.ALL:h.some(({range:F})=>{const{startRow:B,endRow:b}=F;return B<=l&&l<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let v;if(S===s.RANGE_TYPE.ALL){const F=a.getRowCount(),B=new Array(a.getColumnCount()).fill(void 0).map((b,oe)=>({startRow:oe,endRow:oe,startColumn:0,endColumn:F-1}));v={subUnitId:c,unitId:u,rowHeight:g,ranges:B}}else S===s.RANGE_TYPE.ROW?v={subUnitId:c,unitId:u,ranges:h.map(F=>s.Rectangle.clone(F.range)),rowHeight:g}:v={subUnitId:c,unitId:u,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const p=ur(o,v),I={unitId:u,subUnitId:c,ranges:v.ranges,autoHeightInfo:s.BooleanNumber.FALSE},f=an(o,I),w=o.get(s.ICommandService),M=o.get(s.IUndoRedoService),y=r.onCommandExecute({id:un.id,params:v}),P=s.sequenceExecute([{id:ye.id,params:v},{id:he.id,params:I}],w),U=s.sequenceExecute([...y.redos],w);return P.result&&U.result?(M.pushUndoRedo({unitID:u,undoMutations:[...(N=y.preUndos)!=null?N:[],{id:ye.id,params:p},{id:he.id,params:f},...y.undos],redoMutations:[...(D=y.preRedos)!=null?D:[],{id:ye.id,params:v},{id:he.id,params:I},...y.redos]}),!0):!1}},ln={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,e)=>{var I,f;const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),i=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),c=t.getSelectionRanges();if(!(c!=null&&c.length))return!1;const u=j(i);if(!u)return!1;const{unitId:l,subUnitId:d}=u,m={subUnitId:d,unitId:l,ranges:c,rowHeight:e.value},g=ur(o,m),R={unitId:l,subUnitId:d,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},h=an(o,R),S=s.sequenceExecute([{id:ye.id,params:m},{id:he.id,params:R}],n),v=a.onCommandExecute({id:ln.id,params:m}),p=s.sequenceExecute([...v.redos],n);return S.result&&p.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(I=v.preRedos)!=null?I:[],{id:ye.id,params:g},{id:he.id,params:h},...v.undos],redoMutations:[...(f=v.preRedos)!=null?f:[],{id:ye.id,params:m},{id:he.id,params:R},...v.redos]}),!0):!1}},dn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(exports.SelectionManagerService),i=o.get(s.IUniverInstanceService),a=j(i);if(!a)return!1;const{unitId:c,subUnitId:u,worksheet:l}=a,{anchorRow:d}=e!=null?e:{},m=d!=null?[{startRow:d,endRow:d,startColumn:0,endColumn:l.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},R=an(o,g),h=t.syncExecuteCommand(he.id,g),{undos:S,redos:v}=o.get(exports.SheetInterceptorService).onCommandExecute({id:dn.id,params:g}),p=s.sequenceExecute([...v],t);return h&&p.result?(n.pushUndoRedo({unitID:c,undoMutations:[{id:he.id,params:R},...S],redoMutations:[{id:he.id,params:g},...v]}),!0):!1}},lr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(o,e)=>{const{unitId:t,subUnitId:n}=e,r=o.get(s.ICommandService),i=o.get(s.IUndoRedoService),a=o.get(s.IUniverInstanceService);if(!j(o.get(s.IUniverInstanceService)))return!1;const u=a.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const l=u.getSheetBySheetId(n);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:t,subUnitId:n,hidden:s.BooleanNumber.FALSE},g=ir(o,m),R=r.syncExecuteCommand(ke.id,m),h={unitId:t,subUnitId:n},S=r.syncExecuteCommand(ct.id,h);return R&&S?(i.pushUndoRedo({unitID:t,undoMutations:[{id:ke.id,params:g}],redoMutations:[{id:ke.id,params:m}]}),!0):!1}},dr=o=>{const e=new s.ObjectMatrix;return o.forEach(t=>{s.Range.foreach(t,(n,r)=>{e.setValue(n,r,1)})}),e.forValue((t,n)=>{const r=e.getValue(t-1,n);r&&e.setValue(t,n,r+1)}),e},mr=o=>{const e=o;return e.forValue((t,n)=>{const r=o.getValue(t-1,n);r&&e.setValue(t,n,r+1)}),e},Nn=o=>{const e={area:0},t=(n,r)=>e.area<n?(e.area=n,e.range=r,!0):!1;return o.forValue((n,r,i)=>{let a=1,c=i;t(a*c,{startRow:n-c+1,endRow:n,startColumn:r,endColumn:r});const u={startRow:n-c+1,endRow:n,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&o.getValue(n,l);l--){c=Math.min(o.getValue(n,l)||0,c),a++;const d=c*a;u.startColumn=l,u.startRow=n-c+1,t(d,u)}}),e},$s=(o,e)=>(s.Range.foreach(e,(t,n)=>{o.realDeleteValue(t,n);let r=t+1,i=o.getValue(r,n)||0;for(;i>1;)o.setValue(r,n,i-1),r+=1,i=o.getValue(r,n)||0}),o),mn=o=>{const e=[];let t=Nn(o);for(;t.area>0;)t.range&&(e.push(t.range),$s(o,t.range)),t=Nn(o);return e},gn=o=>{const e=dr(o);return mn(e)};class Bs{constructor(){C(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(t=>{s.Range.foreach(t,(n,r)=>{this._matrix.setValue(n,r,1)})}),this}subtract(...e){return e.forEach(t=>{s.Range.foreach(t,(n,r)=>{this._matrix.realDeleteValue(n,r)})}),this}merge(){const e=mr(this._matrix);return mn(e)}}const js=(o,e,t="")=>o.reduce((n,r)=>{const i=r&&r[e];return typeof i!="string"?(console.warn(r,`${e} is not string`),n):(i?(n[i]||(n[i]=[]),n[i].push(r)):n[t].push(r),n)},{}),Fs=(o=0)=>{let e=o;return function(){return e++}},je=V.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,je);const Hs=(o,e)=>{const t=o.get(je),{values:n,unitId:r,subUnitId:i}=e,a=[],c=[];Object.keys(n).forEach(l=>{n[l].ranges.forEach(m=>{s.Range.foreach(m,(g,R)=>{const h=t.getValue(r,i,g,R);h?a.push({pattern:h.pattern,row:g,col:R}):c.push({startColumn:R,endColumn:R,startRow:g,endRow:g})})})});const u=[];if(a.length){const l=_t(r,i,a);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=gn(m.ranges)}),u.push({id:$t.id,params:_t(r,i,a)})}return c.length&&u.push({id:hn.id,params:{unitId:r,subUnitId:i,ranges:c}}),u},$t={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(o,e)=>{if(!e)return!1;const{values:t,refMap:n}=e,r=o.get(je),i=e.unitId,a=e.subUnitId,c=Object.keys(t).reduce((u,l)=>{const d=n[l],m=t[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},hn={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(o,e)=>{if(!e)return!1;const{unitId:t,subUnitId:n,ranges:r}=e;return o.get(je).deleteValues(t,n,r),!0}},Gs=(o,e)=>{const t=o.get(je),{ranges:n,unitId:r,subUnitId:i}=e,a=[];if(n.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=t.getValue(r,i,l,d);m&&a.push({pattern:m.pattern,row:l,col:d})})}),!a.length)return[];const c=_t(r,i,a);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=gn(l.ranges)}),[{id:$t.id,params:c}]},_t=(o,e,t)=>{const n=js(t,"pattern"),r={},i={},a=Fs();return Object.keys(n).forEach(c=>{const u=n[c],l=a();r[l]={pattern:c},u.forEach(d=>{i[l]||(i[l]={ranges:[]}),i[l].ranges.push(s.cellToRange(d.row,d.col))})}),{unitId:o,subUnitId:e,refMap:r,values:i}},gr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},hr={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(se.SetDefinedNameMutation.id,r)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:se.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:se.SetDefinedNameMutation.id,params:r}]}),!0):!1}},Rr={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(se.RemoveDefinedNameMutation.id,r)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:se.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},Sr={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService);return e&&t.syncExecuteCommand(se.SetDefinedNameMutation.id,e.newDefinedName)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:se.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},Cr={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Rn={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET);return t?(t.setName(e.name),!0):!1}},Sn={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(o,e)=>{var l;if(!o.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const i=o.get(exports.SheetInterceptorService).onCommandExecute({id:Sn.id,params:e}),a={name:e.name,unitId:e.unitId},c=[...(l=i.preRedos)!=null?l:[],{id:Rn.id,params:a},...i.redos],u=o.get(s.ICommandService);return s.sequenceExecute(c,u).result}};var qs=Object.defineProperty,zs=Object.getOwnPropertyDescriptor,Ys=(o,e,t,n)=>{for(var r=n>1?void 0:n?zs(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&qs(e,t,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new ge.Subject);C(this,"_ruleRefresh",new ge.Subject);C(this,"_resetOrder",new ge.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new ge.BehaviorSubject(!1));C(this,"worksheetRuleInitStateChange$",this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}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 r,i,a;const n=(i=(r=this._model)==null?void 0:r.get(e))==null?void 0:i.get(t);n&&((a=this._model.get(e))==null||a.delete(t),this._ruleChange.next({unitId:e,rule:n,type:"delete",subUnitId:t}))}setRule(e,t,n){var i,a;const r=this.getRule(e,t);r&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.set(t,n),this._ruleChange.next({unitId:e,oldRule:r,rule:n,type:"set",subUnitId:t}))}getRule(e,t){var n,r;return(r=(n=this._model)==null?void 0:n.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(n=>{const r=this._model.get(n);r!=null&&r.size&&(e[n]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[n].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(n=>{const r=e[n];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(n,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_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())}};exports.WorksheetProtectionRuleModel=Ys([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionRuleModel)],exports.WorksheetProtectionRuleModel);const vr={id:"sheet.mutation.add-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,rule:n}=e;return o.get(exports.WorksheetProtectionRuleModel).addRule(t,n),!0}},fr={id:"sheet.mutation.set-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rule:r}=e;return o.get(exports.WorksheetProtectionRuleModel).setRule(t,n,r),!0}},pr={id:"sheet.mutation.delete-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n}=e;return o.get(exports.WorksheetProtectionRuleModel).deleteRule(t,n),!0}},Te=()=>[Kn,Yt],vt=()=>[qn,no,to,io,ro,Qn,Zn,eo,so,zn,Yn,Xn,Jn,oo],Ks=[_.Copy,_.DeleteColumn,_.DeleteRow,_.EditExtraObject,_.Filter,_.InsertColumn,_.InsertRow,_.InsertHyperlink,_.PivotTable,_.SetCellStyle,_.SetCellValue,_.SetColumnStyle,_.SetRowStyle,_.Sort];var Js=Object.defineProperty,Xs=Object.getOwnPropertyDescriptor,Zs=(o,e,t,n)=>{for(var r=n>1?void 0:n?Xs(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Js(e,t,r),r};exports.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new ge.Subject);C(this,"pointChange$",this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var r,i,a;const n=(r=this._model.get(e))==null?void 0:r.get(t);n&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.delete(t),this._pointChange.next(n))}getRule(e,t){var n,r;return(r=(n=this._model)==null?void 0:n.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(n=>{const r=this._model.get(n);r!=null&&r.size&&(e[n]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[n].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(n=>{const r=e[n];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(n,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}};exports.WorksheetProtectionPointModel=Zs([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var Qs=Object.defineProperty,ei=Object.getOwnPropertyDescriptor,ti=(o,e,t,n)=>{for(var r=n>1?void 0:n?ei(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Qs(e,t,r),r},Oe=(o,e)=>(t,n)=>e(t,n,o);const ni="SHEET_WORKSHEET_PROTECTION_PLUGIN",oi="SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN";exports.WorksheetPermissionService=class extends s.RxDisposable{constructor(e,t,n,r,i,a,c){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=n,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._sheetInterceptorService=c,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){const e=t=>{const n=t.getUnitId(),r=i=>{const a=i.getSheetId();[...Te(),...vt()].forEach(c=>{const u=new c(n,a);this._permissionService.addPermissionPoint(u)})};t.getSheets().forEach(i=>{r(i)}),t.sheetCreated$.subscribe(i=>{r(i)}),t.sheetDisposed$.subscribe(i=>{const a=i.getSheetId();[...Te(),...vt()].forEach(c=>{const u=new c(n,a);this._permissionService.deletePermissionPoint(u.id)})})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(t=>{t.getSheets().forEach(n=>{const r=t.getUnitId(),i=n.getSheetId();Te().forEach(a=>{const c=new a(r,i);this._permissionService.deletePermissionPoint(c.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Te().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.addPermissionPoint(n)});break}case"delete":{Te().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.deletePermissionPoint(n.id)});break}case"set":{Te().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(n.id,e.rule)});break}}}))}_initRuleSnapshot(){const e=()=>{const n=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(n)},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:ni,businesses:[Mt.UNIVER_SHEET],onLoad:(n,r)=>{this._worksheetProtectionRuleModel.fromObject(r),Object.keys(r).forEach(i=>{Te().forEach(a=>{const c=new a(n,i);this._permissionService.addPermissionPoint(c)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:()=>{this._worksheetProtectionRuleModel.deleteUnitModel()}}))}_initPointSnapshot(){const e=()=>{const n=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(n)},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:oi,businesses:[Mt.UNIVER_SHEET],onLoad:(n,r)=>{this._worksheetProtectionPointRuleModel.fromObject(r),Object.keys(r).forEach(i=>{vt().forEach(a=>{const c=new a(n,i);this._permissionService.addPermissionPoint(c)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}};exports.WorksheetPermissionService=ti([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetPermissionService),Oe(0,V.Inject(s.IPermissionService)),Oe(1,V.Inject(s.IUniverInstanceService)),Oe(2,V.Inject(V.Injector)),Oe(3,V.Inject(exports.WorksheetProtectionRuleModel)),Oe(4,V.Inject(exports.WorksheetProtectionPointModel)),Oe(5,V.Inject(s.IResourceManagerService)),Oe(6,V.Inject(exports.SheetInterceptorService))],exports.WorksheetPermissionService);const Ir={id:"sheet.mutation.set-worksheet-permission-points",type:s.CommandType.MUTATION,handler:(o,e)=>{const{rule:t}=e;return o.get(exports.WorksheetProtectionPointModel).addRule(t),!0}},Mr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-permission-points",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),{rule:n}=e;return t.executeCommand(Ir.id,{rule:n,unitId:n.unitId,subUnitId:n.subUnitId}),!0}};var ri=Object.defineProperty,si=Object.getOwnPropertyDescriptor,ii=(o,e,t,n)=>{for(var r=n>1?void 0:n?si(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ri(e,t,r),r};exports.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new ge.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new ge.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new ge.BehaviorSubject(!1));C(this,"rangeRuleInitStateChange$",this._rangeRuleInitStateChange.asObservable())}ruleRefresh(e){this._ruleRefresh.next(e)}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 i,a,c,u;const r=(a=(i=this._model.get(e))==null?void 0:i.get(t))==null?void 0:a.get(n);r&&((u=(c=this._model.get(e))==null?void 0:c.get(t))==null||u.delete(n),this._ruleChange.next({unitId:e,subUnitId:t,rule:r,type:"delete"}))}setRule(e,t,n,r){var a,c;const i=this.getRule(e,t,n);i&&((c=(a=this._model.get(e))==null?void 0:a.get(t))==null||c.set(n,r),this._ruleChange.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:"set"}))}getRule(e,t,n){var r,i;return(i=(r=this._model.get(e))==null?void 0:r.get(t))==null?void 0:i.get(n)}getSubunitRuleList(e,t){var r;return[...(((r=this._model.get(e))==null?void 0:r.get(t))||new Map).values()]}_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(){const e={};return[...this._model.keys()].forEach(n=>{const r=this._model.get(n),i=[...r.keys()];e[n]={},i.forEach(a=>{const c=r.get(a);e[n][a]=[...c.values()]})}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(n=>{const r=e[n],i=new Map;Object.keys(r).forEach(a=>{const c=r[a].reduce((u,l)=>(u.set(l.id,l),u),new Map);i.set(a,c)}),t.set(n,i)}),this._model=t}deleteUnitModel(){this._model.clear()}createRuleId(e,t){let n=s.Tools.generateRandomId(4);const r=this._ensureRuleMap(e,t);for(;r.has(n);)n=s.Tools.generateRandomId(4);return n}};exports.RangeProtectionRuleModel=ii([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const ai=(o,e)=>{const t=o.get(exports.RangeProtectionRuleModel),n=e.ruleIds.map(i=>t.getRule(e.unitId,e.subUnitId,i)).filter(i=>!!i);return{id:Ke.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:n}}},Ye={id:"sheet.mutation.delete-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,ruleIds:r}=e,i=o.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.deleteRule(t,n,a)}),!0}},ci=o=>{const e={...o,ruleIds:o.rules.map(t=>t.id)};return{id:Ye.id,params:e}},Ke={id:"sheet.mutation.add-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rules:r}=e,i=o.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.addRule(t,n,a)}),!0}},Cn={type:s.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(exports.RangeProtectionRuleModel),{rule:i,permissionId:a}=e,{unitId:c,subUnitId:u,ranges:l,name:d,description:m}=i,g=[{ranges:l,permissionId:a,id:r.createRuleId(c,u),name:d,description:m,unitType:i.unitType,unitId:c,subUnitId:u}];if(await t.executeCommand(Ke.id,{unitId:c,subUnitId:u,rules:g})){const h=[{id:Ke.id,params:{unitId:c,subUnitId:u,rules:g}}],S=[{id:Ye.id,params:{unitId:c,subUnitId:u,ruleIds:g.map(v=>v.id)}}];n.pushUndoRedo({unitID:c,redoMutations:h,undoMutations:S})}return!0}},wr={type:s.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),{unitId:r,subUnitId:i,rule:a}=e,c={unitId:r,subUnitId:i,ruleIds:[a.id]};return await t.executeCommand(Ye.id,c)&&n.pushUndoRedo({unitID:r,redoMutations:[{id:Ye.id,params:c}],undoMutations:[{id:Ke.id,params:{unitId:r,subUnitId:i,rules:[a]}}]}),!0}},ee={id:"sheet.mutation.set-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:t,subUnitId:n,rule:r,ruleId:i}=e;return o.get(exports.RangeProtectionRuleModel).setRule(t,n,i,r),!0}},ui=(o,e)=>{const{unitId:t,subUnitId:n,ruleId:r}=e,a=o.get(exports.RangeProtectionRuleModel).getRule(t,n,r);return a?{id:ee.id,params:{...e,rule:a}}:null},vn={type:s.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(o,e){if(!e)return!1;const t=o.get(s.ICommandService),n=o.get(exports.RangeProtectionRuleModel),r=o.get(s.IUndoRedoService),{rule:i,permissionId:a,oldRule:c}=e,{unitId:u,subUnitId:l,ranges:d,name:m,description:g}=i;if(i.id){const R={unitId:u,subUnitId:l,ruleId:i.id,rule:{ranges:d,permissionId:a,id:n.createRuleId(u,l),name:m,description:g}};if(await t.executeCommand(ee.id,R)){const S=[{id:ee.id,params:R}],v=[{id:ee.id,params:{unitId:u,subUnitId:l,ruleId:i.id,rule:c}}];r.pushUndoRedo({unitID:u,redoMutations:S,undoMutations:v})}}return!0}},yr="maxCellsPerSheet",li=3e6,_r="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var di=Object.defineProperty,mi=Object.getOwnPropertyDescriptor,gi=(o,e,t,n)=>{for(var r=n>1?void 0:n?mi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&di(e,t,r),r},jt=(o,e)=>(t,n)=>e(t,n,o);let ft=class extends s.Disposable{constructor(o,e,t){var r;super(),this._commandService=o,this._configService=e,this._dataSyncPrimaryController=t,[z,Ie,pe,De,Ae,_e,be,ve,Me,Je,G,hn,H,Rn,yt,$t,gr].forEach(i=>{var a;this._commandService.registerCommand(i),(a=this._dataSyncPrimaryController)==null||a.registerSyncingMutations(i)}),((r=this._configService.getConfig(_r))!=null?r:!1)||[bt,qt,Ut,Hn,Nt,kt,rn,un,Oo,ko,$e,Ot,Dt,Eo,To,Ve,Do,Wt,Tt,At,at,it,Qt,Bo,er,Zo,Qo,jo,Go,Xe,Fo,Ho,en,He,Ge,wt,ys,Yo,Ne,nr,st,ln,nn,ze,qe,qo,Ko,xt,Lt,te,sr,tt,Xo,rr,or,tr,Sn,Vt,ct,we,ar,ke,sn,cr,nt,cn,ye,dn,he,K,Cr,hr,Rr,Sr,lr,Mr,vr,fr,pr,Ir,Cn,wr,vn,Ke,Ye,ee].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i))),this._configService.setConfig(yr,li)}};ft=gi([s.OnLifecycle(s.LifecycleStages.Starting,ft),jt(0,s.ICommandService),jt(1,s.IConfigService),jt(2,V.Optional(Vr.DataSyncPrimaryController))],ft);var hi=Object.defineProperty,Ri=Object.getOwnPropertyDescriptor,Si=(o,e,t,n)=>{for(var r=n>1?void 0:n?Ri(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&hi(e,t,r),r},kn=(o,e)=>(t,n)=>e(t,n,o);let pt=class extends s.Disposable{constructor(o,e){super(),this._univerInstanceService=o,this._commandService=e,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id!==se.SetFormulaCalculationResultMutation.id)return;const e=o.params,{unitData:t}=e,n=Object.keys(t),r=[];return n.forEach(a=>{const c=t[a];if(c==null)return!0;Object.keys(c).forEach(l=>{const d=c[l];if(d==null)return!0;const m=this._getMergedCellData(a,l,d),g={subUnitId:l,unitId:a,cellValue:m};r.push({id:z.id,params:g})})}),r.every(a=>this._commandService.executeCommand(a.id,a.params,{onlyLocal:!0}))}))}_getMergedCellData(o,e,t){const n=this._univerInstanceService.getUniverSheetInstance(o),r=n==null?void 0:n.getStyles(),i=n==null?void 0:n.getSheetBySheetId(e),a=i==null?void 0:i.getCellMatrix(),c=new s.ObjectMatrix(t);return c.forValue((u,l,d)=>{const m=a==null?void 0:a.getValue(u,l),g=se.handleNumfmtInCell(m,d,r);c.setValue(u,l,g)}),c.clone()}};pt=Si([s.OnLifecycle(s.LifecycleStages.Ready,pt),kn(0,V.Inject(s.IUniverInstanceService)),kn(1,s.ICommandService)],pt);var Ci=Object.defineProperty,vi=Object.getOwnPropertyDescriptor,fi=(o,e,t,n)=>{for(var r=n>1?void 0:n?vi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Ci(e,t,r),r},dt=(o,e)=>(t,n)=>e(t,n,o);let It=class extends s.Disposable{constructor(o,e,t,n){super(),this._commandService=o,this._featureCalculationManagerService=e,this._univerInstanceService=t,this._formulaDataModel=n}_initialize(){const o="test",e="workbook-01",t="sheet-0011",n={[e]:{[t]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[t]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(o,{unitId:e,subUnitId:t,dependencyRanges:[{unitId:e,sheetId:t,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:n,dirtyRanges:r})})}};It=fi([s.OnLifecycle(s.LifecycleStages.Ready,It),dt(0,s.ICommandService),dt(1,se.IFeatureCalculationManagerService),dt(2,s.IUniverInstanceService),dt(3,V.Inject(se.FormulaDataModel))],It);const T={MoveRangeCommandId:Gn,InsertRowCommandId:Po,InsertColCommandId:No,RemoveColCommandId:$o,RemoveRowCommandId:Vo,DeleteRangeMoveLeftCommandId:_o,DeleteRangeMoveUpCommandId:bo,InsertRangeMoveDownCommandId:vs,InsertRangeMoveRightCommandId:Uo,MoveColsCommandId:Lo,MoveRowsCommandId:xo};var x=(o=>(o[o.Set=0]="Set",o[o.Delete=1]="Delete",o[o.HorizontalMove=2]="HorizontalMove",o[o.VerticalMove=3]="VerticalMove",o[o.Unknown=4]="Unknown",o))(x||{});const mt=Number.MAX_SAFE_INTEGER,fe=o=>{const e={...o},t=Number.isNaN(e.startRow)&&Number.isNaN(e.endRow)&&!Number.isNaN(e.startColumn)&&!Number.isNaN(e.endColumn),n=Number.isNaN(e.startColumn)&&Number.isNaN(e.endColumn)&&!Number.isNaN(e.startRow)&&!Number.isNaN(e.endRow);return(e.rangeType===s.RANGE_TYPE.COLUMN||t)&&(e.startRow=0,e.endRow=mt),(e.rangeType===s.RANGE_TYPE.ROW||n)&&(e.startColumn=0,e.endColumn=mt),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=mt,e.startRow=0,e.endRow=mt),e},le=o=>{let e=o.rangeType;return o.rangeType===s.RANGE_TYPE.COLUMN?e=s.RANGE_TYPE.ROW:o.rangeType===s.RANGE_TYPE.ROW&&(e=s.RANGE_TYPE.COLUMN),{startRow:o.startColumn,endRow:o.endColumn,startColumn:o.startRow,endColumn:o.endRow,rangeType:e}},ot=(o,e,t)=>{const n={...t},r={...e},i=(S,v)=>{const p=Math.max(S.start,v.start),I=Math.min(S.end,v.end);return I<p?null:{start:p,end:I}},a=S=>S.end-S.start+1,c=(S,v)=>({start:S.start-v.start,end:S.start-v.start+S.end-S.start}),u=(S,v)=>({start:v.start+S.start,end:v.start+S.start+S.end-S.start}),l=e.start>o.start;if(l){const S=Math.min(o.end,e.start)-o.start+1;r.start-=S,r.end-=S}const d=a(o),m=d,g=i(o,n),R=g&&a(g)>=a(n);if(o.end<n.start)n.start-=d,n.end-=d;else if(g){const S=a(g);if(R){const v=c(n,o),p=u(v,r);n.start=p.start,n.end=p.end}else g.start>o.start?l?(n.end-=S+d,n.start-=d):n.end-=S:l?n.end-=S:n.start>o.start&&n.end>o.end?(n.start-=d,n.end-=d+S):n.end-=S}const h=i(r,n);return R||(r.start<=n.start?(n.start+=m,n.end+=m):h&&(l?r.end<=n.start||r.start<=n.start&&r.end>=n.start?(n.start+=m,n.end+=m):r.start>=n.start&&r.start<=n.end&&(n.end+=m):n.start<r.start&&n.end>r.start?n.end+=m:(n.start>=r.end||n.start>=r.start&&n.start<=r.end)&&(n.end+=m,n.start+=m))),{step:n.start-t.start,length:a(n)-a(t)}},fn=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!n||!t)return[];const r=fe(t),i=fe(n),a=fe(e),c=ot({start:r.startRow,end:r.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return c===null?[{type:x.Delete}]:[{type:x.VerticalMove,step:c.step||0,length:c.length||0}]},pi=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!t||!n)return[e];const{startRow:r}=t,{startRow:i}=n,a=n.endRow-n.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(e,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,a,i),s.queryObjectMatrix(c,l=>l===1)},pn=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!n||!t)return[];const r=fe(t),i=fe(n),a=fe(e),c=ot({start:r.startColumn,end:r.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return c===null?[{type:x.Delete}]:[{type:x.HorizontalMove,step:c.step||0,length:c.length||0}]},Ii=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!t||!n)return[e];const{startColumn:r}=t,{startColumn:i}=n,a=n.endColumn-n.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(e,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,a,i),s.queryObjectMatrix(c,u=>u===1)},br=(o,e)=>{var i,a;const t=(i=o.params)==null?void 0:i.toRange,n=(a=o.params)==null?void 0:a.fromRange;if(!t||!n)return[];const r=[];if(s.Rectangle.contains(t,e)&&r.push({type:x.Delete}),s.Rectangle.contains(n,e)){r.push({type:x.Delete});const c=s.Rectangle.getRelativeRange(e,n),u=s.Rectangle.getPositionRange(c,t);return[{type:x.Set,range:u}]}return r},Mi=(o,e)=>{var m,g;const t=(m=o.params)==null?void 0:m.toRange,n=(g=o.params)==null?void 0:g.fromRange;if(!t||!n)return[e];if(!s.Rectangle.intersects(n,e)&&!s.Rectangle.intersects(t,e))return[e];if(s.Rectangle.contains(n,e)){const R=s.Rectangle.getRelativeRange(e,n);return[s.Rectangle.getPositionRange(R,t)]}const r=new s.ObjectMatrix;s.Range.foreach(e,(R,h)=>{r.setValue(R,h,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(n,e);a&&s.Range.foreach(a,(R,h)=>{r.getValue(R,h)&&(r.setValue(R,h,void 0),i.setValue(R,h,1))});const c=t.startColumn-n.startColumn,u=t.startRow-n.startRow,l={startColumn:t.startColumn-c,endColumn:t.endColumn-c,startRow:t.startRow-u,endRow:t.endRow-u};return l&&s.Range.foreach(l,(R,h)=>{var p;const S=R+u,v=h+c;r.setValue(S,v,(p=i.getValue(R,h))!=null?p:0)}),s.queryObjectMatrix(r,R=>R===1)},We=(o,e)=>{const t=fe(o),n=fe(e),r=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(t.startRow<=n.startRow&&t.endRow>=n.endRow){if(n.startColumn<t.startColumn&&n.endColumn>=t.startColumn&&n.endColumn<=t.endColumn||n.startColumn<t.startColumn&&n.endColumn>=t.endColumn){const a=s.Rectangle.getIntersects(n,t);if(a)return{step:0,length:-r(a)}}if(n.startColumn>=t.startColumn&&n.endColumn<=t.endColumn&&i(t)>=i(n))return null;if(n.startColumn>=t.startColumn&&n.startColumn<=t.endColumn&&n.endColumn>t.endColumn){const a=s.Rectangle.getIntersects(n,t);if(a){const c=-r(a);return{step:-(r(t)-r(a)),length:c}}}if(n.startColumn>t.endColumn)return{step:-r(t),length:0}}return{step:0,length:0}},In=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=We(t,e);if(!r)n.push({type:x.Delete});else{const{step:a,length:c}=r;n.push({type:x.HorizontalMove,step:a,length:c})}return n},Mn=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=We(le(t),le(e));if(!r)n.push({type:x.Delete});else{const{step:a,length:c}=r;n.push({type:x.VerticalMove,step:a,length:c})}return n},xe=(o,e)=>{const t=fe(o),n=fe(e),r=i=>i.endColumn-i.startColumn+1;if(t.startRow<=n.startRow&&t.endRow>=n.endRow){if(n.startColumn<t.startColumn&&n.endColumn>=t.startColumn&&n.endColumn<=t.endColumn||n.startColumn<t.startColumn&&n.endColumn>=t.endColumn)return{step:0,length:r(t)};if(n.startColumn>=t.startColumn&&n.endColumn<=t.endColumn||n.startColumn>t.startColumn&&n.startColumn<=t.endColumn&&n.endColumn>t.endColumn||n.startColumn>=t.endColumn)return{step:r(t),length:0}}return{step:0,length:0}};function wi(o,e,t){const n=[];if(s.Rectangle.contains(e,t)&&n.push({type:x.Delete}),s.Rectangle.contains(o,t)){n.push({type:x.Delete});const r=s.Rectangle.getRelativeRange(t,o),i=s.Rectangle.getPositionRange(r,e);return[{type:x.Set,range:i}]}return n}const wn=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=xe(le(t),le(e)),{step:i,length:a}=r;return n.push({type:x.VerticalMove,step:i,length:a}),n},yn=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=xe(t,e),{step:i,length:a}=r;return n.push({type:x.HorizontalMove,step:i,length:a}),n},Ur=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=xe(le(t),le(e)),{step:i,length:a}=r;return n.push({type:x.VerticalMove,step:i,length:a}),n},yi=(o,e)=>{var u;const t=(u=o.params)==null?void 0:u.range;if(!t)return[e];const n=t.endRow-t.startRow+1,r={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),a&&s.Range.foreach(a,(l,d)=>{c.setValue(l+n,d,1)}),s.queryObjectMatrix(c,l=>l===1)},Pr=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=xe(t,e),{step:i,length:a}=r;return n.push({type:x.HorizontalMove,step:i,length:a}),n},_i=(o,e)=>{var u;const t=(u=o.params)==null?void 0:u.range;if(!t)return[e];const n=t.endColumn-t.startColumn+1,r={...t,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),a&&s.Range.foreach(a,(l,d)=>{c.setValue(l,d+n,1)}),s.queryObjectMatrix(c,l=>l===1)},Tr=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=We(t,e);if(!r)n.push({type:x.Delete});else{const{step:a,length:c}=r;n.push({type:x.HorizontalMove,step:a,length:c})}return n},bi=(o,e)=>{var l;const t=(l=o.params)==null?void 0:l.range;if(!t)return[e];const n={startRow:t.startRow,endRow:t.endRow,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},r=t.endColumn-t.startColumn+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,n),c=s.Rectangle.getIntersects(n,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),i&&s.Range.foreach(i,(d,m)=>{u.setValue(d,m-r,0)}),a.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Er=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=We(le(t),le(e));if(!r)n.push({type:x.Delete});else{const{step:a,length:c}=r;n.push({type:x.VerticalMove,step:a,length:c})}return n},Ui=(o,e)=>{var l;const t=(l=o.params)==null?void 0:l.range;if(!t)return[e];const n={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},r=t.endRow-t.startRow+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,n),c=s.Rectangle.getIntersects(n,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),i&&s.Range.foreach(i,(d,m)=>{u.setValue(d-r,m,0)}),a.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Le=(o,e)=>{let t={...e};return o.forEach(n=>{switch(n.type){case x.Delete:{t=null;break}case x.HorizontalMove:{if(!t)return;t.startColumn+=n.step,t.endColumn+=n.step+(n.length||0);break}case x.VerticalMove:{if(!t)return;t.startRow+=n.step,t.endRow+=n.step+(n.length||0);break}case x.Set:{t=n.range;break}}}),t&&(t.endColumn<t.startColumn||t.endRow<t.startRow)?null:t},Nr=(o,e)=>{let t=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:{t=Tr(e,o);break}case T.DeleteRangeMoveUpCommandId:{t=Er(e,o);break}case T.InsertColCommandId:{t=yn(e,o);break}case T.InsertRangeMoveDownCommandId:{t=Ur(e,o);break}case T.InsertRangeMoveRightCommandId:{t=Pr(e,o);break}case T.InsertRowCommandId:{t=wn(e,o);break}case T.MoveColsCommandId:{t=pn(e,o);break}case T.MoveRangeCommandId:{t=br(e,o);break}case T.MoveRowsCommandId:{t=fn(e,o);break}case T.RemoveColCommandId:{t=In(e,o);break}case T.RemoveRowCommandId:{t=Mn(e,o);break}}return Le(t,o)},Pi=(o,e,t)=>Ni(e,t).some(r=>s.Rectangle.intersects(r,o))?Nr(o,e):o,Ti=(o,e)=>{let t=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:return bi(e,o);case T.DeleteRangeMoveUpCommandId:return Ui(e,o);case T.InsertRangeMoveDownCommandId:return yi(e,o);case T.InsertRangeMoveRightCommandId:return _i(e,o);case T.InsertColCommandId:{t=yn(e,o);break}case T.InsertRowCommandId:{t=wn(e,o);break}case T.MoveColsCommandId:return Ii(e,o);case T.MoveRangeCommandId:return Mi(e,o);case T.MoveRowsCommandId:return pi(e,o);case T.RemoveColCommandId:{t=In(e,o);break}case T.RemoveRowCommandId:{t=Mn(e,o);break}}return Le(t,o)};function Ei(o,e){const{id:t,params:n}=e;let r={length:0,step:0,type:x.Unknown};switch(t){case Je.id:r.type=x.Delete;break;case _e.id:r=ot({start:n.sourceRange.startRow,end:n.sourceRange.endRow},{start:n.targetRange.startRow,end:n.targetRange.endRow},{start:o.startRow,end:o.endRow}),r.type=x.VerticalMove;break;case be.id:r=ot({start:n.sourceRange.startColumn,end:n.sourceRange.endColumn},{start:n.targetRange.startColumn,end:n.targetRange.endColumn},{start:o.startColumn,end:o.endColumn}),r.type=x.HorizontalMove;break;case ve.id:r=We(n.range,o),r?r.type=x.HorizontalMove:r={step:0,length:0,type:x.Delete};break;case Me.id:r=We(le(n.range),le(o)),r?r.type=x.VerticalMove:r={step:0,length:0,type:x.Delete};break;case pe.id:r=xe(le(n.range),le(o)),r.type=x.VerticalMove;break;case Ie.id:r=xe(n.range,o),r.type=x.HorizontalMove;break;case Ae.id:r=wi(new s.ObjectMatrix(n.from).getRange(),new s.ObjectMatrix(n.to).getRange(),o);break}return r?Array.isArray(r)?Le(r,o):Le([r],o):o}function Ni(o,e){var n,r,i,a;const{selectionManagerService:t}=e;switch(o.id){case T.MoveColsCommandId:{const c=o.params;return[c.fromRange,{...c.toRange,startColumn:c.toRange.startColumn-.5,endColumn:c.toRange.endColumn-.5}]}case T.MoveRowsCommandId:{const c=o.params;return[c.fromRange,{...c.toRange,startRow:c.toRange.startRow-.5,endRow:c.toRange.startRow-.5}]}case T.MoveRangeCommandId:{const c=o;return[c.params.fromRange,c.params.toRange]}case T.InsertRowCommandId:{const u=o.params.range;return[{...u,startRow:u.startRow-.5,endRow:u.endRow-.5}]}case T.InsertColCommandId:{const u=o.params.range;return[{...u,startColumn:u.startColumn-.5,endColumn:u.endColumn-.5}]}case T.RemoveRowCommandId:return[o.params.range];case T.RemoveColCommandId:return[o.params.range];case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const u=((n=o.params)==null?void 0:n.range)||((r=t.getSelectionRanges())==null?void 0:r[0]);return u?[u]:[]}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const u=((i=o.params)==null?void 0:i.range)||((a=t.getSelectionRanges())==null?void 0:a[0]);return u?[u]:[]}}}function ki(o){switch(o.id){case be.id:{const e=o.params;return[e.sourceRange,{...e.targetRange,startColumn:e.targetRange.startColumn-.5,endColumn:e.targetRange.startColumn-.5}]}case _e.id:{const e=o.params;return[e.sourceRange,{...e.targetRange,startRow:e.targetRange.startRow-.5,endRow:e.targetRange.startRow-.5}]}case Ae.id:{const e=o.params;return[new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange()]}case Ie.id:{const t=o.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case pe.id:{const t=o.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case ve.id:return[o.params.range];case Me.id:return[o.params.range]}}var Oi=Object.defineProperty,Di=Object.getOwnPropertyDescriptor,Ai=(o,e,t,n)=>{for(var r=n>1?void 0:n?Di(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Oi(e,t,r),r},gt=(o,e)=>(t,n)=>e(t,n,o);const Wi=s.createInterceptorKey("MERGE_REDO"),xi=s.createInterceptorKey("MERGE_UNDO"),On=Math.floor(Number.MAX_SAFE_INTEGER/10);class Li extends s.Disposable{constructor(e,t,n,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=n,this._callback=r,this._skipIntersects=i}onMutation(e){if(e.params.unitId!==this._unitId||e.params.subUnitId!==this._subUnitId||!this._range)return;if(this._skipIntersects){const r=ki(e);if(r!=null&&r.some(i=>s.Rectangle.intersects(i,this._range)))return!1}const t=Ei(this._range,e);if(t&&s.Rectangle.equals(t,this._range))return!1;const n=this._range;this._range=t,this._callback(n,t)}}exports.RefRangeService=class extends s.Disposable{constructor(t,n,r,i){super();C(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Wi,MERGE_UNDO:xi}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",Vi());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:t=>{const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Dn(this._univerInstanceService),i=An(this._univerInstanceService),u=((()=>{switch(t.id){case T.MoveColsCommandId:{const R=t.params,h=Math.min(R.fromRange.startColumn,R.toRange.startColumn);return this._checkRange([{...R.fromRange,startColumn:h,endColumn:n.getColumnCount()-1}],r,i)}case T.MoveRowsCommandId:{const R=t.params,h=Math.min(R.fromRange.startRow,R.toRange.startRow);return this._checkRange([{...R.fromRange,startRow:h,endRow:n.getRowCount()-1}],r,i)}case T.MoveRangeCommandId:{const R=t;return this._checkRange([R.params.fromRange,R.params.toRange],r,i)}case T.InsertRowCommandId:{const S={startRow:t.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([S],r,i)}case T.InsertColCommandId:{const h=t.params.range.startColumn,S={startRow:0,endRow:n.getRowCount()-1,startColumn:h,endColumn:n.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([S],r,i)}case T.RemoveRowCommandId:{const S={startRow:t.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([S],r,i)}case T.RemoveColCommandId:{const h=t.params.range.startColumn,S={startRow:0,endRow:n.getRowCount()-1,startColumn:h,endColumn:n.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([S],r,i)}case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const h=t.params.range||Wn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:On};return this._checkRange([S],r,i)}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const h=t.params.range||Wn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:On,endRow:h.endRow};return this._checkRange([S],r,i)}}})()||[]).reduce((R,h)=>{const S=h(t);return R.push(S),R},[]).reduce((R,h)=>{var S,v;return R.redos.push(...h.redos),R.undos.push(...h.undos),R.preRedos.push(...(S=h.preRedos)!=null?S:[]),R.preUndos.push(...(v=h.preUndos)!=null?v:[]),R},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:g,preRedos:l,preUndos:m}}})});C(this,"_checkRange",(t,n,r)=>{const i=xn(n,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(l=>{const d=a.get(l),m=this._serializer.deserialize(l),g={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn,rangeType:m.rangeType&&+m.rangeType};t.some(R=>s.Rectangle.intersects(R,g))&&d&&d.forEach(R=>{c.add(R)})}),[...c]}return[]});C(this,"registerRefRange",(t,n,r,i)=>{const a=r||Dn(this._univerInstanceService),c=i||An(this._univerInstanceService),u=xn(a,c),l=this._serializer.serialize(t);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(n):d.set(l,new Set([n])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(n),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._commandService=t,this._sheetInterceptorService=n,this._univerInstanceService=r,this._selectionManagerService=i,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}watchRange(t,n,r,i,a){let c;this._watchRanges.size===0&&(c=this._commandService.onCommandExecuted(m=>{if(m.type!==s.CommandType.MUTATION)return!1;for(const g of this._watchRanges)g.onMutation(m)}));const u=new Li(t,n,r,i,a);this._watchRanges.add(u);const l=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(c==null||c.dispose(),c=null)}),d=this.disposeWithMe(l);return s.toDisposable(()=>{d.dispose(),l.dispose()})}};exports.RefRangeService=Ai([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),gt(0,s.ICommandService),gt(1,V.Inject(exports.SheetInterceptorService)),gt(2,V.Inject(s.IUniverInstanceService)),gt(3,V.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Dn(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function An(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function Wn(o){return o.getSelectionRanges()||[]}function xn(o,e){return`${o}_${e}`}function Vi(){const o=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:t=>{const n=o.reduce((i,a,c)=>(i[String(c)]=a,i),{});return t.split(e).reduce((i,a,c)=>{const u=String(c);return a&&n[u]&&(i[n[u]]=a),i},{})},serialize:t=>o.reduce((n,r,i)=>{const a=t[r];return a!==void 0?`${n}${i>0?e:""}${a}`:`${n}`},"")}}var $i=Object.defineProperty,Bi=Object.getOwnPropertyDescriptor,ji=(o,e,t,n)=>{for(var r=n>1?void 0:n?Bi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&$i(e,t,r),r},Fe=(o,e)=>(t,n)=>e(t,n,o);const Fi=[Ie.id,pe.id,ve.id,Me.id],Hi=[_e.id,be.id];function kr(o,e){let t=o;if(e!==void 0){const n=[];for(let r=0;r<t.length;r++){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=t[r];if(e===s.Dimension.ROWS)for(let l=i;l<=a;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};n.push(d)}else if(e===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:i,endRow:a,startColumn:l,endColumn:l};n.push(d)}}t=n}return t}exports.MergeCellController=class extends s.Disposable{constructor(t,n,r,i,a,c){super();C(this,"disposableCollection",new s.DisposableCollection);this._commandService=t,this._refRangeService=n,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const t=this;this._sheetInterceptorService.interceptCommand({getMutations(n){switch(n.id){case bt.id:case Ut.id:{const r=t._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),i=r.getUnitId(),a=r.getActiveSheet(),c=a.getSheetId(),u=a.getConfig().mergeData,l=t._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:i,subUnitId:c,ranges:l},g=ue(t._injector,m),R=[{id:G.id,params:m}],h=[{id:H.id,params:g}];return{redos:R,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(t,n,r){switch(t.id){case T.MoveColsCommandId:{const i=t.params;return this._handleMoveColsCommand(i,n,r)}case T.MoveRowsCommandId:{const i=t.params;return this._handleMoveRowsCommand(i,n,r)}case Ve.id:{const i=t.params,a=i.unitId||n,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case $e.id:{const i=t.params,a=i.unitId||n,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case at.id:{const i=t.params;return this._handleRemoveColCommand(i,n,r)}case it.id:{const i=t.params;return this._handleRemoveRowCommand(i,n,r)}case Tt.id:{const i=t.params;return this._handleMoveRangeCommand(i,n,r)}case Dt.id:{const i=t.params;return this._handleInsertRangeMoveRightCommand(i,n,r)}case Ot.id:{const i=t.params;return this._handleInsertRangeMoveDownCommand(i,n,r)}case kt.id:{const i=t.params;return this._handleDeleteRangeMoveUpCommand(i,n,r)}case Nt.id:{const i=t.params;return this._handleDeleteRangeMoveLeftCommand(i,n,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(r);if(!a)return;const c=a==null?void 0:a.getSheetBySheetId(i);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),l=d=>this.refRangeHandle(d,r,i);u.forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,l,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Vt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===H.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(i.unitId,i.subUnitId)}}));const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(n){const r=n.getActiveSheet();t(n.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:n,subUnitId:r,ranges:[]},l={unitId:n,subUnitId:r,ranges:[]},{fromRange:d}=t,{startRow:m,endRow:g}=d;if(c.forEach(S=>{if(m<=S.startRow&&g>=S.endRow){u.ranges.push(S);const v=fn({id:T.MoveRowsCommandId,params:t},S),p=Le(v,S);p&&l.ranges.push(p)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),h=Ce(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:h},{id:H.id,params:R}]}}_handleMoveColsCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:n,subUnitId:r,ranges:[]},l={unitId:n,subUnitId:r,ranges:[]},{fromRange:d}=t,{startColumn:m,endColumn:g}=d;if(c.forEach(S=>{if(m<=S.startColumn&&g>=S.endColumn){u.ranges.push(S);const v=pn({id:T.MoveColsCommandId,params:t},S),p=Le(v,S);p&&l.ranges.push(p)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),h=Ce(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:h},{id:H.id,params:R}]}}_handleMoveRangeCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=a.getMergeData(),u=c.filter(h=>s.Rectangle.intersects(h,t.fromRange)),l=c.filter(h=>s.Rectangle.intersects(h,t.toRange)),d=u.map(h=>s.Rectangle.getRelativeRange(h,t.fromRange)).map(h=>s.Rectangle.getPositionRange(h,t.toRange)),m=kr(d).filter(h=>!c.some(S=>s.Rectangle.equals(h,S))),g=[{id:G.id,params:{unitId:n,subUnitId:r,ranges:u}},{id:G.id,params:{unitId:n,subUnitId:r,ranges:l}},{id:H.id,params:{unitId:n,subUnitId:r,ranges:m}}],R=[{id:G.id,params:{unitId:n,subUnitId:r,ranges:m}},{id:H.id,params:{unitId:n,subUnitId:r,ranges:l}},{id:H.id,params:{unitId:n,subUnitId:r,ranges:u}}];return{redos:g,undos:R}}_handleInsertRowCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((I,f)=>(u>f.startRow&&u<=f.endRow&&I.push(f),I),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((I,f)=>{if(u>f.startRow&&u<=f.endRow){const w=l-u+1;f.endRow+=w,this._checkIsMergeCell(f)&&I.push(f)}return I},[]),g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h),v=[{id:G.id,params:g},{id:H.id,params:h}],p=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:v,undos:p}}_handleInsertColCommand(t,n,r){const{range:i}=t,a=Re(this._univerInstanceService,n);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((I,f)=>(u>f.startColumn&&u<=f.endColumn&&I.push(f),I),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((I,f)=>{if(u>f.startColumn&&u<=f.endColumn){const w=l-u+1;f.endColumn+=w,this._checkIsMergeCell(f)&&I.push(f)}return I},[]),g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h),v=[{id:G.id,params:g},{id:H.id,params:h}],p=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:v,undos:p}}_handleRemoveColCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(c,M)&&w.push(M),w),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(c,M)){if(u<=M.startColumn&&l>=M.endColumn)return w;u>=M.startColumn&&l<=M.endColumn?M.endColumn-=l-u+1:u<M.startColumn?(M.startColumn=u,M.endColumn-=l-u+1):l>M.endColumn&&(M.endColumn=u-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h),v=[{id:G.id,params:g}],p=[{id:H.id,params:h}],I=[{id:G.id,params:S}],f=[{id:H.id,params:R}];return{preUndos:I,undos:f,preRedos:v,redos:p}}_handleRemoveRowCommand(t,n,r){const{range:i}=t,a=Re(this._univerInstanceService,n);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(i,M)&&w.push(M),w),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(i,M)){if(u<=M.startRow&&l>=M.endRow)return w;u>=M.startRow&&l<=M.endRow?M.endRow-=l-u+1:u<M.startRow?(M.startRow=u,M.endRow-=l-u+1):l>M.endRow&&(M.endRow=u-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h),v=[{id:G.id,params:g}],p=[{id:H.id,params:h}],I=[{id:G.id,params:S}],f=[{id:H.id,params:R}];return{preUndos:I,undos:f,preRedos:v,redos:p}}_handleInsertRangeMoveRightCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(v=>{const{startRow:p,endRow:I,startColumn:f,endColumn:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:f,endRow:I,endColumn:u},v)&&(d.push(v),s.Rectangle.contains({startRow:p,startColumn:f,endRow:I,endColumn:u},v))){const P=w-f+1;m.push({startRow:v.startRow,startColumn:v.startColumn+P,endRow:v.endRow,endColumn:v.endColumn+P})}});const g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h);return{redos:[{id:G.id,params:g},{id:H.id,params:h}],undos:[{id:H.id,params:R},{id:G.id,params:S}]}}_handleInsertRangeMoveDownCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(I=>{const{startRow:f,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:u,endColumn:M},I)&&(d.push(I),s.Rectangle.contains({startRow:f,startColumn:w,endRow:u,endColumn:M},I))){const N=y-f+1;m.push({startRow:I.startRow+N,startColumn:I.startColumn,endRow:I.endRow+N,endColumn:I.endColumn})}});const g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h),v=[{id:G.id,params:g},{id:H.id,params:h}],p=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:v,undos:p}}_handleDeleteRangeMoveUpCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(I=>{const{startRow:f,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:u,endColumn:M},I)&&(d.push(I),s.Rectangle.contains({startRow:f,startColumn:w,endRow:u,endColumn:M},I))){const N=y-f+1,D=s.Rectangle.moveVertical(I,-N);m.push(D)}});const g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h),v=[{id:G.id,params:g},{id:H.id,params:h}],p=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:v,undos:p}}_handleDeleteRangeMoveLeftCommand(t,n,r){const i=Re(this._univerInstanceService,n);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(v=>{const{startRow:p,endRow:I,startColumn:f,endColumn:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:f,endRow:I,endColumn:u},v)&&(d.push(v),s.Rectangle.contains({startRow:p,startColumn:f,endRow:I,endColumn:u},v))){const P=w-f+1;m.push({startRow:v.startRow,startColumn:v.startColumn-P,endRow:v.endRow,endColumn:v.endColumn-P})}});const g={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,g),h={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,h);return{redos:[{id:G.id,params:g},{id:H.id,params:h}],undos:[{id:H.id,params:R},{id:G.id,params:S}]}}_checkIsMergeCell(t){return!(t.startRow===t.endRow&&t.startColumn===t.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Hi.includes(t.id)){if(!t.params)return;const n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,l=c?i.startRow:i.startColumn,d=c?a.startRow:a.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(v=>{let{startRow:p,endRow:I,startColumn:f,endColumn:w,rangeType:M}=v;s.Rectangle.intersects(v,i)||(c?l<p&&d>I?(p-=u,I-=u):l>I&&d<=p&&(p+=u,I+=u):l<f&&d>w?(f-=u,w-=u):l>w&&d<=f&&(f+=u,w+=u)),v.startRow===v.endRow&&v.startColumn===v.endColumn||g.push({startRow:p,endRow:I,startColumn:f,endColumn:w,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:R,subUnitId:h}=t.params,S=v=>this.refRangeHandle(v,R,h);g.forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,S,R,h))})}if(Fi.includes(t.id)){const n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=r.getConfig().mergeData,a=t.params;if(!a)return;const{range:c}=a,u=t.id.includes("row"),l=t.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-d+1,R=[];i.forEach(p=>{let{startRow:I,endRow:f,startColumn:w,endColumn:M,rangeType:y}=p;l?u?d<=I&&(I+=g,f+=g):d<=w&&(w+=g,M+=g):u?m<I&&(I-=g,f-=g):m<w&&(w-=g,M-=g),p.startRow===p.endRow&&p.startColumn===p.endColumn||R.push({startRow:I,endRow:f,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=R,this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=t.params,v=p=>this.refRangeHandle(p,h,S);R.forEach(p=>{this.disposableCollection.add(this._refRangeService.registerRefRange(p,v,h,S))})}}))}};exports.MergeCellController=ji([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Fe(0,V.Inject(s.ICommandService)),Fe(1,V.Inject(exports.RefRangeService)),Fe(2,V.Inject(s.IUniverInstanceService)),Fe(3,V.Inject(V.Injector)),Fe(4,V.Inject(exports.SheetInterceptorService)),Fe(5,V.Inject(exports.SelectionManagerService))],exports.MergeCellController);function Re(o,e){return e?o.getUniverSheetInstance(e):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function Se(o,e){return e?o.getSheetBySheetId(e):o.getActiveSheet()}var Gi=Object.defineProperty,qi=Object.getOwnPropertyDescriptor,zi=(o,e,t,n)=>{for(var r=n>1?void 0:n?qi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Gi(e,t,r),r},Ft=(o,e)=>(t,n)=>e(t,n,o);exports.NumfmtService=class extends s.Disposable{constructor(e,t,n){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=n}getValue(e,t,n,r){const i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;const c=i.getStyles(),u=a.getCellRaw(n,r);if(u!=null&&u.s){const l=c.get(u.s);if(l!=null&&l.n)return l.n}return null}deleteValues(e,t,n){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles();n.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=i.getCellRaw(u,l);if(!d)return;const m=d==null?void 0:d.s,R={...m&&a.get(m)||{}};delete R.n;const h=a.setValue(R);d.s=h})})}setValues(e,t,n){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles(),c=i.getCellMatrix();n.forEach(u=>{u.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=i.getCellRaw(d,m);if(g){const h={...g.s&&a.get(g.s)||{},n:{pattern:u.pattern}},S=a.setValue(h);g.s=S}else{const R={n:{pattern:u.pattern}},h=a.setValue(R);h&&c.setValue(d,m,{s:h})}})})})}};exports.NumfmtService=zi([Ft(0,s.IResourceManagerService),Ft(1,s.IUniverInstanceService),Ft(2,s.ILogService)],exports.NumfmtService);const Gt=()=>[co,lo,ao,vo,po,mo,Mo,Co,ho,So,Ro,uo,fo,go,Io],Yi=[_.Edit,_.Print,_.Comment,_.View,_.Copy,_.Export,_.ManageCollaborator,_.CreateSheet,_.DeleteSheet,_.RenameSheet,_.HideSheet,_.Duplicate,_.Share,_.MoveSheet,_.CopySheet];var Ki=Object.defineProperty,Ji=Object.getOwnPropertyDescriptor,Xi=(o,e,t,n)=>{for(var r=n>1?void 0:n?Ji(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Ki(e,t,r),r},Ln=(o,e)=>(t,n)=>e(t,n,o);exports.WorkbookPermissionService=class extends s.Disposable{constructor(e,t){super(),this._permissionService=e,this._univerInstanceService=t,this._init()}_init(){const e=t=>{const n=t.getUnitId();Gt().forEach(r=>{const i=new r(n);this._permissionService.addPermissionPoint(i)})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const n=t.getUnitId();Gt().forEach(r=>{const i=new r(n);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=Xi([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorkbookPermissionService),Ln(0,V.Inject(s.IPermissionService)),Ln(1,V.Inject(s.IUniverInstanceService))],exports.WorkbookPermissionService);var Zi=Object.defineProperty,Qi=Object.getOwnPropertyDescriptor,ea=(o,e,t,n)=>{for(var r=n>1?void 0:n?Qi(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Zi(e,t,r),r},ht=(o,e)=>(t,n)=>e(t,n,o);const ta="SHEET_DEFINED_NAME_PLUGIN";exports.DefinedNameDataController=class extends s.Disposable{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._definedNamesService=n,this._resourceManagerService=r,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const e=n=>{const r=this._definedNamesService.getDefinedNameMap(n);return r?JSON.stringify(r):""},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:ta,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:n=>e(n),parseJson:n=>t(n),onUnLoad:n=>{this._definedNamesService.removeUnitDefinedName(n)},onLoad:(n,r)=>{this._definedNamesService.registerDefinedNames(n,r)}}))}};exports.DefinedNameDataController=ea([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),ht(0,s.ICommandService),ht(1,s.IUniverInstanceService),ht(2,se.IDefinedNamesService),ht(3,s.IResourceManagerService)],exports.DefinedNameDataController);const Ee=()=>[yo,wo],na=(o="unitId",e="subUnitId",t="permissionId")=>Ee().reduce((n,r)=>{const i=new r(o,e,t);return n[i.subType]=i.value,n},{});var oa=Object.defineProperty,ra=Object.getOwnPropertyDescriptor,sa=(o,e,t,n)=>{for(var r=n>1?void 0:n?ra(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&oa(e,t,r),r},Vn=(o,e)=>(t,n)=>e(t,n,o);exports.RangeProtectionRenderModel=class{constructor(e,t){C(this,"_cache",new s.LRUMap(1e4));this._selectionProtectionRuleModel=e,this._permissionService=t,this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(et.filter(e=>e.type===O.SelectRange),et.filter(e=>Ee().some(t=>e instanceof t)),et.map(e=>e)).subscribe(e=>{const t=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(const n of t)n.permissionId===e.permissionId&&n.ranges.forEach(r=>{s.Range.foreach(r,(i,a)=>{const c=this._createKey(e.unitId,e.subUnitId,i,a);this._cache.delete(c)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{var t;e.rule.ranges.forEach(n=>{s.Range.foreach(n,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}),e.type==="set"&&((t=e.oldRule)==null||t.ranges.forEach(n=>{s.Range.foreach(n,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}))})}_createKey(e,t,n,r){return`${e}_${t}_${n}_${r}`}getCellInfo(e,t,n,r){const i=this._createKey(e,t,n,r),a=this._cache.get(i);if(a)return a;const c=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),u=[];if(!c||!c.length)return u;const l=[];for(const d of c)if(d.ranges.some(m=>m.startRow<=n&&m.endRow>=n&&m.startColumn<=r&&m.endColumn>=r)){const m=Ee().reduce((g,R)=>{var v;const h=new R(e,t,d.permissionId),S=this._permissionService.getPermissionPoint(h.id);return g[h.subType]=(v=S==null?void 0:S.value)!=null?v:h.value,g},{});l.push({...m,ruleId:d.id,ranges:d.ranges})}return this._cache.set(i,l),l}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=sa([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),Vn(0,V.Inject(exports.RangeProtectionRuleModel)),Vn(1,V.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var ia=Object.defineProperty,aa=Object.getOwnPropertyDescriptor,ca=(o,e,t,n)=>{for(var r=n>1?void 0:n?aa(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&ia(e,t,r),r},Qe=(o,e)=>(t,n)=>e(t,n,o);const ua=[Ie.id,pe.id,ve.id,Me.id],la=[_e.id,be.id];exports.RangeProtectionRefRangeService=class extends s.Disposable{constructor(t,n,r,i,a){super();C(this,"disposableCollection",new s.DisposableCollection);this._selectionProtectionRuleModel=t,this._univerInstanceService=n,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._onRefRangeChange(),this._correctPermissionRange()}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a||!(a==null?void 0:a.getSheetBySheetId(i)))return;this.disposableCollection.dispose();const u=d=>this.refRangeHandle(d,r,i);this._selectionProtectionRuleModel.getSubunitRuleList(r,i).reduce((d,m)=>[...d,...m.ranges],[]).forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,u,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Vt.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===Cn.id||r.id===vn.id){const i=r.params,a=i.rule.subUnitId,c=i.rule.unitId;if(!a||!c)return;t(c,a)}}));const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(n){const r=n.getActiveSheet();t(n.getUnitId(),r.getSheetId())}}refRangeHandle(t,n,r){switch(t.id){case At.id:return this._getRefRangeMutationsByMoveRows(t.params,n,r);case Wt.id:return this._getRefRangeMutationsByMoveCols(t.params,n,r);case Ve.id:return this._getRefRangeMutationsByInsertRows(t.params,n,r);case $e.id:return this._getRefRangeMutationsByInsertCols(t.params,n,r);case at.id:return this._getRefRangeMutationsByDeleteCols(t.params,n,r);case it.id:return this._getRefRangeMutationsByDeleteRows(t.params,n,r)}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(t,n,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((g,R)=>{if(s.Rectangle.intersects(R,a)){const h=s.Tools.deepClone(R),{startColumn:S,endColumn:v}=a;if(S<=h.startColumn&&v>=h.endColumn)return g;S>=h.startColumn&&v<=h.endColumn?h.endColumn-=v-S+1:S<h.startColumn?(h.startColumn=S,h.endColumn-=v-S+1):v>h.endColumn&&(h.endColumn=S-1),this._checkIsRightRange(h)&&g.push(h)}return g},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:l.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(t,n,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((g,R)=>{if(s.Rectangle.intersects(R,a)){const h=s.Tools.deepClone(R),{startRow:S,endRow:v}=a;if(S<=h.startRow&&v>=h.endRow)return g;S>=h.startRow&&v<=h.endRow?h.endRow-=v-S+1:S<h.startRow?(h.startRow=S,h.endRow-=v-S+1):v>h.endRow&&(h.endRow=S-1),this._checkIsRightRange(h)&&g.push(h)}return g},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:l,ruleId:l.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(t,n,r){const i=t.range.startColumn,a=t.range.endColumn-t.range.startColumn+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(u=>u.ranges.some(l=>i>l.startColumn&&i<=l.endColumn));if(c.length){const u=[],l=[];return c.forEach(d=>{const m=s.Tools.deepClone(d);let g=!1;m.ranges.forEach(R=>{i>R.startColumn&&i<=R.endColumn&&(R.endColumn+=a,g=!0)}),g&&(u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(t,n,r){const i=t.range.startRow,a=t.range.endRow-t.range.startRow+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(u=>u.ranges.some(l=>i>l.startRow&&i<=l.endRow));if(c.length){const u=[],l=[];return c.forEach(d=>{const m=s.Tools.deepClone(d);let g=!1;m.ranges.forEach(R=>{i>R.startRow&&i<=R.endRow&&(R.endRow+=a,g=!0)}),g&&(u.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(t,n,r){const i=t.toRange,a=i.startRow,c=i.endRow-i.startRow+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(l=>l.ranges.some(d=>a>d.startRow&&a<=d.endRow));if(u.length){const l=[],d=[];return u.forEach(m=>{const g=s.Tools.deepClone(m),h=t.fromRange.startRow;let S=!1;g.ranges.forEach(v=>{a>v.startRow&&a<=v.endRow&&(h<v.startRow&&(v.startRow=v.startRow-c,v.endRow=v.endRow-c),v.endRow+=c,S=!0)}),S&&(l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:g,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(t,n,r){const i=t.toRange,a=i.startColumn,c=i.endColumn-i.startColumn+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(n,r).filter(l=>l.ranges.some(d=>a>d.startColumn&&a<=d.endColumn));if(u.length){const l=[],d=[];return u.forEach(m=>{const g=s.Tools.deepClone(m),h=t.fromRange.startColumn;let S=!1;g.ranges.forEach(v=>{a>v.startColumn&&a<=v.endColumn&&(h<v.startColumn&&(v.startColumn=v.startColumn-c,v.endColumn=v.endColumn-c),v.endColumn+=c,S=!0)}),S&&(l.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:g,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:n,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(la.includes(t.id)){if(!t.params)return;const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,l=c?i.startRow:i.startColumn,d=c?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(v=>{v.ranges.forEach(I=>{let{startRow:f,endRow:w,startColumn:M,endColumn:y}=I;s.Rectangle.intersects(I,i)||(c?l<f&&d>w?(f-=u,w-=u):l>w&&d<=f&&(f+=u,w+=u):l<M&&d>y?(M-=u,y-=u):l>y&&d<=M&&(M+=u,y+=u)),this._checkIsRightRange({startRow:f,endRow:w,startColumn:M,endColumn:y})&&(I.startColumn=M,I.endColumn=y,I.startRow=f,I.endRow=w)})}),this.disposableCollection.dispose();const{unitId:g,subUnitId:R}=t.params,h=v=>this.refRangeHandle(v,g,R);this._selectionProtectionRuleModel.getSubunitRuleList(g,R).reduce((v,p)=>[...v,...p.ranges],[]).forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,h,g,R))}),this._selectionProtectionRenderModel.clear()}if(ua.includes(t.id)){const n=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!n)return;const r=n.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=t.params;if(!i)return;const{range:a}=i,c=t.id.includes("row"),u=t.id.includes("insert"),l=c?a.startRow:a.startColumn,d=c?a.endRow:a.endColumn,m=d-l+1;this._selectionProtectionRuleModel.getSubunitRuleList(n.getUnitId(),r.getSheetId()).forEach(p=>{p.ranges.forEach(f=>{let{startRow:w,endRow:M,startColumn:y,endColumn:P}=f;u?c?l<=w&&(w+=m,M+=m):l<=y&&(y+=m,P+=m):c?d<w&&(w-=m,M-=m):d<y&&(y-=m,P-=m),this._checkIsRightRange({startRow:w,endRow:M,startColumn:y,endColumn:P})&&(f.startColumn=y,f.endColumn=P,f.startRow=w,f.endRow=M)})}),this.disposableCollection.dispose();const{unitId:R,subUnitId:h}=t.params,S=p=>this.refRangeHandle(p,R,h);this._selectionProtectionRuleModel.getSubunitRuleList(R,h).reduce((p,I)=>[...p,...I.ranges],[]).forEach(p=>{this.disposableCollection.add(this._refRangeService.registerRefRange(p,S,R,h))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(t){return t.startRow<=t.endRow&&t.startColumn<=t.endColumn}};exports.RangeProtectionRefRangeService=ca([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRefRangeService),Qe(0,V.Inject(exports.RangeProtectionRuleModel)),Qe(1,V.Inject(s.IUniverInstanceService)),Qe(2,s.ICommandService),Qe(3,V.Inject(exports.RefRangeService)),Qe(4,V.Inject(exports.RangeProtectionRenderModel))],exports.RangeProtectionRefRangeService);var da=Object.defineProperty,ma=Object.getOwnPropertyDescriptor,ga=(o,e,t,n)=>{for(var r=n>1?void 0:n?ma(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&da(e,t,r),r},Ht=(o,e)=>(t,n)=>e(t,n,o);const ha="SHEET_RANGE_PROTECTION_PLUGIN";exports.RangeProtectionService=class extends s.Disposable{constructor(e,t,n){super(),this._selectionProtectionRuleModel=e,this._permissionService=t,this._resourceManagerService=n,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Ee().forEach(t=>{const n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break}case"delete":{Ee().forEach(t=>{const n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(n.id)});break}case"set":{e.oldRule.permissionId!==e.rule.permissionId&&Ee().forEach(t=>{const n=new t(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(n.id);const r=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}}))}_initSnapshot(){const e=n=>{const i=this._selectionProtectionRuleModel.toObject()[n];return i?JSON.stringify(i):""},t=n=>{if(!n)return{};try{return JSON.parse(n)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:ha,businesses:[Mt.UNIVER_SHEET],onLoad:(n,r)=>{const i=this._selectionProtectionRuleModel.toObject();i[n]=r,this._selectionProtectionRuleModel.fromObject(i);const a=[];Object.keys(r).forEach(c=>{const u=r[c];this._selectionProtectionRuleModel.getSubunitRuleList(n,c).forEach(l=>{a.push({objectID:l.permissionId,unitID:n,objectType:O.SelectRange,actions:[_.View,_.Edit]})}),u.forEach(l=>{Ee().forEach(d=>{const m=new d(n,c,l.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=ga([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionService),Ht(0,V.Inject(exports.RangeProtectionRuleModel)),Ht(1,V.Inject(s.IPermissionService)),Ht(2,V.Inject(s.IResourceManagerService))],exports.RangeProtectionService);var Or=Object.defineProperty,Ra=Object.getOwnPropertyDescriptor,Sa=(o,e,t)=>e in o?Or(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Ca=(o,e,t,n)=>{for(var r=n>1?void 0:n?Ra(e,t):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(n?a(e,t,r):a(r))||r);return n&&r&&Or(e,t,r),r},Rt=(o,e)=>(t,n)=>e(t,n,o),Dr=(o,e,t)=>(Sa(o,typeof e!="symbol"?e+"":e,t),t);const va="SHEET_PLUGIN";exports.UniverSheetsPlugin=class extends s.Plugin{constructor(e,t,n,r,i){super(),this._config=e,this._commandService=t,this._configService=n,this._localeService=r,this._injector=i,this._initConfig(),this._initDependencies(i)}onRendered(){}_initConfig(){var e;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(_r,!0)}_initDependencies(e){var n,r;const t=[[Be],[exports.SelectionManagerService],[exports.RefRangeService],[exports.WorkbookPermissionService],[je,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[ft],[exports.MergeCellController],[exports.DefinedNameDataController],[exports.WorksheetPermissionService],[exports.WorksheetProtectionRuleModel],[exports.WorksheetProtectionPointModel],[exports.RangeProtectionRenderModel],[exports.RangeProtectionRuleModel],[exports.RangeProtectionRefRangeService],[exports.RangeProtectionService]];(n=this._config)!=null&&n.notExecuteFormula||t.push([pt],[It]),s.mergeOverrideWithDependencies(t,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}};Dr(exports.UniverSheetsPlugin,"pluginName",va);Dr(exports.UniverSheetsPlugin,"type",s.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsPlugin=Ca([s.DependentOn(se.UniverFormulaEnginePlugin),Rt(1,s.ICommandService),Rt(2,s.IConfigService),Rt(3,V.Inject(s.LocaleService)),Rt(4,V.Inject(V.Injector))],exports.UniverSheetsPlugin);const fa=[ye.id,he.id,cn.id,we.id,ct.id,_e.id,be.id,He.id,Ge.id,ze.id,qe.id,Ie.id,pe.id,ve.id,Me.id],pa=[z.id,Ae.id,G.id,H.id],Ia=1.5,Ma="rgba(255, 255, 255, 0.01)";function wa(o){const e=o.getCurrentTheme(),t=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:e.primaryColor,fill:t,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:t,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:t,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function ya(o){const{rangeWithCoord:e,primaryWithCoord:t,style:n}=o,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:n};return t!=null&&(r.primary=Ar(t)),r}function Ar(o){const{actualRow:e,actualColumn:t,isMerged:n,isMergedMainCell:r}=o,{startRow:i,startColumn:a,endRow:c,endColumn:u}=o.mergeInfo;return{actualRow:e,actualColumn:t,isMerged:n,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function _a(o,e,t){const n=s.getCellInfoInMergeData(o,e,t),r=s.makeCellRangeToRangeData(n);if(r)return{range:r,primary:n,style:null}}const ba=(o,e,t)=>{const r=o.get(exports.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:c,subUnitId:u}=e;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:g}=d;let{startRow:R,startColumn:h,endRow:S,endColumn:v}=a[a.length-1];if(i===s.Dimension.COLUMNS){const w=t.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);w&&(v=w.endColumn,R=w.startRow,S=w.endRow)}else if(i===s.Dimension.ROWS){const w=t.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);w&&(S=w.endRow,h=w.startColumn,v=w.endColumn)}const p={startRow:R,startColumn:h,endRow:S,endColumn:v,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:R===g&&h===m},I=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?p:null})),f={unitId:c,subUnitId:u,pluginName:X,selections:I};return{id:K.id,params:f}}return null}return null},Ua=(o,e)=>{const n=o.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:i}=e;if(n&&n[(n==null?void 0:n.length)-1].primary){const u={unitId:r,subUnitId:i,pluginName:X,selections:[...n]};return{id:K.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=ba;exports.AddMergeUndoMutationFactory=Ce;exports.AddMergeUndoSelectionsOperationFactory=Ua;exports.AddRangeProtectionCommand=Cn;exports.AddRangeProtectionMutation=Ke;exports.AddWorksheetMergeMutation=H;exports.AddWorksheetProtectionMutation=vr;exports.BorderStyleManagerService=Be;exports.COMMAND_LISTENER_SKELETON_CHANGE=fa;exports.COMMAND_LISTENER_VALUE_CHANGE=pa;exports.ClearSelectionAllCommand=bt;exports.ClearSelectionContentCommand=qt;exports.ClearSelectionFormatCommand=Ut;exports.CopySheetCommand=Hn;exports.DeleteRangeMoveLeftCommand=Nt;exports.DeleteRangeMoveUpCommand=kt;exports.DeleteRangeProtectionCommand=wr;exports.DeleteRangeProtectionMutation=Ye;exports.DeleteWorksheetProtectionMutation=pr;exports.DeltaColumnWidthCommand=rn;exports.DeltaRowHeightCommand=un;exports.EffectRefRangId=T;exports.EmptyMutation=gr;exports.FactoryAddRangeProtectionMutation=ci;exports.FactoryDeleteRangeProtectionMutation=ai;exports.FactorySetRangeProtectionMutation=ui;exports.INTERCEPTOR_POINT=St;exports.INumfmtService=je;exports.InsertColAfterCommand=Oo;exports.InsertColBeforeCommand=ko;exports.InsertColCommand=$e;exports.InsertColMutation=Ie;exports.InsertColMutationUndoFactory=Zt;exports.InsertDefinedNameCommand=hr;exports.InsertRangeMoveDownCommand=Ot;exports.InsertRangeMoveRightCommand=Dt;exports.InsertRowAfterCommand=Eo;exports.InsertRowBeforeCommand=To;exports.InsertRowCommand=Ve;exports.InsertRowMutation=pe;exports.InsertRowMutationUndoFactory=Xt;exports.InsertSheetCommand=Do;exports.InsertSheetMutation=De;exports.InsertSheetUndoMutationFactory=zt;exports.MAX_CELL_PER_SHEET_KEY=yr;exports.MoveColsCommand=Wt;exports.MoveColsMutation=be;exports.MoveColsMutationUndoFactory=Wo;exports.MoveRangeCommand=Tt;exports.MoveRangeMutation=Ae;exports.MoveRowsCommand=At;exports.MoveRowsMutation=_e;exports.MoveRowsMutationUndoFactory=Ao;exports.NORMAL_SELECTION_PLUGIN_NAME=X;exports.OperatorType=x;exports.RangeMergeUtil=Bs;exports.RangeProtectionPermissionEditPoint=wo;exports.RangeProtectionPermissionViewPoint=yo;exports.RemoveColCommand=at;exports.RemoveColMutation=ve;exports.RemoveDefinedNameCommand=Rr;exports.RemoveMergeUndoMutationFactory=ue;exports.RemoveNumfmtMutation=hn;exports.RemoveRowCommand=it;exports.RemoveRowMutation=Me;exports.RemoveSheetCommand=Qt;exports.RemoveSheetMutation=Je;exports.RemoveSheetUndoMutationFactory=Fn;exports.RemoveWorksheetMergeCommand=Bo;exports.RemoveWorksheetMergeMutation=G;exports.ResetBackgroundColorCommand=er;exports.ResetTextColorCommand=Zo;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Ma;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Ia;exports.ScrollToCellOperation=Cr;exports.SelectionMoveType=$n;exports.SetBackgroundColorCommand=Qo;exports.SetBoldCommand=Ps;exports.SetBorderBasicCommand=jo;exports.SetBorderColorCommand=Go;exports.SetBorderCommand=Xe;exports.SetBorderPositionCommand=Fo;exports.SetBorderStyleCommand=Ho;exports.SetColHiddenCommand=en;exports.SetColHiddenMutation=He;exports.SetColVisibleMutation=Ge;exports.SetColWidthCommand=wt;exports.SetDefinedNameCommand=Sr;exports.SetFontFamilyCommand=ks;exports.SetFontSizeCommand=Os;exports.SetFrozenCommand=Yo;exports.SetFrozenMutation=Ne;exports.SetFrozenMutationFactory=tn;exports.SetHorizontalTextAlignCommand=nr;exports.SetItalicCommand=Ts;exports.SetNumfmtMutation=$t;exports.SetRangeProtectionCommand=vn;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=st;exports.SetRangeValuesMutation=z;exports.SetRangeValuesUndoMutationFactory=Ue;exports.SetRowHeightCommand=ln;exports.SetRowHiddenCommand=nn;exports.SetRowHiddenMutation=ze;exports.SetRowVisibleMutation=qe;exports.SetSelectedColsVisibleCommand=qo;exports.SetSelectedRowsVisibleCommand=Ko;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=xt;exports.SetSpecificRowsVisibleCommand=Lt;exports.SetStrikeThroughCommand=Ns;exports.SetStyleCommand=te;exports.SetTabColorCommand=sr;exports.SetTabColorMutation=tt;exports.SetTextColorCommand=Xo;exports.SetTextRotationCommand=rr;exports.SetTextWrapCommand=or;exports.SetUnderlineCommand=Es;exports.SetVerticalTextAlignCommand=tr;exports.SetWorkbookNameCommand=Sn;exports.SetWorkbookNameMutation=Rn;exports.SetWorksheetActivateCommand=Vt;exports.SetWorksheetActiveOperation=ct;exports.SetWorksheetColWidthMutation=we;exports.SetWorksheetColWidthMutationFactory=on;exports.SetWorksheetHideCommand=ar;exports.SetWorksheetHideMutation=ke;exports.SetWorksheetNameCommand=sn;exports.SetWorksheetNameMutation=yt;exports.SetWorksheetOrderCommand=cr;exports.SetWorksheetOrderMutation=nt;exports.SetWorksheetPermissionPointsCommand=Mr;exports.SetWorksheetProtectionMutation=fr;exports.SetWorksheetRowAutoHeightMutation=cn;exports.SetWorksheetRowAutoHeightMutationFactory=Vs;exports.SetWorksheetRowHeightMutation=ye;exports.SetWorksheetRowIsAutoHeightCommand=dn;exports.SetWorksheetRowIsAutoHeightMutation=he;exports.SetWorksheetShowCommand=lr;exports.WorkbookCommentPermission=ao;exports.WorkbookCopyPermission=po;exports.WorkbookCopySheetPermission=Io;exports.WorkbookCreateSheetPermission=Co;exports.WorkbookDeleteSheetPermission=ho;exports.WorkbookDuplicatePermission=uo;exports.WorkbookEditablePermission=co;exports.WorkbookExportPermission=mo;exports.WorkbookHideSheetPermission=Ro;exports.WorkbookHistoryPermission=ms;exports.WorkbookManageCollaboratorPermission=Mo;exports.WorkbookMoveSheetPermission=go;exports.WorkbookPrintPermission=lo;exports.WorkbookRenameSheetPermission=So;exports.WorkbookSharePermission=fo;exports.WorkbookViewPermission=vo;exports.WorksheetCopyPermission=qn;exports.WorksheetDeleteColumnPermission=no;exports.WorksheetDeleteRowPermission=to;exports.WorksheetEditExtraObjectPermission=io;exports.WorksheetEditPermission=Yt;exports.WorksheetFilterPermission=ro;exports.WorksheetInsertColumnPermission=Qn;exports.WorksheetInsertHyperlinkPermission=eo;exports.WorksheetInsertRowPermission=Zn;exports.WorksheetManageCollaboratorPermission=ds;exports.WorksheetPivotTablePermission=so;exports.WorksheetSelectProtectedCellsPermission=us;exports.WorksheetSelectUnProtectedCellsPermission=ls;exports.WorksheetSetCellStylePermission=zn;exports.WorksheetSetCellValuePermission=Yn;exports.WorksheetSetColumnStylePermission=Xn;exports.WorksheetSetRowStylePermission=Jn;exports.WorksheetSortPermission=oo;exports.WorksheetViewPermission=Kn;exports.alignToMergedCellsBorders=rt;exports.convertPrimaryWithCoordToPrimary=Ar;exports.convertSelectionDataToRange=ya;exports.createTopMatrixFromMatrix=mr;exports.createTopMatrixFromRanges=dr;exports.defaultWorkbookPermissionPoints=Yi;exports.defaultWorksheetPermissionPoint=Ks;exports.factoryRemoveNumfmtUndoMutation=Gs;exports.factorySetNumfmtUndoMutation=Hs;exports.findAllRectangle=mn;exports.followSelectionOperation=Pe;exports.getAddMergeMutationRangeByType=kr;exports.getAllRangePermissionPoint=Ee;exports.getAllWorkbookPermissionPoint=Gt;exports.getAllWorksheetPermissionPoint=Te;exports.getAllWorksheetPermissionPointByPointPanel=vt;exports.getCellAtRowCol=ss;exports.getDefaultRangePermission=na;exports.getInsertRangeMutations=Kt;exports.getMoveRangeUndoRedoMutations=Et;exports.getNormalSelectionStyle=wa;exports.getPrimaryForRange=ae;exports.getRemoveRangeMutations=Jt;exports.getSheetCommandTarget=j;exports.getSheetCommandTargetWorkbook=jn;exports.getSheetMutationTarget=Pt;exports.handleBaseInsertRange=xe;exports.handleBaseMoveRowsCols=ot;exports.handleBaseRemoveRange=We;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=Ti;exports.handleDefaultRangeChangeWithEffectRefCommands=Nr;exports.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Pi;exports.handleDeleteRangeMoveLeft=Tr;exports.handleDeleteRangeMoveUp=Er;exports.handleDeleteRangeMutation=hs;exports.handleIRemoveCol=In;exports.handleIRemoveRow=Mn;exports.handleInsertCol=yn;exports.handleInsertRangeMoveDown=Ur;exports.handleInsertRangeMoveRight=Pr;exports.handleInsertRangeMutation=gs;exports.handleInsertRow=wn;exports.handleMoveCols=pn;exports.handleMoveRange=br;exports.handleMoveRows=fn;exports.isSingleCellSelection=as;exports.rangeMerge=gn;exports.rotateRange=le;exports.runRefRangeMutations=Le;exports.setEndForRange=is;exports.transformCellDataToSelectionData=_a;exports.transformCellsToRange=_t;
1
+ "use strict";var Br=Object.defineProperty;var jr=(n,e,t)=>e in n?Br(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var C=(n,e,t)=>jr(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),$=require("@wendellhu/redi"),de=require("@univerjs/engine-formula"),Fr=require("@univerjs/rpc"),ue=require("rxjs"),et=require("rxjs/operators");var Hr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,qr=(n,e,t,o)=>{for(var r=o>1?void 0:o?Gr(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Hr(e,t,r),r},zr=(n,e)=>(t,o)=>e(t,o,n);const X="normalSelectionPluginName";var Fn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(Fn||{});exports.SelectionManagerService=class{constructor(e){C(this,"_selectionInfo",new Map);C(this,"_currentSelection",null);C(this,"_selectionMoveStart$",new ue.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new ue.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new ue.BehaviorSubject(null));C(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());C(this,"_selectionMoveEndBefore$",new ue.BehaviorSubject(null));C(this,"selectionMoveEndBefore$",this._selectionMoveEndBefore$.asObservable());C(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,r;if(this._currentSelection==null||this._currentSelection.pluginName===e)return;const t=this.getSelectionDatasByParam(this._currentSelection);this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(r=this._currentSelection)==null?void 0:r.sheetId},t!=null&&this.add([])}reset(){var e,t;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=X,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(t=>t.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,t=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),t===0?this._refreshStart(this._currentSelection):t===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const e=this.getSelections();return e==null?!1:e.some(({range:t},o)=>e.some(({range:r},i)=>o===i?!1:t.startRow<=r.endRow&&t.endRow>=r.startRow&&t.startColumn<=r.endColumn&&t.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:t,unitId:o,sheetId:r}=e;return(a=(i=this._selectionInfo.get(t))==null?void 0:i.get(o))==null?void 0:a.get(r)}_refresh(e){this._selectionMoveEndBefore$.next(this._getSelectionDatas(e)),this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[0]}_getLastByParam(e){const t=this._getSelectionDatas(e);return t==null?void 0:t[t.length-1]}_addByParam(e,t=!0){const{pluginName:o,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const c=this._selectionInfo.get(o);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(i))u.set(i,[...a]);else{let d=u.get(i);d==null&&(d=[],u.set(i,d)),d.push(...a)}t&&this._refresh({pluginName:o,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:t,unitId:o,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const a=this._selectionInfo.get(t);a.has(o)||a.set(o,new Map);const c=a.get(o);if(!c.has(r))c.set(r,i);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...i)}}_clearByParam(e){const t=this._getSelectionDatas(e);t==null||t.splice(0),this._refresh(e)}_removeByParam(e,t){const o=this._getSelectionDatas(t);o==null||o.splice(e,1),this._refresh(t)}};exports.SelectionManagerService=qr([zr(0,$.Inject(s.ThemeService))],exports.SelectionManagerService);const Yr=s.createInterceptorKey("CELL_CONTENT"),Kr=s.createInterceptorKey("ROW_FILTERED"),Ct={CELL_CONTENT:Yr,ROW_FILTERED:Kr};var Jr=Object.defineProperty,Xr=Object.getOwnPropertyDescriptor,Zr=(n,e,t,o)=>{for(var r=o>1?void 0:o?Xr(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Jr(e,t,r),r},Qr=(n,e)=>(t,o)=>e(t,o,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(t){super();C(this,"_interceptorsByName",new Map);C(this,"_commandInterceptors",[]);C(this,"_workbookDisposables",new Map);C(this,"_worksheetDisposables",new Map);this._univerInstanceService=t,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(o=>{this._interceptWorkbook(o)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(o=>this._disposeWorkbookInterceptor(o))),this.intercept(Ct.CELL_CONTENT,{priority:-1,handler(o,r){const i=r.worksheet.getCellRaw(r.row,r.col);return o?{...i,...o}:i}})}dispose(){super.dispose(),this._workbookDisposables.forEach(t=>t.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(t){if(this._commandInterceptors.includes(t))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(t),this._commandInterceptors.sort((o,r)=>{var i,a;return((i=r.priority)!=null?i:0)-((a=o.priority)!=null?a:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,t)))}onCommandExecute(t){const o=this._commandInterceptors.map(r=>r.getMutations(t));return{preUndos:o.map(r=>{var i;return(i=r.preUndos)!=null?i:[]}).flat(),undos:o.map(r=>r.undos).flat(),preRedos:o.map(r=>{var i;return(i=r.preRedos)!=null?i:[]}).flat(),redos:o.map(r=>r.redos).flat()}}intercept(t,o){const r=t;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(o),this._interceptorsByName.set(r,i.sort((a,c)=>{var u,d;return((u=c.priority)!=null?u:0)-((d=a.priority)!=null?d:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),o)))}fetchThroughInterceptors(t){const o=t,r=this._interceptorsByName.get(o);return s.composeInterceptors(r||[])}_interceptWorkbook(t){const o=new s.DisposableCollection,r=t.getUnitId(),i=this,a=c=>{const u=c.getSheetId();c.__interceptViewModel(d=>{const l=new s.DisposableCollection;i._worksheetDisposables.set(kn(r,c),l),l.add(d.registerCellContentInterceptor({getCell(m,g){return i.fetchThroughInterceptors(Ct.CELL_CONTENT)(c.getCellRaw(m,g),{unitId:r,subUnitId:u,row:m,col:g,worksheet:c,workbook:t})}})),l.add(d.registerRowFilteredInterceptor({getRowFiltered(m){return!!i.fetchThroughInterceptors(Ct.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:t,worksheet:c})}}))})};t.getSheets().forEach(c=>a(c)),o.add(s.toDisposable(t.sheetCreated$.subscribe(c=>a(c)))),o.add(s.toDisposable(()=>t.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),o.add(s.toDisposable(t.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,o)}_disposeWorkbookInterceptor(t){const o=t.getUnitId(),r=this._workbookDisposables.get(o);r&&(r.dispose(),this._workbookDisposables.delete(o))}_disposeSheetInterceptor(t,o){const r=kn(t,o),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Zr([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Qr(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function kn(n,e){return`${n}|${e.getSheetId()}`}const Pe=(n,e)=>{const{unitId:t,subUnitId:o,cellValue:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),d=a.getStyles(),l=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,R,S)=>{const h=s.Tools.deepClone(u==null?void 0:u.getValue(g,R))||{},f=d.getStyleByCell(h);let I=d.getStyleByCell(S);I=ns(f,I),h.s=I,l.setValue(g,R,es(h))}),{...e,options:{},cellValue:l.getMatrix()}};function es(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const G={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:t,subUnitId:o,unitId:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(o);if(!c)return!1;const u=c.getCellMatrix(),d=a.getStyles();return new s.ObjectMatrix(t).forValue((m,g,R)=>{var S;if(!R)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},f=R.t?R.t:R.v!==void 0?On(R.v,R.t):On(h.v,h.t);if(R.f!==void 0&&(h.f=R.f),R.si!==void 0&&(h.si=R.si),R.p!==void 0&&(h.p=R.p),R.v!==void 0&&(h.v=f===s.CellValueType.NUMBER?Number(R.v):f===s.CellValueType.BOOLEAN?ts(R.v)?1:0:R.v),h.v!==void 0&&(h.t=f),R.s!==void 0){const I=d.getStyleByCell(h);I==null&&delete h.s,typeof R.s=="string"&&(R.s=d.get(R.s));const p=ft(I,R.s?R.s:null);p&&s.Tools.removeNull(p),s.Tools.isEmptyObject(p)?delete h.s:h.s=d.setValue(p);const v=R.v?`${R.v}\r
2
+ `:"";!R.p&&h.p&&(v&&v!==((S=h.p.body)==null?void 0:S.dataStream)?delete h.p:ss(h.p,R.s?R.s:null))}R.custom!==void 0&&(h.custom=R.custom),u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function On(n,e){return n===null?null:e===s.CellValueType.FORCE_STRING?e:typeof n=="string"?s.isSafeNumeric(n)?(+n==0||+n==1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&e===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function ts(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function ns(n,e){return os(n,e)}function os(n,e){if(!e||!Object.keys(e).length)return n;const t=n||{};for(const o in e)o==="bd"?t[o]=rs(t[o]||{},e[o]):o in t||(t[o]=null);return t}function rs(n,e){if(!e||!Object.keys(e).length)return n;for(const t in e)t in n||(n[t]=null);return n}function ft(n,e,t=!1){if(e===null)return e;if(e===void 0)return n;const o=s.Tools.deepClone(n)||{};if(o){for(const r in e)t&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in o&&r==="bd"?o[r]=Object.assign(o[r],e[r]):o[r]=e[r]);return"cl"in o&&("ul"in o&&o.ul&&(o.ul.cl=o.cl),"ol"in o&&o.ol&&(o.ol.cl=o.cl),"st"in o&&o.st&&(o.st.cl=o.cl)),o}}function Hn(n,e){return n.some(t=>t.startIndex===e)?Hn(n,e+1):e}function ss(n,e){var a;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let t=0;const o=[],r=((a=n.body)==null?void 0:a.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:d,ts:l={}}=c;if(t<u){const g={st:t,ed:u},R=ft({},e,!0);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)||(g.ts=R),o.push(g)}const m=ft(l,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,o.push(c),t=Hn(r,d)}const i=n.body.dataStream.endsWith(`\r
3
+ `)?n.body.dataStream.length-2:n.body.dataStream.length;if(t<i){const c={st:t,ed:i},u=ft({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),o.push(c)}n.body.textRuns=s.normalizeTextRuns(o)}const is=(n,e,t="")=>n.reduce((o,r)=>{const i=r&&r[e];return typeof i!="string"?(console.warn(r,`${e} is not string`),o):(i?(o[i]||(o[i]=[]),o[i].push(r)):o[t].push(r),o)},{}),as=(n=0)=>{let e=n;return function(){return e++}};function mt(n){return n.v!==void 0&&n.v!==null&&n.v!==""||n.p!==void 0}function cs(n,e,t){const{left:o,right:r,up:i,down:a}=e,c=t.getMaxRows(),u=t.getMaxColumns();let d=!0;const l={...n};for(;d;){if(d=!1,i&&l.startRow!==0){const m=l.startRow-1;t.getMatrixWithMergedCells(m,l.startColumn,m,l.endColumn).forValue((R,S,h)=>{mt(h)&&(l.startRow=Math.min(R,l.startRow),l.startColumn=Math.min(S,l.startColumn),l.endColumn=Math.max(S,l.endColumn),d=!0)})}if(a&&l.endRow!==c-1){const m=l.endRow+1;t.getMatrixWithMergedCells(m,l.startColumn,m,l.endColumn).forValue((R,S,h)=>{mt(h)&&(l.endRow=Math.max(R+(h.rowSpan!==void 0?h.rowSpan-1:0),l.endRow),l.startColumn=Math.min(S,l.startColumn),l.endColumn=Math.max(S,l.endColumn),d=!0)})}if(o&&l.startColumn!==0){const m=l.startColumn-1;t.getMatrixWithMergedCells(l.startRow,m,l.endRow,m).forValue((R,S,h)=>{mt(h)&&(l.startColumn=Math.min(S,l.startColumn),l.startRow=Math.min(R,l.startRow),l.endRow=Math.max(R,l.endRow),d=!0)})}if(r&&l.endColumn!==u-1){const m=l.endColumn+1;t.getMatrixWithMergedCells(l.startRow,m,l.endRow,m).forValue((R,S,h)=>{mt(h)&&(l.endColumn=Math.max(S+(h.colSpan!==void 0?h.colSpan-1:0),l.endColumn),l.startRow=Math.min(R,l.startRow),l.endRow=Math.max(R,l.endRow),d=!0)})}}return l}function Gn(n){const e=new s.ObjectMatrix;return n.forEach(t=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=t;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.clone()}function qn(n){const e=new s.ObjectMatrix;return n.forEach(t=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=t;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),e.clone()}function us(n){const e=new s.ObjectMatrix;return n.forEach(t=>{const{startRow:o,startColumn:r,endRow:i,endColumn:a}=t;for(let c=o;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,{s:null})}),e.clone()}const _t={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),t=n.get(s.ICommandService),o=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],R={subUnitId:d,unitId:c,cellValue:Gn(l)},S=Pe(n,R);m.push({id:G.id,params:R}),g.push({id:G.id,params:S});const h=i.onCommandExecute({id:_t.id});return m.push(...h.redos),g.unshift(...h.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}},Yt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),t=n.get(s.ICommandService),o=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:d,unitId:c,cellValue:qn(l)},g=Pe(n,m),R=i.onCommandExecute({id:Yt.id}),S=[{id:G.id,params:m},...R.redos],h=[...R.undos,{id:G.id,params:g}];return s.sequenceExecute(S,t).result?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:S}),!0):!1}},bt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),t=n.get(s.ICommandService),o=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const c=a.getUnitId(),u=a.getActiveSheet();if(!u)return!1;const d=u.getSheetId(),l=o.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],R={subUnitId:d,unitId:c,cellValue:us(l)},S=Pe(n,R);m.push({id:G.id,params:R}),g.push({id:G.id,params:S});const h=i.onCommandExecute({id:bt.id});return m.push(...h.redos),g.unshift(...h.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}},Kt=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),De={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService),{sheet:o,index:r,unitId:i}=e,a=t.getUniverSheetInstance(i);return a?a.addWorksheet(o.id,r,o):!1}};function zn(n,e){const{unitId:t}=e,o=t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return o?{workbook:o,unitId:o.getUnitId()}:null}function L(n,e={}){const{unitId:t,subUnitId:o}=e,r=t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const i=o?r.getSheetBySheetId(o):r.getActiveSheet();return i?{worksheet:i,workbook:r,unitId:r.getUnitId(),subUnitId:i.getSheetId()}:null}function Pt(n,e){const{unitId:t,subUnitId:o}=e,r=n.getUniverSheetInstance(t);if(!r)return null;const i=r.getSheetBySheetId(o);return i?{worksheet:i,workbook:r}:null}const Yn=(n,e)=>{const t=n.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=Pt(t,e);if(!i)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:a,worksheet:c}=i,u=c.getConfig();return{index:a.getConfig().sheetOrder.findIndex(m=>m===o),sheet:u,unitId:r}},Je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService),{subUnitId:o,unitId:r}=e,i=t.getUniverSheetInstance(r);return i?i.removeSheet(o):!1}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.LocaleService),a=L(r,e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:d}=a,l=s.Tools.deepClone(u.getConfig());l.name+=i.t("sheets.tabs.sheetCopy"),l.id=s.Tools.generateRandomId();const g={index:c.getSheetIndex(u)+1,sheet:l,unitId:d},R=Kt(n,g);return t.syncExecuteCommand(De.id,g)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:Je.id,params:R}],redoMutations:[{id:De.id,params:g}]}),!0):!1}},xe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{from:t,to:o}=e;if(!t||!o)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getSheetBySheetId(e.from.subUnitId),c=i.getSheetBySheetId(e.to.subUnitId);if(!a||!c)return!1;const u=a.getCellMatrix(),d=c.getCellMatrix();return new s.ObjectMatrix(t.value).forValue((l,m,g)=>{u.setValue(l,m,g)}),new s.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),!0}},K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,e)=>{const t=n.get(exports.SelectionManagerService);if(!e)return!1;const{selections:o,type:r}=e;return t.replace(o,r),!0}};function it(n,e,t=!0){const o=e.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(o.forValue((a,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const d={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,d)||r.push(d)}}),r.length===0)return n;const i=s.Rectangle.union(n,...r);return t?it(i,e,t):i}function ls(n,e,t){let o=null;return t.getMatrixWithMergedCells(n,e,n,e).forValue((i,a,c)=>(o={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:i+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:a+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),o||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ds(n,e,t){const{startRow:o,startColumn:r,endRow:i,endColumn:a}=n;return Number.isNaN(o)&&(n.startRow=0),Number.isNaN(i)&&(n.endRow=e-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(a)&&(n.endColumn=t-1),n}function ie(n,e){const t=Number.isNaN(n.startRow)?0:n.startRow,o=Number.isNaN(n.startColumn)?0:n.startColumn,r=e.getMergedCell(t,o);return r?{...r,actualRow:t,actualColumn:o,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:t,startColumn:o,endRow:n.startRow,endColumn:n.startColumn,actualRow:t,actualColumn:o,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Ue=(n,e,t)=>({id:K.id,params:{unitId:e.getUnitId(),subUnitId:t.getSheetId(),pluginName:X,selections:[{range:n,primary:ie(n,t)}]}});function ms(n){if(!n)return!1;const{range:e,primary:t}=n;return s.Rectangle.equals(e,t)}function gs(n){function e(t,o){function r(i){for(let a=i.startRow;a<=i.endRow;a++)if(!n.getRowFiltered(a))for(let c=i.startColumn;c<=i.endColumn;c++)o(a,c,i)}r(t)}return{forOperableEach:e}}const Jn="sheet.command.move-range",Ut={type:s.CommandType.COMMAND,id:Jn,handler:(n,e)=>{var I,p;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.ErrorService),a=n.get(s.LocaleService),c=L(r);if(!c)return!1;const{worksheet:u,subUnitId:d,unitId:l}=c,m=Tt(n,{unitId:l,subUnitId:d,range:e.fromRange},{unitId:l,subUnitId:d,range:e.toRange});if(m===null)return i.emit(a.t("sheets.info.acrossMergedCell")),!1;const R=n.get(exports.SheetInterceptorService).onCommandExecute({id:Ut.id,params:{...e}}),S=[...(I=R.preRedos)!=null?I:[],...m.redos,...R.redos,{id:K.id,params:{unitId:l,subUnitId:d,pluginName:X,selections:[{range:e.toRange,primary:ie(e.toRange,u)}]}}],h=[...(p=R.preUndos)!=null?p:[],...m.undos,...R.undos,{id:K.id,params:{unitId:l,subUnitId:d,pluginName:X,selections:[{range:e.fromRange,primary:ie(e.fromRange,u)}]}}];return s.sequenceExecute(S,t).result?(o.pushUndoRedo({unitID:l,undoMutations:h,redoMutations:S}),!0):!1}};function Tt(n,e,t,o=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:d,subUnitId:l}=t,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),R=g==null?void 0:g.getSheetBySheetId(l),S=g==null?void 0:g.getSheetBySheetId(c),h=R==null?void 0:R.getCellMatrix(),f=S==null?void 0:S.getCellMatrix();if(R&&S&&h&&f){const I=it(d,R,!1);if(!s.Rectangle.equals(d,I)&&!o)return null;const p=new s.ObjectMatrix,v=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{p.setValue(U,E,f.getValue(U,E)),v.setValue(U,E,null)});const M=new s.ObjectMatrix;s.Range.foreach(d,(U,E)=>{M.setValue(U,E,h.getValue(U,E))});const w=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{const O=s.cellToRange(U,E),F=s.Rectangle.getRelativeRange(O,a),j=s.Rectangle.getPositionRange(F,d);w.setValue(j.startRow,j.startColumn,f.getValue(U,E))});const y={from:{value:v.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:l},unitId:u},P={from:{value:p.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:l},unitId:u};r.push({id:xe.id,params:y}),i.push({id:xe.id,params:P})}return{redos:r,undos:i}}var It=(n=>(n[n.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",n[n.UNIVER_DOC=1]="UNIVER_DOC",n[n.UNIVER_SHEET=2]="UNIVER_SHEET",n[n.UNIVER_SLIDE=3]="UNIVER_SLIDE",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(It||{}),_=(n=>(n[n.View=0]="View",n[n.Edit=1]="Edit",n[n.ManageCollaborator=2]="ManageCollaborator",n[n.Print=3]="Print",n[n.Duplicate=4]="Duplicate",n[n.Comment=5]="Comment",n[n.Copy=6]="Copy",n[n.Share=7]="Share",n[n.Export=8]="Export",n[n.MoveWorksheet=9]="MoveWorksheet",n[n.DeleteWorksheet=10]="DeleteWorksheet",n[n.HideWorksheet=11]="HideWorksheet",n[n.RenameWorksheet=12]="RenameWorksheet",n[n.CreateWorksheet=13]="CreateWorksheet",n[n.SetWorksheetStyle=14]="SetWorksheetStyle",n[n.EditWorksheetCell=15]="EditWorksheetCell",n[n.InsertHyperlink=16]="InsertHyperlink",n[n.Sort=17]="Sort",n[n.Filter=18]="Filter",n[n.PivotTable=19]="PivotTable",n[n.FloatImg=20]="FloatImg",n[n.History=21]="History",n[n.RwHgtClWdt=22]="RwHgtClWdt",n[n.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",n[n.ViewFilter=24]="ViewFilter",n[n.MoveSheet=25]="MoveSheet",n[n.DeleteSheet=26]="DeleteSheet",n[n.HideSheet=27]="HideSheet",n[n.CopySheet=28]="CopySheet",n[n.RenameSheet=29]="RenameSheet",n[n.CreateSheet=30]="CreateSheet",n[n.SelectProtectedCells=31]="SelectProtectedCells",n[n.SelectUnProtectedCells=32]="SelectUnProtectedCells",n[n.SetCellStyle=33]="SetCellStyle",n[n.SetCellValue=34]="SetCellValue",n[n.SetRowStyle=35]="SetRowStyle",n[n.SetColumnStyle=36]="SetColumnStyle",n[n.InsertRow=37]="InsertRow",n[n.InsertColumn=38]="InsertColumn",n[n.DeleteRow=39]="DeleteRow",n[n.DeleteColumn=40]="DeleteColumn",n[n.EditExtraObject=41]="EditExtraObject",n[n.Delete=42]="Delete",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(_||{}),D=(n=>(n[n.Unkonwn=0]="Unkonwn",n[n.Workbook=1]="Workbook",n[n.Worksheet=2]="Worksheet",n[n.SelectRange=3]="SelectRange",n[n.Document=4]="Document",n[n.Slide=5]="Slide",n[n.UNRECOGNIZED=-1]="UNRECOGNIZED",n))(D||{});class Xn{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Copy);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Copy}_${e}_${t}`}}class hs{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectProtectedCells}_${e}_${t}`}}class Rs{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SelectUnProtectedCells);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SelectUnProtectedCells}_${e}_${t}`}}class Zn{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellStyle}_${e}_${t}`}}class Qn{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetCellValue);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellValue}_${e}_${t}`}}class eo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.View);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.View}_${e}_${t}`}}class to{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetRowStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetRowStyle}_${e}_${t}`}}class no{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.SetColumnStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetColumnStyle}_${e}_${t}`}}class oo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertRow}_${e}_${t}`}}class ro{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertColumn}_${e}_${t}`}}class so{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.InsertHyperlink);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertHyperlink}_${e}_${t}`}}class io{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteRow}_${e}_${t}`}}class ao{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.DeleteColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteColumn}_${e}_${t}`}}class co{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Sort);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Sort}_${e}_${t}`}}class uo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Filter);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Filter}_${e}_${t}`}}class lo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.PivotTable);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.PivotTable}_${e}_${t}`}}class mo{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.EditExtraObject);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.EditExtraObject}_${e}_${t}`}}class Ss{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.ManageCollaborator);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.ManageCollaborator}_${e}_${t}`}}class Jt{constructor(e,t){C(this,"value",!0);C(this,"type",D.Worksheet);C(this,"status",s.PermissionStatus.INIT);C(this,"id");C(this,"subType",_.Edit);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Edit}_${e}_${t}`}}class go{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Comment}_${e}`}}class ho{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Edit}_${e}`}}class Ro{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Duplicate}_${e}`}}class So{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Print}_${e}`}}class Co{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Export}_${e}`}}class fo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.MoveSheet}_${e}`}}class vo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.DeleteSheet}_${e}`}}class po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.HideSheet}_${e}`}}class Io{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.RenameSheet}_${e}`}}class Mo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CreateSheet}_${e}`}}class Cs{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.History);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.History}_${e}`}}class wo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.View}_${e}`}}class yo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Share}_${e}`}}class _o{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Copy}_${e}`}}class bo{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"subType",_.CopySheet);C(this,"status",s.PermissionStatus.INIT);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CopySheet}_${e}`}}class Po{constructor(e){C(this,"id");C(this,"value",!0);C(this,"type",D.Workbook);C(this,"status",s.PermissionStatus.INIT);C(this,"subType",_.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.ManageCollaborator}_${e}`}}class Et{constructor(e,t,o){C(this,"type",D.SelectRange);C(this,"subType",_.Edit);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=o,this.id=`${D.SelectRange}.${_.Edit}.${o}`}}class Nt{constructor(e,t,o){C(this,"type",D.SelectRange);C(this,"subType",_.View);C(this,"status",s.PermissionStatus.INIT);C(this,"value",!0);C(this,"id");C(this,"unitId");C(this,"subUnitId");C(this,"permissionId");this.unitId=e,this.subUnitId=t,this.permissionId=o,this.id=`${D.SelectRange}.${_.View}.${o}`}}const at={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=n.get(s.IPermissionService),u=L(r,{subUnitId:e.subUnitId,unitId:e.unitId});if(!u)return!1;const{subUnitId:d,unitId:l}=u,{value:m,range:g}=e,R=g?[g]:i.getSelectionRanges();if(!R||!R.length||!c.getPermissionPoint(new Jt(l,d).id))return!1;const S=new s.ObjectMatrix;let h;if(s.Tools.isArray(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:E,endColumn:O}=R[y];for(let F=0;F<=E-P;F++)for(let j=0;j<=O-U;j++)S.setValue(F+P,j+U,m[F][j])}else if(s.isICellData(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:E,endColumn:O}=R[y];for(let F=P;F<=E;F++)for(let j=U;j<=O;j++)S.setValue(F,j,m)}else h=m;const f={subUnitId:d,unitId:l,cellValue:h!=null?h:S.getMatrix()},I=Pe(n,f),p=t.syncExecuteCommand(G.id,f),{undos:v,redos:M}=a.onCommandExecute({id:at.id,params:{...f,range:R}}),w=s.sequenceExecute([...M],t);return p&&w.result?(o.pushUndoRedo({unitID:l,undoMutations:[{id:G.id,params:I},...v],redoMutations:[{id:G.id,params:f},...M]}),!0):!1}};function Xt(n,e){const t=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c,cellValue:u={}}=e,d=n.get(s.IUniverInstanceService),l=n.get(exports.SheetInterceptorService),m=d.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(i);if(g){const R=g.getCellMatrix(),S=R.getDataRange();if(a.startColumn<=S.endColumn||a.startRow<=S.endRow){let v,M;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,S.endRow);let P=0;for(let E=a.startRow;E<=y;E++){const O=R.getRow(E),F=O?s.getArrayLength(O)-1:0;P=Math.max(P,F)}v={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:P};const U=a.endColumn-a.startColumn+1;M={startRow:a.startRow,startColumn:v.startColumn+U,endRow:y,endColumn:v.endColumn+U}}else{const y=Math.min(a.endColumn,S.endColumn),P=S.endRow;v={startRow:a.startRow,startColumn:a.startColumn,endRow:P,endColumn:y};const U=a.endRow-a.startRow+1;M={startRow:v.startRow+U,startColumn:a.startColumn,endRow:v.endRow+U,endColumn:y}}const w=Tt(n,{unitId:r,subUnitId:i,range:v},{unitId:r,subUnitId:i,range:M},!0);w&&(t.push(...w.redos),o.push(...w.undos))}if(Object.entries(u).length===0)for(let v=a.startRow;v<=a.endRow;v++){u[v]||(u[v]={});for(let M=a.startColumn;M<=a.endColumn;M++)u[v][M]=null}const h={subUnitId:i,unitId:r,cellValue:u},f=Pe(n,h),{undos:I,redos:p}=l.onCommandExecute({id:at.id,params:{...h,range:a}});t.push({id:G.id,params:h},...p),o.push({id:G.id,params:f},...I)}return{redo:t,undo:o}}function Zt(n,e){const t=[],o=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c}=e,u=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),l=u.getUniverSheetInstance(r),m=l==null?void 0:l.getSheetBySheetId(i);if(m){const g=m.getCellMatrix(),R=g.getDataRange(),S={subUnitId:i,unitId:r,cellValue:Gn([a])},h=Pe(n,S),f=d.onCommandExecute({id:at.id,params:S});if(t.push({id:G.id,params:S},...f.redos),o.push(...f.undos,{id:G.id,params:h}),a.startColumn<=R.endColumn||a.startRow<=R.endRow){let I=null,p=null;if(c===s.Dimension.COLUMNS&&a.endColumn<R.endColumn){const v=Math.min(a.endRow,R.endRow);let M=0;for(let y=a.startRow;y<=v;y++){const P=g.getRow(y),U=P?s.getArrayLength(P)-1:0;M=Math.max(M,U)}I={startRow:a.startRow,startColumn:a.endColumn+1,endRow:v,endColumn:M};const w=a.endColumn-a.startColumn+1;p={startRow:a.startRow,startColumn:I.startColumn-w,endRow:v,endColumn:I.endColumn-w}}if(c===s.Dimension.ROWS&&a.endRow<R.endRow){const v=Math.min(a.endColumn,R.endColumn),M=R.endRow;I={startRow:a.endRow+1,startColumn:a.startColumn,endRow:M,endColumn:v};const w=a.endRow-a.startRow+1;p={startRow:I.startRow-w,startColumn:a.startColumn,endRow:I.endRow-w,endColumn:v}}if(I&&p){const v=Tt(n,{unitId:r,subUnitId:i,range:I},{unitId:r,subUnitId:i,range:p},!0);v&&(t.push(...v.redos),o.push(...v.undos))}}}return{redo:t,undo:o}}function fs(n,e,t,o,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:d}=e;if(r===s.Dimension.ROWS){const l=c-a+1;for(let m=t;m>=a;m--)for(let g=u;g<=d;g++){const R=n.getValue(m,g);R==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,R)}for(let m=c;m>=a;m--)for(let g=u;g<=d;g++)i&&i[m]&&i[m][g]?n.setValue(m,g,i[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const l=d-u+1;for(let m=a;m<=c;m++)for(let g=o;g>=u;g--){const R=n.getValue(m,g);R==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,R)}for(let m=a;m<=c;m++)for(let g=d;g>=u;g--)i&&i[m]&&i[m][g]?n.setValue(m,g,i[m][g]):n.realDeleteValue(m,g)}}function vs(n,e,t,o,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=e,d=a-i+1,l=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=t;m++)for(let g=c;g<=u;g++){const R=n.getValue(m+d,g);R==null?n.realDeleteValue(m,g):n.setValue(m,g,R)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let g=c;g<=o;g++){const R=n.getValue(m,g+l);R==null?n.realDeleteValue(m,g):n.setValue(m,g,R)}}const Uo="sheet.command.delete-range-move-left",kt={type:s.CommandType.COMMAND,id:Uo,handler:async(n,e)=>{var M,w,y;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=L(r);if(!c)return!1;const{worksheet:u,workbook:d,subUnitId:l,unitId:m}=c;let g=e==null?void 0:e.range;if(g||(g=(M=i.getLast())==null?void 0:M.range),!g)return!1;const R={range:g,subUnitId:l,unitId:m,shiftDimension:s.Dimension.COLUMNS},S=a.onCommandExecute({id:kt.id,params:{range:g}}),{redo:h,undo:f}=Zt(n,R),I=[...(w=S.preRedos)!=null?w:[],...h],p=[...S.undos,...f];return I.push(...S.redos),I.push(Ue(g,d,u)),p.push(...(y=S.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(o.pushUndoRedo({unitID:m,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},To="sheet.command.delete-range-move-up",Ot={type:s.CommandType.COMMAND,id:To,handler:async(n,e)=>{var M,w,y;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=L(r);if(!c)return!1;const{unitId:u,subUnitId:d,workbook:l,worksheet:m}=c;let g=e==null?void 0:e.range;if(g||(g=(M=i.getLast())==null?void 0:M.range),!g)return!1;const R={range:g,subUnitId:d,unitId:u,shiftDimension:s.Dimension.ROWS},S=a.onCommandExecute({id:Ot.id,params:{range:g}}),{redo:h,undo:f}=Zt(n,R),I=[...(w=S.preRedos)!=null?w:[],...h],p=[...S.undos,...f];return I.push(...S.redos),I.push(Ue(g,l,m)),p.push(...(y=S.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(o.pushUndoRedo({unitID:u,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},Qt=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},pe={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,e)=>{var S;const{unitId:t,subUnitId:o,range:r,rowInfo:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(o);if(u==null)throw new Error("worksheet is null error!");const d=u.getRowManager().getRowData(),l={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let h=m;h<m+g;h++)i?s.insertMatrixArray(h,(S=i[h-r.startRow])!=null?S:l,d):s.insertMatrixArray(h,l,d);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},en=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Ie={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,e)=>{var S;const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getColumnManager(),{range:a,colInfo:c}=e,d=i.getColumnData(),l=a.startColumn,m=a.endColumn-a.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let h=l;h<l+m;h++){const f={w:g,hd:0};c?s.insertMatrixArray(h,(S=c[h-a.startColumn])!=null?S:f,d):s.insertMatrixArray(h,f,d)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},ps=(n,e)=>{const r=e.getRowManager().getRowData(),i={},a=n.range,c=s.sliceMatrixArray(a.startRow,a.endRow,r),u=s.concatMatrixArray(i,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},Me={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getRowManager().getRowData();for(let l=i.startRow;l<=i.endRow;l++)r.getRowFiltered(l);const u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.getCellMatrix().removeRows(i.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Is=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},d=e.range,l=s.sliceMatrixArray(d.startColumn,d.endColumn,c),m=s.concatMatrixArray(u,l);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:m}},fe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=e.range,c=r.getColumnManager().getColumnData(),u=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(i.startColumn,u),!0}},Ms="sheet.command.insert-range-move-down",Dt={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var j,b,oe;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const d=L(r);if(!d)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:R}=d;let S=e==null?void 0:e.range;if(S||(S=(j=i.getLast())==null?void 0:j.range),!S)return!1;const h=[],f=[],I=g.getCellMatrix(),p=I.getDataRange(),M=I.getSlice(p.startRow,p.endRow,S.startColumn,S.endColumn).getDataRange().endRow,w=Math.max(M+(S.endRow-S.startRow+1)-p.endRow,0);if(w>0){const Z=S.startRow-1,Q=g.getRowHeight(Z),J={unitId:l,subUnitId:m,range:{startRow:p.endRow+1,endRow:p.endRow+w,startColumn:p.startColumn,endColumn:p.endColumn},rowInfo:new Array(w).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};h.push({id:pe.id,params:J});const ne=Qt(n,J);f.push({id:Me.id,params:ne})}const y={};s.Range.foreach(S,(Z,Q)=>{const J=g.getCell(Z,Q);J&&(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:S,subUnitId:m,unitId:l,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:U,undo:E}=Xt(n,P);h.push(...U),f.push(...E);const O=a.onCommandExecute({id:Dt.id,params:{range:S}});return h.push(...O.redos),h.push(Ue(S,R,g)),f.push(...(b=O.preUndos)!=null?b:[]),h.unshift(...(oe=O.preRedos)!=null?oe:[]),f.unshift(...O.undos),s.sequenceExecute(h,t)?(o.pushUndoRedo({unitID:l,undoMutations:f.reverse(),redoMutations:h}),!0):!1}},Eo="sheet.command.insert-range-move-right",xt={type:s.CommandType.COMMAND,id:Eo,handler:async(n,e)=>{var j,b,oe;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(i.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const d=L(r);if(!d)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:R}=d;let S=e==null?void 0:e.range;if(S||(S=(j=i.getLast())==null?void 0:j.range),!S)return!1;const h=[],f=[],I=m.getCellMatrix(),p=I.getDataRange(),M=I.getSlice(S.startRow,S.endRow,p.startColumn,p.endColumn).getDataRange().endColumn,w=Math.max(M+(S.endColumn-S.startColumn+1)-p.endColumn,0);if(w>0){const Z=S.startColumn-1,Q=m.getColumnWidth(Z),J={unitId:g,subUnitId:R,range:{startRow:p.startRow+1,endRow:p.endRow,startColumn:p.endColumn+1,endColumn:p.endColumn+w},colInfo:new Array(w).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};h.push({id:Ie.id,params:J});const ne=en(n,J);f.push({id:fe.id,params:ne})}const y={};s.Range.foreach(S,(Z,Q)=>{const J=m.getCell(Z,Q);!J||!J.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:S,subUnitId:R,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:U,undo:E}=Xt(n,P);h.push(...U),f.push(...E);const O=a.onCommandExecute({id:xt.id,params:{range:S}});return h.push(...O.redos),h.push(Ue(S,l,m)),f.push(...(b=O.preUndos)!=null?b:[]),h.unshift(...(oe=O.preRedos)!=null?oe:[]),f.unshift(...O.undos),s.sequenceExecute(h,t).result?(o.pushUndoRedo({unitID:g,undoMutations:f.reverse(),redoMutations:h}),!0):!1}},No="sheet.command.insert-row",Ve={type:s.CommandType.COMMAND,id:No,handler:async(n,e)=>{var P,U,E,O;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),a=r.getUniverSheetInstance(e.unitId),c=a.getSheetBySheetId(e.subUnitId),{range:u,direction:d,unitId:l,subUnitId:m,cellValue:g}=e,{startRow:R,endRow:S}=u,h=d===s.Direction.UP?R:R-1,f=c.getRowHeight(h),I={unitId:l,subUnitId:m,range:u,rowInfo:new Array(S-R+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},p=Qt(n,I),v=[{id:pe.id,params:I}],M=[{id:Me.id,params:p}];g&&v.push({id:G.id,params:{unitId:l,subUnitId:m,cellValue:g}});const w=i.onCommandExecute({id:Ve.id,params:e});return v.unshift(...(P=w.preRedos)!=null?P:[]),v.push(...(U=w.redos)!=null?U:[]),v.push(Ue(u,a,c)),M.unshift(...(E=w.preUndos)!=null?E:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(v,t).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M,redoMutations:v}),!0):!1}},ko={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const t=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(R=>R.range);let o;if((t==null?void 0:t.length)===1)o=t[0];else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endRow-o.startRow+1,l={};s.Range.foreach(o,(R,S)=>{const h=a.getCell(R,S);!h||!h.s||(l[R]||(l[R]={}),l[R][S]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:o.startRow,endRow:o.startRow+d-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:l};return n.get(s.ICommandService).executeCommand(Ve.id,m)}},Oo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const t=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let o;if((t==null?void 0:t.length)===1)o=t[0];else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endRow-o.startRow+1,l={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:o.endRow+1,endRow:o.endRow+d,startColumn:0,endColumn:a.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW}};return n.get(s.ICommandService).executeCommand(Ve.id,l)}},Do="sheet.command.insert-col",$e={type:s.CommandType.COMMAND,id:Do,handler:async(n,e)=>{var P,U,E,O;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),{range:a,direction:c,subUnitId:u,unitId:d,cellValue:l}=e,{startColumn:m,endColumn:g}=e.range,R=r.getUniverSheetInstance(e.unitId),S=R.getSheetBySheetId(e.subUnitId),h=c===s.Direction.LEFT?m:m-1,f=S.getColumnWidth(h),I={unitId:d,subUnitId:u,range:a,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},p=en(n,I),v=[{id:Ie.id,params:I}],M=[{id:fe.id,params:p}];l&&v.push({id:G.id,params:{unitId:d,subUnitId:u,cellValue:l}});const w=i.onCommandExecute({id:$e.id,params:e});return v.unshift(...(P=w.preRedos)!=null?P:[]),v.push(...(U=w.redos)!=null?U:[]),v.push(Ue(a,R,S)),M.unshift(...(E=w.preUndos)!=null?E:[]),M.push(...(O=w.undos)!=null?O:[]),s.sequenceExecute(v,t).result?(o.pushUndoRedo({unitID:e.unitId,undoMutations:M.filter(Boolean),redoMutations:v.filter(Boolean)}),!0):!1}},xo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const t=n.get(exports.SelectionManagerService).getSelections();let o;if((t==null?void 0:t.length)===1)o=t[0].range;else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endColumn-o.startColumn+1,l={};s.Range.foreach(o,(g,R)=>{const S=a.getCell(g,R);!S||!S.s||(l[g]||(l[g]={}),l[g][R]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:o.startColumn,endColumn:o.startColumn+d-1,startRow:0,endRow:a.getLastRowWithContent(),rangeType:s.RANGE_TYPE.COLUMN},cellValue:l};return n.get(s.ICommandService).executeCommand($e.id,m)}},Ao={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const t=n.get(exports.SelectionManagerService).getSelections();let o;if((t==null?void 0:t.length)===1)o=t[0].range;else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),d=o.endColumn-o.startColumn+1,l={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:o.endColumn+1,endColumn:o.endColumn+d,startRow:0,endRow:a.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand($e.id,l)}},Wo={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,e)=>{var f;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.LocaleService),a=zn(r,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:c,workbook:u}=a;let d=u.getSheets().length;const l=e==null?void 0:e.sheet,m=l==null?void 0:l.id,g=s.mergeWorksheetSnapshotWithDefault(l||{});e?(d=(f=e.index)!=null?f:d,g.id=m||s.Tools.generateRandomId(),g.name=(l==null?void 0:l.name)||u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`)):(g.id=s.Tools.generateRandomId(),g.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const R={index:d,sheet:g,unitId:c},S=Kt(n,R);return t.syncExecuteCommand(De.id,R)?(o.pushUndoRedo({unitID:c,undoMutations:[{id:Je.id,params:S}],redoMutations:[{id:De.id,params:R}]}),!0):!1}};function Lo(n,e){const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:t,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:t,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:{...i,endRow:i.endRow-c,startRow:i.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const d=r.startRow,l=r.endRow-r.startRow+1,m=i.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(d,l,m,g),u.getCellMatrix().moveRows(d,l,m),!0}};function Vo(n,e){const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:t,subUnitId:o,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:t,subUnitId:o,targetRange:s.Rectangle.clone(r),sourceRange:{...i,startColumn:i.startColumn-c,endColumn:i.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,sourceRange:r,targetRange:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(o);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const d=r.startColumn,l=r.endColumn-r.startColumn+1,m=i.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(d,l,m,g),u.getCellMatrix().moveColumns(d,l,m),!0}};function ws(n,e){return e.getMergeData().some(t=>t.startRow<n&&n<=t.endRow)}function ys(n,e){return e.getMergeData().some(t=>t.startColumn<n&&n<=t.endColumn)}const $o="sheet.command.move-rows",At={id:$o,type:s.CommandType.COMMAND,handler:async(n,e)=>{var Q,J;const o=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:i}}=e,a=o==null?void 0:o.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.ROW&&ne.range.startRow<=r&&r<=ne.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),d=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const l=d.getActiveSheet();if(!l)return!1;const m=d.getUnitId(),g=l.getSheetId(),R=n.get(s.ErrorService),S=n.get(s.LocaleService),h=a[0].range,f=a[0].primary,I=it(h,l,!1);if(!s.Rectangle.equals(h,I))return R.emit(S.t("sheets.info.partOfCell")),!1;if(ws(i,l))return R.emit(S.t("sheets.info.acrossMergedCell")),!1;const p={...h,startRow:i,endRow:i+h.endRow-h.startRow},v={unitId:m,subUnitId:g,sourceRange:h,targetRange:p},M=Lo(n,v),y=i-r<0,P=h.endRow-h.startRow+1,U=y?p:{...p,startRow:p.startRow-P,endRow:p.endRow-P},E={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ie(U,l),style:null}]},O={unitId:m,subUnitId:g,pluginName:X,selections:[{range:h,primary:f,style:null}]},F=n.get(s.ICommandService),j=c.onCommandExecute({id:At.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:_e.id,params:v},{id:K.id,params:E},...j.redos],oe=[...(J=j.preUndos)!=null?J:[],{id:_e.id,params:M},{id:K.id,params:O},...j.undos];return s.sequenceExecute(b,F).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},Bo="sheet.command.move-cols",Wt={id:Bo,type:s.CommandType.COMMAND,handler:async(n,e)=>{var Q,J;const o=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:i}}=e,a=o==null?void 0:o.filter(ne=>ne.range.rangeType===s.RANGE_TYPE.COLUMN&&ne.range.startColumn<=r&&r<=ne.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),d=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const l=d.getActiveSheet();if(!l)return!1;const m=d.getUnitId(),g=l.getSheetId(),R=n.get(s.ErrorService),S=n.get(s.LocaleService),h=a[0].range,f=a[0].primary,I=it(h,l,!1);if(!s.Rectangle.equals(h,I))return R.emit(S.t("sheets.info.partOfCell")),!1;if(ys(i,l))return R.emit(S.t("sheets.info.acrossMergedCell")),!1;const p={...h,startColumn:i,endColumn:i+h.endColumn-h.startColumn},v={unitId:m,subUnitId:g,sourceRange:h,targetRange:p},M=Vo(n,v),w=h.endColumn-h.startColumn+1,U=i-r<0?p:{...p,startColumn:p.startColumn-w,endColumn:p.endColumn-w},E={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ie(U,l),style:null}]},O={unitId:m,subUnitId:g,pluginName:X,selections:[{range:h,primary:f,style:null}]},F=n.get(s.ICommandService),j=c.onCommandExecute({id:Wt.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:be.id,params:v},{id:K.id,params:E},...j.redos],oe=[...(J=j.preUndos)!=null?J:[],{id:be.id,params:M},{id:K.id,params:O},...j.undos];return s.sequenceExecute(b,F).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},jo="sheet.command.remove-row",ct={type:s.CommandType.COMMAND,id:jo,handler:async(n,e)=>{var p,v,M,w;const t=n.get(exports.SelectionManagerService),o=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=n.get(s.IUniverInstanceService),a=L(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:d,unitId:l}=a;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)u.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[r.startRow,...m.map(U=>U+1)],P=[...m.map(U=>U-1),r.endRow];for(let U=y.length-1;U>=0;U--)y[U]<=P[U]&&g.push({startRow:y[U],endRow:P[U],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const R=[],S=[];g.forEach(y=>{const P={unitId:l,subUnitId:d,range:y},U=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),E={unitId:l,subUnitId:d,cellValue:U.getMatrix()},O=ps(P,u);R.push({id:Me.id,params:P}),S.unshift({id:pe.id,params:O},{id:G.id,params:E})});const h=o.onCommandExecute({id:ct.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(v=h.preRedos)!=null?v:[],...R,...h.redos,Ue(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(M=h.preUndos)!=null?M:[],...S,...h.undos],redoMutations:[...(w=h.preRedos)!=null?w:[],...R,...h.redos]}),!0):!1}},Fo="sheet.command.remove-col",ut={type:s.CommandType.COMMAND,id:Fo,handler:async(n,e)=>{var p,v,M,w;const t=n.get(exports.SelectionManagerService),o=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=n.get(s.IUniverInstanceService),a=L(i);if(!a)return!1;const{workbook:c,worksheet:u,subUnitId:d,unitId:l}=a;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:l,subUnitId:d,range:r},g=Is(n,m),R=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),S={unitId:l,subUnitId:d,cellValue:R.getMatrix()},h=o.onCommandExecute({id:ut.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(v=h.preRedos)!=null?v:[],{id:fe.id,params:m},...h.redos,Ue(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(M=h.preUndos)!=null?M:[],{id:Ie.id,params:g},{id:G.id,params:S},...h.undos],redoMutations:[...(w=h.preRedos)!=null?w:[],{id:fe.id,params:m},...h.redos]}),!0):!1}},tn={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,e)=>{var p,v;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),a=L(r,e);if(!a)return!1;const{unitId:c,subUnitId:u,workbook:d,worksheet:l}=a;if(d.getSheets().length<=1)return!1;const m=d.getSheetIndex(l);d.getConfig().sheetOrder[m+1];const g={subUnitId:u,unitId:c,subUnitName:l.getName()},R=Yn(n,g),S=i.onCommandExecute({id:tn.id,params:{unitId:c,subUnitId:u}}),h=[...(p=S.preRedos)!=null?p:[],{id:Je.id,params:g},...S.redos],f=[...(v=S.preUndos)!=null?v:[],{id:De.id,params:R},...S.undos];return s.sequenceExecute(h,t)?(o.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:h}),!0):!1}},Ce=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},H={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)a.push(c[u]);return!0}},ce=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,c=e.ranges,u=[];for(let d=0;d<c.length;d++)for(let l=a.length-1;l>=0;l--){const m=a[l],g=c[d];s.Rectangle.intersects(m,g)&&u.push(a[l])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},z={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let d=a.length-1;d>=0;d--){const l=a[d],m=c[u];s.Rectangle.intersects(l,m)&&a.splice(d,1)}return!0}},Ho={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=e.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=L(r);if(!a)return!1;const{subUnitId:c,unitId:u,worksheet:d}=a,l={unitId:u,subUnitId:c,ranges:i},g=d.getConfig().mergeData.filter(O=>i.some(F=>s.Rectangle.intersects(F,O)));if(!g.length)return!1;const R=ce(n,l),S=e.getSelections();if(!(S!=null&&S.length))return!1;const h=s.Tools.deepClone(S),f=s.Tools.deepClone(S),I=f[f.length-1],{startRow:p,startColumn:v}=I.range;I.primary={startRow:p,startColumn:v,endRow:p,endColumn:v,actualRow:p,actualColumn:v,isMerged:!1,isMergedMainCell:!1};const M=_s(d,g),w={unitId:u,subUnitId:c,cellValue:M.redoParams.getMatrix()},y={unitId:u,subUnitId:c,cellValue:M.undoParams.getMatrix()},P=[{id:z.id,params:R},{id:G.id,params:w},{id:K.id,params:{selections:f}}],U=[{id:H.id,params:R},{id:G.id,params:y},{id:K.id,params:{selections:h}}];return s.sequenceExecute(P,t)?(o.pushUndoRedo({unitID:u,undoMutations:U,redoMutations:P}),!0):!1}};function _s(n,e){const t=new s.ObjectMatrix,o=new s.ObjectMatrix;return e.forEach(r=>{const{startRow:i,startColumn:a,endColumn:c,endRow:u}=r,d=n.getCellMatrix().getValue(i,a);if(d!=null&&d.s)for(let l=i;l<=u;l++)for(let m=a;m<=c;m++)(l!==i||m!==a)&&(t.setValue(l,m,{s:d.s}),o.setValue(l,m,null))}),{redoParams:t,undoParams:o}}class Be{constructor(){C(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new ue.BehaviorSubject(this._borderInfo));C(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function gt(n,e){const{startRow:t,startColumn:o,endRow:r,endColumn:i}=n;for(let a=t;a<=r;a++)for(let c=o;c<=i;c++)e(a,c)}const Go={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:t,subUnitId:o,value:r}=e,{type:i,color:a,style:c}=r,u=n.get(s.ICommandService),d=n.get(Be);return d.setType(i),d.setColor(a),d.setStyle(c),u.executeCommand(Xe.id,{unitId:t,subUnitId:o})}},qo={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const t=n.get(s.ICommandService);return n.get(Be).setType(e.value),t.executeCommand(Xe.id)}},zo={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(s.ICommandService);return n.get(Be).setStyle(e.value),t.executeCommand(Xe.id)}},Yo={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(s.ICommandService);return n.get(Be).setColor(e.value),t.executeCommand(Xe.id)}},Xe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(Be),c=L(r,e);if(!c)return!1;const{worksheet:u,unitId:d,subUnitId:l}=c,m=i.getSelectionRanges(),g=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:R,color:S,type:h,activeBorderType:f}=a.getBorderInfo();if(!f)return!1;const I=h===s.BorderType.TOP||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,p=h===s.BorderType.LEFT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,v=h===s.BorderType.BOTTOM||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,M=h===s.BorderType.RIGHT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,w=h===s.BorderType.VERTICAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,y=h===s.BorderType.HORIZONTAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,P=h.indexOf("tlbr")>-1,U=h.indexOf("tlbc")>-1,E=h.indexOf("tlmr")>-1,O=h.indexOf("bltr")>-1,F=h.indexOf("mltr")>-1,j=h.indexOf("bctr")>-1,b=m[0],oe={startRow:b.startRow-1,startColumn:b.startColumn,endRow:b.startRow-1,endColumn:b.endColumn},Z={startRow:b.startRow,startColumn:b.startColumn-1,endRow:b.endRow,endColumn:b.startColumn-1},Q={startRow:b.endRow+1,startColumn:b.startColumn,endRow:b.endRow+1,endColumn:b.endColumn},J={startRow:b.startRow,startColumn:b.endColumn+1,endRow:b.endRow,endColumn:b.endColumn+1},ne={startRow:b.startRow,startColumn:b.startColumn,endRow:b.startRow,endColumn:b.endColumn},Un={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.startColumn},Tn={startRow:b.endRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn},En={startRow:b.startRow,startColumn:b.endColumn,endRow:b.endRow,endColumn:b.endColumn},V=new s.ObjectMatrix,Y={s:R,cl:{rgb:S}},dt=(x,N)=>{let B=null;return g.forEach(re=>{s.Rectangle.intersects(re,{startColumn:N,endColumn:N,startRow:x,endRow:x})&&(B=re)}),B};function q(x,N,B){x.startRow<0||x.startColumn<0||gt(x,(re,me)=>{var k,Ze;const se=dt(re,me);let ae=N;if(se&&(N.bc_tr||N.ml_tr||N.bl_tr||N.tl_mr||N.tl_bc||N.tl_br)){if(B){const ge=s.Tools.deepClone((k=V.getValue(se.startRow,se.startColumn))==null?void 0:k.s);ae=ge!=null&&ge.bd?Object.assign(ge.bd,N):N}V.setValue(se.startRow,se.startColumn,{s:{bd:ae}})}else{if(B){const ge=s.Tools.deepClone((Ze=V.getValue(re,me))==null?void 0:Ze.s);ae=ge!=null&&ge.bd?Object.assign(ge.bd,N):N}V.setValue(re,me,{s:{bd:ae}})}})}I&&(q(oe,{b:null}),q(ne,{t:s.Tools.deepClone(Y)},!0)),v&&(q(Q,{t:null}),q(Tn,{b:s.Tools.deepClone(Y)},!0)),p&&(q(Z,{r:null}),q(Un,{l:s.Tools.deepClone(Y)},!0)),M&&(q(J,{l:null}),q(En,{r:s.Tools.deepClone(Y)},!0)),P&&q(b,{tl_br:s.Tools.deepClone(Y)},!0),U&&q(b,{tl_bc:s.Tools.deepClone(Y)},!0),E&&q(b,{tl_mr:s.Tools.deepClone(Y)},!0),O&&q(b,{bl_tr:s.Tools.deepClone(Y)},!0),F&&q(b,{ml_tr:s.Tools.deepClone(Y)},!0),j&&q(b,{bc_tr:s.Tools.deepClone(Y)},!0),w&&gt(b,(x,N)=>{var re,me,se,ae;const B=dt(x,N);if(B){if(B.endColumn!==b.endColumn){const k=(re=V.getValue(B.startRow,B.startColumn))==null?void 0:re.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(B.startColumn!==b.startColumn){const k=(me=V.getValue(B.startRow,B.startColumn))==null?void 0:me.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}else{if(N!==b.endColumn){const k=(se=V.getValue(x,N))==null?void 0:se.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(N!==b.startColumn){const k=(ae=V.getValue(x,N))==null?void 0:ae.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}}),y&&gt(b,(x,N)=>{var re,me,se,ae;const B=dt(x,N);if(B){if(B.endRow!==b.endRow){const k=(re=V.getValue(B.startRow,B.startColumn))==null?void 0:re.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(B.startRow!==b.startRow){const k=(me=V.getValue(B.startRow,B.startColumn))==null?void 0:me.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}else{if(x!==b.endRow){const k=(se=V.getValue(x,N))==null?void 0:se.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(x!==b.startRow){const k=(ae=V.getValue(x,N))==null?void 0:ae.s;V.setValue(x,N,{s:{bd:k!=null&&k.bd?Object.assign(k.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}}),!I&&!v&&!p&&!M&&!w&&!y&&!P&&!U&&!E&&!O&&!F&&!j&&(q(oe,{b:null}),q(ne,{t:null},!0),q(Q,{t:null}),q(Tn,{b:null},!0),q(Z,{r:null}),q(Un,{l:null},!0),q(J,{l:null}),q(En,{r:null},!0),q(b,{tl_br:null},!0),q(b,{tl_bc:null},!0),q(b,{tl_mr:null},!0),q(b,{bl_tr:null},!0),q(b,{ml_tr:null},!0),q(b,{bc_tr:null},!0),gt(b,(x,N)=>{var re,me,se,ae,k,Ze,ge,Nn;const B=dt(x,N);if(B){if(B.endColumn!==b.endColumn){const A=(re=V.getValue(B.startRow,B.startColumn))==null?void 0:re.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(B.startColumn!==b.startColumn){const A=(me=V.getValue(B.startRow,B.startColumn))==null?void 0:me.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(B.endRow!==b.endRow){const A=(se=V.getValue(B.startRow,B.startColumn))==null?void 0:se.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(B.startRow!==b.startRow){const A=(ae=V.getValue(B.startRow,B.startColumn))==null?void 0:ae.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(N!==b.endColumn){const A=(k=V.getValue(x,N))==null?void 0:k.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(N!==b.startColumn){const A=(Ze=V.getValue(x,N))==null?void 0:Ze.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(x!==b.endRow){const A=(ge=V.getValue(x,N))==null?void 0:ge.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(x!==b.startRow){const A=(Nn=V.getValue(x,N))==null?void 0:Nn.s;V.setValue(x,N,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const jt={unitId:d,subUnitId:l,cellValue:V.getData()},$r=Pe(n,jt);return t.syncExecuteCommand(G.id,jt)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:G.id,params:$r}],redoMutations:[{id:G.id,params:jt}]}),!0):!1}},bs=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},He={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},Ps=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ge={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const r=o.getSheetBySheetId(e.subUnitId).getColumnManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{var I,p;const{unitId:t,subUnitId:o,ranges:r}=e,i=n.get(exports.SheetInterceptorService),a=n.get(s.ICommandService),c=n.get(s.IUniverInstanceService),u=L(c,{unitId:t,subUnitId:o});if(!u)return!1;const{worksheet:d}=u,l={unitId:t,subUnitId:o,ranges:r},m={unitId:t,subUnitId:o,pluginName:X,selections:r.map(v=>({range:v,primary:ie(v,d),style:null}))},g=Ps(n,l),R={unitId:t,subUnitId:o,pluginName:X,selections:Jo(r).map(v=>({range:v,primary:ie(v,d),style:null}))},S=s.sequenceExecute([{id:Ge.id,params:l},{id:K.id,params:m}],a),h=i.onCommandExecute({id:Lt.id,params:e}),f=s.sequenceExecute([...h.redos],a);return S.result&&f.result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:t,undoMutations:[{id:He.id,params:g},{id:K.id,params:R},...(I=h.undos)!=null?I:[]],redoMutations:[...(p=h.preRedos)!=null?p:[],{id:Ge.id,params:l},{id:K.id,params:m},...h.redos]}),!0}},Ko={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var d;const e=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),o=(d=e.getSelections())==null?void 0:d.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=L(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:i,unitId:a,subUnitId:c}=r,u=o.map(l=>i.getHiddenCols(l.startColumn,l.endColumn)).flat();return t.executeCommand(Lt.id,{unitId:a,subUnitId:c,ranges:u})}},nn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var I,p,v;const e=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService),o=n.get(s.IUniverInstanceService),r=n.get(s.ICommandService);let i=(I=e.getSelections())==null?void 0:I.map(M=>M.range).filter(M=>M.rangeType===s.RANGE_TYPE.COLUMN);if(!(i!=null&&i.length))return!1;const a=L(o);if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:d}=a;i=Us(a.worksheet,i);const l={unitId:u,subUnitId:d,ranges:i},m={unitId:u,subUnitId:d,pluginName:X,selections:Jo(i).map(M=>({range:M,primary:ie(M,c),style:null}))},g=bs(n,l),R={unitId:u,subUnitId:d,pluginName:X,selections:i.map(M=>({range:M,primary:ie(M,c),style:null}))},S=s.sequenceExecute([{id:He.id,params:l},{id:K.id,params:m}],r),h=t.onCommandExecute({id:nn.id,params:l}),f=s.sequenceExecute([...h.redos],r);return S.result&&f.result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[{id:Ge.id,params:g},{id:K.id,params:R},...(p=h.undos)!=null?p:[]],redoMutations:[...(v=h.preRedos)!=null?v:[],{id:He.id,params:l},{id:K.id,params:m},...h.redos]}),!0):!1}};function Us(n,e){const t=n.getRowCount()-1,o=n.getHiddenCols(),r=[];return e.forEach(i=>{const a=o.filter(c=>c.startColumn>=i.startColumn&&c.endColumn<=i.endColumn);if(a.length){let c=i.startColumn;a.forEach(u=>{u.startColumn>c&&(r.push({startColumn:c,endColumn:u.startColumn-1,startRow:0,endRow:t}),c=u.endColumn+1)}),c<=i.endColumn&&r.push({startColumn:c,endColumn:i.endColumn,startRow:0,endRow:t})}else r.push(i)}),r}function Jo(n){return Ts(n).map(t=>{const o=t.startColumn===0?t.endColumn+1:t.startColumn-1;return{...t,startColumn:o,endColumn:o}})}function Ts(n){const e=[];let t;return n.sort((o,r)=>o.startColumn-r.startColumn).forEach(o=>{if(!t){t=o;return}t.endColumn===o.startColumn-1?t.endColumn=o.endColumn:(e.push(t),t=o)}),e.push(t),e}const on=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...a}},Ne={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:c,ySplit:u,xSplit:d}=e;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:d},!0}},Xo={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=L(r);if(!i)return!1;const{unitId:a,subUnitId:c,worksheet:u}=i,{startColumn:d,startRow:l,xSplit:m,ySplit:g}=e;if(l>=u.getRowCount()||d>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const R={unitId:a,subUnitId:c,...e},S=on(n,R);return t.syncExecuteCommand(Ne.id,R)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Ne.id,params:S}],redoMutations:[{id:Ne.id,params:R}]}),!0):!1}},Es={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),o=n.get(s.IUniverInstanceService),r=L(o);if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={unitId:i,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=on(n,c);return e.syncExecuteCommand(Ne.id,c)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Ne.id,params:u}],redoMutations:[{id:Ne.id,params:c}]}),!0):!1}},Ns=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},qe={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},ks=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},ze={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId).getRowManager();for(let i=0;i<e.ranges.length;i++){const a=e.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{var I,p,v;const{unitId:t,subUnitId:o,ranges:r}=e,i=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),c=n.get(exports.SheetInterceptorService),u=L(n.get(s.IUniverInstanceService),{unitId:t,subUnitId:o});if(!u)return!1;const{worksheet:d}=u,l={unitId:t,subUnitId:o,ranges:r},m={unitId:t,subUnitId:o,pluginName:X,selections:r.map(M=>({range:M,primary:ie(M,d),style:null}))},g=Ns(n,l),R={unitId:t,subUnitId:o,pluginName:X,selections:Qo(r).map(M=>({range:M,primary:ie(M,d),style:null}))},S=s.sequenceExecute([{id:qe.id,params:l},{id:K.id,params:m}],i),h=c.onCommandExecute({id:Vt.id,params:e}),f=s.sequenceExecute([...h.redos],i);return S.result&&f.result&&a.pushUndoRedo({unitID:t,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:ze.id,params:g},{id:K.id,params:R},...(p=h.undos)!=null?p:[]],redoMutations:[...(v=h.preRedos)!=null?v:[],{id:qe.id,params:l},{id:K.id,params:m},...h.redos]}),!0}},Zo={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const e=n.get(exports.SelectionManagerService),t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),r=(l=e.getSelections())==null?void 0:l.map(m=>m.range).filter(m=>m.rangeType===s.RANGE_TYPE.ROW);if(!(r!=null&&r.length))return!1;const i=L(t);if(!i)return!1;const{worksheet:a,unitId:c,subUnitId:u}=i,d=r.map(m=>a.getHiddenRows(m.startRow,m.endRow)).flat();return o.executeCommand(Vt.id,{unitId:c,subUnitId:u,ranges:d})}},rn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var I,p,v,M,w;const e=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService);let a=(I=e.getSelections())==null?void 0:I.map(y=>y.range).filter(y=>y.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const c=L(r);if(!c)return!1;a=Os(c.worksheet,a);const{unitId:u,subUnitId:d,worksheet:l}=c,m={unitId:u,subUnitId:d,ranges:a},g={unitId:u,subUnitId:d,pluginName:X,selections:Qo(a).map(y=>({range:y,primary:ie(y,l),style:null}))},R=ks(n,m),S={unitId:u,subUnitId:d,pluginName:X,selections:a.map(y=>({range:y,primary:ie(y,l),style:null}))},h=i.onCommandExecute({id:rn.id,params:m});return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:ze.id,params:m},{id:K.id,params:g},...h.redos],t).result&&o.pushUndoRedo({unitID:u,undoMutations:[...(v=h.preUndos)!=null?v:[],{id:qe.id,params:R},{id:K.id,params:S},...(M=h.undos)!=null?M:[]],redoMutations:[...(w=h.preRedos)!=null?w:[],{id:ze.id,params:m},{id:K.id,params:g},...h.redos]}),!0}};function Os(n,e){const t=n.getMaxColumns()-1,o=n.getHiddenRows(),r=[];return e.forEach(i=>{const a=o.filter(c=>c.startRow>=i.startRow&&c.endRow<=i.endRow);if(a.length){let c=i.startRow;a.forEach(u=>{u.startRow>c&&(r.push({startRow:c,endRow:u.startRow-1,startColumn:0,endColumn:t}),c=u.endRow+1)}),c<=i.endRow&&r.push({startRow:c,endRow:i.endRow,startColumn:0,endColumn:t})}else r.push(i)}),r}function Qo(n){return Ds(n).map(t=>{const o=t.startRow===0?t.endRow+1:t.startRow-1;return{...t,startRow:o,endRow:o}})}function Ds(n){const e=[];let t;return n.sort((o,r)=>o.startRow-r.startRow).forEach(o=>{if(!t){t=o;return}o.startRow===t.endRow+1?t.endRow=o.endRow:(e.push(t),t=o)}),e.push(t),e}const te={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const t=n.get(s.IUniverInstanceService),o=L(t);if(!o)return!1;const{unitId:r,subUnitId:i,worksheet:a}=o,{range:c,style:u}=e,d=n.get(s.ICommandService),l=n.get(s.IUndoRedoService),m=n.get(exports.SelectionManagerService),g=c?[c]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const R=new s.ObjectMatrix,S=gs(a);if(s.Tools.isArray(u.value))for(let w=0;w<g.length;w++)S.forOperableEach(g[w],(y,P,U)=>{R.setValue(y,P,{s:{[u.type]:u.value[y-U.startRow][P-U.startColumn]}})});else for(let w=0;w<g.length;w++){const y={s:{[u.type]:u.value}};S.forOperableEach(g[w],(P,U)=>R.setValue(P,U,y))}const h={subUnitId:i,unitId:r,cellValue:R.getMatrix()},f=Pe(n,h),I=d.syncExecuteCommand(G.id,h),{undos:p,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),M=s.sequenceExecute([...v],d);return I&&M.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:G.id,params:f},...p],redoMutations:[{id:G.id,params:h},...v]}),!0):!1}},xs={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t,{actualRow:r,actualColumn:i}=e.primary,c={style:{type:"bl",value:o.getRange(r,i).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(te.id,c)}},As={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t;let r=!0;if(e.primary){const{startRow:a,startColumn:c}=e.primary;r=o.getRange(a,c).getFontStyle()===s.FontItalic.ITALIC}const i={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(te.id,i)}},Ws={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t;let r=!0;e.primary&&(r=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const i={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(te.id,i)}},Ls={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const t=L(n.get(s.IUniverInstanceService));if(!t)return!1;const{worksheet:o}=t;let r=!0;e.primary&&(r=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const i={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(te.id,i)}};s.CommandType.COMMAND;const Vs={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={style:{type:"ff",value:e.value}};return t.executeCommand(te.id,o)}},$s={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={style:{type:"fs",value:e.value}};return t.executeCommand(te.id,o)}},er={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:e.value}}};return t.executeCommand(te.id,o)}},tr={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(s.ICommandService),t={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(te.id,t)}},nr={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:e.value}}};return t.executeCommand(te.id,o)}},or={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(s.ICommandService),t={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(te.id,t)}},rr={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"vt",value:e.value}};return t.executeCommand(te.id,o)}},sr={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"ht",value:e.value}};return t.executeCommand(te.id,o)}},ir={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const t=n.get(s.ICommandService),o={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"tb",value:e.value}};return t.executeCommand(te.id,o)}},ar={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,e)=>{if(!e)return!1;const t=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},o=n.get(s.ICommandService),r={style:{type:"tr",value:t}};return o.executeCommand(te.id,r)}},Bs=(n,e)=>{const i=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:i}},tt={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().tabColor=e.color,!0):!1}},cr={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=L(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={color:e.value,unitId:i,subUnitId:a},u=Bs(n,c);return t.syncExecuteCommand(tt.id,c)?(o.pushUndoRedo({unitID:i,undoMutations:[{id:tt.id,params:u}],redoMutations:[{id:tt.id,params:c}]}),!0):!1}},lt={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getWorksheets();for(const[,r]of o)if(r.getSheetId()===e.subUnitId)return t.setActiveSheet(r),!0;return!1}},js=4,$t={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e,t)=>{const o=n.get(s.ICommandService),r=L(n.get(s.IUniverInstanceService),e);if(!r)return!1;const{unitId:i,subUnitId:a}=r;return new Promise(c=>{setTimeout(()=>{const u=o.syncExecuteCommand(lt.id,{unitId:i,subUnitId:a},t);c(u)},js)})}},sn=(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const i={},a=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const d=c[u];for(let l=d.startColumn;l<d.endColumn+1;l++){const m=a.getColumnOrCreate(l);i[l]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:i}},we={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,e)=>{var u;const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)throw new Error("universheet is null error!");const r=o.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),c=e.ranges;for(let d=0;d<c.length;d++){const l=c[d];for(let m=l.startColumn;m<l.endColumn+1;m++){const g=a.getColumnOrCreate(m);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(u=e.colWidth[m-l.startColumn])!=null?u:i}}return!0}},an={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const o=n.get(exports.SelectionManagerService).getSelections();if(n.get(exports.SheetInterceptorService),!(o!=null&&o.length))return!1;const r=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),a=L(n.get(s.IUniverInstanceService));if(!a)return!1;const{worksheet:c,unitId:u,subUnitId:d}=a,{anchorCol:l,deltaX:m}=e,R=c.getColumnWidth(l)+m,S=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,h=o.filter(P=>P.range.rangeType===s.RANGE_TYPE.COLUMN),f=S?s.RANGE_TYPE.ALL:h.some(({range:P})=>{const{startColumn:U,endColumn:E}=P;return U<=l&&l<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(f===s.RANGE_TYPE.ALL){const P=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((E,O)=>({startRow:0,endRow:P-1,startColumn:O,endColumn:O}));I={subUnitId:d,unitId:u,colWidth:R,ranges:U}}else f===s.RANGE_TYPE.COLUMN?I={subUnitId:d,unitId:u,ranges:h.map(P=>s.Rectangle.clone(P.range)),colWidth:R}:I={subUnitId:d,unitId:u,colWidth:R,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:l,endColumn:l}]};const{undos:p,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:an.id,params:I}),M=sn(n,I),w=r.syncExecuteCommand(we.id,I),y=s.sequenceExecute([...v],r);return w&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:we.id,params:M},...p],redoMutations:[{id:we.id,params:I},...v]}),!0}},Mt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{var I,p;const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const c=L(n.get(s.IUniverInstanceService));if(!c)return!1;const{subUnitId:u,unitId:d}=c,l={subUnitId:u,unitId:d,ranges:a,colWidth:e.value},m=sn(n,l),g=o.syncExecuteCommand(we.id,l),{undos:R,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Mt.id,params:l}),h=i.onCommandExecute({id:Mt.id,params:l}),f=s.sequenceExecute([...S,...h.redos],o);return g&&f.result?(r.pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:we.id,params:m},...R],redoMutations:[...(p=h.preRedos)!=null?p:[],{id:we.id,params:l},...S]}),!0):!1}},ur=(n,e)=>{const t=Pt(n.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:o}=t;return{hidden:o.isSheetHidden(),unitId:e.unitId,subUnitId:o.getSheetId()}},ke={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const o=t.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().hidden=e.hidden,!0):!1}},lr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),i=n.get(s.LocaleService),a=L(n.get(s.IUniverInstanceService),e);if(!a)return!1;const{workbook:c,worksheet:u,unitId:d,subUnitId:l}=a;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:d,subUnitId:l,hidden:s.BooleanNumber.TRUE},R=ur(n,g);return c.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):t.syncExecuteCommand(ke.id,g)?(o.pushUndoRedo({unitID:d,undoMutations:[{id:ke.id,params:R}],redoMutations:[{id:ke.id,params:g}]}),!0):!1}},Fs=(n,e)=>{const t=Pt(n.get(s.IUniverInstanceService),e);if(!t)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:o}=t;return{unitId:e.unitId,name:o.getName(),subUnitId:o.getSheetId()}},wt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)return!1;const o=t.getSheetBySheetId(e.subUnitId);return o?(o.getConfig().name=e.name,!0):!1}},cn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{var S,h;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(exports.SheetInterceptorService),i=L(n.get(s.IUniverInstanceService),e);if(!i)return!1;const{unitId:a,subUnitId:c}=i,u={subUnitId:c,name:e.name,unitId:a},d=Fs(n,u),l=r.onCommandExecute({id:cn.id,params:e}),m=[...(S=l.preRedos)!=null?S:[],{id:wt.id,params:u},...l.redos],g=[...(h=l.preUndos)!=null?h:[],{id:wt.id,params:d},...l.undos];return await s.sequenceExecute(m,t).result?(o.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:m}),!0):!1}},Hs=(n,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),nt={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const o=t.getConfig();return o.sheetOrder.splice(e.fromOrder,1),o.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},dr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=L(n.get(s.IUniverInstanceService),e);if(!r)return!1;const{workbook:i,unitId:a,subUnitId:c}=r,d={fromOrder:i.getConfig().sheetOrder.indexOf(c),toOrder:e.order,unitId:a,subUnitId:c},l=Hs(n,d);return t.syncExecuteCommand(nt.id,d)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:nt.id,params:l}],redoMutations:[{id:nt.id,params:d}]}),!0):!1}},Gs=2e3,mr=(n,e)=>{const{unitId:t,subUnitId:o,ranges:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(o);if(c==null)throw new Error("worksheet is null error!");const u={},d=c.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<m+1;g++){const R=d.getRowOrCreate(g);u[g]=R.h}return{unitId:t,subUnitId:o,ranges:r,rowHeight:u}},un=(n,e)=>{const{unitId:t,subUnitId:o,ranges:r}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(o),u={},d=c.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<=m;g++){const R=d.getRowOrCreate(g);u[g]=R.ia}return{unitId:t,subUnitId:o,ranges:r,autoHeightInfo:u}},qs=(n,e)=>{const{unitId:t,subUnitId:o,rowsAutoHeightInfo:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),c=a==null?void 0:a.getSheetBySheetId(o);if(!c)return{unitId:t,subUnitId:o,rowsAutoHeightInfo:[]};const u=[],d=c.getRowManager();for(const l of r){const{row:m}=l,{ah:g}=d.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:t,subUnitId:o,rowsAutoHeightInfo:u}},ye={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:t,subUnitId:o,ranges:r,rowHeight:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const d=u.getConfig().defaultRowHeight,l=u.getRowManager();for(const{startRow:g,endRow:R}of r)for(let S=g;S<=R;S++){const h=l.getRowOrCreate(S);typeof i=="number"?h.h=i:h.h=(m=i[S])!=null?m:d,h.h=Math.min(Gs,h.h)}return!0}},he={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:t,subUnitId:o,ranges:r,autoHeightInfo:i}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(t),u=c==null?void 0:c.getSheetBySheetId(o);if(!u)return!1;const d=void 0,l=u.getRowManager();for(const{startRow:g,endRow:R}of r)for(let S=g;S<=R;S++){const h=l.getRowOrCreate(S);typeof i=="number"?h.ia=i:h.ia=(m=i[S-g])!=null?m:d}return!0}},ln={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rowsAutoHeightInfo:r}=e,a=n.get(s.IUniverInstanceService).getUnit(t),c=a==null?void 0:a.getSheetBySheetId(o);if(!c||!a)return!1;const u=c.getRowManager();for(const{row:d,autoHeight:l}of r){const m=u.getRowOrCreate(d);m.ah=l}return!0}},dn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{var E,O;const o=n.get(exports.SelectionManagerService).getSelections(),r=n.get(exports.SheetInterceptorService);if(!(o!=null&&o.length))return!1;const i=L(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:a,subUnitId:c,unitId:u}=i,{anchorRow:d,deltaY:l}=e,g=a.getRowHeight(d)+l,R=o.length===1&&o[0].range.rangeType===s.RANGE_TYPE.ALL,S=o.filter(F=>F.range.rangeType===s.RANGE_TYPE.ROW),h=R?s.RANGE_TYPE.ALL:S.some(({range:F})=>{const{startRow:j,endRow:b}=F;return j<=d&&d<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(h===s.RANGE_TYPE.ALL){const F=a.getRowCount(),j=new Array(a.getColumnCount()).fill(void 0).map((b,oe)=>({startRow:oe,endRow:oe,startColumn:0,endColumn:F-1}));f={subUnitId:c,unitId:u,rowHeight:g,ranges:j}}else h===s.RANGE_TYPE.ROW?f={subUnitId:c,unitId:u,ranges:S.map(F=>s.Rectangle.clone(F.range)),rowHeight:g}:f={subUnitId:c,unitId:u,rowHeight:g,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const I=mr(n,f),p={unitId:u,subUnitId:c,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=un(n,p),M=n.get(s.ICommandService),w=n.get(s.IUndoRedoService),y=r.onCommandExecute({id:dn.id,params:f}),P=s.sequenceExecute([{id:ye.id,params:f},{id:he.id,params:p}],M),U=s.sequenceExecute([...y.redos],M);return P.result&&U.result?(w.pushUndoRedo({unitID:u,undoMutations:[...(E=y.preUndos)!=null?E:[],{id:ye.id,params:I},{id:he.id,params:v},...y.undos],redoMutations:[...(O=y.preRedos)!=null?O:[],{id:ye.id,params:f},{id:he.id,params:p},...y.redos]}),!0):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{var p,v;const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),c=t.getSelectionRanges();if(!(c!=null&&c.length))return!1;const u=L(i);if(!u)return!1;const{unitId:d,subUnitId:l}=u,m={subUnitId:l,unitId:d,ranges:c,rowHeight:e.value},g=mr(n,m),R={unitId:d,subUnitId:l,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},S=un(n,R),h=s.sequenceExecute([{id:ye.id,params:m},{id:he.id,params:R}],o),f=a.onCommandExecute({id:mn.id,params:m}),I=s.sequenceExecute([...f.redos],o);return h.result&&I.result?(r.pushUndoRedo({unitID:d,undoMutations:[...(p=f.preRedos)!=null?p:[],{id:ye.id,params:g},{id:he.id,params:S},...f.undos],redoMutations:[...(v=f.preRedos)!=null?v:[],{id:ye.id,params:m},{id:he.id,params:R},...f.redos]}),!0):!1}},gn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),i=n.get(s.IUniverInstanceService),a=L(i);if(!a)return!1;const{unitId:c,subUnitId:u,worksheet:d}=a,{anchorRow:l}=e!=null?e:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:d.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},R=un(n,g),S=t.syncExecuteCommand(he.id,g),{undos:h,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:gn.id,params:g}),I=s.sequenceExecute([...f],t);return S&&I.result?(o.pushUndoRedo({unitID:c,undoMutations:[{id:he.id,params:R},...h],redoMutations:[{id:he.id,params:g},...f]}),!0):!1}},gr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{const{unitId:t,subUnitId:o}=e,r=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService);if(!L(n.get(s.IUniverInstanceService)))return!1;const u=a.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const d=u.getSheetBySheetId(o);if(!d||d.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:t,subUnitId:o,hidden:s.BooleanNumber.FALSE},g=ur(n,m),R=r.syncExecuteCommand(ke.id,m),S={unitId:t,subUnitId:o},h=r.syncExecuteCommand(lt.id,S);return R&&h?(i.pushUndoRedo({unitID:t,undoMutations:[{id:ke.id,params:g}],redoMutations:[{id:ke.id,params:m}]}),!0):!1}},hr=n=>{const e=new s.ObjectMatrix;return n.forEach(t=>{s.Range.foreach(t,(o,r)=>{e.setValue(o,r,1)})}),e.forValue((t,o)=>{const r=e.getValue(t-1,o);r&&e.setValue(t,o,r+1)}),e},Rr=n=>{const e=n;return e.forValue((t,o)=>{const r=n.getValue(t-1,o);r&&e.setValue(t,o,r+1)}),e},Dn=n=>{const e={area:0},t=(o,r)=>e.area<o?(e.area=o,e.range=r,!0):!1;return n.forValue((o,r,i)=>{let a=1,c=i;t(a*c,{startRow:o-c+1,endRow:o,startColumn:r,endColumn:r});const u={startRow:o-c+1,endRow:o,startColumn:0,endColumn:r};for(let d=r-1;d>=0&&n.getValue(o,d);d--){c=Math.min(n.getValue(o,d)||0,c),a++;const l=c*a;u.startColumn=d,u.startRow=o-c+1,t(l,u)}}),e},zs=(n,e)=>(s.Range.foreach(e,(t,o)=>{n.realDeleteValue(t,o);let r=t+1,i=n.getValue(r,o)||0;for(;i>1;)n.setValue(r,o,i-1),r+=1,i=n.getValue(r,o)||0}),n),hn=n=>{const e=[];let t=Dn(n);for(;t.area>0;)t.range&&(e.push(t.range),zs(n,t.range)),t=Dn(n);return e},Rn=n=>{const e=hr(n);return hn(e)};class Ys{constructor(){C(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(t=>{s.Range.foreach(t,(o,r)=>{this._matrix.setValue(o,r,1)})}),this}subtract(...e){return e.forEach(t=>{s.Range.foreach(t,(o,r)=>{this._matrix.realDeleteValue(o,r)})}),this}merge(){const e=Rr(this._matrix);return hn(e)}}const je=$.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,je);const Ks=(n,e)=>{const t=n.get(je),{values:o,unitId:r,subUnitId:i}=e,a=[],c=[];Object.keys(o).forEach(d=>{o[d].ranges.forEach(m=>{s.Range.foreach(m,(g,R)=>{const S=t.getValue(r,i,g,R);S?a.push({pattern:S.pattern,row:g,col:R}):c.push({startColumn:R,endColumn:R,startRow:g,endRow:g})})})});const u=[];if(a.length){const d=yt(r,i,a);Object.keys(d.values).forEach(l=>{const m=d.values[l];m.ranges=Rn(m.ranges)}),u.push({id:Bt.id,params:yt(r,i,a)})}return c.length&&u.push({id:Sn.id,params:{unitId:r,subUnitId:i,ranges:c}}),u},Bt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:t,refMap:o}=e,r=n.get(je),i=e.unitId,a=e.subUnitId,c=Object.keys(t).reduce((u,d)=>{const l=o[d],m=t[d].ranges;return l&&u.push({...l,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},Sn={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:t,subUnitId:o,ranges:r}=e;return n.get(je).deleteValues(t,o,r),!0}},Js=(n,e)=>{const t=n.get(je),{ranges:o,unitId:r,subUnitId:i}=e,a=[];if(o.forEach(u=>{s.Range.foreach(u,(d,l)=>{const m=t.getValue(r,i,d,l);m&&a.push({pattern:m.pattern,row:d,col:l})})}),!a.length)return[];const c=yt(r,i,a);return Object.keys(c.values).forEach(u=>{const d=c.values[u];d.ranges=Rn(d.ranges)}),[{id:Bt.id,params:c}]},yt=(n,e,t)=>{const o=is(t,"pattern"),r={},i={},a=as();return Object.keys(o).forEach(c=>{const u=o[c],d=a();r[d]={pattern:c},u.forEach(l=>{i[d]||(i[d]={ranges:[]}),i[d].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:e,refMap:r,values:i}},Sr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},Cr={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(de.SetDefinedNameMutation.id,r)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:de.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:de.SetDefinedNameMutation.id,params:r}]}),!0):!1}},fr={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return t.syncExecuteCommand(de.RemoveDefinedNameMutation.id,r)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:de.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:de.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},vr={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,e)=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService);return e&&t.syncExecuteCommand(de.SetDefinedNameMutation.id,e.newDefinedName)?(o.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:de.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:de.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},pr={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Cn={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET);return t?(t.setName(e.name),!0):!1}},fn={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,e)=>{var d;if(!n.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const i=n.get(exports.SheetInterceptorService).onCommandExecute({id:fn.id,params:e}),a={name:e.name,unitId:e.unitId},c=[...(d=i.preRedos)!=null?d:[],{id:Cn.id,params:a},...i.redos],u=n.get(s.ICommandService);return s.sequenceExecute(c,u).result}};var Xs=Object.defineProperty,Zs=Object.getOwnPropertyDescriptor,Qs=(n,e,t,o)=>{for(var r=o>1?void 0:o?Zs(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Xs(e,t,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new ue.Subject);C(this,"_ruleRefresh",new ue.Subject);C(this,"_resetOrder",new ue.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new ue.BehaviorSubject(!1));C(this,"worksheetRuleInitStateChange$",this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}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 r,i,a;const o=(i=(r=this._model)==null?void 0:r.get(e))==null?void 0:i.get(t);o&&((a=this._model.get(e))==null||a.delete(t),this._ruleChange.next({unitId:e,rule:o,type:"delete",subUnitId:t}))}setRule(e,t,o){var i,a;const r=this.getRule(e,t);r&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.set(t,o),this._ruleChange.next({unitId:e,oldRule:r,rule:o,type:"set",subUnitId:t}))}getRule(e,t){var o,r;return(r=(o=this._model)==null?void 0:o.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o);r!=null&&r.size&&(e[o]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[o].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(o=>{const r=e[o];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(o,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_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())}};exports.WorksheetProtectionRuleModel=Qs([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionRuleModel)],exports.WorksheetProtectionRuleModel);const Ir={id:"sheet.mutation.add-worksheet-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,rule:o}=e;return n.get(exports.WorksheetProtectionRuleModel).addRule(t,o),!0}},Mr={id:"sheet.mutation.set-worksheet-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rule:r}=e;return n.get(exports.WorksheetProtectionRuleModel).setRule(t,o,r),!0}},wr={id:"sheet.mutation.delete-worksheet-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o}=e;return n.get(exports.WorksheetProtectionRuleModel).deleteRule(t,o),!0}};var ei=Object.defineProperty,ti=Object.getOwnPropertyDescriptor,ni=(n,e,t,o)=>{for(var r=o>1?void 0:o?ti(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ei(e,t,r),r};exports.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new ue.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new ue.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new ue.BehaviorSubject(!1));C(this,"rangeRuleInitStateChange$",this._rangeRuleInitStateChange.asObservable())}ruleRefresh(e){this._ruleRefresh.next(e)}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,t,o){this._ensureRuleMap(e,t).set(o.id,o),this._ruleChange.next({unitId:e,subUnitId:t,rule:o,type:"add"})}deleteRule(e,t,o){var i,a,c,u;const r=(a=(i=this._model.get(e))==null?void 0:i.get(t))==null?void 0:a.get(o);r&&((u=(c=this._model.get(e))==null?void 0:c.get(t))==null||u.delete(o),this._ruleChange.next({unitId:e,subUnitId:t,rule:r,type:"delete"}))}setRule(e,t,o,r){var a,c;const i=this.getRule(e,t,o);i&&((c=(a=this._model.get(e))==null?void 0:a.get(t))==null||c.set(o,r),this._ruleChange.next({unitId:e,subUnitId:t,oldRule:i,rule:r,type:"set"}))}getRule(e,t,o){var r,i;return(i=(r=this._model.get(e))==null?void 0:r.get(t))==null?void 0:i.get(o)}getSubunitRuleList(e,t){var r;return[...(((r=this._model.get(e))==null?void 0:r.get(t))||new Map).values()]}_ensureRuleMap(e,t){let o=this._model.get(e);o||(o=new Map,this._model.set(e,o));let r=o.get(t);return r||(r=new Map,o.set(t,r)),r}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o),i=[...r.keys()];e[o]={},i.forEach(a=>{const c=r.get(a);e[o][a]=[...c.values()]})}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(o=>{const r=e[o],i=new Map;Object.keys(r).forEach(a=>{const c=r[a].reduce((u,d)=>(u.set(d.id,d),u),new Map);i.set(a,c)}),t.set(o,i)}),this._model=t}deleteUnitModel(){this._model.clear()}createRuleId(e,t){let o=s.Tools.generateRandomId(4);const r=this._ensureRuleMap(e,t);for(;r.has(o);)o=s.Tools.generateRandomId(4);return o}};exports.RangeProtectionRuleModel=ni([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const Te=()=>[Jt,eo],ot=()=>[Xn,ao,io,mo,uo,ro,oo,so,lo,Zn,Qn,no,to,co],oi=[_.Copy,_.DeleteColumn,_.DeleteRow,_.EditExtraObject,_.Filter,_.InsertColumn,_.InsertRow,_.InsertHyperlink,_.PivotTable,_.SetCellStyle,_.SetCellValue,_.SetColumnStyle,_.SetRowStyle,_.Sort];var ri=Object.defineProperty,si=Object.getOwnPropertyDescriptor,ii=(n,e,t,o)=>{for(var r=o>1?void 0:o?si(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ri(e,t,r),r};exports.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new ue.Subject);C(this,"pointChange$",this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,t){var r,i,a;const o=(r=this._model.get(e))==null?void 0:r.get(t);o&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.delete(t),this._pointChange.next(o))}getRule(e,t){var o,r;return(r=(o=this._model)==null?void 0:o.get(e))==null?void 0:r.get(t)}toObject(){const e={};return[...this._model.keys()].forEach(o=>{const r=this._model.get(o);r!=null&&r.size&&(e[o]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[o].push(c)}))}),e}fromObject(e){const t=new Map;Object.keys(e).forEach(o=>{const r=e[o];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),t.set(o,i)}}),this._model=t}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let t=this._model.get(e);return t||(t=new Map,this._model.set(e,t)),t}};exports.WorksheetProtectionPointModel=ii([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var ai=Object.defineProperty,ci=Object.getOwnPropertyDescriptor,ui=(n,e,t,o)=>{for(var r=o>1?void 0:o?ci(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ai(e,t,r),r},Oe=(n,e)=>(t,o)=>e(t,o,n);const li="SHEET_WORKSHEET_PROTECTION_PLUGIN",di="SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN";exports.WorksheetPermissionService=class extends s.RxDisposable{constructor(e,t,o,r,i,a,c){super(),this._permissionService=e,this._univerInstanceService=t,this._injector=o,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._rangeProtectionRuleModel=c,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){const e=t=>{const o=t.getUnitId(),r=i=>{const a=i.getSheetId();[...Te(),...ot()].forEach(c=>{const u=new c(o,a);this._permissionService.addPermissionPoint(u)})};t.getSheets().forEach(i=>{r(i)}),t.sheetCreated$.subscribe(i=>{r(i)}),t.sheetDisposed$.subscribe(i=>{const a=i.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(o,a).forEach(u=>{[Et,Nt].forEach(d=>{const l=new d(o,a,u.permissionId);this._permissionService.deletePermissionPoint(l.id)})}),[...Te(),...ot()].forEach(u=>{const d=new u(o,a);this._permissionService.deletePermissionPoint(d.id)})})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(e),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(et.takeUntil(this.dispose$)).subscribe(t=>{t.getSheets().forEach(o=>{const r=t.getUnitId(),i=o.getSheetId();Te().forEach(a=>{const c=new a(r,i);this._permissionService.deletePermissionPoint(c.id)})})})}_initRuleChange(){this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":break;case"delete":{Te().forEach(t=>{const o=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(o.id,!0)});break}case"set":{Te().forEach(t=>{const o=new t(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(o.id,e.rule)});break}}}))}_initRuleSnapshot(){const e=()=>{const o=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(o)},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:li,businesses:[It.UNIVER_SHEET],onLoad:(o,r)=>{this._worksheetProtectionRuleModel.fromObject(r),Object.keys(r).forEach(i=>{Te().forEach(a=>{const c=new a(o,i);this._permissionService.addPermissionPoint(c)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:()=>{this._worksheetProtectionRuleModel.deleteUnitModel()}}))}_initPointSnapshot(){const e=()=>{const o=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(o)},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:di,businesses:[It.UNIVER_SHEET],onLoad:(o,r)=>{this._worksheetProtectionPointRuleModel.fromObject(r),Object.keys(r).forEach(i=>{ot().forEach(a=>{const c=new a(o,i);this._permissionService.addPermissionPoint(c)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}};exports.WorksheetPermissionService=ui([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetPermissionService),Oe(0,$.Inject(s.IPermissionService)),Oe(1,$.Inject(s.IUniverInstanceService)),Oe(2,$.Inject($.Injector)),Oe(3,$.Inject(exports.WorksheetProtectionRuleModel)),Oe(4,$.Inject(exports.WorksheetProtectionPointModel)),Oe(5,$.Inject(s.IResourceManagerService)),Oe(6,$.Inject(exports.RangeProtectionRuleModel))],exports.WorksheetPermissionService);const yr={id:"sheet.mutation.set-worksheet-permission-points",type:s.CommandType.MUTATION,handler:(n,e)=>{const{rule:t}=e;return n.get(exports.WorksheetProtectionPointModel).addRule(t),!0}},_r={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-permission-points",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),{rule:o}=e;return t.executeCommand(yr.id,{rule:o,unitId:o.unitId,subUnitId:o.subUnitId}),!0}},mi=(n,e)=>{const t=n.get(exports.RangeProtectionRuleModel),o=e.ruleIds.map(i=>t.getRule(e.unitId,e.subUnitId,i)).filter(i=>!!i);return{id:Ke.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:o}}},Ye={id:"sheet.mutation.delete-range-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,ruleIds:r}=e,i=n.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.deleteRule(t,o,a)}),!0}},gi=n=>{const e={...n,ruleIds:n.rules.map(t=>t.id)};return{id:Ye.id,params:e}},Ke={id:"sheet.mutation.add-range-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rules:r}=e,i=n.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.addRule(t,o,a)}),!0}},vn={type:s.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),r=n.get(exports.RangeProtectionRuleModel),{rule:i,permissionId:a}=e,{unitId:c,subUnitId:u,ranges:d,name:l,description:m}=i,g=[{ranges:d,permissionId:a,id:r.createRuleId(c,u),name:l,description:m,unitType:i.unitType,unitId:c,subUnitId:u}];if(await t.executeCommand(Ke.id,{unitId:c,subUnitId:u,rules:g})){const S=[{id:Ke.id,params:{unitId:c,subUnitId:u,rules:g}}],h=[{id:Ye.id,params:{unitId:c,subUnitId:u,ruleIds:g.map(f=>f.id)}}];o.pushUndoRedo({unitID:c,redoMutations:S,undoMutations:h})}return!0}},br={type:s.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),{unitId:r,subUnitId:i,rule:a}=e,c={unitId:r,subUnitId:i,ruleIds:[a.id]};return await t.executeCommand(Ye.id,c)&&o.pushUndoRedo({unitID:r,redoMutations:[{id:Ye.id,params:c}],undoMutations:[{id:Ke.id,params:{unitId:r,subUnitId:i,rules:[a]}}]}),!0}},ee={id:"sheet.mutation.set-range-protection",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:o,rule:r,ruleId:i}=e;return n.get(exports.RangeProtectionRuleModel).setRule(t,o,i,r),!0}},hi=(n,e)=>{const{unitId:t,subUnitId:o,ruleId:r}=e,a=n.get(exports.RangeProtectionRuleModel).getRule(t,o,r);return a?{id:ee.id,params:{...e,rule:a}}:null},pn={type:s.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(n,e){if(!e)return!1;const t=n.get(s.ICommandService),o=n.get(exports.RangeProtectionRuleModel),r=n.get(s.IUndoRedoService),{rule:i,permissionId:a,oldRule:c}=e,{unitId:u,subUnitId:d,ranges:l,name:m,description:g}=i;if(i.id){const R={unitId:u,subUnitId:d,ruleId:i.id,rule:{ranges:l,permissionId:a,id:o.createRuleId(u,d),name:m,description:g}};if(await t.executeCommand(ee.id,R)){const h=[{id:ee.id,params:R}],f=[{id:ee.id,params:{unitId:u,subUnitId:d,ruleId:i.id,rule:c}}];r.pushUndoRedo({unitID:u,redoMutations:h,undoMutations:f})}}return!0}},Ri=n=>{const{order:e}=n,t={};return Object.keys(e).forEach(o=>{t[e[Number(o)]]=Number(o)}),{...n,order:t}},rt={id:"sheet.mutation.reorder-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{subUnitId:t,unitId:o,range:r,order:i}=e,u=n.get(s.IUniverInstanceService).getUnit(o).getSheetBySheetId(t);if(!u)return!1;const d=new s.ObjectMatrix;s.Range.foreach(r,(m,g)=>{if(i.hasOwnProperty(m)){const R=i[m],S=s.Tools.deepClone(u.getCellRaw(R,g));d.setValue(m,g,S)}});const l=u.getCellMatrix();return d.forValue((m,g,R)=>{l.setValue(m,g,R)}),!0}},Pr="sheet.command.reorder-range",In={id:Pr,type:s.CommandType.COMMAND,handler:(n,e)=>{var S,h;const{subUnitId:t,unitId:o,range:r,order:i}=e,a=n.get(s.ICommandService),c={id:rt.id,params:{unitId:o,subUnitId:t,order:i,range:r}},u={id:rt.id,params:Ri(c.params)},l=n.get(exports.SheetInterceptorService).onCommandExecute({id:In.id,params:e}),m=[...(S=l.preRedos)!=null?S:[],c,...l.redos],g=[...(h=l.preUndos)!=null?h:[],u,...l.undos];return s.sequenceExecute(m,a).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:g,redoMutations:m}),!0):!1}},Ur="maxCellsPerSheet",Si=3e6,Tr="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var Ci=Object.defineProperty,fi=Object.getOwnPropertyDescriptor,vi=(n,e,t,o)=>{for(var r=o>1?void 0:o?fi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Ci(e,t,r),r},Ft=(n,e)=>(t,o)=>e(t,o,n);let vt=class extends s.Disposable{constructor(n,e,t){var r;super(),this._commandService=n,this._configService=e,this._dataSyncPrimaryController=t,[G,Ie,pe,De,xe,_e,be,fe,Me,Je,z,Sn,H,Cn,wt,Bt,rt,Sr].forEach(i=>{var a;this._commandService.registerCommand(i),(a=this._dataSyncPrimaryController)==null||a.registerSyncingMutations(i)}),((r=this._configService.getConfig(Tr))!=null?r:!1)||[_t,Yt,bt,Kn,kt,Ot,an,dn,Ao,xo,$e,Dt,xt,Oo,ko,Ve,Wo,Wt,Ut,At,ut,ct,tn,In,Ho,or,tr,nr,Go,Yo,Xe,qo,zo,nn,He,Ge,Mt,Es,Xo,Ne,sr,at,mn,rn,ze,qe,Ko,Zo,Lt,Vt,te,cr,tt,er,ar,ir,rr,fn,$t,lt,we,lr,ke,cn,dr,nt,ln,ye,gn,he,K,pr,Cr,fr,vr,gr,_r,Ir,Mr,wr,yr,vn,br,pn,Ke,Ye,ee].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i))),this._configService.setConfig(Ur,Si)}};vt=vi([s.OnLifecycle(s.LifecycleStages.Starting,vt),Ft(0,s.ICommandService),Ft(1,s.IConfigService),Ft(2,$.Optional(Fr.DataSyncPrimaryController))],vt);var pi=Object.defineProperty,Ii=Object.getOwnPropertyDescriptor,Mi=(n,e,t,o)=>{for(var r=o>1?void 0:o?Ii(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&pi(e,t,r),r},xn=(n,e)=>(t,o)=>e(t,o,n);let pt=class extends s.Disposable{constructor(n,e){super(),this._univerInstanceService=n,this._commandService=e,this._initialize()}_initialize(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==de.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:t}=e,o=Object.keys(t),r=[];return o.forEach(a=>{const c=t[a];if(c==null)return!0;Object.keys(c).forEach(d=>{const l=c[d];if(l==null)return!0;const m=this._getMergedCellData(a,d,l),g={subUnitId:d,unitId:a,cellValue:m};r.push({id:G.id,params:g})})}),r.every(a=>this._commandService.executeCommand(a.id,a.params,{onlyLocal:!0}))}))}_getMergedCellData(n,e,t){const o=this._univerInstanceService.getUniverSheetInstance(n),r=o==null?void 0:o.getStyles(),i=o==null?void 0:o.getSheetBySheetId(e),a=i==null?void 0:i.getCellMatrix(),c=new s.ObjectMatrix(t);return c.forValue((u,d,l)=>{const m=a==null?void 0:a.getValue(u,d),g=de.handleNumfmtInCell(m,l,r);c.setValue(u,d,g)}),c.clone()}};pt=Mi([s.OnLifecycle(s.LifecycleStages.Ready,pt),xn(0,$.Inject(s.IUniverInstanceService)),xn(1,s.ICommandService)],pt);const T={MoveRangeCommandId:Jn,InsertRowCommandId:No,InsertColCommandId:Do,RemoveColCommandId:Fo,RemoveRowCommandId:jo,DeleteRangeMoveLeftCommandId:Uo,DeleteRangeMoveUpCommandId:To,InsertRangeMoveDownCommandId:Ms,InsertRangeMoveRightCommandId:Eo,MoveColsCommandId:Bo,MoveRowsCommandId:$o,ReorderRangeCommandId:Pr};var W=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(W||{});const ht=Number.MAX_SAFE_INTEGER,ve=n=>{const e={...n},t=Number.isNaN(e.startRow)&&Number.isNaN(e.endRow)&&!Number.isNaN(e.startColumn)&&!Number.isNaN(e.endColumn),o=Number.isNaN(e.startColumn)&&Number.isNaN(e.endColumn)&&!Number.isNaN(e.startRow)&&!Number.isNaN(e.endRow);return(e.rangeType===s.RANGE_TYPE.COLUMN||t)&&(e.startRow=0,e.endRow=ht),(e.rangeType===s.RANGE_TYPE.ROW||o)&&(e.startColumn=0,e.endColumn=ht),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=ht,e.startRow=0,e.endRow=ht),e},le=n=>{let e=n.rangeType;return n.rangeType===s.RANGE_TYPE.COLUMN?e=s.RANGE_TYPE.ROW:n.rangeType===s.RANGE_TYPE.ROW&&(e=s.RANGE_TYPE.COLUMN),{startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow,rangeType:e}},st=(n,e,t)=>{const o={...t},r={...e},i=(h,f)=>{const I=Math.max(h.start,f.start),p=Math.min(h.end,f.end);return p<I?null:{start:I,end:p}},a=h=>h.end-h.start+1,c=(h,f)=>({start:h.start-f.start,end:h.start-f.start+h.end-h.start}),u=(h,f)=>({start:f.start+h.start,end:f.start+h.start+h.end-h.start}),d=e.start>n.start;if(d){const h=Math.min(n.end,e.start)-n.start+1;r.start-=h,r.end-=h}const l=a(n),m=l,g=i(n,o),R=g&&a(g)>=a(o);if(n.end<o.start)o.start-=l,o.end-=l;else if(g){const h=a(g);if(R){const f=c(o,n),I=u(f,r);o.start=I.start,o.end=I.end}else g.start>n.start?d?(o.end-=h+l,o.start-=l):o.end-=h:d?o.end-=h:o.start>n.start&&o.end>n.end?(o.start-=l,o.end-=l+h):o.end-=h}const S=i(r,o);return R||(r.start<=o.start?(o.start+=m,o.end+=m):S&&(d?r.end<=o.start||r.start<=o.start&&r.end>=o.start?(o.start+=m,o.end+=m):r.start>=o.start&&r.start<=o.end&&(o.end+=m):o.start<r.start&&o.end>r.start?o.end+=m:(o.start>=r.end||o.start>=r.start&&o.start<=r.end)&&(o.end+=m,o.start+=m))),{step:o.start-t.start,length:a(o)-a(t)}},Mn=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!o||!t)return[];const r=ve(t),i=ve(o),a=ve(e),c=st({start:r.startRow,end:r.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return c===null?[{type:W.Delete}]:[{type:W.VerticalMove,step:c.step||0,length:c.length||0}]},wi=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!t||!o)return[e];const r=t.startRow,i=t.endRow-t.startRow+1,a=o.startRow,c=new s.ObjectMatrix;return s.Range.foreach(e,(d,l)=>{c.setValue(d,l,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,d=>d===1)},yi=(n,e)=>{const{range:t,order:o}=n.params||{};if(!t||!o)return[e];const r=new s.ObjectMatrix;s.Range.foreach(e,(c,u)=>{r.setValue(c,u,1)});const i=new s.ObjectMatrix;return s.Range.foreach(t,(c,u)=>{var d;if(o.hasOwnProperty(c)){const l=o[c],m=(d=r.getValue(l,u))!=null?d:0;i.setValue(c,u,m)}}),i.forValue((c,u,d)=>{r.setValue(c,u,d)}),s.queryObjectMatrix(r,c=>c===1)},wn=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!o||!t)return[];const r=ve(t),i=ve(o),a=ve(e),c=st({start:r.startColumn,end:r.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return c===null?[{type:W.Delete}]:[{type:W.HorizontalMove,step:c.step||0,length:c.length||0}]},_i=(n,e)=>{const{fromRange:t,toRange:o}=n.params||{};if(!t||!o)return[e];const r=t.startColumn,i=t.endColumn-t.startColumn+1,a=o.startColumn,c=new s.ObjectMatrix;return s.Range.foreach(e,(u,d)=>{c.setValue(u,d,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Er=(n,e)=>{var i,a;const t=(i=n.params)==null?void 0:i.toRange,o=(a=n.params)==null?void 0:a.fromRange;if(!t||!o)return[];const r=[];if(s.Rectangle.contains(t,e)&&r.push({type:W.Delete}),s.Rectangle.contains(o,e)){r.push({type:W.Delete});const c=s.Rectangle.getRelativeRange(e,o),u=s.Rectangle.getPositionRange(c,t);return[{type:W.Set,range:u}]}return r},bi=(n,e)=>{var m,g;const t=(m=n.params)==null?void 0:m.toRange,o=(g=n.params)==null?void 0:g.fromRange;if(!t||!o)return[e];if(!s.Rectangle.intersects(o,e)&&!s.Rectangle.intersects(t,e))return[e];if(s.Rectangle.contains(o,e)){const R=s.Rectangle.getRelativeRange(e,o);return[s.Rectangle.getPositionRange(R,t)]}const r=new s.ObjectMatrix;s.Range.foreach(e,(R,S)=>{r.setValue(R,S,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(o,e);a&&s.Range.foreach(a,(R,S)=>{r.getValue(R,S)&&(r.setValue(R,S,void 0),i.setValue(R,S,1))});const c=t.startColumn-o.startColumn,u=t.startRow-o.startRow,d={startColumn:t.startColumn-c,endColumn:t.endColumn-c,startRow:t.startRow-u,endRow:t.endRow-u};return d&&s.Range.foreach(d,(R,S)=>{var I;const h=R+u,f=S+c;r.setValue(h,f,(I=i.getValue(R,S))!=null?I:0)}),s.queryObjectMatrix(r,R=>R===1)},Ae=(n,e)=>{const t=ve(n),o=ve(e),r=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(t.startRow<=o.startRow&&t.endRow>=o.endRow){if(o.startColumn<t.startColumn&&o.endColumn>=t.startColumn&&o.endColumn<=t.endColumn||o.startColumn<t.startColumn&&o.endColumn>=t.endColumn){const a=s.Rectangle.getIntersects(o,t);if(a)return{step:0,length:-r(a)}}if(o.startColumn>=t.startColumn&&o.endColumn<=t.endColumn&&i(t)>=i(o))return null;if(o.startColumn>=t.startColumn&&o.startColumn<=t.endColumn&&o.endColumn>t.endColumn){const a=s.Rectangle.getIntersects(o,t);if(a){const c=-r(a);return{step:-(r(t)-r(a)),length:c}}}if(o.startColumn>t.endColumn)return{step:-r(t),length:0}}return{step:0,length:0}},yn=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(t,e);if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.HorizontalMove,step:a,length:c})}return o},_n=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(le(t),le(e));if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.VerticalMove,step:a,length:c})}return o},Pi=(n,e)=>{const{range:t,order:o}=n.params||{};if(!t||!o)return[];if(s.Rectangle.contains(t,e)&&e.endRow===e.startRow){const r=[],i=e.startRow;for(const a in o)if(o[a]===i){const c=Number(a);return r.push({type:W.VerticalMove,step:c-i,length:0}),r}return[]}return[]},We=(n,e)=>{const t=ve(n),o=ve(e),r=i=>i.endColumn-i.startColumn+1;if(t.startRow<=o.startRow&&t.endRow>=o.endRow){if(o.startColumn<t.startColumn&&o.endColumn>=t.startColumn&&o.endColumn<=t.endColumn||o.startColumn<t.startColumn&&o.endColumn>=t.endColumn)return{step:0,length:r(t)};if(o.startColumn>=t.startColumn&&o.endColumn<=t.endColumn||o.startColumn>t.startColumn&&o.startColumn<=t.endColumn&&o.endColumn>t.endColumn||o.startColumn>=t.endColumn)return{step:r(t),length:0}}return{step:0,length:0}};function Ui(n,e,t){const o=[];if(s.Rectangle.contains(e,t)&&o.push({type:W.Delete}),s.Rectangle.contains(n,t)){o.push({type:W.Delete});const r=s.Rectangle.getRelativeRange(t,n),i=s.Rectangle.getPositionRange(r,e);return[{type:W.Set,range:i}]}return o}const bn=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(le(t),le(e)),{step:i,length:a}=r;return o.push({type:W.VerticalMove,step:i,length:a}),o},Pn=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(t,e),{step:i,length:a}=r;return o.push({type:W.HorizontalMove,step:i,length:a}),o},Nr=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(le(t),le(e)),{step:i,length:a}=r;return o.push({type:W.VerticalMove,step:i,length:a}),o},Ti=(n,e)=>{var u;const t=(u=n.params)==null?void 0:u.range;if(!t)return[e];const o=t.endRow-t.startRow+1,r={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(d=>{s.Range.foreach(d,(l,m)=>{c.setValue(l,m,1)})}),a&&s.Range.foreach(a,(d,l)=>{c.setValue(d+o,l,1)}),s.queryObjectMatrix(c,d=>d===1)},kr=(n,e)=>{var c;const t=(c=n.params)==null?void 0:c.range;if(!t)return[];const o=[],r=We(t,e),{step:i,length:a}=r;return o.push({type:W.HorizontalMove,step:i,length:a}),o},Ei=(n,e)=>{var u;const t=(u=n.params)==null?void 0:u.range;if(!t)return[e];const o=t.endColumn-t.startColumn+1,r={...t,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},i=s.Rectangle.subtract(e,r),a=s.Rectangle.getIntersects(r,e);if(!a)return[e];const c=new s.ObjectMatrix;return i.forEach(d=>{s.Range.foreach(d,(l,m)=>{c.setValue(l,m,1)})}),a&&s.Range.foreach(a,(d,l)=>{c.setValue(d,l+o,1)}),s.queryObjectMatrix(c,d=>d===1)},Or=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(t,e);if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.HorizontalMove,step:a,length:c})}return o},Ni=(n,e)=>{var d;const t=(d=n.params)==null?void 0:d.range;if(!t)return[e];const o={startRow:t.startRow,endRow:t.endRow,startColumn:t.startColumn,endColumn:Number.POSITIVE_INFINITY},r=t.endColumn-t.startColumn+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,o),c=s.Rectangle.getIntersects(o,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(l,m)=>{u.setValue(l,m-r,1)}),i&&s.Range.foreach(i,(l,m)=>{u.setValue(l,m-r,0)}),a.forEach(l=>{s.Range.foreach(l,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,l=>l===1)},Dr=(n,e)=>{var i;const t=(i=n.params)==null?void 0:i.range;if(!t)return[];const o=[],r=Ae(le(t),le(e));if(!r)o.push({type:W.Delete});else{const{step:a,length:c}=r;o.push({type:W.VerticalMove,step:a,length:c})}return o},ki=(n,e)=>{var d;const t=(d=n.params)==null?void 0:d.range;if(!t)return[e];const o={...t,startRow:t.startRow,endRow:Number.POSITIVE_INFINITY},r=t.endRow-t.startRow+1,i=s.Rectangle.getIntersects(t,e),a=s.Rectangle.subtract(e,o),c=s.Rectangle.getIntersects(o,e);if(!i&&!c)return[e];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(l,m)=>{u.setValue(l-r,m,1)}),i&&s.Range.foreach(i,(l,m)=>{u.setValue(l-r,m,0)}),a.forEach(l=>{s.Range.foreach(l,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,l=>l===1)},Le=(n,e)=>{let t={...e};return n.forEach(o=>{switch(o.type){case W.Delete:{t=null;break}case W.HorizontalMove:{if(!t)return;t.startColumn+=o.step,t.endColumn+=o.step+(o.length||0);break}case W.VerticalMove:{if(!t)return;t.startRow+=o.step,t.endRow+=o.step+(o.length||0);break}case W.Set:{t=o.range;break}}}),t&&(t.endColumn<t.startColumn||t.endRow<t.startRow)?null:t},xr=(n,e)=>{let t=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:{t=Or(e,n);break}case T.DeleteRangeMoveUpCommandId:{t=Dr(e,n);break}case T.InsertColCommandId:{t=Pn(e,n);break}case T.InsertRangeMoveDownCommandId:{t=Nr(e,n);break}case T.InsertRangeMoveRightCommandId:{t=kr(e,n);break}case T.InsertRowCommandId:{t=bn(e,n);break}case T.MoveColsCommandId:{t=wn(e,n);break}case T.MoveRangeCommandId:{t=Er(e,n);break}case T.MoveRowsCommandId:{t=Mn(e,n);break}case T.RemoveColCommandId:{t=yn(e,n);break}case T.RemoveRowCommandId:{t=_n(e,n);break}case T.ReorderRangeCommandId:{t=Pi(e,n);break}}return Le(t,n)},Oi=(n,e,t)=>Ai(e,t).some(r=>s.Rectangle.intersects(r,n))?xr(n,e):n,Di=(n,e)=>{let t=[];switch(e.id){case T.DeleteRangeMoveLeftCommandId:return Ni(e,n);case T.DeleteRangeMoveUpCommandId:return ki(e,n);case T.InsertRangeMoveDownCommandId:return Ti(e,n);case T.InsertRangeMoveRightCommandId:return Ei(e,n);case T.InsertColCommandId:{t=Pn(e,n);break}case T.InsertRowCommandId:{t=bn(e,n);break}case T.MoveColsCommandId:return _i(e,n);case T.MoveRangeCommandId:return bi(e,n);case T.MoveRowsCommandId:return wi(e,n);case T.ReorderRangeCommandId:return yi(e,n);case T.RemoveColCommandId:{t=yn(e,n);break}case T.RemoveRowCommandId:{t=_n(e,n);break}}return Le(t,n)};function xi(n,e){const{id:t,params:o}=e;let r={length:0,step:0,type:W.Unknown};switch(t){case Je.id:r.type=W.Delete;break;case _e.id:r=st({start:o.sourceRange.startRow,end:o.sourceRange.endRow},{start:o.targetRange.startRow,end:o.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=W.VerticalMove;break;case be.id:r=st({start:o.sourceRange.startColumn,end:o.sourceRange.endColumn},{start:o.targetRange.startColumn,end:o.targetRange.endColumn},{start:n.startColumn,end:n.endColumn}),r.type=W.HorizontalMove;break;case fe.id:r=Ae(o.range,n),r?r.type=W.HorizontalMove:r={step:0,length:0,type:W.Delete};break;case Me.id:r=Ae(le(o.range),le(n)),r?r.type=W.VerticalMove:r={step:0,length:0,type:W.Delete};break;case pe.id:r=We(le(o.range),le(n)),r.type=W.VerticalMove;break;case Ie.id:r=We(o.range,n),r.type=W.HorizontalMove;break;case xe.id:r=Ui(new s.ObjectMatrix(o.from).getRange(),new s.ObjectMatrix(o.to).getRange(),n);break}return r?Array.isArray(r)?Le(r,n):Le([r],n):n}function Ai(n,e){var o,r,i,a;const{selectionManagerService:t}=e;switch(n.id){case T.MoveColsCommandId:{const c=n.params;return[c.fromRange,{...c.toRange,startColumn:c.toRange.startColumn-.5,endColumn:c.toRange.endColumn-.5}]}case T.MoveRowsCommandId:{const c=n.params;return[c.fromRange,{...c.toRange,startRow:c.toRange.startRow-.5,endRow:c.toRange.startRow-.5}]}case T.MoveRangeCommandId:{const c=n;return[c.params.fromRange,c.params.toRange]}case T.InsertRowCommandId:{const u=n.params.range;return[{...u,startRow:u.startRow-.5,endRow:u.endRow-.5}]}case T.InsertColCommandId:{const u=n.params.range;return[{...u,startColumn:u.startColumn-.5,endColumn:u.endColumn-.5}]}case T.RemoveRowCommandId:return[n.params.range];case T.RemoveColCommandId:return[n.params.range];case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const u=((o=n.params)==null?void 0:o.range)||((r=t.getSelectionRanges())==null?void 0:r[0]);return u?[u]:[]}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const u=((i=n.params)==null?void 0:i.range)||((a=t.getSelectionRanges())==null?void 0:a[0]);return u?[u]:[]}case T.ReorderRangeCommandId:{const c=n,{range:u,order:d}=c.params,l=[];for(let m=u.startRow;m<=u.endRow;m++)m in d&&l.push({startRow:m,endRow:m,startColumn:u.startColumn,endColumn:u.endColumn});return l}}}function Wi(n){switch(n.id){case be.id:{const e=n.params;return[e.sourceRange,{...e.targetRange,startColumn:e.targetRange.startColumn-.5,endColumn:e.targetRange.startColumn-.5}]}case _e.id:{const e=n.params;return[e.sourceRange,{...e.targetRange,startRow:e.targetRange.startRow-.5,endRow:e.targetRange.startRow-.5}]}case xe.id:{const e=n.params;return[new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange()]}case Ie.id:{const t=n.params.range;return[{...t,startColumn:t.startColumn-.5,endColumn:t.startColumn-.5}]}case pe.id:{const t=n.params.range;return[{...t,startRow:t.startRow-.5,endRow:t.startRow-.5}]}case fe.id:return[n.params.range];case Me.id:return[n.params.range]}}var Li=Object.defineProperty,Vi=Object.getOwnPropertyDescriptor,$i=(n,e,t,o)=>{for(var r=o>1?void 0:o?Vi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Li(e,t,r),r},Rt=(n,e)=>(t,o)=>e(t,o,n);const Bi=s.createInterceptorKey("MERGE_REDO"),ji=s.createInterceptorKey("MERGE_UNDO"),An=Math.floor(Number.MAX_SAFE_INTEGER/10);class Fi extends s.Disposable{constructor(e,t,o,r,i=!1){super(),this._unitId=e,this._subUnitId=t,this._range=o,this._callback=r,this._skipIntersects=i}onMutation(e){if(e.params.unitId!==this._unitId||e.params.subUnitId!==this._subUnitId||!this._range)return;if(this._skipIntersects){const r=Wi(e);if(r!=null&&r.some(i=>s.Rectangle.intersects(i,this._range)))return!1}const t=xi(this._range,e);if(t&&s.Rectangle.equals(t,this._range))return!1;const o=this._range;this._range=t,this._callback(o,t)}}exports.RefRangeService=class extends s.Disposable{constructor(t,o,r,i){super();C(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Bi,MERGE_UNDO:ji}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",Hi());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:t=>{const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Wn(this._univerInstanceService),i=Ln(this._univerInstanceService);if(!o||!r||!i)return{redos:[],undos:[],preRedos:[],preUndos:[]};const u=((()=>{switch(t.id){case T.MoveColsCommandId:{const R=t.params,S=Math.min(R.fromRange.startColumn,R.toRange.startColumn);return this._checkRange([{...R.fromRange,startColumn:S,endColumn:o.getColumnCount()-1}],r,i)}case T.MoveRowsCommandId:{const R=t.params,S=Math.min(R.fromRange.startRow,R.toRange.startRow);return this._checkRange([{...R.fromRange,startRow:S,endRow:o.getRowCount()-1}],r,i)}case T.MoveRangeCommandId:{const R=t;return this._checkRange([R.params.fromRange,R.params.toRange],r,i)}case T.InsertRowCommandId:{const h={startRow:t.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([h],r,i)}case T.InsertColCommandId:{const S=t.params.range.startColumn,h={startRow:0,endRow:o.getRowCount()-1,startColumn:S,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([h],r,i)}case T.RemoveRowCommandId:{const h={startRow:t.params.range.startRow,endRow:o.getRowCount()-1,startColumn:0,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._checkRange([h],r,i)}case T.RemoveColCommandId:{const S=t.params.range.startColumn,h={startRow:0,endRow:o.getRowCount()-1,startColumn:S,endColumn:o.getColumnCount()-1,rangeType:s.RANGE_TYPE.COLUMN};return this._checkRange([h],r,i)}case T.DeleteRangeMoveUpCommandId:case T.InsertRangeMoveDownCommandId:{const S=t.params.range||Vn(this._selectionManagerService)[0],h={startRow:S.startRow,startColumn:S.startColumn,endColumn:S.endColumn,endRow:An};return this._checkRange([h],r,i)}case T.DeleteRangeMoveLeftCommandId:case T.InsertRangeMoveRightCommandId:{const S=t.params.range||Vn(this._selectionManagerService)[0],h={startRow:S.startRow,startColumn:S.startColumn,endColumn:An,endRow:S.endRow};return this._checkRange([h],r,i)}case T.ReorderRangeCommandId:{const R=t,{range:S,order:h}=R.params,f=[];for(let I=S.startRow;I<=S.endRow;I++)I in h&&f.push({startRow:I,endRow:I,startColumn:S.startColumn,endColumn:S.endColumn});return this._checkRange(f,r,i)}}})()||[]).reduce((R,S)=>{const h=S(t);return R.push(h),R},[]).reduce((R,S)=>{var h,f;return R.redos.push(...S.redos),R.undos.push(...S.undos),R.preRedos.push(...(h=S.preRedos)!=null?h:[]),R.preUndos.push(...(f=S.preUndos)!=null?f:[]),R},{redos:[],undos:[],preUndos:[],preRedos:[]}),d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:l,undos:g,preRedos:d,preUndos:m}}})});C(this,"_checkRange",(t,o,r)=>{const i=$n(o,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(d=>{const l=a.get(d),m=this._serializer.deserialize(d),g={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn,rangeType:m.rangeType&&+m.rangeType};t.some(R=>s.Rectangle.intersects(R,g))&&l&&l.forEach(R=>{c.add(R)})}),[...c]}return[]});C(this,"registerRefRange",(t,o,r,i)=>{const a=r||Wn(this._univerInstanceService),c=i||Ln(this._univerInstanceService);if(!a||!c)return s.toDisposable(()=>{});const u=$n(a,c),d=this._serializer.serialize(t);let l=this._refRangeManagerMap.get(u);l||(l=new Map,this._refRangeManagerMap.set(u,l));const m=l.get(d);return m?m.add(o):l.set(d,new Set([o])),s.toDisposable(()=>{const g=l.get(d);g&&(g.delete(o),g.size||(l.delete(d),l.size||this._refRangeManagerMap.delete(u)))})});this._commandService=t,this._sheetInterceptorService=o,this._univerInstanceService=r,this._selectionManagerService=i,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}watchRange(t,o,r,i,a){let c;this._watchRanges.size===0&&(c=this._commandService.onCommandExecuted(m=>{if(m.type!==s.CommandType.MUTATION)return!1;for(const g of this._watchRanges)g.onMutation(m)}));const u=new Fi(t,o,r,i,a);this._watchRanges.add(u);const d=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(c==null||c.dispose(),c=null)}),l=this.disposeWithMe(d);return s.toDisposable(()=>{l.dispose(),d.dispose()})}};exports.RefRangeService=$i([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),Rt(0,s.ICommandService),Rt(1,$.Inject(exports.SheetInterceptorService)),Rt(2,$.Inject(s.IUniverInstanceService)),Rt(3,$.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Wn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Ln(n){var e;return(e=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:e.getSheetId()}function Vn(n){return n.getSelectionRanges()||[]}function $n(n,e){return`${n}_${e}`}function Hi(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:t=>{const o=n.reduce((i,a,c)=>(i[String(c)]=a,i),{});return t.split(e).reduce((i,a,c)=>{const u=String(c);return a&&o[u]&&(i[o[u]]=a),i},{})},serialize:t=>n.reduce((o,r,i)=>{const a=t[r];return a!==void 0?`${o}${i>0?e:""}${a}`:`${o}`},"")}}var Gi=Object.defineProperty,qi=Object.getOwnPropertyDescriptor,zi=(n,e,t,o)=>{for(var r=o>1?void 0:o?qi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Gi(e,t,r),r},Fe=(n,e)=>(t,o)=>e(t,o,n);const Yi=[Ie.id,pe.id,fe.id,Me.id],Ki=[_e.id,be.id];function Ar(n,e){let t=n;if(e!==void 0){const o=[];for(let r=0;r<t.length;r++){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=t[r];if(e===s.Dimension.ROWS)for(let d=i;d<=a;d++){const l={startRow:d,endRow:d,startColumn:c,endColumn:u};o.push(l)}else if(e===s.Dimension.COLUMNS)for(let d=c;d<=u;d++){const l={startRow:i,endRow:a,startColumn:d,endColumn:d};o.push(l)}}t=o}return t}exports.MergeCellController=class extends s.Disposable{constructor(t,o,r,i,a,c){super();C(this,"disposableCollection",new s.DisposableCollection);this._commandService=t,this._refRangeService=o,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const t=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case _t.id:case bt.id:{const r=t._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),i=r.getUnitId(),a=r.getActiveSheet();if(!a)return{redos:[],undos:[]};const c=a.getSheetId(),u=a.getConfig().mergeData,d=t._selectionManagerService.getSelectionRanges();if(d&&d.length>0&&d.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:i,subUnitId:c,ranges:d},g=ce(t._injector,m),R=[{id:z.id,params:m}],S=[{id:H.id,params:g}];return{redos:R,undos:S}}}}return{redos:[],undos:[]}}})}refRangeHandle(t,o,r){switch(t.id){case T.MoveColsCommandId:{const i=t.params;return this._handleMoveColsCommand(i,o,r)}case T.MoveRowsCommandId:{const i=t.params;return this._handleMoveRowsCommand(i,o,r)}case Ve.id:{const i=t.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case $e.id:{const i=t.params,a=i.unitId||o,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case ut.id:{const i=t.params;return this._handleRemoveColCommand(i,o,r)}case ct.id:{const i=t.params;return this._handleRemoveRowCommand(i,o,r)}case Ut.id:{const i=t.params;return this._handleMoveRangeCommand(i,o,r)}case xt.id:{const i=t.params;return this._handleInsertRangeMoveRightCommand(i,o,r)}case Dt.id:{const i=t.params;return this._handleInsertRangeMoveDownCommand(i,o,r)}case Ot.id:{const i=t.params;return this._handleDeleteRangeMoveUpCommand(i,o,r)}case kt.id:{const i=t.params;return this._handleDeleteRangeMoveLeftCommand(i,o,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getUniverSheetInstance(r);if(!a)return;const c=a==null?void 0:a.getSheetBySheetId(i);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),d=l=>this.refRangeHandle(l,r,i);u.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,d,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===$t.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===H.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(i.unitId,i.subUnitId)}}));const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(o){const r=o.getActiveSheet();if(!r)return;t(o.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:o,subUnitId:r,ranges:[]},d={unitId:o,subUnitId:r,ranges:[]},{fromRange:l}=t,{startRow:m,endRow:g}=l;if(c.forEach(h=>{if(m<=h.startRow&&g>=h.endRow){u.ranges.push(h);const f=Mn({id:T.MoveRowsCommandId,params:t},h),I=Le(f,h);I&&d.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ce(this._injector,u),S=Ce(this._injector,d);return{redos:[{id:z.id,params:u},{id:H.id,params:d}],undos:[{id:z.id,params:S},{id:H.id,params:R}]}}_handleMoveColsCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:o,subUnitId:r,ranges:[]},d={unitId:o,subUnitId:r,ranges:[]},{fromRange:l}=t,{startColumn:m,endColumn:g}=l;if(c.forEach(h=>{if(m<=h.startColumn&&g>=h.endColumn){u.ranges.push(h);const f=wn({id:T.MoveColsCommandId,params:t},h),I=Le(f,h);I&&d.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ce(this._injector,u),S=Ce(this._injector,d);return{redos:[{id:z.id,params:u},{id:H.id,params:d}],undos:[{id:z.id,params:S},{id:H.id,params:R}]}}_handleMoveRangeCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=a.getMergeData(),u=c.filter(S=>s.Rectangle.intersects(S,t.fromRange)),d=c.filter(S=>s.Rectangle.intersects(S,t.toRange)),l=u.map(S=>s.Rectangle.getRelativeRange(S,t.fromRange)).map(S=>s.Rectangle.getPositionRange(S,t.toRange)),m=Ar(l).filter(S=>!c.some(h=>s.Rectangle.equals(S,h))),g=[{id:z.id,params:{unitId:o,subUnitId:r,ranges:u}},{id:z.id,params:{unitId:o,subUnitId:r,ranges:d}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:m}}],R=[{id:z.id,params:{unitId:o,subUnitId:r,ranges:m}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:d}},{id:H.id,params:{unitId:o,subUnitId:r,ranges:u}}];return{redos:g,undos:R}}_handleInsertRowCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startRow:u,endRow:d}=c,l=s.Tools.deepClone(a.getMergeData()).reduce((p,v)=>(u>v.startRow&&u<=v.endRow&&p.push(v),p),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((p,v)=>{if(u>v.startRow&&u<=v.endRow){const M=d-u+1;v.endRow+=M,this._checkIsMergeCell(v)&&p.push(v)}return p},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:z.id,params:h},{id:H.id,params:R}];return{redos:f,undos:I}}_handleInsertColCommand(t,o,r){const{range:i}=t,a=Re(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:d}=i,l=s.Tools.deepClone(c.getMergeData()).reduce((p,v)=>(u>v.startColumn&&u<=v.endColumn&&p.push(v),p),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,v)=>{if(u>v.startColumn&&u<=v.endColumn){const M=d-u+1;v.endColumn+=M,this._checkIsMergeCell(v)&&p.push(v)}return p},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:z.id,params:h},{id:H.id,params:R}];return{redos:f,undos:I}}_handleRemoveColCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=t,{startColumn:u,endColumn:d}=c,l=s.Tools.deepClone(a.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(c,w)&&M.push(w),M),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((M,w)=>{if(s.Rectangle.intersects(c,w)){if(u<=w.startColumn&&d>=w.endColumn)return M;u>=w.startColumn&&d<=w.endColumn?w.endColumn-=d-u+1:u<w.startColumn?(w.startColumn=u,w.endColumn-=d-u+1):d>w.endColumn&&(w.endColumn=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g}],I=[{id:H.id,params:S}],p=[{id:z.id,params:h}],v=[{id:H.id,params:R}];return{preUndos:p,undos:v,preRedos:f,redos:I}}_handleRemoveRowCommand(t,o,r){const{range:i}=t,a=Re(this._univerInstanceService,o);if(!a)return this._handleNull();const c=Se(a,r);if(!c)return this._handleNull();const{startRow:u,endRow:d}=i,l=s.Tools.deepClone(c.getMergeData()).reduce((M,w)=>(s.Rectangle.intersects(i,w)&&M.push(w),M),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((M,w)=>{if(s.Rectangle.intersects(i,w)){if(u<=w.startRow&&d>=w.endRow)return M;u>=w.startRow&&d<=w.endRow?w.endRow-=d-u+1:u<w.startRow?(w.startRow=u,w.endRow-=d-u+1):d>w.endRow&&(w.endRow=u-1),this._checkIsMergeCell(w)&&M.push(w)}return M},[]),g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g}],I=[{id:H.id,params:S}],p=[{id:z.id,params:h}],v=[{id:H.id,params:R}];return{preUndos:p,undos:v,preRedos:f,redos:I}}_handleInsertRangeMoveRightCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,d=a.getMergeData(),l=[],m=[];d.forEach(f=>{const{startRow:I,endRow:p,startColumn:v,endColumn:M}=c;if(s.Rectangle.intersects({startRow:I,startColumn:v,endRow:p,endColumn:u},f)&&(l.push(f),s.Rectangle.contains({startRow:I,startColumn:v,endRow:p,endColumn:u},f))){const P=M-v+1;m.push({startRow:f.startRow,startColumn:f.startColumn+P,endRow:f.endRow,endColumn:f.endColumn+P})}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S);return{redos:[{id:z.id,params:g},{id:H.id,params:S}],undos:[{id:H.id,params:R},{id:z.id,params:h}]}}_handleInsertRangeMoveDownCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,d=a.getMergeData(),l=[],m=[];d.forEach(p=>{const{startRow:v,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:v,startColumn:M,endRow:u,endColumn:w},p)&&(l.push(p),s.Rectangle.contains({startRow:v,startColumn:M,endRow:u,endColumn:w},p))){const E=y-v+1;m.push({startRow:p.startRow+E,startColumn:p.startColumn,endRow:p.endRow+E,endColumn:p.endColumn})}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:H.id,params:R},{id:z.id,params:h}];return{redos:f,undos:I}}_handleDeleteRangeMoveUpCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxRows()-1,d=a.getMergeData(),l=[],m=[];d.forEach(p=>{const{startRow:v,startColumn:M,endColumn:w,endRow:y}=c;if(s.Rectangle.intersects({startRow:v,startColumn:M,endRow:u,endColumn:w},p)&&(l.push(p),s.Rectangle.contains({startRow:v,startColumn:M,endRow:u,endColumn:w},p))){const E=y-v+1,O=s.Rectangle.moveVertical(p,-E);m.push(O)}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S),f=[{id:z.id,params:g},{id:H.id,params:S}],I=[{id:H.id,params:R},{id:z.id,params:h}];return{redos:f,undos:I}}_handleDeleteRangeMoveLeftCommand(t,o,r){const i=Re(this._univerInstanceService,o);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=t.range,u=a.getMaxColumns()-1,d=a.getMergeData(),l=[],m=[];d.forEach(f=>{const{startRow:I,endRow:p,startColumn:v,endColumn:M}=c;if(s.Rectangle.intersects({startRow:I,startColumn:v,endRow:p,endColumn:u},f)&&(l.push(f),s.Rectangle.contains({startRow:I,startColumn:v,endRow:p,endColumn:u},f))){const P=M-v+1;m.push({startRow:f.startRow,startColumn:f.startColumn-P,endRow:f.endRow,endColumn:f.endColumn-P})}});const g={unitId:o,subUnitId:r,ranges:l},R=ce(this._injector,g),S={unitId:o,subUnitId:r,ranges:m},h=Ce(this._injector,S);return{redos:[{id:z.id,params:g},{id:H.id,params:S}],undos:[{id:H.id,params:R},{id:z.id,params:h}]}}_checkIsMergeCell(t){return!(t.startRow===t.endRow&&t.startColumn===t.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Ki.includes(t.id)){if(!t.params)return;const o=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=c?i.startRow:i.startColumn,l=c?a.startRow:a.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:I,endRow:p,startColumn:v,endColumn:M,rangeType:w}=f;s.Rectangle.intersects(f,i)||(c?d<I&&l>p?(I-=u,p-=u):d>p&&l<=I&&(I+=u,p+=u):d<v&&l>M?(v-=u,M-=u):d>M&&l<=v&&(v+=u,M+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:I,endRow:p,startColumn:v,endColumn:M,rangeType:w})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:R,subUnitId:S}=t.params,h=f=>this.refRangeHandle(f,R,S);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,h,R,S))})}if(Yi.includes(t.id)){const o=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=r.getConfig().mergeData,a=t.params;if(!a)return;const{range:c}=a,u=t.id.includes("row"),d=t.id.includes("insert"),l=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-l+1,R=[];i.forEach(I=>{let{startRow:p,endRow:v,startColumn:M,endColumn:w,rangeType:y}=I;d?u?l<=p&&(p+=g,v+=g):l<=M&&(M+=g,w+=g):u?m<p&&(p-=g,v-=g):m<M&&(M-=g,w-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||R.push({startRow:p,endRow:v,startColumn:M,endColumn:w,rangeType:y})}),r.getConfig().mergeData=R,this.disposableCollection.dispose();const{unitId:S,subUnitId:h}=t.params,f=I=>this.refRangeHandle(I,S,h);R.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,f,S,h))})}}))}};exports.MergeCellController=zi([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Fe(0,$.Inject(s.ICommandService)),Fe(1,$.Inject(exports.RefRangeService)),Fe(2,$.Inject(s.IUniverInstanceService)),Fe(3,$.Inject($.Injector)),Fe(4,$.Inject(exports.SheetInterceptorService)),Fe(5,$.Inject(exports.SelectionManagerService))],exports.MergeCellController);function Re(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function Se(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}var Ji=Object.defineProperty,Xi=Object.getOwnPropertyDescriptor,Zi=(n,e,t,o)=>{for(var r=o>1?void 0:o?Xi(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Ji(e,t,r),r},Ht=(n,e)=>(t,o)=>e(t,o,n);exports.NumfmtService=class extends s.Disposable{constructor(e,t,o){super(),this._resourceManagerService=e,this._univerInstanceService=t,this._logService=o}getValue(e,t,o,r){const i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const a=i==null?void 0:i.getSheetBySheetId(t);if(!a)return;const c=i.getStyles(),u=a.getCellRaw(o,r);if(u!=null&&u.s){const d=c.get(u.s);if(d!=null&&d.n)return d.n}return null}deleteValues(e,t,o){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles();o.forEach(c=>{s.Range.foreach(c,(u,d)=>{const l=i.getCellRaw(u,d);if(!l)return;const m=l==null?void 0:l.s,R={...m&&a.get(m)||{}};delete R.n;const S=a.setValue(R);l.s=S})})}setValues(e,t,o){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(t);if(!i)return;const a=r.getStyles(),c=i.getCellMatrix();o.forEach(u=>{u.ranges.forEach(d=>{s.Range.foreach(d,(l,m)=>{const g=i.getCellRaw(l,m);if(g){const S={...g.s&&a.get(g.s)||{},n:{pattern:u.pattern}},h=a.setValue(S);g.s=h}else{const R={n:{pattern:u.pattern}},S=a.setValue(R);S&&c.setValue(l,m,{s:S})}})})})}};exports.NumfmtService=Zi([Ht(0,s.IResourceManagerService),Ht(1,s.IUniverInstanceService),Ht(2,s.ILogService)],exports.NumfmtService);const zt=()=>[ho,So,go,wo,_o,Co,Po,Mo,vo,Io,po,Ro,yo,fo,bo],Qi=[_.Edit,_.Print,_.Comment,_.View,_.Copy,_.Export,_.ManageCollaborator,_.CreateSheet,_.DeleteSheet,_.RenameSheet,_.HideSheet,_.Duplicate,_.Share,_.MoveSheet,_.CopySheet];var ea=Object.defineProperty,ta=Object.getOwnPropertyDescriptor,na=(n,e,t,o)=>{for(var r=o>1?void 0:o?ta(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ea(e,t,r),r},Gt=(n,e)=>(t,o)=>e(t,o,n);exports.WorkbookPermissionService=class extends s.Disposable{constructor(e,t,o){super(),this._permissionService=e,this._univerInstanceService=t,this._rangeProtectionRuleModel=o,this._init()}_init(){const e=t=>{const o=t.getUnitId();zt().forEach(r=>{const i=new r(o);this._permissionService.addPermissionPoint(i)})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(t=>{e(t)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const o=t.getUnitId();t.getSheets().forEach(r=>{const i=r.getSheetId();this._rangeProtectionRuleModel.getSubunitRuleList(o,i).forEach(c=>{[Et,Nt].forEach(u=>{const d=new u(o,i,c.permissionId);this._permissionService.deletePermissionPoint(d.id)})}),[...Te(),...ot()].forEach(c=>{const u=new c(o,i);this._permissionService.deletePermissionPoint(u.id)})}),zt().forEach(r=>{const i=new r(o);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=na([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorkbookPermissionService),Gt(0,$.Inject(s.IPermissionService)),Gt(1,$.Inject(s.IUniverInstanceService)),Gt(2,$.Inject(exports.RangeProtectionRuleModel))],exports.WorkbookPermissionService);var oa=Object.defineProperty,ra=Object.getOwnPropertyDescriptor,sa=(n,e,t,o)=>{for(var r=o>1?void 0:o?ra(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&oa(e,t,r),r},Bn=(n,e)=>(t,o)=>e(t,o,n);const ia="SHEET_DEFINED_NAME_PLUGIN";exports.DefinedNameDataController=class extends s.Disposable{constructor(e,t){super(),this._definedNamesService=e,this._resourceManagerService=t,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const e=o=>{const r=this._definedNamesService.getDefinedNameMap(o);return r?JSON.stringify(r):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:ia,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>e(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,r)=>{this._definedNamesService.registerDefinedNames(o,r)}}))}};exports.DefinedNameDataController=sa([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),Bn(0,de.IDefinedNamesService),Bn(1,s.IResourceManagerService)],exports.DefinedNameDataController);const Ee=()=>[Nt,Et],aa=(n="unitId",e="subUnitId",t="permissionId")=>Ee().reduce((o,r)=>{const i=new r(n,e,t);return o[i.subType]=i.value,o},{});var ca=Object.defineProperty,ua=Object.getOwnPropertyDescriptor,la=(n,e,t,o)=>{for(var r=o>1?void 0:o?ua(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&ca(e,t,r),r},jn=(n,e)=>(t,o)=>e(t,o,n);exports.RangeProtectionRenderModel=class{constructor(e,t){C(this,"_cache",new s.LRUMap(1e4));this._selectionProtectionRuleModel=e,this._permissionService=t,this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(et.filter(e=>e.type===D.SelectRange),et.filter(e=>Ee().some(t=>e instanceof t)),et.map(e=>e)).subscribe(e=>{const t=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(const o of t)o.permissionId===e.permissionId&&o.ranges.forEach(r=>{s.Range.foreach(r,(i,a)=>{const c=this._createKey(e.unitId,e.subUnitId,i,a);this._cache.delete(c)})})}),this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{var t;e.rule.ranges.forEach(o=>{s.Range.foreach(o,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}),e.type==="set"&&((t=e.oldRule)==null||t.ranges.forEach(o=>{s.Range.foreach(o,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}))})}_createKey(e,t,o,r){return`${e}_${t}_${o}_${r}`}getCellInfo(e,t,o,r){const i=this._createKey(e,t,o,r),a=this._cache.get(i);if(a)return a;const c=this._selectionProtectionRuleModel.getSubunitRuleList(e,t),u=[];if(!c||!c.length)return u;const d=[];for(const l of c)if(l.ranges.some(m=>m.startRow<=o&&m.endRow>=o&&m.startColumn<=r&&m.endColumn>=r)){const m=Ee().reduce((g,R)=>{var f;const S=new R(e,t,l.permissionId),h=this._permissionService.getPermissionPoint(S.id);return g[S.subType]=(f=h==null?void 0:h.value)!=null?f:S.value,g},{});d.push({...m,ruleId:l.id,ranges:l.ranges})}return this._cache.set(i,d),d}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=la([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),jn(0,$.Inject(exports.RangeProtectionRuleModel)),jn(1,$.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var da=Object.defineProperty,ma=Object.getOwnPropertyDescriptor,ga=(n,e,t,o)=>{for(var r=o>1?void 0:o?ma(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&da(e,t,r),r},Qe=(n,e)=>(t,o)=>e(t,o,n);const ha=[Ie.id,pe.id,fe.id,Me.id],Ra=[_e.id,be.id];exports.RangeProtectionRefRangeService=class extends s.Disposable{constructor(t,o,r,i,a){super();C(this,"disposableCollection",new s.DisposableCollection);this._selectionProtectionRuleModel=t,this._univerInstanceService=o,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._onRefRangeChange(),this._correctPermissionRange()}_onRefRangeChange(){const t=(r,i)=>{const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a||!(a==null?void 0:a.getSheetBySheetId(i)))return;this.disposableCollection.dispose();const u=l=>this.refRangeHandle(l,r,i);this._selectionProtectionRuleModel.getSubunitRuleList(r,i).reduce((l,m)=>[...l,...m.ranges],[]).forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,u,r,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===$t.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;t(c,a)}if(r.id===vn.id||r.id===pn.id){const i=r.params,a=i.rule.subUnitId,c=i.rule.unitId;if(!a||!c)return;t(c,a)}}));const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(o){const r=o.getActiveSheet();if(!r)return;t(o.getUnitId(),r.getSheetId())}}refRangeHandle(t,o,r){switch(t.id){case At.id:return this._getRefRangeMutationsByMoveRows(t.params,o,r);case Wt.id:return this._getRefRangeMutationsByMoveCols(t.params,o,r);case Ve.id:return this._getRefRangeMutationsByInsertRows(t.params,o,r);case $e.id:return this._getRefRangeMutationsByInsertCols(t.params,o,r);case ut.id:return this._getRefRangeMutationsByDeleteCols(t.params,o,r);case ct.id:return this._getRefRangeMutationsByDeleteRows(t.params,o,r)}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(t,o,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(d=>{const l=s.Tools.deepClone(d),m=l.ranges.reduce((g,R)=>{if(s.Rectangle.intersects(R,a)){const S=s.Tools.deepClone(R),{startColumn:h,endColumn:f}=a;if(h<=S.startColumn&&f>=S.endColumn)return g;h>=S.startColumn&&f<=S.endColumn?S.endColumn-=f-h+1:h<S.startColumn?(S.startColumn=h,S.endColumn-=f-h+1):f>S.endColumn&&(S.endColumn=h-1),this._checkIsRightRange(S)&&g.push(S)}return g},[]);l.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:d.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(t,o,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,t.range))),a=t.range;if(i.length){const c=[],u=[];return i.forEach(d=>{const l=s.Tools.deepClone(d),m=l.ranges.reduce((g,R)=>{if(s.Rectangle.intersects(R,a)){const S=s.Tools.deepClone(R),{startRow:h,endRow:f}=a;if(h<=S.startRow&&f>=S.endRow)return g;h>=S.startRow&&f<=S.endRow?S.endRow-=f-h+1:h<S.startRow?(S.startRow=h,S.endRow-=f-h+1):f>S.endRow&&(S.endRow=h-1),this._checkIsRightRange(S)&&g.push(S)}return g},[]);l.ranges=m,c.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:d.id}}),u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:d,ruleId:d.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(t,o,r){const i=t.range.startColumn,a=t.range.endColumn-t.range.startColumn+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(u=>u.ranges.some(d=>i>d.startColumn&&i<=d.endColumn));if(c.length){const u=[],d=[];return c.forEach(l=>{const m=s.Tools.deepClone(l);let g=!1;m.ranges.forEach(R=>{i>R.startColumn&&i<=R.endColumn&&(R.endColumn+=a,g=!0)}),g&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:l.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.id}}))}),{redos:u,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(t,o,r){const i=t.range.startRow,a=t.range.endRow-t.range.startRow+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(u=>u.ranges.some(d=>i>d.startRow&&i<=d.endRow));if(c.length){const u=[],d=[];return c.forEach(l=>{const m=s.Tools.deepClone(l);let g=!1;m.ranges.forEach(R=>{i>R.startRow&&i<=R.endRow&&(R.endRow+=a,g=!0)}),g&&(u.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:l.id}}),d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:l,ruleId:l.id}}))}),{redos:u,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(t,o,r){const i=t.toRange,a=i.startRow,c=i.endRow-i.startRow+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(d=>d.ranges.some(l=>a>l.startRow&&a<=l.endRow));if(u.length){const d=[],l=[];return u.forEach(m=>{const g=s.Tools.deepClone(m),S=t.fromRange.startRow;let h=!1;g.ranges.forEach(f=>{a>f.startRow&&a<=f.endRow&&(S<f.startRow&&(f.startRow=f.startRow-c,f.endRow=f.endRow-c),f.endRow+=c,h=!0)}),h&&(d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:g,ruleId:m.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:d,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(t,o,r){const i=t.toRange,a=i.startColumn,c=i.endColumn-i.startColumn+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(o,r).filter(d=>d.ranges.some(l=>a>l.startColumn&&a<=l.endColumn));if(u.length){const d=[],l=[];return u.forEach(m=>{const g=s.Tools.deepClone(m),S=t.fromRange.startColumn;let h=!1;g.ranges.forEach(f=>{a>f.startColumn&&a<=f.endColumn&&(S<f.startColumn&&(f.startColumn=f.startColumn-c,f.endColumn=f.endColumn-c),f.endColumn+=c,h=!0)}),h&&(d.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:g,ruleId:m.id}}),l.push({id:ee.id,params:{unitId:o,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:d,undos:l}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(Ra.includes(t.id)){if(!t.params)return;const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=t.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,d=c?i.startRow:i.startColumn,l=c?a.startRow:a.startColumn;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(f=>{f.ranges.forEach(p=>{let{startRow:v,endRow:M,startColumn:w,endColumn:y}=p;s.Rectangle.intersects(p,i)||(c?d<v&&l>M?(v-=u,M-=u):d>M&&l<=v&&(v+=u,M+=u):d<w&&l>y?(w-=u,y-=u):d>y&&l<=w&&(w+=u,y+=u)),this._checkIsRightRange({startRow:v,endRow:M,startColumn:w,endColumn:y})&&(p.startColumn=w,p.endColumn=y,p.startRow=v,p.endRow=M)})}),this.disposableCollection.dispose();const{unitId:g,subUnitId:R}=t.params,S=f=>this.refRangeHandle(f,g,R);this._selectionProtectionRuleModel.getSubunitRuleList(g,R).reduce((f,I)=>[...f,...I.ranges],[]).forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,S,g,R))}),this._selectionProtectionRenderModel.clear()}if(ha.includes(t.id)){const o=this._univerInstanceService.getUniverSheetInstance(t.params.unitId);if(!o)return;const r=o.getSheetBySheetId(t.params.subUnitId);if(!r)return;const i=t.params;if(!i)return;const{range:a}=i,c=t.id.includes("row"),u=t.id.includes("insert"),d=c?a.startRow:a.startColumn,l=c?a.endRow:a.endColumn,m=l-d+1;this._selectionProtectionRuleModel.getSubunitRuleList(o.getUnitId(),r.getSheetId()).forEach(I=>{I.ranges.forEach(v=>{let{startRow:M,endRow:w,startColumn:y,endColumn:P}=v;u?c?d<=M&&(M+=m,w+=m):d<=y&&(y+=m,P+=m):c?l<M&&(M-=m,w-=m):l<y&&(y-=m,P-=m),this._checkIsRightRange({startRow:M,endRow:w,startColumn:y,endColumn:P})&&(v.startColumn=y,v.endColumn=P,v.startRow=M,v.endRow=w)})}),this.disposableCollection.dispose();const{unitId:R,subUnitId:S}=t.params,h=I=>this.refRangeHandle(I,R,S);this._selectionProtectionRuleModel.getSubunitRuleList(R,S).reduce((I,p)=>[...I,...p.ranges],[]).forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,h,R,S))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(t){return t.startRow<=t.endRow&&t.startColumn<=t.endColumn}};exports.RangeProtectionRefRangeService=ga([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRefRangeService),Qe(0,$.Inject(exports.RangeProtectionRuleModel)),Qe(1,$.Inject(s.IUniverInstanceService)),Qe(2,s.ICommandService),Qe(3,$.Inject(exports.RefRangeService)),Qe(4,$.Inject(exports.RangeProtectionRenderModel))],exports.RangeProtectionRefRangeService);var Sa=Object.defineProperty,Ca=Object.getOwnPropertyDescriptor,fa=(n,e,t,o)=>{for(var r=o>1?void 0:o?Ca(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Sa(e,t,r),r},qt=(n,e)=>(t,o)=>e(t,o,n);const va="SHEET_RANGE_PROTECTION_PLUGIN";exports.RangeProtectionService=class extends s.Disposable{constructor(e,t,o){super(),this._selectionProtectionRuleModel=e,this._permissionService=t,this._resourceManagerService=o,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Ee().forEach(t=>{const o=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(o)});break}case"delete":{Ee().forEach(t=>{const o=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(o.id)});break}case"set":{e.oldRule.permissionId!==e.rule.permissionId&&Ee().forEach(t=>{const o=new t(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(o.id);const r=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}}))}_initSnapshot(){const e=o=>{const i=this._selectionProtectionRuleModel.toObject()[o];return i?JSON.stringify(i):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:t,pluginName:va,businesses:[It.UNIVER_SHEET],onLoad:(o,r)=>{const i=this._selectionProtectionRuleModel.toObject();i[o]=r,this._selectionProtectionRuleModel.fromObject(i);const a=[];Object.keys(r).forEach(c=>{const u=r[c];this._selectionProtectionRuleModel.getSubunitRuleList(o,c).forEach(d=>{a.push({objectID:d.permissionId,unitID:o,objectType:D.SelectRange,actions:[_.View,_.Edit]})}),u.forEach(d=>{Ee().forEach(l=>{const m=new l(o,c,d.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=fa([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionService),qt(0,$.Inject(exports.RangeProtectionRuleModel)),qt(1,$.Inject(s.IPermissionService)),qt(2,$.Inject(s.IResourceManagerService))],exports.RangeProtectionService);var Wr=Object.defineProperty,pa=Object.getOwnPropertyDescriptor,Ia=(n,e,t)=>e in n?Wr(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ma=(n,e,t,o)=>{for(var r=o>1?void 0:o?pa(e,t):e,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(o?a(e,t,r):a(r))||r);return o&&r&&Wr(e,t,r),r},St=(n,e)=>(t,o)=>e(t,o,n),Lr=(n,e,t)=>Ia(n,typeof e!="symbol"?e+"":e,t);const wa="SHEET_PLUGIN";exports.UniverSheetsPlugin=class extends s.Plugin{constructor(e,t,o,r,i){super(),this._config=e,this._commandService=t,this._configService=o,this._localeService=r,this._injector=i,this._initConfig(),this._initDependencies(i)}onRendered(){}_initConfig(){var e;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(Tr,!0)}_initDependencies(e){var o,r;const t=[[Be],[exports.SelectionManagerService],[exports.RefRangeService],[exports.WorkbookPermissionService],[je,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[vt],[exports.MergeCellController],[exports.DefinedNameDataController],[exports.WorksheetPermissionService],[exports.WorksheetProtectionRuleModel],[exports.WorksheetProtectionPointModel],[exports.RangeProtectionRenderModel],[exports.RangeProtectionRuleModel],[exports.RangeProtectionRefRangeService],[exports.RangeProtectionService]];(o=this._config)!=null&&o.notExecuteFormula||t.push([pt]),s.mergeOverrideWithDependencies(t,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}};Lr(exports.UniverSheetsPlugin,"pluginName",wa);Lr(exports.UniverSheetsPlugin,"type",s.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsPlugin=Ma([s.DependentOn(de.UniverFormulaEnginePlugin),St(1,s.ICommandService),St(2,s.IConfigService),St(3,$.Inject(s.LocaleService)),St(4,$.Inject($.Injector))],exports.UniverSheetsPlugin);const ya=[ye.id,he.id,ln.id,we.id,lt.id,_e.id,be.id,He.id,Ge.id,ze.id,qe.id,Ie.id,pe.id,fe.id,Me.id],_a=[G.id,xe.id,z.id,H.id,rt.id],ba=1.5,Pa="rgba(255, 255, 255, 0.01)";function Ua(n){const e=n.getCurrentTheme(),t=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:e.primaryColor,fill:t,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:t,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:t,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function Ta(n){const{rangeWithCoord:e,primaryWithCoord:t,style:o}=n,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:o};return t!=null&&(r.primary=Vr(t)),r}function Vr(n){const{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:r}=n,{startRow:i,startColumn:a,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:e,actualColumn:t,isMerged:o,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function Ea(n,e,t){const o=s.getCellInfoInMergeData(n,e,t),r=s.makeCellRangeToRangeData(o);if(r)return{range:r,primary:o,style:null}}const Na=(n,e,t)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:c,subUnitId:u}=e;if(r){const l=r[(r==null?void 0:r.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:R,startColumn:S,endRow:h,endColumn:f}=a[a.length-1];if(i===s.Dimension.COLUMNS){const M=t.find(w=>w.startColumn===m&&w.endColumn===m&&g===w.startRow);M&&(f=M.endColumn,R=M.startRow,h=M.endRow)}else if(i===s.Dimension.ROWS){const M=t.find(w=>w.startRow===g&&w.endRow===g&&m===w.startColumn);M&&(h=M.endRow,S=M.startColumn,f=M.endColumn)}const I={startRow:R,startColumn:S,endRow:h,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:R===g&&S===m},p=r.map((M,w,y)=>({range:M.range,style:null,primary:w===y.length-1?I:null})),v={unitId:c,subUnitId:u,pluginName:X,selections:p};return{id:K.id,params:v}}return null}return null},ka=(n,e)=>{const o=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:i}=e;if(o&&o[(o==null?void 0:o.length)-1].primary){const u={unitId:r,subUnitId:i,pluginName:X,selections:[...o]};return{id:K.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Na;exports.AddMergeUndoMutationFactory=Ce;exports.AddMergeUndoSelectionsOperationFactory=ka;exports.AddRangeProtectionCommand=vn;exports.AddRangeProtectionMutation=Ke;exports.AddWorksheetMergeMutation=H;exports.AddWorksheetProtectionMutation=Ir;exports.BorderStyleManagerService=Be;exports.COMMAND_LISTENER_SKELETON_CHANGE=ya;exports.COMMAND_LISTENER_VALUE_CHANGE=_a;exports.ClearSelectionAllCommand=_t;exports.ClearSelectionContentCommand=Yt;exports.ClearSelectionFormatCommand=bt;exports.CopySheetCommand=Kn;exports.DeleteRangeMoveLeftCommand=kt;exports.DeleteRangeMoveUpCommand=Ot;exports.DeleteRangeProtectionCommand=br;exports.DeleteRangeProtectionMutation=Ye;exports.DeleteWorksheetProtectionMutation=wr;exports.DeltaColumnWidthCommand=an;exports.DeltaRowHeightCommand=dn;exports.EffectRefRangId=T;exports.EmptyMutation=Sr;exports.FactoryAddRangeProtectionMutation=gi;exports.FactoryDeleteRangeProtectionMutation=mi;exports.FactorySetRangeProtectionMutation=hi;exports.INTERCEPTOR_POINT=Ct;exports.INumfmtService=je;exports.InsertColAfterCommand=Ao;exports.InsertColBeforeCommand=xo;exports.InsertColCommand=$e;exports.InsertColMutation=Ie;exports.InsertColMutationUndoFactory=en;exports.InsertDefinedNameCommand=Cr;exports.InsertRangeMoveDownCommand=Dt;exports.InsertRangeMoveRightCommand=xt;exports.InsertRowAfterCommand=Oo;exports.InsertRowBeforeCommand=ko;exports.InsertRowCommand=Ve;exports.InsertRowMutation=pe;exports.InsertRowMutationUndoFactory=Qt;exports.InsertSheetCommand=Wo;exports.InsertSheetMutation=De;exports.InsertSheetUndoMutationFactory=Kt;exports.MAX_CELL_PER_SHEET_KEY=Ur;exports.MoveColsCommand=Wt;exports.MoveColsMutation=be;exports.MoveColsMutationUndoFactory=Vo;exports.MoveRangeCommand=Ut;exports.MoveRangeMutation=xe;exports.MoveRowsCommand=At;exports.MoveRowsMutation=_e;exports.MoveRowsMutationUndoFactory=Lo;exports.NORMAL_SELECTION_PLUGIN_NAME=X;exports.OperatorType=W;exports.RangeMergeUtil=Ys;exports.RangeProtectionPermissionEditPoint=Et;exports.RangeProtectionPermissionViewPoint=Nt;exports.RemoveColCommand=ut;exports.RemoveColMutation=fe;exports.RemoveDefinedNameCommand=fr;exports.RemoveMergeUndoMutationFactory=ce;exports.RemoveNumfmtMutation=Sn;exports.RemoveRowCommand=ct;exports.RemoveRowMutation=Me;exports.RemoveSheetCommand=tn;exports.RemoveSheetMutation=Je;exports.RemoveSheetUndoMutationFactory=Yn;exports.RemoveWorksheetMergeCommand=Ho;exports.RemoveWorksheetMergeMutation=z;exports.ReorderRangeCommand=In;exports.ReorderRangeMutation=rt;exports.ResetBackgroundColorCommand=or;exports.ResetTextColorCommand=tr;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Pa;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=ba;exports.ScrollToCellOperation=pr;exports.SelectionMoveType=Fn;exports.SetBackgroundColorCommand=nr;exports.SetBoldCommand=xs;exports.SetBorderBasicCommand=Go;exports.SetBorderColorCommand=Yo;exports.SetBorderCommand=Xe;exports.SetBorderPositionCommand=qo;exports.SetBorderStyleCommand=zo;exports.SetColHiddenCommand=nn;exports.SetColHiddenMutation=He;exports.SetColVisibleMutation=Ge;exports.SetColWidthCommand=Mt;exports.SetDefinedNameCommand=vr;exports.SetFontFamilyCommand=Vs;exports.SetFontSizeCommand=$s;exports.SetFrozenCommand=Xo;exports.SetFrozenMutation=Ne;exports.SetFrozenMutationFactory=on;exports.SetHorizontalTextAlignCommand=sr;exports.SetItalicCommand=As;exports.SetNumfmtMutation=Bt;exports.SetRangeProtectionCommand=pn;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=at;exports.SetRangeValuesMutation=G;exports.SetRangeValuesUndoMutationFactory=Pe;exports.SetRowHeightCommand=mn;exports.SetRowHiddenCommand=rn;exports.SetRowHiddenMutation=ze;exports.SetRowVisibleMutation=qe;exports.SetSelectedColsVisibleCommand=Ko;exports.SetSelectedRowsVisibleCommand=Zo;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=Lt;exports.SetSpecificRowsVisibleCommand=Vt;exports.SetStrikeThroughCommand=Ls;exports.SetStyleCommand=te;exports.SetTabColorCommand=cr;exports.SetTabColorMutation=tt;exports.SetTextColorCommand=er;exports.SetTextRotationCommand=ar;exports.SetTextWrapCommand=ir;exports.SetUnderlineCommand=Ws;exports.SetVerticalTextAlignCommand=rr;exports.SetWorkbookNameCommand=fn;exports.SetWorkbookNameMutation=Cn;exports.SetWorksheetActivateCommand=$t;exports.SetWorksheetActiveOperation=lt;exports.SetWorksheetColWidthMutation=we;exports.SetWorksheetColWidthMutationFactory=sn;exports.SetWorksheetHideCommand=lr;exports.SetWorksheetHideMutation=ke;exports.SetWorksheetNameCommand=cn;exports.SetWorksheetNameMutation=wt;exports.SetWorksheetOrderCommand=dr;exports.SetWorksheetOrderMutation=nt;exports.SetWorksheetPermissionPointsCommand=_r;exports.SetWorksheetProtectionMutation=Mr;exports.SetWorksheetRowAutoHeightMutation=ln;exports.SetWorksheetRowAutoHeightMutationFactory=qs;exports.SetWorksheetRowHeightMutation=ye;exports.SetWorksheetRowIsAutoHeightCommand=gn;exports.SetWorksheetRowIsAutoHeightMutation=he;exports.SetWorksheetShowCommand=gr;exports.WorkbookCommentPermission=go;exports.WorkbookCopyPermission=_o;exports.WorkbookCopySheetPermission=bo;exports.WorkbookCreateSheetPermission=Mo;exports.WorkbookDeleteSheetPermission=vo;exports.WorkbookDuplicatePermission=Ro;exports.WorkbookEditablePermission=ho;exports.WorkbookExportPermission=Co;exports.WorkbookHideSheetPermission=po;exports.WorkbookHistoryPermission=Cs;exports.WorkbookManageCollaboratorPermission=Po;exports.WorkbookMoveSheetPermission=fo;exports.WorkbookPrintPermission=So;exports.WorkbookRenameSheetPermission=Io;exports.WorkbookSharePermission=yo;exports.WorkbookViewPermission=wo;exports.WorksheetCopyPermission=Xn;exports.WorksheetDeleteColumnPermission=ao;exports.WorksheetDeleteRowPermission=io;exports.WorksheetEditExtraObjectPermission=mo;exports.WorksheetEditPermission=Jt;exports.WorksheetFilterPermission=uo;exports.WorksheetInsertColumnPermission=ro;exports.WorksheetInsertHyperlinkPermission=so;exports.WorksheetInsertRowPermission=oo;exports.WorksheetManageCollaboratorPermission=Ss;exports.WorksheetPivotTablePermission=lo;exports.WorksheetSelectProtectedCellsPermission=hs;exports.WorksheetSelectUnProtectedCellsPermission=Rs;exports.WorksheetSetCellStylePermission=Zn;exports.WorksheetSetCellValuePermission=Qn;exports.WorksheetSetColumnStylePermission=no;exports.WorksheetSetRowStylePermission=to;exports.WorksheetSortPermission=co;exports.WorksheetViewPermission=eo;exports.alignToMergedCellsBorders=it;exports.convertPrimaryWithCoordToPrimary=Vr;exports.convertSelectionDataToRange=Ta;exports.createTopMatrixFromMatrix=Rr;exports.createTopMatrixFromRanges=hr;exports.defaultWorkbookPermissionPoints=Qi;exports.defaultWorksheetPermissionPoint=oi;exports.expandToContinuousRange=cs;exports.factoryRemoveNumfmtUndoMutation=Js;exports.factorySetNumfmtUndoMutation=Ks;exports.findAllRectangle=hn;exports.followSelectionOperation=Ue;exports.generateNullCellValue=qn;exports.getAddMergeMutationRangeByType=Ar;exports.getAllRangePermissionPoint=Ee;exports.getAllWorkbookPermissionPoint=zt;exports.getAllWorksheetPermissionPoint=Te;exports.getAllWorksheetPermissionPointByPointPanel=ot;exports.getCellAtRowCol=ls;exports.getDefaultRangePermission=aa;exports.getInsertRangeMutations=Xt;exports.getMoveRangeUndoRedoMutations=Tt;exports.getNormalSelectionStyle=Ua;exports.getPrimaryForRange=ie;exports.getRemoveRangeMutations=Zt;exports.getSheetCommandTarget=L;exports.getSheetCommandTargetWorkbook=zn;exports.getSheetMutationTarget=Pt;exports.handleBaseInsertRange=We;exports.handleBaseMoveRowsCols=st;exports.handleBaseRemoveRange=Ae;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=Di;exports.handleDefaultRangeChangeWithEffectRefCommands=xr;exports.handleDefaultRangeChangeWithEffectRefCommandsSkipNoInterests=Oi;exports.handleDeleteRangeMoveLeft=Or;exports.handleDeleteRangeMoveUp=Dr;exports.handleDeleteRangeMutation=vs;exports.handleIRemoveCol=yn;exports.handleIRemoveRow=_n;exports.handleInsertCol=Pn;exports.handleInsertRangeMoveDown=Nr;exports.handleInsertRangeMoveRight=kr;exports.handleInsertRangeMutation=fs;exports.handleInsertRow=bn;exports.handleMoveCols=wn;exports.handleMoveRange=Er;exports.handleMoveRows=Mn;exports.isSingleCellSelection=ms;exports.rangeMerge=Rn;exports.rotateRange=le;exports.runRefRangeMutations=Le;exports.setEndForRange=ds;exports.transformCellDataToSelectionData=Ea;exports.transformCellsToRange=yt;