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