import { Store } from 'unistore'; import { IStoreState, ID, IBodyCellNamePolicy } from '../../index.data'; import FormulaManager from '../FormulaManager'; import { formulaToHtml, htmlToFormula, getCellName } from './helper'; import { FormulaManagerConfig } from '../index.data'; // 暂时不支持跨表 class NamedFormulaManager extends FormulaManager { bodyCellNamePolicy?: IBodyCellNamePolicy; constructor( public store: Store, public config: FormulaManagerConfig & { bodyCellNamePolicy?: IBodyCellNamePolicy; }, ) { super(store, config); this.bodyCellNamePolicy = config.bodyCellNamePolicy; } // 只需转为html transformToUser(internalFormula: string): string { return formulaToHtml(this.store.getState(), internalFormula, this.bodyCellNamePolicy!); } transformToInternal(userFormula: string): string { return htmlToFormula(userFormula); } transformCellToUser(internalCellId: ID): { rowName: string; colName: string } { return getCellName(this.store.getState(), internalCellId, this.bodyCellNamePolicy!)!; } } export default NamedFormulaManager;