react-querybuilder
Version:
React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts
52 lines (51 loc) • 2.07 kB
TypeScript
import type { MouseEvent } from "react";
import * as React from "react";
import type { ActionElementEventHandler, FlexibleOptionList, FullField, FullOperator, InputType, Option, OptionList, RuleProps, RuleType, ValidationResult, ValueChangeEventHandler, ValueEditorType, ValueSourceOptions, ValueSources } from "../types";
/**
* Default component to display {@link RuleType} objects. This is
* actually a small wrapper around {@link RuleComponents}.
*/
export declare const Rule: React.MemoExoticComponent<(r: RuleProps) => React.JSX.Element>;
/**
* Renders a `React.Fragment` containing an array of form controls for managing
* a {@link RuleType}.
*/
export declare const RuleComponents: React.MemoExoticComponent<(r: RuleProps & UseRule) => React.JSX.Element>;
export type UseRule = RuleProps & {
classNames: {
shiftActions: string
dragHandle: string
fields: string
operators: string
valueSource: string
value: string
cloneRule: string
lockRule: 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
};
/**
* Prepares all values and methods used by the {@link Rule} component.
*/
export declare const useRule: (props: RuleProps) => UseRule;