UNPKG

@tplc/wot

Version:

299 lines (258 loc) 6.53 kB
import type { ExtractPropTypes } from 'vue' import { baseProps, makeArrayProp, makeBooleanProp, makeNumberProp, makeNumericProp, makeStringProp, } from '../common/props' import type { FormItemRule } from '../wd-form/types' import type { InputClearTrigger } from '../wd-input/types' export type ConfirmType = 'send' | 'search' | 'next' | 'go' | 'done' export const textareaProps = { ...baseProps, /** * * 自定义文本域容器class名称。 * 类型:string */ customTextareaContainerClass: makeStringProp(''), /** * * 自定义文本域class名称。 * 类型:string */ customTextareaClass: makeStringProp(''), /** * * 自定义标签class名称。 * 类型:string */ customLabelClass: makeStringProp(''), // 原生属性 /** * * 绑定值。 * 类型:string | number */ modelValue: makeNumericProp(''), /** * * 占位文本。 * 类型:string * 默认值:'请输入...' */ placeholder: String, /** * 指定placeholder的样式。 * 类型:string */ placeholderStyle: String, /** * * 指定placeholder的样式类。 * 类型:string * 默认值:空字符串 */ placeholderClass: makeStringProp(''), /** * * 禁用输入框。 * 类型:boolean * 默认值:false */ disabled: makeBooleanProp(false), /** * * 最大输入长度,设置为-1表示不限制最大长度。 * 类型:number * 默认值:-1 */ maxlength: makeNumberProp(-1), /** * * 自动聚焦并拉起键盘。 * 类型:boolean * 默认值:false */ autoFocus: makeBooleanProp(false), /** * * 获取焦点。 * 类型:boolean * 默认值:false */ focus: makeBooleanProp(false), /** * * 是否自动增高输入框高度,style.height属性在auto-height生效时不生效。 * 类型:boolean * 默认值:false */ autoHeight: makeBooleanProp(false), /** * * 如果textarea处于position:fixed区域,需要设置此属性为true。 * 类型:boolean * 默认值:false */ fixed: makeBooleanProp(false), /** * * 指定光标与键盘的距离,取textarea距离底部的距离和cursor-spacing指定的距离的最小值作为实际距离。 * 类型:number * 默认值:0 */ cursorSpacing: makeNumberProp(0), /** * * 指定focus时的光标位置。 * 类型:number * 默认值:-1 */ cursor: makeNumberProp(-1), /** * * 设置键盘右下角按钮的文字。 * 类型:string * 默认值:'done' * 可选值有'done', 'go', 'next', 'search', 'send' */ confirmType: makeStringProp<ConfirmType | null>(null), /** * * 点击键盘右下角按钮时是否保持键盘不收起。 * 类型:boolean * 默认值:false */ confirmHold: makeBooleanProp(false), /** * * 是否显示键盘上方带有“完成”按钮那一栏。 * 类型:boolean * 默认值:true */ showConfirmBar: makeBooleanProp(true), /** * * 光标起始位置,自动聚集时有效,需与selection-end搭配使用。 * 类型:number * 默认值:-1 */ selectionStart: makeNumberProp(-1), /** * * 光标结束位置,自动聚集时有效,需与selection-start搭配使用。 * 类型:number * 默认值:-1 */ selectionEnd: makeNumberProp(-1), /** * * 键盘弹起时是否自动上推页面。 * 类型:boolean * 默认值:true */ adjustPosition: makeBooleanProp(true), /** * * 是否去掉iOS下的默认内边距。 * 类型:boolean * 默认值:false */ disableDefaultPadding: makeBooleanProp(false), /** * * focus状态下点击页面时是否不收起键盘。 * 类型:boolean * 默认值:false */ holdKeyboard: makeBooleanProp(false), // 非原生属性 /** * * 显示为密码框。 * 类型:boolean * 默认值:false */ showPassword: makeBooleanProp(false), /** * * 是否显示清空按钮。 * 类型:boolean * 默认值:false */ clearable: makeBooleanProp(false), /** * * 输入框只读状态。 * 类型:boolean * 默认值:false */ readonly: makeBooleanProp(false), /** * * 前置图标,icon组件中的图标类名。 * 类型:string */ prefixIcon: String, /** * * 是否使用前置图标插槽。 * 类型:boolean * 默认值:false */ usePrefixSlot: makeBooleanProp(false), /** * * 是否显示字数限制,需要同时设置maxlength。 * 类型:boolean * 默认值:false */ showWordLimit: makeBooleanProp(false), /** * * 设置左侧标题。 * 类型:string */ label: String, /** * * 设置左侧标题宽度。 * 类型:string * 默认值:'33%' */ labelWidth: makeStringProp('33%'), /** * * 是否使用label插槽。 * 类型:boolean * 默认值:false */ useLabelSlot: makeBooleanProp(false), /** * * 设置输入框大小。 * 类型:string */ size: String, /** * * 设置输入框错误状态(红色)。 * 类型:boolean * 默认值:false */ error: makeBooleanProp(false), /** * * 当存在label属性时,设置标题和输入框垂直居中,默认为顶部居中。 * 类型:boolean * 默认值:false */ center: makeBooleanProp(false), /** * * 非cell类型下是否隐藏下划线。 * 类型:boolean * 默认值:false */ noBorder: makeBooleanProp(false), /** * * cell类型下必填样式。 * 类型:boolean * 默认值:false */ required: makeBooleanProp(false), /** * * 表单域model字段名,在使用表单校验功能的情况下,该属性是必填的。 * 类型:string */ prop: makeStringProp(''), /** * * 表单验证规则。 * 类型:FormItemRule[] * 默认值:[] */ rules: makeArrayProp<FormItemRule>(), /** * 显示清除图标的时机,always 表示输入框不为空时展示,focus 表示输入框聚焦且不为空时展示 * 类型: "focus" | "always" * 默认值: "always" * 最低版本: $LOWEST_VERSION$ */ clearTrigger: makeStringProp<InputClearTrigger>('always'), /** * 是否在点击清除按钮时聚焦输入框 * 类型: boolean * 默认值: true * 最低版本: $LOWEST_VERSION$ */ focusWhenClear: makeBooleanProp(true), } export type TextareaProps = ExtractPropTypes<typeof textareaProps>