@univerjs-pro/engine-formula
Version:
Performance-enhanced formula engine plugin for Univer Pro.
50 lines (49 loc) • 3.72 kB
TypeScript
import type { IUnitRange } from '@univerjs/core';
import type { FormulaDependencyTree, IDirtyUnitFeatureMap, IDirtyUnitOtherFormulaMap, IDirtyUnitSheetNameMap, IFormulaDependencyTree } from '@univerjs/engine-formula';
import type { DynamicResolver, ICalcNodeRef, ICompressedSharedFormulaGroup } from '../engine/dependency-engine';
import { DependencyManagerBaseService } from '@univerjs/engine-formula';
export declare class DependencyManagerProService extends DependencyManagerBaseService {
private _dependencyEngineCache;
reset(): void;
private _getCellIdsAndRanges;
private _getDynamicDeps;
addOtherFormulaDependencyPro(unitId: string, sheetId: string, formulaId: string, dependencyTree: IFormulaDependencyTree, featureNodes?: ICalcNodeRef[], mode?: 'replace' | 'merge'): number;
removeOtherFormulaDependency(unitId: string, sheetId: string, formulaIds: string[]): void;
clearOtherFormulaDependency(unitId: string, sheetId?: string): void;
getOtherFormulaDependencyPro(unitId: string, sheetId: string, formulaId: string, refOffsetX: number, refOffsetY: number): number | undefined;
addFeatureFormulaDependencyPro(unitId: string, sheetId: string, featureId: string, dependencyTree: FormulaDependencyTree): number;
removeFeatureFormulaDependency(unitId: string, sheetId: string, featureIds: string[]): void;
clearFeatureFormulaDependency(unitId: string, sheetId?: string): void;
getFeatureFormulaDependencyPro(unitId: string, sheetId: string, featureId: string): number | undefined;
getFeatureFormulaDependencyNodePro(unitId: string, sheetId: string, featureId: string): ICalcNodeRef;
addFormulaDependencyPro(unitId: string, sheetId: string, row: number, column: number, dependencyTree: IFormulaDependencyTree, featureNodes?: ICalcNodeRef[], mode?: 'replace' | 'merge'): number;
addFormulaDependencyNodeOnlyPro(unitId: string, sheetId: string, row: number, column: number): number;
registerCompressedSharedFormulaGroup(group: ICompressedSharedFormulaGroup): void;
clearCompressedSharedFormulaGroups(unitId?: string, sheetId?: string): void;
removeFormulaDependency(unitId: string, sheetId: string, row: number, column: number): void;
clearFormulaDependency(unitId: string, sheetId?: string): void;
getFormulaDependencyPro(unitId: string, sheetId: string, row: number, column: number): number | undefined;
markIndicesChanged(indices: number[], options?: {
onlySelf?: boolean;
}): void;
markRangesChanged(ranges: IUnitRange[], options?: {
includeFormulaCells?: boolean;
coalesce?: boolean;
}): void;
markDirtyFeatureCalculations(dirtyFeatureMap: IDirtyUnitFeatureMap): void;
markDirtyOtherFormulas(dirtyOtherFormulaMap: IDirtyUnitOtherFormulaMap): void;
markDirtySheetNames(dirtyNameMap: IDirtyUnitSheetNameMap): void;
markAllDirty(): void;
clearCalculatedDirty(indices: number[]): void;
hasDynamicDeps(node: ICalcNodeRef): boolean;
hasDynamicDepsByIndex(nodeIndex: number): boolean;
refreshDynamicDeps(node: ICalcNodeRef, resolver: DynamicResolver): boolean;
refreshDynamicDepsByIndex(nodeIndex: number, resolver: DynamicResolver): boolean;
hasUncalculatedDirtyPrecedentByIndex(nodeIndex: number, calculatedNodeIndices: ReadonlySet<number>): boolean;
forEachPrecedentNodeByIndex(nodeIndex: number, cb: (precedentNodeIndex: number) => void): void;
forEachDependentNodeByIndex(nodeIndex: number, cb: (dependentNodeIndex: number) => void): void;
prepareDynamicDependencies(resolver: DynamicResolver): boolean;
getCalculationOrder(options?: {
detectCycles?: boolean;
}): import("../engine/dependency-engine").ICalculationOrderResult;
}