UNPKG

@react-awesome-query-builder/core

Version:
765 lines (758 loc) 25.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.UPPER = exports.TRUNCATE_DATETIME = exports.TODAY = exports.START_OF_TODAY = exports.RELATIVE_DATETIME = exports.RELATIVE_DATE = exports.NOW = exports.LOWER = exports.LINEAR_REGRESSION = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } //import { customJsonLogicOperations } from "../utils/jsonLogic"; // Tip: search for `customJsonLogicOperations` in codebase to see custom JL funcs we use in `jsonLogicCustomOps` var dateDimListValues = { day: "day", week: "week", month: "month", year: "year" }; var dateDimDefault = "day"; var datetimeDimListValues = _objectSpread({ hour: "hour", minute: "minute", second: "second" }, dateDimListValues); var datetimeDimDefault = "day"; var NOW = exports.NOW = { label: "Now", returnType: "datetime", jsonLogicCustomOps: { now: {} }, // jsonLogic: "now", jsonLogic: function jsonLogic() { return { now: [] }; }, jsonLogicImport: function jsonLogicImport(v) { if (v["now"]) { return []; } }, //spelFunc: "new java.util.Date()", spelFunc: "T(java.time.LocalDateTime).now()", sqlFormatFunc: function sqlFormatFunc() { return "NOW()"; }, sqlFunc: "NOW", mongoFormatFunc: function mongoFormatFunc() { return { "$toDate": "$$NOW" }; // return { // "$dateFromString": { // "dateString": this.utils.moment(new Date()).format("YYYY-MM-DD HH:mm:ss"), // "format": "%Y-%m-%d %H:%M:%S" // } // }; }, formatFunc: function formatFunc() { return "NOW"; } }; // todo: add option like `resolveWithValueOnExport: false` for NOW, TODAY, START_OF_TODAY (issue #1234) ??? var TODAY = exports.TODAY = { label: "Today", returnType: "date", //jsonLogic: "today", jsonLogicCustomOps: { today: {} }, jsonLogic: function jsonLogic() { return { today: [] }; }, jsonLogicImport: function jsonLogicImport(v) { if (v["today"]) { return []; } }, spelFunc: "T(java.time.LocalDate).now()", sqlFormatFunc: function sqlFormatFunc() { return "CURDATE()"; }, sqlFunc: "CURDATE", mongoFormatFunc: function mongoFormatFunc() { return { "$dateTrunc": { // or "date": "$$NOW", "date": { "$toDate": "$$NOW" }, "unit": "day" } }; // return { // "$dateFromString": { // "dateString": this.utils.moment(new Date()).format("YYYY-MM-DD"), // "format": "%Y-%m-%d" // } // }; }, formatFunc: function formatFunc() { return "TODAY"; } }; var START_OF_TODAY = exports.START_OF_TODAY = { label: "Start of today", returnType: "datetime", jsonLogicCustomOps: { start_of_today: {} }, // jsonLogic: "start_of_today", jsonLogic: function jsonLogic() { return { start_of_today: [] }; }, jsonLogicImport: function jsonLogicImport(v) { if (v["start_of_today"]) { return []; } }, spelFunc: "T(java.time.LocalDateTime).now().truncatedTo(T(java.time.temporal.ChronoUnit).DAYS)", spelImport: function spelImport(spel) { var _obj$obj, _oneArg$children, _oneArg$children2, _oneArgType$cls; // spel = { // "type": "!func", // "methodName": "truncatedTo", // "args": [ // { // "type": "compound", // "children": [ // { "type": "!type", "cls": [ "java", "time", "temporal", "ChronoUnit" ] }, // { "type": "property", "val": "DAYS" } // ] // } // ], // "obj": { // "type": "!func", // "methodName": "now", // "obj": { // "type": "!type", // "cls": [ "java", "time", "LocalDateTime" ] // } // } // } var obj = spel.obj, args = spel.args; var isTruncate = (spel === null || spel === void 0 ? void 0 : spel.type) === "!func" && (spel === null || spel === void 0 ? void 0 : spel.methodName) === "truncatedTo"; var isObjNow = (obj === null || obj === void 0 ? void 0 : obj.methodName) === "now" && (obj === null || obj === void 0 || (_obj$obj = obj.obj) === null || _obj$obj === void 0 || (_obj$obj = _obj$obj.cls) === null || _obj$obj === void 0 ? void 0 : _obj$obj.join(".")) === "java.time.LocalDateTime"; var argsLength = (args === null || args === void 0 ? void 0 : args.length) || 0; var oneArg = args === null || args === void 0 ? void 0 : args[0]; var oneArgType = oneArg === null || oneArg === void 0 || (_oneArg$children = oneArg.children) === null || _oneArg$children === void 0 ? void 0 : _oneArg$children[0]; var oneArgProperty = oneArg === null || oneArg === void 0 || (_oneArg$children2 = oneArg.children) === null || _oneArg$children2 === void 0 ? void 0 : _oneArg$children2[1]; var oneArgCls = (oneArgType === null || oneArgType === void 0 ? void 0 : oneArgType.type) === "!type" && (oneArgType === null || oneArgType === void 0 || (_oneArgType$cls = oneArgType.cls) === null || _oneArgType$cls === void 0 ? void 0 : _oneArgType$cls.join(".")); var oneArgConst = (oneArgProperty === null || oneArgProperty === void 0 ? void 0 : oneArgProperty.type) === "property" && (oneArgProperty === null || oneArgProperty === void 0 ? void 0 : oneArgProperty.val); var isArgDays = argsLength === 1 && oneArg.type === "compound" && oneArgCls === "java.time.temporal.ChronoUnit" && oneArgConst === "DAYS"; if (isObjNow && isTruncate && isArgDays) { return {}; } }, sqlFormatFunc: function sqlFormatFunc() { return "DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')"; }, sqlImport: function sqlImport(sqlObj, _, sqlDialect) { var _sqlObj$children; if ((sqlObj === null || sqlObj === void 0 ? void 0 : sqlObj.func) === "DATE_FORMAT" && ((_sqlObj$children = sqlObj.children) === null || _sqlObj$children === void 0 ? void 0 : _sqlObj$children.length) === 2) { var _sqlObj$children2 = (0, _slicedToArray2["default"])(sqlObj.children, 2), date = _sqlObj$children2[0], format = _sqlObj$children2[1]; if ((format === null || format === void 0 ? void 0 : format.value) == "%Y-%m-%d 00:00:00" && (date === null || date === void 0 ? void 0 : date.func) == "NOW") { return { args: {} }; } } }, mongoFormatFunc: function mongoFormatFunc() { return { "$dateTrunc": { "date": { "$toDate": "$$NOW" }, "unit": "day" } }; // return { // "$dateFromString": { // "dateString": this.utils.moment(new Date()).format("YYYY-MM-DD"), // "format": "%Y-%m-%d" // } // }; }, formatFunc: function formatFunc() { return "START_OF_TODAY"; } }; var TRUNCATE_DATETIME = exports.TRUNCATE_DATETIME = { label: "Truncate", returnType: "datetime", renderBrackets: ["", ""], renderSeps: ["to"], jsonLogicCustomOps: { datetime_truncate: {} }, jsonLogic: function jsonLogic(_ref) { var date = _ref.date, dim = _ref.dim; return { "datetime_truncate": [date, dim] }; }, jsonLogicImport: function jsonLogicImport(v) { if (v["datetime_truncate"]) { var date = v["datetime_truncate"][0]; var dim = v["datetime_truncate"][1]; return [date, dim]; } }, spelFormatFunc: function spelFormatFunc(_ref2) { var date = _ref2.date, dim = _ref2.dim; var dimPluralUppercase = (dim.charAt(0).toUpperCase() + dim.slice(1) + "s").toUpperCase(); return "".concat(date, ".truncatedTo(T(java.time.temporal.ChronoUnit).").concat(dimPluralUppercase, ")"); }, spelImport: function spelImport(spel) { var _oneArg$children3, _oneArg$children4, _oneArgType$cls2; // spel = { // "type": "!func", // "methodName": "truncatedTo", // "args": [ // { // "type": "compound", // "children": [ // { "type": "!type", "cls": [ "java", "time", "temporal", "ChronoUnit" ] }, // { "type": "property", "val": "DAYS" } // ] // } // ], // } var args = spel.args; var isTruncate = (spel === null || spel === void 0 ? void 0 : spel.type) === "!func" && (spel === null || spel === void 0 ? void 0 : spel.methodName) === "truncatedTo"; var argsLength = (args === null || args === void 0 ? void 0 : args.length) || 0; var oneArg = args === null || args === void 0 ? void 0 : args[0]; var oneArgType = oneArg === null || oneArg === void 0 || (_oneArg$children3 = oneArg.children) === null || _oneArg$children3 === void 0 ? void 0 : _oneArg$children3[0]; var oneArgProperty = oneArg === null || oneArg === void 0 || (_oneArg$children4 = oneArg.children) === null || _oneArg$children4 === void 0 ? void 0 : _oneArg$children4[1]; var oneArgCls = (oneArgType === null || oneArgType === void 0 ? void 0 : oneArgType.type) === "!type" && (oneArgType === null || oneArgType === void 0 || (_oneArgType$cls2 = oneArgType.cls) === null || _oneArgType$cls2 === void 0 ? void 0 : _oneArgType$cls2.join(".")); var oneArgConst = (oneArgProperty === null || oneArgProperty === void 0 ? void 0 : oneArgProperty.type) === "property" && (oneArgProperty === null || oneArgProperty === void 0 ? void 0 : oneArgProperty.val); var isArgDays = argsLength === 1 && oneArg.type === "compound" && oneArgCls === "java.time.temporal.ChronoUnit" && oneArgConst; var dim = oneArgConst.toLowerCase().substring(0, oneArgConst.length - 1); if (isTruncate && isArgDays) { return { date: spel.obj, dim: { type: "string", val: dim } }; } }, // MySQL sqlFormatFunc: function sqlFormatFunc(_ref3, sqlDialect) { var date = _ref3.date, dim = _ref3.dim; if (!sqlDialect || sqlDialect === "MySQL") { dim = dim.replace(/^'|'$/g, ""); switch (dim) { case "second": return "DATE_FORMAT(".concat(date, ", '%Y-%m-%d %H:%i:%s')"); case "minute": return "DATE_FORMAT(".concat(date, ", '%Y-%m-%d %H:%i:00')"); case "hour": return "DATE_FORMAT(".concat(date, ", '%Y-%m-%d %H:00:00')"); case "day": return "DATE_FORMAT(".concat(date, ", '%Y-%m-%d 00:00:00')"); case "week": return "DATE_SUB(DATE_FORMAT(".concat(date, ", '%Y-%m-%d 00:00:00'), INTERVAL WEEKDAY(").concat(date, ") DAY)"); case "month": return "DATE_FORMAT(".concat(date, ", '%Y-%m-01 00:00:00')"); case "year": return "DATE_FORMAT(".concat(date, ", '%Y-01-01 00:00:00')"); } } else if (sqlDialect === "PostgreSQL") { return "date_trunc(".concat(dim, ", ").concat(date, ")"); } }, sqlImport: function sqlImport(sqlObj, _, sqlDialect) { if (!sqlDialect || sqlDialect === "MySQL") { var _sqlObj$children3, _sqlObj$children5; if ((sqlObj === null || sqlObj === void 0 ? void 0 : sqlObj.func) === "DATE_FORMAT" && ((_sqlObj$children3 = sqlObj.children) === null || _sqlObj$children3 === void 0 ? void 0 : _sqlObj$children3.length) === 2) { var _sqlObj$children4 = (0, _slicedToArray2["default"])(sqlObj.children, 2), date = _sqlObj$children4[0], format = _sqlObj$children4[1]; var dim; switch (format === null || format === void 0 ? void 0 : format.value) { case "%Y-%m-%d %H:%i:%s": dim = "second"; break; case "%Y-%m-%d %H:%i:00": dim = "minute"; break; case "%Y-%m-%d %H:00:00": dim = "hour"; break; case "%Y-%m-%d 00:00:00": dim = "day"; break; case "%Y-%m-01 00:00:00": dim = "month"; break; case "%Y-01-01 00:00:00": dim = "year"; } if (dim) { return { args: { date: date, dim: dim } }; } } else if ((sqlObj === null || sqlObj === void 0 ? void 0 : sqlObj.func) === "DATE_SUB" && ((_sqlObj$children5 = sqlObj.children) === null || _sqlObj$children5 === void 0 ? void 0 : _sqlObj$children5.length) === 2) { var _dateFormat$children; var _sqlObj$children6 = (0, _slicedToArray2["default"])(sqlObj.children, 2), dateFormat = _sqlObj$children6[0], interval = _sqlObj$children6[1]; var isFormat = (dateFormat === null || dateFormat === void 0 ? void 0 : dateFormat.func) === "DATE_FORMAT" && ((_dateFormat$children = dateFormat.children) === null || _dateFormat$children === void 0 ? void 0 : _dateFormat$children.length) === 2; var isIntervalDay = interval._type == "interval" && interval.unit === "day"; if (isFormat && isIntervalDay) { var _dateFormat$children2 = (0, _slicedToArray2["default"])(dateFormat.children, 2), _date = _dateFormat$children2[0], _format = _dateFormat$children2[1]; if ((_format === null || _format === void 0 ? void 0 : _format.value) === "%Y-%m-%d 00:00:00") { return { args: { date: _date, dim: "week" } }; } } } return undefined; } else if (sqlDialect === "PostgreSQL") { var _sqlObj$children7; if ((sqlObj === null || sqlObj === void 0 ? void 0 : sqlObj.func) === "date_trunc" && ((_sqlObj$children7 = sqlObj.children) === null || _sqlObj$children7 === void 0 ? void 0 : _sqlObj$children7.length) === 2) { var _sqlObj$children8 = (0, _slicedToArray2["default"])(sqlObj.children, 2), _dim = _sqlObj$children8[0], _date2 = _sqlObj$children8[1]; return { args: { date: _date2, dim: _dim.value } }; } } }, mongoFormatFunc: function mongoFormatFunc(_ref4) { var date = _ref4.date, dim = _ref4.dim; return { "$dateTrunc": { "date": date, "unit": dim } }; }, formatFunc: function formatFunc(_ref5) { var date = _ref5.date, dim = _ref5.dim; return "TRUNCATE ".concat(date, " TO ").concat(dim); }, args: { date: { label: "Datetime", type: "datetime", defaultValue: { func: "NOW", args: [] }, valueSources: ["value", "field", "func"], escapeForFormat: true }, dim: { label: "Dimension", type: "select", defaultValue: datetimeDimDefault, valueSources: ["value"], mainWidgetProps: { customProps: { showSearch: false } }, fieldSettings: { listValues: datetimeDimListValues }, escapeForFormat: false } } }; var RELATIVE_DATETIME = exports.RELATIVE_DATETIME = { label: "Relative", returnType: "datetime", renderBrackets: ["", ""], renderSeps: ["", "", ""], spelFormatFunc: function spelFormatFunc(_ref6) { var date = _ref6.date, op = _ref6.op, val = _ref6.val, dim = _ref6.dim; var dimPlural = dim.charAt(0).toUpperCase() + dim.slice(1) + "s"; var method = op + dimPlural; return "".concat(date, ".").concat(method, "(").concat(val, ")"); }, spelImport: function spelImport(spel) { var _spel$methodName; var date, op, val, dim; var matchRes = (_spel$methodName = spel.methodName) === null || _spel$methodName === void 0 ? void 0 : _spel$methodName.match(/^(minus|plus)(\w+)s$/); if (matchRes) { dim = matchRes[2].toLowerCase(); op = matchRes[1]; if (["minus", "plus"].includes(op)) { if (Object.keys(datetimeDimListValues).includes(dim)) { op = { type: "string", val: op }; dim = { type: "string", val: dim }; val = spel.args[0]; date = spel.obj; return { date: date, op: op, val: val, dim: dim }; } } } }, jsonLogic: function jsonLogic(_ref7) { var date = _ref7.date, op = _ref7.op, val = _ref7.val, dim = _ref7.dim; return { "datetime_add": [date, val * (op == "minus" ? -1 : +1), dim] }; }, jsonLogicImport: function jsonLogicImport(v) { if (v["datetime_add"]) { var date = v["datetime_add"][0]; var val = Math.abs(v["datetime_add"][1]); var op = v["datetime_add"][1] >= 0 ? "plus" : "minus"; var dim = v["datetime_add"][2]; return [date, op, val, dim]; } }, jsonLogicCustomOps: { datetime_add: {} }, // MySQL //todo: other SQL dialects? sqlFormatFunc: function sqlFormatFunc(_ref8) { var date = _ref8.date, op = _ref8.op, val = _ref8.val, dim = _ref8.dim; return "DATE_ADD(".concat(date, ", INTERVAL ").concat(parseInt(val) * (op == "minus" ? -1 : +1), " ").concat(dim.replace(/^'|'$/g, ""), ")"); }, sqlImport: function sqlImport(sqlObj, _, sqlDialect) { var _sqlObj$children9; if (["DATE_ADD", "DATE_SUB"].includes(sqlObj === null || sqlObj === void 0 ? void 0 : sqlObj.func) && ((_sqlObj$children9 = sqlObj.children) === null || _sqlObj$children9 === void 0 ? void 0 : _sqlObj$children9.length) === 2) { var _sqlObj$children10 = (0, _slicedToArray2["default"])(sqlObj.children, 2), date = _sqlObj$children10[0], interval = _sqlObj$children10[1]; if (interval._type == "interval") { return { args: { date: date, op: (sqlObj === null || sqlObj === void 0 ? void 0 : sqlObj.func) === "DATE_ADD" ? "plus" : "minus", val: interval.value, dim: interval.unit } }; } } }, mongoFormatFunc: function mongoFormatFunc(_ref9) { var date = _ref9.date, op = _ref9.op, val = _ref9.val, dim = _ref9.dim; return { "$dateAdd": { "startDate": date, "unit": dim, "amount": val * (op == "minus" ? -1 : +1) } }; }, formatFunc: function formatFunc(_ref10) { var date = _ref10.date, op = _ref10.op, val = _ref10.val, dim = _ref10.dim; return !val ? date : "".concat(date, " ").concat(op == "minus" ? "-" : "+", " ").concat(val, " ").concat(dim); }, args: { date: { label: "Datetime", type: "datetime", defaultValue: { func: "NOW", args: [] }, valueSources: ["value", "field", "func"], escapeForFormat: true }, op: { label: "Op", type: "select", defaultValue: "plus", valueSources: ["value"], mainWidgetProps: { customProps: { showSearch: false } }, fieldSettings: { listValues: { plus: "+", minus: "-" } }, escapeForFormat: false }, val: { label: "Value", type: "number", fieldSettings: { min: 0 }, defaultValue: 0, valueSources: ["value"], escapeForFormat: false }, dim: { label: "Dimension", type: "select", defaultValue: datetimeDimDefault, valueSources: ["value"], mainWidgetProps: { customProps: { showSearch: false } }, fieldSettings: { listValues: datetimeDimListValues }, escapeForFormat: false } } }; var RELATIVE_DATE = exports.RELATIVE_DATE = _objectSpread(_objectSpread({}, RELATIVE_DATETIME), {}, { label: "Relative", returnType: "date", jsonLogic: function jsonLogic(_ref11) { var date = _ref11.date, op = _ref11.op, val = _ref11.val, dim = _ref11.dim; return { "date_add": [date, val * (op == "minus" ? -1 : +1), dim] }; }, jsonLogicImport: function jsonLogicImport(v) { var date = v["date_add"][0]; var val = Math.abs(v["date_add"][1]); var op = v["date_add"][1] >= 0 ? "plus" : "minus"; var dim = v["date_add"][2]; return [date, op, val, dim]; }, jsonLogicCustomOps: { date_add: {} }, args: { date: _objectSpread(_objectSpread({}, RELATIVE_DATETIME.args.date), {}, { label: "Date", type: "date", defaultValue: { func: "TODAY", args: [] } }), op: _objectSpread({}, RELATIVE_DATETIME.args.op), val: _objectSpread({}, RELATIVE_DATETIME.args.val), dim: _objectSpread(_objectSpread({}, RELATIVE_DATETIME.args.dim), {}, { defaultValue: dateDimDefault, fieldSettings: { listValues: dateDimListValues } }) } }); // todo: add DATEDIFF (issue #142) var LOWER = exports.LOWER = { label: "Lowercase", mongoFunc: "$toLower", jsonLogic: "toLowerCase", sqlFunc: "LOWER", spelFunc: "${str}.toLowerCase()", //jsonLogicIsMethod: true, // Removed in JsonLogic 2.x due to Prototype Pollution jsonLogicCustomOps: { toLowerCase: {} }, returnType: "text", args: { str: { label: "String", type: "text", valueSources: ["value", "field", "func"] } } }; var UPPER = exports.UPPER = { label: "Uppercase", mongoFunc: "$toUpper", jsonLogic: "toUpperCase", sqlFunc: "UPPER", spelFunc: "${str}.toUpperCase()", //jsonLogicIsMethod: true, // Removed in JsonLogic 2.x due to Prototype Pollution jsonLogicCustomOps: { toUpperCase: {} }, returnType: "text", args: { str: { label: "String", type: "text", valueSources: ["value", "field", "func"] } } }; var LINEAR_REGRESSION = exports.LINEAR_REGRESSION = { label: "Linear regression", returnType: "number", formatFunc: function formatFunc(_ref12, _) { var coef = _ref12.coef, bias = _ref12.bias, val = _ref12.val; return "(".concat(coef, " * ").concat(val, " + ").concat(bias, ")"); }, sqlFormatFunc: function sqlFormatFunc(_ref13) { var coef = _ref13.coef, bias = _ref13.bias, val = _ref13.val; return "(".concat(coef, " * ").concat(val, " + ").concat(bias, ")"); }, spelFormatFunc: function spelFormatFunc(_ref14) { var coef = _ref14.coef, bias = _ref14.bias, val = _ref14.val; return "(".concat(coef, " * ").concat(val, " + ").concat(bias, ")"); }, spelImport: function spelImport(spel) { var coef, val, bias, a; if (spel.type === "op-plus") { var _spel$children = (0, _slicedToArray2["default"])(spel.children, 2); a = _spel$children[0]; bias = _spel$children[1]; if (a.type === "op-multiply") { var _a$children = (0, _slicedToArray2["default"])(a.children, 2); coef = _a$children[0]; val = _a$children[1]; return { coef: coef, val: val, bias: bias }; } } }, sqlImport: function sqlImport(sqlObj, _, sqlDialect) { var _sqlObj$children11; if (["+"].includes(sqlObj === null || sqlObj === void 0 ? void 0 : sqlObj.operator) && ((_sqlObj$children11 = sqlObj.children) === null || _sqlObj$children11 === void 0 ? void 0 : _sqlObj$children11.length) === 2) { var _left$children; var _sqlObj$children12 = (0, _slicedToArray2["default"])(sqlObj.children, 2), left = _sqlObj$children12[0], bias = _sqlObj$children12[1]; if (["*"].includes(left === null || left === void 0 ? void 0 : left.operator) && ((_left$children = left.children) === null || _left$children === void 0 ? void 0 : _left$children.length) === 2) { var _left$children2 = (0, _slicedToArray2["default"])(left.children, 2), coef = _left$children2[0], val = _left$children2[1]; return { args: { coef: coef, val: val, bias: bias } }; } } }, mongoFormatFunc: function mongoFormatFunc(_ref15) { var coef = _ref15.coef, bias = _ref15.bias, val = _ref15.val; return { "$sum": [{ "$multiply": [coef, val] }, bias] }; }, jsonLogic: function jsonLogic(_ref16) { var coef = _ref16.coef, bias = _ref16.bias, val = _ref16.val; return { "+": [{ "*": [coef, val] }, bias] }; }, jsonLogicImport: function jsonLogicImport(v) { var coef = v["+"][0]["*"][0]; var val = v["+"][0]["*"][1]; var bias = v["+"][1]; return [coef, val, bias]; }, renderBrackets: ["", ""], renderSeps: [" * ", " + "], args: { coef: { label: "Coef", type: "number", defaultValue: 1, valueSources: ["value"] }, val: { label: "Value", type: "number", valueSources: ["value", "field"] }, bias: { label: "Bias", type: "number", defaultValue: 0, valueSources: ["value"] } } };