@react-querybuilder/core 8.20.1 → 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 +323 -26
- 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 +173 -91
- package/dist/formatQuery.js.map +1 -1
- package/dist/formatQuery.mjs +100 -23
- 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-DaAXX792.js → prepareQueryObjects-C2-kTZvR.js} +6 -6
- package/dist/prepareQueryObjects-C2-kTZvR.js.map +1 -0
- package/dist/{prepareQueryObjects-Cd_tt4oy.mjs → prepareQueryObjects-Q18lHCKl.mjs} +4 -4
- 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 +339 -44
- package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_core.mjs +313 -27
- 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 +15 -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-Cd_tt4oy.mjs.map +0 -1
- package/dist/prepareQueryObjects-DaAXX792.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
|
|
@@ -674,7 +718,7 @@ const isRuleGroupType = (rg) => isRuleGroup(rg) && typeof rg.combinator === "str
|
|
|
674
718
|
*/
|
|
675
719
|
const isRuleGroupTypeIC = (rg) => isRuleGroup(rg) && rg.combinator === void 0;
|
|
676
720
|
//#endregion
|
|
677
|
-
//#region \0@oxc-project+runtime@0.
|
|
721
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
|
|
678
722
|
function _typeof(o) {
|
|
679
723
|
"@babel/helpers - typeof";
|
|
680
724
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -684,7 +728,7 @@ function _typeof(o) {
|
|
|
684
728
|
}, _typeof(o);
|
|
685
729
|
}
|
|
686
730
|
//#endregion
|
|
687
|
-
//#region \0@oxc-project+runtime@0.
|
|
731
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
|
|
688
732
|
function toPrimitive(t, r) {
|
|
689
733
|
if ("object" != _typeof(t) || !t) return t;
|
|
690
734
|
var e = t[Symbol.toPrimitive];
|
|
@@ -696,13 +740,13 @@ function toPrimitive(t, r) {
|
|
|
696
740
|
return ("string" === r ? String : Number)(t);
|
|
697
741
|
}
|
|
698
742
|
//#endregion
|
|
699
|
-
//#region \0@oxc-project+runtime@0.
|
|
743
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
|
|
700
744
|
function toPropertyKey(t) {
|
|
701
745
|
var i = toPrimitive(t, "string");
|
|
702
746
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
703
747
|
}
|
|
704
748
|
//#endregion
|
|
705
|
-
//#region \0@oxc-project+runtime@0.
|
|
749
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
|
|
706
750
|
function _defineProperty(e, r, t) {
|
|
707
751
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
708
752
|
value: t,
|
|
@@ -712,7 +756,7 @@ function _defineProperty(e, r, t) {
|
|
|
712
756
|
}) : e[r] = t, e;
|
|
713
757
|
}
|
|
714
758
|
//#endregion
|
|
715
|
-
//#region \0@oxc-project+runtime@0.
|
|
759
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/objectSpread2.js
|
|
716
760
|
function ownKeys(e, r) {
|
|
717
761
|
var t = Object.keys(e);
|
|
718
762
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -735,7 +779,7 @@ function _objectSpread2(e) {
|
|
|
735
779
|
return e;
|
|
736
780
|
}
|
|
737
781
|
//#endregion
|
|
738
|
-
//#region \0@oxc-project+runtime@0.
|
|
782
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/objectWithoutPropertiesLoose.js
|
|
739
783
|
function _objectWithoutPropertiesLoose(r, e) {
|
|
740
784
|
if (null == r) return {};
|
|
741
785
|
var t = {};
|
|
@@ -746,7 +790,7 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
746
790
|
return t;
|
|
747
791
|
}
|
|
748
792
|
//#endregion
|
|
749
|
-
//#region \0@oxc-project+runtime@0.
|
|
793
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/objectWithoutProperties.js
|
|
750
794
|
function _objectWithoutProperties(e, t) {
|
|
751
795
|
if (null == e) return {};
|
|
752
796
|
var o, r, i = _objectWithoutPropertiesLoose(e, t);
|
|
@@ -1254,6 +1298,51 @@ const mapSQLOperator = (rqbOperator) => {
|
|
|
1254
1298
|
}
|
|
1255
1299
|
};
|
|
1256
1300
|
/**
|
|
1301
|
+
* Returns a preset-aware SQL string-concatenation function. Emits `CONCAT(a, b, ...)` when
|
|
1302
|
+
* `concatOperator` is `"CONCAT"` (case-insensitive), otherwise joins with the infix operator
|
|
1303
|
+
* (e.g. `a || b`, `a + b`).
|
|
1304
|
+
*
|
|
1305
|
+
* @group Export
|
|
1306
|
+
*/
|
|
1307
|
+
const getSQLConcat = (concatOperator = "||") => (...values) => concatOperator.toUpperCase() === "CONCAT" ? `CONCAT(${values.join(", ")})` : values.join(` ${concatOperator} `);
|
|
1308
|
+
/**
|
|
1309
|
+
* Returns the `[prefix, suffix]` `LIKE` wildcards for a string-match operator (e.g. `contains`
|
|
1310
|
+
* → `['%', '%']`, `beginsWith` → `['', '%']`, `endsWith` → `['%', '']`). Unknown operators
|
|
1311
|
+
* yield `['', '']`.
|
|
1312
|
+
*
|
|
1313
|
+
* @group Export
|
|
1314
|
+
*/
|
|
1315
|
+
const getLikeWildcards = (operatorLC) => {
|
|
1316
|
+
switch (operatorLC) {
|
|
1317
|
+
case "contains":
|
|
1318
|
+
case "doesnotcontain": return ["%", "%"];
|
|
1319
|
+
case "beginswith":
|
|
1320
|
+
case "doesnotbeginwith": return ["", "%"];
|
|
1321
|
+
case "endswith":
|
|
1322
|
+
case "doesnotendwith": return ["%", ""];
|
|
1323
|
+
default: return ["", ""];
|
|
1324
|
+
}
|
|
1325
|
+
};
|
|
1326
|
+
/**
|
|
1327
|
+
* Wraps an already-serialized SQL fragment (a quoted field name or an expression) with the
|
|
1328
|
+
* `LIKE` wildcards for the given (lowercase) string-match operator, concatenating the literal
|
|
1329
|
+
* `%` markers via the preset-aware {@link getSQLConcat}. Returns the fragment untouched for
|
|
1330
|
+
* operators without wildcards.
|
|
1331
|
+
*
|
|
1332
|
+
* @group Export
|
|
1333
|
+
*/
|
|
1334
|
+
const wrapLikeFragment = (fragment, operatorLC, { concatOperator = "||", quoteValuesWith, wrapValueWith = ["", ""] } = {}) => {
|
|
1335
|
+
const [pre, post] = getLikeWildcards(operatorLC);
|
|
1336
|
+
const quoteChar = quoteValuesWith || `'`;
|
|
1337
|
+
const quote = (p) => `${wrapValueWith[0]}${quoteChar}${p}${quoteChar}${wrapValueWith[1]}`;
|
|
1338
|
+
const parts = [
|
|
1339
|
+
pre && quote(pre),
|
|
1340
|
+
fragment,
|
|
1341
|
+
post && quote(post)
|
|
1342
|
+
].filter(Boolean);
|
|
1343
|
+
return parts.length > 1 ? getSQLConcat(concatOperator)(...parts) : fragment;
|
|
1344
|
+
};
|
|
1345
|
+
/**
|
|
1257
1346
|
* Maps a (lowercase) {@link DefaultOperatorName} to a MongoDB operator.
|
|
1258
1347
|
*
|
|
1259
1348
|
* @group Export
|
|
@@ -1405,6 +1494,27 @@ const normalizeConstituentWordOrder = (input) => {
|
|
|
1405
1494
|
return result;
|
|
1406
1495
|
};
|
|
1407
1496
|
/**
|
|
1497
|
+
* Prefixes a named-parameter value with the given `paramPrefix` unless the value already
|
|
1498
|
+
* begins with it. Used by {@link formatQuery} to render rules whose `valueSource` is
|
|
1499
|
+
* `"parameter"` (e.g. `"p1"` with prefix `":"` → `":p1"`; `":p1"` → `":p1"`).
|
|
1500
|
+
*
|
|
1501
|
+
* @group Export
|
|
1502
|
+
*/
|
|
1503
|
+
const withParamPrefix = (value, paramPrefix = ":") => {
|
|
1504
|
+
const v = `${value !== null && value !== void 0 ? value : ""}`;
|
|
1505
|
+
return paramPrefix && v.startsWith(paramPrefix) ? v : `${paramPrefix}${v}`;
|
|
1506
|
+
};
|
|
1507
|
+
/**
|
|
1508
|
+
* Strips a leading `paramPrefix` from a named-parameter value if present. Inverse of
|
|
1509
|
+
* {@link withParamPrefix}; used to normalize parameter names for validation/lookup.
|
|
1510
|
+
*
|
|
1511
|
+
* @group Export
|
|
1512
|
+
*/
|
|
1513
|
+
const stripParamPrefix = (value, paramPrefix = ":") => {
|
|
1514
|
+
const v = `${value !== null && value !== void 0 ? value : ""}`;
|
|
1515
|
+
return paramPrefix && v.startsWith(paramPrefix) ? v.slice(paramPrefix.length) : v;
|
|
1516
|
+
};
|
|
1517
|
+
/**
|
|
1408
1518
|
* Default translations used by {@link formatQuery} for "natural_language" format.
|
|
1409
1519
|
*
|
|
1410
1520
|
* @group Export
|
|
@@ -1547,7 +1657,7 @@ const escapeDoubleQuotes$1 = (v, escapeQuotes) => typeof v !== "string" || !esca
|
|
|
1547
1657
|
const defaultRuleProcessorCEL = (rule, opts = {}) => {
|
|
1548
1658
|
const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
|
|
1549
1659
|
const { field, operator, value, valueSource } = rule;
|
|
1550
|
-
const valueIsField = valueSource === "field";
|
|
1660
|
+
const valueIsField = valueSource === "field" || valueSource === "parameter";
|
|
1551
1661
|
const operatorTL = lc(operator === "=" ? "==" : operator);
|
|
1552
1662
|
const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || shouldRenderAsNumber(value, parseNumbers);
|
|
1553
1663
|
const matchEval = processMatchMode(rule);
|
|
@@ -1854,7 +1964,7 @@ const escapeSingleQuotes$2 = (v, escapeQuotes) => typeof v !== "string" || !esca
|
|
|
1854
1964
|
const defaultRuleProcessorSpEL = (rule, opts = {}) => {
|
|
1855
1965
|
const { field, operator, value, valueSource } = rule;
|
|
1856
1966
|
const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
|
|
1857
|
-
const valueIsField = valueSource === "field";
|
|
1967
|
+
const valueIsField = valueSource === "field" || valueSource === "parameter";
|
|
1858
1968
|
const operatorTL = lc(operator === "=" ? "==" : operator);
|
|
1859
1969
|
const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || shouldRenderAsNumber(value, parseNumbers);
|
|
1860
1970
|
const matchEval = processMatchMode(rule);
|
|
@@ -1885,11 +1995,20 @@ const defaultRuleProcessorSpEL = (rule, opts = {}) => {
|
|
|
1885
1995
|
case ">":
|
|
1886
1996
|
case ">=": return `${field} ${operatorTL} ${valueIsField || useBareValue ? trimIfString(value) : `'${escapeSingleQuotes$2(value, escapeQuotes)}'`}`;
|
|
1887
1997
|
case "contains":
|
|
1888
|
-
case "doesnotcontain":
|
|
1998
|
+
case "doesnotcontain": {
|
|
1999
|
+
const valueTL = valueIsField ? `'.*'.concat(${trimIfString(value)}).concat('.*')` : `'.*${escapeSingleQuotes$2(value, escapeQuotes)}.*'`;
|
|
2000
|
+
return wrapInNegation(`${field} matches ${valueTL}`, shouldNegate$1(operatorTL));
|
|
2001
|
+
}
|
|
1889
2002
|
case "beginswith":
|
|
1890
|
-
case "doesnotbeginwith":
|
|
2003
|
+
case "doesnotbeginwith": {
|
|
2004
|
+
const valueTL = valueIsField ? `'^'.concat(${trimIfString(value)}).concat('.*')` : `'${typeof value === "string" && !value.startsWith("^") || useBareValue ? "^" : ""}${escapeSingleQuotes$2(value, escapeQuotes)}.*'`;
|
|
2005
|
+
return wrapInNegation(`${field} matches ${valueTL}`, shouldNegate$1(operatorTL));
|
|
2006
|
+
}
|
|
1891
2007
|
case "endswith":
|
|
1892
|
-
case "doesnotendwith":
|
|
2008
|
+
case "doesnotendwith": {
|
|
2009
|
+
const valueTL = valueIsField ? `'.*'.concat(${trimIfString(value)}).concat('$')` : `'.*${escapeSingleQuotes$2(value, escapeQuotes)}${typeof value === "string" && !value.endsWith("$") || useBareValue ? "$" : ""}'`;
|
|
2010
|
+
return wrapInNegation(`${field} matches ${valueTL}`, shouldNegate$1(operatorTL));
|
|
2011
|
+
}
|
|
1893
2012
|
case "null": return `${field} == null`;
|
|
1894
2013
|
case "notnull": return `${field} != null`;
|
|
1895
2014
|
case "in":
|
|
@@ -1927,7 +2046,36 @@ const escapeStringValueQuotes$1 = (v, quoteChar, escapeQuotes) => escapeQuotes &
|
|
|
1927
2046
|
*
|
|
1928
2047
|
* @group Export
|
|
1929
2048
|
*/
|
|
1930
|
-
const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQuotes, parseNumbers, preserveValueOrder, quoteFieldNamesWith, quoteValuesWith, concatOperator = "||", fieldIdentifierSeparator, wrapValueWith = ["", ""], translations } = {}) => {
|
|
2049
|
+
const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQuotes, parseNumbers, preserveValueOrder, quoteFieldNamesWith, quoteValuesWith, concatOperator = "||", fieldIdentifierSeparator, paramPrefix, wrapValueWith = ["", ""], translations } = {}) => {
|
|
2050
|
+
if (valueSource === "parameter") {
|
|
2051
|
+
const operatorLowerCase = lc(operator);
|
|
2052
|
+
if (operatorLowerCase === "between" || operatorLowerCase === "notbetween") {
|
|
2053
|
+
var _ref, _translations$between;
|
|
2054
|
+
const valueAsArray = toArray(value, { retainEmptyStrings: true });
|
|
2055
|
+
if (valueAsArray.length < 2 || !isValidValue(valueAsArray[0]) || !isValidValue(valueAsArray[1])) return "";
|
|
2056
|
+
const [first, second] = valueAsArray;
|
|
2057
|
+
return [withParamPrefix(first, paramPrefix), withParamPrefix(second, paramPrefix)].join(` ${(_ref = (_translations$between = translations === null || translations === void 0 ? void 0 : translations.betweenAnd) !== null && _translations$between !== void 0 ? _translations$between : translations === null || translations === void 0 ? void 0 : translations.and) !== null && _ref !== void 0 ? _ref : "and"} `);
|
|
2058
|
+
}
|
|
2059
|
+
if (operatorLowerCase === "in" || operatorLowerCase === "notin") {
|
|
2060
|
+
const valueAsArray = toArray(value);
|
|
2061
|
+
if (valueAsArray.length === 0) return "";
|
|
2062
|
+
return `(${valueAsArray.map((v) => withParamPrefix(v, paramPrefix)).join(", ")})`;
|
|
2063
|
+
}
|
|
2064
|
+
const paramRef = withParamPrefix(value, paramPrefix);
|
|
2065
|
+
switch (operatorLowerCase) {
|
|
2066
|
+
case "contains":
|
|
2067
|
+
case "doesnotcontain":
|
|
2068
|
+
case "beginswith":
|
|
2069
|
+
case "doesnotbeginwith":
|
|
2070
|
+
case "endswith":
|
|
2071
|
+
case "doesnotendwith": return wrapLikeFragment(paramRef, operatorLowerCase, {
|
|
2072
|
+
concatOperator,
|
|
2073
|
+
quoteValuesWith,
|
|
2074
|
+
wrapValueWith
|
|
2075
|
+
});
|
|
2076
|
+
}
|
|
2077
|
+
return paramRef;
|
|
2078
|
+
}
|
|
1931
2079
|
const valueIsField = valueSource === "field";
|
|
1932
2080
|
const operatorLowerCase = lc(operator);
|
|
1933
2081
|
const quoteChar = quoteValuesWith || "'";
|
|
@@ -1938,7 +2086,11 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
|
|
|
1938
2086
|
quoteFieldNamesWith,
|
|
1939
2087
|
fieldIdentifierSeparator
|
|
1940
2088
|
});
|
|
1941
|
-
const
|
|
2089
|
+
const likeOpts = {
|
|
2090
|
+
concatOperator,
|
|
2091
|
+
quoteValuesWith,
|
|
2092
|
+
wrapValueWith
|
|
2093
|
+
};
|
|
1942
2094
|
switch (operatorLowerCase) {
|
|
1943
2095
|
case "null":
|
|
1944
2096
|
case "notnull": return "";
|
|
@@ -1950,7 +2102,7 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
|
|
|
1950
2102
|
}
|
|
1951
2103
|
case "between":
|
|
1952
2104
|
case "notbetween": {
|
|
1953
|
-
var
|
|
2105
|
+
var _ref2, _translations$between2;
|
|
1954
2106
|
const valueAsArray = toArray(value, { retainEmptyStrings: true });
|
|
1955
2107
|
if (valueAsArray.length < 2 || !isValidValue(valueAsArray[0]) || !isValidValue(valueAsArray[1])) return "";
|
|
1956
2108
|
const [first, second] = valueAsArray;
|
|
@@ -1963,14 +2115,14 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
|
|
|
1963
2115
|
valsOneAndTwoOnly[0] = secondNum;
|
|
1964
2116
|
valsOneAndTwoOnly[1] = firstNum;
|
|
1965
2117
|
}
|
|
1966
|
-
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(` ${(
|
|
2118
|
+
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(` ${(_ref2 = (_translations$between2 = translations === null || translations === void 0 ? void 0 : translations.betweenAnd) !== null && _translations$between2 !== void 0 ? _translations$between2 : translations === null || translations === void 0 ? void 0 : translations.and) !== null && _ref2 !== void 0 ? _ref2 : "and"} `);
|
|
1967
2119
|
}
|
|
1968
2120
|
case "contains":
|
|
1969
|
-
case "doesnotcontain": return valueIsField ?
|
|
2121
|
+
case "doesnotcontain": return valueIsField ? wrapLikeFragment(wrapFieldName(value), operatorLowerCase, likeOpts) : quoteValue(`%${escapeValue(value)}%`);
|
|
1970
2122
|
case "beginswith":
|
|
1971
|
-
case "doesnotbeginwith": return valueIsField ?
|
|
2123
|
+
case "doesnotbeginwith": return valueIsField ? wrapLikeFragment(wrapFieldName(value), operatorLowerCase, likeOpts) : quoteValue(`${escapeValue(value)}%`);
|
|
1972
2124
|
case "endswith":
|
|
1973
|
-
case "doesnotendwith": return valueIsField ?
|
|
2125
|
+
case "doesnotendwith": return valueIsField ? wrapLikeFragment(wrapFieldName(value), operatorLowerCase, likeOpts) : quoteValue(`%${escapeValue(value)}`);
|
|
1974
2126
|
}
|
|
1975
2127
|
if (typeof value === "boolean") return value ? "TRUE" : "FALSE";
|
|
1976
2128
|
return valueIsField ? wrapFieldName(value) : shouldRenderAsNumber(value, parseNumbers) ? `${trimIfString(value)}` : `${wrapAndEscape(value)}`;
|
|
@@ -2729,7 +2881,7 @@ const defaultRuleGroupProcessorTanStackDB = (ruleGroup, options) => (refs) => {
|
|
|
2729
2881
|
};
|
|
2730
2882
|
//#endregion
|
|
2731
2883
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorDiagnostics.ts
|
|
2732
|
-
const numericInputTypes = new Set([
|
|
2884
|
+
const numericInputTypes = /* @__PURE__ */ new Set([
|
|
2733
2885
|
"number",
|
|
2734
2886
|
"range",
|
|
2735
2887
|
"bigint"
|
|
@@ -3538,7 +3690,10 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
|
|
|
3538
3690
|
case "null":
|
|
3539
3691
|
case "notnull": return { [`${operatorLC === "notnull" ? "!" : "="}=`]: [fieldObject, null] };
|
|
3540
3692
|
case "in":
|
|
3541
|
-
case "notin":
|
|
3693
|
+
case "notin": {
|
|
3694
|
+
const valueAsArray = toArray(value).map((v) => fieldOrNumberRenderer(v));
|
|
3695
|
+
return negateIfNotOp(operatorLC, { in: [fieldObject, valueAsArray] });
|
|
3696
|
+
}
|
|
3542
3697
|
case "between":
|
|
3543
3698
|
case "notbetween": {
|
|
3544
3699
|
const valueAsArray = toArray(value);
|
|
@@ -3569,11 +3724,20 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
|
|
|
3569
3724
|
return false;
|
|
3570
3725
|
}
|
|
3571
3726
|
case "contains":
|
|
3572
|
-
case "doesnotcontain":
|
|
3727
|
+
case "doesnotcontain": {
|
|
3728
|
+
const jsonRule = { in: [fieldOrNumberRenderer(value), fieldObject] };
|
|
3729
|
+
return negateIfNotOp(operatorLC, jsonRule);
|
|
3730
|
+
}
|
|
3573
3731
|
case "beginswith":
|
|
3574
|
-
case "doesnotbeginwith":
|
|
3732
|
+
case "doesnotbeginwith": {
|
|
3733
|
+
const jsonRule = { startsWith: [fieldObject, fieldOrNumberRenderer(value)] };
|
|
3734
|
+
return negateIfNotOp(operatorLC, jsonRule);
|
|
3735
|
+
}
|
|
3575
3736
|
case "endswith":
|
|
3576
|
-
case "doesnotendwith":
|
|
3737
|
+
case "doesnotendwith": {
|
|
3738
|
+
const jsonRule = { endsWith: [fieldObject, fieldOrNumberRenderer(value)] };
|
|
3739
|
+
return negateIfNotOp(operatorLC, jsonRule);
|
|
3740
|
+
}
|
|
3577
3741
|
}
|
|
3578
3742
|
return false;
|
|
3579
3743
|
};
|
|
@@ -3607,7 +3771,10 @@ const defaultRuleProcessorLDAP = (rule, options = {}) => {
|
|
|
3607
3771
|
case "null":
|
|
3608
3772
|
case "notnull": return negateIf(`(${field}=*)`, operatorLC === "notnull");
|
|
3609
3773
|
case "in":
|
|
3610
|
-
case "notin":
|
|
3774
|
+
case "notin": {
|
|
3775
|
+
const valueAsArray = toArray(value);
|
|
3776
|
+
return negateIf(`(|${valueAsArray.map((val) => `(${field}=${ldapEscape(val)})`).join("")})`, operatorLC === "notin");
|
|
3777
|
+
}
|
|
3611
3778
|
case "between":
|
|
3612
3779
|
case "notbetween": {
|
|
3613
3780
|
const valueAsArray = toArray(value);
|
|
@@ -3914,7 +4081,22 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
|
|
|
3914
4081
|
const [qPre, qPost] = quoteFieldNamesWith;
|
|
3915
4082
|
if ((sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in" || sqlOperatorLowerCase === "between" || sqlOperatorLowerCase === "not between") && !value) return finalize("");
|
|
3916
4083
|
else if (sqlOperatorLowerCase === "is null" || sqlOperatorLowerCase === "is not null") return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator}`);
|
|
3917
|
-
else if (rule.valueSource === "
|
|
4084
|
+
else if (rule.valueSource === "parameter") {
|
|
4085
|
+
const registerParam = (v) => {
|
|
4086
|
+
const ref = withParamPrefix(v, paramPrefix);
|
|
4087
|
+
if (!parameterized) paramsNamed[paramsKeepPrefix ? ref : stripParamPrefix(v, paramPrefix)] = null;
|
|
4088
|
+
return ref;
|
|
4089
|
+
};
|
|
4090
|
+
if (sqlOperatorLowerCase === "between" || sqlOperatorLowerCase === "not between") {
|
|
4091
|
+
const [first, second] = toArray(rule.value, { retainEmptyStrings: true }).slice(0, 2);
|
|
4092
|
+
return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} ${registerParam(first)} and ${registerParam(second)}`.trim());
|
|
4093
|
+
}
|
|
4094
|
+
if (sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in") {
|
|
4095
|
+
const splitValue = toArray(rule.value);
|
|
4096
|
+
return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} (${splitValue.map((v) => registerParam(v)).join(", ")})`);
|
|
4097
|
+
}
|
|
4098
|
+
return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} ${wrapLikeFragment(registerParam(rule.value), lc(rule.operator), { concatOperator })}`.trim());
|
|
4099
|
+
} else if (rule.valueSource === "field") return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} ${value}`.trim());
|
|
3918
4100
|
else if (sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in") {
|
|
3919
4101
|
const splitValue = toArray(rule.value);
|
|
3920
4102
|
if (parameterized) {
|
|
@@ -4107,7 +4289,9 @@ const defaultRuleProcessorSPARQL = (rule, opts = {}) => {
|
|
|
4107
4289
|
if (typeof v === "bigint") return String(v);
|
|
4108
4290
|
if (valueIsField) return sparqlVar(trimIfString(v));
|
|
4109
4291
|
if (typeof v === "number" || shouldRenderAsNumber(v, parseNumbers)) return trimIfString(v);
|
|
4292
|
+
/* v8 ignore start -- @preserve */
|
|
4110
4293
|
const s = typeof v === "string" ? v : (_JSON$stringify = JSON.stringify(v)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : "";
|
|
4294
|
+
/* v8 ignore stop -- @preserve */
|
|
4111
4295
|
if (s.startsWith("?") || s.startsWith("<") || s.includes(":")) return s;
|
|
4112
4296
|
return `"${escapeDoubleQuotes(s, escapeQuotes)}"`;
|
|
4113
4297
|
};
|
|
@@ -4351,7 +4535,7 @@ const defaultFormatQueryOptions = {
|
|
|
4351
4535
|
translations: {},
|
|
4352
4536
|
operatorMap: {}
|
|
4353
4537
|
};
|
|
4354
|
-
const valueProcessorCanActAsRuleProcessor = new Set([
|
|
4538
|
+
const valueProcessorCanActAsRuleProcessor = /* @__PURE__ */ new Set([
|
|
4355
4539
|
"cel",
|
|
4356
4540
|
"drizzle",
|
|
4357
4541
|
"elasticsearch",
|
|
@@ -4365,7 +4549,7 @@ const valueProcessorCanActAsRuleProcessor = new Set([
|
|
|
4365
4549
|
"spel",
|
|
4366
4550
|
"tanstack_db"
|
|
4367
4551
|
]);
|
|
4368
|
-
const sqlFormats = new Set([
|
|
4552
|
+
const sqlFormats = /* @__PURE__ */ new Set([
|
|
4369
4553
|
"sql",
|
|
4370
4554
|
"parameterized",
|
|
4371
4555
|
"parameterized_named",
|
|
@@ -4433,6 +4617,10 @@ function formatQuery(ruleGroup, optionParam = {}) {
|
|
|
4433
4617
|
if (typeof field.validator === "function") fieldValidator = field.validator;
|
|
4434
4618
|
}
|
|
4435
4619
|
}
|
|
4620
|
+
if (rule.valueSource === "parameter" && typeof optObj.getParameters === "function") {
|
|
4621
|
+
const fieldData = getOption(fields, rule.field);
|
|
4622
|
+
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;
|
|
4623
|
+
}
|
|
4436
4624
|
return [validationResult, fieldValidator];
|
|
4437
4625
|
};
|
|
4438
4626
|
const finalOptions = _objectSpread2(_objectSpread2({}, optObj), {}, {
|
|
@@ -4648,7 +4836,7 @@ if (cryptoModule) {
|
|
|
4648
4836
|
if (typeof cryptoModule.randomUUID === "function") generateID = () => cryptoModule.randomUUID();
|
|
4649
4837
|
else if (typeof cryptoModule.getRandomValues === "function") {
|
|
4650
4838
|
const position19vals = "89ab";
|
|
4651
|
-
const container = new Uint32Array(32);
|
|
4839
|
+
const container = /* @__PURE__ */ new Uint32Array(32);
|
|
4652
4840
|
generateID = () => {
|
|
4653
4841
|
cryptoModule.getRandomValues(container);
|
|
4654
4842
|
let id = (container[0] % 16).toString(16);
|
|
@@ -4694,6 +4882,45 @@ const getMatchModesUtil = (fieldData, getMatchModes) => {
|
|
|
4694
4882
|
})) !== null && _matchModes$map !== void 0 ? _matchModes$map : [];
|
|
4695
4883
|
};
|
|
4696
4884
|
//#endregion
|
|
4885
|
+
//#region src/utils/getRuleDefaultValue.ts
|
|
4886
|
+
const getFirstOptionsFrom = (opts, r, listsAsArrays) => {
|
|
4887
|
+
const firstOption = getFirstOption(opts);
|
|
4888
|
+
if (r.operator === "between" || r.operator === "notBetween") {
|
|
4889
|
+
const valueAsArray = [firstOption, firstOption];
|
|
4890
|
+
return listsAsArrays ? valueAsArray : joinWith(valueAsArray.map((v) => v !== null && v !== void 0 ? v : /* v8 ignore start -- @preserve */ ""), ",");
|
|
4891
|
+
}
|
|
4892
|
+
return firstOption;
|
|
4893
|
+
};
|
|
4894
|
+
/**
|
|
4895
|
+
* Computes the default `value` for a rule given its `field`/`operator`/`valueSource`, mirroring
|
|
4896
|
+
* the precedence the {@link react-querybuilder!QueryBuilder QueryBuilder} applies: a field's
|
|
4897
|
+
* `defaultValue`, then a `getDefaultValue` override, then a value derived from the field/operator's
|
|
4898
|
+
* value list and editor type (first option for `select`/`radio`, `false` for `checkbox`, paired for
|
|
4899
|
+
* `between`/`notBetween`), or a comparator-valid field when `valueSource` is `'field'`. Falls back
|
|
4900
|
+
* to `''`.
|
|
4901
|
+
*
|
|
4902
|
+
* @group Option Lists
|
|
4903
|
+
*/
|
|
4904
|
+
const getRuleDefaultValue = (rule, options) => {
|
|
4905
|
+
const { fieldData, fields, getValueEditorType, getValues, getDefaultValue, getParameters, listsAsArrays } = options;
|
|
4906
|
+
if ((fieldData === null || fieldData === void 0 ? void 0 : fieldData.defaultValue) !== void 0 && fieldData.defaultValue !== null) return fieldData.defaultValue;
|
|
4907
|
+
else if (getDefaultValue) return getDefaultValue(rule, { fieldData });
|
|
4908
|
+
let value = "";
|
|
4909
|
+
const values = getValues(rule.field, rule.operator, { fieldData });
|
|
4910
|
+
if (rule.valueSource === "field") {
|
|
4911
|
+
const filteredFields = filterFieldsByComparator(fieldData, fields, rule.operator);
|
|
4912
|
+
value = filteredFields.length > 0 ? getFirstOptionsFrom(filteredFields, rule, listsAsArrays) : "";
|
|
4913
|
+
} else if (rule.valueSource === "parameter") {
|
|
4914
|
+
const parameters = getParameters ? getParameters(rule.field, rule.operator, { fieldData }) : null;
|
|
4915
|
+
value = parameters && parameters.length > 0 ? getFirstOption(parameters) : "";
|
|
4916
|
+
} else if (values.length > 0) {
|
|
4917
|
+
const editorType = getValueEditorType(rule.field, rule.operator, { fieldData });
|
|
4918
|
+
if (editorType === "multiselect") value = listsAsArrays ? [] : "";
|
|
4919
|
+
else if (editorType === "select" || editorType === "radio") value = getFirstOptionsFrom(values, rule, listsAsArrays);
|
|
4920
|
+
} else if (getValueEditorType(rule.field, rule.operator, { fieldData }) === "checkbox") value = false;
|
|
4921
|
+
return value;
|
|
4922
|
+
};
|
|
4923
|
+
//#endregion
|
|
4697
4924
|
//#region src/utils/getValidationClassNames.ts
|
|
4698
4925
|
/**
|
|
4699
4926
|
* Gets the standard classname for valid or invalid components
|
|
@@ -4933,21 +5160,89 @@ const addInPlace = (query, ruleOrGroup, parentPathOrID, options = {}) => {
|
|
|
4933
5160
|
return query;
|
|
4934
5161
|
};
|
|
4935
5162
|
/**
|
|
4936
|
-
*
|
|
5163
|
+
* Relative order in which properties are applied during a multi-property update.
|
|
5164
|
+
* Lower ranks apply first; `value` applies last so an explicitly-provided value
|
|
5165
|
+
* is never clobbered by a reset triggered by a `field`/`operator`/`valueSource`
|
|
5166
|
+
* change. Unranked properties default to `3` (between `valueSource` and `value`).
|
|
5167
|
+
*/
|
|
5168
|
+
const updatePropRank = {
|
|
5169
|
+
field: 0,
|
|
5170
|
+
operator: 1,
|
|
5171
|
+
valueSource: 2,
|
|
5172
|
+
value: 4
|
|
5173
|
+
};
|
|
5174
|
+
/** Stable-sorts `[prop, value]` entries by {@link updatePropRank}. */
|
|
5175
|
+
const orderUpdateEntries = (entries) => entries.sort((x, y) => {
|
|
5176
|
+
var _updatePropRank$x$, _updatePropRank$y$;
|
|
5177
|
+
return ((_updatePropRank$x$ = updatePropRank[x[0]]) !== null && _updatePropRank$x$ !== void 0 ? _updatePropRank$x$ : 3) - ((_updatePropRank$y$ = updatePropRank[y[0]]) !== null && _updatePropRank$y$ !== void 0 ? _updatePropRank$y$ : 3);
|
|
5178
|
+
});
|
|
5179
|
+
/**
|
|
5180
|
+
* Normalizes the variadic {@link update}/{@link updateInPlace} arguments (single
|
|
5181
|
+
* prop+value, parallel arrays, or property map) into a canonically-ordered list
|
|
5182
|
+
* of `[prop, value]` entries plus the target path/ID and options.
|
|
5183
|
+
*/
|
|
5184
|
+
const normalizeUpdateArgs = (a, b, c, d) => {
|
|
5185
|
+
var _ref3;
|
|
5186
|
+
if (typeof a === "string") {
|
|
5187
|
+
var _ref;
|
|
5188
|
+
return {
|
|
5189
|
+
entries: [[a, b]],
|
|
5190
|
+
pathOrID: c,
|
|
5191
|
+
options: (_ref = d) !== null && _ref !== void 0 ? _ref : {}
|
|
5192
|
+
};
|
|
5193
|
+
}
|
|
5194
|
+
if (Array.isArray(a)) {
|
|
5195
|
+
var _ref2;
|
|
5196
|
+
const values = b;
|
|
5197
|
+
return {
|
|
5198
|
+
entries: orderUpdateEntries(a.map((prop, i) => [prop, values[i]])),
|
|
5199
|
+
pathOrID: c,
|
|
5200
|
+
options: (_ref2 = d) !== null && _ref2 !== void 0 ? _ref2 : {}
|
|
5201
|
+
};
|
|
5202
|
+
}
|
|
5203
|
+
return {
|
|
5204
|
+
entries: orderUpdateEntries(Object.entries(a)),
|
|
5205
|
+
pathOrID: b,
|
|
5206
|
+
options: (_ref3 = c) !== null && _ref3 !== void 0 ? _ref3 : {}
|
|
5207
|
+
};
|
|
5208
|
+
};
|
|
5209
|
+
/**
|
|
5210
|
+
* Applies one or more property updates to a query in place. Shared by
|
|
5211
|
+
* {@link update} and {@link updateInPlace}.
|
|
5212
|
+
*/
|
|
5213
|
+
const applyUpdatesInPlace = (query, a, b, c, d) => {
|
|
5214
|
+
const { entries, pathOrID, options } = normalizeUpdateArgs(a, b, c, d);
|
|
5215
|
+
for (const [prop, value] of entries) updateInPlaceSingle(query, prop, value, pathOrID, options);
|
|
5216
|
+
return query;
|
|
5217
|
+
};
|
|
5218
|
+
/**
|
|
5219
|
+
* Updates one or more properties of a rule or group within a query without
|
|
5220
|
+
* mutating the original query. Properties may be supplied individually
|
|
5221
|
+
* (`prop`, `value`), as parallel arrays (`props`, `values`), or as a
|
|
5222
|
+
* property-to-value map. For multi-property updates, `field`, `operator`, and
|
|
5223
|
+
* `valueSource` are applied before `value`, so an explicit `value` is never
|
|
5224
|
+
* reset by a change to one of those properties.
|
|
4937
5225
|
*
|
|
4938
|
-
* @returns A new query with the rule or group
|
|
5226
|
+
* @returns A new query with the rule or group properties updated.
|
|
4939
5227
|
*
|
|
4940
5228
|
* @group Query Tools
|
|
4941
5229
|
*/
|
|
4942
|
-
const update = (query,
|
|
5230
|
+
const update = ((query, a, b, c, d) => produce(query, (q) => {
|
|
5231
|
+
applyUpdatesInPlace(q, a, b, c, d);
|
|
5232
|
+
}));
|
|
4943
5233
|
/**
|
|
4944
|
-
* Updates
|
|
5234
|
+
* Updates one or more properties of a rule or group within a query in place.
|
|
5235
|
+
* See {@link update} for the supported argument forms and ordering semantics.
|
|
4945
5236
|
*
|
|
4946
|
-
* @returns The query (mutated in place) with the rule or group
|
|
5237
|
+
* @returns The query (mutated in place) with the rule or group properties updated.
|
|
4947
5238
|
*
|
|
4948
5239
|
* @group Query Tools
|
|
4949
5240
|
*/
|
|
4950
|
-
const updateInPlace = (query,
|
|
5241
|
+
const updateInPlace = ((query, a, b, c, d) => applyUpdatesInPlace(query, a, b, c, d));
|
|
5242
|
+
/**
|
|
5243
|
+
* Updates a single property of a rule or group within a query in place.
|
|
5244
|
+
*/
|
|
5245
|
+
const updateInPlaceSingle = (query, prop, value, pathOrID, options = {}) => {
|
|
4951
5246
|
const { resetOnFieldChange: _resetOnFieldChange = true, resetOnOperatorChange = false, getRuleDefaultOperator = () => "=", getValueSources = () => ["value"], getRuleDefaultValue = () => "", getMatchModes = () => [] } = options;
|
|
4952
5247
|
let resetOnFieldChange = _resetOnFieldChange;
|
|
4953
5248
|
const path = Array.isArray(pathOrID) ? pathOrID : getPathOfID(pathOrID, query);
|
|
@@ -5099,13 +5394,13 @@ const moveInPlace = (query, oldPathOrID, newPath, options = {}) => {
|
|
|
5099
5394
|
if (parentToInsertInto.rules.length === 0 || !independentCombinators) insertRuleOrGroup(ruleOrGroup);
|
|
5100
5395
|
else if (newIndex === 0) if (ruleToRemoveIndex === 0 && oldNextCombinator) insertRuleOrGroup(ruleOrGroup, oldNextCombinator);
|
|
5101
5396
|
else {
|
|
5102
|
-
var
|
|
5103
|
-
insertRuleOrGroup(ruleOrGroup, (
|
|
5397
|
+
var _ref4, _parentToInsertInto$r;
|
|
5398
|
+
insertRuleOrGroup(ruleOrGroup, (_ref4 = (_parentToInsertInto$r = parentToInsertInto.rules[1]) !== null && _parentToInsertInto$r !== void 0 ? _parentToInsertInto$r : oldPrevCombinator) !== null && _ref4 !== void 0 ? _ref4 : getFirstOption(combinators));
|
|
5104
5399
|
}
|
|
5105
5400
|
else if (oldPrevCombinator) insertRuleOrGroup(oldPrevCombinator, ruleOrGroup);
|
|
5106
5401
|
else {
|
|
5107
|
-
var
|
|
5108
|
-
insertRuleOrGroup((
|
|
5402
|
+
var _ref5, _parentToInsertInto$r2;
|
|
5403
|
+
insertRuleOrGroup((_ref5 = (_parentToInsertInto$r2 = parentToInsertInto.rules[newIndex - 2]) !== null && _parentToInsertInto$r2 !== void 0 ? _parentToInsertInto$r2 : oldNextCombinator) !== null && _ref5 !== void 0 ? _ref5 : getFirstOption(combinators), ruleOrGroup);
|
|
5109
5404
|
}
|
|
5110
5405
|
return query;
|
|
5111
5406
|
};
|
|
@@ -5142,15 +5437,15 @@ const insertInPlace = (query, ruleOrGroup, path, options = {}) => {
|
|
|
5142
5437
|
var _rorg$path;
|
|
5143
5438
|
if (((_rorg$path = rorg.path) === null || _rorg$path === void 0 ? void 0 : _rorg$path.at(-1)) === 0 && combinatorSucceeding) insertRuleOrGroup(newIndex, rorg, combinatorSucceeding);
|
|
5144
5439
|
else {
|
|
5145
|
-
var
|
|
5146
|
-
insertRuleOrGroup(newIndex, rorg, (
|
|
5440
|
+
var _ref6, _parentToInsertInto$r3;
|
|
5441
|
+
insertRuleOrGroup(newIndex, rorg, (_ref6 = (_parentToInsertInto$r3 = parentToInsertInto.rules[1]) !== null && _parentToInsertInto$r3 !== void 0 ? _parentToInsertInto$r3 : combinatorPreceding) !== null && _ref6 !== void 0 ? _ref6 : getFirstOption(combinators));
|
|
5147
5442
|
}
|
|
5148
5443
|
} else {
|
|
5149
5444
|
const normalizedNewIndex = newIndex % 2 === 0 ? newIndex - 1 : newIndex;
|
|
5150
5445
|
if (combinatorPreceding) insertRuleOrGroup(normalizedNewIndex, combinatorPreceding, rorg);
|
|
5151
5446
|
else {
|
|
5152
|
-
var
|
|
5153
|
-
insertRuleOrGroup(normalizedNewIndex, (
|
|
5447
|
+
var _ref7, _parentToInsertInto$r4;
|
|
5448
|
+
insertRuleOrGroup(normalizedNewIndex, (_ref7 = (_parentToInsertInto$r4 = parentToInsertInto.rules[normalizedNewIndex - 2]) !== null && _parentToInsertInto$r4 !== void 0 ? _parentToInsertInto$r4 : combinatorSucceeding) !== null && _ref7 !== void 0 ? _ref7 : getFirstOption(combinators), rorg);
|
|
5154
5449
|
}
|
|
5155
5450
|
}
|
|
5156
5451
|
return query;
|
|
@@ -5209,6 +5504,6 @@ const groupInPlace = (query, sourcePathOrID, targetPathOrID, options = {}) => {
|
|
|
5209
5504
|
return query;
|
|
5210
5505
|
};
|
|
5211
5506
|
//#endregion
|
|
5212
|
-
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 };
|
|
5507
|
+
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 };
|
|
5213
5508
|
|
|
5214
5509
|
//# sourceMappingURL=react-querybuilder_core.legacy-esm.js.map
|