@rowsncolumns/dag
v7.2.30
Published
A Directed Acyclic Graph is used to store cells and its dependencies.
Readme
Cell dependency graph
A Directed Acyclic Graph is used to store cells and its dependencies.
Installation
This package is required by calculator.
yarn add @rowsncolumns/dagUsage
import { CellCoordinate, Dag } from "@rowsncolumns/dag";
const dag = new Dag()
// Consider user enters a formula in B1
// B1 = A1 + 10
const A1 = { rowIndex: 1, columnIndex: 1, sheetId: 1}
const B1 = { rowIndex: 2, columnIndex: 1, sheetId: 1}
dag.addNodeInput(B1, A1)
dag.markCellAsDirty(B1)
// Returns B1 as a cell to calculate
const dirtyCells = dag.getDirtyNodes()
// Now user changes A1
dag.markCellAsDirty(A1)
// Returns B1 as a cell to calculate
const dirtyCells = dag.getDirtyNodes()Exporting DAG as JSON
import { CellCoordinate, Dag } from "@rowsncolumns/dag";
const dag = new Dag()
// Export to JSON and persist it in server
const json = dag.toJSON()
// Restore from json
dag.fromJSON(json)