BaseSelect.d.ts 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584
  1. import type { Key, VueNode } from '../_util/type';
  2. import type { KeyboardEventHandler } from '../_util/EventInterface';
  3. import type { ScrollConfig, ScrollTo } from '../vc-virtual-list/List';
  4. import type { CSSProperties, ExtractPropTypes, PropType, VNode } from 'vue';
  5. import type { BaseOptionType } from './Select';
  6. import type { AlignType } from '../vc-trigger/interface';
  7. export declare type RenderNode = VueNode | ((props: any) => VueNode);
  8. export declare type RenderDOMFunc = (props: any) => HTMLElement;
  9. export declare type Mode = 'multiple' | 'tags' | 'combobox';
  10. export declare type Placement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
  11. export declare type RawValueType = string | number;
  12. export interface RefOptionListProps {
  13. onKeydown: KeyboardEventHandler;
  14. onKeyup: KeyboardEventHandler;
  15. scrollTo?: (index: number | ScrollConfig) => void;
  16. }
  17. export declare type CustomTagProps = {
  18. label: any;
  19. value: any;
  20. disabled: boolean;
  21. onClose: (event?: MouseEvent) => void;
  22. closable: boolean;
  23. option: BaseOptionType;
  24. };
  25. export interface DisplayValueType {
  26. key?: Key;
  27. value?: RawValueType;
  28. label?: any;
  29. disabled?: boolean;
  30. option?: BaseOptionType;
  31. }
  32. export declare type BaseSelectRef = {
  33. focus: () => void;
  34. blur: () => void;
  35. scrollTo: ScrollTo;
  36. };
  37. declare const baseSelectPrivateProps: () => {
  38. prefixCls: StringConstructor;
  39. id: StringConstructor;
  40. omitDomProps: PropType<string[]>;
  41. displayValues: PropType<DisplayValueType[]>;
  42. onDisplayValuesChange: PropType<(values: DisplayValueType[], info: {
  43. type: 'add' | 'remove' | 'clear';
  44. values: DisplayValueType[];
  45. }) => void>;
  46. /** Current dropdown list active item string value */
  47. activeValue: StringConstructor;
  48. /** Link search input with target element */
  49. activeDescendantId: StringConstructor;
  50. onActiveValueChange: PropType<(value: string | null) => void>;
  51. searchValue: StringConstructor;
  52. /** Trigger onSearch, return false to prevent trigger open event */
  53. onSearch: PropType<(searchValue: string, info: {
  54. source: 'typing' | 'effect' | 'submit' | 'blur';
  55. }) => void>;
  56. /** Trigger when search text match the `tokenSeparators`. Will provide split content */
  57. onSearchSplit: PropType<(words: string[]) => void>;
  58. maxLength: NumberConstructor;
  59. OptionList: import("vue-types").VueTypeValidableDef<any>;
  60. /** Tell if provided `options` is empty */
  61. emptyOptions: BooleanConstructor;
  62. };
  63. export declare type DropdownObject = {
  64. menuNode?: VueNode;
  65. props?: Record<string, any>;
  66. };
  67. export declare type DropdownRender = (opt?: DropdownObject) => VueNode;
  68. export declare const baseSelectPropsWithoutPrivate: () => {
  69. showSearch: {
  70. type: BooleanConstructor;
  71. default: any;
  72. };
  73. tagRender: {
  74. type: PropType<(props: CustomTagProps) => any>;
  75. };
  76. optionLabelRender: {
  77. type: PropType<(option: Record<string, any>) => any>;
  78. };
  79. direction: {
  80. type: PropType<"ltr" | "rtl">;
  81. };
  82. tabindex: NumberConstructor;
  83. autofocus: BooleanConstructor;
  84. notFoundContent: import("vue-types").VueTypeValidableDef<any>;
  85. placeholder: import("vue-types").VueTypeValidableDef<any>;
  86. onClear: PropType<() => void>;
  87. choiceTransitionName: StringConstructor;
  88. mode: PropType<Mode>;
  89. disabled: {
  90. type: BooleanConstructor;
  91. default: any;
  92. };
  93. loading: {
  94. type: BooleanConstructor;
  95. default: any;
  96. };
  97. open: {
  98. type: BooleanConstructor;
  99. default: any;
  100. };
  101. defaultOpen: {
  102. type: BooleanConstructor;
  103. default: any;
  104. };
  105. onDropdownVisibleChange: {
  106. type: PropType<(open: boolean) => void>;
  107. };
  108. /** @private Internal usage. Do not use in your production. */
  109. getInputElement: {
  110. type: PropType<() => any>;
  111. };
  112. /** @private Internal usage. Do not use in your production. */
  113. getRawInputElement: {
  114. type: PropType<() => any>;
  115. };
  116. maxTagTextLength: NumberConstructor;
  117. maxTagCount: {
  118. type: PropType<number | "responsive">;
  119. };
  120. maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
  121. tokenSeparators: {
  122. type: PropType<string[]>;
  123. };
  124. allowClear: {
  125. type: BooleanConstructor;
  126. default: any;
  127. };
  128. showArrow: {
  129. type: BooleanConstructor;
  130. default: any;
  131. };
  132. inputIcon: import("vue-types").VueTypeValidableDef<any>;
  133. /** Clear all icon */
  134. clearIcon: import("vue-types").VueTypeValidableDef<any>;
  135. /** Selector remove icon */
  136. removeIcon: import("vue-types").VueTypeValidableDef<any>;
  137. animation: StringConstructor;
  138. transitionName: StringConstructor;
  139. dropdownStyle: {
  140. type: PropType<CSSProperties>;
  141. };
  142. dropdownClassName: StringConstructor;
  143. dropdownMatchSelectWidth: {
  144. type: PropType<number | boolean>;
  145. default: any;
  146. };
  147. dropdownRender: {
  148. type: PropType<DropdownRender>;
  149. };
  150. dropdownAlign: PropType<AlignType>;
  151. placement: {
  152. type: PropType<Placement>;
  153. };
  154. getPopupContainer: {
  155. type: PropType<RenderDOMFunc>;
  156. };
  157. showAction: {
  158. type: PropType<("click" | "focus")[]>;
  159. };
  160. onBlur: {
  161. type: PropType<(e: FocusEvent) => void>;
  162. };
  163. onFocus: {
  164. type: PropType<(e: FocusEvent) => void>;
  165. };
  166. onKeyup: PropType<(e: KeyboardEvent) => void>;
  167. onKeydown: PropType<(e: KeyboardEvent) => void>;
  168. onMousedown: PropType<(e: MouseEvent) => void>;
  169. onPopupScroll: PropType<(e: UIEvent) => void>;
  170. onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
  171. onMouseenter: PropType<(e: MouseEvent) => void>;
  172. onMouseleave: PropType<(e: MouseEvent) => void>;
  173. onClick: PropType<(e: MouseEvent) => void>;
  174. };
  175. declare const baseSelectProps: () => {
  176. showSearch: {
  177. type: BooleanConstructor;
  178. default: any;
  179. };
  180. tagRender: {
  181. type: PropType<(props: CustomTagProps) => any>;
  182. };
  183. optionLabelRender: {
  184. type: PropType<(option: Record<string, any>) => any>;
  185. };
  186. direction: {
  187. type: PropType<"ltr" | "rtl">;
  188. };
  189. tabindex: NumberConstructor;
  190. autofocus: BooleanConstructor;
  191. notFoundContent: import("vue-types").VueTypeValidableDef<any>;
  192. placeholder: import("vue-types").VueTypeValidableDef<any>;
  193. onClear: PropType<() => void>;
  194. choiceTransitionName: StringConstructor;
  195. mode: PropType<Mode>;
  196. disabled: {
  197. type: BooleanConstructor;
  198. default: any;
  199. };
  200. loading: {
  201. type: BooleanConstructor;
  202. default: any;
  203. };
  204. open: {
  205. type: BooleanConstructor;
  206. default: any;
  207. };
  208. defaultOpen: {
  209. type: BooleanConstructor;
  210. default: any;
  211. };
  212. onDropdownVisibleChange: {
  213. type: PropType<(open: boolean) => void>;
  214. };
  215. /** @private Internal usage. Do not use in your production. */
  216. getInputElement: {
  217. type: PropType<() => any>;
  218. };
  219. /** @private Internal usage. Do not use in your production. */
  220. getRawInputElement: {
  221. type: PropType<() => any>;
  222. };
  223. maxTagTextLength: NumberConstructor;
  224. maxTagCount: {
  225. type: PropType<number | "responsive">;
  226. };
  227. maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
  228. tokenSeparators: {
  229. type: PropType<string[]>;
  230. };
  231. allowClear: {
  232. type: BooleanConstructor;
  233. default: any;
  234. };
  235. showArrow: {
  236. type: BooleanConstructor;
  237. default: any;
  238. };
  239. inputIcon: import("vue-types").VueTypeValidableDef<any>;
  240. /** Clear all icon */
  241. clearIcon: import("vue-types").VueTypeValidableDef<any>;
  242. /** Selector remove icon */
  243. removeIcon: import("vue-types").VueTypeValidableDef<any>;
  244. animation: StringConstructor;
  245. transitionName: StringConstructor;
  246. dropdownStyle: {
  247. type: PropType<CSSProperties>;
  248. };
  249. dropdownClassName: StringConstructor;
  250. dropdownMatchSelectWidth: {
  251. type: PropType<number | boolean>;
  252. default: any;
  253. };
  254. dropdownRender: {
  255. type: PropType<DropdownRender>;
  256. };
  257. dropdownAlign: PropType<AlignType>;
  258. placement: {
  259. type: PropType<Placement>;
  260. };
  261. getPopupContainer: {
  262. type: PropType<RenderDOMFunc>;
  263. };
  264. showAction: {
  265. type: PropType<("click" | "focus")[]>;
  266. };
  267. onBlur: {
  268. type: PropType<(e: FocusEvent) => void>;
  269. };
  270. onFocus: {
  271. type: PropType<(e: FocusEvent) => void>;
  272. };
  273. onKeyup: PropType<(e: KeyboardEvent) => void>;
  274. onKeydown: PropType<(e: KeyboardEvent) => void>;
  275. onMousedown: PropType<(e: MouseEvent) => void>;
  276. onPopupScroll: PropType<(e: UIEvent) => void>;
  277. onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
  278. onMouseenter: PropType<(e: MouseEvent) => void>;
  279. onMouseleave: PropType<(e: MouseEvent) => void>;
  280. onClick: PropType<(e: MouseEvent) => void>;
  281. prefixCls: StringConstructor;
  282. id: StringConstructor;
  283. omitDomProps: PropType<string[]>;
  284. displayValues: PropType<DisplayValueType[]>;
  285. onDisplayValuesChange: PropType<(values: DisplayValueType[], info: {
  286. type: 'add' | 'remove' | 'clear';
  287. values: DisplayValueType[];
  288. }) => void>;
  289. /** Current dropdown list active item string value */
  290. activeValue: StringConstructor;
  291. /** Link search input with target element */
  292. activeDescendantId: StringConstructor;
  293. onActiveValueChange: PropType<(value: string | null) => void>;
  294. searchValue: StringConstructor;
  295. /** Trigger onSearch, return false to prevent trigger open event */
  296. onSearch: PropType<(searchValue: string, info: {
  297. source: 'typing' | 'effect' | 'submit' | 'blur';
  298. }) => void>;
  299. /** Trigger when search text match the `tokenSeparators`. Will provide split content */
  300. onSearchSplit: PropType<(words: string[]) => void>;
  301. maxLength: NumberConstructor;
  302. OptionList: import("vue-types").VueTypeValidableDef<any>;
  303. /** Tell if provided `options` is empty */
  304. emptyOptions: BooleanConstructor;
  305. };
  306. export declare type BaseSelectPrivateProps = Partial<ExtractPropTypes<ReturnType<typeof baseSelectPrivateProps>>>;
  307. export declare type BaseSelectProps = Partial<ExtractPropTypes<ReturnType<typeof baseSelectProps>>>;
  308. export declare type BaseSelectPropsWithoutPrivate = Omit<BaseSelectProps, keyof BaseSelectPrivateProps>;
  309. export declare function isMultiple(mode: Mode): boolean;
  310. declare const _default: import("vue").DefineComponent<{
  311. showSearch: {
  312. type: BooleanConstructor;
  313. default: any;
  314. };
  315. tagRender: {
  316. type: PropType<(props: CustomTagProps) => any>;
  317. };
  318. optionLabelRender: {
  319. type: PropType<(option: Record<string, any>) => any>;
  320. };
  321. direction: {
  322. type: PropType<"ltr" | "rtl">;
  323. };
  324. tabindex: NumberConstructor;
  325. autofocus: BooleanConstructor;
  326. notFoundContent: import("vue-types").VueTypeValidableDef<any>;
  327. placeholder: import("vue-types").VueTypeValidableDef<any>;
  328. onClear: PropType<() => void>;
  329. choiceTransitionName: StringConstructor;
  330. mode: PropType<Mode>;
  331. disabled: {
  332. type: BooleanConstructor;
  333. default: any;
  334. };
  335. loading: {
  336. type: BooleanConstructor;
  337. default: any;
  338. };
  339. open: {
  340. type: BooleanConstructor;
  341. default: any;
  342. };
  343. defaultOpen: {
  344. type: BooleanConstructor;
  345. default: any;
  346. };
  347. onDropdownVisibleChange: {
  348. type: PropType<(open: boolean) => void>;
  349. };
  350. /** @private Internal usage. Do not use in your production. */
  351. getInputElement: {
  352. type: PropType<() => any>;
  353. };
  354. /** @private Internal usage. Do not use in your production. */
  355. getRawInputElement: {
  356. type: PropType<() => any>;
  357. };
  358. maxTagTextLength: NumberConstructor;
  359. maxTagCount: {
  360. type: PropType<number | "responsive">;
  361. };
  362. maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
  363. tokenSeparators: {
  364. type: PropType<string[]>;
  365. };
  366. allowClear: {
  367. type: BooleanConstructor;
  368. default: any;
  369. };
  370. showArrow: {
  371. type: BooleanConstructor;
  372. default: any;
  373. };
  374. inputIcon: import("vue-types").VueTypeValidableDef<any>;
  375. /** Clear all icon */
  376. clearIcon: import("vue-types").VueTypeValidableDef<any>;
  377. /** Selector remove icon */
  378. removeIcon: import("vue-types").VueTypeValidableDef<any>;
  379. animation: StringConstructor;
  380. transitionName: StringConstructor;
  381. dropdownStyle: {
  382. type: PropType<CSSProperties>;
  383. };
  384. dropdownClassName: StringConstructor;
  385. dropdownMatchSelectWidth: {
  386. type: PropType<number | boolean>;
  387. default: any;
  388. };
  389. dropdownRender: {
  390. type: PropType<DropdownRender>;
  391. };
  392. dropdownAlign: PropType<AlignType>;
  393. placement: {
  394. type: PropType<Placement>;
  395. };
  396. getPopupContainer: {
  397. type: PropType<RenderDOMFunc>;
  398. };
  399. showAction: {
  400. type: PropType<("click" | "focus")[]>;
  401. };
  402. onBlur: {
  403. type: PropType<(e: FocusEvent) => void>;
  404. };
  405. onFocus: {
  406. type: PropType<(e: FocusEvent) => void>;
  407. };
  408. onKeyup: PropType<(e: KeyboardEvent) => void>;
  409. onKeydown: PropType<(e: KeyboardEvent) => void>;
  410. onMousedown: PropType<(e: MouseEvent) => void>;
  411. onPopupScroll: PropType<(e: UIEvent) => void>;
  412. onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
  413. onMouseenter: PropType<(e: MouseEvent) => void>;
  414. onMouseleave: PropType<(e: MouseEvent) => void>;
  415. onClick: PropType<(e: MouseEvent) => void>;
  416. prefixCls: StringConstructor;
  417. id: StringConstructor;
  418. omitDomProps: PropType<string[]>;
  419. displayValues: PropType<DisplayValueType[]>;
  420. onDisplayValuesChange: PropType<(values: DisplayValueType[], info: {
  421. type: "clear" | "add" | "remove";
  422. values: DisplayValueType[];
  423. }) => void>;
  424. /** Current dropdown list active item string value */
  425. activeValue: StringConstructor;
  426. /** Link search input with target element */
  427. activeDescendantId: StringConstructor;
  428. onActiveValueChange: PropType<(value: string) => void>;
  429. searchValue: StringConstructor;
  430. /** Trigger onSearch, return false to prevent trigger open event */
  431. onSearch: PropType<(searchValue: string, info: {
  432. source: "submit" | "blur" | "typing" | "effect";
  433. }) => void>;
  434. /** Trigger when search text match the `tokenSeparators`. Will provide split content */
  435. onSearchSplit: PropType<(words: string[]) => void>;
  436. maxLength: NumberConstructor;
  437. OptionList: import("vue-types").VueTypeValidableDef<any>;
  438. /** Tell if provided `options` is empty */
  439. emptyOptions: BooleanConstructor;
  440. }, () => JSX.Element | VNode<import("vue").RendererNode, import("vue").RendererElement, {
  441. [key: string]: any;
  442. }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
  443. showSearch: {
  444. type: BooleanConstructor;
  445. default: any;
  446. };
  447. tagRender: {
  448. type: PropType<(props: CustomTagProps) => any>;
  449. };
  450. optionLabelRender: {
  451. type: PropType<(option: Record<string, any>) => any>;
  452. };
  453. direction: {
  454. type: PropType<"ltr" | "rtl">;
  455. };
  456. tabindex: NumberConstructor;
  457. autofocus: BooleanConstructor;
  458. notFoundContent: import("vue-types").VueTypeValidableDef<any>;
  459. placeholder: import("vue-types").VueTypeValidableDef<any>;
  460. onClear: PropType<() => void>;
  461. choiceTransitionName: StringConstructor;
  462. mode: PropType<Mode>;
  463. disabled: {
  464. type: BooleanConstructor;
  465. default: any;
  466. };
  467. loading: {
  468. type: BooleanConstructor;
  469. default: any;
  470. };
  471. open: {
  472. type: BooleanConstructor;
  473. default: any;
  474. };
  475. defaultOpen: {
  476. type: BooleanConstructor;
  477. default: any;
  478. };
  479. onDropdownVisibleChange: {
  480. type: PropType<(open: boolean) => void>;
  481. };
  482. /** @private Internal usage. Do not use in your production. */
  483. getInputElement: {
  484. type: PropType<() => any>;
  485. };
  486. /** @private Internal usage. Do not use in your production. */
  487. getRawInputElement: {
  488. type: PropType<() => any>;
  489. };
  490. maxTagTextLength: NumberConstructor;
  491. maxTagCount: {
  492. type: PropType<number | "responsive">;
  493. };
  494. maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
  495. tokenSeparators: {
  496. type: PropType<string[]>;
  497. };
  498. allowClear: {
  499. type: BooleanConstructor;
  500. default: any;
  501. };
  502. showArrow: {
  503. type: BooleanConstructor;
  504. default: any;
  505. };
  506. inputIcon: import("vue-types").VueTypeValidableDef<any>;
  507. /** Clear all icon */
  508. clearIcon: import("vue-types").VueTypeValidableDef<any>;
  509. /** Selector remove icon */
  510. removeIcon: import("vue-types").VueTypeValidableDef<any>;
  511. animation: StringConstructor;
  512. transitionName: StringConstructor;
  513. dropdownStyle: {
  514. type: PropType<CSSProperties>;
  515. };
  516. dropdownClassName: StringConstructor;
  517. dropdownMatchSelectWidth: {
  518. type: PropType<number | boolean>;
  519. default: any;
  520. };
  521. dropdownRender: {
  522. type: PropType<DropdownRender>;
  523. };
  524. dropdownAlign: PropType<AlignType>;
  525. placement: {
  526. type: PropType<Placement>;
  527. };
  528. getPopupContainer: {
  529. type: PropType<RenderDOMFunc>;
  530. };
  531. showAction: {
  532. type: PropType<("click" | "focus")[]>;
  533. };
  534. onBlur: {
  535. type: PropType<(e: FocusEvent) => void>;
  536. };
  537. onFocus: {
  538. type: PropType<(e: FocusEvent) => void>;
  539. };
  540. onKeyup: PropType<(e: KeyboardEvent) => void>;
  541. onKeydown: PropType<(e: KeyboardEvent) => void>;
  542. onMousedown: PropType<(e: MouseEvent) => void>;
  543. onPopupScroll: PropType<(e: UIEvent) => void>;
  544. onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
  545. onMouseenter: PropType<(e: MouseEvent) => void>;
  546. onMouseleave: PropType<(e: MouseEvent) => void>;
  547. onClick: PropType<(e: MouseEvent) => void>;
  548. prefixCls: StringConstructor;
  549. id: StringConstructor;
  550. omitDomProps: PropType<string[]>;
  551. displayValues: PropType<DisplayValueType[]>;
  552. onDisplayValuesChange: PropType<(values: DisplayValueType[], info: {
  553. type: "clear" | "add" | "remove";
  554. values: DisplayValueType[];
  555. }) => void>;
  556. /** Current dropdown list active item string value */
  557. activeValue: StringConstructor;
  558. /** Link search input with target element */
  559. activeDescendantId: StringConstructor;
  560. onActiveValueChange: PropType<(value: string) => void>;
  561. searchValue: StringConstructor;
  562. /** Trigger onSearch, return false to prevent trigger open event */
  563. onSearch: PropType<(searchValue: string, info: {
  564. source: "submit" | "blur" | "typing" | "effect";
  565. }) => void>;
  566. /** Trigger when search text match the `tokenSeparators`. Will provide split content */
  567. onSearchSplit: PropType<(words: string[]) => void>;
  568. maxLength: NumberConstructor;
  569. OptionList: import("vue-types").VueTypeValidableDef<any>;
  570. /** Tell if provided `options` is empty */
  571. emptyOptions: BooleanConstructor;
  572. }>>, {
  573. open: boolean;
  574. disabled: boolean;
  575. dropdownMatchSelectWidth: number | boolean;
  576. autofocus: boolean;
  577. loading: boolean;
  578. showSearch: boolean;
  579. defaultOpen: boolean;
  580. allowClear: boolean;
  581. showArrow: boolean;
  582. emptyOptions: boolean;
  583. }>;
  584. export default _default;