You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
/**
|
|
* 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);
|
|
}
|
|
}
|
|
|