118 lines
2.6 KiB
JavaScript
118 lines
2.6 KiB
JavaScript
import { CircleClose } from '@element-plus/icons-vue';
|
|
import { useSizeProp } from '../../../hooks/use-size/index.mjs';
|
|
import { iconPropType } from '../../../utils/vue/icon.mjs';
|
|
import { mutable } from '../../../utils/typescript.mjs';
|
|
import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
|
|
import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
|
|
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
|
import { isString } from '@vue/shared';
|
|
|
|
const inputProps = buildProps({
|
|
id: {
|
|
type: String,
|
|
default: void 0
|
|
},
|
|
size: useSizeProp,
|
|
disabled: Boolean,
|
|
modelValue: {
|
|
type: definePropType([
|
|
String,
|
|
Number,
|
|
Object
|
|
]),
|
|
default: ""
|
|
},
|
|
maxlength: {
|
|
type: [String, Number]
|
|
},
|
|
minlength: {
|
|
type: [String, Number]
|
|
},
|
|
type: {
|
|
type: String,
|
|
default: "text"
|
|
},
|
|
resize: {
|
|
type: String,
|
|
values: ["none", "both", "horizontal", "vertical"]
|
|
},
|
|
autosize: {
|
|
type: definePropType([Boolean, Object]),
|
|
default: false
|
|
},
|
|
autocomplete: {
|
|
type: definePropType(String),
|
|
default: "off"
|
|
},
|
|
formatter: {
|
|
type: Function
|
|
},
|
|
parser: {
|
|
type: Function
|
|
},
|
|
placeholder: {
|
|
type: String
|
|
},
|
|
form: {
|
|
type: String
|
|
},
|
|
readonly: Boolean,
|
|
clearable: Boolean,
|
|
clearIcon: {
|
|
type: iconPropType,
|
|
default: CircleClose
|
|
},
|
|
showPassword: Boolean,
|
|
showWordLimit: Boolean,
|
|
suffixIcon: {
|
|
type: iconPropType
|
|
},
|
|
prefixIcon: {
|
|
type: iconPropType
|
|
},
|
|
containerRole: {
|
|
type: String,
|
|
default: void 0
|
|
},
|
|
tabindex: {
|
|
type: [String, Number],
|
|
default: 0
|
|
},
|
|
validateEvent: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
inputStyle: {
|
|
type: definePropType([Object, Array, String]),
|
|
default: () => mutable({})
|
|
},
|
|
autofocus: Boolean,
|
|
rows: {
|
|
type: Number,
|
|
default: 2
|
|
},
|
|
...useAriaProps(["ariaLabel"]),
|
|
inputmode: {
|
|
type: definePropType(String),
|
|
default: void 0
|
|
},
|
|
name: String
|
|
});
|
|
const inputEmits = {
|
|
[UPDATE_MODEL_EVENT]: (value) => isString(value),
|
|
input: (value) => isString(value),
|
|
change: (value) => isString(value),
|
|
focus: (evt) => evt instanceof FocusEvent,
|
|
blur: (evt) => evt instanceof FocusEvent,
|
|
clear: () => true,
|
|
mouseleave: (evt) => evt instanceof MouseEvent,
|
|
mouseenter: (evt) => evt instanceof MouseEvent,
|
|
keydown: (evt) => evt instanceof Event,
|
|
compositionstart: (evt) => evt instanceof CompositionEvent,
|
|
compositionupdate: (evt) => evt instanceof CompositionEvent,
|
|
compositionend: (evt) => evt instanceof CompositionEvent
|
|
};
|
|
|
|
export { inputEmits, inputProps };
|
|
//# sourceMappingURL=input.mjs.map
|