Skip to content

Commit

Permalink
fix(number-field): handle negative numbers (#3673)
Browse files Browse the repository at this point in the history
* fix(number-field): negetive numbers handled

* chore(number-field): added a test

* Update NumberField.ts

* Update packages/number-field/src/NumberField.ts

Co-authored-by: Rajdeep Chandra <[email protected]>

* chore(number-field): fixed comment

---------

Co-authored-by: Rajdeep Chandra <[email protected]>
Co-authored-by: Rajdeep Chandra <[email protected]>
  • Loading branch information
3 people authored Sep 29, 2023
1 parent 649eb2f commit 62553dd
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
3 changes: 3 additions & 0 deletions packages/number-field/src/NumberField.ts
Original file line number Diff line number Diff line change
Expand Up @@ -473,6 +473,8 @@ export class NumberField extends TextfieldBase {
}

private validateInput(value: number): number {
const signMultiplier = value < 0 ? -1 : 1; // 'signMultiplier' adjusts 'value' for 'validateInput' and reverts it before returning.
value *= signMultiplier;
if (typeof this.min !== 'undefined') {
value = Math.max(this.min, value);
}
Expand All @@ -498,6 +500,7 @@ export class NumberField extends TextfieldBase {
}
}
}
value *= signMultiplier;
return value;
}

Expand Down
14 changes: 14 additions & 0 deletions packages/number-field/test/number-field.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,20 @@ describe('NumberField', () => {
expect(el.formattedValue).to.equal('5');
expect(el.valueAsString).to.equal('5');
});

it('supports both positive and negative decimal values', async () => {
const el = await getElFrom(
Default({
step: 0.001,
min: -10,
max: 10,
value: -2.4,
})
);
el.size = 'xl';
expect(el.value).to.equal(-2.4);
expect(el.valueAsString).to.equal('-2.4');
});
});
describe('Increments', () => {
let el: NumberField;
Expand Down

0 comments on commit 62553dd

Please sign in to comment.