/** * @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; }