forked from vueComponent/ant-design-vue
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinputProps.ts
40 lines (36 loc) · 1.48 KB
/
inputProps.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import type { ExtractPropTypes, PropType } from 'vue';
import omit from '../_util/omit';
import type { VueNode } from '../_util/type';
import { eventType } from '../_util/type';
import type { CompositionEventHandler } from '../_util/EventInterface';
import { inputProps as vcInputProps } from '../vc-input/inputProps';
export const inputDefaultValue = Symbol() as unknown as string;
export interface AutoSizeType {
minRows?: number;
maxRows?: number;
}
const inputProps = () => {
return omit(vcInputProps(), [
'wrapperClassName',
'groupClassName',
'inputClassName',
'affixWrapperClassName',
]);
};
export default inputProps;
export type InputProps = Partial<ExtractPropTypes<ReturnType<typeof inputProps>>>;
export interface ShowCountProps {
formatter: (args: { count: number; maxlength?: number }) => VueNode;
}
const textAreaProps = () => ({
...omit(inputProps(), ['prefix', 'addonBefore', 'addonAfter', 'suffix']),
rows: Number,
autosize: { type: [Boolean, Object] as PropType<boolean | AutoSizeType>, default: undefined },
autoSize: { type: [Boolean, Object] as PropType<boolean | AutoSizeType>, default: undefined },
onResize: { type: Function as PropType<(size: { width: number; height: number }) => void> },
onCompositionstart: eventType<CompositionEventHandler>(),
onCompositionend: eventType<CompositionEventHandler>(),
valueModifiers: Object,
});
export { textAreaProps };
export type TextAreaProps = Partial<ExtractPropTypes<ReturnType<typeof textAreaProps>>>;