UNPKG

color-math

Version:
105 lines (85 loc) 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.evaluate = evaluate; Object.defineProperty(exports, "ColorScale", { enumerable: true, get: function get() { return _ColorScale["default"]; } }); Object.defineProperty(exports, "ValueType", { enumerable: true, get: function get() { return _ValueType["default"]; } }); Object.defineProperty(exports, "BlendMode", { enumerable: true, get: function get() { return _BlendMode["default"]; } }); exports.Nodes = exports.Evaluators = exports.Utils = void 0; var Utils = _interopRequireWildcard(require("./utils")); exports.Utils = Utils; var Evaluators = _interopRequireWildcard(require("./evaluators")); exports.Evaluators = Evaluators; var Nodes = _interopRequireWildcard(require("./nodes")); exports.Nodes = Nodes; var Parser = _interopRequireWildcard(require("./parser")); var _ColorScale = _interopRequireDefault(require("./ColorScale")); var _ValueType = _interopRequireDefault(require("./ValueType")); var _BlendMode = _interopRequireDefault(require("./BlendMode")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } Parser.parser.yy = Nodes; function evaluate(expr, options) { options = Object.assign({ evaluator: Evaluators.CoreEvaluator.instance, withAst: false, astWithLocs: false }, options); var program; var value; var error; try { program = Parser.parse(expr); value = program.evaluate(options.evaluator); } catch (e) { error = e.message || String(e); } return { withAst: options.withAst, astWithLocs: options.astWithLocs, evaluator: options.evaluator.$type, expr: expr, program: program, result: error != null ? null : value, resultStr: error != null ? null : formatValue(value), astStr: error != null || !options.withAst || !program ? null : JSON.stringify(program.getDto(options.astWithLocs), null, ' '), error: error != null ? error : null }; } function formatValue(value) { if (Utils.isColor(value)) { return Utils.formatColor(value); } else if (typeof value === 'number') { var s = value % 1 === 0 ? String(value) : value.toFixed(4).replace(/0+$/, ''); return s; } else if (typeof value === 'string') { return value; } else if (Array.isArray(value)) { var _s = '['; for (var i = 0; i < value.length; i++) { _s += formatValue(value[i]) + (i < value.length - 1 ? ', ' : ''); } _s += ']'; return _s; } else if (value instanceof _ColorScale["default"]) { return String(value); } else { return JSON.stringify(value, null, ' '); } }