UNPKG

@react-query-builder-express/core

Version:
87 lines (85 loc) 4.96 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof3 = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.isImmutableTree = exports.getTree = void 0; Object.defineProperty(exports, "isJsonLogic", { enumerable: true, get: function get() { return _stuff.isJsonLogic; } }); exports.isTree = void 0; exports.jsToImmutable = jsToImmutable; exports.loadTree = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _immutable = _interopRequireWildcard(require("immutable")); var _treeUtils = require("../utils/treeUtils"); var _stuff = require("../utils/stuff"); var _uuid = _interopRequireDefault(require("../utils/uuid")); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } var getTree = exports.getTree = function getTree(immutableTree) { var light = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var children1AsArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (!immutableTree) return undefined; var tree = immutableTree; tree = tree.toJS(); tree = (0, _treeUtils.getLightTree)(tree, light, children1AsArray); return tree; }; var loadTree = exports.loadTree = function loadTree(serTree) { if (isImmutableTree(serTree)) { return serTree; } else if (isTree(serTree)) { return (0, _treeUtils.fixPathsInTree)(jsToImmutable(serTree)); } else if (typeof serTree == "string" && serTree.startsWith('["~#iM"')) { //tip: old versions of RAQB were saving tree with `transit.toJSON()` // https://github.com/ukrbublik/react-awesome-query-builder/issues/69 throw new Error("You are trying to load query in obsolete serialization format (Immutable string) which is not supported in versions starting from 2.1.17"); } else if (typeof serTree === "string") { return (0, _treeUtils.fixPathsInTree)(jsToImmutable(JSON.parse(serTree))); } else throw new Error("Can't load tree!"); }; var isImmutableTree = exports.isImmutableTree = function isImmutableTree(tree) { return _immutable.Map.isMap(tree); }; var isTree = exports.isTree = function isTree(tree) { return (0, _typeof2["default"])(tree) == "object" && (tree.type == "group" || tree.type == "switch_group"); }; function jsToImmutable(tree) { var imm = (0, _immutable.fromJS)(tree, function (key, value, path) { var isFuncArg = path && path.length > 3 && path[path.length - 1] === "value" && path[path.length - 3] === "args"; var isRuleValue = path && path.length > 3 && path[path.length - 1] === "value" && path[path.length - 2] === "properties"; var outValue; if (key == "properties") { outValue = value.toOrderedMap(); // `value` should be undefined instead of null // JSON doesn't support undefined and replaces undefined -> null // So fix: null -> undefined for (var i = 0; i < 2; i++) { var _outValue$get, _outValue$get$get, _outValue$get2; if (((_outValue$get = outValue.get("value")) === null || _outValue$get === void 0 || (_outValue$get$get = (_outValue$get2 = _outValue$get).get) === null || _outValue$get$get === void 0 ? void 0 : _outValue$get$get.call(_outValue$get2, i)) === null) { outValue = outValue.setIn(["value", i], undefined); } } } else if (isFuncArg) { outValue = (0, _treeUtils._fixImmutableValue)(value); } else if ((path ? isRuleValue : key == "value") && _immutable["default"].Iterable.isIndexed(value)) { outValue = value.map(_treeUtils._fixImmutableValue).toList(); } else if (key == "asyncListValues") { // keep in JS format outValue = value.toJS(); } else if (key == "children1" && _immutable["default"].Iterable.isIndexed(value)) { outValue = new _immutable["default"].OrderedMap(value.map(function (child) { return [(child === null || child === void 0 ? void 0 : child.get("id")) || (0, _uuid["default"])(), child]; })); } else { outValue = _immutable["default"].Iterable.isIndexed(value) ? value.toList() : value.toOrderedMap(); } return outValue; }); return imm; }