Total overhaul!
This commit is contained in:
59
src/controller.js
Normal file
59
src/controller.js
Normal file
@@ -0,0 +1,59 @@
|
||||
export class Controller {
|
||||
constructor(config) {
|
||||
this._config = config;
|
||||
}
|
||||
|
||||
set hass(hass) {
|
||||
this._hass = hass;
|
||||
this.stateObj = this._config.entity in hass.states ? hass.states[this._config.entity] : null;
|
||||
}
|
||||
|
||||
get value() {
|
||||
if(this._value)
|
||||
return Math.round(this._value/this.step)*this.step;
|
||||
return 0;
|
||||
}
|
||||
set value(value) {
|
||||
if (value !== this.value)
|
||||
this._value = value;
|
||||
}
|
||||
|
||||
get string() {
|
||||
return `${this.value}`;
|
||||
}
|
||||
get hidden() {
|
||||
return false;
|
||||
}
|
||||
get hasSlider() {
|
||||
return true;
|
||||
}
|
||||
get hasToggle() {
|
||||
return true;
|
||||
}
|
||||
|
||||
get isOff() {
|
||||
return this.value === 0;
|
||||
}
|
||||
|
||||
get min() {
|
||||
if (this._config.min !== undefined)
|
||||
return this._config.min;
|
||||
if (this._min !== undefined)
|
||||
return this._min;
|
||||
return 0;
|
||||
}
|
||||
get max() {
|
||||
if (this._config.max !== undefined)
|
||||
return this._config.max;
|
||||
if (this._max !== undefined)
|
||||
return this._max;
|
||||
return 100;
|
||||
}
|
||||
get step() {
|
||||
if (this._config.step !== undefined)
|
||||
return this._config.step;
|
||||
if (this._step !== undefined)
|
||||
return this._step;
|
||||
return 5;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user