@univerjs/sheets 0.6.1 → 0.6.2

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.
@@ -1,11 +1,11 @@
1
- import { CustomData, ICellData, IColumnRange, IDisposable, IFreeze, IObjectArrayPrimitiveType, IRange, IRowRange, IStyleData, Nullable, Workbook, Worksheet, BooleanNumber, ICommandService, ILogService, Injector, ObjectMatrix } from '@univerjs/core';
1
+ import { CellValue, CustomData, ICellData, IColumnRange, IDisposable, IFreeze, IObjectArrayPrimitiveType, IRange, IRowRange, IStyleData, Nullable, Workbook, Worksheet, BooleanNumber, ICommandService, ILogService, Injector, ObjectMatrix } from '@univerjs/core';
2
2
  import { FDefinedName } from './f-defined-name';
3
3
  import { FWorkbook } from './f-workbook';
4
4
  import { FBaseInitialable } from '@univerjs/core/facade';
5
5
  import { SheetsSelectionsService } from '@univerjs/sheets';
6
6
  import { FRange } from './f-range';
7
7
  import { FSelection } from './f-selection';
8
- interface IFacadeClearOptions {
8
+ export interface IFacadeClearOptions {
9
9
  contentsOnly?: boolean;
10
10
  formatOnly?: boolean;
11
11
  }
@@ -441,7 +441,7 @@ export declare class FWorksheet extends FBaseInitialable {
441
441
  /**
442
442
  * Scrolling sheet to make specific rows visible.
443
443
  * @param {number} rowIndex - The starting index of the rows
444
- * @param {number} numRow - The number of rows
444
+ * @param {number} numRows - The number of rows
445
445
  * @returns {FWorksheet} This worksheet instance for chaining
446
446
  * @example
447
447
  * ```typescript
@@ -452,7 +452,7 @@ export declare class FWorksheet extends FBaseInitialable {
452
452
  * fWorksheet.showRows(0);
453
453
  * ```
454
454
  */
455
- showRows(rowIndex: number, numRow?: number): FWorksheet;
455
+ showRows(rowIndex: number, numRows?: number): FWorksheet;
456
456
  /**
457
457
  * Sets the row height of the given row in pixels. By default, rows grow to fit cell contents. If you want to force rows to a specified height, use setRowHeightsForced(startRow, numRows, height).
458
458
  * @param {number} rowPosition - The row position to change.
@@ -494,6 +494,24 @@ export declare class FWorksheet extends FBaseInitialable {
494
494
  * ```
495
495
  */
496
496
  setRowHeights(startRow: number, numRows: number, height: number): FWorksheet;
497
+ /**
498
+ * Gets the height in pixels of the given row.
499
+ * @param {number} rowPosition - The position of the row to examine. index starts at 0.
500
+ * @returns {number} The height in pixels of the given row.
501
+ * @example
502
+ * ```typescript
503
+ * const fWorkbook = univerAPI.getActiveWorkbook();
504
+ * const fWorksheet = fWorkbook.getActiveSheet();
505
+ *
506
+ * // Set the value of the cell A1 to 'Hello, Univer!', set the font size to 30 and font weight to bold
507
+ * const fRange = fWorksheet.getRange('A1');
508
+ * fRange.setValue('Hello, Univer!').setFontSize(30).setFontWeight('bold');
509
+ *
510
+ * // Get the height of the first row
511
+ * console.log(fWorksheet.getRowHeight(0));
512
+ * ```
513
+ */
514
+ getRowHeight(rowPosition: number): number;
497
515
  /**
498
516
  * Sets the height of the given rows to auto.
499
517
  * @param {number} startRow - The starting row position to change
@@ -506,6 +524,21 @@ export declare class FWorksheet extends FBaseInitialable {
506
524
  * ```
507
525
  */
508
526
  setRowAutoHeight(startRow: number, numRows: number): FWorksheet;
527
+ /**
528
+ * Sets the height of the given ranges to auto.
529
+ * @param {IRange[]} ranges - The ranges to change
530
+ * @returns {FWorksheet} This worksheet instance for chaining
531
+ * @example
532
+ * ```typescript
533
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
534
+ * const ranges = [
535
+ * { startRow: 1, endRow: 10, startColumn: 0, endColumn: 10 },
536
+ * { startRow: 11, endRow: 20, startColumn: 0, endColumn: 10 },
537
+ * ]
538
+ * fWorksheet.setRangesAutoHeight(ranges);
539
+ * ```
540
+ */
541
+ setRangesAutoHeight(ranges: IRange[]): FWorksheet;
509
542
  /**
510
543
  * Sets the height of the given rows in pixels. By default, rows grow to fit cell contents. When you use setRowHeightsForced, rows are forced to the specified height even if the cell contents are taller than the row height.
511
544
  * @param {number} startRow - The starting row position to change
@@ -699,7 +732,7 @@ export declare class FWorksheet extends FBaseInitialable {
699
732
  /**
700
733
  * Show one or more consecutive columns starting at the given index. Use 0-index for this method
701
734
  * @param {number} columnIndex - The starting index of the columns to unhide
702
- * @param {number} numColumn - The number of columns to unhide
735
+ * @param {number} numColumns - The number of columns to unhide
703
736
  * @returns {FWorksheet} This sheet, for chaining
704
737
  * @example
705
738
  * ```typescript
@@ -710,7 +743,7 @@ export declare class FWorksheet extends FBaseInitialable {
710
743
  * fWorksheet.showColumns(0, 1);
711
744
  * ```
712
745
  */
713
- showColumns(columnIndex: number, numColumn?: number): FWorksheet;
746
+ showColumns(columnIndex: number, numColumns?: number): FWorksheet;
714
747
  /**
715
748
  * Sets the width of the given column in pixels.
716
749
  * @param {number} columnPosition - The position of the given column to set
@@ -738,6 +771,27 @@ export declare class FWorksheet extends FBaseInitialable {
738
771
  * ```
739
772
  */
740
773
  setColumnWidths(startColumn: number, numColumn: number, width: number): FWorksheet;
774
+ /**
775
+ * Gets the width in pixels of the given column.
776
+ * @param {number} columnPosition - The position of the column to examine. index starts at 0.
777
+ * @returns {number} The width of the column in pixels
778
+ * @example
779
+ * ```typescript
780
+ * const fWorkbook = univerAPI.getActiveWorkbook();
781
+ * const fWorksheet = fWorkbook.getActiveSheet();
782
+ *
783
+ * // Set the long text value in cell A1
784
+ * const fRange = fWorksheet.getRange('A1');
785
+ * fRange.setValue('Whenever it is a damp, drizzly November in my soul...');
786
+ *
787
+ * // Set the column A to a width which fits the text
788
+ * fWorksheet.autoResizeColumn(0);
789
+ *
790
+ * // Get the width of the column A
791
+ * console.log(fWorksheet.getColumnWidth(0));
792
+ * ```
793
+ */
794
+ getColumnWidth(columnPosition: number): number;
741
795
  /**
742
796
  * Set custom properties for given columns.
743
797
  * @param {IObjectArrayPrimitiveType<CustomData>} custom - The custom properties to set
@@ -819,6 +873,16 @@ export declare class FWorksheet extends FBaseInitialable {
819
873
  * ```
820
874
  */
821
875
  setActiveRange(range: FRange): FWorksheet;
876
+ /**
877
+ * Returns the active cell in this sheet.
878
+ * @returns {FRange | null} The active cell
879
+ * @example
880
+ * ```typescript
881
+ * const fWorkSheet = univerAPI.getActiveWorkbook().getActiveSheet();
882
+ * console.log(fWorkSheet.getActiveCell().getA1Notation());
883
+ * ```
884
+ */
885
+ getActiveCell(): FRange | null;
822
886
  /**
823
887
  * Sets the active selection region for this sheet.
824
888
  * @param range - The range to set as the active selection
@@ -1330,5 +1394,18 @@ export declare class FWorksheet extends FBaseInitialable {
1330
1394
  * ```
1331
1395
  */
1332
1396
  getColumnCustomMetadata(index: number): CustomData | undefined;
1397
+ /**
1398
+ * Appends a row to the bottom of the current data region in the sheet. If a cell's content begins with =, it's interpreted as a formula.
1399
+ * @param {CellValue[]} rowContents - An array of values for the new row.
1400
+ * @returns {FWorksheet} Returns the current worksheet instance for method chaining.
1401
+ * @example
1402
+ * ```ts
1403
+ * // Appends a new row with 4 columns to the bottom of the current
1404
+ * // data region in the sheet containing the values in the array.
1405
+ * const fWorkbook = univerAPI.getActiveWorkbook();
1406
+ * const fWorkSheet = fWorkbook.getActiveSheet();
1407
+ * fWorkSheet.appendRow([1, 'Hello Univer', true, '=A1']);
1408
+ * ```
1409
+ */
1410
+ appendRow(rowContents: CellValue[]): FWorksheet;
1333
1411
  }
1334
- export {};
@@ -1,60 +1,69 @@
1
1
  import { CellValue, ICellData, IObjectMatrixPrimitiveType, IRange, IRangeWithCoord, Worksheet, HorizontalAlign, VerticalAlign } from '@univerjs/core';
2
+ export type FDefaultAlignment = 'general';
2
3
  export type FHorizontalAlignment = 'left' | 'center' | 'normal';
3
4
  export type FVerticalAlignment = 'top' | 'middle' | 'bottom';
4
5
  /**
5
- *
6
- * @param value
6
+ * Transform the Facade API horizontal alignment to the Univer Core horizontal alignment.
7
+ * @param {FHorizontalAlignment} value - The Facade API horizontal alignment.
8
+ * @returns {HorizontalAlign} The Univer Core horizontal alignment.
7
9
  */
8
10
  export declare function transformFacadeHorizontalAlignment(value: FHorizontalAlignment): HorizontalAlign;
9
11
  /**
10
- *
11
- * @param value
12
+ * Transform the Univer Core horizontal alignment to the Facade API horizontal alignment.
13
+ * @param {HorizontalAlign} value - The Univer Core horizontal alignment.
14
+ * @returns {FHorizontalAlignment} The Facade API horizontal alignment.
12
15
  */
13
- export declare function transformCoreHorizontalAlignment(value: HorizontalAlign): FHorizontalAlignment;
16
+ export declare function transformCoreHorizontalAlignment(value: HorizontalAlign): FHorizontalAlignment | FDefaultAlignment;
14
17
  /**
15
- *
16
- * @param value
18
+ * Transform the Facade API vertical alignment to the Univer Core vertical alignment.
19
+ * @param {FVerticalAlignment} value - The Facade API vertical alignment.
20
+ * @returns {VerticalAlign} The Univer Core vertical alignment.
17
21
  */
18
22
  export declare function transformFacadeVerticalAlignment(value: FVerticalAlignment): VerticalAlign;
19
23
  /**
20
- *
21
- * @param value
24
+ * Transform the Univer Core vertical alignment to the Facade API vertical alignment.
25
+ * @param {VerticalAlign} value - The Univer Core vertical alignment.
26
+ * @returns {FVerticalAlignment} The Facade API vertical alignment.
22
27
  */
23
- export declare function transformCoreVerticalAlignment(value: VerticalAlign): FVerticalAlignment;
28
+ export declare function transformCoreVerticalAlignment(value: VerticalAlign): FVerticalAlignment | FDefaultAlignment;
24
29
  /**
25
30
  * Covert cell value to cell data.
26
- * @param value
27
- * @returns
31
+ * @param {CellValue | ICellData} value - The cell value.
32
+ * @returns {ICellData} The cell data.
28
33
  */
29
34
  export declare function covertCellValue(value: CellValue | ICellData): ICellData;
30
35
  /**
31
36
  * Covert cell value array or matrix to cell data.
32
- * @param value
33
- * @param range
34
- * @returns
37
+ * @param {CellValue[][] | IObjectMatrixPrimitiveType<CellValue> | ICellData[][] | IObjectMatrixPrimitiveType<ICellData>} value - The cell value array or matrix.
38
+ * @param {IRange} range - The range.
39
+ * @returns {IObjectMatrixPrimitiveType<ICellData>} The cell data matrix.
35
40
  */
36
41
  export declare function covertCellValues(value: CellValue[][] | IObjectMatrixPrimitiveType<CellValue> | ICellData[][] | IObjectMatrixPrimitiveType<ICellData>, range: IRange): IObjectMatrixPrimitiveType<ICellData>;
37
42
  /**
38
- *
39
- * @param mergeInfo
40
- * @param range
43
+ * Judge whether the range is merged.
44
+ * @param {IRangeWithCoord} mergeInfo - The merge info.
45
+ * @param {IRange} range - The range.
46
+ * @returns {boolean} Whether the range is merged.
41
47
  */
42
48
  export declare function isCellMerged(mergeInfo: IRangeWithCoord, range: IRange): boolean;
43
49
  /**
44
- *
45
- * @param mergeInfo
46
- * @param range
50
+ * Judge whether the range is single cell.
51
+ * @param {IRangeWithCoord} mergeInfo - The merge info.
52
+ * @param {IRange} range - The range.
53
+ * @returns {boolean} Whether the range is single cell.
47
54
  */
48
55
  export declare function isSingleCell(mergeInfo: IRangeWithCoord, range: IRange): boolean;
49
56
  /**
50
- *
51
- * @param range
52
- * @param worksheet
57
+ * Covert the range to row range.
58
+ * @param {IRange} range - The range.
59
+ * @param {Worksheet} worksheet - The worksheet.
60
+ * @returns {IRange} The row range.
53
61
  */
54
62
  export declare function covertToRowRange(range: IRange, worksheet: Worksheet): IRange;
55
63
  /**
56
- *
57
- * @param range
58
- * @param worksheet
64
+ * Covert the range to column range.
65
+ * @param {IRange} range - The range.
66
+ * @param {Worksheet} worksheet - The worksheet.
67
+ * @returns {IRange} The column range.
59
68
  */
60
69
  export declare function covertToColRange(range: IRange, worksheet: Worksheet): IRange;
@@ -70,7 +70,7 @@ export { RangeProtectionPermissionViewPoint } from './services/permission/permis
70
70
  export { RangeProtectionPermissionManageCollaPoint } from './services/permission/permission-point/range/manage-collaborator';
71
71
  export { RangeProtectionPermissionDeleteProtectionPoint } from './services/permission/permission-point/range/delete-protection';
72
72
  export { baseProtectionActions } from './services/permission/range-permission/util';
73
- export { generateNullCell, generateNullCellValue } from './basics/utils';
73
+ export { generateNullCell, generateNullCellValue, getVisibleRanges, rangeToDiscreteRange } from './basics/utils';
74
74
  export { getSheetCommandTarget, getSheetCommandTargetWorkbook, getSheetMutationTarget } from './commands/commands/utils/target-util';
75
75
  export { alignToMergedCellsBorders, getCellAtRowCol, isSingleCellSelection, setEndForRange } from './commands/commands/utils/selection-utils';
76
76
  export { getSelectionsService } from './commands/utils/selection-command-util';
@@ -88,6 +88,7 @@ export { DeleteWorksheetProtectionCommand } from './commands/commands/delete-wor
88
88
  export { addMergeCellsUtil, AddWorksheetMergeAllCommand, AddWorksheetMergeCommand, AddWorksheetMergeHorizontalCommand, AddWorksheetMergeVerticalCommand, } from './commands/commands/add-worksheet-merge.command';
89
89
  export { SetWorksheetRangeThemeStyleCommand } from './commands/commands/add-worksheet-range-theme.command';
90
90
  export { DeleteWorksheetRangeThemeStyleCommand } from './commands/commands/delete-worksheet-range-theme.command';
91
+ export { AppendRowCommand, type IAppendRowCommandParams } from './commands/commands/append-row.command';
91
92
  export { ClearSelectionAllCommand } from './commands/commands/clear-selection-all.command';
92
93
  export { ClearSelectionContentCommand } from './commands/commands/clear-selection-content.command';
93
94
  export { ClearSelectionFormatCommand } from './commands/commands/clear-selection-format.command';
@@ -183,7 +184,7 @@ export type { ISetWorksheetProtectionParams } from './commands/mutations/set-wor
183
184
  export { SetWorksheetRightToLeftMutation } from './commands/mutations/set-worksheet-right-to-left.mutation';
184
185
  export { type ISetWorksheetRowAutoHeightMutationParams, type ISetWorksheetRowHeightMutationParams, type ISetWorksheetRowIsAutoHeightMutationParams, SetWorksheetRowAutoHeightMutation, SetWorksheetRowAutoHeightMutationFactory, SetWorksheetRowHeightMutation, SetWorksheetRowIsAutoHeightMutation, } from './commands/mutations/set-worksheet-row-height.mutation';
185
186
  export { type IScrollToCellOperationParams, ScrollToCellOperation } from './commands/operations/scroll-to-cell.operation';
186
- export { type ISetSelectionsOperationParams, SetSelectionsOperation } from './commands/operations/selection.operation';
187
+ export { type ISelectRangeCommandParams, type ISetSelectionsOperationParams, SelectRangeCommand, SetSelectionsOperation } from './commands/operations/selection.operation';
187
188
  export { type ISetWorksheetActiveOperationParams, SetWorksheetActiveOperation } from './commands/operations/set-worksheet-active.operation';
188
189
  export { type IToggleCellCheckboxCommandParams, ToggleCellCheckboxCommand } from './commands/commands/toggle-checkbox.command';
189
190
  export { SCOPE_WORKBOOK_VALUE_DEFINED_NAME } from './controllers/defined-name-data.controller';
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(m,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/sheets"),require("@univerjs/engine-formula")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/core/facade","@univerjs/sheets","@univerjs/engine-formula"],s):(m=typeof globalThis<"u"?globalThis:m||self,s(m.UniverSheetsFacade={},m.UniverCore,m.UniverCoreFacade,m.UniverSheets,m.UniverEngineFormula))})(this,function(m,s,S,a,w){"use strict";var te=Object.defineProperty;var ne=(m,s,S)=>s in m?te(m,s,{enumerable:!0,configurable:!0,writable:!0,value:S}):m[s]=S;var v=(m,s,S)=>ne(m,typeof s!="symbol"?s+"":s,S);var W=Object.getOwnPropertyDescriptor,F=(d,i,e,t)=>{for(var n=t>1?void 0:t?W(i,e):i,r=d.length-1,o;r>=0;r--)(o=d[r])&&(n=o(n)||n);return n},_=(d,i)=>(e,t)=>i(e,t,d);function M(d,i,e){const t=e.getDefinedNameMap(d);if(t==null)return i.t("definedName.defaultName")+1;const r=Array.from(Object.values(t)).length+1,o=i.t("definedName.defaultName")+r;if(e.getValueByName(d,o)==null)return o;let h=r+1;for(;;){const c=i.t("definedName.defaultName")+h;if(e.getValueByName(d,c)==null)return c;h++}}class I{constructor(){v(this,"_definedNameParam");this._definedNameParam={id:s.generateRandomId(10),unitId:"",name:"",formulaOrRefString:""}}setName(i){return this._definedNameParam.name=i,this}setFormula(i){return this._definedNameParam.formulaOrRefString=`=${i}`,this}setRef(i){return this._definedNameParam.formulaOrRefString=i,this}setRefByRange(i,e,t,n){return this._definedNameParam.formulaOrRefString=w.serializeRange({startRow:i,endRow:i+(t!=null?t:1)-1,startColumn:e,endColumn:e+(n!=null?n:1)-1}),this}setComment(i){return this._definedNameParam.comment=i,this}setHidden(i){return this._definedNameParam.hidden=i,this}build(){return this._definedNameParam}load(i){return this._definedNameParam=i,this}}let f=class extends S.FBase{constructor(d,i,e,t,n,r,o,h,c,u){super(),this._definedNameParam=d,this._injector=i,this._commandService=e,this._permissionService=t,this._worksheetProtectionRuleModel=n,this._rangeProtectionRuleModel=r,this._worksheetProtectionPointRuleModel=o,this._authzIoService=h,this._localeService=c,this._definedNamesService=u}_apply(){this._definedNameParam.name===""&&(this._definedNameParam.name=M(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(d){this._definedNameParam.name=d,this._apply()}setFormula(d){this._definedNameParam.formulaOrRefString=`=${d}`,this._apply()}setRef(d){this._definedNameParam.formulaOrRefString=d,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(d,i,e,t){this._definedNameParam.formulaOrRefString=w.serializeRange({startRow:d,endRow:d+(e!=null?e:1)-1,startColumn:i,endColumn:i+(t!=null?t:1)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(d){this._definedNameParam.comment=d,this._apply()}setScopeToWorksheet(d){this._definedNameParam.localSheetId=d.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(d){this._definedNameParam.hidden=d,this._apply()}delete(){this._commandService.syncExecuteCommand(a.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){const d=this._injector.createInstance(I);return d.load(this._definedNameParam),d}};f=F([_(1,s.Inject(s.Injector)),_(2,s.ICommandService),_(3,s.IPermissionService),_(4,s.Inject(a.WorksheetProtectionRuleModel)),_(5,s.Inject(a.RangeProtectionRuleModel)),_(6,s.Inject(a.WorksheetProtectionPointModel)),_(7,s.Inject(s.IAuthzIoService)),_(8,s.Inject(s.LocaleService)),_(9,w.IDefinedNamesService)],f);var D=Object.getOwnPropertyDescriptor,x=(d,i,e,t)=>{for(var n=t>1?void 0:t?D(i,e):i,r=d.length-1,o;r>=0;r--)(o=d[r])&&(n=o(n)||n);return n},C=(d,i)=>(e,t)=>i(e,t,d);m.FPermission=class extends S.FBase{constructor(e,t,n,r,o,h,c){super();v(this,"permissionPointsDefinition",a.PermissionPointsDefinitions);v(this,"rangeRuleChangedAfterAuth$");v(this,"sheetRuleChangedAfterAuth$");this._injector=e,this._commandService=t,this._permissionService=n,this._worksheetProtectionRuleModel=r,this._rangeProtectionRuleModel=o,this._worksheetProtectionPointRuleModel=h,this._authzIoService=c,this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$}setWorkbookPermissionPoint(e,t,n){const r=new t(e);this._permissionService.getPermissionPoint(r.id)||this._permissionService.addPermissionPoint(r),this._permissionService.updatePermissionPoint(r.id,n)}setWorkbookEditPermission(e,t){this.setWorkbookPermissionPoint(e,a.WorkbookEditablePermission,t)}async addWorksheetBasePermission(e,t){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length>0)throw new Error("sheet protection cannot intersect with range protection");const r=await this._authzIoService.create({objectType:a.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:"",scope:void 0}});if(this._commandService.syncExecuteCommand(a.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:t,rule:{permissionId:r,unitType:a.UnitObject.Worksheet,unitId:e,subUnitId:t}}))return r}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(a.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:t}),[...a.getAllWorksheetPermissionPoint(),...a.getAllWorksheetPermissionPointByPointPanel()].forEach(n=>{const r=new n(e,t);this._permissionService.updatePermissionPoint(r.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,n,r){const o=this._worksheetProtectionRuleModel.getRule(e,t);let h;if(n===a.WorksheetEditPermission||n===a.WorksheetViewPermission)if(o)h=o.permissionId;else{if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length>0)throw new Error("sheet protection cannot intersect with range protection");h=await this.addWorksheetBasePermission(e,t)}else{const g=this._worksheetProtectionPointRuleModel.getRule(e,t);g?h=g.permissionId:(h=await this._authzIoService.create({objectType:a.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:"",scope:void 0}}),this._commandService.syncExecuteCommand(a.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:h}}))}const u=new n(e,t);return this._permissionService.getPermissionPoint(u.id)||this._permissionService.addPermissionPoint(u),this._permissionService.updatePermissionPoint(u.id,r),h}async addRangeBaseProtection(e,t,n){const r=await this._authzIoService.create({objectType:a.UnitObject.SelectRange,selectRangeObject:{collaborators:[],unitID:e,name:"",scope:void 0}}),o=`ruleId_${s.generateRandomId(6)}`;if(this._worksheetProtectionRuleModel.getRule(e,t))throw new Error("sheet protection cannot intersect with range protection");if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).some(g=>g.ranges.some(P=>n.some(E=>s.Rectangle.intersects(E.getRange(),P)))))throw new Error("range protection cannot intersect");if(this._commandService.syncExecuteCommand(a.AddRangeProtectionMutation.id,{unitId:e,subUnitId:t,rules:[{permissionId:r,unitType:a.UnitObject.SelectRange,unitId:e,subUnitId:t,ranges:n.map(g=>g.getRange()),id:o}]}))return{permissionId:r,ruleId:o}}removeRangeProtection(e,t,n){this._commandService.syncExecuteCommand(a.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleIds:n})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...a.getAllWorksheetPermissionPointByPointPanel()].forEach(h=>{const c=new h(e,t);this._permissionService.updatePermissionPoint(c.id,c.value)}))}setRangeProtectionPermissionPoint(e,t,n,r,o){const h=new r(e,t,n);this._permissionService.getPermissionPoint(h.id)||this._permissionService.addPermissionPoint(h),this._permissionService.updatePermissionPoint(h.id,o)}setRangeProtectionRanges(e,t,n,r){const o=this._rangeProtectionRuleModel.getRule(e,t,n);if(o){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).filter(u=>u.id!==n).some(u=>u.ranges.some(l=>r.some(g=>s.Rectangle.intersects(g.getRange(),l)))))throw new Error("range protection cannot intersect");this._commandService.syncExecuteCommand(a.SetRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleId:n,rule:{...o,ranges:r.map(u=>u.getRange())}})}}},m.FPermission=x([C(0,s.Inject(s.Injector)),C(1,s.ICommandService),C(2,s.IPermissionService),C(3,s.Inject(a.WorksheetProtectionRuleModel)),C(4,s.Inject(a.RangeProtectionRuleModel)),C(5,s.Inject(a.WorksheetProtectionPointModel)),C(6,s.Inject(s.IAuthzIoService))],m.FPermission);function B(d){switch(d){case"left":return s.HorizontalAlign.LEFT;case"center":return s.HorizontalAlign.CENTER;case"normal":return s.HorizontalAlign.RIGHT;default:throw new Error(`Invalid horizontal alignment: ${d}`)}}function j(d){switch(d){case s.HorizontalAlign.LEFT:return"left";case s.HorizontalAlign.CENTER:return"center";case s.HorizontalAlign.RIGHT:return"normal";default:throw new Error(`Invalid horizontal alignment: ${d}`)}}function O(d){switch(d){case"top":return s.VerticalAlign.TOP;case"middle":return s.VerticalAlign.MIDDLE;case"bottom":return s.VerticalAlign.BOTTOM;default:throw new Error(`Invalid vertical alignment: ${d}`)}}function V(d){switch(d){case s.VerticalAlign.TOP:return"top";case s.VerticalAlign.MIDDLE:return"middle";case s.VerticalAlign.BOTTOM:return"bottom";default:throw new Error(`Invalid vertical alignment: ${d}`)}}function R(d){return s.isFormulaString(d)?{f:d,v:null,p:null}:s.isCellV(d)?{v:d,p:null,f:null}:(s.isICellData(d),d)}function N(d,i){const e=new s.ObjectMatrix,{startRow:t,startColumn:n,endRow:r,endColumn:o}=i;if(s.Tools.isArray(d))for(let h=0;h<=r-t;h++)for(let c=0;c<=o-n;c++)e.setValue(h+t,c+n,R(d[h][c]));else new s.ObjectMatrix(d).forValue((c,u,l)=>{e.setValue(c,u,R(l))});return e.getMatrix()}function y(d,i){return{startRow:d.startRow,endRow:d.endRow,startColumn:0,endColumn:i.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW}}function p(d,i){return{startRow:0,endRow:i.getRowCount()-1,startColumn:d.startColumn,endColumn:d.endColumn,rangeType:s.RANGE_TYPE.COLUMN}}var H=Object.getOwnPropertyDescriptor,L=(d,i,e,t)=>{for(var n=t>1?void 0:t?H(i,e):i,r=d.length-1,o;r>=0;r--)(o=d[r])&&(n=o(n)||n);return n},U=(d,i)=>(e,t)=>i(e,t,d);m.FRange=class extends S.FBaseInitialable{constructor(i,e,t,n,r,o){super(n),this._workbook=i,this._worksheet=e,this._range=t,this._injector=n,this._commandService=r,this._formulaDataModel=o}getUnitId(){return this._workbook.getUnitId()}getSheetName(){return this._worksheet.getName()}getSheetId(){return this._worksheet.getSheetId()}getRange(){return this._range}getRow(){return this._range.startRow}getColumn(){return this._range.startColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}isMerged(){const{startColumn:i,startRow:e,endColumn:t,endRow:n}=this._range;return this._worksheet.getMergedCellRange(e,i,n,t).some(o=>s.Rectangle.equals(o,this._range))}getCellStyleData(){var t;const i=this.getCellData(),e=this._workbook.getStyles();return i&&e&&(t=e.getStyleByCell(i))!=null?t:null}getCellStyle(){const i=this.getCellStyleData();return i?s.TextStyleValue.create(i):null}getCellStyles(){const i=this.getCellDatas(),e=this._workbook.getStyles();return i.map(t=>t.map(n=>{if(!n)return null;const r=e.getStyleByCell(n);return r?s.TextStyleValue.create(r):null}))}getValue(i){var e,t;return i?this.getValueAndRichTextValue():(t=(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:e.v)!=null?t:null}getValues(i){var h,c;if(i)return this.getValueAndRichTextValues();const{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,o=[];for(let u=e;u<=t;u++){const l=[];for(let g=n;g<=r;g++)l.push((c=(h=this._worksheet.getCell(u,g))==null?void 0:h.v)!=null?c:null);o.push(l)}return o}getCellData(){var i;return(i=this._worksheet.getCell(this._range.startRow,this._range.startColumn))!=null?i:null}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){const{startRow:i,endRow:e,startColumn:t,endColumn:n}=this._range,r=[];for(let o=i;o<=e;o++){const h=[];for(let c=t;c<=n;c++)h.push(this._worksheet.getCellRaw(o,c));r.push(h)}return r}getRichTextValue(){const i=this.getCellData();return i!=null&&i.p?new s.RichTextValue(i.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(t=>t!=null&&t.p?new s.RichTextValue(t.p):null))}getValueAndRichTextValue(){const i=this.getCellData();return i!=null&&i.p?new s.RichTextValue(i.p):i==null?void 0:i.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(t=>t!=null&&t.p?new s.RichTextValue(t.p):t==null?void 0:t.v))}getFormulas(){const i=[],{startRow:e,endRow:t,startColumn:n,endColumn:r}=this._range,o=this._worksheet.getSheetId(),h=this._workbook.getUnitId();for(let c=e;c<=t;c++){const u=[];for(let l=n;l<=r;l++){const g=this._formulaDataModel.getFormulaStringByCell(c,l,o,h);u.push(g||"")}i.push(u)}return i}getWrap(){return this._worksheet.getRange(this._range).getWrap()===s.BooleanNumber.TRUE}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){return j(this._worksheet.getRange(this._range).getHorizontalAlignment())}getVerticalAlignment(){return V(this._worksheet.getRange(this._range).getVerticalAlignment())}setCustomMetaData(i){return this.setValue({custom:i})}setCustomMetaDatas(i){return this.setValues(i.map(e=>e.map(t=>({custom:t}))))}getCustomMetaData(){var e;const i=this.getCellData();return(e=i==null?void 0:i.custom)!=null?e:null}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(t=>{var n;return(n=t==null?void 0:t.custom)!=null?n:null}))}setBorder(i,e,t){return this._commandService.syncExecuteCommand(a.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:i,style:e,color:t}}),this}setBackgroundColor(i){return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:i}}}),this}setBackground(i){return this.setBackgroundColor(i),this}setValue(i){const e=R(i);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValueForCell(i){const e=R(i);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:e}),this}setRichTextValueForCell(i){const e=i instanceof s.RichTextValue?i.getData():i,t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:{p:e}};return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,t),this}setRichTextValues(i){const e=i.map(r=>r.map(o=>o&&{p:o instanceof s.RichTextValue?o.getData():o})),t=N(e,this._range),n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t};return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,n),this}setWrap(i){return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:i?s.WrapStrategy.WRAP:s.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(i){return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:i}),this}setVerticalAlignment(i){return this._commandService.syncExecuteCommand(a.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:O(i)}),this}setHorizontalAlignment(i){return this._commandService.syncExecuteCommand(a.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:B(i)}),this}setValues(i){const e=N(i,this._range);return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setFontWeight(i){let e;if(i==="bold")e=s.BooleanNumber.TRUE;else if(i==="normal")e=s.BooleanNumber.FALSE;else if(i===null)e=null;else throw new Error("Invalid fontWeight");const t={type:"bl",value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}setFontStyle(i){let e;if(i==="italic")e=s.BooleanNumber.TRUE;else if(i==="normal")e=s.BooleanNumber.FALSE;else if(i===null)e=null;else throw new Error("Invalid fontStyle");const t={type:"it",value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}setFontLine(i){if(i==="underline")this._setFontUnderline({s:s.BooleanNumber.TRUE});else if(i==="line-through")this._setFontStrikethrough({s:s.BooleanNumber.TRUE});else if(i==="none")this._setFontUnderline({s:s.BooleanNumber.FALSE}),this._setFontStrikethrough({s:s.BooleanNumber.FALSE});else if(i===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw new Error("Invalid fontLine");return this}_setFontUnderline(i){const e={type:"ul",value:i},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t)}_setFontStrikethrough(i){const e={type:"st",value:i},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t)}setFontFamily(i){const e={type:"ff",value:i},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t),this}setFontSize(i){const e={type:"fs",value:i},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t),this}setFontColor(i){const t={type:"cl",value:i===null?null:{rgb:i}},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}merge(i=!0){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,e,t,[this._range],i),this}mergeAcross(i=!0){const e=a.getAddMergeMutationRangeByType([this._range],s.Dimension.ROWS),t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,t,n,e,i),this}mergeVertically(i=!0){const e=a.getAddMergeMutationRangeByType([this._range],s.Dimension.COLUMNS),t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,t,n,e,i),this}isPartOfMerge(){const{startRow:i,startColumn:e,endRow:t,endColumn:n}=this._range;return this._worksheet.getMergedCellRange(i,e,t,n).length>0}breakApart(){return this._commandService.syncExecuteCommand(a.RemoveWorksheetMergeCommand.id,{ranges:[this._range]}),this}forEach(i){const{startColumn:e,startRow:t,endColumn:n,endRow:r}=this._range;this._worksheet.getMatrixWithMergedCells(t,e,r,n).forValue((o,h,c)=>{i(o,h,c)})}getA1Notation(i){return i?w.serializeRangeWithSheet(this._worksheet.getName(),this._range):w.serializeRange(this._range)}activate(){return this._injector.createInstance(m.FWorkbook,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){const i=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(i&&s.Rectangle.equals(i,this._range)||!i&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn)return this.activate();throw new Error("The range is not a single cell")}splitTextToColumns(i,e,t){this._commandService.syncExecuteCommand(a.SplitTextToColumnsCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:e,customDelimiter:t,treatMultipleDelimitersAsOne:i})}useThemeStyle(i){if(i==null){const e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(a.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:i})}removeThemeStyle(i){this._commandService.syncExecuteCommand(a.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:i})}getUsedThemeStyle(){return this._injector.get(a.SheetRangeThemeService).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}},m.FRange=L([U(3,s.Inject(s.Injector)),U(4,s.ICommandService),U(5,s.Inject(w.FormulaDataModel))],m.FRange);var z=Object.getOwnPropertyDescriptor,G=(d,i,e,t)=>{for(var n=t>1?void 0:t?z(i,e):i,r=d.length-1,o;r>=0;r--)(o=d[r])&&(n=o(n)||n);return n},$=(d,i)=>(e,t)=>i(e,t,d);m.FSelection=class{constructor(i,e,t,n){this._workbook=i,this._worksheet=e,this._selections=t,this._injector=n}getActiveRange(){const i=this._selections.find(e=>!!e.primary);return i?this._injector.createInstance(m.FRange,this._workbook,this._worksheet,i.range):null}getActiveRangeList(){return this._selections.map(i=>this._injector.createInstance(m.FRange,this._workbook,this._worksheet,i.range))}getCurrentCell(){const i=this._selections.find(e=>!!e.primary);return i?i.primary:null}getActiveSheet(){const i=this._injector.createInstance(m.FWorkbook,this._workbook);return this._injector.createInstance(m.FWorksheet,i,this._workbook,this._worksheet)}updatePrimaryCell(i){const e=this._injector.get(s.ICommandService);let t=[],n=!1;for(const{range:o,style:h}of this._selections)s.Rectangle.contains(o,i.getRange())?(t.push({range:o,primary:a.getPrimaryForRange(i.getRange(),this._worksheet),style:h}),n=!0):t.push({range:o,primary:null,style:h});n||(t=[{range:i.getRange(),primary:a.getPrimaryForRange(i.getRange(),this._worksheet)}]);const r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:t};return e.syncExecuteCommand(a.SetSelectionsOperation.id,r),new m.FSelection(this._workbook,this._worksheet,t,this._injector)}getNextDataRange(i){if(!this._selections.find(n=>!!n.primary))return null;const t=a.getNextPrimaryCell(this._selections.concat(),i,this._worksheet);return t?this._injector.createInstance(m.FRange,this._workbook,this._worksheet,t):null}},m.FSelection=G([$(3,s.Inject(s.Injector))],m.FSelection);var Y=Object.getOwnPropertyDescriptor,q=(d,i,e,t)=>{for(var n=t>1?void 0:t?Y(i,e):i,r=d.length-1,o;r>=0;r--)(o=d[r])&&(n=o(n)||n);return n},b=(d,i)=>(e,t)=>i(e,t,d);m.FWorksheet=class extends S.FBaseInitialable{constructor(e,t,n,r,o,h,c){super(r);v(this,"setActiveSelection",this.setActiveRange);this._fWorkbook=e,this._workbook=t,this._worksheet=n,this._injector=r,this._selectionManagerService=o,this._logService=h,this._commandService=c}getSheet(){return this._worksheet}getInject(){return this._injector}getWorkbook(){return this._workbook}getSheetId(){return this._worksheet.getSheetId()}getSheetName(){return this._worksheet.getName()}getSelection(){const e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(m.FSelection,this._workbook,this._worksheet,e):null}getDefaultStyle(){return this._worksheet.getDefaultCellStyle()}getRowDefaultStyle(e,t=!1){return this._worksheet.getRowStyle(e,t)}getColumnDefaultStyle(e,t=!1){return this._worksheet.getColumnStyle(e,t)}setDefaultStyle(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(a.SetWorksheetDefaultStyleMutation.id,{unitId:t,subUnitId:n,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o={unitId:n,subUnitId:r,columnData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(a.SetColDataCommand.id,o),this}setRowDefaultStyle(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o={unitId:n,subUnitId:r,rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(a.SetRowDataCommand.id,o),this}getRange(e,t,n,r){let o,h;if(typeof e=="object")o=e,h=this._worksheet;else if(typeof e=="string"){const{range:c,sheetName:u}=w.deserializeRangeWithSheet(e),l=u?this._workbook.getSheetBySheetName(u):this._worksheet;if(!l)throw new Error("Range not found");h=l,o={...c,unitId:this._workbook.getUnitId(),sheetId:h.getSheetId(),rangeType:s.RANGE_TYPE.NORMAL,startRow:c.rangeType===s.RANGE_TYPE.COLUMN?0:c.startRow,endRow:c.rangeType===s.RANGE_TYPE.COLUMN?h.getMaxRows()-1:c.endRow,startColumn:c.rangeType===s.RANGE_TYPE.ROW?0:c.startColumn,endColumn:c.rangeType===s.RANGE_TYPE.ROW?h.getMaxColumns()-1:c.endColumn}}else if(typeof e=="number"&&t!==void 0)h=this._worksheet,o={startRow:e,endRow:e+(n!=null?n:1)-1,startColumn:t,endColumn:t+(r!=null?r:1)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw new Error("Invalid range specification");return this._injector.createInstance(m.FRange,this._workbook,h,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,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=s.Direction.DOWN,h=e+1,c=e+t,u=0,l=this._worksheet.getColumnCount()-1,g=a.copyRangeStyles(this._worksheet,h,c,u,l,!0,e);return this._commandService.syncExecuteCommand(a.InsertRowByRangeCommand.id,{unitId:n,subUnitId:r,direction:o,range:{startRow:h,endRow:c,startColumn:u,endColumn:l},cellValue:g}),this}insertRowsBefore(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=s.Direction.UP,h=e,c=e+t-1,u=0,l=this._worksheet.getColumnCount()-1,g=a.copyRangeStyles(this._worksheet,h,c,u,l,!0,e-1);return this._commandService.syncExecuteCommand(a.InsertRowByRangeCommand.id,{unitId:n,subUnitId:r,direction:o,range:{startRow:h,endRow:c,startColumn:u,endColumn:l},cellValue:g}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,t){const n={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(a.RemoveRowByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveRows(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=y(e.getRange(),this._worksheet),h=o,c={startRow:t,endRow:t,startColumn:o.startColumn,endColumn:o.endColumn};return this._commandService.syncExecuteCommand(a.MoveRowsCommand.id,{unitId:n,subUnitId:r,range:o,fromRange:h,toRange:c}),this}hideRow(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=y(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetRowHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[r]}),this}hideRows(e,t=1){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(a.SetRowHiddenCommand.id,{unitId:n,subUnitId:r,ranges:[o]}),this}unhideRow(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=y(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetSpecificRowsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[r]}),this}showRows(e,t=1){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(a.SetSpecificRowsVisibleCommand.id,{unitId:n,subUnitId:r,ranges:[o]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(e,t=s.BooleanNumber.TRUE){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:o[0],value:s.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightMutation.id,{unitId:n,subUnitId:r,ranges:o,autoHeightInfo:t}),this}setRowHeights(e,t,n){var l;const r=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),h=this._worksheet.getRowManager(),c=[],u=[];for(let g=e;g<e+t;g++){const P=((l=h.getRow(g))==null?void 0:l.ah)||this._worksheet.getConfig().defaultRowHeight,E={startRow:g,endRow:g,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};n<=P?c.push(E):u.push(E)}return u.length>0&&this._commandService.syncExecuteCommand(a.SetRowHeightCommand.id,{unitId:r,subUnitId:o,ranges:u,value:n}),c.length>0&&this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:r,subUnitId:o,ranges:c}),this}setRowAutoHeight(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:r,ranges:o}),this}setRowHeightsForced(e,t,n){const r=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),h=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetRowHeightCommand.id,{unitId:r,subUnitId:o,ranges:h,value:n}),this}setRowCustom(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r={};for(const[h,c]of Object.entries(e))r[Number(h)]={custom:c};const o={unitId:t,subUnitId:n,rowData:r};return this._commandService.syncExecuteCommand(a.SetRowDataCommand.id,o),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,t=1){return this.insertColumnsBefore(e,t)}insertColumnsAfter(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=s.Direction.RIGHT,h=0,c=this._worksheet.getRowCount()-1,u=e+1,l=e+t,g=a.copyRangeStyles(this._worksheet,h,c,u,l,!1,e);return this._commandService.syncExecuteCommand(a.InsertColByRangeCommand.id,{unitId:n,subUnitId:r,direction:o,range:{startRow:h,endRow:c,startColumn:u,endColumn:l},cellValue:g}),this}insertColumnsBefore(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=s.Direction.LEFT,h=0,c=this._worksheet.getRowCount()-1,u=e,l=e+t-1,g=a.copyRangeStyles(this._worksheet,h,c,u,l,!1,e-1);return this._commandService.syncExecuteCommand(a.InsertColByRangeCommand.id,{unitId:n,subUnitId:r,direction:o,range:{startRow:h,endRow:c,startColumn:u,endColumn:l},cellValue:g}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,t){const n={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1};return this._commandService.syncExecuteCommand(a.RemoveColByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveColumns(e,t){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o=p(e.getRange(),this._worksheet),h=o,c={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(a.MoveColsCommand.id,{unitId:n,subUnitId:r,range:o,fromRange:h,toRange:c}),this}hideColumn(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=p(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetColHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[r]}),this}hideColumns(e,t=1){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:s.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(a.SetColHiddenCommand.id,{unitId:n,subUnitId:r,ranges:[o]}),this}unhideColumn(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=p(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetSpecificColsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[r]}),this}showColumns(e,t=1){const n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:s.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(a.SetSpecificColsVisibleCommand.id,{unitId:n,subUnitId:r,ranges:[o]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,n){const r=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),h=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(a.SetColWidthCommand.id,{unitId:r,subUnitId:o,ranges:h,value:n}),this}setColumnCustom(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r={};for(const[h,c]of Object.entries(e))r[Number(h)]={custom:c};const o={unitId:t,subUnitId:n,columnData:r};return this._commandService.syncExecuteCommand(a.SetColDataCommand.id,o),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(m.FRange,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(t=>this._injector.createInstance(m.FRange,this._workbook,this._worksheet,t))}getCellMergeData(e,t){const r=this._worksheet.getMergedCell(e,t);if(r)return this._injector.createInstance(m.FRange,this._workbook,this._worksheet,r)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){const{unitId:t,sheetId:n}=e.getRange();if(t!==this._workbook.getUnitId()||n!==this._worksheet.getSheetId())throw new Error("Specified range must be part of the sheet.");return this._fWorkbook.setActiveRange(e),this}setFreeze(e){return this._logService.warn("setFreeze is deprecated, use setFrozenRows and setFrozenColumns instead"),this._commandService.syncExecuteCommand(a.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(a.CancelFrozenCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){const t=this.getFreeze();if(arguments.length===1){const n=e[0];this.setFreeze({...t,startColumn:n>0?n:-1,xSplit:n})}else if(arguments.length===2){let[n=0,r=0]=e;n>r&&([n,r]=[r,n]),this._commandService.syncExecuteCommand(a.SetFrozenCommand.id,{startColumn:r+1,xSplit:r-n+1,startRow:t.startRow,ySplit:t.ySplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}setFrozenRows(...e){const t=this.getFreeze();if(arguments.length===1){const n=e[0];this.setFreeze({...t,startRow:n>0?n:-1,ySplit:n})}else if(arguments.length===2){let[n=0,r=0]=e;n>r&&([n,r]=[r,n]),this._commandService.syncExecuteCommand(a.SetFrozenCommand.id,{startRow:r+1,ySplit:r-n+1,startColumn:t.startColumn,xSplit:t.xSplit,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()})}return this}getFrozenColumns(){const e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){const e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){const e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){const e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===s.BooleanNumber.FALSE}setHiddenGridlines(e){return this._commandService.syncExecuteCommand(a.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(a.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(a.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(s.ICommandService).onCommandExecuted(n=>{if(n.id===a.SetRangeValuesMutation.id){const r=n.params;r.unitId===this._workbook.getUnitId()&&r.subUnitId===this._worksheet.getSheetId()&&r.cellValue&&e(new s.ObjectMatrix(r.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(s.ICommandService).beforeCommandExecuted(n=>{if(n.id===a.SetRangeValuesMutation.id){const r=n.params;r.unitId===this._workbook.getUnitId()&&r.subUnitId===this._worksheet.getSheetId()&&r.cellValue&&e(new s.ObjectMatrix(r.cellValue))}})}hideSheet(){const e=this._injector.get(s.ICommandService);if(this._workbook.getSheets().filter(o=>o.isSheetHidden()!==s.BooleanNumber.TRUE).length<=1)throw new Error("Cannot hide the only visible sheet");return e.syncExecuteCommand(a.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(s.ICommandService).syncExecuteCommand(a.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===s.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(a.SetWorksheetNameCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(e){if(e&&e.contentsOnly&&!e.formatOnly)return this.clearContents();if(e&&e.formatOnly&&!e.contentsOnly)return this.clearFormats();const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=this._injector.get(s.ICommandService),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return r.syncExecuteCommand(a.ClearSelectionAllCommand.id,{unitId:t,subUnitId:n,ranges:[o],options:e}),this}clearContents(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s.ICommandService),r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(a.ClearSelectionContentCommand.id,{unitId:e,subUnitId:t,ranges:[r]}),this}clearFormats(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s.ICommandService),r={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(a.ClearSelectionFormatCommand.id,{unitId:e,subUnitId:t,ranges:[r]}),this}getDataRange(){const e=this.getLastRows(),t=this.getLastColumns();return this.getRange(0,0,e+1,t+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 m.FWorksheet?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){const r=this._injector.createInstance(I).setName(e).setRef(t).build();r.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(r)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(t=>t.getLocalSheetId()===this.getSheetId())}setCustomMetadata(e){return this._worksheet.setCustomMetadata(e),this}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)}},m.FWorksheet=q([b(3,s.Inject(s.Injector)),b(4,s.Inject(a.SheetsSelectionsService)),b(5,s.Inject(s.ILogService)),b(6,s.ICommandService)],m.FWorksheet);var K=Object.getOwnPropertyDescriptor,J=(d,i,e,t)=>{for(var n=t>1?void 0:t?K(i,e):i,r=d.length-1,o;r>=0;r--)(o=d[r])&&(n=o(n)||n);return n},k=(d,i)=>(e,t)=>i(e,t,d);m.FWorkbook=class extends S.FBaseInitialable{constructor(e,t,n,r,o,h,c,u,l,g){super(t);v(this,"id");this._workbook=e,this._injector=t,this._resourceLoaderService=n,this._selectionManagerService=r,this._univerInstanceService=o,this._commandService=h,this._permissionService=c,this._logService=u,this._localeService=l,this._definedNamesService=g,this.id=this._workbook.getUnitId()}getWorkbook(){return this._workbook}getId(){return this.id}getName(){return this._workbook.name}setName(e){this._workbook.setName(e)}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn("use 'save' instead of 'getSnapshot'"),this.save()}getActiveSheet(){const e=this._workbook.getActiveSheet();return this._injector.createInstance(m.FWorksheet,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(m.FWorksheet,this,this._workbook,e))}create(e,t,n){const r=s.mergeWorksheetSnapshotWithDefault({});r.rowCount=t,r.columnCount=n,r.name=e,r.id=e.toLowerCase().replace(/ /g,"-"),this._commandService.syncExecuteCommand(a.InsertSheetCommand.id,{unitId:this.id,index:this._workbook.getSheets().length,sheet:r}),this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId()});const o=this._workbook.getActiveSheet();if(!o)throw new Error("No active sheet found");return this._injector.createInstance(m.FWorksheet,this,this._workbook,o)}getSheetBySheetId(e){const t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(m.FWorksheet,this,this._workbook,t):null}getSheetByName(e){const t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(m.FWorksheet,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e=="string"?e:e.getSheetId()}),typeof e=="string"?this.getSheetBySheetId(e):e}insertSheet(e){e!=null?this._commandService.syncExecuteCommand(a.InsertSheetCommand.id,{sheet:{name:e}}):this._commandService.syncExecuteCommand(a.InsertSheetCommand.id);const t=this.id,n=this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId();this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:t,subUnitId:n});const r=this._workbook.getActiveSheet();if(!r)throw new Error("No active sheet found");return this._injector.createInstance(m.FWorksheet,this,this._workbook,r)}deleteSheet(e){const t=this.id,n=typeof e=="string"?e:e.getSheetId();return this._commandService.syncExecuteCommand(a.RemoveSheetCommand.id,{unitId:t,subUnitId:n})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(s.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(s.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 s.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(t!=null&&t.length?e(t.map(n=>n.range)):e([]))}))}setEditable(e){const t=new a.WorkbookEditablePermission(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(t.id)||this._permissionService.addPermissionPoint(t),this._permissionService.updatePermissionPoint(t.id,e),this}setActiveRange(e){const t=this.getActiveSheet(),n=e.getRange().sheetId||t.getSheetId(),r=n?this._workbook.getSheetBySheetId(n):this._workbook.getActiveSheet(!0);if(!r)throw new Error("No active sheet found");r.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(m.FWorksheet,this,this._workbook,r));const o={unitId:this.getId(),subUnitId:n,selections:[e].map(h=>({range:h.getRange(),primary:a.getPrimaryForRange(h.getRange(),r),style:null}))};return this._commandService.syncExecuteCommand(a.SetSelectionsOperation.id,o),this}getActiveRange(){const e=this._workbook.getActiveSheet(),n=this._selectionManagerService.getCurrentSelections().find(r=>!!r.primary);return n?this._injector.createInstance(m.FRange,this._workbook,e,n.range):null}deleteActiveSheet(){const e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(a.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(m.FWorksheet,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){const e=this.getActiveSheet();return this.duplicateSheet(e)}getNumSheets(){return this._workbook.getSheets().length}getLocale(){return this._localeService.getCurrentLocale()}setLocale(e){this._localeService.setLocale(e)}setSpreadsheetLocale(e){return this._localeService.setLocale(e),this}getUrl(){return location.href}moveSheet(e,t){let n=t;return n<0?n=0:n>this._workbook.getSheets().length-1&&(n=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(a.SetWorksheetOrderCommand.id,{unitId:e.getWorkbook().getUnitId(),order:n,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){const t=this.getActiveSheet();return this.moveSheet(t,e)}getPermission(){return this._injector.createInstance(m.FPermission)}getDefinedName(e){const t=this._definedNamesService.getValueByName(this.id,e);return t?this._injector.createInstance(f,{...t,unitId:this.id}):null}getDefinedNames(){const e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(t=>this._injector.createInstance(f,{...t,unitId:this.id})):[]}insertDefinedName(e,t){const r=this._injector.createInstance(I).setName(e).setRef(t).build();return r.localSheetId=a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this.insertDefinedNameBuilder(r),this}deleteDefinedName(e){const t=this.getDefinedName(e);return t?(t.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(a.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(a.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(a.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new a.RangeThemeStyle(e,t)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}},m.FWorkbook=J([k(1,s.Inject(s.Injector)),k(2,s.Inject(s.IResourceLoaderService)),k(3,s.Inject(a.SheetsSelectionsService)),k(4,s.IUniverInstanceService),k(5,s.ICommandService),k(6,s.IPermissionService),k(7,s.ILogService),k(8,s.Inject(s.LocaleService)),k(9,w.IDefinedNamesService)],m.FWorkbook);class Q extends S.FUniver{getCommandSheetTarget(i){var r;const e=i.params;if(!e)return this.getActiveSheet();const t=e.unitId?this.getUniverSheet(e.unitId):(r=this.getActiveWorkbook)==null?void 0:r.call(this);if(!t)return;const n=t.getSheetBySheetId(e.subUnitId||e.sheetId)||t.getActiveSheet();if(n)return{workbook:t,worksheet:n}}getSheetTarget(i,e){const t=this.getUniverSheet(i);if(!t)return;const n=t.getSheetBySheetId(e);if(n)return{workbook:t,worksheet:n}}_initWorkbookEvent(i){const e=i.get(s.IUniverInstanceService);this.registerEventHandler(this.Event.WorkbookDisposed,()=>e.unitDisposed$.subscribe(t=>{t.type===s.UniverInstanceType.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:t.getUnitId(),unitType:t.type,snapshot:t.getSnapshot()})})),this.registerEventHandler(this.Event.WorkbookCreated,()=>e.unitAdded$.subscribe(t=>{if(t.type===s.UniverInstanceType.UNIVER_SHEET){const n=t,r=i.createInstance(m.FWorkbook,n);this.fireEvent(this.Event.WorkbookCreated,{unitId:t.getUnitId(),type:t.type,workbook:r,unit:r})}}))}_initialize(i){const e=i.get(s.ICommandService);this.registerEventHandler(this.Event.BeforeSheetCreate,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.InsertSheetCommand.id){const r=t.params,{unitId:o,index:h,sheet:c}=r||{},u=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!u)return;const l={workbook:u,index:h,sheet:c};if(this.fireEvent(this.Event.BeforeSheetCreate,l),l.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.SetWorksheetActiveOperation.id){const{subUnitId:r,unitId:o}=t.params,h=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!h||!r)return;const c=h.getSheetBySheetId(r),u=h.getActiveSheet();if(!c||!u)return;const l={workbook:h,activeSheet:c,oldActiveSheet:u};if(this.fireEvent(this.Event.BeforeActiveSheetChange,l),l.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetDelete,()=>e.beforeCommandExecuted(t=>{if(t.id===a.RemoveSheetCommand.id){const n=this.getCommandSheetTarget(t);if(!n)return;const{workbook:r,worksheet:o}=n,h={workbook:r,worksheet:o};if(this.fireEvent(this.Event.BeforeSheetDelete,h),h.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetMove,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetWorksheetOrderMutation.id){const{fromOrder:n,toOrder:r}=t.params,o=this.getCommandSheetTarget(t);if(!o)return;const h={workbook:o.workbook,worksheet:o.worksheet,newIndex:r,oldIndex:n};if(this.fireEvent(this.Event.BeforeSheetMove,h),h.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetWorksheetNameCommand.id){const{name:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;const o={workbook:r.workbook,worksheet:r.worksheet,newName:n,oldName:r.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetTabColorMutation.id){const{color:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;const o={workbook:r.workbook,worksheet:r.worksheet,newColor:n,oldColor:r.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetWorksheetHideMutation.id){const{hidden:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;const o={workbook:r.workbook,worksheet:r.worksheet,hidden:!!n};if(this.fireEvent(this.Event.BeforeSheetHideChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.SetGridlinesColorCommand.id){const r=this.getCommandSheetTarget(t);if(!r)return;const o={...r,color:(n=t.params)==null?void 0:n.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.ToggleGridlinesCommand.id){const r=this.getCommandSheetTarget(t);if(!r)return;const o={...r,enabled:!!((n=t.params)!=null&&n.showGridlines)};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.SheetValueChanged,()=>e.onCommandExecuted(t=>{if(a.COMMAND_LISTENER_VALUE_CHANGE.indexOf(t.id)>-1){if(!this.getActiveSheet())return;const r=a.getValueChangedEffectedRange(t).map(o=>{var h,c;return(c=(h=this.getWorkbook(o.unitId))==null?void 0:h.getSheetBySheetId(o.subUnitId))==null?void 0:c.getRange(o.range)}).filter(Boolean);if(!r.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:t,effectedRanges:r})}})),this.registerEventHandler(this.Event.SheetCreated,()=>e.onCommandExecuted(t=>{var n;if(t.id===a.InsertSheetCommand.id){const r=t.params,{unitId:o}=r||{},h=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!h)return;const c=h.getActiveSheet();if(!c)return;const u={workbook:h,worksheet:c};this.fireEvent(this.Event.SheetCreated,u)}})),this.registerEventHandler(this.Event.ActiveSheetChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetActiveOperation.id){const n=this.getActiveSheet();if(!n)return;const{workbook:r,worksheet:o}=n;this._fireActiveSheetChanged(r,o)}})),this.registerEventHandler(this.Event.SheetDeleted,()=>e.onCommandExecuted(t=>{var n;if(t.id===a.RemoveSheetCommand.id){const{subUnitId:r,unitId:o}=t.params,h=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!h||!r)return;this._fireSheetDeleted(h,r)}})),this.registerEventHandler(this.Event.SheetMoved,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetOrderMutation.id){const{toOrder:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;this._fireSheetMoved(r.workbook,r.worksheet,n)}})),this.registerEventHandler(this.Event.SheetNameChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetNameCommand.id){const{name:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;this._fireSheetNameChanged(r.workbook,r.worksheet,n)}})),this.registerEventHandler(this.Event.SheetTabColorChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetTabColorMutation.id){const{color:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;this._fireSheetTabColorChanged(r.workbook,r.worksheet,n)}})),this.registerEventHandler(this.Event.SheetHideChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetHideMutation.id){const{hidden:n}=t.params,r=this.getCommandSheetTarget(t);if(!r)return;this._fireSheetHideChanged(r.workbook,r.worksheet,!!n)}})),this.registerEventHandler(this.Event.GridlineChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetGridlinesColorCommand.id||t.id===a.ToggleGridlinesCommand.id){const n=this.getCommandSheetTarget(t);if(!n)return;this.fireEvent(this.Event.GridlineChanged,{...n,enabled:!n.worksheet.hasHiddenGridLines(),color:n.worksheet.getGridLinesColor()})}})),this._initWorkbookEvent(i)}createUniverSheet(i,e){const n=this._injector.get(s.IUniverInstanceService).createUnit(s.UniverInstanceType.UNIVER_SHEET,i,e);return this._injector.createInstance(m.FWorkbook,n)}createWorkbook(i,e){return this.createUniverSheet(i,e)}getActiveWorkbook(){const i=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return i?this._injector.createInstance(m.FWorkbook,i):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(i){const e=this._univerInstanceService.getUnit(i,s.UniverInstanceType.UNIVER_SHEET);return e?this._injector.createInstance(m.FWorkbook,e):null}getWorkbook(i){return this.getUniverSheet(i)}getPermission(){return this._injector.createInstance(m.FPermission)}onUniverSheetCreated(i){const e=this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const n=this._injector.createInstance(m.FWorkbook,t);i(n)});return s.toDisposable(e)}newDefinedName(){return this._injector.createInstance(I)}getActiveSheet(){const i=this.getActiveWorkbook();if(!i)return null;const e=i.getActiveSheet();return e?{workbook:i,worksheet:e}:null}_fireActiveSheetChanged(i,e){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:i,activeSheet:e})}_fireSheetDeleted(i,e){this.fireEvent(this.Event.SheetDeleted,{workbook:i,sheetId:e})}_fireSheetMoved(i,e,t){this.fireEvent(this.Event.SheetMoved,{workbook:i,worksheet:e,newIndex:t})}_fireSheetNameChanged(i,e,t){this.fireEvent(this.Event.SheetNameChanged,{workbook:i,worksheet:e,newName:t})}_fireSheetTabColorChanged(i,e,t){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:i,worksheet:e,newColor:t})}_fireSheetHideChanged(i,e,t){this.fireEvent(this.Event.SheetHideChanged,{workbook:i,worksheet:e,hidden:t})}}S.FUniver.extend(Q);class T{get SheetValueChangeType(){return a.SheetValueChangeType}get SheetSkeletonChangeType(){return a.SheetSkeletonChangeType}get SplitDelimiterType(){return a.SplitDelimiterEnum}}S.FEnum.extend(T);class A{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"}}S.FEventName.extend(A);var X=Object.getOwnPropertyDescriptor,Z=(d,i,e,t)=>{for(var n=t>1?void 0:t?X(i,e):i,r=d.length-1,o;r>=0;r--)(o=d[r])&&(n=o(n)||n);return n},ee=(d,i)=>(e,t)=>i(e,t,d);m.FSheetHooks=class extends S.FBase{constructor(i){super(),this._injector=i}},m.FSheetHooks=Z([ee(0,s.Inject(s.Injector))],m.FSheetHooks),m.FSheetEventName=A,m.FSheetsEnum=T,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});
1
+ (function(u,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/sheets"),require("@univerjs/engine-formula")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/core/facade","@univerjs/sheets","@univerjs/engine-formula"],s):(u=typeof globalThis<"u"?globalThis:u||self,s(u.UniverSheetsFacade={},u.UniverCore,u.UniverCoreFacade,u.UniverSheets,u.UniverEngineFormula))})(this,function(u,s,_,a,I){"use strict";var re=Object.defineProperty;var ie=(u,s,_)=>s in u?re(u,s,{enumerable:!0,configurable:!0,writable:!0,value:_}):u[s]=_;var b=(u,s,_)=>ie(u,typeof s!="symbol"?s+"":s,_);var D=Object.getOwnPropertyDescriptor,B=(c,r,e,t)=>{for(var n=t>1?void 0:t?D(r,e):r,i=c.length-1,o;i>=0;i--)(o=c[i])&&(n=o(n)||n);return n},k=(c,r)=>(e,t)=>r(e,t,c);function j(c,r,e){const t=e.getDefinedNameMap(c);if(t==null)return r.t("definedName.defaultName")+1;const i=Array.from(Object.values(t)).length+1,o=r.t("definedName.defaultName")+i;if(e.getValueByName(c,o)==null)return o;let h=i+1;for(;;){const d=r.t("definedName.defaultName")+h;if(e.getValueByName(c,d)==null)return d;h++}}class y{constructor(){b(this,"_definedNameParam");this._definedNameParam={id:s.generateRandomId(10),unitId:"",name:"",formulaOrRefString:""}}setName(r){return this._definedNameParam.name=r,this}setFormula(r){return this._definedNameParam.formulaOrRefString=`=${r}`,this}setRef(r){return this._definedNameParam.formulaOrRefString=r,this}setRefByRange(r,e,t,n){return this._definedNameParam.formulaOrRefString=I.serializeRange({startRow:r,endRow:r+(t!=null?t:1)-1,startColumn:e,endColumn:e+(n!=null?n:1)-1}),this}setComment(r){return this._definedNameParam.comment=r,this}setHidden(r){return this._definedNameParam.hidden=r,this}build(){return this._definedNameParam}load(r){return this._definedNameParam=r,this}}let p=class extends _.FBase{constructor(c,r,e,t,n,i,o,h,d,l){super(),this._definedNameParam=c,this._injector=r,this._commandService=e,this._permissionService=t,this._worksheetProtectionRuleModel=n,this._rangeProtectionRuleModel=i,this._worksheetProtectionPointRuleModel=o,this._authzIoService=h,this._localeService=d,this._definedNamesService=l}_apply(){this._definedNameParam.name===""&&(this._definedNameParam.name=j(this._definedNameParam.unitId,this._localeService,this._definedNamesService)),this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,this._definedNameParam)}getName(){return this._definedNameParam.name}setName(c){this._definedNameParam.name=c,this._apply()}setFormula(c){this._definedNameParam.formulaOrRefString=`=${c}`,this._apply()}setRef(c){this._definedNameParam.formulaOrRefString=c,this._apply()}getFormulaOrRefString(){return this._definedNameParam.formulaOrRefString}setRefByRange(c,r,e,t){this._definedNameParam.formulaOrRefString=I.serializeRange({startRow:c,endRow:c+(e!=null?e:1)-1,startColumn:r,endColumn:r+(t!=null?t:1)-1}),this._apply()}getComment(){return this._definedNameParam.comment}setComment(c){this._definedNameParam.comment=c,this._apply()}setScopeToWorksheet(c){this._definedNameParam.localSheetId=c.getSheetId(),this._apply()}setScopeToWorkbook(){this._definedNameParam.localSheetId=a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this._apply()}setHidden(c){this._definedNameParam.hidden=c,this._apply()}delete(){this._commandService.syncExecuteCommand(a.RemoveDefinedNameCommand.id,this._definedNameParam)}getLocalSheetId(){return this._definedNameParam.localSheetId}isWorkbookScope(){return this._definedNameParam.localSheetId===a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}toBuilder(){const c=this._injector.createInstance(y);return c.load(this._definedNameParam),c}};p=B([k(1,s.Inject(s.Injector)),k(2,s.ICommandService),k(3,s.IPermissionService),k(4,s.Inject(a.WorksheetProtectionRuleModel)),k(5,s.Inject(a.RangeProtectionRuleModel)),k(6,s.Inject(a.WorksheetProtectionPointModel)),k(7,s.Inject(s.IAuthzIoService)),k(8,s.Inject(s.LocaleService)),k(9,I.IDefinedNamesService)],p);var V=Object.getOwnPropertyDescriptor,O=(c,r,e,t)=>{for(var n=t>1?void 0:t?V(r,e):r,i=c.length-1,o;i>=0;i--)(o=c[i])&&(n=o(n)||n);return n},f=(c,r)=>(e,t)=>r(e,t,c);u.FPermission=class extends _.FBase{constructor(e,t,n,i,o,h,d){super();b(this,"permissionPointsDefinition",a.PermissionPointsDefinitions);b(this,"rangeRuleChangedAfterAuth$");b(this,"sheetRuleChangedAfterAuth$");this._injector=e,this._commandService=t,this._permissionService=n,this._worksheetProtectionRuleModel=i,this._rangeProtectionRuleModel=o,this._worksheetProtectionPointRuleModel=h,this._authzIoService=d,this.rangeRuleChangedAfterAuth$=this._rangeProtectionRuleModel.ruleRefresh$,this.sheetRuleChangedAfterAuth$=this._worksheetProtectionRuleModel.ruleRefresh$}setWorkbookPermissionPoint(e,t,n){const i=new t(e);this._permissionService.getPermissionPoint(i.id)||this._permissionService.addPermissionPoint(i),this._permissionService.updatePermissionPoint(i.id,n)}setWorkbookEditPermission(e,t){this.setWorkbookPermissionPoint(e,a.WorkbookEditablePermission,t)}async addWorksheetBasePermission(e,t){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length>0)throw new Error("sheet protection cannot intersect with range protection");const i=await this._authzIoService.create({objectType:a.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:"",scope:void 0}});if(this._commandService.syncExecuteCommand(a.AddWorksheetProtectionMutation.id,{unitId:e,subUnitId:t,rule:{permissionId:i,unitType:a.UnitObject.Worksheet,unitId:e,subUnitId:t}}))return i}removeWorksheetPermission(e,t){this._commandService.syncExecuteCommand(a.DeleteWorksheetProtectionMutation.id,{unitId:e,subUnitId:t}),[...a.getAllWorksheetPermissionPoint(),...a.getAllWorksheetPermissionPointByPointPanel()].forEach(n=>{const i=new n(e,t);this._permissionService.updatePermissionPoint(i.id,!0)}),this._worksheetProtectionPointRuleModel.deleteRule(e,t)}async setWorksheetPermissionPoint(e,t,n,i){const o=this._worksheetProtectionRuleModel.getRule(e,t);let h;if(n===a.WorksheetEditPermission||n===a.WorksheetViewPermission)if(o)h=o.permissionId;else{if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length>0)throw new Error("sheet protection cannot intersect with range protection");h=await this.addWorksheetBasePermission(e,t)}else{const g=this._worksheetProtectionPointRuleModel.getRule(e,t);g?h=g.permissionId:(h=await this._authzIoService.create({objectType:a.UnitObject.Worksheet,worksheetObject:{collaborators:[],unitID:e,strategies:[],name:"",scope:void 0}}),this._commandService.syncExecuteCommand(a.SetWorksheetPermissionPointsMutation.id,{unitId:e,subUnitId:t,rule:{unitId:e,subUnitId:t,permissionId:h}}))}const l=new n(e,t);return this._permissionService.getPermissionPoint(l.id)||this._permissionService.addPermissionPoint(l),this._permissionService.updatePermissionPoint(l.id,i),h}async addRangeBaseProtection(e,t,n){const i=await this._authzIoService.create({objectType:a.UnitObject.SelectRange,selectRangeObject:{collaborators:[],unitID:e,name:"",scope:void 0}}),o=`ruleId_${s.generateRandomId(6)}`;if(this._worksheetProtectionRuleModel.getRule(e,t))throw new Error("sheet protection cannot intersect with range protection");if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).some(g=>g.ranges.some(C=>n.some(S=>s.Rectangle.intersects(S.getRange(),C)))))throw new Error("range protection cannot intersect");if(this._commandService.syncExecuteCommand(a.AddRangeProtectionMutation.id,{unitId:e,subUnitId:t,rules:[{permissionId:i,unitType:a.UnitObject.SelectRange,unitId:e,subUnitId:t,ranges:n.map(g=>g.getRange()),id:o}]}))return{permissionId:i,ruleId:o}}removeRangeProtection(e,t,n){this._commandService.syncExecuteCommand(a.DeleteRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleIds:n})&&this._rangeProtectionRuleModel.getSubunitRuleList(e,t).length===0&&(this._worksheetProtectionPointRuleModel.deleteRule(e,t),[...a.getAllWorksheetPermissionPointByPointPanel()].forEach(h=>{const d=new h(e,t);this._permissionService.updatePermissionPoint(d.id,d.value)}))}setRangeProtectionPermissionPoint(e,t,n,i,o){const h=new i(e,t,n);this._permissionService.getPermissionPoint(h.id)||this._permissionService.addPermissionPoint(h),this._permissionService.updatePermissionPoint(h.id,o)}setRangeProtectionRanges(e,t,n,i){const o=this._rangeProtectionRuleModel.getRule(e,t,n);if(o){if(this._rangeProtectionRuleModel.getSubunitRuleList(e,t).filter(l=>l.id!==n).some(l=>l.ranges.some(m=>i.some(g=>s.Rectangle.intersects(g.getRange(),m)))))throw new Error("range protection cannot intersect");this._commandService.syncExecuteCommand(a.SetRangeProtectionMutation.id,{unitId:e,subUnitId:t,ruleId:n,rule:{...o,ranges:i.map(l=>l.getRange())}})}}},u.FPermission=O([f(0,s.Inject(s.Injector)),f(1,s.ICommandService),f(2,s.IPermissionService),f(3,s.Inject(a.WorksheetProtectionRuleModel)),f(4,s.Inject(a.RangeProtectionRuleModel)),f(5,s.Inject(a.WorksheetProtectionPointModel)),f(6,s.Inject(s.IAuthzIoService))],u.FPermission);function H(c){switch(c){case"left":return s.HorizontalAlign.LEFT;case"center":return s.HorizontalAlign.CENTER;case"normal":return s.HorizontalAlign.RIGHT;default:throw new Error(`Invalid horizontal alignment: ${c}`)}}function T(c){switch(c){case s.HorizontalAlign.LEFT:return"left";case s.HorizontalAlign.CENTER:return"center";case s.HorizontalAlign.RIGHT:return"normal";default:return"general"}}function L(c){switch(c){case"top":return s.VerticalAlign.TOP;case"middle":return s.VerticalAlign.MIDDLE;case"bottom":return s.VerticalAlign.BOTTOM;default:throw new Error(`Invalid vertical alignment: ${c}`)}}function W(c){switch(c){case s.VerticalAlign.TOP:return"top";case s.VerticalAlign.MIDDLE:return"middle";case s.VerticalAlign.BOTTOM:return"bottom";default:return"general"}}function E(c){return s.isFormulaString(c)?{f:c,v:null,p:null}:s.isCellV(c)?{v:c,p:null,f:null}:(s.isICellData(c),c)}function M(c,r){const e=new s.ObjectMatrix,{startRow:t,startColumn:n,endRow:i,endColumn:o}=r;if(s.Tools.isArray(c))for(let h=0;h<=i-t;h++)for(let d=0;d<=o-n;d++)e.setValue(h+t,d+n,E(c[h][d]));else new s.ObjectMatrix(c).forValue((d,l,m)=>{e.setValue(d,l,E(m))});return e.getMatrix()}function P(c,r){return{startRow:c.startRow,endRow:c.endRow,startColumn:0,endColumn:r.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW}}function N(c,r){return{startRow:0,endRow:r.getRowCount()-1,startColumn:c.startColumn,endColumn:c.endColumn,rangeType:s.RANGE_TYPE.COLUMN}}var z=Object.getOwnPropertyDescriptor,G=(c,r,e,t)=>{for(var n=t>1?void 0:t?z(r,e):r,i=c.length-1,o;i>=0;i--)(o=c[i])&&(n=o(n)||n);return n},A=(c,r)=>(e,t)=>r(e,t,c);u.FRange=class extends _.FBaseInitialable{constructor(r,e,t,n,i,o){super(n),this._workbook=r,this._worksheet=e,this._range=t,this._injector=n,this._commandService=i,this._formulaDataModel=o}getUnitId(){return this._workbook.getUnitId()}getSheetName(){return this._worksheet.getName()}getSheetId(){return this._worksheet.getSheetId()}getRange(){return this._range}getRow(){return this._range.startRow}getLastRow(){return this._range.endRow}getColumn(){return this._range.startColumn}getLastColumn(){return this._range.endColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}isMerged(){const{startColumn:r,startRow:e,endColumn:t,endRow:n}=this._range;return this._worksheet.getMergedCellRange(e,r,n,t).some(o=>s.Rectangle.equals(o,this._range))}getCellStyleData(){var t;const r=this.getCellData(),e=this._workbook.getStyles();return r&&e&&(t=e.getStyleByCell(r))!=null?t:null}getCellStyle(){const r=this.getCellStyleData();return r?s.TextStyleValue.create(r):null}getCellStyles(){const r=this.getCellDatas(),e=this._workbook.getStyles();return r.map(t=>t.map(n=>{if(!n)return null;const i=e.getStyleByCell(n);return i?s.TextStyleValue.create(i):null}))}getValue(r){var e,t;return r?this.getValueAndRichTextValue():(t=(e=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:e.v)!=null?t:null}getRawValue(){var e;const r=this._worksheet.getCellMatrix().getValue(this._range.startRow,this._range.startColumn);return r!=null&&r.p&&((e=r.p.body)!=null&&e.dataStream)?r.p.body.dataStream:r!=null&&r.v?r.v:null}getDisplayValue(){var e;const 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:r!=null&&r.v?String(r.v):""}getValues(r){var h,d;if(r)return this.getValueAndRichTextValues();const{startRow:e,endRow:t,startColumn:n,endColumn:i}=this._range,o=[];for(let l=e;l<=t;l++){const m=[];for(let g=n;g<=i;g++)m.push((d=(h=this._worksheet.getCell(l,g))==null?void 0:h.v)!=null?d:null);o.push(m)}return o}getRawValues(){var h;const r=this._worksheet.getCellMatrix(),{startRow:e,endRow:t,startColumn:n,endColumn:i}=this._range,o=[];for(let d=e;d<=t;d++){const l=[];for(let m=n;m<=i;m++){const g=r.getValue(d,m);g!=null&&g.p&&((h=g.p.body)!=null&&h.dataStream)?l.push(g.p.body.dataStream):g!=null&&g.v?l.push(g.v):l.push(null)}o.push(l)}return o}getDisplayValues(){var o;const{startRow:r,endRow:e,startColumn:t,endColumn:n}=this._range,i=[];for(let h=r;h<=e;h++){const d=[];for(let l=t;l<=n;l++){const m=this._worksheet.getCell(h,l);m!=null&&m.p&&((o=m.p.body)!=null&&o.dataStream)?d.push(m.p.body.dataStream):m!=null&&m.v?d.push(String(m.v)):d.push("")}i.push(d)}return i}getCellData(){var r;return(r=this._worksheet.getCell(this._range.startRow,this._range.startColumn))!=null?r:null}getCellDatas(){return this.getCellDataGrid()}getCellDataGrid(){const{startRow:r,endRow:e,startColumn:t,endColumn:n}=this._range,i=[];for(let o=r;o<=e;o++){const h=[];for(let d=t;d<=n;d++)h.push(this._worksheet.getCellRaw(o,d));i.push(h)}return i}getRichTextValue(){const r=this.getCellData();return r!=null&&r.p?new s.RichTextValue(r.p):null}getRichTextValues(){return this.getCellDataGrid().map(e=>e.map(t=>t!=null&&t.p?new s.RichTextValue(t.p):null))}getValueAndRichTextValue(){const r=this.getCellData();return r!=null&&r.p?new s.RichTextValue(r.p):r==null?void 0:r.v}getValueAndRichTextValues(){return this.getCellDatas().map(e=>e.map(t=>t!=null&&t.p?new s.RichTextValue(t.p):t==null?void 0:t.v))}getFormula(){var r;return(r=this._formulaDataModel.getFormulaStringByCell(this._range.startRow,this._range.startColumn,this._worksheet.getSheetId(),this._workbook.getUnitId()))!=null?r:""}getFormulas(){const r=[],{startRow:e,endRow:t,startColumn:n,endColumn:i}=this._range,o=this._worksheet.getSheetId(),h=this._workbook.getUnitId();for(let d=e;d<=t;d++){const l=[];for(let m=n;m<=i;m++){const g=this._formulaDataModel.getFormulaStringByCell(d,m,o,h);l.push(g||"")}r.push(l)}return r}getWrap(){return this._worksheet.getRange(this._range).getWrap()===s.BooleanNumber.TRUE}getWraps(){const r=this.getCellDatas(),e=this._workbook.getStyles();return r.map(t=>t.map(n=>{var i;return((i=e.getStyleByCell(n))==null?void 0:i.tb)===s.WrapStrategy.WRAP}))}getWrapStrategy(){return this._worksheet.getRange(this._range).getWrapStrategy()}getHorizontalAlignment(){const r=this._worksheet.getRange(this._range).getHorizontalAlignment();return T(r)}getHorizontalAlignments(){return this._worksheet.getRange(this._range).getHorizontalAlignments().map(e=>e.map(t=>T(t)))}getVerticalAlignment(){return W(this._worksheet.getRange(this._range).getVerticalAlignment())}getVerticalAlignments(){return this._worksheet.getRange(this._range).getVerticalAlignments().map(e=>e.map(t=>W(t)))}setCustomMetaData(r){return this.setValue({custom:r})}setCustomMetaDatas(r){return this.setValues(r.map(e=>e.map(t=>({custom:t}))))}getCustomMetaData(){var e;const r=this.getCellData();return(e=r==null?void 0:r.custom)!=null?e:null}getCustomMetaDatas(){return this.getCellDataGrid().map(e=>e.map(t=>{var n;return(n=t==null?void 0:t.custom)!=null?n:null}))}setBorder(r,e,t){return this._commandService.syncExecuteCommand(a.SetBorderBasicCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],value:{type:r,style:e,color:t}}),this}getBackground(){var e,t;const r=this.getCellStyle();return(t=(e=r==null?void 0:r.background)==null?void 0:e.rgb)!=null?t:s.DEFAULT_STYLES.bg.rgb}getBackgrounds(){return this.getCellStyles().map(e=>e.map(t=>{var n,i;return(i=(n=t==null?void 0:t.background)==null?void 0:n.rgb)!=null?i:s.DEFAULT_STYLES.bg.rgb}))}setBackgroundColor(r){return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:r}}}),this}setBackground(r){return this.setBackgroundColor(r),this}setTextRotation(r){return this._commandService.syncExecuteCommand(a.SetTextRotationCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:r}),this}setValue(r){const e=E(r);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setValueForCell(r){const e=E(r);if(!e)throw new Error("Invalid value");return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:e}),this}setRichTextValueForCell(r){const e=r instanceof s.RichTextValue?r.getData():r,t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:{startColumn:this._range.startColumn,startRow:this._range.startRow,endColumn:this._range.startColumn,endRow:this._range.startRow},value:{p:e}};return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,t),this}setRichTextValues(r){const e=r.map(i=>i.map(o=>o&&{p:o instanceof s.RichTextValue?o.getData():o})),t=M(e,this._range),n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:t};return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,n),this}setWrap(r){return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:r?s.WrapStrategy.WRAP:s.WrapStrategy.UNSPECIFIED}),this}setWrapStrategy(r){return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:r}),this}setVerticalAlignment(r){return this._commandService.syncExecuteCommand(a.SetVerticalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:L(r)}),this}setHorizontalAlignment(r){return this._commandService.syncExecuteCommand(a.SetHorizontalTextAlignCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:H(r)}),this}setValues(r){const e=M(r,this._range);return this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,value:e}),this}setFontWeight(r){let e;if(r==="bold")e=s.BooleanNumber.TRUE;else if(r==="normal")e=s.BooleanNumber.FALSE;else if(r===null)e=null;else throw new Error("Invalid fontWeight");const t={type:"bl",value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}setFontStyle(r){let e;if(r==="italic")e=s.BooleanNumber.TRUE;else if(r==="normal")e=s.BooleanNumber.FALSE;else if(r===null)e=null;else throw new Error("Invalid fontStyle");const t={type:"it",value:e},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}setFontLine(r){if(r==="underline")this._setFontUnderline({s:s.BooleanNumber.TRUE});else if(r==="line-through")this._setFontStrikethrough({s:s.BooleanNumber.TRUE});else if(r==="none")this._setFontUnderline({s:s.BooleanNumber.FALSE}),this._setFontStrikethrough({s:s.BooleanNumber.FALSE});else if(r===null)this._setFontUnderline(null),this._setFontStrikethrough(null);else throw new Error("Invalid fontLine");return this}_setFontUnderline(r){const e={type:"ul",value:r},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t)}_setFontStrikethrough(r){const e={type:"st",value:r},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t)}setFontFamily(r){const e={type:"ff",value:r},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t),this}setFontSize(r){const e={type:"fs",value:r},t={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:e};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,t),this}setFontColor(r){const t={type:"cl",value:r===null?null:{rgb:r}},n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:t};return this._commandService.syncExecuteCommand(a.SetStyleCommand.id,n),this}merge(r=!0){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,e,t,[this._range],r),this}mergeAcross(r=!0){const e=a.getAddMergeMutationRangeByType([this._range],s.Dimension.ROWS),t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,t,n,e,r),this}mergeVertically(r=!0){const e=a.getAddMergeMutationRangeByType([this._range],s.Dimension.COLUMNS),t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return a.addMergeCellsUtil(this._injector,t,n,e,r),this}isPartOfMerge(){const{startRow:r,startColumn:e,endRow:t,endColumn:n}=this._range;return this._worksheet.getMergedCellRange(r,e,t,n).length>0}breakApart(){return this._commandService.syncExecuteCommand(a.RemoveWorksheetMergeCommand.id,{ranges:[this._range]}),this}forEach(r){const{startColumn:e,startRow:t,endColumn:n,endRow:i}=this._range;this._worksheet.getMatrixWithMergedCells(t,e,i,n).forValue((o,h,d)=>{r(o,h,d)})}getA1Notation(r){return r?I.serializeRangeWithSheet(this._worksheet.getName(),this._range):I.serializeRange(this._range)}activate(){return this._injector.createInstance(u.FWorkbook,this._workbook).setActiveRange(this),this}activateAsCurrentCell(){const r=this._worksheet.getMergedCell(this._range.startRow,this._range.startColumn);if(r&&s.Rectangle.equals(r,this._range)||!r&&this._range.startRow===this._range.endRow&&this._range.startColumn===this._range.endColumn){const n=this._injector.createInstance(u.FWorkbook,this._workbook).getActiveRange();if(!n||n.getUnitId()!==this.getUnitId()||n.getSheetId()!==this.getSheetId())return this.activate();if(s.Rectangle.contains(n.getRange(),this._range)){const i={unitId:this.getUnitId(),subUnitId:this.getSheetId(),selections:[{range:n.getRange(),primary:a.getPrimaryForRange(this.getRange(),this._worksheet),style:null}]};return this._commandService.syncExecuteCommand(a.SetSelectionsOperation.id,i),this}return this.activate()}else throw new Error("The range is not a single cell")}splitTextToColumns(r,e,t){this._commandService.syncExecuteCommand(a.SplitTextToColumnsCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,delimiter:e,customDelimiter:t,treatMultipleDelimitersAsOne:r})}useThemeStyle(r){if(r==null){const e=this.getUsedThemeStyle();e&&this.removeThemeStyle(e)}else this._commandService.syncExecuteCommand(a.SetWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:r})}removeThemeStyle(r){this._commandService.syncExecuteCommand(a.DeleteWorksheetRangeThemeStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,themeName:r})}getUsedThemeStyle(){return this._injector.get(a.SheetRangeThemeService).getAppliedRangeThemeStyle({unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})}clear(r){return r&&r.contentsOnly&&!r.formatOnly?this.clearContent():r&&r.formatOnly&&!r.contentsOnly?this.clearFormat():(this._commandService.syncExecuteCommand(a.ClearSelectionAllCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range],options:r}),this)}clearContent(){return this._commandService.syncExecuteCommand(a.ClearSelectionContentCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}clearFormat(){return this._commandService.syncExecuteCommand(a.ClearSelectionFormatCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[this._range]}),this}insertCells(r){r===s.Dimension.ROWS?this._commandService.executeCommand(a.InsertRangeMoveDownCommand.id,{range:this._range}):this._commandService.executeCommand(a.InsertRangeMoveRightCommand.id,{range:this._range})}deleteCells(r){r===s.Dimension.ROWS?this._commandService.executeCommand(a.DeleteRangeMoveUpCommand.id,{range:this._range}):this._commandService.executeCommand(a.DeleteRangeMoveLeftCommand.id,{range:this._range})}getDataRegion(r){const{startRow:e,startColumn:t,endRow:n,endColumn:i}=this._range,o=this._worksheet.getMaxRows(),h=this._worksheet.getMaxColumns(),d=this._worksheet.getCellMatrix();let l=e,m=t,g=n,C=i;if(r!==s.Dimension.COLUMNS){let S=!1,R=!1;for(let v=t;v<=i&&(e>0&&!s.isNullCell(d.getValue(e-1,v))&&(S=!0),n<o-1&&!s.isNullCell(d.getValue(n+1,v))&&(R=!0),!(S&&R));v++);S&&(l=e-1),R&&(g=n+1)}if(r!==s.Dimension.ROWS){let S=!1,R=!1;for(let v=e;v<=n&&(t>0&&!s.isNullCell(d.getValue(v,t-1))&&(S=!0),i<h-1&&!s.isNullCell(d.getValue(v,i+1))&&(R=!0),!(S&&R));v++);S&&(m=t-1),R&&(C=i+1)}return this._injector.createInstance(u.FRange,this._workbook,this._worksheet,{startRow:l,startColumn:m,endRow:g,endColumn:C})}isBlank(){const r=this._worksheet.getCellMatrix(),{startRow:e,startColumn:t,endRow:n,endColumn:i}=this._range;let o=!0;for(let h=e;h<=n;h++){for(let d=t;d<=i;d++)if(!s.isNullCell(r.getValue(h,d))){o=!1;break}if(!o)break}return o}offset(r,e,t,n){const{startRow:i,startColumn:o,endRow:h,endColumn:d}=this._range,l=i+r,m=o+e,g=t?l+t-1:h+r,C=n?m+n-1:d+e;if(l<0||m<0||g<0||C<0)throw new Error("The row or column index is out of range");return this._injector.createInstance(u.FRange,this._workbook,this._worksheet,{startRow:l,startColumn:m,endRow:g,endColumn:C})}setFormula(r){return this.setValue({f:r})}setFormulas(r){return this.setValues(r.map(e=>e.map(t=>({f:t}))))}},u.FRange=G([A(3,s.Inject(s.Injector)),A(4,s.ICommandService),A(5,s.Inject(I.FormulaDataModel))],u.FRange);var $=Object.getOwnPropertyDescriptor,Y=(c,r,e,t)=>{for(var n=t>1?void 0:t?$(r,e):r,i=c.length-1,o;i>=0;i--)(o=c[i])&&(n=o(n)||n);return n},q=(c,r)=>(e,t)=>r(e,t,c);u.FSelection=class{constructor(r,e,t,n){this._workbook=r,this._worksheet=e,this._selections=t,this._injector=n}getActiveRange(){const r=this._selections.find(e=>!!e.primary);return r?this._injector.createInstance(u.FRange,this._workbook,this._worksheet,r.range):null}getActiveRangeList(){return this._selections.map(r=>this._injector.createInstance(u.FRange,this._workbook,this._worksheet,r.range))}getCurrentCell(){const r=this._selections.find(e=>!!e.primary);return r?r.primary:null}getActiveSheet(){const r=this._injector.createInstance(u.FWorkbook,this._workbook);return this._injector.createInstance(u.FWorksheet,r,this._workbook,this._worksheet)}updatePrimaryCell(r){const e=this._injector.get(s.ICommandService);let t=[],n=!1;for(const{range:o,style:h}of this._selections)s.Rectangle.contains(o,r.getRange())?(t.push({range:o,primary:a.getPrimaryForRange(r.getRange(),this._worksheet),style:h}),n=!0):t.push({range:o,primary:null,style:h});n||(t=[{range:r.getRange(),primary:a.getPrimaryForRange(r.getRange(),this._worksheet)}]);const i={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),selections:t};return e.syncExecuteCommand(a.SetSelectionsOperation.id,i),new u.FSelection(this._workbook,this._worksheet,t,this._injector)}getNextDataRange(r){if(!this._selections.find(n=>!!n.primary))return null;const t=a.getNextPrimaryCell(this._selections.concat(),r,this._worksheet);return t?this._injector.createInstance(u.FRange,this._workbook,this._worksheet,t):null}},u.FSelection=Y([q(3,s.Inject(s.Injector))],u.FSelection);var K=Object.getOwnPropertyDescriptor,J=(c,r,e,t)=>{for(var n=t>1?void 0:t?K(r,e):r,i=c.length-1,o;i>=0;i--)(o=c[i])&&(n=o(n)||n);return n},U=(c,r)=>(e,t)=>r(e,t,c);u.FWorksheet=class extends _.FBaseInitialable{constructor(e,t,n,i,o,h,d){super(i);b(this,"setActiveSelection",this.setActiveRange);this._fWorkbook=e,this._workbook=t,this._worksheet=n,this._injector=i,this._selectionManagerService=o,this._logService=h,this._commandService=d}getSheet(){return this._worksheet}getInject(){return this._injector}getWorkbook(){return this._workbook}getSheetId(){return this._worksheet.getSheetId()}getSheetName(){return this._worksheet.getName()}getSelection(){const e=this._selectionManagerService.getCurrentSelections();return e?this._injector.createInstance(u.FSelection,this._workbook,this._worksheet,e):null}getDefaultStyle(){return this._worksheet.getDefaultCellStyle()}getRowDefaultStyle(e,t=!1){return this._worksheet.getRowStyle(e,t)}getColumnDefaultStyle(e,t=!1){return this._worksheet.getColumnStyle(e,t)}setDefaultStyle(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(a.SetWorksheetDefaultStyleMutation.id,{unitId:t,subUnitId:n,defaultStyle:e}),this._worksheet.setDefaultCellStyle(e),this}setColumnDefaultStyle(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={unitId:n,subUnitId:i,columnData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(a.SetColDataCommand.id,o),this}setRowDefaultStyle(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={unitId:n,subUnitId:i,rowData:{[e]:{s:t}}};return this._commandService.syncExecuteCommand(a.SetRowDataCommand.id,o),this}getRange(e,t,n,i){let o,h;if(typeof e=="object")o=e,h=this._worksheet;else if(typeof e=="string"){const{range:d,sheetName:l}=I.deserializeRangeWithSheet(e),m=l?this._workbook.getSheetBySheetName(l):this._worksheet;if(!m)throw new Error("Range not found");h=m,o={...d,unitId:this._workbook.getUnitId(),sheetId:h.getSheetId(),rangeType:s.RANGE_TYPE.NORMAL,startRow:d.rangeType===s.RANGE_TYPE.COLUMN?0:d.startRow,endRow:d.rangeType===s.RANGE_TYPE.COLUMN?h.getMaxRows()-1:d.endRow,startColumn:d.rangeType===s.RANGE_TYPE.ROW?0:d.startColumn,endColumn:d.rangeType===s.RANGE_TYPE.ROW?h.getMaxColumns()-1:d.endColumn}}else if(typeof e=="number"&&t!==void 0)h=this._worksheet,o={startRow:e,endRow:e+(n!=null?n:1)-1,startColumn:t,endColumn:t+(i!=null?i:1)-1,unitId:this._workbook.getUnitId(),sheetId:this._worksheet.getSheetId()};else throw new Error("Invalid range specification");return this._injector.createInstance(u.FRange,this._workbook,h,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,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=s.Direction.DOWN,h=e+1,d=e+t,l=0,m=this._worksheet.getColumnCount()-1,g=a.copyRangeStyles(this._worksheet,h,d,l,m,!0,e);return this._commandService.syncExecuteCommand(a.InsertRowByRangeCommand.id,{unitId:n,subUnitId:i,direction:o,range:{startRow:h,endRow:d,startColumn:l,endColumn:m},cellValue:g}),this}insertRowsBefore(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=s.Direction.UP,h=e,d=e+t-1,l=0,m=this._worksheet.getColumnCount()-1,g=a.copyRangeStyles(this._worksheet,h,d,l,m,!0,e-1);return this._commandService.syncExecuteCommand(a.InsertRowByRangeCommand.id,{unitId:n,subUnitId:i,direction:o,range:{startRow:h,endRow:d,startColumn:l,endColumn:m},cellValue:g}),this}deleteRow(e){return this.deleteRows(e,1)}deleteRows(e,t){const n={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return this._commandService.syncExecuteCommand(a.RemoveRowByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveRows(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=P(e.getRange(),this._worksheet),h=o,d={startRow:t,endRow:t,startColumn:o.startColumn,endColumn:o.endColumn};return this._commandService.syncExecuteCommand(a.MoveRowsCommand.id,{unitId:n,subUnitId:i,range:o,fromRange:h,toRange:d}),this}hideRow(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=P(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetRowHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}hideRows(e,t=1){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(a.SetRowHiddenCommand.id,{unitId:n,subUnitId:i,ranges:[o]}),this}unhideRow(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=P(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetSpecificRowsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}showRows(e,t=1){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1,rangeType:s.RANGE_TYPE.ROW};return this._commandService.syncExecuteCommand(a.SetSpecificRowsVisibleCommand.id,{unitId:n,subUnitId:i,ranges:[o]}),this}setRowHeight(e,t){return this.setRowHeights(e,1,t)}autoFitRow(e,t=s.BooleanNumber.TRUE){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetTextWrapCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:o[0],value:s.WrapStrategy.WRAP}),this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightMutation.id,{unitId:n,subUnitId:i,ranges:o,autoHeightInfo:t}),this}setRowHeights(e,t,n){var m;const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),h=this._worksheet.getRowManager(),d=[],l=[];for(let g=e;g<e+t;g++){const C=((m=h.getRow(g))==null?void 0:m.ah)||this._worksheet.getConfig().defaultRowHeight,S={startRow:g,endRow:g,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};n<=C?d.push(S):l.push(S)}return l.length>0&&this._commandService.syncExecuteCommand(a.SetRowHeightCommand.id,{unitId:i,subUnitId:o,ranges:l,value:n}),d.length>0&&this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:i,subUnitId:o,ranges:d}),this}getRowHeight(e){return this._worksheet.getRowHeight(e)}setRowAutoHeight(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:i,ranges:o}),this}setRangesAutoHeight(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:n,ranges:e}),this}setRowHeightsForced(e,t,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),h=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetRowHeightCommand.id,{unitId:i,subUnitId:o,ranges:h,value:n}),this}setRowCustom(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i={};for(const[h,d]of Object.entries(e))i[Number(h)]={custom:d};const o={unitId:t,subUnitId:n,rowData:i};return this._commandService.syncExecuteCommand(a.SetRowDataCommand.id,o),this}insertColumnAfter(e){return this.insertColumnsAfter(e,1)}insertColumnBefore(e){return this.insertColumnsBefore(e,1)}insertColumns(e,t=1){return this.insertColumnsBefore(e,t)}insertColumnsAfter(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=s.Direction.RIGHT,h=0,d=this._worksheet.getRowCount()-1,l=e+1,m=e+t,g=a.copyRangeStyles(this._worksheet,h,d,l,m,!1,e);return this._commandService.syncExecuteCommand(a.InsertColByRangeCommand.id,{unitId:n,subUnitId:i,direction:o,range:{startRow:h,endRow:d,startColumn:l,endColumn:m},cellValue:g}),this}insertColumnsBefore(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=s.Direction.LEFT,h=0,d=this._worksheet.getRowCount()-1,l=e,m=e+t-1,g=a.copyRangeStyles(this._worksheet,h,d,l,m,!1,e-1);return this._commandService.syncExecuteCommand(a.InsertColByRangeCommand.id,{unitId:n,subUnitId:i,direction:o,range:{startRow:h,endRow:d,startColumn:l,endColumn:m},cellValue:g}),this}deleteColumn(e){return this.deleteColumns(e,1)}deleteColumns(e,t){const n={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1};return this._commandService.syncExecuteCommand(a.RemoveColByRangeCommand.id,{range:n,unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}moveColumns(e,t){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=N(e.getRange(),this._worksheet),h=o,d={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:t,endColumn:t};return this._commandService.syncExecuteCommand(a.MoveColsCommand.id,{unitId:n,subUnitId:i,range:o,fromRange:h,toRange:d}),this}hideColumn(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=N(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetColHiddenCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}hideColumns(e,t=1){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:s.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(a.SetColHiddenCommand.id,{unitId:n,subUnitId:i,ranges:[o]}),this}unhideColumn(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=N(e.getRange(),this._worksheet);return this._commandService.syncExecuteCommand(a.SetSpecificColsVisibleCommand.id,{unitId:t,subUnitId:n,ranges:[i]}),this}showColumns(e,t=1){const n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:e,endColumn:e+t-1,rangeType:s.RANGE_TYPE.COLUMN};return this._commandService.syncExecuteCommand(a.SetSpecificColsVisibleCommand.id,{unitId:n,subUnitId:i,ranges:[o]}),this}setColumnWidth(e,t){return this.setColumnWidths(e,1,t)}setColumnWidths(e,t,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),h=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(a.SetColWidthCommand.id,{unitId:i,subUnitId:o,ranges:h,value:n}),this}getColumnWidth(e){return this._worksheet.getColumnWidth(e)}setColumnCustom(e){const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i={};for(const[h,d]of Object.entries(e))i[Number(h)]={custom:d};const o={unitId:t,subUnitId:n,columnData:i};return this._commandService.syncExecuteCommand(a.SetColDataCommand.id,o),this}getMergeData(){return this._worksheet.getMergeData().map(e=>this._injector.createInstance(u.FRange,this._workbook,this._worksheet,e))}getMergedRanges(){return this._worksheet.getSnapshot().mergeData.map(t=>this._injector.createInstance(u.FRange,this._workbook,this._worksheet,t))}getCellMergeData(e,t){const i=this._worksheet.getMergedCell(e,t);if(i)return this._injector.createInstance(u.FRange,this._workbook,this._worksheet,i)}getActiveRange(){return this._fWorkbook.getActiveRange()}setActiveRange(e){const{unitId:t,sheetId:n}=e.getRange();if(t!==this._workbook.getUnitId()||n!==this._worksheet.getSheetId())throw new Error("Specified range must be part of the sheet.");return this._fWorkbook.setActiveRange(e),this}getActiveCell(){return this._fWorkbook.getActiveCell()}setFreeze(e){return this._logService.warn("setFreeze is deprecated, use setFrozenRows and setFrozenColumns instead"),this._commandService.syncExecuteCommand(a.SetFrozenCommand.id,{...e,unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}cancelFreeze(){return this._commandService.syncExecuteCommand(a.CancelFrozenCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this.getSheetId()}),this}getFreeze(){return this._worksheet.getFreeze()}setFrozenColumns(...e){const t=this.getFreeze();if(arguments.length===1){const 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(a.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){const t=this.getFreeze();if(arguments.length===1){const 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(a.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(){const e=this.getFreeze();return e.startColumn===-1?0:e.startColumn}getFrozenRows(){const e=this.getFreeze();return e.startRow===-1?0:e.startRow}getFrozenRowRange(){const e=this._worksheet.getFreeze();return{startRow:e.startRow-e.ySplit,endRow:e.startRow-1}}getFrozenColumnRange(){const e=this._worksheet.getFreeze();return{startColumn:e.startColumn-e.xSplit,endColumn:e.startColumn-1}}hasHiddenGridLines(){return this._worksheet.getConfig().showGridlines===s.BooleanNumber.FALSE}setHiddenGridlines(e){return this._commandService.syncExecuteCommand(a.ToggleGridlinesCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),showGridlines:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}),this}setGridLinesColor(e){return this._commandService.syncExecuteCommand(a.SetGridlinesColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),color:e}),this}getGridLinesColor(){return this._worksheet.getGridlinesColor()}setTabColor(e){return this._commandService.syncExecuteCommand(a.SetTabColorCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),value:e}),this}getTabColor(){return this._worksheet.getTabColor()}onCellDataChange(e){return this._injector.get(s.ICommandService).onCommandExecuted(n=>{if(n.id===a.SetRangeValuesMutation.id){const i=n.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new s.ObjectMatrix(i.cellValue))}})}onBeforeCellDataChange(e){return this._injector.get(s.ICommandService).beforeCommandExecuted(n=>{if(n.id===a.SetRangeValuesMutation.id){const i=n.params;i.unitId===this._workbook.getUnitId()&&i.subUnitId===this._worksheet.getSheetId()&&i.cellValue&&e(new s.ObjectMatrix(i.cellValue))}})}hideSheet(){const e=this._injector.get(s.ICommandService);if(this._workbook.getSheets().filter(o=>o.isSheetHidden()!==s.BooleanNumber.TRUE).length<=1)throw new Error("Cannot hide the only visible sheet");return e.syncExecuteCommand(a.SetWorksheetHideCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}showSheet(){return this._injector.get(s.ICommandService).syncExecuteCommand(a.SetWorksheetShowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()}),this}isSheetHidden(){return this._worksheet.isSheetHidden()===s.BooleanNumber.TRUE}setName(e){return this._commandService.syncExecuteCommand(a.SetWorksheetNameCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),name:e}),this}activate(){return this._fWorkbook.setActiveSheet(this),this}getIndex(){return this._workbook.getSheetIndex(this._worksheet)}clear(e){if(e&&e.contentsOnly&&!e.formatOnly)return this.clearContents();if(e&&e.formatOnly&&!e.contentsOnly)return this.clearFormats();const t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this._injector.get(s.ICommandService),o={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return i.syncExecuteCommand(a.ClearSelectionAllCommand.id,{unitId:t,subUnitId:n,ranges:[o],options:e}),this}clearContents(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(a.ClearSelectionContentCommand.id,{unitId:e,subUnitId:t,ranges:[i]}),this}clearFormats(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(s.ICommandService),i={startRow:0,endRow:this._worksheet.getRowCount()-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1};return n.syncExecuteCommand(a.ClearSelectionFormatCommand.id,{unitId:e,subUnitId:t,ranges:[i]}),this}getDataRange(){const e=this.getLastRows(),t=this.getLastColumns();return this.getRange(0,0,e+1,t+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.FWorksheet?this._worksheet.getSheetId()===e.getSheetId()&&this._workbook.getUnitId()===e.getWorkbook().getUnitId():!1}insertDefinedName(e,t){const i=this._injector.createInstance(y).setName(e).setRef(t).build();i.localSheetId=this.getSheetId(),this._fWorkbook.insertDefinedNameBuilder(i)}getDefinedNames(){return this._fWorkbook.getDefinedNames().filter(t=>t.getLocalSheetId()===this.getSheetId())}setCustomMetadata(e){return this._worksheet.setCustomMetadata(e),this}setRowCustomMetadata(e,t){return this._worksheet.getRowManager().setCustomMetadata(e,t),this}setColumnCustomMetadata(e,t){return this._worksheet.getColumnManager().setCustomMetadata(e,t),this}getRowCustomMetadata(e){return this._worksheet.getRowManager().getCustomMetadata(e)}getColumnCustomMetadata(e){return this._worksheet.getColumnManager().getCustomMetadata(e)}appendRow(e){const t=this._worksheet.getCellMatrix().hasValue(),n=this._worksheet.getLastRowWithContent(),i=this._worksheet.getRowCount(),o=this._worksheet.getColumnCount(),h=t?n+1:n,d=new s.ObjectMatrix;for(let l=0;l<e.length;l++)d.setValue(h,l,E(e[l]));return this._commandService.syncExecuteCommand(a.AppendRowCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),cellValue:d.getMatrix(),insertRowNums:h>i-1?1:0,insertColumnNums:e.length>o?e.length-o:0,maxRows:i,maxColumns:o}),this}},u.FWorksheet=J([U(3,s.Inject(s.Injector)),U(4,s.Inject(a.SheetsSelectionsService)),U(5,s.Inject(s.ILogService)),U(6,s.ICommandService)],u.FWorksheet);var Q=Object.getOwnPropertyDescriptor,X=(c,r,e,t)=>{for(var n=t>1?void 0:t?Q(r,e):r,i=c.length-1,o;i>=0;i--)(o=c[i])&&(n=o(n)||n);return n},w=(c,r)=>(e,t)=>r(e,t,c);u.FWorkbook=class extends _.FBaseInitialable{constructor(e,t,n,i,o,h,d,l,m,g){super(t);b(this,"id");this._workbook=e,this._injector=t,this._resourceLoaderService=n,this._selectionManagerService=i,this._univerInstanceService=o,this._commandService=h,this._permissionService=d,this._logService=l,this._localeService=m,this._definedNamesService=g,this.id=this._workbook.getUnitId()}getWorkbook(){return this._workbook}getId(){return this.id}getName(){return this._workbook.name}setName(e){this._workbook.setName(e)}save(){return this._resourceLoaderService.saveUnit(this._workbook.getUnitId())}getSnapshot(){return this._logService.warn("use 'save' instead of 'getSnapshot'"),this.save()}getActiveSheet(){const e=this._workbook.getActiveSheet();return this._injector.createInstance(u.FWorksheet,this,this._workbook,e)}getSheets(){return this._workbook.getSheets().map(e=>this._injector.createInstance(u.FWorksheet,this,this._workbook,e))}create(e,t,n){const i=s.mergeWorksheetSnapshotWithDefault({});i.rowCount=t,i.columnCount=n,i.name=e,i.id=e.toLowerCase().replace(/ /g,"-"),this._commandService.syncExecuteCommand(a.InsertSheetCommand.id,{unitId:this.id,index:this._workbook.getSheets().length,sheet:i}),this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId()});const o=this._workbook.getActiveSheet();if(!o)throw new Error("No active sheet found");return this._injector.createInstance(u.FWorksheet,this,this._workbook,o)}getSheetBySheetId(e){const t=this._workbook.getSheetBySheetId(e);return t?this._injector.createInstance(u.FWorksheet,this,this._workbook,t):null}getSheetByName(e){const t=this._workbook.getSheetBySheetName(e);return t?this._injector.createInstance(u.FWorksheet,this,this._workbook,t):null}setActiveSheet(e){return this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:this.id,subUnitId:typeof e=="string"?e:e.getSheetId()}),typeof e=="string"?this.getSheetBySheetId(e):e}insertSheet(e){e!=null?this._commandService.syncExecuteCommand(a.InsertSheetCommand.id,{sheet:{name:e}}):this._commandService.syncExecuteCommand(a.InsertSheetCommand.id);const t=this.id,n=this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId();this._commandService.syncExecuteCommand(a.SetWorksheetActiveOperation.id,{unitId:t,subUnitId:n});const i=this._workbook.getActiveSheet();if(!i)throw new Error("No active sheet found");return this._injector.createInstance(u.FWorksheet,this,this._workbook,i)}deleteSheet(e){const t=this.id,n=typeof e=="string"?e:e.getSheetId();return this._commandService.syncExecuteCommand(a.RemoveSheetCommand.id,{unitId:t,subUnitId:n})}undo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(s.UndoCommand.id),this}redo(){return this._univerInstanceService.focusUnit(this.id),this._commandService.syncExecuteCommand(s.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 s.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(t=>{this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()===this.id&&(t!=null&&t.length?e(t.map(n=>n.range)):e([]))}))}setEditable(e){const t=new a.WorkbookEditablePermission(this._workbook.getUnitId());return this._permissionService.getPermissionPoint(t.id)||this._permissionService.addPermissionPoint(t),this._permissionService.updatePermissionPoint(t.id,e),this}setActiveRange(e){const t=this.getActiveSheet(),n=e.getRange().sheetId||t.getSheetId(),i=n?this._workbook.getSheetBySheetId(n):this._workbook.getActiveSheet(!0);if(!i)throw new Error("No active sheet found");i.getSheetId()!==t.getSheetId()&&this.setActiveSheet(this._injector.createInstance(u.FWorksheet,this,this._workbook,i));const o={unitId:this.getId(),subUnitId:n,selections:[e].map(h=>({range:h.getRange(),primary:a.getPrimaryForRange(h.getRange(),i),style:null}))};return this._commandService.syncExecuteCommand(a.SetSelectionsOperation.id,o),this}getActiveRange(){const e=this._workbook.getActiveSheet(),n=this._selectionManagerService.getCurrentSelections().find(i=>!!i.primary);return n?this._injector.createInstance(u.FRange,this._workbook,e,n.range):null}getActiveCell(){const e=this._workbook.getActiveSheet(),n=this._selectionManagerService.getCurrentSelections().find(o=>!!o.primary);if(!n)return null;const i={...n.primary,rangeType:s.RANGE_TYPE.NORMAL};return this._injector.createInstance(u.FRange,this._workbook,e,i)}deleteActiveSheet(){const e=this.getActiveSheet();return this.deleteSheet(e)}duplicateSheet(e){return this._commandService.syncExecuteCommand(a.CopySheetCommand.id,{unitId:e.getWorkbook().getUnitId(),subUnitId:e.getSheetId()}),this._injector.createInstance(u.FWorksheet,this,this._workbook,this._workbook.getActiveSheet())}duplicateActiveSheet(){const e=this.getActiveSheet();return this.duplicateSheet(e)}getNumSheets(){return this._workbook.getSheets().length}getLocale(){return this._localeService.getCurrentLocale()}setLocale(e){this._localeService.setLocale(e)}setSpreadsheetLocale(e){return this._localeService.setLocale(e),this}getUrl(){return location.href}moveSheet(e,t){let n=t;return n<0?n=0:n>this._workbook.getSheets().length-1&&(n=this._workbook.getSheets().length-1),this._commandService.syncExecuteCommand(a.SetWorksheetOrderCommand.id,{unitId:e.getWorkbook().getUnitId(),order:n,subUnitId:e.getSheetId()}),this}moveActiveSheet(e){const t=this.getActiveSheet();return this.moveSheet(t,e)}getPermission(){return this._injector.createInstance(u.FPermission)}getDefinedName(e){const t=this._definedNamesService.getValueByName(this.id,e);return t?this._injector.createInstance(p,{...t,unitId:this.id}):null}getDefinedNames(){const e=this._definedNamesService.getDefinedNameMap(this.id);return e?Object.values(e).map(t=>this._injector.createInstance(p,{...t,unitId:this.id})):[]}insertDefinedName(e,t){const i=this._injector.createInstance(y).setName(e).setRef(t).build();return i.localSheetId=a.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,this.insertDefinedNameBuilder(i),this}deleteDefinedName(e){const t=this.getDefinedName(e);return t?(t.delete(),!0):!1}insertDefinedNameBuilder(e){e.unitId=this.getId(),this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,e)}updateDefinedNameBuilder(e){this._commandService.syncExecuteCommand(a.SetDefinedNameCommand.id,e)}getRegisteredRangeThemes(){return this._injector.get(a.SheetRangeThemeService).getRegisteredRangeThemes()}registerRangeTheme(e){this._commandService.syncExecuteCommand(a.RegisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),rangeThemeStyle:e})}unregisterRangeTheme(e){this._commandService.syncExecuteCommand(a.UnregisterWorksheetRangeThemeStyleCommand.id,{unitId:this.getId(),themeName:e})}createRangeThemeStyle(e,t){return new a.RangeThemeStyle(e,t)}setCustomMetadata(e){return this._workbook.setCustomMetadata(e),this}getCustomMetadata(){return this._workbook.getCustomMetadata()}},u.FWorkbook=X([w(1,s.Inject(s.Injector)),w(2,s.Inject(s.IResourceLoaderService)),w(3,s.Inject(a.SheetsSelectionsService)),w(4,s.IUniverInstanceService),w(5,s.ICommandService),w(6,s.IPermissionService),w(7,s.ILogService),w(8,s.Inject(s.LocaleService)),w(9,I.IDefinedNamesService)],u.FWorkbook);class Z extends _.FUniver{getCommandSheetTarget(r){var i;const e=r.params;if(!e)return this.getActiveSheet();const t=e.unitId?this.getUniverSheet(e.unitId):(i=this.getActiveWorkbook)==null?void 0:i.call(this);if(!t)return;const n=t.getSheetBySheetId(e.subUnitId||e.sheetId)||t.getActiveSheet();if(n)return{workbook:t,worksheet:n}}getSheetTarget(r,e){const t=this.getUniverSheet(r);if(!t)return;const n=t.getSheetBySheetId(e);if(n)return{workbook:t,worksheet:n}}_initWorkbookEvent(r){const e=r.get(s.IUniverInstanceService);this.registerEventHandler(this.Event.WorkbookDisposed,()=>e.unitDisposed$.subscribe(t=>{t.type===s.UniverInstanceType.UNIVER_SHEET&&this.fireEvent(this.Event.WorkbookDisposed,{unitId:t.getUnitId(),unitType:t.type,snapshot:t.getSnapshot()})})),this.registerEventHandler(this.Event.WorkbookCreated,()=>e.unitAdded$.subscribe(t=>{if(t.type===s.UniverInstanceType.UNIVER_SHEET){const n=t,i=r.createInstance(u.FWorkbook,n);this.fireEvent(this.Event.WorkbookCreated,{unitId:t.getUnitId(),type:t.type,workbook:i,unit:i})}}))}_initialize(r){const e=r.get(s.ICommandService);this.registerEventHandler(this.Event.BeforeSheetCreate,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.InsertSheetCommand.id){const i=t.params,{unitId:o,index:h,sheet:d}=i||{},l=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!l)return;const m={workbook:l,index:h,sheet:d};if(this.fireEvent(this.Event.BeforeSheetCreate,m),m.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeActiveSheetChange,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.SetWorksheetActiveOperation.id){const{subUnitId:i,unitId:o}=t.params,h=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!h||!i)return;const d=h.getSheetBySheetId(i),l=h.getActiveSheet();if(!d||!l)return;const m={workbook:h,activeSheet:d,oldActiveSheet:l};if(this.fireEvent(this.Event.BeforeActiveSheetChange,m),m.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetDelete,()=>e.beforeCommandExecuted(t=>{if(t.id===a.RemoveSheetCommand.id){const n=this.getCommandSheetTarget(t);if(!n)return;const{workbook:i,worksheet:o}=n,h={workbook:i,worksheet:o};if(this.fireEvent(this.Event.BeforeSheetDelete,h),h.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetMove,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetWorksheetOrderMutation.id){const{fromOrder:n,toOrder:i}=t.params,o=this.getCommandSheetTarget(t);if(!o)return;const h={workbook:o.workbook,worksheet:o.worksheet,newIndex:i,oldIndex:n};if(this.fireEvent(this.Event.BeforeSheetMove,h),h.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetNameChange,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetWorksheetNameCommand.id){const{name:n}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const o={workbook:i.workbook,worksheet:i.worksheet,newName:n,oldName:i.worksheet.getSheetName()};if(this.fireEvent(this.Event.BeforeSheetNameChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetTabColorChange,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetTabColorMutation.id){const{color:n}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const o={workbook:i.workbook,worksheet:i.worksheet,newColor:n,oldColor:i.worksheet.getTabColor()};if(this.fireEvent(this.Event.BeforeSheetTabColorChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetHideChange,()=>e.beforeCommandExecuted(t=>{if(t.id===a.SetWorksheetHideMutation.id){const{hidden:n}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;const o={workbook:i.workbook,worksheet:i.worksheet,hidden:!!n};if(this.fireEvent(this.Event.BeforeSheetHideChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineColorChange,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.SetGridlinesColorCommand.id){const i=this.getCommandSheetTarget(t);if(!i)return;const o={...i,color:(n=t.params)==null?void 0:n.color};if(this.fireEvent(this.Event.BeforeGridlineColorChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.BeforeGridlineEnableChange,()=>e.beforeCommandExecuted(t=>{var n;if(t.id===a.ToggleGridlinesCommand.id){const i=this.getCommandSheetTarget(t);if(!i)return;const o={...i,enabled:!!((n=t.params)!=null&&n.showGridlines)};if(this.fireEvent(this.Event.BeforeGridlineEnableChange,o),o.cancel)throw new s.CanceledError}})),this.registerEventHandler(this.Event.SheetValueChanged,()=>e.onCommandExecuted(t=>{if(a.COMMAND_LISTENER_VALUE_CHANGE.indexOf(t.id)>-1){if(!this.getActiveSheet())return;const i=a.getValueChangedEffectedRange(t).map(o=>{var h,d;return(d=(h=this.getWorkbook(o.unitId))==null?void 0:h.getSheetBySheetId(o.subUnitId))==null?void 0:d.getRange(o.range)}).filter(Boolean);if(!i.length)return;this.fireEvent(this.Event.SheetValueChanged,{payload:t,effectedRanges:i})}})),this.registerEventHandler(this.Event.SheetCreated,()=>e.onCommandExecuted(t=>{var n;if(t.id===a.InsertSheetCommand.id){const i=t.params,{unitId:o}=i||{},h=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!h)return;const d=h.getActiveSheet();if(!d)return;const l={workbook:h,worksheet:d};this.fireEvent(this.Event.SheetCreated,l)}})),this.registerEventHandler(this.Event.ActiveSheetChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetActiveOperation.id){const n=this.getActiveSheet();if(!n)return;const{workbook:i,worksheet:o}=n;this._fireActiveSheetChanged(i,o)}})),this.registerEventHandler(this.Event.SheetDeleted,()=>e.onCommandExecuted(t=>{var n;if(t.id===a.RemoveSheetCommand.id){const{subUnitId:i,unitId:o}=t.params,h=o?this.getUniverSheet(o):(n=this.getActiveWorkbook)==null?void 0:n.call(this);if(!h||!i)return;this._fireSheetDeleted(h,i)}})),this.registerEventHandler(this.Event.SheetMoved,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetOrderMutation.id){const{toOrder:n}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetMoved(i.workbook,i.worksheet,n)}})),this.registerEventHandler(this.Event.SheetNameChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetNameCommand.id){const{name:n}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetNameChanged(i.workbook,i.worksheet,n)}})),this.registerEventHandler(this.Event.SheetTabColorChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetTabColorMutation.id){const{color:n}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetTabColorChanged(i.workbook,i.worksheet,n)}})),this.registerEventHandler(this.Event.SheetHideChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetWorksheetHideMutation.id){const{hidden:n}=t.params,i=this.getCommandSheetTarget(t);if(!i)return;this._fireSheetHideChanged(i.workbook,i.worksheet,!!n)}})),this.registerEventHandler(this.Event.GridlineChanged,()=>e.onCommandExecuted(t=>{if(t.id===a.SetGridlinesColorCommand.id||t.id===a.ToggleGridlinesCommand.id){const n=this.getCommandSheetTarget(t);if(!n)return;this.fireEvent(this.Event.GridlineChanged,{...n,enabled:!n.worksheet.hasHiddenGridLines(),color:n.worksheet.getGridLinesColor()})}})),this._initWorkbookEvent(r)}createUniverSheet(r,e){const n=this._injector.get(s.IUniverInstanceService).createUnit(s.UniverInstanceType.UNIVER_SHEET,r,e);return this._injector.createInstance(u.FWorkbook,n)}createWorkbook(r,e){return this.createUniverSheet(r,e)}getActiveWorkbook(){const r=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return r?this._injector.createInstance(u.FWorkbook,r):null}getActiveUniverSheet(){return this.getActiveWorkbook()}getUniverSheet(r){const e=this._univerInstanceService.getUnit(r,s.UniverInstanceType.UNIVER_SHEET);return e?this._injector.createInstance(u.FWorkbook,e):null}getWorkbook(r){return this.getUniverSheet(r)}getPermission(){return this._injector.createInstance(u.FPermission)}onUniverSheetCreated(r){const e=this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{const n=this._injector.createInstance(u.FWorkbook,t);r(n)});return s.toDisposable(e)}newDefinedName(){return this._injector.createInstance(y)}getActiveSheet(){const r=this.getActiveWorkbook();if(!r)return null;const e=r.getActiveSheet();return e?{workbook:r,worksheet:e}:null}_fireActiveSheetChanged(r,e){this.fireEvent(this.Event.ActiveSheetChanged,{workbook:r,activeSheet:e})}_fireSheetDeleted(r,e){this.fireEvent(this.Event.SheetDeleted,{workbook:r,sheetId:e})}_fireSheetMoved(r,e,t){this.fireEvent(this.Event.SheetMoved,{workbook:r,worksheet:e,newIndex:t})}_fireSheetNameChanged(r,e,t){this.fireEvent(this.Event.SheetNameChanged,{workbook:r,worksheet:e,newName:t})}_fireSheetTabColorChanged(r,e,t){this.fireEvent(this.Event.SheetTabColorChanged,{workbook:r,worksheet:e,newColor:t})}_fireSheetHideChanged(r,e,t){this.fireEvent(this.Event.SheetHideChanged,{workbook:r,worksheet:e,hidden:t})}}_.FUniver.extend(Z);class x{get SheetValueChangeType(){return a.SheetValueChangeType}get SheetSkeletonChangeType(){return a.SheetSkeletonChangeType}get SplitDelimiterType(){return a.SplitDelimiterEnum}}_.FEnum.extend(x);class F{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"}}_.FEventName.extend(F);var ee=Object.getOwnPropertyDescriptor,te=(c,r,e,t)=>{for(var n=t>1?void 0:t?ee(r,e):r,i=c.length-1,o;i>=0;i--)(o=c[i])&&(n=o(n)||n);return n},ne=(c,r)=>(e,t)=>r(e,t,c);u.FSheetHooks=class extends _.FBase{constructor(r){super(),this._injector=r}},u.FSheetHooks=te([ne(0,s.Inject(s.Injector))],u.FSheetHooks),u.FSheetEventName=F,u.FSheetsEnum=x,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});