systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
40 lines • 5.66 kB
JavaScript
import { Directive, HostListener } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "systelab-translate";
import * as i2 from "../helper/number-helper";
export class NumpadDecimalNumericDirective {
constructor(el, i18nService, numberHelper) {
this.el = el;
this.i18nService = i18nService;
this.numberHelper = numberHelper;
this.decimalSeparator = ',';
}
keyup(event) {
// get position
const pos = this.el.nativeElement.selectionStart;
let val = this.el.nativeElement.value;
if (event.code === 'NumpadDecimal' && event.key === '.') {
const myNumber = 2.3;
const stringNumber = this.numberHelper.getStringFromNumber(myNumber);
this.decimalSeparator = stringNumber.substring(1, 2);
val = val.substring(0, pos - 1) + this.decimalSeparator + val.substring(pos);
this.el.nativeElement.value = val;
setTimeout(() => {
this.el.nativeElement.selectionStart = pos;
this.el.nativeElement.selectionEnd = pos;
});
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: NumpadDecimalNumericDirective, deps: [{ token: i0.ElementRef }, { token: i1.I18nService }, { token: i2.NumberHelper }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: NumpadDecimalNumericDirective, selector: "[systelabNumPadDecimalNumericDirective]", host: { listeners: { "keyup": "keyup($event)" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: NumpadDecimalNumericDirective, decorators: [{
type: Directive,
args: [{
selector: '[systelabNumPadDecimalNumericDirective]'
}]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.I18nService }, { type: i2.NumberHelper }], propDecorators: { keyup: [{
type: HostListener,
args: ['keyup', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtcGFkLWRlY2ltYWwtbnVtZXJpYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeXN0ZWxhYi1jb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9udW1wYWQtZGVjaW1hbC1udW1lcmljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVNwRSxNQUFNLE9BQU8sNkJBQTZCO0lBSXpDLFlBQW9CLEVBQWMsRUFDckIsV0FBd0IsRUFDMUIsWUFBMEI7UUFGakIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUo3QixxQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFJVSxDQUFDO0lBRVAsS0FBSyxDQUFDLEtBQW9CO1FBQzVELGVBQWU7UUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7UUFFakQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBRXRDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxlQUFlLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDeEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO1lBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JELEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUUsR0FBRyxDQUFDLENBQUU7WUFDL0UsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUVsQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNmLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7U0FDSDtJQUNGLENBQUM7OEdBMUJXLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5Q0FBeUM7aUJBQ25EO29JQVVtQyxLQUFLO3NCQUF2QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJ3N5c3RlbGFiLXRyYW5zbGF0ZSc7XG5pbXBvcnQgeyBOdW1iZXJIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXIvbnVtYmVyLWhlbHBlcic7XG5cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW3N5c3RlbGFiTnVtUGFkRGVjaW1hbE51bWVyaWNEaXJlY3RpdmVdJ1xufSlcblxuZXhwb3J0IGNsYXNzIE51bXBhZERlY2ltYWxOdW1lcmljRGlyZWN0aXZlIHtcblxuXHRwcml2YXRlIGRlY2ltYWxTZXBhcmF0b3IgPSAnLCc7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcblx0XHRcdFx0cHJvdGVjdGVkIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBudW1iZXJIZWxwZXI6IE51bWJlckhlbHBlcikgeyB9XG5cblx0QEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKSBrZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuXHRcdC8vIGdldCBwb3NpdGlvblxuXHRcdGNvbnN0IHBvcyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcblxuXHRcdGxldCB2YWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cblx0XHRpZiAoZXZlbnQuY29kZSA9PT0gJ051bXBhZERlY2ltYWwnICYmIGV2ZW50LmtleSA9PT0gJy4nKSB7XG5cdFx0XHRjb25zdCBteU51bWJlciA9IDIuMztcblx0XHRcdGNvbnN0IHN0cmluZ051bWJlciA9IHRoaXMubnVtYmVySGVscGVyLmdldFN0cmluZ0Zyb21OdW1iZXIobXlOdW1iZXIpO1xuXHRcdFx0dGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gc3RyaW5nTnVtYmVyLnN1YnN0cmluZygxLCAyKTtcblx0XHRcdHZhbCA9IHZhbC5zdWJzdHJpbmcoMCwgcG9zIC0gMSkgKyB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgKyB2YWwuc3Vic3RyaW5nKCBwb3MpIDtcblx0XHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbDtcblxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IHBvcztcblx0XHRcdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHBvcztcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufVxuIl19