@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
75 lines • 13 kB
JavaScript
import { Component, Inject, Optional } from '@angular/core';
import { getCurrencySymbol } from '@angular/common';
import { AbstractNumberErrorsComponent } from '../abstract-number-errors.component';
import { DATA_FIELD_PORTAL_DATA } from "../../models/data-field-portal-data-injection-token";
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@ngx-translate/core";
export class AbstractCurrencyNumberFieldComponent extends AbstractNumberErrorsComponent {
_currencyPipe;
transformedValue;
fieldType;
NUMBER_TYPE = 'number';
TEXT_TYPE = 'text';
WHITESPACE = ' ';
constructor(_currencyPipe, translateService, dataFieldPortalData) {
super(translateService, dataFieldPortalData);
this._currencyPipe = _currencyPipe;
}
ngAfterViewInit() {
setTimeout(() => {
this.fieldType = this.TEXT_TYPE;
this.transformedValue = this.transformCurrency(this.dataField.value?.toString());
this.dataField.valueChanges().subscribe(value => {
if (value !== undefined && value !== null) {
if (this.fieldType === this.TEXT_TYPE) {
this.transformedValue = this.transformCurrency(value.toString()) + this.WHITESPACE;
}
}
else {
this.transformedValue = '';
}
});
});
}
transformToText(event) {
const target = event.target;
this.fieldType = this.TEXT_TYPE;
this.transformedValue = this.transformCurrency(target.value);
}
transformToNumber() {
this.fieldType = this.NUMBER_TYPE;
this.transformedValue = !!this.dataField.value ? this.dataField.value.toString() : '0';
}
getCurrencySymbol() {
if (this.dataField._formatFilter === undefined) {
return getCurrencySymbol(this.dataField.component.properties['code'], 'wide', this.dataField.component.properties['locale']);
}
return getCurrencySymbol(this.dataField._formatFilter.code, 'wide', this.dataField._formatFilter.locale);
}
isNumberType() {
return this.fieldType === this.NUMBER_TYPE;
}
transformCurrency(value) {
value = !!value ? value : '0';
if (this.dataField._formatFilter === undefined) {
return this._currencyPipe.transform(parseFloat(value), this.dataField.component.properties['code'], 'symbol', '1.' + this.dataField.component.properties['fractionSize'] + '-' + this.dataField.component.properties['fractionSize'], this.dataField.component.properties['locale']);
}
return this._currencyPipe.transform(parseFloat(value), this.dataField._formatFilter.code, 'symbol', '1.' + this.dataField._formatFilter.fractionSize + '-' + this.dataField._formatFilter.fractionSize, this.dataField._formatFilter.locale);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractCurrencyNumberFieldComponent, deps: [{ token: i1.CurrencyPipe }, { token: i2.TranslateService }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractCurrencyNumberFieldComponent, selector: "ncc-abstract-currency-field", usesInheritance: true, ngImport: i0, template: '', isInline: true });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractCurrencyNumberFieldComponent, decorators: [{
type: Component,
args: [{
selector: 'ncc-abstract-currency-field',
template: ''
}]
}], ctorParameters: () => [{ type: i1.CurrencyPipe }, { type: i2.TranslateService }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [DATA_FIELD_PORTAL_DATA]
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY3VycmVuY3ktbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvbnVtYmVyLWZpZWxkL2N1cnJlbmN5LW51bWJlci1maWVsZC9hYnN0cmFjdC1jdXJyZW5jeS1udW1iZXItZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekUsT0FBTyxFQUFlLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHNCQUFzQixFQUFzQixNQUFNLHFEQUFxRCxDQUFDOzs7O0FBT2hILE1BQU0sT0FBZ0Isb0NBQXFDLFNBQVEsNkJBQTZCO0lBUTVEO0lBTmhDLGdCQUFnQixDQUFTO0lBQ3pCLFNBQVMsQ0FBUztJQUNGLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDdkIsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUNuQixVQUFVLEdBQUcsR0FBRyxDQUFDO0lBRWpDLFlBQWdDLGFBQTJCLEVBQUUsZ0JBQWtDLEVBQzdCLG1CQUFxRDtRQUNuSCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUZqQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUczRCxDQUFDO0lBRUQsZUFBZTtRQUNYLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFD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Q0FBQyxhQUFhLENBQUMsSUFBSSxFQUNqQyxRQUFRLEVBQ1IsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUNsRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQXBFaUIsb0NBQW9DLDhFQVNaLHNCQUFzQjs0RkFUOUMsb0NBQW9DLDBGQUY1QyxFQUFFOzs0RkFFTSxvQ0FBb0M7a0JBSnpELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7OzBCQVUwQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0N1cnJlbmN5UGlwZSwgZ2V0Q3VycmVuY3lTeW1ib2x9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Fic3RyYWN0TnVtYmVyRXJyb3JzQ29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC1udW1iZXItZXJyb3JzLmNvbXBvbmVudCc7XG5pbXBvcnQge0RBVEFfRklFTERfUE9SVEFMX0RBVEEsIERhdGFGaWVsZFBvcnRhbERhdGF9IGZyb20gXCIuLi8uLi9tb2RlbHMvZGF0YS1maWVsZC1wb3J0YWwtZGF0YS1pbmplY3Rpb24tdG9rZW5cIjtcbmltcG9ydCB7TnVtYmVyRmllbGR9IGZyb20gXCIuLi9tb2RlbHMvbnVtYmVyLWZpZWxkXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWN1cnJlbmN5LWZpZWxkJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RDdXJyZW5jeU51bWJlckZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3ROdW1iZXJFcnJvcnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIHRyYW5zZm9ybWVkVmFsdWU6IHN0cmluZztcbiAgICBmaWVsZFR5cGU6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgTlVNQkVSX1RZUEUgPSAnbnVtYmVyJztcbiAgICBwdWJsaWMgcmVhZG9ubHkgVEVYVF9UWVBFID0gJ3RleHQnO1xuICAgIHB1YmxpYyByZWFkb25seSBXSElURVNQQUNFID0gJyAnO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQV9GSUVMRF9QT1JUQUxfREFUQSkgZGF0YUZpZWxkUG9ydGFsRGF0YTogRGF0YUZpZWxkUG9ydGFsRGF0YTxOdW1iZXJGaWVsZD4pIHtcbiAgICAgICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSwgZGF0YUZpZWxkUG9ydGFsRGF0YSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRUeXBlID0gdGhpcy5URVhUX1RZUEU7XG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLnRyYW5zZm9ybUN1cnJlbmN5KHRoaXMuZGF0YUZpZWxkLnZhbHVlPy50b1N0cmluZygpKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGRUeXBlID09PSB0aGlzLlRFWFRfVFlQRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy50cmFuc2Zvcm1DdXJyZW5jeSh2YWx1ZS50b1N0cmluZygpKSArIHRoaXMuV0hJVEVTUEFDRTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtZWRWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIHRyYW5zZm9ybVRvVGV4dChldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5maWVsZFR5cGUgPSB0aGlzLlRFWFRfVFlQRTtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy50cmFuc2Zvcm1DdXJyZW5jeSh0YXJnZXQudmFsdWUpO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybVRvTnVtYmVyKCkge1xuICAgICAgICB0aGlzLmZpZWxkVHlwZSA9IHRoaXMuTlVNQkVSX1RZUEU7XG4gICAgICAgIHRoaXMudHJhbnNmb3JtZWRWYWx1ZSA9ICEhdGhpcy5kYXRhRmllbGQudmFsdWUgPyB0aGlzLmRhdGFGaWVsZC52YWx1ZS50b1N0cmluZygpIDogJzAnO1xuICAgIH1cblxuICAgIGdldEN1cnJlbmN5U3ltYm9sKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFGaWVsZC5fZm9ybWF0RmlsdGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmRhdGFGaWVsZC5jb21wb25lbnQucHJvcGVydGllc1snY29kZSddLFxuICAgICAgICAgICAgICAgICd3aWRlJywgdGhpcy5kYXRhRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2xvY2FsZSddKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0Q3VycmVuY3lTeW1ib2wodGhpcy5kYXRhRmllbGQuX2Zvcm1hdEZpbHRlci5jb2RlLCAnd2lkZScsIHRoaXMuZGF0YUZpZWxkLl9mb3JtYXRGaWx0ZXIubG9jYWxlKTtcbiAgICB9XG5cbiAgICBpc051bWJlclR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkVHlwZSA9PT0gdGhpcy5OVU1CRVJfVFlQRTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybUN1cnJlbmN5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgICAgICB2YWx1ZSA9ICEhdmFsdWUgPyB2YWx1ZSA6ICcwJztcbiAgICAgICAgaWYgKHRoaXMuZGF0YUZpZWxkLl9mb3JtYXRGaWx0ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5UGlwZS50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2NvZGUnXSxcbiAgICAgICAgICAgICAgICAnc3ltYm9sJyxcbiAgICAgICAgICAgICAgICAnMS4nICsgdGhpcy5kYXRhRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2ZyYWN0aW9uU2l6ZSddICsgJy0nICsgdGhpcy5kYXRhRmllbGQuY29tcG9uZW50LnByb3BlcnRpZXNbJ2ZyYWN0aW9uU2l6ZSddLFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLmNvbXBvbmVudC5wcm9wZXJ0aWVzWydsb2NhbGUnXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5UGlwZS50cmFuc2Zvcm0oXG4gICAgICAgICAgICBwYXJzZUZsb2F0KHZhbHVlKSxcbiAgICAgICAgICAgIHRoaXMuZGF0YUZpZWxkLl9mb3JtYXRGaWx0ZXIuY29kZSxcbiAgICAgICAgICAgICdzeW1ib2wnLFxuICAgICAgICAgICAgJzEuJyArIHRoaXMuZGF0YUZpZWxkLl9mb3JtYXRGaWx0ZXIuZnJhY3Rpb25TaXplICsgJy0nICsgdGhpcy5kYXRhRmllbGQuX2Zvcm1hdEZpbHRlci5mcmFjdGlvblNpemUsXG4gICAgICAgICAgICB0aGlzLmRhdGFGaWVsZC5fZm9ybWF0RmlsdGVyLmxvY2FsZSk7XG4gICAgfVxufVxuIl19