@cauca-911/input-validators 20.2.0 → 20.2.2
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.
|
@@ -213,6 +213,7 @@ class UrlDetectorDirective {
|
|
|
213
213
|
this.hasUrl = false;
|
|
214
214
|
this.hasLongUrl = false;
|
|
215
215
|
this.elementRef = inject(ElementRef);
|
|
216
|
+
this.urlRegex = /((?:([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-zA-Z0-9\;\/\?\:\@\&\=\#\~\-\.\+\!\*\'\(\)\,\_])|(?:\%[a-fA-F0-9]{2}))*)?(?:\b|$)/gim;
|
|
216
217
|
}
|
|
217
218
|
ngAfterViewInit() {
|
|
218
219
|
this.onInput();
|
|
@@ -221,29 +222,38 @@ class UrlDetectorDirective {
|
|
|
221
222
|
this.checkIfTextHasUrl(this.elementRef.nativeElement.value);
|
|
222
223
|
}
|
|
223
224
|
checkIfTextHasUrl(text) {
|
|
224
|
-
const hasUrl = this.checkForUrl(text);
|
|
225
|
+
const hasUrl = this.checkForUrl(text) || this.checkForScheme(text);
|
|
226
|
+
const hasLongUrl = this.checkForLongUrl(text);
|
|
225
227
|
if (this.hasUrl !== hasUrl) {
|
|
226
228
|
this.hasUrl = hasUrl;
|
|
227
229
|
this.hasUrlChanged.emit(hasUrl);
|
|
228
|
-
const hasLongUrl = this.checkForLongUrl(text);
|
|
229
|
-
if (this.hasLongUrl !== hasLongUrl) {
|
|
230
|
-
this.hasLongUrl = hasUrl;
|
|
231
|
-
this.hasLongUrlChanged.emit(hasUrl);
|
|
232
|
-
}
|
|
233
230
|
}
|
|
231
|
+
if (this.hasLongUrl !== hasLongUrl) {
|
|
232
|
+
this.hasLongUrl = hasLongUrl;
|
|
233
|
+
this.hasLongUrlChanged.emit(hasLongUrl);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
checkForScheme(text) {
|
|
237
|
+
if (!text) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
const urlScheme = /[a-zA-Z]{3,5}:\/\//gim;
|
|
241
|
+
return urlScheme.test(text);
|
|
234
242
|
}
|
|
235
243
|
checkForUrl(text) {
|
|
236
244
|
if (!text) {
|
|
237
245
|
return false;
|
|
238
246
|
}
|
|
239
|
-
|
|
240
|
-
|
|
247
|
+
this.urlRegex.lastIndex = 0;
|
|
248
|
+
const url = this.urlRegex;
|
|
249
|
+
return url.test(text);
|
|
241
250
|
}
|
|
242
251
|
checkForLongUrl(text) {
|
|
243
252
|
if (!text) {
|
|
244
253
|
return false;
|
|
245
254
|
}
|
|
246
|
-
|
|
255
|
+
this.urlRegex.lastIndex = 0;
|
|
256
|
+
const fullUrl = this.urlRegex;
|
|
247
257
|
const urls = text.match(fullUrl) || [];
|
|
248
258
|
return urls.some((url) => url.length > 120);
|
|
249
259
|
}
|
|
@@ -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, 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":"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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 private readonly urlRegex = /((?:([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-zA-Z0-9\\;\\/\\?\\:\\@\\&\\=\\#\\~\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?(?:\\b|$)/gim;\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) || this.checkForScheme(text);\n const hasLongUrl = this.checkForLongUrl(text);\n\n if (this.hasUrl !== hasUrl) {\n this.hasUrl = hasUrl;\n this.hasUrlChanged.emit(hasUrl);\n }\n\n if (this.hasLongUrl !== hasLongUrl) {\n this.hasLongUrl = hasLongUrl;\n this.hasLongUrlChanged.emit(hasLongUrl);\n }\n\n }\n\n private checkForScheme(text: string): boolean {\n if (!text) {\n return false;\n }\n\n const urlScheme = /[a-zA-Z]{3,5}:\\/\\//gim;\n return urlScheme.test(text);\n }\n\n private checkForUrl(text: string): boolean {\n if (!text) {\n return false;\n }\n\n this.urlRegex.lastIndex = 0;\n const url = this.urlRegex;\n return url.test(text);\n }\n\n private checkForLongUrl(text: string): boolean {\n if (!text) {\n return false;\n }\n\n this.urlRegex.lastIndex = 0;\n const fullUrl = this.urlRegex;\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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"}
|
package/index.d.ts
CHANGED
|
@@ -52,9 +52,11 @@ declare class UrlDetectorDirective implements AfterViewInit {
|
|
|
52
52
|
private hasUrl;
|
|
53
53
|
private hasLongUrl;
|
|
54
54
|
private readonly elementRef;
|
|
55
|
+
private readonly urlRegex;
|
|
55
56
|
ngAfterViewInit(): void;
|
|
56
57
|
onInput(): void;
|
|
57
58
|
private checkIfTextHasUrl;
|
|
59
|
+
private checkForScheme;
|
|
58
60
|
private checkForUrl;
|
|
59
61
|
private checkForLongUrl;
|
|
60
62
|
static ɵfac: i0.ɵɵFactoryDeclaration<UrlDetectorDirective, never>;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cauca-911/input-validators",
|
|
3
|
-
"version": "20.2.
|
|
3
|
+
"version": "20.2.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=20.2.1",
|
|
6
6
|
"@angular/core": ">=20.2.1",
|
|
7
|
-
"@angular/material": ">=20.2.
|
|
7
|
+
"@angular/material": ">=20.2.0",
|
|
8
8
|
"@ngx-translate/core": ">=16.0.0",
|
|
9
9
|
"rxjs": ">=7.8.0"
|
|
10
10
|
},
|