react-querybuilder
Version:
React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts
46 lines (45 loc) • 2.44 kB
text/typescript
import type { UseMergedContextReturn } from "../hooks/useMergedContext.mjs";
import type { BaseOption, FullCombinator, FullField, FullOperator, FullOption, FullOptionList, FullOptionMap, GetOptionIdentifierType, GetRuleTypeFromGroupWithFieldAndOperator, MatchModeOptions, Option, OptionGroup, QueryBuilderProps, RemoveNullability, RuleGroupTypeAny, RuleType, ValueSourceFullOptions, WithUnknownIndex } from "../types/index.mjs";
export type UseQueryBuilderSetup<
RG extends RuleGroupTypeAny,
F extends FullField,
O extends FullOperator,
C extends FullCombinator
> = {
qbId: string;
rqbContext: UseMergedContextReturn<F, GetOptionIdentifierType<O>, true>;
fields: FullOptionList<F>;
fieldMap: FullOptionMap<FullField<string, string, string, FullOption, FullOption>, GetOptionIdentifierType<F>>;
combinators: WithUnknownIndex<BaseOption<string> & FullOption>[] | OptionGroup<WithUnknownIndex<BaseOption<string> & FullOption>>[];
getRuleDefaultValue: <RT extends RuleType = GetRuleTypeFromGroupWithFieldAndOperator<RG, F, O>>(r: RT) => any;
createRule: () => GetRuleTypeFromGroupWithFieldAndOperator<RG, F, O>;
createRuleGroup: (independentCombinators?: boolean) => RG;
} & RemoveNullability<{
getInputTypeMain: QueryBuilderProps<RG, F, O, C>["getInputType"];
getRuleDefaultOperator: QueryBuilderProps<RG, F, O, C>["getDefaultOperator"];
getValueEditorTypeMain: QueryBuilderProps<RG, F, O, C>["getValueEditorType"];
}> & {
getValueSourcesMain: (field: GetOptionIdentifierType<F>, operator: GetOptionIdentifierType<O>, misc: {
fieldData: F;
}) => ValueSourceFullOptions;
getSubQueryBuilderPropsMain: (field: GetOptionIdentifierType<F>, misc: {
fieldData: F;
}) => Record<string, unknown>;
getMatchModesMain: (field: GetOptionIdentifierType<F>, misc?: {
fieldData: F;
}) => MatchModeOptions;
getOperatorsMain: (...p: Parameters<NonNullable<QueryBuilderProps<RG, F, O, C>["getOperators"]>>) => FullOptionList<O>;
getValuesMain: (...p: Parameters<NonNullable<QueryBuilderProps<RG, F, O, C>["getValues"]>>) => FullOptionList<Option>;
};
/**
* Massages the props as necessary and prepares the basic update/generate methods
* for use by the {@link QueryBuilder} component.
*
* @group Hooks
*/
export declare const useQueryBuilderSetup: <
RG extends RuleGroupTypeAny,
F extends FullField,
O extends FullOperator,
C extends FullCombinator
>(props: QueryBuilderProps<RG, F, O, C>) => UseQueryBuilderSetup<RG, F, O, C>;