@react-querybuilder/core 8.20.2 → 8.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +2261 -2113
- package/dist/cjs/react-querybuilder_core.cjs.development.js +319 -22
- package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +2261 -2113
- package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
- package/dist/{convertQuery-BJKNgecE.js → convertQuery-Cw76XFIn.js} +8 -8
- package/dist/{convertQuery-BJKNgecE.js.map → convertQuery-Cw76XFIn.js.map} +1 -1
- package/dist/{convertQuery-J1CaoDxe.mjs → convertQuery-D_4J7E-Z.mjs} +2 -2
- package/dist/{convertQuery-J1CaoDxe.mjs.map → convertQuery-D_4J7E-Z.mjs.map} +1 -1
- package/dist/formatQuery.d.mts +499 -459
- package/dist/formatQuery.d.ts +499 -459
- package/dist/formatQuery.js +170 -88
- package/dist/formatQuery.js.map +1 -1
- package/dist/formatQuery.mjs +97 -20
- package/dist/formatQuery.mjs.map +1 -1
- package/dist/import-BVdxeIBO.d.mts +26 -0
- package/dist/import-Ddc3d_8q.d.ts +26 -0
- package/dist/{index-DlVg-QXo.d.mts → index-BSwFvkeI.d.mts} +679 -648
- package/dist/{index-DlVg-QXo.d.ts → index-BSwFvkeI.d.ts} +679 -648
- package/dist/{objectUtils-DBJI82bl.js → isRuleGroup-0JNiQgLg.js} +1 -26
- package/dist/isRuleGroup-0JNiQgLg.js.map +1 -0
- package/dist/{objectUtils-ZvPkF6u6.mjs → isRuleGroup-CqLThsbu.mjs} +2 -15
- package/dist/isRuleGroup-CqLThsbu.mjs.map +1 -0
- package/dist/objectUtils-Cr02aGxb.js +27 -0
- package/dist/objectUtils-Cr02aGxb.js.map +1 -0
- package/dist/objectUtils-DBlmJgBf.mjs +16 -0
- package/dist/objectUtils-DBlmJgBf.mjs.map +1 -0
- package/dist/parseCEL.d.mts +64 -30
- package/dist/parseCEL.d.ts +64 -30
- package/dist/parseCEL.js +91 -12
- package/dist/parseCEL.js.map +1 -1
- package/dist/parseCEL.mjs +85 -8
- package/dist/parseCEL.mjs.map +1 -1
- package/dist/parseCypher.d.mts +24 -25
- package/dist/parseCypher.d.ts +24 -25
- package/dist/parseGremlin.d.mts +18 -19
- package/dist/parseGremlin.d.ts +18 -19
- package/dist/parseJSONata.d.mts +207 -20
- package/dist/parseJSONata.d.ts +207 -20
- package/dist/parseJSONata.js +92 -7
- package/dist/parseJSONata.js.map +1 -1
- package/dist/parseJSONata.mjs +80 -4
- package/dist/parseJSONata.mjs.map +1 -1
- package/dist/parseJsonLogic.d.mts +51 -18
- package/dist/parseJsonLogic.d.ts +51 -18
- package/dist/parseJsonLogic.js +95 -34
- package/dist/parseJsonLogic.js.map +1 -1
- package/dist/parseJsonLogic.mjs +65 -6
- package/dist/parseJsonLogic.mjs.map +1 -1
- package/dist/parseMongoDB.d.mts +89 -58
- package/dist/parseMongoDB.d.ts +89 -58
- package/dist/parseMongoDB.js +140 -15
- package/dist/parseMongoDB.js.map +1 -1
- package/dist/parseMongoDB.mjs +128 -5
- package/dist/parseMongoDB.mjs.map +1 -1
- package/dist/parseSPARQL.d.mts +17 -18
- package/dist/parseSPARQL.d.ts +17 -18
- package/dist/parseSPARQL.js.map +1 -1
- package/dist/parseSPARQL.mjs.map +1 -1
- package/dist/parseSQL.d.mts +266 -18
- package/dist/parseSQL.d.ts +266 -18
- package/dist/parseSQL.js +163 -10
- package/dist/parseSQL.js.map +1 -1
- package/dist/parseSQL.mjs +149 -7
- package/dist/parseSQL.mjs.map +1 -1
- package/dist/parseSpEL.d.mts +193 -19
- package/dist/parseSpEL.d.ts +193 -19
- package/dist/parseSpEL.js +166 -7
- package/dist/parseSpEL.js.map +1 -1
- package/dist/parseSpEL.mjs +142 -6
- package/dist/parseSpEL.mjs.map +1 -1
- package/dist/{prepareQueryObjects-Bni5VgYM.js → prepareQueryObjects-C2-kTZvR.js} +5 -5
- package/dist/prepareQueryObjects-C2-kTZvR.js.map +1 -0
- package/dist/{prepareQueryObjects-BCLU20Cg.mjs → prepareQueryObjects-Q18lHCKl.mjs} +3 -3
- package/dist/prepareQueryObjects-Q18lHCKl.mjs.map +1 -0
- package/dist/query-builder-layout.css.map +1 -1
- package/dist/query-builder.css.map +1 -1
- package/dist/react-querybuilder_core.d.mts +2261 -2113
- package/dist/react-querybuilder_core.legacy-esm.d.ts +2261 -2113
- package/dist/react-querybuilder_core.legacy-esm.js +335 -40
- package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_core.mjs +309 -23
- package/dist/react-querybuilder_core.mjs.map +1 -1
- package/dist/react-querybuilder_core.production.d.mts +2261 -2113
- package/dist/react-querybuilder_core.production.mjs +1 -1
- package/dist/react-querybuilder_core.production.mjs.map +1 -1
- package/dist/styles/_layout.scss +4 -10
- package/dist/transformQuery.d.mts +91 -92
- package/dist/transformQuery.d.ts +91 -92
- package/dist/transformQuery.js +4 -3
- package/dist/transformQuery.js.map +1 -1
- package/dist/transformQuery.mjs +2 -1
- package/dist/transformQuery.mjs.map +1 -1
- package/dist/{utils-BpaOtylk.js → utils-DEwV7F6B.js} +108 -12
- package/dist/utils-DEwV7F6B.js.map +1 -0
- package/dist/{utils-CJRGiPb-.mjs → utils-Dt0D_DMV.mjs} +69 -3
- package/dist/utils-Dt0D_DMV.mjs.map +1 -0
- package/package.json +14 -14
- package/dist/import-Qs1-kgv5.d.ts +0 -27
- package/dist/import-ShTj5IdB.d.mts +0 -27
- package/dist/objectUtils-DBJI82bl.js.map +0 -1
- package/dist/objectUtils-ZvPkF6u6.mjs.map +0 -1
- package/dist/prepareQueryObjects-BCLU20Cg.mjs.map +0 -1
- package/dist/prepareQueryObjects-Bni5VgYM.js.map +0 -1
- package/dist/utils-BpaOtylk.js.map +0 -1
- package/dist/utils-CJRGiPb-.mjs.map +0 -1
|
@@ -322,6 +322,50 @@ const defaultOperatorNegationMap = {
|
|
|
322
322
|
null: "notNull"
|
|
323
323
|
};
|
|
324
324
|
/**
|
|
325
|
+
* Relational/comparison operators (`=`, `!=`, `<`, `>`, `<=`, `>=`).
|
|
326
|
+
*
|
|
327
|
+
* @group Defaults
|
|
328
|
+
*/
|
|
329
|
+
const relationalOperators = /* @__PURE__ */ new Set([
|
|
330
|
+
"=",
|
|
331
|
+
"!=",
|
|
332
|
+
"<",
|
|
333
|
+
">",
|
|
334
|
+
"<=",
|
|
335
|
+
">="
|
|
336
|
+
]);
|
|
337
|
+
/**
|
|
338
|
+
* Substring/text-matching operators (`contains`, `beginsWith`, `endsWith`, and negations).
|
|
339
|
+
*
|
|
340
|
+
* @group Defaults
|
|
341
|
+
*/
|
|
342
|
+
const substringOperators = /* @__PURE__ */ new Set([
|
|
343
|
+
"contains",
|
|
344
|
+
"beginsWith",
|
|
345
|
+
"endsWith",
|
|
346
|
+
"doesNotContain",
|
|
347
|
+
"doesNotBeginWith",
|
|
348
|
+
"doesNotEndWith"
|
|
349
|
+
]);
|
|
350
|
+
/**
|
|
351
|
+
* Null-check operators (`null`, `notNull`).
|
|
352
|
+
*
|
|
353
|
+
* @group Defaults
|
|
354
|
+
*/
|
|
355
|
+
const nullOperators = /* @__PURE__ */ new Set(["null", "notNull"]);
|
|
356
|
+
/**
|
|
357
|
+
* List-membership operators (`in`, `notIn`).
|
|
358
|
+
*
|
|
359
|
+
* @group Defaults
|
|
360
|
+
*/
|
|
361
|
+
const inOperators = /* @__PURE__ */ new Set(["in", "notIn"]);
|
|
362
|
+
/**
|
|
363
|
+
* Range operators (`between`, `notBetween`).
|
|
364
|
+
*
|
|
365
|
+
* @group Defaults
|
|
366
|
+
*/
|
|
367
|
+
const betweenOperators = /* @__PURE__ */ new Set(["between", "notBetween"]);
|
|
368
|
+
/**
|
|
325
369
|
* Default combinator list.
|
|
326
370
|
*
|
|
327
371
|
* @group Defaults
|
|
@@ -1175,6 +1219,51 @@ const mapSQLOperator = (rqbOperator) => {
|
|
|
1175
1219
|
}
|
|
1176
1220
|
};
|
|
1177
1221
|
/**
|
|
1222
|
+
* Returns a preset-aware SQL string-concatenation function. Emits `CONCAT(a, b, ...)` when
|
|
1223
|
+
* `concatOperator` is `"CONCAT"` (case-insensitive), otherwise joins with the infix operator
|
|
1224
|
+
* (e.g. `a || b`, `a + b`).
|
|
1225
|
+
*
|
|
1226
|
+
* @group Export
|
|
1227
|
+
*/
|
|
1228
|
+
const getSQLConcat = (concatOperator = "||") => (...values) => concatOperator.toUpperCase() === "CONCAT" ? `CONCAT(${values.join(", ")})` : values.join(` ${concatOperator} `);
|
|
1229
|
+
/**
|
|
1230
|
+
* Returns the `[prefix, suffix]` `LIKE` wildcards for a string-match operator (e.g. `contains`
|
|
1231
|
+
* → `['%', '%']`, `beginsWith` → `['', '%']`, `endsWith` → `['%', '']`). Unknown operators
|
|
1232
|
+
* yield `['', '']`.
|
|
1233
|
+
*
|
|
1234
|
+
* @group Export
|
|
1235
|
+
*/
|
|
1236
|
+
const getLikeWildcards = (operatorLC) => {
|
|
1237
|
+
switch (operatorLC) {
|
|
1238
|
+
case "contains":
|
|
1239
|
+
case "doesnotcontain": return ["%", "%"];
|
|
1240
|
+
case "beginswith":
|
|
1241
|
+
case "doesnotbeginwith": return ["", "%"];
|
|
1242
|
+
case "endswith":
|
|
1243
|
+
case "doesnotendwith": return ["%", ""];
|
|
1244
|
+
default: return ["", ""];
|
|
1245
|
+
}
|
|
1246
|
+
};
|
|
1247
|
+
/**
|
|
1248
|
+
* Wraps an already-serialized SQL fragment (a quoted field name or an expression) with the
|
|
1249
|
+
* `LIKE` wildcards for the given (lowercase) string-match operator, concatenating the literal
|
|
1250
|
+
* `%` markers via the preset-aware {@link getSQLConcat}. Returns the fragment untouched for
|
|
1251
|
+
* operators without wildcards.
|
|
1252
|
+
*
|
|
1253
|
+
* @group Export
|
|
1254
|
+
*/
|
|
1255
|
+
const wrapLikeFragment = (fragment, operatorLC, { concatOperator = "||", quoteValuesWith, wrapValueWith = ["", ""] } = {}) => {
|
|
1256
|
+
const [pre, post] = getLikeWildcards(operatorLC);
|
|
1257
|
+
const quoteChar = quoteValuesWith || `'`;
|
|
1258
|
+
const quote = (p) => `${wrapValueWith[0]}${quoteChar}${p}${quoteChar}${wrapValueWith[1]}`;
|
|
1259
|
+
const parts = [
|
|
1260
|
+
pre && quote(pre),
|
|
1261
|
+
fragment,
|
|
1262
|
+
post && quote(post)
|
|
1263
|
+
].filter(Boolean);
|
|
1264
|
+
return parts.length > 1 ? getSQLConcat(concatOperator)(...parts) : fragment;
|
|
1265
|
+
};
|
|
1266
|
+
/**
|
|
1178
1267
|
* Maps a (lowercase) {@link DefaultOperatorName} to a MongoDB operator.
|
|
1179
1268
|
*
|
|
1180
1269
|
* @group Export
|
|
@@ -1338,6 +1427,27 @@ const normalizeConstituentWordOrder = (input) => {
|
|
|
1338
1427
|
return result;
|
|
1339
1428
|
};
|
|
1340
1429
|
/**
|
|
1430
|
+
* Prefixes a named-parameter value with the given `paramPrefix` unless the value already
|
|
1431
|
+
* begins with it. Used by {@link formatQuery} to render rules whose `valueSource` is
|
|
1432
|
+
* `"parameter"` (e.g. `"p1"` with prefix `":"` → `":p1"`; `":p1"` → `":p1"`).
|
|
1433
|
+
*
|
|
1434
|
+
* @group Export
|
|
1435
|
+
*/
|
|
1436
|
+
const withParamPrefix = (value, paramPrefix = ":") => {
|
|
1437
|
+
const v = `${value ?? ""}`;
|
|
1438
|
+
return paramPrefix && v.startsWith(paramPrefix) ? v : `${paramPrefix}${v}`;
|
|
1439
|
+
};
|
|
1440
|
+
/**
|
|
1441
|
+
* Strips a leading `paramPrefix` from a named-parameter value if present. Inverse of
|
|
1442
|
+
* {@link withParamPrefix}; used to normalize parameter names for validation/lookup.
|
|
1443
|
+
*
|
|
1444
|
+
* @group Export
|
|
1445
|
+
*/
|
|
1446
|
+
const stripParamPrefix = (value, paramPrefix = ":") => {
|
|
1447
|
+
const v = `${value ?? ""}`;
|
|
1448
|
+
return paramPrefix && v.startsWith(paramPrefix) ? v.slice(paramPrefix.length) : v;
|
|
1449
|
+
};
|
|
1450
|
+
/**
|
|
1341
1451
|
* Default translations used by {@link formatQuery} for "natural_language" format.
|
|
1342
1452
|
*
|
|
1343
1453
|
* @group Export
|
|
@@ -1470,7 +1580,7 @@ const escapeDoubleQuotes$1 = (v, escapeQuotes) => typeof v !== "string" || !esca
|
|
|
1470
1580
|
const defaultRuleProcessorCEL = (rule, opts = {}) => {
|
|
1471
1581
|
const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
|
|
1472
1582
|
const { field, operator, value, valueSource } = rule;
|
|
1473
|
-
const valueIsField = valueSource === "field";
|
|
1583
|
+
const valueIsField = valueSource === "field" || valueSource === "parameter";
|
|
1474
1584
|
const operatorTL = lc(operator === "=" ? "==" : operator);
|
|
1475
1585
|
const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || shouldRenderAsNumber(value, parseNumbers);
|
|
1476
1586
|
const matchEval = processMatchMode(rule);
|
|
@@ -1791,7 +1901,7 @@ const escapeSingleQuotes$2 = (v, escapeQuotes) => typeof v !== "string" || !esca
|
|
|
1791
1901
|
const defaultRuleProcessorSpEL = (rule, opts = {}) => {
|
|
1792
1902
|
const { field, operator, value, valueSource } = rule;
|
|
1793
1903
|
const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
|
|
1794
|
-
const valueIsField = valueSource === "field";
|
|
1904
|
+
const valueIsField = valueSource === "field" || valueSource === "parameter";
|
|
1795
1905
|
const operatorTL = lc(operator === "=" ? "==" : operator);
|
|
1796
1906
|
const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || shouldRenderAsNumber(value, parseNumbers);
|
|
1797
1907
|
const matchEval = processMatchMode(rule);
|
|
@@ -1825,11 +1935,20 @@ const defaultRuleProcessorSpEL = (rule, opts = {}) => {
|
|
|
1825
1935
|
case ">":
|
|
1826
1936
|
case ">=": return `${field} ${operatorTL} ${valueIsField || useBareValue ? trimIfString(value) : `'${escapeSingleQuotes$2(value, escapeQuotes)}'`}`;
|
|
1827
1937
|
case "contains":
|
|
1828
|
-
case "doesnotcontain":
|
|
1938
|
+
case "doesnotcontain": {
|
|
1939
|
+
const valueTL = valueIsField ? `'.*'.concat(${trimIfString(value)}).concat('.*')` : `'.*${escapeSingleQuotes$2(value, escapeQuotes)}.*'`;
|
|
1940
|
+
return wrapInNegation(`${field} matches ${valueTL}`, shouldNegate$1(operatorTL));
|
|
1941
|
+
}
|
|
1829
1942
|
case "beginswith":
|
|
1830
|
-
case "doesnotbeginwith":
|
|
1943
|
+
case "doesnotbeginwith": {
|
|
1944
|
+
const valueTL = valueIsField ? `'^'.concat(${trimIfString(value)}).concat('.*')` : `'${typeof value === "string" && !value.startsWith("^") || useBareValue ? "^" : ""}${escapeSingleQuotes$2(value, escapeQuotes)}.*'`;
|
|
1945
|
+
return wrapInNegation(`${field} matches ${valueTL}`, shouldNegate$1(operatorTL));
|
|
1946
|
+
}
|
|
1831
1947
|
case "endswith":
|
|
1832
|
-
case "doesnotendwith":
|
|
1948
|
+
case "doesnotendwith": {
|
|
1949
|
+
const valueTL = valueIsField ? `'.*'.concat(${trimIfString(value)}).concat('$')` : `'.*${escapeSingleQuotes$2(value, escapeQuotes)}${typeof value === "string" && !value.endsWith("$") || useBareValue ? "$" : ""}'`;
|
|
1950
|
+
return wrapInNegation(`${field} matches ${valueTL}`, shouldNegate$1(operatorTL));
|
|
1951
|
+
}
|
|
1833
1952
|
case "null": return `${field} == null`;
|
|
1834
1953
|
case "notnull": return `${field} != null`;
|
|
1835
1954
|
case "in":
|
|
@@ -1867,7 +1986,35 @@ const escapeStringValueQuotes$1 = (v, quoteChar, escapeQuotes) => escapeQuotes &
|
|
|
1867
1986
|
*
|
|
1868
1987
|
* @group Export
|
|
1869
1988
|
*/
|
|
1870
|
-
const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQuotes, parseNumbers, preserveValueOrder, quoteFieldNamesWith, quoteValuesWith, concatOperator = "||", fieldIdentifierSeparator, wrapValueWith = ["", ""], translations } = {}) => {
|
|
1989
|
+
const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQuotes, parseNumbers, preserveValueOrder, quoteFieldNamesWith, quoteValuesWith, concatOperator = "||", fieldIdentifierSeparator, paramPrefix, wrapValueWith = ["", ""], translations } = {}) => {
|
|
1990
|
+
if (valueSource === "parameter") {
|
|
1991
|
+
const operatorLowerCase = lc(operator);
|
|
1992
|
+
if (operatorLowerCase === "between" || operatorLowerCase === "notbetween") {
|
|
1993
|
+
const valueAsArray = toArray(value, { retainEmptyStrings: true });
|
|
1994
|
+
if (valueAsArray.length < 2 || !isValidValue(valueAsArray[0]) || !isValidValue(valueAsArray[1])) return "";
|
|
1995
|
+
const [first, second] = valueAsArray;
|
|
1996
|
+
return [withParamPrefix(first, paramPrefix), withParamPrefix(second, paramPrefix)].join(` ${translations?.betweenAnd ?? translations?.and ?? "and"} `);
|
|
1997
|
+
}
|
|
1998
|
+
if (operatorLowerCase === "in" || operatorLowerCase === "notin") {
|
|
1999
|
+
const valueAsArray = toArray(value);
|
|
2000
|
+
if (valueAsArray.length === 0) return "";
|
|
2001
|
+
return `(${valueAsArray.map((v) => withParamPrefix(v, paramPrefix)).join(", ")})`;
|
|
2002
|
+
}
|
|
2003
|
+
const paramRef = withParamPrefix(value, paramPrefix);
|
|
2004
|
+
switch (operatorLowerCase) {
|
|
2005
|
+
case "contains":
|
|
2006
|
+
case "doesnotcontain":
|
|
2007
|
+
case "beginswith":
|
|
2008
|
+
case "doesnotbeginwith":
|
|
2009
|
+
case "endswith":
|
|
2010
|
+
case "doesnotendwith": return wrapLikeFragment(paramRef, operatorLowerCase, {
|
|
2011
|
+
concatOperator,
|
|
2012
|
+
quoteValuesWith,
|
|
2013
|
+
wrapValueWith
|
|
2014
|
+
});
|
|
2015
|
+
}
|
|
2016
|
+
return paramRef;
|
|
2017
|
+
}
|
|
1871
2018
|
const valueIsField = valueSource === "field";
|
|
1872
2019
|
const operatorLowerCase = lc(operator);
|
|
1873
2020
|
const quoteChar = quoteValuesWith || "'";
|
|
@@ -1878,7 +2025,11 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
|
|
|
1878
2025
|
quoteFieldNamesWith,
|
|
1879
2026
|
fieldIdentifierSeparator
|
|
1880
2027
|
});
|
|
1881
|
-
const
|
|
2028
|
+
const likeOpts = {
|
|
2029
|
+
concatOperator,
|
|
2030
|
+
quoteValuesWith,
|
|
2031
|
+
wrapValueWith
|
|
2032
|
+
};
|
|
1882
2033
|
switch (operatorLowerCase) {
|
|
1883
2034
|
case "null":
|
|
1884
2035
|
case "notnull": return "";
|
|
@@ -1905,11 +2056,11 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
|
|
|
1905
2056
|
return (valueIsField ? valsOneAndTwoOnly.map((v) => wrapFieldName(v)) : valsOneAndTwoOnly.every((v) => shouldRenderAsNumber(v, parseNumbers)) ? valsOneAndTwoOnly.map((v) => parseNumber(v, { parseNumbers: "strict" })) : valsOneAndTwoOnly.map((v) => wrapAndEscape(v))).join(` ${translations?.betweenAnd ?? translations?.and ?? "and"} `);
|
|
1906
2057
|
}
|
|
1907
2058
|
case "contains":
|
|
1908
|
-
case "doesnotcontain": return valueIsField ?
|
|
2059
|
+
case "doesnotcontain": return valueIsField ? wrapLikeFragment(wrapFieldName(value), operatorLowerCase, likeOpts) : quoteValue(`%${escapeValue(value)}%`);
|
|
1909
2060
|
case "beginswith":
|
|
1910
|
-
case "doesnotbeginwith": return valueIsField ?
|
|
2061
|
+
case "doesnotbeginwith": return valueIsField ? wrapLikeFragment(wrapFieldName(value), operatorLowerCase, likeOpts) : quoteValue(`${escapeValue(value)}%`);
|
|
1911
2062
|
case "endswith":
|
|
1912
|
-
case "doesnotendwith": return valueIsField ?
|
|
2063
|
+
case "doesnotendwith": return valueIsField ? wrapLikeFragment(wrapFieldName(value), operatorLowerCase, likeOpts) : quoteValue(`%${escapeValue(value)}`);
|
|
1913
2064
|
}
|
|
1914
2065
|
if (typeof value === "boolean") return value ? "TRUE" : "FALSE";
|
|
1915
2066
|
return valueIsField ? wrapFieldName(value) : shouldRenderAsNumber(value, parseNumbers) ? `${trimIfString(value)}` : `${wrapAndEscape(value)}`;
|
|
@@ -3481,7 +3632,10 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
|
|
|
3481
3632
|
case "null":
|
|
3482
3633
|
case "notnull": return { [`${operatorLC === "notnull" ? "!" : "="}=`]: [fieldObject, null] };
|
|
3483
3634
|
case "in":
|
|
3484
|
-
case "notin":
|
|
3635
|
+
case "notin": {
|
|
3636
|
+
const valueAsArray = toArray(value).map((v) => fieldOrNumberRenderer(v));
|
|
3637
|
+
return negateIfNotOp(operatorLC, { in: [fieldObject, valueAsArray] });
|
|
3638
|
+
}
|
|
3485
3639
|
case "between":
|
|
3486
3640
|
case "notbetween": {
|
|
3487
3641
|
const valueAsArray = toArray(value);
|
|
@@ -3512,11 +3666,20 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
|
|
|
3512
3666
|
return false;
|
|
3513
3667
|
}
|
|
3514
3668
|
case "contains":
|
|
3515
|
-
case "doesnotcontain":
|
|
3669
|
+
case "doesnotcontain": {
|
|
3670
|
+
const jsonRule = { in: [fieldOrNumberRenderer(value), fieldObject] };
|
|
3671
|
+
return negateIfNotOp(operatorLC, jsonRule);
|
|
3672
|
+
}
|
|
3516
3673
|
case "beginswith":
|
|
3517
|
-
case "doesnotbeginwith":
|
|
3674
|
+
case "doesnotbeginwith": {
|
|
3675
|
+
const jsonRule = { startsWith: [fieldObject, fieldOrNumberRenderer(value)] };
|
|
3676
|
+
return negateIfNotOp(operatorLC, jsonRule);
|
|
3677
|
+
}
|
|
3518
3678
|
case "endswith":
|
|
3519
|
-
case "doesnotendwith":
|
|
3679
|
+
case "doesnotendwith": {
|
|
3680
|
+
const jsonRule = { endsWith: [fieldObject, fieldOrNumberRenderer(value)] };
|
|
3681
|
+
return negateIfNotOp(operatorLC, jsonRule);
|
|
3682
|
+
}
|
|
3520
3683
|
}
|
|
3521
3684
|
return false;
|
|
3522
3685
|
};
|
|
@@ -3550,7 +3713,10 @@ const defaultRuleProcessorLDAP = (rule, options = {}) => {
|
|
|
3550
3713
|
case "null":
|
|
3551
3714
|
case "notnull": return negateIf(`(${field}=*)`, operatorLC === "notnull");
|
|
3552
3715
|
case "in":
|
|
3553
|
-
case "notin":
|
|
3716
|
+
case "notin": {
|
|
3717
|
+
const valueAsArray = toArray(value);
|
|
3718
|
+
return negateIf(`(|${valueAsArray.map((val) => `(${field}=${ldapEscape(val)})`).join("")})`, operatorLC === "notin");
|
|
3719
|
+
}
|
|
3554
3720
|
case "between":
|
|
3555
3721
|
case "notbetween": {
|
|
3556
3722
|
const valueAsArray = toArray(value);
|
|
@@ -3861,7 +4027,22 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
|
|
|
3861
4027
|
const [qPre, qPost] = quoteFieldNamesWith;
|
|
3862
4028
|
if ((sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in" || sqlOperatorLowerCase === "between" || sqlOperatorLowerCase === "not between") && !value) return finalize("");
|
|
3863
4029
|
else if (sqlOperatorLowerCase === "is null" || sqlOperatorLowerCase === "is not null") return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator}`);
|
|
3864
|
-
else if (rule.valueSource === "
|
|
4030
|
+
else if (rule.valueSource === "parameter") {
|
|
4031
|
+
const registerParam = (v) => {
|
|
4032
|
+
const ref = withParamPrefix(v, paramPrefix);
|
|
4033
|
+
if (!parameterized) paramsNamed[paramsKeepPrefix ? ref : stripParamPrefix(v, paramPrefix)] = null;
|
|
4034
|
+
return ref;
|
|
4035
|
+
};
|
|
4036
|
+
if (sqlOperatorLowerCase === "between" || sqlOperatorLowerCase === "not between") {
|
|
4037
|
+
const [first, second] = toArray(rule.value, { retainEmptyStrings: true }).slice(0, 2);
|
|
4038
|
+
return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} ${registerParam(first)} and ${registerParam(second)}`.trim());
|
|
4039
|
+
}
|
|
4040
|
+
if (sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in") {
|
|
4041
|
+
const splitValue = toArray(rule.value);
|
|
4042
|
+
return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} (${splitValue.map((v) => registerParam(v)).join(", ")})`);
|
|
4043
|
+
}
|
|
4044
|
+
return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} ${wrapLikeFragment(registerParam(rule.value), lc(rule.operator), { concatOperator })}`.trim());
|
|
4045
|
+
} else if (rule.valueSource === "field") return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} ${value}`.trim());
|
|
3865
4046
|
else if (sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in") {
|
|
3866
4047
|
const splitValue = toArray(rule.value);
|
|
3867
4048
|
if (parameterized) {
|
|
@@ -4053,7 +4234,9 @@ const defaultRuleProcessorSPARQL = (rule, opts = {}) => {
|
|
|
4053
4234
|
if (typeof v === "bigint") return String(v);
|
|
4054
4235
|
if (valueIsField) return sparqlVar(trimIfString(v));
|
|
4055
4236
|
if (typeof v === "number" || shouldRenderAsNumber(v, parseNumbers)) return trimIfString(v);
|
|
4237
|
+
/* v8 ignore start -- @preserve */
|
|
4056
4238
|
const s = typeof v === "string" ? v : JSON.stringify(v) ?? "";
|
|
4239
|
+
/* v8 ignore stop -- @preserve */
|
|
4057
4240
|
if (s.startsWith("?") || s.startsWith("<") || s.includes(":")) return s;
|
|
4058
4241
|
return `"${escapeDoubleQuotes(s, escapeQuotes)}"`;
|
|
4059
4242
|
};
|
|
@@ -4376,6 +4559,10 @@ function formatQuery(ruleGroup, optionParam = {}) {
|
|
|
4376
4559
|
if (typeof field.validator === "function") fieldValidator = field.validator;
|
|
4377
4560
|
}
|
|
4378
4561
|
}
|
|
4562
|
+
if (rule.valueSource === "parameter" && typeof optObj.getParameters === "function") {
|
|
4563
|
+
const fieldData = getOption(fields, rule.field);
|
|
4564
|
+
if (!new Set(toFlatOptionArray(toFullOptionList(optObj.getParameters(rule.field, rule.operator, { fieldData }))).map((p) => stripParamPrefix(p.value, optObj.paramPrefix))).has(stripParamPrefix(rule.value, optObj.paramPrefix))) validationResult = false;
|
|
4565
|
+
}
|
|
4379
4566
|
return [validationResult, fieldValidator];
|
|
4380
4567
|
};
|
|
4381
4568
|
const finalOptions = {
|
|
@@ -4634,6 +4821,45 @@ const getMatchModesUtil = (fieldData, getMatchModes) => {
|
|
|
4634
4821
|
}) ?? [];
|
|
4635
4822
|
};
|
|
4636
4823
|
//#endregion
|
|
4824
|
+
//#region src/utils/getRuleDefaultValue.ts
|
|
4825
|
+
const getFirstOptionsFrom = (opts, r, listsAsArrays) => {
|
|
4826
|
+
const firstOption = getFirstOption(opts);
|
|
4827
|
+
if (r.operator === "between" || r.operator === "notBetween") {
|
|
4828
|
+
const valueAsArray = [firstOption, firstOption];
|
|
4829
|
+
return listsAsArrays ? valueAsArray : joinWith(valueAsArray.map((v) => v ?? ""), ",");
|
|
4830
|
+
}
|
|
4831
|
+
return firstOption;
|
|
4832
|
+
};
|
|
4833
|
+
/**
|
|
4834
|
+
* Computes the default `value` for a rule given its `field`/`operator`/`valueSource`, mirroring
|
|
4835
|
+
* the precedence the {@link react-querybuilder!QueryBuilder QueryBuilder} applies: a field's
|
|
4836
|
+
* `defaultValue`, then a `getDefaultValue` override, then a value derived from the field/operator's
|
|
4837
|
+
* value list and editor type (first option for `select`/`radio`, `false` for `checkbox`, paired for
|
|
4838
|
+
* `between`/`notBetween`), or a comparator-valid field when `valueSource` is `'field'`. Falls back
|
|
4839
|
+
* to `''`.
|
|
4840
|
+
*
|
|
4841
|
+
* @group Option Lists
|
|
4842
|
+
*/
|
|
4843
|
+
const getRuleDefaultValue = (rule, options) => {
|
|
4844
|
+
const { fieldData, fields, getValueEditorType, getValues, getDefaultValue, getParameters, listsAsArrays } = options;
|
|
4845
|
+
if (fieldData?.defaultValue !== void 0 && fieldData.defaultValue !== null) return fieldData.defaultValue;
|
|
4846
|
+
else if (getDefaultValue) return getDefaultValue(rule, { fieldData });
|
|
4847
|
+
let value = "";
|
|
4848
|
+
const values = getValues(rule.field, rule.operator, { fieldData });
|
|
4849
|
+
if (rule.valueSource === "field") {
|
|
4850
|
+
const filteredFields = filterFieldsByComparator(fieldData, fields, rule.operator);
|
|
4851
|
+
value = filteredFields.length > 0 ? getFirstOptionsFrom(filteredFields, rule, listsAsArrays) : "";
|
|
4852
|
+
} else if (rule.valueSource === "parameter") {
|
|
4853
|
+
const parameters = getParameters ? getParameters(rule.field, rule.operator, { fieldData }) : null;
|
|
4854
|
+
value = parameters && parameters.length > 0 ? getFirstOption(parameters) : "";
|
|
4855
|
+
} else if (values.length > 0) {
|
|
4856
|
+
const editorType = getValueEditorType(rule.field, rule.operator, { fieldData });
|
|
4857
|
+
if (editorType === "multiselect") value = listsAsArrays ? [] : "";
|
|
4858
|
+
else if (editorType === "select" || editorType === "radio") value = getFirstOptionsFrom(values, rule, listsAsArrays);
|
|
4859
|
+
} else if (getValueEditorType(rule.field, rule.operator, { fieldData }) === "checkbox") value = false;
|
|
4860
|
+
return value;
|
|
4861
|
+
};
|
|
4862
|
+
//#endregion
|
|
4637
4863
|
//#region src/utils/getValidationClassNames.ts
|
|
4638
4864
|
/**
|
|
4639
4865
|
* Gets the standard classname for valid or invalid components
|
|
@@ -4884,21 +5110,81 @@ const addInPlace = (query, ruleOrGroup, parentPathOrID, options = {}) => {
|
|
|
4884
5110
|
return query;
|
|
4885
5111
|
};
|
|
4886
5112
|
/**
|
|
4887
|
-
*
|
|
5113
|
+
* Relative order in which properties are applied during a multi-property update.
|
|
5114
|
+
* Lower ranks apply first; `value` applies last so an explicitly-provided value
|
|
5115
|
+
* is never clobbered by a reset triggered by a `field`/`operator`/`valueSource`
|
|
5116
|
+
* change. Unranked properties default to `3` (between `valueSource` and `value`).
|
|
5117
|
+
*/
|
|
5118
|
+
const updatePropRank = {
|
|
5119
|
+
field: 0,
|
|
5120
|
+
operator: 1,
|
|
5121
|
+
valueSource: 2,
|
|
5122
|
+
value: 4
|
|
5123
|
+
};
|
|
5124
|
+
/** Stable-sorts `[prop, value]` entries by {@link updatePropRank}. */
|
|
5125
|
+
const orderUpdateEntries = (entries) => entries.sort((x, y) => (updatePropRank[x[0]] ?? 3) - (updatePropRank[y[0]] ?? 3));
|
|
5126
|
+
/**
|
|
5127
|
+
* Normalizes the variadic {@link update}/{@link updateInPlace} arguments (single
|
|
5128
|
+
* prop+value, parallel arrays, or property map) into a canonically-ordered list
|
|
5129
|
+
* of `[prop, value]` entries plus the target path/ID and options.
|
|
5130
|
+
*/
|
|
5131
|
+
const normalizeUpdateArgs = (a, b, c, d) => {
|
|
5132
|
+
if (typeof a === "string") return {
|
|
5133
|
+
entries: [[a, b]],
|
|
5134
|
+
pathOrID: c,
|
|
5135
|
+
options: d ?? {}
|
|
5136
|
+
};
|
|
5137
|
+
if (Array.isArray(a)) {
|
|
5138
|
+
const values = b;
|
|
5139
|
+
return {
|
|
5140
|
+
entries: orderUpdateEntries(a.map((prop, i) => [prop, values[i]])),
|
|
5141
|
+
pathOrID: c,
|
|
5142
|
+
options: d ?? {}
|
|
5143
|
+
};
|
|
5144
|
+
}
|
|
5145
|
+
return {
|
|
5146
|
+
entries: orderUpdateEntries(Object.entries(a)),
|
|
5147
|
+
pathOrID: b,
|
|
5148
|
+
options: c ?? {}
|
|
5149
|
+
};
|
|
5150
|
+
};
|
|
5151
|
+
/**
|
|
5152
|
+
* Applies one or more property updates to a query in place. Shared by
|
|
5153
|
+
* {@link update} and {@link updateInPlace}.
|
|
5154
|
+
*/
|
|
5155
|
+
const applyUpdatesInPlace = (query, a, b, c, d) => {
|
|
5156
|
+
const { entries, pathOrID, options } = normalizeUpdateArgs(a, b, c, d);
|
|
5157
|
+
for (const [prop, value] of entries) updateInPlaceSingle(query, prop, value, pathOrID, options);
|
|
5158
|
+
return query;
|
|
5159
|
+
};
|
|
5160
|
+
/**
|
|
5161
|
+
* Updates one or more properties of a rule or group within a query without
|
|
5162
|
+
* mutating the original query. Properties may be supplied individually
|
|
5163
|
+
* (`prop`, `value`), as parallel arrays (`props`, `values`), or as a
|
|
5164
|
+
* property-to-value map. For multi-property updates, `field`, `operator`, and
|
|
5165
|
+
* `valueSource` are applied before `value`, so an explicit `value` is never
|
|
5166
|
+
* reset by a change to one of those properties.
|
|
4888
5167
|
*
|
|
4889
|
-
* @returns A new query with the rule or group
|
|
5168
|
+
* @returns A new query with the rule or group properties updated.
|
|
4890
5169
|
*
|
|
4891
5170
|
* @group Query Tools
|
|
4892
5171
|
*/
|
|
4893
|
-
const update = (query,
|
|
5172
|
+
const update = ((query, a, b, c, d) => produce(query, (q) => {
|
|
5173
|
+
applyUpdatesInPlace(q, a, b, c, d);
|
|
5174
|
+
}));
|
|
4894
5175
|
/**
|
|
4895
|
-
* Updates
|
|
5176
|
+
* Updates one or more properties of a rule or group within a query in place.
|
|
5177
|
+
* See {@link update} for the supported argument forms and ordering semantics.
|
|
4896
5178
|
*
|
|
4897
|
-
* @returns The query (mutated in place) with the rule or group
|
|
5179
|
+
* @returns The query (mutated in place) with the rule or group properties updated.
|
|
4898
5180
|
*
|
|
4899
5181
|
* @group Query Tools
|
|
4900
5182
|
*/
|
|
4901
|
-
const updateInPlace = (query,
|
|
5183
|
+
const updateInPlace = ((query, a, b, c, d) => applyUpdatesInPlace(query, a, b, c, d));
|
|
5184
|
+
/**
|
|
5185
|
+
* Updates a single property of a rule or group within a query in place.
|
|
5186
|
+
*/
|
|
5187
|
+
const updateInPlaceSingle = (query, prop, value, pathOrID, options = {}) => {
|
|
4902
5188
|
const { resetOnFieldChange: _resetOnFieldChange = true, resetOnOperatorChange = false, getRuleDefaultOperator = () => "=", getValueSources = () => ["value"], getRuleDefaultValue = () => "", getMatchModes = () => [] } = options;
|
|
4903
5189
|
let resetOnFieldChange = _resetOnFieldChange;
|
|
4904
5190
|
const path = Array.isArray(pathOrID) ? pathOrID : getPathOfID(pathOrID, query);
|
|
@@ -5145,6 +5431,6 @@ const groupInPlace = (query, sourcePathOrID, targetPathOrID, options = {}) => {
|
|
|
5145
5431
|
return query;
|
|
5146
5432
|
};
|
|
5147
5433
|
//#endregion
|
|
5148
|
-
export { LogType, TestID, add, addInPlace, bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, clsx, convertFromIC, convertQuery, convertToIC, cypherCombinatorMap, defaultCELValueProcessor, defaultCombinatorLabelMap, defaultCombinators, defaultCombinatorsExtended, defaultControlClassnames, defaultExportOperatorMap, defaultJoinChar, defaultMatchModes, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorLabelMap, defaultOperatorNegationMap, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, defaultOperators, defaultPlaceholderFieldGroupLabel, defaultPlaceholderFieldLabel, defaultPlaceholderFieldName, defaultPlaceholderLabel, defaultPlaceholderName, defaultPlaceholderOperatorGroupLabel, defaultPlaceholderOperatorLabel, defaultPlaceholderOperatorName, defaultPlaceholderValueGroupLabel, defaultPlaceholderValueLabel, defaultPlaceholderValueName, defaultRuleGroupProcessorCEL, defaultRuleGroupProcessorCypher, defaultRuleGroupProcessorDiagnostics, defaultRuleGroupProcessorDrizzle, defaultRuleGroupProcessorElasticSearch, defaultRuleGroupProcessorGremlin, defaultRuleGroupProcessorJSONata, defaultRuleGroupProcessorJsonLogic, defaultRuleGroupProcessorLDAP, defaultRuleGroupProcessorMongoDB, defaultRuleGroupProcessorMongoDBQuery, defaultRuleGroupProcessorNL, defaultRuleGroupProcessorParameterized, defaultRuleGroupProcessorPrisma, defaultRuleGroupProcessorSPARQL, defaultRuleGroupProcessorSQL, defaultRuleGroupProcessorSequelize, defaultRuleGroupProcessorSpEL, defaultRuleGroupProcessorTanStackDB, defaultRuleProcessorCEL, defaultRuleProcessorCypher, defaultRuleProcessorDrizzle, defaultRuleProcessorElasticSearch, defaultRuleProcessorGremlin, defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, defaultRuleProcessorLDAP, defaultRuleProcessorMongoDB, defaultRuleProcessorMongoDBQuery, defaultRuleProcessorNL, defaultRuleProcessorParameterized, defaultRuleProcessorPrisma, defaultRuleProcessorSPARQL, defaultRuleProcessorSQL, defaultRuleProcessorSequelize, defaultRuleProcessorSpEL, defaultRuleProcessorTanStackDB, defaultSpELValueProcessor, defaultTranslations, defaultValidator, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, filterFieldsByComparator, findID, findPath, formatQuery, formatQueryOptionPresets, generateAccessibleDescription, generateID, getCommonAncestorPath, getFirstOption, getMatchModesUtil, getNLTranslataion, getOption, getParentPath, getParseNumberMethod, getPathOfID, getQuoteFieldNamesWithArray, getQuotedFieldName, getValidationClassNames, getValueSourcesUtil, group, groupInPlace, groupInvalidReasons, insert, insertInPlace, isAncestor, isFlexibleOptionArray, isFlexibleOptionGroupArray, isFullOptionArray, isFullOptionGroupArray, isOptionGroupArray, isPojo, isRuleGroup, isRuleGroupType, isRuleGroupTypeIC, isRuleOrGroupValid, isRuleType, isUnsafeKey, isValidValue, isValidationResult, isValueProcessorLegacy, joinWith, jsonLogicAdditionalOperators, lc, mapSQLOperator, mergeAnyTranslation, mergeAnyTranslations, mergeClassnames, mongoDbFallback, mongoOperators, move, moveInPlace, normalizeConstituentWordOrder, nullFreeArray, nullOrUndefinedOrEmpty, numericRegex, numerifyValues, objectEntries, objectKeys, parseNumber, pathIsDisabled, pathsAreEqual, preferAnyProp, preferFlagProps, preferProp, prepareOptionList, prepareRule, prepareRuleGroup, prepareRuleOrGroup, prismaFallback, prismaOperators, processMatchMode, queryBuilderFlagDefaults, regenerateID, regenerateIDs, remove, removeInPlace, rootPath, shouldRenderAsNumber, sparqlVar, splitBy, sqlDialectPresets, standardClassnames, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex };
|
|
5434
|
+
export { LogType, TestID, add, addInPlace, betweenOperators, bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, clsx, convertFromIC, convertQuery, convertToIC, cypherCombinatorMap, defaultCELValueProcessor, defaultCombinatorLabelMap, defaultCombinators, defaultCombinatorsExtended, defaultControlClassnames, defaultExportOperatorMap, defaultJoinChar, defaultMatchModes, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorLabelMap, defaultOperatorNegationMap, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, defaultOperators, defaultPlaceholderFieldGroupLabel, defaultPlaceholderFieldLabel, defaultPlaceholderFieldName, defaultPlaceholderLabel, defaultPlaceholderName, defaultPlaceholderOperatorGroupLabel, defaultPlaceholderOperatorLabel, defaultPlaceholderOperatorName, defaultPlaceholderValueGroupLabel, defaultPlaceholderValueLabel, defaultPlaceholderValueName, defaultRuleGroupProcessorCEL, defaultRuleGroupProcessorCypher, defaultRuleGroupProcessorDiagnostics, defaultRuleGroupProcessorDrizzle, defaultRuleGroupProcessorElasticSearch, defaultRuleGroupProcessorGremlin, defaultRuleGroupProcessorJSONata, defaultRuleGroupProcessorJsonLogic, defaultRuleGroupProcessorLDAP, defaultRuleGroupProcessorMongoDB, defaultRuleGroupProcessorMongoDBQuery, defaultRuleGroupProcessorNL, defaultRuleGroupProcessorParameterized, defaultRuleGroupProcessorPrisma, defaultRuleGroupProcessorSPARQL, defaultRuleGroupProcessorSQL, defaultRuleGroupProcessorSequelize, defaultRuleGroupProcessorSpEL, defaultRuleGroupProcessorTanStackDB, defaultRuleProcessorCEL, defaultRuleProcessorCypher, defaultRuleProcessorDrizzle, defaultRuleProcessorElasticSearch, defaultRuleProcessorGremlin, defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, defaultRuleProcessorLDAP, defaultRuleProcessorMongoDB, defaultRuleProcessorMongoDBQuery, defaultRuleProcessorNL, defaultRuleProcessorParameterized, defaultRuleProcessorPrisma, defaultRuleProcessorSPARQL, defaultRuleProcessorSQL, defaultRuleProcessorSequelize, defaultRuleProcessorSpEL, defaultRuleProcessorTanStackDB, defaultSpELValueProcessor, defaultTranslations, defaultValidator, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, filterFieldsByComparator, findID, findPath, formatQuery, formatQueryOptionPresets, generateAccessibleDescription, generateID, getCommonAncestorPath, getFirstOption, getLikeWildcards, getMatchModesUtil, getNLTranslataion, getOption, getParentPath, getParseNumberMethod, getPathOfID, getQuoteFieldNamesWithArray, getQuotedFieldName, getRuleDefaultValue, getSQLConcat, getValidationClassNames, getValueSourcesUtil, group, groupInPlace, groupInvalidReasons, inOperators, insert, insertInPlace, isAncestor, isFlexibleOptionArray, isFlexibleOptionGroupArray, isFullOptionArray, isFullOptionGroupArray, isOptionGroupArray, isPojo, isRuleGroup, isRuleGroupType, isRuleGroupTypeIC, isRuleOrGroupValid, isRuleType, isUnsafeKey, isValidValue, isValidationResult, isValueProcessorLegacy, joinWith, jsonLogicAdditionalOperators, lc, mapSQLOperator, mergeAnyTranslation, mergeAnyTranslations, mergeClassnames, mongoDbFallback, mongoOperators, move, moveInPlace, normalizeConstituentWordOrder, nullFreeArray, nullOperators, nullOrUndefinedOrEmpty, numericRegex, numerifyValues, objectEntries, objectKeys, parseNumber, pathIsDisabled, pathsAreEqual, preferAnyProp, preferFlagProps, preferProp, prepareOptionList, prepareRule, prepareRuleGroup, prepareRuleOrGroup, prismaFallback, prismaOperators, processMatchMode, queryBuilderFlagDefaults, regenerateID, regenerateIDs, relationalOperators, remove, removeInPlace, rootPath, shouldRenderAsNumber, sparqlVar, splitBy, sqlDialectPresets, standardClassnames, stripParamPrefix, substringOperators, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex, withParamPrefix, wrapLikeFragment };
|
|
5149
5435
|
|
|
5150
5436
|
//# sourceMappingURL=react-querybuilder_core.mjs.map
|