UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

50 lines (49 loc) 2.05 kB
import { type CountryType, type CountryLang, type CountryISO } from '../../constants/countries'; import { FieldPropsWithExtraValue } from '../../types'; import { FieldBlockWidth } from '../../FieldBlock'; import { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete'; export type CountryFilterSet = 'Scandinavia' | 'Nordic' | 'Europe' | 'Prioritized'; export type { CountryType }; export type Props = FieldPropsWithExtraValue<CountryISO, CountryType, undefined | string> & { /** * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`. * Defaults to `Prioritized`. */ countries?: CountryFilterSet; /** * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country. */ filterCountries?: (country: CountryType) => boolean; /** * For internal testing purposes */ noAnimation?: boolean; /** * The width of the component. */ width?: FieldBlockWidth; /** * The size of the component. */ size?: AutocompleteAllProps['size']; }; declare function SelectCountry(props: Props): import("react/jsx-runtime").JSX.Element; declare namespace SelectCountry { var _supportsSpacingProps: boolean; } type GetCountryData = { lang?: CountryLang; filter?: Props['filterCountries']; sort?: Extract<CountryFilterSet, 'Prioritized'>; makeObject?: (country: CountryType, lang: string) => { selectedKey: string; content: string; }; }; export declare function getCountryData({ lang, filter, sort, makeObject, }?: GetCountryData): { selectedKey: string; content: string; }[]; export declare function countryFilter(country: CountryType, filterCountries: (country: CountryType) => boolean, ccFilter: CountryFilterSet): boolean; export declare function makeCountryFilterSet(ccFilter: CountryFilterSet): (country: CountryType) => boolean; export default SelectCountry;