@react-querybuilder/core 8.12.0 → 8.14.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 (89) hide show
  1. package/dist/{basic-o1-sYjK6.d.ts → basic-Dxm6jWFu.d.ts} +94 -104
  2. package/dist/{basic-DbvrfPNz.d.mts → basic-GFsWfi0Z.d.mts} +94 -104
  3. package/dist/{chunk-BxBTb9qk.js → chunk-U64pC571.js} +13 -11
  4. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +119 -118
  5. package/dist/cjs/react-querybuilder_core.cjs.development.js +39 -10
  6. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  7. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +119 -118
  8. package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
  9. package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
  10. package/dist/{convertQuery-Cj4t-LT4.mjs → convertQuery-DAj92cbM.mjs} +3 -3
  11. package/dist/{convertQuery-Cj4t-LT4.mjs.map → convertQuery-DAj92cbM.mjs.map} +1 -1
  12. package/dist/{convertQuery-DuY_BJHy.js → convertQuery-DRldbzhZ.js} +4 -4
  13. package/dist/{convertQuery-DuY_BJHy.js.map → convertQuery-DRldbzhZ.js.map} +1 -1
  14. package/dist/{export-WDHFbiPz.d.ts → export-6VbkhCrf.d.ts} +2 -2
  15. package/dist/{export-CCULKoP4.d.mts → export-_wipiqJZ.d.mts} +2 -2
  16. package/dist/formatQuery.d.mts +2 -2
  17. package/dist/formatQuery.d.ts +2 -2
  18. package/dist/formatQuery.js +43 -14
  19. package/dist/formatQuery.js.map +1 -1
  20. package/dist/formatQuery.mjs +42 -13
  21. package/dist/formatQuery.mjs.map +1 -1
  22. package/dist/{import-BSWb9Vgd.d.ts → import-D8M7awTx.d.ts} +2 -2
  23. package/dist/{import-CLyHpgk8.d.mts → import-DRmutNSr.d.mts} +2 -2
  24. package/dist/{isRuleGroup-Do9KKsmt.js → isRuleGroup-Cjk1Q2mj.js} +2 -2
  25. package/dist/{isRuleGroup-Do9KKsmt.js.map → isRuleGroup-Cjk1Q2mj.js.map} +1 -1
  26. package/dist/{isRuleGroup-BcfwGaIN.mjs → isRuleGroup-DztIOOKa.mjs} +1 -1
  27. package/dist/{isRuleGroup-BcfwGaIN.mjs.map → isRuleGroup-DztIOOKa.mjs.map} +1 -1
  28. package/dist/parseCEL.d.mts +2 -2
  29. package/dist/parseCEL.d.ts +2 -2
  30. package/dist/parseCEL.js +9 -9
  31. package/dist/parseCEL.js.map +1 -1
  32. package/dist/parseCEL.mjs +3 -3
  33. package/dist/parseCEL.mjs.map +1 -1
  34. package/dist/parseJSONata.d.mts +2 -2
  35. package/dist/parseJSONata.d.ts +2 -2
  36. package/dist/parseJSONata.js +13 -7
  37. package/dist/parseJSONata.js.map +1 -1
  38. package/dist/parseJSONata.mjs +2 -3
  39. package/dist/parseJSONata.mjs.map +1 -1
  40. package/dist/parseJsonLogic.d.mts +3 -3
  41. package/dist/parseJsonLogic.d.ts +3 -3
  42. package/dist/parseJsonLogic.js +4 -4
  43. package/dist/parseJsonLogic.mjs +4 -4
  44. package/dist/parseMongoDB.d.mts +2 -2
  45. package/dist/parseMongoDB.d.ts +2 -2
  46. package/dist/parseMongoDB.js +5 -5
  47. package/dist/parseMongoDB.js.map +1 -1
  48. package/dist/parseMongoDB.mjs +5 -5
  49. package/dist/parseMongoDB.mjs.map +1 -1
  50. package/dist/parseSQL.d.mts +2 -2
  51. package/dist/parseSQL.d.ts +2 -2
  52. package/dist/parseSQL.js +9 -9
  53. package/dist/parseSQL.js.map +1 -1
  54. package/dist/parseSQL.mjs +3 -3
  55. package/dist/parseSpEL.d.mts +2 -2
  56. package/dist/parseSpEL.d.ts +2 -2
  57. package/dist/parseSpEL.js +58 -7
  58. package/dist/parseSpEL.js.map +1 -1
  59. package/dist/parseSpEL.mjs +3 -3
  60. package/dist/{prepareQueryObjects-BfnyRV5t.mjs → prepareQueryObjects-BBayjIn2.mjs} +4 -7
  61. package/dist/prepareQueryObjects-BBayjIn2.mjs.map +1 -0
  62. package/dist/{prepareQueryObjects-DCtJJrF5.js → prepareQueryObjects-BxWvIPI4.js} +5 -8
  63. package/dist/prepareQueryObjects-BxWvIPI4.js.map +1 -0
  64. package/dist/react-querybuilder_core.d.mts +119 -118
  65. package/dist/react-querybuilder_core.legacy-esm.d.ts +119 -118
  66. package/dist/react-querybuilder_core.legacy-esm.js +42 -16
  67. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  68. package/dist/react-querybuilder_core.mjs +39 -10
  69. package/dist/react-querybuilder_core.mjs.map +1 -1
  70. package/dist/react-querybuilder_core.production.d.mts +119 -118
  71. package/dist/react-querybuilder_core.production.mjs +1 -1
  72. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  73. package/dist/{transformQuery-DvJTAvkh.js → transformQuery-ClBRfnFg.js} +3 -3
  74. package/dist/{transformQuery-DvJTAvkh.js.map → transformQuery-ClBRfnFg.js.map} +1 -1
  75. package/dist/{transformQuery-Bq4iyYsE.mjs → transformQuery-DUpbpqjX.mjs} +2 -2
  76. package/dist/{transformQuery-Bq4iyYsE.mjs.map → transformQuery-DUpbpqjX.mjs.map} +1 -1
  77. package/dist/transformQuery.d.mts +1 -1
  78. package/dist/transformQuery.d.ts +1 -1
  79. package/dist/transformQuery.js +1 -2
  80. package/dist/transformQuery.mjs +1 -2
  81. package/dist/{utils-CoYbYnVo.js → utils-CR1ToTMW.js} +3 -3
  82. package/dist/{utils-CoYbYnVo.js.map → utils-CR1ToTMW.js.map} +1 -1
  83. package/dist/{utils-DxH23QtE.mjs → utils-nQU7WCM9.mjs} +2 -2
  84. package/dist/{utils-DxH23QtE.mjs.map → utils-nQU7WCM9.mjs.map} +1 -1
  85. package/package.json +14 -13
  86. package/dist/chunk-DrjzjjTJ.mjs +0 -23
  87. package/dist/chunk-Dv2ph0Ay.js +0 -23
  88. package/dist/prepareQueryObjects-BfnyRV5t.mjs.map +0 -1
  89. package/dist/prepareQueryObjects-DCtJJrF5.js.map +0 -1
@@ -750,7 +750,7 @@ const convertFromIC = (rg) => {
750
750
  */
751
751
  const convertToIC = (rg) => {
752
752
  if (isRuleGroupTypeIC(rg)) return rg;
753
- const { combinator,...queryWithoutCombinator } = rg;
753
+ const { combinator, ...queryWithoutCombinator } = rg;
754
754
  const rules = [];
755
755
  const { length } = rg.rules;
756
756
  for (const [idx, r] of rg.rules.entries()) {
@@ -2585,7 +2585,30 @@ const defaultRuleProcessorElasticSearch = (rule, options = {}) => {
2585
2585
  const { field, operator, value, valueSource } = rule;
2586
2586
  const { parseNumbers, preserveValueOrder } = options;
2587
2587
  const operatorLC = lc(operator);
2588
- if (processMatchMode(rule)) return false;
2588
+ const matchEval = processMatchMode(rule);
2589
+ if (matchEval === false) return false;
2590
+ else if (matchEval) {
2591
+ const { mode } = matchEval;
2592
+ const subQuery = defaultRuleGroupProcessorElasticSearch(transformQuery(rule.value, { ruleProcessor: (r) => ({
2593
+ ...r,
2594
+ field: r.field ? `${field}.${r.field}` : field
2595
+ }) }), options);
2596
+ if (Object.keys(subQuery).length === 0) return false;
2597
+ switch (mode) {
2598
+ case "some": return { nested: {
2599
+ path: field,
2600
+ query: subQuery
2601
+ } };
2602
+ case "none": return { bool: { must_not: { nested: {
2603
+ path: field,
2604
+ query: subQuery
2605
+ } } } };
2606
+ case "all":
2607
+ case "atleast":
2608
+ case "atmost":
2609
+ case "exactly": return false;
2610
+ }
2611
+ }
2589
2612
  if (valueSource === "field") {
2590
2613
  if (toArray(value).some((v) => typeof v !== "string")) return false;
2591
2614
  const fieldForScript = escapeSQ(field);
@@ -2959,7 +2982,8 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2959
2982
  const valueAsArray = toArray(rule.value);
2960
2983
  if (valueAsArray.length === 0) return "";
2961
2984
  const valStringArray = valueAsArray.map((v) => valueIsField ? wrapFieldName(getOption(fields ?? [], v)?.label ?? v) : shouldRenderAsNumber(v, parseNumbers) ? `${trimIfString(v)}` : `${wrapAndEscape(v)}`);
2962
- return `${valStringArray.slice(0, -1).join(", ")}${valStringArray.length > 2 ? "," : ""} ${orTL} ${valStringArray.at(-1)}`;
2985
+ if (valStringArray.length === 1) return valStringArray[0];
2986
+ return `(${`${valStringArray.slice(0, -1).join(", ")}${valStringArray.length > 2 ? "," : ""} ${orTL} ${valStringArray.at(-1)}`})`;
2963
2987
  }
2964
2988
  }
2965
2989
  if (typeof rule.value === "boolean") return rule.value ? trueTL : falseTL;
@@ -3004,17 +3028,22 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
3004
3028
  const { field, operator, valueSource = "value" } = rule;
3005
3029
  // istanbul ignore next
3006
3030
  const { getOperators = defaultGetOperators, operatorMap: operatorMapParam = defaultExportOperatorMap } = opts;
3007
- const mapOperatorMap = new Map(Object.entries(defaultExportOperatorMap));
3008
- for (const [key, value] of Object.entries(operatorMapParam)) mapOperatorMap.set(lc(key), value);
3009
- const operatorMap = Object.fromEntries(mapOperatorMap);
3031
+ const mergedOperatorMap = new Map(Object.entries(defaultExportOperatorMap));
3032
+ for (const [key, value] of Object.entries(operatorMapParam)) mergedOperatorMap.set(lc(key), value);
3033
+ const operatorMap = Object.fromEntries(mergedOperatorMap);
3034
+ const operatorLC = lc(operator);
3035
+ var normalizedOperator = operator;
3036
+ const hasSingleValue = toArray(rule.value).length === 1;
3037
+ if (operatorLC === "in" && hasSingleValue) normalizedOperator = "=";
3038
+ else if (operatorLC === "notin" && hasSingleValue) normalizedOperator = "!=";
3010
3039
  const { value: operatorNL, label } = getOption(toFullOptionList(getOperators(field, { fieldData: opts.fieldData ?? {
3011
3040
  name: field,
3012
3041
  value: field,
3013
3042
  label: field
3014
- } }) ?? []), operator) ?? {
3015
- name: operator,
3016
- value: operator,
3017
- label: operator
3043
+ } }) ?? []), normalizedOperator) ?? {
3044
+ name: normalizedOperator,
3045
+ value: normalizedOperator,
3046
+ label: normalizedOperator
3018
3047
  };
3019
3048
  const operatorTL = operatorMap[operatorNL] ?? operatorMap[lc(operatorNL)] ?? [label, label];
3020
3049
  return typeof operatorTL === "string" ? operatorTL : operatorTL[valueSource === "field" ? 1 : 0];