UNPKG

kwikui

Version:

KwikID's UI Component Library in Angular

37 lines 5.04 kB
import { Directive, HostListener, Input } from "@angular/core"; import { isNotEmptyValue } from "kwikid-toolkit"; import { formatCurrency } from "./input-currency.helpers"; import * as i0 from "@angular/core"; export class NumericCurrencyTypeDirective { constructor(el) { this.el = el; } onInputChange(event) { const inputElement = event.target; let value = String(inputElement.value).replace(/[^0-9.-]/g, ""); // Remove non-numeric characters except the decimal point // Ensure only one decimal point is present const decimalParts = value.split("."); if (decimalParts.length > 2) { value = `${decimalParts[0]}.${decimalParts[1]}`; } if (isNotEmptyValue(value)) { value = formatCurrency(this.currencyType, value); } inputElement.value = value; } } /** @nocollapse */ NumericCurrencyTypeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NumericCurrencyTypeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); /** @nocollapse */ NumericCurrencyTypeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: NumericCurrencyTypeDirective, selector: "[currencyType]", inputs: { currencyType: "currencyType" }, host: { listeners: { "input": "onInputChange($event)" } }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NumericCurrencyTypeDirective, decorators: [{ type: Directive, args: [{ selector: "[currencyType]" }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { currencyType: [{ type: Input, args: ["currencyType"] }], onInputChange: [{ type: HostListener, args: ["input", ["$event"]] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY3VycmVuY3kuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa3VpL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20vaW5wdXQtY3VycmVuY3kvaW5wdXQtY3VycmVuY3kuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU0xRCxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLFlBQW9CLEVBQWdDO1FBQWhDLE9BQUUsR0FBRixFQUFFLENBQThCO0lBQUcsQ0FBQztJQUd4RCxhQUFhLENBQUMsS0FBWTtRQUN4QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUN0RCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFFMUgsMkNBQTJDO1FBQzNDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQixLQUFLLEdBQUcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDakQ7UUFFRCxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDOzs2SUFyQlUsNEJBQTRCO2lJQUE1Qiw0QkFBNEI7NEZBQTVCLDRCQUE0QjtrQkFIeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjtpR0FFd0IsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUtyQixhQUFhO3NCQURaLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGlzTm90RW1wdHlWYWx1ZSB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgZm9ybWF0Q3VycmVuY3kgfSBmcm9tIFwiLi9pbnB1dC1jdXJyZW5jeS5oZWxwZXJzXCI7XG5pbXBvcnQgeyBUS3dpa1VJSW5wdXRDdXJyZW5jeVR5cGUgfSBmcm9tIFwiLi9pbnB1dC1jdXJyZW5jeS5kZWZpbml0aW9uc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2N1cnJlbmN5VHlwZV1cIlxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljQ3VycmVuY3lUeXBlRGlyZWN0aXZlIHtcbiAgQElucHV0KFwiY3VycmVuY3lUeXBlXCIpIGN1cnJlbmN5VHlwZTogVEt3aWtVSUlucHV0Q3VycmVuY3lUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4pIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImlucHV0XCIsIFtcIiRldmVudFwiXSlcbiAgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBsZXQgdmFsdWUgPSBTdHJpbmcoaW5wdXRFbGVtZW50LnZhbHVlKS5yZXBsYWNlKC9bXjAtOS4tXS9nLCBcIlwiKTsgLy8gUmVtb3ZlIG5vbi1udW1lcmljIGNoYXJhY3RlcnMgZXhjZXB0IHRoZSBkZWNpbWFsIHBvaW50XG5cbiAgICAvLyBFbnN1cmUgb25seSBvbmUgZGVjaW1hbCBwb2ludCBpcyBwcmVzZW50XG4gICAgY29uc3QgZGVjaW1hbFBhcnRzID0gdmFsdWUuc3BsaXQoXCIuXCIpO1xuICAgIGlmIChkZWNpbWFsUGFydHMubGVuZ3RoID4gMikge1xuICAgICAgdmFsdWUgPSBgJHtkZWNpbWFsUGFydHNbMF19LiR7ZGVjaW1hbFBhcnRzWzFdfWA7XG4gICAgfVxuXG4gICAgaWYgKGlzTm90RW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gZm9ybWF0Q3VycmVuY3kodGhpcy5jdXJyZW5jeVR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuIl19