mirror of
https://gitee.com/ant-design-vue/ant-design-vue.git
synced 2024-12-06 05:59:46 +08:00
210 lines
4.5 KiB
TypeScript
210 lines
4.5 KiB
TypeScript
// 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
|
||
|
||
import { AntdComponent } from './component';
|
||
import { VNode } from 'vue';
|
||
|
||
export interface CascaderOptionType {
|
||
value?: string | number;
|
||
label?: any;
|
||
disabled?: boolean;
|
||
children?: any;
|
||
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;
|
||
|
||
/**
|
||
* Set the count of filtered items
|
||
* @type number | false
|
||
*/
|
||
limit?: number | false;
|
||
}
|
||
|
||
export declare class Cascader extends AntdComponent {
|
||
/**
|
||
* 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[];
|
||
}) => VNode;
|
||
|
||
/**
|
||
* 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: object;
|
||
|
||
/**
|
||
* use preset popup align config from builtinPlacements:bottomLeft 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: any;
|
||
|
||
/**
|
||
* selected value
|
||
* @type Array<string | number>
|
||
*/
|
||
value: Array<string | number>;
|
||
|
||
/**
|
||
* remove focus
|
||
*/
|
||
blur(): void;
|
||
|
||
/**
|
||
* get focus
|
||
*/
|
||
focus(): void;
|
||
}
|