Skip to content

Commit

Permalink
Merge pull request #14871 from hanneslim/master
Browse files Browse the repository at this point in the history
Fix #14869 - LeftArrowKey not working for selected input
  • Loading branch information
cetincakiroglu authored Feb 29, 2024
2 parents 8f3c94a + a37598e commit 95fb393
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions src/app/components/inputnumber/inputnumber.ts
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ export class InputNumber implements OnInit, AfterContentInit, OnChanges, Control
*/
@Output() onClear: EventEmitter<void> = new EventEmitter<void>();

@ViewChild('input') input!: ElementRef;
@ViewChild('input') input!: ElementRef<HTMLInputElement>;

@ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;

Expand Down Expand Up @@ -828,14 +828,21 @@ export class InputNumber implements OnInit, AfterContentInit, OnChanges, Control
break;

case 'ArrowLeft':
if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {
event.preventDefault();
for( let index=selectionStart; index<=inputValue.length;index++){
const previousCharIndex = index === 0 ? 0 : index - 1;
if(this.isNumeralChar(inputValue.charAt(previousCharIndex))){
this.input.nativeElement.setSelectionRange(index, index);
break;
}
}
break;

case 'ArrowRight':
if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {
event.preventDefault();
for( let index=selectionEnd; index>=0;index--){
if(this.isNumeralChar(inputValue.charAt(index))){
this.input.nativeElement.setSelectionRange(index, index);
break;
}
}
break;

Expand Down Expand Up @@ -1372,7 +1379,7 @@ export class InputNumber implements OnInit, AfterContentInit, OnChanges, Control
onInputBlur(event: Event) {
this.focused = false;

let newValue = this.validateValue(this.parseValue(this.input.nativeElement.value));
let newValue = this.validateValue(this.parseValue(this.input.nativeElement.value)).toString();
this.input.nativeElement.value = this.formatValue(newValue);
this.input.nativeElement.setAttribute('aria-valuenow', newValue);
this.updateModel(event, newValue);
Expand Down Expand Up @@ -1426,10 +1433,6 @@ export class InputNumber implements OnInit, AfterContentInit, OnChanges, Control
clearInterval(this.timer);
}
}

getFormatter() {
return this.numberFormat;
}
}

@NgModule({
Expand Down

0 comments on commit 95fb393

Please sign in to comment.