/**
* @license
* Copyright 厦门乾元盛世科技有限公司 All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file.
*/
import { EventEmitter, ElementRef, Renderer } from '@angular/core';
import { AfterViewInit } from '@angular/core';
import { NgControl } from '@angular/forms';
import { FormControl } from './form.control';
import { InputPrefix } from './input.prefix';
import { InputSuffix } from './input.suffix';
import 'rxjs/add/operator/debounceTime';
export interface AutoSizeType {
minRows?: number;
maxRows?: number;
}
export declare class InputBox extends FormControl implements AfterViewInit {
private renderer;
private elementRef;
private compositionMode;
/** 样式前缀 */
prefixCls: string;
/** 用户CSS样式 */
class: string;
/** 声明 input 类型,同原生 input 标签的 type 属性。另外提供 `type="textarea"` */
type: string;
/** 控件大小。注:标准表单内的输入框大小限制为 `large`。可选 `large` `default` `small`。 */
size: 'large' | 'default' | 'small';
/** 输入框的placeholder */
placeholder: string;
/** 是否只读状态,默认为 false */
readOnly: boolean;
/** 带有前缀图标的 input,也可以通过使用属性为“input-prefix”的元素来达到同样效果 */
prefix: string;
/** 带有后缀图标的 input,也可以通过使用属性为“input-suffix”的元素来达到同样效果 */
suffix: string;
/** 自适应内容高度,只对 `type="textarea"` 有效,可设置为 `true|false` 或对象:`{ minRows: 2, maxRows: 6 }` */
autosize: boolean | AutoSizeType;
autoComplete: 'on' | 'off';
spellCheck: boolean;
/**
* maxlength 属性规定输入字段的最大长度,以字符个数计。
* 注释:maxlength 属性与 或 配合使用。
*/
maxLength: number;
/**
* minlength 属性规定输入字段的最小长度,以字符个数计。
* 注释:minlength 属性与 或 配合使用。
*/
minLength: number;
/**
* max 属性规定输入字段所允许的最大值。
* 注释:max 和 min 属性适用于以下 类型:number, range, date, datetime, datetime-local, month, time 以及 week。
*/
max: number | Date;
/**
* min 属性规定输入字段所允许的最小值。
* 注释:max 和 min 属性适用于以下 类型:number, range, date, datetime, datetime-local, month, time 以及 week。
*/
min: number | Date;
/**
* 是否必填
*/
required: boolean;
/**
* pattern 属性规定用于验证输入字段的模式(正则表达式)。
* 注释:pattern 属性适用于以下 类型:text, search, url, telephone, email 以及 password 。
*/
pattern: string;
/**
* 行数,当类型是textarea时
*/
rows: number;
/**
* 默认情况下,输入框的focus、blur事件是不传播的,因此当我们控制内部的输入框后,需要发射自己的focus、blur事件
*
* @output {event} Expression to call when the input no longer has focus
*/
blur: EventEmitter;
/**
* 默认情况下,输入框的focus、blur事件是不传播的,因此当我们控制内部的输入框后,需要发射自己的focus、blur事件
*
* @output {event} Expression to call when the input has focus
*/
focus: EventEmitter;
/**
* The value of the input ngModel
*
* @internal (model -> view2)
*/
/**
* 内部输入框的内容,用于绑定内部的 ngModel 值
*/
innerValue: any;
private valueChangeEmiter;
/** 长文本框的样式:用于当输入变化时重新计算文本框的高度 (如在 `autosize` 为 `true` 的情况下) */
textareaStyles: any;
inputPrefix: InputPrefix;
inputSuffix: InputSuffix;
state: NgControl;
input: ElementRef;
constructor(renderer: Renderer, elementRef: ElementRef, compositionMode: boolean);
/** 对用户输入的值进行预处理,如文本转数字等 */
processValue(value: any): any;
/**
* Write a new value to the element.
*
* @Override (From ControlValueAccessor interface)
*/
writeValue(value: any): void;
/**
* The underlying host native element
*/
getHostElement(): HTMLElement;
/**
* invalid样式
*/
readonly warnCls: boolean;
getInputClass(): string;
readonly inputClass: string;
readonly affixWrapperClass: string;
readonly affixPrefixClass: string;
readonly affixSuffixClass: string;
ngAfterViewInit(): void;
/**
* 当前字符总长度
*/
readonly charLength: number;
handleKeyDown(event: KeyboardEvent): void;
handleKeyUp(ev: UIEvent): void;
handleTextareaChange(event: Event): void;
resizeTextarea(): void;
/**
* @private
*/
onBlur(event: UIEvent): void;
/**
* @private
*/
onFocus(event: UIEvent): void;
doFocus(): void;
}