import { ComponentClass } from 'react' import { BaseEventOrig, ITouchEvent } from '@tarojs/components/types/common' import { InputProps } from '@tarojs/components/types/Input' import AtComponent from './base' declare type OmitInputProps = Omit< InputProps, | 'className' | 'type' | 'onBlur' | 'onFocus' | 'onChange' | 'onConfirm' | 'onKeyboardHeightChange' > declare type InputFunction = ( value: T, event?: BaseEventOrig ) => R declare type InputBaseEventDetail = { /** 输入值 */ value/*;值*/: string | number } export declare type InputEventDetail = InputBaseEventDetail & { /** 光标位置 */ cursor/*;光标*/: number /** 键值 */ keyCode/*;键值*/: number } export declare type FocusEventDetail = InputBaseEventDetail & { /** 键盘高度 */ height/*;高*/: number } export declare type BlurEventDetail = InputBaseEventDetail export declare type ConfirmEventDetail = InputBaseEventDetail export declare type KeyboardHeightEventDetail = { /** 键盘高度 */ height/*高;*/: number /** 持续时间 */ duration/*;时长*/: number } export interface AtInputProps extends AtComponent, OmitInputProps { /** * 输入框的唯一标识,有传入点击 title 会聚焦输入框 */ name/*;名称*/: string /** * 输入框左侧标题,若传入为空,则不显示标题 */ title/*;标题*/?: string /** * 输入框类型 * @defalut 'text' */ type/*;类型*/?: 'text'/*;文本*/ | 'number'/*;数*/ | 'password'/*;密码*/ | 'phone'/*;电话号*/ | 'idcard'/*;身份证*/ | 'digit'/*;数字*/ /** * 是否出现错误 * @default false */ error/*;错误*/?: boolean /** * 是否显示清除按钮,需要传入 onChange 事件来改变 value * @default false */ clear/*;清除*/?: boolean /** * 是否显示下划线边框 * @default true */ border/*;边框*/?: boolean /** * 是否禁止输入,禁止点击按钮 * @default false */ disabled/*;禁用*/?: boolean /** * 占位符 */ placeholder/*;占位符*/?: string /** * 指定 placeholder 的样式,只在小程序有效 */ placeholderStyle/*;占位符样式*/?: string /** * 指定 placeholder 的样式类,只在小程序有效 */ placeholderClass/*;占位符样式类*/?: string /** * 是否可编辑 * @default true */ editable/*;可编辑*/?: boolean /** * 键盘弹起时,是否自动上推页面 * @default false */ adjustPosition/*;调整位置*/?: boolean /** * 是否自动聚焦 * @default false */ autoFocus/*;自动聚焦*/?: boolean /** * 是否聚焦 * @default false */ focus/*;聚焦*/?: boolean /** * 是否必填 * @default false */ required/*;必须*/?: boolean /** * 最大输入长度 * @type {number} * @default 140 */ maxLength/*;最大长度*/?: number /** * 输入框失去焦点时触发的事件,v2.0.3 版本可以获取 event 参数 */ onBlur/*;当模糊*/?: InputFunction /** * 输入框被选中时触发的事件,v2.0.3 版本可以获取 event 参数 */ onFocus/*;当聚焦*/?: InputFunction /** * 输入框值改变时触发的事件,开发者需要通过 onChange 事件来更新 value 值变化,onChange 函数必填。 * 小程序中,如果想改变 value 的值,需要 return value 从而改变输入框的当前值, v2.0.3 版本可以获取 event 参数 */ onChange/*;当改变*/: InputFunction /** * 点击完成按钮时触发,v2.0.3 版本可以获取 event 参数 */ onConfirm/*;当确认*/?: InputFunction /** * 当 editable 为 false 时,点击组件触发的事件,v2.3.3 版本可以获取 event 参数 */ onClick/*;当点*/?: (event?: ITouchEvent) => void /** * 键盘高度发生变化的时候触发此事件 */ onKeyboardHeightChange/*;当键盘高改变*/?: ( event?: BaseEventOrig ) => void /** * 点击错误按钮触发的事件,v2.3.3 版本可以获取 event 参数 */ onErrorClick/*;当错误点击*/?: (event?: ITouchEvent) => void } declare const AtInput: ComponentClass export default AtInput