this.input.focus()}
+ >
+ {this.textPrefix && (
+
+ {this.textPrefix}
+
+ )}
+ {this.icon && !this.iconRight && (
+
this.doFocus()}>
+ )}
+
+ (this.input = el as HTMLInputElement)}
+ id={this.id}
+ class={{
+ 'has-clearable': this.clearable && !this.disabled && !this.readonly && !!this.value,
+ 'has-toggle-password': this.togglePassword && !this.disabled && !this.readonly && !!this.value
+ }}
+ autocomplete={this.autoComplete}
+ disabled={this.disabled}
+ max={this.max}
+ maxlength={this.maxLength}
+ min={this.min}
+ minlength={this.minLength}
+ name={this.name}
+ placeholder={this.placeholder}
+ readonly={this.readonly}
+ required={this.required}
+ type={this.isPasswordShown ? 'text' : this.type}
+ value={this.value}
+ onInput={this.onInput.bind(this)}
+ onFocus={this.onFocus.bind(this)}
+ onBlur={this.onBlur.bind(this)}
+ aria-invalid={this.invalid ? 'true' : undefined}
+ aria-describedby={this.hasHint ? this.id + '-hint' : undefined}
+ >
+ {this.clearable && !this.disabled && !this.readonly && this.value && (
+
+ )}
+ {this.togglePassword && !this.disabled && !this.readonly && this.value && (
+
+ )}
+
+ {!this.invalid && this.icon && this.iconRight && (
+
this.doFocus()}>
)}
- {this.togglePassword && !this.disabled && !this.readonly && this.value && (
-
+ {this.invalid && (
+
+ )}
+ {this.textSuffix && (
+
+ {this.textSuffix}
+
)}