@universal-material/web
Version:
Material web components
66 lines • 2.25 kB
JavaScript
import { __decorate } from "tslib";
import { html, nothing } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { live } from 'lit/directives/live.js';
import { UmNativeTextFieldWrapper } from '../shared/char-count-text-field/native-text-field-wrapper.js';
import { UmTextFieldBase } from '../shared/text-field-base/text-field-base.js';
import { styles } from './text-field.styles.js';
let UmTextField = class UmTextField extends UmNativeTextFieldWrapper {
constructor() {
super(...arguments);
this.type = 'text';
this.readOnly = false;
}
static { this.styles = [UmTextFieldBase.styles, styles]; }
renderControl() {
return html `
<slot class="prefix" name="prefix">
<span>${this.prefixText}</span>
</slot>
<div class="input">
<input
type=${this.type}
part="input"
id=${this.id || nothing}
aria-labelledby="label"
aria-describedBy="supporting-text"
?readonly=${this.readOnly}
?disabled=${this.disabled}
spellcheck=${this.spellcheck}
autocomplete=${this.autocomplete}
autocapitalize=${this.autocapitalize}
role=${this.role}
maxlength=${this.maxlength ?? nothing}
.placeholder=${this.placeholder}
.value=${live(this._value)}
@input=${this._handleInput} />
</div>
<slot class="suffix" name="suffix">
<span>${this.suffixText}</span>
</slot>
`;
}
};
__decorate([
property()
], UmTextField.prototype, "type", void 0);
__decorate([
property({ attribute: 'prefix-text' })
], UmTextField.prototype, "prefixText", void 0);
__decorate([
property({ attribute: 'suffix-text' })
], UmTextField.prototype, "suffixText", void 0);
__decorate([
property({ type: Boolean, reflect: true })
], UmTextField.prototype, "readOnly", void 0);
__decorate([
property({ reflect: true })
], UmTextField.prototype, "autocapitalize", void 0);
__decorate([
query('input')
], UmTextField.prototype, "input", void 0);
UmTextField = __decorate([
customElement('u-text-field')
], UmTextField);
export { UmTextField };
//# sourceMappingURL=text-field.js.map