@univerjs/sheets 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +2 -2
- package/lib/es/facade.js +1 -1
- package/lib/es/index.js +2 -2
- package/lib/facade.js +1 -1
- package/lib/index.js +2 -2
- package/lib/types/commands/commands/set-worksheet-row-height.command.d.ts +1 -1
- package/lib/types/facade/f-enum.d.ts +4 -3
- package/lib/types/facade/f-event.d.ts +79 -78
- package/lib/types/facade/f-univer.d.ts +0 -6
- package/lib/types/index.d.ts +6 -4
- package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +1 -0
- package/lib/types/skeleton/drawing-position-util.d.ts +49 -0
- package/lib/types/skeleton/skeleton.service.d.ts +27 -7
- package/lib/types/skeleton/util.d.ts +34 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +7 -7
package/lib/es/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{BooleanNumber as e,CanceledError as t,DEFAULT_STYLES as n,Dimension as r,Direction as i,HorizontalAlign as a,IAuthzIoService as o,ICommandService as s,ILogService as c,IPermissionService as l,IResourceLoaderService as u,IUniverInstanceService as d,Inject as f,Injector as p,LocaleService as ee,ObjectMatrix as te,RANGE_TYPE as m,Rectangle as h,RedoCommand as ne,RichTextValue as g,TextStyleValue as re,Tools as ie,UndoCommand as ae,UniverInstanceType as _,VerticalAlign as v,WrapStrategy as oe,cellToRange as se,covertCellValue as ce,covertCellValues as le,generateIntervalsByPoints as ue,generateRandomId as de,isNullCell as y,mergeWorksheetSnapshotWithDefault as fe,toDisposable as pe}from"@univerjs/core";import{FBase as me,FBaseInitialable as he,FEnum as ge,FEventName as _e,FUniver as ve}from"@univerjs/core/facade";import{AddRangeProtectionMutation as ye,AddWorksheetProtectionMutation as be,AppendRowCommand as xe,AutoFillCommand as Se,COMMAND_LISTENER_VALUE_CHANGE as Ce,CancelFrozenCommand as we,ClearSelectionAllCommand as Te,ClearSelectionContentCommand as Ee,ClearSelectionFormatCommand as De,CopySheetCommand as Oe,DeleteRangeMoveLeftCommand as ke,DeleteRangeMoveUpCommand as Ae,DeleteRangeProtectionMutation as je,DeleteWorksheetProtectionMutation as Me,DeleteWorksheetRangeThemeStyleCommand as Ne,EditStateEnum as b,InsertColByRangeCommand as Pe,InsertRangeMoveDownCommand as Fe,InsertRangeMoveRightCommand as Ie,InsertRowByRangeCommand as Le,InsertSheetCommand as x,MoveColsCommand as Re,MoveRowsCommand as ze,PermissionPointsDefinitions as Be,RangeProtectionPermissionDeleteProtectionPoint as Ve,RangeProtectionPermissionEditPoint as He,RangeProtectionPermissionManageCollaPoint as Ue,RangeProtectionPermissionViewPoint as We,RangeProtectionRuleModel as S,RangeThemeStyle as Ge,RegisterWorksheetRangeThemeStyleCommand as Ke,RemoveColByRangeCommand as qe,RemoveDefinedNameCommand as Je,RemoveRowByRangeCommand as Ye,RemoveSheetCommand as Xe,RemoveWorksheetMergeCommand as Ze,SCOPE_WORKBOOK_VALUE_DEFINED_NAME as C,SetBorderBasicCommand as Qe,SetColDataCommand as $e,SetColHiddenCommand as et,SetColWidthCommand as tt,SetDefinedNameCommand as nt,SetFrozenCommand as rt,SetGridlinesColorCommand as it,SetHorizontalTextAlignCommand as at,SetRangeCustomMetadataCommand as ot,SetRangeProtectionMutation as st,SetRangeValuesCommand as w,SetRangeValuesMutation as ct,SetRowDataCommand as lt,SetRowHeightCommand as ut,SetRowHiddenCommand as dt,SetSelectionsOperation as ft,SetSpecificColsVisibleCommand as pt,SetSpecificRowsVisibleCommand as mt,SetStyleCommand as T,SetTabColorCommand as ht,SetTabColorMutation as gt,SetTextRotationCommand as _t,SetTextWrapCommand as vt,SetVerticalTextAlignCommand as yt,SetWorkbookNameCommand as bt,SetWorksheetActiveOperation as E,SetWorksheetColumnCountCommand as xt,SetWorksheetDefaultStyleMutation as St,SetWorksheetHideCommand as Ct,SetWorksheetHideMutation as wt,SetWorksheetNameCommand as Tt,SetWorksheetOrderCommand as Et,SetWorksheetOrderMutation as Dt,SetWorksheetPermissionPointsMutation as Ot,SetWorksheetRangeThemeStyleCommand as kt,SetWorksheetRowCountCommand as At,SetWorksheetRowIsAutoHeightCommand as jt,SetWorksheetRowIsAutoHeightMutation as Mt,SetWorksheetShowCommand as Nt,SheetRangeThemeService as Pt,SheetSkeletonChangeType as Ft,SheetValueChangeType as It,SheetsFreezeSyncController as Lt,SheetsSelectionsService as Rt,SplitDelimiterEnum as zt,SplitTextToColumnsCommand as Bt,ToggleGridlinesCommand as Vt,UnitObject as D,UnregisterWorksheetRangeThemeStyleCommand as Ht,ViewStateEnum as O,WorkbookCommentPermission as Ut,WorkbookCopyPermission as Wt,WorkbookCopySheetPermission as Gt,WorkbookCreateProtectPermission as Kt,WorkbookCreateSheetPermission as qt,WorkbookDeleteColumnPermission as Jt,WorkbookDeleteRowPermission as Yt,WorkbookDeleteSheetPermission as Xt,WorkbookDuplicatePermission as Zt,WorkbookEditablePermission as Qt,WorkbookExportPermission as $t,WorkbookHideSheetPermission as en,WorkbookHistoryPermission as tn,WorkbookInsertColumnPermission as nn,WorkbookInsertRowPermission as rn,WorkbookManageCollaboratorPermission as an,WorkbookMoveSheetPermission as on,WorkbookPermissionService as sn,WorkbookPrintPermission as cn,WorkbookRecoverHistoryPermission as ln,WorkbookRenameSheetPermission as un,WorkbookSharePermission as dn,WorkbookViewHistoryPermission as fn,WorkbookViewPermission as pn,WorksheetCopyPermission as mn,WorksheetDeleteColumnPermission as hn,WorksheetDeleteProtectionPermission as gn,WorksheetDeleteRowPermission as _n,WorksheetEditExtraObjectPermission as vn,WorksheetEditPermission as yn,WorksheetFilterPermission as bn,WorksheetInsertColumnPermission as xn,WorksheetInsertHyperlinkPermission as Sn,WorksheetInsertRowPermission as Cn,WorksheetManageCollaboratorPermission as wn,WorksheetPivotTablePermission as Tn,WorksheetProtectionPointModel as En,WorksheetProtectionRuleModel as Dn,WorksheetSelectProtectedCellsPermission as On,WorksheetSelectUnProtectedCellsPermission as kn,WorksheetSetCellStylePermission as An,WorksheetSetCellValuePermission as jn,WorksheetSetColumnStylePermission as Mn,WorksheetSetRowStylePermission as Nn,WorksheetSortPermission as Pn,WorksheetViewPermission as Fn,addMergeCellsUtil as In,copyRangeStyles as k,getAddMergeMutationRangeByType as Ln,getAllWorksheetPermissionPoint as Rn,getAllWorksheetPermissionPointByPointPanel as zn,getNextPrimaryCell as Bn,getPrimaryForRange as A,getValueChangedEffectedRange as Vn}from"@univerjs/sheets";import{FormulaDataModel as Hn,IDefinedNamesService as Un,deserializeRangeWithSheet as Wn,serializeRange as Gn,serializeRangeWithSheet as Kn}from"@univerjs/engine-formula";import{UnitRole as qn}from"@univerjs/protocol";import{BehaviorSubject as j,Subject as Jn}from"rxjs";import{distinctUntilChanged as M,filter as N,map as P,shareReplay as F}from"rxjs/operators";function I(e){"@babel/helpers - typeof";return I=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},I(e)}function Yn(e,t){if(I(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(I(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Xn(e){var t=Yn(e,`string`);return I(t)==`symbol`?t:t+``}function L(e,t,n){return(t=Xn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R(e,t){return function(n,r){t(n,r,e)}}function z(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function Zn(e,t,n){let r=n.getDefinedNameMap(e);if(r==null)return t.t(`definedName.defaultName`)+1;let i=Array.from(Object.values(r)).length+1,a=t.t(`definedName.defaultName`)+i;if(n.getValueByName(e,a)==null)return a;let o=i+1;for(;;){let r=t.t(`definedName.defaultName`)+o;if(n.getValueByName(e,r)==null)return r;o++}}var B=class{constructor(){L(this,`_definedNameParam`,void 0),this._definedNameParam={id:de(10),unitId:``,name:``,formulaOrRefString:``,localSheetId:C}}setName(e){return this._definedNameParam.name=e,this}setFormula(e){return this._definedNameParam.formulaOrRefString=`=${e}`,this}setRef(e){return this._definedNameParam.formulaOrRefString=e,this}setRefByRange(e,t,n,r){return this._definedNameParam.formulaOrRefString=Gn({startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(r==null?1:r)-1}),this}setComment(e){return this._definedNameParam.comment=e,this}setScopeToWorksheet(e){return this._definedNameParam.localSheetId=e.getSheetId(),this}setScopeToWorkbook(){return this._definedNameParam.localSheetId=C,this}setHidden(e){return this._definedNameParam.hidden=e,this}build(){return this._definedNameParam}load(e){return this._definedNameParam=e,this}};let V=class extends me{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._definedNameParam=e,this._injector=t,this._commandService=n,this._permissionService=r,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=o,this._authzIoService=s,this._localeService=c,this._definedNamesService=l}_apply(){this._definedNameParam.name===``&&(this._definedNameParam.name=Zn(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(nt.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(e){this._definedNameParam.name=e,this._apply()}setFormula(e){this._definedNameParam.formulaOrRefString=`=${e}`,this._apply()}setRef(e){this._definedNameParam.formulaOrRefString=e,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(e,t,n,r){this._definedNameParam.formulaOrRefString=Gn({startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(r==null?1:r)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(e){this._definedNameParam.comment=e,this._apply()}setScopeToWorksheet(e){this._definedNameParam.localSheetId=e.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=C,this._apply()}setHidden(e){this._definedNameParam.hidden=e,this._apply()}delete(){this._commandService.syncExecuteCommand(Je.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===C}toBuilder(){let e=this._injector.createInstance(B);return e.load(this._definedNameParam),e}};V=z([R(1,f(p)),R(2,s),R(3,l),R(4,f(Dn)),R(5,f(S)),R(6,f(En)),R(7,f(o)),R(8,f(ee)),R(9,Un)],V);let H=function(e){return e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e}({}),U=function(e){return e.Edit=`WorkbookEdit`,e.View=`WorkbookView`,e.Print=`WorkbookPrint`,e.Export=`WorkbookExport`,e.Share=`WorkbookShare`,e.CopyContent=`WorkbookCopy`,e.DuplicateFile=`WorkbookDuplicate`,e.Comment=`WorkbookComment`,e.ManageCollaborator=`WorkbookManageCollaborator`,e.CreateSheet=`WorkbookCreateSheet`,e.DeleteSheet=`WorkbookDeleteSheet`,e.RenameSheet=`WorkbookRenameSheet`,e.MoveSheet=`WorkbookMoveSheet`,e.HideSheet=`WorkbookHideSheet`,e.ViewHistory=`WorkbookViewHistory`,e.ManageHistory=`WorkbookHistory`,e.RecoverHistory=`WorkbookRecoverHistory`,e.CreateProtection=`WorkbookCreateProtect`,e.InsertRow=`WorkbookInsertRow`,e.InsertColumn=`WorkbookInsertColumn`,e.DeleteRow=`WorkbookDeleteRow`,e.DeleteColumn=`WorkbookDeleteColumn`,e.CopySheet=`WorkbookCopySheet`,e}({}),W=function(e){return e.Edit=`WorksheetEdit`,e.View=`WorksheetView`,e.Copy=`WorksheetCopy`,e.SetCellValue=`WorksheetSetCellValue`,e.SetCellStyle=`WorksheetSetCellStyle`,e.SetRowStyle=`WorksheetSetRowStyle`,e.SetColumnStyle=`WorksheetSetColumnStyle`,e.InsertRow=`WorksheetInsertRow`,e.InsertColumn=`WorksheetInsertColumn`,e.DeleteRow=`WorksheetDeleteRow`,e.DeleteColumn=`WorksheetDeleteColumn`,e.Sort=`WorksheetSort`,e.Filter=`WorksheetFilter`,e.PivotTable=`WorksheetPivotTable`,e.InsertHyperlink=`WorksheetInsertHyperlink`,e.EditExtraObject=`WorksheetEditExtraObject`,e.ManageCollaborator=`WorksheetManageCollaborator`,e.DeleteProtection=`WorksheetDeleteProtection`,e.SelectProtectedCells=`WorksheetSelectProtectedCells`,e.SelectUnProtectedCells=`WorksheetSelectUnProtectedCells`,e}({}),G=function(e){return e.Edit=`RangeEdit`,e.View=`RangeView`,e.ManageCollaborator=`RangeManageCollaborator`,e.Delete=`RangeDeleteProtection`,e}({}),K=class extends me{constructor(e,t,n,r,i,a,o,s){super(),this._injector=e,this._commandService=t,this._permissionService=n,this._worksheetProtectionRuleModel=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointRuleModel=a,this._workbookPermissionService=o,this._authzIoService=s,L(this,`permissionPointsDefinition`,Be),L(this,`rangeRuleChangedAfterAuth$`,void 0),L(this,`sheetRuleChangedAfterAuth$`,void 0),L(this,`unitPermissionInitStateChange$`,void 0),this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$,this.unitPermissionInitStateChange$=this._workbookPermissionService.unitPermissionInitStateChange$}setWorkbookPermissionPoint(e,t,n){let r=new t(e);this._permissionService.getPermissionPoint(r.id)||this._permissionService.addPermissionPoint(r),this._permissionService.updatePermissionPoint(r.id,n)}checkWorkbookPermissionPoint(e,t){let n=new t(e),r=this._permissionService.getPermissionPoint(n.id);if(r)return r.value}setWorkbookEditPermission(e,t){this.setWorkbookPermissionPoint(e,Qt,t)}async addWorksheetBasePermission(e,t,n){let r=[];if(n!=null&&n.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),i=new Set(n.allowedUsers);r=t.filter(e=>{var t;return i.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:H.Editor,subject:e.subject}));let a=new Set(r.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));n.allowedUsers.forEach(e=>{a.has(e)||console.error(`User ${e} not found in collaborators list`)})}let i=await this._authzIoService.create({objectType:D.Worksheet,worksheetObject:{collaborators:r,unitID:e,strategies:[],name:(n==null?void 0:n.name)||``,scope:void 0}});if(this._commandService.syncExecuteCommand(be.id,{unitId:e,subUnitId:t,rule:{permissionId:i,unitType:D.Worksheet,unitId:e,subUnitId:t}}))return i}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(Me.id,{unitId:e,subUnitId:t}),[...Rn(),...zn()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,n,r){let i=this._worksheetProtectionRuleModel.getRule(e,t),a;if(n===yn||n===Fn)a=i?i.permissionId:await this.addWorksheetBasePermission(e,t);else{let n=this._worksheetProtectionPointRuleModel.getRule(e,t);n?a=n.permissionId:(a=await this._authzIoService.create({objectType:D.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:``,scope:void 0}}),this._commandService.syncExecuteCommand(Ot.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:a}}))}let o=new n(e,t);if(this._permissionService.getPermissionPoint(o.id)||this._permissionService.addPermissionPoint(o),a){let t=o.subType;await this._authzIoService.update({objectType:D.Worksheet,objectID:a,strategies:[{action:t,role:r?H.Owner:H.Reader}],unitID:e,share:void 0,name:``,scope:void 0,collaborators:void 0})}return this._permissionService.updatePermissionPoint(o.id,r),a}checkWorksheetPermissionPoint(e,t,n){let r=new n(e,t),i=this._permissionService.getPermissionPoint(r.id);if(i)return i.value}async addRangeBaseProtection(e,t,n,r){let i=[];if(r!=null&&r.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),n=new Set(r.allowedUsers);i=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:H.Editor,subject:e.subject}));let a=new Set(i.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));r.allowedUsers.forEach(e=>{a.has(e)||console.error(`User ${e} not found in collaborators list`)})}let a=await this._authzIoService.create({objectType:D.SelectRange,selectRangeObject:{collaborators:i,unitID:e,name:(r==null?void 0:r.name)||``,scope:void 0}}),o=`ruleId_${de(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).some(e=>e.ranges.some(e=>n.some(t=>h.intersects(t.getRange(),e)))))throw Error(`range protection cannot intersect`);let s=this._determineRangeViewState(r),c=this._determineRangeEditState(r),l={unitId:e,subUnitId:t,rules:[{permissionId:a,unitType:D.SelectRange,unitId:e,subUnitId:t,ranges:n.map(e=>e.getRange()),id:o,description:r==null?void 0:r.name,viewState:s,editState:c}]};if(this._commandService.syncExecuteCommand(ye.id,l))return{permissionId:a,ruleId:o}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?O.NoOneElseCanView:O.OthersCanView}_determineRangeEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?b.DesignedUserCanEdit:b.OnlyMe}removeRangeProtection(e,t,n){this._commandService.syncExecuteCommand(je.id,{unitId:e,subUnitId:t,ruleIds:n})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...zn()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,r.value)}))}setRangeProtectionPermissionPoint(e,t,n,r,i){let a=new r(e,t,n);this._permissionService.getPermissionPoint(a.id)||this._permissionService.addPermissionPoint(a),this._permissionService.updatePermissionPoint(a.id,i)}setRangeProtectionRanges(e,t,n,r){let i=this._rangeProtectionRuleModel.getRule(e,t,n);if(i){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).filter(e=>e.id!==n).some(e=>e.ranges.some(e=>r.some(t=>h.intersects(t.getRange(),e)))))throw Error(`range protection cannot intersect`);this._commandService.syncExecuteCommand(st.id,{unitId:e,subUnitId:t,ruleId:n,rule:{...i,ranges:r.map(e=>e.getRange())}})}}getPermissionInfoWithCell(e,t,n,r){let i=se(n,r),a=this._rangeProtectionRuleModel.getSubunitRuleList(e,t).find(e=>e.ranges.some(e=>h.intersects(i,e)));if(a)return{permissionId:a.permissionId,ruleId:a.id}}};K=z([R(0,f(p)),R(1,s),R(2,l),R(3,f(Dn)),R(4,f(S)),R(5,f(En)),R(6,f(sn)),R(7,f(o))],K);var Qn;let q=Qn=class{constructor(e,t,n,r){this._workbook=e,this._worksheet=t,this._selections=n,this._injector=r}getActiveRange(){let e=this._selections.find(e=>!!e.primary);return e?this._injector.createInstance(Q,this._workbook,this._worksheet,e.range):null}getActiveRangeList(){return this._selections.map(e=>this._injector.createInstance(Q,this._workbook,this._worksheet,e.range))}getCurrentCell(){let e=this._selections.find(e=>!!e.primary);return e?e.primary:null}getActiveSheet(){let e=this._injector.createInstance($,this._workbook);return this._injector.createInstance(Z,e,this._workbook,this._worksheet)}updatePrimaryCell(e){let t=this._injector.get(s),n=[],r=!1;for(let{range:t,style:i}of this._selections)h.contains(t,e.getRange())?(n.push({range:t,primary:A(e.getRange(),this._worksheet),style:i}),r=!0):n.push({range:t,primary:null,style:i});r||(n=[{range:e.getRange(),primary:A(e.getRange(),this._worksheet)}]);let i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:n};return t.syncExecuteCommand(ft.id,i),new Qn(this._workbook,this._worksheet,n,this._injector)}getNextDataRange(e){if(!this._selections.find(e=>!!e.primary))return null;let t=Bn(this._selections.concat(),e,this._worksheet);return t?this._injector.createInstance(Q,this._workbook,this._worksheet,t):null}};q=Qn=z([R(3,f(p))],q);let J=class{constructor(e,t,n,r,i,a,o,s,c){this._unitId=e,this._subUnitId=t,this._ruleId=n,this._permissionId=r,this._ranges=i,this._options=a,this._injector=o,this._commandService=s,this._rangeProtectionRuleModel=c}get id(){return this._ruleId}get ranges(){return this._ranges}get options(){return{...this._options}}async updateRanges(e){if(!e||e.length===0)throw Error(`Ranges cannot be empty`);let t=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,this._ruleId);if(!t)throw Error(`Rule ${this._ruleId} not found`);if(this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).filter(e=>e.id!==this._ruleId).some(t=>t.ranges.some(t=>e.some(e=>{let n=e.getRange();return this._rangesIntersect(n,t)}))))throw Error(`Range protection cannot intersect with other protection rules`);await this._commandService.executeCommand(st.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleId:this._ruleId,rule:{...t,ranges:e.map(e=>e.getRange())}}),this._ranges.length=0,this._ranges.push(...e)}async remove(){await this._commandService.executeCommand(je.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleIds:[this._ruleId]})}_rangesIntersect(e,t){return!(e.endRow<t.startRow||e.startRow>t.endRow||e.endColumn<t.startColumn||e.startColumn>t.endColumn)}};J=z([R(6,f(p)),R(7,f(s)),R(8,f(S))],J);const Y={[U.Edit]:Qt,[U.View]:pn,[U.Print]:cn,[U.Export]:$t,[U.Share]:dn,[U.CopyContent]:Wt,[U.DuplicateFile]:Zt,[U.Comment]:Ut,[U.ManageCollaborator]:an,[U.CreateSheet]:qt,[U.DeleteSheet]:Xt,[U.RenameSheet]:un,[U.MoveSheet]:on,[U.HideSheet]:en,[U.ViewHistory]:fn,[U.ManageHistory]:tn,[U.RecoverHistory]:ln,[U.CreateProtection]:Kt,[U.InsertRow]:rn,[U.InsertColumn]:nn,[U.DeleteRow]:Yt,[U.DeleteColumn]:Jt,[U.CopySheet]:Gt},$n={[W.Edit]:yn,[W.View]:Fn,[W.Copy]:mn,[W.SetCellValue]:jn,[W.SetCellStyle]:An,[W.SetRowStyle]:Nn,[W.SetColumnStyle]:Mn,[W.InsertRow]:Cn,[W.InsertColumn]:xn,[W.DeleteRow]:_n,[W.DeleteColumn]:hn,[W.Sort]:Pn,[W.Filter]:bn,[W.PivotTable]:Tn,[W.InsertHyperlink]:Sn,[W.EditExtraObject]:vn,[W.ManageCollaborator]:wn,[W.DeleteProtection]:gn,[W.SelectProtectedCells]:On,[W.SelectUnProtectedCells]:kn},X={[G.Edit]:He,[G.View]:We,[G.ManageCollaborator]:Ue,[G.Delete]:Ve};let er=class{constructor(e,t,n,r,i,a,o,s){this._worksheet=e,this._injector=t,this._permissionService=n,this._authzIoService=r,this._commandService=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointModel=o,this._worksheetProtectionRuleModel=s,L(this,`_permissionSubject`,void 0),L(this,`_rangeRulesSubject`,void 0),L(this,`permission$`,void 0),L(this,`pointChange$`,void 0),L(this,`rangeProtectionChange$`,void 0),L(this,`rangeProtectionRules$`,void 0),L(this,`_unitId`,void 0),L(this,`_subUnitId`,void 0),L(this,`_subscriptions`,[]),L(this,`_fPermission`,void 0),this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(K),this._permissionSubject=new j(this._buildSnapshot()),this._rangeRulesSubject=new j(this._buildRangeProtectionRules()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.rangeProtectionChange$=this._createRangeProtectionChangeStream(),this.rangeProtectionRules$=this._createRangeProtectionRulesStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe(M((e,t)=>JSON.stringify(e)===JSON.stringify(t)),F({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId)),P(e=>{var t,n;let r=this._extractWorksheetPointType(e.id);return r?{point:r,value:(t=e.value)==null?!1:t,oldValue:!((n=e.value)!=null&&n)}:null}),N(e=>e!==null),F({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(N(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId),P(e=>{let t=this._buildRangeProtectionRules();return{type:e.type===`delete`?`delete`:e.type===`set`?`update`:`add`,rules:t}}),F({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){let e=this._rangeProtectionRuleModel.ruleChange$.pipe(N(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(e),this._rangeRulesSubject.asObservable().pipe(M((e,t)=>e.length===t.length?e.every((e,n)=>e.id===t[n].id):!1),F({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(e){for(let[t,n]of Object.entries($n))if(new n(this._unitId,this._subUnitId).id===e)return t;return null}_getRuleEditPermission(e){var t;let n=X[G.Edit];if(!n)return!1;let r=new n(this._unitId,this._subUnitId,e.permissionId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!1:t}_buildSnapshot(){let e={};for(let t in W){let n=W[t];e[n]=this.getPoint(n)}return e}_buildRangeProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1));return this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,{name:e.description||``,allowEdit:this._getRuleEditPermission(e)})})}_buildProtectionRule(e){let t=e.ranges.map(e=>this._worksheet.getRange(e)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView};return e.editState===b.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)}debugCellPermission(e,t){let n=this._fPermission.getPermissionInfoWithCell(this._unitId,this._subUnitId,e,t);if(!n)return;let{ruleId:r}=n,i=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,r);if(i)return this._buildProtectionRule(i)}async protect(e){if(this.isProtected())throw Error(`Worksheet is already protected. Call unprotect() first.`);let t=await this._fPermission.addWorksheetBasePermission(this._unitId,this._subUnitId,e);if(!t)throw Error(`Failed to create worksheet protection`);return t}async unprotect(){if(!this.isProtected())return;this._fPermission.removeWorksheetPermission(this._unitId,this._subUnitId);let e=this._buildSnapshot();this._permissionSubject.next(e)}isProtected(){return!!this._worksheetProtectionRuleModel.getRule(this._unitId,this._subUnitId)}async setMode(e){let t=this._getModePermissions(e);await this._batchSetPermissionPoints(t)}_getModePermissions(e){let t={};switch(Object.values(W).forEach(e=>{t[e]=!1}),e){case`editable`:Object.values(W).forEach(e=>{t[e]=!0});break;case`readOnly`:t[W.View]=!0;break;case`filterOnly`:t[W.View]=!0,t[W.Sort]=!0,t[W.Filter]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=$n[e];if(!i)throw Error(`Unknown worksheet permission point: ${e}`);let a=this.getPoint(e);a!==r&&(await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,i,r),t.push({point:e,value:r,oldValue:a}))}if(t.length>0){let e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode(`readOnly`)}async setEditable(){await this.setMode(`editable`)}canEdit(){return this.getPoint(W.Edit)}canEditCell(e,t){if(!this.canEdit())return!1;let n=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);for(let r of n)for(let n of r.ranges)if(e>=n.startRow&&e<=n.endRow&&t>=n.startColumn&&t<=n.endColumn)return this._getRuleEditPermission(r);return!0}canViewCell(e,t){return this.getPoint(W.View)}async setPoint(e,t){let n=$n[e];if(!n)throw Error(`Unknown worksheet permission point: ${e}`);if(this.getPoint(e)===t)return;await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,n,t);let r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(e){var t;let n=$n[e];if(!n)throw Error(`Unknown worksheet permission point: ${e}`);let r=new n(this._unitId,this._subUnitId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!0:t}getSnapshot(){return this._buildSnapshot()}async applyConfig(e){if(e.mode&&await this.setMode(e.mode),e.points)for(let[t,n]of Object.entries(e.points))typeof n==`boolean`&&await this.setPoint(t,n);if(e.rangeProtections&&e.rangeProtections.length>0){let t=e.rangeProtections.map(e=>({ranges:e.rangeRefs.map(e=>this._worksheet.getRange(e)),options:e.options}));await this.protectRanges(t)}}async protectRanges(e){if(!e||e.length===0)throw Error(`Configs cannot be empty`);let t=[];e.some(e=>{var t;return(t=e.options)==null||(t=t.allowedUsers)==null?void 0:t.length})&&(t=await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId}));let n=await Promise.all(e.map(e=>{var n,r;let i=[];if((n=e.options)!=null&&n.allowedUsers){let n=new Set(e.options.allowedUsers);i=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:qn.Editor,subject:e.subject}));let r=new Set(i.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));e.options.allowedUsers.forEach(e=>{r.has(e)||console.error(`User ${e} not found in collaborators list`)})}return this._authzIoService.create({objectType:D.SelectRange,selectRangeObject:{collaborators:i,unitID:this._unitId,name:((r=e.options)==null?void 0:r.name)||``,scope:void 0}})})),r=e.map((e,t)=>{var r;let i=this._determineViewState(e.options),a=this._determineEditState(e.options);return{permissionId:n[t],unitType:D.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:e.ranges.map(e=>e.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((r=e.options)==null?void 0:r.name)||``,viewState:i,editState:a}});if(!await this._commandService.executeCommand(ye.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:r}))throw Error(`Failed to create range protection rules`);return await Promise.all(e.map((e,t)=>this._setPermissionPoints(n[t],e.options))),r.map((t,n)=>this._injector.createInstance(J,this._unitId,this._subUnitId,t.id,t.permissionId,e[n].ranges,e[n].options||{}))}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?O.NoOneElseCanView:O.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?b.DesignedUserCanEdit:b.OnlyMe}async _setPermissionPoints(e,t){if(!t)return;let n=(e,t)=>e===void 0?t:typeof e==`boolean`?e:!0;await this._setPermissionPoint(e,G.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,G.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=X[t];r&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,e,r,n)}async unprotectRules(e){!e||e.length===0||this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,e)}async listRangeProtectionRules(){return this._buildRangeProtectionRules()}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete(),this._rangeRulesSubject.complete()}};er=z([R(1,f(p)),R(2,l),R(3,o),R(4,s),R(5,f(S)),R(6,f(En)),R(7,f(Dn))],er);function tr(e){switch(e){case`left`:return a.LEFT;case`center`:return a.CENTER;case`normal`:return a.RIGHT;default:throw Error(`Invalid horizontal alignment: ${e}`)}}function nr(e){switch(e){case a.LEFT:return`left`;case a.CENTER:return`center`;case a.RIGHT:return`normal`;default:return`general`}}function rr(e){switch(e){case`top`:return v.TOP;case`middle`:return v.MIDDLE;case`bottom`:return v.BOTTOM;default:throw Error(`Invalid vertical alignment: ${e}`)}}function ir(e){switch(e){case v.TOP:return`top`;case v.MIDDLE:return`middle`;case v.BOTTOM:return`bottom`;default:return`general`}}function ar(e,t){return{startRow:e.startRow,endRow:e.endRow,startColumn:0,endColumn:t.getColumnCount()-1,rangeType:m.ROW}}function or(e,t){return{startRow:0,endRow:t.getRowCount()-1,startColumn:e.startColumn,endColumn:e.endColumn,rangeType:m.COLUMN}}var sr;let Z=sr=class extends he{constructor(e,t,n,r,i,a,o){super(r),this._fWorkbook=e,this._workbook=t,this._worksheet=n,this._injector=r,this._selectionManagerService=i,this._logService=a,this._commandService=o,L(this,`setActiveSelection`,this.setActiveRange)}dispose(){super.dispose(),delete this._fWorkbook,delete this._workbook,delete this._worksheet}getSheet(){return this._worksheet}getInject(){return this._injector}getWorkbook(){return this._workbook}getSheetId(){return this._worksheet.getSheetId()}getSheetName(){return this._worksheet.getName()}getSelection(){let e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(q,this._workbook,this._worksheet,e):null}getDefaultStyle(){return this._worksheet.getDefaultCellStyle()}getRowDefaultStyle(e,t=!1){return t?this._worksheet.getRowStyle(e,t):this._worksheet.getRowStyle(e)}getColumnDefaultStyle(e,t=!1){return t?this._worksheet.getColumnStyle(e,t):this._worksheet.getColumnStyle(e)}setDefaultStyle(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(St.id,{unitId:t,subUnitId:n,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,t){let n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand($e.id,n),this}setRowDefaultStyle(e,t){let n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(lt.id,n),this}getRange(e,t,n,r){let i,a;if(typeof e==`object`)i=e,a=this._worksheet;else if(typeof e==`string`){let{range:t,sheetName:n}=Wn(e),r=n?this._workbook.getSheetBySheetName(n):this._worksheet;if(!r)throw Error(`Range not found`);a=r,i={...t,unitId:this._workbook.getUnitId(),sheetId:a.getSheetId(),rangeType:m.NORMAL,startRow:t.rangeType===m.COLUMN?0:t.startRow,endRow:t.rangeType===m.COLUMN?a.getMaxRows()-1:t.endRow,startColumn:t.rangeType===m.ROW?0:t.startColumn,endColumn:t.rangeType===m.ROW?a.getMaxColumns()-1:t.endColumn}}else if(typeof e==`number`&&t!==void 0)a=this._worksheet,i={startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(r==null?1:r)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw Error(`Invalid range specification`);return this._injector.createInstance(Q,this._workbook,a,i)}getMaxColumns(){return this._worksheet.getMaxColumns()}getMaxRows(){return this._worksheet.getMaxRows()}insertRowAfter(e){return this.insertRowsAfter(e,1)}insertRowBefore(e){return this.insertRowsBefore(e,1)}insertRows(e,t=1){return this.insertRowsBefore(e,t)}insertRowsAfter(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.DOWN,o=e+1,s=e+t,c=this._worksheet.getColumnCount()-1,l=k(this._worksheet,o,s,0,c,!0,e);return this._commandService.syncExecuteCommand(Le.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:o,endRow:s,startColumn:0,endColumn:c},cellValue:l}),this}insertRowsBefore(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.UP,o=e,s=e+t-1,c=this._worksheet.getColumnCount()-1,l=k(this._worksheet,o,s,0,c,!0,e-1);return this._commandService.syncExecuteCommand(Le.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:o,endRow:s,startColumn:0,endColumn:c},cellValue:l}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,t){let n={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(Ye.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteRowsByPoints(e){return ue(e).reverse().forEach(e=>{this.deleteRows(e[0],e[1]-e[0]+1)}),this}moveRows(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=ar(e.getRange(),this._worksheet),a=i,o={startRow:t,endRow:t,startColumn:i.startColumn,endColumn:i.endColumn};return this._commandService.syncExecuteCommand(ze.id,{unitId:n,subUnitId:r,range:i,fromRange:a,toRange:o}),this}hideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=ar(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(dt.id,{unitId:t,subUnitId:n,ranges:[r]}),this}hideRows(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:m.ROW};return this._commandService.syncExecuteCommand(dt.id,{unitId:n,subUnitId:r,ranges:[i]}),this}unhideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=ar(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(mt.id,{unitId:t,subUnitId:n,ranges:[r]}),this}showRows(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:m.ROW};return this._commandService.syncExecuteCommand(mt.id,{unitId:n,subUnitId:r,ranges:[i]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(t,n=e.TRUE){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startRow:t,endRow:t,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:a[0],value:oe.WRAP}),this._commandService.syncExecuteCommand(Mt.id,{unitId:r,subUnitId:i,ranges:a,autoHeightInfo:n}),this}setRowHeights(e,t,n){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=this._worksheet.getRowManager(),o=[],s=[];for(let r=e;r<e+t;r++){var c;let e=((c=a.getRow(r))==null?void 0:c.ah)||this._worksheet.getConfig().defaultRowHeight,t={startRow:r,endRow:r,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};n<=e?o.push(t):s.push(t)}return s.length>0&&this._commandService.syncExecuteCommand(ut.id,{unitId:r,subUnitId:i,ranges:s,value:n}),o.length>0&&this._commandService.syncExecuteCommand(jt.id,{unitId:r,subUnitId:i,ranges:o}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(jt.id,{unitId:n,subUnitId:r,ranges:i}),this}setRangesAutoHeight(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(jt.id,{unitId:t,subUnitId:n,ranges:e}),this}setRowHeightsForced(e,t,n){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(ut.id,{unitId:r,subUnitId:i,ranges:a,value:n}),this}setRowCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r={};for(let[t,n]of Object.entries(e))r[Number(t)]={custom:n};let i={unitId:t,subUnitId:n,rowData:r};return this._commandService.syncExecuteCommand(lt.id,i),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,t=1){return this.insertColumnsBefore(e,t)}insertColumnsAfter(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.RIGHT,o=this._worksheet.getRowCount()-1,s=e+1,c=e+t,l=k(this._worksheet,0,o,s,c,!1,e);return this._commandService.syncExecuteCommand(Pe.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:0,endRow:o,startColumn:s,endColumn:c},cellValue:l}),this}insertColumnsBefore(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.LEFT,o=this._worksheet.getRowCount()-1,s=e,c=e+t-1,l=k(this._worksheet,0,o,s,c,!1,e-1);return this._commandService.syncExecuteCommand(Pe.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:0,endRow:o,startColumn:s,endColumn:c},cellValue:l}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,t){let n={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1};return this._commandService.syncExecuteCommand(qe.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteColumnsByPoints(e){return ue(e).reverse().forEach(e=>{this.deleteColumns(e[0],e[1]-e[0]+1)}),this}moveColumns(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=or(e.getRange(),this._worksheet),a=i,o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(Re.id,{unitId:n,subUnitId:r,range:i,fromRange:a,toRange:o}),this}hideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=or(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(et.id,{unitId:t,subUnitId:n,ranges:[r]}),this}hideColumns(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:m.COLUMN};return this._commandService.syncExecuteCommand(et.id,{unitId:n,subUnitId:r,ranges:[i]}),this}unhideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=or(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(pt.id,{unitId:t,subUnitId:n,ranges:[r]}),this}showColumns(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:m.COLUMN};return this._commandService.syncExecuteCommand(pt.id,{unitId:n,subUnitId:r,ranges:[i]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,n){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(tt.id,{unitId:r,subUnitId:i,ranges:a,value:n}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r={};for(let[t,n]of Object.entries(e))r[Number(t)]={custom:n};let i={unitId:t,subUnitId:n,columnData:r};return this._commandService.syncExecuteCommand($e.id,i),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(Q,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(e=>this._injector.createInstance(Q,this._workbook,this._worksheet,e))}getCellMergeData(e,t){let n=this._worksheet.getMergedCell(e,t);if(n)return this._injector.createInstance(Q,this._workbook,this._worksheet,n)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){let{unitId:t,sheetId:n}=e.getRange();if(t!==this._workbook.getUnitId()||n!==this._worksheet.getSheetId())throw Error(`Specified range must be part of the sheet.`);return this._fWorkbook.setActiveRange(e),this}getActiveCell(){return this._fWorkbook.getActiveCell()}setFreeze(e){return this._logService.warn(`setFreeze is deprecated, use setFrozenRows and setFrozenColumns instead`),this._commandService.syncExecuteCommand(rt.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(we.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){let t=this.getFreeze();if(arguments.length===1){let n=e[0];this.setFreeze({...t,startColumn:n>0?n:-1,xSplit:n})}else if(arguments.length===2){let[n=0,r=0]=e;n>r&&([n,r]=[r,n]),this._commandService.syncExecuteCommand(rt.id,{startColumn:r+1,xSplit:r-n+1,startRow:t.startRow,ySplit:t.ySplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}setFrozenRows(...e){let t=this.getFreeze();if(arguments.length===1){let n=e[0];this.setFreeze({...t,startRow:n>0?n:-1,ySplit:n})}else if(arguments.length===2){let[n=0,r=0]=e;n>r&&([n,r]=[r,n]),this._commandService.syncExecuteCommand(rt.id,{startRow:r+1,ySplit:r-n+1,startColumn:t.startColumn,xSplit:t.xSplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}getFrozenColumns(){let e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){let e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){let e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){let e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===e.FALSE}setHiddenGridlines(t){return this._commandService.syncExecuteCommand(Vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:t?e.FALSE:e.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(it.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(ht.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(s).onCommandExecuted(t=>{if(t.id===ct.id){let n=t.params;n.unitId===this._workbook.getUnitId()&&n.subUnitId===this._worksheet.getSheetId()&&n.cellValue&&e(new te(n.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(s).beforeCommandExecuted(t=>{if(t.id===ct.id){let n=t.params;n.unitId===this._workbook.getUnitId()&&n.subUnitId===this._worksheet.getSheetId()&&n.cellValue&&e(new te(n.cellValue))}})}hideSheet(){let t=this._injector.get(s);if(this._workbook.getSheets().filter(t=>t.isSheetHidden()!==e.TRUE).length<=1)throw Error(`Cannot hide the only visible sheet`);return t.syncExecuteCommand(Ct.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(s).syncExecuteCommand(Nt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===e.TRUE}setName(e){return this._commandService.syncExecuteCommand(Tt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(e){if(e&&e.contentsOnly&&!e.formatOnly)return this.clearContents();if(e&&e.formatOnly&&!e.contentsOnly)return this.clearFormats();let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=this._injector.get(s),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return r.syncExecuteCommand(Te.id,{unitId:t,subUnitId:n,ranges:[i],options:e}),this}clearContents(){let e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s),r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(Ee.id,{unitId:e,subUnitId:t,ranges:[r]}),this}clearFormats(){let e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s),r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(De.id,{unitId:e,subUnitId:t,ranges:[r]}),this}getDataRange(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._worksheet.getDataRealRange();return this.getRange(e,n,t-e+1,r-n+1)}getLastColumns(){return this._worksheet.getLastColumnWithContent()}getLastColumn(){return this._worksheet.getLastColumnWithContent()}getLastRows(){return this._worksheet.getLastRowWithContent()}getLastRow(){return this._worksheet.getLastRowWithContent()}equalTo(e){return e instanceof sr?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){let n=this._injector.createInstance(B).setName(e).setRef(t).build();n.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(n)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(e=>e.getLocalSheetId()===this.getSheetId())}setCustomMetadata(e){return this._worksheet.setCustomMetadata(e),this}getCustomMetadata(){return this._worksheet.getCustomMetadata()}setRowCustomMetadata(e,t){return this._worksheet.getRowManager().setCustomMetadata(e,t),this}setColumnCustomMetadata(e,t){return this._worksheet.getColumnManager().setCustomMetadata(e,t),this}getRowCustomMetadata(e){return this._worksheet.getRowManager().getCustomMetadata(e)}getColumnCustomMetadata(e){return this._worksheet.getColumnManager().getCustomMetadata(e)}appendRow(e){let t=this._worksheet.getCellMatrix().hasValue(),n=this._worksheet.getLastRowWithContent(),r=this._worksheet.getRowCount(),i=this._worksheet.getColumnCount(),a=t?n+1:n,o=new te;for(let t=0;t<e.length;t++)o.setValue(a,t,ce(e[t]));return this._commandService.syncExecuteCommand(xe.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:o.getMatrix(),insertRowNums:a>r-1?1:0,insertColumnNums:e.length>i?e.length-i:0,maxRows:r,maxColumns:i}),this}setRowCount(e){return this._commandService.syncExecuteCommand(At.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(xt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(er,this)}};Z=sr=z([R(3,f(p)),R(4,f(Rt)),R(5,f(c)),R(6,s)],Z);let cr=class{constructor(e,t,n,r,i,a,o,s,c){this._unitId=e,this._subUnitId=t,this._range=n,this._worksheet=r,this._injector=i,this._permissionService=a,this._authzIoService=o,this._commandService=s,this._rangeProtectionRuleModel=c,L(this,`_permissionSubject`,void 0),L(this,`_subscriptions`,[]),L(this,`_fPermission`,void 0),L(this,`permission$`,void 0),L(this,`protectionChange$`,void 0),this._fPermission=this._injector.createInstance(K),this._permissionSubject=new j(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe(N(e=>{let t=e.id;return t.includes(this._unitId)&&t.includes(this._subUnitId)})).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe(M((e,t)=>JSON.stringify(e)===JSON.stringify(t)),F({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(N(e=>e.unitId!==this._unitId||e.subUnitId!==this._subUnitId?!1:e.type===`delete`||e.type===`add`?this._rangeMatches(e.rule):!1),P(e=>(this._permissionSubject.next(this._buildSnapshot()),e.type===`delete`?{type:`unprotected`,ruleId:e.rule.id}:{type:`protected`,rule:this._createFacadeRule(e.rule)})),F({bufferSize:1,refCount:!0}))}_rangeMatches(e){let t=this._range.getRange();return e.ranges.some(e=>t.startRow===e.startRow&&t.startColumn===e.startColumn&&t.endRow===e.endRow&&t.endColumn===e.endColumn)}_createFacadeRule(e){let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView,allowEdit:e.editState===b.DesignedUserCanEdit};return this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)}getPoint(e){let t=X[e];if(!t)return console.warn(`Unknown permission point: ${e}`),!1;let n=this._getProtectionRule();if(n){let e=new t(this._unitId,this._subUnitId,n.permissionId),r=this._permissionService.getPermissionPoint(e.id);if(r)return r.value}return!0}getSnapshot(){return this._buildSnapshot()}isProtected(){return this._getProtectionRule()!==null}canEdit(){return this.getPoint(G.Edit)}canView(){return this.getPoint(G.View)}canManageCollaborator(){return this.getPoint(G.ManageCollaborator)}canDelete(){return this.getPoint(G.Delete)}async setPoint(e,t){let n=X[e];if(!n)throw Error(`Unknown permission point: ${e}`);let r=this._getProtectionRule();if(!r)throw Error(`Cannot set permission point: No protection rule exists for this range. Call protect() first.`);if(this.getPoint(e)===t)return;let i=r.permissionId;this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,i,n,t),this._permissionSubject.next(this._buildSnapshot())}async protect(e){if(this.isProtected())throw Error(`Range is already protected`);let t=await this._fPermission.addRangeBaseProtection(this._unitId,this._subUnitId,[this._range],e);if(!t)throw Error(`Failed to create range protection`);let{permissionId:n,ruleId:r}=t;return await this._setPermissionPoints(n,e),this._injector.createInstance(J,this._unitId,this._subUnitId,r,n,[this._range],e||{})}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?O.NoOneElseCanView:O.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?b.DesignedUserCanEdit:b.OnlyMe}async _setPermissionPoints(e,t){if(!t)return;let n=(e,t)=>e===void 0?t:typeof e==`boolean`?e:!0;await this._setPermissionPoint(e,G.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,G.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=X[t];r&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,e,r,n)}async unprotect(){let e=this._getProtectionRule();if(!e)return;let t=e.id;this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,[t])}async listRules(){return await this._buildProtectionRulesAsync()}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}_getProtectionRule(){let e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId),t=this._range.getRange();for(let n of e)for(let e of n.ranges)if(t.startRow===e.startRow&&t.startColumn===e.startColumn&&t.endRow===e.endRow&&t.endColumn===e.endColumn)return n;return null}_buildProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView};return e.editState===b.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)})}async _buildProtectionRulesAsync(){let e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);return(await Promise.all(e.map(async e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView};if(e.editState===b.DesignedUserCanEdit)try{n.allowEdit=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(e=>e.role===qn.Editor).map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}).length>0}catch(t){console.warn(`Failed to fetch collaborators for rule ${e.id}:`,t),n.allowEdit=!1}else n.allowEdit=!1;return{rule:e,ranges:t,options:n}}))).map(({rule:e,ranges:t,options:n})=>this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n))}_buildSnapshot(){let e={};return Object.values(G).forEach(t=>{e[t]=this.getPoint(t)}),e}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete()}};cr=z([R(4,f(p)),R(5,f(l)),R(6,f(o)),R(7,f(s)),R(8,f(S))],cr);var lr,ur;let Q=lr=class extends he{constructor(e,t,n,r,i,a){super(r),this._workbook=e,this._worksheet=t,this._range=n,this._injector=r,this._commandService=i,this._formulaDataModel=a;let o=this._worksheet.getRowCount(),s=this._worksheet.getColumnCount();if(this._range.startRow<0||this._range.startColumn<0||this._range.endRow>=o||this._range.endColumn>=s)throw Error(`Range is out of bounds. Max rows: ${o}, Max columns: ${s}, Given range: ${JSON.stringify(this._range)}`);this._runInitializers(this._injector,this._workbook,this._worksheet,this._range,this._commandService,this._formulaDataModel)}getUnitId(){return this._workbook.getUnitId()}getSheetName(){return this._worksheet.getName()}getSheetId(){return this._worksheet.getSheetId()}getRange(){return this._range}getRow(){return this._range.startRow}getLastRow(){return this._range.endRow}getColumn(){return this._range.startColumn}getLastColumn(){return this._range.endColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}isMerged(){let{startColumn:e,startRow:t,endColumn:n,endRow:r}=this._range;return this._worksheet.getMergedCellRange(t,e,r,n).some(e=>h.equals(e,this._range))}getCellStyleData(e=`row`){return e===`cell`?this._worksheet.getCellStyle(this._range.startRow,this._range.startColumn):this._worksheet.getComposedCellStyle(this._range.startRow,this._range.startColumn,e===`row`)}getFontFamily(e=`row`){var t,n;return(t=(n=this.getCellStyleData(e))==null?void 0:n.ff)==null?null:t}getFontSize(e=`row`){var t,n;return(t=(n=this.getCellStyleData(e))==null?void 0:n.fs)==null?null:t}getCellStyle(e=`row`){let t=this.getCellStyleData(e);return t?re.create(t):null}getCellStyles(e=`row`){return this.getCellDatas().map((t,n)=>t.map((t,r)=>{if(!t)return null;let i=e===`cell`?this._worksheet.getCellStyle(n+this._range.startRow,r+this._range.startColumn):this._worksheet.getComposedCellStyle(n+this._range.startRow,r+this._range.startColumn,e===`row`);return i?re.create(i):null}))}getValue(e){var t,n;return e?this.getValueAndRichTextValue():(t=(n=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:n.v)==null?null:t}getRawValue(){var e,t;let n=this._worksheet.getCellMatrix().getValue(this._range.startRow,this._range.startColumn);return n!=null&&n.p&&(e=n.p.body)!=null&&e.dataStream?n.p.body.dataStream:(t=n==null?void 0:n.v)==null?null:t}getDisplayValue(){var e,t,n;let r=this._worksheet.getCell(this._range.startRow,this._range.startColumn);return r!=null&&r.p&&(e=r.p.body)!=null&&e.dataStream?r.p.body.dataStream:(t=r==null||(n=r.v)==null?void 0:n.toString())==null?``:t}getValues(e){if(e)return this.getValueAndRichTextValues();let{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=[];for(let e=t;e<=n;e++){let t=[];for(let n=r;n<=i;n++){var o,s;t.push((o=(s=this._worksheet.getCell(e,n))==null?void 0:s.v)==null?null:o)}a.push(t)}return a}getRawValues(){let e=this._worksheet.getCellMatrix(),{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=[];for(let c=t;c<=n;c++){let t=[];for(let n=r;n<=i;n++){var o;let r=e.getValue(c,n);if(r!=null&&r.p&&(o=r.p.body)!=null&&o.dataStream)t.push(r.p.body.dataStream);else{var s;t.push((s=r==null?void 0:r.v)==null?null:s)}}a.push(t)}return a}getDisplayValues(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,i=[];for(let c=e;c<=t;c++){let e=[];for(let t=n;t<=r;t++){var a;let n=this._worksheet.getCell(c,t);if(n!=null&&n.p&&(a=n.p.body)!=null&&a.dataStream)e.push(n.p.body.dataStream);else{var o,s;e.push((o=n==null||(s=n.v)==null?void 0:s.toString())==null?``:o)}}i.push(e)}return i}getCellData(){var e;return(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?null:e}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,i=[];for(let a=e;a<=t;a++){let e=[];for(let t=n;t<=r;t++)e.push(this._worksheet.getCellRaw(a,t));i.push(e)}return i}getRichTextValue(){let e=this.getCellData();return e!=null&&e.p?new g(e.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(e=>e!=null&&e.p?new g(e.p):null))}getValueAndRichTextValue(){let e=this.getCellData();return e!=null&&e.p?new g(e.p):e==null?void 0:e.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(e=>e!=null&&e.p?new g(e.p):e==null?void 0:e.v))}getFormula(){var e;return(e=this._formulaDataModel.getFormulaStringByCell(this._range.startRow,this._range.startColumn,this._worksheet.getSheetId(),this._workbook.getUnitId()))==null?``:e}getFormulas(){let e=[],{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=this._worksheet.getSheetId(),o=this._workbook.getUnitId();for(let s=t;s<=n;s++){let t=[];for(let e=r;e<=i;e++){let n=this._formulaDataModel.getFormulaStringByCell(s,e,a,o);t.push(n||``)}e.push(t)}return e}getWrap(){return this._worksheet.getRange(this._range).getWrap()===e.TRUE}getWraps(){let e=this.getCellDatas(),t=this._workbook.getStyles();return e.map(e=>e.map(e=>{var n;return((n=t.getStyleByCell(e))==null?void 0:n.tb)===oe.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){return nr(this._worksheet.getRange(this._range).getHorizontalAlignment())}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(e=>nr(e)))}getVerticalAlignment(){return ir(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(e=>ir(e)))}setCustomMetaData(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:{custom:e}};return this._commandService.syncExecuteCommand(ot.id,t),this}setCustomMetaDatas(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:e.map(e=>e.map(e=>({custom:e})))};return this._commandService.syncExecuteCommand(ot.id,t),this}getCustomMetaData(){var e;let t=this.getCellData();return(e=t==null?void 0:t.custom)==null?null:e}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(e=>{var t;return(t=e==null?void 0:e.custom)==null?null:t}))}setBorder(e,t,n){return this._commandService.syncExecuteCommand(Qe.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:e,style:t,color:n}}),this}getBackground(){var e,t;let r=this.getCellStyle();return(e=r==null||(t=r.background)==null?void 0:t.rgb)==null?n.bg.rgb:e}getBackgrounds(){return this.getCellStyles().map(e=>e.map(e=>{var t,r;return(t=e==null||(r=e.background)==null?void 0:r.rgb)==null?n.bg.rgb:t}))}setBackgroundColor(e){return this._commandService.syncExecuteCommand(T.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:`bg`,value:{rgb:e}}}),this}setBackground(e){return this.setBackgroundColor(e),this}setTextRotation(e){return this._commandService.syncExecuteCommand(_t.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValue(e){let t=ce(e);if(!t)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(w.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t}),this}setValueForCell(e){let t=ce(e);if(!t)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(w.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:t}),this}setRichTextValueForCell(e){let t=e instanceof g?e.getData():e,n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:{p:t}};return this._commandService.syncExecuteCommand(w.id,n),this}setRichTextValues(e){let t=le(e.map(e=>e.map(e=>e&&{p:e instanceof g?e.getData():e})),this._range),n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t};return this._commandService.syncExecuteCommand(w.id,n),this}setWrap(e){return this._commandService.syncExecuteCommand(vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e?oe.WRAP:oe.UNSPECIFIED}),this}setWrapStrategy(e){return this._commandService.syncExecuteCommand(vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setVerticalAlignment(e){return this._commandService.syncExecuteCommand(yt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:rr(e)}),this}setHorizontalAlignment(e){return this._commandService.syncExecuteCommand(at.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:tr(e)}),this}setValues(e){let t=le(e,this._range);return this._commandService.syncExecuteCommand(w.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t}),this}setFontWeight(t){let n;if(t===`bold`)n=e.TRUE;else if(t===`normal`)n=e.FALSE;else if(t===null)n=null;else throw Error(`Invalid fontWeight`);let r={type:`bl`,value:n},i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:r};return this._commandService.syncExecuteCommand(T.id,i),this}setFontStyle(t){let n;if(t===`italic`)n=e.TRUE;else if(t===`normal`)n=e.FALSE;else if(t===null)n=null;else throw Error(`Invalid fontStyle`);let r={type:`it`,value:n},i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:r};return this._commandService.syncExecuteCommand(T.id,i),this}setFontLine(t){if(t===`underline`)this._setFontUnderline({s:e.TRUE});else if(t===`line-through`)this._setFontStrikethrough({s:e.TRUE});else if(t===`none`)this._setFontUnderline({s:e.FALSE}),this._setFontStrikethrough({s:e.FALSE});else if(t===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw Error(`Invalid fontLine`);return this}_setFontUnderline(e){let t={type:`ul`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};this._commandService.syncExecuteCommand(T.id,n)}_setFontStrikethrough(e){let t={type:`st`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};this._commandService.syncExecuteCommand(T.id,n)}setFontFamily(e){let t={type:`ff`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(T.id,n),this}setFontSize(e){let t={type:`fs`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(T.id,n),this}setFontColor(e){let t={type:`cl`,value:e===null?null:{rgb:e}},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(T.id,n),this}merge(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return In(this._injector,t,n,[this._range],e),this}mergeAcross(e){let t=Ln([this._range],r.ROWS),n=this._workbook.getUnitId(),i=this._worksheet.getSheetId();return In(this._injector,n,i,t,e),this}mergeVertically(e){let t=Ln([this._range],r.COLUMNS),n=this._workbook.getUnitId(),i=this._worksheet.getSheetId();return In(this._injector,n,i,t,e),this}isPartOfMerge(){let{startRow:e,startColumn:t,endRow:n,endColumn:r}=this._range;return this._worksheet.getMergedCellRange(e,t,n,r).length>0}breakApart(){return this._commandService.syncExecuteCommand(Ze.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}forEach(e){let{startColumn:t,startRow:n,endColumn:r,endRow:i}=this._range;this._worksheet.getMatrixWithMergedCells(n,t,i,r).forValue((t,n,r)=>{e(t,n,r)})}getA1Notation(e,t,n){let r={...this._range,startAbsoluteRefType:t,endAbsoluteRefType:n};return e?Kn(this._worksheet.getName(),r):Gn(r)}activate(){return this._injector.createInstance($,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){let e=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(e&&h.equals(e,this._range)||!e&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){let e=this._injector.createInstance($,this._workbook).getActiveRange();if(!e||e.getUnitId()!==this.getUnitId()||e.getSheetId()!==this.getSheetId())return this.activate();if(h.contains(e.getRange(),this._range)){let t={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:e.getRange(),primary:A(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(ft.id,t),this}return this.activate()}else throw Error(`The range is not a single cell`)}splitTextToColumns(e,t,n){this._commandService.syncExecuteCommand(Bt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:t,customDelimiter:n,treatMultipleDelimitersAsOne:e})}useThemeStyle(e){if(e==null){let e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(kt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}removeThemeStyle(e){this._commandService.syncExecuteCommand(Ne.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}getUsedThemeStyle(){return this._injector.get(Pt).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}clear(e){return e&&e.contentsOnly&&!e.formatOnly?this.clearContent():e&&e.formatOnly&&!e.contentsOnly?this.clearFormat():(this._commandService.syncExecuteCommand(Te.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:e}),this)}clearContent(){return this._commandService.syncExecuteCommand(Ee.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(De.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(e){e===r.ROWS?this._commandService.executeCommand(Fe.id,{range:this._range}):this._commandService.executeCommand(Ie.id,{range:this._range})}deleteCells(e){e===r.ROWS?this._commandService.executeCommand(Ae.id,{range:this._range}):this._commandService.executeCommand(ke.id,{range:this._range})}getDataRegion(e){let{startRow:t,startColumn:n,endRow:i,endColumn:a}=this._range,o=this._worksheet.getMaxRows(),s=this._worksheet.getMaxColumns(),c=this._worksheet.getCellMatrix(),l=t,u=n,d=i,f=a;if(e!==r.COLUMNS){let e=!1,r=!1;for(let s=n;s<=a&&(t>0&&!y(c.getValue(t-1,s))&&(e=!0),i<o-1&&!y(c.getValue(i+1,s))&&(r=!0),!(e&&r));s++);e&&(l=t-1),r&&(d=i+1)}if(e!==r.ROWS){let e=!1,r=!1;for(let o=t;o<=i&&(n>0&&!y(c.getValue(o,n-1))&&(e=!0),a<s-1&&!y(c.getValue(o,a+1))&&(r=!0),!(e&&r));o++);e&&(u=n-1),r&&(f=a+1)}return this._injector.createInstance(lr,this._workbook,this._worksheet,{startRow:l,startColumn:u,endRow:d,endColumn:f})}isBlank(){let e=this._worksheet.getCellMatrix(),{startRow:t,startColumn:n,endRow:r,endColumn:i}=this._range,a=!0;for(let o=t;o<=r;o++){for(let t=n;t<=i;t++)if(!y(e.getValue(o,t))){a=!1;break}if(!a)break}return a}offset(e,t,n,r){let{startRow:i,startColumn:a,endRow:o,endColumn:s}=this._range,c=i+e,l=a+t,u=n?c+n-1:o+e,d=r?l+r-1:s+t;if(c<0||l<0||u<0||d<0)throw Error(`The row or column index is out of range`);return this._injector.createInstance(lr,this._workbook,this._worksheet,{startRow:c,startColumn:l,endRow:u,endColumn:d})}setFormula(e){return this.setValue({f:e})}setFormulas(e){return this.setValues(e.map(e=>e.map(e=>({f:e}))))}getRangePermission(){let e=this._injector.createInstance(Z,this._injector.createInstance($,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(cr,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,e)}autoFill(e,t){let n=this.getRange(),r=e.getRange();if(!h.contains(r,n))throw Error(`AutoFill target range must contain source range`);let{startRow:i,startColumn:a,endRow:o,endColumn:s}=n,{startRow:c,startColumn:l,endRow:u,endColumn:d}=r;if(o-i!==u-c&&s-a!==d-l||o-i===u-c&&a!==l&&s!==d||s-a===d-l&&i!==c&&o!==u)throw Error(`AutoFill can only fill in one direction`);return this._commandService.executeCommand(Se.id,{sourceRange:n,targetRange:r,unitId:this.getUnitId(),subUnitId:this.getSheetId(),applyType:t})}};ur=Q,ur._enableManualInit(),Q=lr=z([R(3,f(p)),R(4,s),R(5,f(Hn))],Q);let dr=class{constructor(e,t,n,r){this._unitId=e,this._injector=t,this._permissionService=n,this._authzIoService=r,L(this,`_permissionSubject`,void 0),L(this,`_collaboratorChangeSubject`,new Jn),L(this,`permission$`,void 0),L(this,`pointChange$`,void 0),L(this,`collaboratorChange$`,void 0),L(this,`_subscriptions`,[]),L(this,`_fPermission`,void 0),this._fPermission=this._injector.createInstance(K),this._permissionSubject=new j(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe(F({bufferSize:1,refCount:!0}))}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe(M((e,t)=>JSON.stringify(e)===JSON.stringify(t)),F({bufferSize:1,refCount:!0}))}_createPointChangeStream(){let e=new Map;for(let t in U){let n=U[t];e.set(n,this.getPoint(n))}return this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId)),P(t=>{let n=this._extractWorkbookPointType(t.id);if(!n)return null;let r=!!t.value,i=e.get(n);return e.set(n,r),i===r?null:{point:n,value:r,oldValue:i}}),N(e=>e!==null),F({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(e){for(let t in U){let n=U[t],r=Y[n];if(r&&new r(this._unitId).id===e)return n}return null}_buildSnapshot(){let e={};for(let t in U){let n=U[t];e[n]=this.getPoint(n)}return e}async setMode(e){let t=this._getModePermissions(e);await this._batchSetPermissionPoints(t)}_getModePermissions(e){let t={};switch(Object.values(U).forEach(e=>{t[e]=!1}),e){case`owner`:Object.values(U).forEach(e=>{t[e]=!0});break;case`editor`:t[U.Edit]=!0,t[U.View]=!0,t[U.Print]=!0,t[U.Export]=!0,t[U.CopyContent]=!0,t[U.Comment]=!0,t[U.CreateSheet]=!0,t[U.DeleteSheet]=!0,t[U.RenameSheet]=!0,t[U.MoveSheet]=!0,t[U.HideSheet]=!0,t[U.InsertRow]=!0,t[U.InsertColumn]=!0,t[U.DeleteRow]=!0,t[U.DeleteColumn]=!0,t[U.CopySheet]=!0,t[U.CreateProtection]=!0;break;case`viewer`:t[U.View]=!0,t[U.Print]=!0;break;case`commenter`:t[U.View]=!0,t[U.Comment]=!0,t[U.Print]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=Y[e];if(!i)throw Error(`Unknown workbook permission point: ${e}`);let a=this.getPoint(e);a!==r&&(this._fPermission.setWorkbookPermissionPoint(this._unitId,i,r),t.push({point:e,value:r,oldValue:a}))}if(t.length>0){let e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode(`viewer`)}async setEditable(){await this.setMode(`editor`)}canEdit(){return this.getPoint(U.Edit)}async setPoint(e,t){let n=Y[e];if(!n)throw Error(`Unknown workbook permission point: ${e}`);if(this.getPoint(e)===t)return;this._fPermission.setWorkbookPermissionPoint(this._unitId,n,t);let r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(e){var t;let n=Y[e];if(!n)throw Error(`Unknown workbook permission point: ${e}`);let r=new n(this._unitId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!0:t}getSnapshot(){return this._buildSnapshot()}async setCollaborators(e){let t=e.map(e=>({id:e.user.userID,subject:e.user,role:e.role}));await this._authzIoService.putCollaborators({objectID:this._unitId,unitID:this._unitId,collaborators:t}),e.forEach(e=>{this._collaboratorChangeSubject.next({type:`add`,collaborator:{user:{id:e.user.userID},role:e.role}})})}async addCollaborator(e,t){await this._authzIoService.createCollaborator({objectID:this._unitId,unitID:this._unitId,collaborators:[{id:e.userID,subject:e,role:t}]}),this._collaboratorChangeSubject.next({type:`add`,collaborator:{user:{id:e.userID},role:t}})}async updateCollaborator(e,t){await this._authzIoService.updateCollaborator({objectID:this._unitId,unitID:this._unitId,collaborator:{id:e.userID,subject:e,role:t}}),this._collaboratorChangeSubject.next({type:`update`,collaborator:{user:{id:e.userID},role:t}})}async removeCollaborator(e){await this._authzIoService.deleteCollaborator({objectID:this._unitId,unitID:this._unitId,collaboratorID:e}),this._collaboratorChangeSubject.next({type:`delete`,collaborator:{user:{id:e},role:H.Reader}})}async removeCollaborators(e){for(let t of e)await this.removeCollaborator(t)}async listCollaborators(){return(await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId})).map(e=>{var t,n;return{user:{id:((t=e.subject)==null?void 0:t.userID)||e.id,displayName:((n=e.subject)==null?void 0:n.name)||``},role:e.role}})}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete(),this._collaboratorChangeSubject.complete()}};dr=z([R(1,f(p)),R(2,l),R(3,o)],dr);let $=class extends he{constructor(e,t,n,r,i,a,o,s,c,l){super(t),this._workbook=e,this._injector=t,this._resourceLoaderService=n,this._selectionManagerService=r,this._univerInstanceService=i,this._commandService=a,this._permissionService=o,this._logService=s,this._localeService=c,this._definedNamesService=l,L(this,`id`,void 0),this.id=this._workbook.getUnitId()}getWorkbook(){return this._workbook}dispose(){super.dispose(),this._workbook=null}getId(){return this.id}getName(){return this._workbook.name}setName(e){return this._commandService.syncExecuteCommand(bt.id,{unitId:this._workbook.getUnitId(),name:e}),this}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn(`use 'save' instead of 'getSnapshot'`),this.save()}getActiveSheet(){let e=this._workbook.getActiveSheet();return this._injector.createInstance(Z,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(Z,this,this._workbook,e))}create(e,t,n,r){var i,a,o;let s=fe(ie.deepClone((i=r==null?void 0:r.sheet)==null?{}:i));s.name=this._workbook.uniqueSheetName(e),s.rowCount=t,s.columnCount=n,s.id=r==null||(a=r.sheet)==null?void 0:a.id;let c=(o=r==null?void 0:r.index)==null?this._workbook.getSheets().length:o;this._commandService.syncExecuteCommand(x.id,{unitId:this.id,index:c,sheet:s}),this._commandService.syncExecuteCommand(E.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[c].getSheetId()});let l=this._workbook.getActiveSheet();if(!l)throw Error(`No active sheet found`);return this._injector.createInstance(Z,this,this._workbook,l)}getSheetBySheetId(e){let t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(Z,this,this._workbook,t):null}getSheetByName(e){let t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(Z,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(E.id,{unitId:this.id,subUnitId:typeof e==`string`?e:e.getSheetId()}),typeof e==`string`?this.getSheetBySheetId(e):e}insertSheet(e,t){var n,r,i;let a=fe(ie.deepClone((n=t==null?void 0:t.sheet)==null?{}:n));a.name=this._workbook.uniqueSheetName(e),a.id=t==null||(r=t.sheet)==null?void 0:r.id;let o=(i=t==null?void 0:t.index)==null?this._workbook.getSheets().length:i;this._commandService.syncExecuteCommand(x.id,{unitId:this.id,index:o,sheet:a}),this._commandService.syncExecuteCommand(E.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[o].getSheetId()});let s=this._workbook.getActiveSheet();if(!s)throw Error(`No active sheet found`);return this._injector.createInstance(Z,this,this._workbook,s)}deleteSheet(e){let t=this.id,n=typeof e==`string`?e:e.getSheetId();return this._commandService.syncExecuteCommand(Xe.id,{unitId:t,subUnitId:n})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(ae.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(ne.id),this}onBeforeCommandExecute(e){return this._commandService.beforeCommandExecuted(t=>{var n;((n=t.params)==null?void 0:n.unitId)===this.id&&e(t)})}onCommandExecuted(e){return this._commandService.onCommandExecuted(t=>{var n;((n=t.params)==null?void 0:n.unitId)===this.id&&e(t)})}onSelectionChange(e){return pe(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{this._univerInstanceService.getCurrentUnitForType(_.UNIVER_SHEET).getUnitId()===this.id&&(t!=null&&t.length?e(t.map(e=>e.range)):e([]))}))}setEditable(e){let t=new Qt(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(t.id)||this._permissionService.addPermissionPoint(t),this._permissionService.updatePermissionPoint(t.id,e),this}setActiveRange(e){let t=this.getActiveSheet(),n=e.getRange().sheetId||t.getSheetId(),r=n?this._workbook.getSheetBySheetId(n):this._workbook.getActiveSheet(!0);if(!r)throw Error(`No active sheet found`);r.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(Z,this,this._workbook,r));let i={unitId:this.getId(),subUnitId:n,selections:[e].map(e=>({range:e.getRange(),primary:A(e.getRange(),r),style:null}))};return this._commandService.syncExecuteCommand(ft.id,i),this}getActiveRange(){let e=this._workbook.getActiveSheet(),t=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);return t?this._injector.createInstance(Q,this._workbook,e,t.range):null}getActiveCell(){let e=this._workbook.getActiveSheet(),t=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);if(!t)return null;let n={...t.primary,rangeType:m.NORMAL};return this._injector.createInstance(Q,this._workbook,e,n)}deleteActiveSheet(){let e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(Oe.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(Z,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){let e=this.getActiveSheet();return this.duplicateSheet(e)}getNumSheets(){return this._workbook.getSheets().length}getLocale(){return this._localeService.getCurrentLocale()}setLocale(e){this._localeService.setLocale(e)}setSpreadsheetLocale(e){return this._localeService.setLocale(e),this}getUrl(){return location.href}moveSheet(e,t){let n=t;return n<0?n=0:n>this._workbook.getSheets().length-1&&(n=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(Et.id,{unitId:e.getWorkbook().getUnitId(),order:n,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){let t=this.getActiveSheet();return this.moveSheet(t,e)}getPermission(){return this._injector.createInstance(K)}getWorkbookPermission(){return this._injector.createInstance(dr,this._workbook.getUnitId())}getDefinedName(e){let t=this._definedNamesService.getValueByName(this.id,e);return t?this._injector.createInstance(V,{...t,unitId:this.id}):null}getDefinedNames(){let e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(e=>this._injector.createInstance(V,{...e,unitId:this.id})):[]}insertDefinedName(e,t){let n=this._injector.createInstance(B).setName(e).setRef(t).build();return n.localSheetId=C,this.insertDefinedNameBuilder(n),this}deleteDefinedName(e){let t=this.getDefinedName(e);return t?(t.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(nt.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(nt.id,e)}getRegisteredRangeThemes(){return this._injector.get(Pt).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(Ke.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(Ht.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new Ge(e,t)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}addStyles(e){this._workbook.addStyles(e)}removeStyles(e){this._workbook.removeStyles(e)}};$=z([R(1,f(p)),R(2,f(u)),R(3,f(Rt)),R(4,d),R(5,s),R(6,l),R(7,c),R(8,f(ee)),R(9,Un)],$);var fr=class extends ve{getCommandSheetTarget(e){var t;let n=e.params;if(!n)return this.getActiveSheet();let r=n.unitId?this.getUniverSheet(n.unitId):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!r)return;let i=r.getSheetBySheetId(n.subUnitId||n.sheetId)||r.getActiveSheet();if(i)return{workbook:r,worksheet:i}}getSheetTarget(e,t){let n=this.getUniverSheet(e);if(!n)return;let r=n.getSheetBySheetId(t);if(r)return{workbook:n,worksheet:r}}_initWorkbookEvent(e){let t=e.get(d);this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookDisposed,()=>t.unitDisposed$.subscribe(e=>{e.type===_.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:e.getUnitId(),unitType:e.type,snapshot:e.getSnapshot()})}))),this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookCreated,()=>t.unitAdded$.subscribe(t=>{if(t.type===_.UNIVER_SHEET){let n=t,r=e.createInstance($,n);this.fireEvent(this.Event.WorkbookCreated,{unitId:t.getUnitId(),type:t.type,workbook:r,unit:r})}})))}_initialize(e){let n=e.get(d),r=e.get(s);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetCreate,()=>r.beforeCommandExecuted(e=>{if(e.id===x.id){var n;let{unitId:r,index:i,sheet:a}=e.params||{},o=r?this.getUniverSheet(r):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!o)return;let s={workbook:o,index:i,sheet:a};if(this.fireEvent(this.Event.BeforeSheetCreate,s),s.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>r.beforeCommandExecuted(e=>{if(e.id===E.id){var n;let{subUnitId:r,unitId:i}=e.params,a=i?this.getUniverSheet(i):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!a||!r)return;let o=a.getSheetBySheetId(r),s=a.getActiveSheet();if(!o||!s)return;let c={workbook:a,activeSheet:o,oldActiveSheet:s};if(this.fireEvent(this.Event.BeforeActiveSheetChange,c),c.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetDelete,()=>r.beforeCommandExecuted(e=>{if(e.id===Xe.id){let n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,a={workbook:r,worksheet:i};if(this.fireEvent(this.Event.BeforeSheetDelete,a),a.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetMove,()=>r.beforeCommandExecuted(e=>{if(e.id===Dt.id){let{fromOrder:n,toOrder:r}=e.params,i=this.getCommandSheetTarget(e);if(!i)return;let a={workbook:i.workbook,worksheet:i.worksheet,newIndex:r,oldIndex:n};if(this.fireEvent(this.Event.BeforeSheetMove,a),a.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>r.beforeCommandExecuted(e=>{if(e.id===Tt.id){let{name:n}=e.params,r=this.getCommandSheetTarget(e);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,newName:n,oldName:r.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>r.beforeCommandExecuted(e=>{if(e.id===gt.id){let{color:n}=e.params,r=this.getCommandSheetTarget(e);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,newColor:n,oldColor:r.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>r.beforeCommandExecuted(e=>{if(e.id===wt.id){let{hidden:n}=e.params,r=this.getCommandSheetTarget(e);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,hidden:!!n};if(this.fireEvent(this.Event.BeforeSheetHideChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>r.beforeCommandExecuted(e=>{if(e.id===it.id){var n;let r=this.getCommandSheetTarget(e);if(!r)return;let i={...r,color:(n=e.params)==null?void 0:n.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>r.beforeCommandExecuted(e=>{if(e.id===Vt.id){var n,r;let i=this.getCommandSheetTarget(e);if(!i)return;let a=(n=(r=e.params)==null?void 0:r.showGridlines)==null?!i.worksheet.hasHiddenGridLines():n,o={...i,enabled:!!a};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,o),o.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetValueChanged,()=>r.onCommandExecuted(e=>{if(Ce.indexOf(e.id)>-1){if(!this.getActiveSheet())return;let t=Vn(n,e).map(e=>{var t;return(t=this.getWorkbook(e.unitId))==null||(t=t.getSheetBySheetId(e.subUnitId))==null?void 0:t.getRange(e.range)}).filter(Boolean);if(!t.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:e,effectedRanges:t})}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetCreated,()=>r.onCommandExecuted(e=>{if(e.id===x.id){var t;let{unitId:n}=e.params||{},r=n?this.getUniverSheet(n):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!r)return;let i=r.getActiveSheet();if(!i)return;let a={workbook:r,worksheet:i};this.fireEvent(this.Event.SheetCreated,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ActiveSheetChanged,()=>r.onCommandExecuted(e=>{if(e.id===E.id){let e=this.getActiveSheet();if(!e)return;let{workbook:t,worksheet:n}=e;this._fireActiveSheetChanged(t,n)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetDeleted,()=>r.onCommandExecuted(e=>{if(e.id===Xe.id){var t;let{subUnitId:n,unitId:r}=e.params,i=r?this.getUniverSheet(r):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!i||!n)return;this._fireSheetDeleted(i,n)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetMoved,()=>r.onCommandExecuted(e=>{if(e.id===Dt.id){let{toOrder:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetMoved(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetNameChanged,()=>r.onCommandExecuted(e=>{if(e.id===Tt.id){let{name:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetNameChanged(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetTabColorChanged,()=>r.onCommandExecuted(e=>{if(e.id===gt.id){let{color:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetTabColorChanged(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetHideChanged,()=>r.onCommandExecuted(e=>{if(e.id===wt.id){let{hidden:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetHideChanged(n.workbook,n.worksheet,!!t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.GridlineChanged,()=>r.onCommandExecuted(e=>{if(e.id===it.id||e.id===Vt.id){let t=this.getCommandSheetTarget(e);if(!t)return;this.fireEvent(this.Event.GridlineChanged,{...t,enabled:!t.worksheet.hasHiddenGridLines(),color:t.worksheet.getGridLinesColor()})}}))),this._initWorkbookEvent(e)}createUniverSheet(e,t){let n=this._injector.get(d).createUnit(_.UNIVER_SHEET,e,t);return this._injector.createInstance($,n)}createWorkbook(e,t){return this.createUniverSheet(e,t)}getActiveWorkbook(){let e=this._univerInstanceService.getCurrentUnitForType(_.UNIVER_SHEET);return e?this._injector.createInstance($,e):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(e){let t=this._univerInstanceService.getUnit(e,_.UNIVER_SHEET);return t?this._injector.createInstance($,t):null}getWorkbook(e){return this.getUniverSheet(e)}getPermission(){return this._injector.createInstance(K)}onUniverSheetCreated(e){return pe(this._univerInstanceService.getTypeOfUnitAdded$(_.UNIVER_SHEET).subscribe(t=>{e(this._injector.createInstance($,t))}))}newDefinedName(){return this._injector.createInstance(B)}getActiveSheet(){let e=this.getActiveWorkbook();if(!e)return null;let t=e.getActiveSheet();return t?{workbook:e,worksheet:t}:null}setFreezeSync(e){this._injector.get(Lt).setEnabled(e)}_fireActiveSheetChanged(e,t){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:e,activeSheet:t})}_fireSheetDeleted(e,t){this.fireEvent(this.Event.SheetDeleted,{workbook:e,sheetId:t})}_fireSheetMoved(e,t,n){this.fireEvent(this.Event.SheetMoved,{workbook:e,worksheet:t,newIndex:n})}_fireSheetNameChanged(e,t,n){this.fireEvent(this.Event.SheetNameChanged,{workbook:e,worksheet:t,newName:n})}_fireSheetTabColorChanged(e,t,n){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:e,worksheet:t,newColor:n})}_fireSheetHideChanged(e,t,n){this.fireEvent(this.Event.SheetHideChanged,{workbook:e,worksheet:t,hidden:n})}};ve.extend(fr);var pr=class{get SheetValueChangeType(){return It}get SheetSkeletonChangeType(){return Ft}get SplitDelimiterType(){return zt}get UnitRole(){return H}get WorkbookPermissionPoint(){return U}get WorksheetPermissionPoint(){return W}get RangePermissionPoint(){return G}};ge.extend(pr);var mr=class{get SheetCreated(){return`SheetCreated`}get BeforeSheetCreate(){return`BeforeSheetCreate`}get WorkbookCreated(){return`WorkbookCreated`}get WorkbookDisposed(){return`WorkbookDisposed`}get GridlineChanged(){return`GridlineChanged`}get BeforeGridlineEnableChange(){return`BeforeGridlineEnableChange`}get BeforeGridlineColorChange(){return`BeforeGridlineColorChange`}get BeforeActiveSheetChange(){return`BeforeActiveSheetChange`}get ActiveSheetChanged(){return`ActiveSheetChanged`}get SheetDeleted(){return`SheetDeleted`}get BeforeSheetDelete(){return`BeforeSheetDelete`}get SheetMoved(){return`SheetMoved`}get BeforeSheetMove(){return`BeforeSheetMove`}get SheetNameChanged(){return`SheetNameChanged`}get BeforeSheetNameChange(){return`BeforeSheetNameChange`}get SheetTabColorChanged(){return`SheetTabColorChanged`}get BeforeSheetTabColorChange(){return`BeforeSheetTabColorChange`}get SheetHideChanged(){return`SheetHideChanged`}get BeforeSheetHideChange(){return`BeforeSheetHideChange`}get SheetValueChanged(){return`SheetValueChanged`}};_e.extend(mr);let hr=class extends me{constructor(e){super(),this._injector=e}};hr=z([R(0,f(p))],hr);export{K as FPermission,Q as FRange,q as FSelection,mr as FSheetEventName,hr as FSheetHooks,pr as FSheetsEnum,$ as FWorkbook,Z as FWorksheet};
|
|
1
|
+
import{BooleanNumber as e,CanceledError as t,DEFAULT_STYLES as n,Dimension as r,Direction as i,HorizontalAlign as a,IAuthzIoService as o,ICommandService as s,ILogService as c,IPermissionService as l,IResourceLoaderService as u,IUniverInstanceService as d,Inject as f,Injector as p,LocaleService as ee,ObjectMatrix as te,RANGE_TYPE as m,Rectangle as h,RedoCommand as ne,RichTextValue as g,TextStyleValue as re,Tools as ie,UndoCommand as ae,UniverInstanceType as _,VerticalAlign as v,WrapStrategy as oe,cellToRange as se,covertCellValue as ce,covertCellValues as le,generateIntervalsByPoints as ue,generateRandomId as de,isNullCell as y,mergeWorksheetSnapshotWithDefault as fe,toDisposable as pe}from"@univerjs/core";import{FBase as me,FBaseInitialable as he,FEnum as ge,FEventName as _e,FUniver as ve}from"@univerjs/core/facade";import{AddRangeProtectionMutation as ye,AddWorksheetProtectionMutation as be,AppendRowCommand as xe,AutoFillCommand as Se,COMMAND_LISTENER_VALUE_CHANGE as Ce,CancelFrozenCommand as we,ClearSelectionAllCommand as Te,ClearSelectionContentCommand as Ee,ClearSelectionFormatCommand as De,CopySheetCommand as Oe,DeleteRangeMoveLeftCommand as ke,DeleteRangeMoveUpCommand as Ae,DeleteRangeProtectionMutation as je,DeleteWorksheetProtectionMutation as Me,DeleteWorksheetRangeThemeStyleCommand as Ne,EditStateEnum as b,InsertColByRangeCommand as Pe,InsertRangeMoveDownCommand as Fe,InsertRangeMoveRightCommand as Ie,InsertRowByRangeCommand as Le,InsertSheetCommand as x,MoveColsCommand as Re,MoveRowsCommand as ze,PermissionPointsDefinitions as Be,RangeProtectionPermissionDeleteProtectionPoint as Ve,RangeProtectionPermissionEditPoint as He,RangeProtectionPermissionManageCollaPoint as Ue,RangeProtectionPermissionViewPoint as We,RangeProtectionRuleModel as S,RangeThemeStyle as Ge,RegisterWorksheetRangeThemeStyleCommand as Ke,RemoveColByRangeCommand as qe,RemoveDefinedNameCommand as Je,RemoveRowByRangeCommand as Ye,RemoveSheetCommand as Xe,RemoveWorksheetMergeCommand as Ze,SCOPE_WORKBOOK_VALUE_DEFINED_NAME as C,SetBorderBasicCommand as Qe,SetColDataCommand as $e,SetColHiddenCommand as et,SetColWidthCommand as tt,SetDefinedNameCommand as nt,SetFrozenCommand as rt,SetGridlinesColorCommand as it,SetHorizontalTextAlignCommand as at,SetRangeCustomMetadataCommand as ot,SetRangeProtectionMutation as st,SetRangeValuesCommand as w,SetRangeValuesMutation as ct,SetRowDataCommand as lt,SetRowHeightCommand as ut,SetRowHiddenCommand as dt,SetSelectionsOperation as ft,SetSpecificColsVisibleCommand as pt,SetSpecificRowsVisibleCommand as mt,SetStyleCommand as T,SetTabColorCommand as ht,SetTabColorMutation as gt,SetTextRotationCommand as _t,SetTextWrapCommand as vt,SetVerticalTextAlignCommand as yt,SetWorkbookNameCommand as bt,SetWorksheetActiveOperation as E,SetWorksheetColumnCountCommand as xt,SetWorksheetDefaultStyleMutation as St,SetWorksheetHideCommand as Ct,SetWorksheetHideMutation as wt,SetWorksheetNameCommand as Tt,SetWorksheetOrderCommand as Et,SetWorksheetOrderMutation as Dt,SetWorksheetPermissionPointsMutation as Ot,SetWorksheetRangeThemeStyleCommand as kt,SetWorksheetRowCountCommand as At,SetWorksheetRowIsAutoHeightCommand as jt,SetWorksheetRowIsAutoHeightMutation as Mt,SetWorksheetShowCommand as Nt,SheetRangeThemeService as Pt,SheetSkeletonChangeType as Ft,SheetValueChangeType as It,SheetsFreezeSyncController as Lt,SheetsSelectionsService as Rt,SplitDelimiterEnum as zt,SplitTextToColumnsCommand as Bt,ToggleGridlinesCommand as Vt,UnitObject as D,UnregisterWorksheetRangeThemeStyleCommand as Ht,ViewStateEnum as O,WorkbookCommentPermission as Ut,WorkbookCopyPermission as Wt,WorkbookCopySheetPermission as Gt,WorkbookCreateProtectPermission as Kt,WorkbookCreateSheetPermission as qt,WorkbookDeleteColumnPermission as Jt,WorkbookDeleteRowPermission as Yt,WorkbookDeleteSheetPermission as Xt,WorkbookDuplicatePermission as Zt,WorkbookEditablePermission as Qt,WorkbookExportPermission as $t,WorkbookHideSheetPermission as en,WorkbookHistoryPermission as tn,WorkbookInsertColumnPermission as nn,WorkbookInsertRowPermission as rn,WorkbookManageCollaboratorPermission as an,WorkbookMoveSheetPermission as on,WorkbookPermissionService as sn,WorkbookPrintPermission as cn,WorkbookRecoverHistoryPermission as ln,WorkbookRenameSheetPermission as un,WorkbookSharePermission as dn,WorkbookViewHistoryPermission as fn,WorkbookViewPermission as pn,WorksheetCopyPermission as mn,WorksheetDeleteColumnPermission as hn,WorksheetDeleteProtectionPermission as gn,WorksheetDeleteRowPermission as _n,WorksheetEditExtraObjectPermission as vn,WorksheetEditPermission as yn,WorksheetFilterPermission as bn,WorksheetInsertColumnPermission as xn,WorksheetInsertHyperlinkPermission as Sn,WorksheetInsertRowPermission as Cn,WorksheetManageCollaboratorPermission as wn,WorksheetPivotTablePermission as Tn,WorksheetProtectionPointModel as En,WorksheetProtectionRuleModel as Dn,WorksheetSelectProtectedCellsPermission as On,WorksheetSelectUnProtectedCellsPermission as kn,WorksheetSetCellStylePermission as An,WorksheetSetCellValuePermission as jn,WorksheetSetColumnStylePermission as Mn,WorksheetSetRowStylePermission as Nn,WorksheetSortPermission as Pn,WorksheetViewPermission as Fn,addMergeCellsUtil as In,copyRangeStyles as k,getAddMergeMutationRangeByType as Ln,getAllWorksheetPermissionPoint as Rn,getAllWorksheetPermissionPointByPointPanel as zn,getNextPrimaryCell as Bn,getPrimaryForRange as A,getValueChangedEffectedRange as Vn}from"@univerjs/sheets";import{FormulaDataModel as Hn,IDefinedNamesService as Un,deserializeRangeWithSheet as Wn,serializeRange as Gn,serializeRangeWithSheet as Kn}from"@univerjs/engine-formula";import{UnitRole as qn}from"@univerjs/protocol";import{BehaviorSubject as j,Subject as Jn}from"rxjs";import{distinctUntilChanged as M,filter as N,map as P,shareReplay as F}from"rxjs/operators";function I(e){"@babel/helpers - typeof";return I=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},I(e)}function Yn(e,t){if(I(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(I(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Xn(e){var t=Yn(e,`string`);return I(t)==`symbol`?t:t+``}function L(e,t,n){return(t=Xn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R(e,t){return function(n,r){t(n,r,e)}}function z(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function Zn(e,t,n){let r=n.getDefinedNameMap(e);if(r==null)return t.t(`definedName.defaultName`)+1;let i=Array.from(Object.values(r)).length+1,a=t.t(`definedName.defaultName`)+i;if(n.getValueByName(e,a)==null)return a;let o=i+1;for(;;){let r=t.t(`definedName.defaultName`)+o;if(n.getValueByName(e,r)==null)return r;o++}}var B=class{constructor(){L(this,`_definedNameParam`,void 0),this._definedNameParam={id:de(10),unitId:``,name:``,formulaOrRefString:``,localSheetId:C}}setName(e){return this._definedNameParam.name=e,this}setFormula(e){return this._definedNameParam.formulaOrRefString=`=${e}`,this}setRef(e){return this._definedNameParam.formulaOrRefString=e,this}setRefByRange(e,t,n,r){return this._definedNameParam.formulaOrRefString=Gn({startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(r==null?1:r)-1}),this}setComment(e){return this._definedNameParam.comment=e,this}setScopeToWorksheet(e){return this._definedNameParam.localSheetId=e.getSheetId(),this}setScopeToWorkbook(){return this._definedNameParam.localSheetId=C,this}setHidden(e){return this._definedNameParam.hidden=e,this}build(){return this._definedNameParam}load(e){return this._definedNameParam=e,this}};let V=class extends me{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._definedNameParam=e,this._injector=t,this._commandService=n,this._permissionService=r,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=o,this._authzIoService=s,this._localeService=c,this._definedNamesService=l}_apply(){this._definedNameParam.name===``&&(this._definedNameParam.name=Zn(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(nt.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(e){this._definedNameParam.name=e,this._apply()}setFormula(e){this._definedNameParam.formulaOrRefString=`=${e}`,this._apply()}setRef(e){this._definedNameParam.formulaOrRefString=e,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(e,t,n,r){this._definedNameParam.formulaOrRefString=Gn({startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(r==null?1:r)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(e){this._definedNameParam.comment=e,this._apply()}setScopeToWorksheet(e){this._definedNameParam.localSheetId=e.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=C,this._apply()}setHidden(e){this._definedNameParam.hidden=e,this._apply()}delete(){this._commandService.syncExecuteCommand(Je.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===C}toBuilder(){let e=this._injector.createInstance(B);return e.load(this._definedNameParam),e}};V=z([R(1,f(p)),R(2,s),R(3,l),R(4,f(Dn)),R(5,f(S)),R(6,f(En)),R(7,f(o)),R(8,f(ee)),R(9,Un)],V);let H=function(e){return e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e}({}),U=function(e){return e.Edit=`WorkbookEdit`,e.View=`WorkbookView`,e.Print=`WorkbookPrint`,e.Export=`WorkbookExport`,e.Share=`WorkbookShare`,e.CopyContent=`WorkbookCopy`,e.DuplicateFile=`WorkbookDuplicate`,e.Comment=`WorkbookComment`,e.ManageCollaborator=`WorkbookManageCollaborator`,e.CreateSheet=`WorkbookCreateSheet`,e.DeleteSheet=`WorkbookDeleteSheet`,e.RenameSheet=`WorkbookRenameSheet`,e.MoveSheet=`WorkbookMoveSheet`,e.HideSheet=`WorkbookHideSheet`,e.ViewHistory=`WorkbookViewHistory`,e.ManageHistory=`WorkbookHistory`,e.RecoverHistory=`WorkbookRecoverHistory`,e.CreateProtection=`WorkbookCreateProtect`,e.InsertRow=`WorkbookInsertRow`,e.InsertColumn=`WorkbookInsertColumn`,e.DeleteRow=`WorkbookDeleteRow`,e.DeleteColumn=`WorkbookDeleteColumn`,e.CopySheet=`WorkbookCopySheet`,e}({}),W=function(e){return e.Edit=`WorksheetEdit`,e.View=`WorksheetView`,e.Copy=`WorksheetCopy`,e.SetCellValue=`WorksheetSetCellValue`,e.SetCellStyle=`WorksheetSetCellStyle`,e.SetRowStyle=`WorksheetSetRowStyle`,e.SetColumnStyle=`WorksheetSetColumnStyle`,e.InsertRow=`WorksheetInsertRow`,e.InsertColumn=`WorksheetInsertColumn`,e.DeleteRow=`WorksheetDeleteRow`,e.DeleteColumn=`WorksheetDeleteColumn`,e.Sort=`WorksheetSort`,e.Filter=`WorksheetFilter`,e.PivotTable=`WorksheetPivotTable`,e.InsertHyperlink=`WorksheetInsertHyperlink`,e.EditExtraObject=`WorksheetEditExtraObject`,e.ManageCollaborator=`WorksheetManageCollaborator`,e.DeleteProtection=`WorksheetDeleteProtection`,e.SelectProtectedCells=`WorksheetSelectProtectedCells`,e.SelectUnProtectedCells=`WorksheetSelectUnProtectedCells`,e}({}),G=function(e){return e.Edit=`RangeEdit`,e.View=`RangeView`,e.ManageCollaborator=`RangeManageCollaborator`,e.Delete=`RangeDeleteProtection`,e}({}),K=class extends me{constructor(e,t,n,r,i,a,o,s){super(),this._injector=e,this._commandService=t,this._permissionService=n,this._worksheetProtectionRuleModel=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointRuleModel=a,this._workbookPermissionService=o,this._authzIoService=s,L(this,`permissionPointsDefinition`,Be),L(this,`rangeRuleChangedAfterAuth$`,void 0),L(this,`sheetRuleChangedAfterAuth$`,void 0),L(this,`unitPermissionInitStateChange$`,void 0),this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$,this.unitPermissionInitStateChange$=this._workbookPermissionService.unitPermissionInitStateChange$}setWorkbookPermissionPoint(e,t,n){let r=new t(e);this._permissionService.getPermissionPoint(r.id)||this._permissionService.addPermissionPoint(r),this._permissionService.updatePermissionPoint(r.id,n)}checkWorkbookPermissionPoint(e,t){let n=new t(e),r=this._permissionService.getPermissionPoint(n.id);if(r)return r.value}setWorkbookEditPermission(e,t){this.setWorkbookPermissionPoint(e,Qt,t)}async addWorksheetBasePermission(e,t,n){let r=[];if(n!=null&&n.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),i=new Set(n.allowedUsers);r=t.filter(e=>{var t;return i.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:H.Editor,subject:e.subject}));let a=new Set(r.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));n.allowedUsers.forEach(e=>{a.has(e)||console.error(`User ${e} not found in collaborators list`)})}let i=await this._authzIoService.create({objectType:D.Worksheet,worksheetObject:{collaborators:r,unitID:e,strategies:[],name:(n==null?void 0:n.name)||``,scope:void 0}});if(this._commandService.syncExecuteCommand(be.id,{unitId:e,subUnitId:t,rule:{permissionId:i,unitType:D.Worksheet,unitId:e,subUnitId:t}}))return i}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(Me.id,{unitId:e,subUnitId:t}),[...Rn(),...zn()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,n,r){let i=this._worksheetProtectionRuleModel.getRule(e,t),a;if(n===yn||n===Fn)a=i?i.permissionId:await this.addWorksheetBasePermission(e,t);else{let n=this._worksheetProtectionPointRuleModel.getRule(e,t);n?a=n.permissionId:(a=await this._authzIoService.create({objectType:D.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:``,scope:void 0}}),this._commandService.syncExecuteCommand(Ot.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:a}}))}let o=new n(e,t);if(this._permissionService.getPermissionPoint(o.id)||this._permissionService.addPermissionPoint(o),a){let t=o.subType;await this._authzIoService.update({objectType:D.Worksheet,objectID:a,strategies:[{action:t,role:r?H.Owner:H.Reader}],unitID:e,share:void 0,name:``,scope:void 0,collaborators:void 0})}return this._permissionService.updatePermissionPoint(o.id,r),a}checkWorksheetPermissionPoint(e,t,n){let r=new n(e,t),i=this._permissionService.getPermissionPoint(r.id);if(i)return i.value}async addRangeBaseProtection(e,t,n,r){let i=[];if(r!=null&&r.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),n=new Set(r.allowedUsers);i=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:H.Editor,subject:e.subject}));let a=new Set(i.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));r.allowedUsers.forEach(e=>{a.has(e)||console.error(`User ${e} not found in collaborators list`)})}let a=await this._authzIoService.create({objectType:D.SelectRange,selectRangeObject:{collaborators:i,unitID:e,name:(r==null?void 0:r.name)||``,scope:void 0}}),o=`ruleId_${de(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).some(e=>e.ranges.some(e=>n.some(t=>h.intersects(t.getRange(),e)))))throw Error(`range protection cannot intersect`);let s=this._determineRangeViewState(r),c=this._determineRangeEditState(r),l={unitId:e,subUnitId:t,rules:[{permissionId:a,unitType:D.SelectRange,unitId:e,subUnitId:t,ranges:n.map(e=>e.getRange()),id:o,description:r==null?void 0:r.name,viewState:s,editState:c}]};if(this._commandService.syncExecuteCommand(ye.id,l))return{permissionId:a,ruleId:o}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?O.NoOneElseCanView:O.OthersCanView}_determineRangeEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?b.DesignedUserCanEdit:b.OnlyMe}removeRangeProtection(e,t,n){this._commandService.syncExecuteCommand(je.id,{unitId:e,subUnitId:t,ruleIds:n})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...zn()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,r.value)}))}setRangeProtectionPermissionPoint(e,t,n,r,i){let a=new r(e,t,n);this._permissionService.getPermissionPoint(a.id)||this._permissionService.addPermissionPoint(a),this._permissionService.updatePermissionPoint(a.id,i)}setRangeProtectionRanges(e,t,n,r){let i=this._rangeProtectionRuleModel.getRule(e,t,n);if(i){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).filter(e=>e.id!==n).some(e=>e.ranges.some(e=>r.some(t=>h.intersects(t.getRange(),e)))))throw Error(`range protection cannot intersect`);this._commandService.syncExecuteCommand(st.id,{unitId:e,subUnitId:t,ruleId:n,rule:{...i,ranges:r.map(e=>e.getRange())}})}}getPermissionInfoWithCell(e,t,n,r){let i=se(n,r),a=this._rangeProtectionRuleModel.getSubunitRuleList(e,t).find(e=>e.ranges.some(e=>h.intersects(i,e)));if(a)return{permissionId:a.permissionId,ruleId:a.id}}};K=z([R(0,f(p)),R(1,s),R(2,l),R(3,f(Dn)),R(4,f(S)),R(5,f(En)),R(6,f(sn)),R(7,f(o))],K);var Qn;let q=Qn=class{constructor(e,t,n,r){this._workbook=e,this._worksheet=t,this._selections=n,this._injector=r}getActiveRange(){let e=this._selections.find(e=>!!e.primary);return e?this._injector.createInstance(Q,this._workbook,this._worksheet,e.range):null}getActiveRangeList(){return this._selections.map(e=>this._injector.createInstance(Q,this._workbook,this._worksheet,e.range))}getCurrentCell(){let e=this._selections.find(e=>!!e.primary);return e?e.primary:null}getActiveSheet(){let e=this._injector.createInstance($,this._workbook);return this._injector.createInstance(Z,e,this._workbook,this._worksheet)}updatePrimaryCell(e){let t=this._injector.get(s),n=[],r=!1;for(let{range:t,style:i}of this._selections)h.contains(t,e.getRange())?(n.push({range:t,primary:A(e.getRange(),this._worksheet),style:i}),r=!0):n.push({range:t,primary:null,style:i});r||(n=[{range:e.getRange(),primary:A(e.getRange(),this._worksheet)}]);let i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:n};return t.syncExecuteCommand(ft.id,i),new Qn(this._workbook,this._worksheet,n,this._injector)}getNextDataRange(e){if(!this._selections.find(e=>!!e.primary))return null;let t=Bn(this._selections.concat(),e,this._worksheet);return t?this._injector.createInstance(Q,this._workbook,this._worksheet,t):null}};q=Qn=z([R(3,f(p))],q);let J=class{constructor(e,t,n,r,i,a,o,s,c){this._unitId=e,this._subUnitId=t,this._ruleId=n,this._permissionId=r,this._ranges=i,this._options=a,this._injector=o,this._commandService=s,this._rangeProtectionRuleModel=c}get id(){return this._ruleId}get ranges(){return this._ranges}get options(){return{...this._options}}async updateRanges(e){if(!e||e.length===0)throw Error(`Ranges cannot be empty`);let t=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,this._ruleId);if(!t)throw Error(`Rule ${this._ruleId} not found`);if(this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).filter(e=>e.id!==this._ruleId).some(t=>t.ranges.some(t=>e.some(e=>{let n=e.getRange();return this._rangesIntersect(n,t)}))))throw Error(`Range protection cannot intersect with other protection rules`);await this._commandService.executeCommand(st.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleId:this._ruleId,rule:{...t,ranges:e.map(e=>e.getRange())}}),this._ranges.length=0,this._ranges.push(...e)}async remove(){await this._commandService.executeCommand(je.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleIds:[this._ruleId]})}_rangesIntersect(e,t){return!(e.endRow<t.startRow||e.startRow>t.endRow||e.endColumn<t.startColumn||e.startColumn>t.endColumn)}};J=z([R(6,f(p)),R(7,f(s)),R(8,f(S))],J);const Y={[U.Edit]:Qt,[U.View]:pn,[U.Print]:cn,[U.Export]:$t,[U.Share]:dn,[U.CopyContent]:Wt,[U.DuplicateFile]:Zt,[U.Comment]:Ut,[U.ManageCollaborator]:an,[U.CreateSheet]:qt,[U.DeleteSheet]:Xt,[U.RenameSheet]:un,[U.MoveSheet]:on,[U.HideSheet]:en,[U.ViewHistory]:fn,[U.ManageHistory]:tn,[U.RecoverHistory]:ln,[U.CreateProtection]:Kt,[U.InsertRow]:rn,[U.InsertColumn]:nn,[U.DeleteRow]:Yt,[U.DeleteColumn]:Jt,[U.CopySheet]:Gt},$n={[W.Edit]:yn,[W.View]:Fn,[W.Copy]:mn,[W.SetCellValue]:jn,[W.SetCellStyle]:An,[W.SetRowStyle]:Nn,[W.SetColumnStyle]:Mn,[W.InsertRow]:Cn,[W.InsertColumn]:xn,[W.DeleteRow]:_n,[W.DeleteColumn]:hn,[W.Sort]:Pn,[W.Filter]:bn,[W.PivotTable]:Tn,[W.InsertHyperlink]:Sn,[W.EditExtraObject]:vn,[W.ManageCollaborator]:wn,[W.DeleteProtection]:gn,[W.SelectProtectedCells]:On,[W.SelectUnProtectedCells]:kn},X={[G.Edit]:He,[G.View]:We,[G.ManageCollaborator]:Ue,[G.Delete]:Ve};let er=class{constructor(e,t,n,r,i,a,o,s){this._worksheet=e,this._injector=t,this._permissionService=n,this._authzIoService=r,this._commandService=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointModel=o,this._worksheetProtectionRuleModel=s,L(this,`_permissionSubject`,void 0),L(this,`_rangeRulesSubject`,void 0),L(this,`permission$`,void 0),L(this,`pointChange$`,void 0),L(this,`rangeProtectionChange$`,void 0),L(this,`rangeProtectionRules$`,void 0),L(this,`_unitId`,void 0),L(this,`_subUnitId`,void 0),L(this,`_subscriptions`,[]),L(this,`_fPermission`,void 0),this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(K),this._permissionSubject=new j(this._buildSnapshot()),this._rangeRulesSubject=new j(this._buildRangeProtectionRules()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.rangeProtectionChange$=this._createRangeProtectionChangeStream(),this.rangeProtectionRules$=this._createRangeProtectionRulesStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe(M((e,t)=>JSON.stringify(e)===JSON.stringify(t)),F({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId)),P(e=>{var t,n;let r=this._extractWorksheetPointType(e.id);return r?{point:r,value:(t=e.value)==null?!1:t,oldValue:!((n=e.value)!=null&&n)}:null}),N(e=>e!==null),F({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(N(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId),P(e=>{let t=this._buildRangeProtectionRules();return{type:e.type===`delete`?`delete`:e.type===`set`?`update`:`add`,rules:t}}),F({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){let e=this._rangeProtectionRuleModel.ruleChange$.pipe(N(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(e),this._rangeRulesSubject.asObservable().pipe(M((e,t)=>e.length===t.length?e.every((e,n)=>e.id===t[n].id):!1),F({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(e){for(let[t,n]of Object.entries($n))if(new n(this._unitId,this._subUnitId).id===e)return t;return null}_getRuleEditPermission(e){var t;let n=X[G.Edit];if(!n)return!1;let r=new n(this._unitId,this._subUnitId,e.permissionId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!1:t}_buildSnapshot(){let e={};for(let t in W){let n=W[t];e[n]=this.getPoint(n)}return e}_buildRangeProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1));return this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,{name:e.description||``,allowEdit:this._getRuleEditPermission(e)})})}_buildProtectionRule(e){let t=e.ranges.map(e=>this._worksheet.getRange(e)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView};return e.editState===b.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)}debugCellPermission(e,t){let n=this._fPermission.getPermissionInfoWithCell(this._unitId,this._subUnitId,e,t);if(!n)return;let{ruleId:r}=n,i=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,r);if(i)return this._buildProtectionRule(i)}async protect(e){if(this.isProtected())throw Error(`Worksheet is already protected. Call unprotect() first.`);let t=await this._fPermission.addWorksheetBasePermission(this._unitId,this._subUnitId,e);if(!t)throw Error(`Failed to create worksheet protection`);return t}async unprotect(){if(!this.isProtected())return;this._fPermission.removeWorksheetPermission(this._unitId,this._subUnitId);let e=this._buildSnapshot();this._permissionSubject.next(e)}isProtected(){return!!this._worksheetProtectionRuleModel.getRule(this._unitId,this._subUnitId)}async setMode(e){let t=this._getModePermissions(e);await this._batchSetPermissionPoints(t)}_getModePermissions(e){let t={};switch(Object.values(W).forEach(e=>{t[e]=!1}),e){case`editable`:Object.values(W).forEach(e=>{t[e]=!0});break;case`readOnly`:t[W.View]=!0;break;case`filterOnly`:t[W.View]=!0,t[W.Sort]=!0,t[W.Filter]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=$n[e];if(!i)throw Error(`Unknown worksheet permission point: ${e}`);let a=this.getPoint(e);a!==r&&(await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,i,r),t.push({point:e,value:r,oldValue:a}))}if(t.length>0){let e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode(`readOnly`)}async setEditable(){await this.setMode(`editable`)}canEdit(){return this.getPoint(W.Edit)}canEditCell(e,t){if(!this.canEdit())return!1;let n=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);for(let r of n)for(let n of r.ranges)if(e>=n.startRow&&e<=n.endRow&&t>=n.startColumn&&t<=n.endColumn)return this._getRuleEditPermission(r);return!0}canViewCell(e,t){return this.getPoint(W.View)}async setPoint(e,t){let n=$n[e];if(!n)throw Error(`Unknown worksheet permission point: ${e}`);if(this.getPoint(e)===t)return;await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,n,t);let r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(e){var t;let n=$n[e];if(!n)throw Error(`Unknown worksheet permission point: ${e}`);let r=new n(this._unitId,this._subUnitId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!0:t}getSnapshot(){return this._buildSnapshot()}async applyConfig(e){if(e.mode&&await this.setMode(e.mode),e.points)for(let[t,n]of Object.entries(e.points))typeof n==`boolean`&&await this.setPoint(t,n);if(e.rangeProtections&&e.rangeProtections.length>0){let t=e.rangeProtections.map(e=>({ranges:e.rangeRefs.map(e=>this._worksheet.getRange(e)),options:e.options}));await this.protectRanges(t)}}async protectRanges(e){if(!e||e.length===0)throw Error(`Configs cannot be empty`);let t=[];e.some(e=>{var t;return(t=e.options)==null||(t=t.allowedUsers)==null?void 0:t.length})&&(t=await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId}));let n=await Promise.all(e.map(e=>{var n,r;let i=[];if((n=e.options)!=null&&n.allowedUsers){let n=new Set(e.options.allowedUsers);i=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:qn.Editor,subject:e.subject}));let r=new Set(i.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));e.options.allowedUsers.forEach(e=>{r.has(e)||console.error(`User ${e} not found in collaborators list`)})}return this._authzIoService.create({objectType:D.SelectRange,selectRangeObject:{collaborators:i,unitID:this._unitId,name:((r=e.options)==null?void 0:r.name)||``,scope:void 0}})})),r=e.map((e,t)=>{var r;let i=this._determineViewState(e.options),a=this._determineEditState(e.options);return{permissionId:n[t],unitType:D.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:e.ranges.map(e=>e.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((r=e.options)==null?void 0:r.name)||``,viewState:i,editState:a}});if(!await this._commandService.executeCommand(ye.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:r}))throw Error(`Failed to create range protection rules`);return await Promise.all(e.map((e,t)=>this._setPermissionPoints(n[t],e.options))),r.map((t,n)=>this._injector.createInstance(J,this._unitId,this._subUnitId,t.id,t.permissionId,e[n].ranges,e[n].options||{}))}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?O.NoOneElseCanView:O.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?b.DesignedUserCanEdit:b.OnlyMe}async _setPermissionPoints(e,t){if(!t)return;let n=(e,t)=>e===void 0?t:typeof e==`boolean`?e:!0;await this._setPermissionPoint(e,G.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,G.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=X[t];r&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,e,r,n)}async unprotectRules(e){!e||e.length===0||this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,e)}async listRangeProtectionRules(){return this._buildRangeProtectionRules()}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete(),this._rangeRulesSubject.complete()}};er=z([R(1,f(p)),R(2,l),R(3,o),R(4,s),R(5,f(S)),R(6,f(En)),R(7,f(Dn))],er);function tr(e){switch(e){case`left`:return a.LEFT;case`center`:return a.CENTER;case`normal`:return a.RIGHT;default:throw Error(`Invalid horizontal alignment: ${e}`)}}function nr(e){switch(e){case a.LEFT:return`left`;case a.CENTER:return`center`;case a.RIGHT:return`normal`;default:return`general`}}function rr(e){switch(e){case`top`:return v.TOP;case`middle`:return v.MIDDLE;case`bottom`:return v.BOTTOM;default:throw Error(`Invalid vertical alignment: ${e}`)}}function ir(e){switch(e){case v.TOP:return`top`;case v.MIDDLE:return`middle`;case v.BOTTOM:return`bottom`;default:return`general`}}function ar(e,t){return{startRow:e.startRow,endRow:e.endRow,startColumn:0,endColumn:t.getColumnCount()-1,rangeType:m.ROW}}function or(e,t){return{startRow:0,endRow:t.getRowCount()-1,startColumn:e.startColumn,endColumn:e.endColumn,rangeType:m.COLUMN}}var sr;let Z=sr=class extends he{constructor(e,t,n,r,i,a,o){super(r),this._fWorkbook=e,this._workbook=t,this._worksheet=n,this._injector=r,this._selectionManagerService=i,this._logService=a,this._commandService=o,L(this,`setActiveSelection`,this.setActiveRange)}dispose(){super.dispose(),delete this._fWorkbook,delete this._workbook,delete this._worksheet}getSheet(){return this._worksheet}getInject(){return this._injector}getWorkbook(){return this._workbook}getSheetId(){return this._worksheet.getSheetId()}getSheetName(){return this._worksheet.getName()}getSelection(){let e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(q,this._workbook,this._worksheet,e):null}getDefaultStyle(){return this._worksheet.getDefaultCellStyle()}getRowDefaultStyle(e,t=!1){return t?this._worksheet.getRowStyle(e,t):this._worksheet.getRowStyle(e)}getColumnDefaultStyle(e,t=!1){return t?this._worksheet.getColumnStyle(e,t):this._worksheet.getColumnStyle(e)}setDefaultStyle(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(St.id,{unitId:t,subUnitId:n,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,t){let n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand($e.id,n),this}setRowDefaultStyle(e,t){let n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(lt.id,n),this}getRange(e,t,n,r){let i,a;if(typeof e==`object`)i=e,a=this._worksheet;else if(typeof e==`string`){let{range:t,sheetName:n}=Wn(e),r=n?this._workbook.getSheetBySheetName(n):this._worksheet;if(!r)throw Error(`Range not found`);a=r,i={...t,unitId:this._workbook.getUnitId(),sheetId:a.getSheetId(),rangeType:m.NORMAL,startRow:t.rangeType===m.COLUMN?0:t.startRow,endRow:t.rangeType===m.COLUMN?a.getMaxRows()-1:t.endRow,startColumn:t.rangeType===m.ROW?0:t.startColumn,endColumn:t.rangeType===m.ROW?a.getMaxColumns()-1:t.endColumn}}else if(typeof e==`number`&&t!==void 0)a=this._worksheet,i={startRow:e,endRow:e+(n==null?1:n)-1,startColumn:t,endColumn:t+(r==null?1:r)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw Error(`Invalid range specification`);return this._injector.createInstance(Q,this._workbook,a,i)}getMaxColumns(){return this._worksheet.getMaxColumns()}getMaxRows(){return this._worksheet.getMaxRows()}insertRowAfter(e){return this.insertRowsAfter(e,1)}insertRowBefore(e){return this.insertRowsBefore(e,1)}insertRows(e,t=1){return this.insertRowsBefore(e,t)}insertRowsAfter(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.DOWN,o=e+1,s=e+t,c=this._worksheet.getColumnCount()-1,l=k(this._worksheet,o,s,0,c,!0,e);return this._commandService.syncExecuteCommand(Le.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:o,endRow:s,startColumn:0,endColumn:c},cellValue:l}),this}insertRowsBefore(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.UP,o=e,s=e+t-1,c=this._worksheet.getColumnCount()-1,l=k(this._worksheet,o,s,0,c,!0,e-1);return this._commandService.syncExecuteCommand(Le.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:o,endRow:s,startColumn:0,endColumn:c},cellValue:l}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,t){let n={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(Ye.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteRowsByPoints(e){return ue(e).reverse().forEach(e=>{this.deleteRows(e[0],e[1]-e[0]+1)}),this}moveRows(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=ar(e.getRange(),this._worksheet),a=i,o={startRow:t,endRow:t,startColumn:i.startColumn,endColumn:i.endColumn};return this._commandService.syncExecuteCommand(ze.id,{unitId:n,subUnitId:r,range:i,fromRange:a,toRange:o}),this}hideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=ar(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(dt.id,{unitId:t,subUnitId:n,ranges:[r]}),this}hideRows(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:m.ROW};return this._commandService.syncExecuteCommand(dt.id,{unitId:n,subUnitId:r,ranges:[i]}),this}unhideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=ar(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(mt.id,{unitId:t,subUnitId:n,ranges:[r]}),this}showRows(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:m.ROW};return this._commandService.syncExecuteCommand(mt.id,{unitId:n,subUnitId:r,ranges:[i]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(t,n=e.TRUE){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startRow:t,endRow:t,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:a[0],value:oe.WRAP}),this._commandService.syncExecuteCommand(Mt.id,{unitId:r,subUnitId:i,ranges:a,autoHeightInfo:n}),this}setRowHeights(e,t,n){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=this._worksheet.getRowManager(),o=[],s=[];for(let r=e;r<e+t;r++){var c;let e=((c=a.getRow(r))==null?void 0:c.ah)||this._worksheet.getConfig().defaultRowHeight,t={startRow:r,endRow:r,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};n<=e?o.push(t):s.push(t)}return s.length>0&&this._commandService.syncExecuteCommand(ut.id,{unitId:r,subUnitId:i,ranges:s,value:n}),o.length>0&&this._commandService.syncExecuteCommand(jt.id,{unitId:r,subUnitId:i,ranges:o}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(jt.id,{unitId:n,subUnitId:r,ranges:i}),this}setRangesAutoHeight(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(jt.id,{unitId:t,subUnitId:n,ranges:e}),this}setRowHeightsForced(e,t,n){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(ut.id,{unitId:r,subUnitId:i,ranges:a,value:n}),this}setRowCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r={};for(let[t,n]of Object.entries(e))r[Number(t)]={custom:n};let i={unitId:t,subUnitId:n,rowData:r};return this._commandService.syncExecuteCommand(lt.id,i),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,t=1){return this.insertColumnsBefore(e,t)}insertColumnsAfter(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.RIGHT,o=this._worksheet.getRowCount()-1,s=e+1,c=e+t,l=k(this._worksheet,0,o,s,c,!1,e);return this._commandService.syncExecuteCommand(Pe.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:0,endRow:o,startColumn:s,endColumn:c},cellValue:l}),this}insertColumnsBefore(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=i.LEFT,o=this._worksheet.getRowCount()-1,s=e,c=e+t-1,l=k(this._worksheet,0,o,s,c,!1,e-1);return this._commandService.syncExecuteCommand(Pe.id,{unitId:n,subUnitId:r,direction:a,range:{startRow:0,endRow:o,startColumn:s,endColumn:c},cellValue:l}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,t){let n={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1};return this._commandService.syncExecuteCommand(qe.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteColumnsByPoints(e){return ue(e).reverse().forEach(e=>{this.deleteColumns(e[0],e[1]-e[0]+1)}),this}moveColumns(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=or(e.getRange(),this._worksheet),a=i,o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(Re.id,{unitId:n,subUnitId:r,range:i,fromRange:a,toRange:o}),this}hideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=or(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(et.id,{unitId:t,subUnitId:n,ranges:[r]}),this}hideColumns(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:m.COLUMN};return this._commandService.syncExecuteCommand(et.id,{unitId:n,subUnitId:r,ranges:[i]}),this}unhideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=or(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(pt.id,{unitId:t,subUnitId:n,ranges:[r]}),this}showColumns(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:m.COLUMN};return this._commandService.syncExecuteCommand(pt.id,{unitId:n,subUnitId:r,ranges:[i]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,n){let r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(tt.id,{unitId:r,subUnitId:i,ranges:a,value:n}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r={};for(let[t,n]of Object.entries(e))r[Number(t)]={custom:n};let i={unitId:t,subUnitId:n,columnData:r};return this._commandService.syncExecuteCommand($e.id,i),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(Q,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(e=>this._injector.createInstance(Q,this._workbook,this._worksheet,e))}getCellMergeData(e,t){let n=this._worksheet.getMergedCell(e,t);if(n)return this._injector.createInstance(Q,this._workbook,this._worksheet,n)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){let{unitId:t,sheetId:n}=e.getRange();if(t!==this._workbook.getUnitId()||n!==this._worksheet.getSheetId())throw Error(`Specified range must be part of the sheet.`);return this._fWorkbook.setActiveRange(e),this}getActiveCell(){return this._fWorkbook.getActiveCell()}setFreeze(e){return this._logService.warn(`setFreeze is deprecated, use setFrozenRows and setFrozenColumns instead`),this._commandService.syncExecuteCommand(rt.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(we.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){let t=this.getFreeze();if(arguments.length===1){let n=e[0];this.setFreeze({...t,startColumn:n>0?n:-1,xSplit:n})}else if(arguments.length===2){let[n=0,r=0]=e;n>r&&([n,r]=[r,n]),this._commandService.syncExecuteCommand(rt.id,{startColumn:r+1,xSplit:r-n+1,startRow:t.startRow,ySplit:t.ySplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}setFrozenRows(...e){let t=this.getFreeze();if(arguments.length===1){let n=e[0];this.setFreeze({...t,startRow:n>0?n:-1,ySplit:n})}else if(arguments.length===2){let[n=0,r=0]=e;n>r&&([n,r]=[r,n]),this._commandService.syncExecuteCommand(rt.id,{startRow:r+1,ySplit:r-n+1,startColumn:t.startColumn,xSplit:t.xSplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}getFrozenColumns(){let e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){let e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){let e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){let e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===e.FALSE}setHiddenGridlines(t){return this._commandService.syncExecuteCommand(Vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:t?e.FALSE:e.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(it.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(ht.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(s).onCommandExecuted(t=>{if(t.id===ct.id){let n=t.params;n.unitId===this._workbook.getUnitId()&&n.subUnitId===this._worksheet.getSheetId()&&n.cellValue&&e(new te(n.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(s).beforeCommandExecuted(t=>{if(t.id===ct.id){let n=t.params;n.unitId===this._workbook.getUnitId()&&n.subUnitId===this._worksheet.getSheetId()&&n.cellValue&&e(new te(n.cellValue))}})}hideSheet(){let t=this._injector.get(s);if(this._workbook.getSheets().filter(t=>t.isSheetHidden()!==e.TRUE).length<=1)throw Error(`Cannot hide the only visible sheet`);return t.syncExecuteCommand(Ct.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(s).syncExecuteCommand(Nt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===e.TRUE}setName(e){return this._commandService.syncExecuteCommand(Tt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(e){if(e&&e.contentsOnly&&!e.formatOnly)return this.clearContents();if(e&&e.formatOnly&&!e.contentsOnly)return this.clearFormats();let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=this._injector.get(s),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return r.syncExecuteCommand(Te.id,{unitId:t,subUnitId:n,ranges:[i],options:e}),this}clearContents(){let e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s),r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(Ee.id,{unitId:e,subUnitId:t,ranges:[r]}),this}clearFormats(){let e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s),r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(De.id,{unitId:e,subUnitId:t,ranges:[r]}),this}getDataRange(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._worksheet.getDataRealRange();return this.getRange(e,n,t-e+1,r-n+1)}getLastColumns(){return this._worksheet.getLastColumnWithContent()}getLastColumn(){return this._worksheet.getLastColumnWithContent()}getLastRows(){return this._worksheet.getLastRowWithContent()}getLastRow(){return this._worksheet.getLastRowWithContent()}equalTo(e){return e instanceof sr?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){let n=this._injector.createInstance(B).setName(e).setRef(t).build();n.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(n)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(e=>e.getLocalSheetId()===this.getSheetId())}setCustomMetadata(e){return this._worksheet.setCustomMetadata(e),this}getCustomMetadata(){return this._worksheet.getCustomMetadata()}setRowCustomMetadata(e,t){return this._worksheet.getRowManager().setCustomMetadata(e,t),this}setColumnCustomMetadata(e,t){return this._worksheet.getColumnManager().setCustomMetadata(e,t),this}getRowCustomMetadata(e){return this._worksheet.getRowManager().getCustomMetadata(e)}getColumnCustomMetadata(e){return this._worksheet.getColumnManager().getCustomMetadata(e)}appendRow(e){let t=this._worksheet.getCellMatrix().hasValue(),n=this._worksheet.getLastRowWithContent(),r=this._worksheet.getRowCount(),i=this._worksheet.getColumnCount(),a=t?n+1:n,o=new te;for(let t=0;t<e.length;t++)o.setValue(a,t,ce(e[t]));return this._commandService.syncExecuteCommand(xe.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:o.getMatrix(),insertRowNums:a>r-1?1:0,insertColumnNums:e.length>i?e.length-i:0,maxRows:r,maxColumns:i}),this}setRowCount(e){return this._commandService.syncExecuteCommand(At.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(xt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(er,this)}};Z=sr=z([R(3,f(p)),R(4,f(Rt)),R(5,f(c)),R(6,s)],Z);let cr=class{constructor(e,t,n,r,i,a,o,s,c){this._unitId=e,this._subUnitId=t,this._range=n,this._worksheet=r,this._injector=i,this._permissionService=a,this._authzIoService=o,this._commandService=s,this._rangeProtectionRuleModel=c,L(this,`_permissionSubject`,void 0),L(this,`_subscriptions`,[]),L(this,`_fPermission`,void 0),L(this,`permission$`,void 0),L(this,`protectionChange$`,void 0),this._fPermission=this._injector.createInstance(K),this._permissionSubject=new j(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe(N(e=>{let t=e.id;return t.includes(this._unitId)&&t.includes(this._subUnitId)})).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe(M((e,t)=>JSON.stringify(e)===JSON.stringify(t)),F({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(N(e=>e.unitId!==this._unitId||e.subUnitId!==this._subUnitId?!1:e.type===`delete`||e.type===`add`?this._rangeMatches(e.rule):!1),P(e=>(this._permissionSubject.next(this._buildSnapshot()),e.type===`delete`?{type:`unprotected`,ruleId:e.rule.id}:{type:`protected`,rule:this._createFacadeRule(e.rule)})),F({bufferSize:1,refCount:!0}))}_rangeMatches(e){let t=this._range.getRange();return e.ranges.some(e=>t.startRow===e.startRow&&t.startColumn===e.startColumn&&t.endRow===e.endRow&&t.endColumn===e.endColumn)}_createFacadeRule(e){let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView,allowEdit:e.editState===b.DesignedUserCanEdit};return this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)}getPoint(e){let t=X[e];if(!t)return console.warn(`Unknown permission point: ${e}`),!1;let n=this._getProtectionRule();if(n){let e=new t(this._unitId,this._subUnitId,n.permissionId),r=this._permissionService.getPermissionPoint(e.id);if(r)return r.value}return!0}getSnapshot(){return this._buildSnapshot()}isProtected(){return this._getProtectionRule()!==null}canEdit(){return this.getPoint(G.Edit)}canView(){return this.getPoint(G.View)}canManageCollaborator(){return this.getPoint(G.ManageCollaborator)}canDelete(){return this.getPoint(G.Delete)}async setPoint(e,t){let n=X[e];if(!n)throw Error(`Unknown permission point: ${e}`);let r=this._getProtectionRule();if(!r)throw Error(`Cannot set permission point: No protection rule exists for this range. Call protect() first.`);if(this.getPoint(e)===t)return;let i=r.permissionId;this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,i,n,t),this._permissionSubject.next(this._buildSnapshot())}async protect(e){if(this.isProtected())throw Error(`Range is already protected`);let t=await this._fPermission.addRangeBaseProtection(this._unitId,this._subUnitId,[this._range],e);if(!t)throw Error(`Failed to create range protection`);let{permissionId:n,ruleId:r}=t;return await this._setPermissionPoints(n,e),this._injector.createInstance(J,this._unitId,this._subUnitId,r,n,[this._range],e||{})}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?O.NoOneElseCanView:O.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?b.DesignedUserCanEdit:b.OnlyMe}async _setPermissionPoints(e,t){if(!t)return;let n=(e,t)=>e===void 0?t:typeof e==`boolean`?e:!0;await this._setPermissionPoint(e,G.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,G.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=X[t];r&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,e,r,n)}async unprotect(){let e=this._getProtectionRule();if(!e)return;let t=e.id;this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,[t])}async listRules(){return await this._buildProtectionRulesAsync()}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}_getProtectionRule(){let e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId),t=this._range.getRange();for(let n of e)for(let e of n.ranges)if(t.startRow===e.startRow&&t.startColumn===e.startColumn&&t.endRow===e.endRow&&t.endColumn===e.endColumn)return n;return null}_buildProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView};return e.editState===b.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)})}async _buildProtectionRulesAsync(){let e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);return(await Promise.all(e.map(async e=>{let t=e.ranges.map(e=>this._worksheet.getRange(e.startRow,e.startColumn,e.endRow-e.startRow+1,e.endColumn-e.startColumn+1)),n={name:e.description||``,allowViewByOthers:e.viewState!==O.NoOneElseCanView};if(e.editState===b.DesignedUserCanEdit)try{n.allowEdit=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(e=>e.role===qn.Editor).map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}).length>0}catch(t){console.warn(`Failed to fetch collaborators for rule ${e.id}:`,t),n.allowEdit=!1}else n.allowEdit=!1;return{rule:e,ranges:t,options:n}}))).map(({rule:e,ranges:t,options:n})=>this._injector.createInstance(J,this._unitId,this._subUnitId,e.id,e.permissionId,t,n))}_buildSnapshot(){let e={};return Object.values(G).forEach(t=>{e[t]=this.getPoint(t)}),e}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete()}};cr=z([R(4,f(p)),R(5,f(l)),R(6,f(o)),R(7,f(s)),R(8,f(S))],cr);var lr,ur;let Q=lr=class extends he{constructor(e,t,n,r,i,a){super(r),this._workbook=e,this._worksheet=t,this._range=n,this._injector=r,this._commandService=i,this._formulaDataModel=a;let o=this._worksheet.getRowCount(),s=this._worksheet.getColumnCount();if(this._range.startRow<0||this._range.startColumn<0||this._range.endRow>=o||this._range.endColumn>=s)throw Error(`Range is out of bounds. Max rows: ${o}, Max columns: ${s}, Given range: ${JSON.stringify(this._range)}`);this._runInitializers(this._injector,this._workbook,this._worksheet,this._range,this._commandService,this._formulaDataModel)}getUnitId(){return this._workbook.getUnitId()}getSheetName(){return this._worksheet.getName()}getSheetId(){return this._worksheet.getSheetId()}getRange(){return this._range}getRow(){return this._range.startRow}getLastRow(){return this._range.endRow}getColumn(){return this._range.startColumn}getLastColumn(){return this._range.endColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}isMerged(){let{startColumn:e,startRow:t,endColumn:n,endRow:r}=this._range;return this._worksheet.getMergedCellRange(t,e,r,n).some(e=>h.equals(e,this._range))}getCellStyleData(e=`row`){return e===`cell`?this._worksheet.getCellStyle(this._range.startRow,this._range.startColumn):this._worksheet.getComposedCellStyle(this._range.startRow,this._range.startColumn,e===`row`)}getFontFamily(e=`row`){var t,n;return(t=(n=this.getCellStyleData(e))==null?void 0:n.ff)==null?null:t}getFontSize(e=`row`){var t,n;return(t=(n=this.getCellStyleData(e))==null?void 0:n.fs)==null?null:t}getCellStyle(e=`row`){let t=this.getCellStyleData(e);return t?re.create(t):null}getCellStyles(e=`row`){return this.getCellDatas().map((t,n)=>t.map((t,r)=>{if(!t)return null;let i=e===`cell`?this._worksheet.getCellStyle(n+this._range.startRow,r+this._range.startColumn):this._worksheet.getComposedCellStyle(n+this._range.startRow,r+this._range.startColumn,e===`row`);return i?re.create(i):null}))}getValue(e){var t,n;return e?this.getValueAndRichTextValue():(t=(n=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:n.v)==null?null:t}getRawValue(){var e,t;let n=this._worksheet.getCellMatrix().getValue(this._range.startRow,this._range.startColumn);return n!=null&&n.p&&(e=n.p.body)!=null&&e.dataStream?n.p.body.dataStream:(t=n==null?void 0:n.v)==null?null:t}getDisplayValue(){var e,t,n;let r=this._worksheet.getCell(this._range.startRow,this._range.startColumn);return r!=null&&r.p&&(e=r.p.body)!=null&&e.dataStream?r.p.body.dataStream:(t=r==null||(n=r.v)==null?void 0:n.toString())==null?``:t}getValues(e){if(e)return this.getValueAndRichTextValues();let{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=[];for(let e=t;e<=n;e++){let t=[];for(let n=r;n<=i;n++){var o,s;t.push((o=(s=this._worksheet.getCell(e,n))==null?void 0:s.v)==null?null:o)}a.push(t)}return a}getRawValues(){let e=this._worksheet.getCellMatrix(),{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=[];for(let c=t;c<=n;c++){let t=[];for(let n=r;n<=i;n++){var o;let r=e.getValue(c,n);if(r!=null&&r.p&&(o=r.p.body)!=null&&o.dataStream)t.push(r.p.body.dataStream);else{var s;t.push((s=r==null?void 0:r.v)==null?null:s)}}a.push(t)}return a}getDisplayValues(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,i=[];for(let c=e;c<=t;c++){let e=[];for(let t=n;t<=r;t++){var a;let n=this._worksheet.getCell(c,t);if(n!=null&&n.p&&(a=n.p.body)!=null&&a.dataStream)e.push(n.p.body.dataStream);else{var o,s;e.push((o=n==null||(s=n.v)==null?void 0:s.toString())==null?``:o)}}i.push(e)}return i}getCellData(){var e;return(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?null:e}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){let{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,i=[];for(let a=e;a<=t;a++){let e=[];for(let t=n;t<=r;t++)e.push(this._worksheet.getCellRaw(a,t));i.push(e)}return i}getRichTextValue(){let e=this.getCellData();return e!=null&&e.p?new g(e.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(e=>e!=null&&e.p?new g(e.p):null))}getValueAndRichTextValue(){let e=this.getCellData();return e!=null&&e.p?new g(e.p):e==null?void 0:e.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(e=>e!=null&&e.p?new g(e.p):e==null?void 0:e.v))}getFormula(){var e;return(e=this._formulaDataModel.getFormulaStringByCell(this._range.startRow,this._range.startColumn,this._worksheet.getSheetId(),this._workbook.getUnitId()))==null?``:e}getFormulas(){let e=[],{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._range,a=this._worksheet.getSheetId(),o=this._workbook.getUnitId();for(let s=t;s<=n;s++){let t=[];for(let e=r;e<=i;e++){let n=this._formulaDataModel.getFormulaStringByCell(s,e,a,o);t.push(n||``)}e.push(t)}return e}getWrap(){return this._worksheet.getRange(this._range).getWrap()===e.TRUE}getWraps(){let e=this.getCellDatas(),t=this._workbook.getStyles();return e.map(e=>e.map(e=>{var n;return((n=t.getStyleByCell(e))==null?void 0:n.tb)===oe.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){return nr(this._worksheet.getRange(this._range).getHorizontalAlignment())}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(e=>nr(e)))}getVerticalAlignment(){return ir(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(e=>ir(e)))}setCustomMetaData(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:{custom:e}};return this._commandService.syncExecuteCommand(ot.id,t),this}setCustomMetaDatas(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:e.map(e=>e.map(e=>({custom:e})))};return this._commandService.syncExecuteCommand(ot.id,t),this}getCustomMetaData(){var e;let t=this.getCellData();return(e=t==null?void 0:t.custom)==null?null:e}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(e=>{var t;return(t=e==null?void 0:e.custom)==null?null:t}))}setBorder(e,t,n){return this._commandService.syncExecuteCommand(Qe.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:e,style:t,color:n}}),this}getBackground(){var e,t;let r=this.getCellStyle();return(e=r==null||(t=r.background)==null?void 0:t.rgb)==null?n.bg.rgb:e}getBackgrounds(){return this.getCellStyles().map(e=>e.map(e=>{var t,r;return(t=e==null||(r=e.background)==null?void 0:r.rgb)==null?n.bg.rgb:t}))}setBackgroundColor(e){return this._commandService.syncExecuteCommand(T.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:`bg`,value:{rgb:e}}}),this}setBackground(e){return this.setBackgroundColor(e),this}setTextRotation(e){return this._commandService.syncExecuteCommand(_t.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValue(e){let t=ce(e);if(!t)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(w.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t}),this}setValueForCell(e){let t=ce(e);if(!t)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(w.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:t}),this}setRichTextValueForCell(e){let t=e instanceof g?e.getData():e,n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:{p:t}};return this._commandService.syncExecuteCommand(w.id,n),this}setRichTextValues(e){let t=le(e.map(e=>e.map(e=>e&&{p:e instanceof g?e.getData():e})),this._range),n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t};return this._commandService.syncExecuteCommand(w.id,n),this}setWrap(e){return this._commandService.syncExecuteCommand(vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e?oe.WRAP:oe.UNSPECIFIED}),this}setWrapStrategy(e){return this._commandService.syncExecuteCommand(vt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setVerticalAlignment(e){return this._commandService.syncExecuteCommand(yt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:rr(e)}),this}setHorizontalAlignment(e){return this._commandService.syncExecuteCommand(at.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:tr(e)}),this}setValues(e){let t=le(e,this._range);return this._commandService.syncExecuteCommand(w.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t}),this}setFontWeight(t){let n;if(t===`bold`)n=e.TRUE;else if(t===`normal`)n=e.FALSE;else if(t===null)n=null;else throw Error(`Invalid fontWeight`);let r={type:`bl`,value:n},i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:r};return this._commandService.syncExecuteCommand(T.id,i),this}setFontStyle(t){let n;if(t===`italic`)n=e.TRUE;else if(t===`normal`)n=e.FALSE;else if(t===null)n=null;else throw Error(`Invalid fontStyle`);let r={type:`it`,value:n},i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:r};return this._commandService.syncExecuteCommand(T.id,i),this}setFontLine(t){if(t===`underline`)this._setFontUnderline({s:e.TRUE});else if(t===`line-through`)this._setFontStrikethrough({s:e.TRUE});else if(t===`none`)this._setFontUnderline({s:e.FALSE}),this._setFontStrikethrough({s:e.FALSE});else if(t===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw Error(`Invalid fontLine`);return this}_setFontUnderline(e){let t={type:`ul`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};this._commandService.syncExecuteCommand(T.id,n)}_setFontStrikethrough(e){let t={type:`st`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};this._commandService.syncExecuteCommand(T.id,n)}setFontFamily(e){let t={type:`ff`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(T.id,n),this}setFontSize(e){let t={type:`fs`,value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(T.id,n),this}setFontColor(e){let t={type:`cl`,value:e===null?null:{rgb:e}},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(T.id,n),this}merge(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return In(this._injector,t,n,[this._range],e),this}mergeAcross(e){let t=Ln([this._range],r.ROWS),n=this._workbook.getUnitId(),i=this._worksheet.getSheetId();return In(this._injector,n,i,t,e),this}mergeVertically(e){let t=Ln([this._range],r.COLUMNS),n=this._workbook.getUnitId(),i=this._worksheet.getSheetId();return In(this._injector,n,i,t,e),this}isPartOfMerge(){let{startRow:e,startColumn:t,endRow:n,endColumn:r}=this._range;return this._worksheet.getMergedCellRange(e,t,n,r).length>0}breakApart(){return this._commandService.syncExecuteCommand(Ze.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}forEach(e){let{startColumn:t,startRow:n,endColumn:r,endRow:i}=this._range;this._worksheet.getMatrixWithMergedCells(n,t,i,r).forValue((t,n,r)=>{e(t,n,r)})}getA1Notation(e,t,n){let r={...this._range,startAbsoluteRefType:t,endAbsoluteRefType:n};return e?Kn(this._worksheet.getName(),r):Gn(r)}activate(){return this._injector.createInstance($,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){let e=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(e&&h.equals(e,this._range)||!e&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){let e=this._injector.createInstance($,this._workbook).getActiveRange();if(!e||e.getUnitId()!==this.getUnitId()||e.getSheetId()!==this.getSheetId())return this.activate();if(h.contains(e.getRange(),this._range)){let t={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:e.getRange(),primary:A(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(ft.id,t),this}return this.activate()}else throw Error(`The range is not a single cell`)}splitTextToColumns(e,t,n){this._commandService.syncExecuteCommand(Bt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:t,customDelimiter:n,treatMultipleDelimitersAsOne:e})}useThemeStyle(e){if(e==null){let e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(kt.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}removeThemeStyle(e){this._commandService.syncExecuteCommand(Ne.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}getUsedThemeStyle(){return this._injector.get(Pt).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}clear(e){return e&&e.contentsOnly&&!e.formatOnly?this.clearContent():e&&e.formatOnly&&!e.contentsOnly?this.clearFormat():(this._commandService.syncExecuteCommand(Te.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:e}),this)}clearContent(){return this._commandService.syncExecuteCommand(Ee.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(De.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(e){e===r.ROWS?this._commandService.executeCommand(Fe.id,{range:this._range}):this._commandService.executeCommand(Ie.id,{range:this._range})}deleteCells(e){e===r.ROWS?this._commandService.executeCommand(Ae.id,{range:this._range}):this._commandService.executeCommand(ke.id,{range:this._range})}getDataRegion(e){let{startRow:t,startColumn:n,endRow:i,endColumn:a}=this._range,o=this._worksheet.getMaxRows(),s=this._worksheet.getMaxColumns(),c=this._worksheet.getCellMatrix(),l=t,u=n,d=i,f=a;if(e!==r.COLUMNS){let e=!1,r=!1;for(let s=n;s<=a&&(t>0&&!y(c.getValue(t-1,s))&&(e=!0),i<o-1&&!y(c.getValue(i+1,s))&&(r=!0),!(e&&r));s++);e&&(l=t-1),r&&(d=i+1)}if(e!==r.ROWS){let e=!1,r=!1;for(let o=t;o<=i&&(n>0&&!y(c.getValue(o,n-1))&&(e=!0),a<s-1&&!y(c.getValue(o,a+1))&&(r=!0),!(e&&r));o++);e&&(u=n-1),r&&(f=a+1)}return this._injector.createInstance(lr,this._workbook,this._worksheet,{startRow:l,startColumn:u,endRow:d,endColumn:f})}isBlank(){let e=this._worksheet.getCellMatrix(),{startRow:t,startColumn:n,endRow:r,endColumn:i}=this._range,a=!0;for(let o=t;o<=r;o++){for(let t=n;t<=i;t++)if(!y(e.getValue(o,t))){a=!1;break}if(!a)break}return a}offset(e,t,n,r){let{startRow:i,startColumn:a,endRow:o,endColumn:s}=this._range,c=i+e,l=a+t,u=n?c+n-1:o+e,d=r?l+r-1:s+t;if(c<0||l<0||u<0||d<0)throw Error(`The row or column index is out of range`);return this._injector.createInstance(lr,this._workbook,this._worksheet,{startRow:c,startColumn:l,endRow:u,endColumn:d})}setFormula(e){return this.setValue({f:e})}setFormulas(e){return this.setValues(e.map(e=>e.map(e=>({f:e}))))}getRangePermission(){let e=this._injector.createInstance(Z,this._injector.createInstance($,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(cr,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,e)}autoFill(e,t){let n=this.getRange(),r=e.getRange();if(!h.contains(r,n))throw Error(`AutoFill target range must contain source range`);let{startRow:i,startColumn:a,endRow:o,endColumn:s}=n,{startRow:c,startColumn:l,endRow:u,endColumn:d}=r;if(o-i!==u-c&&s-a!==d-l||o-i===u-c&&a!==l&&s!==d||s-a===d-l&&i!==c&&o!==u)throw Error(`AutoFill can only fill in one direction`);return this._commandService.executeCommand(Se.id,{sourceRange:n,targetRange:r,unitId:this.getUnitId(),subUnitId:this.getSheetId(),applyType:t})}};ur=Q,ur._enableManualInit(),Q=lr=z([R(3,f(p)),R(4,s),R(5,f(Hn))],Q);let dr=class{constructor(e,t,n,r){this._unitId=e,this._injector=t,this._permissionService=n,this._authzIoService=r,L(this,`_permissionSubject`,void 0),L(this,`_collaboratorChangeSubject`,new Jn),L(this,`permission$`,void 0),L(this,`pointChange$`,void 0),L(this,`collaboratorChange$`,void 0),L(this,`_subscriptions`,[]),L(this,`_fPermission`,void 0),this._fPermission=this._injector.createInstance(K),this._permissionSubject=new j(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe(F({bufferSize:1,refCount:!0}))}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe(M((e,t)=>JSON.stringify(e)===JSON.stringify(t)),F({bufferSize:1,refCount:!0}))}_createPointChangeStream(){let e=new Map;for(let t in U){let n=U[t];e.set(n,this.getPoint(n))}return this._permissionService.permissionPointUpdate$.pipe(N(e=>e.id.includes(this._unitId)),P(t=>{let n=this._extractWorkbookPointType(t.id);if(!n)return null;let r=!!t.value,i=e.get(n);return e.set(n,r),i===r?null:{point:n,value:r,oldValue:i}}),N(e=>e!==null),F({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(e){for(let t in U){let n=U[t],r=Y[n];if(r&&new r(this._unitId).id===e)return n}return null}_buildSnapshot(){let e={};for(let t in U){let n=U[t];e[n]=this.getPoint(n)}return e}async setMode(e){let t=this._getModePermissions(e);await this._batchSetPermissionPoints(t)}_getModePermissions(e){let t={};switch(Object.values(U).forEach(e=>{t[e]=!1}),e){case`owner`:Object.values(U).forEach(e=>{t[e]=!0});break;case`editor`:t[U.Edit]=!0,t[U.View]=!0,t[U.Print]=!0,t[U.Export]=!0,t[U.CopyContent]=!0,t[U.Comment]=!0,t[U.CreateSheet]=!0,t[U.DeleteSheet]=!0,t[U.RenameSheet]=!0,t[U.MoveSheet]=!0,t[U.HideSheet]=!0,t[U.InsertRow]=!0,t[U.InsertColumn]=!0,t[U.DeleteRow]=!0,t[U.DeleteColumn]=!0,t[U.CopySheet]=!0,t[U.CreateProtection]=!0;break;case`viewer`:t[U.View]=!0,t[U.Print]=!0;break;case`commenter`:t[U.View]=!0,t[U.Comment]=!0,t[U.Print]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=Y[e];if(!i)throw Error(`Unknown workbook permission point: ${e}`);let a=this.getPoint(e);a!==r&&(this._fPermission.setWorkbookPermissionPoint(this._unitId,i,r),t.push({point:e,value:r,oldValue:a}))}if(t.length>0){let e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode(`viewer`)}async setEditable(){await this.setMode(`editor`)}canEdit(){return this.getPoint(U.Edit)}async setPoint(e,t){let n=Y[e];if(!n)throw Error(`Unknown workbook permission point: ${e}`);if(this.getPoint(e)===t)return;this._fPermission.setWorkbookPermissionPoint(this._unitId,n,t);let r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(e){var t;let n=Y[e];if(!n)throw Error(`Unknown workbook permission point: ${e}`);let r=new n(this._unitId),i=this._permissionService.getPermissionPoint(r.id);return(t=i==null?void 0:i.value)==null?!0:t}getSnapshot(){return this._buildSnapshot()}async setCollaborators(e){let t=e.map(e=>({id:e.user.userID,subject:e.user,role:e.role}));await this._authzIoService.putCollaborators({objectID:this._unitId,unitID:this._unitId,collaborators:t}),e.forEach(e=>{this._collaboratorChangeSubject.next({type:`add`,collaborator:{user:{id:e.user.userID},role:e.role}})})}async addCollaborator(e,t){await this._authzIoService.createCollaborator({objectID:this._unitId,unitID:this._unitId,collaborators:[{id:e.userID,subject:e,role:t}]}),this._collaboratorChangeSubject.next({type:`add`,collaborator:{user:{id:e.userID},role:t}})}async updateCollaborator(e,t){await this._authzIoService.updateCollaborator({objectID:this._unitId,unitID:this._unitId,collaborator:{id:e.userID,subject:e,role:t}}),this._collaboratorChangeSubject.next({type:`update`,collaborator:{user:{id:e.userID},role:t}})}async removeCollaborator(e){await this._authzIoService.deleteCollaborator({objectID:this._unitId,unitID:this._unitId,collaboratorID:e}),this._collaboratorChangeSubject.next({type:`delete`,collaborator:{user:{id:e},role:H.Reader}})}async removeCollaborators(e){for(let t of e)await this.removeCollaborator(t)}async listCollaborators(){return(await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId})).map(e=>{var t,n;return{user:{id:((t=e.subject)==null?void 0:t.userID)||e.id,displayName:((n=e.subject)==null?void 0:n.name)||``},role:e.role}})}subscribe(e){let t=this.permission$.subscribe(e);return()=>t.unsubscribe()}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete(),this._collaboratorChangeSubject.complete()}};dr=z([R(1,f(p)),R(2,l),R(3,o)],dr);let $=class extends he{constructor(e,t,n,r,i,a,o,s,c,l){super(t),this._workbook=e,this._injector=t,this._resourceLoaderService=n,this._selectionManagerService=r,this._univerInstanceService=i,this._commandService=a,this._permissionService=o,this._logService=s,this._localeService=c,this._definedNamesService=l,L(this,`id`,void 0),this.id=this._workbook.getUnitId()}getWorkbook(){return this._workbook}dispose(){super.dispose(),this._workbook=null}getId(){return this.id}getName(){return this._workbook.name}setName(e){return this._commandService.syncExecuteCommand(bt.id,{unitId:this._workbook.getUnitId(),name:e}),this}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn(`use 'save' instead of 'getSnapshot'`),this.save()}getActiveSheet(){let e=this._workbook.getActiveSheet();return this._injector.createInstance(Z,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(Z,this,this._workbook,e))}create(e,t,n,r){var i,a,o;let s=fe(ie.deepClone((i=r==null?void 0:r.sheet)==null?{}:i));s.name=this._workbook.uniqueSheetName(e),s.rowCount=t,s.columnCount=n,s.id=r==null||(a=r.sheet)==null?void 0:a.id;let c=(o=r==null?void 0:r.index)==null?this._workbook.getSheets().length:o;this._commandService.syncExecuteCommand(x.id,{unitId:this.id,index:c,sheet:s}),this._commandService.syncExecuteCommand(E.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[c].getSheetId()});let l=this._workbook.getActiveSheet();if(!l)throw Error(`No active sheet found`);return this._injector.createInstance(Z,this,this._workbook,l)}getSheetBySheetId(e){let t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(Z,this,this._workbook,t):null}getSheetByName(e){let t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(Z,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(E.id,{unitId:this.id,subUnitId:typeof e==`string`?e:e.getSheetId()}),typeof e==`string`?this.getSheetBySheetId(e):e}insertSheet(e,t){var n,r,i;let a=fe(ie.deepClone((n=t==null?void 0:t.sheet)==null?{}:n));a.name=this._workbook.uniqueSheetName(e),a.id=t==null||(r=t.sheet)==null?void 0:r.id;let o=(i=t==null?void 0:t.index)==null?this._workbook.getSheets().length:i;this._commandService.syncExecuteCommand(x.id,{unitId:this.id,index:o,sheet:a}),this._commandService.syncExecuteCommand(E.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[o].getSheetId()});let s=this._workbook.getActiveSheet();if(!s)throw Error(`No active sheet found`);return this._injector.createInstance(Z,this,this._workbook,s)}deleteSheet(e){let t=this.id,n=typeof e==`string`?e:e.getSheetId();return this._commandService.syncExecuteCommand(Xe.id,{unitId:t,subUnitId:n})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(ae.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(ne.id),this}onBeforeCommandExecute(e){return this._commandService.beforeCommandExecuted(t=>{var n;((n=t.params)==null?void 0:n.unitId)===this.id&&e(t)})}onCommandExecuted(e){return this._commandService.onCommandExecuted(t=>{var n;((n=t.params)==null?void 0:n.unitId)===this.id&&e(t)})}onSelectionChange(e){return pe(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{this._univerInstanceService.getCurrentUnitForType(_.UNIVER_SHEET).getUnitId()===this.id&&(t!=null&&t.length?e(t.map(e=>e.range)):e([]))}))}setEditable(e){let t=new Qt(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(t.id)||this._permissionService.addPermissionPoint(t),this._permissionService.updatePermissionPoint(t.id,e),this}setActiveRange(e){let t=this.getActiveSheet(),n=e.getRange().sheetId||t.getSheetId(),r=n?this._workbook.getSheetBySheetId(n):this._workbook.getActiveSheet(!0);if(!r)throw Error(`No active sheet found`);r.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(Z,this,this._workbook,r));let i={unitId:this.getId(),subUnitId:n,selections:[e].map(e=>({range:e.getRange(),primary:A(e.getRange(),r),style:null}))};return this._commandService.syncExecuteCommand(ft.id,i),this}getActiveRange(){let e=this._workbook.getActiveSheet(),t=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);return t?this._injector.createInstance(Q,this._workbook,e,t.range):null}getActiveCell(){let e=this._workbook.getActiveSheet(),t=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);if(!t)return null;let n={...t.primary,rangeType:m.NORMAL};return this._injector.createInstance(Q,this._workbook,e,n)}deleteActiveSheet(){let e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(Oe.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(Z,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){let e=this.getActiveSheet();return this.duplicateSheet(e)}getNumSheets(){return this._workbook.getSheets().length}getLocale(){return this._localeService.getCurrentLocale()}setLocale(e){this._localeService.setLocale(e)}setSpreadsheetLocale(e){return this._localeService.setLocale(e),this}getUrl(){return location.href}moveSheet(e,t){let n=t;return n<0?n=0:n>this._workbook.getSheets().length-1&&(n=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(Et.id,{unitId:e.getWorkbook().getUnitId(),order:n,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){let t=this.getActiveSheet();return this.moveSheet(t,e)}getPermission(){return this._injector.createInstance(K)}getWorkbookPermission(){return this._injector.createInstance(dr,this._workbook.getUnitId())}getDefinedName(e){let t=this._definedNamesService.getValueByName(this.id,e);return t?this._injector.createInstance(V,{...t,unitId:this.id}):null}getDefinedNames(){let e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(e=>this._injector.createInstance(V,{...e,unitId:this.id})):[]}insertDefinedName(e,t){let n=this._injector.createInstance(B).setName(e).setRef(t).build();return n.localSheetId=C,this.insertDefinedNameBuilder(n),this}deleteDefinedName(e){let t=this.getDefinedName(e);return t?(t.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(nt.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(nt.id,e)}getRegisteredRangeThemes(){return this._injector.get(Pt).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(Ke.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(Ht.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new Ge(e,t)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}addStyles(e){this._workbook.addStyles(e)}removeStyles(e){this._workbook.removeStyles(e)}};$=z([R(1,f(p)),R(2,f(u)),R(3,f(Rt)),R(4,d),R(5,s),R(6,l),R(7,c),R(8,f(ee)),R(9,Un)],$);var fr=class extends ve{getCommandSheetTarget(e){var t;let n=e.params;if(!n)return this.getActiveSheet();let r=n.unitId?this.getUniverSheet(n.unitId):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!r)return;let i=r.getSheetBySheetId(n.subUnitId||n.sheetId)||r.getActiveSheet();if(i)return{workbook:r,worksheet:i}}getSheetTarget(e,t){let n=this.getUniverSheet(e);if(!n)return;let r=n.getSheetBySheetId(t);if(r)return{workbook:n,worksheet:r}}_initWorkbookEvent(e){let t=e.get(d);this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookDisposed,()=>t.unitDisposed$.subscribe(e=>{if(e.type===_.UNIVER_SHEET){let t={unitId:e.getUnitId(),unitType:e.type,snapshot:e.getSnapshot()};this.fireEvent(this.Event.WorkbookDisposed,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookCreated,()=>t.unitAdded$.subscribe(t=>{if(t.type===_.UNIVER_SHEET){let n=t,r=e.createInstance($,n),i={unitId:t.getUnitId(),type:t.type,workbook:r,unit:r};this.fireEvent(this.Event.WorkbookCreated,i)}})))}_initialize(e){let n=e.get(d),r=e.get(s);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetCreate,()=>r.beforeCommandExecuted(e=>{if(e.id===x.id){var n;let{unitId:r,index:i,sheet:a}=e.params||{},o=r?this.getUniverSheet(r):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!o)return;let s={workbook:o,index:i,sheet:a};if(this.fireEvent(this.Event.BeforeSheetCreate,s),s.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>r.beforeCommandExecuted(e=>{if(e.id===E.id){var n;let{subUnitId:r,unitId:i}=e.params,a=i?this.getUniverSheet(i):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!a||!r)return;let o=a.getSheetBySheetId(r),s=a.getActiveSheet();if(!o||!s)return;let c={workbook:a,activeSheet:o,oldActiveSheet:s};if(this.fireEvent(this.Event.BeforeActiveSheetChange,c),c.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetDelete,()=>r.beforeCommandExecuted(e=>{if(e.id===Xe.id){let n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,a={workbook:r,worksheet:i};if(this.fireEvent(this.Event.BeforeSheetDelete,a),a.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetMove,()=>r.beforeCommandExecuted(e=>{if(e.id===Dt.id){let{fromOrder:n,toOrder:r}=e.params,i=this.getCommandSheetTarget(e);if(!i)return;let a={workbook:i.workbook,worksheet:i.worksheet,newIndex:r,oldIndex:n};if(this.fireEvent(this.Event.BeforeSheetMove,a),a.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>r.beforeCommandExecuted(e=>{if(e.id===Tt.id){let{name:n}=e.params,r=this.getCommandSheetTarget(e);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,newName:n,oldName:r.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>r.beforeCommandExecuted(e=>{if(e.id===gt.id){let{color:n}=e.params,r=this.getCommandSheetTarget(e);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,newColor:n,oldColor:r.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>r.beforeCommandExecuted(e=>{if(e.id===wt.id){let{hidden:n}=e.params,r=this.getCommandSheetTarget(e);if(!r)return;let i={workbook:r.workbook,worksheet:r.worksheet,hidden:!!n};if(this.fireEvent(this.Event.BeforeSheetHideChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>r.beforeCommandExecuted(e=>{if(e.id===it.id){var n;let r=this.getCommandSheetTarget(e);if(!r)return;let i={...r,color:(n=e.params)==null?void 0:n.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,i),i.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>r.beforeCommandExecuted(e=>{if(e.id===Vt.id){var n,r;let i=this.getCommandSheetTarget(e);if(!i)return;let a=(n=(r=e.params)==null?void 0:r.showGridlines)==null?!i.worksheet.hasHiddenGridLines():n,o={...i,enabled:!!a};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,o),o.cancel)throw new t}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetValueChanged,()=>r.onCommandExecuted(e=>{if(Ce.indexOf(e.id)>-1){if(!this.getActiveSheet())return;let t=Vn(n,e).map(e=>{var t;return(t=this.getWorkbook(e.unitId))==null||(t=t.getSheetBySheetId(e.subUnitId))==null?void 0:t.getRange(e.range)}).filter(Boolean);if(!t.length)return;let r={payload:e,effectedRanges:t};this.fireEvent(this.Event.SheetValueChanged,r)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetCreated,()=>r.onCommandExecuted(e=>{if(e.id===x.id){var t;let{unitId:n}=e.params||{},r=n?this.getUniverSheet(n):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!r)return;let i=r.getActiveSheet();if(!i)return;let a={workbook:r,worksheet:i};this.fireEvent(this.Event.SheetCreated,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ActiveSheetChanged,()=>r.onCommandExecuted(e=>{if(e.id===E.id){let e=this.getActiveSheet();if(!e)return;let{workbook:t,worksheet:n}=e,r={workbook:t,activeSheet:n};this.fireEvent(this.Event.ActiveSheetChanged,r)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetDeleted,()=>r.onCommandExecuted(e=>{if(e.id===Xe.id){var t;let{subUnitId:n,unitId:r}=e.params,i=r?this.getUniverSheet(r):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!i||!n)return;let a={workbook:i,sheetId:n};this.fireEvent(this.Event.SheetDeleted,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetMoved,()=>r.onCommandExecuted(e=>{if(e.id===Dt.id){let{toOrder:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,a={workbook:r,worksheet:i,newIndex:t};this.fireEvent(this.Event.SheetMoved,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetNameChanged,()=>r.onCommandExecuted(e=>{if(e.id===Tt.id){let{name:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,a={workbook:r,worksheet:i,newName:t};this.fireEvent(this.Event.SheetNameChanged,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetTabColorChanged,()=>r.onCommandExecuted(e=>{if(e.id===gt.id){let{color:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,a={workbook:r,worksheet:i,newColor:t};this.fireEvent(this.Event.SheetTabColorChanged,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetHideChanged,()=>r.onCommandExecuted(e=>{if(e.id===wt.id){let{hidden:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,a={workbook:r,worksheet:i,hidden:!!t};this.fireEvent(this.Event.SheetHideChanged,a)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.GridlineChanged,()=>r.onCommandExecuted(e=>{if(e.id===it.id||e.id===Vt.id){let t=this.getCommandSheetTarget(e);if(!t)return;let n={...t,enabled:!t.worksheet.hasHiddenGridLines(),color:t.worksheet.getGridLinesColor()};this.fireEvent(this.Event.GridlineChanged,n)}}))),this._initWorkbookEvent(e)}createUniverSheet(e,t){let n=this._injector.get(d).createUnit(_.UNIVER_SHEET,e,t);return this._injector.createInstance($,n)}createWorkbook(e,t){return this.createUniverSheet(e,t)}getActiveWorkbook(){let e=this._univerInstanceService.getCurrentUnitForType(_.UNIVER_SHEET);return e?this._injector.createInstance($,e):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(e){let t=this._univerInstanceService.getUnit(e,_.UNIVER_SHEET);return t?this._injector.createInstance($,t):null}getWorkbook(e){return this.getUniverSheet(e)}getPermission(){return this._injector.createInstance(K)}onUniverSheetCreated(e){return pe(this._univerInstanceService.getTypeOfUnitAdded$(_.UNIVER_SHEET).subscribe(t=>{e(this._injector.createInstance($,t))}))}newDefinedName(){return this._injector.createInstance(B)}getActiveSheet(){let e=this.getActiveWorkbook();if(!e)return null;let t=e.getActiveSheet();return t?{workbook:e,worksheet:t}:null}setFreezeSync(e){this._injector.get(Lt).setEnabled(e)}};ve.extend(fr);var pr=class extends ge{get SheetValueChangeType(){return It}get SheetSkeletonChangeType(){return Ft}get SplitDelimiterType(){return zt}get UnitRole(){return H}get WorkbookPermissionPoint(){return U}get WorksheetPermissionPoint(){return W}get RangePermissionPoint(){return G}};ge.extend(pr);var mr=class extends _e{get SheetCreated(){return`SheetCreated`}get BeforeSheetCreate(){return`BeforeSheetCreate`}get WorkbookCreated(){return`WorkbookCreated`}get WorkbookDisposed(){return`WorkbookDisposed`}get GridlineChanged(){return`GridlineChanged`}get BeforeGridlineEnableChange(){return`BeforeGridlineEnableChange`}get BeforeGridlineColorChange(){return`BeforeGridlineColorChange`}get BeforeActiveSheetChange(){return`BeforeActiveSheetChange`}get ActiveSheetChanged(){return`ActiveSheetChanged`}get SheetDeleted(){return`SheetDeleted`}get BeforeSheetDelete(){return`BeforeSheetDelete`}get SheetMoved(){return`SheetMoved`}get BeforeSheetMove(){return`BeforeSheetMove`}get SheetNameChanged(){return`SheetNameChanged`}get BeforeSheetNameChange(){return`BeforeSheetNameChange`}get SheetTabColorChanged(){return`SheetTabColorChanged`}get BeforeSheetTabColorChange(){return`BeforeSheetTabColorChange`}get SheetHideChanged(){return`SheetHideChanged`}get BeforeSheetHideChange(){return`BeforeSheetHideChange`}get SheetValueChanged(){return`SheetValueChanged`}};_e.extend(mr);let hr=class extends me{constructor(e){super(),this._injector=e}};hr=z([R(0,f(p))],hr);export{K as FPermission,Q as FRange,q as FSelection,hr as FSheetHooks,pr as FSheetsEnumMixin,mr as FSheetsEventNameMixin,$ as FWorkbook,Z as FWorksheet};
|