ant-design-vue/types/cascader.d.ts

212 lines
4.9 KiB
TypeScript
Raw Normal View History

// Project: https://github.com/vueComponent/ant-design-vue
// Definitions by: akki-jat <https://github.com/akki-jat>
// Definitions: https://github.com/vueComponent/ant-design-vue/types
2020-08-31 14:59:56 +08:00
import { AntdComponent, AntdProps } from './component';
2020-08-19 22:59:41 +08:00
import { VNode, VNodeChild, CSSProperties } from 'vue';
export interface CascaderOptionType {
2019-03-18 10:35:24 +08:00
value?: string | number;
label?: any;
disabled?: boolean;
children?: any;
2019-03-18 10:35:24 +08:00
key?: string | number;
}
export interface ShowSearchType {
/**
* The function will receive two arguments, inputValue and option,
* if the function returns true, the option will be included in the filtered set; Otherwise, it will be excluded.
* @type Function
*/
filter?: (inputValue: any, path: any) => boolean;
/**
* Used to render filtered options, you can use slot="showSearchRender" and slot-scope="{inputValue, path}"
* @type Function
*/
render?: ({ inputValue, path }: { inputValue: any; path: any }) => VNode;
/**
* Used to sort filtered options.
* @type Function
*/
sort?: (a: any, b: any, inputValue: any) => any;
/**
* Whether the width of result list equals to input's
* @type boolean
*/
matchInputWidth?: boolean;
2019-01-03 20:51:56 +08:00
/**
* Set the count of filtered items
2020-08-19 22:59:41 +08:00
* @default 50
2019-01-03 20:51:56 +08:00
* @type number | false
*/
limit?: number | false;
}
export declare class Cascader extends AntdComponent {
2020-08-31 14:59:56 +08:00
$props: AntdProps & {
2020-08-19 22:59:41 +08:00
/**
* whether allow clear
* @default true
* @type boolean
*/
allowClear?: boolean;
/**
* get focus when component mounted
* @default false
* @type boolean
*/
autofocus?: boolean;
/**
* change value on each selection if set to true.
* @default false
* @type boolean
*/
changeOnSelect?: boolean;
/**
* initial selected value
* @type Array<string | number>
*/
defaultValue?: Array<string | number>;
/**
* Whether disabled select
* @default false
* @type boolean
*/
disabled?: boolean;
/**
* render function of displaying selected options, you can use slot="displayRender" and slot-scope="{labels, selectedOptions}"
* @default labels => labels.join(' / ')
* @type Function
*/
displayRender?: ({
labels,
selectedOptions,
}: {
labels: string[];
selectedOptions: CascaderOptionType[];
}) => VNodeChild;
/**
* expand current item when click or hover, one of 'click' 'hover'
* @default 'click'
* @type string
*/
expandTrigger?: 'click' | 'hover';
/**
* custom field name for label and value and children
* @default { label: 'label', value: 'value', children: 'children' }
* @type { value: string; label: string; children?: string; }
*/
fieldNames?: {
value: string;
label: string;
children?: string;
};
/**
* Parent Node which the selector should be rendered to. Default to body.
* When position issues happen, try to modify it into scrollable content and position it relative.
* @default () => document.body
* @type Function
*/
getPopupContainer?: (triggerNode: any) => HTMLElement;
/**
* To load option lazily, and it cannot work with showSearch
* @type Function
*/
loadData?: (selectedOptions: CascaderOptionType[]) => void;
/**
* Specify content to show when no result matches.
* @default 'Not Found'
* @type string
*/
notFoundContent?: string;
/**
* data options of cascade
* @type CascaderOptionType
*/
options?: CascaderOptionType;
/**
* input placeholder
* @default 'Please select'
* @type string
*/
placeholder?: string;
/**
* additional className of popup overlay
* @type string
*/
popupClassName?: string;
/**
* additional style of popup overlay
* @type object
*/
popupStyle?: CSSProperties;
/**
* use preset popup align config from builtinPlacementsbottomLeft bottomRight topLeft topRight
* @default 'bottomLeft'
* @type string
*/
popupPlacement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
/**
* set visible of cascader popup
* @type boolean
*/
popupVisible?: boolean;
/**
* Whether show search input in single mode.
* @default false
* @type boolean | ShowSearchType
*/
showSearch?: boolean | ShowSearchType;
/**
* input size, one of large default small
* @default 'default'
* @type string
*/
size?: 'large' | 'default' | 'small';
/**
* The custom suffix icon
* @type String | VNode | slot
*/
suffixIcon?: VNodeChild | JSX.Element;
/**
* selected value
* @type Array<string | number>
*/
value?: Array<string | number>;
2020-08-30 22:59:47 +08:00
};
/**
* remove focus
*/
blur(): void;
/**
* get focus
*/
focus(): void;
}