@react-querybuilder/core 8.21.0 → 8.21.2

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 (72) hide show
  1. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +30 -1
  2. package/dist/cjs/react-querybuilder_core.cjs.development.js +37 -8
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  4. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +30 -1
  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 +17 -2
  8. package/dist/formatQuery.d.ts +17 -2
  9. package/dist/formatQuery.js +23 -9
  10. package/dist/formatQuery.js.map +1 -1
  11. package/dist/formatQuery.mjs +22 -10
  12. package/dist/formatQuery.mjs.map +1 -1
  13. package/dist/{import-Ddc3d_8q.d.ts → import-6ExjhifL.d.ts} +2 -2
  14. package/dist/{import-BVdxeIBO.d.mts → import-DVWI7Fdh.d.mts} +2 -2
  15. package/dist/{index-BSwFvkeI.d.mts → index-CX9mehdL.d.mts} +15 -1
  16. package/dist/{index-BSwFvkeI.d.ts → index-CX9mehdL.d.ts} +15 -1
  17. package/dist/parseCEL.d.mts +2 -2
  18. package/dist/parseCEL.d.ts +2 -2
  19. package/dist/parseCEL.js +2 -2
  20. package/dist/parseCEL.mjs +2 -2
  21. package/dist/parseCypher.d.mts +1 -1
  22. package/dist/parseCypher.d.ts +1 -1
  23. package/dist/parseGremlin.d.mts +1 -1
  24. package/dist/parseGremlin.d.ts +1 -1
  25. package/dist/parseJSONata.d.mts +2 -2
  26. package/dist/parseJSONata.d.ts +2 -2
  27. package/dist/parseJSONata.js +1 -1
  28. package/dist/parseJSONata.mjs +1 -1
  29. package/dist/parseJsonLogic.d.mts +2 -2
  30. package/dist/parseJsonLogic.d.ts +2 -2
  31. package/dist/parseJsonLogic.js +2 -2
  32. package/dist/parseJsonLogic.mjs +2 -2
  33. package/dist/parseMongoDB.d.mts +2 -2
  34. package/dist/parseMongoDB.d.ts +2 -2
  35. package/dist/parseMongoDB.js +2 -2
  36. package/dist/parseMongoDB.mjs +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/parseSQL.js +2 -2
  42. package/dist/parseSQL.mjs +2 -2
  43. package/dist/parseSpEL.d.mts +2 -2
  44. package/dist/parseSpEL.d.ts +2 -2
  45. package/dist/parseSpEL.js +2 -2
  46. package/dist/parseSpEL.mjs +2 -2
  47. package/dist/{prepareQueryObjects-Q18lHCKl.mjs → prepareQueryObjects-9emVAGYG.mjs} +2 -2
  48. package/dist/{prepareQueryObjects-Q18lHCKl.mjs.map → prepareQueryObjects-9emVAGYG.mjs.map} +1 -1
  49. package/dist/{prepareQueryObjects-C2-kTZvR.js → prepareQueryObjects-C5dHLhnC.js} +2 -2
  50. package/dist/{prepareQueryObjects-C2-kTZvR.js.map → prepareQueryObjects-C5dHLhnC.js.map} +1 -1
  51. package/dist/query-builder-layout.css.map +1 -1
  52. package/dist/query-builder.css.map +1 -1
  53. package/dist/react-querybuilder_core.d.mts +30 -1
  54. package/dist/react-querybuilder_core.legacy-esm.d.ts +30 -1
  55. package/dist/react-querybuilder_core.legacy-esm.js +38 -9
  56. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  57. package/dist/react-querybuilder_core.mjs +36 -9
  58. package/dist/react-querybuilder_core.mjs.map +1 -1
  59. package/dist/react-querybuilder_core.production.d.mts +30 -1
  60. package/dist/react-querybuilder_core.production.mjs +1 -1
  61. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  62. package/dist/styles/_layout.scss +14 -4
  63. package/dist/styles/_main.scss +7 -2
  64. package/dist/transformQuery.d.mts +1 -1
  65. package/dist/transformQuery.d.ts +1 -1
  66. package/dist/{utils-Dt0D_DMV.mjs → utils-CxWs-N47.mjs} +17 -2
  67. package/dist/utils-CxWs-N47.mjs.map +1 -0
  68. package/dist/{utils-DEwV7F6B.js → utils-SchkzSCN.js} +28 -1
  69. package/dist/utils-SchkzSCN.js.map +1 -0
  70. package/package.json +8 -8
  71. package/dist/utils-DEwV7F6B.js.map +0 -1
  72. package/dist/utils-Dt0D_DMV.mjs.map +0 -1
@@ -1495,6 +1495,21 @@ const processMatchMode = (rule) => {
1495
1495
  };
1496
1496
  };
1497
1497
  /**
1498
+ * Base alias assigned to the element binding of a subquery generated for a rule's
1499
+ * {@link MatchMode `match` mode} (e.g. `unnest(field) as elem_alias`).
1500
+ */
1501
+ const subqueryElementAliasBase = "elem_alias";
1502
+ /**
1503
+ * Returns the element alias for a subquery at the given nesting depth. Depth 0 (the common,
1504
+ * non-nested case) uses {@link subqueryElementAliasBase} unchanged; deeper levels are suffixed
1505
+ * with the depth, so a subquery nested within a subquery cannot shadow its parent's binding.
1506
+ *
1507
+ * Deterministic by depth rather than randomized, so output remains stable and snapshot-friendly.
1508
+ *
1509
+ * @group Export
1510
+ */
1511
+ const getSubqueryElementAlias = (subqueryDepth = 0) => subqueryDepth > 0 ? `${subqueryElementAliasBase}_${subqueryDepth}` : subqueryElementAliasBase;
1512
+ /**
1498
1513
  * "Replacer" method for JSON.stringify's second argument. Converts `bigint` values to
1499
1514
  * objects with a `$bigint` property having a value of a string representation of
1500
1515
  * the actual `bigint`-type value.
@@ -1587,11 +1602,15 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
1587
1602
  if (matchEval === false) return "";
1588
1603
  else if (matchEval) {
1589
1604
  const { mode, threshold } = matchEval;
1590
- const arrayElementAlias = "elem_alias";
1605
+ const subqueryDepth = opts.subqueryDepth ?? 0;
1606
+ const arrayElementAlias = getSubqueryElementAlias(subqueryDepth);
1591
1607
  const nestedArrayFilter = defaultRuleGroupProcessorCEL(transformQuery(rule.value, { ruleProcessor: (r) => ({
1592
1608
  ...r,
1593
1609
  field: `${arrayElementAlias}${r.field ? `.${r.field}` : ""}`
1594
- }) }), opts);
1610
+ }) }), {
1611
+ ...opts,
1612
+ subqueryDepth: subqueryDepth + 1
1613
+ });
1595
1614
  switch (mode) {
1596
1615
  case "all": return `${field}.all(${arrayElementAlias}, ${nestedArrayFilter})`;
1597
1616
  case "none":
@@ -3207,7 +3226,8 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
3207
3226
  else if (matchEval) {
3208
3227
  if (opts.preset !== "postgresql") return void 0;
3209
3228
  const { mode, threshold } = matchEval;
3210
- const arrayElementAlias = "elem_alias";
3229
+ const subqueryDepth = opts.subqueryDepth ?? 0;
3230
+ const arrayElementAlias = getSubqueryElementAlias(subqueryDepth);
3211
3231
  const nestedArrayFilter = defaultRuleGroupProcessorDrizzle(transformQuery(rule.value, { ruleProcessor: (r) => ({
3212
3232
  ...r,
3213
3233
  field: arrayElementAlias
@@ -3216,7 +3236,8 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
3216
3236
  context: {
3217
3237
  ...opts.context,
3218
3238
  useRawFields: true
3219
- }
3239
+ },
3240
+ subqueryDepth: subqueryDepth + 1
3220
3241
  });
3221
3242
  switch (mode) {
3222
3243
  case "all": return sql`(select count(*) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) = array_length(${column}, 1)`;
@@ -3930,11 +3951,15 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
3930
3951
  else if (matchEval) {
3931
3952
  if (opts?.preset !== "postgresql") return "";
3932
3953
  const { mode, threshold } = matchEval;
3933
- const arrayElementAlias = "elem_alias";
3954
+ const subqueryDepth = opts.subqueryDepth ?? 0;
3955
+ const arrayElementAlias = getSubqueryElementAlias(subqueryDepth);
3934
3956
  const nestedArrayFilter = defaultRuleGroupProcessorSQL(transformQuery(rule.value, { ruleProcessor: (r) => ({
3935
3957
  ...r,
3936
3958
  field: arrayElementAlias
3937
- }) }), opts);
3959
+ }) }), {
3960
+ ...opts,
3961
+ subqueryDepth: subqueryDepth + 1
3962
+ });
3938
3963
  switch (mode) {
3939
3964
  case "all": return `(select count(*) from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) = array_length(${ruleField}, 1)`;
3940
3965
  case "none": return `not exists (select 1 from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter})`;
@@ -3992,13 +4017,15 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
3992
4017
  else if (matchEval) {
3993
4018
  if (opts?.preset !== "postgresql") return finalize("");
3994
4019
  const { mode, threshold } = matchEval;
3995
- const arrayElementAlias = "elem_alias";
4020
+ const subqueryDepth = opts.subqueryDepth ?? 0;
4021
+ const arrayElementAlias = getSubqueryElementAlias(subqueryDepth);
3996
4022
  const { sql: nestedSQL, params: nestedParams } = defaultRuleGroupProcessorParameterized(transformQuery(rule.value, { ruleProcessor: (r) => ({
3997
4023
  ...r,
3998
4024
  field: arrayElementAlias
3999
4025
  }) }), {
4000
4026
  ...opts,
4001
- fields: []
4027
+ fields: [],
4028
+ subqueryDepth: subqueryDepth + 1
4002
4029
  });
4003
4030
  if (Array.isArray(nestedParams)) params.push(...nestedParams);
4004
4031
  else Object.assign(paramsNamed, nestedParams);
@@ -5431,6 +5458,6 @@ const groupInPlace = (query, sourcePathOrID, targetPathOrID, options = {}) => {
5431
5458
  return query;
5432
5459
  };
5433
5460
  //#endregion
5434
- 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 };
5461
+ 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, getSubqueryElementAlias, 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, subqueryElementAliasBase, substringOperators, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex, withParamPrefix, wrapLikeFragment };
5435
5462
 
5436
5463
  //# sourceMappingURL=react-querybuilder_core.mjs.map