@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.
Files changed (56) hide show
  1. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +36 -3
  2. package/dist/cjs/react-querybuilder_core.cjs.development.js +14 -9
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  4. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +36 -3
  5. package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
  6. package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
  7. package/dist/formatQuery.d.mts +3 -1
  8. package/dist/formatQuery.d.ts +3 -1
  9. package/dist/formatQuery.js +10 -8
  10. package/dist/formatQuery.js.map +1 -1
  11. package/dist/formatQuery.mjs +10 -8
  12. package/dist/formatQuery.mjs.map +1 -1
  13. package/dist/{import-CSHMjlid.d.ts → import-Qs1-kgv5.d.ts} +2 -2
  14. package/dist/{import-BQ5xaW6i.d.mts → import-ShTj5IdB.d.mts} +2 -2
  15. package/dist/{index-CREDWM32.d.ts → index-DlVg-QXo.d.mts} +32 -3
  16. package/dist/{index-CREDWM32.d.mts → index-DlVg-QXo.d.ts} +32 -3
  17. package/dist/parseCEL.d.mts +7 -7
  18. package/dist/parseCEL.d.ts +7 -7
  19. package/dist/parseCEL.js +3 -3
  20. package/dist/parseCEL.js.map +1 -1
  21. package/dist/parseCEL.mjs +3 -3
  22. package/dist/parseCEL.mjs.map +1 -1
  23. package/dist/parseCypher.d.mts +1 -1
  24. package/dist/parseCypher.d.ts +1 -1
  25. package/dist/parseGremlin.d.mts +1 -1
  26. package/dist/parseGremlin.d.ts +1 -1
  27. package/dist/parseJSONata.d.mts +2 -2
  28. package/dist/parseJSONata.d.ts +2 -2
  29. package/dist/parseJsonLogic.d.mts +2 -2
  30. package/dist/parseJsonLogic.d.ts +2 -2
  31. package/dist/parseJsonLogic.js +7 -7
  32. package/dist/parseJsonLogic.js.map +1 -1
  33. package/dist/parseJsonLogic.mjs +7 -7
  34. package/dist/parseJsonLogic.mjs.map +1 -1
  35. package/dist/parseMongoDB.d.mts +2 -2
  36. package/dist/parseMongoDB.d.ts +2 -2
  37. package/dist/parseSPARQL.d.mts +1 -1
  38. package/dist/parseSPARQL.d.ts +1 -1
  39. package/dist/parseSQL.d.mts +2 -2
  40. package/dist/parseSQL.d.ts +2 -2
  41. package/dist/parseSpEL.d.mts +2 -2
  42. package/dist/parseSpEL.d.ts +2 -2
  43. package/dist/react-querybuilder_core.d.mts +36 -3
  44. package/dist/react-querybuilder_core.legacy-esm.d.ts +36 -3
  45. package/dist/react-querybuilder_core.legacy-esm.js +14 -9
  46. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  47. package/dist/react-querybuilder_core.mjs +14 -9
  48. package/dist/react-querybuilder_core.mjs.map +1 -1
  49. package/dist/react-querybuilder_core.production.d.mts +36 -3
  50. package/dist/react-querybuilder_core.production.mjs +1 -1
  51. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  52. package/dist/transformQuery.d.mts +1 -1
  53. package/dist/transformQuery.d.ts +1 -1
  54. package/dist/utils-01WaTGBL.mjs.map +1 -1
  55. package/dist/utils-ZlKseh1X.js.map +1 -1
  56. 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: { title: "Match threshold" },
91
+ matchThreshold: {
92
+ title: "Match threshold",
93
+ placeholderName: "#"
94
+ },
92
95
  value: { title: "Value" },
93
96
  removeRule: {
94
97
  label: "⨯",
@@ -1586,7 +1589,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
1586
1589
  const totalCount = `double(${field}.size())`;
1587
1590
  const filteredCount = `${field}.filter(${arrayElementAlias}, ${nestedArrayFilter}).size()`;
1588
1591
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "==";
1589
- if (threshold > 0 && threshold < 1) return `${filteredCount} ${op} (${totalCount} * ${threshold})`;
1592
+ if (threshold > 0 && threshold < 1) return `double(${filteredCount}) ${op} (${totalCount} * ${threshold})`;
1590
1593
  return `${filteredCount} ${op} ${threshold}`;
1591
1594
  }
1592
1595
  }
@@ -2075,7 +2078,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
2075
2078
  if (!columns || !drizzleOperators) return void 0;
2076
2079
  const { between, eq, gt, gte, inArray, isNotNull, isNull, like, lt, lte, ne, notBetween, notInArray, notLike, sql } = drizzleOperators;
2077
2080
  const { field, operator, value, valueSource } = rule;
2078
- const column = useRawFields && /[a-z][a-z0-9]*/i.test(field) ? sql.raw(field) : columns[field];
2081
+ const column = useRawFields && /^[a-z_][a-z0-9_.]*$/i.test(field) ? sql.raw(field) : columns[field];
2079
2082
  const operatorLC = lc(operator);
2080
2083
  const valueIsField = valueSource === "field";
2081
2084
  const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
@@ -2099,7 +2102,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
2099
2102
  case "atmost":
2100
2103
  case "exactly": {
2101
2104
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
2102
- 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}`)}`;
2105
+ 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}`)}`;
2103
2106
  }
2104
2107
  }
2105
2108
  }
@@ -2451,7 +2454,7 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
2451
2454
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, translations, validateRule, validationMap } = options;
2452
2455
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
2453
2456
  var _rg$id, _rg2$combinator2, _translations$ruleSep2, _translations2;
2454
- if (!isRuleOrGroupValid(rg, validationMap[(_rg$id = rg.id) !== null && _rg$id !== void 0 ? _rg$id : /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : /* v8 ignore next -- @preserve */ "";
2457
+ if (!isRuleOrGroupValid(rg, validationMap[(_rg$id = rg.id) !== null && _rg$id !== void 0 ? _rg$id : /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
2455
2458
  const rg2 = isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && lc(r) === "xor") ? convertFromIC(rg) : rg;
2456
2459
  const processedRules = [];
2457
2460
  let precedingCombinator = "";
@@ -2553,7 +2556,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
2553
2556
  };
2554
2557
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
2555
2558
  var _rg$id;
2556
- if (!isRuleOrGroupValid(rg, validationMap[(_rg$id = rg.id) !== null && _rg$id !== void 0 ? _rg$id : /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : /* v8 ignore next -- @preserve */ "";
2559
+ if (!isRuleOrGroupValid(rg, validationMap[(_rg$id = rg.id) !== null && _rg$id !== void 0 ? _rg$id : /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
2557
2560
  const processedRules = [];
2558
2561
  let precedingCombinator = "";
2559
2562
  let firstRule = true;
@@ -2748,7 +2751,7 @@ const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
2748
2751
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
2749
2752
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
2750
2753
  var _rg$id;
2751
- if (!isRuleOrGroupValid(rg, validationMap[(_rg$id = rg.id) !== null && _rg$id !== void 0 ? _rg$id : /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : /* v8 ignore next -- @preserve */ "";
2754
+ if (!isRuleOrGroupValid(rg, validationMap[(_rg$id = rg.id) !== null && _rg$id !== void 0 ? _rg$id : /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
2752
2755
  const processedRules = [];
2753
2756
  let precedingCombinator = "";
2754
2757
  let firstRule = true;
@@ -3949,7 +3952,7 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
3949
3952
  case "atmost":
3950
3953
  case "exactly": {
3951
3954
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
3952
- return `(select count(*)${threshold > 0 && threshold < 1 ? ` / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) ${op} ${threshold}`;
3955
+ return `(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) ${op} ${threshold}`;
3953
3956
  }
3954
3957
  }
3955
3958
  }
@@ -4009,7 +4012,7 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
4009
4012
  case "atmost":
4010
4013
  case "exactly": {
4011
4014
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
4012
- return finalize(`(select count(*)${threshold > 0 && threshold < 1 ? ` / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedSQL}) ${op} ${threshold}`);
4015
+ return finalize(`(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedSQL}) ${op} ${threshold}`);
4013
4016
  }
4014
4017
  }
4015
4018
  }
@@ -4514,6 +4517,8 @@ const generateValueProcessor = (vpbr) => (field, operator, value, valueSource) =
4514
4517
  /**
4515
4518
  * Default value processor used by {@link formatQuery} for "sql" format.
4516
4519
  *
4520
+ * @deprecated Prefer {@link defaultValueProcessorByRule}.
4521
+ *
4517
4522
  * @group Export
4518
4523
  */
4519
4524
  const defaultValueProcessor = generateValueProcessor(defaultValueProcessorByRule);