@react-querybuilder/core 8.11.2 → 8.13.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 (86) hide show
  1. package/dist/{basic-CLG_Bmom.d.mts → basic-Cw014pDc.d.mts} +123 -98
  2. package/dist/{basic-BeKPP0_1.d.ts → basic-_KlsCAyT.d.ts} +123 -98
  3. package/dist/chunk-U64pC571.js +41 -0
  4. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +215 -148
  5. package/dist/cjs/react-querybuilder_core.cjs.development.js +28 -37
  6. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  7. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +215 -148
  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-C7NvB0XA.js → convertQuery-DRldbzhZ.js} +4 -4
  13. package/dist/{convertQuery-C7NvB0XA.js.map → convertQuery-DRldbzhZ.js.map} +1 -1
  14. package/dist/{export-B2Yw5gak.d.mts → export-CffjLxEe.d.mts} +2 -2
  15. package/dist/{export-CQB0nuvW.d.ts → export-DRA8O1Wz.d.ts} +2 -2
  16. package/dist/formatQuery.d.mts +2 -2
  17. package/dist/formatQuery.d.ts +2 -2
  18. package/dist/formatQuery.js +19 -13
  19. package/dist/formatQuery.js.map +1 -1
  20. package/dist/formatQuery.mjs +18 -12
  21. package/dist/formatQuery.mjs.map +1 -1
  22. package/dist/{import-Dvayhrgj.d.ts → import-CWYJkN_w.d.ts} +2 -2
  23. package/dist/{import-BtpySRSy.d.mts → import-DjHGaGhJ.d.mts} +2 -2
  24. package/dist/{isRuleGroup-DqAs2x4E.js → isRuleGroup-Cjk1Q2mj.js} +2 -40
  25. package/dist/{isRuleGroup-DqAs2x4E.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 +16 -6
  31. package/dist/parseCEL.js.map +1 -1
  32. package/dist/parseCEL.mjs +15 -4
  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 -6
  37. package/dist/parseJSONata.js.map +1 -1
  38. package/dist/parseJSONata.mjs +3 -3
  39. package/dist/parseJsonLogic.d.mts +3 -3
  40. package/dist/parseJsonLogic.d.ts +3 -3
  41. package/dist/parseJsonLogic.js +4 -4
  42. package/dist/parseJsonLogic.mjs +4 -4
  43. package/dist/parseMongoDB.d.mts +2 -2
  44. package/dist/parseMongoDB.d.ts +2 -2
  45. package/dist/parseMongoDB.js +5 -5
  46. package/dist/parseMongoDB.js.map +1 -1
  47. package/dist/parseMongoDB.mjs +5 -5
  48. package/dist/parseMongoDB.mjs.map +1 -1
  49. package/dist/parseSQL.d.mts +2 -2
  50. package/dist/parseSQL.d.ts +2 -2
  51. package/dist/parseSQL.js +4 -5
  52. package/dist/parseSQL.js.map +1 -1
  53. package/dist/parseSQL.mjs +3 -3
  54. package/dist/parseSpEL.d.mts +2 -2
  55. package/dist/parseSpEL.d.ts +2 -2
  56. package/dist/parseSpEL.js +58 -6
  57. package/dist/parseSpEL.js.map +1 -1
  58. package/dist/parseSpEL.mjs +3 -3
  59. package/dist/{prepareQueryObjects-BfnyRV5t.mjs → prepareQueryObjects-6Bxx4Bs1.mjs} +3 -3
  60. package/dist/{prepareQueryObjects-BfnyRV5t.mjs.map → prepareQueryObjects-6Bxx4Bs1.mjs.map} +1 -1
  61. package/dist/{prepareQueryObjects-Cz_28zYz.js → prepareQueryObjects-CkN0bTKm.js} +4 -4
  62. package/dist/{prepareQueryObjects-Cz_28zYz.js.map → prepareQueryObjects-CkN0bTKm.js.map} +1 -1
  63. package/dist/react-querybuilder_core.d.mts +215 -148
  64. package/dist/react-querybuilder_core.legacy-esm.d.ts +215 -148
  65. package/dist/react-querybuilder_core.legacy-esm.js +34 -18
  66. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  67. package/dist/react-querybuilder_core.mjs +28 -12
  68. package/dist/react-querybuilder_core.mjs.map +1 -1
  69. package/dist/react-querybuilder_core.production.d.mts +215 -148
  70. package/dist/react-querybuilder_core.production.mjs +1 -1
  71. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  72. package/dist/{transformQuery-B4SaTTO-.js → transformQuery-ClBRfnFg.js} +10 -3
  73. package/dist/{transformQuery-B4SaTTO-.js.map → transformQuery-ClBRfnFg.js.map} +1 -1
  74. package/dist/{transformQuery-C85j__7e.mjs → transformQuery-DUpbpqjX.mjs} +9 -2
  75. package/dist/{transformQuery-C85j__7e.mjs.map → transformQuery-DUpbpqjX.mjs.map} +1 -1
  76. package/dist/transformQuery.d.mts +1 -1
  77. package/dist/transformQuery.d.ts +1 -1
  78. package/dist/transformQuery.js +2 -2
  79. package/dist/transformQuery.mjs +2 -2
  80. package/dist/{utils-Dkz3Xn2D.js → utils-CR1ToTMW.js} +3 -4
  81. package/dist/utils-CR1ToTMW.js.map +1 -0
  82. package/dist/{utils-DxH23QtE.mjs → utils-nQU7WCM9.mjs} +2 -2
  83. package/dist/utils-nQU7WCM9.mjs.map +1 -0
  84. package/package.json +12 -11
  85. package/dist/utils-Dkz3Xn2D.js.map +0 -1
  86. package/dist/utils-DxH23QtE.mjs.map +0 -1
@@ -424,7 +424,8 @@ const standardClassnames = {
424
424
  valueListItem: "rule-value-list-item",
425
425
  branches: "queryBuilder-branches",
426
426
  justified: "queryBuilder-justified",
427
- hasSubQuery: "rule-hasSubQuery"
427
+ hasSubQuery: "rule-hasSubQuery",
428
+ loading: "queryBuilder-loading"
428
429
  };
429
430
  /**
430
431
  * Default classnames for each component.
@@ -471,7 +472,8 @@ const defaultControlClassnames = {
471
472
  disabled: "",
472
473
  valueListItem: "",
473
474
  branches: "",
474
- hasSubQuery: ""
475
+ hasSubQuery: "",
476
+ loading: ""
475
477
  };
476
478
  /**
477
479
  * Default reason codes for a group being invalid.
@@ -748,7 +750,7 @@ const convertFromIC = (rg) => {
748
750
  */
749
751
  const convertToIC = (rg) => {
750
752
  if (isRuleGroupTypeIC(rg)) return rg;
751
- const { combinator,...queryWithoutCombinator } = rg;
753
+ const { combinator, ...queryWithoutCombinator } = rg;
752
754
  const rules = [];
753
755
  const { length } = rg.rules;
754
756
  for (const [idx, r] of rg.rules.entries()) {
@@ -1088,6 +1090,13 @@ const parseNumber = (val, { parseNumbers, bigIntOnOverflow } = {}) => {
1088
1090
 
1089
1091
  //#endregion
1090
1092
  //#region src/utils/transformQuery.ts
1093
+ /**
1094
+ * Recursively steps through a query object ({@link index!RuleGroupType RuleGroupType} or {@link index!RuleGroupTypeIC RuleGroupTypeIC}),
1095
+ * passing each {@link index!RuleType RuleType} object to a provided `ruleProcessor` function and returning a
1096
+ * new query object if there were any referential changes.
1097
+ *
1098
+ * @module transformQuery
1099
+ */
1091
1100
  const remapProperties = (obj, propertyMap, deleteRemappedProperties) => produce(obj, (draft) => {
1092
1101
  for (const [k, v] of Object.entries(propertyMap)) if (v === false) delete draft[k];
1093
1102
  else if (!!v && k !== v && k in draft) {
@@ -2950,7 +2959,8 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2950
2959
  const valueAsArray = toArray(rule.value);
2951
2960
  if (valueAsArray.length === 0) return "";
2952
2961
  const valStringArray = valueAsArray.map((v) => valueIsField ? wrapFieldName(getOption(fields ?? [], v)?.label ?? v) : shouldRenderAsNumber(v, parseNumbers) ? `${trimIfString(v)}` : `${wrapAndEscape(v)}`);
2953
- return `${valStringArray.slice(0, -1).join(", ")}${valStringArray.length > 2 ? "," : ""} ${orTL} ${valStringArray.at(-1)}`;
2962
+ if (valStringArray.length === 1) return valStringArray[0];
2963
+ return `(${`${valStringArray.slice(0, -1).join(", ")}${valStringArray.length > 2 ? "," : ""} ${orTL} ${valStringArray.at(-1)}`})`;
2954
2964
  }
2955
2965
  }
2956
2966
  if (typeof rule.value === "boolean") return rule.value ? trueTL : falseTL;
@@ -2995,17 +3005,22 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
2995
3005
  const { field, operator, valueSource = "value" } = rule;
2996
3006
  // istanbul ignore next
2997
3007
  const { getOperators = defaultGetOperators, operatorMap: operatorMapParam = defaultExportOperatorMap } = opts;
2998
- const mapOperatorMap = new Map(Object.entries(defaultExportOperatorMap));
2999
- for (const [key, value] of Object.entries(operatorMapParam)) mapOperatorMap.set(lc(key), value);
3000
- const operatorMap = Object.fromEntries(mapOperatorMap);
3008
+ const mergedOperatorMap = new Map(Object.entries(defaultExportOperatorMap));
3009
+ for (const [key, value] of Object.entries(operatorMapParam)) mergedOperatorMap.set(lc(key), value);
3010
+ const operatorMap = Object.fromEntries(mergedOperatorMap);
3011
+ const operatorLC = lc(operator);
3012
+ var normalizedOperator = operator;
3013
+ const hasSingleValue = toArray(rule.value).length === 1;
3014
+ if (operatorLC === "in" && hasSingleValue) normalizedOperator = "=";
3015
+ else if (operatorLC === "notin" && hasSingleValue) normalizedOperator = "!=";
3001
3016
  const { value: operatorNL, label } = getOption(toFullOptionList(getOperators(field, { fieldData: opts.fieldData ?? {
3002
3017
  name: field,
3003
3018
  value: field,
3004
3019
  label: field
3005
- } }) ?? []), operator) ?? {
3006
- name: operator,
3007
- value: operator,
3008
- label: operator
3020
+ } }) ?? []), normalizedOperator) ?? {
3021
+ name: normalizedOperator,
3022
+ value: normalizedOperator,
3023
+ label: normalizedOperator
3009
3024
  };
3010
3025
  const operatorTL = operatorMap[operatorNL] ?? operatorMap[lc(operatorNL)] ?? [label, label];
3011
3026
  return typeof operatorTL === "string" ? operatorTL : operatorTL[valueSource === "field" ? 1 : 0];
@@ -3888,7 +3903,8 @@ const mergeClassnames = (...args) => ({
3888
3903
  matchMode: joinClassnamesByName("matchMode", args),
3889
3904
  matchThreshold: joinClassnamesByName("matchThreshold", args),
3890
3905
  branches: joinClassnamesByName("branches", args),
3891
- hasSubQuery: joinClassnamesByName("hasSubQuery", args)
3906
+ hasSubQuery: joinClassnamesByName("hasSubQuery", args),
3907
+ loading: joinClassnamesByName("loading", args)
3892
3908
  });
3893
3909
 
3894
3910
  //#endregion