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