@univerjs/engine-formula 0.22.1 → 0.23.0-insiders.20260522-e8f2a3b

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.
@@ -44,6 +44,12 @@ export declare class LexerTreeBuilder extends Disposable {
44
44
  private _colonState;
45
45
  private _formulaErrorCount;
46
46
  private _tableBracketState;
47
+ private _hasNewExcelFunction;
48
+ private _lambdaFunctionParameterSet;
49
+ private _xlpmPrefix;
50
+ private _xlfnPrefix;
51
+ private _resetPrefix;
52
+ private _clearPrefix;
47
53
  dispose(): void;
48
54
  getUpLevel(): number;
49
55
  isColonClose(): boolean;
@@ -164,6 +170,18 @@ export declare class LexerTreeBuilder extends Disposable {
164
170
  private _isScientificNotation;
165
171
  private _addSequenceArray;
166
172
  getNewFormulaWithPrefix(formulaString: string, hasFunction: (functionToken: IFunctionNames) => boolean): string | null;
173
+ private _generateNewFunctionString;
174
+ private _handleNewFunctionChild;
175
+ private _clearFunctionString;
176
+ private _checkAddBracketForMinus;
177
+ private _currentUnitId;
167
178
  getFormulaExprTree(formulaString: string, unitId: string, hasFunction: (functionToken: IFunctionNames) => boolean, getDefinedNameName: (unitId: string, name: string) => Nullable<IDefinedNamesServiceParam>, getTable: (unitId: string, tableName: string) => Nullable<ISuperTable>): IExprTreeNode | null;
179
+ private _generateExprTree;
180
+ private _handleChildrenForExprTree;
181
+ private _checkColonNodeForExprTree;
182
+ private _handleTextNodeForExprTree;
183
+ private _getTableNameFromStructuredRef;
184
+ private _handleLambdaForExprTree;
185
+ private _getCurNodeTypeForExprTree;
168
186
  }
169
187
  export {};
@@ -45,7 +45,7 @@ export declare class FormulaDependencyGenerator extends Disposable implements IF
45
45
  protected readonly _currentConfigService: IFormulaCurrentConfigService;
46
46
  protected readonly _runtimeService: IFormulaRuntimeService;
47
47
  protected readonly _otherFormulaManagerService: IOtherFormulaManagerService;
48
- private readonly _featureCalculationManagerService;
48
+ protected readonly _featureCalculationManagerService: IFeatureCalculationManagerService;
49
49
  private readonly _univerInstanceService;
50
50
  private readonly _interpreter;
51
51
  protected readonly _astTreeBuilder: AstTreeBuilder;
@@ -54,37 +54,49 @@ export declare class FormulaDependencyGenerator extends Disposable implements IF
54
54
  protected readonly _lexerTreeBuilder: LexerTreeBuilder;
55
55
  private _updateRangeFlattenCache;
56
56
  protected _dependencyRTreeCacheForAddressFunction: RTree;
57
+ protected _dependencyTreeCache: Map<number, IFormulaDependencyTree>;
57
58
  constructor(_currentConfigService: IFormulaCurrentConfigService, _runtimeService: IFormulaRuntimeService, _otherFormulaManagerService: IOtherFormulaManagerService, _featureCalculationManagerService: IFeatureCalculationManagerService, _univerInstanceService: IUniverInstanceService, _interpreter: Interpreter, _astTreeBuilder: AstTreeBuilder, _lexer: Lexer, _dependencyManagerService: IDependencyManagerService, _lexerTreeBuilder: LexerTreeBuilder);
58
59
  dispose(): void;
59
60
  private _initUnitDispose;
60
61
  private _disposeByUnitId;
61
62
  generate(isCalculateTreeModel?: boolean): Promise<(FormulaDependencyTree | FormulaDependencyTreeVirtual)[]>;
62
- private _dependencyFeatureCalculation;
63
- private _clearFeatureCalculationNode;
63
+ private _isCyclicUtilMap;
64
+ protected _checkIsCycleDependency(treeList: IFormulaDependencyTree[]): boolean;
65
+ protected _getFeatureFormulaTree(featureId: string, treeId: Nullable<number>, params: IFeatureCalculationManagerParam): FormulaDependencyTree;
66
+ protected _registerOtherFormulas(otherFormulaData: IOtherFormulaData, otherFormulaDataKeys: string[], treeList: IFormulaDependencyTree[]): void;
67
+ protected _registerFormulas(formulaDataKeys: string[], formulaData: IFormulaData, unitData: IUnitData, treeList: IFormulaDependencyTree[]): void;
68
+ protected _createFDtree(unitId: string, sheetId: string, row: number, column: number, unitData: IUnitData, formulaDataItem: IFormulaDataItem): FormulaDependencyTree;
69
+ /**
70
+ * Build a formula dependency tree based on the dependency relationships.
71
+ * @param treeList
72
+ */
73
+ protected _getUpdateTreeListAndMakeDependency(): IFormulaDependencyTree[];
74
+ protected _getTreeById(treeId: number): IFormulaDependencyTree | undefined;
75
+ protected _getTreeNode(tree: IFormulaDependencyTree): import("../ast-node").AstRootNode;
76
+ private _traverse;
77
+ protected _calculateRunList(treeList: IFormulaDependencyTree[]): (FormulaDependencyTree | FormulaDependencyTreeVirtual)[];
78
+ protected _getAllTreeList(): Promise<IFormulaDependencyTree[]>;
79
+ protected _getDependencyTreeParenIds(tree: IFormulaDependencyTree): Set<number>;
80
+ protected _getDependencyTreeChildrenIds(tree: IFormulaDependencyTree): Set<number>;
81
+ protected _startFormulaDependencyTreeModel(): void;
82
+ protected _endFormulaDependencyTreeModel(): void;
64
83
  /**
65
84
  * TODO @DR-Univer: The next step will be to try changing the incoming dirtyRanges to an array, thus avoiding conversion.
66
85
  * @param dirtyRanges
67
86
  * @returns
68
87
  */
69
88
  protected _convertDirtyRangesToUnitRange(dirtyRanges: IFeatureDirtyRangeType): IUnitRange[];
70
- private _intersectFeatureCalculation;
71
- private _getExistTreeList;
72
89
  private _isCyclicUtil;
73
- protected _checkIsCycleDependency(treeList: IFormulaDependencyTree[]): boolean;
74
90
  /**
75
91
  * Generate nodes for the dependency tree, where each node contains all the reference data ranges included in each formula.
76
92
  * @param formulaData
77
93
  */
78
94
  protected _generateTreeList(formulaData: IFormulaData, otherFormulaData: IOtherFormulaData, unitData: IUnitData): Promise<IFormulaDependencyTree[]>;
79
95
  protected _registerFeatureFormulas(treeList: FormulaDependencyTree[]): void;
80
- protected _getFeatureFormulaTree(featureId: string, treeId: Nullable<number>, params: IFeatureCalculationManagerParam): FormulaDependencyTree;
81
- protected _registerOtherFormulas(otherFormulaData: IOtherFormulaData, otherFormulaDataKeys: string[], treeList: IFormulaDependencyTree[]): void;
82
96
  protected _getFirstCellOfRange(ranges: IRange[]): {
83
97
  firstRow: number;
84
98
  firstColumn: number;
85
99
  };
86
- protected _registerFormulas(formulaDataKeys: string[], formulaData: IFormulaData, unitData: IUnitData, treeList: IFormulaDependencyTree[]): void;
87
- protected _createFDtree(unitId: string, sheetId: string, row: number, column: number, unitData: IUnitData, formulaDataItem: IFormulaDataItem): FormulaDependencyTree;
88
100
  protected _createVirtualFDtree(tree: FormulaDependencyTree, formulaDataItem: IFormulaDataItem): FormulaDependencyTreeVirtual;
89
101
  /**
90
102
  * Break down the dirty areas into ranges for subsequent matching.
@@ -102,7 +114,6 @@ export declare class FormulaDependencyGenerator extends Disposable implements IF
102
114
  */
103
115
  protected _getRangeListByNode(nodeData: IExecuteAstNodeData): Promise<IUnitRange[]>;
104
116
  protected _getAddressFunctionNodeList(node: Nullable<BaseAstNode>): FunctionNode[];
105
- protected _getTreeNode(tree: IFormulaDependencyTree): import("../ast-node").AstRootNode;
106
117
  protected _buildDirtyRangesByAddressFunction(treeDependencyCache: RTree, tree: IFormulaDependencyTree): Promise<void>;
107
118
  private _executedAddressFunctionNodeIds;
108
119
  protected _calculateListByFunctionRefNode(treeList: IFormulaDependencyTree[]): Promise<void>;
@@ -110,7 +121,6 @@ export declare class FormulaDependencyGenerator extends Disposable implements IF
110
121
  private _calculateAddressFunctionRuntimeData;
111
122
  private _buildTreeNodeById;
112
123
  private _searchDependencyByAddressFunction;
113
- protected _getTreeById(treeId: number): Nullable<IFormulaDependencyTree>;
114
124
  private _addDependencyTreeByAddressFunction;
115
125
  /**
116
126
  * Calculate the range required for collection in advance,
@@ -118,11 +128,6 @@ export declare class FormulaDependencyGenerator extends Disposable implements IF
118
128
  * @param node
119
129
  */
120
130
  protected _getRangeListByFunctionRefNode(referenceFunctionList: FunctionNode[], refOffsetX: number, refOffsetY: number): Promise<IUnitRange[]>;
121
- /**
122
- * Build a formula dependency tree based on the dependency relationships.
123
- * @param treeList
124
- */
125
- protected _getUpdateTreeListAndMakeDependency(treeList: IFormulaDependencyTree[]): IFormulaDependencyTree[];
126
131
  private _includeTreeFeature;
127
132
  private _includeOtherFormula;
128
133
  private _detectForcedRecalculationNode;
@@ -133,20 +138,10 @@ export declare class FormulaDependencyGenerator extends Disposable implements IF
133
138
  * @param tree
134
139
  */
135
140
  protected _includeTree(tree: IFormulaDependencyTree, node: BaseAstNode): boolean;
136
- /**
137
- * Generate the final formula calculation order array by traversing the dependency tree established via depth-first search.
138
- * @param treeList
139
- */
140
- protected _calculateRunList(treeList: IFormulaDependencyTree[]): (FormulaDependencyTree | FormulaDependencyTreeVirtual)[];
141
141
  protected _initializeGenerateTreeList(): Promise<IFormulaDependencyTree[]>;
142
- protected _getAllTreeList(): Promise<IFormulaDependencyTree[]>;
143
142
  protected _formulaDependencyTreeModel: Map<number, FormulaDependencyTreeModel>;
144
143
  protected _getTreeModel(treeId: number): FormulaDependencyTreeModel | undefined;
145
- protected _getDependencyTreeParenIds(tree: IFormulaDependencyTree): Set<number>;
146
- protected _getDependencyTreeChildrenIds(tree: IFormulaDependencyTree): Set<number>;
147
144
  protected _getFormulaDependencyTreeModel(tree: IFormulaDependencyTree): FormulaDependencyTreeModel;
148
- protected _endFormulaDependencyTreeModel(): void;
149
- protected _startFormulaDependencyTreeModel(): void;
150
145
  protected _getAllDependencyJson(treeList: IFormulaDependencyTree[]): IFormulaDependencyTreeJson[];
151
146
  getAllDependencyJson(): Promise<IFormulaDependencyTreeJson[]>;
152
147
  protected _setRealFormulaString(treeModel: FormulaDependencyTreeModel): void;
@@ -23,6 +23,7 @@ export { ERROR_TYPE_SET, ErrorType } from './basics/error-type';
23
23
  export { type ISheetFormulaError } from './basics/error-type';
24
24
  export { FunctionType, type IFunctionInfo, type IFunctionParam } from './basics/function';
25
25
  export { type IFunctionNames } from './basics/function';
26
+ export { CELL_INVERTED_INDEX_CACHE } from './basics/inverted-index-cache';
26
27
  export { includeFormulaLexerToken, isFormulaLexerToken, normalizeSheetName } from './basics/match-token';
27
28
  export { matchRefDrawToken } from './basics/match-token';
28
29
  export { isReferenceString } from './basics/regex';
@@ -41,7 +42,7 @@ export { type ISetImageFormulaDataMutationParams, SetImageFormulaDataMutation }
41
42
  export { type IRemoveOtherFormulaMutationParams, type ISetOtherFormulaMutationParams, RemoveOtherFormulaMutation, SetOtherFormulaMutation } from './commands/mutations/set-other-formula.mutation';
42
43
  export { RemoveSuperTableMutation, SetSuperTableMutation, SetSuperTableOptionMutation } from './commands/mutations/set-super-table.mutation';
43
44
  export type { ISetSuperTableMutationParam, ISetSuperTableMutationSearchParam } from './commands/mutations/set-super-table.mutation';
44
- export { ENGINE_FORMULA_CYCLE_REFERENCE_COUNT, ENGINE_FORMULA_PLUGIN_CONFIG_KEY, ENGINE_FORMULA_RETURN_DEPENDENCY_TREE, type IUniverEngineFormulaConfig } from './config/config';
45
+ export { DEFAULT_CYCLE_REFERENCE_COUNT, ENGINE_FORMULA_CYCLE_REFERENCE_COUNT, ENGINE_FORMULA_PLUGIN_CONFIG_KEY, ENGINE_FORMULA_RETURN_DEPENDENCY_TREE, type IUniverEngineFormulaConfig } from './config/config';
45
46
  export { CalculateController } from './controllers/calculate.controller';
46
47
  export { Lexer } from './engine/analysis/lexer';
47
48
  export { LexerNode } from './engine/analysis/lexer-node';
@@ -65,7 +66,7 @@ export { FormulaDependencyGenerator, IFormulaDependencyGenerator } from './engin
65
66
  export { generateRandomDependencyTreeId } from './engine/dependency/formula-dependency';
66
67
  export { Interpreter } from './engine/interpreter/interpreter';
67
68
  export { BaseReferenceObject, type FunctionVariantType } from './engine/reference-object/base-reference-object';
68
- export { AsyncArrayObject, AsyncObject } from './engine/reference-object/base-reference-object';
69
+ export { AsyncArrayObject, AsyncObject, FORMULA_REF_TO_ARRAY_CACHE } from './engine/reference-object/base-reference-object';
69
70
  export { RangeReferenceObject } from './engine/reference-object/range-reference-object';
70
71
  export { generateExecuteAstNodeData } from './engine/utils/ast-node-tool';
71
72
  export { extractFormulaError } from './engine/utils/cell';
@@ -54,8 +54,8 @@ export declare class FormulaDataModel extends Disposable {
54
54
  */
55
55
  getHiddenRowsFiltered(): IUnitRowData;
56
56
  updateFormulaData(unitId: string, sheetId: string, cellValue: IObjectMatrixPrimitiveType<Nullable<ICellData>>): IObjectMatrixPrimitiveType<IFormulaDataItem | null>;
57
- updateArrayFormulaRange(unitId: string, sheetId: string, cellValue: IObjectMatrixPrimitiveType<Nullable<ICellData>>): void;
58
- updateArrayFormulaCellData(unitId: string, sheetId: string, cellValue: IObjectMatrixPrimitiveType<Nullable<ICellData>>): void;
57
+ updateArrayFormulaRange(unitId: string, sheetId: string, cellValue: IObjectMatrixPrimitiveType<Nullable<ICellData>>): boolean;
58
+ updateArrayFormulaCellData(unitId: string, sheetId: string, cellValue: IObjectMatrixPrimitiveType<Nullable<ICellData>>): boolean;
59
59
  updateImageFormulaData(unitId: string, sheetId: string, cellValue: IObjectMatrixPrimitiveType<Nullable<ICellData>>): void;
60
60
  getFormulaStringByCell(row: number, column: number, sheetId: string, unitId: string): Nullable<string>;
61
61
  /**
@@ -18,4 +18,4 @@ import type { IFormulaDataItem, IFormulaIdMap } from '../../basics/common';
18
18
  export declare function updateFormulaDataByCellValue(sheetFormulaDataMatrix: ObjectMatrix<Nullable<IFormulaDataItem>>, newSheetFormulaDataMatrix: ObjectMatrix<IFormulaDataItem | null>, formulaIdMap: {
19
19
  [formulaId: string]: IFormulaIdMap;
20
20
  }, deleteFormulaIdMap: Map<string, string | IFormulaIdMap>, r: number, c: number, cell: Nullable<ICellData>): void;
21
- export declare function clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix: ObjectMatrix<IRange>, arrayFormulaCellDataMatrix: ObjectMatrix<Nullable<ICellData>>, r: number, c: number): true | undefined;
21
+ export declare function clearArrayFormulaCellDataByCell(arrayFormulaRangeMatrix: ObjectMatrix<IRange>, arrayFormulaCellDataMatrix: ObjectMatrix<Nullable<ICellData>>, r: number, c: number): boolean;
@@ -15,11 +15,11 @@
15
15
  */
16
16
  import type { IUnitRange } from '@univerjs/core';
17
17
  import type { Observable } from 'rxjs';
18
- import type { IFeatureDirtyRangeType, IFormulaDatasetConfig, IFormulaExecuteResultMap, IFormulaStringMap, IRuntimeUnitDataType, IUnitRowData } from '../basics/common';
18
+ import type { IArrayFormulaRangeType, IFeatureDirtyRangeType, IFormulaDatasetConfig, IFormulaExecuteResultMap, IFormulaStringMap, IRuntimeUnitDataType, IUnitExcludedCell, IUnitRowData } from '../basics/common';
19
19
  import type { IFormulaDependencyTreeFullJson, IFormulaDependencyTreeJson, IFormulaDependentsAndInRangeResults } from '../engine/dependency/dependency-tree';
20
20
  import type { FunctionVariantType } from '../engine/reference-object/base-reference-object';
21
21
  import type { IAllRuntimeData, IExecutionInProgressParams } from './runtime.service';
22
- import { Disposable, IConfigService } from '@univerjs/core';
22
+ import { AsyncLock, Disposable, IConfigService } from '@univerjs/core';
23
23
  import { Subject } from 'rxjs';
24
24
  import { Lexer } from '../engine/analysis/lexer';
25
25
  import { AstTreeBuilder } from '../engine/analysis/parser';
@@ -58,7 +58,7 @@ export declare class CalculateFormulaService extends Disposable implements ICalc
58
58
  readonly executionInProgressListener$: Observable<IExecutionInProgressParams>;
59
59
  protected readonly _executionCompleteListener$: Subject<IAllRuntimeData>;
60
60
  readonly executionCompleteListener$: Observable<IAllRuntimeData>;
61
- private _executeLock;
61
+ protected _executeLock: AsyncLock;
62
62
  protected _isCalculateTreeModel: boolean;
63
63
  constructor(_configService: IConfigService, _lexer: Lexer, _currentConfigService: IFormulaCurrentConfigService, _runtimeService: IFormulaRuntimeService, _formulaDependencyGenerator: IFormulaDependencyGenerator, _interpreter: Interpreter, _astTreeBuilder: AstTreeBuilder);
64
64
  dispose(): void;
@@ -76,8 +76,13 @@ export declare class CalculateFormulaService extends Disposable implements ICalc
76
76
  setRuntimeFeatureCellData(featureId: string, featureData: IRuntimeUnitDataType): void;
77
77
  setRuntimeFeatureRange(featureId: string, featureRange: IFeatureDirtyRangeType): void;
78
78
  execute(formulaDatasetConfig: IFormulaDatasetConfig): Promise<void>;
79
- private _executeStep;
80
- private _getArrayFormulaDirtyRangeAndExcludedRange;
79
+ protected _executeStep(): Promise<true | undefined>;
80
+ protected _getArrayFormulaDirtyRangeAndExcludedRange(arrayFormulaRange: IArrayFormulaRangeType, runtimeFeatureRange: {
81
+ [featureId: string]: IFeatureDirtyRangeType;
82
+ }): {
83
+ dirtyRanges: IUnitRange[];
84
+ excludedCell: IUnitExcludedCell;
85
+ };
81
86
  protected _apply(isArrayFormulaState?: boolean): Promise<IAllRuntimeData | undefined>;
82
87
  executeFormulas(formulas: IFormulaStringMap, rowData?: IUnitRowData): Promise<IFormulaExecuteResultMap>;
83
88
  calculate(formulaString: string): Promise<FunctionVariantType | undefined>;
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IUnitRange, Nullable } from '@univerjs/core';
16
+ import type { IRange, IUnitRange, Nullable } from '@univerjs/core';
17
17
  import type { AstRootNode } from '../engine/ast-node';
18
18
  import type { FormulaDependencyTree, IFormulaDependencyTree } from '../engine/dependency/dependency-tree';
19
19
  import { Disposable, ObjectMatrix, RTree } from '@univerjs/core';
@@ -43,6 +43,8 @@ export interface IDependencyManagerService {
43
43
  getAllTree(): IFormulaDependencyTree[];
44
44
  buildDependencyTree(shouldBeBuildTrees: IFormulaDependencyTree[], dependencyTrees?: IFormulaDependencyTree[]): IFormulaDependencyTree[];
45
45
  updateDependencyTreeDirtyState(treeId: number, isDirty: boolean): void;
46
+ openKdTree(): void;
47
+ closeKdTree(): void;
46
48
  }
47
49
  export declare class DependencyManagerBaseService extends Disposable implements IDependencyManagerService {
48
50
  buildDependencyTree(shouldBeBuildTrees: IFormulaDependencyTree[], dependencyTrees?: IFormulaDependencyTree[]): IFormulaDependencyTree[];
@@ -80,6 +82,8 @@ export declare class DependencyManagerBaseService extends Disposable implements
80
82
  protected _addDefinedName(unitId: string, definedName: string, treeId: number): void;
81
83
  addFormulaDependencyByDefinedName(tree: IFormulaDependencyTree, node: Nullable<AstRootNode>): void;
82
84
  updateDependencyTreeDirtyState(treeId: number, isDirty: boolean): void;
85
+ openKdTree(): void;
86
+ closeKdTree(): void;
83
87
  }
84
88
  /**
85
89
  * Passively marked as dirty, register the reference and execution actions of the feature plugin.
@@ -88,27 +92,8 @@ export declare class DependencyManagerBaseService extends Disposable implements
88
92
  * thereby completing the calculation of the entire dependency tree.
89
93
  */
90
94
  export declare class DependencyManagerService extends DependencyManagerBaseService implements IDependencyManagerService {
91
- protected _allTreeMap: Map<number, IFormulaDependencyTree>;
92
- dispose(): void;
93
- buildDependencyTree(shouldBeBuildTrees: IFormulaDependencyTree[], dependencyTrees?: IFormulaDependencyTree[]): IFormulaDependencyTree[];
94
- /**
95
- * Build the dependency relationship between the trees.
96
- * @param allTrees all FormulaDependencyTree
97
- * @param shouldBeBuildTrees FormulaDependencyTree[] | FormulaDependencyTreeCache
98
- */
99
- private _buildDependencyTree;
100
- /**
101
- * Build the reverse dependency relationship between the trees.
102
- * @param allTrees
103
- * @param dependencyTrees
104
- */
105
- private _buildReverseDependency;
106
- /**
107
- * Get all FormulaDependencyTree from _otherFormulaData, _featureFormulaData, _formulaData
108
- * return FormulaDependencyTree[]
109
- */
110
- getAllTree(): IFormulaDependencyTree[];
111
- getTreeById(treeId: number): IFormulaDependencyTree | undefined;
95
+ protected _allTreeMap: Map<number, Map<string, Map<string, IRange>>>;
96
+ protected _dependencyRTreeCache: RTree;
112
97
  reset(): void;
113
98
  addOtherFormulaDependency(unitId: string, sheetId: string, formulaId: string, dependencyTree: IFormulaDependencyTree): void;
114
99
  removeOtherFormulaDependency(unitId: string, sheetId: string, formulaIds: string[]): void;
@@ -119,16 +104,25 @@ export declare class DependencyManagerService extends DependencyManagerBaseServi
119
104
  addFormulaDependency(unitId: string, sheetId: string, row: number, column: number, dependencyTree: IFormulaDependencyTree): void;
120
105
  removeFormulaDependency(unitId: string, sheetId: string, row: number, column: number): void;
121
106
  clearFormulaDependency(unitId: string, sheetId?: string): void;
122
- /**
123
- * Clear the dependency relationship of the tree.
124
- * establish the relationship between the parent and the child.
125
- * @param shouldBeClearTree
126
- */
127
- clearDependencyForTree(shouldBeClearTree: Nullable<IFormulaDependencyTree>): void;
128
107
  private _removeDependencyRTreeCache;
129
108
  removeFormulaDependencyByDefinedName(unitId: string, definedName: string): void;
109
+ openKdTree(): void;
110
+ closeKdTree(): void;
130
111
  protected _removeAllTreeMap(treeId: Nullable<number>): void;
131
112
  protected _addAllTreeMap(tree: IFormulaDependencyTree): void;
132
- updateDependencyTreeDirtyState(treeId: number, isDirty: boolean): void;
113
+ dispose(): void;
114
+ buildDependencyTree(shouldBeBuildTrees: IFormulaDependencyTree[], dependencyTrees?: IFormulaDependencyTree[]): IFormulaDependencyTree[];
115
+ /**
116
+ * Build the dependency relationship between the trees.
117
+ * @param allTrees all FormulaDependencyTree
118
+ * @param shouldBeBuildTrees FormulaDependencyTree[] | FormulaDependencyTreeCache
119
+ */
120
+ private _buildDependencyTree;
121
+ /**
122
+ * Build the reverse dependency relationship between the trees.
123
+ * @param allTrees
124
+ * @param dependencyTrees
125
+ */
126
+ private _buildReverseDependency;
133
127
  }
134
128
  export declare const IDependencyManagerService: import("@wendellhu/redi").IdentifierDecorator<IDependencyManagerService>;
@@ -224,6 +224,7 @@ export declare class FormulaRuntimeService extends Disposable implements IFormul
224
224
  */
225
225
  private _isInOtherArrayFormulaRange;
226
226
  private _isInArrayFormulaRange;
227
+ private _isSameCellValue;
227
228
  private _checkIfArrayFormulaExceeded;
228
229
  private _isInDirtyRange;
229
230
  }