@univerjs/sheets 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +2 -2
- package/lib/es/facade.js +1 -1
- package/lib/es/index.js +2 -2
- package/lib/facade.js +1 -1
- package/lib/index.js +2 -2
- package/lib/types/commands/commands/set-worksheet-row-height.command.d.ts +1 -1
- package/lib/types/facade/f-enum.d.ts +4 -3
- package/lib/types/facade/f-event.d.ts +79 -78
- package/lib/types/facade/f-univer.d.ts +0 -6
- package/lib/types/index.d.ts +6 -4
- package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +1 -0
- package/lib/types/skeleton/drawing-position-util.d.ts +49 -0
- package/lib/types/skeleton/skeleton.service.d.ts +27 -7
- package/lib/types/skeleton/util.d.ts +34 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +7 -7
|
@@ -13,13 +13,33 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { Nullable,
|
|
17
|
-
import {
|
|
16
|
+
import type { Nullable, Styles, Worksheet } from '@univerjs/core';
|
|
17
|
+
import type { Scene } from '@univerjs/engine-render';
|
|
18
|
+
import { Disposable, Injector, IUniverInstanceService } from '@univerjs/core';
|
|
19
|
+
import { SpreadsheetSkeleton } from '@univerjs/engine-render';
|
|
20
|
+
export interface ISheetSkeletonManagerParam {
|
|
21
|
+
unitId: string;
|
|
22
|
+
sheetId: string;
|
|
23
|
+
skeleton: SpreadsheetSkeleton;
|
|
24
|
+
dirty: boolean;
|
|
25
|
+
commandId?: string;
|
|
26
|
+
}
|
|
18
27
|
export declare class SheetSkeletonService extends Disposable {
|
|
19
28
|
readonly _injector: Injector;
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
private readonly _univerInstanceService;
|
|
30
|
+
private _sceneMap;
|
|
31
|
+
private _sheetSkeletonParamStore;
|
|
32
|
+
constructor(_injector: Injector, _univerInstanceService: IUniverInstanceService);
|
|
33
|
+
dispose(): void;
|
|
34
|
+
private _disposeByUnitId;
|
|
35
|
+
private _init;
|
|
36
|
+
private _initWorkbookSkeleton;
|
|
37
|
+
private _initSheetsSkeleton;
|
|
38
|
+
private _buildSkeleton;
|
|
39
|
+
setScene(unitId: string, scene: Scene): void;
|
|
40
|
+
getSkeleton(unitId: string, subUnitId: string): Nullable<SpreadsheetSkeleton>;
|
|
41
|
+
getSkeletonParam(unitId: string, subUnitId: string): Nullable<ISheetSkeletonManagerParam>;
|
|
42
|
+
newSkeleton(unitId: string, subUnitId: string, worksheet: Worksheet, styles: Styles): SpreadsheetSkeleton;
|
|
43
|
+
newSkeletonParam(unitId: string, subUnitId: string, worksheet: Worksheet, styles: Styles): ISheetSkeletonManagerParam;
|
|
44
|
+
ensureSkeleton(unitId: string, subUnitId: string): SpreadsheetSkeleton | undefined;
|
|
25
45
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import type { ICellWithCoord, IRange, IRangeWithCoord, ISelectionCell } from '@univerjs/core';
|
|
17
|
+
import type { SpreadsheetSkeleton } from '@univerjs/engine-render';
|
|
18
|
+
import type { ISelectionWithCoord, ISelectionWithStyle } from '../basics';
|
|
19
|
+
/**
|
|
20
|
+
* Add startXY endXY to range, XY are no merge cell position.
|
|
21
|
+
* @returns {IRangeWithCoord} range with coord
|
|
22
|
+
*/
|
|
23
|
+
export declare function attachRangeWithCoord(skeleton: SpreadsheetSkeleton, range: IRange): IRangeWithCoord;
|
|
24
|
+
/**
|
|
25
|
+
* Return selection with coord and style from selection, which has range & primary & style.
|
|
26
|
+
* coord are no merge cell position.
|
|
27
|
+
* @returns {ISelectionWithCoord} selection with coord and style
|
|
28
|
+
*/
|
|
29
|
+
export declare function attachSelectionWithCoord(selection: ISelectionWithStyle, skeleton: SpreadsheetSkeleton): ISelectionWithCoord;
|
|
30
|
+
/**
|
|
31
|
+
* Add startXY endXY to primary, XY are no merge cell position.
|
|
32
|
+
* @returns {ICellWithCoord} primary with coord
|
|
33
|
+
*/
|
|
34
|
+
export declare function attachPrimaryWithCoord(skeleton: SpreadsheetSkeleton, primary: ISelectionCell): ICellWithCoord;
|
package/lib/umd/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/core/facade`),require(`@univerjs/sheets`),require(`@univerjs/engine-formula`),require(`rxjs`),require(`rxjs/operators`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/sheets`,`@univerjs/engine-formula`,`rxjs`,`rxjs/operators`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsFacade={},e.UniverCore,e.UniverCoreFacade,e.UniverSheets,e.UniverEngineFormula,e.rxjs,e.rxjs.operators))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function s(e){"@babel/helpers - typeof";return s=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},s(e)}function c(e,t){if(s(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(s(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e){var t=c(e,`string`);return s(t)==`symbol`?t:t+``}function u(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){return function(n,r){t(n,r,e)}}function f(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 p(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 m=class{constructor(){u(this,`_definedNameParam`,void 0),this._definedNameParam={id:(0,t.generateRandomId)(10),unitId:``,name:``,formulaOrRefString:``,localSheetId:r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}}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=(0,i.serializeRange)({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=r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this}setHidden(e){return this._definedNameParam.hidden=e,this}build(){return this._definedNameParam}load(e){return this._definedNameParam=e,this}};let h=class extends n.FBase{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=p(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(r.SetDefinedNameCommand.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=(0,i.serializeRange)({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=r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(e){this._definedNameParam.hidden=e,this._apply()}delete(){this._commandService.syncExecuteCommand(r.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){let e=this._injector.createInstance(m);return e.load(this._definedNameParam),e}};h=f([d(1,(0,t.Inject)(t.Injector)),d(2,t.ICommandService),d(3,t.IPermissionService),d(4,(0,t.Inject)(r.WorksheetProtectionRuleModel)),d(5,(0,t.Inject)(r.RangeProtectionRuleModel)),d(6,(0,t.Inject)(r.WorksheetProtectionPointModel)),d(7,(0,t.Inject)(t.IAuthzIoService)),d(8,(0,t.Inject)(t.LocaleService)),d(9,i.IDefinedNamesService)],h);let g=function(e){return e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e}({}),_=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}({}),v=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}({}),y=function(e){return e.Edit=`RangeEdit`,e.View=`RangeView`,e.ManageCollaborator=`RangeManageCollaborator`,e.Delete=`RangeDeleteProtection`,e}({}),b=class extends n.FBase{constructor(e,t,n,i,a,o,s,c){super(),this._injector=e,this._commandService=t,this._permissionService=n,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=o,this._workbookPermissionService=s,this._authzIoService=c,u(this,`permissionPointsDefinition`,r.PermissionPointsDefinitions),u(this,`rangeRuleChangedAfterAuth$`,void 0),u(this,`sheetRuleChangedAfterAuth$`,void 0),u(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,r.WorkbookEditablePermission,t)}async addWorksheetBasePermission(e,t,n){let i=[];if(n!=null&&n.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),r=new Set(n.allowedUsers);i=t.filter(e=>{var t;return r.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:g.Editor,subject:e.subject}));let a=new Set(i.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 a=await this._authzIoService.create({objectType:r.UnitObject.Worksheet,worksheetObject:{collaborators:i,unitID:e,strategies:[],name:(n==null?void 0:n.name)||``,scope:void 0}});if(this._commandService.syncExecuteCommand(r.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:t,rule:{permissionId:a,unitType:r.UnitObject.Worksheet,unitId:e,subUnitId:t}}))return a}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(r.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:t}),[...(0,r.getAllWorksheetPermissionPoint)(),...(0,r.getAllWorksheetPermissionPointByPointPanel)()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,n,i){let a=this._worksheetProtectionRuleModel.getRule(e,t),o;if(n===r.WorksheetEditPermission||n===r.WorksheetViewPermission)o=a?a.permissionId:await this.addWorksheetBasePermission(e,t);else{let n=this._worksheetProtectionPointRuleModel.getRule(e,t);n?o=n.permissionId:(o=await this._authzIoService.create({objectType:r.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:``,scope:void 0}}),this._commandService.syncExecuteCommand(r.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:o}}))}let s=new n(e,t);if(this._permissionService.getPermissionPoint(s.id)||this._permissionService.addPermissionPoint(s),o){let t=s.subType;await this._authzIoService.update({objectType:r.UnitObject.Worksheet,objectID:o,strategies:[{action:t,role:i?g.Owner:g.Reader}],unitID:e,share:void 0,name:``,scope:void 0,collaborators:void 0})}return this._permissionService.updatePermissionPoint(s.id,i),o}checkWorksheetPermissionPoint(e,t,n){let r=new n(e,t),i=this._permissionService.getPermissionPoint(r.id);if(i)return i.value}async addRangeBaseProtection(e,n,i,a){let o=[];if(a!=null&&a.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),n=new Set(a.allowedUsers);o=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:g.Editor,subject:e.subject}));let r=new Set(o.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));a.allowedUsers.forEach(e=>{r.has(e)||console.error(`User ${e} not found in collaborators list`)})}let s=await this._authzIoService.create({objectType:r.UnitObject.SelectRange,selectRangeObject:{collaborators:o,unitID:e,name:(a==null?void 0:a.name)||``,scope:void 0}}),c=`ruleId_${(0,t.generateRandomId)(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(e,n).some(e=>e.ranges.some(e=>i.some(n=>t.Rectangle.intersects(n.getRange(),e)))))throw Error(`range protection cannot intersect`);let l=this._determineRangeViewState(a),u=this._determineRangeEditState(a),d={unitId:e,subUnitId:n,rules:[{permissionId:s,unitType:r.UnitObject.SelectRange,unitId:e,subUnitId:n,ranges:i.map(e=>e.getRange()),id:c,description:a==null?void 0:a.name,viewState:l,editState:u}]};if(this._commandService.syncExecuteCommand(r.AddRangeProtectionMutation.id,d))return{permissionId:s,ruleId:c}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?r.ViewStateEnum.NoOneElseCanView:r.ViewStateEnum.OthersCanView}_determineRangeEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?r.EditStateEnum.DesignedUserCanEdit:r.EditStateEnum.OnlyMe}removeRangeProtection(e,t,n){this._commandService.syncExecuteCommand(r.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleIds:n})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...(0,r.getAllWorksheetPermissionPointByPointPanel)()].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,n,i,a){let o=this._rangeProtectionRuleModel.getRule(e,n,i);if(o){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,n).filter(e=>e.id!==i).some(e=>e.ranges.some(e=>a.some(n=>t.Rectangle.intersects(n.getRange(),e)))))throw Error(`range protection cannot intersect`);this._commandService.syncExecuteCommand(r.SetRangeProtectionMutation.id,{unitId:e,subUnitId:n,ruleId:i,rule:{...o,ranges:a.map(e=>e.getRange())}})}}getPermissionInfoWithCell(e,n,r,i){let a=(0,t.cellToRange)(r,i),o=this._rangeProtectionRuleModel.getSubunitRuleList(e,n).find(e=>e.ranges.some(e=>t.Rectangle.intersects(a,e)));if(o)return{permissionId:o.permissionId,ruleId:o.id}}};b=f([d(0,(0,t.Inject)(t.Injector)),d(1,t.ICommandService),d(2,t.IPermissionService),d(3,(0,t.Inject)(r.WorksheetProtectionRuleModel)),d(4,(0,t.Inject)(r.RangeProtectionRuleModel)),d(5,(0,t.Inject)(r.WorksheetProtectionPointModel)),d(6,(0,t.Inject)(r.WorkbookPermissionService)),d(7,(0,t.Inject)(t.IAuthzIoService))],b);var x;let S=x=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(J,this._workbook,this._worksheet,e.range):null}getActiveRangeList(){return this._selections.map(e=>this._injector.createInstance(J,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(X,this._workbook);return this._injector.createInstance(W,e,this._workbook,this._worksheet)}updatePrimaryCell(e){let n=this._injector.get(t.ICommandService),i=[],a=!1;for(let{range:n,style:o}of this._selections)t.Rectangle.contains(n,e.getRange())?(i.push({range:n,primary:(0,r.getPrimaryForRange)(e.getRange(),this._worksheet),style:o}),a=!0):i.push({range:n,primary:null,style:o});a||(i=[{range:e.getRange(),primary:(0,r.getPrimaryForRange)(e.getRange(),this._worksheet)}]);let o={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:i};return n.syncExecuteCommand(r.SetSelectionsOperation.id,o),new x(this._workbook,this._worksheet,i,this._injector)}getNextDataRange(e){if(!this._selections.find(e=>!!e.primary))return null;let t=(0,r.getNextPrimaryCell)(this._selections.concat(),e,this._worksheet);return t?this._injector.createInstance(J,this._workbook,this._worksheet,t):null}};S=x=f([d(3,(0,t.Inject)(t.Injector))],S);var ee=(e=>(e[e.OpenOrReOpen=0]=`OpenOrReOpen`,e[e.Solved=1]=`Solved`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ee||{}),te=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Add=1]=`Add`,e[e.Reply=2]=`Reply`,e[e.Edit=3]=`Edit`,e[e.Delete=4]=`Delete`,e[e.Solve=5]=`Solve`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(te||{}),ne=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.OK=1]=`OK`,e[e.INTERNAL_ERROR=2]=`INTERNAL_ERROR`,e[e.PERMISSION_DENIED=3]=`PERMISSION_DENIED`,e[e.NOT_FOUND=4]=`NOT_FOUND`,e[e.UNAUTHENTICATED=5]=`UNAUTHENTICATED`,e[e.ALREADY_EXISTS=6]=`ALREADY_EXISTS`,e[e.INVALID_ARGUMENT=7]=`INVALID_ARGUMENT`,e[e.TOO_MANY_REQUESTS=8]=`TOO_MANY_REQUESTS`,e[e.COMPLETION_FINISHED=9]=`COMPLETION_FINISHED`,e[e.LOGIN_FAILED=10]=`LOGIN_FAILED`,e[e.MOBILE_VERIFY_CODE_MISMATCH=11]=`MOBILE_VERIFY_CODE_MISMATCH`,e[e.MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=12]=`MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.EMAIL_VERIFY_CODE_MISMATCH=13]=`EMAIL_VERIFY_CODE_MISMATCH`,e[e.EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=14]=`EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.AUTHORIZE_CODE_ILLEGAL=15]=`AUTHORIZE_CODE_ILLEGAL`,e[e.LOGIN_TOKEN_PROCESSING_FAILED=16]=`LOGIN_TOKEN_PROCESSING_FAILED`,e[e.CURRENT_STATUS_CANNOT_OPERATE=100]=`CURRENT_STATUS_CANNOT_OPERATE`,e[e.ERROR_AGAIN=101]=`ERROR_AGAIN`,e[e.USER_NOT_FOUND=201]=`USER_NOT_FOUND`,e[e.USER_IS_ANONYMOUS=202]=`USER_IS_ANONYMOUS`,e[e.CHANGESET_REVISION_CONFILICT=5001]=`CHANGESET_REVISION_CONFILICT`,e[e.SNAPSHOT_INVALID_SNAPSHOT=6001]=`SNAPSHOT_INVALID_SNAPSHOT`,e[e.SNAPSHOT_HAS_BEEN_REMOVED=6002]=`SNAPSHOT_HAS_BEEN_REMOVED`,e[e.ENSURE_SNAPSHOT_EXECUTION=6003]=`ENSURE_SNAPSHOT_EXECUTION`,e[e.APPLY_REJECT=7001]=`APPLY_REJECT`,e[e.APPLY_NON_SEQUENTIAL_REVISION=7002]=`APPLY_NON_SEQUENTIAL_REVISION`,e[e.APPLY_REVISION_CONFILICT=7003]=`APPLY_REVISION_CONFILICT`,e[e.APPLY_PERMISSION_DENIED=7004]=`APPLY_PERMISSION_DENIED`,e[e.APPLY_DUPLICATED=7005]=`APPLY_DUPLICATED`,e[e.CONNECTOR_DATA_TOO_LARGE=8001]=`CONNECTOR_DATA_TOO_LARGE`,e[e.LICENSE_MAX_UNITS_EXCEEDED=9001]=`LICENSE_MAX_UNITS_EXCEEDED`,e[e.LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED=9002]=`LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED`,e[e.LICENSE_IMPORT_SIZE_EXCEEDED=9003]=`LICENSE_IMPORT_SIZE_EXCEEDED`,e[e.LICENSE_EXPORT_SIZE_EXCEEDED=9004]=`LICENSE_EXPORT_SIZE_EXCEEDED`,e[e.LICENSE_DISTRO_REJECTED=9005]=`LICENSE_DISTRO_REJECTED`,e[e.YUUMI_UNABLE_LOAD_URL=10001]=`YUUMI_UNABLE_LOAD_URL`,e[e.YUUMI_URL_COL_OUT_OF_RANGE=10002]=`YUUMI_URL_COL_OUT_OF_RANGE`,e[e.YUUMI_RATE_OVER_LIMIT=10003]=`YUUMI_RATE_OVER_LIMIT`,e[e.YUUMI_SUBSCRIPTION_NOT_FOUND=10004]=`YUUMI_SUBSCRIPTION_NOT_FOUND`,e[e.YUUMI_NO_CUBOID_FOR_QUESTION=10010]=`YUUMI_NO_CUBOID_FOR_QUESTION`,e[e.YUUMI_ASYNCIO_CANCELLED=10011]=`YUUMI_ASYNCIO_CANCELLED`,e[e.YUUMI_TABLE_NOT_FOUND_IN_UNIT=10012]=`YUUMI_TABLE_NOT_FOUND_IN_UNIT`,e[e.YUUMI_ALL_TABLES_IS_INVALID=10013]=`YUUMI_ALL_TABLES_IS_INVALID`,e[e.YUUMI_PROMPT_MAX_TOKENS_EXCEEDED=10014]=`YUUMI_PROMPT_MAX_TOKENS_EXCEEDED`,e[e.YUUMI_AI_RUN_FAILED=10015]=`YUUMI_AI_RUN_FAILED`,e[e.YUUMI_CONNECTOR_URL_NOT_FOUND=10016]=`YUUMI_CONNECTOR_URL_NOT_FOUND`,e[e.PY_RUNTIME_SCRIPT_ERROR=11001]=`PY_RUNTIME_SCRIPT_ERROR`,e[e.INVITE_CODE_HAS_BEEN_UES=12001]=`INVITE_CODE_HAS_BEEN_UES`,e[e.INVALID_INVITE_CODE=12002]=`INVALID_INVITE_CODE`,e[e.INVITE_CODE_REQUIRED=12003]=`INVITE_CODE_REQUIRED`,e[e.USER_NOT_INVITED_CODE=12004]=`USER_NOT_INVITED_CODE`,e[e.INVITE_CODE_ALREADY_BOUND=12005]=`INVITE_CODE_ALREADY_BOUND`,e[e.WECHAT_HAS_BEEN_BOUND=13001]=`WECHAT_HAS_BEEN_BOUND`,e[e.MOBILE_HAS_BEEN_BOUND=13002]=`MOBILE_HAS_BEEN_BOUND`,e[e.EMAIL_HAS_BEEN_BOUND=13003]=`EMAIL_HAS_BEEN_BOUND`,e[e.ENTITLE_CAN_NOT_BUY_LOWER_OTP=14001]=`ENTITLE_CAN_NOT_BUY_LOWER_OTP`,e[e.ENTITLE_UPDOWN_GRADE_NOT_SUPPORT=14002]=`ENTITLE_UPDOWN_GRADE_NOT_SUPPORT`,e[e.ENTITLE_DUP_SUBSCRIPTION=14003]=`ENTITLE_DUP_SUBSCRIPTION`,e[e.PAYMENT_CHANNEL_NOT_SUPPORT=14004]=`PAYMENT_CHANNEL_NOT_SUPPORT`,e[e.ENTITLE_INVALID_COUPON_CODE=14005]=`ENTITLE_INVALID_COUPON_CODE`,e[e.ENTITLE_COUPON_EXPIRED=14006]=`ENTITLE_COUPON_EXPIRED`,e[e.ENTITLE_COUPON_USED_UP=14007]=`ENTITLE_COUPON_USED_UP`,e[e.ENTITLE_USE_COUPON_NOT_1ST_TRADE=14008]=`ENTITLE_USE_COUPON_NOT_1ST_TRADE`,e[e.ENTITLE_CHAT_LIMIT_EXCEED=14101]=`ENTITLE_CHAT_LIMIT_EXCEED`,e[e.ENTITLE_REPORT_LIMIT_EXCEED=14102]=`ENTITLE_REPORT_LIMIT_EXCEED`,e[e.ENTITLE_INSUFFICIENT_QUOTA=14103]=`ENTITLE_INSUFFICIENT_QUOTA`,e[e.ENTITLE_NEED_BILLING_ADDRESS=14301]=`ENTITLE_NEED_BILLING_ADDRESS`,e[e.REDEMPTION_INVALID_CODE=15001]=`REDEMPTION_INVALID_CODE`,e[e.REDEMPTION_CODE_INACTIVE=15002]=`REDEMPTION_CODE_INACTIVE`,e[e.REDEMPTION_CODE_FULLY_REDEEMED=15003]=`REDEMPTION_CODE_FULLY_REDEEMED`,e[e.REDEMPTION_CODE_NOT_STARTED=15004]=`REDEMPTION_CODE_NOT_STARTED`,e[e.REDEMPTION_USER_NOT_ELIGIBLE=15005]=`REDEMPTION_USER_NOT_ELIGIBLE`,e[e.REDEMPTION_USER_REDEEM_TIMES_EXCEED=15006]=`REDEMPTION_USER_REDEEM_TIMES_EXCEED`,e[e.REDEMPTION_CODE_HAS_BEEN_CREATED=15007]=`REDEMPTION_CODE_HAS_BEEN_CREATED`,e[e.DATA_SOURCE_TOO_LARGE=16001]=`DATA_SOURCE_TOO_LARGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ne||{}),re=(e=>(e[e.UNIVER_UNKNOWN=0]=`UNIVER_UNKNOWN`,e[e.UNIVER_DOC=1]=`UNIVER_DOC`,e[e.UNIVER_SHEET=2]=`UNIVER_SHEET`,e[e.UNIVER_SLIDE=3]=`UNIVER_SLIDE`,e[e.UNIVER_PROJECT=4]=`UNIVER_PROJECT`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(re||{}),ie=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.TEXT=1]=`TEXT`,e[e.URL=2]=`URL`,e[e.IMAGE=3]=`IMAGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ie||{}),ae=(e=>(e[e.View=0]=`View`,e[e.Edit=1]=`Edit`,e[e.ManageCollaborator=2]=`ManageCollaborator`,e[e.Print=3]=`Print`,e[e.Duplicate=4]=`Duplicate`,e[e.Comment=5]=`Comment`,e[e.Copy=6]=`Copy`,e[e.Share=7]=`Share`,e[e.Export=8]=`Export`,e[e.MoveWorksheet=9]=`MoveWorksheet`,e[e.DeleteWorksheet=10]=`DeleteWorksheet`,e[e.HideWorksheet=11]=`HideWorksheet`,e[e.RenameWorksheet=12]=`RenameWorksheet`,e[e.CreateWorksheet=13]=`CreateWorksheet`,e[e.SetWorksheetStyle=14]=`SetWorksheetStyle`,e[e.EditWorksheetCell=15]=`EditWorksheetCell`,e[e.InsertHyperlink=16]=`InsertHyperlink`,e[e.Sort=17]=`Sort`,e[e.Filter=18]=`Filter`,e[e.PivotTable=19]=`PivotTable`,e[e.FloatImg=20]=`FloatImg`,e[e.History=21]=`History`,e[e.RwHgtClWdt=22]=`RwHgtClWdt`,e[e.ViemRwHgtClWdt=23]=`ViemRwHgtClWdt`,e[e.ViewFilter=24]=`ViewFilter`,e[e.MoveSheet=25]=`MoveSheet`,e[e.DeleteSheet=26]=`DeleteSheet`,e[e.HideSheet=27]=`HideSheet`,e[e.CopySheet=28]=`CopySheet`,e[e.RenameSheet=29]=`RenameSheet`,e[e.CreateSheet=30]=`CreateSheet`,e[e.SelectProtectedCells=31]=`SelectProtectedCells`,e[e.SelectUnProtectedCells=32]=`SelectUnProtectedCells`,e[e.SetCellStyle=33]=`SetCellStyle`,e[e.SetCellValue=34]=`SetCellValue`,e[e.SetRowStyle=35]=`SetRowStyle`,e[e.SetColumnStyle=36]=`SetColumnStyle`,e[e.InsertRow=37]=`InsertRow`,e[e.InsertColumn=38]=`InsertColumn`,e[e.DeleteRow=39]=`DeleteRow`,e[e.DeleteColumn=40]=`DeleteColumn`,e[e.EditExtraObject=41]=`EditExtraObject`,e[e.Delete=42]=`Delete`,e[e.RecoverHistory=43]=`RecoverHistory`,e[e.ViewHistory=44]=`ViewHistory`,e[e.CreatePermissionObject=45]=`CreatePermissionObject`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ae||{}),C=(e=>(e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(C||{}),oe=(e=>(e[e.Unkonwn=0]=`Unkonwn`,e[e.Workbook=1]=`Workbook`,e[e.Worksheet=2]=`Worksheet`,e[e.SelectRange=3]=`SelectRange`,e[e.Document=4]=`Document`,e[e.Slide=5]=`Slide`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(oe||{}),w=(e=>(e[e.Private=0]=`Private`,e[e.Public=1]=`Public`,e[e.Organization=2]=`Organization`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(w||{}),T=(e=>(e[e.SomeCollaborator=0]=`SomeCollaborator`,e[e.AllCollaborator=1]=`AllCollaborator`,e[e.OneSelf=2]=`OneSelf`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(T||{}),E=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.STRING=1]=`STRING`,e[e.NUMBER=2]=`NUMBER`,e[e.BOOLEAN=3]=`BOOLEAN`,e[e.FORCE_STRING=4]=`FORCE_STRING`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(E||{}),se=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Colla=1]=`Colla`,e[e.Import=2]=`Import`,e[e.Export=3]=`Export`,e[e.CreateUnit=4]=`CreateUnit`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(se||{}),ce=(e=>(e[e.valueBetween=0]=`valueBetween`,e[e.valueEqual=1]=`valueEqual`,e[e.valueGreaterThan=2]=`valueGreaterThan`,e[e.valueGreaterThanOrEqual=3]=`valueGreaterThanOrEqual`,e[e.valueLessThan=4]=`valueLessThan`,e[e.valueLessThanOrEqual=5]=`valueLessThanOrEqual`,e[e.valueNotBetween=6]=`valueNotBetween`,e[e.valueNotEqual=7]=`valueNotEqual`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ce||{}),le=(e=>(e[e.DataFragmentationType_None=0]=`DataFragmentationType_None`,e[e.DataFragmentationType_Charts=1]=`DataFragmentationType_Charts`,e[e.DataFragmentationType_Unit=2]=`DataFragmentationType_Unit`,e[e.DataFragmentationType_WorkSheetRef=3]=`DataFragmentationType_WorkSheetRef`,e[e.DataFragmentationType_Code=4]=`DataFragmentationType_Code`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(le||{}),ue=(e=>(e[e.AnalyseTaskStatus_None=0]=`AnalyseTaskStatus_None`,e[e.AnalyseTaskStatus_Analysing=1]=`AnalyseTaskStatus_Analysing`,e[e.AnalyseTaskStatus_Failed=2]=`AnalyseTaskStatus_Failed`,e[e.AnalyseTaskStatus_Completed=3]=`AnalyseTaskStatus_Completed`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ue||{}),de=(e=>(e[e.UNKNOWN_CMD=0]=`UNKNOWN_CMD`,e[e.HELLO=1]=`HELLO`,e[e.JOIN=2]=`JOIN`,e[e.LEAVE=3]=`LEAVE`,e[e.INGEST=4]=`INGEST`,e[e.HEARTBEAT=5]=`HEARTBEAT`,e[e.RECV=6]=`RECV`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(de||{}),fe=(e=>(e[e.UNKNOWN_CODE=0]=`UNKNOWN_CODE`,e[e.OK=1]=`OK`,e[e.FAIL=2]=`FAIL`,e[e.JOIN_ROOM_FULL=1001]=`JOIN_ROOM_FULL`,e[e.JOIN_ROOM_NOT_EXISTS=1002]=`JOIN_ROOM_NOT_EXISTS`,e[e.JOIN_ROOM_PERMISSION_DENIED=1003]=`JOIN_ROOM_PERMISSION_DENIED`,e[e.GLOBAL_ROOMS_CNT_EXCEEDS=1004]=`GLOBAL_ROOMS_CNT_EXCEEDS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(fe||{}),pe=(e=>(e[e.Completion_None=0]=`Completion_None`,e[e.Completion_Completed=1]=`Completion_Completed`,e[e.Completion_UserCancelled=2]=`Completion_UserCancelled`,e[e.Completion_SystemErr=3]=`Completion_SystemErr`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(pe||{}),me=(e=>(e[e.RoleType_None=0]=`RoleType_None`,e[e.RoleType_User=1]=`RoleType_User`,e[e.RoleType_Agent=2]=`RoleType_Agent`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(me||{}),he=(e=>(e[e.ContentBlockType_None=0]=`ContentBlockType_None`,e[e.ContentBlockType_Prompt=1]=`ContentBlockType_Prompt`,e[e.ContentBlockType_Thinking=2]=`ContentBlockType_Thinking`,e[e.ContentBlockType_Report=3]=`ContentBlockType_Report`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(he||{}),ge=(e=>(e[e.ContentType_None=0]=`ContentType_None`,e[e.ContentType_PlainText=1]=`ContentType_PlainText`,e[e.ContentType_Markdown=2]=`ContentType_Markdown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ge||{}),_e=(e=>(e[e.AttachmentType_None=0]=`AttachmentType_None`,e[e.AttachmentType_Unit=1]=`AttachmentType_Unit`,e[e.AttachmentType_Recommendation=3]=`AttachmentType_Recommendation`,e[e.AttachmentType_DataSource=4]=`AttachmentType_DataSource`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(_e||{}),ve=(e=>(e[e.Reaction_NoReact=0]=`Reaction_NoReact`,e[e.Reaction_ThumbsUp=1]=`Reaction_ThumbsUp`,e[e.Reaction_ThumbsDown=2]=`Reaction_ThumbsDown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ve||{}),D=(e=>(e[e.ChatSSEBlockType_None=0]=`ChatSSEBlockType_None`,e[e.ChatSSEBlockType_EndOfStream=1]=`ChatSSEBlockType_EndOfStream`,e[e.ChatSSEBlockType_Reject=2]=`ChatSSEBlockType_Reject`,e[e.ChatSSEBlockType_ModConversation=3]=`ChatSSEBlockType_ModConversation`,e[e.ChatSSEBlockType_PromptAck=4]=`ChatSSEBlockType_PromptAck`,e[e.ChatSSEBlockType_ChatContent=5]=`ChatSSEBlockType_ChatContent`,e[e.ChatSSEBlockType_Attachment=6]=`ChatSSEBlockType_Attachment`,e[e.ChatSSEBlockType_RespMeta=7]=`ChatSSEBlockType_RespMeta`,e[e.ChatSSEBlockType_StreamErr=8]=`ChatSSEBlockType_StreamErr`,e[e.ChatSSEBlockType_ChatThinking=9]=`ChatSSEBlockType_ChatThinking`,e[e.ChatSSEBlockType_Fragmentation=10]=`ChatSSEBlockType_Fragmentation`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(D||{}),O=(e=>(e[e.ChatSSEStatus_None=0]=`ChatSSEStatus_None`,e[e.ChatSSEStatus_Appending=1]=`ChatSSEStatus_Appending`,e[e.ChatSSEStatus_Success=2]=`ChatSSEStatus_Success`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(O||{}),k=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.UNIT=1]=`UNIT`,e[e.JSON=2]=`JSON`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(k||{}),A=(e=>(e[e.ImportScene_Unspecified=0]=`ImportScene_Unspecified`,e[e.ImportScene_General=1]=`ImportScene_General`,e[e.ImportScene_AIAnalyse=2]=`ImportScene_AIAnalyse`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(A||{}),j=(e=>(e[e.Undefined=0]=`Undefined`,e[e.HttpImport=1]=`HttpImport`,e[e.HttpExport=2]=`HttpExport`,e[e.UnitEmbedded=3]=`UnitEmbedded`,e[e.UnitSnapshot=4]=`UnitSnapshot`,e[e.UserProfileImg=5]=`UserProfileImg`,e[e.ClipsheetFragments=6]=`ClipsheetFragments`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(j||{}),M=(e=>(e[e.UNDEFINED_ENV=0]=`UNDEFINED_ENV`,e[e.NODE=1]=`NODE`,e[e.BROWSER=2]=`BROWSER`,e[e.PYTHON=3]=`PYTHON`,e[e.REQUIREMENTS_TXT=4]=`REQUIREMENTS_TXT`,e[e.WORKSPACE_ENV_VARS=5]=`WORKSPACE_ENV_VARS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(M||{}),N=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.ROOT=1]=`ROOT`,e[e.TRASH=2]=`TRASH`,e[e.DEBUG=3]=`DEBUG`,e[e.AI_STASH=4]=`AI_STASH`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(N||{});let P=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(r.SetRangeProtectionMutation.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(r.DeleteRangeProtectionMutation.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)}};P=f([d(6,(0,t.Inject)(t.Injector)),d(7,(0,t.Inject)(t.ICommandService)),d(8,(0,t.Inject)(r.RangeProtectionRuleModel))],P);let F={[_.Edit]:r.WorkbookEditablePermission,[_.View]:r.WorkbookViewPermission,[_.Print]:r.WorkbookPrintPermission,[_.Export]:r.WorkbookExportPermission,[_.Share]:r.WorkbookSharePermission,[_.CopyContent]:r.WorkbookCopyPermission,[_.DuplicateFile]:r.WorkbookDuplicatePermission,[_.Comment]:r.WorkbookCommentPermission,[_.ManageCollaborator]:r.WorkbookManageCollaboratorPermission,[_.CreateSheet]:r.WorkbookCreateSheetPermission,[_.DeleteSheet]:r.WorkbookDeleteSheetPermission,[_.RenameSheet]:r.WorkbookRenameSheetPermission,[_.MoveSheet]:r.WorkbookMoveSheetPermission,[_.HideSheet]:r.WorkbookHideSheetPermission,[_.ViewHistory]:r.WorkbookViewHistoryPermission,[_.ManageHistory]:r.WorkbookHistoryPermission,[_.RecoverHistory]:r.WorkbookRecoverHistoryPermission,[_.CreateProtection]:r.WorkbookCreateProtectPermission,[_.InsertRow]:r.WorkbookInsertRowPermission,[_.InsertColumn]:r.WorkbookInsertColumnPermission,[_.DeleteRow]:r.WorkbookDeleteRowPermission,[_.DeleteColumn]:r.WorkbookDeleteColumnPermission,[_.CopySheet]:r.WorkbookCopySheetPermission},I={[v.Edit]:r.WorksheetEditPermission,[v.View]:r.WorksheetViewPermission,[v.Copy]:r.WorksheetCopyPermission,[v.SetCellValue]:r.WorksheetSetCellValuePermission,[v.SetCellStyle]:r.WorksheetSetCellStylePermission,[v.SetRowStyle]:r.WorksheetSetRowStylePermission,[v.SetColumnStyle]:r.WorksheetSetColumnStylePermission,[v.InsertRow]:r.WorksheetInsertRowPermission,[v.InsertColumn]:r.WorksheetInsertColumnPermission,[v.DeleteRow]:r.WorksheetDeleteRowPermission,[v.DeleteColumn]:r.WorksheetDeleteColumnPermission,[v.Sort]:r.WorksheetSortPermission,[v.Filter]:r.WorksheetFilterPermission,[v.PivotTable]:r.WorksheetPivotTablePermission,[v.InsertHyperlink]:r.WorksheetInsertHyperlinkPermission,[v.EditExtraObject]:r.WorksheetEditExtraObjectPermission,[v.ManageCollaborator]:r.WorksheetManageCollaboratorPermission,[v.DeleteProtection]:r.WorksheetDeleteProtectionPermission,[v.SelectProtectedCells]:r.WorksheetSelectProtectedCellsPermission,[v.SelectUnProtectedCells]:r.WorksheetSelectUnProtectedCellsPermission},L={[y.Edit]:r.RangeProtectionPermissionEditPoint,[y.View]:r.RangeProtectionPermissionViewPoint,[y.ManageCollaborator]:r.RangeProtectionPermissionManageCollaPoint,[y.Delete]:r.RangeProtectionPermissionDeleteProtectionPoint},R=class{constructor(e,t,n,r,i,o,s,c){this._worksheet=e,this._injector=t,this._permissionService=n,this._authzIoService=r,this._commandService=i,this._rangeProtectionRuleModel=o,this._worksheetProtectionPointModel=s,this._worksheetProtectionRuleModel=c,u(this,`_permissionSubject`,void 0),u(this,`_rangeRulesSubject`,void 0),u(this,`permission$`,void 0),u(this,`pointChange$`,void 0),u(this,`rangeProtectionChange$`,void 0),u(this,`rangeProtectionRules$`,void 0),u(this,`_unitId`,void 0),u(this,`_subUnitId`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this._rangeRulesSubject=new a.BehaviorSubject(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((0,o.filter)(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((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId)),(0,o.map)(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}),(0,o.filter)(e=>e!==null),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId),(0,o.map)(e=>{let t=this._buildRangeProtectionRules();return{type:e.type===`delete`?`delete`:e.type===`set`?`update`:`add`,rules:t}}),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){let e=this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(e),this._rangeRulesSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>e.length===t.length?e.every((e,n)=>e.id===t[n].id):!1),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(e){for(let[t,n]of Object.entries(I))if(new n(this._unitId,this._subUnitId).id===e)return t;return null}_getRuleEditPermission(e){var t;let n=L[y.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 v){let n=v[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(P,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!==r.ViewStateEnum.NoOneElseCanView};return e.editState===r.EditStateEnum.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(P,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(v).forEach(e=>{t[e]=!1}),e){case`editable`:Object.values(v).forEach(e=>{t[e]=!0});break;case`readOnly`:t[v.View]=!0;break;case`filterOnly`:t[v.View]=!0,t[v.Sort]=!0,t[v.Filter]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=I[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(v.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(v.View)}async setPoint(e,t){let n=I[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=I[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,i;let a=[];if((n=e.options)!=null&&n.allowedUsers){let n=new Set(e.options.allowedUsers);a=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:C.Editor,subject:e.subject}));let r=new Set(a.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:r.UnitObject.SelectRange,selectRangeObject:{collaborators:a,unitID:this._unitId,name:((i=e.options)==null?void 0:i.name)||``,scope:void 0}})})),i=e.map((e,t)=>{var i;let a=this._determineViewState(e.options),o=this._determineEditState(e.options);return{permissionId:n[t],unitType:r.UnitObject.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:e.ranges.map(e=>e.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((i=e.options)==null?void 0:i.name)||``,viewState:a,editState:o}});if(!await this._commandService.executeCommand(r.AddRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:i}))throw Error(`Failed to create range protection rules`);return await Promise.all(e.map((e,t)=>this._setPermissionPoints(n[t],e.options))),i.map((t,n)=>this._injector.createInstance(P,this._unitId,this._subUnitId,t.id,t.permissionId,e[n].ranges,e[n].options||{}))}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?r.ViewStateEnum.NoOneElseCanView:r.ViewStateEnum.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?r.EditStateEnum.DesignedUserCanEdit:r.EditStateEnum.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,y.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,y.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=L[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()}};R=f([d(1,(0,t.Inject)(t.Injector)),d(2,t.IPermissionService),d(3,t.IAuthzIoService),d(4,t.ICommandService),d(5,(0,t.Inject)(r.RangeProtectionRuleModel)),d(6,(0,t.Inject)(r.WorksheetProtectionPointModel)),d(7,(0,t.Inject)(r.WorksheetProtectionRuleModel))],R);function ye(e){switch(e){case`left`:return t.HorizontalAlign.LEFT;case`center`:return t.HorizontalAlign.CENTER;case`normal`:return t.HorizontalAlign.RIGHT;default:throw Error(`Invalid horizontal alignment: ${e}`)}}function z(e){switch(e){case t.HorizontalAlign.LEFT:return`left`;case t.HorizontalAlign.CENTER:return`center`;case t.HorizontalAlign.RIGHT:return`normal`;default:return`general`}}function be(e){switch(e){case`top`:return t.VerticalAlign.TOP;case`middle`:return t.VerticalAlign.MIDDLE;case`bottom`:return t.VerticalAlign.BOTTOM;default:throw Error(`Invalid vertical alignment: ${e}`)}}function B(e){switch(e){case t.VerticalAlign.TOP:return`top`;case t.VerticalAlign.MIDDLE:return`middle`;case t.VerticalAlign.BOTTOM:return`bottom`;default:return`general`}}function V(e,n){return{startRow:e.startRow,endRow:e.endRow,startColumn:0,endColumn:n.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW}}function H(e,n){return{startRow:0,endRow:n.getRowCount()-1,startColumn:e.startColumn,endColumn:e.endColumn,rangeType:t.RANGE_TYPE.COLUMN}}var U;let W=U=class extends n.FBaseInitialable{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,u(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(S,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(r.SetWorksheetDefaultStyleMutation.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(r.SetColDataCommand.id,n),this}setRowDefaultStyle(e,t){let n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(r.SetRowDataCommand.id,n),this}getRange(e,n,r,a){let o,s;if(typeof e==`object`)o=e,s=this._worksheet;else if(typeof e==`string`){let{range:n,sheetName:r}=(0,i.deserializeRangeWithSheet)(e),a=r?this._workbook.getSheetBySheetName(r):this._worksheet;if(!a)throw Error(`Range not found`);s=a,o={...n,unitId:this._workbook.getUnitId(),sheetId:s.getSheetId(),rangeType:t.RANGE_TYPE.NORMAL,startRow:n.rangeType===t.RANGE_TYPE.COLUMN?0:n.startRow,endRow:n.rangeType===t.RANGE_TYPE.COLUMN?s.getMaxRows()-1:n.endRow,startColumn:n.rangeType===t.RANGE_TYPE.ROW?0:n.startColumn,endColumn:n.rangeType===t.RANGE_TYPE.ROW?s.getMaxColumns()-1:n.endColumn}}else if(typeof e==`number`&&n!==void 0)s=this._worksheet,o={startRow:e,endRow:e+(r==null?1:r)-1,startColumn:n,endColumn:n+(a==null?1:a)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw Error(`Invalid range specification`);return this._injector.createInstance(J,this._workbook,s,o)}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,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.DOWN,s=e+1,c=e+n,l=this._worksheet.getColumnCount()-1,u=(0,r.copyRangeStyles)(this._worksheet,s,c,0,l,!0,e);return this._commandService.syncExecuteCommand(r.InsertRowByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:s,endRow:c,startColumn:0,endColumn:l},cellValue:u}),this}insertRowsBefore(e,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.UP,s=e,c=e+n-1,l=this._worksheet.getColumnCount()-1,u=(0,r.copyRangeStyles)(this._worksheet,s,c,0,l,!0,e-1);return this._commandService.syncExecuteCommand(r.InsertRowByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:s,endRow:c,startColumn:0,endColumn:l},cellValue:u}),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(r.RemoveRowByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteRowsByPoints(e){return(0,t.generateIntervalsByPoints)(e).reverse().forEach(e=>{this.deleteRows(e[0],e[1]-e[0]+1)}),this}moveRows(e,t){let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=V(e.getRange(),this._worksheet),o=a,s={startRow:t,endRow:t,startColumn:a.startColumn,endColumn:a.endColumn};return this._commandService.syncExecuteCommand(r.MoveRowsCommand.id,{unitId:n,subUnitId:i,range:a,fromRange:o,toRange:s}),this}hideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=V(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetRowHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}hideRows(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(r.SetRowHiddenCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}unhideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=V(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetSpecificRowsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}showRows(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(r.SetSpecificRowsVisibleCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(e,n=t.BooleanNumber.TRUE){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(r.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:o[0],value:t.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(r.SetWorksheetRowIsAutoHeightMutation.id,{unitId:i,subUnitId:a,ranges:o,autoHeightInfo:n}),this}setRowHeights(e,t,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=this._worksheet.getRowManager(),s=[],c=[];for(let r=e;r<e+t;r++){var l;let e=((l=o.getRow(r))==null?void 0:l.ah)||this._worksheet.getConfig().defaultRowHeight,t={startRow:r,endRow:r,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};n<=e?s.push(t):c.push(t)}return c.length>0&&this._commandService.syncExecuteCommand(r.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:c,value:n}),s.length>0&&this._commandService.syncExecuteCommand(r.SetWorksheetRowIsAutoHeightCommand.id,{unitId:i,subUnitId:a,ranges:s}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){let n=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(r.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:i,ranges:a}),this}setRangesAutoHeight(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(r.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:n,ranges:e}),this}setRowHeightsForced(e,t,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(r.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:o,value:n}),this}setRowCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i={};for(let[t,n]of Object.entries(e))i[Number(t)]={custom:n};let a={unitId:t,subUnitId:n,rowData:i};return this._commandService.syncExecuteCommand(r.SetRowDataCommand.id,a),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,t=1){return this.insertColumnsBefore(e,t)}insertColumnsAfter(e,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.RIGHT,s=this._worksheet.getRowCount()-1,c=e+1,l=e+n,u=(0,r.copyRangeStyles)(this._worksheet,0,s,c,l,!1,e);return this._commandService.syncExecuteCommand(r.InsertColByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:0,endRow:s,startColumn:c,endColumn:l},cellValue:u}),this}insertColumnsBefore(e,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.LEFT,s=this._worksheet.getRowCount()-1,c=e,l=e+n-1,u=(0,r.copyRangeStyles)(this._worksheet,0,s,c,l,!1,e-1);return this._commandService.syncExecuteCommand(r.InsertColByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:0,endRow:s,startColumn:c,endColumn:l},cellValue:u}),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(r.RemoveColByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteColumnsByPoints(e){return(0,t.generateIntervalsByPoints)(e).reverse().forEach(e=>{this.deleteColumns(e[0],e[1]-e[0]+1)}),this}moveColumns(e,t){let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=H(e.getRange(),this._worksheet),o=a,s={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(r.MoveColsCommand.id,{unitId:n,subUnitId:i,range:a,fromRange:o,toRange:s}),this}hideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=H(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetColHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}hideColumns(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+n-1,rangeType:t.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(r.SetColHiddenCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}unhideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=H(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetSpecificColsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}showColumns(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+n-1,rangeType:t.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(r.SetSpecificColsVisibleCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(r.SetColWidthCommand.id,{unitId:i,subUnitId:a,ranges:o,value:n}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i={};for(let[t,n]of Object.entries(e))i[Number(t)]={custom:n};let a={unitId:t,subUnitId:n,columnData:i};return this._commandService.syncExecuteCommand(r.SetColDataCommand.id,a),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(J,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(e=>this._injector.createInstance(J,this._workbook,this._worksheet,e))}getCellMergeData(e,t){let n=this._worksheet.getMergedCell(e,t);if(n)return this._injector.createInstance(J,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(r.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(r.CancelFrozenCommand.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,i=0]=e;n>i&&([n,i]=[i,n]),this._commandService.syncExecuteCommand(r.SetFrozenCommand.id,{startColumn:i+1,xSplit:i-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,i=0]=e;n>i&&([n,i]=[i,n]),this._commandService.syncExecuteCommand(r.SetFrozenCommand.id,{startRow:i+1,ySplit:i-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===t.BooleanNumber.FALSE}setHiddenGridlines(e){return this._commandService.syncExecuteCommand(r.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:e?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(r.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(r.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(t.ICommandService).onCommandExecuted(n=>{if(n.id===r.SetRangeValuesMutation.id){let r=n.params;r.unitId===this._workbook.getUnitId()&&r.subUnitId===this._worksheet.getSheetId()&&r.cellValue&&e(new t.ObjectMatrix(r.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(t.ICommandService).beforeCommandExecuted(n=>{if(n.id===r.SetRangeValuesMutation.id){let r=n.params;r.unitId===this._workbook.getUnitId()&&r.subUnitId===this._worksheet.getSheetId()&&r.cellValue&&e(new t.ObjectMatrix(r.cellValue))}})}hideSheet(){let e=this._injector.get(t.ICommandService);if(this._workbook.getSheets().filter(e=>e.isSheetHidden()!==t.BooleanNumber.TRUE).length<=1)throw Error(`Cannot hide the only visible sheet`);return e.syncExecuteCommand(r.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===t.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(r.SetWorksheetNameCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(e){if(e&&e.contentsOnly&&!e.formatOnly)return this.clearContents();if(e&&e.formatOnly&&!e.contentsOnly)return this.clearFormats();let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=this._injector.get(t.ICommandService),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return a.syncExecuteCommand(r.ClearSelectionAllCommand.id,{unitId:n,subUnitId:i,ranges:[o],options:e}),this}clearContents(){let e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this._injector.get(t.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(r.ClearSelectionContentCommand.id,{unitId:e,subUnitId:n,ranges:[a]}),this}clearFormats(){let e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this._injector.get(t.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(r.ClearSelectionFormatCommand.id,{unitId:e,subUnitId:n,ranges:[a]}),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 U?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){let n=this._injector.createInstance(m).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 n=this._worksheet.getCellMatrix().hasValue(),i=this._worksheet.getLastRowWithContent(),a=this._worksheet.getRowCount(),o=this._worksheet.getColumnCount(),s=n?i+1:i,c=new t.ObjectMatrix;for(let n=0;n<e.length;n++)c.setValue(s,n,(0,t.covertCellValue)(e[n]));return this._commandService.syncExecuteCommand(r.AppendRowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:c.getMatrix(),insertRowNums:s>a-1?1:0,insertColumnNums:e.length>o?e.length-o:0,maxRows:a,maxColumns:o}),this}setRowCount(e){return this._commandService.syncExecuteCommand(r.SetWorksheetRowCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(r.SetWorksheetColumnCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(R,this)}};W=U=f([d(3,(0,t.Inject)(t.Injector)),d(4,(0,t.Inject)(r.SheetsSelectionsService)),d(5,(0,t.Inject)(t.ILogService)),d(6,t.ICommandService)],W);let G=class{constructor(e,t,n,r,i,o,s,c,l){this._unitId=e,this._subUnitId=t,this._range=n,this._worksheet=r,this._injector=i,this._permissionService=o,this._authzIoService=s,this._commandService=c,this._rangeProtectionRuleModel=l,u(this,`_permissionSubject`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),u(this,`permission$`,void 0),u(this,`protectionChange$`,void 0),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(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((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId!==this._unitId||e.subUnitId!==this._subUnitId?!1:e.type===`delete`||e.type===`add`?this._rangeMatches(e.rule):!1),(0,o.map)(e=>(this._permissionSubject.next(this._buildSnapshot()),e.type===`delete`?{type:`unprotected`,ruleId:e.rule.id}:{type:`protected`,rule:this._createFacadeRule(e.rule)})),(0,o.shareReplay)({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!==r.ViewStateEnum.NoOneElseCanView,allowEdit:e.editState===r.EditStateEnum.DesignedUserCanEdit};return this._injector.createInstance(P,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)}getPoint(e){let t=L[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(y.Edit)}canView(){return this.getPoint(y.View)}canManageCollaborator(){return this.getPoint(y.ManageCollaborator)}canDelete(){return this.getPoint(y.Delete)}async setPoint(e,t){let n=L[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(P,this._unitId,this._subUnitId,r,n,[this._range],e||{})}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?r.ViewStateEnum.NoOneElseCanView:r.ViewStateEnum.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?r.EditStateEnum.DesignedUserCanEdit:r.EditStateEnum.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,y.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,y.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=L[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!==r.ViewStateEnum.NoOneElseCanView};return e.editState===r.EditStateEnum.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(P,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!==r.ViewStateEnum.NoOneElseCanView};if(e.editState===r.EditStateEnum.DesignedUserCanEdit)try{n.allowEdit=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(e=>e.role===C.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(P,this._unitId,this._subUnitId,e.id,e.permissionId,t,n))}_buildSnapshot(){let e={};return Object.values(y).forEach(t=>{e[t]=this.getPoint(t)}),e}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete()}};G=f([d(4,(0,t.Inject)(t.Injector)),d(5,(0,t.Inject)(t.IPermissionService)),d(6,(0,t.Inject)(t.IAuthzIoService)),d(7,(0,t.Inject)(t.ICommandService)),d(8,(0,t.Inject)(r.RangeProtectionRuleModel))],G);var K,q;let J=K=class extends n.FBaseInitialable{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:n,endColumn:r,endRow:i}=this._range;return this._worksheet.getMergedCellRange(n,e,i,r).some(e=>t.Rectangle.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 n=this.getCellStyleData(e);return n?t.TextStyleValue.create(n):null}getCellStyles(e=`row`){return this.getCellDatas().map((n,r)=>n.map((n,i)=>{if(!n)return null;let a=e===`cell`?this._worksheet.getCellStyle(r+this._range.startRow,i+this._range.startColumn):this._worksheet.getComposedCellStyle(r+this._range.startRow,i+this._range.startColumn,e===`row`);return a?t.TextStyleValue.create(a):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 t.RichTextValue(e.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(e=>e!=null&&e.p?new t.RichTextValue(e.p):null))}getValueAndRichTextValue(){let e=this.getCellData();return e!=null&&e.p?new t.RichTextValue(e.p):e==null?void 0:e.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(e=>e!=null&&e.p?new t.RichTextValue(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()===t.BooleanNumber.TRUE}getWraps(){let e=this.getCellDatas(),n=this._workbook.getStyles();return e.map(e=>e.map(e=>{var r;return((r=n.getStyleByCell(e))==null?void 0:r.tb)===t.WrapStrategy.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){return z(this._worksheet.getRange(this._range).getHorizontalAlignment())}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(e=>z(e)))}getVerticalAlignment(){return B(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(e=>B(e)))}setCustomMetaData(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:{custom:e}};return this._commandService.syncExecuteCommand(r.SetRangeCustomMetadataCommand.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(r.SetRangeCustomMetadataCommand.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(r.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:e,style:t,color:n}}),this}getBackground(){var e,n;let r=this.getCellStyle();return(e=r==null||(n=r.background)==null?void 0:n.rgb)==null?t.DEFAULT_STYLES.bg.rgb:e}getBackgrounds(){return this.getCellStyles().map(e=>e.map(e=>{var n,r;return(n=e==null||(r=e.background)==null?void 0:r.rgb)==null?t.DEFAULT_STYLES.bg.rgb:n}))}setBackgroundColor(e){return this._commandService.syncExecuteCommand(r.SetStyleCommand.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(r.SetTextRotationCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValue(e){let n=(0,t.covertCellValue)(e);if(!n)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setValueForCell(e){let n=(0,t.covertCellValue)(e);if(!n)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:n}),this}setRichTextValueForCell(e){let n=e instanceof t.RichTextValue?e.getData():e,i={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:n}};return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,i),this}setRichTextValues(e){let n=(0,t.covertCellValues)(e.map(e=>e.map(e=>e&&{p:e instanceof t.RichTextValue?e.getData():e})),this._range),i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n};return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,i),this}setWrap(e){return this._commandService.syncExecuteCommand(r.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e?t.WrapStrategy.WRAP:t.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(e){return this._commandService.syncExecuteCommand(r.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setVerticalAlignment(e){return this._commandService.syncExecuteCommand(r.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:be(e)}),this}setHorizontalAlignment(e){return this._commandService.syncExecuteCommand(r.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:ye(e)}),this}setValues(e){let n=(0,t.covertCellValues)(e,this._range);return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setFontWeight(e){let n;if(e===`bold`)n=t.BooleanNumber.TRUE;else if(e===`normal`)n=t.BooleanNumber.FALSE;else if(e===null)n=null;else throw Error(`Invalid fontWeight`);let i={type:`bl`,value:n},a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:i};return this._commandService.syncExecuteCommand(r.SetStyleCommand.id,a),this}setFontStyle(e){let n;if(e===`italic`)n=t.BooleanNumber.TRUE;else if(e===`normal`)n=t.BooleanNumber.FALSE;else if(e===null)n=null;else throw Error(`Invalid fontStyle`);let i={type:`it`,value:n},a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:i};return this._commandService.syncExecuteCommand(r.SetStyleCommand.id,a),this}setFontLine(e){if(e===`underline`)this._setFontUnderline({s:t.BooleanNumber.TRUE});else if(e===`line-through`)this._setFontStrikethrough({s:t.BooleanNumber.TRUE});else if(e===`none`)this._setFontUnderline({s:t.BooleanNumber.FALSE}),this._setFontStrikethrough({s:t.BooleanNumber.FALSE});else if(e===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(r.SetStyleCommand.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(r.SetStyleCommand.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(r.SetStyleCommand.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(r.SetStyleCommand.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(r.SetStyleCommand.id,n),this}merge(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return(0,r.addMergeCellsUtil)(this._injector,t,n,[this._range],e),this}mergeAcross(e){let n=(0,r.getAddMergeMutationRangeByType)([this._range],t.Dimension.ROWS),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId();return(0,r.addMergeCellsUtil)(this._injector,i,a,n,e),this}mergeVertically(e){let n=(0,r.getAddMergeMutationRangeByType)([this._range],t.Dimension.COLUMNS),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId();return(0,r.addMergeCellsUtil)(this._injector,i,a,n,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(r.RemoveWorksheetMergeCommand.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?(0,i.serializeRangeWithSheet)(this._worksheet.getName(),r):(0,i.serializeRange)(r)}activate(){return this._injector.createInstance(X,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){let e=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(e&&t.Rectangle.equals(e,this._range)||!e&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){let e=this._injector.createInstance(X,this._workbook).getActiveRange();if(!e||e.getUnitId()!==this.getUnitId()||e.getSheetId()!==this.getSheetId())return this.activate();if(t.Rectangle.contains(e.getRange(),this._range)){let t={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:e.getRange(),primary:(0,r.getPrimaryForRange)(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(r.SetSelectionsOperation.id,t),this}return this.activate()}else throw Error(`The range is not a single cell`)}splitTextToColumns(e,t,n){this._commandService.syncExecuteCommand(r.SplitTextToColumnsCommand.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(r.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}removeThemeStyle(e){this._commandService.syncExecuteCommand(r.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}getUsedThemeStyle(){return this._injector.get(r.SheetRangeThemeService).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(r.ClearSelectionAllCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:e}),this)}clearContent(){return this._commandService.syncExecuteCommand(r.ClearSelectionContentCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(r.ClearSelectionFormatCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(e){e===t.Dimension.ROWS?this._commandService.executeCommand(r.InsertRangeMoveDownCommand.id,{range:this._range}):this._commandService.executeCommand(r.InsertRangeMoveRightCommand.id,{range:this._range})}deleteCells(e){e===t.Dimension.ROWS?this._commandService.executeCommand(r.DeleteRangeMoveUpCommand.id,{range:this._range}):this._commandService.executeCommand(r.DeleteRangeMoveLeftCommand.id,{range:this._range})}getDataRegion(e){let{startRow:n,startColumn:r,endRow:i,endColumn:a}=this._range,o=this._worksheet.getMaxRows(),s=this._worksheet.getMaxColumns(),c=this._worksheet.getCellMatrix(),l=n,u=r,d=i,f=a;if(e!==t.Dimension.COLUMNS){let e=!1,s=!1;for(let l=r;l<=a&&(n>0&&!(0,t.isNullCell)(c.getValue(n-1,l))&&(e=!0),i<o-1&&!(0,t.isNullCell)(c.getValue(i+1,l))&&(s=!0),!(e&&s));l++);e&&(l=n-1),s&&(d=i+1)}if(e!==t.Dimension.ROWS){let e=!1,o=!1;for(let l=n;l<=i&&(r>0&&!(0,t.isNullCell)(c.getValue(l,r-1))&&(e=!0),a<s-1&&!(0,t.isNullCell)(c.getValue(l,a+1))&&(o=!0),!(e&&o));l++);e&&(u=r-1),o&&(f=a+1)}return this._injector.createInstance(K,this._workbook,this._worksheet,{startRow:l,startColumn:u,endRow:d,endColumn:f})}isBlank(){let e=this._worksheet.getCellMatrix(),{startRow:n,startColumn:r,endRow:i,endColumn:a}=this._range,o=!0;for(let s=n;s<=i;s++){for(let n=r;n<=a;n++)if(!(0,t.isNullCell)(e.getValue(s,n))){o=!1;break}if(!o)break}return o}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(K,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(W,this._injector.createInstance(X,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(G,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,e)}autoFill(e,n){let i=this.getRange(),a=e.getRange();if(!t.Rectangle.contains(a,i))throw Error(`AutoFill target range must contain source range`);let{startRow:o,startColumn:s,endRow:c,endColumn:l}=i,{startRow:u,startColumn:d,endRow:f,endColumn:p}=a;if(c-o!==f-u&&l-s!==p-d||c-o===f-u&&s!==d&&l!==p||l-s===p-d&&o!==u&&c!==f)throw Error(`AutoFill can only fill in one direction`);return this._commandService.executeCommand(r.AutoFillCommand.id,{sourceRange:i,targetRange:a,unitId:this.getUnitId(),subUnitId:this.getSheetId(),applyType:n})}};q=J,q._enableManualInit(),J=K=f([d(3,(0,t.Inject)(t.Injector)),d(4,t.ICommandService),d(5,(0,t.Inject)(i.FormulaDataModel))],J);let Y=class{constructor(e,t,n,r){this._unitId=e,this._injector=t,this._permissionService=n,this._authzIoService=r,u(this,`_permissionSubject`,void 0),u(this,`_collaboratorChangeSubject`,new a.Subject),u(this,`permission$`,void 0),u(this,`pointChange$`,void 0),u(this,`collaboratorChange$`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe((0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPointChangeStream(){let e=new Map;for(let t in _){let n=_[t];e.set(n,this.getPoint(n))}return this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId)),(0,o.map)(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}}),(0,o.filter)(e=>e!==null),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(e){for(let t in _){let n=_[t],r=F[n];if(r&&new r(this._unitId).id===e)return n}return null}_buildSnapshot(){let e={};for(let t in _){let n=_[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(_).forEach(e=>{t[e]=!1}),e){case`owner`:Object.values(_).forEach(e=>{t[e]=!0});break;case`editor`:t[_.Edit]=!0,t[_.View]=!0,t[_.Print]=!0,t[_.Export]=!0,t[_.CopyContent]=!0,t[_.Comment]=!0,t[_.CreateSheet]=!0,t[_.DeleteSheet]=!0,t[_.RenameSheet]=!0,t[_.MoveSheet]=!0,t[_.HideSheet]=!0,t[_.InsertRow]=!0,t[_.InsertColumn]=!0,t[_.DeleteRow]=!0,t[_.DeleteColumn]=!0,t[_.CopySheet]=!0,t[_.CreateProtection]=!0;break;case`viewer`:t[_.View]=!0,t[_.Print]=!0;break;case`commenter`:t[_.View]=!0,t[_.Comment]=!0,t[_.Print]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=F[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(_.Edit)}async setPoint(e,t){let n=F[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=F[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:g.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()}};Y=f([d(1,(0,t.Inject)(t.Injector)),d(2,t.IPermissionService),d(3,t.IAuthzIoService)],Y);let X=class extends n.FBaseInitialable{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,u(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(r.SetWorkbookNameCommand.id,{unitId:this._workbook.getUnitId(),name:e}),this}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn(`use 'save' instead of 'getSnapshot'`),this.save()}getActiveSheet(){let e=this._workbook.getActiveSheet();return this._injector.createInstance(W,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(W,this,this._workbook,e))}create(e,n,i,a){var o,s,c;let l=(0,t.mergeWorksheetSnapshotWithDefault)(t.Tools.deepClone((o=a==null?void 0:a.sheet)==null?{}:o));l.name=this._workbook.uniqueSheetName(e),l.rowCount=n,l.columnCount=i,l.id=a==null||(s=a.sheet)==null?void 0:s.id;let u=(c=a==null?void 0:a.index)==null?this._workbook.getSheets().length:c;this._commandService.syncExecuteCommand(r.InsertSheetCommand.id,{unitId:this.id,index:u,sheet:l}),this._commandService.syncExecuteCommand(r.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[u].getSheetId()});let d=this._workbook.getActiveSheet();if(!d)throw Error(`No active sheet found`);return this._injector.createInstance(W,this,this._workbook,d)}getSheetBySheetId(e){let t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(W,this,this._workbook,t):null}getSheetByName(e){let t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(W,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(r.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e==`string`?e:e.getSheetId()}),typeof e==`string`?this.getSheetBySheetId(e):e}insertSheet(e,n){var i,a,o;let s=(0,t.mergeWorksheetSnapshotWithDefault)(t.Tools.deepClone((i=n==null?void 0:n.sheet)==null?{}:i));s.name=this._workbook.uniqueSheetName(e),s.id=n==null||(a=n.sheet)==null?void 0:a.id;let c=(o=n==null?void 0:n.index)==null?this._workbook.getSheets().length:o;this._commandService.syncExecuteCommand(r.InsertSheetCommand.id,{unitId:this.id,index:c,sheet:s}),this._commandService.syncExecuteCommand(r.SetWorksheetActiveOperation.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(W,this,this._workbook,l)}deleteSheet(e){let t=this.id,n=typeof e==`string`?e:e.getSheetId();return this._commandService.syncExecuteCommand(r.RemoveSheetCommand.id,{unitId:t,subUnitId:n})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(t.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(t.RedoCommand.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(0,t.toDisposable)(this._selectionManagerService.selectionMoveEnd$.subscribe(n=>{this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(n!=null&&n.length?e(n.map(e=>e.range)):e([]))}))}setEditable(e){let t=new r.WorkbookEditablePermission(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(),i=n?this._workbook.getSheetBySheetId(n):this._workbook.getActiveSheet(!0);if(!i)throw Error(`No active sheet found`);i.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(W,this,this._workbook,i));let a={unitId:this.getId(),subUnitId:n,selections:[e].map(e=>({range:e.getRange(),primary:(0,r.getPrimaryForRange)(e.getRange(),i),style:null}))};return this._commandService.syncExecuteCommand(r.SetSelectionsOperation.id,a),this}getActiveRange(){let e=this._workbook.getActiveSheet(),t=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);return t?this._injector.createInstance(J,this._workbook,e,t.range):null}getActiveCell(){let e=this._workbook.getActiveSheet(),n=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);if(!n)return null;let r={...n.primary,rangeType:t.RANGE_TYPE.NORMAL};return this._injector.createInstance(J,this._workbook,e,r)}deleteActiveSheet(){let e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(r.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(W,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(r.SetWorksheetOrderCommand.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(b)}getWorkbookPermission(){return this._injector.createInstance(Y,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(m).setName(e).setRef(t).build();return n.localSheetId=r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,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(r.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(r.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(r.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(r.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(r.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new r.RangeThemeStyle(e,t)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}addStyles(e){this._workbook.addStyles(e)}removeStyles(e){this._workbook.removeStyles(e)}};X=f([d(1,(0,t.Inject)(t.Injector)),d(2,(0,t.Inject)(t.IResourceLoaderService)),d(3,(0,t.Inject)(r.SheetsSelectionsService)),d(4,t.IUniverInstanceService),d(5,t.ICommandService),d(6,t.IPermissionService),d(7,t.ILogService),d(8,(0,t.Inject)(t.LocaleService)),d(9,i.IDefinedNamesService)],X);var xe=class extends n.FUniver{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 n=e.get(t.IUniverInstanceService);this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookDisposed,()=>n.unitDisposed$.subscribe(e=>{e.type===t.UniverInstanceType.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:e.getUnitId(),unitType:e.type,snapshot:e.getSnapshot()})}))),this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookCreated,()=>n.unitAdded$.subscribe(n=>{if(n.type===t.UniverInstanceType.UNIVER_SHEET){let t=n,r=e.createInstance(X,t);this.fireEvent(this.Event.WorkbookCreated,{unitId:n.getUnitId(),type:n.type,workbook:r,unit:r})}})))}_initialize(e){let n=e.get(t.IUniverInstanceService),i=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetCreate,()=>i.beforeCommandExecuted(e=>{if(e.id===r.InsertSheetCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetActiveOperation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetDelete,()=>i.beforeCommandExecuted(e=>{if(e.id===r.RemoveSheetCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetMove,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetOrderMutation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetNameCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetTabColorMutation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetHideMutation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetGridlinesColorCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.ToggleGridlinesCommand.id){var n,i;let r=this.getCommandSheetTarget(e);if(!r)return;let a=(n=(i=e.params)==null?void 0:i.showGridlines)==null?!r.worksheet.hasHiddenGridLines():n,o={...r,enabled:!!a};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,o),o.cancel)throw new t.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetValueChanged,()=>i.onCommandExecuted(e=>{if(r.COMMAND_LISTENER_VALUE_CHANGE.indexOf(e.id)>-1){if(!this.getActiveSheet())return;let t=(0,r.getValueChangedEffectedRange)(n,e).map(e=>{var t;return(t=this.getWorkbook(e.unitId))==null||(t=t.getSheetBySheetId(e.subUnitId))==null?void 0:t.getRange(e.range)}).filter(Boolean);if(!t.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:e,effectedRanges:t})}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetCreated,()=>i.onCommandExecuted(e=>{if(e.id===r.InsertSheetCommand.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,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetActiveOperation.id){let e=this.getActiveSheet();if(!e)return;let{workbook:t,worksheet:n}=e;this._fireActiveSheetChanged(t,n)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetDeleted,()=>i.onCommandExecuted(e=>{if(e.id===r.RemoveSheetCommand.id){var t;let{subUnitId:n,unitId:r}=e.params,i=r?this.getUniverSheet(r):(t=this.getActiveWorkbook)==null?void 0:t.call(this);if(!i||!n)return;this._fireSheetDeleted(i,n)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetMoved,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetOrderMutation.id){let{toOrder:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetMoved(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetNameChanged,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetNameCommand.id){let{name:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetNameChanged(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetTabColorChanged,()=>i.onCommandExecuted(e=>{if(e.id===r.SetTabColorMutation.id){let{color:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetTabColorChanged(n.workbook,n.worksheet,t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetHideChanged,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetHideMutation.id){let{hidden:t}=e.params,n=this.getCommandSheetTarget(e);if(!n)return;this._fireSheetHideChanged(n.workbook,n.worksheet,!!t)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.GridlineChanged,()=>i.onCommandExecuted(e=>{if(e.id===r.SetGridlinesColorCommand.id||e.id===r.ToggleGridlinesCommand.id){let t=this.getCommandSheetTarget(e);if(!t)return;this.fireEvent(this.Event.GridlineChanged,{...t,enabled:!t.worksheet.hasHiddenGridLines(),color:t.worksheet.getGridLinesColor()})}}))),this._initWorkbookEvent(e)}createUniverSheet(e,n){let r=this._injector.get(t.IUniverInstanceService).createUnit(t.UniverInstanceType.UNIVER_SHEET,e,n);return this._injector.createInstance(X,r)}createWorkbook(e,t){return this.createUniverSheet(e,t)}getActiveWorkbook(){let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);return e?this._injector.createInstance(X,e):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);return n?this._injector.createInstance(X,n):null}getWorkbook(e){return this.getUniverSheet(e)}getPermission(){return this._injector.createInstance(b)}onUniverSheetCreated(e){return(0,t.toDisposable)(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(this._injector.createInstance(X,t))}))}newDefinedName(){return this._injector.createInstance(m)}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(r.SheetsFreezeSyncController).setEnabled(e)}_fireActiveSheetChanged(e,t){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:e,activeSheet:t})}_fireSheetDeleted(e,t){this.fireEvent(this.Event.SheetDeleted,{workbook:e,sheetId:t})}_fireSheetMoved(e,t,n){this.fireEvent(this.Event.SheetMoved,{workbook:e,worksheet:t,newIndex:n})}_fireSheetNameChanged(e,t,n){this.fireEvent(this.Event.SheetNameChanged,{workbook:e,worksheet:t,newName:n})}_fireSheetTabColorChanged(e,t,n){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:e,worksheet:t,newColor:n})}_fireSheetHideChanged(e,t,n){this.fireEvent(this.Event.SheetHideChanged,{workbook:e,worksheet:t,hidden:n})}};n.FUniver.extend(xe);var Z=class{get SheetValueChangeType(){return r.SheetValueChangeType}get SheetSkeletonChangeType(){return r.SheetSkeletonChangeType}get SplitDelimiterType(){return r.SplitDelimiterEnum}get UnitRole(){return g}get WorkbookPermissionPoint(){return _}get WorksheetPermissionPoint(){return v}get RangePermissionPoint(){return y}};n.FEnum.extend(Z);var Q=class{get SheetCreated(){return`SheetCreated`}get BeforeSheetCreate(){return`BeforeSheetCreate`}get WorkbookCreated(){return`WorkbookCreated`}get WorkbookDisposed(){return`WorkbookDisposed`}get GridlineChanged(){return`GridlineChanged`}get BeforeGridlineEnableChange(){return`BeforeGridlineEnableChange`}get BeforeGridlineColorChange(){return`BeforeGridlineColorChange`}get BeforeActiveSheetChange(){return`BeforeActiveSheetChange`}get ActiveSheetChanged(){return`ActiveSheetChanged`}get SheetDeleted(){return`SheetDeleted`}get BeforeSheetDelete(){return`BeforeSheetDelete`}get SheetMoved(){return`SheetMoved`}get BeforeSheetMove(){return`BeforeSheetMove`}get SheetNameChanged(){return`SheetNameChanged`}get BeforeSheetNameChange(){return`BeforeSheetNameChange`}get SheetTabColorChanged(){return`SheetTabColorChanged`}get BeforeSheetTabColorChange(){return`BeforeSheetTabColorChange`}get SheetHideChanged(){return`SheetHideChanged`}get BeforeSheetHideChange(){return`BeforeSheetHideChange`}get SheetValueChanged(){return`SheetValueChanged`}};n.FEventName.extend(Q);let $=class extends n.FBase{constructor(e){super(),this._injector=e}};$=f([d(0,(0,t.Inject)(t.Injector))],$),Object.defineProperty(e,`FPermission`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(e,`FRange`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(e,`FSelection`,{enumerable:!0,get:function(){return S}}),e.FSheetEventName=Q,Object.defineProperty(e,`FSheetHooks`,{enumerable:!0,get:function(){return $}}),e.FSheetsEnum=Z,Object.defineProperty(e,`FWorkbook`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(e,`FWorksheet`,{enumerable:!0,get:function(){return W}})});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/core/facade`),require(`@univerjs/sheets`),require(`@univerjs/engine-formula`),require(`rxjs`),require(`rxjs/operators`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/sheets`,`@univerjs/engine-formula`,`rxjs`,`rxjs/operators`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsFacade={},e.UniverCore,e.UniverCoreFacade,e.UniverSheets,e.UniverEngineFormula,e.rxjs,e.rxjs.operators))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function s(e){"@babel/helpers - typeof";return s=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},s(e)}function c(e,t){if(s(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(s(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l(e){var t=c(e,`string`);return s(t)==`symbol`?t:t+``}function u(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){return function(n,r){t(n,r,e)}}function f(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 p(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 m=class{constructor(){u(this,`_definedNameParam`,void 0),this._definedNameParam={id:(0,t.generateRandomId)(10),unitId:``,name:``,formulaOrRefString:``,localSheetId:r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}}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=(0,i.serializeRange)({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=r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this}setHidden(e){return this._definedNameParam.hidden=e,this}build(){return this._definedNameParam}load(e){return this._definedNameParam=e,this}};let h=class extends n.FBase{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=p(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(r.SetDefinedNameCommand.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=(0,i.serializeRange)({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=r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(e){this._definedNameParam.hidden=e,this._apply()}delete(){this._commandService.syncExecuteCommand(r.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){let e=this._injector.createInstance(m);return e.load(this._definedNameParam),e}};h=f([d(1,(0,t.Inject)(t.Injector)),d(2,t.ICommandService),d(3,t.IPermissionService),d(4,(0,t.Inject)(r.WorksheetProtectionRuleModel)),d(5,(0,t.Inject)(r.RangeProtectionRuleModel)),d(6,(0,t.Inject)(r.WorksheetProtectionPointModel)),d(7,(0,t.Inject)(t.IAuthzIoService)),d(8,(0,t.Inject)(t.LocaleService)),d(9,i.IDefinedNamesService)],h);let g=function(e){return e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e}({}),_=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}({}),v=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}({}),y=function(e){return e.Edit=`RangeEdit`,e.View=`RangeView`,e.ManageCollaborator=`RangeManageCollaborator`,e.Delete=`RangeDeleteProtection`,e}({}),b=class extends n.FBase{constructor(e,t,n,i,a,o,s,c){super(),this._injector=e,this._commandService=t,this._permissionService=n,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=a,this._worksheetProtectionPointRuleModel=o,this._workbookPermissionService=s,this._authzIoService=c,u(this,`permissionPointsDefinition`,r.PermissionPointsDefinitions),u(this,`rangeRuleChangedAfterAuth$`,void 0),u(this,`sheetRuleChangedAfterAuth$`,void 0),u(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,r.WorkbookEditablePermission,t)}async addWorksheetBasePermission(e,t,n){let i=[];if(n!=null&&n.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),r=new Set(n.allowedUsers);i=t.filter(e=>{var t;return r.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:g.Editor,subject:e.subject}));let a=new Set(i.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 a=await this._authzIoService.create({objectType:r.UnitObject.Worksheet,worksheetObject:{collaborators:i,unitID:e,strategies:[],name:(n==null?void 0:n.name)||``,scope:void 0}});if(this._commandService.syncExecuteCommand(r.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:t,rule:{permissionId:a,unitType:r.UnitObject.Worksheet,unitId:e,subUnitId:t}}))return a}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(r.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:t}),[...(0,r.getAllWorksheetPermissionPoint)(),...(0,r.getAllWorksheetPermissionPointByPointPanel)()].forEach(n=>{let r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,n,i){let a=this._worksheetProtectionRuleModel.getRule(e,t),o;if(n===r.WorksheetEditPermission||n===r.WorksheetViewPermission)o=a?a.permissionId:await this.addWorksheetBasePermission(e,t);else{let n=this._worksheetProtectionPointRuleModel.getRule(e,t);n?o=n.permissionId:(o=await this._authzIoService.create({objectType:r.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:``,scope:void 0}}),this._commandService.syncExecuteCommand(r.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:o}}))}let s=new n(e,t);if(this._permissionService.getPermissionPoint(s.id)||this._permissionService.addPermissionPoint(s),o){let t=s.subType;await this._authzIoService.update({objectType:r.UnitObject.Worksheet,objectID:o,strategies:[{action:t,role:i?g.Owner:g.Reader}],unitID:e,share:void 0,name:``,scope:void 0,collaborators:void 0})}return this._permissionService.updatePermissionPoint(s.id,i),o}checkWorksheetPermissionPoint(e,t,n){let r=new n(e,t),i=this._permissionService.getPermissionPoint(r.id);if(i)return i.value}async addRangeBaseProtection(e,n,i,a){let o=[];if(a!=null&&a.allowedUsers){let t=await this._authzIoService.listCollaborators({objectID:e,unitID:e}),n=new Set(a.allowedUsers);o=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:g.Editor,subject:e.subject}));let r=new Set(o.map(e=>{var t;return((t=e.subject)==null?void 0:t.userID)||e.id}));a.allowedUsers.forEach(e=>{r.has(e)||console.error(`User ${e} not found in collaborators list`)})}let s=await this._authzIoService.create({objectType:r.UnitObject.SelectRange,selectRangeObject:{collaborators:o,unitID:e,name:(a==null?void 0:a.name)||``,scope:void 0}}),c=`ruleId_${(0,t.generateRandomId)(6)}`;if(this._rangeProtectionRuleModel.getSubunitRuleList(e,n).some(e=>e.ranges.some(e=>i.some(n=>t.Rectangle.intersects(n.getRange(),e)))))throw Error(`range protection cannot intersect`);let l=this._determineRangeViewState(a),u=this._determineRangeEditState(a),d={unitId:e,subUnitId:n,rules:[{permissionId:s,unitType:r.UnitObject.SelectRange,unitId:e,subUnitId:n,ranges:i.map(e=>e.getRange()),id:c,description:a==null?void 0:a.name,viewState:l,editState:u}]};if(this._commandService.syncExecuteCommand(r.AddRangeProtectionMutation.id,d))return{permissionId:s,ruleId:c}}_determineRangeViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?r.ViewStateEnum.NoOneElseCanView:r.ViewStateEnum.OthersCanView}_determineRangeEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?r.EditStateEnum.DesignedUserCanEdit:r.EditStateEnum.OnlyMe}removeRangeProtection(e,t,n){this._commandService.syncExecuteCommand(r.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleIds:n})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...(0,r.getAllWorksheetPermissionPointByPointPanel)()].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,n,i,a){let o=this._rangeProtectionRuleModel.getRule(e,n,i);if(o){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,n).filter(e=>e.id!==i).some(e=>e.ranges.some(e=>a.some(n=>t.Rectangle.intersects(n.getRange(),e)))))throw Error(`range protection cannot intersect`);this._commandService.syncExecuteCommand(r.SetRangeProtectionMutation.id,{unitId:e,subUnitId:n,ruleId:i,rule:{...o,ranges:a.map(e=>e.getRange())}})}}getPermissionInfoWithCell(e,n,r,i){let a=(0,t.cellToRange)(r,i),o=this._rangeProtectionRuleModel.getSubunitRuleList(e,n).find(e=>e.ranges.some(e=>t.Rectangle.intersects(a,e)));if(o)return{permissionId:o.permissionId,ruleId:o.id}}};b=f([d(0,(0,t.Inject)(t.Injector)),d(1,t.ICommandService),d(2,t.IPermissionService),d(3,(0,t.Inject)(r.WorksheetProtectionRuleModel)),d(4,(0,t.Inject)(r.RangeProtectionRuleModel)),d(5,(0,t.Inject)(r.WorksheetProtectionPointModel)),d(6,(0,t.Inject)(r.WorkbookPermissionService)),d(7,(0,t.Inject)(t.IAuthzIoService))],b);var x;let S=x=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(J,this._workbook,this._worksheet,e.range):null}getActiveRangeList(){return this._selections.map(e=>this._injector.createInstance(J,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(X,this._workbook);return this._injector.createInstance(W,e,this._workbook,this._worksheet)}updatePrimaryCell(e){let n=this._injector.get(t.ICommandService),i=[],a=!1;for(let{range:n,style:o}of this._selections)t.Rectangle.contains(n,e.getRange())?(i.push({range:n,primary:(0,r.getPrimaryForRange)(e.getRange(),this._worksheet),style:o}),a=!0):i.push({range:n,primary:null,style:o});a||(i=[{range:e.getRange(),primary:(0,r.getPrimaryForRange)(e.getRange(),this._worksheet)}]);let o={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:i};return n.syncExecuteCommand(r.SetSelectionsOperation.id,o),new x(this._workbook,this._worksheet,i,this._injector)}getNextDataRange(e){if(!this._selections.find(e=>!!e.primary))return null;let t=(0,r.getNextPrimaryCell)(this._selections.concat(),e,this._worksheet);return t?this._injector.createInstance(J,this._workbook,this._worksheet,t):null}};S=x=f([d(3,(0,t.Inject)(t.Injector))],S);var ee=(e=>(e[e.OpenOrReOpen=0]=`OpenOrReOpen`,e[e.Solved=1]=`Solved`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ee||{}),te=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Add=1]=`Add`,e[e.Reply=2]=`Reply`,e[e.Edit=3]=`Edit`,e[e.Delete=4]=`Delete`,e[e.Solve=5]=`Solve`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(te||{}),ne=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.OK=1]=`OK`,e[e.INTERNAL_ERROR=2]=`INTERNAL_ERROR`,e[e.PERMISSION_DENIED=3]=`PERMISSION_DENIED`,e[e.NOT_FOUND=4]=`NOT_FOUND`,e[e.UNAUTHENTICATED=5]=`UNAUTHENTICATED`,e[e.ALREADY_EXISTS=6]=`ALREADY_EXISTS`,e[e.INVALID_ARGUMENT=7]=`INVALID_ARGUMENT`,e[e.TOO_MANY_REQUESTS=8]=`TOO_MANY_REQUESTS`,e[e.COMPLETION_FINISHED=9]=`COMPLETION_FINISHED`,e[e.LOGIN_FAILED=10]=`LOGIN_FAILED`,e[e.MOBILE_VERIFY_CODE_MISMATCH=11]=`MOBILE_VERIFY_CODE_MISMATCH`,e[e.MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=12]=`MOBILE_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.EMAIL_VERIFY_CODE_MISMATCH=13]=`EMAIL_VERIFY_CODE_MISMATCH`,e[e.EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED=14]=`EMAIL_VERIFY_CODE_NOT_FOUND_OR_EXPIRED`,e[e.AUTHORIZE_CODE_ILLEGAL=15]=`AUTHORIZE_CODE_ILLEGAL`,e[e.LOGIN_TOKEN_PROCESSING_FAILED=16]=`LOGIN_TOKEN_PROCESSING_FAILED`,e[e.CURRENT_STATUS_CANNOT_OPERATE=100]=`CURRENT_STATUS_CANNOT_OPERATE`,e[e.ERROR_AGAIN=101]=`ERROR_AGAIN`,e[e.USER_NOT_FOUND=201]=`USER_NOT_FOUND`,e[e.USER_IS_ANONYMOUS=202]=`USER_IS_ANONYMOUS`,e[e.CHANGESET_REVISION_CONFILICT=5001]=`CHANGESET_REVISION_CONFILICT`,e[e.SNAPSHOT_INVALID_SNAPSHOT=6001]=`SNAPSHOT_INVALID_SNAPSHOT`,e[e.SNAPSHOT_HAS_BEEN_REMOVED=6002]=`SNAPSHOT_HAS_BEEN_REMOVED`,e[e.ENSURE_SNAPSHOT_EXECUTION=6003]=`ENSURE_SNAPSHOT_EXECUTION`,e[e.APPLY_REJECT=7001]=`APPLY_REJECT`,e[e.APPLY_NON_SEQUENTIAL_REVISION=7002]=`APPLY_NON_SEQUENTIAL_REVISION`,e[e.APPLY_REVISION_CONFILICT=7003]=`APPLY_REVISION_CONFILICT`,e[e.APPLY_PERMISSION_DENIED=7004]=`APPLY_PERMISSION_DENIED`,e[e.APPLY_DUPLICATED=7005]=`APPLY_DUPLICATED`,e[e.CONNECTOR_DATA_TOO_LARGE=8001]=`CONNECTOR_DATA_TOO_LARGE`,e[e.LICENSE_MAX_UNITS_EXCEEDED=9001]=`LICENSE_MAX_UNITS_EXCEEDED`,e[e.LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED=9002]=`LICENSE_MAX_MEMBERS_PER_UNIT_EXCEEDED`,e[e.LICENSE_IMPORT_SIZE_EXCEEDED=9003]=`LICENSE_IMPORT_SIZE_EXCEEDED`,e[e.LICENSE_EXPORT_SIZE_EXCEEDED=9004]=`LICENSE_EXPORT_SIZE_EXCEEDED`,e[e.LICENSE_DISTRO_REJECTED=9005]=`LICENSE_DISTRO_REJECTED`,e[e.YUUMI_UNABLE_LOAD_URL=10001]=`YUUMI_UNABLE_LOAD_URL`,e[e.YUUMI_URL_COL_OUT_OF_RANGE=10002]=`YUUMI_URL_COL_OUT_OF_RANGE`,e[e.YUUMI_RATE_OVER_LIMIT=10003]=`YUUMI_RATE_OVER_LIMIT`,e[e.YUUMI_SUBSCRIPTION_NOT_FOUND=10004]=`YUUMI_SUBSCRIPTION_NOT_FOUND`,e[e.YUUMI_NO_CUBOID_FOR_QUESTION=10010]=`YUUMI_NO_CUBOID_FOR_QUESTION`,e[e.YUUMI_ASYNCIO_CANCELLED=10011]=`YUUMI_ASYNCIO_CANCELLED`,e[e.YUUMI_TABLE_NOT_FOUND_IN_UNIT=10012]=`YUUMI_TABLE_NOT_FOUND_IN_UNIT`,e[e.YUUMI_ALL_TABLES_IS_INVALID=10013]=`YUUMI_ALL_TABLES_IS_INVALID`,e[e.YUUMI_PROMPT_MAX_TOKENS_EXCEEDED=10014]=`YUUMI_PROMPT_MAX_TOKENS_EXCEEDED`,e[e.YUUMI_AI_RUN_FAILED=10015]=`YUUMI_AI_RUN_FAILED`,e[e.YUUMI_CONNECTOR_URL_NOT_FOUND=10016]=`YUUMI_CONNECTOR_URL_NOT_FOUND`,e[e.PY_RUNTIME_SCRIPT_ERROR=11001]=`PY_RUNTIME_SCRIPT_ERROR`,e[e.INVITE_CODE_HAS_BEEN_UES=12001]=`INVITE_CODE_HAS_BEEN_UES`,e[e.INVALID_INVITE_CODE=12002]=`INVALID_INVITE_CODE`,e[e.INVITE_CODE_REQUIRED=12003]=`INVITE_CODE_REQUIRED`,e[e.USER_NOT_INVITED_CODE=12004]=`USER_NOT_INVITED_CODE`,e[e.INVITE_CODE_ALREADY_BOUND=12005]=`INVITE_CODE_ALREADY_BOUND`,e[e.WECHAT_HAS_BEEN_BOUND=13001]=`WECHAT_HAS_BEEN_BOUND`,e[e.MOBILE_HAS_BEEN_BOUND=13002]=`MOBILE_HAS_BEEN_BOUND`,e[e.EMAIL_HAS_BEEN_BOUND=13003]=`EMAIL_HAS_BEEN_BOUND`,e[e.ENTITLE_CAN_NOT_BUY_LOWER_OTP=14001]=`ENTITLE_CAN_NOT_BUY_LOWER_OTP`,e[e.ENTITLE_UPDOWN_GRADE_NOT_SUPPORT=14002]=`ENTITLE_UPDOWN_GRADE_NOT_SUPPORT`,e[e.ENTITLE_DUP_SUBSCRIPTION=14003]=`ENTITLE_DUP_SUBSCRIPTION`,e[e.PAYMENT_CHANNEL_NOT_SUPPORT=14004]=`PAYMENT_CHANNEL_NOT_SUPPORT`,e[e.ENTITLE_INVALID_COUPON_CODE=14005]=`ENTITLE_INVALID_COUPON_CODE`,e[e.ENTITLE_COUPON_EXPIRED=14006]=`ENTITLE_COUPON_EXPIRED`,e[e.ENTITLE_COUPON_USED_UP=14007]=`ENTITLE_COUPON_USED_UP`,e[e.ENTITLE_USE_COUPON_NOT_1ST_TRADE=14008]=`ENTITLE_USE_COUPON_NOT_1ST_TRADE`,e[e.ENTITLE_CHAT_LIMIT_EXCEED=14101]=`ENTITLE_CHAT_LIMIT_EXCEED`,e[e.ENTITLE_REPORT_LIMIT_EXCEED=14102]=`ENTITLE_REPORT_LIMIT_EXCEED`,e[e.ENTITLE_INSUFFICIENT_QUOTA=14103]=`ENTITLE_INSUFFICIENT_QUOTA`,e[e.ENTITLE_NEED_BILLING_ADDRESS=14301]=`ENTITLE_NEED_BILLING_ADDRESS`,e[e.REDEMPTION_INVALID_CODE=15001]=`REDEMPTION_INVALID_CODE`,e[e.REDEMPTION_CODE_INACTIVE=15002]=`REDEMPTION_CODE_INACTIVE`,e[e.REDEMPTION_CODE_FULLY_REDEEMED=15003]=`REDEMPTION_CODE_FULLY_REDEEMED`,e[e.REDEMPTION_CODE_NOT_STARTED=15004]=`REDEMPTION_CODE_NOT_STARTED`,e[e.REDEMPTION_USER_NOT_ELIGIBLE=15005]=`REDEMPTION_USER_NOT_ELIGIBLE`,e[e.REDEMPTION_USER_REDEEM_TIMES_EXCEED=15006]=`REDEMPTION_USER_REDEEM_TIMES_EXCEED`,e[e.REDEMPTION_CODE_HAS_BEEN_CREATED=15007]=`REDEMPTION_CODE_HAS_BEEN_CREATED`,e[e.DATA_SOURCE_TOO_LARGE=16001]=`DATA_SOURCE_TOO_LARGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ne||{}),re=(e=>(e[e.UNIVER_UNKNOWN=0]=`UNIVER_UNKNOWN`,e[e.UNIVER_DOC=1]=`UNIVER_DOC`,e[e.UNIVER_SHEET=2]=`UNIVER_SHEET`,e[e.UNIVER_SLIDE=3]=`UNIVER_SLIDE`,e[e.UNIVER_PROJECT=4]=`UNIVER_PROJECT`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(re||{}),ie=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.TEXT=1]=`TEXT`,e[e.URL=2]=`URL`,e[e.IMAGE=3]=`IMAGE`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ie||{}),ae=(e=>(e[e.View=0]=`View`,e[e.Edit=1]=`Edit`,e[e.ManageCollaborator=2]=`ManageCollaborator`,e[e.Print=3]=`Print`,e[e.Duplicate=4]=`Duplicate`,e[e.Comment=5]=`Comment`,e[e.Copy=6]=`Copy`,e[e.Share=7]=`Share`,e[e.Export=8]=`Export`,e[e.MoveWorksheet=9]=`MoveWorksheet`,e[e.DeleteWorksheet=10]=`DeleteWorksheet`,e[e.HideWorksheet=11]=`HideWorksheet`,e[e.RenameWorksheet=12]=`RenameWorksheet`,e[e.CreateWorksheet=13]=`CreateWorksheet`,e[e.SetWorksheetStyle=14]=`SetWorksheetStyle`,e[e.EditWorksheetCell=15]=`EditWorksheetCell`,e[e.InsertHyperlink=16]=`InsertHyperlink`,e[e.Sort=17]=`Sort`,e[e.Filter=18]=`Filter`,e[e.PivotTable=19]=`PivotTable`,e[e.FloatImg=20]=`FloatImg`,e[e.History=21]=`History`,e[e.RwHgtClWdt=22]=`RwHgtClWdt`,e[e.ViemRwHgtClWdt=23]=`ViemRwHgtClWdt`,e[e.ViewFilter=24]=`ViewFilter`,e[e.MoveSheet=25]=`MoveSheet`,e[e.DeleteSheet=26]=`DeleteSheet`,e[e.HideSheet=27]=`HideSheet`,e[e.CopySheet=28]=`CopySheet`,e[e.RenameSheet=29]=`RenameSheet`,e[e.CreateSheet=30]=`CreateSheet`,e[e.SelectProtectedCells=31]=`SelectProtectedCells`,e[e.SelectUnProtectedCells=32]=`SelectUnProtectedCells`,e[e.SetCellStyle=33]=`SetCellStyle`,e[e.SetCellValue=34]=`SetCellValue`,e[e.SetRowStyle=35]=`SetRowStyle`,e[e.SetColumnStyle=36]=`SetColumnStyle`,e[e.InsertRow=37]=`InsertRow`,e[e.InsertColumn=38]=`InsertColumn`,e[e.DeleteRow=39]=`DeleteRow`,e[e.DeleteColumn=40]=`DeleteColumn`,e[e.EditExtraObject=41]=`EditExtraObject`,e[e.Delete=42]=`Delete`,e[e.RecoverHistory=43]=`RecoverHistory`,e[e.ViewHistory=44]=`ViewHistory`,e[e.CreatePermissionObject=45]=`CreatePermissionObject`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ae||{}),C=(e=>(e[e.Reader=0]=`Reader`,e[e.Editor=1]=`Editor`,e[e.Owner=2]=`Owner`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(C||{}),oe=(e=>(e[e.Unkonwn=0]=`Unkonwn`,e[e.Workbook=1]=`Workbook`,e[e.Worksheet=2]=`Worksheet`,e[e.SelectRange=3]=`SelectRange`,e[e.Document=4]=`Document`,e[e.Slide=5]=`Slide`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(oe||{}),w=(e=>(e[e.Private=0]=`Private`,e[e.Public=1]=`Public`,e[e.Organization=2]=`Organization`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(w||{}),T=(e=>(e[e.SomeCollaborator=0]=`SomeCollaborator`,e[e.AllCollaborator=1]=`AllCollaborator`,e[e.OneSelf=2]=`OneSelf`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(T||{}),E=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.STRING=1]=`STRING`,e[e.NUMBER=2]=`NUMBER`,e[e.BOOLEAN=3]=`BOOLEAN`,e[e.FORCE_STRING=4]=`FORCE_STRING`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(E||{}),se=(e=>(e[e.Unknown=0]=`Unknown`,e[e.Colla=1]=`Colla`,e[e.Import=2]=`Import`,e[e.Export=3]=`Export`,e[e.CreateUnit=4]=`CreateUnit`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(se||{}),ce=(e=>(e[e.valueBetween=0]=`valueBetween`,e[e.valueEqual=1]=`valueEqual`,e[e.valueGreaterThan=2]=`valueGreaterThan`,e[e.valueGreaterThanOrEqual=3]=`valueGreaterThanOrEqual`,e[e.valueLessThan=4]=`valueLessThan`,e[e.valueLessThanOrEqual=5]=`valueLessThanOrEqual`,e[e.valueNotBetween=6]=`valueNotBetween`,e[e.valueNotEqual=7]=`valueNotEqual`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ce||{}),le=(e=>(e[e.DataFragmentationType_None=0]=`DataFragmentationType_None`,e[e.DataFragmentationType_Charts=1]=`DataFragmentationType_Charts`,e[e.DataFragmentationType_Unit=2]=`DataFragmentationType_Unit`,e[e.DataFragmentationType_WorkSheetRef=3]=`DataFragmentationType_WorkSheetRef`,e[e.DataFragmentationType_Code=4]=`DataFragmentationType_Code`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(le||{}),ue=(e=>(e[e.AnalyseTaskStatus_None=0]=`AnalyseTaskStatus_None`,e[e.AnalyseTaskStatus_Analysing=1]=`AnalyseTaskStatus_Analysing`,e[e.AnalyseTaskStatus_Failed=2]=`AnalyseTaskStatus_Failed`,e[e.AnalyseTaskStatus_Completed=3]=`AnalyseTaskStatus_Completed`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ue||{}),de=(e=>(e[e.UNKNOWN_CMD=0]=`UNKNOWN_CMD`,e[e.HELLO=1]=`HELLO`,e[e.JOIN=2]=`JOIN`,e[e.LEAVE=3]=`LEAVE`,e[e.INGEST=4]=`INGEST`,e[e.HEARTBEAT=5]=`HEARTBEAT`,e[e.RECV=6]=`RECV`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(de||{}),fe=(e=>(e[e.UNKNOWN_CODE=0]=`UNKNOWN_CODE`,e[e.OK=1]=`OK`,e[e.FAIL=2]=`FAIL`,e[e.JOIN_ROOM_FULL=1001]=`JOIN_ROOM_FULL`,e[e.JOIN_ROOM_NOT_EXISTS=1002]=`JOIN_ROOM_NOT_EXISTS`,e[e.JOIN_ROOM_PERMISSION_DENIED=1003]=`JOIN_ROOM_PERMISSION_DENIED`,e[e.GLOBAL_ROOMS_CNT_EXCEEDS=1004]=`GLOBAL_ROOMS_CNT_EXCEEDS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(fe||{}),pe=(e=>(e[e.Completion_None=0]=`Completion_None`,e[e.Completion_Completed=1]=`Completion_Completed`,e[e.Completion_UserCancelled=2]=`Completion_UserCancelled`,e[e.Completion_SystemErr=3]=`Completion_SystemErr`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(pe||{}),me=(e=>(e[e.RoleType_None=0]=`RoleType_None`,e[e.RoleType_User=1]=`RoleType_User`,e[e.RoleType_Agent=2]=`RoleType_Agent`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(me||{}),he=(e=>(e[e.ContentBlockType_None=0]=`ContentBlockType_None`,e[e.ContentBlockType_Prompt=1]=`ContentBlockType_Prompt`,e[e.ContentBlockType_Thinking=2]=`ContentBlockType_Thinking`,e[e.ContentBlockType_Report=3]=`ContentBlockType_Report`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(he||{}),ge=(e=>(e[e.ContentType_None=0]=`ContentType_None`,e[e.ContentType_PlainText=1]=`ContentType_PlainText`,e[e.ContentType_Markdown=2]=`ContentType_Markdown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ge||{}),_e=(e=>(e[e.AttachmentType_None=0]=`AttachmentType_None`,e[e.AttachmentType_Unit=1]=`AttachmentType_Unit`,e[e.AttachmentType_Recommendation=3]=`AttachmentType_Recommendation`,e[e.AttachmentType_DataSource=4]=`AttachmentType_DataSource`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(_e||{}),ve=(e=>(e[e.Reaction_NoReact=0]=`Reaction_NoReact`,e[e.Reaction_ThumbsUp=1]=`Reaction_ThumbsUp`,e[e.Reaction_ThumbsDown=2]=`Reaction_ThumbsDown`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(ve||{}),D=(e=>(e[e.ChatSSEBlockType_None=0]=`ChatSSEBlockType_None`,e[e.ChatSSEBlockType_EndOfStream=1]=`ChatSSEBlockType_EndOfStream`,e[e.ChatSSEBlockType_Reject=2]=`ChatSSEBlockType_Reject`,e[e.ChatSSEBlockType_ModConversation=3]=`ChatSSEBlockType_ModConversation`,e[e.ChatSSEBlockType_PromptAck=4]=`ChatSSEBlockType_PromptAck`,e[e.ChatSSEBlockType_ChatContent=5]=`ChatSSEBlockType_ChatContent`,e[e.ChatSSEBlockType_Attachment=6]=`ChatSSEBlockType_Attachment`,e[e.ChatSSEBlockType_RespMeta=7]=`ChatSSEBlockType_RespMeta`,e[e.ChatSSEBlockType_StreamErr=8]=`ChatSSEBlockType_StreamErr`,e[e.ChatSSEBlockType_ChatThinking=9]=`ChatSSEBlockType_ChatThinking`,e[e.ChatSSEBlockType_Fragmentation=10]=`ChatSSEBlockType_Fragmentation`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(D||{}),O=(e=>(e[e.ChatSSEStatus_None=0]=`ChatSSEStatus_None`,e[e.ChatSSEStatus_Appending=1]=`ChatSSEStatus_Appending`,e[e.ChatSSEStatus_Success=2]=`ChatSSEStatus_Success`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(O||{}),k=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.UNIT=1]=`UNIT`,e[e.JSON=2]=`JSON`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(k||{}),A=(e=>(e[e.ImportScene_Unspecified=0]=`ImportScene_Unspecified`,e[e.ImportScene_General=1]=`ImportScene_General`,e[e.ImportScene_AIAnalyse=2]=`ImportScene_AIAnalyse`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(A||{}),j=(e=>(e[e.Undefined=0]=`Undefined`,e[e.HttpImport=1]=`HttpImport`,e[e.HttpExport=2]=`HttpExport`,e[e.UnitEmbedded=3]=`UnitEmbedded`,e[e.UnitSnapshot=4]=`UnitSnapshot`,e[e.UserProfileImg=5]=`UserProfileImg`,e[e.ClipsheetFragments=6]=`ClipsheetFragments`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(j||{}),M=(e=>(e[e.UNDEFINED_ENV=0]=`UNDEFINED_ENV`,e[e.NODE=1]=`NODE`,e[e.BROWSER=2]=`BROWSER`,e[e.PYTHON=3]=`PYTHON`,e[e.REQUIREMENTS_TXT=4]=`REQUIREMENTS_TXT`,e[e.WORKSPACE_ENV_VARS=5]=`WORKSPACE_ENV_VARS`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(M||{}),N=(e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.ROOT=1]=`ROOT`,e[e.TRASH=2]=`TRASH`,e[e.DEBUG=3]=`DEBUG`,e[e.AI_STASH=4]=`AI_STASH`,e[e.UNRECOGNIZED=-1]=`UNRECOGNIZED`,e))(N||{});let P=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(r.SetRangeProtectionMutation.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(r.DeleteRangeProtectionMutation.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)}};P=f([d(6,(0,t.Inject)(t.Injector)),d(7,(0,t.Inject)(t.ICommandService)),d(8,(0,t.Inject)(r.RangeProtectionRuleModel))],P);let F={[_.Edit]:r.WorkbookEditablePermission,[_.View]:r.WorkbookViewPermission,[_.Print]:r.WorkbookPrintPermission,[_.Export]:r.WorkbookExportPermission,[_.Share]:r.WorkbookSharePermission,[_.CopyContent]:r.WorkbookCopyPermission,[_.DuplicateFile]:r.WorkbookDuplicatePermission,[_.Comment]:r.WorkbookCommentPermission,[_.ManageCollaborator]:r.WorkbookManageCollaboratorPermission,[_.CreateSheet]:r.WorkbookCreateSheetPermission,[_.DeleteSheet]:r.WorkbookDeleteSheetPermission,[_.RenameSheet]:r.WorkbookRenameSheetPermission,[_.MoveSheet]:r.WorkbookMoveSheetPermission,[_.HideSheet]:r.WorkbookHideSheetPermission,[_.ViewHistory]:r.WorkbookViewHistoryPermission,[_.ManageHistory]:r.WorkbookHistoryPermission,[_.RecoverHistory]:r.WorkbookRecoverHistoryPermission,[_.CreateProtection]:r.WorkbookCreateProtectPermission,[_.InsertRow]:r.WorkbookInsertRowPermission,[_.InsertColumn]:r.WorkbookInsertColumnPermission,[_.DeleteRow]:r.WorkbookDeleteRowPermission,[_.DeleteColumn]:r.WorkbookDeleteColumnPermission,[_.CopySheet]:r.WorkbookCopySheetPermission},I={[v.Edit]:r.WorksheetEditPermission,[v.View]:r.WorksheetViewPermission,[v.Copy]:r.WorksheetCopyPermission,[v.SetCellValue]:r.WorksheetSetCellValuePermission,[v.SetCellStyle]:r.WorksheetSetCellStylePermission,[v.SetRowStyle]:r.WorksheetSetRowStylePermission,[v.SetColumnStyle]:r.WorksheetSetColumnStylePermission,[v.InsertRow]:r.WorksheetInsertRowPermission,[v.InsertColumn]:r.WorksheetInsertColumnPermission,[v.DeleteRow]:r.WorksheetDeleteRowPermission,[v.DeleteColumn]:r.WorksheetDeleteColumnPermission,[v.Sort]:r.WorksheetSortPermission,[v.Filter]:r.WorksheetFilterPermission,[v.PivotTable]:r.WorksheetPivotTablePermission,[v.InsertHyperlink]:r.WorksheetInsertHyperlinkPermission,[v.EditExtraObject]:r.WorksheetEditExtraObjectPermission,[v.ManageCollaborator]:r.WorksheetManageCollaboratorPermission,[v.DeleteProtection]:r.WorksheetDeleteProtectionPermission,[v.SelectProtectedCells]:r.WorksheetSelectProtectedCellsPermission,[v.SelectUnProtectedCells]:r.WorksheetSelectUnProtectedCellsPermission},L={[y.Edit]:r.RangeProtectionPermissionEditPoint,[y.View]:r.RangeProtectionPermissionViewPoint,[y.ManageCollaborator]:r.RangeProtectionPermissionManageCollaPoint,[y.Delete]:r.RangeProtectionPermissionDeleteProtectionPoint},R=class{constructor(e,t,n,r,i,o,s,c){this._worksheet=e,this._injector=t,this._permissionService=n,this._authzIoService=r,this._commandService=i,this._rangeProtectionRuleModel=o,this._worksheetProtectionPointModel=s,this._worksheetProtectionRuleModel=c,u(this,`_permissionSubject`,void 0),u(this,`_rangeRulesSubject`,void 0),u(this,`permission$`,void 0),u(this,`pointChange$`,void 0),u(this,`rangeProtectionChange$`,void 0),u(this,`rangeProtectionRules$`,void 0),u(this,`_unitId`,void 0),u(this,`_subUnitId`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),this._unitId=this._worksheet.getWorkbook().getUnitId(),this._subUnitId=this._worksheet.getSheetId(),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this._rangeRulesSubject=new a.BehaviorSubject(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((0,o.filter)(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((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPointChangeStream(){return this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId)&&e.id.includes(this._subUnitId)),(0,o.map)(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}),(0,o.filter)(e=>e!==null),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createRangeProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId),(0,o.map)(e=>{let t=this._buildRangeProtectionRules();return{type:e.type===`delete`?`delete`:e.type===`set`?`update`:`add`,rules:t}}),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createRangeProtectionRulesStream(){let e=this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId===this._unitId&&e.subUnitId===this._subUnitId)).subscribe(()=>{this._rangeRulesSubject.next(this._buildRangeProtectionRules())});return this._subscriptions.push(e),this._rangeRulesSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>e.length===t.length?e.every((e,n)=>e.id===t[n].id):!1),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_extractWorksheetPointType(e){for(let[t,n]of Object.entries(I))if(new n(this._unitId,this._subUnitId).id===e)return t;return null}_getRuleEditPermission(e){var t;let n=L[y.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 v){let n=v[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(P,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!==r.ViewStateEnum.NoOneElseCanView};return e.editState===r.EditStateEnum.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(P,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(v).forEach(e=>{t[e]=!1}),e){case`editable`:Object.values(v).forEach(e=>{t[e]=!0});break;case`readOnly`:t[v.View]=!0;break;case`filterOnly`:t[v.View]=!0,t[v.Sort]=!0,t[v.Filter]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=I[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(v.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(v.View)}async setPoint(e,t){let n=I[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=I[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,i;let a=[];if((n=e.options)!=null&&n.allowedUsers){let n=new Set(e.options.allowedUsers);a=t.filter(e=>{var t;return n.has(((t=e.subject)==null?void 0:t.userID)||e.id)}).map(e=>({id:e.id,role:C.Editor,subject:e.subject}));let r=new Set(a.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:r.UnitObject.SelectRange,selectRangeObject:{collaborators:a,unitID:this._unitId,name:((i=e.options)==null?void 0:i.name)||``,scope:void 0}})})),i=e.map((e,t)=>{var i;let a=this._determineViewState(e.options),o=this._determineEditState(e.options);return{permissionId:n[t],unitType:r.UnitObject.SelectRange,unitId:this._unitId,subUnitId:this._subUnitId,ranges:e.ranges.map(e=>e.getRange()),id:this._rangeProtectionRuleModel.createRuleId(this._unitId,this._subUnitId),description:((i=e.options)==null?void 0:i.name)||``,viewState:a,editState:o}});if(!await this._commandService.executeCommand(r.AddRangeProtectionMutation.id,{unitId:this._unitId,subUnitId:this._subUnitId,rules:i}))throw Error(`Failed to create range protection rules`);return await Promise.all(e.map((e,t)=>this._setPermissionPoints(n[t],e.options))),i.map((t,n)=>this._injector.createInstance(P,this._unitId,this._subUnitId,t.id,t.permissionId,e[n].ranges,e[n].options||{}))}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?r.ViewStateEnum.NoOneElseCanView:r.ViewStateEnum.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?r.EditStateEnum.DesignedUserCanEdit:r.EditStateEnum.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,y.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,y.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=L[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()}};R=f([d(1,(0,t.Inject)(t.Injector)),d(2,t.IPermissionService),d(3,t.IAuthzIoService),d(4,t.ICommandService),d(5,(0,t.Inject)(r.RangeProtectionRuleModel)),d(6,(0,t.Inject)(r.WorksheetProtectionPointModel)),d(7,(0,t.Inject)(r.WorksheetProtectionRuleModel))],R);function ye(e){switch(e){case`left`:return t.HorizontalAlign.LEFT;case`center`:return t.HorizontalAlign.CENTER;case`normal`:return t.HorizontalAlign.RIGHT;default:throw Error(`Invalid horizontal alignment: ${e}`)}}function z(e){switch(e){case t.HorizontalAlign.LEFT:return`left`;case t.HorizontalAlign.CENTER:return`center`;case t.HorizontalAlign.RIGHT:return`normal`;default:return`general`}}function be(e){switch(e){case`top`:return t.VerticalAlign.TOP;case`middle`:return t.VerticalAlign.MIDDLE;case`bottom`:return t.VerticalAlign.BOTTOM;default:throw Error(`Invalid vertical alignment: ${e}`)}}function B(e){switch(e){case t.VerticalAlign.TOP:return`top`;case t.VerticalAlign.MIDDLE:return`middle`;case t.VerticalAlign.BOTTOM:return`bottom`;default:return`general`}}function V(e,n){return{startRow:e.startRow,endRow:e.endRow,startColumn:0,endColumn:n.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW}}function H(e,n){return{startRow:0,endRow:n.getRowCount()-1,startColumn:e.startColumn,endColumn:e.endColumn,rangeType:t.RANGE_TYPE.COLUMN}}var U;let W=U=class extends n.FBaseInitialable{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,u(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(S,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(r.SetWorksheetDefaultStyleMutation.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(r.SetColDataCommand.id,n),this}setRowDefaultStyle(e,t){let n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(r.SetRowDataCommand.id,n),this}getRange(e,n,r,a){let o,s;if(typeof e==`object`)o=e,s=this._worksheet;else if(typeof e==`string`){let{range:n,sheetName:r}=(0,i.deserializeRangeWithSheet)(e),a=r?this._workbook.getSheetBySheetName(r):this._worksheet;if(!a)throw Error(`Range not found`);s=a,o={...n,unitId:this._workbook.getUnitId(),sheetId:s.getSheetId(),rangeType:t.RANGE_TYPE.NORMAL,startRow:n.rangeType===t.RANGE_TYPE.COLUMN?0:n.startRow,endRow:n.rangeType===t.RANGE_TYPE.COLUMN?s.getMaxRows()-1:n.endRow,startColumn:n.rangeType===t.RANGE_TYPE.ROW?0:n.startColumn,endColumn:n.rangeType===t.RANGE_TYPE.ROW?s.getMaxColumns()-1:n.endColumn}}else if(typeof e==`number`&&n!==void 0)s=this._worksheet,o={startRow:e,endRow:e+(r==null?1:r)-1,startColumn:n,endColumn:n+(a==null?1:a)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw Error(`Invalid range specification`);return this._injector.createInstance(J,this._workbook,s,o)}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,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.DOWN,s=e+1,c=e+n,l=this._worksheet.getColumnCount()-1,u=(0,r.copyRangeStyles)(this._worksheet,s,c,0,l,!0,e);return this._commandService.syncExecuteCommand(r.InsertRowByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:s,endRow:c,startColumn:0,endColumn:l},cellValue:u}),this}insertRowsBefore(e,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.UP,s=e,c=e+n-1,l=this._worksheet.getColumnCount()-1,u=(0,r.copyRangeStyles)(this._worksheet,s,c,0,l,!0,e-1);return this._commandService.syncExecuteCommand(r.InsertRowByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:s,endRow:c,startColumn:0,endColumn:l},cellValue:u}),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(r.RemoveRowByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteRowsByPoints(e){return(0,t.generateIntervalsByPoints)(e).reverse().forEach(e=>{this.deleteRows(e[0],e[1]-e[0]+1)}),this}moveRows(e,t){let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=V(e.getRange(),this._worksheet),o=a,s={startRow:t,endRow:t,startColumn:a.startColumn,endColumn:a.endColumn};return this._commandService.syncExecuteCommand(r.MoveRowsCommand.id,{unitId:n,subUnitId:i,range:a,fromRange:o,toRange:s}),this}hideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=V(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetRowHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}hideRows(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(r.SetRowHiddenCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}unhideRow(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=V(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetSpecificRowsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}showRows(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:e,endRow:e+n-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:t.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(r.SetSpecificRowsVisibleCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(e,n=t.BooleanNumber.TRUE){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(r.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:o[0],value:t.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(r.SetWorksheetRowIsAutoHeightMutation.id,{unitId:i,subUnitId:a,ranges:o,autoHeightInfo:n}),this}setRowHeights(e,t,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=this._worksheet.getRowManager(),s=[],c=[];for(let r=e;r<e+t;r++){var l;let e=((l=o.getRow(r))==null?void 0:l.ah)||this._worksheet.getConfig().defaultRowHeight,t={startRow:r,endRow:r,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};n<=e?s.push(t):c.push(t)}return c.length>0&&this._commandService.syncExecuteCommand(r.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:c,value:n}),s.length>0&&this._commandService.syncExecuteCommand(r.SetWorksheetRowIsAutoHeightCommand.id,{unitId:i,subUnitId:a,ranges:s}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){let n=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(r.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:i,ranges:a}),this}setRangesAutoHeight(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(r.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:n,ranges:e}),this}setRowHeightsForced(e,t,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(r.SetRowHeightCommand.id,{unitId:i,subUnitId:a,ranges:o,value:n}),this}setRowCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i={};for(let[t,n]of Object.entries(e))i[Number(t)]={custom:n};let a={unitId:t,subUnitId:n,rowData:i};return this._commandService.syncExecuteCommand(r.SetRowDataCommand.id,a),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,t=1){return this.insertColumnsBefore(e,t)}insertColumnsAfter(e,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.RIGHT,s=this._worksheet.getRowCount()-1,c=e+1,l=e+n,u=(0,r.copyRangeStyles)(this._worksheet,0,s,c,l,!1,e);return this._commandService.syncExecuteCommand(r.InsertColByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:0,endRow:s,startColumn:c,endColumn:l},cellValue:u}),this}insertColumnsBefore(e,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=t.Direction.LEFT,s=this._worksheet.getRowCount()-1,c=e,l=e+n-1,u=(0,r.copyRangeStyles)(this._worksheet,0,s,c,l,!1,e-1);return this._commandService.syncExecuteCommand(r.InsertColByRangeCommand.id,{unitId:i,subUnitId:a,direction:o,range:{startRow:0,endRow:s,startColumn:c,endColumn:l},cellValue:u}),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(r.RemoveColByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}deleteColumnsByPoints(e){return(0,t.generateIntervalsByPoints)(e).reverse().forEach(e=>{this.deleteColumns(e[0],e[1]-e[0]+1)}),this}moveColumns(e,t){let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=H(e.getRange(),this._worksheet),o=a,s={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(r.MoveColsCommand.id,{unitId:n,subUnitId:i,range:a,fromRange:o,toRange:s}),this}hideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=H(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetColHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}hideColumns(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+n-1,rangeType:t.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(r.SetColHiddenCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}unhideColumn(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=H(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(r.SetSpecificColsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}showColumns(e,n=1){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+n-1,rangeType:t.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(r.SetSpecificColsVisibleCommand.id,{unitId:i,subUnitId:a,ranges:[o]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,n){let i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(r.SetColWidthCommand.id,{unitId:i,subUnitId:a,ranges:o,value:n}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i={};for(let[t,n]of Object.entries(e))i[Number(t)]={custom:n};let a={unitId:t,subUnitId:n,columnData:i};return this._commandService.syncExecuteCommand(r.SetColDataCommand.id,a),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(J,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(e=>this._injector.createInstance(J,this._workbook,this._worksheet,e))}getCellMergeData(e,t){let n=this._worksheet.getMergedCell(e,t);if(n)return this._injector.createInstance(J,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(r.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(r.CancelFrozenCommand.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,i=0]=e;n>i&&([n,i]=[i,n]),this._commandService.syncExecuteCommand(r.SetFrozenCommand.id,{startColumn:i+1,xSplit:i-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,i=0]=e;n>i&&([n,i]=[i,n]),this._commandService.syncExecuteCommand(r.SetFrozenCommand.id,{startRow:i+1,ySplit:i-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===t.BooleanNumber.FALSE}setHiddenGridlines(e){return this._commandService.syncExecuteCommand(r.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:e?t.BooleanNumber.FALSE:t.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(r.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(r.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(t.ICommandService).onCommandExecuted(n=>{if(n.id===r.SetRangeValuesMutation.id){let r=n.params;r.unitId===this._workbook.getUnitId()&&r.subUnitId===this._worksheet.getSheetId()&&r.cellValue&&e(new t.ObjectMatrix(r.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(t.ICommandService).beforeCommandExecuted(n=>{if(n.id===r.SetRangeValuesMutation.id){let r=n.params;r.unitId===this._workbook.getUnitId()&&r.subUnitId===this._worksheet.getSheetId()&&r.cellValue&&e(new t.ObjectMatrix(r.cellValue))}})}hideSheet(){let e=this._injector.get(t.ICommandService);if(this._workbook.getSheets().filter(e=>e.isSheetHidden()!==t.BooleanNumber.TRUE).length<=1)throw Error(`Cannot hide the only visible sheet`);return e.syncExecuteCommand(r.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===t.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(r.SetWorksheetNameCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(e){if(e&&e.contentsOnly&&!e.formatOnly)return this.clearContents();if(e&&e.formatOnly&&!e.contentsOnly)return this.clearFormats();let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),a=this._injector.get(t.ICommandService),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return a.syncExecuteCommand(r.ClearSelectionAllCommand.id,{unitId:n,subUnitId:i,ranges:[o],options:e}),this}clearContents(){let e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this._injector.get(t.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(r.ClearSelectionContentCommand.id,{unitId:e,subUnitId:n,ranges:[a]}),this}clearFormats(){let e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this._injector.get(t.ICommandService),a={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(r.ClearSelectionFormatCommand.id,{unitId:e,subUnitId:n,ranges:[a]}),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 U?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){let n=this._injector.createInstance(m).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 n=this._worksheet.getCellMatrix().hasValue(),i=this._worksheet.getLastRowWithContent(),a=this._worksheet.getRowCount(),o=this._worksheet.getColumnCount(),s=n?i+1:i,c=new t.ObjectMatrix;for(let n=0;n<e.length;n++)c.setValue(s,n,(0,t.covertCellValue)(e[n]));return this._commandService.syncExecuteCommand(r.AppendRowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:c.getMatrix(),insertRowNums:s>a-1?1:0,insertColumnNums:e.length>o?e.length-o:0,maxRows:a,maxColumns:o}),this}setRowCount(e){return this._commandService.syncExecuteCommand(r.SetWorksheetRowCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),rowCount:e}),this}setColumnCount(e){return this._commandService.syncExecuteCommand(r.SetWorksheetColumnCountCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),columnCount:e}),this}getWorksheetPermission(){return this._injector.createInstance(R,this)}};W=U=f([d(3,(0,t.Inject)(t.Injector)),d(4,(0,t.Inject)(r.SheetsSelectionsService)),d(5,(0,t.Inject)(t.ILogService)),d(6,t.ICommandService)],W);let G=class{constructor(e,t,n,r,i,o,s,c,l){this._unitId=e,this._subUnitId=t,this._range=n,this._worksheet=r,this._injector=i,this._permissionService=o,this._authzIoService=s,this._commandService=c,this._rangeProtectionRuleModel=l,u(this,`_permissionSubject`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),u(this,`permission$`,void 0),u(this,`protectionChange$`,void 0),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.protectionChange$=this._createProtectionChangeStream()}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(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((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createProtectionChangeStream(){return this._rangeProtectionRuleModel.ruleChange$.pipe((0,o.filter)(e=>e.unitId!==this._unitId||e.subUnitId!==this._subUnitId?!1:e.type===`delete`||e.type===`add`?this._rangeMatches(e.rule):!1),(0,o.map)(e=>(this._permissionSubject.next(this._buildSnapshot()),e.type===`delete`?{type:`unprotected`,ruleId:e.rule.id}:{type:`protected`,rule:this._createFacadeRule(e.rule)})),(0,o.shareReplay)({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!==r.ViewStateEnum.NoOneElseCanView,allowEdit:e.editState===r.EditStateEnum.DesignedUserCanEdit};return this._injector.createInstance(P,this._unitId,this._subUnitId,e.id,e.permissionId,t,n)}getPoint(e){let t=L[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(y.Edit)}canView(){return this.getPoint(y.View)}canManageCollaborator(){return this.getPoint(y.ManageCollaborator)}canDelete(){return this.getPoint(y.Delete)}async setPoint(e,t){let n=L[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(P,this._unitId,this._subUnitId,r,n,[this._range],e||{})}_determineViewState(e){return(e==null?void 0:e.allowViewByOthers)===!1?r.ViewStateEnum.NoOneElseCanView:r.ViewStateEnum.OthersCanView}_determineEditState(e){var t;return(e==null?void 0:e.allowEdit)===!0&&!(e==null||(t=e.allowedUsers)==null)&&t.length?r.EditStateEnum.DesignedUserCanEdit:r.EditStateEnum.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,y.Edit,n(t.allowEdit,!1)),await this._setPermissionPoint(e,y.View,n(t.allowViewByOthers,!0))}async _setPermissionPoint(e,t,n){let r=L[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!==r.ViewStateEnum.NoOneElseCanView};return e.editState===r.EditStateEnum.DesignedUserCanEdit?n.allowEdit=!0:n.allowEdit=!1,this._injector.createInstance(P,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!==r.ViewStateEnum.NoOneElseCanView};if(e.editState===r.EditStateEnum.DesignedUserCanEdit)try{n.allowEdit=(await this._authzIoService.listCollaborators({objectID:e.permissionId,unitID:this._unitId})).filter(e=>e.role===C.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(P,this._unitId,this._subUnitId,e.id,e.permissionId,t,n))}_buildSnapshot(){let e={};return Object.values(y).forEach(t=>{e[t]=this.getPoint(t)}),e}dispose(){this._subscriptions.forEach(e=>e.unsubscribe()),this._permissionSubject.complete()}};G=f([d(4,(0,t.Inject)(t.Injector)),d(5,(0,t.Inject)(t.IPermissionService)),d(6,(0,t.Inject)(t.IAuthzIoService)),d(7,(0,t.Inject)(t.ICommandService)),d(8,(0,t.Inject)(r.RangeProtectionRuleModel))],G);var K,q;let J=K=class extends n.FBaseInitialable{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:n,endColumn:r,endRow:i}=this._range;return this._worksheet.getMergedCellRange(n,e,i,r).some(e=>t.Rectangle.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 n=this.getCellStyleData(e);return n?t.TextStyleValue.create(n):null}getCellStyles(e=`row`){return this.getCellDatas().map((n,r)=>n.map((n,i)=>{if(!n)return null;let a=e===`cell`?this._worksheet.getCellStyle(r+this._range.startRow,i+this._range.startColumn):this._worksheet.getComposedCellStyle(r+this._range.startRow,i+this._range.startColumn,e===`row`);return a?t.TextStyleValue.create(a):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 t.RichTextValue(e.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(e=>e!=null&&e.p?new t.RichTextValue(e.p):null))}getValueAndRichTextValue(){let e=this.getCellData();return e!=null&&e.p?new t.RichTextValue(e.p):e==null?void 0:e.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(e=>e!=null&&e.p?new t.RichTextValue(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()===t.BooleanNumber.TRUE}getWraps(){let e=this.getCellDatas(),n=this._workbook.getStyles();return e.map(e=>e.map(e=>{var r;return((r=n.getStyleByCell(e))==null?void 0:r.tb)===t.WrapStrategy.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){return z(this._worksheet.getRange(this._range).getHorizontalAlignment())}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(e=>z(e)))}getVerticalAlignment(){return B(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(e=>B(e)))}setCustomMetaData(e){let t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,customMetadata:{custom:e}};return this._commandService.syncExecuteCommand(r.SetRangeCustomMetadataCommand.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(r.SetRangeCustomMetadataCommand.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(r.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:e,style:t,color:n}}),this}getBackground(){var e,n;let r=this.getCellStyle();return(e=r==null||(n=r.background)==null?void 0:n.rgb)==null?t.DEFAULT_STYLES.bg.rgb:e}getBackgrounds(){return this.getCellStyles().map(e=>e.map(e=>{var n,r;return(n=e==null||(r=e.background)==null?void 0:r.rgb)==null?t.DEFAULT_STYLES.bg.rgb:n}))}setBackgroundColor(e){return this._commandService.syncExecuteCommand(r.SetStyleCommand.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(r.SetTextRotationCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValue(e){let n=(0,t.covertCellValue)(e);if(!n)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setValueForCell(e){let n=(0,t.covertCellValue)(e);if(!n)throw Error(`Invalid value`);return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:n}),this}setRichTextValueForCell(e){let n=e instanceof t.RichTextValue?e.getData():e,i={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:n}};return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,i),this}setRichTextValues(e){let n=(0,t.covertCellValues)(e.map(e=>e.map(e=>e&&{p:e instanceof t.RichTextValue?e.getData():e})),this._range),i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n};return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,i),this}setWrap(e){return this._commandService.syncExecuteCommand(r.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e?t.WrapStrategy.WRAP:t.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(e){return this._commandService.syncExecuteCommand(r.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setVerticalAlignment(e){return this._commandService.syncExecuteCommand(r.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:be(e)}),this}setHorizontalAlignment(e){return this._commandService.syncExecuteCommand(r.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:ye(e)}),this}setValues(e){let n=(0,t.covertCellValues)(e,this._range);return this._commandService.syncExecuteCommand(r.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:n}),this}setFontWeight(e){let n;if(e===`bold`)n=t.BooleanNumber.TRUE;else if(e===`normal`)n=t.BooleanNumber.FALSE;else if(e===null)n=null;else throw Error(`Invalid fontWeight`);let i={type:`bl`,value:n},a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:i};return this._commandService.syncExecuteCommand(r.SetStyleCommand.id,a),this}setFontStyle(e){let n;if(e===`italic`)n=t.BooleanNumber.TRUE;else if(e===`normal`)n=t.BooleanNumber.FALSE;else if(e===null)n=null;else throw Error(`Invalid fontStyle`);let i={type:`it`,value:n},a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:i};return this._commandService.syncExecuteCommand(r.SetStyleCommand.id,a),this}setFontLine(e){if(e===`underline`)this._setFontUnderline({s:t.BooleanNumber.TRUE});else if(e===`line-through`)this._setFontStrikethrough({s:t.BooleanNumber.TRUE});else if(e===`none`)this._setFontUnderline({s:t.BooleanNumber.FALSE}),this._setFontStrikethrough({s:t.BooleanNumber.FALSE});else if(e===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(r.SetStyleCommand.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(r.SetStyleCommand.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(r.SetStyleCommand.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(r.SetStyleCommand.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(r.SetStyleCommand.id,n),this}merge(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return(0,r.addMergeCellsUtil)(this._injector,t,n,[this._range],e),this}mergeAcross(e){let n=(0,r.getAddMergeMutationRangeByType)([this._range],t.Dimension.ROWS),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId();return(0,r.addMergeCellsUtil)(this._injector,i,a,n,e),this}mergeVertically(e){let n=(0,r.getAddMergeMutationRangeByType)([this._range],t.Dimension.COLUMNS),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId();return(0,r.addMergeCellsUtil)(this._injector,i,a,n,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(r.RemoveWorksheetMergeCommand.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?(0,i.serializeRangeWithSheet)(this._worksheet.getName(),r):(0,i.serializeRange)(r)}activate(){return this._injector.createInstance(X,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){let e=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(e&&t.Rectangle.equals(e,this._range)||!e&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){let e=this._injector.createInstance(X,this._workbook).getActiveRange();if(!e||e.getUnitId()!==this.getUnitId()||e.getSheetId()!==this.getSheetId())return this.activate();if(t.Rectangle.contains(e.getRange(),this._range)){let t={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:e.getRange(),primary:(0,r.getPrimaryForRange)(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(r.SetSelectionsOperation.id,t),this}return this.activate()}else throw Error(`The range is not a single cell`)}splitTextToColumns(e,t,n){this._commandService.syncExecuteCommand(r.SplitTextToColumnsCommand.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(r.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}removeThemeStyle(e){this._commandService.syncExecuteCommand(r.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:e})}getUsedThemeStyle(){return this._injector.get(r.SheetRangeThemeService).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(r.ClearSelectionAllCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:e}),this)}clearContent(){return this._commandService.syncExecuteCommand(r.ClearSelectionContentCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(r.ClearSelectionFormatCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(e){e===t.Dimension.ROWS?this._commandService.executeCommand(r.InsertRangeMoveDownCommand.id,{range:this._range}):this._commandService.executeCommand(r.InsertRangeMoveRightCommand.id,{range:this._range})}deleteCells(e){e===t.Dimension.ROWS?this._commandService.executeCommand(r.DeleteRangeMoveUpCommand.id,{range:this._range}):this._commandService.executeCommand(r.DeleteRangeMoveLeftCommand.id,{range:this._range})}getDataRegion(e){let{startRow:n,startColumn:r,endRow:i,endColumn:a}=this._range,o=this._worksheet.getMaxRows(),s=this._worksheet.getMaxColumns(),c=this._worksheet.getCellMatrix(),l=n,u=r,d=i,f=a;if(e!==t.Dimension.COLUMNS){let e=!1,s=!1;for(let l=r;l<=a&&(n>0&&!(0,t.isNullCell)(c.getValue(n-1,l))&&(e=!0),i<o-1&&!(0,t.isNullCell)(c.getValue(i+1,l))&&(s=!0),!(e&&s));l++);e&&(l=n-1),s&&(d=i+1)}if(e!==t.Dimension.ROWS){let e=!1,o=!1;for(let l=n;l<=i&&(r>0&&!(0,t.isNullCell)(c.getValue(l,r-1))&&(e=!0),a<s-1&&!(0,t.isNullCell)(c.getValue(l,a+1))&&(o=!0),!(e&&o));l++);e&&(u=r-1),o&&(f=a+1)}return this._injector.createInstance(K,this._workbook,this._worksheet,{startRow:l,startColumn:u,endRow:d,endColumn:f})}isBlank(){let e=this._worksheet.getCellMatrix(),{startRow:n,startColumn:r,endRow:i,endColumn:a}=this._range,o=!0;for(let s=n;s<=i;s++){for(let n=r;n<=a;n++)if(!(0,t.isNullCell)(e.getValue(s,n))){o=!1;break}if(!o)break}return o}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(K,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(W,this._injector.createInstance(X,this._workbook),this._workbook,this._worksheet);return this._injector.createInstance(G,this._workbook.getUnitId(),this._worksheet.getSheetId(),this,e)}autoFill(e,n){let i=this.getRange(),a=e.getRange();if(!t.Rectangle.contains(a,i))throw Error(`AutoFill target range must contain source range`);let{startRow:o,startColumn:s,endRow:c,endColumn:l}=i,{startRow:u,startColumn:d,endRow:f,endColumn:p}=a;if(c-o!==f-u&&l-s!==p-d||c-o===f-u&&s!==d&&l!==p||l-s===p-d&&o!==u&&c!==f)throw Error(`AutoFill can only fill in one direction`);return this._commandService.executeCommand(r.AutoFillCommand.id,{sourceRange:i,targetRange:a,unitId:this.getUnitId(),subUnitId:this.getSheetId(),applyType:n})}};q=J,q._enableManualInit(),J=K=f([d(3,(0,t.Inject)(t.Injector)),d(4,t.ICommandService),d(5,(0,t.Inject)(i.FormulaDataModel))],J);let Y=class{constructor(e,t,n,r){this._unitId=e,this._injector=t,this._permissionService=n,this._authzIoService=r,u(this,`_permissionSubject`,void 0),u(this,`_collaboratorChangeSubject`,new a.Subject),u(this,`permission$`,void 0),u(this,`pointChange$`,void 0),u(this,`collaboratorChange$`,void 0),u(this,`_subscriptions`,[]),u(this,`_fPermission`,void 0),this._fPermission=this._injector.createInstance(b),this._permissionSubject=new a.BehaviorSubject(this._buildSnapshot()),this.permission$=this._createPermissionStream(),this.pointChange$=this._createPointChangeStream(),this.collaboratorChange$=this._collaboratorChangeSubject.asObservable().pipe((0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPermissionStream(){let e=this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId))).subscribe(()=>{this._permissionSubject.next(this._buildSnapshot())});return this._subscriptions.push(e),this._permissionSubject.asObservable().pipe((0,o.distinctUntilChanged)((e,t)=>JSON.stringify(e)===JSON.stringify(t)),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_createPointChangeStream(){let e=new Map;for(let t in _){let n=_[t];e.set(n,this.getPoint(n))}return this._permissionService.permissionPointUpdate$.pipe((0,o.filter)(e=>e.id.includes(this._unitId)),(0,o.map)(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}}),(0,o.filter)(e=>e!==null),(0,o.shareReplay)({bufferSize:1,refCount:!0}))}_extractWorkbookPointType(e){for(let t in _){let n=_[t],r=F[n];if(r&&new r(this._unitId).id===e)return n}return null}_buildSnapshot(){let e={};for(let t in _){let n=_[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(_).forEach(e=>{t[e]=!1}),e){case`owner`:Object.values(_).forEach(e=>{t[e]=!0});break;case`editor`:t[_.Edit]=!0,t[_.View]=!0,t[_.Print]=!0,t[_.Export]=!0,t[_.CopyContent]=!0,t[_.Comment]=!0,t[_.CreateSheet]=!0,t[_.DeleteSheet]=!0,t[_.RenameSheet]=!0,t[_.MoveSheet]=!0,t[_.HideSheet]=!0,t[_.InsertRow]=!0,t[_.InsertColumn]=!0,t[_.DeleteRow]=!0,t[_.DeleteColumn]=!0,t[_.CopySheet]=!0,t[_.CreateProtection]=!0;break;case`viewer`:t[_.View]=!0,t[_.Print]=!0;break;case`commenter`:t[_.View]=!0,t[_.Comment]=!0,t[_.Print]=!0;break}return t}async _batchSetPermissionPoints(e){let t=[];for(let[n,r]of Object.entries(e)){let e=n,i=F[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(_.Edit)}async setPoint(e,t){let n=F[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=F[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:g.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()}};Y=f([d(1,(0,t.Inject)(t.Injector)),d(2,t.IPermissionService),d(3,t.IAuthzIoService)],Y);let X=class extends n.FBaseInitialable{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,u(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(r.SetWorkbookNameCommand.id,{unitId:this._workbook.getUnitId(),name:e}),this}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn(`use 'save' instead of 'getSnapshot'`),this.save()}getActiveSheet(){let e=this._workbook.getActiveSheet();return this._injector.createInstance(W,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(W,this,this._workbook,e))}create(e,n,i,a){var o,s,c;let l=(0,t.mergeWorksheetSnapshotWithDefault)(t.Tools.deepClone((o=a==null?void 0:a.sheet)==null?{}:o));l.name=this._workbook.uniqueSheetName(e),l.rowCount=n,l.columnCount=i,l.id=a==null||(s=a.sheet)==null?void 0:s.id;let u=(c=a==null?void 0:a.index)==null?this._workbook.getSheets().length:c;this._commandService.syncExecuteCommand(r.InsertSheetCommand.id,{unitId:this.id,index:u,sheet:l}),this._commandService.syncExecuteCommand(r.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[u].getSheetId()});let d=this._workbook.getActiveSheet();if(!d)throw Error(`No active sheet found`);return this._injector.createInstance(W,this,this._workbook,d)}getSheetBySheetId(e){let t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(W,this,this._workbook,t):null}getSheetByName(e){let t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(W,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(r.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e==`string`?e:e.getSheetId()}),typeof e==`string`?this.getSheetBySheetId(e):e}insertSheet(e,n){var i,a,o;let s=(0,t.mergeWorksheetSnapshotWithDefault)(t.Tools.deepClone((i=n==null?void 0:n.sheet)==null?{}:i));s.name=this._workbook.uniqueSheetName(e),s.id=n==null||(a=n.sheet)==null?void 0:a.id;let c=(o=n==null?void 0:n.index)==null?this._workbook.getSheets().length:o;this._commandService.syncExecuteCommand(r.InsertSheetCommand.id,{unitId:this.id,index:c,sheet:s}),this._commandService.syncExecuteCommand(r.SetWorksheetActiveOperation.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(W,this,this._workbook,l)}deleteSheet(e){let t=this.id,n=typeof e==`string`?e:e.getSheetId();return this._commandService.syncExecuteCommand(r.RemoveSheetCommand.id,{unitId:t,subUnitId:n})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(t.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(t.RedoCommand.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(0,t.toDisposable)(this._selectionManagerService.selectionMoveEnd$.subscribe(n=>{this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(n!=null&&n.length?e(n.map(e=>e.range)):e([]))}))}setEditable(e){let t=new r.WorkbookEditablePermission(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(),i=n?this._workbook.getSheetBySheetId(n):this._workbook.getActiveSheet(!0);if(!i)throw Error(`No active sheet found`);i.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(W,this,this._workbook,i));let a={unitId:this.getId(),subUnitId:n,selections:[e].map(e=>({range:e.getRange(),primary:(0,r.getPrimaryForRange)(e.getRange(),i),style:null}))};return this._commandService.syncExecuteCommand(r.SetSelectionsOperation.id,a),this}getActiveRange(){let e=this._workbook.getActiveSheet(),t=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);return t?this._injector.createInstance(J,this._workbook,e,t.range):null}getActiveCell(){let e=this._workbook.getActiveSheet(),n=this._selectionManagerService.getCurrentSelections().find(e=>!!e.primary);if(!n)return null;let r={...n.primary,rangeType:t.RANGE_TYPE.NORMAL};return this._injector.createInstance(J,this._workbook,e,r)}deleteActiveSheet(){let e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(r.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(W,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(r.SetWorksheetOrderCommand.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(b)}getWorkbookPermission(){return this._injector.createInstance(Y,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(m).setName(e).setRef(t).build();return n.localSheetId=r.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,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(r.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(r.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(r.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(r.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(r.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new r.RangeThemeStyle(e,t)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}addStyles(e){this._workbook.addStyles(e)}removeStyles(e){this._workbook.removeStyles(e)}};X=f([d(1,(0,t.Inject)(t.Injector)),d(2,(0,t.Inject)(t.IResourceLoaderService)),d(3,(0,t.Inject)(r.SheetsSelectionsService)),d(4,t.IUniverInstanceService),d(5,t.ICommandService),d(6,t.IPermissionService),d(7,t.ILogService),d(8,(0,t.Inject)(t.LocaleService)),d(9,i.IDefinedNamesService)],X);var xe=class extends n.FUniver{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 n=e.get(t.IUniverInstanceService);this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookDisposed,()=>n.unitDisposed$.subscribe(e=>{if(e.type===t.UniverInstanceType.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,()=>n.unitAdded$.subscribe(n=>{if(n.type===t.UniverInstanceType.UNIVER_SHEET){let t=n,r=e.createInstance(X,t),i={unitId:n.getUnitId(),type:n.type,workbook:r,unit:r};this.fireEvent(this.Event.WorkbookCreated,i)}})))}_initialize(e){let n=e.get(t.IUniverInstanceService),i=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetCreate,()=>i.beforeCommandExecuted(e=>{if(e.id===r.InsertSheetCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetActiveOperation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetDelete,()=>i.beforeCommandExecuted(e=>{if(e.id===r.RemoveSheetCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetMove,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetOrderMutation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetNameCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetTabColorMutation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetWorksheetHideMutation.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.SetGridlinesColorCommand.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.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>i.beforeCommandExecuted(e=>{if(e.id===r.ToggleGridlinesCommand.id){var n,i;let r=this.getCommandSheetTarget(e);if(!r)return;let a=(n=(i=e.params)==null?void 0:i.showGridlines)==null?!r.worksheet.hasHiddenGridLines():n,o={...r,enabled:!!a};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,o),o.cancel)throw new t.CanceledError}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetValueChanged,()=>i.onCommandExecuted(e=>{if(r.COMMAND_LISTENER_VALUE_CHANGE.indexOf(e.id)>-1){if(!this.getActiveSheet())return;let t=(0,r.getValueChangedEffectedRange)(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 i={payload:e,effectedRanges:t};this.fireEvent(this.Event.SheetValueChanged,i)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetCreated,()=>i.onCommandExecuted(e=>{if(e.id===r.InsertSheetCommand.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,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetActiveOperation.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,()=>i.onCommandExecuted(e=>{if(e.id===r.RemoveSheetCommand.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,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetOrderMutation.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,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetNameCommand.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,()=>i.onCommandExecuted(e=>{if(e.id===r.SetTabColorMutation.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,()=>i.onCommandExecuted(e=>{if(e.id===r.SetWorksheetHideMutation.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,()=>i.onCommandExecuted(e=>{if(e.id===r.SetGridlinesColorCommand.id||e.id===r.ToggleGridlinesCommand.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,n){let r=this._injector.get(t.IUniverInstanceService).createUnit(t.UniverInstanceType.UNIVER_SHEET,e,n);return this._injector.createInstance(X,r)}createWorkbook(e,t){return this.createUniverSheet(e,t)}getActiveWorkbook(){let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);return e?this._injector.createInstance(X,e):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);return n?this._injector.createInstance(X,n):null}getWorkbook(e){return this.getUniverSheet(e)}getPermission(){return this._injector.createInstance(b)}onUniverSheetCreated(e){return(0,t.toDisposable)(this._univerInstanceService.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{e(this._injector.createInstance(X,t))}))}newDefinedName(){return this._injector.createInstance(m)}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(r.SheetsFreezeSyncController).setEnabled(e)}};n.FUniver.extend(xe);var Z=class extends n.FEnum{get SheetValueChangeType(){return r.SheetValueChangeType}get SheetSkeletonChangeType(){return r.SheetSkeletonChangeType}get SplitDelimiterType(){return r.SplitDelimiterEnum}get UnitRole(){return g}get WorkbookPermissionPoint(){return _}get WorksheetPermissionPoint(){return v}get RangePermissionPoint(){return y}};n.FEnum.extend(Z);var Q=class extends n.FEventName{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`}};n.FEventName.extend(Q);let $=class extends n.FBase{constructor(e){super(),this._injector=e}};$=f([d(0,(0,t.Inject)(t.Injector))],$),Object.defineProperty(e,`FPermission`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(e,`FRange`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(e,`FSelection`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(e,`FSheetHooks`,{enumerable:!0,get:function(){return $}}),e.FSheetsEnumMixin=Z,e.FSheetsEventNameMixin=Q,Object.defineProperty(e,`FWorkbook`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(e,`FWorksheet`,{enumerable:!0,get:function(){return W}})});
|