react-spreadsheet
Version:
Simple, customizable yet performant spreadsheet for React
37 lines (28 loc) • 962 B
JavaScript
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
};
}, {});
}