🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

react-querybuilder

Package Overview
Dependencies
Maintainers
2
Versions
206
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-querybuilder - npm Package Compare versions

Comparing version

to
8.6.0

dist/chunk-IKZDM2A5.mjs

34

dist/react-querybuilder.legacy-esm.debug.js

@@ -35,2 +35,3 @@ import {

defaultOperatorProcessorNL,
defaultOperatorProcessorSQL,
defaultOperators,

@@ -48,2 +49,13 @@ defaultPlaceholderFieldGroupLabel,

defaultPlaceholderValueName,
defaultRuleGroupProcessorCEL,
defaultRuleGroupProcessorElasticSearch,
defaultRuleGroupProcessorJSONata,
defaultRuleGroupProcessorJsonLogic,
defaultRuleGroupProcessorLDAP,
defaultRuleGroupProcessorMongoDB,
defaultRuleGroupProcessorMongoDBQuery,
defaultRuleGroupProcessorNL,
defaultRuleGroupProcessorParameterized,
defaultRuleGroupProcessorSQL,
defaultRuleGroupProcessorSpEL,
defaultRuleProcessorCEL,

@@ -53,2 +65,3 @@ defaultRuleProcessorElasticSearch,

defaultRuleProcessorJsonLogic,
defaultRuleProcessorLDAP,
defaultRuleProcessorMongoDB,

@@ -70,2 +83,3 @@ defaultRuleProcessorMongoDBQuery,

filterFieldsByComparator,
findID,
findPath,

@@ -82,2 +96,3 @@ formatQuery,

getParseNumberMethod,
getPathOfID,
getQuerySelectorById,

@@ -112,2 +127,3 @@ getQuoteFieldNamesWithArray,

messages,
mongoDbFallback,
mongoOperators,

@@ -169,3 +185,3 @@ move,

useValueSelector
} from "./chunk-SEDTUHUF.js";
} from "./chunk-UAIJAOUS.js";

@@ -239,2 +255,3 @@ // src/components/QueryBuilder.debug.tsx

defaultOperatorProcessorNL,
defaultOperatorProcessorSQL,
defaultOperators,

@@ -252,2 +269,13 @@ defaultPlaceholderFieldGroupLabel,

defaultPlaceholderValueName,
defaultRuleGroupProcessorCEL,
defaultRuleGroupProcessorElasticSearch,
defaultRuleGroupProcessorJSONata,
defaultRuleGroupProcessorJsonLogic,
defaultRuleGroupProcessorLDAP,
defaultRuleGroupProcessorMongoDB,
defaultRuleGroupProcessorMongoDBQuery,
defaultRuleGroupProcessorNL,
defaultRuleGroupProcessorParameterized,
defaultRuleGroupProcessorSQL,
defaultRuleGroupProcessorSpEL,
defaultRuleProcessorCEL,

@@ -257,2 +285,3 @@ defaultRuleProcessorElasticSearch,

defaultRuleProcessorJsonLogic,
defaultRuleProcessorLDAP,
defaultRuleProcessorMongoDB,

@@ -274,2 +303,3 @@ defaultRuleProcessorMongoDBQuery,

filterFieldsByComparator,
findID,
findPath,

@@ -286,2 +316,3 @@ formatQuery,

getParseNumberMethod,
getPathOfID,
getQuerySelectorById,

@@ -316,2 +347,3 @@ getQuoteFieldNamesWithArray,

messages,
mongoDbFallback,
mongoOperators,

@@ -318,0 +350,0 @@ move,

@@ -35,2 +35,3 @@ import {

defaultOperatorProcessorNL,
defaultOperatorProcessorSQL,
defaultOperators,

@@ -48,2 +49,13 @@ defaultPlaceholderFieldGroupLabel,

defaultPlaceholderValueName,
defaultRuleGroupProcessorCEL,
defaultRuleGroupProcessorElasticSearch,
defaultRuleGroupProcessorJSONata,
defaultRuleGroupProcessorJsonLogic,
defaultRuleGroupProcessorLDAP,
defaultRuleGroupProcessorMongoDB,
defaultRuleGroupProcessorMongoDBQuery,
defaultRuleGroupProcessorNL,
defaultRuleGroupProcessorParameterized,
defaultRuleGroupProcessorSQL,
defaultRuleGroupProcessorSpEL,
defaultRuleProcessorCEL,

@@ -53,2 +65,3 @@ defaultRuleProcessorElasticSearch,

defaultRuleProcessorJsonLogic,
defaultRuleProcessorLDAP,
defaultRuleProcessorMongoDB,

@@ -70,2 +83,3 @@ defaultRuleProcessorMongoDBQuery,

filterFieldsByComparator,
findID,
findPath,

@@ -82,2 +96,3 @@ formatQuery,

getParseNumberMethod,
getPathOfID,
getQuerySelectorById,

@@ -112,2 +127,3 @@ getQuoteFieldNamesWithArray,

messages,
mongoDbFallback,
mongoOperators,

@@ -169,3 +185,3 @@ move,

useValueSelector
} from "./chunk-SEDTUHUF.js";
} from "./chunk-UAIJAOUS.js";

@@ -237,2 +253,3 @@ // src/redux/store.ts

defaultOperatorProcessorNL,
defaultOperatorProcessorSQL,
defaultOperators,

@@ -250,2 +267,13 @@ defaultPlaceholderFieldGroupLabel,

defaultPlaceholderValueName,
defaultRuleGroupProcessorCEL,
defaultRuleGroupProcessorElasticSearch,
defaultRuleGroupProcessorJSONata,
defaultRuleGroupProcessorJsonLogic,
defaultRuleGroupProcessorLDAP,
defaultRuleGroupProcessorMongoDB,
defaultRuleGroupProcessorMongoDBQuery,
defaultRuleGroupProcessorNL,
defaultRuleGroupProcessorParameterized,
defaultRuleGroupProcessorSQL,
defaultRuleGroupProcessorSpEL,
defaultRuleProcessorCEL,

@@ -255,2 +283,3 @@ defaultRuleProcessorElasticSearch,

defaultRuleProcessorJsonLogic,
defaultRuleProcessorLDAP,
defaultRuleProcessorMongoDB,

@@ -272,2 +301,3 @@ defaultRuleProcessorMongoDBQuery,

filterFieldsByComparator,
findID,
findPath,

@@ -284,2 +314,3 @@ formatQuery,

getParseNumberMethod,
getPathOfID,
getQuerySelectorById,

@@ -314,2 +345,3 @@ getQuoteFieldNamesWithArray,

messages,
mongoDbFallback,
mongoOperators,

@@ -316,0 +348,0 @@ move,

48

dist/types/components/Rule.d.ts

@@ -17,3 +17,3 @@ import type { MouseEvent } from "react";

export declare const RuleComponents: React.MemoExoticComponent<(r: UseRule) => React.JSX.Element>;
export type UseRule = RuleProps & {
export interface UseRule extends RuleProps {
classNames: {

@@ -29,25 +29,25 @@ shiftActions: string

removeRule: string
}
cloneRule: ActionElementEventHandler
fieldData: FullField<string, string, string, Option<string>, Option<string>>
generateOnChangeHandler: (prop: Exclude<keyof RuleType, "id" | "path">) => ValueChangeEventHandler
onChangeValueSource: ValueChangeEventHandler
onChangeField: ValueChangeEventHandler
onChangeOperator: ValueChangeEventHandler
onChangeValue: ValueChangeEventHandler
hideValueControls: boolean
inputType: InputType | null
operators: OptionList<FullOperator>
outerClassName: string
removeRule: ActionElementEventHandler
shiftRuleUp: (event?: MouseEvent, _context?: any) => void
shiftRuleDown: (event?: MouseEvent, _context?: any) => void
toggleLockRule: ActionElementEventHandler
validationResult: boolean | ValidationResult
valueEditorSeparator: React.ReactNode
valueEditorType: ValueEditorType
values: FlexibleOptionList<Option<string>>
valueSourceOptions: ValueSourceOptions
valueSources: ValueSources
};
};
cloneRule: ActionElementEventHandler;
fieldData: FullField<string, string, string, Option<string>, Option<string>>;
generateOnChangeHandler: (prop: Exclude<keyof RuleType, "id" | "path">) => ValueChangeEventHandler;
onChangeValueSource: ValueChangeEventHandler;
onChangeField: ValueChangeEventHandler;
onChangeOperator: ValueChangeEventHandler;
onChangeValue: ValueChangeEventHandler;
hideValueControls: boolean;
inputType: InputType | null;
operators: OptionList<FullOperator>;
outerClassName: string;
removeRule: ActionElementEventHandler;
shiftRuleUp: (event?: MouseEvent, _context?: any) => void;
shiftRuleDown: (event?: MouseEvent, _context?: any) => void;
toggleLockRule: ActionElementEventHandler;
validationResult: boolean | ValidationResult;
valueEditorSeparator: React.ReactNode;
valueEditorType: ValueEditorType;
values: FlexibleOptionList<Option<string>>;
valueSourceOptions: ValueSourceOptions;
valueSources: ValueSources;
}
/**

@@ -54,0 +54,0 @@ * Prepares all values and methods used by the {@link Rule} component.

@@ -26,25 +26,25 @@ import type { MouseEvent } from "react";

export declare const RuleGroupBodyComponents: React.MemoExoticComponent<(rg: UseRuleGroup) => React.JSX.Element>;
export type UseRuleGroup = RuleGroupProps & {
addGroup: ActionElementEventHandler
addRule: ActionElementEventHandler
accessibleDescription: string
classNames: Pick<{ [k in keyof Classnames] : string }, "header" | "shiftActions" | "dragHandle" | "combinators" | "notToggle" | "addRule" | "addGroup" | "cloneGroup" | "lockGroup" | "removeGroup" | "body">
cloneGroup: ActionElementEventHandler
onCombinatorChange: ValueChangeEventHandler
onGroupAdd: (group: RuleGroupTypeAny, parentPath: Path, context?: any) => void
onIndependentCombinatorChange: (value: any, index: number, context?: any) => void
onNotToggleChange: (checked: boolean, context?: any) => void
outerClassName: string
export interface UseRuleGroup extends RuleGroupProps {
addGroup: ActionElementEventHandler;
addRule: ActionElementEventHandler;
accessibleDescription: string;
classNames: Pick<{ [k in keyof Classnames] : string }, "header" | "shiftActions" | "dragHandle" | "combinators" | "notToggle" | "addRule" | "addGroup" | "cloneGroup" | "lockGroup" | "removeGroup" | "body">;
cloneGroup: ActionElementEventHandler;
onCombinatorChange: ValueChangeEventHandler;
onGroupAdd: (group: RuleGroupTypeAny, parentPath: Path, context?: any) => void;
onIndependentCombinatorChange: (value: any, index: number, context?: any) => void;
onNotToggleChange: (checked: boolean, context?: any) => void;
outerClassName: string;
pathsMemo: {
path: Path
disabled: boolean
}[]
removeGroup: ActionElementEventHandler
ruleGroup: RuleGroupType | RuleGroupTypeIC
shiftGroupDown: (event?: MouseEvent, context?: any) => void
shiftGroupUp: (event?: MouseEvent, context?: any) => void
toggleLockGroup: ActionElementEventHandler
validationClassName: string
validationResult: boolean | ValidationResult
};
}[];
removeGroup: ActionElementEventHandler;
ruleGroup: RuleGroupType | RuleGroupTypeIC;
shiftGroupDown: (event?: MouseEvent, context?: any) => void;
shiftGroupUp: (event?: MouseEvent, context?: any) => void;
toggleLockGroup: ActionElementEventHandler;
validationClassName: string;
validationResult: boolean | ValidationResult;
}
/**

@@ -51,0 +51,0 @@ * Prepares all values and methods used by the {@link RuleGroup} component.

@@ -7,3 +7,3 @@ import type { Context } from "react";

}
type QueryBuilderContextType = QueryBuilderContextProps<any, any> & QueryBuilderContextInternals;
interface QueryBuilderContextType extends QueryBuilderContextProps<any, any>, QueryBuilderContextInternals {}
/**

@@ -10,0 +10,0 @@ * Context provider for {@link QueryBuilder}. Any descendant query builders

@@ -10,3 +10,10 @@ import { ActionElement } from "./components/ActionElement";

import { ValueSelector } from "./components/ValueSelector";
import type { TranslationsFull } from "./types";
/**
* Default configuration of translatable strings.
*
* @group Defaults
*/
export declare const defaultTranslations: TranslationsFull;
/**
* Default components used by {@link QueryBuilder}.

@@ -13,0 +20,0 @@ *

@@ -1,2 +0,2 @@

import type { Classnames, DefaultCombinatorName, DefaultCombinatorNameExtended, DefaultOperatorName, FullOption, Path, TranslationsFull } from "./types/index.noReact";
import type { Classnames, DefaultCombinatorName, DefaultCombinatorNameExtended, DefaultOperatorName, FullOption, Path } from "./types/index.noReact";
/**

@@ -70,8 +70,2 @@ * @group Defaults

export declare const defaultJoinChar = ",";
/**
* Default configuration of translatable strings.
*
* @group Defaults
*/
export declare const defaultTranslations: TranslationsFull;
type StringUnionToFullOptionArray<Op extends string> = Op extends unknown ? FullOption<Op> : never;

@@ -78,0 +72,0 @@ export type DefaultOperators = StringUnionToFullOptionArray<DefaultOperatorName>[];

import type { TypedUseSelectorHook } from "react-redux";
import type { RuleGroupTypeAny } from "../types";
import type { RuleGroupTypeAny } from "../types/index.noReact";
import type { RqbState } from "./types";

@@ -4,0 +4,0 @@ /**

import type { PayloadAction, Slice } from "@reduxjs/toolkit";
import type { RuleGroupTypeAny } from "../types";
import type { RuleGroupTypeAny } from "../types/index.noReact";
export type QueriesSliceState = Record<string, RuleGroupTypeAny>;

@@ -4,0 +4,0 @@ export interface SetQueryStateParams {

@@ -1,2 +0,2 @@

import type { RuleGroupTypeAny } from "../types";
import type { RuleGroupTypeAny } from "../types/index.noReact";
import type { RqbState } from "./types";

@@ -3,0 +3,0 @@ /**

import type { Path } from "./basic";
import type { Schema } from "./propsUsingReact";
import type { RuleType } from "./ruleGroups";

@@ -20,4 +19,4 @@ import type { RuleGroupTypeAny } from "./ruleGroupsIC";

qbId: string;
getQuery: Schema<any, any>["getQuery"];
dispatchQuery: Schema<any, any>["dispatchQuery"];
getQuery: () => RuleGroupTypeAny;
dispatchQuery: (query: RuleGroupTypeAny) => void;
}

@@ -24,0 +23,0 @@ export interface DragCollection {

import type { RulesLogic } from "json-logic-js";
import type { FullField, FullOperator, ParseNumbersPropConfig, ValueSource } from "./basic";
import type { FlexibleOptionList } from "./options";
import type { FullField, FullOperator, InputType, ParseNumbersPropConfig, ValueSource } from "./basic";
import type { FlexibleOptionList, FullOptionList } from "./options";
import type { DefaultOperatorName, RuleType } from "./ruleGroups";
import type { QueryValidator } from "./validation";
import type { RuleGroupTypeAny } from "./ruleGroupsIC";
import type { Except } from "./type-fest";
import type { QueryValidator, RuleValidator, ValidationMap, ValidationResult } from "./validation";
/**

@@ -11,3 +13,3 @@ * Available export formats for {@link formatQuery}.

*/
export type ExportFormat = "json" | "sql" | "json_without_ids" | "parameterized" | "parameterized_named" | "mongodb" | "mongodb_query" | "cel" | "jsonlogic" | "spel" | "elasticsearch" | "jsonata" | "natural_language";
export type ExportFormat = "json" | "sql" | "json_without_ids" | "parameterized" | "parameterized_named" | "mongodb" | "mongodb_query" | "cel" | "jsonlogic" | "spel" | "elasticsearch" | "jsonata" | "natural_language" | "ldap";
/**

@@ -57,8 +59,15 @@ * Export formats for {@link formatQuery} that produce objects instead of strings.

/**
* This function will be used to process each rule for query language
* formats. If not defined, the appropriate `defaultRuleProcessor*`
* for the format will be used.
* This function will be used to process each rule. If not defined, the appropriate
* `defaultRuleProcessor*` for the given format will be used.
*/
ruleProcessor?: RuleProcessor;
/**
* This function will be used to process each rule group. If not defined, the appropriate
* `defaultRuleGroupProcessor*` for the format will be used.
*
* If this function is defined, it will override the `format` option. This also allows
* `formatQuery` to produce completely custom output formats.
*/
ruleGroupProcessor?: RuleGroupProcessor;
/**
* In the "sql", "parameterized", "parameterized_named", and "jsonata" export

@@ -277,2 +286,16 @@ * formats, field names will be bracketed by this string. If an array of strings

/**
* Options object curated by {@link formatQuery} and passed to a {@link RuleGroupProcessor}.
*
* @group Export
*/
export interface FormatQueryFinalOptions extends Required<Except<FormatQueryOptions, "context" | "valueProcessor" | "validator" | "placeholderValueName" | "ruleGroupProcessor">> {
fields: FullOptionList<FullField>;
getParseNumberBoolean: (inputType?: InputType | null) => boolean;
placeholderValueName?: string | undefined;
valueProcessor: ValueProcessorByRule;
validator?: QueryValidator;
validateRule: FormatQueryValidateRule;
validationMap: ValidationMap;
}
/**
* Function that produces a processed value for a given {@link RuleType}.

@@ -310,3 +333,3 @@ *

* | `elasticsearch` | {@link defaultRuleProcessorElasticSearch} |
* | `jsonata` | {@link defaultRuleProcessorJSONata} |
* | `jsonata` | {@link defaultRuleProcessorJSONata} |
*

@@ -320,2 +343,32 @@ * @group Export

/**
* Function to produce a result that {@link formatQuery} uses when processing a
* {@link RuleGroupType} or {@link RuleGroupTypeIC} object.
*
* See the default rule group processor for each format to know what type to return.
* | Format | Default rule group processor |
* | ------------------------ | ---------------------------------------------- |
* | `sql` | {@link defaultRuleGroupProcessorSQL} |
* | `parameterized` | {@link defaultRuleGroupProcessorParameterized} |
* | `parameterized_named` | {@link defaultRuleGroupProcessorParameterized} |
* | `mongodb` _(deprecated)_ | {@link defaultRuleGroupProcessorMongoDB} |
* | `mongodb_query` | {@link defaultRuleGroupProcessorMongoDBQuery} |
* | `cel` | {@link defaultRuleGroupProcessorCEL} |
* | `spel` | {@link defaultRuleGroupProcessorSpEL} |
* | `jsonlogic` | {@link defaultRuleGroupProcessorJsonLogic} |
* | `elasticsearch` | {@link defaultRuleGroupProcessorElasticSearch} |
* | `jsonata` | {@link defaultRuleGroupProcessorJSONata} |
*
* @group Export
*/
export type RuleGroupProcessor<TResult = unknown> = (ruleGroup: RuleGroupTypeAny, options: FormatQueryFinalOptions, meta?: {
processedParams?: Record<string, any> | any[]
context?: Record<string, any>
}) => TResult;
/**
* Rule validator for {@link formatQuery}.
*
* @group Export
*/
export type FormatQueryValidateRule = (rule: RuleType) => readonly [boolean | ValidationResult | undefined, RuleValidator | undefined];
/**
* Object produced by {@link formatQuery} for the `"parameterized"` format.

@@ -322,0 +375,0 @@ *

@@ -1,2 +0,2 @@

export type { JsonLogicAnd, JsonLogicDoubleNegation, JsonLogicEqual, JsonLogicGreaterThan, JsonLogicGreaterThanOrEqual, JsonLogicInArray, JsonLogicInString, JsonLogicLessThan, JsonLogicLessThanOrEqual, JsonLogicNegation, JsonLogicNotEqual, JsonLogicOr, ReservedOperations as JsonLogicReservedOperations, RulesLogic as JsonLogicRulesLogic, JsonLogicStrictEqual, JsonLogicStrictNotEqual, JsonLogicVar } from "json-logic-js";
export type { JsonLogicAnd, JsonLogicDoubleNegation, JsonLogicEqual, JsonLogicGreaterThan, JsonLogicGreaterThanOrEqual, JsonLogicInArray, JsonLogicInString, JsonLogicLessThan, JsonLogicLessThanOrEqual, JsonLogicNegation, JsonLogicNotEqual, JsonLogicOr, ReservedOperations as JsonLogicReservedOperations, RulesLogic as JsonLogicRulesLogic, JsonLogicStrictEqual, JsonLogicStrictNotEqual, JsonLogicVar } from "json-logic-js";
export * from "./basic";

@@ -3,0 +3,0 @@ export * from "./dnd";

@@ -1,70 +0,5 @@

import type { Classname, FullCombinator, FullField, FullOperator, Path, ValueSource } from "./basic";
import type { FullOption, FullOptionList, Option, ToFullOption } from "./options";
import type { Schema, TranslationWithLabel } from "./propsUsingReact";
import type { Classname, Path } from "./basic";
import type { RuleGroupType, RuleType } from "./ruleGroups";
import type { RuleGroupTypeAny, RuleOrGroupArray } from "./ruleGroupsIC";
import type { ValidationResult } from "./validation";
import type { RuleGroupTypeAny } from "./ruleGroupsIC";
/**
* Base interface for all subcomponents.
*
* @group Props
*/
export interface CommonSubComponentProps<
F extends FullOption = FullField,
O extends string = string
> {
/**
* CSS classNames to be applied.
*
* This is `string` and not {@link Classname} because the {@link Rule}
* and {@link RuleGroup} components run `clsx()` to produce the `className`
* that gets passed to each subcomponent.
*/
className?: string;
/**
* Path to this subcomponent's rule/group within the query.
*/
path: Path;
/**
* The level of the current group. Always equal to `path.length`.
*/
level: number;
/**
* The title/tooltip for this control.
*/
title?: string;
/**
* Disables the control.
*/
disabled?: boolean;
/**
* Container for custom props that are passed to all components.
*/
context?: any;
/**
* Validation result of the parent rule/group.
*/
validation?: boolean | ValidationResult;
/**
* Test ID for this component.
*/
testID?: string;
/**
* All subcomponents receive the configuration schema as a prop.
*/
schema: Schema<F, O>;
}
/**
* Base interface for selectors and editors.
*
* @group Props
*/
export interface SelectorOrEditorProps<
F extends FullOption = FullField,
O extends string = string
> extends CommonSubComponentProps<F, O> {
value?: string;
handleOnChange(value: any): void;
}
/**
* Base interface for all rule subcomponents.

@@ -78,61 +13,2 @@ *

/**
* Base interface for selector components.
*/
interface BaseSelectorProps<OptType extends Option> extends SelectorOrEditorProps<ToFullOption<OptType>> {
options: FullOptionList<OptType>;
}
/**
* Props for all `value` selector components.
*
* @group Props
*/
export interface ValueSelectorProps<OptType extends Option = FullOption> extends BaseSelectorProps<OptType> {
multiple?: boolean;
listsAsArrays?: boolean;
}
/**
* Props for `combinatorSelector` components.
*
* @group Props
*/
export interface CombinatorSelectorProps extends BaseSelectorProps<FullOption> {
options: FullOptionList<FullCombinator>;
rules?: RuleOrGroupArray;
}
/**
* Props for `fieldSelector` components.
*
* @group Props
*/
export interface FieldSelectorProps<F extends FullField = FullField> extends BaseSelectorProps<F>, CommonRuleSubComponentProps {
operator?: F extends FullField<string, infer OperatorName> ? OperatorName : string;
}
/**
* Props for `operatorSelector` components.
*
* @group Props
*/
export interface OperatorSelectorProps extends BaseSelectorProps<FullOption>, CommonRuleSubComponentProps {
options: FullOptionList<FullOperator>;
field: string;
fieldData: FullField;
}
/**
* Props for `valueSourceSelector` components.
*
* @group Props
*/
export interface ValueSourceSelectorProps extends BaseSelectorProps<FullOption>, CommonRuleSubComponentProps {
options: FullOptionList<FullOption<ValueSource>>;
field: string;
fieldData: FullField;
}
/**
* Utility type representing props for selector components
* that could potentially be any of the standard selector types.
*
* @group Props
*/
export type VersatileSelectorProps = ValueSelectorProps & Partial<FieldSelectorProps<FullField>> & Partial<OperatorSelectorProps> & Partial<CombinatorSelectorProps>;
/**
* Classnames applied to each component.

@@ -292,65 +168,1 @@ *

}
/**
* A translation for a component with `title` only.
*
* @group Props
*/
export interface Translation {
title?: string;
}
/**
* A translation for a component with `title` and a placeholder.
*
* @group Props
*/
export interface TranslationWithPlaceholders extends Translation {
/**
* Value for the placeholder field option if autoSelectField is false,
* or the placeholder operator option if autoSelectOperator is false.
*/
placeholderName?: string;
/**
* Label for the placeholder field option if autoSelectField is false,
* or the placeholder operator option if autoSelectOperator is false.
*/
placeholderLabel?: string;
/**
* Label for the placeholder field optgroup if autoSelectField is false,
* or the placeholder operator optgroup if autoSelectOperator is false.
*/
placeholderGroupLabel?: string;
}
/**
* The shape of the `translations` prop.
*
* @group Props
*/
export interface Translations {
fields: TranslationWithPlaceholders;
operators: TranslationWithPlaceholders;
values: TranslationWithPlaceholders;
value: Translation;
removeRule: TranslationWithLabel;
removeGroup: TranslationWithLabel;
addRule: TranslationWithLabel;
addGroup: TranslationWithLabel;
combinators: Translation;
notToggle: TranslationWithLabel;
cloneRule: TranslationWithLabel;
cloneRuleGroup: TranslationWithLabel;
shiftActionUp: TranslationWithLabel;
shiftActionDown: TranslationWithLabel;
dragHandle: TranslationWithLabel;
lockRule: TranslationWithLabel;
lockGroup: TranslationWithLabel;
lockRuleDisabled: TranslationWithLabel;
lockGroupDisabled: TranslationWithLabel;
valueSourceSelector: Translation;
}
/**
* The full `translations` interface with all properties required.
*
* @group Props
*/
export type TranslationsFull = { [K in keyof Translations] : { [T in keyof Translations[K]]-? : string } };
export {};

@@ -6,9 +6,130 @@ import type { ComponentType, ForwardRefExoticComponent, MouseEvent as ReactMouseEvent, ReactNode, Ref, RefAttributes } from "react";

import type { DropEffect } from "./dnd";
import type { BaseOptionMap, FlexibleOptionList, FullOption, FullOptionList, GetOptionIdentifierType, Option } from "./options";
import type { Classnames, CombinatorSelectorProps, CommonRuleSubComponentProps, CommonSubComponentProps, FieldSelectorProps, OperatorSelectorProps, QueryActions, SelectorOrEditorProps, Translation, Translations, ValueSelectorProps, ValueSourceSelectorProps } from "./props";
import type { BaseOptionMap, FlexibleOptionList, FullOption, FullOptionList, GetOptionIdentifierType, Option, ToFullOption } from "./options";
import type { Classnames, CommonRuleSubComponentProps, QueryActions } from "./props";
import type { RuleGroupType, RuleType } from "./ruleGroups";
import type { RuleGroupTypeAny, RuleGroupTypeIC, RuleOrGroupArray } from "./ruleGroupsIC";
import type { SetNonNullable } from "./type-fest";
import type { QueryValidator, ValidationMap } from "./validation";
import type { QueryValidator, ValidationMap, ValidationResult } from "./validation";
/**
* Base interface for all subcomponents.
*
* @group Props
*/
export interface CommonSubComponentProps<
F extends FullOption = FullField,
O extends string = string
> {
/**
* CSS classNames to be applied.
*
* This is `string` and not {@link Classname} because the {@link Rule}
* and {@link RuleGroup} components run `clsx()` to produce the `className`
* that gets passed to each subcomponent.
*/
className?: string;
/**
* Path to this subcomponent's rule/group within the query.
*/
path: Path;
/**
* The level of the current group. Always equal to `path.length`.
*/
level: number;
/**
* The title/tooltip for this control.
*/
title?: string;
/**
* Disables the control.
*/
disabled?: boolean;
/**
* Container for custom props that are passed to all components.
*/
context?: any;
/**
* Validation result of the parent rule/group.
*/
validation?: boolean | ValidationResult;
/**
* Test ID for this component.
*/
testID?: string;
/**
* All subcomponents receive the configuration schema as a prop.
*/
schema: Schema<F, O>;
}
/**
* Base interface for selectors and editors.
*
* @group Props
*/
export interface SelectorOrEditorProps<
F extends FullOption = FullField,
O extends string = string
> extends CommonSubComponentProps<F, O> {
value?: string;
handleOnChange(value: any): void;
}
/**
* Base interface for selector components.
*/
interface BaseSelectorProps<OptType extends Option> extends SelectorOrEditorProps<ToFullOption<OptType>> {
options: FullOptionList<OptType>;
}
/**
* Props for all `value` selector components.
*
* @group Props
*/
export interface ValueSelectorProps<OptType extends Option = FullOption> extends BaseSelectorProps<OptType> {
multiple?: boolean;
listsAsArrays?: boolean;
}
/**
* Props for `combinatorSelector` components.
*
* @group Props
*/
export interface CombinatorSelectorProps extends BaseSelectorProps<FullOption> {
options: FullOptionList<FullCombinator>;
rules?: RuleOrGroupArray;
}
/**
* Props for `fieldSelector` components.
*
* @group Props
*/
export interface FieldSelectorProps<F extends FullField = FullField> extends BaseSelectorProps<F>, CommonRuleSubComponentProps {
operator?: F extends FullField<string, infer OperatorName> ? OperatorName : string;
}
/**
* Props for `operatorSelector` components.
*
* @group Props
*/
export interface OperatorSelectorProps extends BaseSelectorProps<FullOption>, CommonRuleSubComponentProps {
options: FullOptionList<FullOperator>;
field: string;
fieldData: FullField;
}
/**
* Props for `valueSourceSelector` components.
*
* @group Props
*/
export interface ValueSourceSelectorProps extends BaseSelectorProps<FullOption>, CommonRuleSubComponentProps {
options: FullOptionList<FullOption<ValueSource>>;
field: string;
fieldData: FullField;
}
/**
* Utility type representing props for selector components
* that could potentially be any of the standard selector types.
*
* @group Props
*/
export type VersatileSelectorProps = ValueSelectorProps & Partial<FieldSelectorProps<FullField>> & Partial<OperatorSelectorProps> & Partial<CombinatorSelectorProps>;
/**
* A translation for a component with `title` and `label`.

@@ -22,2 +143,65 @@ *

/**
* A translation for a component with `title` only.
*
* @group Props
*/
export interface Translation {
title?: string;
}
/**
* A translation for a component with `title` and a placeholder.
*
* @group Props
*/
export interface TranslationWithPlaceholders extends Translation {
/**
* Value for the placeholder field option if autoSelectField is false,
* or the placeholder operator option if autoSelectOperator is false.
*/
placeholderName?: string;
/**
* Label for the placeholder field option if autoSelectField is false,
* or the placeholder operator option if autoSelectOperator is false.
*/
placeholderLabel?: string;
/**
* Label for the placeholder field optgroup if autoSelectField is false,
* or the placeholder operator optgroup if autoSelectOperator is false.
*/
placeholderGroupLabel?: string;
}
/**
* The shape of the `translations` prop.
*
* @group Props
*/
export interface Translations {
fields: TranslationWithPlaceholders;
operators: TranslationWithPlaceholders;
values: TranslationWithPlaceholders;
value: Translation;
removeRule: TranslationWithLabel;
removeGroup: TranslationWithLabel;
addRule: TranslationWithLabel;
addGroup: TranslationWithLabel;
combinators: Translation;
notToggle: TranslationWithLabel;
cloneRule: TranslationWithLabel;
cloneRuleGroup: TranslationWithLabel;
shiftActionUp: TranslationWithLabel;
shiftActionDown: TranslationWithLabel;
dragHandle: TranslationWithLabel;
lockRule: TranslationWithLabel;
lockGroup: TranslationWithLabel;
lockRuleDisabled: TranslationWithLabel;
lockGroupDisabled: TranslationWithLabel;
valueSourceSelector: Translation;
}
/**
* The full `translations` interface with all properties required.
*
* @group Props
*/
export type TranslationsFull = { [K in keyof Translations] : { [T in keyof Translations[K]]-? : string } };
/**
* Props passed to every action component (rendered as `<button>` by default).

@@ -527,5 +711,5 @@ *

*/
export type QueryBuilderContextProviderProps = QueryBuilderContextProps<FullField, string> & {
children?: ReactNode
};
export interface QueryBuilderContextProviderProps extends QueryBuilderContextProps<FullField, string> {
children?: ReactNode;
}
/**

@@ -532,0 +716,0 @@ * @group Components

@@ -12,2 +12,3 @@ type MAXIMUM_ALLOWED_NUMBER = 45;

export type OddRangeWithZero = OddRange | 0;
/* istanbul ignore next */
export declare const isOddOrZero: (n: number) => n is OddRangeWithZero;

@@ -14,0 +15,0 @@ type MAXIMUM_ALLOWED_BOUNDARY = 80;

@@ -1,7 +0,4 @@

import type { Zero } from "./numeric";
/**
Returns a boolean for whether the given number is a float, like `1.5` or `-1.5`.
It returns `false` for `Infinity`.
Use-case:

@@ -12,13 +9,21 @@ - If you want to make a conditional branch based on the result of whether a number is a float or not.

```
type Float = IsFloat<1.5>;
import type {IsFloat, PositiveInfinity} from "type-fest";
type A = IsFloat<1.5>;
//=> true
type IntegerWithDecimal = IsInteger<1.0>;
//=> false
type B = IsFloat<-1.5>;
//=> true
type NegativeFloat = IsInteger<-1.5>;
type C = IsFloat<1e-7>;
//=> true
type Infinity_ = IsInteger<Infinity>;
type D = IsFloat<1.0>;
//=> false
type E = IsFloat<PositiveInfinity>;
//=> false
type F = IsFloat<1.23e+21>;
//=> false
```

@@ -28,2 +33,2 @@

*/
export type IsFloat<T> = T extends number ? `${T}` extends `${infer _Sign extends "" | "-"}${number}.${infer Decimal extends number}` ? Decimal extends Zero ? false : true : false : false;
export type IsFloat<T> = T extends number ? `${T}` extends `${number}e${infer E extends "-" | "+"}${number}` ? E extends "-" ? true : false : `${T}` extends `${number}.${number}` ? true : false : false;

@@ -5,33 +5,40 @@ import type { Not } from "./internal";

/**
Returns a boolean for whether the given number is a integer, like `-5`, `1.0` or `100`.
Returns a boolean for whether the given number is an integer, like `-5`, `1.0`, or `100`.
Like [`Number#IsInteger()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/IsInteger) but for types.
Use-case:
- If you want to make a conditional branch based on the result of whether a number is a intrger or not.
- If you want to make a conditional branch based on the result of whether a number is an integer or not.
@example
```
type Integer = IsInteger<1>;
import type {IsInteger, PositiveInfinity} from "type-fest";
type A = IsInteger<1>;
//=> true
type IntegerWithDecimal = IsInteger<1.0>;
type B = IsInteger<1.0>;
//=> true
type NegativeInteger = IsInteger<-1>;
type C = IsInteger<-1>;
//=> true
type Float = IsInteger<1.5>;
//=> false
type D = IsInteger<0b10>;
//=> true
// Supports non-decimal numbers
type E = IsInteger<0o10>;
//=> true
type OctalInteger: IsInteger<0o10>;
type F = IsInteger<0x10>;
//=> true
type BinaryInteger: IsInteger<0b10>;
type G = IsInteger<1.23+21>;
//=> true
type HexadecimalInteger: IsInteger<0x10>;
//=> true
type H = IsInteger<1.5>;
//=> false
type I = IsInteger<PositiveInfinity>;
//=> false
type J = IsInteger<1e-7>;
//=> false
```

@@ -38,0 +45,0 @@

type ClassDictionary = Record<string, any>;
type ClassValue = ClassArray | ClassDictionary | string | number | bigint | null | boolean | undefined;
type ClassArray = ClassValue[];
// istanbul ignore next
export declare function clsx(...args: ClassValue[]): string;
export default clsx;

@@ -7,2 +7,4 @@ import type { RuleGroupType, RuleGroupTypeAny, RuleGroupTypeIC } from "../types/index.noReact";

* returned as-is.
*
* @group Query Tools
*/

@@ -15,2 +17,4 @@ export declare const convertFromIC: <RG extends RuleGroupType = RuleGroupType>(rg: RuleGroupTypeAny) => RG;

* returned as-is.
*
* @group Query Tools
*/

@@ -21,2 +25,4 @@ export declare const convertToIC: <RGIC extends RuleGroupTypeIC = RuleGroupTypeIC>(rg: RuleGroupTypeAny) => RGIC;

* operation, use {@link convertToIC}.
*
* @group Query Tools
*/

@@ -27,4 +33,6 @@ declare function convertQuery(query: RuleGroupType): RuleGroupTypeIC;

* operation, use {@link convertFromIC}.
*
* @group Query Tools
*/
declare function convertQuery(query: RuleGroupTypeIC): RuleGroupType;
export { convertQuery };
import type { ExportOperatorMap, RuleProcessor } from "../../types/index.noReact";
/**
* Default operator map used by {@link formatQuery} for "natural_language" format.
*
* @group Export
*/
export declare const defaultExportOperatorMap: ExportOperatorMap;

@@ -3,0 +8,0 @@ /**

import type { RuleProcessor } from "../../types/index.noReact";
/**
* Default rule processor used by {@link formatQuery} for "sql" format.
* Default rule processor used by {@link formatQuery} for "parameterized" and
* "parameterized_named" formats.
*

@@ -5,0 +6,0 @@ * @group Export

import type { RuleProcessor } from "../../types/index.noReact";
/**
* Default operator processor used by {@link formatQuery} for "sql" and "parameterized*" formats.
*
* @group Export
*/
export declare const defaultOperatorProcessorSQL: RuleProcessor;

@@ -3,0 +8,0 @@ /**

@@ -1,2 +0,2 @@

import type { ExportFormat, ExportObjectFormats, FormatQueryOptions, ParameterizedNamedSQL, ParameterizedSQL, RQBJsonLogic, RuleGroupTypeAny, SQLPreset } from "../../types/index.noReact";
import type { ExportFormat, ExportObjectFormats, FormatQueryOptions, ParameterizedNamedSQL, ParameterizedSQL, RQBJsonLogic, RuleGroupProcessor, RuleGroupTypeAny, SQLPreset } from "../../types/index.noReact";
/**

@@ -13,2 +13,10 @@ * @group Export

/**
* Generates a result based on the provided rule group processor.
*
* @group Export
*/
declare function formatQuery<TResult = unknown>(ruleGroup: RuleGroupTypeAny, options: FormatQueryOptions & {
ruleGroupProcessor: RuleGroupProcessor<TResult>
}): TResult;
/**
* Generates a {@link index!ParameterizedSQL ParameterizedSQL} object from a query object.

@@ -84,2 +92,10 @@ *

/**
* Generates an LDAP query string from an RQB query object.
*
* @group Export
*/
declare function formatQuery(ruleGroup: RuleGroupTypeAny, options: "ldap" | (FormatQueryOptions & {
format: "ldap"
})): string;
/**
* Generates a formatted (indented two spaces) JSON string from a query object.

@@ -86,0 +102,0 @@ *

@@ -35,10 +35,22 @@ /**

export declare const defaultSpELValueProcessor: ValueProcessorLegacy;
export { defaultRuleProcessorElasticSearch } from "./defaultRuleProcessorElasticSearch";
export { defaultRuleProcessorJSONata } from "./defaultRuleProcessorJSONata";
export { defaultRuleProcessorJsonLogic } from "./defaultRuleProcessorJsonLogic";
export { defaultRuleProcessorMongoDBQuery } from "./defaultRuleProcessorMongoDBQuery";
export * from "./defaultRuleGroupProcessorCEL";
export * from "./defaultRuleGroupProcessorElasticSearch";
export * from "./defaultRuleGroupProcessorJSONata";
export * from "./defaultRuleGroupProcessorJsonLogic";
export * from "./defaultRuleGroupProcessorLDAP";
export * from "./defaultRuleGroupProcessorMongoDB";
export * from "./defaultRuleGroupProcessorMongoDBQuery";
export * from "./defaultRuleGroupProcessorNL";
export * from "./defaultRuleGroupProcessorParameterized";
export * from "./defaultRuleGroupProcessorSpEL";
export * from "./defaultRuleGroupProcessorSQL";
export * from "./defaultRuleProcessorElasticSearch";
export * from "./defaultRuleProcessorJSONata";
export * from "./defaultRuleProcessorJsonLogic";
export * from "./defaultRuleProcessorLDAP";
export * from "./defaultRuleProcessorMongoDBQuery";
export * from "./defaultRuleProcessorNL";
export { defaultRuleProcessorParameterized } from "./defaultRuleProcessorParameterized";
export { defaultRuleProcessorSQL } from "./defaultRuleProcessorSQL";
export { defaultValueProcessorNL } from "./defaultValueProcessorNL";
export * from "./defaultRuleProcessorParameterized";
export * from "./defaultRuleProcessorSQL";
export * from "./defaultValueProcessorNL";
export * from "./formatQuery";

@@ -45,0 +57,0 @@ export * from "./utils";

@@ -106,3 +106,14 @@ import type { ConstituentWordOrder, FormatQueryOptions, GroupVariantCondition, NLTranslationKey, NLTranslations, RuleGroupTypeAny, SetRequired, ValueProcessorByRule, ValueProcessorLegacy, ValueProcessorOptions } from "../../types/index.noReact";

export declare const normalizeConstituentWordOrder: (input: string) => ConstituentWordOrder;
/**
* Default translations used by {@link formatQuery} for "natural_language" format.
*
* @group Export
*/
export declare const defaultNLTranslations: NLTranslations;
/**
* Used by {@link formatQuery} to get a translation based on certain conditions
* for the "natural_language" format.
*
* @group Export
*/
export declare const getNLTranslataion: (key: NLTranslationKey, translations: NLTranslations, conditions?: GroupVariantCondition[]) => string;

@@ -10,2 +10,3 @@ /**

*/
// istanbul ignore next
export declare let generateID: () => string;

@@ -1,2 +0,2 @@

import type { InputType, ParseNumberMethod, ParseNumbersPropConfig } from "../types";
import type { InputType, ParseNumberMethod, ParseNumbersPropConfig } from "../types/index.noReact";
export declare const getParseNumberMethod: ({ parseNumbers, inputType }: {

@@ -3,0 +3,0 @@ parseNumbers?: ParseNumbersPropConfig

@@ -1,2 +0,2 @@

import type { Classnames } from "../types";
import type { Classnames } from "../types/index.noReact";
type MergeClassnamesParams = (Partial<Classnames> | undefined)[];

@@ -3,0 +3,0 @@ /**

@@ -1,2 +0,2 @@

import type { DefaultCombinatorName, DefaultOperatorName } from "../../types";
import type { DefaultCombinatorName, DefaultOperatorName } from "../../types/index.noReact";
import type { JSONataAnd, JSONataBlock, JSONataBoolean, JSONataContains, JSONataEqual, JSONataExprNode, JSONataGreaterThan, JSONataGreaterThanOrEqual, JSONataIdentifier, JSONataIn, JSONataLessThan, JSONataLessThanOrEqual, JSONataList, JSONataName, JSONataNot, JSONataNotEqual, JSONataNull, JSONataNumber, JSONataOr, JSONataPath, JSONataRegex, JSONataString, JSONataToMillis } from "./types";

@@ -3,0 +3,0 @@ type Any = any;

@@ -1,2 +0,2 @@

import type { DefaultOperatorName } from "../../types";
import type { DefaultOperatorName } from "../../types/index.noReact";
import type { MongoDbSupportedOperators } from "./types";

@@ -3,0 +3,0 @@ export declare const getRegExStr: (re: string | RegExp) => string;

@@ -1,2 +0,2 @@

import type { DefaultCombinatorNameExtended } from "../../types";
import type { DefaultCombinatorNameExtended } from "../../types/index.noReact";
type AnyCase<T extends string> = string extends T ? string : T extends `${infer F1}${infer F2}${infer R}` ? `${Uppercase<F1> | Lowercase<F1>}${Uppercase<F2> | Lowercase<F2>}${AnyCase<R>}` : T extends `${infer F}${infer R}` ? `${Uppercase<F> | Lowercase<F>}${AnyCase<R>}` : "";

@@ -3,0 +3,0 @@ type TokenType = "AndExpression" | "BetweenPredicate" | "BitExpression" | "Boolean" | "BooleanExtra" | "CaseWhen" | "ComparisonBooleanPrimary" | "ComparisonSubQueryBooleanPrimary" | "ContainsExpr" | "EndsWithExpr" | "ExpressionList" | "ForceIndexHint" | "ForOptIndexHint" | "FunctionCall" | "FunctionCallParam" | "GroupBy" | "GroupByOrderByItem" | "Identifier" | "IdentifierExpr" | "IdentifierList" | "IgnoreIndexHint" | "IndexHintList" | "InExpressionListPredicate" | "InnerCrossJoinTable" | "InSubQueryPredicate" | "IsExpression" | "IsNullBooleanPrimary" | "LeftRightJoinTable" | "LikePredicate" | "Limit" | "Main" | "NaturalJoinTable" | "NotExpression" | "Null" | "Number" | "OnJoinCondition" | "OrderBy" | "OrExpression" | "Partitions" | "PlaceHolder" | "Prefix" | "RegexpPredicate" | "Select" | "SelectExpr" | "SelectParenthesized" | "SimpleExprParentheses" | "SoundsLikePredicate" | "StartsWithExpr" | "StraightJoinTable" | "String" | "SubQuery" | "TableFactor" | "TableReference" | "TableReferences" | "Union" | "UseIndexHint" | "UsingJoinCondition" | "WhenThenList" | "XorExpression";

@@ -12,2 +12,12 @@ import type { Path, RuleGroupTypeAny, RuleType } from "../types/index.noReact";

/**
* Returns the {@link RuleType} or {@link RuleGroupType}/{@link RuleGroupTypeIC}
* with the given `id` within a query.
*/
export declare const findID: (id: string, query: RuleGroupTypeAny) => FindPathReturnType;
/**
* Returns the {@link Path} of the {@link RuleType} or {@link RuleGroupType}/{@link RuleGroupTypeIC}
* with the given `id` within a query.
*/
export declare const getPathOfID: (id: string, query: RuleGroupTypeAny) => Path | null;
/**
* Truncates the last element of an array and returns the result as a new array.

@@ -14,0 +24,0 @@ */

@@ -32,3 +32,3 @@ import type { OptionList, Path, RuleGroupTypeAny, RuleType, UpdateableProperties, ValueSources } from "../types/index.noReact";

*/
export declare const add: <RG extends RuleGroupTypeAny>(query: RG, ruleOrGroup: RG | RuleType, parentPath: Path, { combinators, combinatorPreceding, idGenerator }?: AddOptions) => RG;
export declare const add: <RG extends RuleGroupTypeAny>(query: RG, ruleOrGroup: RG | RuleType, parentPathOrID: Path | string, { combinators, combinatorPreceding, idGenerator }?: AddOptions) => RG;
/**

@@ -69,3 +69,3 @@ * Options for {@link update}.

*/
export declare const update: <RG extends RuleGroupTypeAny>(query: RG, prop: UpdateableProperties, value: any, path: Path, { resetOnFieldChange, resetOnOperatorChange, getRuleDefaultOperator, getValueSources, getRuleDefaultValue }?: UpdateOptions) => RG;
export declare const update: <RG extends RuleGroupTypeAny>(query: RG, prop: UpdateableProperties, value: any, pathOrID: Path | string, { resetOnFieldChange, resetOnOperatorChange, getRuleDefaultOperator, getValueSources, getRuleDefaultValue }?: UpdateOptions) => RG;
/**

@@ -77,3 +77,3 @@ * Removes a rule or group from a query.

*/
export declare const remove: <RG extends RuleGroupTypeAny>(query: RG, path: Path) => RG;
export declare const remove: <RG extends RuleGroupTypeAny>(query: RG, pathOrID: Path | string) => RG;
/**

@@ -107,3 +107,3 @@ * Options for {@link move}.

*/
export declare const move: <RG extends RuleGroupTypeAny>(query: RG, oldPath: Path, newPath: Path | "up" | "down", { clone, combinators, idGenerator }?: MoveOptions) => RG;
export declare const move: <RG extends RuleGroupTypeAny>(query: RG, oldPathOrID: Path | string, newPath: Path | "up" | "down", { clone, combinators, idGenerator }?: MoveOptions) => RG;
/**

@@ -184,2 +184,2 @@ * Options for {@link insert}.

*/
export declare const group: <RG extends RuleGroupTypeAny>(query: RG, sourcePath: Path, targetPath: Path, { clone, combinators, idGenerator }?: GroupOptions) => RG;
export declare const group: <RG extends RuleGroupTypeAny>(query: RG, sourcePathOrID: Path | string, targetPathOrID: Path | string, { clone, combinators, idGenerator }?: GroupOptions) => RG;
{
"name": "react-querybuilder",
"version": "8.5.0",
"version": "8.6.0",
"description": "React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts",

@@ -97,3 +97,3 @@ "main": "./dist/cjs/index.js",

"contributors": [
"Pavan Podila <pavan@pixelingene.com> (http://blog.pixelingene.com)",
"Pavan Podila <pavan@pixelingene.com> (https://blog.pixelingene.com)",
"Jake Boone"

@@ -104,7 +104,7 @@ ],

"devDependencies": {
"@babel/core": "^7.26.10",
"@babel/preset-env": "^7.26.9",
"@babel/preset-react": "^7.26.3",
"@babel/preset-typescript": "^7.27.0",
"@electric-sql/pglite": "^0.2.17",
"@babel/core": "^7.27.1",
"@babel/preset-env": "^7.27.1",
"@babel/preset-react": "^7.27.1",
"@babel/preset-typescript": "^7.27.1",
"@electric-sql/pglite": "^0.3.0",
"@testing-library/dom": "^10.4.0",

@@ -116,6 +116,6 @@ "@testing-library/react": "^16.3.0",

"@types/json-logic-js": "^2.0.8",
"@types/node": "^22.14.0",
"@types/react": "^19.1.0",
"@types/react-dom": "^19.1.1",
"@vitejs/plugin-react": "^4.3.4",
"@types/node": "^22.15.3",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.3",
"@vitejs/plugin-react": "^4.4.1",
"babel-plugin-istanbul": "^7.0.0",

@@ -126,4 +126,4 @@ "jscodeshift": "^17.3.0",

"mongodb-memory-server-core": "^10.1.4",
"mongoose": "^8.13.2",
"query-string": "^9.1.1",
"mongoose": "^8.14.1",
"query-string": "^9.1.2",
"react": "^19.1.0",

@@ -133,10 +133,10 @@ "react-dom": "^19.1.0",

"rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.86.3",
"sass": "^1.87.0",
"spel2js": "^0.2.8",
"type-fest": "^4.39.1",
"type-fest": "^4.40.1",
"typescript": "^5.8.3",
"vite": "^6.2.5"
"vite": "^6.3.5"
},
"dependencies": {
"@reduxjs/toolkit": "^2.6.1",
"@reduxjs/toolkit": "^2.7.0",
"immer": "^10.1.1",

@@ -147,4 +147,10 @@ "numeric-quantity": "^2.0.1",

"peerDependencies": {
"json-logic-js": "^2",
"react": ">=18"
},
"peerDependenciesMeta": {
"json-logic-js": {
"optional": true
}
},
"browserslist": "> 0.25%, not dead",

@@ -163,3 +169,3 @@ "scripts": {

},
"gitHead": "c4f6f99899c80b0cc57489854f997629d3733fda"
"gitHead": "afe4e06cf1d9eb74b71a91af1fa9fb6bf264855c"
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet