@availity/select
Version:
Wrapper for react-select to work with formik
302 lines (268 loc) • 9.12 kB
TypeScript
import { ReactNode } from 'react';
import { GroupBase, Props, StylesConfig, ThemeConfig } from 'react-select';
import { AsyncPaginateProps } from 'react-select-async-paginate';
import { FieldValidator } from 'formik';
import { ButtonProps } from 'reactstrap';
/* eslint-disable @typescript-eslint/no-explicit-any */
interface SelectStyleArgs {
showError?: boolean;
styles?: StylesConfig;
isInline?: boolean;
}
declare const selectStyles: (props: SelectStyleArgs) => {
styles: StylesConfig;
theme: ThemeConfig;
};
type SelectProps<Option, IsMulti extends boolean, Group extends GroupBase<Option> = GroupBase<Option>> = {
allowSelectAll?: boolean;
autofill?: boolean | Record<string, string | ((value: any) => any)>;
cacheUniq?: any | any[];
clearButtonClassName?: string;
clearButtonText?: string;
creatable?: boolean;
clearButtonProps?: ButtonProps;
defaultToFirstOption?: boolean;
defaultToOnlyOption?: boolean;
feedback?: boolean;
helpMessage?: ReactNode;
labelKey?: string;
loadOptions?: AsyncPaginateProps<Option, Group, any, IsMulti>['loadOptions'];
minLength?: number;
maxLength?: number;
name: string;
onChange?: (value: Option) => void;
raw?: boolean;
required?: boolean;
selectRef?: AsyncPaginateProps<Option, Group, any, IsMulti>['selectRef'];
validate?: FieldValidator;
waitUntilFocused?: boolean;
valueKey?: string;
} & Omit<Props<Option, IsMulti, Group>, 'onChange'>;
declare const Select: <Option, IsMulti extends boolean, Group extends GroupBase<Option> = GroupBase<Option>>(
props: SelectProps<Option, IsMulti, Group>
) => JSX.Element;
type SelectFieldProps<Option, IsMulti extends boolean, Group extends GroupBase<Option> = GroupBase<Option>> = {
feedbackClass?: string;
groupClass?: string;
helpId?: string;
label?: ReactNode;
labelClass?: string;
labelHidden?: boolean;
required?: boolean;
isHelpVideoType?: boolean;
} & SelectProps<Option, IsMulti, Group>;
declare const SelectField: <Option, IsMulti extends boolean, Group extends GroupBase<Option> = GroupBase<Option>>(
props: SelectFieldProps<Option, IsMulti, Group>
) => JSX.Element;
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/ban-types */
type ResourceSelectProps<
Option,
IsMulti extends boolean,
Group extends GroupBase<Option> = GroupBase<Option>
> = {
additional?: object;
additionalPostGetArgs?: object;
customerId?: string;
debounceTimeout?: number;
defaultToFirstOption?: boolean;
defaultToOnlyOption?: boolean;
delay?: number;
encodeSearchValue?: boolean;
getResult?: string | ((resource: any, data: any) => any);
graphqlConfig?: { type: string; query: string };
hasMore?:
| boolean
| ((data: any) => boolean)
| ((data: { totalCount: number; limit: number; offset: number }) => boolean);
itemsPerPage?: number;
method?: 'POST' | 'GET';
minCharsToSearch?: number;
onError?: (error: unknown) => void;
onPageChange?: (inputValue: any, page: any) => void;
parameters?: any | ((params: any) => void);
pageAll?: boolean;
pageAllSearchBy?: (previousOptions: Option[], inputValue: string) => Option[] | Promise<Option[]>;
requestConfig?: any;
requiredParams?: any[];
resource: any;
searchTerm?: string;
shouldSearch?: boolean | ((inputValue: string, prevOptions: Option[], additional: any) => boolean);
watchParams?: any[];
} & SelectFieldProps<Option, IsMulti, Group>;
declare const ResourceSelect: (<Option, IsMulti extends boolean, Group extends GroupBase<Option> = GroupBase<Option>>(
props: ResourceSelectProps<Option, IsMulti, Group>
) => JSX.Element) & {
create<Option, IsMulti extends boolean, Group extends GroupBase<Option>>(
defaults: ResourceSelectProps<Option, IsMulti, Group>
): (props: ResourceSelectProps<Option, IsMulti, Group>) => JSX.Element;
};
type PrebuiltResourceSelectProps$2<
Option,
IsMulti extends boolean,
Group extends GroupBase<Option> = GroupBase<Option>
> = Omit<ResourceSelectProps<Option, IsMulti, Group>, 'resource'>;
type Organization = {
id: string;
customerId: string;
name: string;
dbaName: string;
status: string;
statusCode: string;
types: { code: string; name: string }[];
primaryConrollingAuthority: { lastName: string; firstName: string; primaryPhone: string; email: string };
physicalAddress: Address;
mailingAddress: Address;
billingAddress: Address;
regions: { code: string; value: string }[];
npis: { number: string }[];
taxIds: { number: string; type: string }[];
payerAssignedProviderIds: Record<string, { number: string }[]>;
phoneNumber: { areaCode: string; exchange: string; phoneNumber: string };
faxNumber: { areaCode: string; exchange: string; phoneNumber: string };
numberOfLicensedPhysicians: string;
numberOfLicensedClinicians: string;
};
type AvOrganizationSelectProps<
Option,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
> = PrebuiltResourceSelectProps$2<Option, IsMulti, Group> & {
resourceIds?: string | string[] | string[][];
permissionIds?: string | string[] | string[][];
};
declare const AvOrganizationSelect: <
Option = Organization,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: AvOrganizationSelectProps<Option, IsMulti, Group>
) => JSX.Element;
type PrebuiltResourceSelectProps$1<
Option,
IsMulti extends boolean,
Group extends GroupBase<Option> = GroupBase<Option>
> = Omit<ResourceSelectProps<Option, IsMulti, Group>, 'resource'>;
type Region = {
id: string;
value: string;
};
declare const AvRegionSelect: <
Option = Region,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: PrebuiltResourceSelectProps$1<Option, IsMulti, Group> & { defaultToCurrentRegion?: boolean }
) => JSX.Element;
type PrebuiltResourceSelectProps<
Option,
IsMulti extends boolean,
Group extends GroupBase<Option> = GroupBase<Option>
> = Omit<ResourceSelectProps<Option, IsMulti, Group>, 'resource'>;
type Code = {
code: string;
value: string;
};
declare const AvCodeSelect: <
Option = Code,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: PrebuiltResourceSelectProps<Option, IsMulti, Group>
) => JSX.Element;
type NavOption = {
id: string;
name: string;
shortName: string;
description: string;
type: string;
activeDate: string;
hasAccess?: boolean;
children: NavOption[];
};
declare const AvNavigationSelect: <
Option = NavOption,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: PrebuiltResourceSelectProps<Option, IsMulti, Group>
) => JSX.Element;
type Payer = {
id: string;
payerId: string;
payerName: string;
};
declare const AvPayerSelect: <
Option = Payer,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: PrebuiltResourceSelectProps<Option, IsMulti, Group> & { customerId: string }
) => JSX.Element;
type Permission = {
id: string;
description: string;
organizations: {
id: string;
customerId: string;
name: string;
resources: {
id: string;
}[];
}[];
};
declare const AvPermissionSelect: <
Option = Permission,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: PrebuiltResourceSelectProps<Option, IsMulti, Group>
) => JSX.Element;
type Provider = {
id: string;
businessNAme: string;
uiDisplayName: string;
atypical: boolean;
npi: string;
customerIds: string[];
roles: { code: string; value: string }[];
primaryPhone: { internationalCellularCode: string; areaCode: string; phoneNumber: string };
primaryFax: { internationalCellularCode: string; areaCode: string; phoneNumber: string };
primaryAddress: {
line1: string;
line2: string;
city: string;
state: string;
stateCode: string;
zip: { code: string; addon: string };
};
};
declare const AvProviderSelect: <
Option = Provider,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: PrebuiltResourceSelectProps<Option, IsMulti, Group> & { customerId: string }
) => JSX.Element;
type User = {
id: string;
userId: string;
akaname: string;
lastName: string;
firstName: string;
email: string;
userValidated: boolean;
userHasSecurityException: boolean;
userLatestVerifyStatusCode: string;
currentRegion: string;
createDate: string;
lastUpdateDate: string;
};
declare const AvUserSelect: <
Option = User,
IsMulti extends boolean = boolean,
Group extends GroupBase<Option> = GroupBase<Option>
>(
props: PrebuiltResourceSelectProps<Option, IsMulti, Group>
) => JSX.Element;
export { AvCodeSelect, AvNavigationSelect, AvOrganizationSelect, AvPayerSelect, AvPermissionSelect, AvProviderSelect, AvRegionSelect, AvUserSelect, ResourceSelect, type ResourceSelectProps, SelectField, type SelectFieldProps, type SelectProps, type SelectStyleArgs, Select as default, selectStyles };