@react-awesome-query-builder/core
Version:
User-friendly query builder for React. Core
90 lines (88 loc) • 6.22 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getDefaultSubField = exports.getDefaultOperator = exports.getDefaultFieldSrc = exports.getDefaultField = exports.emptyProperties = exports.defaultOperatorOptions = exports.defaultGroupProperties = exports.defaultGroupConjunction = exports.defaultConjunction = exports.createListWithOneElement = exports.createListFromArray = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _immutable = _interopRequireDefault(require("immutable"));
var _configUtils = require("./configUtils");
var _stuff = require("./stuff");
var _treeUtils = require("./treeUtils");
// @deprecated Use defaultGroupConjunction
var defaultConjunction = exports.defaultConjunction = function defaultConjunction(config) {
return defaultGroupConjunction(config);
};
//used for complex operators like proximity
var defaultOperatorOptions = exports.defaultOperatorOptions = function defaultOperatorOptions(config, operator, field) {
var operatorConfig = operator ? (0, _configUtils.getOperatorConfig)(config, operator, field) : null;
if (!operatorConfig) return null; //new Immutable.Map();
return operatorConfig.options ? new _immutable["default"].Map(operatorConfig.options && operatorConfig.options.defaults || {}) : null;
};
var defaultGroupConjunction = exports.defaultGroupConjunction = function defaultGroupConjunction(config) {
var _groupFieldConfig, _groupFieldConfig2;
var groupFieldConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
groupFieldConfig = (0, _configUtils.getFieldConfig)(config, groupFieldConfig); // if `groupFieldConfig` is field name, not config
var conjs = ((_groupFieldConfig = groupFieldConfig) === null || _groupFieldConfig === void 0 ? void 0 : _groupFieldConfig.conjunctions) || Object.keys(config.conjunctions);
if (conjs.length == 1) return conjs[0];
// todo: config.settings.defaultGroupConjunction is deprecated, defaultConjunction should be used instead
return ((_groupFieldConfig2 = groupFieldConfig) === null || _groupFieldConfig2 === void 0 ? void 0 : _groupFieldConfig2.defaultConjunction) || config.settings.defaultConjunction || config.settings.defaultGroupConjunction || conjs[0];
};
var defaultGroupProperties = exports.defaultGroupProperties = function defaultGroupProperties(config) {
var groupFieldConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
return new _immutable["default"].Map({
conjunction: defaultGroupConjunction(config, groupFieldConfig),
not: false
});
};
var getDefaultField = exports.getDefaultField = function getDefaultField(config) {
var canGetFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var parentRuleGroupField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
var defaultField = config.settings.defaultField;
var f = (!parentRuleGroupField ? defaultField : getDefaultSubField(config, parentRuleGroupField)) || canGetFirst && (0, _configUtils.getFirstField)(config, parentRuleGroupField) || null;
// if default LHS is func, convert to Immutable
if (f != null && typeof f !== "string" && !(0, _stuff.isImmutable)(f)) {
f = (0, _treeUtils.jsToImmutable)(f);
}
return f;
};
var getDefaultSubField = exports.getDefaultSubField = function getDefaultSubField(config) {
var _config$settings;
var parentRuleGroupField = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
if (!parentRuleGroupField) return null;
var fieldSeparator = (config === null || config === void 0 || (_config$settings = config.settings) === null || _config$settings === void 0 ? void 0 : _config$settings.fieldSeparator) || ".";
var parentRuleGroupConfig = (0, _configUtils.getFieldConfig)(config, parentRuleGroupField);
var f = parentRuleGroupConfig === null || parentRuleGroupConfig === void 0 ? void 0 : parentRuleGroupConfig.defaultField;
if (f) {
f = [].concat((0, _toConsumableArray2["default"])((0, _configUtils.getFieldParts)(parentRuleGroupField)), [f]).join(fieldSeparator);
}
return f;
};
var getDefaultFieldSrc = exports.getDefaultFieldSrc = function getDefaultFieldSrc(config) {
var _config$settings$fiel;
var canGetFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
return canGetFirst && ((_config$settings$fiel = config.settings.fieldSources) === null || _config$settings$fiel === void 0 ? void 0 : _config$settings$fiel[0]) || "field";
};
var getDefaultOperator = exports.getDefaultOperator = function getDefaultOperator(config, field) {
var canGetFirst = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var fieldConfig = (0, _configUtils.getFieldConfig)(config, field);
var fieldOperators = (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.operators) || [];
var globalDefaultOperator = config.settings.defaultOperator;
if (globalDefaultOperator && !fieldOperators.includes(globalDefaultOperator)) globalDefaultOperator = null;
var fieldDefaultOperator = fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.defaultOperator;
var fieldOwnDefaultOperator = fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.ownDefaultOperator;
var firstOperator = canGetFirst ? (0, _configUtils.getFirstOperator)(config, field) : null;
var op = fieldOwnDefaultOperator || globalDefaultOperator || fieldDefaultOperator || firstOperator;
return op;
};
var createListWithOneElement = exports.createListWithOneElement = function createListWithOneElement(el) {
if ((0, _stuff.isImmutableList)(el)) return el; // already Immutable list
return createListFromArray([el]);
};
var createListFromArray = exports.createListFromArray = function createListFromArray(arr) {
if ((0, _stuff.isImmutableList)(arr)) return arr; // already Immutable list
return new _immutable["default"].List(arr);
};
var emptyProperties = exports.emptyProperties = function emptyProperties() {
return new _immutable["default"].Map();
};