diff --git a/packages/v3/src/esp-entity-table.ts b/packages/v3/src/esp-entity-table.ts
index 002d490..3f9814d 100644
--- a/packages/v3/src/esp-entity-table.ts
+++ b/packages/v3/src/esp-entity-table.ts
@@ -29,8 +29,8 @@ interface entityConfig {
target_temperature_high?: number;
min_temp?: number;
max_temp?: number;
- min_value?: number;
- max_value?: number;
+ min_value?: string;
+ max_value?: string;
step?: number;
min_length?: number;
max_length?: number;
@@ -337,18 +337,12 @@ class ActionRenderer {
entity: entityConfig,
action: string,
opt: string,
- value: number | string,
- min?: number,
- max?: number,
+ value: string | number,
+ min?: string | undefined,
+ max?: string | undefined,
step = 1
) {
if(entity.mode == 1) {
- const val = Number(value);
- let stepString = step.toString();
- let numDecimalPlaces = 0
- if (stepString.indexOf('.') !== -1) {
- numDecimalPlaces = stepString.split('.')[1].length;
- }
return html`
{
const val = (e.target)?.value;
this.actioner?.restAction(entity, `${action}?${opt}=${val}`);
diff --git a/packages/v3/src/esp-range-slider.ts b/packages/v3/src/esp-range-slider.ts
index 7a4c2ff..1f87eba 100644
--- a/packages/v3/src/esp-range-slider.ts
+++ b/packages/v3/src/esp-range-slider.ts
@@ -11,14 +11,13 @@ export class EspRangeSlider extends LitElement {
private inputRange: HTMLInputElement | null = null;
private currentValue: HTMLInputElement | null = null;
- private numDecimalPlaces: number = 0;
private longPressTimer: ReturnType | null = null;
private isPopupInputVisible: boolean = false;
- @property({ type: Number }) value = 0;
- @property({ type: Number }) min = 0;
- @property({ type: Number }) max = 0;
- @property({ type: Number }) step = 0;
+ @property({ type: String }) value = 0;
+ @property({ type: String }) min = 0;
+ @property({ type: String }) max = 0;
+ @property({ type: String }) step = 0;
@property({ type: String }) name = "";
protected firstUpdated(
@@ -31,12 +30,6 @@ export class EspRangeSlider extends LitElement {
this.currentValue = this.shadowRoot?.getElementById(
currentValueID
) as HTMLInputElement;
-
- let stepString = this.step.toString();
- if (stepString.indexOf('.') !== -1) {
- this.numDecimalPlaces = stepString.split('.')[1].length;
- }
-
document.addEventListener('mousedown', (event) => {
if(!document.querySelector('.popup-number-input')) {
return;
@@ -133,7 +126,7 @@ export class EspRangeSlider extends LitElement {
updateCurrentValueOverlay(): void {
const newValueAsPercent = Number( (this.inputRange.value - this.inputRange.min) * 100 / (this.inputRange.max - this.inputRange.min) ),
newPosition = 10 - (newValueAsPercent * 0.2);
- this.currentValue.innerHTML = `${Number(this.inputRange?.value).toFixed(this.numDecimalPlaces)}`;
+ this.currentValue.innerHTML = `${this.inputRange?.value}`;
this.currentValue.style.left = `calc(${newValueAsPercent}% + (${newPosition}px))`;
const spanTooltip = this.currentValue?.querySelector('span');
@@ -178,7 +171,7 @@ export class EspRangeSlider extends LitElement {
step="${this.step}"
min="${this.min || Math.min(0, this.value)}"
max="${this.max || Math.max(10, this.value)}"
- .value="${(this.value.toFixed(this.numDecimalPlaces))}"
+ .value="${this.value}"
@input="${this.onInputEvent}"
@change="${this.onInputChangeEvent}"
/>