@cauca-911/input-validators 18.0.0 → 19.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.
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Directive, Output, HostListener, NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
2
+ import { EventEmitter, Directive, Output, HostListener } from '@angular/core';
4
3
 
5
4
  class Gsm7bitChars {
6
5
  static { this.gsm7bitChars = '@£$¥èéùìòÇ\\nØø\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà'; }
@@ -10,6 +9,65 @@ class Gsm7bitChars {
10
9
  static { this.gsm7bitExtOnlyRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitCharsExt + ']*$'); }
11
10
  }
12
11
 
12
+ class SmsAvoidCharactersDirective {
13
+ constructor(elementRef) {
14
+ this.elementRef = elementRef;
15
+ this.charsToAvoidChanged = new EventEmitter();
16
+ this.charsToReplaceChanged = new EventEmitter();
17
+ this.charsToAvoid = [];
18
+ this.charsToReplace = [];
19
+ }
20
+ ngAfterViewInit() {
21
+ this.onInput();
22
+ }
23
+ onInput() {
24
+ this.checkCharacterException(this.elementRef.nativeElement.value);
25
+ }
26
+ checkCharacterException(text) {
27
+ const charsList = this.listUTF16Chars(text);
28
+ if (this.compareCharsList(this.charsToAvoid, charsList.charsToAvoid)) {
29
+ this.charsToAvoid = this.removeDuplicates(charsList.charsToAvoid);
30
+ this.charsToAvoidChanged.emit(this.charsToAvoid);
31
+ }
32
+ if (this.compareCharsList(this.charsToReplace, charsList.charsToReplace)) {
33
+ this.charsToReplace = this.removeDuplicates(charsList.charsToReplace);
34
+ this.charsToReplaceChanged.emit(this.charsToReplace);
35
+ }
36
+ }
37
+ listUTF16Chars(text) {
38
+ const charToAvoidOrReplace = text.replace(new RegExp('([' + Gsm7bitChars.gsm7bitChars + ']+)', 'g'), '');
39
+ const charToReplace = charToAvoidOrReplace.replace(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'), '');
40
+ const charToAvoid = charToAvoidOrReplace.match(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'));
41
+ return {
42
+ charsToAvoid: charToAvoid ? charToAvoid[0].split('') : [],
43
+ charsToReplace: charToReplace ? charToReplace.split('') : []
44
+ };
45
+ }
46
+ compareCharsList(list1, list2) {
47
+ return JSON.stringify(list1) !== JSON.stringify(list2);
48
+ }
49
+ removeDuplicates(items) {
50
+ return [...new Set(items)];
51
+ }
52
+ static { this.ɵfac = function SmsAvoidCharactersDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SmsAvoidCharactersDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
53
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SmsAvoidCharactersDirective, selectors: [["", "caucaSmsAvoidCharacters", ""]], hostBindings: function SmsAvoidCharactersDirective_HostBindings(rf, ctx) { if (rf & 1) {
54
+ i0.ɵɵlistener("input", function SmsAvoidCharactersDirective_input_HostBindingHandler() { return ctx.onInput(); });
55
+ } }, outputs: { charsToAvoidChanged: "charsToAvoidChanged", charsToReplaceChanged: "charsToReplaceChanged" } }); }
56
+ }
57
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SmsAvoidCharactersDirective, [{
58
+ type: Directive,
59
+ args: [{
60
+ selector: '[caucaSmsAvoidCharacters]',
61
+ }]
62
+ }], () => [{ type: i0.ElementRef }], { charsToAvoidChanged: [{
63
+ type: Output
64
+ }], charsToReplaceChanged: [{
65
+ type: Output
66
+ }], onInput: [{
67
+ type: HostListener,
68
+ args: [':input']
69
+ }] }); })();
70
+
13
71
  class SmsSegmentCalculatorDirective {
14
72
  constructor(elementRef) {
15
73
  this.elementRef = elementRef;
@@ -88,7 +146,7 @@ class SmsSegmentCalculatorDirective {
88
146
  return 'UTF16';
89
147
  }
90
148
  }
91
- static { this.ɵfac = function SmsSegmentCalculatorDirective_Factory(t) { return new (t || SmsSegmentCalculatorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
149
+ static { this.ɵfac = function SmsSegmentCalculatorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SmsSegmentCalculatorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
92
150
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SmsSegmentCalculatorDirective, selectors: [["", "caucaSmsSegmentCalculator", ""]], hostBindings: function SmsSegmentCalculatorDirective_HostBindings(rf, ctx) { if (rf & 1) {
93
151
  i0.ɵɵlistener("input", function SmsSegmentCalculatorDirective_input_HostBindingHandler() { return ctx.onInput(); });
94
152
  } }, outputs: { segmentCountChanged: "segmentCountChanged" } }); }
@@ -105,65 +163,6 @@ class SmsSegmentCalculatorDirective {
105
163
  args: [':input']
106
164
  }] }); })();
107
165
 
108
- class SmsAvoidCharactersDirective {
109
- constructor(elementRef) {
110
- this.elementRef = elementRef;
111
- this.charsToAvoidChanged = new EventEmitter();
112
- this.charsToReplaceChanged = new EventEmitter();
113
- this.charsToAvoid = [];
114
- this.charsToReplace = [];
115
- }
116
- ngAfterViewInit() {
117
- this.onInput();
118
- }
119
- onInput() {
120
- this.checkCharacterException(this.elementRef.nativeElement.value);
121
- }
122
- checkCharacterException(text) {
123
- const charsList = this.listUTF16Chars(text);
124
- if (this.compareCharsList(this.charsToAvoid, charsList.charsToAvoid)) {
125
- this.charsToAvoid = this.removeDuplicates(charsList.charsToAvoid);
126
- this.charsToAvoidChanged.emit(this.charsToAvoid);
127
- }
128
- if (this.compareCharsList(this.charsToReplace, charsList.charsToReplace)) {
129
- this.charsToReplace = this.removeDuplicates(charsList.charsToReplace);
130
- this.charsToReplaceChanged.emit(this.charsToReplace);
131
- }
132
- }
133
- listUTF16Chars(text) {
134
- const charToAvoidOrReplace = text.replace(new RegExp('([' + Gsm7bitChars.gsm7bitChars + ']+)', 'g'), '');
135
- const charToReplace = charToAvoidOrReplace.replace(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'), '');
136
- const charToAvoid = charToAvoidOrReplace.match(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'));
137
- return {
138
- charsToAvoid: charToAvoid ? charToAvoid[0].split('') : [],
139
- charsToReplace: charToReplace ? charToReplace.split('') : []
140
- };
141
- }
142
- compareCharsList(list1, list2) {
143
- return JSON.stringify(list1) !== JSON.stringify(list2);
144
- }
145
- removeDuplicates(items) {
146
- return [...new Set(items)];
147
- }
148
- static { this.ɵfac = function SmsAvoidCharactersDirective_Factory(t) { return new (t || SmsAvoidCharactersDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
149
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SmsAvoidCharactersDirective, selectors: [["", "caucaSmsAvoidCharacters", ""]], hostBindings: function SmsAvoidCharactersDirective_HostBindings(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵlistener("input", function SmsAvoidCharactersDirective_input_HostBindingHandler() { return ctx.onInput(); });
151
- } }, outputs: { charsToAvoidChanged: "charsToAvoidChanged", charsToReplaceChanged: "charsToReplaceChanged" } }); }
152
- }
153
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SmsAvoidCharactersDirective, [{
154
- type: Directive,
155
- args: [{
156
- selector: '[caucaSmsAvoidCharacters]'
157
- }]
158
- }], () => [{ type: i0.ElementRef }], { charsToAvoidChanged: [{
159
- type: Output
160
- }], charsToReplaceChanged: [{
161
- type: Output
162
- }], onInput: [{
163
- type: HostListener,
164
- args: [':input']
165
- }] }); })();
166
-
167
166
  class PhoneNumberDetectorDirective {
168
167
  constructor(elementRef) {
169
168
  this.elementRef = elementRef;
@@ -190,7 +189,7 @@ class PhoneNumberDetectorDirective {
190
189
  const regex = /\(?(\d{3})\)?[- .]?(\d{3})[- .]?(\d{4})/gm;
191
190
  return regex.test(text);
192
191
  }
193
- static { this.ɵfac = function PhoneNumberDetectorDirective_Factory(t) { return new (t || PhoneNumberDetectorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
192
+ static { this.ɵfac = function PhoneNumberDetectorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PhoneNumberDetectorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
194
193
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PhoneNumberDetectorDirective, selectors: [["", "caucaPhoneNumberDetector", ""]], hostBindings: function PhoneNumberDetectorDirective_HostBindings(rf, ctx) { if (rf & 1) {
195
194
  i0.ɵɵlistener("input", function PhoneNumberDetectorDirective_input_HostBindingHandler() { return ctx.onInput(); });
196
195
  } }, outputs: { hasPhoneNumberChanged: "hasPhoneNumberChanged" } }); }
@@ -198,7 +197,7 @@ class PhoneNumberDetectorDirective {
198
197
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PhoneNumberDetectorDirective, [{
199
198
  type: Directive,
200
199
  args: [{
201
- selector: '[caucaPhoneNumberDetector]'
200
+ selector: '[caucaPhoneNumberDetector]',
202
201
  }]
203
202
  }], () => [{ type: i0.ElementRef }], { hasPhoneNumberChanged: [{
204
203
  type: Output
@@ -248,7 +247,7 @@ class UrlDetectorDirective {
248
247
  const urls = text.match(fullUrl);
249
248
  return urls.some((url) => url.length > 120);
250
249
  }
251
- static { this.ɵfac = function UrlDetectorDirective_Factory(t) { return new (t || UrlDetectorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
250
+ static { this.ɵfac = function UrlDetectorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UrlDetectorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
252
251
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: UrlDetectorDirective, selectors: [["", "caucaUrlDetector", ""]], hostBindings: function UrlDetectorDirective_HostBindings(rf, ctx) { if (rf & 1) {
253
252
  i0.ɵɵlistener("input", function UrlDetectorDirective_input_HostBindingHandler() { return ctx.onInput(); });
254
253
  } }, outputs: { hasUrlChanged: "hasUrlChanged", hasLongUrlChanged: "hasLongUrlChanged" } }); }
@@ -256,7 +255,7 @@ class UrlDetectorDirective {
256
255
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlDetectorDirective, [{
257
256
  type: Directive,
258
257
  args: [{
259
- selector: '[caucaUrlDetector]'
258
+ selector: '[caucaUrlDetector]',
260
259
  }]
261
260
  }], () => [{ type: i0.ElementRef }], { hasUrlChanged: [{
262
261
  type: Output
@@ -267,39 +266,6 @@ class UrlDetectorDirective {
267
266
  args: [':input']
268
267
  }] }); })();
269
268
 
270
- class CaucaInputValidatorsModule {
271
- static { this.ɵfac = function CaucaInputValidatorsModule_Factory(t) { return new (t || CaucaInputValidatorsModule)(); }; }
272
- static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CaucaInputValidatorsModule }); }
273
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] }); }
274
- }
275
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaInputValidatorsModule, [{
276
- type: NgModule,
277
- args: [{
278
- declarations: [
279
- SmsSegmentCalculatorDirective,
280
- SmsAvoidCharactersDirective,
281
- PhoneNumberDetectorDirective,
282
- UrlDetectorDirective,
283
- ],
284
- exports: [
285
- SmsSegmentCalculatorDirective,
286
- SmsAvoidCharactersDirective,
287
- PhoneNumberDetectorDirective,
288
- UrlDetectorDirective,
289
- ],
290
- imports: [
291
- CommonModule
292
- ],
293
- }]
294
- }], null, null); })();
295
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CaucaInputValidatorsModule, { declarations: [SmsSegmentCalculatorDirective,
296
- SmsAvoidCharactersDirective,
297
- PhoneNumberDetectorDirective,
298
- UrlDetectorDirective], imports: [CommonModule], exports: [SmsSegmentCalculatorDirective,
299
- SmsAvoidCharactersDirective,
300
- PhoneNumberDetectorDirective,
301
- UrlDetectorDirective] }); })();
302
-
303
269
  /*
304
270
  * Public API Surface of cauca-input-validators
305
271
  */
@@ -308,5 +274,5 @@ class CaucaInputValidatorsModule {
308
274
  * Generated bundle index. Do not edit.
309
275
  */
310
276
 
311
- export { CaucaInputValidatorsModule, PhoneNumberDetectorDirective, SmsAvoidCharactersDirective, SmsSegmentCalculatorDirective, UrlDetectorDirective };
277
+ export { PhoneNumberDetectorDirective, SmsAvoidCharactersDirective, SmsSegmentCalculatorDirective, UrlDetectorDirective };
312
278
  //# sourceMappingURL=cauca-911-input-validators.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cauca-911-input-validators.mjs","sources":["../../../projects/cauca-input-validators/src/lib/shared/models/gsm-7bit-chars.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/sms-segment-calculator.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/sms-avoid-characters.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/phone-number-detector.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/url-detector.directive.ts","../../../projects/cauca-input-validators/src/lib/cauca-input-validators.module.ts","../../../projects/cauca-input-validators/src/public-api.ts","../../../projects/cauca-input-validators/src/cauca-911-input-validators.ts"],"sourcesContent":["export class Gsm7bitChars {\n public static gsm7bitChars = '@£$¥èéùìòÇ\\\\nØø\\\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\\\\"#¤%&\\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà';\n public static gsm7bitCharsExt = '\\\\^{}\\\\\\\\\\\\[~\\\\]|€';\n public static gsm7bitRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + ']*$');\n public static gsm7bitExtRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + Gsm7bitChars.gsm7bitCharsExt + ']*$');\n public static gsm7bitExtOnlyRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitCharsExt + ']*$');\n}","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\nimport { Gsm7bitChars } from '../models/gsm-7bit-chars';\n\n@Directive({\n selector: '[caucaSmsSegmentCalculator]',\n})\nexport class SmsSegmentCalculatorDirective implements AfterViewInit {\n @Output() public segmentCountChanged: EventEmitter<number> = new EventEmitter<number>();\n\n private segmentCount = 0;\n private messageLength = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7: 160,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7ext: 160,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n UTF16: 70\n };\n private multiMessageLength = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7: 153,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7ext: 153,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n UTF16: 67\n };\n\n public constructor(\n private elementRef: ElementRef\n ) {\n }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkNumberOfSegment(this.elementRef.nativeElement.value);\n }\n\n private checkNumberOfSegment(text: string): void {\n const segmentCount = this.countNumberOfSegment(text);\n\n if (this.segmentCount !== segmentCount) {\n this.segmentCountChanged.emit(segmentCount);\n this.segmentCount = segmentCount;\n }\n }\n\n private countNumberOfSegment(text: string): number {\n if (!text) {\n return 0;\n }\n\n const length = this.countSmsChars(text);\n const charset = this.getCharset(text);\n const perMessage = (length > this.messageLength[charset] ? this.multiMessageLength[charset] : this.messageLength[charset]);\n\n return Math.ceil(length / perMessage);\n }\n\n private countSmsChars(text: string): number {\n let length = text.length;\n const charset = this.getCharset(text);\n\n if (charset === 'GSM7ext') {\n length += this.countGsm7bitExt(text);\n }\n\n return length;\n }\n\n private countGsm7bitExt(text: string): number {\n let char2;\n const chars = () => {\n let _i; let _len;\n const _results = [];\n\n for (_i = 0, _len = text.length; _i < _len; _i++) {\n char2 = text[_i];\n if (char2.match(Gsm7bitChars.gsm7bitExtOnlyRegExp) != null) {\n _results.push(char2);\n }\n }\n return _results;\n };\n\n return chars.length;\n }\n\n private getCharset(text: string): string {\n switch (false) {\n case text.match(Gsm7bitChars.gsm7bitRegExp) == null:\n return 'GSM7';\n case text.match(Gsm7bitChars.gsm7bitExtRegExp) == null:\n return 'GSM7ext';\n default:\n return 'UTF16';\n }\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\nimport { Gsm7bitChars } from '../models/gsm-7bit-chars';\n\ninterface CharsList {\n charsToAvoid: string[];\n charsToReplace: string[];\n}\n\n@Directive({\n selector: '[caucaSmsAvoidCharacters]'\n})\nexport class SmsAvoidCharactersDirective implements AfterViewInit {\n\n @Output() public charsToAvoidChanged: EventEmitter<string[]> = new EventEmitter<string[]>();\n @Output() public charsToReplaceChanged: EventEmitter<string[]> = new EventEmitter<string[]>();\n\n private charsToAvoid: string[] = [];\n private charsToReplace: string[] = [];\n\n public constructor(\n private elementRef: ElementRef\n ) {\n }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkCharacterException(this.elementRef.nativeElement.value);\n }\n\n private checkCharacterException(text: string): void {\n const charsList = this.listUTF16Chars(text);\n\n if (this.compareCharsList(this.charsToAvoid, charsList.charsToAvoid)) {\n this.charsToAvoid = this.removeDuplicates(charsList.charsToAvoid);\n this.charsToAvoidChanged.emit(this.charsToAvoid);\n }\n if (this.compareCharsList(this.charsToReplace, charsList.charsToReplace)) {\n this.charsToReplace = this.removeDuplicates(charsList.charsToReplace);\n this.charsToReplaceChanged.emit(this.charsToReplace);\n }\n }\n\n private listUTF16Chars(text: string): CharsList {\n const charToAvoidOrReplace = text.replace(new RegExp('([' + Gsm7bitChars.gsm7bitChars + ']+)', 'g'), '');\n const charToReplace = charToAvoidOrReplace.replace(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'), '');\n const charToAvoid = charToAvoidOrReplace.match(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'));\n\n return {\n charsToAvoid: charToAvoid ? charToAvoid[0].split('') : [],\n charsToReplace: charToReplace ? charToReplace.split('') : []\n };\n }\n\n private compareCharsList(list1: string[], list2: string[]): boolean {\n return JSON.stringify(list1) !== JSON.stringify(list2);\n }\n\n private removeDuplicates(items: string[]): string[] {\n return [...new Set(items)];\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[caucaPhoneNumberDetector]'\n})\nexport class PhoneNumberDetectorDirective implements AfterViewInit {\n\n @Output() public hasPhoneNumberChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private hasPhoneNumber = false;\n\n public constructor(\n private elementRef: ElementRef\n ) { }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkIfTextHasPhoneNumber(this.elementRef.nativeElement.value);\n }\n\n private checkIfTextHasPhoneNumber(text: string): void {\n const hasPhoneNumber = this.checkForPhoneNumber(text);\n\n if (this.hasPhoneNumber !== hasPhoneNumber) {\n this.hasPhoneNumberChanged.emit(hasPhoneNumber);\n this.hasPhoneNumber = hasPhoneNumber;\n }\n }\n\n private checkForPhoneNumber(text: string): boolean {\n if (!text) {\n return false;\n }\n\n const regex = /\\(?(\\d{3})\\)?[- .]?(\\d{3})[- .]?(\\d{4})/gm;\n\n return regex.test(text);\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[caucaUrlDetector]'\n})\nexport class UrlDetectorDirective implements AfterViewInit {\n\n @Output() public hasUrlChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() public hasLongUrlChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private hasUrl = false;\n private hasLongUrl = false;\n\n public constructor(\n private elementRef: ElementRef\n ) { }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkIfTextHasUrl(this.elementRef.nativeElement.value);\n }\n\n private checkIfTextHasUrl(text: string): void {\n const hasUrl = this.checkForUrl(text);\n\n if (this.hasUrl !== hasUrl) {\n this.hasUrl = hasUrl;\n this.hasUrlChanged.emit(hasUrl);\n\n const hasLongUrl = this.checkForLongUrl(text);\n\n if (this.hasLongUrl !== hasLongUrl) {\n this.hasLongUrl = hasUrl;\n this.hasLongUrlChanged.emit(hasUrl);\n }\n }\n }\n\n private checkForUrl(text: string): boolean {\n if (!text) {\n return false;\n }\n\n const partialUrl = /[a-zA-Z]{3,5}:\\/\\//gim;\n return partialUrl.test(text);\n }\n\n private checkForLongUrl(text: string): boolean {\n if (!text) {\n return false;\n }\n\n const fullUrl = /((?:([a-zA-Z]{3,5}):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?((?:(?:[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}\\.)+(?:(?:[a-zA-Z0-9\\-]*)))))(\\/(?:(?:[a-zA-Z0-9\\;\\/\\?\\:\\@\\&\\=\\#\\~\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?(?:\\b|$)/gim;\n const urls = text.match(fullUrl);\n\n return urls.some((url: string) => url.length > 120);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SmsSegmentCalculatorDirective } from './shared/directives/sms-segment-calculator.directive';\nimport { SmsAvoidCharactersDirective } from './shared/directives/sms-avoid-characters.directive';\nimport { PhoneNumberDetectorDirective } from './shared/directives/phone-number-detector.directive';\nimport { UrlDetectorDirective } from './shared/directives/url-detector.directive';\n\n@NgModule({\n declarations: [\n SmsSegmentCalculatorDirective,\n SmsAvoidCharactersDirective,\n PhoneNumberDetectorDirective,\n UrlDetectorDirective,\n ],\n exports: [\n SmsSegmentCalculatorDirective,\n SmsAvoidCharactersDirective,\n PhoneNumberDetectorDirective,\n UrlDetectorDirective,\n ],\n imports: [\n CommonModule\n ],\n})\nexport class CaucaInputValidatorsModule { }\n","/*\n * Public API Surface of cauca-input-validators\n */\n\nexport * from './lib/cauca-input-validators.module';\n\nexport { SmsAvoidCharactersDirective } from './lib/shared/directives/sms-avoid-characters.directive';\nexport { SmsSegmentCalculatorDirective } from './lib/shared/directives/sms-segment-calculator.directive';\nexport { PhoneNumberDetectorDirective } from './lib/shared/directives/phone-number-detector.directive';\nexport { UrlDetectorDirective } from './lib/shared/directives/url-detector.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cauca-911-input-validators.mjs","sources":["../../../projects/cauca-input-validators/src/lib/shared/models/gsm-7bit-chars.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/sms-avoid-characters.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/sms-segment-calculator.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/phone-number-detector.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/url-detector.directive.ts","../../../projects/cauca-input-validators/src/public-api.ts","../../../projects/cauca-input-validators/src/cauca-911-input-validators.ts"],"sourcesContent":["export class Gsm7bitChars {\n public static gsm7bitChars = '@£$¥èéùìòÇ\\\\nØø\\\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\\\\"#¤%&\\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà';\n public static gsm7bitCharsExt = '\\\\^{}\\\\\\\\\\\\[~\\\\]|€';\n public static gsm7bitRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + ']*$');\n public static gsm7bitExtRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + Gsm7bitChars.gsm7bitCharsExt + ']*$');\n public static gsm7bitExtOnlyRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitCharsExt + ']*$');\n}","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\nimport { Gsm7bitChars } from '../models/gsm-7bit-chars';\n\ninterface CharsList {\n charsToAvoid: string[];\n charsToReplace: string[];\n}\n\n@Directive({\n selector: '[caucaSmsAvoidCharacters]',\n})\nexport class SmsAvoidCharactersDirective implements AfterViewInit {\n\n @Output() public charsToAvoidChanged: EventEmitter<string[]> = new EventEmitter<string[]>();\n @Output() public charsToReplaceChanged: EventEmitter<string[]> = new EventEmitter<string[]>();\n\n private charsToAvoid: string[] = [];\n private charsToReplace: string[] = [];\n\n public constructor(\n private elementRef: ElementRef\n ) {\n }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkCharacterException(this.elementRef.nativeElement.value);\n }\n\n private checkCharacterException(text: string): void {\n const charsList = this.listUTF16Chars(text);\n\n if (this.compareCharsList(this.charsToAvoid, charsList.charsToAvoid)) {\n this.charsToAvoid = this.removeDuplicates(charsList.charsToAvoid);\n this.charsToAvoidChanged.emit(this.charsToAvoid);\n }\n if (this.compareCharsList(this.charsToReplace, charsList.charsToReplace)) {\n this.charsToReplace = this.removeDuplicates(charsList.charsToReplace);\n this.charsToReplaceChanged.emit(this.charsToReplace);\n }\n }\n\n private listUTF16Chars(text: string): CharsList {\n const charToAvoidOrReplace = text.replace(new RegExp('([' + Gsm7bitChars.gsm7bitChars + ']+)', 'g'), '');\n const charToReplace = charToAvoidOrReplace.replace(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'), '');\n const charToAvoid = charToAvoidOrReplace.match(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'));\n\n return {\n charsToAvoid: charToAvoid ? charToAvoid[0].split('') : [],\n charsToReplace: charToReplace ? charToReplace.split('') : []\n };\n }\n\n private compareCharsList(list1: string[], list2: string[]): boolean {\n return JSON.stringify(list1) !== JSON.stringify(list2);\n }\n\n private removeDuplicates(items: string[]): string[] {\n return [...new Set(items)];\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\nimport { Gsm7bitChars } from '../models/gsm-7bit-chars';\n\n@Directive({\n selector: '[caucaSmsSegmentCalculator]',\n})\nexport class SmsSegmentCalculatorDirective implements AfterViewInit {\n @Output() public segmentCountChanged: EventEmitter<number> = new EventEmitter<number>();\n\n private segmentCount = 0;\n private messageLength = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7: 160,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7ext: 160,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n UTF16: 70\n };\n private multiMessageLength = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7: 153,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7ext: 153,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n UTF16: 67\n };\n\n public constructor(\n private elementRef: ElementRef\n ) {\n }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkNumberOfSegment(this.elementRef.nativeElement.value);\n }\n\n private checkNumberOfSegment(text: string): void {\n const segmentCount = this.countNumberOfSegment(text);\n\n if (this.segmentCount !== segmentCount) {\n this.segmentCountChanged.emit(segmentCount);\n this.segmentCount = segmentCount;\n }\n }\n\n private countNumberOfSegment(text: string): number {\n if (!text) {\n return 0;\n }\n\n const length = this.countSmsChars(text);\n const charset = this.getCharset(text);\n const perMessage = (length > this.messageLength[charset] ? this.multiMessageLength[charset] : this.messageLength[charset]);\n\n return Math.ceil(length / perMessage);\n }\n\n private countSmsChars(text: string): number {\n let length = text.length;\n const charset = this.getCharset(text);\n\n if (charset === 'GSM7ext') {\n length += this.countGsm7bitExt(text);\n }\n\n return length;\n }\n\n private countGsm7bitExt(text: string): number {\n let char2;\n const chars = () => {\n let _i; let _len;\n const _results = [];\n\n for (_i = 0, _len = text.length; _i < _len; _i++) {\n char2 = text[_i];\n if (char2.match(Gsm7bitChars.gsm7bitExtOnlyRegExp) != null) {\n _results.push(char2);\n }\n }\n return _results;\n };\n\n return chars.length;\n }\n\n private getCharset(text: string): string {\n switch (false) {\n case text.match(Gsm7bitChars.gsm7bitRegExp) == null:\n return 'GSM7';\n case text.match(Gsm7bitChars.gsm7bitExtRegExp) == null:\n return 'GSM7ext';\n default:\n return 'UTF16';\n }\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[caucaPhoneNumberDetector]',\n})\nexport class PhoneNumberDetectorDirective implements AfterViewInit {\n\n @Output() public hasPhoneNumberChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private hasPhoneNumber = false;\n\n public constructor(\n private elementRef: ElementRef\n ) { }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkIfTextHasPhoneNumber(this.elementRef.nativeElement.value);\n }\n\n private checkIfTextHasPhoneNumber(text: string): void {\n const hasPhoneNumber = this.checkForPhoneNumber(text);\n\n if (this.hasPhoneNumber !== hasPhoneNumber) {\n this.hasPhoneNumberChanged.emit(hasPhoneNumber);\n this.hasPhoneNumber = hasPhoneNumber;\n }\n }\n\n private checkForPhoneNumber(text: string): boolean {\n if (!text) {\n return false;\n }\n\n const regex = /\\(?(\\d{3})\\)?[- .]?(\\d{3})[- .]?(\\d{4})/gm;\n\n return regex.test(text);\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[caucaUrlDetector]',\n})\nexport class UrlDetectorDirective implements AfterViewInit {\n\n @Output() public hasUrlChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() public hasLongUrlChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private hasUrl = false;\n private hasLongUrl = false;\n\n public constructor(\n private elementRef: ElementRef\n ) { }\n\n public ngAfterViewInit(): void {\n this.onInput();\n }\n\n @HostListener(':input')\n public onInput() {\n this.checkIfTextHasUrl(this.elementRef.nativeElement.value);\n }\n\n private checkIfTextHasUrl(text: string): void {\n const hasUrl = this.checkForUrl(text);\n\n if (this.hasUrl !== hasUrl) {\n this.hasUrl = hasUrl;\n this.hasUrlChanged.emit(hasUrl);\n\n const hasLongUrl = this.checkForLongUrl(text);\n\n if (this.hasLongUrl !== hasLongUrl) {\n this.hasLongUrl = hasUrl;\n this.hasLongUrlChanged.emit(hasUrl);\n }\n }\n }\n\n private checkForUrl(text: string): boolean {\n if (!text) {\n return false;\n }\n\n const partialUrl = /[a-zA-Z]{3,5}:\\/\\//gim;\n return partialUrl.test(text);\n }\n\n private checkForLongUrl(text: string): boolean {\n if (!text) {\n return false;\n }\n\n const fullUrl = /((?:([a-zA-Z]{3,5}):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?((?:(?:[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}\\.)+(?:(?:[a-zA-Z0-9\\-]*)))))(\\/(?:(?:[a-zA-Z0-9\\;\\/\\?\\:\\@\\&\\=\\#\\~\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?(?:\\b|$)/gim;\n const urls = text.match(fullUrl);\n\n return urls.some((url: string) => url.length > 120);\n }\n}\n","/*\n * Public API Surface of cauca-input-validators\n */\n\nexport { SmsAvoidCharactersDirective } from './lib/shared/directives/sms-avoid-characters.directive';\nexport { SmsSegmentCalculatorDirective } from './lib/shared/directives/sms-segment-calculator.directive';\nexport { PhoneNumberDetectorDirective } from './lib/shared/directives/phone-number-detector.directive';\nexport { UrlDetectorDirective } from './lib/shared/directives/url-detector.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -10,5 +10,5 @@ export declare class PhoneNumberDetectorDirective implements AfterViewInit {
10
10
  private checkIfTextHasPhoneNumber;
11
11
  private checkForPhoneNumber;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<PhoneNumberDetectorDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<PhoneNumberDetectorDirective, "[caucaPhoneNumberDetector]", never, {}, { "hasPhoneNumberChanged": "hasPhoneNumberChanged"; }, never, never, false, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PhoneNumberDetectorDirective, "[caucaPhoneNumberDetector]", never, {}, { "hasPhoneNumberChanged": "hasPhoneNumberChanged"; }, never, never, true, never>;
14
14
  }
@@ -14,5 +14,5 @@ export declare class SmsAvoidCharactersDirective implements AfterViewInit {
14
14
  private compareCharsList;
15
15
  private removeDuplicates;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<SmsAvoidCharactersDirective, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<SmsAvoidCharactersDirective, "[caucaSmsAvoidCharacters]", never, {}, { "charsToAvoidChanged": "charsToAvoidChanged"; "charsToReplaceChanged": "charsToReplaceChanged"; }, never, never, false, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SmsAvoidCharactersDirective, "[caucaSmsAvoidCharacters]", never, {}, { "charsToAvoidChanged": "charsToAvoidChanged"; "charsToReplaceChanged": "charsToReplaceChanged"; }, never, never, true, never>;
18
18
  }
@@ -15,5 +15,5 @@ export declare class SmsSegmentCalculatorDirective implements AfterViewInit {
15
15
  private countGsm7bitExt;
16
16
  private getCharset;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<SmsSegmentCalculatorDirective, never>;
18
- static ɵdir: i0.ɵɵDirectiveDeclaration<SmsSegmentCalculatorDirective, "[caucaSmsSegmentCalculator]", never, {}, { "segmentCountChanged": "segmentCountChanged"; }, never, never, false, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SmsSegmentCalculatorDirective, "[caucaSmsSegmentCalculator]", never, {}, { "segmentCountChanged": "segmentCountChanged"; }, never, never, true, never>;
19
19
  }
@@ -13,5 +13,5 @@ export declare class UrlDetectorDirective implements AfterViewInit {
13
13
  private checkForUrl;
14
14
  private checkForLongUrl;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<UrlDetectorDirective, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<UrlDetectorDirective, "[caucaUrlDetector]", never, {}, { "hasUrlChanged": "hasUrlChanged"; "hasLongUrlChanged": "hasLongUrlChanged"; }, never, never, false, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<UrlDetectorDirective, "[caucaUrlDetector]", never, {}, { "hasUrlChanged": "hasUrlChanged"; "hasLongUrlChanged": "hasLongUrlChanged"; }, never, never, true, never>;
17
17
  }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@cauca-911/input-validators",
3
- "version": "18.0.0",
3
+ "version": "19.0.0",
4
4
  "peerDependencies": {
5
- "@angular/common": ">=18.0.0",
6
- "@angular/core": ">=18.0.0",
7
- "@ngx-translate/core": ">=15.0.0",
5
+ "@angular/common": ">=19.1.0",
6
+ "@angular/core": ">=19.1.0",
7
+ "@ngx-translate/core": ">=16.0.0",
8
8
  "rxjs": ">=7.8.0"
9
9
  },
10
10
  "homepage": "https://cauca.ca",
@@ -26,8 +26,6 @@
26
26
  },
27
27
  ".": {
28
28
  "types": "./index.d.ts",
29
- "esm2022": "./esm2022/cauca-911-input-validators.mjs",
30
- "esm": "./esm2022/cauca-911-input-validators.mjs",
31
29
  "default": "./fesm2022/cauca-911-input-validators.mjs"
32
30
  }
33
31
  },
package/public-api.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './lib/cauca-input-validators.module';
2
1
  export { SmsAvoidCharactersDirective } from './lib/shared/directives/sms-avoid-characters.directive';
3
2
  export { SmsSegmentCalculatorDirective } from './lib/shared/directives/sms-segment-calculator.directive';
4
3
  export { PhoneNumberDetectorDirective } from './lib/shared/directives/phone-number-detector.directive';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1Y2EtOTExLWlucHV0LXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1pbnB1dC12YWxpZGF0b3JzL3NyYy9jYXVjYS05MTEtaW5wdXQtdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,40 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SmsSegmentCalculatorDirective } from './shared/directives/sms-segment-calculator.directive';
4
- import { SmsAvoidCharactersDirective } from './shared/directives/sms-avoid-characters.directive';
5
- import { PhoneNumberDetectorDirective } from './shared/directives/phone-number-detector.directive';
6
- import { UrlDetectorDirective } from './shared/directives/url-detector.directive';
7
- import * as i0 from "@angular/core";
8
- export class CaucaInputValidatorsModule {
9
- static { this.ɵfac = function CaucaInputValidatorsModule_Factory(t) { return new (t || CaucaInputValidatorsModule)(); }; }
10
- static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CaucaInputValidatorsModule }); }
11
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] }); }
12
- }
13
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaInputValidatorsModule, [{
14
- type: NgModule,
15
- args: [{
16
- declarations: [
17
- SmsSegmentCalculatorDirective,
18
- SmsAvoidCharactersDirective,
19
- PhoneNumberDetectorDirective,
20
- UrlDetectorDirective,
21
- ],
22
- exports: [
23
- SmsSegmentCalculatorDirective,
24
- SmsAvoidCharactersDirective,
25
- PhoneNumberDetectorDirective,
26
- UrlDetectorDirective,
27
- ],
28
- imports: [
29
- CommonModule
30
- ],
31
- }]
32
- }], null, null); })();
33
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CaucaInputValidatorsModule, { declarations: [SmsSegmentCalculatorDirective,
34
- SmsAvoidCharactersDirective,
35
- PhoneNumberDetectorDirective,
36
- UrlDetectorDirective], imports: [CommonModule], exports: [SmsSegmentCalculatorDirective,
37
- SmsAvoidCharactersDirective,
38
- PhoneNumberDetectorDirective,
39
- UrlDetectorDirective] }); })();
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F1Y2EtaW5wdXQtdmFsaWRhdG9ycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1pbnB1dC12YWxpZGF0b3JzL3NyYy9saWIvY2F1Y2EtaW5wdXQtdmFsaWRhdG9ycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDckcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDakcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBbUJsRixNQUFNLE9BQU8sMEJBQTBCOzJGQUExQiwwQkFBMEI7bUVBQTFCLDBCQUEwQjt1RUFIbkMsWUFBWTs7aUZBR0gsMEJBQTBCO2NBakJ0QyxRQUFRO2VBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLDZCQUE2QjtvQkFDN0IsMkJBQTJCO29CQUMzQiw0QkFBNEI7b0JBQzVCLG9CQUFvQjtpQkFDckI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDZCQUE2QjtvQkFDN0IsMkJBQTJCO29CQUMzQiw0QkFBNEI7b0JBQzVCLG9CQUFvQjtpQkFDckI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7YUFDRjs7d0ZBQ1ksMEJBQTBCLG1CQWZuQyw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1QixvQkFBb0IsYUFTcEIsWUFBWSxhQU5aLDZCQUE2QjtRQUM3QiwyQkFBMkI7UUFDM0IsNEJBQTRCO1FBQzVCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU21zU2VnbWVudENhbGN1bGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL3Ntcy1zZWdtZW50LWNhbGN1bGF0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNtc0F2b2lkQ2hhcmFjdGVyc0RpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvc21zLWF2b2lkLWNoYXJhY3RlcnMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBob25lTnVtYmVyRGV0ZWN0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL3Bob25lLW51bWJlci1kZXRlY3Rvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVXJsRGV0ZWN0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL3VybC1kZXRlY3Rvci5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTbXNTZWdtZW50Q2FsY3VsYXRvckRpcmVjdGl2ZSxcbiAgICBTbXNBdm9pZENoYXJhY3RlcnNEaXJlY3RpdmUsXG4gICAgUGhvbmVOdW1iZXJEZXRlY3RvckRpcmVjdGl2ZSxcbiAgICBVcmxEZXRlY3RvckRpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNtc1NlZ21lbnRDYWxjdWxhdG9yRGlyZWN0aXZlLFxuICAgIFNtc0F2b2lkQ2hhcmFjdGVyc0RpcmVjdGl2ZSxcbiAgICBQaG9uZU51bWJlckRldGVjdG9yRGlyZWN0aXZlLFxuICAgIFVybERldGVjdG9yRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhdWNhSW5wdXRWYWxpZGF0b3JzTW9kdWxlIHsgfVxuIl19
@@ -1,45 +0,0 @@
1
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PhoneNumberDetectorDirective {
4
- constructor(elementRef) {
5
- this.elementRef = elementRef;
6
- this.hasPhoneNumberChanged = new EventEmitter();
7
- this.hasPhoneNumber = false;
8
- }
9
- ngAfterViewInit() {
10
- this.onInput();
11
- }
12
- onInput() {
13
- this.checkIfTextHasPhoneNumber(this.elementRef.nativeElement.value);
14
- }
15
- checkIfTextHasPhoneNumber(text) {
16
- const hasPhoneNumber = this.checkForPhoneNumber(text);
17
- if (this.hasPhoneNumber !== hasPhoneNumber) {
18
- this.hasPhoneNumberChanged.emit(hasPhoneNumber);
19
- this.hasPhoneNumber = hasPhoneNumber;
20
- }
21
- }
22
- checkForPhoneNumber(text) {
23
- if (!text) {
24
- return false;
25
- }
26
- const regex = /\(?(\d{3})\)?[- .]?(\d{3})[- .]?(\d{4})/gm;
27
- return regex.test(text);
28
- }
29
- static { this.ɵfac = function PhoneNumberDetectorDirective_Factory(t) { return new (t || PhoneNumberDetectorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
30
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PhoneNumberDetectorDirective, selectors: [["", "caucaPhoneNumberDetector", ""]], hostBindings: function PhoneNumberDetectorDirective_HostBindings(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵlistener("input", function PhoneNumberDetectorDirective_input_HostBindingHandler() { return ctx.onInput(); });
32
- } }, outputs: { hasPhoneNumberChanged: "hasPhoneNumberChanged" } }); }
33
- }
34
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PhoneNumberDetectorDirective, [{
35
- type: Directive,
36
- args: [{
37
- selector: '[caucaPhoneNumberDetector]'
38
- }]
39
- }], () => [{ type: i0.ElementRef }], { hasPhoneNumberChanged: [{
40
- type: Output
41
- }], onInput: [{
42
- type: HostListener,
43
- args: [':input']
44
- }] }); })();
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLWRldGVjdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLWlucHV0LXZhbGlkYXRvcnMvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9waG9uZS1udW1iZXItZGV0ZWN0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt6RyxNQUFNLE9BQU8sNEJBQTRCO0lBTXZDLFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxmLDBCQUFxQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXBGLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBSTNCLENBQUM7SUFFRSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBR00sT0FBTztRQUNaLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU8seUJBQXlCLENBQUMsSUFBWTtRQUM1QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRywyQ0FBMkMsQ0FBQztRQUUxRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs2RkFwQ1UsNEJBQTRCO29FQUE1Qiw0QkFBNEI7WUFBNUIsaUdBQUEsYUFBUyxJQUFtQjs7O2lGQUE1Qiw0QkFBNEI7Y0FIeEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7YUFDdkM7MkNBR2tCLHFCQUFxQjtrQkFBckMsTUFBTTtZQWFBLE9BQU87a0JBRGIsWUFBWTttQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjYXVjYVBob25lTnVtYmVyRGV0ZWN0b3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBQaG9uZU51bWJlckRldGVjdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBoYXNQaG9uZU51bWJlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIGhhc1Bob25lTnVtYmVyID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vbklucHV0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCc6aW5wdXQnKVxuICBwdWJsaWMgb25JbnB1dCgpIHtcbiAgICB0aGlzLmNoZWNrSWZUZXh0SGFzUGhvbmVOdW1iZXIodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0lmVGV4dEhhc1Bob25lTnVtYmVyKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGhhc1Bob25lTnVtYmVyID0gdGhpcy5jaGVja0ZvclBob25lTnVtYmVyKHRleHQpO1xuXG4gICAgaWYgKHRoaXMuaGFzUGhvbmVOdW1iZXIgIT09IGhhc1Bob25lTnVtYmVyKSB7XG4gICAgICB0aGlzLmhhc1Bob25lTnVtYmVyQ2hhbmdlZC5lbWl0KGhhc1Bob25lTnVtYmVyKTtcbiAgICAgIHRoaXMuaGFzUGhvbmVOdW1iZXIgPSBoYXNQaG9uZU51bWJlcjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yUGhvbmVOdW1iZXIodGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdleCA9IC9cXCg/KFxcZHszfSlcXCk/Wy0gLl0/KFxcZHszfSlbLSAuXT8oXFxkezR9KS9nbTtcblxuICAgIHJldHVybiByZWdleC50ZXN0KHRleHQpO1xuICB9XG59XG4iXX0=
@@ -1,62 +0,0 @@
1
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
- import { Gsm7bitChars } from '../models/gsm-7bit-chars';
3
- import * as i0 from "@angular/core";
4
- export class SmsAvoidCharactersDirective {
5
- constructor(elementRef) {
6
- this.elementRef = elementRef;
7
- this.charsToAvoidChanged = new EventEmitter();
8
- this.charsToReplaceChanged = new EventEmitter();
9
- this.charsToAvoid = [];
10
- this.charsToReplace = [];
11
- }
12
- ngAfterViewInit() {
13
- this.onInput();
14
- }
15
- onInput() {
16
- this.checkCharacterException(this.elementRef.nativeElement.value);
17
- }
18
- checkCharacterException(text) {
19
- const charsList = this.listUTF16Chars(text);
20
- if (this.compareCharsList(this.charsToAvoid, charsList.charsToAvoid)) {
21
- this.charsToAvoid = this.removeDuplicates(charsList.charsToAvoid);
22
- this.charsToAvoidChanged.emit(this.charsToAvoid);
23
- }
24
- if (this.compareCharsList(this.charsToReplace, charsList.charsToReplace)) {
25
- this.charsToReplace = this.removeDuplicates(charsList.charsToReplace);
26
- this.charsToReplaceChanged.emit(this.charsToReplace);
27
- }
28
- }
29
- listUTF16Chars(text) {
30
- const charToAvoidOrReplace = text.replace(new RegExp('([' + Gsm7bitChars.gsm7bitChars + ']+)', 'g'), '');
31
- const charToReplace = charToAvoidOrReplace.replace(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'), '');
32
- const charToAvoid = charToAvoidOrReplace.match(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'));
33
- return {
34
- charsToAvoid: charToAvoid ? charToAvoid[0].split('') : [],
35
- charsToReplace: charToReplace ? charToReplace.split('') : []
36
- };
37
- }
38
- compareCharsList(list1, list2) {
39
- return JSON.stringify(list1) !== JSON.stringify(list2);
40
- }
41
- removeDuplicates(items) {
42
- return [...new Set(items)];
43
- }
44
- static { this.ɵfac = function SmsAvoidCharactersDirective_Factory(t) { return new (t || SmsAvoidCharactersDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
45
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SmsAvoidCharactersDirective, selectors: [["", "caucaSmsAvoidCharacters", ""]], hostBindings: function SmsAvoidCharactersDirective_HostBindings(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵlistener("input", function SmsAvoidCharactersDirective_input_HostBindingHandler() { return ctx.onInput(); });
47
- } }, outputs: { charsToAvoidChanged: "charsToAvoidChanged", charsToReplaceChanged: "charsToReplaceChanged" } }); }
48
- }
49
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SmsAvoidCharactersDirective, [{
50
- type: Directive,
51
- args: [{
52
- selector: '[caucaSmsAvoidCharacters]'
53
- }]
54
- }], () => [{ type: i0.ElementRef }], { charsToAvoidChanged: [{
55
- type: Output
56
- }], charsToReplaceChanged: [{
57
- type: Output
58
- }], onInput: [{
59
- type: HostListener,
60
- args: [':input']
61
- }] }); })();
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21zLWF2b2lkLWNoYXJhY3RlcnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F1Y2EtaW5wdXQtdmFsaWRhdG9ycy9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL3Ntcy1hdm9pZC1jaGFyYWN0ZXJzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBVXhELE1BQU0sT0FBTywyQkFBMkI7SUFRdEMsWUFDVSxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUGYsd0JBQW1CLEdBQTJCLElBQUksWUFBWSxFQUFZLENBQUM7UUFDM0UsMEJBQXFCLEdBQTJCLElBQUksWUFBWSxFQUFZLENBQUM7UUFFdEYsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFLdEMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFHTSxPQUFPO1FBQ1osSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxJQUFZO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDekUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVk7UUFDakMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsWUFBWSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RyxNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JILE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLGVBQWUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUU3RyxPQUFPO1lBQ0wsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RCxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzdELENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBZSxFQUFFLEtBQWU7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWU7UUFDdEMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzRGQXBEVSwyQkFBMkI7b0VBQTNCLDJCQUEyQjtZQUEzQixnR0FBQSxhQUFTLElBQWtCOzs7aUZBQTNCLDJCQUEyQjtjQUh2QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjthQUN0QzsyQ0FHa0IsbUJBQW1CO2tCQUFuQyxNQUFNO1lBQ1UscUJBQXFCO2tCQUFyQyxNQUFNO1lBZUEsT0FBTztrQkFEYixZQUFZO21CQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdzbTdiaXRDaGFycyB9IGZyb20gJy4uL21vZGVscy9nc20tN2JpdC1jaGFycyc7XG5cbmludGVyZmFjZSBDaGFyc0xpc3Qge1xuICBjaGFyc1RvQXZvaWQ6IHN0cmluZ1tdO1xuICBjaGFyc1RvUmVwbGFjZTogc3RyaW5nW107XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjYXVjYVNtc0F2b2lkQ2hhcmFjdGVyc10nXG59KVxuZXhwb3J0IGNsYXNzIFNtc0F2b2lkQ2hhcmFjdGVyc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhcnNUb0F2b2lkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhcnNUb1JlcGxhY2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBwcml2YXRlIGNoYXJzVG9Bdm9pZDogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBjaGFyc1RvUmVwbGFjZTogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uSW5wdXQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJzppbnB1dCcpXG4gIHB1YmxpYyBvbklucHV0KCkge1xuICAgIHRoaXMuY2hlY2tDaGFyYWN0ZXJFeGNlcHRpb24odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NoYXJhY3RlckV4Y2VwdGlvbih0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFyc0xpc3QgPSB0aGlzLmxpc3RVVEYxNkNoYXJzKHRleHQpO1xuXG4gICAgaWYgKHRoaXMuY29tcGFyZUNoYXJzTGlzdCh0aGlzLmNoYXJzVG9Bdm9pZCwgY2hhcnNMaXN0LmNoYXJzVG9Bdm9pZCkpIHtcbiAgICAgIHRoaXMuY2hhcnNUb0F2b2lkID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVzKGNoYXJzTGlzdC5jaGFyc1RvQXZvaWQpO1xuICAgICAgdGhpcy5jaGFyc1RvQXZvaWRDaGFuZ2VkLmVtaXQodGhpcy5jaGFyc1RvQXZvaWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wYXJlQ2hhcnNMaXN0KHRoaXMuY2hhcnNUb1JlcGxhY2UsIGNoYXJzTGlzdC5jaGFyc1RvUmVwbGFjZSkpIHtcbiAgICAgIHRoaXMuY2hhcnNUb1JlcGxhY2UgPSB0aGlzLnJlbW92ZUR1cGxpY2F0ZXMoY2hhcnNMaXN0LmNoYXJzVG9SZXBsYWNlKTtcbiAgICAgIHRoaXMuY2hhcnNUb1JlcGxhY2VDaGFuZ2VkLmVtaXQodGhpcy5jaGFyc1RvUmVwbGFjZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsaXN0VVRGMTZDaGFycyh0ZXh0OiBzdHJpbmcpOiBDaGFyc0xpc3Qge1xuICAgIGNvbnN0IGNoYXJUb0F2b2lkT3JSZXBsYWNlID0gdGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoJyhbJyArIEdzbTdiaXRDaGFycy5nc203Yml0Q2hhcnMgKyAnXSspJywgJ2cnKSwgJycpO1xuICAgIGNvbnN0IGNoYXJUb1JlcGxhY2UgPSBjaGFyVG9Bdm9pZE9yUmVwbGFjZS5yZXBsYWNlKG5ldyBSZWdFeHAoJyhbJyArIEdzbTdiaXRDaGFycy5nc203Yml0Q2hhcnNFeHQgKyAnXSspJywgJ2cnKSwgJycpO1xuICAgIGNvbnN0IGNoYXJUb0F2b2lkID0gY2hhclRvQXZvaWRPclJlcGxhY2UubWF0Y2gobmV3IFJlZ0V4cCgnKFsnICsgR3NtN2JpdENoYXJzLmdzbTdiaXRDaGFyc0V4dCArICddKyknLCAnZycpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjaGFyc1RvQXZvaWQ6IGNoYXJUb0F2b2lkID8gY2hhclRvQXZvaWRbMF0uc3BsaXQoJycpIDogW10sXG4gICAgICBjaGFyc1RvUmVwbGFjZTogY2hhclRvUmVwbGFjZSA/IGNoYXJUb1JlcGxhY2Uuc3BsaXQoJycpIDogW11cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlQ2hhcnNMaXN0KGxpc3QxOiBzdHJpbmdbXSwgbGlzdDI6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGxpc3QxKSAhPT0gSlNPTi5zdHJpbmdpZnkobGlzdDIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEdXBsaWNhdGVzKGl0ZW1zOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQoaXRlbXMpXTtcbiAgfVxufVxuIl19
@@ -1,98 +0,0 @@
1
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
- import { Gsm7bitChars } from '../models/gsm-7bit-chars';
3
- import * as i0 from "@angular/core";
4
- export class SmsSegmentCalculatorDirective {
5
- constructor(elementRef) {
6
- this.elementRef = elementRef;
7
- this.segmentCountChanged = new EventEmitter();
8
- this.segmentCount = 0;
9
- this.messageLength = {
10
- // eslint-disable-next-line @typescript-eslint/naming-convention
11
- GSM7: 160,
12
- // eslint-disable-next-line @typescript-eslint/naming-convention
13
- GSM7ext: 160,
14
- // eslint-disable-next-line @typescript-eslint/naming-convention
15
- UTF16: 70
16
- };
17
- this.multiMessageLength = {
18
- // eslint-disable-next-line @typescript-eslint/naming-convention
19
- GSM7: 153,
20
- // eslint-disable-next-line @typescript-eslint/naming-convention
21
- GSM7ext: 153,
22
- // eslint-disable-next-line @typescript-eslint/naming-convention
23
- UTF16: 67
24
- };
25
- }
26
- ngAfterViewInit() {
27
- this.onInput();
28
- }
29
- onInput() {
30
- this.checkNumberOfSegment(this.elementRef.nativeElement.value);
31
- }
32
- checkNumberOfSegment(text) {
33
- const segmentCount = this.countNumberOfSegment(text);
34
- if (this.segmentCount !== segmentCount) {
35
- this.segmentCountChanged.emit(segmentCount);
36
- this.segmentCount = segmentCount;
37
- }
38
- }
39
- countNumberOfSegment(text) {
40
- if (!text) {
41
- return 0;
42
- }
43
- const length = this.countSmsChars(text);
44
- const charset = this.getCharset(text);
45
- const perMessage = (length > this.messageLength[charset] ? this.multiMessageLength[charset] : this.messageLength[charset]);
46
- return Math.ceil(length / perMessage);
47
- }
48
- countSmsChars(text) {
49
- let length = text.length;
50
- const charset = this.getCharset(text);
51
- if (charset === 'GSM7ext') {
52
- length += this.countGsm7bitExt(text);
53
- }
54
- return length;
55
- }
56
- countGsm7bitExt(text) {
57
- let char2;
58
- const chars = () => {
59
- let _i;
60
- let _len;
61
- const _results = [];
62
- for (_i = 0, _len = text.length; _i < _len; _i++) {
63
- char2 = text[_i];
64
- if (char2.match(Gsm7bitChars.gsm7bitExtOnlyRegExp) != null) {
65
- _results.push(char2);
66
- }
67
- }
68
- return _results;
69
- };
70
- return chars.length;
71
- }
72
- getCharset(text) {
73
- switch (false) {
74
- case text.match(Gsm7bitChars.gsm7bitRegExp) == null:
75
- return 'GSM7';
76
- case text.match(Gsm7bitChars.gsm7bitExtRegExp) == null:
77
- return 'GSM7ext';
78
- default:
79
- return 'UTF16';
80
- }
81
- }
82
- static { this.ɵfac = function SmsSegmentCalculatorDirective_Factory(t) { return new (t || SmsSegmentCalculatorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
83
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SmsSegmentCalculatorDirective, selectors: [["", "caucaSmsSegmentCalculator", ""]], hostBindings: function SmsSegmentCalculatorDirective_HostBindings(rf, ctx) { if (rf & 1) {
84
- i0.ɵɵlistener("input", function SmsSegmentCalculatorDirective_input_HostBindingHandler() { return ctx.onInput(); });
85
- } }, outputs: { segmentCountChanged: "segmentCountChanged" } }); }
86
- }
87
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SmsSegmentCalculatorDirective, [{
88
- type: Directive,
89
- args: [{
90
- selector: '[caucaSmsSegmentCalculator]',
91
- }]
92
- }], () => [{ type: i0.ElementRef }], { segmentCountChanged: [{
93
- type: Output
94
- }], onInput: [{
95
- type: HostListener,
96
- args: [':input']
97
- }] }); })();
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21zLXNlZ21lbnQtY2FsY3VsYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1pbnB1dC12YWxpZGF0b3JzL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvc21zLXNlZ21lbnQtY2FsY3VsYXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUt4RCxNQUFNLE9BQU8sNkJBQTZCO0lBcUJ4QyxZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFyQmYsd0JBQW1CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFaEYsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsa0JBQWEsR0FBRztZQUN0QixnRUFBZ0U7WUFDaEUsSUFBSSxFQUFFLEdBQUc7WUFDVCxnRUFBZ0U7WUFDaEUsT0FBTyxFQUFFLEdBQUc7WUFDWixnRUFBZ0U7WUFDaEUsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO1FBQ00sdUJBQWtCLEdBQUc7WUFDekIsZ0VBQWdFO1lBQ2hFLElBQUksRUFBRSxHQUFHO1lBQ1QsZ0VBQWdFO1lBQ2hFLE9BQU8sRUFBRSxHQUFHO1lBQ1osZ0VBQWdFO1lBQ2hFLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQztJQUtGLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBR00sT0FBTztRQUNaLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFB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O2tCQURiLFlBQVk7bUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3NtN2JpdENoYXJzIH0gZnJvbSAnLi4vbW9kZWxzL2dzbS03Yml0LWNoYXJzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NhdWNhU21zU2VnbWVudENhbGN1bGF0b3JdJyxcbn0pXG5leHBvcnQgY2xhc3MgU21zU2VnbWVudENhbGN1bGF0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWdtZW50Q291bnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgc2VnbWVudENvdW50ID0gMDtcbiAgcHJpdmF0ZSBtZXNzYWdlTGVuZ3RoID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICBHU003OiAxNjAsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIEdTTTdleHQ6IDE2MCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgVVRGMTY6IDcwXG4gIH07XG4gIHByaXZhdGUgbXVsdGlNZXNzYWdlTGVuZ3RoID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgR1NNNzogMTUzLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgR1NNN2V4dDogMTUzLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgVVRGMTY6IDY3XG4gIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vbklucHV0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCc6aW5wdXQnKVxuICBwdWJsaWMgb25JbnB1dCgpIHtcbiAgICB0aGlzLmNoZWNrTnVtYmVyT2ZTZWdtZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tOdW1iZXJPZlNlZ21lbnQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2VnbWVudENvdW50ID0gdGhpcy5jb3VudE51bWJlck9mU2VnbWVudCh0ZXh0KTtcblxuICAgIGlmICh0aGlzLnNlZ21lbnRDb3VudCAhPT0gc2VnbWVudENvdW50KSB7XG4gICAgICB0aGlzLnNlZ21lbnRDb3VudENoYW5nZWQuZW1pdChzZWdtZW50Q291bnQpO1xuICAgICAgdGhpcy5zZWdtZW50Q291bnQgPSBzZWdtZW50Q291bnQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb3VudE51bWJlck9mU2VnbWVudCh0ZXh0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmICghdGV4dCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmNvdW50U21zQ2hhcnModGV4dCk7XG4gICAgY29uc3QgY2hhcnNldCA9IHRoaXMuZ2V0Q2hhcnNldCh0ZXh0KTtcbiAgICBjb25zdCBwZXJNZXNzYWdlID0gKGxlbmd0aCA+IHRoaXMubWVzc2FnZUxlbmd0aFtjaGFyc2V0XSA/IHRoaXMubXVsdGlNZXNzYWdlTGVuZ3RoW2NoYXJzZXRdIDogdGhpcy5tZXNzYWdlTGVuZ3RoW2NoYXJzZXRdKTtcblxuICAgIHJldHVybiBNYXRoLmNlaWwobGVuZ3RoIC8gcGVyTWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGNvdW50U21zQ2hhcnModGV4dDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgbGVuZ3RoID0gdGV4dC5sZW5ndGg7XG4gICAgY29uc3QgY2hhcnNldCA9IHRoaXMuZ2V0Q2hhcnNldCh0ZXh0KTtcblxuICAgIGlmIChjaGFyc2V0ID09PSAnR1NNN2V4dCcpIHtcbiAgICAgICAgbGVuZ3RoICs9IHRoaXMuY291bnRHc203Yml0RXh0KHRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBwcml2YXRlIGNvdW50R3NtN2JpdEV4dCh0ZXh0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBjaGFyMjtcbiAgICBjb25zdCBjaGFycyA9ICgpID0+IHtcbiAgICAgICAgbGV0IF9pOyBsZXQgX2xlbjtcbiAgICAgICAgY29uc3QgX3Jlc3VsdHMgPSBbXTtcblxuICAgICAgICBmb3IgKF9pID0gMCwgX2xlbiA9IHRleHQubGVuZ3RoOyBfaSA8IF9sZW47IF9pKyspIHtcbiAgICAgICAgICAgIGNoYXIyID0gdGV4dFtfaV07XG4gICAgICAgICAgICBpZiAoY2hhcjIubWF0Y2goR3NtN2JpdENoYXJzLmdzbTdiaXRFeHRPbmx5UmVnRXhwKSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgX3Jlc3VsdHMucHVzaChjaGFyMik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9yZXN1bHRzO1xuICAgIH07XG5cbiAgICByZXR1cm4gY2hhcnMubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDaGFyc2V0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChmYWxzZSkge1xuICAgICAgICBjYXNlIHRleHQubWF0Y2goR3NtN2JpdENoYXJzLmdzbTdiaXRSZWdFeHApID09IG51bGw6XG4gICAgICAgICAgICByZXR1cm4gJ0dTTTcnO1xuICAgICAgICBjYXNlIHRleHQubWF0Y2goR3NtN2JpdENoYXJzLmdzbTdiaXRFeHRSZWdFeHApID09IG51bGw6XG4gICAgICAgICAgICByZXR1cm4gJ0dTTTdleHQnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuICdVVEYxNic7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,62 +0,0 @@
1
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class UrlDetectorDirective {
4
- constructor(elementRef) {
5
- this.elementRef = elementRef;
6
- this.hasUrlChanged = new EventEmitter();
7
- this.hasLongUrlChanged = new EventEmitter();
8
- this.hasUrl = false;
9
- this.hasLongUrl = false;
10
- }
11
- ngAfterViewInit() {
12
- this.onInput();
13
- }
14
- onInput() {
15
- this.checkIfTextHasUrl(this.elementRef.nativeElement.value);
16
- }
17
- checkIfTextHasUrl(text) {
18
- const hasUrl = this.checkForUrl(text);
19
- if (this.hasUrl !== hasUrl) {
20
- this.hasUrl = hasUrl;
21
- this.hasUrlChanged.emit(hasUrl);
22
- const hasLongUrl = this.checkForLongUrl(text);
23
- if (this.hasLongUrl !== hasLongUrl) {
24
- this.hasLongUrl = hasUrl;
25
- this.hasLongUrlChanged.emit(hasUrl);
26
- }
27
- }
28
- }
29
- checkForUrl(text) {
30
- if (!text) {
31
- return false;
32
- }
33
- const partialUrl = /[a-zA-Z]{3,5}:\/\//gim;
34
- return partialUrl.test(text);
35
- }
36
- checkForLongUrl(text) {
37
- if (!text) {
38
- return false;
39
- }
40
- const fullUrl = /((?:([a-zA-Z]{3,5}):\/\/(?:(?:[a-zA-Z0-9\$\-\_\.\+\!\*\'\(\)\,\;\?\&\=]|(?:\%[a-fA-F0-9]{2})){1,64}(?:\:(?:[a-zA-Z0-9\$\-\_\.\+\!\*\'\(\)\,\;\?\&\=]|(?:\%[a-fA-F0-9]{2})){1,25})?\@)?)?((?:(?:[a-zA-Z0-9][a-zA-Z0-9\-]{0,64}\.)+(?:(?:[a-zA-Z0-9\-]*)))))(\/(?:(?:[a-zA-Z0-9\;\/\?\:\@\&\=\#\~\-\.\+\!\*\'\(\)\,\_])|(?:\%[a-fA-F0-9]{2}))*)?(?:\b|$)/gim;
41
- const urls = text.match(fullUrl);
42
- return urls.some((url) => url.length > 120);
43
- }
44
- static { this.ɵfac = function UrlDetectorDirective_Factory(t) { return new (t || UrlDetectorDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
45
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: UrlDetectorDirective, selectors: [["", "caucaUrlDetector", ""]], hostBindings: function UrlDetectorDirective_HostBindings(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵlistener("input", function UrlDetectorDirective_input_HostBindingHandler() { return ctx.onInput(); });
47
- } }, outputs: { hasUrlChanged: "hasUrlChanged", hasLongUrlChanged: "hasLongUrlChanged" } }); }
48
- }
49
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlDetectorDirective, [{
50
- type: Directive,
51
- args: [{
52
- selector: '[caucaUrlDetector]'
53
- }]
54
- }], () => [{ type: i0.ElementRef }], { hasUrlChanged: [{
55
- type: Output
56
- }], hasLongUrlChanged: [{
57
- type: Output
58
- }], onInput: [{
59
- type: HostListener,
60
- args: [':input']
61
- }] }); })();
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWRldGVjdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLWlucHV0LXZhbGlkYXRvcnMvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy91cmwtZGV0ZWN0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUt6RyxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVBmLGtCQUFhLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFDbkUsc0JBQWlCLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFaEYsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFJdkIsQ0FBQztJQUVFLGVBQWU7UUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFHTSxPQUFPO1FBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWhDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFOUMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztnQkFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUM7UUFDM0MsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBWTtRQUNsQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsMlZBQTJWLENBQUM7UUFDNVcsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztxRkF2RFUsb0JBQW9CO29FQUFwQixvQkFBb0I7WUFBcEIseUZBQUEsYUFBUyxJQUFXOzs7aUZBQXBCLG9CQUFvQjtjQUhoQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjthQUMvQjsyQ0FHa0IsYUFBYTtrQkFBN0IsTUFBTTtZQUNVLGlCQUFpQjtrQkFBakMsTUFBTTtZQWNBLE9BQU87a0JBRGIsWUFBWTttQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjYXVjYVVybERldGVjdG9yXSdcbn0pXG5leHBvcnQgY2xhc3MgVXJsRGV0ZWN0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBAT3V0cHV0KCkgcHVibGljIGhhc1VybENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBoYXNMb25nVXJsQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgaGFzVXJsID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzTG9uZ1VybCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25JbnB1dCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignOmlucHV0JylcbiAgcHVibGljIG9uSW5wdXQoKSB7XG4gICAgdGhpcy5jaGVja0lmVGV4dEhhc1VybCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSWZUZXh0SGFzVXJsKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGhhc1VybCA9IHRoaXMuY2hlY2tGb3JVcmwodGV4dCk7XG5cbiAgICBpZiAodGhpcy5oYXNVcmwgIT09IGhhc1VybCkge1xuICAgICAgdGhpcy5oYXNVcmwgPSBoYXNVcmw7XG4gICAgICB0aGlzLmhhc1VybENoYW5nZWQuZW1pdChoYXNVcmwpO1xuXG4gICAgICBjb25zdCBoYXNMb25nVXJsID0gdGhpcy5jaGVja0ZvckxvbmdVcmwodGV4dCk7XG5cbiAgICAgIGlmICh0aGlzLmhhc0xvbmdVcmwgIT09IGhhc0xvbmdVcmwpIHtcbiAgICAgICAgdGhpcy5oYXNMb25nVXJsID0gaGFzVXJsO1xuICAgICAgICB0aGlzLmhhc0xvbmdVcmxDaGFuZ2VkLmVtaXQoaGFzVXJsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yVXJsKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGV4dCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcGFydGlhbFVybCA9IC9bYS16QS1aXXszLDV9OlxcL1xcLy9naW07XG4gICAgcmV0dXJuIHBhcnRpYWxVcmwudGVzdCh0ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JMb25nVXJsKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGV4dCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZnVsbFVybCA9IC8oKD86KFthLXpBLVpdezMsNX0pOlxcL1xcLyg/Oig/OlthLXpBLVowLTlcXCRcXC1cXF9cXC5cXCtcXCFcXCpcXCdcXChcXClcXCxcXDtcXD9cXCZcXD1dfCg/OlxcJVthLWZBLUYwLTldezJ9KSl7MSw2NH0oPzpcXDooPzpbYS16QS1aMC05XFwkXFwtXFxfXFwuXFwrXFwhXFwqXFwnXFwoXFwpXFwsXFw7XFw/XFwmXFw9XXwoPzpcXCVbYS1mQS1GMC05XXsyfSkpezEsMjV9KT9cXEApPyk/KCg/Oig/OlthLXpBLVowLTldW2EtekEtWjAtOVxcLV17MCw2NH1cXC4pKyg/Oig/OlthLXpBLVowLTlcXC1dKikpKSkpKFxcLyg/Oig/OlthLXpBLVowLTlcXDtcXC9cXD9cXDpcXEBcXCZcXD1cXCNcXH5cXC1cXC5cXCtcXCFcXCpcXCdcXChcXClcXCxcXF9dKXwoPzpcXCVbYS1mQS1GMC05XXsyfSkpKik/KD86XFxifCQpL2dpbTtcbiAgICBjb25zdCB1cmxzID0gdGV4dC5tYXRjaChmdWxsVXJsKTtcblxuICAgIHJldHVybiB1cmxzLnNvbWUoKHVybDogc3RyaW5nKSA9PiB1cmwubGVuZ3RoID4gMTIwKTtcbiAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- export class Gsm7bitChars {
2
- static { this.gsm7bitChars = '@£$¥èéùìòÇ\\nØø\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà'; }
3
- static { this.gsm7bitCharsExt = '\\^{}\\\\\\[~\\]|€'; }
4
- static { this.gsm7bitRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + ']*$'); }
5
- static { this.gsm7bitExtRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + Gsm7bitChars.gsm7bitCharsExt + ']*$'); }
6
- static { this.gsm7bitExtOnlyRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitCharsExt + ']*$'); }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3NtLTdiaXQtY2hhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXVjYS1pbnB1dC12YWxpZGF0b3JzL3NyYy9saWIvc2hhcmVkL21vZGVscy9nc20tN2JpdC1jaGFycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTthQUNQLGlCQUFZLEdBQUcsd0lBQXdJLENBQUM7YUFDeEosb0JBQWUsR0FBRyxvQkFBb0IsQ0FBQzthQUN2QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQzthQUNqRSxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUNuRyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgR3NtN2JpdENoYXJzIHtcbiAgICBwdWJsaWMgc3RhdGljIGdzbTdiaXRDaGFycyA9ICdAwqMkwqXDqMOpw7nDrMOyw4dcXFxcbsOYw7hcXFxccsOFw6XOlF/Ops6TzpvOqc6gzqjOo86Yzp7DhsOmw5/DiSAhXFxcXFwiI8KkJSZcXCcoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj/CoUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaw4TDlsORw5zCp8K/YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXrDpMO2w7HDvMOgJztcbiAgICBwdWJsaWMgc3RhdGljIGdzbTdiaXRDaGFyc0V4dCA9ICdcXFxcXnt9XFxcXFxcXFxcXFxcW35cXFxcXXzigqwnO1xuICAgIHB1YmxpYyBzdGF0aWMgZ3NtN2JpdFJlZ0V4cCA9IFJlZ0V4cCgnXlsnICsgR3NtN2JpdENoYXJzLmdzbTdiaXRDaGFycyArICddKiQnKTtcbiAgICBwdWJsaWMgc3RhdGljIGdzbTdiaXRFeHRSZWdFeHAgPSBSZWdFeHAoJ15bJyArIEdzbTdiaXRDaGFycy5nc203Yml0Q2hhcnMgKyBHc203Yml0Q2hhcnMuZ3NtN2JpdENoYXJzRXh0ICsgJ10qJCcpO1xuICAgIHB1YmxpYyBzdGF0aWMgZ3NtN2JpdEV4dE9ubHlSZWdFeHAgPSBSZWdFeHAoJ15bJyArIEdzbTdiaXRDaGFycy5nc203Yml0Q2hhcnNFeHQgKyAnXSokJyk7XG59Il19
@@ -1,9 +0,0 @@
1
- /*
2
- * Public API Surface of cauca-input-validators
3
- */
4
- export * from './lib/cauca-input-validators.module';
5
- export { SmsAvoidCharactersDirective } from './lib/shared/directives/sms-avoid-characters.directive';
6
- export { SmsSegmentCalculatorDirective } from './lib/shared/directives/sms-segment-calculator.directive';
7
- export { PhoneNumberDetectorDirective } from './lib/shared/directives/phone-number-detector.directive';
8
- export { UrlDetectorDirective } from './lib/shared/directives/url-detector.directive';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NhdWNhLWlucHV0LXZhbGlkYXRvcnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjYXVjYS1pbnB1dC12YWxpZGF0b3JzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2F1Y2EtaW5wdXQtdmFsaWRhdG9ycy5tb2R1bGUnO1xuXG5leHBvcnQgeyBTbXNBdm9pZENoYXJhY3RlcnNEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9zbXMtYXZvaWQtY2hhcmFjdGVycy5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgU21zU2VnbWVudENhbGN1bGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9zbXMtc2VnbWVudC1jYWxjdWxhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBQaG9uZU51bWJlckRldGVjdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvcGhvbmUtbnVtYmVyLWRldGVjdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBVcmxEZXRlY3RvckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3NoYXJlZC9kaXJlY3RpdmVzL3VybC1kZXRlY3Rvci5kaXJlY3RpdmUnOyJdfQ==
@@ -1,11 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./shared/directives/sms-segment-calculator.directive";
3
- import * as i2 from "./shared/directives/sms-avoid-characters.directive";
4
- import * as i3 from "./shared/directives/phone-number-detector.directive";
5
- import * as i4 from "./shared/directives/url-detector.directive";
6
- import * as i5 from "@angular/common";
7
- export declare class CaucaInputValidatorsModule {
8
- static ɵfac: i0.ɵɵFactoryDeclaration<CaucaInputValidatorsModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<CaucaInputValidatorsModule, [typeof i1.SmsSegmentCalculatorDirective, typeof i2.SmsAvoidCharactersDirective, typeof i3.PhoneNumberDetectorDirective, typeof i4.UrlDetectorDirective], [typeof i5.CommonModule], [typeof i1.SmsSegmentCalculatorDirective, typeof i2.SmsAvoidCharactersDirective, typeof i3.PhoneNumberDetectorDirective, typeof i4.UrlDetectorDirective]>;
10
- static ɵinj: i0.ɵɵInjectorDeclaration<CaucaInputValidatorsModule>;
11
- }