UNPKG

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
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>;