@cauca-911/input-validators 19.0.0 → 20.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.
- package/fesm2022/cauca-911-input-validators.mjs +17 -17
- package/fesm2022/cauca-911-input-validators.mjs.map +1 -1
- package/index.d.ts +64 -5
- package/package.json +5 -4
- package/lib/shared/directives/phone-number-detector.directive.d.ts +0 -14
- package/lib/shared/directives/sms-avoid-characters.directive.d.ts +0 -18
- package/lib/shared/directives/sms-segment-calculator.directive.d.ts +0 -19
- package/lib/shared/directives/url-detector.directive.d.ts +0 -17
- package/lib/shared/models/gsm-7bit-chars.d.ts +0 -7
- package/public-api.d.ts +0 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter,
|
|
2
|
+
import { EventEmitter, inject, ElementRef, Directive, HostListener, Output } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class Gsm7bitChars {
|
|
5
5
|
static { this.gsm7bitChars = '@£$¥èéùìòÇ\\nØø\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà'; }
|
|
@@ -10,12 +10,12 @@ class Gsm7bitChars {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
class SmsAvoidCharactersDirective {
|
|
13
|
-
constructor(
|
|
14
|
-
this.elementRef = elementRef;
|
|
13
|
+
constructor() {
|
|
15
14
|
this.charsToAvoidChanged = new EventEmitter();
|
|
16
15
|
this.charsToReplaceChanged = new EventEmitter();
|
|
17
16
|
this.charsToAvoid = [];
|
|
18
17
|
this.charsToReplace = [];
|
|
18
|
+
this.elementRef = inject(ElementRef);
|
|
19
19
|
}
|
|
20
20
|
ngAfterViewInit() {
|
|
21
21
|
this.onInput();
|
|
@@ -49,7 +49,7 @@ class SmsAvoidCharactersDirective {
|
|
|
49
49
|
removeDuplicates(items) {
|
|
50
50
|
return [...new Set(items)];
|
|
51
51
|
}
|
|
52
|
-
static { this.ɵfac = function SmsAvoidCharactersDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SmsAvoidCharactersDirective)(
|
|
52
|
+
static { this.ɵfac = function SmsAvoidCharactersDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SmsAvoidCharactersDirective)(); }; }
|
|
53
53
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SmsAvoidCharactersDirective, selectors: [["", "caucaSmsAvoidCharacters", ""]], hostBindings: function SmsAvoidCharactersDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
54
54
|
i0.ɵɵlistener("input", function SmsAvoidCharactersDirective_input_HostBindingHandler() { return ctx.onInput(); });
|
|
55
55
|
} }, outputs: { charsToAvoidChanged: "charsToAvoidChanged", charsToReplaceChanged: "charsToReplaceChanged" } }); }
|
|
@@ -59,7 +59,7 @@ class SmsAvoidCharactersDirective {
|
|
|
59
59
|
args: [{
|
|
60
60
|
selector: '[caucaSmsAvoidCharacters]',
|
|
61
61
|
}]
|
|
62
|
-
}],
|
|
62
|
+
}], null, { charsToAvoidChanged: [{
|
|
63
63
|
type: Output
|
|
64
64
|
}], charsToReplaceChanged: [{
|
|
65
65
|
type: Output
|
|
@@ -69,9 +69,9 @@ class SmsAvoidCharactersDirective {
|
|
|
69
69
|
}] }); })();
|
|
70
70
|
|
|
71
71
|
class SmsSegmentCalculatorDirective {
|
|
72
|
-
constructor(
|
|
73
|
-
this.elementRef = elementRef;
|
|
72
|
+
constructor() {
|
|
74
73
|
this.segmentCountChanged = new EventEmitter();
|
|
74
|
+
this.elementRef = inject(ElementRef);
|
|
75
75
|
this.segmentCount = 0;
|
|
76
76
|
this.messageLength = {
|
|
77
77
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -146,7 +146,7 @@ class SmsSegmentCalculatorDirective {
|
|
|
146
146
|
return 'UTF16';
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
static { this.ɵfac = function SmsSegmentCalculatorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SmsSegmentCalculatorDirective)(
|
|
149
|
+
static { this.ɵfac = function SmsSegmentCalculatorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SmsSegmentCalculatorDirective)(); }; }
|
|
150
150
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SmsSegmentCalculatorDirective, selectors: [["", "caucaSmsSegmentCalculator", ""]], hostBindings: function SmsSegmentCalculatorDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
151
151
|
i0.ɵɵlistener("input", function SmsSegmentCalculatorDirective_input_HostBindingHandler() { return ctx.onInput(); });
|
|
152
152
|
} }, outputs: { segmentCountChanged: "segmentCountChanged" } }); }
|
|
@@ -156,7 +156,7 @@ class SmsSegmentCalculatorDirective {
|
|
|
156
156
|
args: [{
|
|
157
157
|
selector: '[caucaSmsSegmentCalculator]',
|
|
158
158
|
}]
|
|
159
|
-
}],
|
|
159
|
+
}], null, { segmentCountChanged: [{
|
|
160
160
|
type: Output
|
|
161
161
|
}], onInput: [{
|
|
162
162
|
type: HostListener,
|
|
@@ -164,10 +164,10 @@ class SmsSegmentCalculatorDirective {
|
|
|
164
164
|
}] }); })();
|
|
165
165
|
|
|
166
166
|
class PhoneNumberDetectorDirective {
|
|
167
|
-
constructor(
|
|
168
|
-
this.elementRef = elementRef;
|
|
167
|
+
constructor() {
|
|
169
168
|
this.hasPhoneNumberChanged = new EventEmitter();
|
|
170
169
|
this.hasPhoneNumber = false;
|
|
170
|
+
this.elementRef = inject(ElementRef);
|
|
171
171
|
}
|
|
172
172
|
ngAfterViewInit() {
|
|
173
173
|
this.onInput();
|
|
@@ -189,7 +189,7 @@ class PhoneNumberDetectorDirective {
|
|
|
189
189
|
const regex = /\(?(\d{3})\)?[- .]?(\d{3})[- .]?(\d{4})/gm;
|
|
190
190
|
return regex.test(text);
|
|
191
191
|
}
|
|
192
|
-
static { this.ɵfac = function PhoneNumberDetectorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PhoneNumberDetectorDirective)(
|
|
192
|
+
static { this.ɵfac = function PhoneNumberDetectorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PhoneNumberDetectorDirective)(); }; }
|
|
193
193
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PhoneNumberDetectorDirective, selectors: [["", "caucaPhoneNumberDetector", ""]], hostBindings: function PhoneNumberDetectorDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
194
194
|
i0.ɵɵlistener("input", function PhoneNumberDetectorDirective_input_HostBindingHandler() { return ctx.onInput(); });
|
|
195
195
|
} }, outputs: { hasPhoneNumberChanged: "hasPhoneNumberChanged" } }); }
|
|
@@ -199,7 +199,7 @@ class PhoneNumberDetectorDirective {
|
|
|
199
199
|
args: [{
|
|
200
200
|
selector: '[caucaPhoneNumberDetector]',
|
|
201
201
|
}]
|
|
202
|
-
}],
|
|
202
|
+
}], null, { hasPhoneNumberChanged: [{
|
|
203
203
|
type: Output
|
|
204
204
|
}], onInput: [{
|
|
205
205
|
type: HostListener,
|
|
@@ -207,12 +207,12 @@ class PhoneNumberDetectorDirective {
|
|
|
207
207
|
}] }); })();
|
|
208
208
|
|
|
209
209
|
class UrlDetectorDirective {
|
|
210
|
-
constructor(
|
|
211
|
-
this.elementRef = elementRef;
|
|
210
|
+
constructor() {
|
|
212
211
|
this.hasUrlChanged = new EventEmitter();
|
|
213
212
|
this.hasLongUrlChanged = new EventEmitter();
|
|
214
213
|
this.hasUrl = false;
|
|
215
214
|
this.hasLongUrl = false;
|
|
215
|
+
this.elementRef = inject(ElementRef);
|
|
216
216
|
}
|
|
217
217
|
ngAfterViewInit() {
|
|
218
218
|
this.onInput();
|
|
@@ -247,7 +247,7 @@ class UrlDetectorDirective {
|
|
|
247
247
|
const urls = text.match(fullUrl);
|
|
248
248
|
return urls.some((url) => url.length > 120);
|
|
249
249
|
}
|
|
250
|
-
static { this.ɵfac = function UrlDetectorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UrlDetectorDirective)(
|
|
250
|
+
static { this.ɵfac = function UrlDetectorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UrlDetectorDirective)(); }; }
|
|
251
251
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: UrlDetectorDirective, selectors: [["", "caucaUrlDetector", ""]], hostBindings: function UrlDetectorDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
252
252
|
i0.ɵɵlistener("input", function UrlDetectorDirective_input_HostBindingHandler() { return ctx.onInput(); });
|
|
253
253
|
} }, outputs: { hasUrlChanged: "hasUrlChanged", hasLongUrlChanged: "hasLongUrlChanged" } }); }
|
|
@@ -257,7 +257,7 @@ class UrlDetectorDirective {
|
|
|
257
257
|
args: [{
|
|
258
258
|
selector: '[caucaUrlDetector]',
|
|
259
259
|
}]
|
|
260
|
-
}],
|
|
260
|
+
}], null, { hasUrlChanged: [{
|
|
261
261
|
type: Output
|
|
262
262
|
}], hasLongUrlChanged: [{
|
|
263
263
|
type: Output
|
|
@@ -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-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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"}
|
|
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, inject } 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 private readonly elementRef = inject(ElementRef);\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, inject } 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 readonly elementRef = inject(ElementRef);\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 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, inject } 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 private readonly elementRef = inject(ElementRef);\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, inject } 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 private readonly elementRef = inject(ElementRef);\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":";;;MAAa,YAAY,CAAA;aACP,IAAA,CAAA,YAAY,GAAG,wIAAwI,CAAC;aACxJ,IAAA,CAAA,eAAe,GAAG,oBAAoB,CAAC;aACvC,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;AACjE,IAAA,SAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;aACnG,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;;;MCMhF,2BAA2B,CAAA;AAHxC,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,mBAAmB,GAA2B,IAAI,YAAY,EAAY;AAC1E,QAAA,IAAA,CAAA,qBAAqB,GAA2B,IAAI,YAAY,EAAY;QAErF,IAAA,CAAA,YAAY,GAAa,EAAE;QAC3B,IAAA,CAAA,cAAc,GAAa,EAAE;AACpB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AA0CjD;IAxCQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;;IAIT,OAAO,GAAA;QACZ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;AAG3D,IAAA,uBAAuB,CAAC,IAAY,EAAA;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAE3C,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE;YACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC;YACjE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;;AAElD,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE;YACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC;YACrE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;;;AAIhD,IAAA,cAAc,CAAC,IAAY,EAAA;QACjC,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACxG,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACpH,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5G,OAAO;AACL,YAAA,YAAY,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;AACzD,YAAA,cAAc,EAAE,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;SAC3D;;IAGK,gBAAgB,CAAC,KAAe,EAAE,KAAe,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;AAGhD,IAAA,gBAAgB,CAAC,KAAe,EAAA;QACtC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;;4HA/CjB,2BAA2B,GAAA,CAAA,EAAA,CAAA;oEAA3B,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,wCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAA3B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,OAAA,aAAS,CAAA,EAAA,CAAkB;;;iFAA3B,2BAA2B,EAAA,CAAA;cAHvC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,2BAA2B;AACxC,aAAA;gBAGkB,mBAAmB,EAAA,CAAA;kBAAnC;YACgB,qBAAqB,EAAA,CAAA;kBAArC;YAWM,OAAO,EAAA,CAAA;kBADb,YAAY;mBAAC,QAAQ;;;MClBX,6BAA6B,CAAA;AAH1C,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,mBAAmB,GAAyB,IAAI,YAAY,EAAU;AAEtE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACxC,IAAA,CAAA,YAAY,GAAG,CAAC;AAChB,QAAA,IAAA,CAAA,aAAa,GAAG;;AAEtB,YAAA,IAAI,EAAE,GAAG;;AAET,YAAA,OAAO,EAAE,GAAG;;AAEZ,YAAA,KAAK,EAAE;SACR;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG;;AAEzB,YAAA,IAAI,EAAE,GAAG;;AAET,YAAA,OAAO,EAAE,GAAG;;AAEZ,YAAA,KAAK,EAAE;SACV;AAuEF;IArEQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;;IAIT,OAAO,GAAA;QACZ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;AAGxD,IAAA,oBAAoB,CAAC,IAAY,EAAA;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAEpD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;AACtC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3C,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;;AAI5B,IAAA,oBAAoB,CAAC,IAAY,EAAA;QACvC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,CAAC;;QAGZ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACrC,QAAA,MAAM,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1H,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;;AAG/B,IAAA,aAAa,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAErC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACvB,YAAA,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAGxC,QAAA,OAAO,MAAM;;AAGP,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,KAAK;QACT,MAAM,KAAK,GAAG,MAAK;AACf,YAAA,IAAI,EAAE;AAAE,YAAA,IAAI,IAAI;YAChB,MAAM,QAAQ,GAAG,EAAE;AAEnB,YAAA,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE;AAC9C,gBAAA,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;gBAChB,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,IAAI,EAAE;AACxD,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAG5B,YAAA,OAAO,QAAQ;AACnB,SAAC;QAED,OAAO,KAAK,CAAC,MAAM;;AAGb,IAAA,UAAU,CAAC,IAAY,EAAA;QAC7B,QAAQ,KAAK;YACT,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,IAAI;AAC/C,gBAAA,OAAO,MAAM;YACjB,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,IAAI;AAClD,gBAAA,OAAO,SAAS;AACpB,YAAA;AACI,gBAAA,OAAO,OAAO;;;8HAxFb,6BAA6B,GAAA,CAAA,EAAA,CAAA;oEAA7B,6BAA6B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,2BAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,0CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAA7B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAA,aAAS,CAAA,EAAA,CAAoB;;;iFAA7B,6BAA6B,EAAA,CAAA;cAHzC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,6BAA6B;AAC1C,aAAA;gBAEkB,mBAAmB,EAAA,CAAA;kBAAnC;YA0BM,OAAO,EAAA,CAAA;kBADb,YAAY;mBAAC,QAAQ;;;MC3BX,4BAA4B,CAAA;AAHzC,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,qBAAqB,GAA0B,IAAI,YAAY,EAAW;QAEnF,IAAA,CAAA,cAAc,GAAG,KAAK;AACb,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AA6BjD;IA3BQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;;IAIT,OAAO,GAAA;QACZ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;AAG7D,IAAA,yBAAyB,CAAC,IAAY,EAAA;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,EAAE;AAC1C,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;;AAIhC,IAAA,mBAAmB,CAAC,IAAY,EAAA;QACtC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK;;QAGhB,MAAM,KAAK,GAAG,2CAA2C;AAEzD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;6HAhCd,4BAA4B,GAAA,CAAA,EAAA,CAAA;oEAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,0BAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,yCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAA5B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAAA,aAAS,CAAA,EAAA,CAAmB;;;iFAA5B,4BAA4B,EAAA,CAAA;cAHxC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,4BAA4B;AACzC,aAAA;gBAGkB,qBAAqB,EAAA,CAAA;kBAArC;YAUM,OAAO,EAAA,CAAA;kBADb,YAAY;mBAAC,QAAQ;;;MCXX,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,aAAa,GAA0B,IAAI,YAAY,EAAW;AAClE,QAAA,IAAA,CAAA,iBAAiB,GAA0B,IAAI,YAAY,EAAW;QAE/E,IAAA,CAAA,MAAM,GAAG,KAAK;QACd,IAAA,CAAA,UAAU,GAAG,KAAK;AACT,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AA8CjD;IA5CQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;;IAIT,OAAO,GAAA;QACZ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;AAGrD,IAAA,iBAAiB,CAAC,IAAY,EAAA;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAErC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAE7C,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;AAClC,gBAAA,IAAI,CAAC,UAAU,GAAG,MAAM;AACxB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;;;;AAKjC,IAAA,WAAW,CAAC,IAAY,EAAA;QAC9B,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK;;QAGhB,MAAM,UAAU,GAAG,uBAAuB;AAC1C,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGtB,IAAA,eAAe,CAAC,IAAY,EAAA;QAClC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK;;QAGhB,MAAM,OAAO,GAAG,2VAA2V;QAC3W,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAEhC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAW,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;;qHAnD1C,oBAAoB,GAAA,CAAA,EAAA,CAAA;oEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAApB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAA,aAAS,CAAA,EAAA,CAAW;;;iFAApB,oBAAoB,EAAA,CAAA;cAHhC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,oBAAoB;AACjC,aAAA;gBAGkB,aAAa,EAAA,CAAA;kBAA7B;YACgB,iBAAiB,EAAA,CAAA;kBAAjC;YAWM,OAAO,EAAA,CAAA;kBADb,YAAY;mBAAC,QAAQ;;;AClBxB;;AAEG;;ACFH;;AAEG;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { AfterViewInit, EventEmitter } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
declare class SmsAvoidCharactersDirective implements AfterViewInit {
|
|
5
|
+
charsToAvoidChanged: EventEmitter<string[]>;
|
|
6
|
+
charsToReplaceChanged: EventEmitter<string[]>;
|
|
7
|
+
private charsToAvoid;
|
|
8
|
+
private charsToReplace;
|
|
9
|
+
private readonly elementRef;
|
|
10
|
+
ngAfterViewInit(): void;
|
|
11
|
+
onInput(): void;
|
|
12
|
+
private checkCharacterException;
|
|
13
|
+
private listUTF16Chars;
|
|
14
|
+
private compareCharsList;
|
|
15
|
+
private removeDuplicates;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SmsAvoidCharactersDirective, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SmsAvoidCharactersDirective, "[caucaSmsAvoidCharacters]", never, {}, { "charsToAvoidChanged": "charsToAvoidChanged"; "charsToReplaceChanged": "charsToReplaceChanged"; }, never, never, true, never>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare class SmsSegmentCalculatorDirective implements AfterViewInit {
|
|
21
|
+
segmentCountChanged: EventEmitter<number>;
|
|
22
|
+
private readonly elementRef;
|
|
23
|
+
private segmentCount;
|
|
24
|
+
private messageLength;
|
|
25
|
+
private multiMessageLength;
|
|
26
|
+
ngAfterViewInit(): void;
|
|
27
|
+
onInput(): void;
|
|
28
|
+
private checkNumberOfSegment;
|
|
29
|
+
private countNumberOfSegment;
|
|
30
|
+
private countSmsChars;
|
|
31
|
+
private countGsm7bitExt;
|
|
32
|
+
private getCharset;
|
|
33
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SmsSegmentCalculatorDirective, never>;
|
|
34
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SmsSegmentCalculatorDirective, "[caucaSmsSegmentCalculator]", never, {}, { "segmentCountChanged": "segmentCountChanged"; }, never, never, true, never>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
declare class PhoneNumberDetectorDirective implements AfterViewInit {
|
|
38
|
+
hasPhoneNumberChanged: EventEmitter<boolean>;
|
|
39
|
+
private hasPhoneNumber;
|
|
40
|
+
private readonly elementRef;
|
|
41
|
+
ngAfterViewInit(): void;
|
|
42
|
+
onInput(): void;
|
|
43
|
+
private checkIfTextHasPhoneNumber;
|
|
44
|
+
private checkForPhoneNumber;
|
|
45
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PhoneNumberDetectorDirective, never>;
|
|
46
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PhoneNumberDetectorDirective, "[caucaPhoneNumberDetector]", never, {}, { "hasPhoneNumberChanged": "hasPhoneNumberChanged"; }, never, never, true, never>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
declare class UrlDetectorDirective implements AfterViewInit {
|
|
50
|
+
hasUrlChanged: EventEmitter<boolean>;
|
|
51
|
+
hasLongUrlChanged: EventEmitter<boolean>;
|
|
52
|
+
private hasUrl;
|
|
53
|
+
private hasLongUrl;
|
|
54
|
+
private readonly elementRef;
|
|
55
|
+
ngAfterViewInit(): void;
|
|
56
|
+
onInput(): void;
|
|
57
|
+
private checkIfTextHasUrl;
|
|
58
|
+
private checkForUrl;
|
|
59
|
+
private checkForLongUrl;
|
|
60
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UrlDetectorDirective, never>;
|
|
61
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<UrlDetectorDirective, "[caucaUrlDetector]", never, {}, { "hasUrlChanged": "hasUrlChanged"; "hasLongUrlChanged": "hasLongUrlChanged"; }, never, never, true, never>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export { PhoneNumberDetectorDirective, SmsAvoidCharactersDirective, SmsSegmentCalculatorDirective, UrlDetectorDirective };
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cauca-911/input-validators",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": ">=
|
|
6
|
-
"@angular/core": ">=
|
|
5
|
+
"@angular/common": ">=20.1.3",
|
|
6
|
+
"@angular/core": ">=20.1.3",
|
|
7
|
+
"@angular/material": ">=20.1.3",
|
|
7
8
|
"@ngx-translate/core": ">=16.0.0",
|
|
8
9
|
"rxjs": ">=7.8.0"
|
|
9
10
|
},
|
|
@@ -31,6 +32,6 @@
|
|
|
31
32
|
},
|
|
32
33
|
"sideEffects": false,
|
|
33
34
|
"scripts": {
|
|
34
|
-
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled
|
|
35
|
+
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with partial compilation mode, before attempting to publish.\\n')\" && exit 1"
|
|
35
36
|
}
|
|
36
37
|
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class PhoneNumberDetectorDirective implements AfterViewInit {
|
|
4
|
-
private elementRef;
|
|
5
|
-
hasPhoneNumberChanged: EventEmitter<boolean>;
|
|
6
|
-
private hasPhoneNumber;
|
|
7
|
-
constructor(elementRef: ElementRef);
|
|
8
|
-
ngAfterViewInit(): void;
|
|
9
|
-
onInput(): void;
|
|
10
|
-
private checkIfTextHasPhoneNumber;
|
|
11
|
-
private checkForPhoneNumber;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PhoneNumberDetectorDirective, never>;
|
|
13
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<PhoneNumberDetectorDirective, "[caucaPhoneNumberDetector]", never, {}, { "hasPhoneNumberChanged": "hasPhoneNumberChanged"; }, never, never, true, never>;
|
|
14
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class SmsAvoidCharactersDirective implements AfterViewInit {
|
|
4
|
-
private elementRef;
|
|
5
|
-
charsToAvoidChanged: EventEmitter<string[]>;
|
|
6
|
-
charsToReplaceChanged: EventEmitter<string[]>;
|
|
7
|
-
private charsToAvoid;
|
|
8
|
-
private charsToReplace;
|
|
9
|
-
constructor(elementRef: ElementRef);
|
|
10
|
-
ngAfterViewInit(): void;
|
|
11
|
-
onInput(): void;
|
|
12
|
-
private checkCharacterException;
|
|
13
|
-
private listUTF16Chars;
|
|
14
|
-
private compareCharsList;
|
|
15
|
-
private removeDuplicates;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SmsAvoidCharactersDirective, never>;
|
|
17
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SmsAvoidCharactersDirective, "[caucaSmsAvoidCharacters]", never, {}, { "charsToAvoidChanged": "charsToAvoidChanged"; "charsToReplaceChanged": "charsToReplaceChanged"; }, never, never, true, never>;
|
|
18
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class SmsSegmentCalculatorDirective implements AfterViewInit {
|
|
4
|
-
private elementRef;
|
|
5
|
-
segmentCountChanged: EventEmitter<number>;
|
|
6
|
-
private segmentCount;
|
|
7
|
-
private messageLength;
|
|
8
|
-
private multiMessageLength;
|
|
9
|
-
constructor(elementRef: ElementRef);
|
|
10
|
-
ngAfterViewInit(): void;
|
|
11
|
-
onInput(): void;
|
|
12
|
-
private checkNumberOfSegment;
|
|
13
|
-
private countNumberOfSegment;
|
|
14
|
-
private countSmsChars;
|
|
15
|
-
private countGsm7bitExt;
|
|
16
|
-
private getCharset;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SmsSegmentCalculatorDirective, never>;
|
|
18
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SmsSegmentCalculatorDirective, "[caucaSmsSegmentCalculator]", never, {}, { "segmentCountChanged": "segmentCountChanged"; }, never, never, true, never>;
|
|
19
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class UrlDetectorDirective implements AfterViewInit {
|
|
4
|
-
private elementRef;
|
|
5
|
-
hasUrlChanged: EventEmitter<boolean>;
|
|
6
|
-
hasLongUrlChanged: EventEmitter<boolean>;
|
|
7
|
-
private hasUrl;
|
|
8
|
-
private hasLongUrl;
|
|
9
|
-
constructor(elementRef: ElementRef);
|
|
10
|
-
ngAfterViewInit(): void;
|
|
11
|
-
onInput(): void;
|
|
12
|
-
private checkIfTextHasUrl;
|
|
13
|
-
private checkForUrl;
|
|
14
|
-
private checkForLongUrl;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<UrlDetectorDirective, never>;
|
|
16
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<UrlDetectorDirective, "[caucaUrlDetector]", never, {}, { "hasUrlChanged": "hasUrlChanged"; "hasLongUrlChanged": "hasLongUrlChanged"; }, never, never, true, never>;
|
|
17
|
-
}
|
package/public-api.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { SmsAvoidCharactersDirective } from './lib/shared/directives/sms-avoid-characters.directive';
|
|
2
|
-
export { SmsSegmentCalculatorDirective } from './lib/shared/directives/sms-segment-calculator.directive';
|
|
3
|
-
export { PhoneNumberDetectorDirective } from './lib/shared/directives/phone-number-detector.directive';
|
|
4
|
-
export { UrlDetectorDirective } from './lib/shared/directives/url-detector.directive';
|