UNPKG

highcharts

Version:
136 lines (135 loc) 2.48 kB
/* * * * (c) 2009-2025 Highsoft AS * * License: www.highcharts.com/license * * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!! * * Authors: * - Sophie Bremer * * */ 'use strict'; /* * * * Constants * * */ /** * Array of all possible operators. * @private */ const operators = ['+', '-', '*', '/', '^', '=', '<', '<=', '>', '>=']; /* * * * Functions * * */ /** * Tests an item for a Formula array. * * @private * * @param {Highcharts.FormulaItem} item * Item to test. * * @return {boolean} * `true`, if the item is a formula (or argument) array. */ function isFormula(item) { return item instanceof Array; } /** * Tests an item for a Function structure. * * @private * * @param {Highcharts.FormulaItem} item * Item to test. * * @return {boolean} * `true`, if the item is a formula function. */ function isFunction(item) { return (typeof item === 'object' && !(item instanceof Array) && item.type === 'function'); } /** * Tests an item for an Operator string. * * @private * * @param {Highcharts.FormulaItem} item * Item to test. * * @return {boolean} * `true`, if the item is an operator string. */ function isOperator(item) { return (typeof item === 'string' && operators.indexOf(item) >= 0); } /** * Tests an item for a Range structure. * * @private * * @param {Highcharts.FormulaItem} item * Item to test. * * @return {boolean} * `true`, if the item is a range. */ function isRange(item) { return (typeof item === 'object' && !(item instanceof Array) && item.type === 'range'); } /** * Tests an item for a Reference structure. * * @private * * @param {Highcharts.FormulaItem} item * Item to test. * * @return {boolean} * `true`, if the item is a reference. */ function isReference(item) { return (typeof item === 'object' && !(item instanceof Array) && item.type === 'reference'); } /** * Tests an item for a Value structure. * * @private * * @param {Highcharts.FormulaItem|null|undefined} item * Item to test. * * @return {boolean} * `true`, if the item is a value. */ function isValue(item) { return (typeof item === 'boolean' || typeof item === 'number' || typeof item === 'string'); } /* * * * Default Export * * */ const MathFormula = { isFormula, isFunction, isOperator, isRange, isReference, isValue }; export default MathFormula;