@douglas-serena/ng-inputs
Version:
angular entry library
86 lines • 11.5 kB
JavaScript
import { DatePipe } from '@angular/common';
import { Injectable } from '@angular/core';
import IMask from 'imask';
import SimpleMaskMoney from 'simple-mask-money';
import { NgInputConfigService } from './ng-input-config.service';
import calcJs from '@douglas-serena/calc.js';
import { MASKS } from './MASKS';
import * as i0 from "@angular/core";
import * as i1 from "./ng-input-config.service";
import * as i2 from "@angular/common";
export class NgInputMasksService {
constructor(configService, datePipe) {
this.configService = configService;
this.datePipe = datePipe;
}
format(value, masksType, options) {
masksType = masksType.toUpperCase();
if (masksType === 'DATE') {
return this.datePipe.transform(value, (options === null || options === void 0 ? void 0 : options.mask) === undefined ? 'dd/MM/yyyy' : options.mask);
}
if (masksType === 'CURRENCY' || masksType === 'PERCENT') {
const config = this.configService[masksType.toLowerCase()];
if ((options === null || options === void 0 ? void 0 : options.allowNegative) !== undefined)
config.allowNegative = options.allowNegative;
value = calcJs(`${value}`.replace(/[,.]/g, '.'))
.toString()
.replace('.', config.decimalSeparator)
.replace(config.decimalSeparator + '00', '');
return SimpleMaskMoney.formatToCurrency(value, config);
}
if (masksType === 'AMOUNT') {
value = `${value}`;
if (/^0/g.test(value)) {
value = value.replace(/0+/, '');
}
let result = Number(value);
if (Number.isNaN(result)) {
result = 0;
}
return result.toFixed(3);
}
let mask = null;
if (masksType)
mask = MASKS[masksType];
if (options === null || options === void 0 ? void 0 : options.mask) {
mask = {
mask: options === null || options === void 0 ? void 0 : options.mask.split('|').map((mask) => ({
mask,
})),
};
}
return IMask.pipe(value, mask);
}
set(element, masksType, options) {
masksType = masksType.toUpperCase();
if (masksType === 'CURRENCY' || masksType === 'PERCENT') {
const config = this.configService[masksType.toLowerCase()];
if ((options === null || options === void 0 ? void 0 : options.allowNegative) !== undefined)
config.allowNegative = options.allowNegative;
return SimpleMaskMoney.setMask(element, config);
}
let mask = null;
if (masksType) {
mask = MASKS[masksType];
}
if (options === null || options === void 0 ? void 0 : options.mask) {
mask = {
mask: options === null || options === void 0 ? void 0 : options.mask.split('|').map((mask) => ({
mask,
})),
};
}
return IMask(element, mask);
}
}
NgInputMasksService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgInputMasksService_Factory() { return new NgInputMasksService(i0.ɵɵinject(i1.NgInputConfigService), i0.ɵɵinject(i2.DatePipe)); }, token: NgInputMasksService, providedIn: "root" });
NgInputMasksService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
NgInputMasksService.ctorParameters = () => [
{ type: NgInputConfigService },
{ type: DatePipe }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaW5wdXQtbWFza3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlucHV0cy9zcmMvbGliL2NvcmUvbmctaW5wdXQtbWFza3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxlQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsT0FBTyxNQUFNLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQUtoQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ1UsYUFBbUMsRUFDbkMsUUFBa0I7UUFEbEIsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDekIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFzQixFQUFFLFNBQWtCLEVBQUUsT0FBa0I7UUFDbkUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FDNUIsS0FBSyxFQUNMLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUksTUFBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDMUQsQ0FBQztTQUNIO1FBQ0QsSUFBSSxTQUFTLEtBQUssVUFBVSxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDdkQs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QUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDNUMsSUFBSTtpQkFDTCxDQUFDLENBQUM7YUFDc0IsQ0FBQztTQUM3QjtRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOzs7O1lBaEZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBUFEsb0JBQW9CO1lBTHBCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBJTWFzayBmcm9tICdpbWFzayc7XHJcbmltcG9ydCBTaW1wbGVNYXNrTW9uZXkgZnJvbSAnc2ltcGxlLW1hc2stbW9uZXknO1xyXG5pbXBvcnQgeyBOZ0lucHV0Q29uZmlnU2VydmljZSB9IGZyb20gJy4vbmctaW5wdXQtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IGNhbGNKcyBmcm9tICdAZG91Z2xhcy1zZXJlbmEvY2FsYy5qcyc7XHJcbmltcG9ydCB7IE1BU0tTIH0gZnJvbSAnLi9NQVNLUyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdJbnB1dE1hc2tzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IE5nSW5wdXRDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcclxuICApIHt9XHJcblxyXG4gIGZvcm1hdCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBtYXNrc1R5cGU/OiBzdHJpbmcsIG9wdGlvbnM/OiBJT3B0aW9ucykge1xyXG4gICAgbWFza3NUeXBlID0gbWFza3NUeXBlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBpZiAobWFza3NUeXBlID09PSAnREFURScpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKFxyXG4gICAgICAgIHZhbHVlLFxyXG4gICAgICAgIG9wdGlvbnM/Lm1hc2sgPT09IHVuZGVmaW5lZCA/ICdkZC9NTS95eXl5JyA6IG9wdGlvbnMubWFza1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKG1hc2tzVHlwZSA9PT0gJ0NVUlJFTkNZJyB8fCBtYXNrc1R5cGUgPT09ICdQRVJDRU5UJykge1xyXG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2VbbWFza3NUeXBlLnRvTG93ZXJDYXNlKCldO1xyXG4gICAgICBpZiAob3B0aW9ucz8uYWxsb3dOZWdhdGl2ZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIGNvbmZpZy5hbGxvd05lZ2F0aXZlID0gb3B0aW9ucy5hbGxvd05lZ2F0aXZlO1xyXG5cclxuICAgICAgdmFsdWUgPSBjYWxjSnMoYCR7dmFsdWV9YC5yZXBsYWNlKC9bLC5dL2csICcuJykpXHJcbiAgICAgICAgLnRvU3RyaW5nKClcclxuICAgICAgICAucmVwbGFjZSgnLicsIGNvbmZpZy5kZWNpbWFsU2VwYXJhdG9yIGFzIHN0cmluZylcclxuICAgICAgICAucmVwbGFjZSgoY29uZmlnLmRlY2ltYWxTZXBhcmF0b3IgYXMgc3RyaW5nKSArICcwMCcsICcnKTtcclxuXHJcbiAgICAgIHJldHVybiBTaW1wbGVNYXNrTW9uZXkuZm9ybWF0VG9DdXJyZW5jeSh2YWx1ZSwgY29uZmlnKTtcclxuICAgIH1cclxuICAgIGlmIChtYXNrc1R5cGUgPT09ICdBTU9VTlQnKSB7XHJcbiAgICAgIHZhbHVlID0gYCR7dmFsdWV9YDtcclxuXHJcbiAgICAgIGlmICgvXjAvZy50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvMCsvLCAnJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCByZXN1bHQgPSBOdW1iZXIodmFsdWUpO1xyXG5cclxuICAgICAgaWYgKE51bWJlci5pc05hTihyZXN1bHQpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHJlc3VsdC50b0ZpeGVkKDMpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBtYXNrOiBhbnkgPSBudWxsO1xyXG4gICAgaWYgKG1hc2tzVHlwZSkgbWFzayA9IE1BU0tTW21hc2tzVHlwZSBhcyBhbnldO1xyXG4gICAgaWYgKG9wdGlvbnM/Lm1hc2spIHtcclxuICAgICAgbWFzayA9IHtcclxuICAgICAgICBtYXNrOiBvcHRpb25zPy5tYXNrLnNwbGl0KCd8JykubWFwKChtYXNrKSA9PiAoe1xyXG4gICAgICAgICAgbWFzayxcclxuICAgICAgICB9KSksXHJcbiAgICAgIH0gYXMgSU1hc2suQW55TWFza2VkT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gSU1hc2sucGlwZSh2YWx1ZSwgbWFzayk7XHJcbiAgfVxyXG5cclxuICBzZXQoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgbWFza3NUeXBlOiBzdHJpbmcsIG9wdGlvbnM/OiBJT3B0aW9ucykge1xyXG4gICAgbWFza3NUeXBlID0gbWFza3NUeXBlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBpZiAobWFza3NUeXBlID09PSAnQ1VSUkVOQ1knIHx8IG1hc2tzVHlwZSA9PT0gJ1BFUkNFTlQnKSB7XHJcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZVttYXNrc1R5cGUudG9Mb3dlckNhc2UoKV07XHJcbiAgICAgIGlmIChvcHRpb25zPy5hbGxvd05lZ2F0aXZlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgY29uZmlnLmFsbG93TmVnYXRpdmUgPSBvcHRpb25zLmFsbG93TmVnYXRpdmU7XHJcbiAgICAgIHJldHVybiBTaW1wbGVNYXNrTW9uZXkuc2V0TWFzayhlbGVtZW50LCBjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBtYXNrOiBhbnkgPSBudWxsO1xyXG4gICAgaWYgKG1hc2tzVHlwZSkge1xyXG4gICAgICBtYXNrID0gTUFTS1NbbWFza3NUeXBlIGFzIGFueV07XHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9ucz8ubWFzaykge1xyXG4gICAgICBtYXNrID0ge1xyXG4gICAgICAgIG1hc2s6IG9wdGlvbnM/Lm1hc2suc3BsaXQoJ3wnKS5tYXAoKG1hc2spID0+ICh7XHJcbiAgICAgICAgICBtYXNrLFxyXG4gICAgICAgIH0pKSxcclxuICAgICAgfSBhcyBJTWFzay5BbnlNYXNrZWRPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBJTWFzayhlbGVtZW50LCBtYXNrKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBJT3B0aW9ucyB7XHJcbiAgYWxsb3dOZWdhdGl2ZT86IGJvb2xlYW47XHJcbiAgbWFzaz86IHN0cmluZztcclxufVxyXG4iXX0=