mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-25 18:26:35 +00:00
Fix step any in number selector (#19077)
This commit is contained in:
parent
d762a9365f
commit
325ad6f721
@ -43,6 +43,22 @@ export class HaNumberSelector extends LitElement {
|
|||||||
this.selector.number?.min === undefined ||
|
this.selector.number?.min === undefined ||
|
||||||
this.selector.number?.max === undefined;
|
this.selector.number?.max === undefined;
|
||||||
|
|
||||||
|
let sliderStep;
|
||||||
|
|
||||||
|
if (!isBox) {
|
||||||
|
sliderStep = this.selector.number!.step ?? 1;
|
||||||
|
if (sliderStep === "any") {
|
||||||
|
sliderStep = 1;
|
||||||
|
// divide the range of the slider by 100 steps
|
||||||
|
const step =
|
||||||
|
(this.selector.number!.max! - this.selector.number!.min!) / 100;
|
||||||
|
// biggest step size is 1, round the step size to a division of 1
|
||||||
|
while (sliderStep > step) {
|
||||||
|
sliderStep /= 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<div class="input">
|
<div class="input">
|
||||||
${!isBox
|
${!isBox
|
||||||
@ -52,12 +68,10 @@ export class HaNumberSelector extends LitElement {
|
|||||||
: ""}
|
: ""}
|
||||||
<ha-slider
|
<ha-slider
|
||||||
labeled
|
labeled
|
||||||
.min=${this.selector.number?.min}
|
.min=${this.selector.number!.min}
|
||||||
.max=${this.selector.number?.max}
|
.max=${this.selector.number!.max}
|
||||||
.value=${this.value ?? ""}
|
.value=${this.value ?? ""}
|
||||||
.step=${this.selector.number?.step === "any"
|
.step=${sliderStep}
|
||||||
? undefined
|
|
||||||
: this.selector.number?.step ?? 1}
|
|
||||||
.disabled=${this.disabled}
|
.disabled=${this.disabled}
|
||||||
.required=${this.required}
|
.required=${this.required}
|
||||||
@change=${this._handleSliderChange}
|
@change=${this._handleSliderChange}
|
||||||
|
@ -70,15 +70,15 @@ const SELECTOR_SCHEMAS = {
|
|||||||
number: [
|
number: [
|
||||||
{
|
{
|
||||||
name: "min",
|
name: "min",
|
||||||
selector: { number: { mode: "box" } },
|
selector: { number: { mode: "box", step: "any" } },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "max",
|
name: "max",
|
||||||
selector: { number: { mode: "box" } },
|
selector: { number: { mode: "box", step: "any" } },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "step",
|
name: "step",
|
||||||
selector: { number: { mode: "box" } },
|
selector: { number: { mode: "box", step: "any" } },
|
||||||
},
|
},
|
||||||
] as const,
|
] as const,
|
||||||
object: [] as const,
|
object: [] as const,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user