cascader.d.ts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. import { IconPropType } from "../../../utils/vue/icon.js";
  2. import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
  3. import { ComponentSize } from "../../../constants/size.js";
  4. import { PopperEffect } from "../../popper/src/popper.js";
  5. import { Placement } from "../../popper/index.js";
  6. import { CascaderNodePathValue, CascaderNodeValue, CascaderOption, CascaderProps, CascaderValue } from "../../cascader-panel/src/types.js";
  7. import Node from "../../cascader-panel/src/node.js";
  8. import { CascaderCommonProps } from "../../cascader-panel/src/config.js";
  9. import { TagProps } from "../../tag/src/tag.js";
  10. import { UseEmptyValuesProps } from "../../../hooks/use-empty-values/index.js";
  11. import * as _$vue from "vue";
  12. import { StyleValue } from "vue";
  13. //#region ../../packages/components/cascader/src/cascader.d.ts
  14. type CascaderClassType = string | Record<string, boolean> | CascaderClassType[];
  15. interface CascaderComponentProps extends CascaderCommonProps, UseEmptyValuesProps {
  16. /**
  17. * @description size of input
  18. */
  19. size?: ComponentSize;
  20. /**
  21. * @description placeholder of input
  22. */
  23. placeholder?: string;
  24. /**
  25. * @description whether Cascader is disabled
  26. */
  27. disabled?: boolean;
  28. /**
  29. * @description whether selected value can be cleared
  30. */
  31. clearable?: boolean;
  32. /**
  33. * @description custom clear icon component
  34. */
  35. clearIcon?: IconPropType;
  36. /**
  37. * @description whether the options can be searched
  38. */
  39. filterable?: boolean;
  40. /**
  41. * @description customize search logic, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits.
  42. */
  43. filterMethod?: (node: Node, keyword: string) => boolean;
  44. /**
  45. * @description option label separator
  46. */
  47. separator?: string;
  48. /**
  49. * @description whether to display all levels of the selected value in the input
  50. */
  51. showAllLevels?: boolean;
  52. /**
  53. * @description whether to collapse tags in multiple selection mode
  54. */
  55. collapseTags?: boolean;
  56. /**
  57. * @description The max tags number to be shown. To use this, collapse-tags must be true
  58. */
  59. maxCollapseTags?: number;
  60. /**
  61. * @description whether show all selected tags when mouse hover text of collapse-tags. To use this, collapse-tags must be true
  62. */
  63. collapseTagsTooltip?: boolean;
  64. /**
  65. * @description The max height of collapse tags tooltip, in pixels. To use this, collapse-tags-tooltip must be true
  66. */
  67. maxCollapseTagsTooltipHeight?: string | number;
  68. /**
  69. * @description debounce delay when typing filter keyword, in milliseconds
  70. */
  71. debounce?: number;
  72. /**
  73. * @description hook function before filtering with the value to be filtered as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, filtering will be aborted
  74. */
  75. beforeFilter?: (value: string) => boolean | Promise<any>;
  76. /**
  77. * @description position of dropdown
  78. */
  79. placement?: Placement;
  80. /**
  81. * @description list of possible positions for dropdown
  82. */
  83. fallbackPlacements?: Placement[];
  84. /**
  85. * @description custom class name for Cascader's dropdown
  86. */
  87. popperClass?: CascaderClassType;
  88. /**
  89. * @description custom style for Cascader's dropdown
  90. */
  91. popperStyle?: StyleValue;
  92. /**
  93. * @description whether cascader popup is teleported
  94. */
  95. teleported?: boolean;
  96. /**
  97. * @description tooltip theme, built-in theme: `dark` / `light`
  98. */
  99. effect?: PopperEffect;
  100. /**
  101. * @description tag type
  102. */
  103. tagType?: TagProps['type'];
  104. /**
  105. * @description tag effect
  106. */
  107. tagEffect?: TagProps['effect'];
  108. /**
  109. * @description whether to trigger form validation
  110. */
  111. validateEvent?: boolean;
  112. /**
  113. * @description when dropdown is inactive and `persistent` is `false`, dropdown will be destroyed
  114. */
  115. persistent?: boolean;
  116. /**
  117. * @description Use `parent` when you want things tidy (like "Entire Collection" instead of listing 100 items)
  118. * Use `child` when every single item matters (like important settings)
  119. */
  120. showCheckedStrategy?: 'parent' | 'child';
  121. /**
  122. * @description whether to check or uncheck node when clicking on the node
  123. */
  124. checkOnClickNode?: boolean;
  125. /**
  126. * @description whether to show the radio or checkbox prefix
  127. */
  128. showPrefix?: boolean;
  129. /**
  130. * @description whether the width of the suggestion panel is the same as the input, if the value is `number`, then the width is fixed
  131. */
  132. fitInputWidth?: boolean | number;
  133. }
  134. /**
  135. * @deprecated Removed after 3.0.0, Use `CascaderComponentProps` instead.
  136. */
  137. declare const cascaderProps: {
  138. emptyValues: ArrayConstructor;
  139. valueOnClear: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>;
  140. size: {
  141. readonly type: _$vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
  142. readonly required: false;
  143. readonly validator: ((val: unknown) => boolean) | undefined;
  144. __epPropKey: true;
  145. };
  146. placeholder: StringConstructor;
  147. disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
  148. clearable: BooleanConstructor;
  149. clearIcon: EpPropFinalized<(new (...args: any[]) => (string | _$vue.Component) & {}) | (() => string | _$vue.Component) | (((new (...args: any[]) => (string | _$vue.Component) & {}) | (() => string | _$vue.Component)) | null)[], unknown, unknown, _$vue.DefineComponent<{}, void, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<{}>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>, boolean>;
  150. filterable: BooleanConstructor;
  151. filterMethod: EpPropFinalized<(new (...args: any[]) => (node: Node, keyword: string) => boolean) | (() => (node: Node, keyword: string) => boolean) | {
  152. (): (node: Node, keyword: string) => boolean;
  153. new (): any;
  154. readonly prototype: any;
  155. } | (((new (...args: any[]) => (node: Node, keyword: string) => boolean) | (() => (node: Node, keyword: string) => boolean) | {
  156. (): (node: Node, keyword: string) => boolean;
  157. new (): any;
  158. readonly prototype: any;
  159. }) | null)[], unknown, unknown, (node: Node, keyword: string) => boolean, boolean>;
  160. separator: EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
  161. showAllLevels: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
  162. collapseTags: BooleanConstructor;
  163. maxCollapseTags: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
  164. collapseTagsTooltip: BooleanConstructor;
  165. maxCollapseTagsTooltipHeight: {
  166. readonly type: _$vue.PropType<EpPropMergeType<(StringConstructor | NumberConstructor)[], unknown, unknown>>;
  167. readonly required: false;
  168. readonly validator: ((val: unknown) => boolean) | undefined;
  169. __epPropKey: true;
  170. };
  171. debounce: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
  172. beforeFilter: EpPropFinalized<(new (...args: any[]) => (value: string) => boolean | Promise<any>) | (() => (value: string) => boolean | Promise<any>) | {
  173. (): (value: string) => boolean | Promise<any>;
  174. new (): any;
  175. readonly prototype: any;
  176. } | (((new (...args: any[]) => (value: string) => boolean | Promise<any>) | (() => (value: string) => boolean | Promise<any>) | {
  177. (): (value: string) => boolean | Promise<any>;
  178. new (): any;
  179. readonly prototype: any;
  180. }) | null)[], unknown, unknown, () => true, boolean>;
  181. placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, string, boolean>;
  182. fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | (((new (...args: any[]) => Placement[]) | (() => Placement[])) | null)[], unknown, unknown, string[], boolean>;
  183. popperClass: {
  184. readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => string | {
  185. [x: string]: boolean;
  186. } | (string | {
  187. [x: string]: boolean;
  188. } | (string | {
  189. [x: string]: boolean;
  190. } | (string | {
  191. [x: string]: boolean;
  192. } | (string | {
  193. [x: string]: boolean;
  194. } | (string | {
  195. [x: string]: boolean;
  196. } | (string | {
  197. [x: string]: boolean;
  198. } | (string | {
  199. [x: string]: boolean;
  200. } | (string | {
  201. [x: string]: boolean;
  202. } | (string | {
  203. [x: string]: boolean;
  204. } | (string | {
  205. [x: string]: boolean;
  206. } | (string | {
  207. [x: string]: boolean;
  208. } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
  209. [x: string]: boolean;
  210. } | (string | {
  211. [x: string]: boolean;
  212. } | (string | {
  213. [x: string]: boolean;
  214. } | (string | {
  215. [x: string]: boolean;
  216. } | (string | {
  217. [x: string]: boolean;
  218. } | (string | {
  219. [x: string]: boolean;
  220. } | (string | {
  221. [x: string]: boolean;
  222. } | (string | {
  223. [x: string]: boolean;
  224. } | (string | {
  225. [x: string]: boolean;
  226. } | (string | {
  227. [x: string]: boolean;
  228. } | (string | {
  229. [x: string]: boolean;
  230. } | (string | {
  231. [x: string]: boolean;
  232. } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (((new (...args: any[]) => string | {
  233. [x: string]: boolean;
  234. } | (string | {
  235. [x: string]: boolean;
  236. } | (string | {
  237. [x: string]: boolean;
  238. } | (string | {
  239. [x: string]: boolean;
  240. } | (string | {
  241. [x: string]: boolean;
  242. } | (string | {
  243. [x: string]: boolean;
  244. } | (string | {
  245. [x: string]: boolean;
  246. } | (string | {
  247. [x: string]: boolean;
  248. } | (string | {
  249. [x: string]: boolean;
  250. } | (string | {
  251. [x: string]: boolean;
  252. } | (string | {
  253. [x: string]: boolean;
  254. } | (string | {
  255. [x: string]: boolean;
  256. } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
  257. [x: string]: boolean;
  258. } | (string | {
  259. [x: string]: boolean;
  260. } | (string | {
  261. [x: string]: boolean;
  262. } | (string | {
  263. [x: string]: boolean;
  264. } | (string | {
  265. [x: string]: boolean;
  266. } | (string | {
  267. [x: string]: boolean;
  268. } | (string | {
  269. [x: string]: boolean;
  270. } | (string | {
  271. [x: string]: boolean;
  272. } | (string | {
  273. [x: string]: boolean;
  274. } | (string | {
  275. [x: string]: boolean;
  276. } | (string | {
  277. [x: string]: boolean;
  278. } | (string | {
  279. [x: string]: boolean;
  280. } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[])) | null)[], unknown, unknown>>;
  281. readonly required: false;
  282. readonly validator: ((val: unknown) => boolean) | undefined;
  283. __epPropKey: true;
  284. };
  285. popperStyle: EpPropFinalized<(new (...args: any[]) => string | false | _$vue.CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | _$vue.CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
  286. teleported: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  287. effect: EpPropFinalized<(new (...args: any[]) => string) | (() => PopperEffect) | (((new (...args: any[]) => string) | (() => PopperEffect)) | null)[], unknown, unknown, string, boolean>;
  288. tagType: {
  289. default: string;
  290. type: _$vue.PropType<EpPropMergeType<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown>>;
  291. required: false;
  292. validator: ((val: unknown) => boolean) | undefined;
  293. __epPropKey: true;
  294. };
  295. tagEffect: {
  296. default: string;
  297. type: _$vue.PropType<EpPropMergeType<StringConstructor, "dark" | "light" | "plain", unknown>>;
  298. required: false;
  299. validator: ((val: unknown) => boolean) | undefined;
  300. __epPropKey: true;
  301. };
  302. validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
  303. persistent: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
  304. showCheckedStrategy: EpPropFinalized<StringConstructor, string, unknown, string, boolean>;
  305. checkOnClickNode: BooleanConstructor;
  306. showPrefix: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
  307. fitInputWidth: EpPropFinalized<(BooleanConstructor | NumberConstructor)[], unknown, unknown, boolean, boolean>;
  308. modelValue: {
  309. readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => string | number | Record<string, any> | CascaderNodePathValue | (CascaderNodeValue | CascaderNodePathValue)[]) | (() => CascaderValue | null) | (((new (...args: any[]) => string | number | Record<string, any> | CascaderNodePathValue | (CascaderNodeValue | CascaderNodePathValue)[]) | (() => CascaderValue | null)) | null)[], unknown, unknown>>;
  310. readonly required: false;
  311. readonly validator: ((val: unknown) => boolean) | undefined;
  312. __epPropKey: true;
  313. };
  314. options: EpPropFinalized<(new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]) | (((new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[])) | null)[], unknown, unknown, () => CascaderOption[], boolean>;
  315. props: EpPropFinalized<(new (...args: any[]) => CascaderProps) | (() => CascaderProps) | (((new (...args: any[]) => CascaderProps) | (() => CascaderProps)) | null)[], unknown, unknown, () => CascaderProps, boolean>;
  316. virtualScroll: BooleanConstructor;
  317. itemSize: EpPropFinalized<NumberConstructor, unknown, unknown, 34, boolean>;
  318. height: EpPropFinalized<NumberConstructor, unknown, unknown, 204, boolean>;
  319. };
  320. declare const cascaderEmits: {
  321. "update:modelValue": (value: CascaderValue | null | undefined) => boolean;
  322. change: (value: CascaderValue | null | undefined) => boolean;
  323. focus: (evt: FocusEvent) => boolean;
  324. blur: (evt: FocusEvent) => boolean;
  325. clear: () => boolean;
  326. visibleChange: (val: boolean) => boolean;
  327. expandChange: (val: CascaderValue) => boolean;
  328. removeTag: (val: Node["valueByOption"]) => boolean;
  329. };
  330. type CascaderEmits = typeof cascaderEmits;
  331. //#endregion
  332. export { CascaderComponentProps, CascaderEmits, cascaderEmits, cascaderProps };