@react-querybuilder/core 8.17.0 → 8.18.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/dist/cjs/react-querybuilder_core.cjs.development.d.ts +36 -3
- package/dist/cjs/react-querybuilder_core.cjs.development.js +14 -9
- package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +36 -3
- 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/formatQuery.d.mts +3 -1
- package/dist/formatQuery.d.ts +3 -1
- package/dist/formatQuery.js +10 -8
- package/dist/formatQuery.js.map +1 -1
- package/dist/formatQuery.mjs +10 -8
- package/dist/formatQuery.mjs.map +1 -1
- package/dist/{import-CSHMjlid.d.ts → import-Qs1-kgv5.d.ts} +2 -2
- package/dist/{import-BQ5xaW6i.d.mts → import-ShTj5IdB.d.mts} +2 -2
- package/dist/{index-CREDWM32.d.ts → index-DlVg-QXo.d.mts} +32 -3
- package/dist/{index-CREDWM32.d.mts → index-DlVg-QXo.d.ts} +32 -3
- package/dist/parseCEL.d.mts +7 -7
- package/dist/parseCEL.d.ts +7 -7
- package/dist/parseCEL.js +3 -3
- package/dist/parseCEL.js.map +1 -1
- package/dist/parseCEL.mjs +3 -3
- package/dist/parseCEL.mjs.map +1 -1
- package/dist/parseCypher.d.mts +1 -1
- package/dist/parseCypher.d.ts +1 -1
- package/dist/parseGremlin.d.mts +1 -1
- package/dist/parseGremlin.d.ts +1 -1
- package/dist/parseJSONata.d.mts +2 -2
- package/dist/parseJSONata.d.ts +2 -2
- package/dist/parseJsonLogic.d.mts +2 -2
- package/dist/parseJsonLogic.d.ts +2 -2
- package/dist/parseJsonLogic.js +7 -7
- package/dist/parseJsonLogic.js.map +1 -1
- package/dist/parseJsonLogic.mjs +7 -7
- package/dist/parseJsonLogic.mjs.map +1 -1
- package/dist/parseMongoDB.d.mts +2 -2
- package/dist/parseMongoDB.d.ts +2 -2
- package/dist/parseSPARQL.d.mts +1 -1
- package/dist/parseSPARQL.d.ts +1 -1
- package/dist/parseSQL.d.mts +2 -2
- package/dist/parseSQL.d.ts +2 -2
- package/dist/parseSpEL.d.mts +2 -2
- package/dist/parseSpEL.d.ts +2 -2
- package/dist/react-querybuilder_core.d.mts +36 -3
- package/dist/react-querybuilder_core.legacy-esm.d.ts +36 -3
- package/dist/react-querybuilder_core.legacy-esm.js +14 -9
- package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_core.mjs +14 -9
- package/dist/react-querybuilder_core.mjs.map +1 -1
- package/dist/react-querybuilder_core.production.d.mts +36 -3
- package/dist/react-querybuilder_core.production.mjs +1 -1
- package/dist/react-querybuilder_core.production.mjs.map +1 -1
- package/dist/transformQuery.d.mts +1 -1
- package/dist/transformQuery.d.ts +1 -1
- package/dist/utils-01WaTGBL.mjs.map +1 -1
- package/dist/utils-ZlKseh1X.js.map +1 -1
- package/package.json +6 -6
|
@@ -88,7 +88,10 @@ const defaultTranslations = {
|
|
|
88
88
|
placeholderGroupLabel: defaultPlaceholderValueGroupLabel
|
|
89
89
|
},
|
|
90
90
|
matchMode: { title: "Match mode" },
|
|
91
|
-
matchThreshold: {
|
|
91
|
+
matchThreshold: {
|
|
92
|
+
title: "Match threshold",
|
|
93
|
+
placeholderName: "#"
|
|
94
|
+
},
|
|
92
95
|
value: { title: "Value" },
|
|
93
96
|
removeRule: {
|
|
94
97
|
label: "⨯",
|
|
@@ -1512,7 +1515,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
|
|
|
1512
1515
|
const totalCount = `double(${field}.size())`;
|
|
1513
1516
|
const filteredCount = `${field}.filter(${arrayElementAlias}, ${nestedArrayFilter}).size()`;
|
|
1514
1517
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "==";
|
|
1515
|
-
if (threshold > 0 && threshold < 1) return
|
|
1518
|
+
if (threshold > 0 && threshold < 1) return `double(${filteredCount}) ${op} (${totalCount} * ${threshold})`;
|
|
1516
1519
|
return `${filteredCount} ${op} ${threshold}`;
|
|
1517
1520
|
}
|
|
1518
1521
|
}
|
|
@@ -2013,7 +2016,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
|
|
|
2013
2016
|
if (!columns || !drizzleOperators) return void 0;
|
|
2014
2017
|
const { between, eq, gt, gte, inArray, isNotNull, isNull, like, lt, lte, ne, notBetween, notInArray, notLike, sql } = drizzleOperators;
|
|
2015
2018
|
const { field, operator, value, valueSource } = rule;
|
|
2016
|
-
const column = useRawFields &&
|
|
2019
|
+
const column = useRawFields && /^[a-z_][a-z0-9_.]*$/i.test(field) ? sql.raw(field) : columns[field];
|
|
2017
2020
|
const operatorLC = lc(operator);
|
|
2018
2021
|
const valueIsField = valueSource === "field";
|
|
2019
2022
|
const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
|
|
@@ -2046,7 +2049,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
|
|
|
2046
2049
|
case "atmost":
|
|
2047
2050
|
case "exactly": {
|
|
2048
2051
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
|
|
2049
|
-
return threshold > 0 && threshold < 1 ? sql`(select count(*) / array_length(${column}, 1) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}` : sql`(select count(*) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}`;
|
|
2052
|
+
return threshold > 0 && threshold < 1 ? sql`(select count(*)::float / array_length(${column}, 1) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}` : sql`(select count(*) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}`;
|
|
2050
2053
|
}
|
|
2051
2054
|
}
|
|
2052
2055
|
}
|
|
@@ -2394,7 +2397,7 @@ const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
|
|
|
2394
2397
|
const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
|
|
2395
2398
|
const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, translations, validateRule, validationMap } = options;
|
|
2396
2399
|
const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
|
|
2397
|
-
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression :
|
|
2400
|
+
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
|
|
2398
2401
|
const rg2 = isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && lc(r) === "xor") ? convertFromIC(rg) : rg;
|
|
2399
2402
|
const processedRules = [];
|
|
2400
2403
|
let precedingCombinator = "";
|
|
@@ -2492,7 +2495,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
|
|
|
2492
2495
|
return sql;
|
|
2493
2496
|
};
|
|
2494
2497
|
const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
|
|
2495
|
-
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression :
|
|
2498
|
+
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
|
|
2496
2499
|
const processedRules = [];
|
|
2497
2500
|
let precedingCombinator = "";
|
|
2498
2501
|
let firstRule = true;
|
|
@@ -2685,7 +2688,7 @@ const defaultRuleGroupProcessorSPARQL = (ruleGroup, options) => {
|
|
|
2685
2688
|
const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
|
|
2686
2689
|
const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
|
|
2687
2690
|
const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
|
|
2688
|
-
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression :
|
|
2691
|
+
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
|
|
2689
2692
|
const processedRules = [];
|
|
2690
2693
|
let precedingCombinator = "";
|
|
2691
2694
|
let firstRule = true;
|
|
@@ -3889,7 +3892,7 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
|
|
|
3889
3892
|
case "atmost":
|
|
3890
3893
|
case "exactly": {
|
|
3891
3894
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
|
|
3892
|
-
return `(select count(*)${threshold > 0 && threshold < 1 ?
|
|
3895
|
+
return `(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) ${op} ${threshold}`;
|
|
3893
3896
|
}
|
|
3894
3897
|
}
|
|
3895
3898
|
}
|
|
@@ -3956,7 +3959,7 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
|
|
|
3956
3959
|
case "atmost":
|
|
3957
3960
|
case "exactly": {
|
|
3958
3961
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
|
|
3959
|
-
return finalize(`(select count(*)${threshold > 0 && threshold < 1 ?
|
|
3962
|
+
return finalize(`(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedSQL}) ${op} ${threshold}`);
|
|
3960
3963
|
}
|
|
3961
3964
|
}
|
|
3962
3965
|
}
|
|
@@ -4458,6 +4461,8 @@ const generateValueProcessor = (vpbr) => (field, operator, value, valueSource) =
|
|
|
4458
4461
|
/**
|
|
4459
4462
|
* Default value processor used by {@link formatQuery} for "sql" format.
|
|
4460
4463
|
*
|
|
4464
|
+
* @deprecated Prefer {@link defaultValueProcessorByRule}.
|
|
4465
|
+
*
|
|
4461
4466
|
* @group Export
|
|
4462
4467
|
*/
|
|
4463
4468
|
const defaultValueProcessor = generateValueProcessor(defaultValueProcessorByRule);
|