hyperformula
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
25 lines (24 loc) • 2.72 kB
JavaScript
;
exports.__esModule = true;
exports.UNQUOTED_SHEET_NAME_PATTERN = exports.UNICODE_LETTER_PATTERN = exports.SHEET_NAME_PATTERN = exports.ROW_REFERENCE_PATTERN = exports.RANGE_OPERATOR = exports.R1C1_CELL_REFERENCE_PATTERN = exports.QUOTED_SHEET_NAME_PATTERN = exports.ODFF_WHITESPACE_PATTERN = exports.NON_RESERVED_CHARACTER_PATTERN = exports.NAMED_EXPRESSION_PATTERN = exports.COLUMN_REFERENCE_PATTERN = exports.CELL_REFERENCE_WITH_NEXT_CHARACTER_PATTERN = exports.CELL_REFERENCE_PATTERN = exports.ALL_WHITESPACE_PATTERN = exports.ALL_UNICODE_LETTERS_ARRAY = exports.ALL_DIGITS_ARRAY = exports.ABSOLUTE_OPERATOR = void 0;
/**
* @license
* Copyright (c) 2025 Handsoncode. All rights reserved.
*/
const RANGE_OPERATOR = exports.RANGE_OPERATOR = ':';
const ABSOLUTE_OPERATOR = exports.ABSOLUTE_OPERATOR = '$';
const ALL_WHITESPACE_PATTERN = exports.ALL_WHITESPACE_PATTERN = '\\s+';
const ODFF_WHITESPACE_PATTERN = exports.ODFF_WHITESPACE_PATTERN = '[ \\t\\n\\r]+';
const UNICODE_LETTER_PATTERN = exports.UNICODE_LETTER_PATTERN = 'A-Za-z\u00C0-\u02AF';
const NON_RESERVED_CHARACTER_PATTERN = exports.NON_RESERVED_CHARACTER_PATTERN = `${UNICODE_LETTER_PATTERN}0-9_.`;
const UNQUOTED_SHEET_NAME_PATTERN = exports.UNQUOTED_SHEET_NAME_PATTERN = `[${UNICODE_LETTER_PATTERN}0-9_]+`;
const QUOTED_SHEET_NAME_PATTERN = exports.QUOTED_SHEET_NAME_PATTERN = "'(((?!').|'')*)'";
const SHEET_NAME_PATTERN = exports.SHEET_NAME_PATTERN = `(${UNQUOTED_SHEET_NAME_PATTERN}|${QUOTED_SHEET_NAME_PATTERN})!`;
const CELL_REFERENCE_PATTERN = exports.CELL_REFERENCE_PATTERN = `(${SHEET_NAME_PATTERN})?\\${ABSOLUTE_OPERATOR}?[A-Za-z]+\\${ABSOLUTE_OPERATOR}?[0-9]+`;
const COLUMN_REFERENCE_PATTERN = exports.COLUMN_REFERENCE_PATTERN = `(${SHEET_NAME_PATTERN})?\\${ABSOLUTE_OPERATOR}?[A-Za-z]+`;
const ROW_REFERENCE_PATTERN = exports.ROW_REFERENCE_PATTERN = `(${SHEET_NAME_PATTERN})?\\${ABSOLUTE_OPERATOR}?[0-9]+`;
const R1C1_CELL_REFERENCE_PATTERN = exports.R1C1_CELL_REFERENCE_PATTERN = '[rR][0-9]*[cC][0-9]*';
const CELL_REFERENCE_WITH_NEXT_CHARACTER_PATTERN = exports.CELL_REFERENCE_WITH_NEXT_CHARACTER_PATTERN = `(${CELL_REFERENCE_PATTERN})[^${NON_RESERVED_CHARACTER_PATTERN}]`;
const NAMED_EXPRESSION_PATTERN = exports.NAMED_EXPRESSION_PATTERN = `[${UNICODE_LETTER_PATTERN}_][${NON_RESERVED_CHARACTER_PATTERN}]*`;
const ALL_DIGITS_ARRAY = exports.ALL_DIGITS_ARRAY = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
const ALL_UNICODE_LETTERS_ARRAY = exports.ALL_UNICODE_LETTERS_ARRAY = [...Array.from(Array(26)).map((_, i) => i + 'A'.charCodeAt(0)), ...Array.from(Array(26)).map((_, i) => i + 'a'.charCodeAt(0)), ...Array.from(Array(0x02AF - 0x00C0 + 1)).map((_, i) => i + 0x00C0)].map(code => String.fromCharCode(code));