@univerjs/sheets 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +2 -2
- package/lib/es/index.js +2993 -3083
- package/lib/types/commands/mutations/add-worksheet-protection.mutation.d.ts +1 -0
- package/lib/types/controllers/basic-worksheet.controller.d.ts +3 -1
- package/lib/types/index.d.ts +2 -2
- package/lib/types/services/permission/worksheet-permission/index.d.ts +0 -1
- package/lib/umd/index.js +2 -2
- package/package.json +28 -16
- package/lib/types/render/image/protect-background-img.d.ts +0 -16
- package/lib/types/render/range-protection/range-protection.render.d.ts +0 -32
- package/lib/types/render/worksheet-protection/worksheet-permission.render.d.ts +0 -13
- package/lib/types/services/permission/worksheet-permission/worksheet-permission-render.service.d.ts +0 -10
package/lib/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Dr=Object.defineProperty;var Ar=(o,e,t)=>e in o?Dr(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var C=(o,e,t)=>(Ar(o,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),x=require("@wendellhu/redi"),he=require("rxjs"),ie=require("@univerjs/engine-formula"),et=require("rxjs/operators"),Pt=require("@univerjs/engine-render");var Wr=Object.defineProperty,xr=Object.getOwnPropertyDescriptor,Vr=(o,e,t,n)=>{for(var r=n>1?void 0:n?xr(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&&Wr(e,t,r),r},Lr=(o,e)=>(t,n)=>e(t,n,o);const X="normalSelectionPluginName";var Fn=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))(Fn||{});exports.SelectionManagerService=class{constructor(e){C(this,"_selectionInfo",new Map);C(this,"_currentSelection",null);C(this,"_selectionMoveStart$",new he.Subject);C(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());C(this,"_selectionMoving$",new he.Subject);C(this,"selectionMoving$",this._selectionMoving$.asObservable());C(this,"_selectionMoveEnd$",new he.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=Vr([Lr(0,x.Inject(s.ThemeService))],exports.SelectionManagerService);const $r=s.createInterceptorKey("CELL_CONTENT"),jr=s.createInterceptorKey("ROW_FILTERED"),Ct={CELL_CONTENT:$r,ROW_FILTERED:jr};var Br=Object.defineProperty,Fr=Object.getOwnPropertyDescriptor,Hr=(o,e,t,n)=>{for(var r=n>1?void 0:n?Fr(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&&Br(e,t,r),r},Gr=(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(Ct.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(En(r,c),d),d.add(l.registerCellContentInterceptor({getCell(m,h){return i.fetchThroughInterceptors(Ct.CELL_CONTENT)(c.getCellRaw(m,h),{unitId:r,subUnitId:u,row:m,col:h,worksheet:c,workbook:t})}})),d.add(l.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)),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=En(t,n),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Hr([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Gr(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function En(o,e){return`${o}|${e.getSheetId()}`}const Me=(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((h,R,g)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(h,R))||{},v=l.getStyleByCell(S);let I=l.getStyleByCell(g);I=qr(v,I),S.s=I,d.setValue(h,R,zr(S))}),{...e,options:{},cellValue:d.getMatrix()}};function zr(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 Y={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,h,R)=>{if(!R)u==null||u.setValue(m,h,{});else{const g=u.getValue(m,h)||{},S=R.t?R.t:R.v!==void 0?Nn(R.v,R.t):Nn(g.v,g.t);if(R.f!==void 0&&(g.f=R.f),R.si!==void 0&&(g.si=R.si),R.p!==void 0&&(g.p=R.p),R.v!==void 0&&(g.v=S===s.CellValueType.NUMBER?Number(R.v):S===s.CellValueType.BOOLEAN?Yr(R.v)?1:0:R.v),g.v!==void 0&&(g.t=S),R.s!==void 0){const v=l.getStyleByCell(g);v==null&&delete g.s,typeof R.s=="string"&&(R.s=l.get(R.s));const I=vt(v,R.s?R.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete g.s:g.s=l.setValue(I),!R.p&&g.p&&Xr(g.p,R.s?R.s:null)}R.custom!==void 0&&(g.custom=R.custom),u.setValue(m,h,s.Tools.removeNull(g))}}),!0}};function Nn(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 Yr(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 qr(o,e){return Kr(o,e)}function Kr(o,e){if(!e||!Object.keys(e).length)return o;const t=o||{};for(const n in e)n==="bd"?t[n]=Zr(t[n]||{},e[n]):n in t||(t[n]=null);return t}function Zr(o,e){if(!e||!Object.keys(e).length)return o;for(const t in e)t in o||(o[t]=null);return o}function vt(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 Hn(o,e){return o.some(t=>t.startIndex===e)?Hn(o,e+1):e}function Xr(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 h={st:t,ed:u},R=vt({},e,!0);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)||(h.ts=R),n.push(h)}const m=vt(d,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,n.push(c),t=Hn(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=vt({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),n.push(c)}o.body.textRuns=s.normalizeTextRuns(n)}const Ut={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=[],h=[],R={subUnitId:l,unitId:c,cellValue:Jr(d)},g=Me(o,R);m.push({id:Y.id,params:R}),h.push({id:Y.id,params:g});const S=i.onCommandExecute({id:Ut.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function Jr(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 Yt={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:Qr(d)},h=Me(o,m),R=i.onCommandExecute({id:Yt.id}),g=[{id:Y.id,params:m},...R.redos],S=[...R.undos,{id:Y.id,params:h}];return s.sequenceExecute(g,t).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:g}),!0):!1}};function Qr(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 Tt={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=[],h=[],R={subUnitId:l,unitId:c,cellValue:es(d)},g=Me(o,R);m.push({id:Y.id,params:R}),h.push({id:Y.id,params:g});const S=i.onCommandExecute({id:Tt.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,t)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function es(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 qt=(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 Gn(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 B(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 Et(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 zn=(o,e)=>{const t=o.get(s.IUniverInstanceService),{subUnitId:n,unitId:r}=e,i=Et(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}},Ze={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}},Yn={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=B(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 h={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},R=qt(o,h);return t.syncExecuteCommand(De.id,h)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:Ze.id,params:R}],redoMutations:[{id:De.id,params:h}]}),!0):!1}},Fe={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,h)=>{u.setValue(d,m,h)}),new s.ObjectMatrix(n.value).forValue((d,m,h)=>{l.setValue(d,m,h)}),!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 ts(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 ns(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 we=(o,e,t)=>({id:K.id,params:{unitId:e.getUnitId(),subUnitId:t.getSheetId(),pluginName:X,selections:[{range:o,primary:ae(o,t)}]}});function os(o){if(!o)return!1;const{range:e,primary:t}=o;return s.Rectangle.equals(e,t)}function rs(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 qn="sheet.command.move-range",Nt={type:s.CommandType.COMMAND,id:qn,handler:(o,e)=>{var I,p;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=B(r);if(!c)return!1;const{worksheet:u,subUnitId:l,unitId:d}=c,m=kt(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:Nt.id,params:{...e}}),g=[...(I=R.preRedos)!=null?I:[],...m.redos,...R.redos,{id:K.id,params:{unitId:d,subUnitId:l,pluginName:X,selections:[{range:e.toRange,primary:ae(e.toRange,u)}]}}],S=[...(p=R.preUndos)!=null?p:[],...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(g,t).result?(n.pushUndoRedo({unitID:d,undoMutations:S,redoMutations:g}),!0):!1}};function kt(o,e,t,n=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:l,subUnitId:d}=t,h=o.get(s.IUniverInstanceService).getUniverSheetInstance(u),R=h==null?void 0:h.getSheetBySheetId(d),g=h==null?void 0:h.getSheetBySheetId(c),S=R==null?void 0:R.getCellMatrix(),v=g==null?void 0:g.getCellMatrix();if(R&&g&&S&&v){const I=rt(l,R,!1);if(!s.Rectangle.equals(l,I)&&!n)return null;const p=new s.ObjectMatrix,f=new s.ObjectMatrix;s.Range.foreach(a,(P,E)=>{p.setValue(P,E,v.getValue(P,E)),f.setValue(P,E,null)});const w=new s.ObjectMatrix;s.Range.foreach(l,(P,E)=>{w.setValue(P,E,S.getValue(P,E))});const M=new s.ObjectMatrix;s.Range.foreach(a,(P,E)=>{const k=s.cellToRange(P,E),F=s.Rectangle.getRelativeRange(k,a),j=s.Rectangle.getPositionRange(F,l);M.setValue(j.startRow,j.startColumn,v.getValue(P,E))});const y={from:{value:f.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u},U={from:{value:p.getMatrix(),subUnitId:c},to:{value:w.getMatrix(),subUnitId:d},unitId:u};r.push({id:Fe.id,params:y}),i.push({id:Fe.id,params:U})}return{redos:r,undos:i}}var wt=(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))(wt||{}),_=(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.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 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",_.Copy);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Copy}_${e}_${t}`}}class ss{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 is{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 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",_.SetCellValue);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetCellValue}_${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",_.View);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.View}_${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",_.SetRowStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetRowStyle}_${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",_.SetColumnStyle);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.SetColumnStyle}_${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",_.InsertRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertRow}_${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",_.InsertColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertColumn}_${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",_.InsertHyperlink);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.InsertHyperlink}_${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",_.DeleteRow);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteRow}_${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",_.DeleteColumn);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.DeleteColumn}_${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",_.Sort);this.unitId=e,this.subUnitId=t,this.id=`${this.type}.${_.Sort}_${e}_${t}`}}class ao{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 co{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 uo{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 as{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 Kt{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 lo{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 mo{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 cs{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 ho{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 go{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 us{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 ls{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 ds{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 ms{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 hs{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 gs{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 Ro{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 Rs{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 So{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 Co{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 vo{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 fo{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=B(r,{subUnitId:e.subUnitId,unitId:e.unitId});if(!u)return!1;const{subUnitId:l,unitId:d}=u,{value:m,range:h}=e,R=h?[h]:i.getSelectionRanges();if(!R||!R.length||!c.getPermissionPoint(new Kt(d,l).id))return!1;const g=new s.ObjectMatrix;let S;if(s.Tools.isArray(m))for(let y=0;y<R.length;y++){const{startRow:U,startColumn:P,endRow:E,endColumn:k}=R[y];for(let F=0;F<=E-U;F++)for(let j=0;j<=k-P;j++)g.setValue(F+U,j+P,m[F][j])}else if(s.isICellData(m))for(let y=0;y<R.length;y++){const{startRow:U,startColumn:P,endRow:E,endColumn:k}=R[y];for(let F=U;F<=E;F++)for(let j=P;j<=k;j++)g.setValue(F,j,m)}else S=m;const v={subUnitId:l,unitId:d,cellValue:S!=null?S:g.getMatrix()},I=Me(o,v),p=t.syncExecuteCommand(Y.id,v),{undos:f,redos:w}=a.onCommandExecute({id:st.id,params:{...v,range:R}}),M=s.sequenceExecute([...w],t);return p&&M.result?(n.pushUndoRedo({unitID:d,undoMutations:[{id:Y.id,params:I},...f],redoMutations:[{id:Y.id,params:v},...w]}),!0):!1}};function Zt(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),h=m==null?void 0:m.getSheetBySheetId(i);if(h){const R=h.getCellMatrix(),g=R.getDataRange();if(a.startColumn<=g.endColumn||a.startRow<=g.endRow){let f,w;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,g.endRow);let U=0;for(let E=a.startRow;E<=y;E++){const k=R.getRow(E),F=k?s.getArrayLength(k)-1:0;U=Math.max(U,F)}f={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:U};const P=a.endColumn-a.startColumn+1;w={startRow:a.startRow,startColumn:f.startColumn+P,endRow:y,endColumn:f.endColumn+P}}else{const y=Math.min(a.endColumn,g.endColumn),U=g.endRow;f={startRow:a.startRow,startColumn:a.startColumn,endRow:U,endColumn:y};const P=a.endRow-a.startRow+1;w={startRow:f.startRow+P,startColumn:a.startColumn,endRow:f.endRow+P,endColumn:y}}const M=kt(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=Me(o,S),{undos:I,redos:p}=d.onCommandExecute({id:st.id,params:{...S,range:a}});t.push({id:Y.id,params:S},...p),n.push({id:Y.id,params:v},...I)}return{redo:t,undo:n}}function Xt(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 h=m.getCellMatrix(),R=h.getDataRange(),g={subUnitId:i,unitId:r,cellValue:vs([a])},S=Me(o,g),v=l.onCommandExecute({id:st.id,params:g});if(t.push({id:Y.id,params:g},...v.redos),n.push(...v.undos,{id:Y.id,params:S}),a.startColumn<=R.endColumn||a.startRow<=R.endRow){let I=null,p=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 U=h.getRow(y),P=U?s.getArrayLength(U)-1:0;w=Math.max(w,P)}I={startRow:a.startRow,startColumn:a.endColumn+1,endRow:f,endColumn:w};const M=a.endColumn-a.startColumn+1;p={startRow:a.startRow,startColumn:I.startColumn-M,endRow:f,endColumn:I.endColumn-M}}if(c===s.Dimension.ROWS&&a.endRow<R.endRow){const f=Math.min(a.endColumn,R.endColumn),w=R.endRow;I={startRow:a.endRow+1,startColumn:a.startColumn,endRow:w,endColumn:f};const M=a.endRow-a.startRow+1;p={startRow:I.startRow-M,startColumn:a.startColumn,endRow:I.endRow-M,endColumn:f}}if(I&&p){const f=kt(o,{unitId:r,subUnitId:i,range:I},{unitId:r,subUnitId:i,range:p},!0);f&&(t.push(...f.redos),n.push(...f.undos))}}}return{redo:t,undo:n}}function Ss(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 h=u;h<=l;h++){const R=o.getValue(m,h);R==null?o.realDeleteValue(m+d,h):o.setValue(m+d,h,R)}for(let m=c;m>=a;m--)for(let h=u;h<=l;h++)i&&i[m]&&i[m][h]?o.setValue(m,h,i[m][h]):o.realDeleteValue(m,h)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=a;m<=c;m++)for(let h=n;h>=u;h--){const R=o.getValue(m,h);R==null?o.realDeleteValue(m,h+d):o.setValue(m,h+d,R)}for(let m=a;m<=c;m++)for(let h=l;h>=u;h--)i&&i[m]&&i[m][h]?o.setValue(m,h,i[m][h]):o.realDeleteValue(m,h)}}function Cs(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 h=c;h<=u;h++){const R=o.getValue(m+l,h);R==null?o.realDeleteValue(m,h):o.setValue(m,h,R)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let h=c;h<=n;h++){const R=o.getValue(m,h+d);R==null?o.realDeleteValue(m,h):o.setValue(m,h,R)}}function vs(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 Io="sheet.command.delete-range-move-left",Ot={type:s.CommandType.COMMAND,id:Io,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=B(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let h=e==null?void 0:e.range;if(h||(h=(w=i.getLast())==null?void 0:w.range),!h)return!1;const R={range:h,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},g=a.onCommandExecute({id:Ot.id,params:{range:h}}),{redo:S,undo:v}=Xt(o,R),I=[...(M=g.preRedos)!=null?M:[],...S],p=[...g.undos,...v];return I.push(...g.redos),I.push(we(h,l,u)),p.push(...(y=g.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(n.pushUndoRedo({unitID:m,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},po="sheet.command.delete-range-move-up",Dt={type:s.CommandType.COMMAND,id:po,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=B(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let h=e==null?void 0:e.range;if(h||(h=(w=i.getLast())==null?void 0:w.range),!h)return!1;const R={range:h,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},g=a.onCommandExecute({id:Dt.id,params:{range:h}}),{redo:S,undo:v}=Xt(o,R),I=[...(M=g.preRedos)!=null?M:[],...S],p=[...g.undos,...v];return I.push(...g.redos),I.push(we(h,d,m)),p.push(...(y=g.preUndos)!=null?y:[]),s.sequenceExecute(I,t).result?(n.pushUndoRedo({unitID:u,undoMutations:p.reverse(),redoMutations:I}),!0):!1}},Jt=(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}},ye={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(o,e)=>{var g;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,h=r.endRow-r.startRow+1;for(let S=m;S<m+h;S++)i?s.insertMatrixArray(S,(g=i[S-r.startRow])!=null?g:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,h),!0}},Qt=(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}},_e={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(o,e)=>{var g;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,h=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const v={w:h,hd:0};c?s.insertMatrixArray(S,(g=c[S-a.startColumn])!=null?g:v,l):s.insertMatrixArray(S,v,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},fs=(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}},be={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}},Is=(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}},fe={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}},ps="sheet.command.insert-range-move-down",At={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(o,e)=>{var j,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=B(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:h,workbook:R}=l;let g=e==null?void 0:e.range;if(g||(g=(j=i.getLast())==null?void 0:j.range),!g)return!1;const S=[],v=[],I=h.getCellMatrix(),p=I.getDataRange(),w=I.getSlice(p.startRow,p.endRow,g.startColumn,g.endColumn).getDataRange().endRow,M=Math.max(w+(g.endRow-g.startRow+1)-p.endRow,0);if(M>0){const J=g.startRow-1,Q=h.getRowHeight(J),Z={unitId:d,subUnitId:m,range:{startRow:p.endRow+1,endRow:p.endRow+M,startColumn:p.startColumn,endColumn:p.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};S.push({id:ye.id,params:Z});const ne=Jt(o,Z);v.push({id:be.id,params:ne})}const y={};s.Range.foreach(g,(J,Q)=>{const Z=h.getCell(J,Q);Z&&(y[J]||(y[J]={}),y[J][Q]={s:Z.s})});const U={range:g,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:P,undo:E}=Zt(o,U);S.push(...P),v.push(...E);const k=a.onCommandExecute({id:At.id,params:{range:g}});return S.push(...k.redos),S.push(we(g,R,h)),v.push(...(b=k.preUndos)!=null?b:[]),S.unshift(...(oe=k.preRedos)!=null?oe:[]),v.unshift(...k.undos),s.sequenceExecute(S,t)?(n.pushUndoRedo({unitID:d,undoMutations:v.reverse(),redoMutations:S}),!0):!1}},Mo="sheet.command.insert-range-move-right",Wt={type:s.CommandType.COMMAND,id:Mo,handler:async(o,e)=>{var j,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=B(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:h,subUnitId:R}=l;let g=e==null?void 0:e.range;if(g||(g=(j=i.getLast())==null?void 0:j.range),!g)return!1;const S=[],v=[],I=m.getCellMatrix(),p=I.getDataRange(),w=I.getSlice(g.startRow,g.endRow,p.startColumn,p.endColumn).getDataRange().endColumn,M=Math.max(w+(g.endColumn-g.startColumn+1)-p.endColumn,0);if(M>0){const J=g.startColumn-1,Q=m.getColumnWidth(J),Z={unitId:h,subUnitId:R,range:{startRow:p.startRow+1,endRow:p.endRow,startColumn:p.endColumn+1,endColumn:p.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};S.push({id:_e.id,params:Z});const ne=Qt(o,Z);v.push({id:fe.id,params:ne})}const y={};s.Range.foreach(g,(J,Q)=>{const Z=m.getCell(J,Q);!Z||!Z.s||(y[J]||(y[J]={}),y[J][Q]={s:Z.s})});const U={range:g,subUnitId:R,unitId:h,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:P,undo:E}=Zt(o,U);S.push(...P),v.push(...E);const k=a.onCommandExecute({id:Wt.id,params:{range:g}});return S.push(...k.redos),S.push(we(g,d,m)),v.push(...(b=k.preUndos)!=null?b:[]),S.unshift(...(oe=k.preRedos)!=null?oe:[]),v.unshift(...k.undos),s.sequenceExecute(S,t).result?(n.pushUndoRedo({unitID:h,undoMutations:v.reverse(),redoMutations:S}),!0):!1}},wo="sheet.command.insert-row",Ve={type:s.CommandType.COMMAND,id:wo,handler:async(o,e)=>{var U,P,E,k;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:h}=e,{startRow:R,endRow:g}=u,S=l===s.Direction.UP?R:R-1,v=c.getRowHeight(S),I={unitId:d,subUnitId:m,range:u,rowInfo:new Array(g-R+1).fill(void 0).map(()=>({h:v,hd:s.BooleanNumber.FALSE}))},p=Jt(o,I),f=[{id:ye.id,params:I}],w=[{id:be.id,params:p}];h&&f.push({id:Y.id,params:{unitId:d,subUnitId:m,cellValue:h}});const M=i.onCommandExecute({id:Ve.id,params:e});return f.unshift(...(U=M.preRedos)!=null?U:[]),f.push(...(P=M.redos)!=null?P:[]),f.push(we(u,a,c)),w.unshift(...(E=M.preUndos)!=null?E:[]),w.push(...(k=M.undos)!=null?k:[]),s.sequenceExecute(f,t).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:w,redoMutations:f}),!0):!1}},yo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var h;const t=(h=o.get(exports.SelectionManagerService).getSelections())==null?void 0:h.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,g)=>{const S=a.getCell(R,g);!S||!S.s||(d[R]||(d[R]={}),d[R][g]={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)}},_o={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(h=>h.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}};return o.get(s.ICommandService).executeCommand(Ve.id,d)}},bo="sheet.command.insert-col",Le={type:s.CommandType.COMMAND,id:bo,handler:async(o,e)=>{var U,P,E,k;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:h}=e.range,R=r.getUniverSheetInstance(e.unitId),g=R.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?m:m-1,v=g.getColumnWidth(S),I={unitId:l,subUnitId:u,range:a,colInfo:new Array(h-m+1).fill(void 0).map(()=>({w:v,hd:s.BooleanNumber.FALSE}))},p=Qt(o,I),f=[{id:_e.id,params:I}],w=[{id:fe.id,params:p}];d&&f.push({id:Y.id,params:{unitId:l,subUnitId:u,cellValue:d}});const M=i.onCommandExecute({id:Le.id,params:e});return f.unshift(...(U=M.preRedos)!=null?U:[]),f.push(...(P=M.redos)!=null?P:[]),f.push(we(a,R,g)),w.unshift(...(E=M.preUndos)!=null?E:[]),w.push(...(k=M.undos)!=null?k:[]),s.sequenceExecute(f,t).result?(n.pushUndoRedo({unitID:e.unitId,undoMutations:w.filter(Boolean),redoMutations:f.filter(Boolean)}),!0):!1}},Po={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,(h,R)=>{const g=a.getCell(h,R);!g||!g.s||(d[h]||(d[h]={}),d[h][R]={s:g.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()},cellValue:d};return o.get(s.ICommandService).executeCommand(Le.id,m)}},Uo={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(Le.id,d)}},To={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(o,e)=>{var g;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.LocaleService),a=Gn(r,{unitId:e==null?void 0:e.unitId});if(!a)return!1;const{unitId:c,workbook:u}=a;let l=u.getSheets().length,d=s.mergeWorksheetSnapshotWithDefault({});e?(l=(g=e.index)!=null?g:l,e.sheet?d=e.sheet:(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`))):(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const m={index:l,sheet:d,unitId:c},h=qt(o,m);return t.syncExecuteCommand(De.id,m)?(n.pushUndoRedo({unitID:c,undoMutations:[{id:Ze.id,params:h}],redoMutations:[{id:De.id,params:m}]}),!0):!1}};function Eo(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 Ne={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,h=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveRows(l,d,m),!0}};function No(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 ke={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,h=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveColumns(l,d,m),!0}};function Ms(o,e){return e.getMergeData().some(t=>t.startRow<o&&o<=t.endRow)}function ws(o,e){return e.getMergeData().some(t=>t.startColumn<o&&o<=t.endColumn)}const ko="sheet.command.move-rows",xt={id:ko,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,Z;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(),h=d.getSheetId(),R=o.get(s.ErrorService),g=o.get(s.LocaleService),S=a[0].range,v=a[0].primary,I=rt(S,d,!1);if(!s.Rectangle.equals(S,I))return R.emit(g.t("sheets.info.partOfCell")),!1;if(Ms(i,d))return R.emit(g.t("sheets.info.acrossMergedCell")),!1;const p={...S,startRow:i,endRow:i+S.endRow-S.startRow},f={unitId:m,subUnitId:h,sourceRange:S,targetRange:p},w=Eo(o,f),y=i-r<0,U=S.endRow-S.startRow+1,P=y?p:{...p,startRow:p.startRow-U,endRow:p.endRow-U},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:P,primary:ae(P,d),style:null}]},k={unitId:m,subUnitId:h,pluginName:X,selections:[{range:S,primary:v,style:null}]},F=o.get(s.ICommandService),j=c.onCommandExecute({id:xt.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:Ne.id,params:f},{id:K.id,params:E},...j.redos],oe=[...(Z=j.preUndos)!=null?Z:[],{id:Ne.id,params:w},{id:K.id,params:k},...j.undos];return s.sequenceExecute(b,F).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},Oo="sheet.command.move-cols",Vt={id:Oo,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,Z;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(),h=d.getSheetId(),R=o.get(s.ErrorService),g=o.get(s.LocaleService),S=a[0].range,v=a[0].primary,I=rt(S,d,!1);if(!s.Rectangle.equals(S,I))return R.emit(g.t("sheets.info.partOfCell")),!1;if(ws(i,d))return R.emit(g.t("sheets.info.acrossMergedCell")),!1;const p={...S,startColumn:i,endColumn:i+S.endColumn-S.startColumn},f={unitId:m,subUnitId:h,sourceRange:S,targetRange:p},w=No(o,f),M=S.endColumn-S.startColumn+1,P=i-r<0?p:{...p,startColumn:p.startColumn-M,endColumn:p.endColumn-M},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:P,primary:ae(P,d),style:null}]},k={unitId:m,subUnitId:h,pluginName:X,selections:[{range:S,primary:v,style:null}]},F=o.get(s.ICommandService),j=c.onCommandExecute({id:Vt.id,params:e}),b=[...(Q=j.preRedos)!=null?Q:[],{id:ke.id,params:f},{id:K.id,params:E},...j.redos],oe=[...(Z=j.preUndos)!=null?Z:[],{id:ke.id,params:w},{id:K.id,params:k},...j.undos];return s.sequenceExecute(b,F).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},Do="sheet.command.remove-row",it={type:s.CommandType.COMMAND,id:Do,handler:async(o,e)=>{var p,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=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=o.get(s.IUniverInstanceService),a=B(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 h=[];if(m.length){const y=[r.startRow,...m.map(P=>P+1)],U=[...m.map(P=>P-1),r.endRow];for(let P=y.length-1;P>=0;P--)y[P]<=U[P]&&h.push({startRow:y[P],endRow:U[P],startColumn:r.startColumn,endColumn:r.endColumn})}else h.push(r);const R=[],g=[];h.forEach(y=>{const U={unitId:d,subUnitId:l,range:y},P=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),E={unitId:d,subUnitId:l,cellValue:P.getMatrix()},k=fs(U,u);R.push({id:be.id,params:U}),g.unshift({id:ye.id,params:k},{id:Y.id,params:E})});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,we(r,c,u)],v).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],...g,...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],...R,...S.redos]}),!0):!1}},Ao="sheet.command.remove-col",at={type:s.CommandType.COMMAND,id:Ao,handler:async(o,e)=>{var p,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=(p=t.getLast())==null?void 0:p.range),!r)return!1;const i=o.get(s.IUniverInstanceService),a=B(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},h=Is(o,m),R=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),g={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:fe.id,params:m},...S.redos,we(r,c,u)],v).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],{id:_e.id,params:h},{id:Y.id,params:g},...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],{id:fe.id,params:m},...S.redos]}),!0):!1}},en={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(o,e)=>{var p,f;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SheetInterceptorService),a=B(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 h={subUnitId:u,unitId:c,subUnitName:d.getName()},R=zn(o,h),g=i.onCommandExecute({id:en.id,params:{unitId:c,subUnitId:u}}),S=[...(p=g.preRedos)!=null?p:[],{id:Ze.id,params:h},...g.redos],v=[...(f=g.preUndos)!=null?f:[],{id:De.id,params:R},...g.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],h=c[l];s.Rectangle.intersects(m,h)&&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}},Wo={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=B(r);if(!a)return!1;const{subUnitId:c,unitId:u,worksheet:l}=a,d={unitId:u,subUnitId:c,ranges:i};let m=!1;const h=l.getConfig().mergeData;if(i.forEach(M=>{h.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const R=ue(o,d),g=e.getSelections();if(!(g!=null&&g.length))return!1;const S=s.Tools.deepClone(g),v=s.Tools.deepClone(g),I=v[v.length-1],{startRow:p,startColumn:f}=I.range;return I.primary={startRow:p,startColumn:f,endRow:p,endColumn:f,actualRow:p,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 $e{constructor(){C(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});C(this,"_borderInfo$",new he.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 xo={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($e);return l.setType(i),l.setColor(a),l.setStyle(c),u.executeCommand(Xe.id,{unitId:t,subUnitId:n})}},Vo={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($e).setType(e.value),t.executeCommand(Xe.id)}},Lo={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService);return o.get($e).setStyle(e.value),t.executeCommand(Xe.id)}},$o={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(o,e)=>{const t=o.get(s.ICommandService);return o.get($e).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($e),c=B(r,e);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=i.getSelectionRanges(),h=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:R,color:g,type:S,activeBorderType:v}=a.getBorderInfo();if(!v)return!1;const I=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,p=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,U=S.indexOf("tlbr")>-1,P=S.indexOf("tlbc")>-1,E=S.indexOf("tlmr")>-1,k=S.indexOf("bltr")>-1,F=S.indexOf("mltr")>-1,j=S.indexOf("bctr")>-1,b=m[0],oe={startRow:b.startRow-1,startColumn:b.startColumn,endRow:b.startRow-1,endColumn:b.endColumn},J={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},Z={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},bn={startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.startColumn},Pn={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},V=new s.ObjectMatrix,q={s:R,cl:{rgb:g}},ut=(D,T)=>{let $=null;return h.forEach(re=>{s.Rectangle.intersects(re,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&($=re)}),$};function z(D,T,$){D.startRow<0||D.startColumn<0||lt(D,(re,de)=>{var N,Je;const se=ut(re,de);let ce=T;if(se&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if($){const me=s.Tools.deepClone((N=V.getValue(se.startRow,se.startColumn))==null?void 0:N.s);ce=me!=null&&me.bd?Object.assign(me.bd,T):T}V.setValue(se.startRow,se.startColumn,{s:{bd:ce}})}else{if($){const me=s.Tools.deepClone((Je=V.getValue(re,de))==null?void 0:Je.s);ce=me!=null&&me.bd?Object.assign(me.bd,T):T}V.setValue(re,de,{s:{bd:ce}})}})}I&&(z(oe,{b:null}),z(ne,{t:s.Tools.deepClone(q)},!0)),f&&(z(Q,{t:null}),z(Pn,{b:s.Tools.deepClone(q)},!0)),p&&(z(J,{r:null}),z(bn,{l:s.Tools.deepClone(q)},!0)),w&&(z(Z,{l:null}),z(Un,{r:s.Tools.deepClone(q)},!0)),U&&z(b,{tl_br:s.Tools.deepClone(q)},!0),P&&z(b,{tl_bc:s.Tools.deepClone(q)},!0),E&&z(b,{tl_mr:s.Tools.deepClone(q)},!0),k&&z(b,{bl_tr:s.Tools.deepClone(q)},!0),F&&z(b,{ml_tr:s.Tools.deepClone(q)},!0),j&&z(b,{bc_tr:s.Tools.deepClone(q)},!0),M&<(b,(D,T)=>{var re,de,se,ce;const $=ut(D,T);if($){if($.endColumn!==b.endColumn){const N=(re=V.getValue($.startRow,$.startColumn))==null?void 0:re.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(q)}):{r:s.Tools.deepClone(q)}}})}if($.startColumn!==b.startColumn){const N=(de=V.getValue($.startRow,$.startColumn))==null?void 0:de.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(q)}):{l:s.Tools.deepClone(q)}}})}}else{if(T!==b.endColumn){const N=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(q)}):{r:s.Tools.deepClone(q)}}})}if(T!==b.startColumn){const N=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(q)}):{l:s.Tools.deepClone(q)}}})}}}),y&<(b,(D,T)=>{var re,de,se,ce;const $=ut(D,T);if($){if($.endRow!==b.endRow){const N=(re=V.getValue($.startRow,$.startColumn))==null?void 0:re.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(q)}):{b:s.Tools.deepClone(q)}}})}if($.startRow!==b.startRow){const N=(de=V.getValue($.startRow,$.startColumn))==null?void 0:de.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(q)}):{t:s.Tools.deepClone(q)}}})}}else{if(D!==b.endRow){const N=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(q)}):{b:s.Tools.deepClone(q)}}})}if(D!==b.startRow){const N=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(q)}):{t:s.Tools.deepClone(q)}}})}}}),!I&&!f&&!p&&!w&&!M&&!y&&!U&&!P&&!E&&!k&&!F&&!j&&(z(oe,{b:null}),z(ne,{t:null},!0),z(Q,{t:null}),z(Pn,{b:null},!0),z(J,{r:null}),z(bn,{l:null},!0),z(Z,{l:null}),z(Un,{r:null},!0),z(b,{tl_br:null},!0),z(b,{tl_bc:null},!0),z(b,{tl_mr:null},!0),z(b,{bl_tr:null},!0),z(b,{ml_tr:null},!0),z(b,{bc_tr:null},!0),lt(b,(D,T)=>{var re,de,se,ce,N,Je,me,Tn;const $=ut(D,T);if($){if($.endColumn!==b.endColumn){const A=(re=V.getValue($.startRow,$.startColumn))==null?void 0:re.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if($.startColumn!==b.startColumn){const A=(de=V.getValue($.startRow,$.startColumn))==null?void 0:de.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if($.endRow!==b.endRow){const A=(se=V.getValue($.startRow,$.startColumn))==null?void 0:se.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if($.startRow!==b.startRow){const A=(ce=V.getValue($.startRow,$.startColumn))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(T!==b.endColumn){const A=(N=V.getValue(D,T))==null?void 0:N.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(T!==b.startColumn){const A=(Je=V.getValue(D,T))==null?void 0:Je.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(D!==b.endRow){const A=(me=V.getValue(D,T))==null?void 0:me.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(D!==b.startRow){const A=(Tn=V.getValue(D,T))==null?void 0:Tn.s;V.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const Ft={unitId:l,subUnitId:d,cellValue:V.getData()},Or=Me(o,Ft);return t.syncExecuteCommand(Y.id,Ft)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:Y.id,params:Or}],redoMutations:[{id:Y.id,params:Ft}]}),!0):!1}},ys=(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}},_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}},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}},Lt={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=_s(o,c),l={unitId:n,subUnitId:r,pluginName:X,selections:i.map(I=>({range:I,primary:ae(I,a),style:null}))},d={unitId:n,subUnitId:r,pluginName:X,selections:Bo(i).map(I=>({range:I,primary:ae(I,a),style:null}))},m=o.get(s.ICommandService),h=s.sequenceExecute([{id:Ge.id,params:c},{id:K.id,params:l}],m),R=t.onCommandExecute({id:Lt.id,params:e}),g=s.sequenceExecute([...R.redos],m);return h.result&&g.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}},jo={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(Lt.id,{unitId:a,subUnitId:c,ranges:u})}},tn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var v,I,p;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:Bo(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}))},h=o.get(s.ICommandService),R=s.sequenceExecute([{id:He.id,params:l},{id:K.id,params:d}],h),g=t.onCommandExecute({id:tn.id,params:l}),S=s.sequenceExecute([...g.redos],h);if(R.result&&S.result){const f=o.get(s.IUndoRedoService),w=ys(o,l);return f.pushUndoRedo({unitID:c,undoMutations:[{id:Ge.id,params:w},{id:K.id,params:m},...(I=g.undos)!=null?I:[]],redoMutations:[...(p=g.preRedos)!=null?p:[],{id:He.id,params:l},{id:K.id,params:d},...g.redos]}),!0}return!1}};function Bo(o){return bs(o).map(t=>{const n=t.startColumn===0?t.endColumn+1:t.startColumn-1;return{...t,startColumn:n,endColumn:n}})}function bs(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 nn=(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}},Te={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}},Fo={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=B(r);if(!i)return!1;const{unitId:a,subUnitId:c,worksheet:u}=i,{startColumn:l,startRow:d,xSplit:m,ySplit:h}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||h>=u.getRowCount())return!1;const R={unitId:a,subUnitId:c,...e},g=nn(o,R);return t.syncExecuteCommand(Te.id,R)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:Te.id,params:g}],redoMutations:[{id:Te.id,params:R}]}),!0):!1}},Ps={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=B(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=nn(o,c);return e.syncExecuteCommand(Te.id,c)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Te.id,params:u}],redoMutations:[{id:Te.id,params:c}]}),!0):!1}},Us=(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-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}},Ts=(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}},Ye={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}},$t={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(o,e)=>{var v,I,p;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=Us(o,l),m={unitId:t,subUnitId:n,pluginName:X,selections:r.map(f=>({range:f,primary:ae(f,u),style:null}))},h={unitId:t,subUnitId:n,pluginName:X,selections:Go(r).map(f=>({range:f,primary:ae(f,u),style:null}))},R=s.sequenceExecute([{id:ze.id,params:l},{id:K.id,params:m}],i),g=c.onCommandExecute({id:$t.id,params:e}),S=s.sequenceExecute([...g.redos],i);return R.result&&S.result&&a.pushUndoRedo({unitID:t,undoMutations:[...(v=g.preUndos)!=null?v:[],{id:Ye.id,params:d},{id:K.id,params:h},...(I=g.undos)!=null?I:[]],redoMutations:[...(p=g.preRedos)!=null?p:[],{id:ze.id,params:l},{id:K.id,params:m},...g.redos]}),!0}},Ho={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($t.id,{unitId:a,subUnitId:c,ranges:u})}},on={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async o=>{var p,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=(p=e.getSelections())==null?void 0:p.map(y=>y.range).filter(y=>y.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const c=B(r);if(!c)return!1;const{unitId:u,subUnitId:l,worksheet:d}=c,m={unitId:u,subUnitId:l,ranges:a},h={unitId:u,subUnitId:l,pluginName:X,selections:Go(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}))},g=Ts(o,m),S=i.onCommandExecute({id:on.id,params:m});S.preRedos&&S.preRedos.length>0&&s.sequenceExecute([...S.preRedos],t);const v=s.sequenceExecute([{id:Ye.id,params:m},{id:K.id,params:h}],t),I=s.sequenceExecute([...S.redos],t);return v.result&&I.result&&n.pushUndoRedo({unitID:u,undoMutations:[...(f=S.preUndos)!=null?f:[],{id:ze.id,params:g},{id:K.id,params:R},...(w=S.undos)!=null?w:[]],redoMutations:[...(M=S.preRedos)!=null?M:[],{id:Ye.id,params:m},{id:K.id,params:h},...S.redos]}),!0}};function Go(o){return Es(o).map(t=>{const n=t.startRow===0?t.endRow+1:t.startRow-1;return{...t,startRow:n,endRow:n}})}function Es(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=B(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),h=c?[c]:m.getSelectionRanges();if(!(h!=null&&h.length))return!1;const R=new s.ObjectMatrix,g=rs(a);if(s.Tools.isArray(u.value))for(let M=0;M<h.length;M++)g.forOperableEach(h[M],(y,U,P)=>{R.setValue(y,U,{s:{[u.type]:u.value[y-P.startRow][U-P.startColumn]}})});else for(let M=0;M<h.length;M++){const y={s:{[u.type]:u.value}};g.forOperableEach(h[M],(U,P)=>R.setValue(U,P,y))}const S={subUnitId:i,unitId:r,cellValue:R.getMatrix()},v=Me(o,S),I=l.syncExecuteCommand(Y.id,S),{undos:p,redos:f}=o.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),w=s.sequenceExecute([...f],l);return I&&w.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:Y.id,params:v},...p],redoMutations:[{id:Y.id,params:S},...f]}),!0):!1}},Ns={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=B(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)}},ks={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=B(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)}},Os={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=B(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)}},Ds={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=B(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 As={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)}},Ws={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)}},zo={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)}},Yo={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)}},Ko={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)}},Zo={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)}},Xo={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)}},Jo={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)}},Qo={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)}},xs=(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}},er={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=B(o.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:i,subUnitId:a}=r,c={color:e.value,unitId:i,subUnitId:a},u=xs(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}},Vs=4,jt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,e,t)=>{const n=o.get(s.ICommandService),r=B(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)},Vs)})}},rn=(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}},Ie={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 h=a.getColumnOrCreate(m);typeof e.colWidth=="number"?h.w=e.colWidth:h.w=(u=e.colWidth[m-d.startColumn])!=null?u:i}}return!0}},sn={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=B(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,g=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,S=n.filter(U=>U.range.rangeType===s.RANGE_TYPE.COLUMN),v=g?s.RANGE_TYPE.ALL:S.some(({range:U})=>{const{startColumn:P,endColumn:E}=U;return P<=d&&d<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(v===s.RANGE_TYPE.ALL){const U=c.getRowCount(),P=new Array(c.getColumnCount()).fill(void 0).map((E,k)=>({startRow:0,endRow:U-1,startColumn:k,endColumn:k}));I={subUnitId:l,unitId:u,colWidth:R,ranges:P}}else v===s.RANGE_TYPE.COLUMN?I={subUnitId:l,unitId:u,ranges:S.map(U=>s.Rectangle.clone(U.range)),colWidth:R}:I={subUnitId:l,unitId:u,colWidth:R,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const{undos:p,redos:f}=o.get(exports.SheetInterceptorService).onCommandExecute({id:sn.id,params:I}),w=rn(o,I),M=r.syncExecuteCommand(Ie.id,I),y=s.sequenceExecute([...f],r);return M&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:Ie.id,params:w},...p],redoMutations:[{id:Ie.id,params:I},...f]}),!0}},yt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,e)=>{var I,p;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=B(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=rn(o,d),h=n.syncExecuteCommand(Ie.id,d),{undos:R,redos:g}=o.get(exports.SheetInterceptorService).onCommandExecute({id:yt.id,params:d}),S=i.onCommandExecute({id:yt.id,params:d}),v=s.sequenceExecute([...g,...S.redos],n);return h&&v.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(I=S.preUndos)!=null?I:[],{id:Ie.id,params:m},...R],redoMutations:[...(p=S.preRedos)!=null?p:[],{id:Ie.id,params:d},...g]}),!0):!1}},tr=(o,e)=>{const t=Et(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()}},Ee={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}},nr={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=B(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 h={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},R=tr(o,h);return c.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):t.syncExecuteCommand(Ee.id,h)?(n.pushUndoRedo({unitID:l,undoMutations:[{id:Ee.id,params:R}],redoMutations:[{id:Ee.id,params:h}]}),!0):!1}},Ls=(o,e)=>{const t=Et(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()}},_t={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}},an={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,e)=>{var g,S;const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),r=o.get(exports.SheetInterceptorService),i=B(o.get(s.IUniverInstanceService),e);if(!i)return!1;const{unitId:a,subUnitId:c}=i,u={subUnitId:c,name:e.name,unitId:a},l=Ls(o,u),d=r.onCommandExecute({id:an.id,params:e}),m=[...(g=d.preRedos)!=null?g:[],{id:_t.id,params:u},...d.redos],h=[...(S=d.preUndos)!=null?S:[],{id:_t.id,params:l},...d.undos];return await s.sequenceExecute(m,t).result?(n.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},$s=(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}},or={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=B(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=$s(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}},js=2e3,rr=(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 h=d;h<m+1;h++){const R=l.getRowOrCreate(h);u[h]=R.h}return{unitId:t,subUnitId:n,ranges:r,rowHeight:u}},cn=(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 h=d;h<=m;h++){const R=l.getRowOrCreate(h);u[h]=R.ia}return{unitId:t,subUnitId:n,ranges:r,autoHeightInfo:u}},Bs=(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:h}=l.getRowOrCreate(m);u.push({row:m,autoHeight:h})}return{unitId:t,subUnitId:n,rowsAutoHeightInfo:u}},pe={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:h,endRow:R}of r)for(let g=h;g<=R;g++){const S=d.getRowOrCreate(g);typeof i=="number"?S.h=i:S.h=(m=i[g])!=null?m:l,S.h=Math.min(js,S.h)}return!0}},ge={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:h,endRow:R}of r)for(let g=h;g<=R;g++){const S=d.getRowOrCreate(g);typeof i=="number"?S.ia=i:S.ia=(m=i[g-h])!=null?m:l}return!0}},un={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}},ln={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(o,e)=>{var E,k;const n=o.get(exports.SelectionManagerService).getSelections(),r=o.get(exports.SheetInterceptorService);if(!(n!=null&&n.length))return!1;const i=B(o.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:a,subUnitId:c,unitId:u}=i,{anchorRow:l,deltaY:d}=e,h=a.getRowHeight(l)+d,R=n.length===1&&n[0].range.rangeType===s.RANGE_TYPE.ALL,g=n.filter(F=>F.range.rangeType===s.RANGE_TYPE.ROW),S=R?s.RANGE_TYPE.ALL:g.some(({range:F})=>{const{startRow:j,endRow:b}=F;return j<=l&&l<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let v;if(S===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}));v={subUnitId:c,unitId:u,rowHeight:h,ranges:j}}else S===s.RANGE_TYPE.ROW?v={subUnitId:c,unitId:u,ranges:g.map(F=>s.Rectangle.clone(F.range)),rowHeight:h}:v={subUnitId:c,unitId:u,rowHeight:h,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const I=rr(o,v),p={unitId:u,subUnitId:c,ranges:v.ranges,autoHeightInfo:s.BooleanNumber.FALSE},f=cn(o,p),w=o.get(s.ICommandService),M=o.get(s.IUndoRedoService),y=r.onCommandExecute({id:ln.id,params:v}),U=s.sequenceExecute([{id:pe.id,params:v},{id:ge.id,params:p}],w),P=s.sequenceExecute([...y.redos],w);return U.result&&P.result?(M.pushUndoRedo({unitID:u,undoMutations:[...(E=y.preUndos)!=null?E:[],{id:pe.id,params:I},{id:ge.id,params:f},...y.undos],redoMutations:[...(k=y.preRedos)!=null?k:[],{id:pe.id,params:v},{id:ge.id,params:p},...y.redos]}),!0):!1}},dn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,e)=>{var p,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=B(i);if(!u)return!1;const{unitId:l,subUnitId:d}=u,m={subUnitId:d,unitId:l,ranges:c,rowHeight:e.value},h=rr(o,m),R={unitId:l,subUnitId:d,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},g=cn(o,R),S=s.sequenceExecute([{id:pe.id,params:m},{id:ge.id,params:R}],n),v=a.onCommandExecute({id:dn.id,params:m}),I=s.sequenceExecute([...v.redos],n);return S.result&&I.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(p=v.preRedos)!=null?p:[],{id:pe.id,params:h},{id:ge.id,params:g},...v.undos],redoMutations:[...(f=v.preRedos)!=null?f:[],{id:pe.id,params:m},{id:ge.id,params:R},...v.redos]}),!0):!1}},mn={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=B(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 h={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},R=cn(o,h),g=t.syncExecuteCommand(ge.id,h),{undos:S,redos:v}=o.get(exports.SheetInterceptorService).onCommandExecute({id:mn.id,params:h}),I=s.sequenceExecute([...v],t);return g&&I.result?(n.pushUndoRedo({unitID:c,undoMutations:[{id:ge.id,params:R},...S],redoMutations:[{id:ge.id,params:h},...v]}),!0):!1}},sr={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(!B(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},h=tr(o,m),R=r.syncExecuteCommand(Ee.id,m),g={unitId:t,subUnitId:n},S=r.syncExecuteCommand(ct.id,g);return R&&S?(i.pushUndoRedo({unitID:t,undoMutations:[{id:Ee.id,params:h}],redoMutations:[{id:Ee.id,params:m}]}),!0):!1}},ir=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},ar=o=>{const e=o;return e.forValue((t,n)=>{const r=o.getValue(t-1,n);r&&e.setValue(t,n,r+1)}),e},kn=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},Fs=(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),hn=o=>{const e=[];let t=kn(o);for(;t.area>0;)t.range&&(e.push(t.range),Fs(o,t.range)),t=kn(o);return e},gn=o=>{const e=ir(o);return hn(e)};class Hs{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=ar(this._matrix);return hn(e)}}const Gs=(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)},{}),zs=(o=0)=>{let e=o;return function(){return e++}},je=x.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,je);const Ys=(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,(h,R)=>{const g=t.getValue(r,i,h,R);g?a.push({pattern:g.pattern,row:h,col:R}):c.push({startColumn:R,endColumn:R,startRow:h,endRow:h})})})});const u=[];if(a.length){const l=bt(r,i,a);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=gn(m.ranges)}),u.push({id:Bt.id,params:bt(r,i,a)})}return c.length&&u.push({id:Rn.id,params:{unitId:r,subUnitId:i,ranges:c}}),u},Bt={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}},Rn={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}},qs=(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=bt(r,i,a);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=gn(l.ranges)}),[{id:Bt.id,params:c}]},bt=(o,e,t)=>{const n=Gs(t,"pattern"),r={},i={},a=zs();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}},cr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},ur={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(ie.SetDefinedNameMutation.id,r)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ie.SetDefinedNameMutation.id,params:r}]}),!0):!1}},lr={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(ie.RemoveDefinedNameMutation.id,r)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ie.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},dr={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(ie.SetDefinedNameMutation.id,e.newDefinedName)?(n.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:ie.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:ie.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},mr={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Sn={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}},Cn={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:Cn.id,params:e}),a={name:e.name,unitId:e.unitId},c=[...(l=i.preRedos)!=null?l:[],{id:Sn.id,params:a},...i.redos],u=o.get(s.ICommandService);return s.sequenceExecute(c,u).result}};var Ks=Object.defineProperty,Zs=Object.getOwnPropertyDescriptor,Xs=(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&&Ks(e,t,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new he.Subject);C(this,"_ruleRefresh",new he.Subject);C(this,"_resetOrder",new he.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"resetOrder$",this._resetOrder.asObservable());C(this,"_worksheetRuleInitStateChange",new he.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=Xs([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionRuleModel)],exports.WorksheetProtectionRuleModel);const hr={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}},gr={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}},Rr={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}},Pe=()=>[Jn,Kt],ft=()=>[Kn,so,ro,uo,ao,no,oo,to,co,Zn,Xn,eo,Qn,io],Js=[_.Copy,_.SetCellStyle,_.SetCellValue,_.SetRowStyle,_.SetColumnStyle,_.InsertRow,_.InsertColumn,_.InsertHyperlink,_.DeleteRow,_.DeleteColumn,_.Sort,_.Filter,_.PivotTable,_.EditExtraObject];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};exports.WorksheetProtectionPointModel=class{constructor(){C(this,"_model",new Map);C(this,"_pointChange",new he.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=ti([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var ni=Object.defineProperty,oi=Object.getOwnPropertyDescriptor,ri=(o,e,t,n)=>{for(var r=n>1?void 0:n?oi(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&&ni(e,t,r),r},Oe=(o,e)=>(t,n)=>e(t,n,o);const si="SHEET_WORKSHEET_PROTECTION_PLUGIN",ii="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();[...Pe(),...ft()].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();[...Pe(),...ft()].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();Pe().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":{Pe().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.addPermissionPoint(n)});break}case"delete":{Pe().forEach(t=>{const n=new t(e.unitId,e.subUnitId);this._permissionService.deletePermissionPoint(n.id)});break}case"set":{Pe().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:si,businesses:[wt.UNIVER_SHEET],onLoad:(n,r)=>{this._worksheetProtectionRuleModel.fromObject(r),Object.keys(r).forEach(i=>{Pe().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:ii,businesses:[wt.UNIVER_SHEET],onLoad:(n,r)=>{this._worksheetProtectionPointRuleModel.fromObject(r),Object.keys(r).forEach(i=>{ft().forEach(a=>{const c=new a(n,i);this._permissionService.addPermissionPoint(c)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}};exports.WorksheetPermissionService=ri([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetPermissionService),Oe(0,x.Inject(s.IPermissionService)),Oe(1,x.Inject(s.IUniverInstanceService)),Oe(2,x.Inject(x.Injector)),Oe(3,x.Inject(exports.WorksheetProtectionRuleModel)),Oe(4,x.Inject(exports.WorksheetProtectionPointModel)),Oe(5,x.Inject(s.IResourceManagerService)),Oe(6,x.Inject(exports.SheetInterceptorService))],exports.WorksheetPermissionService);const Sr="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",Cr="worksheet-protection",On=25,ai=80;class ci extends Pt.SheetExtension{constructor(){super();C(this,"uKey",Cr);C(this,"Z_INDEX",On);C(this,"_pattern");C(this,"_img",new Image);this._img.src=Sr}draw(t,n,r,i){const{rowHeightAccumulation:a,columnWidthAccumulation:c,worksheet:u,dataMergeCache:l}=r;if(!u)return!1;t.save(),this._pattern||(this._pattern=t.createPattern(this._img,"repeat"));const{startRow:d,startColumn:m,endRow:h,endColumn:R}=r.rowColumnSegment,g=this.getCellIndex(d,m,a,c,l),S=this.getCellIndex(h,R,a,c,l),{hasWorksheetRule:v=!1,selectionProtection:I=[]}=u.getCell(d,m)||{};if(this._pattern){if(I.length>0){const p=I[0];(p==null?void 0:p[_.View])?this.setZIndex(On):this.setZIndex(ai)}t.fillStyle=this._pattern,v&&t.fillRect(g.startX,g.startY,S.endX-g.startX,S.endY-g.startY),t.restore()}}setZIndex(t){this.Z_INDEX=t}}var ui=Object.defineProperty,li=Object.getOwnPropertyDescriptor,di=(o,e,t,n)=>{for(var r=n>1?void 0:n?li(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&&ui(e,t,r),r},Dn=(o,e)=>(t,n)=>e(t,n,o);exports.WorksheetProtectionRenderService=class extends s.Disposable{constructor(t,n){super();C(this,"_worksheetProtectionRenderExtension",new ci);this._renderManagerService=t,this._univerInstanceService=n,this._initRender()}_initRender(){const t=r=>{const i=r&&this._renderManagerService.getRenderById(r),a=i&&i.mainComponent;a&&(a.getExtensionByKey(Cr)||a.register(this._worksheetProtectionRenderExtension))};this.disposeWithMe(this._renderManagerService.currentRender$.subscribe(r=>{r&&t(r)}));const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);n&&t(n.getUnitId())}};exports.WorksheetProtectionRenderService=di([s.OnLifecycle(s.LifecycleStages.Ready,exports.WorksheetProtectionRenderService),Dn(0,x.Inject(Pt.IRenderManagerService)),Dn(1,x.Inject(s.IUniverInstanceService))],exports.WorksheetProtectionRenderService);const vr={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}},fr={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(vr.id,{rule:n,unitId:n.unitId,subUnitId:n.subUnitId}),!0}};var mi=Object.defineProperty,hi=Object.getOwnPropertyDescriptor,gi=(o,e,t,n)=>{for(var r=n>1?void 0:n?hi(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&&mi(e,t,r),r};exports.RangeProtectionRuleModel=class{constructor(){C(this,"_model",new Map);C(this,"_ruleChange",new he.Subject);C(this,"ruleChange$",this._ruleChange.asObservable());C(this,"_ruleRefresh",new he.Subject);C(this,"ruleRefresh$",this._ruleRefresh.asObservable());C(this,"_rangeRuleInitStateChange",new he.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=gi([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const Ri=(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}}},qe={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}},Si=o=>{const e={...o,ruleIds:o.rules.map(t=>t.id)};return{id:qe.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}},vn={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,h=[{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:h})){const g=[{id:Ke.id,params:{unitId:c,subUnitId:u,rules:h}}],S=[{id:qe.id,params:{unitId:c,subUnitId:u,ruleIds:h.map(v=>v.id)}}];n.pushUndoRedo({unitID:c,redoMutations:g,undoMutations:S})}return!0}},Ir={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(qe.id,c)&&n.pushUndoRedo({unitID:r,redoMutations:[{id:qe.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}},Ci=(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},fn={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:h}=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:h}};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}},pr="maxCellsPerSheet",vi=3e6,Mr="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var fi=Object.defineProperty,Ii=Object.getOwnPropertyDescriptor,pi=(o,e,t,n)=>{for(var r=n>1?void 0:n?Ii(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&&fi(e,t,r),r},An=(o,e)=>(t,n)=>e(t,n,o);let It=class extends s.Disposable{constructor(o,e){var n;super(),this._commandService=o,this._configService=e,[H,Ut,Yt,Tt,Yn,Ot,Dt,sn,ln,Uo,Po,Le,_e,At,Wt,_o,yo,Ve,ye,To,De,Vt,ke,Nt,Fe,xt,Ne,at,fe,it,be,en,Ze,Wo,G,Ko,Yo,qo,xo,$o,Xe,Vo,Lo,tn,He,Ge,yt,Ps,Fo,Te,Xo,st,Y,dn,on,Ye,ze,jo,Ho,Lt,$t,te,er,tt,zo,Qo,Jo,Zo,Cn,Sn,jt,ct,Ie,nr,Ee,an,_t,or,nt,un,pe,mn,ge,Bt,K,Rn,cr,mr,ur,lr,dr,fr,hr,gr,Rr,vr,vn,Ir,fn,Ke,qe,ee].forEach(r=>this.disposeWithMe(this._commandService.registerCommand(r))),((n=this._configService.getConfig(Mr))!=null?n:!1)||[sr].forEach(r=>this.disposeWithMe(this._commandService.registerCommand(r))),this._configService.setConfig(pr,vi)}};It=pi([s.OnLifecycle(s.LifecycleStages.Starting,It),An(0,s.ICommandService),An(1,s.IConfigService)],It);var Mi=Object.defineProperty,wi=Object.getOwnPropertyDescriptor,yi=(o,e,t,n)=>{for(var r=n>1?void 0:n?wi(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&&Mi(e,t,r),r},Wn=(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!==ie.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),h={subUnitId:l,unitId:a,cellValue:m};r.push({id:Y.id,params:h})})}),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),h=ie.handleNumfmtInCell(m,d,r);c.setValue(u,l,h)}),c.clone()}};pt=yi([s.OnLifecycle(s.LifecycleStages.Ready,pt),Wn(0,x.Inject(s.IUniverInstanceService)),Wn(1,s.ICommandService)],pt);var _i=Object.defineProperty,bi=Object.getOwnPropertyDescriptor,Pi=(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},dt=(o,e)=>(t,n)=>e(t,n,o);let Mt=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})})}};Mt=Pi([s.OnLifecycle(s.LifecycleStages.Ready,Mt),dt(0,s.ICommandService),dt(1,ie.IFeatureCalculationManagerService),dt(2,s.IUniverInstanceService),dt(3,x.Inject(ie.FormulaDataModel))],Mt);const W={MoveRangeCommandId:qn,InsertRowCommandId:wo,InsertColCommandId:bo,RemoveColCommandId:Ao,RemoveRowCommandId:Do,DeleteRangeMoveLeftCommandId:Io,DeleteRangeMoveUpCommandId:po,InsertRangeMoveDownCommandId:ps,InsertRangeMoveRightCommandId:Mo,MoveColsCommandId:Oo,MoveRowsCommandId:ko};var L=(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))(L||{});const mt=Number.MAX_SAFE_INTEGER,ve=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 I=Math.max(S.start,v.start),p=Math.min(S.end,v.end);return p<I?null:{start:I,end:p}},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,h=i(o,n),R=h&&a(h)>=a(n);if(o.end<n.start)n.start-=d,n.end-=d;else if(h){const S=a(h);if(R){const v=c(n,o),I=u(v,r);n.start=I.start,n.end=I.end}else h.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 g=i(r,n);return R||(r.start<=n.start?(n.start+=m,n.end+=m):g&&(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)}},In=(o,e)=>{const{fromRange:t,toRange:n}=o.params||{};if(!n||!t)return[];const r=ve(t),i=ve(n),a=ve(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:L.Delete}]:[{type:L.VerticalMove,step:c.step||0,length:c.length||0}]},Ui=(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=ve(t),i=ve(n),a=ve(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:L.Delete}]:[{type:L.HorizontalMove,step:c.step||0,length:c.length||0}]},Ti=(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)},wr=(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:L.Delete}),s.Rectangle.contains(n,e)){r.push({type:L.Delete});const c=s.Rectangle.getRelativeRange(e,n),u=s.Rectangle.getPositionRange(c,t);return[{type:L.Set,range:u}]}return r},Ei=(o,e)=>{var m,h;const t=(m=o.params)==null?void 0:m.toRange,n=(h=o.params)==null?void 0:h.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,g)=>{r.setValue(R,g,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(n,e);a&&s.Range.foreach(a,(R,g)=>{r.getValue(R,g)&&(r.setValue(R,g,void 0),i.setValue(R,g,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,g)=>{var I;const S=R+u,v=g+c;r.setValue(S,v,(I=i.getValue(R,g))!=null?I:0)}),s.queryObjectMatrix(r,R=>R===1)},Ae=(o,e)=>{const t=ve(o),n=ve(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}},Mn=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(t,e);if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.HorizontalMove,step:a,length:c})}return n},wn=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(le(t),le(e));if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.VerticalMove,step:a,length:c})}return n},We=(o,e)=>{const t=ve(o),n=ve(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 Ni(o,e,t){const n=[];if(s.Rectangle.contains(e,t)&&n.push({type:L.Delete}),s.Rectangle.contains(o,t)){n.push({type:L.Delete});const r=s.Rectangle.getRelativeRange(t,o),i=s.Rectangle.getPositionRange(r,e);return[{type:L.Set,range:i}]}return n}const yn=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(le(t),le(e)),{step:i,length:a}=r;return n.push({type:L.VerticalMove,step:i,length:a}),n},_n=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(t,e),{step:i,length:a}=r;return n.push({type:L.HorizontalMove,step:i,length:a}),n},yr=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(le(t),le(e)),{step:i,length:a}=r;return n.push({type:L.VerticalMove,step:i,length:a}),n},ki=(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)},_r=(o,e)=>{var c;const t=(c=o.params)==null?void 0:c.range;if(!t)return[];const n=[],r=We(t,e),{step:i,length:a}=r;return n.push({type:L.HorizontalMove,step:i,length:a}),n},Oi=(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)},br=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(t,e);if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.HorizontalMove,step:a,length:c})}return n},Di=(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,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},Pr=(o,e)=>{var i;const t=(i=o.params)==null?void 0:i.range;if(!t)return[];const n=[],r=Ae(le(t),le(e));if(!r)n.push({type:L.Delete});else{const{step:a,length:c}=r;n.push({type:L.VerticalMove,step:a,length:c})}return n},Ai=(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,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},xe=(o,e)=>{let t={...e};return o.forEach(n=>{switch(n.type){case L.Delete:{t=null;break}case L.HorizontalMove:{if(!t)return;t.startColumn+=n.step,t.endColumn+=n.step+(n.length||0);break}case L.VerticalMove:{if(!t)return;t.startRow+=n.step,t.endRow+=n.step+(n.length||0);break}case L.Set:{t=n.range;break}}}),t&&(t.endColumn<t.startColumn||t.endRow<t.startRow)?null:t},Wi=(o,e)=>{let t=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:{t=br(e,o);break}case W.DeleteRangeMoveUpCommandId:{t=Pr(e,o);break}case W.InsertColCommandId:{t=_n(e,o);break}case W.InsertRangeMoveDownCommandId:{t=yr(e,o);break}case W.InsertRangeMoveRightCommandId:{t=_r(e,o);break}case W.InsertRowCommandId:{t=yn(e,o);break}case W.MoveColsCommandId:{t=pn(e,o);break}case W.MoveRangeCommandId:{t=wr(e,o);break}case W.MoveRowsCommandId:{t=In(e,o);break}case W.RemoveColCommandId:{t=Mn(e,o);break}case W.RemoveRowCommandId:{t=wn(e,o);break}}return xe(t,o)},xi=(o,e)=>{let t=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:return Di(e,o);case W.DeleteRangeMoveUpCommandId:return Ai(e,o);case W.InsertRangeMoveDownCommandId:return ki(e,o);case W.InsertRangeMoveRightCommandId:return Oi(e,o);case W.InsertColCommandId:{t=_n(e,o);break}case W.InsertRowCommandId:{t=yn(e,o);break}case W.MoveColsCommandId:return Ti(e,o);case W.MoveRangeCommandId:return Ei(e,o);case W.MoveRowsCommandId:return Ui(e,o);case W.RemoveColCommandId:{t=Mn(e,o);break}case W.RemoveRowCommandId:{t=wn(e,o);break}}return xe(t,o)};function Vi(o,e){const{id:t,params:n}=e;let r={length:0,step:0,type:L.Unknown};switch(t){case Ze.id:r.type=L.Delete;break;case Ne.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=L.VerticalMove;break;case ke.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});break;case fe.id:r=Ae(n.range,o),r?r.type=L.HorizontalMove:r={step:0,length:0,type:L.Delete};break;case be.id:r=Ae(le(n.range),le(o)),r?r.type=L.VerticalMove:r={step:0,length:0,type:L.Delete};break;case ye.id:r=We(le(n.range),le(o)),r.type=L.VerticalMove;break;case _e.id:r=We(n.range,o),r.type=L.HorizontalMove;break;case Fe.id:r=Ni(new s.ObjectMatrix(n.from).getRange(),new s.ObjectMatrix(n.to).getRange(),o);break}return r?Array.isArray(r)?xe(r,o):xe([r],o):o}var Li=Object.defineProperty,$i=Object.getOwnPropertyDescriptor,ji=(o,e,t,n)=>{for(var r=n>1?void 0:n?$i(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&&Li(e,t,r),r},ht=(o,e)=>(t,n)=>e(t,n,o);const Bi=s.createInterceptorKey("MERGE_REDO"),Fi=s.createInterceptorKey("MERGE_UNDO");class Hi 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;const t=Vi(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:Bi,MERGE_UNDO:Fi}));C(this,"_watchRanges",new Set);C(this,"_refRangeManagerMap",new Map);C(this,"_serializer",Gi());C(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:t=>{const n=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=xn(this._univerInstanceService),i=Vn(this._univerInstanceService),u=((()=>{switch(t.id){case W.MoveColsCommandId:{const R=t.params,g=Math.min(R.fromRange.startColumn,R.toRange.startColumn);return this._checkRange([{...R.fromRange,startColumn:g,endColumn:n.getColumnCount()-1}],r,i)}case W.MoveRowsCommandId:{const R=t.params,g=Math.min(R.fromRange.startRow,R.toRange.startRow);return this._checkRange([{...R.fromRange,startRow:g,endRow:n.getRowCount()-1}],r,i)}case W.MoveRangeCommandId:{const R=t;return this._checkRange([R.params.fromRange,R.params.toRange],r,i)}case W.InsertRowCommandId:{const S={startRow:t.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.InsertColCommandId:{const g=t.params.range.startColumn,S={startRow:0,endRow:n.getRowCount()-1,startColumn:g,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.RemoveRowCommandId:{const S={startRow:t.params.range.startRow,endRow:n.getRowCount()-1,startColumn:0,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.RemoveColCommandId:{const g=t.params.range.startColumn,S={startRow:0,endRow:n.getRowCount()-1,startColumn:g,endColumn:n.getColumnCount()-1};return this._checkRange([S],r,i)}case W.DeleteRangeMoveUpCommandId:case W.InsertRangeMoveDownCommandId:{const g=t.params.range||Ln(this._selectionManagerService)[0],S={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:n.getRowCount()-1};return this._checkRange([S],r,i)}case W.DeleteRangeMoveLeftCommandId:case W.InsertRangeMoveRightCommandId:{const g=t.params.range||Ln(this._selectionManagerService)[0],S={startRow:g.startRow,startColumn:g.startColumn,endColumn:n.getColumnCount()-1,endRow:g.endRow};return this._checkRange([S],r,i)}}})()||[]).reduce((R,g)=>{const S=g(t);return R.push(S),R},[]).reduce((R,g)=>{var S,v;return R.redos.push(...g.redos),R.undos.push(...g.undos),R.preRedos.push(...(S=g.preRedos)!=null?S:[]),R.preUndos.push(...(v=g.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)||[],h=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:h,preRedos:l,preUndos:m}}})});C(this,"_checkRange",(t,n,r)=>{const i=$n(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),h={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn};t.some(R=>s.Rectangle.intersects(R,h))&&d&&d.forEach(R=>{c.add(R)})}),[...c]}return[]});C(this,"registerRefRange",(t,n,r,i)=>{const a=r||xn(this._univerInstanceService),c=i||Vn(this._univerInstanceService),u=$n(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 h=d.get(l);h&&(h.delete(n),h.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 h of this._watchRanges)h.onMutation(m)}));const u=new Hi(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=ji([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),ht(0,s.ICommandService),ht(1,x.Inject(exports.SheetInterceptorService)),ht(2,x.Inject(s.IUniverInstanceService)),ht(3,x.Inject(exports.SelectionManagerService))],exports.RefRangeService);function xn(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Vn(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function Ln(o){return o.getSelectionRanges()||[]}function $n(o,e){return`${o}_${e}`}function Gi(){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 zi=Object.defineProperty,Yi=Object.getOwnPropertyDescriptor,qi=(o,e,t,n)=>{for(var r=n>1?void 0:n?Yi(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},Be=(o,e)=>(t,n)=>e(t,n,o);const Ki=[_e.id,ye.id,fe.id,be.id],Zi=[Ne.id,ke.id];function Ur(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 Ut.id:case Tt.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(h=>s.Rectangle.intersects(h,m)))){const m={unitId:i,subUnitId:c,ranges:l},h=ue(t._injector,m),R=[{id:G.id,params:m}],g=[{id:H.id,params:h}];return{redos:R,undos:g}}}}return{redos:[],undos:[]}}})}refRangeHandle(t,n,r){switch(t.id){case W.MoveColsCommandId:{const i=t.params;return this._handleMoveColsCommand(i,n,r)}case W.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 Le.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 Nt.id:{const i=t.params;return this._handleMoveRangeCommand(i,n,r)}case Wt.id:{const i=t.params;return this._handleInsertRangeMoveRightCommand(i,n,r)}case At.id:{const i=t.params;return this._handleInsertRangeMoveDownCommand(i,n,r)}case Dt.id:{const i=t.params;return this._handleDeleteRangeMoveUpCommand(i,n,r)}case Ot.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===jt.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:h}=d;if(c.forEach(S=>{if(m<=S.startRow&&h>=S.endRow){u.ranges.push(S);const v=In({id:W.MoveRowsCommandId,params:t},S),I=xe(v,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),g=Ce(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:g},{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:h}=d;if(c.forEach(S=>{if(m<=S.startColumn&&h>=S.endColumn){u.ranges.push(S);const v=pn({id:W.MoveColsCommandId,params:t},S),I=xe(v,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),g=Ce(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:g},{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(g=>s.Rectangle.intersects(g,t.fromRange)),l=c.filter(g=>s.Rectangle.intersects(g,t.toRange)),d=u.map(g=>s.Rectangle.getRelativeRange(g,t.fromRange)).map(g=>s.Rectangle.getPositionRange(g,t.toRange)),m=Ur(d).filter(g=>!c.some(S=>s.Rectangle.equals(g,S))),h=[{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:h,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((p,f)=>(u>f.startRow&&u<=f.endRow&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((p,f)=>{if(u>f.startRow&&u<=f.endRow){const w=l-u+1;f.endRow+=w,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:v,undos:I}}_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((p,f)=>(u>f.startColumn&&u<=f.endColumn&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>{if(u>f.startColumn&&u<=f.endColumn){const w=l-u+1;f.endColumn+=w,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:v,undos:I}}_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},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h}],I=[{id:H.id,params:g}],p=[{id:G.id,params:S}],f=[{id:H.id,params:R}];return{preUndos:p,undos:f,preRedos:v,redos:I}}_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},[]),h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h}],I=[{id:H.id,params:g}],p=[{id:G.id,params:S}],f=[{id:H.id,params:R}];return{preUndos:p,undos:f,preRedos:v,redos:I}}_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:I,endRow:p,startColumn:f,endColumn:w}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},v)&&(d.push(v),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},v))){const U=w-f+1;m.push({startRow:v.startRow,startColumn:v.startColumn+U,endRow:v.endRow,endColumn:v.endColumn+U})}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g);return{redos:[{id:G.id,params:h},{id:H.id,params:g}],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(p=>{const{startRow:f,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:w,endRow:u,endColumn:M},p))){const E=y-f+1;m.push({startRow:p.startRow+E,startColumn:p.startColumn,endRow:p.endRow+E,endColumn:p.endColumn})}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:v,undos:I}}_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(p=>{const{startRow:f,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:f,startColumn:w,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:w,endRow:u,endColumn:M},p))){const E=y-f+1,k=s.Rectangle.moveVertical(p,-E);m.push(k)}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g),v=[{id:G.id,params:h},{id:H.id,params:g}],I=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:v,undos:I}}_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:I,endRow:p,startColumn:f,endColumn:w}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},v)&&(d.push(v),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},v))){const U=w-f+1;m.push({startRow:v.startRow,startColumn:v.startColumn-U,endRow:v.endRow,endColumn:v.endColumn-U})}});const h={unitId:n,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:n,subUnitId:r,ranges:m},S=Ce(this._injector,g);return{redos:[{id:G.id,params:h},{id:H.id,params:g}],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(Zi.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,h=[];m.forEach(v=>{let{startRow:I,endRow:p,startColumn:f,endColumn:w,rangeType:M}=v;s.Rectangle.intersects(v,i)||(c?l<I&&d>p?(I-=u,p-=u):l>p&&d<=I&&(I+=u,p+=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||h.push({startRow:I,endRow:p,startColumn:f,endColumn:w,rangeType:M})}),r.getConfig().mergeData=h,this.disposableCollection.dispose();const{unitId:R,subUnitId:g}=t.params,S=v=>this.refRangeHandle(v,R,g);h.forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,S,R,g))})}if(Ki.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,h=m-d+1,R=[];i.forEach(I=>{let{startRow:p,endRow:f,startColumn:w,endColumn:M,rangeType:y}=I;l?u?d<=p&&(p+=h,f+=h):d<=w&&(w+=h,M+=h):u?m<p&&(p-=h,f-=h):m<w&&(w-=h,M-=h),I.startRow===I.endRow&&I.startColumn===I.endColumn||R.push({startRow:p,endRow:f,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=R,this.disposableCollection.dispose();const{unitId:g,subUnitId:S}=t.params,v=I=>this.refRangeHandle(I,g,S);R.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,v,g,S))})}}))}};exports.MergeCellController=qi([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Be(0,x.Inject(s.ICommandService)),Be(1,x.Inject(exports.RefRangeService)),Be(2,x.Inject(s.IUniverInstanceService)),Be(3,x.Inject(x.Injector)),Be(4,x.Inject(exports.SheetInterceptorService)),Be(5,x.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 Xi=Object.defineProperty,Ji=Object.getOwnPropertyDescriptor,Qi=(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&&Xi(e,t,r),r},Ht=(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 g=a.setValue(R);d.s=g})})}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 h=i.getCellRaw(d,m);if(h){const g={...h.s&&a.get(h.s)||{},n:{pattern:u.pattern}},S=a.setValue(g);h.s=S}else{const R={n:{pattern:u.pattern}},g=a.setValue(R);g&&c.setValue(d,m,{s:g})}})})})}};exports.NumfmtService=Qi([Ht(0,s.IResourceManagerService),Ht(1,s.IUniverInstanceService),Ht(2,s.ILogService)],exports.NumfmtService);const zt=()=>[mo,ho,lo,Ro,So,go,Co],ea=[_.Edit,_.View,_.Comment,_.Print,_.Copy,_.ManageCollaborator];var ta=Object.defineProperty,na=Object.getOwnPropertyDescriptor,oa=(o,e,t,n)=>{for(var r=n>1?void 0:n?na(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&&ta(e,t,r),r},jn=(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();zt().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();zt().forEach(r=>{const i=new r(n);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=oa([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorkbookPermissionService),jn(0,x.Inject(s.IPermissionService)),jn(1,x.Inject(s.IUniverInstanceService))],exports.WorkbookPermissionService);var ra=Object.defineProperty,sa=Object.getOwnPropertyDescriptor,ia=(o,e,t,n)=>{for(var r=n>1?void 0:n?sa(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&&ra(e,t,r),r},gt=(o,e)=>(t,n)=>e(t,n,o);const aa="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:aa,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=ia([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),gt(0,s.ICommandService),gt(1,s.IUniverInstanceService),gt(2,ie.IDefinedNamesService),gt(3,s.IResourceManagerService)],exports.DefinedNameDataController);const Ue=()=>[fo,vo],ca=(o="unitId",e="subUnitId",t="permissionId")=>Ue().reduce((n,r)=>{const i=new r(o,e,t);return n[i.subType]=i.value,n},{});var ua=Object.defineProperty,la=Object.getOwnPropertyDescriptor,da=(o,e,t,n)=>{for(var r=n>1?void 0:n?la(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&&ua(e,t,r),r},Bn=(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=>Ue().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=Ue().reduce((h,R)=>{var v;const g=new R(e,t,d.permissionId),S=this._permissionService.getPermissionPoint(g.id);return h[g.subType]=(v=S==null?void 0:S.value)!=null?v:g.value,h},{});l.push({...m,ruleId:d.id,ranges:d.ranges})}return this._cache.set(i,l),l}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=da([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),Bn(0,x.Inject(exports.RangeProtectionRuleModel)),Bn(1,x.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var ma=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=(o,e,t,n)=>{for(var r=n>1?void 0:n?ha(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&&ma(e,t,r),r},Qe=(o,e)=>(t,n)=>e(t,n,o);const Ra=[_e.id,ye.id,fe.id,be.id],Sa=[Ne.id,ke.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===jt.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===fn.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 xt.id:return this._getRefRangeMutationsByMoveRows(t.params,n,r);case Vt.id:return this._getRefRangeMutationsByMoveCols(t.params,n,r);case Ve.id:return this._getRefRangeMutationsByInsertRows(t.params,n,r);case Le.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((h,R)=>{if(s.Rectangle.intersects(R,a)){const g=s.Tools.deepClone(R),{startColumn:S,endColumn:v}=a;if(S<=g.startColumn&&v>=g.endColumn)return h;S>=g.startColumn&&v<=g.endColumn?g.endColumn-=v-S+1:S<g.startColumn?(g.startColumn=S,g.endColumn-=v-S+1):v>g.endColumn&&(g.endColumn=S-1),this._checkIsRightRange(g)&&h.push(g)}return h},[]);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((h,R)=>{if(s.Rectangle.intersects(R,a)){const g=s.Tools.deepClone(R),{startRow:S,endRow:v}=a;if(S<=g.startRow&&v>=g.endRow)return h;S>=g.startRow&&v<=g.endRow?g.endRow-=v-S+1:S<g.startRow?(g.startRow=S,g.endRow-=v-S+1):v>g.endRow&&(g.endRow=S-1),this._checkIsRightRange(g)&&h.push(g)}return h},[]);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 h=!1;m.ranges.forEach(R=>{i>R.startColumn&&i<=R.endColumn&&(R.endColumn+=a,h=!0)}),h&&(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 h=!1;m.ranges.forEach(R=>{i>R.startRow&&i<=R.endRow&&(R.endRow+=a,h=!0)}),h&&(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 h=s.Tools.deepClone(m),g=t.fromRange.startRow;let S=!1;h.ranges.forEach(v=>{a>v.startRow&&a<=v.endRow&&(g<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:h,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 h=s.Tools.deepClone(m),g=t.fromRange.startColumn;let S=!1;h.ranges.forEach(v=>{a>v.startColumn&&a<=v.endColumn&&(g<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:h,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(Sa.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(p=>{let{startRow:f,endRow:w,startColumn:M,endColumn:y}=p;s.Rectangle.intersects(p,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})&&(p.startColumn=M,p.endColumn=y,p.startRow=f,p.endRow=w)})}),this.disposableCollection.dispose();const{unitId:h,subUnitId:R}=t.params,g=v=>this.refRangeHandle(v,h,R);this._selectionProtectionRuleModel.getSubunitRuleList(h,R).reduce((v,I)=>[...v,...I.ranges],[]).forEach(v=>{this.disposableCollection.add(this._refRangeService.registerRefRange(v,g,h,R))}),this._selectionProtectionRenderModel.clear()}if(Ra.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(I=>{I.ranges.forEach(f=>{let{startRow:w,endRow:M,startColumn:y,endColumn:U}=f;u?c?l<=w&&(w+=m,M+=m):l<=y&&(y+=m,U+=m):c?d<w&&(w-=m,M-=m):d<y&&(y-=m,U-=m),this._checkIsRightRange({startRow:w,endRow:M,startColumn:y,endColumn:U})&&(f.startColumn=y,f.endColumn=U,f.startRow=w,f.endRow=M)})}),this.disposableCollection.dispose();const{unitId:R,subUnitId:g}=t.params,S=I=>this.refRangeHandle(I,R,g);this._selectionProtectionRuleModel.getSubunitRuleList(R,g).reduce((I,p)=>[...I,...p.ranges],[]).forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,S,R,g))}),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,x.Inject(exports.RangeProtectionRuleModel)),Qe(1,x.Inject(s.IUniverInstanceService)),Qe(2,s.ICommandService),Qe(3,x.Inject(exports.RefRangeService)),Qe(4,x.Inject(exports.RangeProtectionRenderModel))],exports.RangeProtectionRefRangeService);var Ca=Object.defineProperty,va=Object.getOwnPropertyDescriptor,fa=(o,e,t,n)=>{for(var r=n>1?void 0:n?va(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&&Ca(e,t,r),r},Gt=(o,e)=>(t,n)=>e(t,n,o);const Ia="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":{Ue().forEach(t=>{const n=new t(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(n)});break}case"delete":{Ue().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&&Ue().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:Ia,businesses:[wt.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=>{Ue().forEach(d=>{const m=new d(n,c,l.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=fa([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionService),Gt(0,x.Inject(exports.RangeProtectionRuleModel)),Gt(1,x.Inject(s.IPermissionService)),Gt(2,x.Inject(s.IResourceManagerService))],exports.RangeProtectionService);var pa=Object.defineProperty,Ma=Object.getOwnPropertyDescriptor,wa=(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&&pa(e,t,r),r},Rt=(o,e)=>(t,n)=>e(t,n,o);const ya="SHEET_PLUGIN";var St;exports.UniverSheetsPlugin=(St=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(Mr,!0)}_initDependencies(e){var n,r;const t=[[$e],[exports.SelectionManagerService],[exports.RefRangeService],[exports.WorkbookPermissionService],[je,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[It],[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],[Mt]),s.mergeOverrideWithDependencies(t,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}},C(St,"pluginName",ya),C(St,"type",s.UniverInstanceType.UNIVER_SHEET),St);exports.UniverSheetsPlugin=wa([Rt(1,s.ICommandService),Rt(2,s.IConfigService),Rt(3,x.Inject(s.LocaleService)),Rt(4,x.Inject(x.Injector))],exports.UniverSheetsPlugin);const _a=[pe.id,ge.id,un.id,Ie.id,ct.id,Ne.id,ke.id,He.id,Ge.id,Ye.id,ze.id,_e.id,ye.id,fe.id,be.id],ba=[Y.id,Fe.id,G.id,H.id],Pa=1.5,Ua="rgba(255, 255, 255, 0.01)";function Ta(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 Ea(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=Tr(t)),r}function Tr(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 Na(o,e,t){const n=Pt.getCellInfoInMergeData(o,e,t),r=s.makeCellRangeToRangeData(n);if(r)return{range:r,primary:n,style:null}}const ka=(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:h}=d;let{startRow:R,startColumn:g,endRow:S,endColumn:v}=a[a.length-1];if(i===s.Dimension.COLUMNS){const w=t.find(M=>M.startColumn===m&&M.endColumn===m&&h===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===h&&M.endRow===h&&m===M.startColumn);w&&(S=w.endRow,g=w.startColumn,v=w.endColumn)}const I={startRow:R,startColumn:g,endRow:S,endColumn:v,actualRow:h,actualColumn:m,isMerged:!0,isMergedMainCell:R===h&&g===m},p=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?I:null})),f={unitId:c,subUnitId:u,pluginName:X,selections:p};return{id:K.id,params:f}}return null}return null},Oa=(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},Er="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",Nr="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",Da=25,Aa=80;class kr extends Pt.SheetExtension{constructor(){super();C(this,"_pattern",null);C(this,"_img",new Image);C(this,"renderCache",new Set);this._img.src=Sr}clearCache(){this.renderCache.clear()}draw(t,n,r,i){const{rowHeightAccumulation:a,columnWidthAccumulation:c,worksheet:u,dataMergeCache:l}=r;u&&(t.save(),this._pattern||(this._pattern=t.createPattern(this._img,"repeat")),this.renderCache.clear(),s.Range.foreach(r.rowColumnSegment,(d,m)=>{if(!u.getColVisible(m)||!u.getRowVisible(d))return;const{selectionProtection:h=[]}=u.getCell(d,m)||{};this._pattern&&(t.fillStyle=this._pattern,h.forEach(R=>{if(R.ruleId&&this.shouldRender(R)){if(this.renderCache.has(R.ruleId))return;this.renderCache.add(R.ruleId),R.ranges.forEach(g=>{const S=this.getCellIndex(g.startRow,g.startColumn,a,c,l),v=this.getCellIndex(g.endRow,g.endColumn,a,c,l);t.fillRect(S.startX,S.startY,v.endX-S.startX,v.endY-S.startY)})}}))}),t.restore())}}class Wa extends kr{constructor(){super();C(this,"uKey",Er);C(this,"Z_INDEX",Da)}shouldRender(t){return(t==null?void 0:t[_.View])!==!1}}class xa extends kr{constructor(){super();C(this,"uKey",Nr);C(this,"Z_INDEX",Aa)}shouldRender(t){return(t==null?void 0:t[_.View])===!1}}exports.AddMergeRedoSelectionsOperationFactory=ka;exports.AddMergeUndoMutationFactory=Ce;exports.AddMergeUndoSelectionsOperationFactory=Oa;exports.AddRangeProtectionCommand=vn;exports.AddRangeProtectionMutation=Ke;exports.AddWorksheetMergeMutation=H;exports.AddWorksheetProtectionMutation=hr;exports.BorderStyleManagerService=$e;exports.COMMAND_LISTENER_SKELETON_CHANGE=_a;exports.COMMAND_LISTENER_VALUE_CHANGE=ba;exports.ClearSelectionAllCommand=Ut;exports.ClearSelectionContentCommand=Yt;exports.ClearSelectionFormatCommand=Tt;exports.CopySheetCommand=Yn;exports.DeleteRangeMoveLeftCommand=Ot;exports.DeleteRangeMoveUpCommand=Dt;exports.DeleteRangeProtectionCommand=Ir;exports.DeleteRangeProtectionMutation=qe;exports.DeleteWorksheetProtectionMutation=Rr;exports.DeltaColumnWidthCommand=sn;exports.DeltaRowHeightCommand=ln;exports.EffectRefRangId=W;exports.EmptyMutation=cr;exports.FactoryAddRangeProtectionMutation=Si;exports.FactoryDeleteRangeProtectionMutation=Ri;exports.FactorySetRangeProtectionMutation=Ci;exports.INTERCEPTOR_POINT=Ct;exports.INumfmtService=je;exports.InsertColAfterCommand=Uo;exports.InsertColBeforeCommand=Po;exports.InsertColCommand=Le;exports.InsertColMutation=_e;exports.InsertColMutationUndoFactory=Qt;exports.InsertDefinedNameCommand=ur;exports.InsertRangeMoveDownCommand=At;exports.InsertRangeMoveRightCommand=Wt;exports.InsertRowAfterCommand=_o;exports.InsertRowBeforeCommand=yo;exports.InsertRowCommand=Ve;exports.InsertRowMutation=ye;exports.InsertRowMutationUndoFactory=Jt;exports.InsertSheetCommand=To;exports.InsertSheetMutation=De;exports.InsertSheetUndoMutationFactory=qt;exports.MAX_CELL_PER_SHEET_KEY=pr;exports.MoveColsCommand=Vt;exports.MoveColsMutation=ke;exports.MoveColsMutationUndoFactory=No;exports.MoveRangeCommand=Nt;exports.MoveRangeMutation=Fe;exports.MoveRowsCommand=xt;exports.MoveRowsMutation=Ne;exports.MoveRowsMutationUndoFactory=Eo;exports.NORMAL_SELECTION_PLUGIN_NAME=X;exports.OperatorType=L;exports.RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY=Nr;exports.RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY=Er;exports.RangeMergeUtil=Hs;exports.RangeProtectionCanNotViewRenderExtension=xa;exports.RangeProtectionCanViewRenderExtension=Wa;exports.RangeProtectionPermissionEditPoint=vo;exports.RangeProtectionPermissionViewPoint=fo;exports.RemoveColCommand=at;exports.RemoveColMutation=fe;exports.RemoveDefinedNameCommand=lr;exports.RemoveMergeUndoMutationFactory=ue;exports.RemoveNumfmtMutation=Rn;exports.RemoveRowCommand=it;exports.RemoveRowMutation=be;exports.RemoveSheetCommand=en;exports.RemoveSheetMutation=Ze;exports.RemoveSheetUndoMutationFactory=zn;exports.RemoveWorksheetMergeCommand=Wo;exports.RemoveWorksheetMergeMutation=G;exports.ResetBackgroundColorCommand=Ko;exports.ResetTextColorCommand=Yo;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Ua;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Pa;exports.ScrollToCellOperation=mr;exports.SelectionMoveType=Fn;exports.SetBackgroundColorCommand=qo;exports.SetBoldCommand=Ns;exports.SetBorderBasicCommand=xo;exports.SetBorderColorCommand=$o;exports.SetBorderCommand=Xe;exports.SetBorderPositionCommand=Vo;exports.SetBorderStyleCommand=Lo;exports.SetColHiddenCommand=tn;exports.SetColHiddenMutation=He;exports.SetColVisibleMutation=Ge;exports.SetColWidthCommand=yt;exports.SetDefinedNameCommand=dr;exports.SetFontFamilyCommand=As;exports.SetFontSizeCommand=Ws;exports.SetFrozenCommand=Fo;exports.SetFrozenMutation=Te;exports.SetFrozenMutationFactory=nn;exports.SetHorizontalTextAlignCommand=Xo;exports.SetItalicCommand=ks;exports.SetNumfmtMutation=Bt;exports.SetRangeProtectionCommand=fn;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=st;exports.SetRangeValuesMutation=Y;exports.SetRangeValuesUndoMutationFactory=Me;exports.SetRowHeightCommand=dn;exports.SetRowHiddenCommand=on;exports.SetRowHiddenMutation=Ye;exports.SetRowVisibleMutation=ze;exports.SetSelectedColsVisibleCommand=jo;exports.SetSelectedRowsVisibleCommand=Ho;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=Lt;exports.SetSpecificRowsVisibleCommand=$t;exports.SetStrikeThroughCommand=Ds;exports.SetStyleCommand=te;exports.SetTabColorCommand=er;exports.SetTabColorMutation=tt;exports.SetTextColorCommand=zo;exports.SetTextRotationCommand=Qo;exports.SetTextWrapCommand=Jo;exports.SetUnderlineCommand=Os;exports.SetVerticalTextAlignCommand=Zo;exports.SetWorkbookNameCommand=Cn;exports.SetWorkbookNameMutation=Sn;exports.SetWorksheetActivateCommand=jt;exports.SetWorksheetActiveOperation=ct;exports.SetWorksheetColWidthMutation=Ie;exports.SetWorksheetColWidthMutationFactory=rn;exports.SetWorksheetHideCommand=nr;exports.SetWorksheetHideMutation=Ee;exports.SetWorksheetNameCommand=an;exports.SetWorksheetNameMutation=_t;exports.SetWorksheetOrderCommand=or;exports.SetWorksheetOrderMutation=nt;exports.SetWorksheetPermissionPointsCommand=fr;exports.SetWorksheetProtectionMutation=gr;exports.SetWorksheetRowAutoHeightMutation=un;exports.SetWorksheetRowAutoHeightMutationFactory=Bs;exports.SetWorksheetRowHeightMutation=pe;exports.SetWorksheetRowIsAutoHeightCommand=mn;exports.SetWorksheetRowIsAutoHeightMutation=ge;exports.SetWorksheetShowCommand=sr;exports.WorkbookCommentPermission=lo;exports.WorkbookCopyPermission=So;exports.WorkbookCreateSheetPermission=hs;exports.WorkbookDeleteSheetPermission=ls;exports.WorkbookDuplicatePermission=cs;exports.WorkbookEditablePermission=mo;exports.WorkbookExportPermission=go;exports.WorkbookHideSheetPermission=ds;exports.WorkbookHistoryPermission=gs;exports.WorkbookManageCollaboratorPermission=Co;exports.WorkbookMoveSheetPermission=us;exports.WorkbookPrintPermission=ho;exports.WorkbookRenameSheetPermission=ms;exports.WorkbookSharePermission=Rs;exports.WorkbookViewPermission=Ro;exports.WorksheetCopyPermission=Kn;exports.WorksheetDeleteColumnPermission=so;exports.WorksheetDeleteRowPermission=ro;exports.WorksheetEditExtraObjectPermission=uo;exports.WorksheetEditPermission=Kt;exports.WorksheetFilterPermission=ao;exports.WorksheetInsertColumnPermission=no;exports.WorksheetInsertHyperlinkPermission=oo;exports.WorksheetInsertRowPermission=to;exports.WorksheetManageCollaboratorPermission=as;exports.WorksheetPivotTablePermission=co;exports.WorksheetSelectProtectedCellsPermission=ss;exports.WorksheetSelectUnProtectedCellsPermission=is;exports.WorksheetSetCellStylePermission=Zn;exports.WorksheetSetCellValuePermission=Xn;exports.WorksheetSetColumnStylePermission=eo;exports.WorksheetSetRowStylePermission=Qn;exports.WorksheetSortPermission=io;exports.WorksheetViewPermission=Jn;exports.alignToMergedCellsBorders=rt;exports.convertPrimaryWithCoordToPrimary=Tr;exports.convertSelectionDataToRange=Ea;exports.createTopMatrixFromMatrix=ar;exports.createTopMatrixFromRanges=ir;exports.defaultWorkbookPermissionPoints=ea;exports.defaultWorksheetPermissionPoint=Js;exports.factoryRemoveNumfmtUndoMutation=qs;exports.factorySetNumfmtUndoMutation=Ys;exports.findAllRectangle=hn;exports.followSelectionOperation=we;exports.getAddMergeMutationRangeByType=Ur;exports.getAllRangePermissionPoint=Ue;exports.getAllWorkbookPermissionPoint=zt;exports.getAllWorksheetPermissionPoint=Pe;exports.getAllWorksheetPermissionPointByPointPanel=ft;exports.getCellAtRowCol=ts;exports.getDefaultRangePermission=ca;exports.getInsertRangeMutations=Zt;exports.getMoveRangeUndoRedoMutations=kt;exports.getNormalSelectionStyle=Ta;exports.getPrimaryForRange=ae;exports.getRemoveRangeMutations=Xt;exports.getSheetCommandTarget=B;exports.getSheetCommandTargetWorkbook=Gn;exports.getSheetMutationTarget=Et;exports.handleBaseInsertRange=We;exports.handleBaseMoveRowsCols=ot;exports.handleBaseRemoveRange=Ae;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=xi;exports.handleDefaultRangeChangeWithEffectRefCommands=Wi;exports.handleDeleteRangeMoveLeft=br;exports.handleDeleteRangeMoveUp=Pr;exports.handleDeleteRangeMutation=Cs;exports.handleIRemoveCol=Mn;exports.handleIRemoveRow=wn;exports.handleInsertCol=_n;exports.handleInsertRangeMoveDown=yr;exports.handleInsertRangeMoveRight=_r;exports.handleInsertRangeMutation=Ss;exports.handleInsertRow=yn;exports.handleMoveCols=pn;exports.handleMoveRange=wr;exports.handleMoveRows=In;exports.isSingleCellSelection=os;exports.rangeMerge=gn;exports.rotateRange=le;exports.runRefRangeMutations=xe;exports.setEndForRange=ns;exports.transformCellDataToSelectionData=Na;exports.transformCellsToRange=bt;
|
|
1
|
+
"use strict";var Or=Object.defineProperty;var Dr=(o,e,n)=>e in o?Or(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n;var v=(o,e,n)=>(Dr(o,typeof e!="symbol"?e+"":e,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),V=require("@wendellhu/redi"),se=require("@univerjs/engine-formula"),Ar=require("@univerjs/rpc"),he=require("rxjs"),et=require("rxjs/operators"),xr=require("@univerjs/engine-render");var Wr=Object.defineProperty,Lr=Object.getOwnPropertyDescriptor,Vr=(o,e,n,t)=>{for(var r=t>1?void 0:t?Lr(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Wr(e,n,r),r},$r=(o,e)=>(n,t)=>e(n,t,o);const X="normalSelectionPluginName";var Vn=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))(Vn||{});exports.SelectionManagerService=class{constructor(e){v(this,"_selectionInfo",new Map);v(this,"_currentSelection",null);v(this,"_selectionMoveStart$",new he.Subject);v(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());v(this,"_selectionMoving$",new he.Subject);v(this,"selectionMoving$",this._selectionMoving$.asObservable());v(this,"_selectionMoveEnd$",new he.BehaviorSubject(null));v(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());v(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 n,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var t,r;if(this._currentSelection==null||this._currentSelection.pluginName===e)return;const n=this.getSelectionDatasByParam(this._currentSelection);this._currentSelection={pluginName:e,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(r=this._currentSelection)==null?void 0:r.sheetId},n!=null&&this.add([])}reset(){var e,n;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(e=this._currentSelection)==null?void 0:e.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.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(n=>n.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,n=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),n===0?this._refreshStart(this._currentSelection):n===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:n},t)=>e.some(({range:r},i)=>t===i?!1:n.startRow<=r.endRow&&n.endRow>=r.startRow&&n.startColumn<=r.endColumn&&n.endColumn>=r.startColumn))}_getSelectionDatas(e){var i,a;if(e==null)return;const{pluginName:n,unitId:t,sheetId:r}=e;return(a=(i=this._selectionInfo.get(n))==null?void 0:i.get(t))==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 n=this._getSelectionDatas(e);return n==null?void 0:n[0]}_getLastByParam(e){const n=this._getSelectionDatas(e);return n==null?void 0:n[n.length-1]}_addByParam(e,n=!0){const{pluginName:t,unitId:r,sheetId:i,selectionDatas:a}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const c=this._selectionInfo.get(t);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)}n&&this._refresh({pluginName:t,unitId:r,sheetId:i})}_replaceByParam(e){const{pluginName:n,unitId:t,sheetId:r,selectionDatas:i}=e;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const a=this._selectionInfo.get(n);a.has(t)||a.set(t,new Map);const c=a.get(t);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 n=this._getSelectionDatas(e);n==null||n.splice(0),this._refresh(e)}_removeByParam(e,n){const t=this._getSelectionDatas(n);t==null||t.splice(e,1),this._refresh(n)}};exports.SelectionManagerService=Vr([$r(0,V.Inject(s.ThemeService))],exports.SelectionManagerService);const Br=s.createInterceptorKey("CELL_CONTENT"),jr=s.createInterceptorKey("ROW_FILTERED"),St={CELL_CONTENT:Br,ROW_FILTERED:jr};var Fr=Object.defineProperty,Hr=Object.getOwnPropertyDescriptor,Gr=(o,e,n,t)=>{for(var r=t>1?void 0:t?Hr(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Fr(e,n,r),r},qr=(o,e)=>(n,t)=>e(n,t,o);exports.SheetInterceptorService=class extends s.Disposable{constructor(n){super();v(this,"_interceptorsByName",new Map);v(this,"_commandInterceptors",[]);v(this,"_workbookDisposables",new Map);v(this,"_worksheetDisposables",new Map);this._univerInstanceService=n,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{this._interceptWorkbook(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>this._disposeWorkbookInterceptor(t))),this.intercept(St.CELL_CONTENT,{priority:-1,handler(t,r){const i=r.worksheet.getCellRaw(r.row,r.col);return t?{...i,...t}:i}})}dispose(){super.dispose(),this._workbookDisposables.forEach(n=>n.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(n){if(this._commandInterceptors.includes(n))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(n),this._commandInterceptors.sort((t,r)=>{var i,a;return((i=r.priority)!=null?i:0)-((a=t.priority)!=null?a:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,n)))}onCommandExecute(n){const t=this._commandInterceptors.map(r=>r.getMutations(n));return{preUndos:t.map(r=>{var i;return(i=r.preUndos)!=null?i:[]}).flat(),undos:t.map(r=>r.undos).flat(),preRedos:t.map(r=>{var i;return(i=r.preRedos)!=null?i:[]}).flat(),redos:t.map(r=>r.redos).flat()}}intercept(n,t){const r=n;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(t),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),t)))}fetchThroughInterceptors(n){const t=n,r=this._interceptorsByName.get(t);return s.composeInterceptors(r||[])}_interceptWorkbook(n){const t=new s.DisposableCollection,r=n.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,h){return i.fetchThroughInterceptors(St.CELL_CONTENT)(c.getCellRaw(m,h),{unitId:r,subUnitId:u,row:m,col:h,worksheet:c,workbook:n})}})),d.add(l.registerRowFilteredInterceptor({getRowFiltered(m){return!!i.fetchThroughInterceptors(St.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:n,worksheet:c})}}))})};n.getSheets().forEach(c=>a(c)),t.add(s.toDisposable(n.sheetCreated$.subscribe(c=>a(c)))),t.add(s.toDisposable(()=>n.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),t.add(s.toDisposable(n.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,t)}_disposeWorkbookInterceptor(n){const t=n.getUnitId(),r=this._workbookDisposables.get(t);r&&(r.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(n,t){const r=Tn(n,t),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Gr([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),qr(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Tn(o,e){return`${o}|${e.getSheetId()}`}const Me=(o,e)=>{const{unitId:n,subUnitId:t,cellValue:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(t);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((h,R,g)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(h,R))||{},f=l.getStyleByCell(S);let p=l.getStyleByCell(g);p=Kr(f,p),S.s=p,d.setValue(h,R,zr(S))}),{...e,options:{},cellValue:d.getMatrix()}};function zr(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:n,subUnitId:t,unitId:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(t);if(!c)return!1;const u=c.getCellMatrix(),l=a.getStyles();return new s.ObjectMatrix(n).forValue((m,h,R)=>{if(!R)u==null||u.setValue(m,h,{});else{const g=u.getValue(m,h)||{},S=R.t?R.t:R.v!==void 0?En(R.v,R.t):En(g.v,g.t);if(R.f!==void 0&&(g.f=R.f),R.si!==void 0&&(g.si=R.si),R.p!==void 0&&(g.p=R.p),R.v!==void 0&&(g.v=S===s.CellValueType.NUMBER?Number(R.v):S===s.CellValueType.BOOLEAN?Yr(R.v)?1:0:R.v),g.v!==void 0&&(g.t=S),R.s!==void 0){const f=l.getStyleByCell(g);f==null&&delete g.s,typeof R.s=="string"&&(R.s=l.get(R.s));const p=vt(f,R.s?R.s:null);p&&s.Tools.removeNull(p),s.Tools.isEmptyObject(p)?delete g.s:g.s=l.setValue(p),!R.p&&g.p&&Zr(g.p,R.s?R.s:null)}R.custom!==void 0&&(g.custom=R.custom),u.setValue(m,h,s.Tools.removeNull(g))}}),!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 Yr(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 Kr(o,e){return Jr(o,e)}function Jr(o,e){if(!e||!Object.keys(e).length)return o;const n=o||{};for(const t in e)t==="bd"?n[t]=Xr(n[t]||{},e[t]):t in n||(n[t]=null);return n}function Xr(o,e){if(!e||!Object.keys(e).length)return o;for(const n in e)n in o||(o[n]=null);return o}function vt(o,e,n=!1){if(e===null)return e;if(e===void 0)return o;const t=s.Tools.deepClone(o)||{};if(t){for(const r in e)n&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in t&&r==="bd"?t[r]=Object.assign(t[r],e[r]):t[r]=e[r]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}}function $n(o,e){return o.some(n=>n.startIndex===e)?$n(o,e+1):e}function Zr(o,e){var a;if(o.body==null)return;Array.isArray(o.body.textRuns)||(o.body.textRuns=[]);let n=0;const t=[],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(n<u){const h={st:n,ed:u},R=vt({},e,!0);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)||(h.ts=R),t.push(h)}const m=vt(d,e,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,t.push(c),n=$n(r,l)}const i=o.body.dataStream.endsWith(`\r
|
|
2
|
+
`)?o.body.dataStream.length-2:o.body.dataStream.length;if(n<i){const c={st:n,ed:i},u=vt({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),t.push(c)}o.body.textRuns=s.normalizeTextRuns(t)}const bt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async o=>{const e=o.get(s.IUniverInstanceService),n=o.get(s.ICommandService),t=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=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],h=[],R={subUnitId:l,unitId:c,cellValue:Qr(d)},g=Me(o,R);m.push({id:z.id,params:R}),h.push({id:z.id,params:g});const S=i.onCommandExecute({id:bt.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function Qr(o){const e=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:t,startColumn:r,endRow:i,endColumn:a}=n;for(let c=t;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),n=o.get(s.ICommandService),t=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=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:es(d)},h=Me(o,m),R=i.onCommandExecute({id:qt.id}),g=[{id:z.id,params:m},...R.redos],S=[...R.undos,{id:z.id,params:h}];return s.sequenceExecute(g,n).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:g}),!0):!1}};function es(o){const e=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:t,startColumn:r,endRow:i,endColumn:a}=n;for(let c=t;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),n=o.get(s.ICommandService),t=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=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],h=[],R={subUnitId:l,unitId:c,cellValue:ts(d)},g=Me(o,R);m.push({id:z.id,params:R}),h.push({id:z.id,params:g});const S=i.onCommandExecute({id:Ut.id});return m.push(...S.redos),h.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}};function ts(o){const e=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:t,startColumn:r,endRow:i,endColumn:a}=n;for(let c=t;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 n=o.get(s.IUniverInstanceService),{sheet:t,index:r,unitId:i}=e,a=n.getUniverSheetInstance(i);return a?a.addWorksheet(t.id,r,t):!1}};function Bn(o,e){const{unitId:n}=e,t=n?o.getUniverSheetInstance(n):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return t?{workbook:t,unitId:t.getUnitId()}:null}function j(o,e={}){const{unitId:n,subUnitId:t}=e,r=n?o.getUniverSheetInstance(n):o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const i=t?r.getSheetBySheetId(t):r.getActiveSheet();return i?{worksheet:i,workbook:r,unitId:r.getUnitId(),subUnitId:i.getSheetId()}:null}function Pt(o,e){const{unitId:n,subUnitId:t}=e,r=o.getUniverSheetInstance(n);if(!r)return null;const i=r.getSheetBySheetId(t);return i?{worksheet:i,workbook:r}:null}const jn=(o,e)=>{const n=o.get(s.IUniverInstanceService),{subUnitId:t,unitId:r}=e,i=Pt(n,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===t),sheet:u,unitId:r}},Je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService),{subUnitId:t,unitId:r}=e,i=n.getUniverSheetInstance(r);return i?i.removeSheet(t):!1}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(o,e)=>{const n=o.get(s.ICommandService),t=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 h={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},R=zt(o,h);return n.syncExecuteCommand(De.id,h)?(t.pushUndoRedo({unitID:l,undoMutations:[{id:Je.id,params:R}],redoMutations:[{id:De.id,params:h}]}),!0):!1}},Fe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(o,e)=>{const{from:n,to:t}=e;if(!n||!t)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(n.value).forValue((d,m,h)=>{u.setValue(d,m,h)}),new s.ObjectMatrix(t.value).forValue((d,m,h)=>{l.setValue(d,m,h)}),!0}},K={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(o,e)=>{const n=o.get(exports.SelectionManagerService);if(!e)return!1;const{selections:t,type:r}=e;return n.replace(t,r),!0}};function rt(o,e,n=!0){const t=e.getMatrixWithMergedCells(...s.selectionToArray(o)),r=[];if(t.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 n?rt(i,e,n):i}function ns(o,e,n){let t=null;return n.getMatrixWithMergedCells(o,e,o,e).forValue((i,a,c)=>(t={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)),t||{actualColumn:e,actualRow:o,startRow:o,startColumn:e,endRow:o,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function os(o,e,n){const{startRow:t,startColumn:r,endRow:i,endColumn:a}=o;return Number.isNaN(t)&&(o.startRow=0),Number.isNaN(i)&&(o.endRow=e-1),Number.isNaN(r)&&(o.startColumn=0),Number.isNaN(a)&&(o.endColumn=n-1),o}function ae(o,e){const n=Number.isNaN(o.startRow)?0:o.startRow,t=Number.isNaN(o.startColumn)?0:o.startColumn,r=e.getMergedCell(n,t);return r?{...r,actualRow:n,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:t,endRow:o.startRow,endColumn:o.startColumn,actualRow:n,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const we=(o,e,n)=>({id:K.id,params:{unitId:e.getUnitId(),subUnitId:n.getSheetId(),pluginName:X,selections:[{range:o,primary:ae(o,n)}]}});function rs(o){if(!o)return!1;const{range:e,primary:n}=o;return s.Rectangle.equals(e,n)}function ss(o){function e(n,t){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++)t(a,c,i)}r(n)}return{forOperableEach:e}}const Hn="sheet.command.move-range",Tt={type:s.CommandType.COMMAND,id:Hn,handler:(o,e)=>{var p,I;const n=o.get(s.ICommandService),t=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}}),g=[...(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(g,n).result?(t.pushUndoRedo({unitID:d,undoMutations:S,redoMutations:g}),!0):!1}};function Et(o,e,n,t=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=e,{range:l,subUnitId:d}=n,h=o.get(s.IUniverInstanceService).getUniverSheetInstance(u),R=h==null?void 0:h.getSheetBySheetId(d),g=h==null?void 0:h.getSheetBySheetId(c),S=R==null?void 0:R.getCellMatrix(),f=g==null?void 0:g.getCellMatrix();if(R&&g&&S&&f){const p=rt(l,R,!1);if(!s.Rectangle.equals(l,p)&&!t)return null;const I=new s.ObjectMatrix,C=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{I.setValue(U,E,f.getValue(U,E)),C.setValue(U,E,null)});const w=new s.ObjectMatrix;s.Range.foreach(l,(U,E)=>{w.setValue(U,E,S.getValue(U,E))});const M=new s.ObjectMatrix;s.Range.foreach(a,(U,E)=>{const k=s.cellToRange(U,E),F=s.Rectangle.getRelativeRange(k,a),B=s.Rectangle.getPositionRange(F,l);M.setValue(B.startRow,B.startColumn,f.getValue(U,E))});const y={from:{value:C.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:Fe.id,params:y}),i.push({id:Fe.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 Gn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.Copy);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Copy}_${e}_${n}`}}class is{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.SelectProtectedCells);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SelectProtectedCells}_${e}_${n}`}}class as{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.SelectUnProtectedCells);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SelectUnProtectedCells}_${e}_${n}`}}class qn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.SetCellStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetCellStyle}_${e}_${n}`}}class zn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.SetCellValue);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetCellValue}_${e}_${n}`}}class Yn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.View);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.View}_${e}_${n}`}}class Kn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.SetRowStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetRowStyle}_${e}_${n}`}}class Jn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.SetColumnStyle);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.SetColumnStyle}_${e}_${n}`}}class Xn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.InsertRow);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.InsertRow}_${e}_${n}`}}class Zn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.InsertColumn);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.InsertColumn}_${e}_${n}`}}class Qn{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.InsertHyperlink);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.InsertHyperlink}_${e}_${n}`}}class eo{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.DeleteRow);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.DeleteRow}_${e}_${n}`}}class to{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.DeleteColumn);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.DeleteColumn}_${e}_${n}`}}class no{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.Sort);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Sort}_${e}_${n}`}}class oo{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.Filter);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Filter}_${e}_${n}`}}class ro{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.PivotTable);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.PivotTable}_${e}_${n}`}}class so{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.EditExtraObject);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.EditExtraObject}_${e}_${n}`}}class cs{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.ManageCollaborator);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.ManageCollaborator}_${e}_${n}`}}class Yt{constructor(e,n){v(this,"value",!0);v(this,"type",O.Worksheet);v(this,"status",s.PermissionStatus.INIT);v(this,"id");v(this,"subType",_.Edit);this.unitId=e,this.subUnitId=n,this.id=`${this.type}.${_.Edit}_${e}_${n}`}}class io{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.Comment);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Comment}_${e}`}}class ao{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.Edit);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Edit}_${e}`}}class co{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.Duplicate);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Duplicate}_${e}`}}class uo{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.Print);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Print}_${e}`}}class lo{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.Export);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Export}_${e}`}}class us{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.MoveSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.MoveSheet}_${e}`}}class mo{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.DeleteSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.DeleteSheet}_${e}`}}class ho{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.HideSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.HideSheet}_${e}`}}class go{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.RenameSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.RenameSheet}_${e}`}}class Ro{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.CreateSheet);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.CreateSheet}_${e}`}}class ls{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.History);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.History}_${e}`}}class So{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.View);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.View}_${e}`}}class vo{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.Share);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Share}_${e}`}}class fo{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.Copy);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.Copy}_${e}`}}class Co{constructor(e){v(this,"id");v(this,"value",!0);v(this,"type",O.Workbook);v(this,"status",s.PermissionStatus.INIT);v(this,"subType",_.ManageCollaborator);this.unitId=e,this.unitId=e,this.id=`${this.type}.${_.ManageCollaborator}_${e}`}}class po{constructor(e,n,t){v(this,"type",O.SelectRange);v(this,"subType",_.Edit);v(this,"status",s.PermissionStatus.INIT);v(this,"value",!0);v(this,"id");v(this,"unitId");v(this,"subUnitId");v(this,"permissionId");this.unitId=e,this.subUnitId=n,this.permissionId=t,this.id=`${O.SelectRange}.${_.Edit}.${t}`}}class Io{constructor(e,n,t){v(this,"type",O.SelectRange);v(this,"subType",_.View);v(this,"status",s.PermissionStatus.INIT);v(this,"value",!0);v(this,"id");v(this,"unitId");v(this,"subUnitId");v(this,"permissionId");this.unitId=e,this.subUnitId=n,this.permissionId=t,this.id=`${O.SelectRange}.${_.View}.${t}`}}const st={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(o,e)=>{const n=o.get(s.ICommandService),t=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:h}=e,R=h?[h]:i.getSelectionRanges();if(!R||!R.length||!c.getPermissionPoint(new Yt(d,l).id))return!1;const g=new s.ObjectMatrix;let S;if(s.Tools.isArray(m))for(let y=0;y<R.length;y++){const{startRow:P,startColumn:U,endRow:E,endColumn:k}=R[y];for(let F=0;F<=E-P;F++)for(let B=0;B<=k-U;B++)g.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:E,endColumn:k}=R[y];for(let F=P;F<=E;F++)for(let B=U;B<=k;B++)g.setValue(F,B,m)}else S=m;const f={subUnitId:l,unitId:d,cellValue:S!=null?S:g.getMatrix()},p=Me(o,f),I=n.syncExecuteCommand(z.id,f),{undos:C,redos:w}=a.onCommandExecute({id:st.id,params:{...f,range:R}}),M=s.sequenceExecute([...w],n);return I&&M.result?(t.pushUndoRedo({unitID:d,undoMutations:[{id:z.id,params:p},...C],redoMutations:[{id:z.id,params:f},...w]}),!0):!1}};function Kt(o,e){const n=[],t=[],{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),h=m==null?void 0:m.getSheetBySheetId(i);if(h){const R=h.getCellMatrix(),g=R.getDataRange();if(a.startColumn<=g.endColumn||a.startRow<=g.endRow){let C,w;if(c===s.Dimension.COLUMNS){const y=Math.min(a.endRow,g.endRow);let P=0;for(let E=a.startRow;E<=y;E++){const k=R.getRow(E),F=k?s.getArrayLength(k)-1:0;P=Math.max(P,F)}C={startRow:a.startRow,startColumn:a.startColumn,endRow:y,endColumn:P};const U=a.endColumn-a.startColumn+1;w={startRow:a.startRow,startColumn:C.startColumn+U,endRow:y,endColumn:C.endColumn+U}}else{const y=Math.min(a.endColumn,g.endColumn),P=g.endRow;C={startRow:a.startRow,startColumn:a.startColumn,endRow:P,endColumn:y};const U=a.endRow-a.startRow+1;w={startRow:C.startRow+U,startColumn:a.startColumn,endRow:C.endRow+U,endColumn:y}}const M=Et(o,{unitId:r,subUnitId:i,range:C},{unitId:r,subUnitId:i,range:w},!0);M&&(n.push(...M.redos),t.push(...M.undos))}if(Object.entries(u).length===0)for(let C=a.startRow;C<=a.endRow;C++){u[C]||(u[C]={});for(let w=a.startColumn;w<=a.endColumn;w++)u[C][w]=null}const S={subUnitId:i,unitId:r,cellValue:u},f=Me(o,S),{undos:p,redos:I}=d.onCommandExecute({id:st.id,params:{...S,range:a}});n.push({id:z.id,params:S},...I),t.push({id:z.id,params:f},...p)}return{redo:n,undo:t}}function Jt(o,e){const n=[],t=[],{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 h=m.getCellMatrix(),R=h.getDataRange(),g={subUnitId:i,unitId:r,cellValue:hs([a])},S=Me(o,g),f=l.onCommandExecute({id:st.id,params:g});if(n.push({id:z.id,params:g},...f.redos),t.push(...f.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 C=Math.min(a.endRow,R.endRow);let w=0;for(let y=a.startRow;y<=C;y++){const P=h.getRow(y),U=P?s.getArrayLength(P)-1:0;w=Math.max(w,U)}p={startRow:a.startRow,startColumn:a.endColumn+1,endRow:C,endColumn:w};const M=a.endColumn-a.startColumn+1;I={startRow:a.startRow,startColumn:p.startColumn-M,endRow:C,endColumn:p.endColumn-M}}if(c===s.Dimension.ROWS&&a.endRow<R.endRow){const C=Math.min(a.endColumn,R.endColumn),w=R.endRow;p={startRow:a.endRow+1,startColumn:a.startColumn,endRow:w,endColumn:C};const M=a.endRow-a.startRow+1;I={startRow:p.startRow-M,startColumn:a.startColumn,endRow:p.endRow-M,endColumn:C}}if(p&&I){const C=Et(o,{unitId:r,subUnitId:i,range:p},{unitId:r,subUnitId:i,range:I},!0);C&&(n.push(...C.redos),t.push(...C.undos))}}}return{redo:n,undo:t}}function ds(o,e,n,t,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=n;m>=a;m--)for(let h=u;h<=l;h++){const R=o.getValue(m,h);R==null?o.realDeleteValue(m+d,h):o.setValue(m+d,h,R)}for(let m=c;m>=a;m--)for(let h=u;h<=l;h++)i&&i[m]&&i[m][h]?o.setValue(m,h,i[m][h]):o.realDeleteValue(m,h)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=a;m<=c;m++)for(let h=t;h>=u;h--){const R=o.getValue(m,h);R==null?o.realDeleteValue(m,h+d):o.setValue(m,h+d,R)}for(let m=a;m<=c;m++)for(let h=l;h>=u;h--)i&&i[m]&&i[m][h]?o.setValue(m,h,i[m][h]):o.realDeleteValue(m,h)}}function ms(o,e,n,t,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<=n;m++)for(let h=c;h<=u;h++){const R=o.getValue(m+l,h);R==null?o.realDeleteValue(m,h):o.setValue(m,h,R)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let h=c;h<=t;h++){const R=o.getValue(m,h+d);R==null?o.realDeleteValue(m,h):o.setValue(m,h,R)}}function hs(o){const e=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:t,startColumn:r,endRow:i,endColumn:a}=n;for(let c=t;c<=i;c++)for(let u=r;u<=a;u++)e.setValue(c,u,null)}),e.getData()}const Mo="sheet.command.delete-range-move-left",Nt={type:s.CommandType.COMMAND,id:Mo,handler:async(o,e)=>{var w,M,y;const n=o.get(s.ICommandService),t=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 h=e==null?void 0:e.range;if(h||(h=(w=i.getLast())==null?void 0:w.range),!h)return!1;const R={range:h,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},g=a.onCommandExecute({id:Nt.id,params:{range:h}}),{redo:S,undo:f}=Jt(o,R),p=[...(M=g.preRedos)!=null?M:[],...S],I=[...g.undos,...f];return p.push(...g.redos),p.push(we(h,l,u)),I.push(...(y=g.preUndos)!=null?y:[]),s.sequenceExecute(p,n).result?(t.pushUndoRedo({unitID:m,undoMutations:I.reverse(),redoMutations:p}),!0):!1}},wo="sheet.command.delete-range-move-up",kt={type:s.CommandType.COMMAND,id:wo,handler:async(o,e)=>{var w,M,y;const n=o.get(s.ICommandService),t=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 h=e==null?void 0:e.range;if(h||(h=(w=i.getLast())==null?void 0:w.range),!h)return!1;const R={range:h,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},g=a.onCommandExecute({id:kt.id,params:{range:h}}),{redo:S,undo:f}=Jt(o,R),p=[...(M=g.preRedos)!=null?M:[],...S],I=[...g.undos,...f];return p.push(...g.redos),p.push(we(h,d,m)),I.push(...(y=g.preUndos)!=null?y:[]),s.sequenceExecute(p,n).result?(t.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}},ye={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(o,e)=>{var g;const{unitId:n,subUnitId:t,range:r,rowInfo:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(t);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,h=r.endRow-r.startRow+1;for(let S=m;S<m+h;S++)i?s.insertMatrixArray(S,(g=i[S-r.startRow])!=null?g:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,h),!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}},_e={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(o,e)=>{var g;const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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,h=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const f={w:h,hd:0};c?s.insertMatrixArray(S,(g=c[S-a.startColumn])!=null?g:f,l):s.insertMatrixArray(S,f,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},gs=(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}},be={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},Rs=(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},Ce={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},Ss="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 n=o.get(s.ICommandService),t=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:h,workbook:R}=l;let g=e==null?void 0:e.range;if(g||(g=(B=i.getLast())==null?void 0:B.range),!g)return!1;const S=[],f=[],p=h.getCellMatrix(),I=p.getDataRange(),w=p.getSlice(I.startRow,I.endRow,g.startColumn,g.endColumn).getDataRange().endRow,M=Math.max(w+(g.endRow-g.startRow+1)-I.endRow,0);if(M>0){const Z=g.startRow-1,Q=h.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:ye.id,params:J});const ne=Xt(o,J);f.push({id:be.id,params:ne})}const y={};s.Range.foreach(g,(Z,Q)=>{const J=h.getCell(Z,Q);J&&(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:g,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:U,undo:E}=Kt(o,P);S.push(...U),f.push(...E);const k=a.onCommandExecute({id:Ot.id,params:{range:g}});return S.push(...k.redos),S.push(we(g,R,h)),f.push(...(b=k.preUndos)!=null?b:[]),S.unshift(...(oe=k.preRedos)!=null?oe:[]),f.unshift(...k.undos),s.sequenceExecute(S,n)?(t.pushUndoRedo({unitID:d,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},yo="sheet.command.insert-range-move-right",Dt={type:s.CommandType.COMMAND,id:yo,handler:async(o,e)=>{var B,b,oe;const n=o.get(s.ICommandService),t=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:h,subUnitId:R}=l;let g=e==null?void 0:e.range;if(g||(g=(B=i.getLast())==null?void 0:B.range),!g)return!1;const S=[],f=[],p=m.getCellMatrix(),I=p.getDataRange(),w=p.getSlice(g.startRow,g.endRow,I.startColumn,I.endColumn).getDataRange().endColumn,M=Math.max(w+(g.endColumn-g.startColumn+1)-I.endColumn,0);if(M>0){const Z=g.startColumn-1,Q=m.getColumnWidth(Z),J={unitId:h,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:_e.id,params:J});const ne=Zt(o,J);f.push({id:Ce.id,params:ne})}const y={};s.Range.foreach(g,(Z,Q)=>{const J=m.getCell(Z,Q);!J||!J.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:J.s})});const P={range:g,subUnitId:R,unitId:h,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:U,undo:E}=Kt(o,P);S.push(...U),f.push(...E);const k=a.onCommandExecute({id:Dt.id,params:{range:g}});return S.push(...k.redos),S.push(we(g,d,m)),f.push(...(b=k.preUndos)!=null?b:[]),S.unshift(...(oe=k.preRedos)!=null?oe:[]),f.unshift(...k.undos),s.sequenceExecute(S,n).result?(t.pushUndoRedo({unitID:h,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},_o="sheet.command.insert-row",Le={type:s.CommandType.COMMAND,id:_o,handler:async(o,e)=>{var P,U,E,k;const n=o.get(s.ICommandService),t=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:h}=e,{startRow:R,endRow:g}=u,S=l===s.Direction.UP?R:R-1,f=c.getRowHeight(S),p={unitId:d,subUnitId:m,range:u,rowInfo:new Array(g-R+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},I=Xt(o,p),C=[{id:ye.id,params:p}],w=[{id:be.id,params:I}];h&&C.push({id:z.id,params:{unitId:d,subUnitId:m,cellValue:h}});const M=i.onCommandExecute({id:Le.id,params:e});return C.unshift(...(P=M.preRedos)!=null?P:[]),C.push(...(U=M.redos)!=null?U:[]),C.push(we(u,a,c)),w.unshift(...(E=M.preUndos)!=null?E:[]),w.push(...(k=M.undos)!=null?k:[]),s.sequenceExecute(C,n).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:w,redoMutations:C}),!0):!1}},bo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var h;const n=(h=o.get(exports.SelectionManagerService).getSelections())==null?void 0:h.map(R=>R.range);let t;if((n==null?void 0:n.length)===1)t=n[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=t.endRow-t.startRow+1,d={};s.Range.foreach(t,(R,g)=>{const S=a.getCell(R,g);!S||!S.s||(d[R]||(d[R]={}),d[R][g]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:d};return o.get(s.ICommandService).executeCommand(Le.id,m)}},Uo={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async o=>{var m;const n=(m=o.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(h=>h.range);let t;if((n==null?void 0:n.length)===1)t=n[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=t.endRow-t.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+l,startColumn:0,endColumn:a.getColumnCount()-1}};return o.get(s.ICommandService).executeCommand(Le.id,d)}},Po="sheet.command.insert-col",Ve={type:s.CommandType.COMMAND,id:Po,handler:async(o,e)=>{var P,U,E,k;const n=o.get(s.ICommandService),t=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:h}=e.range,R=r.getUniverSheetInstance(e.unitId),g=R.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?m:m-1,f=g.getColumnWidth(S),p={unitId:l,subUnitId:u,range:a,colInfo:new Array(h-m+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},I=Zt(o,p),C=[{id:_e.id,params:p}],w=[{id:Ce.id,params:I}];d&&C.push({id:z.id,params:{unitId:l,subUnitId:u,cellValue:d}});const M=i.onCommandExecute({id:Ve.id,params:e});return C.unshift(...(P=M.preRedos)!=null?P:[]),C.push(...(U=M.redos)!=null?U:[]),C.push(we(a,R,g)),w.unshift(...(E=M.preUndos)!=null?E:[]),w.push(...(k=M.undos)!=null?k:[]),s.sequenceExecute(C,n).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:w.filter(Boolean),redoMutations:C.filter(Boolean)}),!0):!1}},To={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async o=>{const n=o.get(exports.SelectionManagerService).getSelections();let t;if((n==null?void 0:n.length)===1)t=n[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=t.endColumn-t.startColumn+1,d={};s.Range.foreach(t,(h,R)=>{const g=a.getCell(h,R);!g||!g.s||(d[h]||(d[h]={}),d[h][R]={s:g.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent()},cellValue:d};return o.get(s.ICommandService).executeCommand(Ve.id,m)}},Eo={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async o=>{const n=o.get(exports.SelectionManagerService).getSelections();let t;if((n==null?void 0:n.length)===1)t=n[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=t.endColumn-t.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return o.get(s.ICommandService).executeCommand(Ve.id,d)}},No={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(o,e)=>{var f;const n=o.get(s.ICommandService),t=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(s.LocaleService),a=Bn(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,h=s.mergeWorksheetSnapshotWithDefault(d||{});e?(l=(f=e.index)!=null?f:l,h.id=m||s.Tools.generateRandomId(),h.name=(d==null?void 0:d.name)||u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`)):(h.id=s.Tools.generateRandomId(),h.name=u.generateNewSheetName(`${i.t("sheets.tabs.sheet")}`));const R={index:l,sheet:h,unitId:c},g=zt(o,R);return n.syncExecuteCommand(De.id,R)?(t.pushUndoRedo({unitID:c,undoMutations:[{id:Je.id,params:g}],redoMutations:[{id:De.id,params:R}]}),!0):!1}};function ko(o,e){const{unitId:n,subUnitId:t,sourceRange:r,targetRange:i}=e,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:n,subUnitId:t,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:n,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...i,endRow:i.endRow-c,startRow:i.startRow-c}}}const Ne={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,subUnitId:t,sourceRange:r,targetRange:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=i.startRow,h=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveRows(l,d,m),!0}};function Oo(o,e){const{unitId:n,subUnitId:t,sourceRange:r,targetRange:i}=e,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:n,subUnitId:t,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:n,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...i,startColumn:i.startColumn-c,endColumn:i.endColumn-c}}}const ke={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,subUnitId:t,sourceRange:r,targetRange:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=i.startColumn,h=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,h),u.getCellMatrix().moveColumns(l,d,m),!0}};function vs(o,e){return e.getMergeData().some(n=>n.startRow<o&&o<=n.endRow)}function fs(o,e){return e.getMergeData().some(n=>n.startColumn<o&&o<=n.endColumn)}const Do="sheet.command.move-rows",At={id:Do,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,J;const t=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:i}}=e,a=t==null?void 0:t.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(),h=d.getSheetId(),R=o.get(s.ErrorService),g=o.get(s.LocaleService),S=a[0].range,f=a[0].primary,p=rt(S,d,!1);if(!s.Rectangle.equals(S,p))return R.emit(g.t("sheets.info.partOfCell")),!1;if(vs(i,d))return R.emit(g.t("sheets.info.acrossMergedCell")),!1;const I={...S,startRow:i,endRow:i+S.endRow-S.startRow},C={unitId:m,subUnitId:h,sourceRange:S,targetRange:I},w=ko(o,C),y=i-r<0,P=S.endRow-S.startRow+1,U=y?I:{...I,startRow:I.startRow-P,endRow:I.endRow-P},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:U,primary:ae(U,d),style:null}]},k={unitId:m,subUnitId:h,pluginName:X,selections:[{range:S,primary:f,style:null}]},F=o.get(s.ICommandService),B=c.onCommandExecute({id:At.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:Ne.id,params:C},{id:K.id,params:E},...B.redos],oe=[...(J=B.preUndos)!=null?J:[],{id:Ne.id,params:w},{id:K.id,params:k},...B.undos];return s.sequenceExecute(b,F).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0):!1}},Ao="sheet.command.move-cols",xt={id:Ao,type:s.CommandType.COMMAND,handler:async(o,e)=>{var Q,J;const t=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:i}}=e,a=t==null?void 0:t.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(),h=d.getSheetId(),R=o.get(s.ErrorService),g=o.get(s.LocaleService),S=a[0].range,f=a[0].primary,p=rt(S,d,!1);if(!s.Rectangle.equals(S,p))return R.emit(g.t("sheets.info.partOfCell")),!1;if(fs(i,d))return R.emit(g.t("sheets.info.acrossMergedCell")),!1;const I={...S,startColumn:i,endColumn:i+S.endColumn-S.startColumn},C={unitId:m,subUnitId:h,sourceRange:S,targetRange:I},w=Oo(o,C),M=S.endColumn-S.startColumn+1,U=i-r<0?I:{...I,startColumn:I.startColumn-M,endColumn:I.endColumn-M},E={unitId:m,subUnitId:h,pluginName:X,selections:[{range:U,primary:ae(U,d),style:null}]},k={unitId:m,subUnitId:h,pluginName:X,selections:[{range:S,primary:f,style:null}]},F=o.get(s.ICommandService),B=c.onCommandExecute({id:xt.id,params:e}),b=[...(Q=B.preRedos)!=null?Q:[],{id:ke.id,params:C},{id:K.id,params:E},...B.redos],oe=[...(J=B.preUndos)!=null?J:[],{id:ke.id,params:w},{id:K.id,params:k},...B.undos];return s.sequenceExecute(b,F).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:oe,redoMutations:b}),!0}},xo="sheet.command.remove-row",it={type:s.CommandType.COMMAND,id:xo,handler:async(o,e)=>{var I,C,w,M;const n=o.get(exports.SelectionManagerService),t=o.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(I=n.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 h=[];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]&&h.push({startRow:y[U],endRow:P[U],startColumn:r.startColumn,endColumn:r.endColumn})}else h.push(r);const R=[],g=[];h.forEach(y=>{const P={unitId:d,subUnitId:l,range:y},U=u.getCellMatrix().getSlice(y.startRow,y.endRow,0,u.getColumnCount()-1),E={unitId:d,subUnitId:l,cellValue:U.getMatrix()},k=gs(P,u);R.push({id:be.id,params:P}),g.unshift({id:ye.id,params:k},{id:z.id,params:E})});const S=t.onCommandExecute({id:it.id,params:{range:r}}),f=o.get(s.ICommandService);return s.sequenceExecute([...(C=S.preRedos)!=null?C:[],...R,...S.redos,we(r,c,u)],f).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],...g,...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],...R,...S.redos]}),!0):!1}},Wo="sheet.command.remove-col",at={type:s.CommandType.COMMAND,id:Wo,handler:async(o,e)=>{var I,C,w,M;const n=o.get(exports.SelectionManagerService),t=o.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(I=n.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},h=Rs(o,m),R=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),g={unitId:d,subUnitId:l,cellValue:R.getMatrix()},S=t.onCommandExecute({id:at.id,params:{range:r}}),f=o.get(s.ICommandService);return s.sequenceExecute([...(C=S.preRedos)!=null?C:[],{id:Ce.id,params:m},...S.redos,we(r,c,u)],f).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(w=S.preUndos)!=null?w:[],{id:_e.id,params:h},{id:z.id,params:g},...S.undos],redoMutations:[...(M=S.preRedos)!=null?M:[],{id:Ce.id,params:m},...S.redos]}),!0):!1}},Qt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(o,e)=>{var I,C;const n=o.get(s.ICommandService),t=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 h={subUnitId:u,unitId:c,subUnitName:d.getName()},R=jn(o,h),g=i.onCommandExecute({id:Qt.id,params:{unitId:c,subUnitId:u}}),S=[...(I=g.preRedos)!=null?I:[],{id:Je.id,params:h},...g.redos],f=[...(C=g.preUndos)!=null?C:[],{id:De.id,params:R},...g.undos];return s.sequenceExecute(S,n)?(t.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:S}),!0):!1}},ve=(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 t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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 t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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],h=c[l];s.Rectangle.intersects(m,h)&&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 t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},Lo={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async o=>{const e=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),t=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 h=l.getConfig().mergeData;if(i.forEach(M=>{h.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const R=ue(o,d),g=e.getSelections();if(!(g!=null&&g.length))return!1;const S=s.Tools.deepClone(g),f=s.Tools.deepClone(g),p=f[f.length-1],{startRow:I,startColumn:C}=p.range;return p.primary={startRow:I,startColumn:C,endRow:I,endColumn:C,actualRow:I,actualColumn:C,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:G.id,params:R},{id:K.id,params:{selections:f}}],n)?(t.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:f}}]}),!0):!1}};class $e{constructor(){v(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});v(this,"_borderInfo$",new he.BehaviorSubject(this._borderInfo));v(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:n,startColumn:t,endRow:r,endColumn:i}=o;for(let a=n;a<=r;a++)for(let c=t;c<=i;c++)e(a,c)}const Vo={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(o,e)=>{const{unitId:n,subUnitId:t,value:r}=e,{type:i,color:a,style:c}=r,u=o.get(s.ICommandService),l=o.get($e);return l.setType(i),l.setColor(a),l.setStyle(c),u.executeCommand(Xe.id,{unitId:n,subUnitId:t})}},$o={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(o,e)=>{if(!e.value)return!1;const n=o.get(s.ICommandService);return o.get($e).setType(e.value),n.executeCommand(Xe.id)}},Bo={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(o,e)=>{const n=o.get(s.ICommandService);return o.get($e).setStyle(e.value),n.executeCommand(Xe.id)}},jo={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(o,e)=>{const n=o.get(s.ICommandService);return o.get($e).setColor(e.value),n.executeCommand(Xe.id)}},Xe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(o,e)=>{const n=o.get(s.ICommandService),t=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),i=o.get(exports.SelectionManagerService),a=o.get($e),c=j(r,e);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=i.getSelectionRanges(),h=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:R,color:g,type:S,activeBorderType:f}=a.getBorderInfo();if(!f)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,C=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,E=S.indexOf("tlmr")>-1,k=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},W=new s.ObjectMatrix,Y={s:R,cl:{rgb:g}},ut=(D,T)=>{let $=null;return h.forEach(re=>{s.Rectangle.intersects(re,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&($=re)}),$};function q(D,T,$){D.startRow<0||D.startColumn<0||lt(D,(re,de)=>{var N,Ze;const ie=ut(re,de);let ce=T;if(ie&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if($){const me=s.Tools.deepClone((N=W.getValue(ie.startRow,ie.startColumn))==null?void 0:N.s);ce=me!=null&&me.bd?Object.assign(me.bd,T):T}W.setValue(ie.startRow,ie.startColumn,{s:{bd:ce}})}else{if($){const me=s.Tools.deepClone((Ze=W.getValue(re,de))==null?void 0:Ze.s);ce=me!=null&&me.bd?Object.assign(me.bd,T):T}W.setValue(re,de,{s:{bd:ce}})}})}p&&(q(oe,{b:null}),q(ne,{t:s.Tools.deepClone(Y)},!0)),C&&(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),E&&q(b,{tl_mr:s.Tools.deepClone(Y)},!0),k&&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&<(b,(D,T)=>{var re,de,ie,ce;const $=ut(D,T);if($){if($.endColumn!==b.endColumn){const N=(re=W.getValue($.startRow,$.startColumn))==null?void 0:re.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if($.startColumn!==b.startColumn){const N=(de=W.getValue($.startRow,$.startColumn))==null?void 0:de.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}else{if(T!==b.endColumn){const N=(ie=W.getValue(D,T))==null?void 0:ie.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:s.Tools.deepClone(Y)}):{r:s.Tools.deepClone(Y)}}})}if(T!==b.startColumn){const N=(ce=W.getValue(D,T))==null?void 0:ce.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:s.Tools.deepClone(Y)}):{l:s.Tools.deepClone(Y)}}})}}}),y&<(b,(D,T)=>{var re,de,ie,ce;const $=ut(D,T);if($){if($.endRow!==b.endRow){const N=(re=W.getValue($.startRow,$.startColumn))==null?void 0:re.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if($.startRow!==b.startRow){const N=(de=W.getValue($.startRow,$.startColumn))==null?void 0:de.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}else{if(D!==b.endRow){const N=(ie=W.getValue(D,T))==null?void 0:ie.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:s.Tools.deepClone(Y)}):{b:s.Tools.deepClone(Y)}}})}if(D!==b.startRow){const N=(ce=W.getValue(D,T))==null?void 0:ce.s;W.setValue(D,T,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:s.Tools.deepClone(Y)}):{t:s.Tools.deepClone(Y)}}})}}}),!p&&!C&&!I&&!w&&!M&&!y&&!P&&!U&&!E&&!k&&!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,(D,T)=>{var re,de,ie,ce,N,Ze,me,Pn;const $=ut(D,T);if($){if($.endColumn!==b.endColumn){const A=(re=W.getValue($.startRow,$.startColumn))==null?void 0:re.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if($.startColumn!==b.startColumn){const A=(de=W.getValue($.startRow,$.startColumn))==null?void 0:de.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if($.endRow!==b.endRow){const A=(ie=W.getValue($.startRow,$.startColumn))==null?void 0:ie.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if($.startRow!==b.startRow){const A=(ce=W.getValue($.startRow,$.startColumn))==null?void 0:ce.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(T!==b.endColumn){const A=(N=W.getValue(D,T))==null?void 0:N.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(T!==b.startColumn){const A=(Ze=W.getValue(D,T))==null?void 0:Ze.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(D!==b.endRow){const A=(me=W.getValue(D,T))==null?void 0:me.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(D!==b.startRow){const A=(Pn=W.getValue(D,T))==null?void 0:Pn.s;W.setValue(D,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const Bt={unitId:l,subUnitId:d,cellValue:W.getData()},kr=Me(o,Bt);return n.syncExecuteCommand(z.id,Bt)?(t.pushUndoRedo({unitID:l,undoMutations:[{id:z.id,params:kr}],redoMutations:[{id:z.id,params:Bt}]}),!0):!1}},Cs=(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 t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.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=(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 t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.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}},Wt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(o,e)=>{var S,f;const n=o.get(exports.SheetInterceptorService),{unitId:t,subUnitId:r,ranges:i}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t).getSheetBySheetId(r),c={unitId:t,subUnitId:r,ranges:i},u=ps(o,c),l={unitId:t,subUnitId:r,pluginName:X,selections:i.map(p=>({range:p,primary:ae(p,a),style:null}))},d={unitId:t,subUnitId:r,pluginName:X,selections:Ho(i).map(p=>({range:p,primary:ae(p,a),style:null}))},m=o.get(s.ICommandService),h=s.sequenceExecute([{id:Ge.id,params:c},{id:K.id,params:l}],m),R=n.onCommandExecute({id:Wt.id,params:e}),g=s.sequenceExecute([...R.redos],m);return h.result&&g.result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:t,undoMutations:[{id:He.id,params:u},{id:K.id,params:d},...(S=R.undos)!=null?S:[]],redoMutations:[...(f=R.preRedos)!=null?f:[],{id:Ge.id,params:c},{id:K.id,params:l},...R.redos]}),!0}},Fo={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async o=>{var l;const n=(l=o.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.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=n.map(d=>i.getHiddenCols(d.startColumn,d.endColumn)).flat();return o.get(s.ICommandService).executeCommand(Wt.id,{unitId:a,subUnitId:c,ranges:u})}},en={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var f,p,I;const e=o.get(exports.SelectionManagerService),n=o.get(exports.SheetInterceptorService),t=(f=e.getSelections())==null?void 0:f.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.COLUMN);if(!(t!=null&&t.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:t},d={unitId:c,subUnitId:u,pluginName:X,selections:Ho(t).map(C=>({range:C,primary:ae(C,a),style:null}))},m={unitId:c,subUnitId:u,pluginName:X,selections:t.map(C=>({range:C,primary:ae(C,a),style:null}))},h=o.get(s.ICommandService),R=s.sequenceExecute([{id:He.id,params:l},{id:K.id,params:d}],h),g=n.onCommandExecute({id:en.id,params:l}),S=s.sequenceExecute([...g.redos],h);if(R.result&&S.result){const C=o.get(s.IUndoRedoService),w=Cs(o,l);return C.pushUndoRedo({unitID:c,undoMutations:[{id:Ge.id,params:w},{id:K.id,params:m},...(p=g.undos)!=null?p:[]],redoMutations:[...(I=g.preRedos)!=null?I:[],{id:He.id,params:l},{id:K.id,params:d},...g.redos]}),!0}return!1}};function Ho(o){return Is(o).map(n=>{const t=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:t,endColumn:t}})}function Is(o){const e=[];let n;return o.sort((t,r)=>t.startColumn-r.startColumn).forEach(t=>{if(!n){n=t;return}n.endColumn===t.startColumn-1?n.endColumn=t.endColumn:(e.push(n),n=t)}),e.push(n),e}const tn=(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},Te={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},Go={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(o,e)=>{const n=o.get(s.ICommandService),t=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:h}=e;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||h>=u.getRowCount())return!1;const R={unitId:a,subUnitId:c,...e},g=tn(o,R);return n.syncExecuteCommand(Te.id,R)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Te.id,params:g}],redoMutations:[{id:Te.id,params:R}]}),!0):!1}},Ms={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async o=>{const e=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),t=o.get(s.IUniverInstanceService),r=j(t);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(Te.id,c)?(n.pushUndoRedo({unitID:i,undoMutations:[{id:Te.id,params:u}],redoMutations:[{id:Te.id,params:c}]}),!0):!1}},ws=(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 t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},ys=(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 t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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 f,p,I;const{unitId:n,subUnitId:t,ranges:r}=e,i=o.get(s.ICommandService),a=o.get(s.IUndoRedoService),c=o.get(exports.SheetInterceptorService),u=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(t),l={unitId:n,subUnitId:t,ranges:r},d=ws(o,l),m={unitId:n,subUnitId:t,pluginName:X,selections:r.map(C=>({range:C,primary:ae(C,u),style:null}))},h={unitId:n,subUnitId:t,pluginName:X,selections:zo(r).map(C=>({range:C,primary:ae(C,u),style:null}))},R=s.sequenceExecute([{id:qe.id,params:l},{id:K.id,params:m}],i),g=c.onCommandExecute({id:Lt.id,params:e}),S=s.sequenceExecute([...g.redos],i);return R.result&&S.result&&a.pushUndoRedo({unitID:n,undoMutations:[...(f=g.preUndos)!=null?f:[],{id:ze.id,params:d},{id:K.id,params:h},...(p=g.undos)!=null?p:[]],redoMutations:[...(I=g.preRedos)!=null?I:[],{id:qe.id,params:l},{id:K.id,params:m},...g.redos]}),!0}},qo={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async o=>{var l;const e=o.get(exports.SelectionManagerService),n=o.get(s.IUniverInstanceService),t=(l=e.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const r=n.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.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,C,w,M;const e=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),t=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},h={unitId:u,subUnitId:l,pluginName:X,selections:zo(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}))},g=ys(o,m),S=i.onCommandExecute({id:nn.id,params:m});S.preRedos&&S.preRedos.length>0&&s.sequenceExecute([...S.preRedos],n);const f=s.sequenceExecute([{id:ze.id,params:m},{id:K.id,params:h}],n),p=s.sequenceExecute([...S.redos],n);return f.result&&p.result&&t.pushUndoRedo({unitID:u,undoMutations:[...(C=S.preUndos)!=null?C:[],{id:qe.id,params:g},{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:h},...S.redos]}),!0}};function zo(o){return _s(o).map(n=>{const t=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:t,endRow:t}})}function _s(o){const e=[];let n;return o.sort((t,r)=>t.startRow-r.startRow).forEach(t=>{if(!n){n=t;return}t.startRow===n.endRow+1?n.endRow=t.endRow:(e.push(n),n=t)}),e.push(n),e}const te={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(o,e)=>{const n=o.get(s.IUniverInstanceService),t=j(n);if(!t)return!1;const{unitId:r,subUnitId:i,worksheet:a}=t,{range:c,style:u}=e,l=o.get(s.ICommandService),d=o.get(s.IUndoRedoService),m=o.get(exports.SelectionManagerService),h=c?[c]:m.getSelectionRanges();if(!(h!=null&&h.length))return!1;const R=new s.ObjectMatrix,g=ss(a);if(s.Tools.isArray(u.value))for(let M=0;M<h.length;M++)g.forOperableEach(h[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<h.length;M++){const y={s:{[u.type]:u.value}};g.forOperableEach(h[M],(P,U)=>R.setValue(P,U,y))}const S={subUnitId:i,unitId:r,cellValue:R.getMatrix()},f=Me(o,S),p=l.syncExecuteCommand(z.id,S),{undos:I,redos:C}=o.get(exports.SheetInterceptorService).onCommandExecute({id:te.id,params:e}),w=s.sequenceExecute([...C],l);return p&&w.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:z.id,params:f},...I],redoMutations:[{id:z.id,params:S},...C]}),!0):!1}},bs={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=j(o.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n,{actualRow:r,actualColumn:i}=e.primary,c={style:{type:"bl",value:t.getRange(r,i).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(te.id,c)}},Us={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=j(o.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n;let r=!0;if(e.primary){const{startRow:a,startColumn:c}=e.primary;r=t.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)}},Ps={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=j(o.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n;let r=!0;e.primary&&(r=!!t.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)}},Ts={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async o=>{const e=o.get(exports.SelectionManagerService).getLast();if(!e)return!1;const n=j(o.get(s.IUniverInstanceService));if(!n)return!1;const{worksheet:t}=n;let r=!0;e.primary&&(r=!!t.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 Es={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(o,e)=>{if(!e)return!1;const n=o.get(s.ICommandService),t={style:{type:"ff",value:e.value}};return n.executeCommand(te.id,t)}},Ns={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(o,e)=>{if(!e)return!1;const n=o.get(s.ICommandService),t={style:{type:"fs",value:e.value}};return n.executeCommand(te.id,t)}},Yo={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(o,e)=>{if(!e||!e.value)return!1;const n=o.get(s.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return n.executeCommand(te.id,t)}},Ko={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async o=>{const e=o.get(s.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(te.id,n)}},Jo={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(o,e)=>{if(!e||!e.value)return!1;const n=o.get(s.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return n.executeCommand(te.id,t)}},Xo={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async o=>{const e=o.get(s.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(te.id,n)}},Zo={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(o,e)=>{if(!e)return!1;const n=o.get(s.ICommandService),t={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"vt",value:e.value}};return n.executeCommand(te.id,t)}},Qo={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(o,e)=>{if(!e)return!1;const n=o.get(s.ICommandService),t={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"ht",value:e.value}};return n.executeCommand(te.id,t)}},er={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(o,e)=>{if(!e)return!1;const n=o.get(s.ICommandService),t={unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,style:{type:"tb",value:e.value}};return n.executeCommand(te.id,t)}},tr={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(o,e)=>{if(!e)return!1;const n=typeof e.value=="number"?{a:e.value}:{a:0,v:s.BooleanNumber.TRUE},t=o.get(s.ICommandService),r={style:{type:"tr",value:n}};return t.executeCommand(te.id,r)}},ks=(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 n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const t=n.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},nr={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(o,e)=>{const n=o.get(s.ICommandService),t=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=ks(o,c);return n.syncExecuteCommand(tt.id,c)?(t.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 n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const t=n.getWorksheets();for(const[,r]of t)if(r.getSheetId()===e.subUnitId)return n.setActiveSheet(r),!0;return!1}},Os=4,Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,e,n)=>{const t=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=t.syncExecuteCommand(ct.id,{unitId:i,subUnitId:a},n);c(u)},Os)})}},on=(o,e)=>{const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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}},pe={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(o,e)=>{var u;const t=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.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 h=a.getColumnOrCreate(m);typeof e.colWidth=="number"?h.w=e.colWidth:h.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 t=o.get(exports.SelectionManagerService).getSelections();if(o.get(exports.SheetInterceptorService),!(t!=null&&t.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,g=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,S=t.filter(P=>P.range.rangeType===s.RANGE_TYPE.COLUMN),f=g?s.RANGE_TYPE.ALL:S.some(({range:P})=>{const{startColumn:U,endColumn:E}=P;return U<=d&&d<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let p;if(f===s.RANGE_TYPE.ALL){const P=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((E,k)=>({startRow:0,endRow:P-1,startColumn:k,endColumn:k}));p={subUnitId:l,unitId:u,colWidth:R,ranges:U}}else f===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:C}=o.get(exports.SheetInterceptorService).onCommandExecute({id:rn.id,params:p}),w=on(o,p),M=r.syncExecuteCommand(pe.id,p),y=s.sequenceExecute([...C],r);return M&&y.result&&i.pushUndoRedo({unitID:u,undoMutations:[{id:pe.id,params:w},...I],redoMutations:[{id:pe.id,params:p},...C]}),!0}},wt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,e)=>{var p,I;const n=o.get(exports.SelectionManagerService),t=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),i=o.get(exports.SheetInterceptorService),a=n.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),h=t.syncExecuteCommand(pe.id,d),{undos:R,redos:g}=o.get(exports.SheetInterceptorService).onCommandExecute({id:wt.id,params:d}),S=i.onCommandExecute({id:wt.id,params:d}),f=s.sequenceExecute([...g,...S.redos],t);return h&&f.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(p=S.preUndos)!=null?p:[],{id:pe.id,params:m},...R],redoMutations:[...(I=S.preRedos)!=null?I:[],{id:pe.id,params:d},...g]}),!0):!1}},or=(o,e)=>{const n=Pt(o.get(s.IUniverInstanceService),e);if(!n)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:t}=n;return{hidden:t.isSheetHidden(),unitId:e.unitId,subUnitId:t.getSheetId()}},Ee={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const t=n.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},rr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(o,e)=>{const n=o.get(s.ICommandService),t=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 h={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},R=or(o,h);return c.getSheets().filter(p=>p.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(i.t("sheets.info.hideSheet")),!1):n.syncExecuteCommand(Ee.id,h)?(t.pushUndoRedo({unitID:l,undoMutations:[{id:Ee.id,params:R}],redoMutations:[{id:Ee.id,params:h}]}),!0):!1}},Ds=(o,e)=>{const n=Pt(o.get(s.IUniverInstanceService),e);if(!n)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:t}=n;return{unitId:e.unitId,name:t.getName(),subUnitId:t.getSheetId()}},yt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(o,e)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(n==null)return!1;const t=n.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},sn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,e)=>{var g,S;const n=o.get(s.ICommandService),t=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=Ds(o,u),d=r.onCommandExecute({id:sn.id,params:e}),m=[...(g=d.preRedos)!=null?g:[],{id:yt.id,params:u},...d.redos],h=[...(S=d.preUndos)!=null?S:[],{id:yt.id,params:l},...d.undos];return await s.sequenceExecute(m,n).result?(t.pushUndoRedo({unitID:a,undoMutations:h,redoMutations:m}),!0):!1}},As=(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 n=o.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!n)return!1;const t=n.getConfig();return t.sheetOrder.splice(e.fromOrder,1),t.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},sr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(o,e)=>{const n=o.get(s.ICommandService),t=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=As(o,l);return n.syncExecuteCommand(nt.id,l)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:nt.id,params:d}],redoMutations:[{id:nt.id,params:l}]}),!0):!1}},xs=2e3,ir=(o,e)=>{const{unitId:n,subUnitId:t,ranges:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(t);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 h=d;h<m+1;h++){const R=l.getRowOrCreate(h);u[h]=R.h}return{unitId:n,subUnitId:t,ranges:r,rowHeight:u}},an=(o,e)=>{const{unitId:n,subUnitId:t,ranges:r}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(t),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let h=d;h<=m;h++){const R=l.getRowOrCreate(h);u[h]=R.ia}return{unitId:n,subUnitId:t,ranges:r,autoHeightInfo:u}},Ws=(o,e)=>{const{unitId:n,subUnitId:t,rowsAutoHeightInfo:r}=e,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=a==null?void 0:a.getSheetBySheetId(t);if(!c)return{unitId:n,subUnitId:t,rowsAutoHeightInfo:[]};const u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:h}=l.getRowOrCreate(m);u.push({row:m,autoHeight:h})}return{unitId:n,subUnitId:t,rowsAutoHeightInfo:u}},Ie={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(o,e)=>{var m;const{unitId:n,subUnitId:t,ranges:r,rowHeight:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:h,endRow:R}of r)for(let g=h;g<=R;g++){const S=d.getRowOrCreate(g);typeof i=="number"?S.h=i:S.h=(m=i[g])!=null?m:l,S.h=Math.min(xs,S.h)}return!0}},ge={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(o,e)=>{var m;const{unitId:n,subUnitId:t,ranges:r,autoHeightInfo:i}=e,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:h,endRow:R}of r)for(let g=h;g<=R;g++){const S=d.getRowOrCreate(g);typeof i=="number"?S.ia=i:S.ia=(m=i[g-h])!=null?m:l}return!0}},cn={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,subUnitId:t,rowsAutoHeightInfo:r}=e,a=o.get(s.IUniverInstanceService).getUnit(n),c=a==null?void 0:a.getSheetBySheetId(t);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 E,k;const t=o.get(exports.SelectionManagerService).getSelections(),r=o.get(exports.SheetInterceptorService);if(!(t!=null&&t.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,h=a.getRowHeight(l)+d,R=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,g=t.filter(F=>F.range.rangeType===s.RANGE_TYPE.ROW),S=R?s.RANGE_TYPE.ALL:g.some(({range:F})=>{const{startRow:B,endRow:b}=F;return B<=l&&l<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;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}));f={subUnitId:c,unitId:u,rowHeight:h,ranges:B}}else S===s.RANGE_TYPE.ROW?f={subUnitId:c,unitId:u,ranges:g.map(F=>s.Rectangle.clone(F.range)),rowHeight:h}:f={subUnitId:c,unitId:u,rowHeight:h,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const p=ir(o,f),I={unitId:u,subUnitId:c,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},C=an(o,I),w=o.get(s.ICommandService),M=o.get(s.IUndoRedoService),y=r.onCommandExecute({id:un.id,params:f}),P=s.sequenceExecute([{id:Ie.id,params:f},{id:ge.id,params:I}],w),U=s.sequenceExecute([...y.redos],w);return P.result&&U.result?(M.pushUndoRedo({unitID:u,undoMutations:[...(E=y.preUndos)!=null?E:[],{id:Ie.id,params:p},{id:ge.id,params:C},...y.undos],redoMutations:[...(k=y.preRedos)!=null?k:[],{id:Ie.id,params:f},{id:ge.id,params:I},...y.redos]}),!0):!1}},ln={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,e)=>{var I,C;const n=o.get(exports.SelectionManagerService),t=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),i=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),c=n.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},h=ir(o,m),R={unitId:l,subUnitId:d,ranges:m.ranges,autoHeightInfo:s.BooleanNumber.FALSE},g=an(o,R),S=s.sequenceExecute([{id:Ie.id,params:m},{id:ge.id,params:R}],t),f=a.onCommandExecute({id:ln.id,params:m}),p=s.sequenceExecute([...f.redos],t);return S.result&&p.result?(r.pushUndoRedo({unitID:l,undoMutations:[...(I=f.preRedos)!=null?I:[],{id:Ie.id,params:h},{id:ge.id,params:g},...f.undos],redoMutations:[...(C=f.preRedos)!=null?C:[],{id:Ie.id,params:m},{id:ge.id,params:R},...f.redos]}),!0):!1}},dn={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(o,e)=>{const n=o.get(s.ICommandService),t=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 h={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},R=an(o,h),g=n.syncExecuteCommand(ge.id,h),{undos:S,redos:f}=o.get(exports.SheetInterceptorService).onCommandExecute({id:dn.id,params:h}),p=s.sequenceExecute([...f],n);return g&&p.result?(t.pushUndoRedo({unitID:c,undoMutations:[{id:ge.id,params:R},...S],redoMutations:[{id:ge.id,params:h},...f]}),!0):!1}},ar={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(o,e)=>{const{unitId:n,subUnitId:t}=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(t);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:n,subUnitId:t,hidden:s.BooleanNumber.FALSE},h=or(o,m),R=r.syncExecuteCommand(Ee.id,m),g={unitId:n,subUnitId:t},S=r.syncExecuteCommand(ct.id,g);return R&&S?(i.pushUndoRedo({unitID:n,undoMutations:[{id:Ee.id,params:h}],redoMutations:[{id:Ee.id,params:m}]}),!0):!1}},cr=o=>{const e=new s.ObjectMatrix;return o.forEach(n=>{s.Range.foreach(n,(t,r)=>{e.setValue(t,r,1)})}),e.forValue((n,t)=>{const r=e.getValue(n-1,t);r&&e.setValue(n,t,r+1)}),e},ur=o=>{const e=o;return e.forValue((n,t)=>{const r=o.getValue(n-1,t);r&&e.setValue(n,t,r+1)}),e},Nn=o=>{const e={area:0},n=(t,r)=>e.area<t?(e.area=t,e.range=r,!0):!1;return o.forValue((t,r,i)=>{let a=1,c=i;n(a*c,{startRow:t-c+1,endRow:t,startColumn:r,endColumn:r});const u={startRow:t-c+1,endRow:t,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&o.getValue(t,l);l--){c=Math.min(o.getValue(t,l)||0,c),a++;const d=c*a;u.startColumn=l,u.startRow=t-c+1,n(d,u)}}),e},Ls=(o,e)=>(s.Range.foreach(e,(n,t)=>{o.realDeleteValue(n,t);let r=n+1,i=o.getValue(r,t)||0;for(;i>1;)o.setValue(r,t,i-1),r+=1,i=o.getValue(r,t)||0}),o),mn=o=>{const e=[];let n=Nn(o);for(;n.area>0;)n.range&&(e.push(n.range),Ls(o,n.range)),n=Nn(o);return e},hn=o=>{const e=cr(o);return mn(e)};class Vs{constructor(){v(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(n=>{s.Range.foreach(n,(t,r)=>{this._matrix.setValue(t,r,1)})}),this}subtract(...e){return e.forEach(n=>{s.Range.foreach(n,(t,r)=>{this._matrix.realDeleteValue(t,r)})}),this}merge(){const e=ur(this._matrix);return mn(e)}}const $s=(o,e,n="")=>o.reduce((t,r)=>{const i=r&&r[e];return typeof i!="string"?(console.warn(r,`${e} is not string`),t):(i?(t[i]||(t[i]=[]),t[i].push(r)):t[n].push(r),t)},{}),Bs=(o=0)=>{let e=o;return function(){return e++}},Be=V.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Be);const js=(o,e)=>{const n=o.get(Be),{values:t,unitId:r,subUnitId:i}=e,a=[],c=[];Object.keys(t).forEach(l=>{t[l].ranges.forEach(m=>{s.Range.foreach(m,(h,R)=>{const g=n.getValue(r,i,h,R);g?a.push({pattern:g.pattern,row:h,col:R}):c.push({startColumn:R,endColumn:R,startRow:h,endRow:h})})})});const u=[];if(a.length){const l=_t(r,i,a);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=hn(m.ranges)}),u.push({id:$t.id,params:_t(r,i,a)})}return c.length&&u.push({id:gn.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:n,refMap:t}=e,r=o.get(Be),i=e.unitId,a=e.subUnitId,c=Object.keys(n).reduce((u,l)=>{const d=t[l],m=n[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},gn={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(o,e)=>{if(!e)return!1;const{unitId:n,subUnitId:t,ranges:r}=e;return o.get(Be).deleteValues(n,t,r),!0}},Fs=(o,e)=>{const n=o.get(Be),{ranges:t,unitId:r,subUnitId:i}=e,a=[];if(t.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=n.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=hn(l.ranges)}),[{id:$t.id,params:c}]},_t=(o,e,n)=>{const t=$s(n,"pattern"),r={},i={},a=Bs();return Object.keys(t).forEach(c=>{const u=t[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}},lr={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},dr={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const n=o.get(s.ICommandService),t=o.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return n.syncExecuteCommand(se.SetDefinedNameMutation.id,r)?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:se.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:se.SetDefinedNameMutation.id,params:r}]}),!0):!1}},mr={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const n=o.get(s.ICommandService),t=o.get(s.IUndoRedoService);if(!e)return!1;const r={...e};return n.syncExecuteCommand(se.RemoveDefinedNameMutation.id,r)?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:se.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},hr={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(o,e)=>{const n=o.get(s.ICommandService),t=o.get(s.IUndoRedoService);return e&&n.syncExecuteCommand(se.SetDefinedNameMutation.id,e.newDefinedName)?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:e.oldDefinedName}],redoMutations:[{id:se.SetDefinedNameMutation.id,params:e.newDefinedName}]}),!0):!1}},gr={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 n=o.get(s.IUniverInstanceService).getUnit(e.unitId,s.UniverInstanceType.UNIVER_SHEET);return n?(n.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 Hs=Object.defineProperty,Gs=Object.getOwnPropertyDescriptor,qs=(o,e,n,t)=>{for(var r=t>1?void 0:t?Gs(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Hs(e,n,r),r};exports.WorksheetProtectionRuleModel=class{constructor(){v(this,"_model",new Map);v(this,"_ruleChange",new he.Subject);v(this,"_ruleRefresh",new he.Subject);v(this,"_resetOrder",new he.Subject);v(this,"ruleChange$",this._ruleChange.asObservable());v(this,"ruleRefresh$",this._ruleRefresh.asObservable());v(this,"resetOrder$",this._resetOrder.asObservable());v(this,"_worksheetRuleInitStateChange",new he.BehaviorSubject(!1));v(this,"worksheetRuleInitStateChange$",this._worksheetRuleInitStateChange.asObservable())}changeRuleInitState(e){this._worksheetRuleInitStateChange.next(e)}addRule(e,n){this._ensureSubUnitMap(e).set(n.subUnitId,n),this._ruleChange.next({unitId:e,rule:n,type:"add",subUnitId:n.subUnitId})}deleteRule(e,n){var r,i,a;const t=(i=(r=this._model)==null?void 0:r.get(e))==null?void 0:i.get(n);t&&((a=this._model.get(e))==null||a.delete(n),this._ruleChange.next({unitId:e,rule:t,type:"delete",subUnitId:n}))}setRule(e,n,t){var i,a;const r=this.getRule(e,n);r&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.set(n,t),this._ruleChange.next({unitId:e,oldRule:r,rule:t,type:"set",subUnitId:n}))}getRule(e,n){var t,r;return(r=(t=this._model)==null?void 0:t.get(e))==null?void 0:r.get(n)}toObject(){const e={};return[...this._model.keys()].forEach(t=>{const r=this._model.get(t);r!=null&&r.size&&(e[t]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[t].push(c)}))}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(t=>{const r=e[t];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),n.set(t,i)}}),this._model=n}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let n=this._model.get(e);return n||(n=new Map,this._model.set(e,n)),n}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 Rr={id:"sheet.mutation.add-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,rule:t}=e;return o.get(exports.WorksheetProtectionRuleModel).addRule(n,t),!0}},Sr={id:"sheet.mutation.set-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,subUnitId:t,rule:r}=e;return o.get(exports.WorksheetProtectionRuleModel).setRule(n,t,r),!0}},vr={id:"sheet.mutation.delete-worksheet-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,subUnitId:t}=e;return o.get(exports.WorksheetProtectionRuleModel).deleteRule(n,t),!0}},Ue=()=>[Yn,Yt],ft=()=>[Gn,to,eo,so,oo,Zn,Xn,Qn,ro,qn,zn,Jn,Kn,no],zs=[_.Copy,_.DeleteColumn,_.DeleteRow,_.EditExtraObject,_.Filter,_.InsertColumn,_.InsertRow,_.InsertHyperlink,_.PivotTable,_.SetCellStyle,_.SetCellValue,_.SetColumnStyle,_.SetRowStyle,_.Sort];var Ys=Object.defineProperty,Ks=Object.getOwnPropertyDescriptor,Js=(o,e,n,t)=>{for(var r=t>1?void 0:t?Ks(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Ys(e,n,r),r};exports.WorksheetProtectionPointModel=class{constructor(){v(this,"_model",new Map);v(this,"_pointChange",new he.Subject);v(this,"pointChange$",this._pointChange.asObservable())}addRule(e){this._ensureSubUnitMap(e.unitId).set(e.subUnitId,e),this._pointChange.next(e)}deleteRule(e,n){var r,i,a;const t=(r=this._model.get(e))==null?void 0:r.get(n);t&&((a=(i=this._model)==null?void 0:i.get(e))==null||a.delete(n),this._pointChange.next(t))}getRule(e,n){var t,r;return(r=(t=this._model)==null?void 0:t.get(e))==null?void 0:r.get(n)}toObject(){const e={};return[...this._model.keys()].forEach(t=>{const r=this._model.get(t);r!=null&&r.size&&(e[t]=[],[...r.keys()].forEach(a=>{const c=r.get(a);c&&e[t].push(c)}))}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(t=>{const r=e[t];if(r!=null&&r.length){const i=new Map;r.forEach(a=>{i.set(a.subUnitId,a)}),n.set(t,i)}}),this._model=n}deleteUnitModel(){this._model.clear()}_ensureSubUnitMap(e){let n=this._model.get(e);return n||(n=new Map,this._model.set(e,n)),n}};exports.WorksheetProtectionPointModel=Js([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorksheetProtectionPointModel)],exports.WorksheetProtectionPointModel);var Xs=Object.defineProperty,Zs=Object.getOwnPropertyDescriptor,Qs=(o,e,n,t)=>{for(var r=t>1?void 0:t?Zs(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Xs(e,n,r),r},Oe=(o,e)=>(n,t)=>e(n,t,o);const ei="SHEET_WORKSHEET_PROTECTION_PLUGIN",ti="SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN";exports.WorksheetPermissionService=class extends s.RxDisposable{constructor(e,n,t,r,i,a,c){super(),this._permissionService=e,this._univerInstanceService=n,this._injector=t,this._worksheetProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=i,this._resourceManagerService=a,this._sheetInterceptorService=c,this._init(),this._initRuleChange(),this._initRuleSnapshot(),this._initPointSnapshot()}_init(){const e=n=>{const t=n.getUnitId(),r=i=>{const a=i.getSheetId();[...Ue(),...ft()].forEach(c=>{const u=new c(t,a);this._permissionService.addPermissionPoint(u)})};n.getSheets().forEach(i=>{r(i)}),n.sheetCreated$.subscribe(i=>{r(i)}),n.sheetDisposed$.subscribe(i=>{const a=i.getSheetId();[...Ue(),...ft()].forEach(c=>{const u=new c(t,a);this._permissionService.deletePermissionPoint(u.id)})})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(n=>{e(n)}),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(n=>{n.getSheets().forEach(t=>{const r=n.getUnitId(),i=t.getSheetId();Ue().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":{Ue().forEach(n=>{const t=new n(e.unitId,e.subUnitId);this._permissionService.addPermissionPoint(t)});break}case"delete":{Ue().forEach(n=>{const t=new n(e.unitId,e.subUnitId);this._permissionService.deletePermissionPoint(t.id)});break}case"set":{Ue().forEach(n=>{const t=new n(e.unitId,e.subUnitId);this._permissionService.updatePermissionPoint(t.id,e.rule)});break}}}))}_initRuleSnapshot(){const e=()=>{const t=this._worksheetProtectionRuleModel.toObject();return JSON.stringify(t)},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:ei,businesses:[Mt.UNIVER_SHEET],onLoad:(t,r)=>{this._worksheetProtectionRuleModel.fromObject(r),Object.keys(r).forEach(i=>{Ue().forEach(a=>{const c=new a(t,i);this._permissionService.addPermissionPoint(c)})}),this._worksheetProtectionRuleModel.changeRuleInitState(!0)},onUnLoad:()=>{this._worksheetProtectionRuleModel.deleteUnitModel()}}))}_initPointSnapshot(){const e=()=>{const t=this._worksheetProtectionPointRuleModel.toObject();return JSON.stringify(t)},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:ti,businesses:[Mt.UNIVER_SHEET],onLoad:(t,r)=>{this._worksheetProtectionPointRuleModel.fromObject(r),Object.keys(r).forEach(i=>{ft().forEach(a=>{const c=new a(t,i);this._permissionService.addPermissionPoint(c)})})},onUnLoad:()=>{this._worksheetProtectionPointRuleModel.deleteUnitModel()}}))}};exports.WorksheetPermissionService=Qs([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 fr={id:"sheet.mutation.set-worksheet-permission-points",type:s.CommandType.MUTATION,handler:(o,e)=>{const{rule:n}=e;return o.get(exports.WorksheetProtectionPointModel).addRule(n),!0}},Cr={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-permission-points",async handler(o,e){if(!e)return!1;const n=o.get(s.ICommandService),{rule:t}=e;return n.executeCommand(fr.id,{rule:t,unitId:t.unitId,subUnitId:t.subUnitId}),!0}};var ni=Object.defineProperty,oi=Object.getOwnPropertyDescriptor,ri=(o,e,n,t)=>{for(var r=t>1?void 0:t?oi(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&ni(e,n,r),r};exports.RangeProtectionRuleModel=class{constructor(){v(this,"_model",new Map);v(this,"_ruleChange",new he.Subject);v(this,"ruleChange$",this._ruleChange.asObservable());v(this,"_ruleRefresh",new he.Subject);v(this,"ruleRefresh$",this._ruleRefresh.asObservable());v(this,"_rangeRuleInitStateChange",new he.BehaviorSubject(!1));v(this,"rangeRuleInitStateChange$",this._rangeRuleInitStateChange.asObservable())}ruleRefresh(e){this._ruleRefresh.next(e)}changeRuleInitState(e){this._rangeRuleInitStateChange.next(e)}addRule(e,n,t){this._ensureRuleMap(e,n).set(t.id,t),this._ruleChange.next({unitId:e,subUnitId:n,rule:t,type:"add"})}deleteRule(e,n,t){var i,a,c,u;const r=(a=(i=this._model.get(e))==null?void 0:i.get(n))==null?void 0:a.get(t);r&&((u=(c=this._model.get(e))==null?void 0:c.get(n))==null||u.delete(t),this._ruleChange.next({unitId:e,subUnitId:n,rule:r,type:"delete"}))}setRule(e,n,t,r){var a,c;const i=this.getRule(e,n,t);i&&((c=(a=this._model.get(e))==null?void 0:a.get(n))==null||c.set(t,r),this._ruleChange.next({unitId:e,subUnitId:n,oldRule:i,rule:r,type:"set"}))}getRule(e,n,t){var r,i;return(i=(r=this._model.get(e))==null?void 0:r.get(n))==null?void 0:i.get(t)}getSubunitRuleList(e,n){var r;return[...(((r=this._model.get(e))==null?void 0:r.get(n))||new Map).values()]}_ensureRuleMap(e,n){let t=this._model.get(e);t||(t=new Map,this._model.set(e,t));let r=t.get(n);return r||(r=new Map,t.set(n,r)),r}toObject(){const e={};return[...this._model.keys()].forEach(t=>{const r=this._model.get(t),i=[...r.keys()];e[t]={},i.forEach(a=>{const c=r.get(a);e[t][a]=[...c.values()]})}),e}fromObject(e){const n=new Map;Object.keys(e).forEach(t=>{const r=e[t],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)}),n.set(t,i)}),this._model=n}deleteUnitModel(){this._model.clear()}createRuleId(e,n){let t=s.Tools.generateRandomId(4);const r=this._ensureRuleMap(e,n);for(;r.has(t);)t=s.Tools.generateRandomId(4);return t}};exports.RangeProtectionRuleModel=ri([s.OnLifecycle(s.LifecycleStages.Starting,exports.RangeProtectionRuleModel)],exports.RangeProtectionRuleModel);const si=(o,e)=>{const n=o.get(exports.RangeProtectionRuleModel),t=e.ruleIds.map(i=>n.getRule(e.unitId,e.subUnitId,i)).filter(i=>!!i);return{id:Ke.id,params:{subUnitId:e.subUnitId,unitId:e.unitId,rules:t}}},Ye={id:"sheet.mutation.delete-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,subUnitId:t,ruleIds:r}=e,i=o.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.deleteRule(n,t,a)}),!0}},ii=o=>{const e={...o,ruleIds:o.rules.map(n=>n.id)};return{id:Ye.id,params:e}},Ke={id:"sheet.mutation.add-range-protection",type:s.CommandType.MUTATION,handler:(o,e)=>{const{unitId:n,subUnitId:t,rules:r}=e,i=o.get(exports.RangeProtectionRuleModel);return r.forEach(a=>{i.addRule(n,t,a)}),!0}},vn={type:s.CommandType.COMMAND,id:"sheet.command.add-range-protection",async handler(o,e){if(!e)return!1;const n=o.get(s.ICommandService),t=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,h=[{ranges:l,permissionId:a,id:r.createRuleId(c,u),name:d,description:m,unitType:i.unitType,unitId:c,subUnitId:u}];if(await n.executeCommand(Ke.id,{unitId:c,subUnitId:u,rules:h})){const g=[{id:Ke.id,params:{unitId:c,subUnitId:u,rules:h}}],S=[{id:Ye.id,params:{unitId:c,subUnitId:u,ruleIds:h.map(f=>f.id)}}];t.pushUndoRedo({unitID:c,redoMutations:g,undoMutations:S})}return!0}},pr={type:s.CommandType.COMMAND,id:"sheet.command.delete-range-protection",async handler(o,e){if(!e)return!1;const n=o.get(s.ICommandService),t=o.get(s.IUndoRedoService),{unitId:r,subUnitId:i,rule:a}=e,c={unitId:r,subUnitId:i,ruleIds:[a.id]};return await n.executeCommand(Ye.id,c)&&t.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:n,subUnitId:t,rule:r,ruleId:i}=e;return o.get(exports.RangeProtectionRuleModel).setRule(n,t,i,r),!0}},ai=(o,e)=>{const{unitId:n,subUnitId:t,ruleId:r}=e,a=o.get(exports.RangeProtectionRuleModel).getRule(n,t,r);return a?{id:ee.id,params:{...e,rule:a}}:null},fn={type:s.CommandType.COMMAND,id:"sheet.command.set-range-protection",async handler(o,e){if(!e)return!1;const n=o.get(s.ICommandService),t=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:h}=i;if(i.id){const R={unitId:u,subUnitId:l,ruleId:i.id,rule:{ranges:d,permissionId:a,id:t.createRuleId(u,l),name:m,description:h}};if(await n.executeCommand(ee.id,R)){const S=[{id:ee.id,params:R}],f=[{id:ee.id,params:{unitId:u,subUnitId:l,ruleId:i.id,rule:c}}];r.pushUndoRedo({unitID:u,redoMutations:S,undoMutations:f})}}return!0}},Ir="maxCellsPerSheet",ci=3e6,Mr="ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY";var ui=Object.defineProperty,li=Object.getOwnPropertyDescriptor,di=(o,e,n,t)=>{for(var r=t>1?void 0:t?li(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&ui(e,n,r),r},jt=(o,e)=>(n,t)=>e(n,t,o);let Ct=class extends s.Disposable{constructor(o,e,n){var r;super(),this._commandService=o,this._configService=e,this._dataSyncPrimaryController=n,[z,_e,ye,De,Fe,Ne,ke,Ce,be,Je,G,gn,H,Rn,yt,$t,lr].forEach(i=>{var a;this._commandService.registerCommand(i),(a=this._dataSyncPrimaryController)==null||a.registerSyncingMutations(i)}),((r=this._configService.getConfig(Mr))!=null?r:!1)||[bt,qt,Ut,Fn,Nt,kt,rn,un,Eo,To,Ve,Ot,Dt,Uo,bo,Le,No,xt,Tt,At,at,it,Qt,Lo,Xo,Ko,Jo,Vo,jo,Xe,$o,Bo,en,He,Ge,wt,Ms,Go,Te,Qo,st,ln,nn,ze,qe,Fo,qo,Wt,Lt,te,nr,tt,Yo,tr,er,Zo,Sn,Vt,ct,pe,rr,Ee,sn,sr,nt,cn,Ie,dn,ge,K,gr,dr,mr,hr,ar,Cr,Rr,Sr,vr,fr,vn,pr,fn,Ke,Ye,ee].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i))),this._configService.setConfig(Ir,ci)}};Ct=di([s.OnLifecycle(s.LifecycleStages.Starting,Ct),jt(0,s.ICommandService),jt(1,s.IConfigService),jt(2,V.Optional(Ar.DataSyncPrimaryController))],Ct);var mi=Object.defineProperty,hi=Object.getOwnPropertyDescriptor,gi=(o,e,n,t)=>{for(var r=t>1?void 0:t?hi(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&mi(e,n,r),r},kn=(o,e)=>(n,t)=>e(n,t,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:n}=e,t=Object.keys(n),r=[];return t.forEach(a=>{const c=n[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),h={subUnitId:l,unitId:a,cellValue:m};r.push({id:z.id,params:h})})}),r.every(a=>this._commandService.executeCommand(a.id,a.params,{onlyLocal:!0}))}))}_getMergedCellData(o,e,n){const t=this._univerInstanceService.getUniverSheetInstance(o),r=t==null?void 0:t.getStyles(),i=t==null?void 0:t.getSheetBySheetId(e),a=i==null?void 0:i.getCellMatrix(),c=new s.ObjectMatrix(n);return c.forValue((u,l,d)=>{const m=a==null?void 0:a.getValue(u,l),h=se.handleNumfmtInCell(m,d,r);c.setValue(u,l,h)}),c.clone()}};pt=gi([s.OnLifecycle(s.LifecycleStages.Ready,pt),kn(0,V.Inject(s.IUniverInstanceService)),kn(1,s.ICommandService)],pt);var Ri=Object.defineProperty,Si=Object.getOwnPropertyDescriptor,vi=(o,e,n,t)=>{for(var r=t>1?void 0:t?Si(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Ri(e,n,r),r},dt=(o,e)=>(n,t)=>e(n,t,o);let It=class extends s.Disposable{constructor(o,e,n,t){super(),this._commandService=o,this._featureCalculationManagerService=e,this._univerInstanceService=n,this._formulaDataModel=t}_initialize(){const o="test",e="workbook-01",n="sheet-0011",t={[e]:{[n]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[e]:{[n]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(o,{unitId:e,subUnitId:n,dependencyRanges:[{unitId:e,sheetId:n,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:t,dirtyRanges:r})})}};It=vi([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 x={MoveRangeCommandId:Hn,InsertRowCommandId:_o,InsertColCommandId:Po,RemoveColCommandId:Wo,RemoveRowCommandId:xo,DeleteRangeMoveLeftCommandId:Mo,DeleteRangeMoveUpCommandId:wo,InsertRangeMoveDownCommandId:Ss,InsertRangeMoveRightCommandId:yo,MoveColsCommandId:Ao,MoveRowsCommandId:Do};var L=(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))(L||{});const mt=Number.MAX_SAFE_INTEGER,fe=o=>{const e={...o},n=Number.isNaN(e.startRow)&&Number.isNaN(e.endRow)&&!Number.isNaN(e.startColumn)&&!Number.isNaN(e.endColumn),t=Number.isNaN(e.startColumn)&&Number.isNaN(e.endColumn)&&!Number.isNaN(e.startRow)&&!Number.isNaN(e.endRow);return(e.rangeType===s.RANGE_TYPE.COLUMN||n)&&(e.startRow=0,e.endRow=mt),(e.rangeType===s.RANGE_TYPE.ROW||t)&&(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,n)=>{const t={...n},r={...e},i=(S,f)=>{const p=Math.max(S.start,f.start),I=Math.min(S.end,f.end);return I<p?null:{start:p,end:I}},a=S=>S.end-S.start+1,c=(S,f)=>({start:S.start-f.start,end:S.start-f.start+S.end-S.start}),u=(S,f)=>({start:f.start+S.start,end:f.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,h=i(o,t),R=h&&a(h)>=a(t);if(o.end<t.start)t.start-=d,t.end-=d;else if(h){const S=a(h);if(R){const f=c(t,o),p=u(f,r);t.start=p.start,t.end=p.end}else h.start>o.start?l?(t.end-=S+d,t.start-=d):t.end-=S:l?t.end-=S:t.start>o.start&&t.end>o.end?(t.start-=d,t.end-=d+S):t.end-=S}const g=i(r,t);return R||(r.start<=t.start?(t.start+=m,t.end+=m):g&&(l?r.end<=t.start||r.start<=t.start&&r.end>=t.start?(t.start+=m,t.end+=m):r.start>=t.start&&r.start<=t.end&&(t.end+=m):t.start<r.start&&t.end>r.start?t.end+=m:(t.start>=r.end||t.start>=r.start&&t.start<=r.end)&&(t.end+=m,t.start+=m))),{step:t.start-n.start,length:a(t)-a(n)}},Cn=(o,e)=>{const{fromRange:n,toRange:t}=o.params||{};if(!t||!n)return[];const r=fe(n),i=fe(t),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:L.Delete}]:[{type:L.VerticalMove,step:c.step||0,length:c.length||0}]},fi=(o,e)=>{const{fromRange:n,toRange:t}=o.params||{};if(!n||!t)return[e];const{startRow:r}=n,{startRow:i}=t,a=t.endRow-t.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:n,toRange:t}=o.params||{};if(!t||!n)return[];const r=fe(n),i=fe(t),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:L.Delete}]:[{type:L.HorizontalMove,step:c.step||0,length:c.length||0}]},Ci=(o,e)=>{const{fromRange:n,toRange:t}=o.params||{};if(!n||!t)return[e];const{startColumn:r}=n,{startColumn:i}=t,a=t.endColumn-t.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)},wr=(o,e)=>{var i,a;const n=(i=o.params)==null?void 0:i.toRange,t=(a=o.params)==null?void 0:a.fromRange;if(!n||!t)return[];const r=[];if(s.Rectangle.contains(n,e)&&r.push({type:L.Delete}),s.Rectangle.contains(t,e)){r.push({type:L.Delete});const c=s.Rectangle.getRelativeRange(e,t),u=s.Rectangle.getPositionRange(c,n);return[{type:L.Set,range:u}]}return r},pi=(o,e)=>{var m,h;const n=(m=o.params)==null?void 0:m.toRange,t=(h=o.params)==null?void 0:h.fromRange;if(!n||!t)return[e];if(!s.Rectangle.intersects(t,e)&&!s.Rectangle.intersects(n,e))return[e];if(s.Rectangle.contains(t,e)){const R=s.Rectangle.getRelativeRange(e,t);return[s.Rectangle.getPositionRange(R,n)]}const r=new s.ObjectMatrix;s.Range.foreach(e,(R,g)=>{r.setValue(R,g,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(t,e);a&&s.Range.foreach(a,(R,g)=>{r.getValue(R,g)&&(r.setValue(R,g,void 0),i.setValue(R,g,1))});const c=n.startColumn-t.startColumn,u=n.startRow-t.startRow,l={startColumn:n.startColumn-c,endColumn:n.endColumn-c,startRow:n.startRow-u,endRow:n.endRow-u};return l&&s.Range.foreach(l,(R,g)=>{var p;const S=R+u,f=g+c;r.setValue(S,f,(p=i.getValue(R,g))!=null?p:0)}),s.queryObjectMatrix(r,R=>R===1)},Ae=(o,e)=>{const n=fe(o),t=fe(e),r=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(n.startRow<=t.startRow&&n.endRow>=t.endRow){if(t.startColumn<n.startColumn&&t.endColumn>=n.startColumn&&t.endColumn<=n.endColumn||t.startColumn<n.startColumn&&t.endColumn>=n.endColumn){const a=s.Rectangle.getIntersects(t,n);if(a)return{step:0,length:-r(a)}}if(t.startColumn>=n.startColumn&&t.endColumn<=n.endColumn&&i(n)>=i(t))return null;if(t.startColumn>=n.startColumn&&t.startColumn<=n.endColumn&&t.endColumn>n.endColumn){const a=s.Rectangle.getIntersects(t,n);if(a){const c=-r(a);return{step:-(r(n)-r(a)),length:c}}}if(t.startColumn>n.endColumn)return{step:-r(n),length:0}}return{step:0,length:0}},In=(o,e)=>{var i;const n=(i=o.params)==null?void 0:i.range;if(!n)return[];const t=[],r=Ae(n,e);if(!r)t.push({type:L.Delete});else{const{step:a,length:c}=r;t.push({type:L.HorizontalMove,step:a,length:c})}return t},Mn=(o,e)=>{var i;const n=(i=o.params)==null?void 0:i.range;if(!n)return[];const t=[],r=Ae(le(n),le(e));if(!r)t.push({type:L.Delete});else{const{step:a,length:c}=r;t.push({type:L.VerticalMove,step:a,length:c})}return t},xe=(o,e)=>{const n=fe(o),t=fe(e),r=i=>i.endColumn-i.startColumn+1;if(n.startRow<=t.startRow&&n.endRow>=t.endRow){if(t.startColumn<n.startColumn&&t.endColumn>=n.startColumn&&t.endColumn<=n.endColumn||t.startColumn<n.startColumn&&t.endColumn>=n.endColumn)return{step:0,length:r(n)};if(t.startColumn>=n.startColumn&&t.endColumn<=n.endColumn||t.startColumn>n.startColumn&&t.startColumn<=n.endColumn&&t.endColumn>n.endColumn||t.startColumn>=n.endColumn)return{step:r(n),length:0}}return{step:0,length:0}};function Ii(o,e,n){const t=[];if(s.Rectangle.contains(e,n)&&t.push({type:L.Delete}),s.Rectangle.contains(o,n)){t.push({type:L.Delete});const r=s.Rectangle.getRelativeRange(n,o),i=s.Rectangle.getPositionRange(r,e);return[{type:L.Set,range:i}]}return t}const wn=(o,e)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const t=[],r=xe(le(n),le(e)),{step:i,length:a}=r;return t.push({type:L.VerticalMove,step:i,length:a}),t},yn=(o,e)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const t=[],r=xe(n,e),{step:i,length:a}=r;return t.push({type:L.HorizontalMove,step:i,length:a}),t},yr=(o,e)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const t=[],r=xe(le(n),le(e)),{step:i,length:a}=r;return t.push({type:L.VerticalMove,step:i,length:a}),t},Mi=(o,e)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[e];const t=n.endRow-n.startRow+1,r={...n,startRow:n.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+t,d,1)}),s.queryObjectMatrix(c,l=>l===1)},_r=(o,e)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const t=[],r=xe(n,e),{step:i,length:a}=r;return t.push({type:L.HorizontalMove,step:i,length:a}),t},wi=(o,e)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[e];const t=n.endColumn-n.startColumn+1,r={...n,startColumn:n.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+t,1)}),s.queryObjectMatrix(c,l=>l===1)},br=(o,e)=>{var i;const n=(i=o.params)==null?void 0:i.range;if(!n)return[];const t=[],r=Ae(n,e);if(!r)t.push({type:L.Delete});else{const{step:a,length:c}=r;t.push({type:L.HorizontalMove,step:a,length:c})}return t},yi=(o,e)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[e];const t={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},r=n.endColumn-n.startColumn+1,i=s.Rectangle.getIntersects(n,e),a=s.Rectangle.subtract(e,t),c=s.Rectangle.getIntersects(t,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,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},Ur=(o,e)=>{var i;const n=(i=o.params)==null?void 0:i.range;if(!n)return[];const t=[],r=Ae(le(n),le(e));if(!r)t.push({type:L.Delete});else{const{step:a,length:c}=r;t.push({type:L.VerticalMove,step:a,length:c})}return t},_i=(o,e)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[e];const t={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},r=n.endRow-n.startRow+1,i=s.Rectangle.getIntersects(n,e),a=s.Rectangle.subtract(e,t),c=s.Rectangle.getIntersects(t,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,h)=>{u.setValue(m,h,1)})}),s.queryObjectMatrix(u,d=>d===1)},We=(o,e)=>{let n={...e};return o.forEach(t=>{switch(t.type){case L.Delete:{n=null;break}case L.HorizontalMove:{if(!n)return;n.startColumn+=t.step,n.endColumn+=t.step+(t.length||0);break}case L.VerticalMove:{if(!n)return;n.startRow+=t.step,n.endRow+=t.step+(t.length||0);break}case L.Set:{n=t.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},bi=(o,e)=>{let n=[];switch(e.id){case x.DeleteRangeMoveLeftCommandId:{n=br(e,o);break}case x.DeleteRangeMoveUpCommandId:{n=Ur(e,o);break}case x.InsertColCommandId:{n=yn(e,o);break}case x.InsertRangeMoveDownCommandId:{n=yr(e,o);break}case x.InsertRangeMoveRightCommandId:{n=_r(e,o);break}case x.InsertRowCommandId:{n=wn(e,o);break}case x.MoveColsCommandId:{n=pn(e,o);break}case x.MoveRangeCommandId:{n=wr(e,o);break}case x.MoveRowsCommandId:{n=Cn(e,o);break}case x.RemoveColCommandId:{n=In(e,o);break}case x.RemoveRowCommandId:{n=Mn(e,o);break}}return We(n,o)},Ui=(o,e)=>{let n=[];switch(e.id){case x.DeleteRangeMoveLeftCommandId:return yi(e,o);case x.DeleteRangeMoveUpCommandId:return _i(e,o);case x.InsertRangeMoveDownCommandId:return Mi(e,o);case x.InsertRangeMoveRightCommandId:return wi(e,o);case x.InsertColCommandId:{n=yn(e,o);break}case x.InsertRowCommandId:{n=wn(e,o);break}case x.MoveColsCommandId:return Ci(e,o);case x.MoveRangeCommandId:return pi(e,o);case x.MoveRowsCommandId:return fi(e,o);case x.RemoveColCommandId:{n=In(e,o);break}case x.RemoveRowCommandId:{n=Mn(e,o);break}}return We(n,o)};function Pi(o,e){const{id:n,params:t}=e;let r={length:0,step:0,type:L.Unknown};switch(n){case Je.id:r.type=L.Delete;break;case Ne.id:r=ot({start:t.sourceRange.startRow,end:t.sourceRange.endRow},{start:t.targetRange.startRow,end:t.targetRange.endRow},{start:o.startRow,end:o.endRow}),r.type=L.VerticalMove;break;case ke.id:r=ot({start:t.sourceRange.startColumn,end:t.sourceRange.endColumn},{start:t.targetRange.startColumn,end:t.targetRange.endColumn},{start:o.startColumn,end:o.endColumn});break;case Ce.id:r=Ae(t.range,o),r?r.type=L.HorizontalMove:r={step:0,length:0,type:L.Delete};break;case be.id:r=Ae(le(t.range),le(o)),r?r.type=L.VerticalMove:r={step:0,length:0,type:L.Delete};break;case ye.id:r=xe(le(t.range),le(o)),r.type=L.VerticalMove;break;case _e.id:r=xe(t.range,o),r.type=L.HorizontalMove;break;case Fe.id:r=Ii(new s.ObjectMatrix(t.from).getRange(),new s.ObjectMatrix(t.to).getRange(),o);break}return r?Array.isArray(r)?We(r,o):We([r],o):o}var Ti=Object.defineProperty,Ei=Object.getOwnPropertyDescriptor,Ni=(o,e,n,t)=>{for(var r=t>1?void 0:t?Ei(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Ti(e,n,r),r},ht=(o,e)=>(n,t)=>e(n,t,o);const ki=s.createInterceptorKey("MERGE_REDO"),Oi=s.createInterceptorKey("MERGE_UNDO");class Di extends s.Disposable{constructor(e,n,t,r,i=!1){super(),this._unitId=e,this._subUnitId=n,this._range=t,this._callback=r,this._skipIntersects=i}onMutation(e){if(e.params.unitId!==this._unitId||e.params.subUnitId!==this._subUnitId||!this._range)return;const n=Pi(this._range,e);if(n&&s.Rectangle.equals(n,this._range))return!1;const t=this._range;this._range=n,this._callback(t,n)}}exports.RefRangeService=class extends s.Disposable{constructor(n,t,r,i){super();v(this,"interceptor",new s.InterceptorManager({MERGE_REDO:ki,MERGE_UNDO:Oi}));v(this,"_watchRanges",new Set);v(this,"_refRangeManagerMap",new Map);v(this,"_serializer",Ai());v(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const t=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=On(this._univerInstanceService),i=Dn(this._univerInstanceService),u=((()=>{switch(n.id){case x.MoveColsCommandId:{const R=n.params,g=Math.min(R.fromRange.startColumn,R.toRange.startColumn);return this._checkRange([{...R.fromRange,startColumn:g,endColumn:t.getColumnCount()-1}],r,i)}case x.MoveRowsCommandId:{const R=n.params,g=Math.min(R.fromRange.startRow,R.toRange.startRow);return this._checkRange([{...R.fromRange,startRow:g,endRow:t.getRowCount()-1}],r,i)}case x.MoveRangeCommandId:{const R=n;return this._checkRange([R.params.fromRange,R.params.toRange],r,i)}case x.InsertRowCommandId:{const S={startRow:n.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([S],r,i)}case x.InsertColCommandId:{const g=n.params.range.startColumn,S={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([S],r,i)}case x.RemoveRowCommandId:{const S={startRow:n.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([S],r,i)}case x.RemoveColCommandId:{const g=n.params.range.startColumn,S={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([S],r,i)}case x.DeleteRangeMoveUpCommandId:case x.InsertRangeMoveDownCommandId:{const g=n.params.range||An(this._selectionManagerService)[0],S={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([S],r,i)}case x.DeleteRangeMoveLeftCommandId:case x.InsertRangeMoveRightCommandId:{const g=n.params.range||An(this._selectionManagerService)[0],S={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([S],r,i)}}})()||[]).reduce((R,g)=>{const S=g(n);return R.push(S),R},[]).reduce((R,g)=>{var S,f;return R.redos.push(...g.redos),R.undos.push(...g.undos),R.preRedos.push(...(S=g.preRedos)!=null?S:[]),R.preUndos.push(...(f=g.preUndos)!=null?f:[]),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)||[],h=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:h,preRedos:l,preUndos:m}}})});v(this,"_checkRange",(n,t,r)=>{const i=xn(t,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),h={...m,startRow:+m.startRow,endRow:+m.endRow,startColumn:+m.startColumn,endColumn:+m.endColumn};n.some(R=>s.Rectangle.intersects(R,h))&&d&&d.forEach(R=>{c.add(R)})}),[...c]}return[]});v(this,"registerRefRange",(n,t,r,i)=>{const a=r||On(this._univerInstanceService),c=i||Dn(this._univerInstanceService),u=xn(a,c),l=this._serializer.serialize(n);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(t):d.set(l,new Set([t])),s.toDisposable(()=>{const h=d.get(l);h&&(h.delete(t),h.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._commandService=n,this._sheetInterceptorService=t,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(n,t,r,i,a){let c;this._watchRanges.size===0&&(c=this._commandService.onCommandExecuted(m=>{if(m.type!==s.CommandType.MUTATION)return!1;for(const h of this._watchRanges)h.onMutation(m)}));const u=new Di(n,t,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=Ni([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),ht(0,s.ICommandService),ht(1,V.Inject(exports.SheetInterceptorService)),ht(2,V.Inject(s.IUniverInstanceService)),ht(3,V.Inject(exports.SelectionManagerService))],exports.RefRangeService);function On(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Dn(o){return o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function An(o){return o.getSelectionRanges()||[]}function xn(o,e){return`${o}_${e}`}function Ai(){const o=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:n=>{const t=o.reduce((i,a,c)=>(i[String(c)]=a,i),{});return n.split(e).reduce((i,a,c)=>{const u=String(c);return a&&t[u]&&(i[t[u]]=a),i},{})},serialize:n=>o.reduce((t,r,i)=>{const a=n[r];return a!==void 0?`${t}${i>0?e:""}${a}`:`${t}`},"")}}var xi=Object.defineProperty,Wi=Object.getOwnPropertyDescriptor,Li=(o,e,n,t)=>{for(var r=t>1?void 0:t?Wi(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&xi(e,n,r),r},je=(o,e)=>(n,t)=>e(n,t,o);const Vi=[_e.id,ye.id,Ce.id,be.id],$i=[Ne.id,ke.id];function Pr(o,e){let n=o;if(e!==void 0){const t=[];for(let r=0;r<n.length;r++){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=n[r];if(e===s.Dimension.ROWS)for(let l=i;l<=a;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};t.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};t.push(d)}}n=t}return n}exports.MergeCellController=class extends s.Disposable{constructor(n,t,r,i,a,c){super();v(this,"disposableCollection",new s.DisposableCollection);this._commandService=n,this._refRangeService=t,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(t){switch(t.id){case bt.id:case Ut.id:{const r=n._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),i=r.getUnitId(),a=r.getActiveSheet(),c=a.getSheetId(),u=a.getConfig().mergeData,l=n._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(h=>s.Rectangle.intersects(h,m)))){const m={unitId:i,subUnitId:c,ranges:l},h=ue(n._injector,m),R=[{id:G.id,params:m}],g=[{id:H.id,params:h}];return{redos:R,undos:g}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,t,r){switch(n.id){case x.MoveColsCommandId:{const i=n.params;return this._handleMoveColsCommand(i,t,r)}case x.MoveRowsCommandId:{const i=n.params;return this._handleMoveRowsCommand(i,t,r)}case Le.id:{const i=n.params,a=i.unitId||t,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case Ve.id:{const i=n.params,a=i.unitId||t,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case at.id:{const i=n.params;return this._handleRemoveColCommand(i,t,r)}case it.id:{const i=n.params;return this._handleRemoveRowCommand(i,t,r)}case Tt.id:{const i=n.params;return this._handleMoveRangeCommand(i,t,r)}case Dt.id:{const i=n.params;return this._handleInsertRangeMoveRightCommand(i,t,r)}case Ot.id:{const i=n.params;return this._handleInsertRangeMoveDownCommand(i,t,r)}case kt.id:{const i=n.params;return this._handleDeleteRangeMoveUpCommand(i,t,r)}case Nt.id:{const i=n.params;return this._handleDeleteRangeMoveLeftCommand(i,t,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const n=(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;n(c,a)}if(r.id===H.id){const i=r.params,a=i.subUnitId,c=i.unitId;if(!a||!c)return;n(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(t){const r=t.getActiveSheet();n(t.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:t,subUnitId:r,ranges:[]},l={unitId:t,subUnitId:r,ranges:[]},{fromRange:d}=n,{startRow:m,endRow:h}=d;if(c.forEach(S=>{if(m<=S.startRow&&h>=S.endRow){u.ranges.push(S);const f=Cn({id:x.MoveRowsCommandId,params:n},S),p=We(f,S);p&&l.ranges.push(p)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),g=ve(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:g},{id:H.id,params:R}]}}_handleMoveColsCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:t,subUnitId:r,ranges:[]},l={unitId:t,subUnitId:r,ranges:[]},{fromRange:d}=n,{startColumn:m,endColumn:h}=d;if(c.forEach(S=>{if(m<=S.startColumn&&h>=S.endColumn){u.ranges.push(S);const f=pn({id:x.MoveColsCommandId,params:n},S),p=We(f,S);p&&l.ranges.push(p)}}),u.ranges.length===0)return this._handleNull();const R=ue(this._injector,u),g=ve(this._injector,l);return{redos:[{id:G.id,params:u},{id:H.id,params:l}],undos:[{id:G.id,params:g},{id:H.id,params:R}]}}_handleMoveRangeCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=a.getMergeData(),u=c.filter(g=>s.Rectangle.intersects(g,n.fromRange)),l=c.filter(g=>s.Rectangle.intersects(g,n.toRange)),d=u.map(g=>s.Rectangle.getRelativeRange(g,n.fromRange)).map(g=>s.Rectangle.getPositionRange(g,n.toRange)),m=Pr(d).filter(g=>!c.some(S=>s.Rectangle.equals(g,S))),h=[{id:G.id,params:{unitId:t,subUnitId:r,ranges:u}},{id:G.id,params:{unitId:t,subUnitId:r,ranges:l}},{id:H.id,params:{unitId:t,subUnitId:r,ranges:m}}],R=[{id:G.id,params:{unitId:t,subUnitId:r,ranges:m}},{id:H.id,params:{unitId:t,subUnitId:r,ranges:l}},{id:H.id,params:{unitId:t,subUnitId:r,ranges:u}}];return{redos:h,undos:R}}_handleInsertRowCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=n,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((I,C)=>(u>C.startRow&&u<=C.endRow&&I.push(C),I),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((I,C)=>{if(u>C.startRow&&u<=C.endRow){const w=l-u+1;C.endRow+=w,this._checkIsMergeCell(C)&&I.push(C)}return I},[]),h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g),f=[{id:G.id,params:h},{id:H.id,params:g}],p=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:f,undos:p}}_handleInsertColCommand(n,t,r){const{range:i}=n,a=Re(this._univerInstanceService,t);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,C)=>(u>C.startColumn&&u<=C.endColumn&&I.push(C),I),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((I,C)=>{if(u>C.startColumn&&u<=C.endColumn){const w=l-u+1;C.endColumn+=w,this._checkIsMergeCell(C)&&I.push(C)}return I},[]),h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g),f=[{id:G.id,params:h},{id:H.id,params:g}],p=[{id:G.id,params:S},{id:H.id,params:R}];return{redos:f,undos:p}}_handleRemoveColCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const{range:c}=n,{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},[]),h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g),f=[{id:G.id,params:h}],p=[{id:H.id,params:g}],I=[{id:G.id,params:S}],C=[{id:H.id,params:R}];return{preUndos:I,undos:C,preRedos:f,redos:p}}_handleRemoveRowCommand(n,t,r){const{range:i}=n,a=Re(this._univerInstanceService,t);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},[]),h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g),f=[{id:G.id,params:h}],p=[{id:H.id,params:g}],I=[{id:G.id,params:S}],C=[{id:H.id,params:R}];return{preUndos:I,undos:C,preRedos:f,redos:p}}_handleInsertRangeMoveRightCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:p,endRow:I,startColumn:C,endColumn:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:C,endRow:I,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:p,startColumn:C,endRow:I,endColumn:u},f))){const P=w-C+1;m.push({startRow:f.startRow,startColumn:f.startColumn+P,endRow:f.endRow,endColumn:f.endColumn+P})}});const h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g);return{redos:[{id:G.id,params:h},{id:H.id,params:g}],undos:[{id:H.id,params:R},{id:G.id,params:S}]}}_handleInsertRangeMoveDownCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(I=>{const{startRow:C,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:C,startColumn:w,endRow:u,endColumn:M},I)&&(d.push(I),s.Rectangle.contains({startRow:C,startColumn:w,endRow:u,endColumn:M},I))){const E=y-C+1;m.push({startRow:I.startRow+E,startColumn:I.startColumn,endRow:I.endRow+E,endColumn:I.endColumn})}});const h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g),f=[{id:G.id,params:h},{id:H.id,params:g}],p=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:f,undos:p}}_handleDeleteRangeMoveUpCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(I=>{const{startRow:C,startColumn:w,endColumn:M,endRow:y}=c;if(s.Rectangle.intersects({startRow:C,startColumn:w,endRow:u,endColumn:M},I)&&(d.push(I),s.Rectangle.contains({startRow:C,startColumn:w,endRow:u,endColumn:M},I))){const E=y-C+1,k=s.Rectangle.moveVertical(I,-E);m.push(k)}});const h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g),f=[{id:G.id,params:h},{id:H.id,params:g}],p=[{id:H.id,params:R},{id:G.id,params:S}];return{redos:f,undos:p}}_handleDeleteRangeMoveLeftCommand(n,t,r){const i=Re(this._univerInstanceService,t);if(!i)return this._handleNull();const a=Se(i,r);if(!a)return this._handleNull();const c=n.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:p,endRow:I,startColumn:C,endColumn:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:C,endRow:I,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:p,startColumn:C,endRow:I,endColumn:u},f))){const P=w-C+1;m.push({startRow:f.startRow,startColumn:f.startColumn-P,endRow:f.endRow,endColumn:f.endColumn-P})}});const h={unitId:t,subUnitId:r,ranges:d},R=ue(this._injector,h),g={unitId:t,subUnitId:r,ranges:m},S=ve(this._injector,g);return{redos:[{id:G.id,params:h},{id:H.id,params:g}],undos:[{id:H.id,params:R},{id:G.id,params:S}]}}_checkIsMergeCell(n){return!(n.startRow===n.endRow&&n.startColumn===n.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if($i.includes(n.id)){if(!n.params)return;const t=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!t)return;const r=t.getSheetBySheetId(n.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=n.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,h=[];m.forEach(f=>{let{startRow:p,endRow:I,startColumn:C,endColumn:w,rangeType:M}=f;s.Rectangle.intersects(f,i)||(c?l<p&&d>I?(p-=u,I-=u):l>I&&d<=p&&(p+=u,I+=u):l<C&&d>w?(C-=u,w-=u):l>w&&d<=C&&(C+=u,w+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||h.push({startRow:p,endRow:I,startColumn:C,endColumn:w,rangeType:M})}),r.getConfig().mergeData=h,this.disposableCollection.dispose();const{unitId:R,subUnitId:g}=n.params,S=f=>this.refRangeHandle(f,R,g);h.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,S,R,g))})}if(Vi.includes(n.id)){const t=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!t)return;const r=t.getSheetBySheetId(n.params.subUnitId);if(!r)return;const i=r.getConfig().mergeData,a=n.params;if(!a)return;const{range:c}=a,u=n.id.includes("row"),l=n.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,h=m-d+1,R=[];i.forEach(p=>{let{startRow:I,endRow:C,startColumn:w,endColumn:M,rangeType:y}=p;l?u?d<=I&&(I+=h,C+=h):d<=w&&(w+=h,M+=h):u?m<I&&(I-=h,C-=h):m<w&&(w-=h,M-=h),p.startRow===p.endRow&&p.startColumn===p.endColumn||R.push({startRow:I,endRow:C,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=R,this.disposableCollection.dispose();const{unitId:g,subUnitId:S}=n.params,f=p=>this.refRangeHandle(p,g,S);R.forEach(p=>{this.disposableCollection.add(this._refRangeService.registerRefRange(p,f,g,S))})}}))}};exports.MergeCellController=Li([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),je(0,V.Inject(s.ICommandService)),je(1,V.Inject(exports.RefRangeService)),je(2,V.Inject(s.IUniverInstanceService)),je(3,V.Inject(V.Injector)),je(4,V.Inject(exports.SheetInterceptorService)),je(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 Bi=Object.defineProperty,ji=Object.getOwnPropertyDescriptor,Fi=(o,e,n,t)=>{for(var r=t>1?void 0:t?ji(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Bi(e,n,r),r},Ft=(o,e)=>(n,t)=>e(n,t,o);exports.NumfmtService=class extends s.Disposable{constructor(e,n,t){super(),this._resourceManagerService=e,this._univerInstanceService=n,this._logService=t}getValue(e,n,t,r){const i=this._univerInstanceService.getUniverSheetInstance(e);if(!i)return;const a=i==null?void 0:i.getSheetBySheetId(n);if(!a)return;const c=i.getStyles(),u=a.getCellRaw(t,r);if(u!=null&&u.s){const l=c.get(u.s);if(l!=null&&l.n)return l.n}return null}deleteValues(e,n,t){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(n);if(!i)return;const a=r.getStyles();t.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 g=a.setValue(R);d.s=g})})}setValues(e,n,t){const r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)return;const i=r==null?void 0:r.getSheetBySheetId(n);if(!i)return;const a=r.getStyles(),c=i.getCellMatrix();t.forEach(u=>{u.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{const h=i.getCellRaw(d,m);if(h){const g={...h.s&&a.get(h.s)||{},n:{pattern:u.pattern}},S=a.setValue(g);h.s=S}else{const R={n:{pattern:u.pattern}},g=a.setValue(R);g&&c.setValue(d,m,{s:g})}})})})}};exports.NumfmtService=Fi([Ft(0,s.IResourceManagerService),Ft(1,s.IUniverInstanceService),Ft(2,s.ILogService)],exports.NumfmtService);const Gt=()=>[ao,uo,io,So,fo,lo,Co,Ro,mo,go,ho,co,vo],Hi=[_.Edit,_.Print,_.Comment,_.View,_.Copy,_.Export,_.ManageCollaborator,_.CreateSheet,_.DeleteSheet,_.RenameSheet,_.HideSheet,_.Duplicate,_.Share];var Gi=Object.defineProperty,qi=Object.getOwnPropertyDescriptor,zi=(o,e,n,t)=>{for(var r=t>1?void 0:t?qi(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Gi(e,n,r),r},Wn=(o,e)=>(n,t)=>e(n,t,o);exports.WorkbookPermissionService=class extends s.Disposable{constructor(e,n){super(),this._permissionService=e,this._univerInstanceService=n,this._init()}_init(){const e=n=>{const t=n.getUnitId();Gt().forEach(r=>{const i=new r(t);this._permissionService.addPermissionPoint(i)})};this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(n=>{e(n)}),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{e(n)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(n=>{const t=n.getUnitId();Gt().forEach(r=>{const i=new r(t);this._permissionService.deletePermissionPoint(i.id)})}))}};exports.WorkbookPermissionService=zi([s.OnLifecycle(s.LifecycleStages.Starting,exports.WorkbookPermissionService),Wn(0,V.Inject(s.IPermissionService)),Wn(1,V.Inject(s.IUniverInstanceService))],exports.WorkbookPermissionService);var Yi=Object.defineProperty,Ki=Object.getOwnPropertyDescriptor,Ji=(o,e,n,t)=>{for(var r=t>1?void 0:t?Ki(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Yi(e,n,r),r},gt=(o,e)=>(n,t)=>e(n,t,o);const Xi="SHEET_DEFINED_NAME_PLUGIN";exports.DefinedNameDataController=class extends s.Disposable{constructor(e,n,t,r){super(),this._commandService=e,this._univerInstanceService=n,this._definedNamesService=t,this._resourceManagerService=r,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const e=t=>{const r=this._definedNamesService.getDefinedNameMap(t);return r?JSON.stringify(r):""},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Xi,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:t=>n(t),onUnLoad:t=>{this._definedNamesService.removeUnitDefinedName(t)},onLoad:(t,r)=>{this._definedNamesService.registerDefinedNames(t,r)}}))}};exports.DefinedNameDataController=Ji([s.OnLifecycle(s.LifecycleStages.Ready,exports.DefinedNameDataController),gt(0,s.ICommandService),gt(1,s.IUniverInstanceService),gt(2,se.IDefinedNamesService),gt(3,s.IResourceManagerService)],exports.DefinedNameDataController);const Pe=()=>[Io,po],Zi=(o="unitId",e="subUnitId",n="permissionId")=>Pe().reduce((t,r)=>{const i=new r(o,e,n);return t[i.subType]=i.value,t},{});var Qi=Object.defineProperty,ea=Object.getOwnPropertyDescriptor,ta=(o,e,n,t)=>{for(var r=t>1?void 0:t?ea(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Qi(e,n,r),r},Ln=(o,e)=>(n,t)=>e(n,t,o);exports.RangeProtectionRenderModel=class{constructor(e,n){v(this,"_cache",new s.LRUMap(1e4));this._selectionProtectionRuleModel=e,this._permissionService=n,this._init()}_init(){this._permissionService.permissionPointUpdate$.pipe(et.filter(e=>e.type===O.SelectRange),et.filter(e=>Pe().some(n=>e instanceof n)),et.map(e=>e)).subscribe(e=>{const n=this._selectionProtectionRuleModel.getSubunitRuleList(e.unitId,e.subUnitId);for(const t of n)t.permissionId===e.permissionId&&t.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 n;e.rule.ranges.forEach(t=>{s.Range.foreach(t,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}),e.type==="set"&&((n=e.oldRule)==null||n.ranges.forEach(t=>{s.Range.foreach(t,(r,i)=>{const a=this._createKey(e.unitId,e.subUnitId,r,i);this._cache.delete(a)})}))})}_createKey(e,n,t,r){return`${e}_${n}_${t}_${r}`}getCellInfo(e,n,t,r){const i=this._createKey(e,n,t,r),a=this._cache.get(i);if(a)return a;const c=this._selectionProtectionRuleModel.getSubunitRuleList(e,n),u=[];if(!c||!c.length)return u;const l=[];for(const d of c)if(d.ranges.some(m=>m.startRow<=t&&m.endRow>=t&&m.startColumn<=r&&m.endColumn>=r)){const m=Pe().reduce((h,R)=>{var f;const g=new R(e,n,d.permissionId),S=this._permissionService.getPermissionPoint(g.id);return h[g.subType]=(f=S==null?void 0:S.value)!=null?f:g.value,h},{});l.push({...m,ruleId:d.id,ranges:d.ranges})}return this._cache.set(i,l),l}clear(){this._cache.clear()}};exports.RangeProtectionRenderModel=ta([s.OnLifecycle(s.LifecycleStages.Ready,exports.RangeProtectionRenderModel),Ln(0,V.Inject(exports.RangeProtectionRuleModel)),Ln(1,V.Inject(s.IPermissionService))],exports.RangeProtectionRenderModel);var na=Object.defineProperty,oa=Object.getOwnPropertyDescriptor,ra=(o,e,n,t)=>{for(var r=t>1?void 0:t?oa(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&na(e,n,r),r},Qe=(o,e)=>(n,t)=>e(n,t,o);const sa=[_e.id,ye.id,Ce.id,be.id],ia=[Ne.id,ke.id];exports.RangeProtectionRefRangeService=class extends s.Disposable{constructor(n,t,r,i,a){super();v(this,"disposableCollection",new s.DisposableCollection);this._selectionProtectionRuleModel=n,this._univerInstanceService=t,this._commandService=r,this._refRangeService=i,this._selectionProtectionRenderModel=a,this._onRefRangeChange(),this._correctPermissionRange()}_onRefRangeChange(){const n=(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;n(c,a)}if(r.id===vn.id||r.id===fn.id){const i=r.params,a=i.rule.subUnitId,c=i.rule.unitId;if(!a||!c)return;n(c,a)}}));const t=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(t){const r=t.getActiveSheet();n(t.getUnitId(),r.getSheetId())}}refRangeHandle(n,t,r){switch(n.id){case At.id:return this._getRefRangeMutationsByMoveRows(n.params,t,r);case xt.id:return this._getRefRangeMutationsByMoveCols(n.params,t,r);case Le.id:return this._getRefRangeMutationsByInsertRows(n.params,t,r);case Ve.id:return this._getRefRangeMutationsByInsertCols(n.params,t,r);case at.id:return this._getRefRangeMutationsByDeleteCols(n.params,t,r);case it.id:return this._getRefRangeMutationsByDeleteRows(n.params,t,r)}return{redos:[],undos:[]}}_getRefRangeMutationsByDeleteCols(n,t,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(t,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,n.range))),a=n.range;if(i.length){const c=[],u=[];return i.forEach(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((h,R)=>{if(s.Rectangle.intersects(R,a)){const g=s.Tools.deepClone(R),{startColumn:S,endColumn:f}=a;if(S<=g.startColumn&&f>=g.endColumn)return h;S>=g.startColumn&&f<=g.endColumn?g.endColumn-=f-S+1:S<g.startColumn?(g.startColumn=S,g.endColumn-=f-S+1):f>g.endColumn&&(g.endColumn=S-1),this._checkIsRightRange(g)&&h.push(g)}return h},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:l,ruleId:l.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByDeleteRows(n,t,r){const i=this._selectionProtectionRuleModel.getSubunitRuleList(t,r).filter(c=>c.ranges.some(u=>s.Rectangle.intersects(u,n.range))),a=n.range;if(i.length){const c=[],u=[];return i.forEach(l=>{const d=s.Tools.deepClone(l),m=d.ranges.reduce((h,R)=>{if(s.Rectangle.intersects(R,a)){const g=s.Tools.deepClone(R),{startRow:S,endRow:f}=a;if(S<=g.startRow&&f>=g.endRow)return h;S>=g.startRow&&f<=g.endRow?g.endRow-=f-S+1:S<g.startRow?(g.startRow=S,g.endRow-=f-S+1):f>g.endRow&&(g.endRow=S-1),this._checkIsRightRange(g)&&h.push(g)}return h},[]);d.ranges=m,c.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:d,ruleId:l.id}}),u.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:l,ruleId:l.id}})}),{redos:c,undos:u}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertCols(n,t,r){const i=n.range.startColumn,a=n.range.endColumn-n.range.startColumn+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(t,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 h=!1;m.ranges.forEach(R=>{i>R.startColumn&&i<=R.endColumn&&(R.endColumn+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByInsertRows(n,t,r){const i=n.range.startRow,a=n.range.endRow-n.range.startRow+1,c=this._selectionProtectionRuleModel.getSubunitRuleList(t,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 h=!1;m.ranges.forEach(R=>{i>R.startRow&&i<=R.endRow&&(R.endRow+=a,h=!0)}),h&&(u.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:m,ruleId:d.id}}),l.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:d,ruleId:d.id}}))}),{redos:u,undos:l}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveRows(n,t,r){const i=n.toRange,a=i.startRow,c=i.endRow-i.startRow+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(t,r).filter(l=>l.ranges.some(d=>a>d.startRow&&a<=d.endRow));if(u.length){const l=[],d=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),g=n.fromRange.startRow;let S=!1;h.ranges.forEach(f=>{a>f.startRow&&a<=f.endRow&&(g<f.startRow&&(f.startRow=f.startRow-c,f.endRow=f.endRow-c),f.endRow+=c,S=!0)}),S&&(l.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:h,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_getRefRangeMutationsByMoveCols(n,t,r){const i=n.toRange,a=i.startColumn,c=i.endColumn-i.startColumn+1,u=this._selectionProtectionRuleModel.getSubunitRuleList(t,r).filter(l=>l.ranges.some(d=>a>d.startColumn&&a<=d.endColumn));if(u.length){const l=[],d=[];return u.forEach(m=>{const h=s.Tools.deepClone(m),g=n.fromRange.startColumn;let S=!1;h.ranges.forEach(f=>{a>f.startColumn&&a<=f.endColumn&&(g<f.startColumn&&(f.startColumn=f.startColumn-c,f.endColumn=f.endColumn-c),f.endColumn+=c,S=!0)}),S&&(l.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:h,ruleId:m.id}}),d.push({id:ee.id,params:{unitId:t,subUnitId:r,rule:m,ruleId:m.id}}))}),{redos:l,undos:d}}return{undos:[],redos:[]}}_correctPermissionRange(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(ia.includes(n.id)){if(!n.params)return;const t=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!t)return;const r=t.getSheetBySheetId(n.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=n.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(t.getUnitId(),r.getSheetId()).forEach(f=>{f.ranges.forEach(I=>{let{startRow:C,endRow:w,startColumn:M,endColumn:y}=I;s.Rectangle.intersects(I,i)||(c?l<C&&d>w?(C-=u,w-=u):l>w&&d<=C&&(C+=u,w+=u):l<M&&d>y?(M-=u,y-=u):l>y&&d<=M&&(M+=u,y+=u)),this._checkIsRightRange({startRow:C,endRow:w,startColumn:M,endColumn:y})&&(I.startColumn=M,I.endColumn=y,I.startRow=C,I.endRow=w)})}),this.disposableCollection.dispose();const{unitId:h,subUnitId:R}=n.params,g=f=>this.refRangeHandle(f,h,R);this._selectionProtectionRuleModel.getSubunitRuleList(h,R).reduce((f,p)=>[...f,...p.ranges],[]).forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,g,h,R))}),this._selectionProtectionRenderModel.clear()}if(sa.includes(n.id)){const t=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!t)return;const r=t.getSheetBySheetId(n.params.subUnitId);if(!r)return;const i=n.params;if(!i)return;const{range:a}=i,c=n.id.includes("row"),u=n.id.includes("insert"),l=c?a.startRow:a.startColumn,d=c?a.endRow:a.endColumn,m=d-l+1;this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(),r.getSheetId()).forEach(p=>{p.ranges.forEach(C=>{let{startRow:w,endRow:M,startColumn:y,endColumn:P}=C;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})&&(C.startColumn=y,C.endColumn=P,C.startRow=w,C.endRow=M)})}),this.disposableCollection.dispose();const{unitId:R,subUnitId:g}=n.params,S=p=>this.refRangeHandle(p,R,g);this._selectionProtectionRuleModel.getSubunitRuleList(R,g).reduce((p,I)=>[...p,...I.ranges],[]).forEach(p=>{this.disposableCollection.add(this._refRangeService.registerRefRange(p,S,R,g))}),this._selectionProtectionRenderModel.clear()}}))}_checkIsRightRange(n){return n.startRow<=n.endRow&&n.startColumn<=n.endColumn}};exports.RangeProtectionRefRangeService=ra([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 aa=Object.defineProperty,ca=Object.getOwnPropertyDescriptor,ua=(o,e,n,t)=>{for(var r=t>1?void 0:t?ca(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&aa(e,n,r),r},Ht=(o,e)=>(n,t)=>e(n,t,o);const la="SHEET_RANGE_PROTECTION_PLUGIN";exports.RangeProtectionService=class extends s.Disposable{constructor(e,n,t){super(),this._selectionProtectionRuleModel=e,this._permissionService=n,this._resourceManagerService=t,this._initSnapshot(),this._initRuleChange()}_initRuleChange(){this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe(e=>{switch(e.type){case"add":{Pe().forEach(n=>{const t=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(t)});break}case"delete":{Pe().forEach(n=>{const t=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.deletePermissionPoint(t.id)});break}case"set":{e.oldRule.permissionId!==e.rule.permissionId&&Pe().forEach(n=>{const t=new n(e.unitId,e.subUnitId,e.oldRule.permissionId);this._permissionService.deletePermissionPoint(t.id);const r=new n(e.unitId,e.subUnitId,e.rule.permissionId);this._permissionService.addPermissionPoint(r)});break}}}))}_initSnapshot(){const e=t=>{const i=this._selectionProtectionRuleModel.toObject()[t];return i?JSON.stringify(i):""},n=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e,parseJson:n,pluginName:la,businesses:[Mt.UNIVER_SHEET],onLoad:(t,r)=>{const i=this._selectionProtectionRuleModel.toObject();i[t]=r,this._selectionProtectionRuleModel.fromObject(i);const a=[];Object.keys(r).forEach(c=>{const u=r[c];this._selectionProtectionRuleModel.getSubunitRuleList(t,c).forEach(l=>{a.push({objectID:l.permissionId,unitID:t,objectType:O.SelectRange,actions:[_.View,_.Edit]})}),u.forEach(l=>{Pe().forEach(d=>{const m=new d(t,c,l.permissionId);this._permissionService.addPermissionPoint(m)})})})},onUnLoad:()=>{this._selectionProtectionRuleModel.deleteUnitModel()}}))}};exports.RangeProtectionService=ua([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 Tr=Object.defineProperty,da=Object.getOwnPropertyDescriptor,ma=(o,e,n)=>e in o?Tr(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,ha=(o,e,n,t)=>{for(var r=t>1?void 0:t?da(e,n):e,i=o.length-1,a;i>=0;i--)(a=o[i])&&(r=(t?a(e,n,r):a(r))||r);return t&&r&&Tr(e,n,r),r},Rt=(o,e)=>(n,t)=>e(n,t,o),Er=(o,e,n)=>(ma(o,typeof e!="symbol"?e+"":e,n),n);const ga="SHEET_PLUGIN";exports.UniverSheetsPlugin=class extends s.Plugin{constructor(e,n,t,r,i){super(),this._config=e,this._commandService=n,this._configService=t,this._localeService=r,this._injector=i,this._initConfig(),this._initDependencies(i)}onRendered(){}_initConfig(){var e;(e=this._config)!=null&&e.onlyRegisterFormulaRelatedMutations&&this._configService.setConfig(Mr,!0)}_initDependencies(e){var t,r;const n=[[$e],[exports.SelectionManagerService],[exports.RefRangeService],[exports.WorkbookPermissionService],[Be,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[Ct],[exports.MergeCellController],[exports.DefinedNameDataController],[exports.WorksheetPermissionService],[exports.WorksheetProtectionRuleModel],[exports.WorksheetProtectionPointModel],[exports.RangeProtectionRenderModel],[exports.RangeProtectionRuleModel],[exports.RangeProtectionRefRangeService],[exports.RangeProtectionService]];(t=this._config)!=null&&t.notExecuteFormula||n.push([pt],[It]),s.mergeOverrideWithDependencies(n,(r=this._config)==null?void 0:r.override).forEach(i=>{e.add(i)})}};Er(exports.UniverSheetsPlugin,"pluginName",ga);Er(exports.UniverSheetsPlugin,"type",s.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsPlugin=ha([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 Ra=[Ie.id,ge.id,cn.id,pe.id,ct.id,Ne.id,ke.id,He.id,Ge.id,ze.id,qe.id,_e.id,ye.id,Ce.id,be.id],Sa=[z.id,Fe.id,G.id,H.id],va=1.5,fa="rgba(255, 255, 255, 0.01)";function Ca(o){const e=o.getCurrentTheme(),n=new s.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:e.primaryColor,fill:n,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function pa(o){const{rangeWithCoord:e,primaryWithCoord:n,style:t}=o,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return n!=null&&(r.primary=Nr(n)),r}function Nr(o){const{actualRow:e,actualColumn:n,isMerged:t,isMergedMainCell:r}=o,{startRow:i,startColumn:a,endRow:c,endColumn:u}=o.mergeInfo;return{actualRow:e,actualColumn:n,isMerged:t,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function Ia(o,e,n){const t=xr.getCellInfoInMergeData(o,e,n),r=s.makeCellRangeToRangeData(t);if(r)return{range:r,primary:t,style:null}}const Ma=(o,e,n)=>{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:h}=d;let{startRow:R,startColumn:g,endRow:S,endColumn:f}=a[a.length-1];if(i===s.Dimension.COLUMNS){const w=n.find(M=>M.startColumn===m&&M.endColumn===m&&h===M.startRow);w&&(f=w.endColumn,R=w.startRow,S=w.endRow)}else if(i===s.Dimension.ROWS){const w=n.find(M=>M.startRow===h&&M.endRow===h&&m===M.startColumn);w&&(S=w.endRow,g=w.startColumn,f=w.endColumn)}const p={startRow:R,startColumn:g,endRow:S,endColumn:f,actualRow:h,actualColumn:m,isMerged:!0,isMergedMainCell:R===h&&g===m},I=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?p:null})),C={unitId:c,subUnitId:u,pluginName:X,selections:I};return{id:K.id,params:C}}return null}return null},wa=(o,e)=>{const t=o.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:i}=e;if(t&&t[(t==null?void 0:t.length)-1].primary){const u={unitId:r,subUnitId:i,pluginName:X,selections:[...t]};return{id:K.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Ma;exports.AddMergeUndoMutationFactory=ve;exports.AddMergeUndoSelectionsOperationFactory=wa;exports.AddRangeProtectionCommand=vn;exports.AddRangeProtectionMutation=Ke;exports.AddWorksheetMergeMutation=H;exports.AddWorksheetProtectionMutation=Rr;exports.BorderStyleManagerService=$e;exports.COMMAND_LISTENER_SKELETON_CHANGE=Ra;exports.COMMAND_LISTENER_VALUE_CHANGE=Sa;exports.ClearSelectionAllCommand=bt;exports.ClearSelectionContentCommand=qt;exports.ClearSelectionFormatCommand=Ut;exports.CopySheetCommand=Fn;exports.DeleteRangeMoveLeftCommand=Nt;exports.DeleteRangeMoveUpCommand=kt;exports.DeleteRangeProtectionCommand=pr;exports.DeleteRangeProtectionMutation=Ye;exports.DeleteWorksheetProtectionMutation=vr;exports.DeltaColumnWidthCommand=rn;exports.DeltaRowHeightCommand=un;exports.EffectRefRangId=x;exports.EmptyMutation=lr;exports.FactoryAddRangeProtectionMutation=ii;exports.FactoryDeleteRangeProtectionMutation=si;exports.FactorySetRangeProtectionMutation=ai;exports.INTERCEPTOR_POINT=St;exports.INumfmtService=Be;exports.InsertColAfterCommand=Eo;exports.InsertColBeforeCommand=To;exports.InsertColCommand=Ve;exports.InsertColMutation=_e;exports.InsertColMutationUndoFactory=Zt;exports.InsertDefinedNameCommand=dr;exports.InsertRangeMoveDownCommand=Ot;exports.InsertRangeMoveRightCommand=Dt;exports.InsertRowAfterCommand=Uo;exports.InsertRowBeforeCommand=bo;exports.InsertRowCommand=Le;exports.InsertRowMutation=ye;exports.InsertRowMutationUndoFactory=Xt;exports.InsertSheetCommand=No;exports.InsertSheetMutation=De;exports.InsertSheetUndoMutationFactory=zt;exports.MAX_CELL_PER_SHEET_KEY=Ir;exports.MoveColsCommand=xt;exports.MoveColsMutation=ke;exports.MoveColsMutationUndoFactory=Oo;exports.MoveRangeCommand=Tt;exports.MoveRangeMutation=Fe;exports.MoveRowsCommand=At;exports.MoveRowsMutation=Ne;exports.MoveRowsMutationUndoFactory=ko;exports.NORMAL_SELECTION_PLUGIN_NAME=X;exports.OperatorType=L;exports.RangeMergeUtil=Vs;exports.RangeProtectionPermissionEditPoint=po;exports.RangeProtectionPermissionViewPoint=Io;exports.RemoveColCommand=at;exports.RemoveColMutation=Ce;exports.RemoveDefinedNameCommand=mr;exports.RemoveMergeUndoMutationFactory=ue;exports.RemoveNumfmtMutation=gn;exports.RemoveRowCommand=it;exports.RemoveRowMutation=be;exports.RemoveSheetCommand=Qt;exports.RemoveSheetMutation=Je;exports.RemoveSheetUndoMutationFactory=jn;exports.RemoveWorksheetMergeCommand=Lo;exports.RemoveWorksheetMergeMutation=G;exports.ResetBackgroundColorCommand=Xo;exports.ResetTextColorCommand=Ko;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=fa;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=va;exports.ScrollToCellOperation=gr;exports.SelectionMoveType=Vn;exports.SetBackgroundColorCommand=Jo;exports.SetBoldCommand=bs;exports.SetBorderBasicCommand=Vo;exports.SetBorderColorCommand=jo;exports.SetBorderCommand=Xe;exports.SetBorderPositionCommand=$o;exports.SetBorderStyleCommand=Bo;exports.SetColHiddenCommand=en;exports.SetColHiddenMutation=He;exports.SetColVisibleMutation=Ge;exports.SetColWidthCommand=wt;exports.SetDefinedNameCommand=hr;exports.SetFontFamilyCommand=Es;exports.SetFontSizeCommand=Ns;exports.SetFrozenCommand=Go;exports.SetFrozenMutation=Te;exports.SetFrozenMutationFactory=tn;exports.SetHorizontalTextAlignCommand=Qo;exports.SetItalicCommand=Us;exports.SetNumfmtMutation=$t;exports.SetRangeProtectionCommand=fn;exports.SetRangeProtectionMutation=ee;exports.SetRangeValuesCommand=st;exports.SetRangeValuesMutation=z;exports.SetRangeValuesUndoMutationFactory=Me;exports.SetRowHeightCommand=ln;exports.SetRowHiddenCommand=nn;exports.SetRowHiddenMutation=ze;exports.SetRowVisibleMutation=qe;exports.SetSelectedColsVisibleCommand=Fo;exports.SetSelectedRowsVisibleCommand=qo;exports.SetSelectionsOperation=K;exports.SetSpecificColsVisibleCommand=Wt;exports.SetSpecificRowsVisibleCommand=Lt;exports.SetStrikeThroughCommand=Ts;exports.SetStyleCommand=te;exports.SetTabColorCommand=nr;exports.SetTabColorMutation=tt;exports.SetTextColorCommand=Yo;exports.SetTextRotationCommand=tr;exports.SetTextWrapCommand=er;exports.SetUnderlineCommand=Ps;exports.SetVerticalTextAlignCommand=Zo;exports.SetWorkbookNameCommand=Sn;exports.SetWorkbookNameMutation=Rn;exports.SetWorksheetActivateCommand=Vt;exports.SetWorksheetActiveOperation=ct;exports.SetWorksheetColWidthMutation=pe;exports.SetWorksheetColWidthMutationFactory=on;exports.SetWorksheetHideCommand=rr;exports.SetWorksheetHideMutation=Ee;exports.SetWorksheetNameCommand=sn;exports.SetWorksheetNameMutation=yt;exports.SetWorksheetOrderCommand=sr;exports.SetWorksheetOrderMutation=nt;exports.SetWorksheetPermissionPointsCommand=Cr;exports.SetWorksheetProtectionMutation=Sr;exports.SetWorksheetRowAutoHeightMutation=cn;exports.SetWorksheetRowAutoHeightMutationFactory=Ws;exports.SetWorksheetRowHeightMutation=Ie;exports.SetWorksheetRowIsAutoHeightCommand=dn;exports.SetWorksheetRowIsAutoHeightMutation=ge;exports.SetWorksheetShowCommand=ar;exports.WorkbookCommentPermission=io;exports.WorkbookCopyPermission=fo;exports.WorkbookCreateSheetPermission=Ro;exports.WorkbookDeleteSheetPermission=mo;exports.WorkbookDuplicatePermission=co;exports.WorkbookEditablePermission=ao;exports.WorkbookExportPermission=lo;exports.WorkbookHideSheetPermission=ho;exports.WorkbookHistoryPermission=ls;exports.WorkbookManageCollaboratorPermission=Co;exports.WorkbookMoveSheetPermission=us;exports.WorkbookPrintPermission=uo;exports.WorkbookRenameSheetPermission=go;exports.WorkbookSharePermission=vo;exports.WorkbookViewPermission=So;exports.WorksheetCopyPermission=Gn;exports.WorksheetDeleteColumnPermission=to;exports.WorksheetDeleteRowPermission=eo;exports.WorksheetEditExtraObjectPermission=so;exports.WorksheetEditPermission=Yt;exports.WorksheetFilterPermission=oo;exports.WorksheetInsertColumnPermission=Zn;exports.WorksheetInsertHyperlinkPermission=Qn;exports.WorksheetInsertRowPermission=Xn;exports.WorksheetManageCollaboratorPermission=cs;exports.WorksheetPivotTablePermission=ro;exports.WorksheetSelectProtectedCellsPermission=is;exports.WorksheetSelectUnProtectedCellsPermission=as;exports.WorksheetSetCellStylePermission=qn;exports.WorksheetSetCellValuePermission=zn;exports.WorksheetSetColumnStylePermission=Jn;exports.WorksheetSetRowStylePermission=Kn;exports.WorksheetSortPermission=no;exports.WorksheetViewPermission=Yn;exports.alignToMergedCellsBorders=rt;exports.convertPrimaryWithCoordToPrimary=Nr;exports.convertSelectionDataToRange=pa;exports.createTopMatrixFromMatrix=ur;exports.createTopMatrixFromRanges=cr;exports.defaultWorkbookPermissionPoints=Hi;exports.defaultWorksheetPermissionPoint=zs;exports.factoryRemoveNumfmtUndoMutation=Fs;exports.factorySetNumfmtUndoMutation=js;exports.findAllRectangle=mn;exports.followSelectionOperation=we;exports.getAddMergeMutationRangeByType=Pr;exports.getAllRangePermissionPoint=Pe;exports.getAllWorkbookPermissionPoint=Gt;exports.getAllWorksheetPermissionPoint=Ue;exports.getAllWorksheetPermissionPointByPointPanel=ft;exports.getCellAtRowCol=ns;exports.getDefaultRangePermission=Zi;exports.getInsertRangeMutations=Kt;exports.getMoveRangeUndoRedoMutations=Et;exports.getNormalSelectionStyle=Ca;exports.getPrimaryForRange=ae;exports.getRemoveRangeMutations=Jt;exports.getSheetCommandTarget=j;exports.getSheetCommandTargetWorkbook=Bn;exports.getSheetMutationTarget=Pt;exports.handleBaseInsertRange=xe;exports.handleBaseMoveRowsCols=ot;exports.handleBaseRemoveRange=Ae;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=Ui;exports.handleDefaultRangeChangeWithEffectRefCommands=bi;exports.handleDeleteRangeMoveLeft=br;exports.handleDeleteRangeMoveUp=Ur;exports.handleDeleteRangeMutation=ms;exports.handleIRemoveCol=In;exports.handleIRemoveRow=Mn;exports.handleInsertCol=yn;exports.handleInsertRangeMoveDown=yr;exports.handleInsertRangeMoveRight=_r;exports.handleInsertRangeMutation=ds;exports.handleInsertRow=wn;exports.handleMoveCols=pn;exports.handleMoveRange=wr;exports.handleMoveRows=Cn;exports.isSingleCellSelection=rs;exports.rangeMerge=hn;exports.rotateRange=le;exports.runRefRangeMutations=We;exports.setEndForRange=os;exports.transformCellDataToSelectionData=Ia;exports.transformCellsToRange=_t;
|