@univerjs/sheets 0.14.0 → 0.15.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 +825 -741
- package/lib/es/index.js +654 -649
- package/lib/facade.js +825 -741
- package/lib/index.js +654 -649
- package/lib/types/services/selections/selection-data-model.d.ts +2 -0
- package/lib/types/services/selections/selection.service.d.ts +1 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +10 -10
package/lib/cjs/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var ne=Object.defineProperty;var re=(s,n,e)=>n in s?ne(s,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[n]=e;var S=(s,n,e)=>re(s,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("@univerjs/core"),v=require("@univerjs/core/facade"),o=require("@univerjs/sheets"),P=require("@univerjs/engine-formula"),j=require("rxjs"),C=require("rxjs/operators");var se=Object.getOwnPropertyDescriptor,ie=(s,n,e,t)=>{for(var r=t>1?void 0:t?se(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},R=(s,n)=>(e,t)=>n(e,t,s);function oe(s,n,e){const t=e.getDefinedNameMap(s);if(t==null)return n.t("definedName.defaultName")+1;const i=Array.from(Object.values(t)).length+1,a=n.t("definedName.defaultName")+i;if(e.getValueByName(s,a)==null)return a;let c=i+1;for(;;){const d=n.t("definedName.defaultName")+c;if(e.getValueByName(s,d)==null)return d;c++}}class F{constructor(){S(this,"_definedNameParam");this._definedNameParam={id:h.generateRandomId(10),unitId:"",name:"",formulaOrRefString:"",localSheetId:o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}}setName(n){return this._definedNameParam.name=n,this}setFormula(n){return this._definedNameParam.formulaOrRefString=`=${n}`,this}setRef(n){return this._definedNameParam.formulaOrRefString=n,this}setRefByRange(n,e,t,r){return this._definedNameParam.formulaOrRefString=P.serializeRange({startRow:n,endRow:n+(t!=null?t:1)-1,startColumn:e,endColumn:e+(r!=null?r:1)-1}),this}setComment(n){return this._definedNameParam.comment=n,this}setScopeToWorksheet(n){return this._definedNameParam.localSheetId=n.getSheetId(),this}setScopeToWorkbook(){return this._definedNameParam.localSheetId=o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this}setHidden(n){return this._definedNameParam.hidden=n,this}build(){return this._definedNameParam}load(n){return this._definedNameParam=n,this}}let A=class extends v.FBase{constructor(s,n,e,t,r,i,a,c,d,u){super(),this._definedNameParam=s,this._injector=n,this._commandService=e,this._permissionService=t,this._worksheetProtectionRuleModel=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointRuleModel=a,this._authzIoService=c,this._localeService=d,this._definedNamesService=u}_apply(){this._definedNameParam.name===""&&(this._definedNameParam.name=oe(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(o.SetDefinedNameCommand.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(s){this._definedNameParam.name=s,this._apply()}setFormula(s){this._definedNameParam.formulaOrRefString=`=${s}`,this._apply()}setRef(s){this._definedNameParam.formulaOrRefString=s,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(s,n,e,t){this._definedNameParam.formulaOrRefString=P.serializeRange({startRow:s,endRow:s+(e!=null?e:1)-1,startColumn:n,endColumn:n+(t!=null?t:1)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(s){this._definedNameParam.comment=s,this._apply()}setScopeToWorksheet(s){this._definedNameParam.localSheetId=s.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(s){this._definedNameParam.hidden=s,this._apply()}delete(){this._commandService.syncExecuteCommand(o.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){const s=this._injector.createInstance(F);return s.load(this._definedNameParam),s}};A=ie([R(1,h.Inject(h.Injector)),R(2,h.ICommandService),R(3,h.IPermissionService),R(4,h.Inject(o.WorksheetProtectionRuleModel)),R(5,h.Inject(o.RangeProtectionRuleModel)),R(6,h.Inject(o.WorksheetProtectionPointModel)),R(7,h.Inject(h.IAuthzIoService)),R(8,h.Inject(h.LocaleService)),R(9,P.IDefinedNamesService)],A);var N=(s=>(s[s.Reader=0]="Reader",s[s.Editor=1]="Editor",s[s.Owner=2]="Owner",s))(N||{}),m=(s=>(s.Edit="WorkbookEdit",s.View="WorkbookView",s.Print="WorkbookPrint",s.Export="WorkbookExport",s.Share="WorkbookShare",s.CopyContent="WorkbookCopy",s.DuplicateFile="WorkbookDuplicate",s.Comment="WorkbookComment",s.ManageCollaborator="WorkbookManageCollaborator",s.CreateSheet="WorkbookCreateSheet",s.DeleteSheet="WorkbookDeleteSheet",s.RenameSheet="WorkbookRenameSheet",s.MoveSheet="WorkbookMoveSheet",s.HideSheet="WorkbookHideSheet",s.ViewHistory="WorkbookViewHistory",s.ManageHistory="WorkbookHistory",s.RecoverHistory="WorkbookRecoverHistory",s.CreateProtection="WorkbookCreateProtect",s.InsertRow="WorkbookInsertRow",s.InsertColumn="WorkbookInsertColumn",s.DeleteRow="WorkbookDeleteRow",s.DeleteColumn="WorkbookDeleteColumn",s.CopySheet="WorkbookCopySheet",s))(m||{}),_=(s=>(s.Edit="WorksheetEdit",s.View="WorksheetView",s.Copy="WorksheetCopy",s.SetCellValue="WorksheetSetCellValue",s.SetCellStyle="WorksheetSetCellStyle",s.SetRowStyle="WorksheetSetRowStyle",s.SetColumnStyle="WorksheetSetColumnStyle",s.InsertRow="WorksheetInsertRow",s.InsertColumn="WorksheetInsertColumn",s.DeleteRow="WorksheetDeleteRow",s.DeleteColumn="WorksheetDeleteColumn",s.Sort="WorksheetSort",s.Filter="WorksheetFilter",s.PivotTable="WorksheetPivotTable",s.InsertHyperlink="WorksheetInsertHyperlink",s.EditExtraObject="WorksheetEditExtraObject",s.ManageCollaborator="WorksheetManageCollaborator",s.DeleteProtection="WorksheetDeleteProtection",s.SelectProtectedCells="WorksheetSelectProtectedCells",s.SelectUnProtectedCells="WorksheetSelectUnProtectedCells",s))(_||{}),k=(s=>(s.Edit="RangeEdit",s.View="RangeView",s.ManageCollaborator="RangeManageCollaborator",s.Delete="RangeDeleteProtection",s))(k||{}),ae=Object.getOwnPropertyDescriptor,he=(s,n,e,t)=>{for(var r=t>1?void 0:t?ae(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},y=(s,n)=>(e,t)=>n(e,t,s);exports.FPermission=class extends v.FBase{constructor(e,t,r,i,a,c,d,u){super();S(this,"permissionPointsDefinition",o.PermissionPointsDefinitions);S(this,"rangeRuleChangedAfterAuth$");S(this,"sheetRuleChangedAfterAuth$");S(this,"unitPermissionInitStateChange$");this._injector=e,this._commandService=t,this._permissionService=r,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=c,this._workbookPermissionService=d,this._authzIoService=u,this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$,this.unitPermissionInitStateChange$=this._workbookPermissionService.unitPermissionInitStateChange$}setWorkbookPermissionPoint(e,t,r){const i=new t(e);this._permissionService.getPermissionPoint(i.id)||this._permissionService.addPermissionPoint(i),this._permissionService.updatePermissionPoint(i.id,r)}checkWorkbookPermissionPoint(e,t){const r=new t(e),i=this._permissionService.getPermissionPoint(r.id);if(i)return i.value}setWorkbookEditPermission(e,t){this.setWorkbookPermissionPoint(e,o.WorkbookEditablePermission,t)}async addWorksheetBasePermission(e,t,r){let i=[];r!=null&&r.allowedUsers&&(i=r.allowedUsers.map(d=>({id:d,role:N.Editor,subject:void 0})));const a=await this._authzIoService.create({objectType:o.UnitObject.Worksheet,worksheetObject:{collaborators:i,unitID:e,strategies:[],name:(r==null?void 0:r.name)||"",scope:void 0}});if(this._commandService.syncExecuteCommand(o.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:t,rule:{permissionId:a,unitType:o.UnitObject.Worksheet,unitId:e,subUnitId:t}}))return a}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(o.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:t}),[...o.getAllWorksheetPermissionPoint(),...o.getAllWorksheetPermissionPointByPointPanel()].forEach(r=>{const i=new r(e,t);this._permissionService.updatePermissionPoint(i.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,r,i){const a=this._worksheetProtectionRuleModel.getRule(e,t);let c;if(r===o.WorksheetEditPermission||r===o.WorksheetViewPermission)a?c=a.permissionId:c=await this.addWorksheetBasePermission(e,t);else{const g=this._worksheetProtectionPointRuleModel.getRule(e,t);g?c=g.permissionId:(c=await this._authzIoService.create({objectType:o.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:"",scope:void 0}}),this._commandService.syncExecuteCommand(o.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:c}}))}const u=new r(e,t);return this._permissionService.getPermissionPoint(u.id)||this._permissionService.addPermissionPoint(u),this._permissionService.updatePermissionPoint(u.id,i),c}checkWorksheetPermissionPoint(e,t,r){const i=new r(e,t),a=this._permissionService.getPermissionPoint(i.id);if(a)return a.value}async addRangeBaseProtection(e,t,r,i){var f,I;const a=await this._authzIoService.create({objectType:o.UnitObject.SelectRange,selectRangeObject:{collaborators:(I=(f=i==null?void 0:i.allowedUsers)==null?void 0:f.map(x=>({id:x,role:N.Editor,subject:void 0})))!=null?I:[],unitID:e,name:(i==null?void 0:i.name)||"",scope:void 0}}),c=`ruleId_${h.generateRandomId(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).some(x=>x.ranges.some(ee=>r.some(te=>h.Rectangle.intersects(te.getRange(),ee)))))throw new Error("range protection cannot intersect");const l=this._determineRangeViewState(i),g=this._determineRangeEditState(i),w={unitId:e,subUnitId:t,rules:[{permissionId:a,unitType:o.UnitObject.SelectRange,unitId:e,subUnitId:t,ranges:r.map(x=>x.getRange()),id:c,description:i==null?void 0:i.name,viewState:l,editState:g}]};if(this._commandService.syncExecuteCommand(o.AddRangeProtectionMutation.id,w))return{permissionId:a,ruleId:c}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?o.ViewStateEnum.NoOneElseCanView:o.ViewStateEnum.OthersCanView}_determineRangeEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&((t=e==null?void 0:e.allowedUsers)!=null&&t.length)?o.EditStateEnum.DesignedUserCanEdit:o.EditStateEnum.OnlyMe}removeRangeProtection(e,t,r){this._commandService.syncExecuteCommand(o.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleIds:r})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...o.getAllWorksheetPermissionPointByPointPanel()].forEach(c=>{const d=new c(e,t);this._permissionService.updatePermissionPoint(d.id,d.value)}))}setRangeProtectionPermissionPoint(e,t,r,i,a){const c=new i(e,t,r);this._permissionService.getPermissionPoint(c.id)||this._permissionService.addPermissionPoint(c),this._permissionService.updatePermissionPoint(c.id,a)}setRangeProtectionRanges(e,t,r,i){const a=this._rangeProtectionRuleModel.getRule(e,t,r);if(a){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).filter(u=>u.id!==r).some(u=>u.ranges.some(l=>i.some(g=>h.Rectangle.intersects(g.getRange(),l)))))throw new Error("range protection cannot intersect");this._commandService.syncExecuteCommand(o.SetRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleId:r,rule:{...a,ranges:i.map(u=>u.getRange())}})}}getPermissionInfoWithCell(e,t,r,i){const a=h.cellToRange(r,i),c=this._rangeProtectionRuleModel.getSubunitRuleList(e,t).find(d=>d.ranges.some(l=>h.Rectangle.intersects(a,l)));if(c)return{permissionId:c.permissionId,ruleId:c.id}}};exports.FPermission=he([y(0,h.Inject(h.Injector)),y(1,h.ICommandService),y(2,h.IPermissionService),y(3,h.Inject(o.WorksheetProtectionRuleModel)),y(4,h.Inject(o.RangeProtectionRuleModel)),y(5,h.Inject(o.WorksheetProtectionPointModel)),y(6,h.Inject(o.WorkbookPermissionService)),y(7,h.Inject(h.IAuthzIoService))],exports.FPermission);var ce=Object.getOwnPropertyDescriptor,de=(s,n,e,t)=>{for(var r=t>1?void 0:t?ce(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},ue=(s,n)=>(e,t)=>n(e,t,s);exports.FSelection=class{constructor(n,e,t,r){this._workbook=n,this._worksheet=e,this._selections=t,this._injector=r}getActiveRange(){const n=this._selections.find(e=>!!e.primary);return n?this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,n.range):null}getActiveRangeList(){return this._selections.map(n=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,n.range))}getCurrentCell(){const n=this._selections.find(e=>!!e.primary);return n?n.primary:null}getActiveSheet(){const n=this._injector.createInstance(exports.FWorkbook,this._workbook);return this._injector.createInstance(exports.FWorksheet,n,this._workbook,this._worksheet)}updatePrimaryCell(n){const e=this._injector.get(h.ICommandService);let t=[],r=!1;for(const{range:a,style:c}of this._selections)h.Rectangle.contains(a,n.getRange())?(t.push({range:a,primary:o.getPrimaryForRange(n.getRange(),this._worksheet),style:c}),r=!0):t.push({range:a,primary:null,style:c});r||(t=[{range:n.getRange(),primary:o.getPrimaryForRange(n.getRange(),this._worksheet)}]);const i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:t};return e.syncExecuteCommand(o.SetSelectionsOperation.id,i),new exports.FSelection(this._workbook,this._worksheet,t,this._injector)}getNextDataRange(n){if(!this._selections.find(r=>!!r.primary))return null;const t=o.getNextPrimaryCell(this._selections.concat(),n,this._worksheet);return t?this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,t):null}};exports.FSelection=de([ue(3,h.Inject(h.Injector))],exports.FSelection);var q=(s=>(s[s.Reader=0]="Reader",s[s.Editor=1]="Editor",s[s.Owner=2]="Owner",s[s.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(q||{}),le=Object.getOwnPropertyDescriptor,me=(s,n,e,t)=>{for(var r=t>1?void 0:t?le(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},B=(s,n)=>(e,t)=>n(e,t,s);let E=class{constructor(s,n,e,t,r,i,a,c,d){this._unitId=s,this._subUnitId=n,this._ruleId=e,this._permissionId=t,this._ranges=r,this._options=i,this._injector=a,this._commandService=c,this._rangeProtectionRuleModel=d}get id(){return this._ruleId}get ranges(){return this._ranges}get options(){return{...this._options}}async updateRanges(s){if(!s||s.length===0)throw new Error("Ranges cannot be empty");const n=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,this._ruleId);if(!n)throw new Error(`Rule ${this._ruleId} not found`);if(this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).filter(r=>r.id!==this._ruleId).some(r=>r.ranges.some(i=>s.some(a=>{const c=a.getRange();return this._rangesIntersect(c,i)}))))throw new Error("Range protection cannot intersect with other protection rules");await this._commandService.executeCommand(o.SetRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleId:this._ruleId,rule:{...n,ranges:s.map(r=>r.getRange())}}),this._ranges.length=0,this._ranges.push(...s)}async remove(){await this._commandService.executeCommand(o.DeleteRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleIds:[this._ruleId]})}_rangesIntersect(s,n){return!(s.endRow<n.startRow||s.startRow>n.endRow||s.endColumn<n.startColumn||s.startColumn>n.endColumn)}};E=me([B(6,h.Inject(h.Injector)),B(7,h.Inject(h.ICommandService)),B(8,h.Inject(o.RangeProtectionRuleModel))],E);const O={[m.Edit]:o.WorkbookEditablePermission,[m.View]:o.WorkbookViewPermission,[m.Print]:o.WorkbookPrintPermission,[m.Export]:o.WorkbookExportPermission,[m.Share]:o.WorkbookSharePermission,[m.CopyContent]:o.WorkbookCopyPermission,[m.DuplicateFile]:o.WorkbookDuplicatePermission,[m.Comment]:o.WorkbookCommentPermission,[m.ManageCollaborator]:o.WorkbookManageCollaboratorPermission,[m.CreateSheet]:o.WorkbookCreateSheetPermission,[m.DeleteSheet]:o.WorkbookDeleteSheetPermission,[m.RenameSheet]:o.WorkbookRenameSheetPermission,[m.MoveSheet]:o.WorkbookMoveSheetPermission,[m.HideSheet]:o.WorkbookHideSheetPermission,[m.ViewHistory]:o.WorkbookViewHistoryPermission,[m.ManageHistory]:o.WorkbookHistoryPermission,[m.RecoverHistory]:o.WorkbookRecoverHistoryPermission,[m.CreateProtection]:o.WorkbookCreateProtectPermission,[m.InsertRow]:o.WorkbookInsertRowPermission,[m.InsertColumn]:o.WorkbookInsertColumnPermission,[m.DeleteRow]:o.WorkbookDeleteRowPermission,[m.DeleteColumn]:o.WorkbookDeleteColumnPermission,[m.CopySheet]:o.WorkbookCopySheetPermission},V={[_.Edit]:o.WorksheetEditPermission,[_.View]:o.WorksheetViewPermission,[_.Copy]:o.WorksheetCopyPermission,[_.SetCellValue]:o.WorksheetSetCellValuePermission,[_.SetCellStyle]:o.WorksheetSetCellStylePermission,[_.SetRowStyle]:o.WorksheetSetRowStylePermission,[_.SetColumnStyle]:o.WorksheetSetColumnStylePermission,[_.InsertRow]:o.WorksheetInsertRowPermission,[_.InsertColumn]:o.WorksheetInsertColumnPermission,[_.DeleteRow]:o.WorksheetDeleteRowPermission,[_.DeleteColumn]:o.WorksheetDeleteColumnPermission,[_.Sort]:o.WorksheetSortPermission,[_.Filter]:o.WorksheetFilterPermission,[_.PivotTable]:o.WorksheetPivotTablePermission,[_.InsertHyperlink]:o.WorksheetInsertHyperlinkPermission,[_.EditExtraObject]:o.WorksheetEditExtraObjectPermission,[_.ManageCollaborator]:o.WorksheetManageCollaboratorPermission,[_.DeleteProtection]:o.WorksheetDeleteProtectionPermission,[_.SelectProtectedCells]:o.WorksheetSelectProtectedCellsPermission,[_.SelectUnProtectedCells]:o.WorksheetSelectUnProtectedCellsPermission},M={[k.Edit]:o.RangeProtectionPermissionEditPoint,[k.View]:o.RangeProtectionPermissionViewPoint,[k.ManageCollaborator]:o.RangeProtectionPermissionManageCollaPoint,[k.Delete]:o.RangeProtectionPermissionDeleteProtectionPoint};var ge=Object.getOwnPropertyDescriptor,_e=(s,n,e,t)=>{for(var r=t>1?void 0:t?ge(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},U=(s,n)=>(e,t)=>n(e,t,s);let G=class{constructor(s,n,e,t,r,i,a,c){S(this,"_permissionSubject");S(this,"_rangeRulesSubject");S(this,"permission$");S(this,"pointChange$");S(this,"rangeProtectionChange$");S(this,"rangeProtectionRules$");S(this,"_unitId");S(this,"_subUnitId");S(this,"_subscriptions",[]);S(this,"_fPermission");this._worksheet=s,this._injector=n,this._permissionService=e,this._authzIoService=t,this._commandService=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointModel=a,this._worksheetProtectionRuleModel=c,this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new j.BehaviorSubject(this._buildSnapshot()),this._rangeRulesSubject=new j.BehaviorSubject(this._buildRangeProtectionRules()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.rangeProtectionChange$=this._createRangeProtectionChangeStream(),this.rangeProtectionRules$=this._createRangeProtectionRulesStream()}_createPermissionStream(){const s=this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>n.id.includes(this._unitId)&&n.id.includes(this._subUnitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(s),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>JSON.stringify(n)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe(C.filter(s=>s.id.includes(this._unitId)&&s.id.includes(this._subUnitId)),C.map(s=>{var e,t;const n=this._extractWorksheetPointType(s.id);return n?{point:n,value:(e=s.value)!=null?e:!1,oldValue:!((t=s.value)!=null&&t)}:null}),C.filter(s=>s!==null),C.shareReplay({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(s=>s.unitId===this._unitId&&s.subUnitId===this._subUnitId),C.map(s=>{const n=this._buildRangeProtectionRules();return{type:s.type==="delete"?"delete":s.type==="set"?"update":"add",rules:n}}),C.shareReplay({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){const s=this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(n=>n.unitId===this._unitId&&n.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(s),this._rangeRulesSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>n.length!==e.length?!1:n.every((t,r)=>t.id===e[r].id)),C.shareReplay({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(s){for(const[n,e]of Object.entries(V))if(new e(this._unitId,this._subUnitId).id===s)return n;return null}_getRuleEditPermission(s){var r;const n=M[k.Edit];if(!n)return!1;const e=new n(this._unitId,this._subUnitId,s.permissionId),t=this._permissionService.getPermissionPoint(e.id);return(r=t==null?void 0:t.value)!=null?r:!1}_buildSnapshot(){const s={};for(const n in _){const e=_[n];s[e]=this.getPoint(e)}return s}_buildRangeProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(n=>{const e=n.ranges.map(t=>this._worksheet.getRange(t.startRow,t.startColumn,t.endRow-t.startRow+1,t.endColumn-t.startColumn+1));return this._injector.createInstance(E,this._unitId,this._subUnitId,n.id,n.permissionId,e,{name:n.description||"",allowEdit:this._getRuleEditPermission(n)})})}_buildProtectionRule(s){const n=s.ranges.map(t=>this._worksheet.getRange(t)),e={name:s.description||"",allowViewByOthers:s.viewState!==o.ViewStateEnum.NoOneElseCanView};return s.editState===o.EditStateEnum.DesignedUserCanEdit?e.allowEdit=!0:e.allowEdit=!1,this._injector.createInstance(E,this._unitId,this._subUnitId,s.id,s.permissionId,n,e)}debugCellPermission(s,n){const e=this._fPermission.getPermissionInfoWithCell(this._unitId,this._subUnitId,s,n);if(!e)return;const{ruleId:t}=e,r=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,t);if(r)return this._buildProtectionRule(r)}async protect(s){if(this.isProtected())throw new Error("Worksheet is already protected. Call unprotect() first.");const n=await this._fPermission.addWorksheetBasePermission(this._unitId,this._subUnitId,s);if(!n)throw new Error("Failed to create worksheet protection");return n}async unprotect(){if(!this.isProtected())return;this._fPermission.removeWorksheetPermission(this._unitId,this._subUnitId);const s=this._buildSnapshot();this._permissionSubject.next(s)}isProtected(){return!!this._worksheetProtectionRuleModel.getRule(this._unitId,this._subUnitId)}async setMode(s){const n=this._getModePermissions(s);await this._batchSetPermissionPoints(n)}_getModePermissions(s){const n={};switch(Object.values(_).forEach(e=>{n[e]=!1}),s){case"editable":Object.values(_).forEach(e=>{n[e]=!0});break;case"readOnly":n[_.View]=!0;break;case"filterOnly":n[_.View]=!0,n[_.Sort]=!0,n[_.Filter]=!0;break}return n}async _batchSetPermissionPoints(s){const n=[];for(const[e,t]of Object.entries(s)){const r=e,i=V[r];if(!i)throw new Error(`Unknown worksheet permission point: ${r}`);const a=this.getPoint(r);a!==t&&(await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,i,t),n.push({point:r,value:t,oldValue:a}))}if(n.length>0){const e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode("readOnly")}async setEditable(){await this.setMode("editable")}canEdit(){return this.getPoint(_.Edit)}canEditCell(s,n){if(!this.canEdit())return!1;const e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);for(const t of e)for(const r of t.ranges)if(s>=r.startRow&&s<=r.endRow&&n>=r.startColumn&&n<=r.endColumn)return this._getRuleEditPermission(t);return!0}canViewCell(s,n){return this.getPoint(_.View)}async setPoint(s,n){const e=V[s];if(!e)throw new Error(`Unknown worksheet permission point: ${s}`);if(this.getPoint(s)===n)return;await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,e,n);const r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(s){var r;const n=V[s];if(!n)throw new Error(`Unknown worksheet permission point: ${s}`);const e=new n(this._unitId,this._subUnitId),t=this._permissionService.getPermissionPoint(e.id);return(r=t==null?void 0:t.value)!=null?r:!0}getSnapshot(){return this._buildSnapshot()}async applyConfig(s){if(s.mode&&await this.setMode(s.mode),s.points)for(const[n,e]of Object.entries(s.points))typeof e=="boolean"&&await this.setPoint(n,e);if(s.rangeProtections&&s.rangeProtections.length>0){const n=s.rangeProtections.map(e=>({ranges:e.rangeRefs.map(t=>this._worksheet.getRange(t)),options:e.options}));await this.protectRanges(n)}}async protectRanges(s){if(!s||s.length===0)throw new Error("Configs cannot be empty");const n=await Promise.all(s.map(i=>{var a,c,d,u;return this._authzIoService.create({objectType:o.UnitObject.SelectRange,selectRangeObject:{collaborators:(d=(c=(a=i.options)==null?void 0:a.allowedUsers)==null?void 0:c.map(l=>({id:l,role:q.Editor,subject:void 0})))!=null?d:[],unitID:this._unitId,name:((u=i.options)==null?void 0:u.name)||"",scope:void 0}})})),e=s.map((i,a)=>{var u;const c=this._determineViewState(i.options),d=this._determineEditState(i.options);return{permissionId:n[a],unitType:o.UnitObject.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:i.ranges.map(l=>l.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((u=i.options)==null?void 0:u.name)||"",viewState:c,editState:d}});if(!await this._commandService.executeCommand(o.AddRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:e}))throw new Error("Failed to create range protection rules");return await Promise.all(s.map((i,a)=>this._setPermissionPoints(n[a],i.options))),e.map((i,a)=>this._injector.createInstance(E,this._unitId,this._subUnitId,i.id,i.permissionId,s[a].ranges,s[a].options||{}))}_determineViewState(s){return(s==null?void 0:s.allowViewByOthers)===!1?o.ViewStateEnum.NoOneElseCanView:o.ViewStateEnum.OthersCanView}_determineEditState(s){var n;return(s==null?void 0:s.allowEdit)===!0&&((n=s==null?void 0:s.allowedUsers)!=null&&n.length)?o.EditStateEnum.DesignedUserCanEdit:o.EditStateEnum.OnlyMe}async _setPermissionPoints(s,n){if(!n)return;const e=(t,r)=>t===void 0?r:typeof t=="boolean"?t:!0;await this._setPermissionPoint(s,k.Edit,e(n.allowEdit,!1)),await this._setPermissionPoint(s,k.View,e(n.allowViewByOthers,!0))}async _setPermissionPoint(s,n,e){const t=M[n];t&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,s,t,e)}async unprotectRules(s){!s||s.length===0||this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,s)}async listRangeProtectionRules(){return this._buildRangeProtectionRules()}subscribe(s){const n=this.permission$.subscribe(s);return()=>n.unsubscribe()}dispose(){this._subscriptions.forEach(s=>s.unsubscribe()),this._permissionSubject.complete(),this._rangeRulesSubject.complete()}};G=_e([U(1,h.Inject(h.Injector)),U(2,h.IPermissionService),U(3,h.IAuthzIoService),U(4,h.ICommandService),U(5,h.Inject(o.RangeProtectionRuleModel)),U(6,h.Inject(o.WorksheetProtectionPointModel)),U(7,h.Inject(o.WorksheetProtectionRuleModel))],G);function Se(s){switch(s){case"left":return h.HorizontalAlign.LEFT;case"center":return h.HorizontalAlign.CENTER;case"normal":return h.HorizontalAlign.RIGHT;default:throw new Error(`Invalid horizontal alignment: ${s}`)}}function J(s){switch(s){case h.HorizontalAlign.LEFT:return"left";case h.HorizontalAlign.CENTER:return"center";case h.HorizontalAlign.RIGHT:return"normal";default:return"general"}}function we(s){switch(s){case"top":return h.VerticalAlign.TOP;case"middle":return h.VerticalAlign.MIDDLE;case"bottom":return h.VerticalAlign.BOTTOM;default:throw new Error(`Invalid vertical alignment: ${s}`)}}function Z(s){switch(s){case h.VerticalAlign.TOP:return"top";case h.VerticalAlign.MIDDLE:return"middle";case h.VerticalAlign.BOTTOM:return"bottom";default:return"general"}}function H(s,n){return{startRow:s.startRow,endRow:s.endRow,startColumn:0,endColumn:n.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW}}function $(s,n){return{startRow:0,endRow:n.getRowCount()-1,startColumn:s.startColumn,endColumn:s.endColumn,rangeType:h.RANGE_TYPE.COLUMN}}var Ce=Object.getOwnPropertyDescriptor,ke=(s,n,e,t)=>{for(var r=t>1?void 0:t?Ce(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},T=(s,n)=>(e,t)=>n(e,t,s);exports.FWorksheet=class extends v.FBaseInitialable{constructor(e,t,r,i,a,c,d){super(i);S(this,"setActiveSelection",this.setActiveRange);this._fWorkbook=e,this._workbook=t,this._worksheet=r,this._injector=i,this._selectionManagerService=a,this._logService=c,this._commandService=d}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(){const e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(exports.FSelection,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){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(o.SetWorksheetDefaultStyleMutation.id,{unitId:t,subUnitId:r,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={unitId:r,subUnitId:i,columnData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(o.SetColDataCommand.id,a),this}setRowDefaultStyle(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={unitId:r,subUnitId:i,rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(o.SetRowDataCommand.id,a),this}getRange(e,t,r,i){let a,c;if(typeof e=="object")a=e,c=this._worksheet;else if(typeof e=="string"){const{range:d,sheetName:u}=P.deserializeRangeWithSheet(e),l=u?this._workbook.getSheetBySheetName(u):this._worksheet;if(!l)throw new Error("Range not found");c=l,a={...d,unitId:this._workbook.getUnitId(),sheetId:c.getSheetId(),rangeType:h.RANGE_TYPE.NORMAL,startRow:d.rangeType===h.RANGE_TYPE.COLUMN?0:d.startRow,endRow:d.rangeType===h.RANGE_TYPE.COLUMN?c.getMaxRows()-1:d.endRow,startColumn:d.rangeType===h.RANGE_TYPE.ROW?0:d.startColumn,endColumn:d.rangeType===h.RANGE_TYPE.ROW?c.getMaxColumns()-1:d.endColumn}}else if(typeof e=="number"&&t!==void 0)c=this._worksheet,a={startRow:e,endRow:e+(r!=null?r:1)-1,startColumn:t,endColumn:t+(i!=null?i:1)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw new Error("Invalid range specification");return this._injector.createInstance(exports.FRange,this._workbook,c,a)}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){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.DOWN,c=e+1,d=e+t,u=0,l=this._worksheet.getColumnCount()-1,g=o.copyRangeStyles(this._worksheet,c,d,u,l,!0,e);return this._commandService.syncExecuteCommand(o.InsertRowByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:u,endColumn:l},cellValue:g}),this}insertRowsBefore(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.UP,c=e,d=e+t-1,u=0,l=this._worksheet.getColumnCount()-1,g=o.copyRangeStyles(this._worksheet,c,d,u,l,!0,e-1);return this._commandService.syncExecuteCommand(o.InsertRowByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:u,endColumn:l},cellValue:g}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,t){const r={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(o.RemoveRowByRangeCommand.id,{range:r,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveRows(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=H(e.getRange(),this._worksheet),c=a,d={startRow:t,endRow:t,startColumn:a.startColumn,endColumn:a.endColumn};return this._commandService.syncExecuteCommand(o.MoveRowsCommand.id,{unitId:r,subUnitId:i,range:a,fromRange:c,toRange:d}),this}hideRow(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=H(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetRowHiddenCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}hideRows(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(o.SetRowHiddenCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}unhideRow(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=H(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetSpecificRowsVisibleCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}showRows(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(o.SetSpecificRowsVisibleCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(e,t=h.BooleanNumber.TRUE){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startRow:e,endRow:e,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(o.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:a[0],value:h.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(o.SetWorksheetRowIsAutoHeightMutation.id,{unitId:r,subUnitId:i,ranges:a,autoHeightInfo:t}),this}setRowHeights(e,t,r){var l;const i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),c=this._worksheet.getRowManager(),d=[],u=[];for(let g=e;g<e+t;g++){const w=((l=c.getRow(g))==null?void 0:l.ah)||this._worksheet.getConfig().defaultRowHeight,b={startRow:g,endRow:g,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};r<=w?d.push(b):u.push(b)}return u.length>0&&this._commandService.syncExecuteCommand(o.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:u,value:r}),d.length>0&&this._commandService.syncExecuteCommand(o.SetWorksheetRowIsAutoHeightCommand.id,{unitId:i,subUnitId:a,ranges:d}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){const 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(o.SetWorksheetRowIsAutoHeightCommand.id,{unitId:r,subUnitId:i,ranges:a}),this}setRangesAutoHeight(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(o.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:r,ranges:e}),this}setRowHeightsForced(e,t,r){const i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),c=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(o.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:c,value:r}),this}setRowCustom(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={};for(const[c,d]of Object.entries(e))i[Number(c)]={custom:d};const a={unitId:t,subUnitId:r,rowData:i};return this._commandService.syncExecuteCommand(o.SetRowDataCommand.id,a),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){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.RIGHT,c=0,d=this._worksheet.getRowCount()-1,u=e+1,l=e+t,g=o.copyRangeStyles(this._worksheet,c,d,u,l,!1,e);return this._commandService.syncExecuteCommand(o.InsertColByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:u,endColumn:l},cellValue:g}),this}insertColumnsBefore(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.LEFT,c=0,d=this._worksheet.getRowCount()-1,u=e,l=e+t-1,g=o.copyRangeStyles(this._worksheet,c,d,u,l,!1,e-1);return this._commandService.syncExecuteCommand(o.InsertColByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:u,endColumn:l},cellValue:g}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,t){const r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1};return this._commandService.syncExecuteCommand(o.RemoveColByRangeCommand.id,{range:r,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveColumns(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=$(e.getRange(),this._worksheet),c=a,d={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(o.MoveColsCommand.id,{unitId:r,subUnitId:i,range:a,fromRange:c,toRange:d}),this}hideColumn(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=$(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetColHiddenCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}hideColumns(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:h.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(o.SetColHiddenCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}unhideColumn(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=$(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetSpecificColsVisibleCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}showColumns(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:h.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(o.SetSpecificColsVisibleCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,r){const i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),c=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(o.SetColWidthCommand.id,{unitId:i,subUnitId:a,ranges:c,value:r}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={};for(const[c,d]of Object.entries(e))i[Number(c)]={custom:d};const a={unitId:t,subUnitId:r,columnData:i};return this._commandService.syncExecuteCommand(o.SetColDataCommand.id,a),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(t=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,t))}getCellMergeData(e,t){const i=this._worksheet.getMergedCell(e,t);if(i)return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,i)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){const{unitId:t,sheetId:r}=e.getRange();if(t!==this._workbook.getUnitId()||r!==this._worksheet.getSheetId())throw new 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(o.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(o.CancelFrozenCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){const t=this.getFreeze();if(arguments.length===1){const r=e[0];this.setFreeze({...t,startColumn:r>0?r:-1,xSplit:r})}else if(arguments.length===2){let[r=0,i=0]=e;r>i&&([r,i]=[i,r]),this._commandService.syncExecuteCommand(o.SetFrozenCommand.id,{startColumn:i+1,xSplit:i-r+1,startRow:t.startRow,ySplit:t.ySplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}setFrozenRows(...e){const t=this.getFreeze();if(arguments.length===1){const r=e[0];this.setFreeze({...t,startRow:r>0?r:-1,ySplit:r})}else if(arguments.length===2){let[r=0,i=0]=e;r>i&&([r,i]=[i,r]),this._commandService.syncExecuteCommand(o.SetFrozenCommand.id,{startRow:i+1,ySplit:i-r+1,startColumn:t.startColumn,xSplit:t.xSplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}getFrozenColumns(){const e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){const e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){const e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){const e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===h.BooleanNumber.FALSE}setHiddenGridlines(e){return this._commandService.syncExecuteCommand(o.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:e?h.BooleanNumber.FALSE:h.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(o.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(o.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(h.ICommandService).onCommandExecuted(r=>{if(r.id===o.SetRangeValuesMutation.id){const i=r.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new h.ObjectMatrix(i.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(r=>{if(r.id===o.SetRangeValuesMutation.id){const i=r.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new h.ObjectMatrix(i.cellValue))}})}hideSheet(){const e=this._injector.get(h.ICommandService);if(this._workbook.getSheets().filter(a=>a.isSheetHidden()!==h.BooleanNumber.TRUE).length<=1)throw new Error("Cannot hide the only visible sheet");return e.syncExecuteCommand(o.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(h.ICommandService).syncExecuteCommand(o.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===h.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(o.SetWorksheetNameCommand.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();const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this._injector.get(h.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(o.ClearSelectionAllCommand.id,{unitId:t,subUnitId:r,ranges:[a],options:e}),this}clearContents(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),r=this._injector.get(h.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return r.syncExecuteCommand(o.ClearSelectionContentCommand.id,{unitId:e,subUnitId:t,ranges:[i]}),this}clearFormats(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),r=this._injector.get(h.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return r.syncExecuteCommand(o.ClearSelectionFormatCommand.id,{unitId:e,subUnitId:t,ranges:[i]}),this}getDataRange(){const{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._worksheet.getDataRealRange();return this.getRange(e,r,t-e+1,i-r+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 exports.FWorksheet?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){const i=this._injector.createInstance(F).setName(e).setRef(t).build();i.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(i)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(t=>t.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){const t=this._worksheet.getCellMatrix().hasValue(),r=this._worksheet.getLastRowWithContent(),i=this._worksheet.getRowCount(),a=this._worksheet.getColumnCount(),c=t?r+1:r,d=new h.ObjectMatrix;for(let u=0;u<e.length;u++)d.setValue(c,u,h.covertCellValue(e[u]));return this._commandService.syncExecuteCommand(o.AppendRowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:d.getMatrix(),insertRowNums:c>i-1?1:0,insertColumnNums:e.length>a?e.length-a:0,maxRows:i,maxColumns:a}),this}setRowCount(e){return this._commandService.syncExecuteCommand(o.SetWorksheetRowCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(o.SetWorksheetColumnCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(G,this)}};exports.FWorksheet=ke([T(3,h.Inject(h.Injector)),T(4,h.Inject(o.SheetsSelectionsService)),T(5,h.Inject(h.ILogService)),T(6,h.ICommandService)],exports.FWorksheet);var Ie=Object.getOwnPropertyDescriptor,be=(s,n,e,t)=>{for(var r=t>1?void 0:t?Ie(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},D=(s,n)=>(e,t)=>n(e,t,s);let K=class{constructor(s,n,e,t,r,i,a,c,d){S(this,"_permissionSubject");S(this,"_subscriptions",[]);S(this,"_fPermission");S(this,"permission$");S(this,"protectionChange$");this._unitId=s,this._subUnitId=n,this._range=e,this._worksheet=t,this._injector=r,this._permissionService=i,this._authzIoService=a,this._commandService=c,this._rangeProtectionRuleModel=d,this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new j.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){const s=this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>{const e=n.id;return e.includes(this._unitId)&&e.includes(this._subUnitId)})).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(s),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>JSON.stringify(n)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(s=>s.unitId!==this._unitId||s.subUnitId!==this._subUnitId?!1:s.type==="delete"?this._rangeMatches(s.rule):s.type==="add"?this._rangeMatches(s.rule):!1),C.map(s=>(this._permissionSubject.next(this._buildSnapshot()),s.type==="delete"?{type:"unprotected",ruleId:s.rule.id}:{type:"protected",rule:this._createFacadeRule(s.rule)})),C.shareReplay({bufferSize:1,refCount:!0}))}_rangeMatches(s){const n=this._range.getRange();return s.ranges.some(e=>n.startRow===e.startRow&&n.startColumn===e.startColumn&&n.endRow===e.endRow&&n.endColumn===e.endColumn)}_createFacadeRule(s){const n=s.ranges.map(t=>this._worksheet.getRange(t.startRow,t.startColumn,t.endRow-t.startRow+1,t.endColumn-t.startColumn+1)),e={name:s.description||"",allowViewByOthers:s.viewState!==o.ViewStateEnum.NoOneElseCanView,allowEdit:s.editState===o.EditStateEnum.DesignedUserCanEdit};return this._injector.createInstance(E,this._unitId,this._subUnitId,s.id,s.permissionId,n,e)}getPoint(s){const n=M[s];if(!n)return console.warn(`Unknown permission point: ${s}`),!1;const e=this._getProtectionRule();if(e){const t=new n(this._unitId,this._subUnitId,e.permissionId),r=this._permissionService.getPermissionPoint(t.id);if(r)return r.value}return!0}getSnapshot(){return this._buildSnapshot()}isProtected(){return this._getProtectionRule()!==null}canEdit(){return this.getPoint(k.Edit)}canView(){return this.getPoint(k.View)}canManageCollaborator(){return this.getPoint(k.ManageCollaborator)}canDelete(){return this.getPoint(k.Delete)}async setPoint(s,n){const e=M[s];if(!e)throw new Error(`Unknown permission point: ${s}`);const t=this._getProtectionRule();if(!t)throw new Error("Cannot set permission point: No protection rule exists for this range. Call protect() first.");if(this.getPoint(s)===n)return;const i=t.permissionId;this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,i,e,n),this._permissionSubject.next(this._buildSnapshot())}async protect(s){if(this.isProtected())throw new Error("Range is already protected");const n=await this._fPermission.addRangeBaseProtection(this._unitId,this._subUnitId,[this._range],s);if(!n)throw new Error("Failed to create range protection");const{permissionId:e,ruleId:t}=n;return await this._setPermissionPoints(e,s),this._injector.createInstance(E,this._unitId,this._subUnitId,t,e,[this._range],s||{})}_determineViewState(s){return(s==null?void 0:s.allowViewByOthers)===!1?o.ViewStateEnum.NoOneElseCanView:o.ViewStateEnum.OthersCanView}_determineEditState(s){var n;return(s==null?void 0:s.allowEdit)===!0&&((n=s==null?void 0:s.allowedUsers)!=null&&n.length)?o.EditStateEnum.DesignedUserCanEdit:o.EditStateEnum.OnlyMe}async _setPermissionPoints(s,n){if(!n)return;const e=(t,r)=>t===void 0?r:typeof t=="boolean"?t:!0;await this._setPermissionPoint(s,k.Edit,e(n.allowEdit,!1)),await this._setPermissionPoint(s,k.View,e(n.allowViewByOthers,!0))}async _setPermissionPoint(s,n,e){const t=M[n];t&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,s,t,e)}async unprotect(){const s=this._getProtectionRule();if(!s)return;const n=s.id;this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,[n])}async listRules(){return await this._buildProtectionRulesAsync()}subscribe(s){const n=this.permission$.subscribe(s);return()=>n.unsubscribe()}_getProtectionRule(){const s=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId),n=this._range.getRange();for(const e of s)for(const t of e.ranges)if(n.startRow===t.startRow&&n.startColumn===t.startColumn&&n.endRow===t.endRow&&n.endColumn===t.endColumn)return e;return null}_buildProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(n=>{const e=n.ranges.map(r=>this._worksheet.getRange(r.startRow,r.startColumn,r.endRow-r.startRow+1,r.endColumn-r.startColumn+1)),t={name:n.description||"",allowViewByOthers:n.viewState!==o.ViewStateEnum.NoOneElseCanView};return n.editState===o.EditStateEnum.DesignedUserCanEdit?t.allowEdit=!0:t.allowEdit=!1,this._injector.createInstance(E,this._unitId,this._subUnitId,n.id,n.permissionId,e,t)})}async _buildProtectionRulesAsync(){const s=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);return(await Promise.all(s.map(async e=>{const t=e.ranges.map(i=>this._worksheet.getRange(i.startRow,i.startColumn,i.endRow-i.startRow+1,i.endColumn-i.startColumn+1)),r={name:e.description||"",allowViewByOthers:e.viewState!==o.ViewStateEnum.NoOneElseCanView};if(e.editState===o.EditStateEnum.DesignedUserCanEdit)try{const a=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(c=>c.role===q.Editor).map(c=>{var d;return((d=c.subject)==null?void 0:d.userID)||c.id});r.allowEdit=a.length>0}catch(i){console.warn(`Failed to fetch collaborators for rule ${e.id}:`,i),r.allowEdit=!1}else r.allowEdit=!1;return{rule:e,ranges:t,options:r}}))).map(({rule:e,ranges:t,options:r})=>this._injector.createInstance(E,this._unitId,this._subUnitId,e.id,e.permissionId,t,r))}_buildSnapshot(){const s={};return Object.values(k).forEach(n=>{s[n]=this.getPoint(n)}),s}dispose(){this._subscriptions.forEach(s=>s.unsubscribe()),this._permissionSubject.complete()}};K=be([D(4,h.Inject(h.Injector)),D(5,h.Inject(h.IPermissionService)),D(6,h.Inject(h.IAuthzIoService)),D(7,h.Inject(h.ICommandService)),D(8,h.Inject(o.RangeProtectionRuleModel))],K);var fe=Object.getOwnPropertyDescriptor,ve=(s,n,e,t)=>{for(var r=t>1?void 0:t?fe(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},z=(s,n)=>(e,t)=>n(e,t,s),W;exports.FRange=(W=class extends v.FBaseInitialable{constructor(n,e,t,r,i,a){super(r),this._workbook=n,this._worksheet=e,this._range=t,this._injector=r,this._commandService=i,this._formulaDataModel=a;const c=this._worksheet.getRowCount(),d=this._worksheet.getColumnCount();if(this._range.startRow<0||this._range.startColumn<0||this._range.endRow>=c||this._range.endColumn>=d)throw new Error(`Range is out of bounds. Max rows: ${c}, Max columns: ${d}, 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(){const{startColumn:n,startRow:e,endColumn:t,endRow:r}=this._range;return this._worksheet.getMergedCellRange(e,n,r,t).some(a=>h.Rectangle.equals(a,this._range))}getCellStyleData(n="row"){return n!=="cell"?this._worksheet.getComposedCellStyle(this._range.startRow,this._range.startColumn,n==="row"):this._worksheet.getCellStyle(this._range.startRow,this._range.startColumn)}getFontFamily(n="row"){var e,t;return(t=(e=this.getCellStyleData(n))==null?void 0:e.ff)!=null?t:null}getFontSize(n="row"){var e,t;return(t=(e=this.getCellStyleData(n))==null?void 0:e.fs)!=null?t:null}getCellStyle(n="row"){const e=this.getCellStyleData(n);return e?h.TextStyleValue.create(e):null}getCellStyles(n="row"){return this.getCellDatas().map((t,r)=>t.map((i,a)=>{if(!i)return null;const c=n!=="cell"?this._worksheet.getComposedCellStyle(r+this._range.startRow,a+this._range.startColumn,n==="row"):this._worksheet.getCellStyle(r+this._range.startRow,a+this._range.startColumn);return c?h.TextStyleValue.create(c):null}))}getValue(n){var e,t;return n?this.getValueAndRichTextValue():(t=(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:e.v)!=null?t:null}getRawValue(){var e,t;const 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?t:null}getDisplayValue(){var e,t,r;const n=this._worksheet.getCell(this._range.startRow,this._range.startColumn);return n!=null&&n.p&&((e=n.p.body)!=null&&e.dataStream)?n.p.body.dataStream:(r=(t=n==null?void 0:n.v)==null?void 0:t.toString())!=null?r:""}getValues(n){var c,d;if(n)return this.getValueAndRichTextValues();const{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._range,a=[];for(let u=e;u<=t;u++){const l=[];for(let g=r;g<=i;g++)l.push((d=(c=this._worksheet.getCell(u,g))==null?void 0:c.v)!=null?d:null);a.push(l)}return a}getRawValues(){var c,d;const n=this._worksheet.getCellMatrix(),{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._range,a=[];for(let u=e;u<=t;u++){const l=[];for(let g=r;g<=i;g++){const w=n.getValue(u,g);w!=null&&w.p&&((c=w.p.body)!=null&&c.dataStream)?l.push(w.p.body.dataStream):l.push((d=w==null?void 0:w.v)!=null?d:null)}a.push(l)}return a}getDisplayValues(){var a,c,d;const{startRow:n,endRow:e,startColumn:t,endColumn:r}=this._range,i=[];for(let u=n;u<=e;u++){const l=[];for(let g=t;g<=r;g++){const w=this._worksheet.getCell(u,g);w!=null&&w.p&&((a=w.p.body)!=null&&a.dataStream)?l.push(w.p.body.dataStream):l.push((d=(c=w==null?void 0:w.v)==null?void 0:c.toString())!=null?d:"")}i.push(l)}return i}getCellData(){var n;return(n=this._worksheet.getCell(this._range.startRow,this._range.startColumn))!=null?n:null}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){const{startRow:n,endRow:e,startColumn:t,endColumn:r}=this._range,i=[];for(let a=n;a<=e;a++){const c=[];for(let d=t;d<=r;d++)c.push(this._worksheet.getCellRaw(a,d));i.push(c)}return i}getRichTextValue(){const n=this.getCellData();return n!=null&&n.p?new h.RichTextValue(n.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(t=>t!=null&&t.p?new h.RichTextValue(t.p):null))}getValueAndRichTextValue(){const n=this.getCellData();return n!=null&&n.p?new h.RichTextValue(n.p):n==null?void 0:n.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(t=>t!=null&&t.p?new h.RichTextValue(t.p):t==null?void 0:t.v))}getFormula(){var n;return(n=this._formulaDataModel.getFormulaStringByCell(this._range.startRow,this._range.startColumn,this._worksheet.getSheetId(),this._workbook.getUnitId()))!=null?n:""}getFormulas(){const n=[],{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._range,a=this._worksheet.getSheetId(),c=this._workbook.getUnitId();for(let d=e;d<=t;d++){const u=[];for(let l=r;l<=i;l++){const g=this._formulaDataModel.getFormulaStringByCell(d,l,a,c);u.push(g||"")}n.push(u)}return n}getWrap(){return this._worksheet.getRange(this._range).getWrap()===h.BooleanNumber.TRUE}getWraps(){const n=this.getCellDatas(),e=this._workbook.getStyles();return n.map(t=>t.map(r=>{var i;return((i=e.getStyleByCell(r))==null?void 0:i.tb)===h.WrapStrategy.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){const n=this._worksheet.getRange(this._range).getHorizontalAlignment();return J(n)}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(t=>J(t)))}getVerticalAlignment(){return Z(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(t=>Z(t)))}setCustomMetaData(n){return this.setValue({custom:n})}setCustomMetaDatas(n){return this.setValues(n.map(e=>e.map(t=>({custom:t}))))}getCustomMetaData(){var e;const n=this.getCellData();return(e=n==null?void 0:n.custom)!=null?e:null}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(t=>{var r;return(r=t==null?void 0:t.custom)!=null?r:null}))}setBorder(n,e,t){return this._commandService.syncExecuteCommand(o.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:n,style:e,color:t}}),this}getBackground(){var e,t;const n=this.getCellStyle();return(t=(e=n==null?void 0:n.background)==null?void 0:e.rgb)!=null?t:h.DEFAULT_STYLES.bg.rgb}getBackgrounds(){return this.getCellStyles().map(e=>e.map(t=>{var r,i;return(i=(r=t==null?void 0:t.background)==null?void 0:r.rgb)!=null?i:h.DEFAULT_STYLES.bg.rgb}))}setBackgroundColor(n){return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:n}}}),this}setBackground(n){return this.setBackgroundColor(n),this}setTextRotation(n){return this._commandService.syncExecuteCommand(o.SetTextRotationCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setValue(n){const e=h.covertCellValue(n);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValueForCell(n){const e=h.covertCellValue(n);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.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:e}),this}setRichTextValueForCell(n){const e=n instanceof h.RichTextValue?n.getData():n,t={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:e}};return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,t),this}setRichTextValues(n){const e=n.map(i=>i.map(a=>a&&{p:a instanceof h.RichTextValue?a.getData():a})),t=h.covertCellValues(e,this._range),r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t};return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,r),this}setWrap(n){return this._commandService.syncExecuteCommand(o.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n?h.WrapStrategy.WRAP:h.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(n){return this._commandService.syncExecuteCommand(o.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setVerticalAlignment(n){return this._commandService.syncExecuteCommand(o.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:we(n)}),this}setHorizontalAlignment(n){return this._commandService.syncExecuteCommand(o.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:Se(n)}),this}setValues(n){const e=h.covertCellValues(n,this._range);return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setFontWeight(n){let e;if(n==="bold")e=h.BooleanNumber.TRUE;else if(n==="normal")e=h.BooleanNumber.FALSE;else if(n===null)e=null;else throw new Error("Invalid fontWeight");const t={type:"bl",value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,r),this}setFontStyle(n){let e;if(n==="italic")e=h.BooleanNumber.TRUE;else if(n==="normal")e=h.BooleanNumber.FALSE;else if(n===null)e=null;else throw new Error("Invalid fontStyle");const t={type:"it",value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,r),this}setFontLine(n){if(n==="underline")this._setFontUnderline({s:h.BooleanNumber.TRUE});else if(n==="line-through")this._setFontStrikethrough({s:h.BooleanNumber.TRUE});else if(n==="none")this._setFontUnderline({s:h.BooleanNumber.FALSE}),this._setFontStrikethrough({s:h.BooleanNumber.FALSE});else if(n===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw new Error("Invalid fontLine");return this}_setFontUnderline(n){const e={type:"ul",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t)}_setFontStrikethrough(n){const e={type:"st",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t)}setFontFamily(n){const e={type:"ff",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t),this}setFontSize(n){const e={type:"fs",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t),this}setFontColor(n){const t={type:"cl",value:n===null?null:{rgb:n}},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,r),this}merge(n=!0){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return o.addMergeCellsUtil(this._injector,e,t,[this._range],n),this}mergeAcross(n=!0){const e=o.getAddMergeMutationRangeByType([this._range],h.Dimension.ROWS),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return o.addMergeCellsUtil(this._injector,t,r,e,n),this}mergeVertically(n=!0){const e=o.getAddMergeMutationRangeByType([this._range],h.Dimension.COLUMNS),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return o.addMergeCellsUtil(this._injector,t,r,e,n),this}isPartOfMerge(){const{startRow:n,startColumn:e,endRow:t,endColumn:r}=this._range;return this._worksheet.getMergedCellRange(n,e,t,r).length>0}breakApart(){return this._commandService.syncExecuteCommand(o.RemoveWorksheetMergeCommand.id,{ranges:[this._range]}),this}forEach(n){const{startColumn:e,startRow:t,endColumn:r,endRow:i}=this._range;this._worksheet.getMatrixWithMergedCells(t,e,i,r).forValue((a,c,d)=>{n(a,c,d)})}getA1Notation(n,e,t){const r={...this._range,startAbsoluteRefType:e,endAbsoluteRefType:t};return n?P.serializeRangeWithSheet(this._worksheet.getName(),r):P.serializeRange(r)}activate(){return this._injector.createInstance(exports.FWorkbook,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){const n=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(n&&h.Rectangle.equals(n,this._range)||!n&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){const r=this._injector.createInstance(exports.FWorkbook,this._workbook).getActiveRange();if(!r||r.getUnitId()!==this.getUnitId()||r.getSheetId()!==this.getSheetId())return this.activate();if(h.Rectangle.contains(r.getRange(),this._range)){const i={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:r.getRange(),primary:o.getPrimaryForRange(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(o.SetSelectionsOperation.id,i),this}return this.activate()}else throw new Error("The range is not a single cell")}splitTextToColumns(n,e,t){this._commandService.syncExecuteCommand(o.SplitTextToColumnsCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:e,customDelimiter:t,treatMultipleDelimitersAsOne:n})}useThemeStyle(n){if(n==null){const e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(o.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:n})}removeThemeStyle(n){this._commandService.syncExecuteCommand(o.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:n})}getUsedThemeStyle(){return this._injector.get(o.SheetRangeThemeService).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}clear(n){return n&&n.contentsOnly&&!n.formatOnly?this.clearContent():n&&n.formatOnly&&!n.contentsOnly?this.clearFormat():(this._commandService.syncExecuteCommand(o.ClearSelectionAllCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:n}),this)}clearContent(){return this._commandService.syncExecuteCommand(o.ClearSelectionContentCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(o.ClearSelectionFormatCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(n){n===h.Dimension.ROWS?this._commandService.executeCommand(o.InsertRangeMoveDownCommand.id,{range:this._range}):this._commandService.executeCommand(o.InsertRangeMoveRightCommand.id,{range:this._range})}deleteCells(n){n===h.Dimension.ROWS?this._commandService.executeCommand(o.DeleteRangeMoveUpCommand.id,{range:this._range}):this._commandService.executeCommand(o.DeleteRangeMoveLeftCommand.id,{range:this._range})}getDataRegion(n){const{startRow:e,startColumn:t,endRow:r,endColumn:i}=this._range,a=this._worksheet.getMaxRows(),c=this._worksheet.getMaxColumns(),d=this._worksheet.getCellMatrix();let u=e,l=t,g=r,w=i;if(n!==h.Dimension.COLUMNS){let b=!1,f=!1;for(let I=t;I<=i&&(e>0&&!h.isNullCell(d.getValue(e-1,I))&&(b=!0),r<a-1&&!h.isNullCell(d.getValue(r+1,I))&&(f=!0),!(b&&f));I++);b&&(u=e-1),f&&(g=r+1)}if(n!==h.Dimension.ROWS){let b=!1,f=!1;for(let I=e;I<=r&&(t>0&&!h.isNullCell(d.getValue(I,t-1))&&(b=!0),i<c-1&&!h.isNullCell(d.getValue(I,i+1))&&(f=!0),!(b&&f));I++);b&&(l=t-1),f&&(w=i+1)}return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,{startRow:u,startColumn:l,endRow:g,endColumn:w})}isBlank(){const n=this._worksheet.getCellMatrix(),{startRow:e,startColumn:t,endRow:r,endColumn:i}=this._range;let a=!0;for(let c=e;c<=r;c++){for(let d=t;d<=i;d++)if(!h.isNullCell(n.getValue(c,d))){a=!1;break}if(!a)break}return a}offset(n,e,t,r){const{startRow:i,startColumn:a,endRow:c,endColumn:d}=this._range,u=i+n,l=a+e,g=t?u+t-1:c+n,w=r?l+r-1:d+e;if(u<0||l<0||g<0||w<0)throw new Error("The row or column index is out of range");return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,{startRow:u,startColumn:l,endRow:g,endColumn:w})}setFormula(n){return this.setValue({f:n})}setFormulas(n){return this.setValues(n.map(e=>e.map(t=>({f:t}))))}getRangePermission(){const n=this._injector.createInstance(exports.FWorksheet,this._injector.createInstance(exports.FWorkbook,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(K,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,n)}},W._enableManualInit(),W);exports.FRange=ve([z(3,h.Inject(h.Injector)),z(4,h.ICommandService),z(5,h.Inject(P.FormulaDataModel))],exports.FRange);var Re=Object.getOwnPropertyDescriptor,pe=(s,n,e,t)=>{for(var r=t>1?void 0:t?Re(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},L=(s,n)=>(e,t)=>n(e,t,s);let Y=class{constructor(s,n,e,t){S(this,"_permissionSubject");S(this,"_collaboratorChangeSubject",new j.Subject);S(this,"permission$");S(this,"pointChange$");S(this,"collaboratorChange$");S(this,"_subscriptions",[]);S(this,"_fPermission");this._unitId=s,this._injector=n,this._permissionService=e,this._authzIoService=t,this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new j.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe(C.shareReplay({bufferSize:1,refCount:!0}))}_createPermissionStream(){const s=this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>n.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(s),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>JSON.stringify(n)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createPointChangeStream(){const s=new Map;for(const n in m){const e=m[n];s.set(e,this.getPoint(e))}return this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>n.id.includes(this._unitId)),C.map(n=>{const e=this._extractWorkbookPointType(n.id);if(!e)return null;const t=!!n.value,r=s.get(e);return s.set(e,t),r===t?null:{point:e,value:t,oldValue:r}}),C.filter(n=>n!==null),C.shareReplay({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(s){for(const n in m){const e=m[n],t=O[e];if(!t)continue;if(new t(this._unitId).id===s)return e}return null}_buildSnapshot(){const s={};for(const n in m){const e=m[n];s[e]=this.getPoint(e)}return s}async setMode(s){const n=this._getModePermissions(s);await this._batchSetPermissionPoints(n)}_getModePermissions(s){const n={};switch(Object.values(m).forEach(e=>{n[e]=!1}),s){case"owner":Object.values(m).forEach(e=>{n[e]=!0});break;case"editor":n[m.Edit]=!0,n[m.View]=!0,n[m.Print]=!0,n[m.Export]=!0,n[m.CopyContent]=!0,n[m.Comment]=!0,n[m.CreateSheet]=!0,n[m.DeleteSheet]=!0,n[m.RenameSheet]=!0,n[m.MoveSheet]=!0,n[m.HideSheet]=!0,n[m.InsertRow]=!0,n[m.InsertColumn]=!0,n[m.DeleteRow]=!0,n[m.DeleteColumn]=!0,n[m.CopySheet]=!0,n[m.CreateProtection]=!0;break;case"viewer":n[m.View]=!0,n[m.Print]=!0;break;case"commenter":n[m.View]=!0,n[m.Comment]=!0,n[m.Print]=!0;break}return n}async _batchSetPermissionPoints(s){const n=[];for(const[e,t]of Object.entries(s)){const r=e,i=O[r];if(!i)throw new Error(`Unknown workbook permission point: ${r}`);const a=this.getPoint(r);a!==t&&(this._fPermission.setWorkbookPermissionPoint(this._unitId,i,t),n.push({point:r,value:t,oldValue:a}))}if(n.length>0){const e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode("viewer")}async setEditable(){await this.setMode("editor")}canEdit(){return this.getPoint(m.Edit)}async setPoint(s,n){const e=O[s];if(!e)throw new Error(`Unknown workbook permission point: ${s}`);if(this.getPoint(s)===n)return;this._fPermission.setWorkbookPermissionPoint(this._unitId,e,n);const r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(s){var r;const n=O[s];if(!n)throw new Error(`Unknown workbook permission point: ${s}`);const e=new n(this._unitId),t=this._permissionService.getPermissionPoint(e.id);return(r=t==null?void 0:t.value)!=null?r:!0}getSnapshot(){return this._buildSnapshot()}async setCollaborators(s){const n=s.map(e=>({id:e.user.userID,subject:e.user,role:e.role}));await this._authzIoService.putCollaborators({objectID:this._unitId,unitID:this._unitId,collaborators:n}),s.forEach(e=>{this._collaboratorChangeSubject.next({type:"add",collaborator:{user:{id:e.user.userID},role:e.role}})})}async addCollaborator(s,n){await this._authzIoService.createCollaborator({objectID:this._unitId,unitID:this._unitId,collaborators:[{id:s.userID,subject:s,role:n}]}),this._collaboratorChangeSubject.next({type:"add",collaborator:{user:{id:s.userID},role:n}})}async updateCollaborator(s,n){await this._authzIoService.updateCollaborator({objectID:this._unitId,unitID:this._unitId,collaborator:{id:s.userID,subject:s,role:n}}),this._collaboratorChangeSubject.next({type:"update",collaborator:{user:{id:s.userID},role:n}})}async removeCollaborator(s){await this._authzIoService.deleteCollaborator({objectID:this._unitId,unitID:this._unitId,collaboratorID:s}),this._collaboratorChangeSubject.next({type:"delete",collaborator:{user:{id:s},role:N.Reader}})}async removeCollaborators(s){for(const n of s)await this.removeCollaborator(n)}async listCollaborators(){return(await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId})).map(n=>{var e,t;return{user:{id:((e=n.subject)==null?void 0:e.userID)||n.id,displayName:((t=n.subject)==null?void 0:t.name)||""},role:n.role}})}subscribe(s){const n=this.permission$.subscribe(s);return()=>n.unsubscribe()}dispose(){this._subscriptions.forEach(s=>s.unsubscribe()),this._permissionSubject.complete(),this._collaboratorChangeSubject.complete()}};Y=pe([L(1,h.Inject(h.Injector)),L(2,h.IPermissionService),L(3,h.IAuthzIoService)],Y);var Ee=Object.getOwnPropertyDescriptor,ye=(s,n,e,t)=>{for(var r=t>1?void 0:t?Ee(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},p=(s,n)=>(e,t)=>n(e,t,s);exports.FWorkbook=class extends v.FBaseInitialable{constructor(e,t,r,i,a,c,d,u,l,g){super(t);S(this,"id");this._workbook=e,this._injector=t,this._resourceLoaderService=r,this._selectionManagerService=i,this._univerInstanceService=a,this._commandService=c,this._permissionService=d,this._logService=u,this._localeService=l,this._definedNamesService=g,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(o.SetWorkbookNameCommand.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(){const e=this._workbook.getActiveSheet();return this._injector.createInstance(exports.FWorksheet,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(exports.FWorksheet,this,this._workbook,e))}create(e,t,r,i){var u,l,g;const a=h.mergeWorksheetSnapshotWithDefault(h.Tools.deepClone((u=i==null?void 0:i.sheet)!=null?u:{}));a.name=this._workbook.uniqueSheetName(e),a.rowCount=t,a.columnCount=r,a.id=(l=i==null?void 0:i.sheet)==null?void 0:l.id;const c=(g=i==null?void 0:i.index)!=null?g:this._workbook.getSheets().length;this._commandService.syncExecuteCommand(o.InsertSheetCommand.id,{unitId:this.id,index:c,sheet:a}),this._commandService.syncExecuteCommand(o.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[c].getSheetId()});const d=this._workbook.getActiveSheet();if(!d)throw new Error("No active sheet found");return this._injector.createInstance(exports.FWorksheet,this,this._workbook,d)}getSheetBySheetId(e){const t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(exports.FWorksheet,this,this._workbook,t):null}getSheetByName(e){const t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(exports.FWorksheet,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(o.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e=="string"?e:e.getSheetId()}),typeof e=="string"?this.getSheetBySheetId(e):e}insertSheet(e,t){var c,d,u;const r=h.mergeWorksheetSnapshotWithDefault(h.Tools.deepClone((c=t==null?void 0:t.sheet)!=null?c:{}));r.name=this._workbook.uniqueSheetName(e),r.id=(d=t==null?void 0:t.sheet)==null?void 0:d.id;const i=(u=t==null?void 0:t.index)!=null?u:this._workbook.getSheets().length;this._commandService.syncExecuteCommand(o.InsertSheetCommand.id,{unitId:this.id,index:i,sheet:r}),this._commandService.syncExecuteCommand(o.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[i].getSheetId()});const a=this._workbook.getActiveSheet();if(!a)throw new Error("No active sheet found");return this._injector.createInstance(exports.FWorksheet,this,this._workbook,a)}deleteSheet(e){const t=this.id,r=typeof e=="string"?e:e.getSheetId();return this._commandService.syncExecuteCommand(o.RemoveSheetCommand.id,{unitId:t,subUnitId:r})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(h.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(h.RedoCommand.id),this}onBeforeCommandExecute(e){return this._commandService.beforeCommandExecuted(t=>{var r;((r=t.params)==null?void 0:r.unitId)===this.id&&e(t)})}onCommandExecuted(e){return this._commandService.onCommandExecuted(t=>{var r;((r=t.params)==null?void 0:r.unitId)===this.id&&e(t)})}onSelectionChange(e){return h.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{this._univerInstanceService.getCurrentUnitForType(h.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(t!=null&&t.length?e(t.map(r=>r.range)):e([]))}))}setEditable(e){const t=new o.WorkbookEditablePermission(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(t.id)||this._permissionService.addPermissionPoint(t),this._permissionService.updatePermissionPoint(t.id,e),this}setActiveRange(e){const t=this.getActiveSheet(),r=e.getRange().sheetId||t.getSheetId(),i=r?this._workbook.getSheetBySheetId(r):this._workbook.getActiveSheet(!0);if(!i)throw new Error("No active sheet found");i.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(exports.FWorksheet,this,this._workbook,i));const a={unitId:this.getId(),subUnitId:r,selections:[e].map(c=>({range:c.getRange(),primary:o.getPrimaryForRange(c.getRange(),i),style:null}))};return this._commandService.syncExecuteCommand(o.SetSelectionsOperation.id,a),this}getActiveRange(){const e=this._workbook.getActiveSheet(),r=this._selectionManagerService.getCurrentSelections().find(i=>!!i.primary);return r?this._injector.createInstance(exports.FRange,this._workbook,e,r.range):null}getActiveCell(){const e=this._workbook.getActiveSheet(),r=this._selectionManagerService.getCurrentSelections().find(a=>!!a.primary);if(!r)return null;const i={...r.primary,rangeType:h.RANGE_TYPE.NORMAL};return this._injector.createInstance(exports.FRange,this._workbook,e,i)}deleteActiveSheet(){const e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(o.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(exports.FWorksheet,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){const 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 r=t;return r<0?r=0:r>this._workbook.getSheets().length-1&&(r=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(o.SetWorksheetOrderCommand.id,{unitId:e.getWorkbook().getUnitId(),order:r,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){const t=this.getActiveSheet();return this.moveSheet(t,e)}getPermission(){return this._injector.createInstance(exports.FPermission)}getWorkbookPermission(){return this._injector.createInstance(Y,this._workbook.getUnitId())}getDefinedName(e){const t=this._definedNamesService.getValueByName(this.id,e);return t?this._injector.createInstance(A,{...t,unitId:this.id}):null}getDefinedNames(){const e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(t=>this._injector.createInstance(A,{...t,unitId:this.id})):[]}insertDefinedName(e,t){const i=this._injector.createInstance(F).setName(e).setRef(t).build();return i.localSheetId=o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this.insertDefinedNameBuilder(i),this}deleteDefinedName(e){const t=this.getDefinedName(e);return t?(t.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(o.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(o.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(o.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(o.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(o.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new o.RangeThemeStyle(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)}};exports.FWorkbook=ye([p(1,h.Inject(h.Injector)),p(2,h.Inject(h.IResourceLoaderService)),p(3,h.Inject(o.SheetsSelectionsService)),p(4,h.IUniverInstanceService),p(5,h.ICommandService),p(6,h.IPermissionService),p(7,h.ILogService),p(8,h.Inject(h.LocaleService)),p(9,P.IDefinedNamesService)],exports.FWorkbook);class Pe extends v.FUniver{getCommandSheetTarget(n){var i;const e=n.params;if(!e)return this.getActiveSheet();const t=e.unitId?this.getUniverSheet(e.unitId):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!t)return;const r=t.getSheetBySheetId(e.subUnitId||e.sheetId)||t.getActiveSheet();if(r)return{workbook:t,worksheet:r}}getSheetTarget(n,e){const t=this.getUniverSheet(n);if(!t)return;const r=t.getSheetBySheetId(e);if(r)return{workbook:t,worksheet:r}}_initWorkbookEvent(n){const e=n.get(h.IUniverInstanceService);this.registerEventHandler(this.Event.WorkbookDisposed,()=>e.unitDisposed$.subscribe(t=>{t.type===h.UniverInstanceType.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:t.getUnitId(),unitType:t.type,snapshot:t.getSnapshot()})})),this.registerEventHandler(this.Event.WorkbookCreated,()=>e.unitAdded$.subscribe(t=>{if(t.type===h.UniverInstanceType.UNIVER_SHEET){const r=t,i=n.createInstance(exports.FWorkbook,r);this.fireEvent(this.Event.WorkbookCreated,{unitId:t.getUnitId(),type:t.type,workbook:i,unit:i})}}))}_initialize(n){const e=n.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeSheetCreate,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.InsertSheetCommand.id){const i=t.params,{unitId:a,index:c,sheet:d}=i||{},u=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!u)return;const l={workbook:u,index:c,sheet:d};if(this.fireEvent(this.Event.BeforeSheetCreate,l),l.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.SetWorksheetActiveOperation.id){const{subUnitId:i,unitId:a}=t.params,c=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!c||!i)return;const d=c.getSheetBySheetId(i),u=c.getActiveSheet();if(!d||!u)return;const l={workbook:c,activeSheet:d,oldActiveSheet:u};if(this.fireEvent(this.Event.BeforeActiveSheetChange,l),l.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetDelete,()=>e.beforeCommandExecuted(t=>{if(t.id===o.RemoveSheetCommand.id){const r=this.getCommandSheetTarget(t);if(!r)return;const{workbook:i,worksheet:a}=r,c={workbook:i,worksheet:a};if(this.fireEvent(this.Event.BeforeSheetDelete,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetMove,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetWorksheetOrderMutation.id){const{fromOrder:r,toOrder:i}=t.params,a=this.getCommandSheetTarget(t);if(!a)return;const c={workbook:a.workbook,worksheet:a.worksheet,newIndex:i,oldIndex:r};if(this.fireEvent(this.Event.BeforeSheetMove,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetWorksheetNameCommand.id){const{name:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const a={workbook:i.workbook,worksheet:i.worksheet,newName:r,oldName:i.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetTabColorMutation.id){const{color:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const a={workbook:i.workbook,worksheet:i.worksheet,newColor:r,oldColor:i.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetWorksheetHideMutation.id){const{hidden:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const a={workbook:i.workbook,worksheet:i.worksheet,hidden:!!r};if(this.fireEvent(this.Event.BeforeSheetHideChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.SetGridlinesColorCommand.id){const i=this.getCommandSheetTarget(t);if(!i)return;const a={...i,color:(r=t.params)==null?void 0:r.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.ToggleGridlinesCommand.id){const i=this.getCommandSheetTarget(t);if(!i)return;const a={...i,enabled:!!((r=t.params)!=null&&r.showGridlines)};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.SheetValueChanged,()=>e.onCommandExecuted(t=>{if(o.COMMAND_LISTENER_VALUE_CHANGE.indexOf(t.id)>-1){if(!this.getActiveSheet())return;const i=o.getValueChangedEffectedRange(t).map(a=>{var c,d;return(d=(c=this.getWorkbook(a.unitId))==null?void 0:c.getSheetBySheetId(a.subUnitId))==null?void 0:d.getRange(a.range)}).filter(Boolean);if(!i.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:t,effectedRanges:i})}})),this.registerEventHandler(this.Event.SheetCreated,()=>e.onCommandExecuted(t=>{var r;if(t.id===o.InsertSheetCommand.id){const i=t.params,{unitId:a}=i||{},c=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!c)return;const d=c.getActiveSheet();if(!d)return;const u={workbook:c,worksheet:d};this.fireEvent(this.Event.SheetCreated,u)}})),this.registerEventHandler(this.Event.ActiveSheetChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetActiveOperation.id){const r=this.getActiveSheet();if(!r)return;const{workbook:i,worksheet:a}=r;this._fireActiveSheetChanged(i,a)}})),this.registerEventHandler(this.Event.SheetDeleted,()=>e.onCommandExecuted(t=>{var r;if(t.id===o.RemoveSheetCommand.id){const{subUnitId:i,unitId:a}=t.params,c=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!c||!i)return;this._fireSheetDeleted(c,i)}})),this.registerEventHandler(this.Event.SheetMoved,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetOrderMutation.id){const{toOrder:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetMoved(i.workbook,i.worksheet,r)}})),this.registerEventHandler(this.Event.SheetNameChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetNameCommand.id){const{name:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetNameChanged(i.workbook,i.worksheet,r)}})),this.registerEventHandler(this.Event.SheetTabColorChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetTabColorMutation.id){const{color:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetTabColorChanged(i.workbook,i.worksheet,r)}})),this.registerEventHandler(this.Event.SheetHideChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetHideMutation.id){const{hidden:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetHideChanged(i.workbook,i.worksheet,!!r)}})),this.registerEventHandler(this.Event.GridlineChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetGridlinesColorCommand.id||t.id===o.ToggleGridlinesCommand.id){const r=this.getCommandSheetTarget(t);if(!r)return;this.fireEvent(this.Event.GridlineChanged,{...r,enabled:!r.worksheet.hasHiddenGridLines(),color:r.worksheet.getGridLinesColor()})}})),this._initWorkbookEvent(n)}createUniverSheet(n,e){const r=this._injector.get(h.IUniverInstanceService).createUnit(h.UniverInstanceType.UNIVER_SHEET,n,e);return this._injector.createInstance(exports.FWorkbook,r)}createWorkbook(n,e){return this.createUniverSheet(n,e)}getActiveWorkbook(){const n=this._univerInstanceService.getCurrentUnitForType(h.UniverInstanceType.UNIVER_SHEET);return n?this._injector.createInstance(exports.FWorkbook,n):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(n){const e=this._univerInstanceService.getUnit(n,h.UniverInstanceType.UNIVER_SHEET);return e?this._injector.createInstance(exports.FWorkbook,e):null}getWorkbook(n){return this.getUniverSheet(n)}getPermission(){return this._injector.createInstance(exports.FPermission)}onUniverSheetCreated(n){const e=this._univerInstanceService.getTypeOfUnitAdded$(h.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const r=this._injector.createInstance(exports.FWorkbook,t);n(r)});return h.toDisposable(e)}newDefinedName(){return this._injector.createInstance(F)}getActiveSheet(){const n=this.getActiveWorkbook();if(!n)return null;const e=n.getActiveSheet();return e?{workbook:n,worksheet:e}:null}setFreezeSync(n){this._injector.get(o.SheetsFreezeSyncController).setEnabled(n)}_fireActiveSheetChanged(n,e){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:n,activeSheet:e})}_fireSheetDeleted(n,e){this.fireEvent(this.Event.SheetDeleted,{workbook:n,sheetId:e})}_fireSheetMoved(n,e,t){this.fireEvent(this.Event.SheetMoved,{workbook:n,worksheet:e,newIndex:t})}_fireSheetNameChanged(n,e,t){this.fireEvent(this.Event.SheetNameChanged,{workbook:n,worksheet:e,newName:t})}_fireSheetTabColorChanged(n,e,t){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:n,worksheet:e,newColor:t})}_fireSheetHideChanged(n,e,t){this.fireEvent(this.Event.SheetHideChanged,{workbook:n,worksheet:e,hidden:t})}}v.FUniver.extend(Pe);class Q{get SheetValueChangeType(){return o.SheetValueChangeType}get SheetSkeletonChangeType(){return o.SheetSkeletonChangeType}get SplitDelimiterType(){return o.SplitDelimiterEnum}get UnitRole(){return N}get WorkbookPermissionPoint(){return m}get WorksheetPermissionPoint(){return _}get RangePermissionPoint(){return k}}v.FEnum.extend(Q);class X{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"}}v.FEventName.extend(X);var Ue=Object.getOwnPropertyDescriptor,We=(s,n,e,t)=>{for(var r=t>1?void 0:t?Ue(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},xe=(s,n)=>(e,t)=>n(e,t,s);exports.FSheetHooks=class extends v.FBase{constructor(n){super(),this._injector=n}};exports.FSheetHooks=We([xe(0,h.Inject(h.Injector))],exports.FSheetHooks);exports.FSheetEventName=X;exports.FSheetsEnum=Q;
|
|
1
|
+
"use strict";var re=Object.defineProperty;var se=(s,n,e)=>n in s?re(s,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[n]=e;var w=(s,n,e)=>se(s,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("@univerjs/core"),R=require("@univerjs/core/facade"),o=require("@univerjs/sheets"),U=require("@univerjs/engine-formula"),O=require("rxjs"),C=require("rxjs/operators");var ie=Object.getOwnPropertyDescriptor,oe=(s,n,e,t)=>{for(var r=t>1?void 0:t?ie(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},p=(s,n)=>(e,t)=>n(e,t,s);function ae(s,n,e){const t=e.getDefinedNameMap(s);if(t==null)return n.t("definedName.defaultName")+1;const i=Array.from(Object.values(t)).length+1,a=n.t("definedName.defaultName")+i;if(e.getValueByName(s,a)==null)return a;let c=i+1;for(;;){const d=n.t("definedName.defaultName")+c;if(e.getValueByName(s,d)==null)return d;c++}}class B{constructor(){w(this,"_definedNameParam");this._definedNameParam={id:h.generateRandomId(10),unitId:"",name:"",formulaOrRefString:"",localSheetId:o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}}setName(n){return this._definedNameParam.name=n,this}setFormula(n){return this._definedNameParam.formulaOrRefString=`=${n}`,this}setRef(n){return this._definedNameParam.formulaOrRefString=n,this}setRefByRange(n,e,t,r){return this._definedNameParam.formulaOrRefString=U.serializeRange({startRow:n,endRow:n+(t!=null?t:1)-1,startColumn:e,endColumn:e+(r!=null?r:1)-1}),this}setComment(n){return this._definedNameParam.comment=n,this}setScopeToWorksheet(n){return this._definedNameParam.localSheetId=n.getSheetId(),this}setScopeToWorkbook(){return this._definedNameParam.localSheetId=o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this}setHidden(n){return this._definedNameParam.hidden=n,this}build(){return this._definedNameParam}load(n){return this._definedNameParam=n,this}}let F=class extends R.FBase{constructor(s,n,e,t,r,i,a,c,d,l){super(),this._definedNameParam=s,this._injector=n,this._commandService=e,this._permissionService=t,this._worksheetProtectionRuleModel=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointRuleModel=a,this._authzIoService=c,this._localeService=d,this._definedNamesService=l}_apply(){this._definedNameParam.name===""&&(this._definedNameParam.name=ae(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(o.SetDefinedNameCommand.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(s){this._definedNameParam.name=s,this._apply()}setFormula(s){this._definedNameParam.formulaOrRefString=`=${s}`,this._apply()}setRef(s){this._definedNameParam.formulaOrRefString=s,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(s,n,e,t){this._definedNameParam.formulaOrRefString=U.serializeRange({startRow:s,endRow:s+(e!=null?e:1)-1,startColumn:n,endColumn:n+(t!=null?t:1)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(s){this._definedNameParam.comment=s,this._apply()}setScopeToWorksheet(s){this._definedNameParam.localSheetId=s.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(s){this._definedNameParam.hidden=s,this._apply()}delete(){this._commandService.syncExecuteCommand(o.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){const s=this._injector.createInstance(B);return s.load(this._definedNameParam),s}};F=oe([p(1,h.Inject(h.Injector)),p(2,h.ICommandService),p(3,h.IPermissionService),p(4,h.Inject(o.WorksheetProtectionRuleModel)),p(5,h.Inject(o.RangeProtectionRuleModel)),p(6,h.Inject(o.WorksheetProtectionPointModel)),p(7,h.Inject(h.IAuthzIoService)),p(8,h.Inject(h.LocaleService)),p(9,U.IDefinedNamesService)],F);var W=(s=>(s[s.Reader=0]="Reader",s[s.Editor=1]="Editor",s[s.Owner=2]="Owner",s))(W||{}),g=(s=>(s.Edit="WorkbookEdit",s.View="WorkbookView",s.Print="WorkbookPrint",s.Export="WorkbookExport",s.Share="WorkbookShare",s.CopyContent="WorkbookCopy",s.DuplicateFile="WorkbookDuplicate",s.Comment="WorkbookComment",s.ManageCollaborator="WorkbookManageCollaborator",s.CreateSheet="WorkbookCreateSheet",s.DeleteSheet="WorkbookDeleteSheet",s.RenameSheet="WorkbookRenameSheet",s.MoveSheet="WorkbookMoveSheet",s.HideSheet="WorkbookHideSheet",s.ViewHistory="WorkbookViewHistory",s.ManageHistory="WorkbookHistory",s.RecoverHistory="WorkbookRecoverHistory",s.CreateProtection="WorkbookCreateProtect",s.InsertRow="WorkbookInsertRow",s.InsertColumn="WorkbookInsertColumn",s.DeleteRow="WorkbookDeleteRow",s.DeleteColumn="WorkbookDeleteColumn",s.CopySheet="WorkbookCopySheet",s))(g||{}),S=(s=>(s.Edit="WorksheetEdit",s.View="WorksheetView",s.Copy="WorksheetCopy",s.SetCellValue="WorksheetSetCellValue",s.SetCellStyle="WorksheetSetCellStyle",s.SetRowStyle="WorksheetSetRowStyle",s.SetColumnStyle="WorksheetSetColumnStyle",s.InsertRow="WorksheetInsertRow",s.InsertColumn="WorksheetInsertColumn",s.DeleteRow="WorksheetDeleteRow",s.DeleteColumn="WorksheetDeleteColumn",s.Sort="WorksheetSort",s.Filter="WorksheetFilter",s.PivotTable="WorksheetPivotTable",s.InsertHyperlink="WorksheetInsertHyperlink",s.EditExtraObject="WorksheetEditExtraObject",s.ManageCollaborator="WorksheetManageCollaborator",s.DeleteProtection="WorksheetDeleteProtection",s.SelectProtectedCells="WorksheetSelectProtectedCells",s.SelectUnProtectedCells="WorksheetSelectUnProtectedCells",s))(S||{}),I=(s=>(s.Edit="RangeEdit",s.View="RangeView",s.ManageCollaborator="RangeManageCollaborator",s.Delete="RangeDeleteProtection",s))(I||{}),he=Object.getOwnPropertyDescriptor,ce=(s,n,e,t)=>{for(var r=t>1?void 0:t?he(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},P=(s,n)=>(e,t)=>n(e,t,s);exports.FPermission=class extends R.FBase{constructor(e,t,r,i,a,c,d,l){super();w(this,"permissionPointsDefinition",o.PermissionPointsDefinitions);w(this,"rangeRuleChangedAfterAuth$");w(this,"sheetRuleChangedAfterAuth$");w(this,"unitPermissionInitStateChange$");this._injector=e,this._commandService=t,this._permissionService=r,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=c,this._workbookPermissionService=d,this._authzIoService=l,this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$,this.unitPermissionInitStateChange$=this._workbookPermissionService.unitPermissionInitStateChange$}setWorkbookPermissionPoint(e,t,r){const i=new t(e);this._permissionService.getPermissionPoint(i.id)||this._permissionService.addPermissionPoint(i),this._permissionService.updatePermissionPoint(i.id,r)}checkWorkbookPermissionPoint(e,t){const r=new t(e),i=this._permissionService.getPermissionPoint(r.id);if(i)return i.value}setWorkbookEditPermission(e,t){this.setWorkbookPermissionPoint(e,o.WorkbookEditablePermission,t)}async addWorksheetBasePermission(e,t,r){let i=[];if(r!=null&&r.allowedUsers){const d=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),l=new Set(r.allowedUsers);i=d.filter(u=>{var _;return l.has(((_=u.subject)==null?void 0:_.userID)||u.id)}).map(u=>({id:u.id,role:W.Editor,subject:u.subject}));const m=new Set(i.map(u=>{var _;return((_=u.subject)==null?void 0:_.userID)||u.id}));r.allowedUsers.forEach(u=>{m.has(u)||console.error(`User ${u} not found in collaborators list`)})}const a=await this._authzIoService.create({objectType:o.UnitObject.Worksheet,worksheetObject:{collaborators:i,unitID:e,strategies:[],name:(r==null?void 0:r.name)||"",scope:void 0}});if(this._commandService.syncExecuteCommand(o.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:t,rule:{permissionId:a,unitType:o.UnitObject.Worksheet,unitId:e,subUnitId:t}}))return a}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(o.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:t}),[...o.getAllWorksheetPermissionPoint(),...o.getAllWorksheetPermissionPointByPointPanel()].forEach(r=>{const i=new r(e,t);this._permissionService.updatePermissionPoint(i.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,r,i){const a=this._worksheetProtectionRuleModel.getRule(e,t);let c;if(r===o.WorksheetEditPermission||r===o.WorksheetViewPermission)a?c=a.permissionId:c=await this.addWorksheetBasePermission(e,t);else{const u=this._worksheetProtectionPointRuleModel.getRule(e,t);u?c=u.permissionId:(c=await this._authzIoService.create({objectType:o.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:"",scope:void 0}}),this._commandService.syncExecuteCommand(o.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:c}}))}const l=new r(e,t);if(this._permissionService.getPermissionPoint(l.id)||this._permissionService.addPermissionPoint(l),c){const u=l.subType;await this._authzIoService.update({objectType:o.UnitObject.Worksheet,objectID:c,strategies:[{action:u,role:i?W.Owner:W.Reader}],unitID:e,share:void 0,name:"",scope:void 0,collaborators:void 0})}return this._permissionService.updatePermissionPoint(l.id,i),c}checkWorksheetPermissionPoint(e,t,r){const i=new r(e,t),a=this._permissionService.getPermissionPoint(i.id);if(a)return a.value}async addRangeBaseProtection(e,t,r,i){let a=[];if(i!=null&&i.allowedUsers){const b=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),H=new Set(i.allowedUsers);a=b.filter(v=>{var j;return H.has(((j=v.subject)==null?void 0:j.userID)||v.id)}).map(v=>({id:v.id,role:W.Editor,subject:v.subject}));const $=new Set(a.map(v=>{var j;return((j=v.subject)==null?void 0:j.userID)||v.id}));i.allowedUsers.forEach(v=>{$.has(v)||console.error(`User ${v} not found in collaborators list`)})}const c=await this._authzIoService.create({objectType:o.UnitObject.SelectRange,selectRangeObject:{collaborators:a,unitID:e,name:(i==null?void 0:i.name)||"",scope:void 0}}),d=`ruleId_${h.generateRandomId(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).some(b=>b.ranges.some(H=>r.some($=>h.Rectangle.intersects($.getRange(),H)))))throw new Error("range protection cannot intersect");const u=this._determineRangeViewState(i),_=this._determineRangeEditState(i),k={unitId:e,subUnitId:t,rules:[{permissionId:c,unitType:o.UnitObject.SelectRange,unitId:e,subUnitId:t,ranges:r.map(b=>b.getRange()),id:d,description:i==null?void 0:i.name,viewState:u,editState:_}]};if(this._commandService.syncExecuteCommand(o.AddRangeProtectionMutation.id,k))return{permissionId:c,ruleId:d}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?o.ViewStateEnum.NoOneElseCanView:o.ViewStateEnum.OthersCanView}_determineRangeEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&((t=e==null?void 0:e.allowedUsers)!=null&&t.length)?o.EditStateEnum.DesignedUserCanEdit:o.EditStateEnum.OnlyMe}removeRangeProtection(e,t,r){this._commandService.syncExecuteCommand(o.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleIds:r})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...o.getAllWorksheetPermissionPointByPointPanel()].forEach(c=>{const d=new c(e,t);this._permissionService.updatePermissionPoint(d.id,d.value)}))}setRangeProtectionPermissionPoint(e,t,r,i,a){const c=new i(e,t,r);this._permissionService.getPermissionPoint(c.id)||this._permissionService.addPermissionPoint(c),this._permissionService.updatePermissionPoint(c.id,a)}setRangeProtectionRanges(e,t,r,i){const a=this._rangeProtectionRuleModel.getRule(e,t,r);if(a){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).filter(l=>l.id!==r).some(l=>l.ranges.some(m=>i.some(u=>h.Rectangle.intersects(u.getRange(),m)))))throw new Error("range protection cannot intersect");this._commandService.syncExecuteCommand(o.SetRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleId:r,rule:{...a,ranges:i.map(l=>l.getRange())}})}}getPermissionInfoWithCell(e,t,r,i){const a=h.cellToRange(r,i),c=this._rangeProtectionRuleModel.getSubunitRuleList(e,t).find(d=>d.ranges.some(m=>h.Rectangle.intersects(a,m)));if(c)return{permissionId:c.permissionId,ruleId:c.id}}};exports.FPermission=ce([P(0,h.Inject(h.Injector)),P(1,h.ICommandService),P(2,h.IPermissionService),P(3,h.Inject(o.WorksheetProtectionRuleModel)),P(4,h.Inject(o.RangeProtectionRuleModel)),P(5,h.Inject(o.WorksheetProtectionPointModel)),P(6,h.Inject(o.WorkbookPermissionService)),P(7,h.Inject(h.IAuthzIoService))],exports.FPermission);var de=Object.getOwnPropertyDescriptor,le=(s,n,e,t)=>{for(var r=t>1?void 0:t?de(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},ue=(s,n)=>(e,t)=>n(e,t,s);exports.FSelection=class{constructor(n,e,t,r){this._workbook=n,this._worksheet=e,this._selections=t,this._injector=r}getActiveRange(){const n=this._selections.find(e=>!!e.primary);return n?this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,n.range):null}getActiveRangeList(){return this._selections.map(n=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,n.range))}getCurrentCell(){const n=this._selections.find(e=>!!e.primary);return n?n.primary:null}getActiveSheet(){const n=this._injector.createInstance(exports.FWorkbook,this._workbook);return this._injector.createInstance(exports.FWorksheet,n,this._workbook,this._worksheet)}updatePrimaryCell(n){const e=this._injector.get(h.ICommandService);let t=[],r=!1;for(const{range:a,style:c}of this._selections)h.Rectangle.contains(a,n.getRange())?(t.push({range:a,primary:o.getPrimaryForRange(n.getRange(),this._worksheet),style:c}),r=!0):t.push({range:a,primary:null,style:c});r||(t=[{range:n.getRange(),primary:o.getPrimaryForRange(n.getRange(),this._worksheet)}]);const i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:t};return e.syncExecuteCommand(o.SetSelectionsOperation.id,i),new exports.FSelection(this._workbook,this._worksheet,t,this._injector)}getNextDataRange(n){if(!this._selections.find(r=>!!r.primary))return null;const t=o.getNextPrimaryCell(this._selections.concat(),n,this._worksheet);return t?this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,t):null}};exports.FSelection=le([ue(3,h.Inject(h.Injector))],exports.FSelection);var Q=(s=>(s[s.Reader=0]="Reader",s[s.Editor=1]="Editor",s[s.Owner=2]="Owner",s[s.UNRECOGNIZED=-1]="UNRECOGNIZED",s))(Q||{}),me=Object.getOwnPropertyDescriptor,ge=(s,n,e,t)=>{for(var r=t>1?void 0:t?me(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},z=(s,n)=>(e,t)=>n(e,t,s);let y=class{constructor(s,n,e,t,r,i,a,c,d){this._unitId=s,this._subUnitId=n,this._ruleId=e,this._permissionId=t,this._ranges=r,this._options=i,this._injector=a,this._commandService=c,this._rangeProtectionRuleModel=d}get id(){return this._ruleId}get ranges(){return this._ranges}get options(){return{...this._options}}async updateRanges(s){if(!s||s.length===0)throw new Error("Ranges cannot be empty");const n=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,this._ruleId);if(!n)throw new Error(`Rule ${this._ruleId} not found`);if(this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).filter(r=>r.id!==this._ruleId).some(r=>r.ranges.some(i=>s.some(a=>{const c=a.getRange();return this._rangesIntersect(c,i)}))))throw new Error("Range protection cannot intersect with other protection rules");await this._commandService.executeCommand(o.SetRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleId:this._ruleId,rule:{...n,ranges:s.map(r=>r.getRange())}}),this._ranges.length=0,this._ranges.push(...s)}async remove(){await this._commandService.executeCommand(o.DeleteRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,ruleIds:[this._ruleId]})}_rangesIntersect(s,n){return!(s.endRow<n.startRow||s.startRow>n.endRow||s.endColumn<n.startColumn||s.startColumn>n.endColumn)}};y=ge([z(6,h.Inject(h.Injector)),z(7,h.Inject(h.ICommandService)),z(8,h.Inject(o.RangeProtectionRuleModel))],y);const T={[g.Edit]:o.WorkbookEditablePermission,[g.View]:o.WorkbookViewPermission,[g.Print]:o.WorkbookPrintPermission,[g.Export]:o.WorkbookExportPermission,[g.Share]:o.WorkbookSharePermission,[g.CopyContent]:o.WorkbookCopyPermission,[g.DuplicateFile]:o.WorkbookDuplicatePermission,[g.Comment]:o.WorkbookCommentPermission,[g.ManageCollaborator]:o.WorkbookManageCollaboratorPermission,[g.CreateSheet]:o.WorkbookCreateSheetPermission,[g.DeleteSheet]:o.WorkbookDeleteSheetPermission,[g.RenameSheet]:o.WorkbookRenameSheetPermission,[g.MoveSheet]:o.WorkbookMoveSheetPermission,[g.HideSheet]:o.WorkbookHideSheetPermission,[g.ViewHistory]:o.WorkbookViewHistoryPermission,[g.ManageHistory]:o.WorkbookHistoryPermission,[g.RecoverHistory]:o.WorkbookRecoverHistoryPermission,[g.CreateProtection]:o.WorkbookCreateProtectPermission,[g.InsertRow]:o.WorkbookInsertRowPermission,[g.InsertColumn]:o.WorkbookInsertColumnPermission,[g.DeleteRow]:o.WorkbookDeleteRowPermission,[g.DeleteColumn]:o.WorkbookDeleteColumnPermission,[g.CopySheet]:o.WorkbookCopySheetPermission},V={[S.Edit]:o.WorksheetEditPermission,[S.View]:o.WorksheetViewPermission,[S.Copy]:o.WorksheetCopyPermission,[S.SetCellValue]:o.WorksheetSetCellValuePermission,[S.SetCellStyle]:o.WorksheetSetCellStylePermission,[S.SetRowStyle]:o.WorksheetSetRowStylePermission,[S.SetColumnStyle]:o.WorksheetSetColumnStylePermission,[S.InsertRow]:o.WorksheetInsertRowPermission,[S.InsertColumn]:o.WorksheetInsertColumnPermission,[S.DeleteRow]:o.WorksheetDeleteRowPermission,[S.DeleteColumn]:o.WorksheetDeleteColumnPermission,[S.Sort]:o.WorksheetSortPermission,[S.Filter]:o.WorksheetFilterPermission,[S.PivotTable]:o.WorksheetPivotTablePermission,[S.InsertHyperlink]:o.WorksheetInsertHyperlinkPermission,[S.EditExtraObject]:o.WorksheetEditExtraObjectPermission,[S.ManageCollaborator]:o.WorksheetManageCollaboratorPermission,[S.DeleteProtection]:o.WorksheetDeleteProtectionPermission,[S.SelectProtectedCells]:o.WorksheetSelectProtectedCellsPermission,[S.SelectUnProtectedCells]:o.WorksheetSelectUnProtectedCellsPermission},N={[I.Edit]:o.RangeProtectionPermissionEditPoint,[I.View]:o.RangeProtectionPermissionViewPoint,[I.ManageCollaborator]:o.RangeProtectionPermissionManageCollaPoint,[I.Delete]:o.RangeProtectionPermissionDeleteProtectionPoint};var _e=Object.getOwnPropertyDescriptor,Se=(s,n,e,t)=>{for(var r=t>1?void 0:t?_e(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},D=(s,n)=>(e,t)=>n(e,t,s);let q=class{constructor(s,n,e,t,r,i,a,c){w(this,"_permissionSubject");w(this,"_rangeRulesSubject");w(this,"permission$");w(this,"pointChange$");w(this,"rangeProtectionChange$");w(this,"rangeProtectionRules$");w(this,"_unitId");w(this,"_subUnitId");w(this,"_subscriptions",[]);w(this,"_fPermission");this._worksheet=s,this._injector=n,this._permissionService=e,this._authzIoService=t,this._commandService=r,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointModel=a,this._worksheetProtectionRuleModel=c,this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new O.BehaviorSubject(this._buildSnapshot()),this._rangeRulesSubject=new O.BehaviorSubject(this._buildRangeProtectionRules()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.rangeProtectionChange$=this._createRangeProtectionChangeStream(),this.rangeProtectionRules$=this._createRangeProtectionRulesStream()}_createPermissionStream(){const s=this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>n.id.includes(this._unitId)&&n.id.includes(this._subUnitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(s),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>JSON.stringify(n)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe(C.filter(s=>s.id.includes(this._unitId)&&s.id.includes(this._subUnitId)),C.map(s=>{var e,t;const n=this._extractWorksheetPointType(s.id);return n?{point:n,value:(e=s.value)!=null?e:!1,oldValue:!((t=s.value)!=null&&t)}:null}),C.filter(s=>s!==null),C.shareReplay({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(s=>s.unitId===this._unitId&&s.subUnitId===this._subUnitId),C.map(s=>{const n=this._buildRangeProtectionRules();return{type:s.type==="delete"?"delete":s.type==="set"?"update":"add",rules:n}}),C.shareReplay({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){const s=this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(n=>n.unitId===this._unitId&&n.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(s),this._rangeRulesSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>n.length!==e.length?!1:n.every((t,r)=>t.id===e[r].id)),C.shareReplay({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(s){for(const[n,e]of Object.entries(V))if(new e(this._unitId,this._subUnitId).id===s)return n;return null}_getRuleEditPermission(s){var r;const n=N[I.Edit];if(!n)return!1;const e=new n(this._unitId,this._subUnitId,s.permissionId),t=this._permissionService.getPermissionPoint(e.id);return(r=t==null?void 0:t.value)!=null?r:!1}_buildSnapshot(){const s={};for(const n in S){const e=S[n];s[e]=this.getPoint(e)}return s}_buildRangeProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(n=>{const e=n.ranges.map(t=>this._worksheet.getRange(t.startRow,t.startColumn,t.endRow-t.startRow+1,t.endColumn-t.startColumn+1));return this._injector.createInstance(y,this._unitId,this._subUnitId,n.id,n.permissionId,e,{name:n.description||"",allowEdit:this._getRuleEditPermission(n)})})}_buildProtectionRule(s){const n=s.ranges.map(t=>this._worksheet.getRange(t)),e={name:s.description||"",allowViewByOthers:s.viewState!==o.ViewStateEnum.NoOneElseCanView};return s.editState===o.EditStateEnum.DesignedUserCanEdit?e.allowEdit=!0:e.allowEdit=!1,this._injector.createInstance(y,this._unitId,this._subUnitId,s.id,s.permissionId,n,e)}debugCellPermission(s,n){const e=this._fPermission.getPermissionInfoWithCell(this._unitId,this._subUnitId,s,n);if(!e)return;const{ruleId:t}=e,r=this._rangeProtectionRuleModel.getRule(this._unitId,this._subUnitId,t);if(r)return this._buildProtectionRule(r)}async protect(s){if(this.isProtected())throw new Error("Worksheet is already protected. Call unprotect() first.");const n=await this._fPermission.addWorksheetBasePermission(this._unitId,this._subUnitId,s);if(!n)throw new Error("Failed to create worksheet protection");return n}async unprotect(){if(!this.isProtected())return;this._fPermission.removeWorksheetPermission(this._unitId,this._subUnitId);const s=this._buildSnapshot();this._permissionSubject.next(s)}isProtected(){return!!this._worksheetProtectionRuleModel.getRule(this._unitId,this._subUnitId)}async setMode(s){const n=this._getModePermissions(s);await this._batchSetPermissionPoints(n)}_getModePermissions(s){const n={};switch(Object.values(S).forEach(e=>{n[e]=!1}),s){case"editable":Object.values(S).forEach(e=>{n[e]=!0});break;case"readOnly":n[S.View]=!0;break;case"filterOnly":n[S.View]=!0,n[S.Sort]=!0,n[S.Filter]=!0;break}return n}async _batchSetPermissionPoints(s){const n=[];for(const[e,t]of Object.entries(s)){const r=e,i=V[r];if(!i)throw new Error(`Unknown worksheet permission point: ${r}`);const a=this.getPoint(r);a!==t&&(await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,i,t),n.push({point:r,value:t,oldValue:a}))}if(n.length>0){const e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode("readOnly")}async setEditable(){await this.setMode("editable")}canEdit(){return this.getPoint(S.Edit)}canEditCell(s,n){if(!this.canEdit())return!1;const e=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);for(const t of e)for(const r of t.ranges)if(s>=r.startRow&&s<=r.endRow&&n>=r.startColumn&&n<=r.endColumn)return this._getRuleEditPermission(t);return!0}canViewCell(s,n){return this.getPoint(S.View)}async setPoint(s,n){const e=V[s];if(!e)throw new Error(`Unknown worksheet permission point: ${s}`);if(this.getPoint(s)===n)return;await this._fPermission.setWorksheetPermissionPoint(this._unitId,this._subUnitId,e,n);const r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(s){var r;const n=V[s];if(!n)throw new Error(`Unknown worksheet permission point: ${s}`);const e=new n(this._unitId,this._subUnitId),t=this._permissionService.getPermissionPoint(e.id);return(r=t==null?void 0:t.value)!=null?r:!0}getSnapshot(){return this._buildSnapshot()}async applyConfig(s){if(s.mode&&await this.setMode(s.mode),s.points)for(const[n,e]of Object.entries(s.points))typeof e=="boolean"&&await this.setPoint(n,e);if(s.rangeProtections&&s.rangeProtections.length>0){const n=s.rangeProtections.map(e=>({ranges:e.rangeRefs.map(t=>this._worksheet.getRange(t)),options:e.options}));await this.protectRanges(n)}}async protectRanges(s){if(!s||s.length===0)throw new Error("Configs cannot be empty");let n=[];s.some(c=>{var d,l;return(l=(d=c.options)==null?void 0:d.allowedUsers)==null?void 0:l.length})&&(n=await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId}));const t=await Promise.all(s.map(c=>{var l,m;let d=[];if((l=c.options)!=null&&l.allowedUsers){const u=new Set(c.options.allowedUsers);d=n.filter(k=>{var f;return u.has(((f=k.subject)==null?void 0:f.userID)||k.id)}).map(k=>({id:k.id,role:Q.Editor,subject:k.subject}));const _=new Set(d.map(k=>{var f;return((f=k.subject)==null?void 0:f.userID)||k.id}));c.options.allowedUsers.forEach(k=>{_.has(k)||console.error(`User ${k} not found in collaborators list`)})}return this._authzIoService.create({objectType:o.UnitObject.SelectRange,selectRangeObject:{collaborators:d,unitID:this._unitId,name:((m=c.options)==null?void 0:m.name)||"",scope:void 0}})})),r=s.map((c,d)=>{var u;const l=this._determineViewState(c.options),m=this._determineEditState(c.options);return{permissionId:t[d],unitType:o.UnitObject.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:c.ranges.map(_=>_.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((u=c.options)==null?void 0:u.name)||"",viewState:l,editState:m}});if(!await this._commandService.executeCommand(o.AddRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:r}))throw new Error("Failed to create range protection rules");return await Promise.all(s.map((c,d)=>this._setPermissionPoints(t[d],c.options))),r.map((c,d)=>this._injector.createInstance(y,this._unitId,this._subUnitId,c.id,c.permissionId,s[d].ranges,s[d].options||{}))}_determineViewState(s){return(s==null?void 0:s.allowViewByOthers)===!1?o.ViewStateEnum.NoOneElseCanView:o.ViewStateEnum.OthersCanView}_determineEditState(s){var n;return(s==null?void 0:s.allowEdit)===!0&&((n=s==null?void 0:s.allowedUsers)!=null&&n.length)?o.EditStateEnum.DesignedUserCanEdit:o.EditStateEnum.OnlyMe}async _setPermissionPoints(s,n){if(!n)return;const e=(t,r)=>t===void 0?r:typeof t=="boolean"?t:!0;await this._setPermissionPoint(s,I.Edit,e(n.allowEdit,!1)),await this._setPermissionPoint(s,I.View,e(n.allowViewByOthers,!0))}async _setPermissionPoint(s,n,e){const t=N[n];t&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,s,t,e)}async unprotectRules(s){!s||s.length===0||this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,s)}async listRangeProtectionRules(){return this._buildRangeProtectionRules()}subscribe(s){const n=this.permission$.subscribe(s);return()=>n.unsubscribe()}dispose(){this._subscriptions.forEach(s=>s.unsubscribe()),this._permissionSubject.complete(),this._rangeRulesSubject.complete()}};q=Se([D(1,h.Inject(h.Injector)),D(2,h.IPermissionService),D(3,h.IAuthzIoService),D(4,h.ICommandService),D(5,h.Inject(o.RangeProtectionRuleModel)),D(6,h.Inject(o.WorksheetProtectionPointModel)),D(7,h.Inject(o.WorksheetProtectionRuleModel))],q);function we(s){switch(s){case"left":return h.HorizontalAlign.LEFT;case"center":return h.HorizontalAlign.CENTER;case"normal":return h.HorizontalAlign.RIGHT;default:throw new Error(`Invalid horizontal alignment: ${s}`)}}function X(s){switch(s){case h.HorizontalAlign.LEFT:return"left";case h.HorizontalAlign.CENTER:return"center";case h.HorizontalAlign.RIGHT:return"normal";default:return"general"}}function Ce(s){switch(s){case"top":return h.VerticalAlign.TOP;case"middle":return h.VerticalAlign.MIDDLE;case"bottom":return h.VerticalAlign.BOTTOM;default:throw new Error(`Invalid vertical alignment: ${s}`)}}function ee(s){switch(s){case h.VerticalAlign.TOP:return"top";case h.VerticalAlign.MIDDLE:return"middle";case h.VerticalAlign.BOTTOM:return"bottom";default:return"general"}}function L(s,n){return{startRow:s.startRow,endRow:s.endRow,startColumn:0,endColumn:n.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW}}function G(s,n){return{startRow:0,endRow:n.getRowCount()-1,startColumn:s.startColumn,endColumn:s.endColumn,rangeType:h.RANGE_TYPE.COLUMN}}var ke=Object.getOwnPropertyDescriptor,Ie=(s,n,e,t)=>{for(var r=t>1?void 0:t?ke(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},A=(s,n)=>(e,t)=>n(e,t,s);exports.FWorksheet=class extends R.FBaseInitialable{constructor(e,t,r,i,a,c,d){super(i);w(this,"setActiveSelection",this.setActiveRange);this._fWorkbook=e,this._workbook=t,this._worksheet=r,this._injector=i,this._selectionManagerService=a,this._logService=c,this._commandService=d}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(){const e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(exports.FSelection,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){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(o.SetWorksheetDefaultStyleMutation.id,{unitId:t,subUnitId:r,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={unitId:r,subUnitId:i,columnData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(o.SetColDataCommand.id,a),this}setRowDefaultStyle(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={unitId:r,subUnitId:i,rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(o.SetRowDataCommand.id,a),this}getRange(e,t,r,i){let a,c;if(typeof e=="object")a=e,c=this._worksheet;else if(typeof e=="string"){const{range:d,sheetName:l}=U.deserializeRangeWithSheet(e),m=l?this._workbook.getSheetBySheetName(l):this._worksheet;if(!m)throw new Error("Range not found");c=m,a={...d,unitId:this._workbook.getUnitId(),sheetId:c.getSheetId(),rangeType:h.RANGE_TYPE.NORMAL,startRow:d.rangeType===h.RANGE_TYPE.COLUMN?0:d.startRow,endRow:d.rangeType===h.RANGE_TYPE.COLUMN?c.getMaxRows()-1:d.endRow,startColumn:d.rangeType===h.RANGE_TYPE.ROW?0:d.startColumn,endColumn:d.rangeType===h.RANGE_TYPE.ROW?c.getMaxColumns()-1:d.endColumn}}else if(typeof e=="number"&&t!==void 0)c=this._worksheet,a={startRow:e,endRow:e+(r!=null?r:1)-1,startColumn:t,endColumn:t+(i!=null?i:1)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw new Error("Invalid range specification");return this._injector.createInstance(exports.FRange,this._workbook,c,a)}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){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.DOWN,c=e+1,d=e+t,l=0,m=this._worksheet.getColumnCount()-1,u=o.copyRangeStyles(this._worksheet,c,d,l,m,!0,e);return this._commandService.syncExecuteCommand(o.InsertRowByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}insertRowsBefore(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.UP,c=e,d=e+t-1,l=0,m=this._worksheet.getColumnCount()-1,u=o.copyRangeStyles(this._worksheet,c,d,l,m,!0,e-1);return this._commandService.syncExecuteCommand(o.InsertRowByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,t){const r={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(o.RemoveRowByRangeCommand.id,{range:r,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveRows(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=L(e.getRange(),this._worksheet),c=a,d={startRow:t,endRow:t,startColumn:a.startColumn,endColumn:a.endColumn};return this._commandService.syncExecuteCommand(o.MoveRowsCommand.id,{unitId:r,subUnitId:i,range:a,fromRange:c,toRange:d}),this}hideRow(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=L(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetRowHiddenCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}hideRows(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(o.SetRowHiddenCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}unhideRow(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=L(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetSpecificRowsVisibleCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}showRows(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:h.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(o.SetSpecificRowsVisibleCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(e,t=h.BooleanNumber.TRUE){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=[{startRow:e,endRow:e,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(o.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:a[0],value:h.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(o.SetWorksheetRowIsAutoHeightMutation.id,{unitId:r,subUnitId:i,ranges:a,autoHeightInfo:t}),this}setRowHeights(e,t,r){var m;const i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),c=this._worksheet.getRowManager(),d=[],l=[];for(let u=e;u<e+t;u++){const _=((m=c.getRow(u))==null?void 0:m.ah)||this._worksheet.getConfig().defaultRowHeight,k={startRow:u,endRow:u,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};r<=_?d.push(k):l.push(k)}return l.length>0&&this._commandService.syncExecuteCommand(o.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:l,value:r}),d.length>0&&this._commandService.syncExecuteCommand(o.SetWorksheetRowIsAutoHeightCommand.id,{unitId:i,subUnitId:a,ranges:d}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){const 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(o.SetWorksheetRowIsAutoHeightCommand.id,{unitId:r,subUnitId:i,ranges:a}),this}setRangesAutoHeight(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(o.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:r,ranges:e}),this}setRowHeightsForced(e,t,r){const i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),c=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(o.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:c,value:r}),this}setRowCustom(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={};for(const[c,d]of Object.entries(e))i[Number(c)]={custom:d};const a={unitId:t,subUnitId:r,rowData:i};return this._commandService.syncExecuteCommand(o.SetRowDataCommand.id,a),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){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.RIGHT,c=0,d=this._worksheet.getRowCount()-1,l=e+1,m=e+t,u=o.copyRangeStyles(this._worksheet,c,d,l,m,!1,e);return this._commandService.syncExecuteCommand(o.InsertColByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}insertColumnsBefore(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=h.Direction.LEFT,c=0,d=this._worksheet.getRowCount()-1,l=e,m=e+t-1,u=o.copyRangeStyles(this._worksheet,c,d,l,m,!1,e-1);return this._commandService.syncExecuteCommand(o.InsertColByRangeCommand.id,{unitId:r,subUnitId:i,direction:a,range:{startRow:c,endRow:d,startColumn:l,endColumn:m},cellValue:u}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,t){const r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1};return this._commandService.syncExecuteCommand(o.RemoveColByRangeCommand.id,{range:r,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveColumns(e,t){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=G(e.getRange(),this._worksheet),c=a,d={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(o.MoveColsCommand.id,{unitId:r,subUnitId:i,range:a,fromRange:c,toRange:d}),this}hideColumn(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=G(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetColHiddenCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}hideColumns(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:h.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(o.SetColHiddenCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}unhideColumn(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=G(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(o.SetSpecificColsVisibleCommand.id,{unitId:t,subUnitId:r,ranges:[i]}),this}showColumns(e,t=1){const r=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:h.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(o.SetSpecificColsVisibleCommand.id,{unitId:r,subUnitId:i,ranges:[a]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,r){const i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),c=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(o.SetColWidthCommand.id,{unitId:i,subUnitId:a,ranges:c,value:r}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i={};for(const[c,d]of Object.entries(e))i[Number(c)]={custom:d};const a={unitId:t,subUnitId:r,columnData:i};return this._commandService.syncExecuteCommand(o.SetColDataCommand.id,a),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(t=>this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,t))}getCellMergeData(e,t){const i=this._worksheet.getMergedCell(e,t);if(i)return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,i)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){const{unitId:t,sheetId:r}=e.getRange();if(t!==this._workbook.getUnitId()||r!==this._worksheet.getSheetId())throw new 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(o.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(o.CancelFrozenCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){const t=this.getFreeze();if(arguments.length===1){const r=e[0];this.setFreeze({...t,startColumn:r>0?r:-1,xSplit:r})}else if(arguments.length===2){let[r=0,i=0]=e;r>i&&([r,i]=[i,r]),this._commandService.syncExecuteCommand(o.SetFrozenCommand.id,{startColumn:i+1,xSplit:i-r+1,startRow:t.startRow,ySplit:t.ySplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}setFrozenRows(...e){const t=this.getFreeze();if(arguments.length===1){const r=e[0];this.setFreeze({...t,startRow:r>0?r:-1,ySplit:r})}else if(arguments.length===2){let[r=0,i=0]=e;r>i&&([r,i]=[i,r]),this._commandService.syncExecuteCommand(o.SetFrozenCommand.id,{startRow:i+1,ySplit:i-r+1,startColumn:t.startColumn,xSplit:t.xSplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}getFrozenColumns(){const e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){const e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){const e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){const e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===h.BooleanNumber.FALSE}setHiddenGridlines(e){return this._commandService.syncExecuteCommand(o.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:e?h.BooleanNumber.FALSE:h.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(o.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(o.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(h.ICommandService).onCommandExecuted(r=>{if(r.id===o.SetRangeValuesMutation.id){const i=r.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new h.ObjectMatrix(i.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(r=>{if(r.id===o.SetRangeValuesMutation.id){const i=r.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new h.ObjectMatrix(i.cellValue))}})}hideSheet(){const e=this._injector.get(h.ICommandService);if(this._workbook.getSheets().filter(a=>a.isSheetHidden()!==h.BooleanNumber.TRUE).length<=1)throw new Error("Cannot hide the only visible sheet");return e.syncExecuteCommand(o.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(h.ICommandService).syncExecuteCommand(o.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===h.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(o.SetWorksheetNameCommand.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();const t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this._injector.get(h.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(o.ClearSelectionAllCommand.id,{unitId:t,subUnitId:r,ranges:[a],options:e}),this}clearContents(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),r=this._injector.get(h.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return r.syncExecuteCommand(o.ClearSelectionContentCommand.id,{unitId:e,subUnitId:t,ranges:[i]}),this}clearFormats(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),r=this._injector.get(h.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return r.syncExecuteCommand(o.ClearSelectionFormatCommand.id,{unitId:e,subUnitId:t,ranges:[i]}),this}getDataRange(){const{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._worksheet.getDataRealRange();return this.getRange(e,r,t-e+1,i-r+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 exports.FWorksheet?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){const i=this._injector.createInstance(B).setName(e).setRef(t).build();i.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(i)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(t=>t.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){const t=this._worksheet.getCellMatrix().hasValue(),r=this._worksheet.getLastRowWithContent(),i=this._worksheet.getRowCount(),a=this._worksheet.getColumnCount(),c=t?r+1:r,d=new h.ObjectMatrix;for(let l=0;l<e.length;l++)d.setValue(c,l,h.covertCellValue(e[l]));return this._commandService.syncExecuteCommand(o.AppendRowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:d.getMatrix(),insertRowNums:c>i-1?1:0,insertColumnNums:e.length>a?e.length-a:0,maxRows:i,maxColumns:a}),this}setRowCount(e){return this._commandService.syncExecuteCommand(o.SetWorksheetRowCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(o.SetWorksheetColumnCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(q,this)}};exports.FWorksheet=Ie([A(3,h.Inject(h.Injector)),A(4,h.Inject(o.SheetsSelectionsService)),A(5,h.Inject(h.ILogService)),A(6,h.ICommandService)],exports.FWorksheet);var be=Object.getOwnPropertyDescriptor,fe=(s,n,e,t)=>{for(var r=t>1?void 0:t?be(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},M=(s,n)=>(e,t)=>n(e,t,s);let J=class{constructor(s,n,e,t,r,i,a,c,d){w(this,"_permissionSubject");w(this,"_subscriptions",[]);w(this,"_fPermission");w(this,"permission$");w(this,"protectionChange$");this._unitId=s,this._subUnitId=n,this._range=e,this._worksheet=t,this._injector=r,this._permissionService=i,this._authzIoService=a,this._commandService=c,this._rangeProtectionRuleModel=d,this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new O.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){const s=this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>{const e=n.id;return e.includes(this._unitId)&&e.includes(this._subUnitId)})).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(s),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>JSON.stringify(n)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe(C.filter(s=>s.unitId!==this._unitId||s.subUnitId!==this._subUnitId?!1:s.type==="delete"?this._rangeMatches(s.rule):s.type==="add"?this._rangeMatches(s.rule):!1),C.map(s=>(this._permissionSubject.next(this._buildSnapshot()),s.type==="delete"?{type:"unprotected",ruleId:s.rule.id}:{type:"protected",rule:this._createFacadeRule(s.rule)})),C.shareReplay({bufferSize:1,refCount:!0}))}_rangeMatches(s){const n=this._range.getRange();return s.ranges.some(e=>n.startRow===e.startRow&&n.startColumn===e.startColumn&&n.endRow===e.endRow&&n.endColumn===e.endColumn)}_createFacadeRule(s){const n=s.ranges.map(t=>this._worksheet.getRange(t.startRow,t.startColumn,t.endRow-t.startRow+1,t.endColumn-t.startColumn+1)),e={name:s.description||"",allowViewByOthers:s.viewState!==o.ViewStateEnum.NoOneElseCanView,allowEdit:s.editState===o.EditStateEnum.DesignedUserCanEdit};return this._injector.createInstance(y,this._unitId,this._subUnitId,s.id,s.permissionId,n,e)}getPoint(s){const n=N[s];if(!n)return console.warn(`Unknown permission point: ${s}`),!1;const e=this._getProtectionRule();if(e){const t=new n(this._unitId,this._subUnitId,e.permissionId),r=this._permissionService.getPermissionPoint(t.id);if(r)return r.value}return!0}getSnapshot(){return this._buildSnapshot()}isProtected(){return this._getProtectionRule()!==null}canEdit(){return this.getPoint(I.Edit)}canView(){return this.getPoint(I.View)}canManageCollaborator(){return this.getPoint(I.ManageCollaborator)}canDelete(){return this.getPoint(I.Delete)}async setPoint(s,n){const e=N[s];if(!e)throw new Error(`Unknown permission point: ${s}`);const t=this._getProtectionRule();if(!t)throw new Error("Cannot set permission point: No protection rule exists for this range. Call protect() first.");if(this.getPoint(s)===n)return;const i=t.permissionId;this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,i,e,n),this._permissionSubject.next(this._buildSnapshot())}async protect(s){if(this.isProtected())throw new Error("Range is already protected");const n=await this._fPermission.addRangeBaseProtection(this._unitId,this._subUnitId,[this._range],s);if(!n)throw new Error("Failed to create range protection");const{permissionId:e,ruleId:t}=n;return await this._setPermissionPoints(e,s),this._injector.createInstance(y,this._unitId,this._subUnitId,t,e,[this._range],s||{})}_determineViewState(s){return(s==null?void 0:s.allowViewByOthers)===!1?o.ViewStateEnum.NoOneElseCanView:o.ViewStateEnum.OthersCanView}_determineEditState(s){var n;return(s==null?void 0:s.allowEdit)===!0&&((n=s==null?void 0:s.allowedUsers)!=null&&n.length)?o.EditStateEnum.DesignedUserCanEdit:o.EditStateEnum.OnlyMe}async _setPermissionPoints(s,n){if(!n)return;const e=(t,r)=>t===void 0?r:typeof t=="boolean"?t:!0;await this._setPermissionPoint(s,I.Edit,e(n.allowEdit,!1)),await this._setPermissionPoint(s,I.View,e(n.allowViewByOthers,!0))}async _setPermissionPoint(s,n,e){const t=N[n];t&&this._fPermission.setRangeProtectionPermissionPoint(this._unitId,this._subUnitId,s,t,e)}async unprotect(){const s=this._getProtectionRule();if(!s)return;const n=s.id;this._fPermission.removeRangeProtection(this._unitId,this._subUnitId,[n])}async listRules(){return await this._buildProtectionRulesAsync()}subscribe(s){const n=this.permission$.subscribe(s);return()=>n.unsubscribe()}_getProtectionRule(){const s=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId),n=this._range.getRange();for(const e of s)for(const t of e.ranges)if(n.startRow===t.startRow&&n.startColumn===t.startColumn&&n.endRow===t.endRow&&n.endColumn===t.endColumn)return e;return null}_buildProtectionRules(){return this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId).map(n=>{const e=n.ranges.map(r=>this._worksheet.getRange(r.startRow,r.startColumn,r.endRow-r.startRow+1,r.endColumn-r.startColumn+1)),t={name:n.description||"",allowViewByOthers:n.viewState!==o.ViewStateEnum.NoOneElseCanView};return n.editState===o.EditStateEnum.DesignedUserCanEdit?t.allowEdit=!0:t.allowEdit=!1,this._injector.createInstance(y,this._unitId,this._subUnitId,n.id,n.permissionId,e,t)})}async _buildProtectionRulesAsync(){const s=this._rangeProtectionRuleModel.getSubunitRuleList(this._unitId,this._subUnitId);return(await Promise.all(s.map(async e=>{const t=e.ranges.map(i=>this._worksheet.getRange(i.startRow,i.startColumn,i.endRow-i.startRow+1,i.endColumn-i.startColumn+1)),r={name:e.description||"",allowViewByOthers:e.viewState!==o.ViewStateEnum.NoOneElseCanView};if(e.editState===o.EditStateEnum.DesignedUserCanEdit)try{const a=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(c=>c.role===Q.Editor).map(c=>{var d;return((d=c.subject)==null?void 0:d.userID)||c.id});r.allowEdit=a.length>0}catch(i){console.warn(`Failed to fetch collaborators for rule ${e.id}:`,i),r.allowEdit=!1}else r.allowEdit=!1;return{rule:e,ranges:t,options:r}}))).map(({rule:e,ranges:t,options:r})=>this._injector.createInstance(y,this._unitId,this._subUnitId,e.id,e.permissionId,t,r))}_buildSnapshot(){const s={};return Object.values(I).forEach(n=>{s[n]=this.getPoint(n)}),s}dispose(){this._subscriptions.forEach(s=>s.unsubscribe()),this._permissionSubject.complete()}};J=fe([M(4,h.Inject(h.Injector)),M(5,h.Inject(h.IPermissionService)),M(6,h.Inject(h.IAuthzIoService)),M(7,h.Inject(h.ICommandService)),M(8,h.Inject(o.RangeProtectionRuleModel))],J);var ve=Object.getOwnPropertyDescriptor,Re=(s,n,e,t)=>{for(var r=t>1?void 0:t?ve(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},K=(s,n)=>(e,t)=>n(e,t,s),x;exports.FRange=(x=class extends R.FBaseInitialable{constructor(n,e,t,r,i,a){super(r),this._workbook=n,this._worksheet=e,this._range=t,this._injector=r,this._commandService=i,this._formulaDataModel=a;const c=this._worksheet.getRowCount(),d=this._worksheet.getColumnCount();if(this._range.startRow<0||this._range.startColumn<0||this._range.endRow>=c||this._range.endColumn>=d)throw new Error(`Range is out of bounds. Max rows: ${c}, Max columns: ${d}, 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(){const{startColumn:n,startRow:e,endColumn:t,endRow:r}=this._range;return this._worksheet.getMergedCellRange(e,n,r,t).some(a=>h.Rectangle.equals(a,this._range))}getCellStyleData(n="row"){return n!=="cell"?this._worksheet.getComposedCellStyle(this._range.startRow,this._range.startColumn,n==="row"):this._worksheet.getCellStyle(this._range.startRow,this._range.startColumn)}getFontFamily(n="row"){var e,t;return(t=(e=this.getCellStyleData(n))==null?void 0:e.ff)!=null?t:null}getFontSize(n="row"){var e,t;return(t=(e=this.getCellStyleData(n))==null?void 0:e.fs)!=null?t:null}getCellStyle(n="row"){const e=this.getCellStyleData(n);return e?h.TextStyleValue.create(e):null}getCellStyles(n="row"){return this.getCellDatas().map((t,r)=>t.map((i,a)=>{if(!i)return null;const c=n!=="cell"?this._worksheet.getComposedCellStyle(r+this._range.startRow,a+this._range.startColumn,n==="row"):this._worksheet.getCellStyle(r+this._range.startRow,a+this._range.startColumn);return c?h.TextStyleValue.create(c):null}))}getValue(n){var e,t;return n?this.getValueAndRichTextValue():(t=(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:e.v)!=null?t:null}getRawValue(){var e,t;const 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?t:null}getDisplayValue(){var e,t,r;const n=this._worksheet.getCell(this._range.startRow,this._range.startColumn);return n!=null&&n.p&&((e=n.p.body)!=null&&e.dataStream)?n.p.body.dataStream:(r=(t=n==null?void 0:n.v)==null?void 0:t.toString())!=null?r:""}getValues(n){var c,d;if(n)return this.getValueAndRichTextValues();const{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._range,a=[];for(let l=e;l<=t;l++){const m=[];for(let u=r;u<=i;u++)m.push((d=(c=this._worksheet.getCell(l,u))==null?void 0:c.v)!=null?d:null);a.push(m)}return a}getRawValues(){var c,d;const n=this._worksheet.getCellMatrix(),{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._range,a=[];for(let l=e;l<=t;l++){const m=[];for(let u=r;u<=i;u++){const _=n.getValue(l,u);_!=null&&_.p&&((c=_.p.body)!=null&&c.dataStream)?m.push(_.p.body.dataStream):m.push((d=_==null?void 0:_.v)!=null?d:null)}a.push(m)}return a}getDisplayValues(){var a,c,d;const{startRow:n,endRow:e,startColumn:t,endColumn:r}=this._range,i=[];for(let l=n;l<=e;l++){const m=[];for(let u=t;u<=r;u++){const _=this._worksheet.getCell(l,u);_!=null&&_.p&&((a=_.p.body)!=null&&a.dataStream)?m.push(_.p.body.dataStream):m.push((d=(c=_==null?void 0:_.v)==null?void 0:c.toString())!=null?d:"")}i.push(m)}return i}getCellData(){var n;return(n=this._worksheet.getCell(this._range.startRow,this._range.startColumn))!=null?n:null}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){const{startRow:n,endRow:e,startColumn:t,endColumn:r}=this._range,i=[];for(let a=n;a<=e;a++){const c=[];for(let d=t;d<=r;d++)c.push(this._worksheet.getCellRaw(a,d));i.push(c)}return i}getRichTextValue(){const n=this.getCellData();return n!=null&&n.p?new h.RichTextValue(n.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(t=>t!=null&&t.p?new h.RichTextValue(t.p):null))}getValueAndRichTextValue(){const n=this.getCellData();return n!=null&&n.p?new h.RichTextValue(n.p):n==null?void 0:n.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(t=>t!=null&&t.p?new h.RichTextValue(t.p):t==null?void 0:t.v))}getFormula(){var n;return(n=this._formulaDataModel.getFormulaStringByCell(this._range.startRow,this._range.startColumn,this._worksheet.getSheetId(),this._workbook.getUnitId()))!=null?n:""}getFormulas(){const n=[],{startRow:e,endRow:t,startColumn:r,endColumn:i}=this._range,a=this._worksheet.getSheetId(),c=this._workbook.getUnitId();for(let d=e;d<=t;d++){const l=[];for(let m=r;m<=i;m++){const u=this._formulaDataModel.getFormulaStringByCell(d,m,a,c);l.push(u||"")}n.push(l)}return n}getWrap(){return this._worksheet.getRange(this._range).getWrap()===h.BooleanNumber.TRUE}getWraps(){const n=this.getCellDatas(),e=this._workbook.getStyles();return n.map(t=>t.map(r=>{var i;return((i=e.getStyleByCell(r))==null?void 0:i.tb)===h.WrapStrategy.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){const n=this._worksheet.getRange(this._range).getHorizontalAlignment();return X(n)}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(t=>X(t)))}getVerticalAlignment(){return ee(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(t=>ee(t)))}setCustomMetaData(n){return this.setValue({custom:n})}setCustomMetaDatas(n){return this.setValues(n.map(e=>e.map(t=>({custom:t}))))}getCustomMetaData(){var e;const n=this.getCellData();return(e=n==null?void 0:n.custom)!=null?e:null}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(t=>{var r;return(r=t==null?void 0:t.custom)!=null?r:null}))}setBorder(n,e,t){return this._commandService.syncExecuteCommand(o.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:n,style:e,color:t}}),this}getBackground(){var e,t;const n=this.getCellStyle();return(t=(e=n==null?void 0:n.background)==null?void 0:e.rgb)!=null?t:h.DEFAULT_STYLES.bg.rgb}getBackgrounds(){return this.getCellStyles().map(e=>e.map(t=>{var r,i;return(i=(r=t==null?void 0:t.background)==null?void 0:r.rgb)!=null?i:h.DEFAULT_STYLES.bg.rgb}))}setBackgroundColor(n){return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:n}}}),this}setBackground(n){return this.setBackgroundColor(n),this}setTextRotation(n){return this._commandService.syncExecuteCommand(o.SetTextRotationCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setValue(n){const e=h.covertCellValue(n);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValueForCell(n){const e=h.covertCellValue(n);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.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:e}),this}setRichTextValueForCell(n){const e=n instanceof h.RichTextValue?n.getData():n,t={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:e}};return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,t),this}setRichTextValues(n){const e=n.map(i=>i.map(a=>a&&{p:a instanceof h.RichTextValue?a.getData():a})),t=h.covertCellValues(e,this._range),r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t};return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,r),this}setWrap(n){return this._commandService.syncExecuteCommand(o.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n?h.WrapStrategy.WRAP:h.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(n){return this._commandService.syncExecuteCommand(o.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setVerticalAlignment(n){return this._commandService.syncExecuteCommand(o.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:Ce(n)}),this}setHorizontalAlignment(n){return this._commandService.syncExecuteCommand(o.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:we(n)}),this}setValues(n){const e=h.covertCellValues(n,this._range);return this._commandService.syncExecuteCommand(o.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setFontWeight(n){let e;if(n==="bold")e=h.BooleanNumber.TRUE;else if(n==="normal")e=h.BooleanNumber.FALSE;else if(n===null)e=null;else throw new Error("Invalid fontWeight");const t={type:"bl",value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,r),this}setFontStyle(n){let e;if(n==="italic")e=h.BooleanNumber.TRUE;else if(n==="normal")e=h.BooleanNumber.FALSE;else if(n===null)e=null;else throw new Error("Invalid fontStyle");const t={type:"it",value:e},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,r),this}setFontLine(n){if(n==="underline")this._setFontUnderline({s:h.BooleanNumber.TRUE});else if(n==="line-through")this._setFontStrikethrough({s:h.BooleanNumber.TRUE});else if(n==="none")this._setFontUnderline({s:h.BooleanNumber.FALSE}),this._setFontStrikethrough({s:h.BooleanNumber.FALSE});else if(n===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw new Error("Invalid fontLine");return this}_setFontUnderline(n){const e={type:"ul",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t)}_setFontStrikethrough(n){const e={type:"st",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t)}setFontFamily(n){const e={type:"ff",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t),this}setFontSize(n){const e={type:"fs",value:n},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,t),this}setFontColor(n){const t={type:"cl",value:n===null?null:{rgb:n}},r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(o.SetStyleCommand.id,r),this}merge(n=!0){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return o.addMergeCellsUtil(this._injector,e,t,[this._range],n),this}mergeAcross(n=!0){const e=o.getAddMergeMutationRangeByType([this._range],h.Dimension.ROWS),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return o.addMergeCellsUtil(this._injector,t,r,e,n),this}mergeVertically(n=!0){const e=o.getAddMergeMutationRangeByType([this._range],h.Dimension.COLUMNS),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return o.addMergeCellsUtil(this._injector,t,r,e,n),this}isPartOfMerge(){const{startRow:n,startColumn:e,endRow:t,endColumn:r}=this._range;return this._worksheet.getMergedCellRange(n,e,t,r).length>0}breakApart(){return this._commandService.syncExecuteCommand(o.RemoveWorksheetMergeCommand.id,{ranges:[this._range]}),this}forEach(n){const{startColumn:e,startRow:t,endColumn:r,endRow:i}=this._range;this._worksheet.getMatrixWithMergedCells(t,e,i,r).forValue((a,c,d)=>{n(a,c,d)})}getA1Notation(n,e,t){const r={...this._range,startAbsoluteRefType:e,endAbsoluteRefType:t};return n?U.serializeRangeWithSheet(this._worksheet.getName(),r):U.serializeRange(r)}activate(){return this._injector.createInstance(exports.FWorkbook,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){const n=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(n&&h.Rectangle.equals(n,this._range)||!n&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){const r=this._injector.createInstance(exports.FWorkbook,this._workbook).getActiveRange();if(!r||r.getUnitId()!==this.getUnitId()||r.getSheetId()!==this.getSheetId())return this.activate();if(h.Rectangle.contains(r.getRange(),this._range)){const i={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:r.getRange(),primary:o.getPrimaryForRange(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(o.SetSelectionsOperation.id,i),this}return this.activate()}else throw new Error("The range is not a single cell")}splitTextToColumns(n,e,t){this._commandService.syncExecuteCommand(o.SplitTextToColumnsCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:e,customDelimiter:t,treatMultipleDelimitersAsOne:n})}useThemeStyle(n){if(n==null){const e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(o.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:n})}removeThemeStyle(n){this._commandService.syncExecuteCommand(o.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:n})}getUsedThemeStyle(){return this._injector.get(o.SheetRangeThemeService).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}clear(n){return n&&n.contentsOnly&&!n.formatOnly?this.clearContent():n&&n.formatOnly&&!n.contentsOnly?this.clearFormat():(this._commandService.syncExecuteCommand(o.ClearSelectionAllCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:n}),this)}clearContent(){return this._commandService.syncExecuteCommand(o.ClearSelectionContentCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(o.ClearSelectionFormatCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(n){n===h.Dimension.ROWS?this._commandService.executeCommand(o.InsertRangeMoveDownCommand.id,{range:this._range}):this._commandService.executeCommand(o.InsertRangeMoveRightCommand.id,{range:this._range})}deleteCells(n){n===h.Dimension.ROWS?this._commandService.executeCommand(o.DeleteRangeMoveUpCommand.id,{range:this._range}):this._commandService.executeCommand(o.DeleteRangeMoveLeftCommand.id,{range:this._range})}getDataRegion(n){const{startRow:e,startColumn:t,endRow:r,endColumn:i}=this._range,a=this._worksheet.getMaxRows(),c=this._worksheet.getMaxColumns(),d=this._worksheet.getCellMatrix();let l=e,m=t,u=r,_=i;if(n!==h.Dimension.COLUMNS){let k=!1,f=!1;for(let b=t;b<=i&&(e>0&&!h.isNullCell(d.getValue(e-1,b))&&(k=!0),r<a-1&&!h.isNullCell(d.getValue(r+1,b))&&(f=!0),!(k&&f));b++);k&&(l=e-1),f&&(u=r+1)}if(n!==h.Dimension.ROWS){let k=!1,f=!1;for(let b=e;b<=r&&(t>0&&!h.isNullCell(d.getValue(b,t-1))&&(k=!0),i<c-1&&!h.isNullCell(d.getValue(b,i+1))&&(f=!0),!(k&&f));b++);k&&(m=t-1),f&&(_=i+1)}return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,{startRow:l,startColumn:m,endRow:u,endColumn:_})}isBlank(){const n=this._worksheet.getCellMatrix(),{startRow:e,startColumn:t,endRow:r,endColumn:i}=this._range;let a=!0;for(let c=e;c<=r;c++){for(let d=t;d<=i;d++)if(!h.isNullCell(n.getValue(c,d))){a=!1;break}if(!a)break}return a}offset(n,e,t,r){const{startRow:i,startColumn:a,endRow:c,endColumn:d}=this._range,l=i+n,m=a+e,u=t?l+t-1:c+n,_=r?m+r-1:d+e;if(l<0||m<0||u<0||_<0)throw new Error("The row or column index is out of range");return this._injector.createInstance(exports.FRange,this._workbook,this._worksheet,{startRow:l,startColumn:m,endRow:u,endColumn:_})}setFormula(n){return this.setValue({f:n})}setFormulas(n){return this.setValues(n.map(e=>e.map(t=>({f:t}))))}getRangePermission(){const n=this._injector.createInstance(exports.FWorksheet,this._injector.createInstance(exports.FWorkbook,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(J,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,n)}},x._enableManualInit(),x);exports.FRange=Re([K(3,h.Inject(h.Injector)),K(4,h.ICommandService),K(5,h.Inject(U.FormulaDataModel))],exports.FRange);var pe=Object.getOwnPropertyDescriptor,Ee=(s,n,e,t)=>{for(var r=t>1?void 0:t?pe(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},Y=(s,n)=>(e,t)=>n(e,t,s);let Z=class{constructor(s,n,e,t){w(this,"_permissionSubject");w(this,"_collaboratorChangeSubject",new O.Subject);w(this,"permission$");w(this,"pointChange$");w(this,"collaboratorChange$");w(this,"_subscriptions",[]);w(this,"_fPermission");this._unitId=s,this._injector=n,this._permissionService=e,this._authzIoService=t,this._fPermission=this._injector.createInstance(exports.FPermission),this._permissionSubject=new O.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe(C.shareReplay({bufferSize:1,refCount:!0}))}_createPermissionStream(){const s=this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>n.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(s),this._permissionSubject.asObservable().pipe(C.distinctUntilChanged((n,e)=>JSON.stringify(n)===JSON.stringify(e)),C.shareReplay({bufferSize:1,refCount:!0}))}_createPointChangeStream(){const s=new Map;for(const n in g){const e=g[n];s.set(e,this.getPoint(e))}return this._permissionService.permissionPointUpdate$.pipe(C.filter(n=>n.id.includes(this._unitId)),C.map(n=>{const e=this._extractWorkbookPointType(n.id);if(!e)return null;const t=!!n.value,r=s.get(e);return s.set(e,t),r===t?null:{point:e,value:t,oldValue:r}}),C.filter(n=>n!==null),C.shareReplay({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(s){for(const n in g){const e=g[n],t=T[e];if(!t)continue;if(new t(this._unitId).id===s)return e}return null}_buildSnapshot(){const s={};for(const n in g){const e=g[n];s[e]=this.getPoint(e)}return s}async setMode(s){const n=this._getModePermissions(s);await this._batchSetPermissionPoints(n)}_getModePermissions(s){const n={};switch(Object.values(g).forEach(e=>{n[e]=!1}),s){case"owner":Object.values(g).forEach(e=>{n[e]=!0});break;case"editor":n[g.Edit]=!0,n[g.View]=!0,n[g.Print]=!0,n[g.Export]=!0,n[g.CopyContent]=!0,n[g.Comment]=!0,n[g.CreateSheet]=!0,n[g.DeleteSheet]=!0,n[g.RenameSheet]=!0,n[g.MoveSheet]=!0,n[g.HideSheet]=!0,n[g.InsertRow]=!0,n[g.InsertColumn]=!0,n[g.DeleteRow]=!0,n[g.DeleteColumn]=!0,n[g.CopySheet]=!0,n[g.CreateProtection]=!0;break;case"viewer":n[g.View]=!0,n[g.Print]=!0;break;case"commenter":n[g.View]=!0,n[g.Comment]=!0,n[g.Print]=!0;break}return n}async _batchSetPermissionPoints(s){const n=[];for(const[e,t]of Object.entries(s)){const r=e,i=T[r];if(!i)throw new Error(`Unknown workbook permission point: ${r}`);const a=this.getPoint(r);a!==t&&(this._fPermission.setWorkbookPermissionPoint(this._unitId,i,t),n.push({point:r,value:t,oldValue:a}))}if(n.length>0){const e=this._buildSnapshot();this._permissionSubject.next(e)}}async setReadOnly(){await this.setMode("viewer")}async setEditable(){await this.setMode("editor")}canEdit(){return this.getPoint(g.Edit)}async setPoint(s,n){const e=T[s];if(!e)throw new Error(`Unknown workbook permission point: ${s}`);if(this.getPoint(s)===n)return;this._fPermission.setWorkbookPermissionPoint(this._unitId,e,n);const r=this._buildSnapshot();this._permissionSubject.next(r)}getPoint(s){var r;const n=T[s];if(!n)throw new Error(`Unknown workbook permission point: ${s}`);const e=new n(this._unitId),t=this._permissionService.getPermissionPoint(e.id);return(r=t==null?void 0:t.value)!=null?r:!0}getSnapshot(){return this._buildSnapshot()}async setCollaborators(s){const n=s.map(e=>({id:e.user.userID,subject:e.user,role:e.role}));await this._authzIoService.putCollaborators({objectID:this._unitId,unitID:this._unitId,collaborators:n}),s.forEach(e=>{this._collaboratorChangeSubject.next({type:"add",collaborator:{user:{id:e.user.userID},role:e.role}})})}async addCollaborator(s,n){await this._authzIoService.createCollaborator({objectID:this._unitId,unitID:this._unitId,collaborators:[{id:s.userID,subject:s,role:n}]}),this._collaboratorChangeSubject.next({type:"add",collaborator:{user:{id:s.userID},role:n}})}async updateCollaborator(s,n){await this._authzIoService.updateCollaborator({objectID:this._unitId,unitID:this._unitId,collaborator:{id:s.userID,subject:s,role:n}}),this._collaboratorChangeSubject.next({type:"update",collaborator:{user:{id:s.userID},role:n}})}async removeCollaborator(s){await this._authzIoService.deleteCollaborator({objectID:this._unitId,unitID:this._unitId,collaboratorID:s}),this._collaboratorChangeSubject.next({type:"delete",collaborator:{user:{id:s},role:W.Reader}})}async removeCollaborators(s){for(const n of s)await this.removeCollaborator(n)}async listCollaborators(){return(await this._authzIoService.listCollaborators({objectID:this._unitId,unitID:this._unitId})).map(n=>{var e,t;return{user:{id:((e=n.subject)==null?void 0:e.userID)||n.id,displayName:((t=n.subject)==null?void 0:t.name)||""},role:n.role}})}subscribe(s){const n=this.permission$.subscribe(s);return()=>n.unsubscribe()}dispose(){this._subscriptions.forEach(s=>s.unsubscribe()),this._permissionSubject.complete(),this._collaboratorChangeSubject.complete()}};Z=Ee([Y(1,h.Inject(h.Injector)),Y(2,h.IPermissionService),Y(3,h.IAuthzIoService)],Z);var ye=Object.getOwnPropertyDescriptor,Pe=(s,n,e,t)=>{for(var r=t>1?void 0:t?ye(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},E=(s,n)=>(e,t)=>n(e,t,s);exports.FWorkbook=class extends R.FBaseInitialable{constructor(e,t,r,i,a,c,d,l,m,u){super(t);w(this,"id");this._workbook=e,this._injector=t,this._resourceLoaderService=r,this._selectionManagerService=i,this._univerInstanceService=a,this._commandService=c,this._permissionService=d,this._logService=l,this._localeService=m,this._definedNamesService=u,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(o.SetWorkbookNameCommand.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(){const e=this._workbook.getActiveSheet();return this._injector.createInstance(exports.FWorksheet,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(exports.FWorksheet,this,this._workbook,e))}create(e,t,r,i){var l,m,u;const a=h.mergeWorksheetSnapshotWithDefault(h.Tools.deepClone((l=i==null?void 0:i.sheet)!=null?l:{}));a.name=this._workbook.uniqueSheetName(e),a.rowCount=t,a.columnCount=r,a.id=(m=i==null?void 0:i.sheet)==null?void 0:m.id;const c=(u=i==null?void 0:i.index)!=null?u:this._workbook.getSheets().length;this._commandService.syncExecuteCommand(o.InsertSheetCommand.id,{unitId:this.id,index:c,sheet:a}),this._commandService.syncExecuteCommand(o.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[c].getSheetId()});const d=this._workbook.getActiveSheet();if(!d)throw new Error("No active sheet found");return this._injector.createInstance(exports.FWorksheet,this,this._workbook,d)}getSheetBySheetId(e){const t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(exports.FWorksheet,this,this._workbook,t):null}getSheetByName(e){const t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(exports.FWorksheet,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(o.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e=="string"?e:e.getSheetId()}),typeof e=="string"?this.getSheetBySheetId(e):e}insertSheet(e,t){var c,d,l;const r=h.mergeWorksheetSnapshotWithDefault(h.Tools.deepClone((c=t==null?void 0:t.sheet)!=null?c:{}));r.name=this._workbook.uniqueSheetName(e),r.id=(d=t==null?void 0:t.sheet)==null?void 0:d.id;const i=(l=t==null?void 0:t.index)!=null?l:this._workbook.getSheets().length;this._commandService.syncExecuteCommand(o.InsertSheetCommand.id,{unitId:this.id,index:i,sheet:r}),this._commandService.syncExecuteCommand(o.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[i].getSheetId()});const a=this._workbook.getActiveSheet();if(!a)throw new Error("No active sheet found");return this._injector.createInstance(exports.FWorksheet,this,this._workbook,a)}deleteSheet(e){const t=this.id,r=typeof e=="string"?e:e.getSheetId();return this._commandService.syncExecuteCommand(o.RemoveSheetCommand.id,{unitId:t,subUnitId:r})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(h.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(h.RedoCommand.id),this}onBeforeCommandExecute(e){return this._commandService.beforeCommandExecuted(t=>{var r;((r=t.params)==null?void 0:r.unitId)===this.id&&e(t)})}onCommandExecuted(e){return this._commandService.onCommandExecuted(t=>{var r;((r=t.params)==null?void 0:r.unitId)===this.id&&e(t)})}onSelectionChange(e){return h.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{this._univerInstanceService.getCurrentUnitForType(h.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(t!=null&&t.length?e(t.map(r=>r.range)):e([]))}))}setEditable(e){const t=new o.WorkbookEditablePermission(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(t.id)||this._permissionService.addPermissionPoint(t),this._permissionService.updatePermissionPoint(t.id,e),this}setActiveRange(e){const t=this.getActiveSheet(),r=e.getRange().sheetId||t.getSheetId(),i=r?this._workbook.getSheetBySheetId(r):this._workbook.getActiveSheet(!0);if(!i)throw new Error("No active sheet found");i.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(exports.FWorksheet,this,this._workbook,i));const a={unitId:this.getId(),subUnitId:r,selections:[e].map(c=>({range:c.getRange(),primary:o.getPrimaryForRange(c.getRange(),i),style:null}))};return this._commandService.syncExecuteCommand(o.SetSelectionsOperation.id,a),this}getActiveRange(){const e=this._workbook.getActiveSheet(),r=this._selectionManagerService.getCurrentSelections().find(i=>!!i.primary);return r?this._injector.createInstance(exports.FRange,this._workbook,e,r.range):null}getActiveCell(){const e=this._workbook.getActiveSheet(),r=this._selectionManagerService.getCurrentSelections().find(a=>!!a.primary);if(!r)return null;const i={...r.primary,rangeType:h.RANGE_TYPE.NORMAL};return this._injector.createInstance(exports.FRange,this._workbook,e,i)}deleteActiveSheet(){const e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(o.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(exports.FWorksheet,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){const 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 r=t;return r<0?r=0:r>this._workbook.getSheets().length-1&&(r=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(o.SetWorksheetOrderCommand.id,{unitId:e.getWorkbook().getUnitId(),order:r,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){const t=this.getActiveSheet();return this.moveSheet(t,e)}getPermission(){return this._injector.createInstance(exports.FPermission)}getWorkbookPermission(){return this._injector.createInstance(Z,this._workbook.getUnitId())}getDefinedName(e){const t=this._definedNamesService.getValueByName(this.id,e);return t?this._injector.createInstance(F,{...t,unitId:this.id}):null}getDefinedNames(){const e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(t=>this._injector.createInstance(F,{...t,unitId:this.id})):[]}insertDefinedName(e,t){const i=this._injector.createInstance(B).setName(e).setRef(t).build();return i.localSheetId=o.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this.insertDefinedNameBuilder(i),this}deleteDefinedName(e){const t=this.getDefinedName(e);return t?(t.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(o.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(o.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(o.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(o.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(o.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new o.RangeThemeStyle(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)}};exports.FWorkbook=Pe([E(1,h.Inject(h.Injector)),E(2,h.Inject(h.IResourceLoaderService)),E(3,h.Inject(o.SheetsSelectionsService)),E(4,h.IUniverInstanceService),E(5,h.ICommandService),E(6,h.IPermissionService),E(7,h.ILogService),E(8,h.Inject(h.LocaleService)),E(9,U.IDefinedNamesService)],exports.FWorkbook);class Ue extends R.FUniver{getCommandSheetTarget(n){var i;const e=n.params;if(!e)return this.getActiveSheet();const t=e.unitId?this.getUniverSheet(e.unitId):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!t)return;const r=t.getSheetBySheetId(e.subUnitId||e.sheetId)||t.getActiveSheet();if(r)return{workbook:t,worksheet:r}}getSheetTarget(n,e){const t=this.getUniverSheet(n);if(!t)return;const r=t.getSheetBySheetId(e);if(r)return{workbook:t,worksheet:r}}_initWorkbookEvent(n){const e=n.get(h.IUniverInstanceService);this.registerEventHandler(this.Event.WorkbookDisposed,()=>e.unitDisposed$.subscribe(t=>{t.type===h.UniverInstanceType.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:t.getUnitId(),unitType:t.type,snapshot:t.getSnapshot()})})),this.registerEventHandler(this.Event.WorkbookCreated,()=>e.unitAdded$.subscribe(t=>{if(t.type===h.UniverInstanceType.UNIVER_SHEET){const r=t,i=n.createInstance(exports.FWorkbook,r);this.fireEvent(this.Event.WorkbookCreated,{unitId:t.getUnitId(),type:t.type,workbook:i,unit:i})}}))}_initialize(n){const e=n.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeSheetCreate,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.InsertSheetCommand.id){const i=t.params,{unitId:a,index:c,sheet:d}=i||{},l=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!l)return;const m={workbook:l,index:c,sheet:d};if(this.fireEvent(this.Event.BeforeSheetCreate,m),m.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.SetWorksheetActiveOperation.id){const{subUnitId:i,unitId:a}=t.params,c=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!c||!i)return;const d=c.getSheetBySheetId(i),l=c.getActiveSheet();if(!d||!l)return;const m={workbook:c,activeSheet:d,oldActiveSheet:l};if(this.fireEvent(this.Event.BeforeActiveSheetChange,m),m.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetDelete,()=>e.beforeCommandExecuted(t=>{if(t.id===o.RemoveSheetCommand.id){const r=this.getCommandSheetTarget(t);if(!r)return;const{workbook:i,worksheet:a}=r,c={workbook:i,worksheet:a};if(this.fireEvent(this.Event.BeforeSheetDelete,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetMove,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetWorksheetOrderMutation.id){const{fromOrder:r,toOrder:i}=t.params,a=this.getCommandSheetTarget(t);if(!a)return;const c={workbook:a.workbook,worksheet:a.worksheet,newIndex:i,oldIndex:r};if(this.fireEvent(this.Event.BeforeSheetMove,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetWorksheetNameCommand.id){const{name:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const a={workbook:i.workbook,worksheet:i.worksheet,newName:r,oldName:i.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetTabColorMutation.id){const{color:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const a={workbook:i.workbook,worksheet:i.worksheet,newColor:r,oldColor:i.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>e.beforeCommandExecuted(t=>{if(t.id===o.SetWorksheetHideMutation.id){const{hidden:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const a={workbook:i.workbook,worksheet:i.worksheet,hidden:!!r};if(this.fireEvent(this.Event.BeforeSheetHideChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.SetGridlinesColorCommand.id){const i=this.getCommandSheetTarget(t);if(!i)return;const a={...i,color:(r=t.params)==null?void 0:r.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>e.beforeCommandExecuted(t=>{var r;if(t.id===o.ToggleGridlinesCommand.id){const i=this.getCommandSheetTarget(t);if(!i)return;const a={...i,enabled:!!((r=t.params)!=null&&r.showGridlines)};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,a),a.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.SheetValueChanged,()=>e.onCommandExecuted(t=>{if(o.COMMAND_LISTENER_VALUE_CHANGE.indexOf(t.id)>-1){if(!this.getActiveSheet())return;const i=o.getValueChangedEffectedRange(t).map(a=>{var c,d;return(d=(c=this.getWorkbook(a.unitId))==null?void 0:c.getSheetBySheetId(a.subUnitId))==null?void 0:d.getRange(a.range)}).filter(Boolean);if(!i.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:t,effectedRanges:i})}})),this.registerEventHandler(this.Event.SheetCreated,()=>e.onCommandExecuted(t=>{var r;if(t.id===o.InsertSheetCommand.id){const i=t.params,{unitId:a}=i||{},c=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!c)return;const d=c.getActiveSheet();if(!d)return;const l={workbook:c,worksheet:d};this.fireEvent(this.Event.SheetCreated,l)}})),this.registerEventHandler(this.Event.ActiveSheetChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetActiveOperation.id){const r=this.getActiveSheet();if(!r)return;const{workbook:i,worksheet:a}=r;this._fireActiveSheetChanged(i,a)}})),this.registerEventHandler(this.Event.SheetDeleted,()=>e.onCommandExecuted(t=>{var r;if(t.id===o.RemoveSheetCommand.id){const{subUnitId:i,unitId:a}=t.params,c=a?this.getUniverSheet(a):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!c||!i)return;this._fireSheetDeleted(c,i)}})),this.registerEventHandler(this.Event.SheetMoved,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetOrderMutation.id){const{toOrder:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetMoved(i.workbook,i.worksheet,r)}})),this.registerEventHandler(this.Event.SheetNameChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetNameCommand.id){const{name:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetNameChanged(i.workbook,i.worksheet,r)}})),this.registerEventHandler(this.Event.SheetTabColorChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetTabColorMutation.id){const{color:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetTabColorChanged(i.workbook,i.worksheet,r)}})),this.registerEventHandler(this.Event.SheetHideChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetWorksheetHideMutation.id){const{hidden:r}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetHideChanged(i.workbook,i.worksheet,!!r)}})),this.registerEventHandler(this.Event.GridlineChanged,()=>e.onCommandExecuted(t=>{if(t.id===o.SetGridlinesColorCommand.id||t.id===o.ToggleGridlinesCommand.id){const r=this.getCommandSheetTarget(t);if(!r)return;this.fireEvent(this.Event.GridlineChanged,{...r,enabled:!r.worksheet.hasHiddenGridLines(),color:r.worksheet.getGridLinesColor()})}})),this._initWorkbookEvent(n)}createUniverSheet(n,e){const r=this._injector.get(h.IUniverInstanceService).createUnit(h.UniverInstanceType.UNIVER_SHEET,n,e);return this._injector.createInstance(exports.FWorkbook,r)}createWorkbook(n,e){return this.createUniverSheet(n,e)}getActiveWorkbook(){const n=this._univerInstanceService.getCurrentUnitForType(h.UniverInstanceType.UNIVER_SHEET);return n?this._injector.createInstance(exports.FWorkbook,n):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(n){const e=this._univerInstanceService.getUnit(n,h.UniverInstanceType.UNIVER_SHEET);return e?this._injector.createInstance(exports.FWorkbook,e):null}getWorkbook(n){return this.getUniverSheet(n)}getPermission(){return this._injector.createInstance(exports.FPermission)}onUniverSheetCreated(n){const e=this._univerInstanceService.getTypeOfUnitAdded$(h.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const r=this._injector.createInstance(exports.FWorkbook,t);n(r)});return h.toDisposable(e)}newDefinedName(){return this._injector.createInstance(B)}getActiveSheet(){const n=this.getActiveWorkbook();if(!n)return null;const e=n.getActiveSheet();return e?{workbook:n,worksheet:e}:null}setFreezeSync(n){this._injector.get(o.SheetsFreezeSyncController).setEnabled(n)}_fireActiveSheetChanged(n,e){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:n,activeSheet:e})}_fireSheetDeleted(n,e){this.fireEvent(this.Event.SheetDeleted,{workbook:n,sheetId:e})}_fireSheetMoved(n,e,t){this.fireEvent(this.Event.SheetMoved,{workbook:n,worksheet:e,newIndex:t})}_fireSheetNameChanged(n,e,t){this.fireEvent(this.Event.SheetNameChanged,{workbook:n,worksheet:e,newName:t})}_fireSheetTabColorChanged(n,e,t){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:n,worksheet:e,newColor:t})}_fireSheetHideChanged(n,e,t){this.fireEvent(this.Event.SheetHideChanged,{workbook:n,worksheet:e,hidden:t})}}R.FUniver.extend(Ue);class te{get SheetValueChangeType(){return o.SheetValueChangeType}get SheetSkeletonChangeType(){return o.SheetSkeletonChangeType}get SplitDelimiterType(){return o.SplitDelimiterEnum}get UnitRole(){return W}get WorkbookPermissionPoint(){return g}get WorksheetPermissionPoint(){return S}get RangePermissionPoint(){return I}}R.FEnum.extend(te);class ne{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"}}R.FEventName.extend(ne);var De=Object.getOwnPropertyDescriptor,We=(s,n,e,t)=>{for(var r=t>1?void 0:t?De(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(r=a(r)||r);return r},xe=(s,n)=>(e,t)=>n(e,t,s);exports.FSheetHooks=class extends R.FBase{constructor(n){super(),this._injector=n}};exports.FSheetHooks=We([xe(0,h.Inject(h.Injector))],exports.FSheetHooks);exports.FSheetEventName=ne;exports.FSheetsEnum=te;
|