@up-group-ui/react-controls
Version:
Up shared react controls
102 lines (101 loc) • 3.64 kB
TypeScript
import React from 'react';
import { BaseControlProps } from '../_Common/BaseControl/BaseControl';
export declare type ReturnType = 'id' | 'full';
export declare type DisplayMode = 'classic' | 'tags';
export interface UpSelectOption {
id: number;
text: string;
icon?: string;
}
interface DataSource {
id?: string;
text?: string;
endPoint?: string;
query?: string;
queryParameterName?: string;
getExtraParams?: () => any;
delay?: number;
handleResponse?: (response: any) => Array<any>;
fetchData?: (input: string, defaultParameters?: {
[key: string]: string;
}) => Promise<any>;
defaultParameters?: {
[key: string]: string;
};
}
export interface UpSelectProps extends BaseControlProps<any> {
default: any;
multiple?: boolean;
data?: any;
isLoading?: boolean;
placeholder?: string;
loadingPlaceholder?: string;
displayMode?: DisplayMode;
allowClear?: boolean;
allowCreate?: boolean;
minimumInputLength?: number;
dataSource?: DataSource;
filterOptions?: (option: object, filter: string) => boolean;
valueKey?: string;
labelKey?: string;
autoload?: boolean;
noResultsText?: string;
clearAllText?: string;
clearValueText?: string;
addLabelText?: string;
searchPromptText?: string;
promptTextCreator?: (label: string) => string;
isOptionUnique?: (option: object, options: Array<object>, labelKey: string, valueKey: string) => boolean;
onNewOptionClick?: (option: any) => void;
optionRenderer?: React.StatelessComponent<UpSelectOption>;
valueRenderer?: React.StatelessComponent<UpSelectOption>;
dataFor?: string;
returnType?: ReturnType;
autoFocus?: boolean;
backspaceRemovesValue?: boolean;
blurInputOnSelect?: boolean;
captureMenuScroll?: boolean;
closeMenuOnSelect?: boolean | EventListener;
closeMenuOnScroll?: boolean | EventListener;
delimiter?: string;
escapeClearsValue?: boolean;
formatGroupLabel?: (group: any) => React.ReactNode;
formatOptionLabel?: (option: Object, optionContext: FormatOptionContext) => React.ReactNode;
formatMinimumInputLenghMessage?: (minimumInputLength: number) => string;
hideSelectedOptions?: boolean;
id?: string;
inputId?: string;
isOptionDisabled?: (option: Object, options: Array<Object>) => boolean;
isOptionSelected?: (option: Object, options: Array<Object>) => boolean;
isRtl?: boolean;
isSearchable?: boolean;
minMenuHeight?: number;
maxMenuHeight?: number;
menuPlacement?: MenuPlacement;
menuShouldBlockScroll?: boolean;
menuShouldScrollIntoView?: boolean;
onBlur?: (event: Event) => void;
onFocus?: (event: Event) => void;
onKeyDown?: (event: Event) => void;
onMenuScrollToTop?: (event: Event) => void;
onMenuScrollToBottom?: (event: Event) => void;
openMenuOnFocus?: boolean;
openMenuOnClick?: boolean;
allowCreateWhileLoading?: boolean;
formatCreateLabel?: (inputValue: string) => React.ReactNode;
isValidNewOption?: (inputValue: any, selectValue: any, selectOptions: any) => boolean;
getNewOptionData?: (inputValue: any, optionLabel: any) => object;
onCreateOption?: (inputValue: string) => void;
createOptionPosition?: 'first' | 'last';
className?: string;
floatingLabel?: string;
}
export declare type MenuPlacement = 'auto' | 'bottom' | 'top';
export declare type FormatOptionContext = {
context: 'menu' | 'value';
inputValue: string;
selectValue: Object | Array<Object> | null | undefined;
};
export interface UpSelectStyledProps {
}
export {};