Add the range slider design to the NumberInput widget (#839)

* Add range slider to NumberInput

* Cleanup

* Fix event ordering causing bug in Firefox

* Polish the code

* Switch number input modes to range in relevant places
This commit is contained in:
Keavon Chambers
2022-11-05 22:57:19 -07:00
parent 18507b78ac
commit 782f528279
9 changed files with 435 additions and 120 deletions
+26 -7
View File
@@ -816,11 +816,23 @@ export class IconLabel extends WidgetProps {
tooltip!: string | undefined;
}
export type IncrementBehavior = "Add" | "Multiply" | "Callback" | "None";
export type NumberInputIncrementBehavior = "Add" | "Multiply" | "Callback" | "None";
export type NumberInputMode = "Increment" | "Range";
export class NumberInput extends WidgetProps {
// Label
label!: string | undefined;
@Transform(({ value }: { value: string }) => (value.length > 0 ? value : undefined))
tooltip!: string | undefined;
// Disabled
disabled!: boolean;
// Value
value!: number | undefined;
min!: number | undefined;
@@ -829,22 +841,29 @@ export class NumberInput extends WidgetProps {
isInteger!: boolean;
// Number presentation
displayDecimalPlaces!: number;
unit!: string;
unitIsHiddenWhenEditing!: boolean;
incrementBehavior!: IncrementBehavior;
// Mode behavior
incrementFactor!: number;
mode!: NumberInputMode;
disabled!: boolean;
incrementBehavior!: NumberInputIncrementBehavior;
step!: number;
rangeMin!: number | undefined;
rangeMax!: number | undefined;
// Styling
minWidth!: number;
@Transform(({ value }: { value: string }) => (value.length > 0 ? value : undefined))
tooltip!: string | undefined;
}
export class OptionalInput extends WidgetProps {