@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
|
@@ -871,7 +871,36 @@ type Result = ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, SpecifiedOp
|
|
|
871
871
|
// Types of property 'leavesOnly' are incompatible. Type 'string' is not assignable to type 'boolean'.
|
|
872
872
|
```
|
|
873
873
|
*/
|
|
874
|
-
type ApplyDefaultOptions<Options extends object, Defaults extends Simplify<Omit<Required<Options>, RequiredKeysOf<Options>> & Partial<Record<RequiredKeysOf<Options>, never>>>, SpecifiedOptions extends Options> =
|
|
874
|
+
type ApplyDefaultOptions<Options extends object, Defaults extends Simplify<Omit<Required<Options>, RequiredKeysOf<Options>> & Partial<Record<RequiredKeysOf<Options>, never>>>, SpecifiedOptions extends Options> = _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> extends infer Result extends Required<Options> // `extends Required<Options>` ensures that `ApplyDefaultOptions<SomeOption, ...>` is always assignable to `Required<SomeOption>`
|
|
875
|
+
? Result : never;
|
|
876
|
+
type _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> = If<IsAny<SpecifiedOptions>, Defaults, If<IsNever<SpecifiedOptions>, Defaults, Merge<Defaults, { [Key in keyof SpecifiedOptions as undefined extends Required<Options>[Key & keyof Options] ? Key : undefined extends SpecifiedOptions[Key] ? never : Key]: SpecifiedOptions[Key] }>>>;
|
|
877
|
+
/**
|
|
878
|
+
Collapses literal types in a union into their corresponding primitive types, when possible. For example, `CollapseLiterals<'foo' | 'bar' | (string & {})>` returns `string`.
|
|
879
|
+
|
|
880
|
+
Note: This doesn't collapse literals within tagged types. For example, `CollapseLiterals<Tagged<'foo' | (string & {}), 'Tag'>>` returns `("foo" & Tag<"Tag", never>) | (string & Tag<"Tag", never>)` and not `string & Tag<"Tag", never>`.
|
|
881
|
+
|
|
882
|
+
Use-case: For collapsing unions created using {@link LiteralUnion}.
|
|
883
|
+
|
|
884
|
+
@example
|
|
885
|
+
```
|
|
886
|
+
import type {LiteralUnion} from 'type-fest';
|
|
887
|
+
|
|
888
|
+
type A = CollapseLiterals<'foo' | 'bar' | (string & {})>;
|
|
889
|
+
//=> string
|
|
890
|
+
|
|
891
|
+
type B = CollapseLiterals<LiteralUnion<1 | 2 | 3, number>>;
|
|
892
|
+
//=> number
|
|
893
|
+
|
|
894
|
+
type C = CollapseLiterals<LiteralUnion<'onClick' | 'onChange', `on${string}`>>;
|
|
895
|
+
//=> `on${string}`
|
|
896
|
+
|
|
897
|
+
type D = CollapseLiterals<'click' | 'change' | (`on${string}` & {})>;
|
|
898
|
+
//=> 'click' | 'change' | `on${string}`
|
|
899
|
+
|
|
900
|
+
type E = CollapseLiterals<LiteralUnion<'foo' | 'bar', string> | null | undefined>;
|
|
901
|
+
//=> string | null | undefined
|
|
902
|
+
```
|
|
903
|
+
*/
|
|
875
904
|
//#endregion
|
|
876
905
|
//#region ../../node_modules/type-fest/source/except.d.ts
|
|
877
906
|
/**
|
|
@@ -1119,7 +1148,7 @@ type SetArrayRequired<TArray extends UnknownArray, Keys, Counter extends any[] =
|
|
|
1119
1148
|
: never; // Should never happen
|
|
1120
1149
|
//#endregion
|
|
1121
1150
|
//#region src/types/options.d.ts
|
|
1122
|
-
type RequireAtLeastOne<
|
|
1151
|
+
type RequireAtLeastOne<O, K extends keyof O> = { [P in K]-?: Required<Pick<O, P>> & Partial<Pick<O, Exclude<K, P>>> }[K] & Except<O, K>;
|
|
1123
1152
|
type StringUnionToFlexibleOptionArray<Op extends string> = Array<Op extends unknown ? FlexibleOption<Op> : never>;
|
|
1124
1153
|
type StringUnionToFullOptionArray<Op extends string> = Array<Op extends unknown ? FullOption<Op> : never>;
|
|
1125
1154
|
/**
|
|
@@ -2607,7 +2636,9 @@ interface BaseTranslations<LabelType = string> {
|
|
|
2607
2636
|
operators: BaseTranslationWithPlaceholders;
|
|
2608
2637
|
values: BaseTranslationWithPlaceholders;
|
|
2609
2638
|
matchMode: BaseTranslation;
|
|
2610
|
-
matchThreshold: BaseTranslation
|
|
2639
|
+
matchThreshold: BaseTranslation & {
|
|
2640
|
+
placeholderName?: string;
|
|
2641
|
+
};
|
|
2611
2642
|
value: BaseTranslation;
|
|
2612
2643
|
removeRule: BaseTranslationWithLabel<LabelType>;
|
|
2613
2644
|
removeGroup: BaseTranslationWithLabel<LabelType>;
|
|
@@ -3868,6 +3899,8 @@ declare const bigIntJsonParseReviver: (_key: string, value: unknown) => unknown;
|
|
|
3868
3899
|
/**
|
|
3869
3900
|
* Default value processor used by {@link formatQuery} for "sql" format.
|
|
3870
3901
|
*
|
|
3902
|
+
* @deprecated Prefer {@link defaultValueProcessorByRule}.
|
|
3903
|
+
*
|
|
3871
3904
|
* @group Export
|
|
3872
3905
|
*/
|
|
3873
3906
|
declare const defaultValueProcessor: ValueProcessorLegacy;
|
|
@@ -89,7 +89,10 @@ const defaultTranslations = {
|
|
|
89
89
|
placeholderGroupLabel: defaultPlaceholderValueGroupLabel
|
|
90
90
|
},
|
|
91
91
|
matchMode: { title: "Match mode" },
|
|
92
|
-
matchThreshold: {
|
|
92
|
+
matchThreshold: {
|
|
93
|
+
title: "Match threshold",
|
|
94
|
+
placeholderName: "#"
|
|
95
|
+
},
|
|
93
96
|
value: { title: "Value" },
|
|
94
97
|
removeRule: {
|
|
95
98
|
label: "⨯",
|
|
@@ -1513,7 +1516,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
|
|
|
1513
1516
|
const totalCount = `double(${field}.size())`;
|
|
1514
1517
|
const filteredCount = `${field}.filter(${arrayElementAlias}, ${nestedArrayFilter}).size()`;
|
|
1515
1518
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "==";
|
|
1516
|
-
if (threshold > 0 && threshold < 1) return
|
|
1519
|
+
if (threshold > 0 && threshold < 1) return `double(${filteredCount}) ${op} (${totalCount} * ${threshold})`;
|
|
1517
1520
|
return `${filteredCount} ${op} ${threshold}`;
|
|
1518
1521
|
}
|
|
1519
1522
|
}
|
|
@@ -2014,7 +2017,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
|
|
|
2014
2017
|
if (!columns || !drizzleOperators) return void 0;
|
|
2015
2018
|
const { between, eq, gt, gte, inArray, isNotNull, isNull, like, lt, lte, ne, notBetween, notInArray, notLike, sql } = drizzleOperators;
|
|
2016
2019
|
const { field, operator, value, valueSource } = rule;
|
|
2017
|
-
const column = useRawFields &&
|
|
2020
|
+
const column = useRawFields && /^[a-z_][a-z0-9_.]*$/i.test(field) ? sql.raw(field) : columns[field];
|
|
2018
2021
|
const operatorLC = lc(operator);
|
|
2019
2022
|
const valueIsField = valueSource === "field";
|
|
2020
2023
|
const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
|
|
@@ -2047,7 +2050,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
|
|
|
2047
2050
|
case "atmost":
|
|
2048
2051
|
case "exactly": {
|
|
2049
2052
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
|
|
2050
|
-
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}`)}`;
|
|
2053
|
+
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}`)}`;
|
|
2051
2054
|
}
|
|
2052
2055
|
}
|
|
2053
2056
|
}
|
|
@@ -2395,7 +2398,7 @@ const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
|
|
|
2395
2398
|
const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
|
|
2396
2399
|
const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, translations, validateRule, validationMap } = options;
|
|
2397
2400
|
const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
|
|
2398
|
-
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression :
|
|
2401
|
+
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
|
|
2399
2402
|
const rg2 = isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && lc(r) === "xor") ? convertFromIC(rg) : rg;
|
|
2400
2403
|
const processedRules = [];
|
|
2401
2404
|
let precedingCombinator = "";
|
|
@@ -2493,7 +2496,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
|
|
|
2493
2496
|
return sql;
|
|
2494
2497
|
};
|
|
2495
2498
|
const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
|
|
2496
|
-
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression :
|
|
2499
|
+
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
|
|
2497
2500
|
const processedRules = [];
|
|
2498
2501
|
let precedingCombinator = "";
|
|
2499
2502
|
let firstRule = true;
|
|
@@ -2686,7 +2689,7 @@ const defaultRuleGroupProcessorSPARQL = (ruleGroup, options) => {
|
|
|
2686
2689
|
const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
|
|
2687
2690
|
const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
|
|
2688
2691
|
const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
|
|
2689
|
-
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression :
|
|
2692
|
+
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
|
|
2690
2693
|
const processedRules = [];
|
|
2691
2694
|
let precedingCombinator = "";
|
|
2692
2695
|
let firstRule = true;
|
|
@@ -3890,7 +3893,7 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
|
|
|
3890
3893
|
case "atmost":
|
|
3891
3894
|
case "exactly": {
|
|
3892
3895
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
|
|
3893
|
-
return `(select count(*)${threshold > 0 && threshold < 1 ?
|
|
3896
|
+
return `(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) ${op} ${threshold}`;
|
|
3894
3897
|
}
|
|
3895
3898
|
}
|
|
3896
3899
|
}
|
|
@@ -3957,7 +3960,7 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
|
|
|
3957
3960
|
case "atmost":
|
|
3958
3961
|
case "exactly": {
|
|
3959
3962
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
|
|
3960
|
-
return finalize(`(select count(*)${threshold > 0 && threshold < 1 ?
|
|
3963
|
+
return finalize(`(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedSQL}) ${op} ${threshold}`);
|
|
3961
3964
|
}
|
|
3962
3965
|
}
|
|
3963
3966
|
}
|
|
@@ -4459,6 +4462,8 @@ const generateValueProcessor = (vpbr) => (field, operator, value, valueSource) =
|
|
|
4459
4462
|
/**
|
|
4460
4463
|
* Default value processor used by {@link formatQuery} for "sql" format.
|
|
4461
4464
|
*
|
|
4465
|
+
* @deprecated Prefer {@link defaultValueProcessorByRule}.
|
|
4466
|
+
*
|
|
4462
4467
|
* @group Export
|
|
4463
4468
|
*/
|
|
4464
4469
|
const defaultValueProcessor = generateValueProcessor(defaultValueProcessorByRule);
|