@sam-senior/phone-mask 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +20 -20
  2. package/esm2022/lib/phone-mask.component.mjs +115 -0
  3. package/esm2022/lib/phone-mask.enum.mjs +5 -0
  4. package/esm2022/lib/phone-mask.module.mjs +25 -0
  5. package/esm2022/lib/phone-mask.pipe.mjs +33 -0
  6. package/esm2022/public_api.mjs +7 -0
  7. package/esm2022/sam-senior-phone-mask.mjs +5 -0
  8. package/fesm2022/sam-senior-phone-mask.mjs +180 -0
  9. package/fesm2022/sam-senior-phone-mask.mjs.map +1 -0
  10. package/{sam-senior-phone-mask.d.ts → index.d.ts} +1 -0
  11. package/lib/phone-mask.component.d.ts +5 -4
  12. package/lib/phone-mask.module.d.ts +8 -0
  13. package/lib/phone-mask.pipe.d.ts +3 -0
  14. package/package.json +19 -17
  15. package/bundles/sam-senior-phone-mask.umd.js +0 -281
  16. package/bundles/sam-senior-phone-mask.umd.js.map +0 -1
  17. package/bundles/sam-senior-phone-mask.umd.min.js +0 -2
  18. package/bundles/sam-senior-phone-mask.umd.min.js.map +0 -1
  19. package/esm2015/lib/phone-mask.component.js +0 -164
  20. package/esm2015/lib/phone-mask.enum.js +0 -11
  21. package/esm2015/lib/phone-mask.module.js +0 -24
  22. package/esm2015/lib/phone-mask.pipe.js +0 -44
  23. package/esm2015/public_api.js +0 -11
  24. package/esm2015/sam-senior-phone-mask.js +0 -9
  25. package/esm5/lib/phone-mask.component.js +0 -207
  26. package/esm5/lib/phone-mask.enum.js +0 -11
  27. package/esm5/lib/phone-mask.module.js +0 -28
  28. package/esm5/lib/phone-mask.pipe.js +0 -52
  29. package/esm5/public_api.js +0 -11
  30. package/esm5/sam-senior-phone-mask.js +0 -9
  31. package/fesm2015/sam-senior-phone-mask.js +0 -225
  32. package/fesm2015/sam-senior-phone-mask.js.map +0 -1
  33. package/fesm5/sam-senior-phone-mask.js +0 -277
  34. package/fesm5/sam-senior-phone-mask.js.map +0 -1
  35. package/sam-senior-phone-mask.metadata.json +0 -1
package/README.md CHANGED
@@ -1,20 +1,20 @@
1
- # Phone mask
2
- ***Como usar***
3
-
4
- Importe o `phone-mask` para o projeto e adicione a tag `<sam-phone-mask>` no HTML.
5
-
6
- **Parâmetros**
7
-
8
- 1. `formControlName`: Devido ao componente implementar a interface `ControlValueAcessor` é possível vincular diretamente com a API de Forms do Angular.
9
- 2. `inputId`: Id referente ao elemento HTML.
10
- 3. `placeholder`: Placeholder a ser exibido no elemento.
11
- 4. `disabled`: Parâmetro para desabilitar o elemento, também é possível pela API de Forms do Angular.
12
- 5. `styleClass`: utilizar para passagem de classes CSS para dentro do container.
13
-
14
- **Exemplo de implementação .html**
15
-
16
- <sam-phone-mask formControlName="number"
17
- placeholder="{{'sam.lobby.visitor_form_number_placeholder' | translate}}"
18
- inputId="number">
19
- </sam-phone-mask>
20
-
1
+ # Phone mask
2
+ ***Como usar***
3
+
4
+ Importe o `phone-mask` para o projeto e adicione a tag `<sam-phone-mask>` no HTML.
5
+
6
+ **Parâmetros**
7
+
8
+ 1. `formControlName`: Devido ao componente implementar a interface `ControlValueAcessor` é possível vincular diretamente com a API de Forms do Angular.
9
+ 2. `inputId`: Id referente ao elemento HTML.
10
+ 3. `placeholder`: Placeholder a ser exibido no elemento.
11
+ 4. `disabled`: Parâmetro para desabilitar o elemento, também é possível pela API de Forms do Angular.
12
+ 5. `styleClass`: utilizar para passagem de classes CSS para dentro do container.
13
+
14
+ **Exemplo de implementação .html**
15
+
16
+ <sam-phone-mask formControlName="number"
17
+ placeholder="{{'sam.lobby.visitor_form_number_placeholder' | translate}}"
18
+ inputId="number">
19
+ </sam-phone-mask>
20
+
@@ -0,0 +1,115 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { PhoneMaskEnum } from './phone-mask.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "primeng/inputtext";
7
+ export class PhoneMaskComponent {
8
+ inputId;
9
+ styleClass = '';
10
+ placeholder = '';
11
+ disabled = false;
12
+ phone = '';
13
+ onChange = (_) => { };
14
+ onTouched = () => { };
15
+ ngOnInit() {
16
+ }
17
+ registerOnChange(fn) {
18
+ this.onChange = fn;
19
+ }
20
+ registerOnTouched(fn) {
21
+ this.onTouched = fn;
22
+ }
23
+ writeValue(phone) {
24
+ if (phone) {
25
+ this.phone = this.applyMask(phone);
26
+ }
27
+ else {
28
+ this.phone = '';
29
+ }
30
+ }
31
+ setDisabledState(state) {
32
+ this.disabled = state;
33
+ }
34
+ onBlur() {
35
+ this.onTouched();
36
+ const raw = this.removeMask(this.phone);
37
+ this.onChange(raw);
38
+ }
39
+ onkeyup() {
40
+ const raw = this.removeMask(this.phone);
41
+ this.onChange(raw);
42
+ }
43
+ onInput(event) {
44
+ const input = event.target;
45
+ const raw = this.removeMask(input.value);
46
+ const masked = this.applyMask(raw);
47
+ this.phone = masked;
48
+ input.value = masked;
49
+ }
50
+ removeMask(value) {
51
+ return (value || '').replace(/[^0-9]/g, '');
52
+ }
53
+ applyMask(raw) {
54
+ if (!raw)
55
+ return '';
56
+ const digits = raw.replace(/[^0-9]/g, '').substring(0, 11);
57
+ if (digits.length <= PhoneMaskEnum.PHONE_DIGIT) {
58
+ // (XX) XXXX-XXXX
59
+ return digits.replace(/^(\d{0,2})(\d{0,4})(\d{0,4}).*/, (_, ddd, p1, p2) => {
60
+ let result = '';
61
+ if (ddd)
62
+ result += `(${ddd}`;
63
+ if (ddd.length === 2)
64
+ result += ') ';
65
+ if (p1)
66
+ result += p1;
67
+ if (p1.length === 4 && p2)
68
+ result += `-${p2}`;
69
+ return result;
70
+ });
71
+ }
72
+ else {
73
+ // (XX) XXXXX-XXXX
74
+ return digits.replace(/^(\d{0,2})(\d{0,5})(\d{0,4}).*/, (_, ddd, p1, p2) => {
75
+ let result = '';
76
+ if (ddd)
77
+ result += `(${ddd}`;
78
+ if (ddd.length === 2)
79
+ result += ') ';
80
+ if (p1)
81
+ result += p1;
82
+ if (p1.length === 5 && p2)
83
+ result += `-${p2}`;
84
+ return result;
85
+ });
86
+ }
87
+ }
88
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
89
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PhoneMaskComponent, selector: "sam-phone-mask", inputs: { inputId: "inputId", styleClass: "styleClass", placeholder: "placeholder", disabled: "disabled" }, providers: [
90
+ {
91
+ provide: NG_VALUE_ACCESSOR,
92
+ useExisting: PhoneMaskComponent,
93
+ multi: true
94
+ }
95
+ ], ngImport: i0, template: "<div class=\"required\">\r\n <input [id]=\"inputId\" [class]=\"styleClass\" [placeholder]=\"placeholder\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"phone\" class=\"ui-inputtext\" pInputText (blur)=\"onBlur()\" (keyup)=\"onkeyup()\" (input)=\"onInput($event)\" />\r\n</div>\r\n", styles: ["lib-sam-phone-mask.ng-dirty.ng-invalid input{border-color:#e74c3c}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }], encapsulation: i0.ViewEncapsulation.None });
96
+ }
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskComponent, decorators: [{
98
+ type: Component,
99
+ args: [{ selector: 'sam-phone-mask', providers: [
100
+ {
101
+ provide: NG_VALUE_ACCESSOR,
102
+ useExisting: PhoneMaskComponent,
103
+ multi: true
104
+ }
105
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"required\">\r\n <input [id]=\"inputId\" [class]=\"styleClass\" [placeholder]=\"placeholder\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"phone\" class=\"ui-inputtext\" pInputText (blur)=\"onBlur()\" (keyup)=\"onkeyup()\" (input)=\"onInput($event)\" />\r\n</div>\r\n", styles: ["lib-sam-phone-mask.ng-dirty.ng-invalid input{border-color:#e74c3c}\n"] }]
106
+ }], propDecorators: { inputId: [{
107
+ type: Input
108
+ }], styleClass: [{
109
+ type: Input
110
+ }], placeholder: [{
111
+ type: Input
112
+ }], disabled: [{
113
+ type: Input
114
+ }] } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYW0tcGhvbmUtbWFzay9zcmMvbGliL3Bob25lLW1hc2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FtLXBob25lLW1hc2svc3JjL2xpYi9waG9uZS1tYXNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBZWxELE1BQU0sT0FBTyxrQkFBa0I7SUFFcEIsT0FBTyxDQUFTO0lBQ2hCLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRW5CLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFVixRQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQixTQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTlCLFFBQVE7SUFDUixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBb0I7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sU0FBUyxDQUFDLEdBQVc7UUFDM0IsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTNELElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0MsaUJBQWlCO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUN6RSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksR0FBRztvQkFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUM7b0JBQUUsTUFBTSxJQUFJLElBQUksQ0FBQztnQkFDckMsSUFBSSxFQUFFO29CQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRTtvQkFBRSxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLGtCQUFrQjtZQUNsQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDekUsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixJQUFJLEdBQUc7b0JBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQzdCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDO29CQUFFLE1BQU0sSUFBSSxJQUFJLENBQUM7Z0JBQ3JDLElBQUksRUFBRTtvQkFBRSxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUNyQixJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUU7b0JBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7d0dBbkZVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHFKQVRsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxrQkFBa0I7Z0JBQy9CLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNmSCwwUkFJQTs7NEZEY2Esa0JBQWtCO2tCQWI5QixTQUFTOytCQUNFLGdCQUFnQixhQUdmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsb0JBQW9COzRCQUMvQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUk1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgUGhvbmVNYXNrRW51bSB9IGZyb20gJy4vcGhvbmUtbWFzay5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FtLXBob25lLW1hc2snLFxyXG4gIHRlbXBsYXRlVXJsOiAncGhvbmUtbWFzay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtbWFzay5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IFBob25lTWFza0NvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG9uZU1hc2tDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0eWxlQ2xhc3MgPSAnJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBwaG9uZSA9ICcnO1xyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShwaG9uZTogc3RyaW5nKSB7XHJcbiAgICBpZiAocGhvbmUpIHtcclxuICAgICAgdGhpcy5waG9uZSA9IHRoaXMuYXBwbHlNYXNrKHBob25lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGhvbmUgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoc3RhdGU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBzdGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgcmF3ID0gdGhpcy5yZW1vdmVNYXNrKHRoaXMucGhvbmUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZShyYXcpO1xyXG4gIH1cclxuXHJcbiAgb25rZXl1cCgpIHtcclxuICAgIGNvbnN0IHJhdyA9IHRoaXMucmVtb3ZlTWFzayh0aGlzLnBob25lKTtcclxuICAgIHRoaXMub25DaGFuZ2UocmF3KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgcmF3ID0gdGhpcy5yZW1vdmVNYXNrKGlucHV0LnZhbHVlKTtcclxuICAgIGNvbnN0IG1hc2tlZCA9IHRoaXMuYXBwbHlNYXNrKHJhdyk7XHJcbiAgICB0aGlzLnBob25lID0gbWFza2VkO1xyXG4gICAgaW5wdXQudmFsdWUgPSBtYXNrZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZU1hc2sodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHZhbHVlIHx8ICcnKS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseU1hc2socmF3OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFyYXcpIHJldHVybiAnJztcclxuICAgIGNvbnN0IGRpZ2l0cyA9IHJhdy5yZXBsYWNlKC9bXjAtOV0vZywgJycpLnN1YnN0cmluZygwLCAxMSk7XHJcblxyXG4gICAgaWYgKGRpZ2l0cy5sZW5ndGggPD0gUGhvbmVNYXNrRW51bS5QSE9ORV9ESUdJVCkge1xyXG4gICAgICAvLyAoWFgpIFhYWFgtWFhYWFxyXG4gICAgICByZXR1cm4gZGlnaXRzLnJlcGxhY2UoL14oXFxkezAsMn0pKFxcZHswLDR9KShcXGR7MCw0fSkuKi8sIChfLCBkZGQsIHAxLCBwMikgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgICAgICBpZiAoZGRkKSByZXN1bHQgKz0gYCgke2RkZH1gO1xyXG4gICAgICAgIGlmIChkZGQubGVuZ3RoID09PSAyKSByZXN1bHQgKz0gJykgJztcclxuICAgICAgICBpZiAocDEpIHJlc3VsdCArPSBwMTtcclxuICAgICAgICBpZiAocDEubGVuZ3RoID09PSA0ICYmIHAyKSByZXN1bHQgKz0gYC0ke3AyfWA7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAoWFgpIFhYWFhYLVhYWFhcclxuICAgICAgcmV0dXJuIGRpZ2l0cy5yZXBsYWNlKC9eKFxcZHswLDJ9KShcXGR7MCw1fSkoXFxkezAsNH0pLiovLCAoXywgZGRkLCBwMSwgcDIpID0+IHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICAgICAgaWYgKGRkZCkgcmVzdWx0ICs9IGAoJHtkZGR9YDtcclxuICAgICAgICBpZiAoZGRkLmxlbmd0aCA9PT0gMikgcmVzdWx0ICs9ICcpICc7XHJcbiAgICAgICAgaWYgKHAxKSByZXN1bHQgKz0gcDE7XHJcbiAgICAgICAgaWYgKHAxLmxlbmd0aCA9PT0gNSAmJiBwMikgcmVzdWx0ICs9IGAtJHtwMn1gO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmVxdWlyZWRcIj5cclxuICA8aW5wdXQgW2lkXT1cImlucHV0SWRcIiBbY2xhc3NdPVwic3R5bGVDbGFzc1wiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInBob25lXCIgY2xhc3M9XCJ1aS1pbnB1dHRleHRcIiBwSW5wdXRUZXh0IChibHVyKT1cIm9uQmx1cigpXCIgKGtleXVwKT1cIm9ua2V5dXAoKVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiAvPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,5 @@
1
+ export var PhoneMaskEnum;
2
+ (function (PhoneMaskEnum) {
3
+ PhoneMaskEnum[PhoneMaskEnum["PHONE_DIGIT"] = 10] = "PHONE_DIGIT";
4
+ })(PhoneMaskEnum || (PhoneMaskEnum = {}));
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FtLXBob25lLW1hc2svc3JjL2xpYi9waG9uZS1tYXNrLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFFWDtBQUZELFdBQVksYUFBYTtJQUN2QixnRUFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBRlcsYUFBYSxLQUFiLGFBQWEsUUFFeEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQaG9uZU1hc2tFbnVtIHtcclxuICBQSE9ORV9ESUdJVCA9IDEwXHJcbn1cclxuIl19
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { InputTextModule } from 'primeng/inputtext';
4
+ import { PhoneMaskComponent } from './phone-mask.component';
5
+ import { PhoneMaskPipe } from './phone-mask.pipe';
6
+ import * as i0 from "@angular/core";
7
+ export class PhoneMaskModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, declarations: [PhoneMaskComponent, PhoneMaskPipe], imports: [FormsModule,
10
+ InputTextModule], exports: [PhoneMaskComponent, PhoneMaskPipe] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, imports: [FormsModule,
12
+ InputTextModule] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [
18
+ FormsModule,
19
+ InputTextModule
20
+ ],
21
+ declarations: [PhoneMaskComponent, PhoneMaskPipe],
22
+ exports: [PhoneMaskComponent, PhoneMaskPipe]
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYW0tcGhvbmUtbWFzay9zcmMvbGliL3Bob25lLW1hc2subW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBVWxELE1BQU0sT0FBTyxlQUFlO3dHQUFmLGVBQWU7eUdBQWYsZUFBZSxpQkFIWCxrQkFBa0IsRUFBRSxhQUFhLGFBSDlDLFdBQVc7WUFDWCxlQUFlLGFBR1Asa0JBQWtCLEVBQUUsYUFBYTt5R0FFaEMsZUFBZSxZQU54QixXQUFXO1lBQ1gsZUFBZTs7NEZBS04sZUFBZTtrQkFSM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxlQUFlO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5cclxuaW1wb3J0IHsgUGhvbmVNYXNrQ29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1tYXNrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBob25lTWFza1BpcGUgfSBmcm9tICcuL3Bob25lLW1hc2sucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0TW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtQaG9uZU1hc2tDb21wb25lbnQsIFBob25lTWFza1BpcGVdLFxyXG4gIGV4cG9ydHM6IFtQaG9uZU1hc2tDb21wb25lbnQsIFBob25lTWFza1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG9uZU1hc2tNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { PhoneMaskEnum } from './phone-mask.enum';
3
+ import * as i0 from "@angular/core";
4
+ export class PhoneMaskPipe {
5
+ transform(phone) {
6
+ if (phone && phone.length >= PhoneMaskEnum.PHONE_DIGIT) {
7
+ const phoneArray = phone.split('');
8
+ const mask = `( )_ ${phoneArray.length > PhoneMaskEnum.PHONE_DIGIT ? ' ' : ''}_-_ `;
9
+ return mask.split('').reduce((maskedValue, value) => {
10
+ if (phoneArray && phoneArray.length > 0) {
11
+ if (value.match(' ')) {
12
+ return (maskedValue += phoneArray.shift());
13
+ }
14
+ else if (value.match('_')) {
15
+ return (maskedValue += ' ');
16
+ }
17
+ return (maskedValue += value ? value : '');
18
+ }
19
+ return maskedValue;
20
+ }, '');
21
+ }
22
+ return phone;
23
+ }
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
25
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskPipe, name: "samPhoneMaskPipe" });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskPipe, decorators: [{
28
+ type: Pipe,
29
+ args: [{
30
+ name: 'samPhoneMaskPipe'
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FtLXBob25lLW1hc2svc3JjL2xpYi9waG9uZS1tYXNrLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUtsRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHLFlBQVksVUFBVSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO1lBQzNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3hDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNyQixPQUFPLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUM3QyxDQUFDO3lCQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUM1QixPQUFPLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxDQUFDO29CQUM5QixDQUFDO29CQUNELE9BQU8sQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO2dCQUNELE9BQU8sV0FBVyxDQUFDO1lBQ3JCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNULENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0dBbEJVLGFBQWE7c0dBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsa0JBQWtCO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFBob25lTWFza0VudW0gfSBmcm9tICcuL3Bob25lLW1hc2suZW51bSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3NhbVBob25lTWFza1BpcGUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG9uZU1hc2tQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHBob25lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHBob25lICYmIHBob25lLmxlbmd0aCA+PSBQaG9uZU1hc2tFbnVtLlBIT05FX0RJR0lUKSB7XHJcbiAgICAgIGNvbnN0IHBob25lQXJyYXkgPSBwaG9uZS5zcGxpdCgnJyk7XHJcbiAgICAgIGNvbnN0IG1hc2sgPSBgKCAgKV8gICAgJHtwaG9uZUFycmF5Lmxlbmd0aCA+IFBob25lTWFza0VudW0uUEhPTkVfRElHSVQgPyAnICcgOiAnJ31fLV8gICAgYDtcclxuICAgICAgcmV0dXJuIG1hc2suc3BsaXQoJycpLnJlZHVjZSgobWFza2VkVmFsdWUsIHZhbHVlKSA9PiB7XHJcbiAgICAgICAgaWYgKHBob25lQXJyYXkgJiYgcGhvbmVBcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBpZiAodmFsdWUubWF0Y2goJyAnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gKG1hc2tlZFZhbHVlICs9IHBob25lQXJyYXkuc2hpZnQoKSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLm1hdGNoKCdfJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChtYXNrZWRWYWx1ZSArPSAnICcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIChtYXNrZWRWYWx1ZSArPSB2YWx1ZSA/IHZhbHVlIDogJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbWFza2VkVmFsdWU7XHJcbiAgICAgIH0sICcnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwaG9uZTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Public API Surface of sam-phone-mask
3
+ */
4
+ export * from './lib/phone-mask.pipe';
5
+ export * from './lib/phone-mask.component';
6
+ export * from './lib/phone-mask.module';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NhbS1waG9uZS1tYXNrL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2FtLXBob25lLW1hc2tcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bob25lLW1hc2sucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bob25lLW1hc2suY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGhvbmUtbWFzay5tb2R1bGUnO1xyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtLXNlbmlvci1waG9uZS1tYXNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2FtLXBob25lLW1hc2svc3JjL3NhbS1zZW5pb3ItcGhvbmUtbWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,180 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Pipe, Component, ViewEncapsulation, Input, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
+ import * as i2 from 'primeng/inputtext';
6
+ import { InputTextModule } from 'primeng/inputtext';
7
+
8
+ var PhoneMaskEnum;
9
+ (function (PhoneMaskEnum) {
10
+ PhoneMaskEnum[PhoneMaskEnum["PHONE_DIGIT"] = 10] = "PHONE_DIGIT";
11
+ })(PhoneMaskEnum || (PhoneMaskEnum = {}));
12
+
13
+ class PhoneMaskPipe {
14
+ transform(phone) {
15
+ if (phone && phone.length >= PhoneMaskEnum.PHONE_DIGIT) {
16
+ const phoneArray = phone.split('');
17
+ const mask = `( )_ ${phoneArray.length > PhoneMaskEnum.PHONE_DIGIT ? ' ' : ''}_-_ `;
18
+ return mask.split('').reduce((maskedValue, value) => {
19
+ if (phoneArray && phoneArray.length > 0) {
20
+ if (value.match(' ')) {
21
+ return (maskedValue += phoneArray.shift());
22
+ }
23
+ else if (value.match('_')) {
24
+ return (maskedValue += ' ');
25
+ }
26
+ return (maskedValue += value ? value : '');
27
+ }
28
+ return maskedValue;
29
+ }, '');
30
+ }
31
+ return phone;
32
+ }
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
34
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskPipe, name: "samPhoneMaskPipe" });
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskPipe, decorators: [{
37
+ type: Pipe,
38
+ args: [{
39
+ name: 'samPhoneMaskPipe'
40
+ }]
41
+ }] });
42
+
43
+ class PhoneMaskComponent {
44
+ inputId;
45
+ styleClass = '';
46
+ placeholder = '';
47
+ disabled = false;
48
+ phone = '';
49
+ onChange = (_) => { };
50
+ onTouched = () => { };
51
+ ngOnInit() {
52
+ }
53
+ registerOnChange(fn) {
54
+ this.onChange = fn;
55
+ }
56
+ registerOnTouched(fn) {
57
+ this.onTouched = fn;
58
+ }
59
+ writeValue(phone) {
60
+ if (phone) {
61
+ this.phone = this.applyMask(phone);
62
+ }
63
+ else {
64
+ this.phone = '';
65
+ }
66
+ }
67
+ setDisabledState(state) {
68
+ this.disabled = state;
69
+ }
70
+ onBlur() {
71
+ this.onTouched();
72
+ const raw = this.removeMask(this.phone);
73
+ this.onChange(raw);
74
+ }
75
+ onkeyup() {
76
+ const raw = this.removeMask(this.phone);
77
+ this.onChange(raw);
78
+ }
79
+ onInput(event) {
80
+ const input = event.target;
81
+ const raw = this.removeMask(input.value);
82
+ const masked = this.applyMask(raw);
83
+ this.phone = masked;
84
+ input.value = masked;
85
+ }
86
+ removeMask(value) {
87
+ return (value || '').replace(/[^0-9]/g, '');
88
+ }
89
+ applyMask(raw) {
90
+ if (!raw)
91
+ return '';
92
+ const digits = raw.replace(/[^0-9]/g, '').substring(0, 11);
93
+ if (digits.length <= PhoneMaskEnum.PHONE_DIGIT) {
94
+ // (XX) XXXX-XXXX
95
+ return digits.replace(/^(\d{0,2})(\d{0,4})(\d{0,4}).*/, (_, ddd, p1, p2) => {
96
+ let result = '';
97
+ if (ddd)
98
+ result += `(${ddd}`;
99
+ if (ddd.length === 2)
100
+ result += ') ';
101
+ if (p1)
102
+ result += p1;
103
+ if (p1.length === 4 && p2)
104
+ result += `-${p2}`;
105
+ return result;
106
+ });
107
+ }
108
+ else {
109
+ // (XX) XXXXX-XXXX
110
+ return digits.replace(/^(\d{0,2})(\d{0,5})(\d{0,4}).*/, (_, ddd, p1, p2) => {
111
+ let result = '';
112
+ if (ddd)
113
+ result += `(${ddd}`;
114
+ if (ddd.length === 2)
115
+ result += ') ';
116
+ if (p1)
117
+ result += p1;
118
+ if (p1.length === 5 && p2)
119
+ result += `-${p2}`;
120
+ return result;
121
+ });
122
+ }
123
+ }
124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PhoneMaskComponent, selector: "sam-phone-mask", inputs: { inputId: "inputId", styleClass: "styleClass", placeholder: "placeholder", disabled: "disabled" }, providers: [
126
+ {
127
+ provide: NG_VALUE_ACCESSOR,
128
+ useExisting: PhoneMaskComponent,
129
+ multi: true
130
+ }
131
+ ], ngImport: i0, template: "<div class=\"required\">\r\n <input [id]=\"inputId\" [class]=\"styleClass\" [placeholder]=\"placeholder\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"phone\" class=\"ui-inputtext\" pInputText (blur)=\"onBlur()\" (keyup)=\"onkeyup()\" (input)=\"onInput($event)\" />\r\n</div>\r\n", styles: ["lib-sam-phone-mask.ng-dirty.ng-invalid input{border-color:#e74c3c}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }], encapsulation: i0.ViewEncapsulation.None });
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ selector: 'sam-phone-mask', providers: [
136
+ {
137
+ provide: NG_VALUE_ACCESSOR,
138
+ useExisting: PhoneMaskComponent,
139
+ multi: true
140
+ }
141
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"required\">\r\n <input [id]=\"inputId\" [class]=\"styleClass\" [placeholder]=\"placeholder\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"phone\" class=\"ui-inputtext\" pInputText (blur)=\"onBlur()\" (keyup)=\"onkeyup()\" (input)=\"onInput($event)\" />\r\n</div>\r\n", styles: ["lib-sam-phone-mask.ng-dirty.ng-invalid input{border-color:#e74c3c}\n"] }]
142
+ }], propDecorators: { inputId: [{
143
+ type: Input
144
+ }], styleClass: [{
145
+ type: Input
146
+ }], placeholder: [{
147
+ type: Input
148
+ }], disabled: [{
149
+ type: Input
150
+ }] } });
151
+
152
+ class PhoneMaskModule {
153
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
154
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, declarations: [PhoneMaskComponent, PhoneMaskPipe], imports: [FormsModule,
155
+ InputTextModule], exports: [PhoneMaskComponent, PhoneMaskPipe] });
156
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, imports: [FormsModule,
157
+ InputTextModule] });
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PhoneMaskModule, decorators: [{
160
+ type: NgModule,
161
+ args: [{
162
+ imports: [
163
+ FormsModule,
164
+ InputTextModule
165
+ ],
166
+ declarations: [PhoneMaskComponent, PhoneMaskPipe],
167
+ exports: [PhoneMaskComponent, PhoneMaskPipe]
168
+ }]
169
+ }] });
170
+
171
+ /*
172
+ * Public API Surface of sam-phone-mask
173
+ */
174
+
175
+ /**
176
+ * Generated bundle index. Do not edit.
177
+ */
178
+
179
+ export { PhoneMaskComponent, PhoneMaskModule, PhoneMaskPipe };
180
+ //# sourceMappingURL=sam-senior-phone-mask.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sam-senior-phone-mask.mjs","sources":["../../../projects/sam-phone-mask/src/lib/phone-mask.enum.ts","../../../projects/sam-phone-mask/src/lib/phone-mask.pipe.ts","../../../projects/sam-phone-mask/src/lib/phone-mask.component.ts","../../../projects/sam-phone-mask/src/lib/phone-mask.component.html","../../../projects/sam-phone-mask/src/lib/phone-mask.module.ts","../../../projects/sam-phone-mask/src/public_api.ts","../../../projects/sam-phone-mask/src/sam-senior-phone-mask.ts"],"sourcesContent":["export enum PhoneMaskEnum {\r\n PHONE_DIGIT = 10\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { PhoneMaskEnum } from './phone-mask.enum';\r\n\r\n@Pipe({\r\n name: 'samPhoneMaskPipe'\r\n})\r\nexport class PhoneMaskPipe implements PipeTransform {\r\n transform(phone: string): string {\r\n if (phone && phone.length >= PhoneMaskEnum.PHONE_DIGIT) {\r\n const phoneArray = phone.split('');\r\n const mask = `( )_ ${phoneArray.length > PhoneMaskEnum.PHONE_DIGIT ? ' ' : ''}_-_ `;\r\n return mask.split('').reduce((maskedValue, value) => {\r\n if (phoneArray && phoneArray.length > 0) {\r\n if (value.match(' ')) {\r\n return (maskedValue += phoneArray.shift());\r\n } else if (value.match('_')) {\r\n return (maskedValue += ' ');\r\n }\r\n return (maskedValue += value ? value : '');\r\n }\r\n return maskedValue;\r\n }, '');\r\n }\r\n return phone;\r\n }\r\n}\r\n","import { Component, HostListener, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { PhoneMaskEnum } from './phone-mask.enum';\r\n\r\n@Component({\r\n selector: 'sam-phone-mask',\r\n templateUrl: 'phone-mask.component.html',\r\n styleUrls: ['./phone-mask.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: PhoneMaskComponent,\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PhoneMaskComponent implements ControlValueAccessor, OnInit {\r\n\r\n @Input() inputId: string;\r\n @Input() styleClass = '';\r\n @Input() placeholder = '';\r\n @Input() disabled = false;\r\n\r\n public phone = '';\r\n\r\n private onChange = (_: any) => { };\r\n private onTouched = () => { };\r\n\r\n ngOnInit() {\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(phone: string) {\r\n if (phone) {\r\n this.phone = this.applyMask(phone);\r\n } else {\r\n this.phone = '';\r\n }\r\n }\r\n\r\n setDisabledState(state: boolean) {\r\n this.disabled = state;\r\n }\r\n\r\n public onBlur() {\r\n this.onTouched();\r\n const raw = this.removeMask(this.phone);\r\n this.onChange(raw);\r\n }\r\n\r\n onkeyup() {\r\n const raw = this.removeMask(this.phone);\r\n this.onChange(raw);\r\n }\r\n\r\n onInput(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n const raw = this.removeMask(input.value);\r\n const masked = this.applyMask(raw);\r\n this.phone = masked;\r\n input.value = masked;\r\n }\r\n\r\n private removeMask(value: string): string {\r\n return (value || '').replace(/[^0-9]/g, '');\r\n }\r\n\r\n private applyMask(raw: string): string {\r\n if (!raw) return '';\r\n const digits = raw.replace(/[^0-9]/g, '').substring(0, 11);\r\n\r\n if (digits.length <= PhoneMaskEnum.PHONE_DIGIT) {\r\n // (XX) XXXX-XXXX\r\n return digits.replace(/^(\\d{0,2})(\\d{0,4})(\\d{0,4}).*/, (_, ddd, p1, p2) => {\r\n let result = '';\r\n if (ddd) result += `(${ddd}`;\r\n if (ddd.length === 2) result += ') ';\r\n if (p1) result += p1;\r\n if (p1.length === 4 && p2) result += `-${p2}`;\r\n return result;\r\n });\r\n } else {\r\n // (XX) XXXXX-XXXX\r\n return digits.replace(/^(\\d{0,2})(\\d{0,5})(\\d{0,4}).*/, (_, ddd, p1, p2) => {\r\n let result = '';\r\n if (ddd) result += `(${ddd}`;\r\n if (ddd.length === 2) result += ') ';\r\n if (p1) result += p1;\r\n if (p1.length === 5 && p2) result += `-${p2}`;\r\n return result;\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"required\">\r\n <input [id]=\"inputId\" [class]=\"styleClass\" [placeholder]=\"placeholder\" [disabled]=\"disabled\"\r\n [(ngModel)]=\"phone\" class=\"ui-inputtext\" pInputText (blur)=\"onBlur()\" (keyup)=\"onkeyup()\" (input)=\"onInput($event)\" />\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\nimport { PhoneMaskComponent } from './phone-mask.component';\r\nimport { PhoneMaskPipe } from './phone-mask.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n InputTextModule\r\n ],\r\n declarations: [PhoneMaskComponent, PhoneMaskPipe],\r\n exports: [PhoneMaskComponent, PhoneMaskPipe]\r\n})\r\nexport class PhoneMaskModule { }\r\n","/*\r\n * Public API Surface of sam-phone-mask\r\n */\r\nexport * from './lib/phone-mask.pipe';\r\nexport * from './lib/phone-mask.component';\r\nexport * from './lib/phone-mask.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@sam-senior/phone-mask" />
4
5
  export * from './public_api';
@@ -1,12 +1,12 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
3
4
  export declare class PhoneMaskComponent implements ControlValueAccessor, OnInit {
4
5
  inputId: string;
5
6
  styleClass: string;
6
7
  placeholder: string;
7
8
  disabled: boolean;
8
9
  phone: string;
9
- mask: any;
10
10
  private onChange;
11
11
  private onTouched;
12
12
  ngOnInit(): void;
@@ -16,8 +16,9 @@ export declare class PhoneMaskComponent implements ControlValueAccessor, OnInit
16
16
  setDisabledState(state: boolean): void;
17
17
  onBlur(): void;
18
18
  onkeyup(): void;
19
+ onInput(event: Event): void;
19
20
  private removeMask;
20
- private setPhoneMaskWithOptional;
21
- private setPhoneMask;
22
- private setCellPhoneMask;
21
+ private applyMask;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<PhoneMaskComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<PhoneMaskComponent, "sam-phone-mask", never, { "inputId": { "alias": "inputId"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
23
24
  }
@@ -1,2 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./phone-mask.component";
3
+ import * as i2 from "./phone-mask.pipe";
4
+ import * as i3 from "@angular/forms";
5
+ import * as i4 from "primeng/inputtext";
1
6
  export declare class PhoneMaskModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<PhoneMaskModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PhoneMaskModule, [typeof i1.PhoneMaskComponent, typeof i2.PhoneMaskPipe], [typeof i3.FormsModule, typeof i4.InputTextModule], [typeof i1.PhoneMaskComponent, typeof i2.PhoneMaskPipe]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<PhoneMaskModule>;
2
10
  }
@@ -1,4 +1,7 @@
1
1
  import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
2
3
  export declare class PhoneMaskPipe implements PipeTransform {
3
4
  transform(phone: string): string;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<PhoneMaskPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<PhoneMaskPipe, "samPhoneMaskPipe", false>;
4
7
  }
package/package.json CHANGED
@@ -1,24 +1,26 @@
1
1
  {
2
2
  "name": "@sam-senior/phone-mask",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^7.0.0",
6
- "@angular/core": "^7.0.0",
7
- "angular2-text-mask": "^9.0.0",
8
- "primeng": "^7.0.5",
9
- "@seniorsistemas/primeng-theme": "^5.0.6"
5
+ "@angular/common": "^18.0.0",
6
+ "@angular/core": "^18.0.0",
7
+ "@seniorsistemas/primeng-theme": "^10.0.7"
8
+ },
9
+ "module": "fesm2022/sam-senior-phone-mask.mjs",
10
+ "typings": "index.d.ts",
11
+ "exports": {
12
+ "./package.json": {
13
+ "default": "./package.json"
14
+ },
15
+ ".": {
16
+ "types": "./index.d.ts",
17
+ "esm2022": "./esm2022/sam-senior-phone-mask.mjs",
18
+ "esm": "./esm2022/sam-senior-phone-mask.mjs",
19
+ "default": "./fesm2022/sam-senior-phone-mask.mjs"
20
+ }
10
21
  },
11
- "main": "bundles/sam-senior-phone-mask.umd.js",
12
- "module": "fesm5/sam-senior-phone-mask.js",
13
- "es2015": "fesm2015/sam-senior-phone-mask.js",
14
- "esm5": "esm5/sam-senior-phone-mask.js",
15
- "esm2015": "esm2015/sam-senior-phone-mask.js",
16
- "fesm5": "fesm5/sam-senior-phone-mask.js",
17
- "fesm2015": "fesm2015/sam-senior-phone-mask.js",
18
- "typings": "sam-senior-phone-mask.d.ts",
19
- "metadata": "sam-senior-phone-mask.metadata.json",
20
22
  "sideEffects": false,
21
23
  "dependencies": {
22
- "tslib": "^1.9.0"
24
+ "tslib": "^2.3.0"
23
25
  }
24
- }
26
+ }