/** * Represents a Component (of an HTMLElement) that is capable of receiving input. * @extends Component * @inheritdoc */ class InputComponent extends Component { /** * * @param {string} element * @param {Attr} attr * @param {Modifier} modifier */ constructor(element, attr = {}, modifier = null) { super(element, attr); this.addStyleClass("el-input-comp"); if (modifier) { this.modifier(modifier); } } /** * The parameter makes it optional to trigger the state by a variable * @param {boolean} readonly * @returns {Component} */ readonly(readonly = true) { if (readonly) { this._element.setAttribute("readonly", readonly); } return this; } /** * Sets the value of the InputComponent * @param {string} Value * @returns {InputComponent|Component} */ value(value) { this._element.value = value; return this; } /** * * @param {string} name * @returns {InputComponent|Component} */ name(name) { return this.setAttribute("name", name); } }