UNPKG

react-spreadsheet

Version:

Simple, customizable yet performant spreadsheet for React

37 lines (28 loc) 962 B
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import * as Types from "./types"; import { extractLabel } from "hot-formula-parser/lib/helper/cell"; function isFormulaCell(cell) { return Boolean(cell && cell.value && typeof cell.value === "string" && cell.value.startsWith("=")); } var FORMULA_CELL_REFERENCES = /\$?[A-Z]+\$?[0-9]+/g; /** @todo move me */ export function getBindingsForCell(cell) { if (!isFormulaCell(cell)) { return []; } var value = cell.value; // Get raw cell references from formula var match = value.match(FORMULA_CELL_REFERENCES); if (!match) { return []; } // Normalize references to points return match.map(function (substr) { var _extractLabel = extractLabel(substr), _extractLabel2 = _slicedToArray(_extractLabel, 2), row = _extractLabel2[0], column = _extractLabel2[1]; return { row: row.index, column: column.index }; }, {}); }