@energycap/components 0.27.6 → 0.27.7
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/bundles/energycap-components.umd.js +12 -0
- package/bundles/energycap-components.umd.js.map +1 -1
- package/bundles/energycap-components.umd.min.js +1 -1
- package/bundles/energycap-components.umd.min.js.map +1 -1
- package/energycap-components.metadata.json +1 -1
- package/esm2015/lib/core/custom-validators.js +8 -1
- package/esm2015/lib/core/validation-message.service.js +5 -2
- package/esm2015/lib/core/validation-patterns.js +3 -1
- package/fesm2015/energycap-components.js +12 -1
- package/fesm2015/energycap-components.js.map +1 -1
- package/lib/core/custom-validators.d.ts +4 -0
- package/lib/core/validation-message.service.d.ts +1 -1
- package/lib/core/validation-patterns.d.ts +2 -0
- package/package.json +1 -1
- package/src/assets/locales/en_US.json +2 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Validators } from '@angular/forms';
|
|
2
2
|
import { JsonHelper } from '../shared/json-helper';
|
|
3
|
+
import { domainPattern } from './validation-patterns';
|
|
3
4
|
export class CustomValidators {
|
|
4
5
|
}
|
|
5
6
|
/**
|
|
@@ -19,4 +20,10 @@ CustomValidators.requiredPlural = (control) => {
|
|
|
19
20
|
CustomValidators.json = (control) => {
|
|
20
21
|
return (control.value && JsonHelper.tryParseJSON(control.value) === undefined) ? { json: true } : null;
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Returns a validation error if the control's value is not a valid domain.
|
|
25
|
+
*/
|
|
26
|
+
CustomValidators.domain = (control) => {
|
|
27
|
+
return (control.value && domainPattern.test(control.value) === false) ? { domain: true } : null;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29yZS9jdXN0b20tdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsTUFBTSxPQUFPLGdCQUFnQjs7QUFDM0I7Ozs7Ozs7R0FPRztBQUNXLCtCQUFjLEdBQWdCLENBQUMsT0FBd0IsRUFBRSxFQUFFO0lBQ3ZFLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDakYsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDVyxxQkFBSSxHQUFnQixDQUFDLE9BQXdCLEVBQUUsRUFBRTtJQUM3RCxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN6RyxDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNXLHVCQUFNLEdBQWdCLENBQUMsT0FBd0IsRUFBRSxFQUFFO0lBQy9ELE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xHLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBKc29uSGVscGVyIH0gZnJvbSAnLi4vc2hhcmVkL2pzb24taGVscGVyJztcclxuaW1wb3J0IHsgZG9tYWluUGF0dGVybiB9IGZyb20gJy4vdmFsaWRhdGlvbi1wYXR0ZXJucyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tVmFsaWRhdG9ycyB7XHJcbiAgLyoqXHJcbiAgICogVGVzdHMgdGhlIGNvbnRyb2wgdXNpbmcgQW5ndWxhcidzIHJlcXVpcmVkIHZhbGlkYXRvciwgZXhjZXB0IHJldHVybnNcclxuICAgKiBhbiBlcnJvciBtYXAgdGhhdCB0cmlnZ2VycyB0aGUgcGx1cmFsICdhcmUgcmVxdWlyZWQnIHZhbGlkYXRpb24gbWVzc2FnZVxyXG4gICAqIGluc3RlYWQgb2YgJ2lzIHJlcXVpcmVkJ1xyXG4gICAqXHJcbiAgICogQHJldHVybnMgQW4gZXJyb3IgbWFwIHdpdGggdGhlIGByZXF1aXJlZFBsdXJhbGAgcHJvcGVydHlcclxuICAgKiBpZiB0aGUgdmFsaWRhdGlvbiBjaGVjayBmYWlscywgb3RoZXJ3aXNlIGBudWxsYC5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHJlcXVpcmVkUGx1cmFsOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgIHJldHVybiBWYWxpZGF0b3JzLnJlcXVpcmVkKGNvbnRyb2wpICE9PSBudWxsID8geyByZXF1aXJlZFBsdXJhbDogdHJ1ZSB9IDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSB2YWxpZGF0aW9uIGVycm9yIGlmIHRoZSBjb250cm9sJ3MgdmFsdWUgaXMgbm90IHZhbGlkIEpTT04uXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBqc29uOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgIHJldHVybiAoY29udHJvbC52YWx1ZSAmJiBKc29uSGVscGVyLnRyeVBhcnNlSlNPTihjb250cm9sLnZhbHVlKSA9PT0gdW5kZWZpbmVkKSA/IHsganNvbjogdHJ1ZSB9IDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSB2YWxpZGF0aW9uIGVycm9yIGlmIHRoZSBjb250cm9sJ3MgdmFsdWUgaXMgbm90IGEgdmFsaWQgZG9tYWluLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZG9tYWluOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgIHJldHVybiAoY29udHJvbC52YWx1ZSAmJiBkb21haW5QYXR0ZXJuLnRlc3QoY29udHJvbC52YWx1ZSkgPT09IGZhbHNlKSA/IHsgZG9tYWluOiB0cnVlIH0gOiBudWxsO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { forkJoin } from 'rxjs';
|
|
3
2
|
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import { forkJoin } from 'rxjs';
|
|
4
4
|
import { DateDisplayPipe } from '../shared/display/pipes/date-display.pipe';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@ngx-translate/core";
|
|
@@ -109,6 +109,9 @@ export class ValidationMessageService {
|
|
|
109
109
|
case 'passwordInvalid':
|
|
110
110
|
translationObservables.push(this.translate.get('PasswordInvalidValidationMessage_LC'));
|
|
111
111
|
break;
|
|
112
|
+
case 'domain':
|
|
113
|
+
translationObservables.push(this.translate.get('DomainValidationMessage_SC'));
|
|
114
|
+
break;
|
|
112
115
|
default:
|
|
113
116
|
break;
|
|
114
117
|
}
|
|
@@ -179,4 +182,4 @@ ValidationMessageService.ctorParameters = () => [
|
|
|
179
182
|
{ type: TranslateService },
|
|
180
183
|
{ type: DateDisplayPipe }
|
|
181
184
|
];
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7O0FBRTVFOztHQUVHO0FBQ0gsTUFBTSxpQ0FBaUM7Q0FNdEM7QUFFRDs7R0FFRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsWUFDWSxTQUEyQixFQUMzQixlQUFnQztRQURoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDeEMsQ0FBQztJQUdMOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsTUFBK0I7UUFFbkQsK0RBQStEO1FBQy9ELElBQUksc0JBQXNCLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7UUFFN0QsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO1lBRWpCLEtBQUssSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFO2dCQUN6QiwwREFBMEQ7Z0JBQzFELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFN0IsUUFBUSxRQUFRLEVBQUU7b0JBQ2QsS0FBSyxPQUFPO3dCQUNSLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7d0JBQ3BGLE1BQU07b0JBRVYsS0FBSyxVQUFVO3dCQUNYLHNCQUFzQixDQUFD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aW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRleHRib3hWYWxpZGF0b3JQYXJhbWV0ZXJzIH0gZnJvbSAnLi4vY29udHJvbHMvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvZGF0ZS1kaXNwbGF5LnBpcGUnO1xyXG5cclxuLyoqXHJcbiAqIFwiV2VhayBUeXBlXCIgZGVzY3JpYmluZyBpbnRlcnBvbGF0aW9uIHBhcmFtZXRlcnMgZm9yIE51bWVyaWNCb3hcclxuICovXHJcbmNsYXNzIE51bWVyaWNCb3hJbnRlcnBvbGF0aW9uUGFyYW1ldGVycyB7XHJcbiAgICBwdWJsaWMgcHJlY2lzaW9uPzogbnVtYmVyO1xyXG4gICAgcHVibGljIG1pblZhbHVlPzogbnVtYmVyO1xyXG4gICAgcHVibGljIG1heFZhbHVlPzogbnVtYmVyO1xyXG4gICAgcHVibGljIG1pbk1heFJhbmdlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIG1heFByZWNpc2lvbkRpZ2l0cz86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdG8gdGFrZSB7QGxpbmsgVmFsaWRhdGlvbkVycm9yc30gYW5kIHJldHVybiBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgZGF0ZURpc3BsYXlQaXBlOiBEYXRlRGlzcGxheVBpcGVcclxuICApIHsgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZXMgZnJvbSB7QGxpbmsgVmFsaWRhdGlvbkVycm9yc31cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0RXJyb3JNZXNzYWdlcyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogUHJvbWlzZTxBcnJheTxhbnk+PiB7XHJcblxyXG4gICAgICAvKiogQXJyYXkgb2Ygb2JzZXJ2YWJsZXMgcmV0dXJuZWQgZnJvbSB0aGUgVHJhbnNsYXRlU2VydmljZS4gKi9cclxuICAgICAgbGV0IHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMgPSBuZXcgQXJyYXk8T2JzZXJ2YWJsZTxzdHJpbmc+PigpO1xyXG5cclxuICAgICAgaWYgKGVycm9ycyAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgIGZvciAodmFyIGVycm9yS2V5IGluIGVycm9ycykge1xyXG4gICAgICAgICAgICAgIC8vIGl0IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSB0eXBpbmcgb24gdGhlIFZhbGlkYXRpb25FcnJvcnNcclxuICAgICAgICAgICAgICBsZXQgZXJyb3IgPSBlcnJvcnNbZXJyb3JLZXldO1xyXG5cclxuICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yS2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2VtYWlsJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZS5nZXQoJ0ludmFsaWRFbWFpbFZhbGlkYXRpb25NZXNzYWdlX0xDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdyZXF1aXJlZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGUuZ2V0KCdpcyByZXF1aXJlZCcpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVxdWlyZWRQbHVyYWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGUuZ2V0KCdSZXF1aXJlZFBsdXJhbFZhbGlkYXRpb25NZXNzYWdlX0xDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdtaW5sZW5ndGgnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnTWluTGVuZ3RoVmFsaWRhdGlvbk1lc3NhZ2VfTEMnLCB7IG1pbkxlbmd0aDogZXJyb3IucmVxdWlyZWRMZW5ndGggfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdtYXhsZW5ndGgnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChgTWF4TGVuZ3RoVmFsaWRhdGlvbk1lc3NhZ2VgLCB7IG1heExlbmd0aDogZXJyb3IucmVxdWlyZWRMZW5ndGggfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdwYXR0ZXJuJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZS5nZXQoJ0luY29ycmVjdEZvcm1hdF9MQycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgY2FzZSAnbWluJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ01pblZhbHVlVmFsaWRhdGlvbk1lc3NhZ2VfTEMnLCB7IG1pblZhbHVlOiBlcnJvci5taW4gfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdtYXgnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnTWF4VmFsdWVWYWxpZGF0aW9uTWVzc2FnZV9MQycsIHsgbWF4VmFsdWU6IGVycm9yLm1heCB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ3ppcENvZGVJbnZhbGlkRm9ybWF0JzpcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZS5nZXQoJ211c3QgYmUgNeKAkzkgbnVtYmVycycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgY2FzZSAncG9zdGFsQ29kZUludmFsaWRGb3JtYXQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnbXVzdCBiZSA2IGNoYXJhY3RlcnMsIGFsdGVybmF0aW5nIGxldHRlcnMgYW5kIG51bWJlcnMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ3ppcENvZGVOb3RGb3VuZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdaaXBDb2RlTm90Rm91bmRWYWxpZGF0aW9uTWVzc2FnZV9MQycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gQ3VzdG9tIHZhbGlkYXRvciBmcm9tIHRoZSBOdW1lcmljYm94Q29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWVyaWNib3gnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMuZ2V0TnVtZXJpY0JveFZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdhZGRuZXcnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnQ291bGROb3RCZUFkZGVkVmFsaWRhdGlvbk1lc3NhZ2VfTEMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIEtlbmRvIGRhdGVwaWNrZXIgbWluIGVycm9yXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ21pbkVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgY2FzZSAnbWluRGF0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmRhdGVEaXNwbGF5UGlwZS50cmFuc2Zvcm0oZXJyb3IubWluVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnTWluVmFsdWVWYWxpZGF0aW9uTWVzc2FnZV9MQycsIHsgbWluVmFsdWU6IHZhbHVlIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gS2VuZG8gZGF0ZXBpY2tlciBtYXggZXJyb3JcclxuICAgICAgICAgICAgICAgICAgY2FzZSAnbWF4RXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdtYXhEYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuZGF0ZURpc3BsYXlQaXBlLnRyYW5zZm9ybShlcnJvci5tYXhWYWx1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdNYXhWYWx1ZVZhbGlkYXRpb25NZXNzYWdlX0xDJywgeyBtYXhWYWx1ZTogdmFsdWUgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyBDdXN0b20gdmFsaWRhdG9yIGZvciB0aGUgRGF0ZVJhbmdlQ29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGVSYW5nZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGUuZ2V0KCdEYXRlUmFuZ2VWYWxpZGF0aW9uTWVzc2FnZV9MQycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgY2FzZSAncGFzc3dvcmQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnUGFzc3dvcmRWYWxpZGF0aW9uTWVzc2FnZV9MQycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gQ3VzdG9tIHZhbGlkYXRvciBmcm9tIHRoZSBUZXh0Ym94Q29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRib3gnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMuZ2V0VGV4dEJveFZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdub3RVbmlxdWUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnTXVzdEJlVW5pcXVlX0xDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2pzb24nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnSnNvblZhbGlkYXRpb25NZXNzYWdlX1NDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgY2FzZSAncGFzc3dvcmRJbnZhbGlkJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnUGFzc3dvcmRJbnZhbGlkVmFsaWRhdGlvbk1lc3NhZ2VfTEMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodHJhbnNsYXRpb25PYnNlcnZhYmxlcy5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAgICAgICAgIC8vIGZvcmtKb2luIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gYWxsIGl0cyBvYnNlcnZhYmxlcyBjb21wbGV0ZS5cclxuICAgICAgICAgICAgICAvLyBXaGVuIGZvcmtqb2luIGVtaXRzLCBpdCBlbWl0cyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBsYXN0IHZhbHVlIHJldHVybmVkIGZyb21cclxuICAgICAgICAgICAgICAvLyBlYWNoIG9mIGl0cyBvYnNlcnZhYmxlcy5cclxuICAgICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vd3d3LmxlYXJucnhqcy5pby9vcGVyYXRvcnMvY29tYmluYXRpb24vZm9ya2pvaW4uaHRtbFxyXG4gICAgICAgICAgICAgIC8vIFdlIGNvbnZlcnQgdGhpcyB0byBhIHByb21pc2Ugc28gdGhlIGZvcm0gY29udHJvbHMgY2FuIGRpc3BsYXkgdGhlIGVycm9yIG1lc3NhZ2VzXHJcbiAgICAgICAgICAgICAgLy8gYXN5bmNocm9ub3VzbHkuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBBcnJheTxzdHJpbmc+KCkpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBwcm9wZXIgdmFsaWRhdGlvbiBtZXNzYWdlIGZvciBAc2VlIE51bWVyaWNCb3hDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGdldE51bWVyaWNCb3hWYWxpZGF0aW9uTWVzc2FnZXMoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgIGxldCBpbnRlcnBvbGF0aW9uUGFyYW1ldGVyczogTnVtZXJpY0JveEludGVycG9sYXRpb25QYXJhbWV0ZXJzID0ge307XHJcbiAgICAgIGxldCB0eXBlOiBzdHJpbmcgPSAnSW50ZWdlcic7XHJcblxyXG4gICAgICBpZiAoZXJyb3IuZGVjaW1hbHMpIHtcclxuICAgICAgICAgIGludGVycG9sYXRpb25QYXJhbWV0ZXJzLnByZWNpc2lvbiA9IGVycm9yLmRlY2ltYWxzO1xyXG4gICAgICAgICAgdHlwZSA9ICdEZWNpbWFsJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1pbiAhPT0gdW5kZWZpbmVkICYmIGVycm9yLm1heCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycy5taW5WYWx1ZSA9IGVycm9yLm1pbjtcclxuICAgICAgICAgIGludGVycG9sYXRpb25QYXJhbWV0ZXJzLm1heFZhbHVlID0gZXJyb3IubWF4O1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChgJHt0eXBlfUJldHdlZW5WYWxpZGF0aW9uTWVzc2FnZV9MQ2AsIGludGVycG9sYXRpb25QYXJhbWV0ZXJzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1pbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycy5taW5WYWx1ZSA9IGVycm9yLm1pbjtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoYCR7dHlwZX1NaW5WYWxpZGF0aW9uTWVzc2FnZV9MQ2AsIGludGVycG9sYXRpb25QYXJhbWV0ZXJzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1heCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycy5tYXhWYWx1ZSA9IGVycm9yLm1heDtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoYCR7dHlwZX1NYXhWYWxpZGF0aW9uTWVzc2FnZV9MQ2AsIGludGVycG9sYXRpb25QYXJhbWV0ZXJzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1heFByZWNpc2lvbkRpZ2l0cykge1xyXG4gICAgICAgICAgaW50ZXJwb2xhdGlvblBhcmFtZXRlcnMubWF4UHJlY2lzaW9uRGlnaXRzID0gZXJyb3IubWF4UHJlY2lzaW9uRGlnaXRzO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldCgnTWF4UHJlY2lzaW9uRGlnaXRzVmFsaWRhdGlvbk1lc3NhZ2VfTEMnLCBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChlcnJvci5kZWNpbWFscykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldCgnRGVjaW1hbFZhbGlkYXRpb25NZXNzYWdlX0xDJywgaW50ZXJwb2xhdGlvblBhcmFtZXRlcnMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KCdJbmNvcnJlY3RGb3JtYXRfTEMnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIHRoZSBhZHZhbmNlZCB0ZXh0Ym94IHZhbGlkYXRpb24gcGFyYW1zIGNvbnN0cnVjdCB0aGUgZXJyb3IgbWVzc2FnZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VGV4dEJveFZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcjogVGV4dGJveFZhbGlkYXRvclBhcmFtZXRlcnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICBpZiAoZXJyb3IudW5pcXVlKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KCdUZXh0Ym94UmVxdWlyZWRBbmRVbmlxdWVfTEMnLCB7IG1pbkxlbmd0aDogZXJyb3IubWluTGVuZ3RoLCBtYXhMZW5ndGg6IGVycm9yLm1heExlbmd0aCB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ1RleHRib3hSZXF1aXJlZF9MQycsIHsgbWluTGVuZ3RoOiBlcnJvci5taW5MZW5ndGgsIG1heExlbmd0aDogZXJyb3IubWF4TGVuZ3RoIH0pO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7O0FBRTVFOztHQUVHO0FBQ0gsTUFBTSxpQ0FBaUM7Q0FNdEM7QUFFRDs7R0FFRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsWUFDWSxTQUEyQixFQUMzQixlQUFnQztRQURoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDeEMsQ0FBQztJQUdMOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsTUFBK0I7UUFFbkQsK0RBQStEO1FBQy9ELElBQUksc0JBQXNCLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7UUFFN0QsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO1lBRWpCLEtBQUssSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFO2dCQUN6QiwwREFBMEQ7Z0JBQzFELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFN0IsUUFBUSxRQUFRLEVBQUU7b0JBQ2QsS0FBSyxPQUFPO3dCQUNSLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7d0JBQ3BGLE1BQU07b0JBRVYsS0FBSyxVQUFVO3dCQUNYLHNCQUFzQixDQUFD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U0FDL0c7SUFDTCxDQUFDOzs7O1lBeE1GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBdEJRLGdCQUFnQjtZQUloQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBUZXh0Ym94VmFsaWRhdG9yUGFyYW1ldGVycyB9IGZyb20gJy4uL2NvbnRyb2xzL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlRGlzcGxheVBpcGUgfSBmcm9tICcuLi9zaGFyZWQvZGlzcGxheS9waXBlcy9kYXRlLWRpc3BsYXkucGlwZSc7XHJcblxyXG4vKipcclxuICogXCJXZWFrIFR5cGVcIiBkZXNjcmliaW5nIGludGVycG9sYXRpb24gcGFyYW1ldGVycyBmb3IgTnVtZXJpY0JveFxyXG4gKi9cclxuY2xhc3MgTnVtZXJpY0JveEludGVycG9sYXRpb25QYXJhbWV0ZXJzIHtcclxuICAgIHB1YmxpYyBwcmVjaXNpb24/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWluVmFsdWU/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWF4VmFsdWU/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWluTWF4UmFuZ2U/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbWF4UHJlY2lzaW9uRGlnaXRzPzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSB0byB0YWtlIHtAbGluayBWYWxpZGF0aW9uRXJyb3JzfSBhbmQgcmV0dXJuIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZXNcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBkYXRlRGlzcGxheVBpcGU6IERhdGVEaXNwbGF5UGlwZVxyXG4gICkgeyB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBHZXQgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyBmcm9tIHtAbGluayBWYWxpZGF0aW9uRXJyb3JzfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRFcnJvck1lc3NhZ2VzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpOiBQcm9taXNlPEFycmF5PGFueT4+IHtcclxuXHJcbiAgICAgIC8qKiBBcnJheSBvZiBvYnNlcnZhYmxlcyByZXR1cm5lZCBmcm9tIHRoZSBUcmFuc2xhdGVTZXJ2aWNlLiAqL1xyXG4gICAgICBsZXQgdHJhbnNsYXRpb25PYnNlcnZhYmxlcyA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+KCk7XHJcblxyXG4gICAgICBpZiAoZXJyb3JzICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgZm9yICh2YXIgZXJyb3JLZXkgaW4gZXJyb3JzKSB7XHJcbiAgICAgICAgICAgICAgLy8gaXQgd291bGQgYmUgbmljZSB0byBoYXZlIHR5cGluZyBvbiB0aGUgVmFsaWRhdGlvbkVycm9yc1xyXG4gICAgICAgICAgICAgIGxldCBlcnJvciA9IGVycm9yc1tlcnJvcktleV07XHJcblxyXG4gICAgICAgICAgICAgIHN3aXRjaCAoZXJyb3JLZXkpIHtcclxuICAgICAgICAgICAgICAgICAgY2FzZSAnZW1haWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnSW52YWxpZEVtYWlsVmFsaWRhdGlvbk1lc3NhZ2VfTEMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZS5nZXQoJ2lzIHJlcXVpcmVkJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXF1aXJlZFBsdXJhbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZS5nZXQoJ1JlcXVpcmVkUGx1cmFsVmFsaWRhdGlvbk1lc3NhZ2VfTEMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ21pbmxlbmd0aCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdNaW5MZW5ndGhWYWxpZGF0aW9uTWVzc2FnZV9MQycsIHsgbWluTGVuZ3RoOiBlcnJvci5yZXF1aXJlZExlbmd0aCB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ21heGxlbmd0aCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KGBNYXhMZW5ndGhWYWxpZGF0aW9uTWVzc2FnZWAsIHsgbWF4TGVuZ3RoOiBlcnJvci5yZXF1aXJlZExlbmd0aCB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ3BhdHRlcm4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnSW5jb3JyZWN0Rm9ybWF0X0xDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdtaW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnTWluVmFsdWVWYWxpZGF0aW9uTWVzc2FnZV9MQycsIHsgbWluVmFsdWU6IGVycm9yLm1pbiB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ21heCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdNYXhWYWx1ZVZhbGlkYXRpb25NZXNzYWdlX0xDJywgeyBtYXhWYWx1ZTogZXJyb3IubWF4IH0pKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgY2FzZSAnemlwQ29kZUludmFsaWRGb3JtYXQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnbXVzdCBiZSA14oCTOSBudW1iZXJzJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdwb3N0YWxDb2RlSW52YWxpZEZvcm1hdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdtdXN0IGJlIDYgY2hhcmFjdGVycywgYWx0ZXJuYXRpbmcgbGV0dGVycyBhbmQgbnVtYmVycycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgY2FzZSAnemlwQ29kZU5vdEZvdW5kJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ1ppcENvZGVOb3RGb3VuZFZhbGlkYXRpb25NZXNzYWdlX0xDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyBDdXN0b20gdmFsaWRhdG9yIGZyb20gdGhlIE51bWVyaWNib3hDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgY2FzZSAnbnVtZXJpY2JveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy5nZXROdW1lcmljQm94VmFsaWRhdGlvbk1lc3NhZ2VzKGVycm9yKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2FkZG5ldyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGUuZ2V0KCdDb3VsZE5vdEJlQWRkZWRWYWxpZGF0aW9uTWVzc2FnZV9MQycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gS2VuZG8gZGF0ZXBpY2tlciBtaW4gZXJyb3JcclxuICAgICAgICAgICAgICAgICAgY2FzZSAnbWluRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdtaW5EYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuZGF0ZURpc3BsYXlQaXBlLnRyYW5zZm9ybShlcnJvci5taW5WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdNaW5WYWx1ZVZhbGlkYXRpb25NZXNzYWdlX0xDJywgeyBtaW5WYWx1ZTogdmFsdWUgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyBLZW5kbyBkYXRlcGlja2VyIG1heCBlcnJvclxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdtYXhFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ21heERhdGUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5kYXRlRGlzcGxheVBpcGUudHJhbnNmb3JtKGVycm9yLm1heFZhbHVlLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ01heFZhbHVlVmFsaWRhdGlvbk1lc3NhZ2VfTEMnLCB7IG1heFZhbHVlOiB2YWx1ZSB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIEN1c3RvbSB2YWxpZGF0b3IgZm9yIHRoZSBEYXRlUmFuZ2VDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0ZVJhbmdlJzpcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMucHVzaCh0aGlzLnRyYW5zbGF0ZS5nZXQoJ0RhdGVSYW5nZVZhbGlkYXRpb25NZXNzYWdlX0xDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdwYXNzd29yZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGUuZ2V0KCdQYXNzd29yZFZhbGlkYXRpb25NZXNzYWdlX0xDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyBDdXN0b20gdmFsaWRhdG9yIGZyb20gdGhlIFRleHRib3hDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgY2FzZSAndGV4dGJveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy5nZXRUZXh0Qm94VmFsaWRhdGlvbk1lc3NhZ2VzKGVycm9yKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ25vdFVuaXF1ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGUuZ2V0KCdNdXN0QmVVbmlxdWVfTEMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2pzb24nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnSnNvblZhbGlkYXRpb25NZXNzYWdlX1NDJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjYXNlICdwYXNzd29yZEludmFsaWQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25PYnNlcnZhYmxlcy5wdXNoKHRoaXMudHJhbnNsYXRlLmdldCgnUGFzc3dvcmRJbnZhbGlkVmFsaWRhdGlvbk1lc3NhZ2VfTEMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2RvbWFpbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk9ic2VydmFibGVzLnB1c2godGhpcy50cmFuc2xhdGUuZ2V0KCdEb21haW5WYWxpZGF0aW9uTWVzc2FnZV9TQycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodHJhbnNsYXRpb25PYnNlcnZhYmxlcy5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAgICAgICAgIC8vIGZvcmtKb2luIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gYWxsIGl0cyBvYnNlcnZhYmxlcyBjb21wbGV0ZS5cclxuICAgICAgICAgICAgICAvLyBXaGVuIGZvcmtqb2luIGVtaXRzLCBpdCBlbWl0cyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBsYXN0IHZhbHVlIHJldHVybmVkIGZyb21cclxuICAgICAgICAgICAgICAvLyBlYWNoIG9mIGl0cyBvYnNlcnZhYmxlcy5cclxuICAgICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vd3d3LmxlYXJucnhqcy5pby9vcGVyYXRvcnMvY29tYmluYXRpb24vZm9ya2pvaW4uaHRtbFxyXG4gICAgICAgICAgICAgIC8vIFdlIGNvbnZlcnQgdGhpcyB0byBhIHByb21pc2Ugc28gdGhlIGZvcm0gY29udHJvbHMgY2FuIGRpc3BsYXkgdGhlIGVycm9yIG1lc3NhZ2VzXHJcbiAgICAgICAgICAgICAgLy8gYXN5bmNocm9ub3VzbHkuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHRyYW5zbGF0aW9uT2JzZXJ2YWJsZXMpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBBcnJheTxzdHJpbmc+KCkpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBwcm9wZXIgdmFsaWRhdGlvbiBtZXNzYWdlIGZvciBAc2VlIE51bWVyaWNCb3hDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGdldE51bWVyaWNCb3hWYWxpZGF0aW9uTWVzc2FnZXMoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgIGxldCBpbnRlcnBvbGF0aW9uUGFyYW1ldGVyczogTnVtZXJpY0JveEludGVycG9sYXRpb25QYXJhbWV0ZXJzID0ge307XHJcbiAgICAgIGxldCB0eXBlOiBzdHJpbmcgPSAnSW50ZWdlcic7XHJcblxyXG4gICAgICBpZiAoZXJyb3IuZGVjaW1hbHMpIHtcclxuICAgICAgICAgIGludGVycG9sYXRpb25QYXJhbWV0ZXJzLnByZWNpc2lvbiA9IGVycm9yLmRlY2ltYWxzO1xyXG4gICAgICAgICAgdHlwZSA9ICdEZWNpbWFsJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1pbiAhPT0gdW5kZWZpbmVkICYmIGVycm9yLm1heCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycy5taW5WYWx1ZSA9IGVycm9yLm1pbjtcclxuICAgICAgICAgIGludGVycG9sYXRpb25QYXJhbWV0ZXJzLm1heFZhbHVlID0gZXJyb3IubWF4O1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChgJHt0eXBlfUJldHdlZW5WYWxpZGF0aW9uTWVzc2FnZV9MQ2AsIGludGVycG9sYXRpb25QYXJhbWV0ZXJzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1pbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycy5taW5WYWx1ZSA9IGVycm9yLm1pbjtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoYCR7dHlwZX1NaW5WYWxpZGF0aW9uTWVzc2FnZV9MQ2AsIGludGVycG9sYXRpb25QYXJhbWV0ZXJzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1heCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycy5tYXhWYWx1ZSA9IGVycm9yLm1heDtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoYCR7dHlwZX1NYXhWYWxpZGF0aW9uTWVzc2FnZV9MQ2AsIGludGVycG9sYXRpb25QYXJhbWV0ZXJzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9yLm1heFByZWNpc2lvbkRpZ2l0cykge1xyXG4gICAgICAgICAgaW50ZXJwb2xhdGlvblBhcmFtZXRlcnMubWF4UHJlY2lzaW9uRGlnaXRzID0gZXJyb3IubWF4UHJlY2lzaW9uRGlnaXRzO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldCgnTWF4UHJlY2lzaW9uRGlnaXRzVmFsaWRhdGlvbk1lc3NhZ2VfTEMnLCBpbnRlcnBvbGF0aW9uUGFyYW1ldGVycyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChlcnJvci5kZWNpbWFscykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldCgnRGVjaW1hbFZhbGlkYXRpb25NZXNzYWdlX0xDJywgaW50ZXJwb2xhdGlvblBhcmFtZXRlcnMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KCdJbmNvcnJlY3RGb3JtYXRfTEMnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIHRoZSBhZHZhbmNlZCB0ZXh0Ym94IHZhbGlkYXRpb24gcGFyYW1zIGNvbnN0cnVjdCB0aGUgZXJyb3IgbWVzc2FnZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VGV4dEJveFZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcjogVGV4dGJveFZhbGlkYXRvclBhcmFtZXRlcnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICBpZiAoZXJyb3IudW5pcXVlKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KCdUZXh0Ym94UmVxdWlyZWRBbmRVbmlxdWVfTEMnLCB7IG1pbkxlbmd0aDogZXJyb3IubWluTGVuZ3RoLCBtYXhMZW5ndGg6IGVycm9yLm1heExlbmd0aCB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoJ1RleHRib3hSZXF1aXJlZF9MQycsIHsgbWluTGVuZ3RoOiBlcnJvci5taW5MZW5ndGgsIG1heExlbmd0aDogZXJyb3IubWF4TGVuZ3RoIH0pO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -13,6 +13,8 @@ export const dateInputFormatRegex = /^[0-9./-]+$/;
|
|
|
13
13
|
* invalidate if just a minus sign is entered in the input, any digit `0-9` is allowed
|
|
14
14
|
*/
|
|
15
15
|
export const integerPattern = new RegExp("^(-)?([\\d]+)?$");
|
|
16
|
+
/** Pattern to validate most public domains */
|
|
17
|
+
export const domainPattern = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/;
|
|
16
18
|
/**
|
|
17
19
|
* Function to return a decimal RegExp. Takes in the number of decimals to validate
|
|
18
20
|
* against
|
|
@@ -26,4 +28,4 @@ export const getDecimalPattern = (decimals) => {
|
|
|
26
28
|
decimalPattern = new RegExp(`^((((-)?\\d+\\.?\\d${decimalPortion}?)|((-)?\\.?\\d${decimalPortion})))?$`);
|
|
27
29
|
return decimalPattern;
|
|
28
30
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1wYXR0ZXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3ZhbGlkYXRpb24tcGF0dGVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFXLElBQUksQ0FBQztBQUVqRCxpRkFBaUY7QUFDakYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQVcsV0FBVyxDQUFDO0FBRTVEO2dGQUNnRjtBQUNoRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBVyw0Q0FBNEMsQ0FBQztBQUU1RixpRUFBaUU7QUFDakUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVcsSUFBSSxDQUFDO0FBRTlDLGdEQUFnRDtBQUNoRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBVyxhQUFhLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQVcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUVwRSw4Q0FBOEM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFXLDhFQUE4RSxDQUFDO0FBRXBIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO0lBQ2xELElBQUksY0FBc0IsQ0FBQztJQUUzQixpRUFBaUU7SUFDakUsd0VBQXdFO0lBQ3hFLElBQUksY0FBYyxHQUFXLEtBQUssR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBQy9ELDZFQUE2RTtJQUM3RSxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsc0JBQXNCLGNBQWMsa0JBQWtCLGNBQWMsT0FBTyxDQUFDLENBQUM7SUFFekcsT0FBTyxjQUFjLENBQUM7QUFDMUIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFJlZ2V4IHRvIGZsYWcgYWxsIHNwYWNlcyAqL1xyXG5leHBvcnQgY29uc3QgZmluZEFsbFNwYWNlc1BhdHRlcm46IFJlZ0V4cCA9IC8gL2c7XHJcblxyXG4vKiogUGF0dGVybiB0byB2YWxpZGF0ZSBVbml0ZWQgU3RhdGVzIHppcCBjb2Rlcy4gIEFsbG93cyBudW1iZXJzIGFuZCBkYXNoIG9ubHkgKi9cclxuZXhwb3J0IGNvbnN0IHVuaXRlZFN0YXRlc1ppcENvZGVSZWdleDogUmVnRXhwID0gL15bMC05LV0rJC87XHJcblxyXG4vKiogUGF0dGVybiB0byB2YWxpZGF0ZSBDYW5hZGlhbiBwb3N0YWwgY29kZXMsXHJcbiAqICBtdXN0IGZvbGxvdyB0aGUgJ2xldHRlciBudW1iZXIgbGV0dGVyIHNwYWNlIG51bWJlciBsZXR0ZXIgbnVtYmVyJyBwYXR0ZXJuICovXHJcbmV4cG9ydCBjb25zdCBjYW5hZGlhblBvc3RhbENvZGVSZWdleDogUmVnRXhwID0gL15bYS16QS1aXVswLTldW2EtekEtWl0gWzAtOV1bYS16QS1aXVswLTldJC87XHJcblxyXG4vKiogUGF0dGVybiB0byB2YWxpZGF0ZSBvdGhlciBjb3VudHJ5IHppcCBjb2RlcywgYW55dGhpbmcgZ29lcyAqL1xyXG5leHBvcnQgY29uc3Qgb3RoZXJaaXBDb2RlUmVnZXg6IFJlZ0V4cCA9IC8uKi87XHJcblxyXG4vKiogUGF0dGVybiB0byB2YWxpZGF0ZSBhIGNvcnJlY3QgZGF0ZSBmb3JtYXQgKi9cclxuZXhwb3J0IGNvbnN0IGRhdGVJbnB1dEZvcm1hdFJlZ2V4OiBSZWdFeHAgPSAvXlswLTkuLy1dKyQvO1xyXG5cclxuLyoqIFBhdHRlcm4gdG8gdmFsaWRhdGUgaW50ZWdlciBudW1iZXJzLiAgTmVnYXRpdmUgc2lnbiBpcyBvcHRpb25hbCBhbmQgd2lsbCBub3RcclxuICogIGludmFsaWRhdGUgaWYganVzdCBhIG1pbnVzIHNpZ24gaXMgZW50ZXJlZCBpbiB0aGUgaW5wdXQsIGFueSBkaWdpdCBgMC05YCBpcyBhbGxvd2VkXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaW50ZWdlclBhdHRlcm46IFJlZ0V4cCA9IG5ldyBSZWdFeHAoXCJeKC0pPyhbXFxcXGRdKyk/JFwiKTtcclxuXHJcbi8qKiBQYXR0ZXJuIHRvIHZhbGlkYXRlIG1vc3QgcHVibGljIGRvbWFpbnMgKi9cclxuZXhwb3J0IGNvbnN0IGRvbWFpblBhdHRlcm46IFJlZ0V4cCA9IC9eKD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16MC05XVthLXowLTktXXswLDYxfVthLXowLTldJC87XHJcblxyXG4vKipcclxuICogRnVuY3Rpb24gdG8gcmV0dXJuIGEgZGVjaW1hbCBSZWdFeHAuICBUYWtlcyBpbiB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIHZhbGlkYXRlXHJcbiAqIGFnYWluc3RcclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXREZWNpbWFsUGF0dGVybiA9IChkZWNpbWFsczogbnVtYmVyKSA9PiB7XHJcbiAgICBsZXQgZGVjaW1hbFBhdHRlcm46IFJlZ0V4cDtcclxuXHJcbiAgICAvLyBEZWNpbWFsIHBvcnRpb24sIGFsbG93aW5nIHplcm8gdG8gdGhlIG1heGltdW0gYWxsb3dlZCBkZWNpbWFsc1xyXG4gICAgLy8gVGhpcyBlbmFibGVzIHVzIHRvIGFsbG93IGEgbnVtYmVyIGxpa2UgXCIxLlwiIG9yIFwiLlwiIGFuZCBub3QgaW52YWxpZGF0ZVxyXG4gICAgbGV0IGRlY2ltYWxQb3J0aW9uOiBzdHJpbmcgPSBcInswLFwiICsgZGVjaW1hbHMudG9TdHJpbmcoKSArIFwifVwiO1xyXG4gICAgLy8gTmVnYXRpdmUgc2lnbiBpcyBvcHRpb25hbCBhcyB3ZWxsIGFzIHRoZSBkZWNpbWFsLCBhbnkgZGlnaXQgMC05IGlzIGFsbG93ZWRcclxuICAgIGRlY2ltYWxQYXR0ZXJuID0gbmV3IFJlZ0V4cChgXigoKCgtKT9cXFxcZCtcXFxcLj9cXFxcZCR7ZGVjaW1hbFBvcnRpb259Pyl8KCgtKT9cXFxcLj9cXFxcZCR7ZGVjaW1hbFBvcnRpb259KSkpPyRgKTtcclxuXHJcbiAgICByZXR1cm4gZGVjaW1hbFBhdHRlcm47XHJcbn1cclxuIl19
|
|
@@ -546,6 +546,9 @@ class ValidationMessageService {
|
|
|
546
546
|
case 'passwordInvalid':
|
|
547
547
|
translationObservables.push(this.translate.get('PasswordInvalidValidationMessage_LC'));
|
|
548
548
|
break;
|
|
549
|
+
case 'domain':
|
|
550
|
+
translationObservables.push(this.translate.get('DomainValidationMessage_SC'));
|
|
551
|
+
break;
|
|
549
552
|
default:
|
|
550
553
|
break;
|
|
551
554
|
}
|
|
@@ -3536,6 +3539,8 @@ const dateInputFormatRegex = /^[0-9./-]+$/;
|
|
|
3536
3539
|
* invalidate if just a minus sign is entered in the input, any digit `0-9` is allowed
|
|
3537
3540
|
*/
|
|
3538
3541
|
const integerPattern = new RegExp("^(-)?([\\d]+)?$");
|
|
3542
|
+
/** Pattern to validate most public domains */
|
|
3543
|
+
const domainPattern = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/;
|
|
3539
3544
|
/**
|
|
3540
3545
|
* Function to return a decimal RegExp. Takes in the number of decimals to validate
|
|
3541
3546
|
* against
|
|
@@ -8177,6 +8182,12 @@ CustomValidators.requiredPlural = (control) => {
|
|
|
8177
8182
|
*/
|
|
8178
8183
|
CustomValidators.json = (control) => {
|
|
8179
8184
|
return (control.value && JsonHelper.tryParseJSON(control.value) === undefined) ? { json: true } : null;
|
|
8185
|
+
};
|
|
8186
|
+
/**
|
|
8187
|
+
* Returns a validation error if the control's value is not a valid domain.
|
|
8188
|
+
*/
|
|
8189
|
+
CustomValidators.domain = (control) => {
|
|
8190
|
+
return (control.value && domainPattern.test(control.value) === false) ? { domain: true } : null;
|
|
8180
8191
|
};
|
|
8181
8192
|
|
|
8182
8193
|
var PageStatus;
|
|
@@ -9033,5 +9044,5 @@ class HierarchyBaseTestInjectorFactory {
|
|
|
9033
9044
|
* Generated bundle index. Do not edit.
|
|
9034
9045
|
*/
|
|
9035
9046
|
|
|
9036
|
-
export { AppBarComponent, AvatarComponent, BannerComponent, ButtonComponent, CacheService, CheckboxComponent, ClickAreaForDirective, CollapsibleToggleComponent, ComboboxComponent, ComponentsModule, ConfirmComponent, ConfirmDialogContext, CopyButtonDirective, CustomValidators, DateDisplayPipe, DateTimeHelper, DialogCloseDuration, DialogCloseEvent, DialogCloseLatestEvent, DialogComponent, DialogEvent, DialogGroupComponent, DialogOpenDuration, DialogOpenEndEvent, DialogOpenStartEvent, DialogResult, DialogService, DropdownComponent, ErrorService, FileTypeExtensions, FileUploadComponent, FormControlBase, FormControlComponent, FormGroupComponent, FormGroupHelper, HierarchyBase, HierarchyBaseTestInjectorFactory, HierarchyItem, HierarchyMocks, HierarchyTreeComponent, HighlightTextPipe, IfViewportWidthDirective, ItemDisplayComponent, JsonDisplayComponent, JsonHelper, MenuComponent, MockActivatedRoute, MockDateDisplayPipe, MockDialog, MockDialogContent, MockTranslateService, MockTranslationHelperService, NavGroup, NavItemActiveDirective, NumericboxComponent, Overlay, PageBaseComponent, PageBaseComponentTestHelper, PageBaseComponentTestInjectorFactory, PageInitResult, PageStatus, PageStatuses, PageTitleComponent, PageViewComponent, PanelCloseDuration, PanelOpenDuration, PopoverComponent, PopupContainerDirective, RadioButtonComponent, RadioButtonOption, RelativeDatePipe, ResizableBase, ResizableColumnComponent, ResizableComponent, RowCountPipe, ScrollService, SearchableTableComponent, SelectComponent, SpinnerComponent, SplashComponent, SplashService, SpyFactory, TableComponent, TableLockedColumnComponent, TableMasterHeaderRowComponent, TableMasterRowComponent, TablePaginationComponent, TableSelectableRowComponent, TableSelectableRowContext, TabsComponent, Tag, TagsComponent, TelemetryService, TelemetryTrackerService, TextboxComponent, TimeDisplayPipe, ToastComponent, ToastEvent, ToastService, ToasterComponent, TreeComponent, UnicodeStrings, UserPreferenceService, ValidationMessageService, ViewOverlayComponent, WindowService, WizardBaseComponent, WizardButtonsComponent, WizardProgressComponent, canadianPostalCodeRegex, clickEvent, dateInputFormatRegex, findAllSpacesPattern, forEachFormControl, getApiError, getControlValue, getDecimalPattern, integerPattern, isApiError, menuAnimationSpeed, mockRouterFactory, numericboxValidation, orderByIgnoreCase, otherZipCodeRegex, phoneNumberValidationPattern, sortByIgnoreCase, textboxValidation, unitedStatesZipCodeRegex, urlValidationPattern, validateFormGroupValuesAreUnique, ResizableTableDirective as ɵa, AvatarService as ɵb, TableDetailRowComponent as ɵc };
|
|
9047
|
+
export { AppBarComponent, AvatarComponent, BannerComponent, ButtonComponent, CacheService, CheckboxComponent, ClickAreaForDirective, CollapsibleToggleComponent, ComboboxComponent, ComponentsModule, ConfirmComponent, ConfirmDialogContext, CopyButtonDirective, CustomValidators, DateDisplayPipe, DateTimeHelper, DialogCloseDuration, DialogCloseEvent, DialogCloseLatestEvent, DialogComponent, DialogEvent, DialogGroupComponent, DialogOpenDuration, DialogOpenEndEvent, DialogOpenStartEvent, DialogResult, DialogService, DropdownComponent, ErrorService, FileTypeExtensions, FileUploadComponent, FormControlBase, FormControlComponent, FormGroupComponent, FormGroupHelper, HierarchyBase, HierarchyBaseTestInjectorFactory, HierarchyItem, HierarchyMocks, HierarchyTreeComponent, HighlightTextPipe, IfViewportWidthDirective, ItemDisplayComponent, JsonDisplayComponent, JsonHelper, MenuComponent, MockActivatedRoute, MockDateDisplayPipe, MockDialog, MockDialogContent, MockTranslateService, MockTranslationHelperService, NavGroup, NavItemActiveDirective, NumericboxComponent, Overlay, PageBaseComponent, PageBaseComponentTestHelper, PageBaseComponentTestInjectorFactory, PageInitResult, PageStatus, PageStatuses, PageTitleComponent, PageViewComponent, PanelCloseDuration, PanelOpenDuration, PopoverComponent, PopupContainerDirective, RadioButtonComponent, RadioButtonOption, RelativeDatePipe, ResizableBase, ResizableColumnComponent, ResizableComponent, RowCountPipe, ScrollService, SearchableTableComponent, SelectComponent, SpinnerComponent, SplashComponent, SplashService, SpyFactory, TableComponent, TableLockedColumnComponent, TableMasterHeaderRowComponent, TableMasterRowComponent, TablePaginationComponent, TableSelectableRowComponent, TableSelectableRowContext, TabsComponent, Tag, TagsComponent, TelemetryService, TelemetryTrackerService, TextboxComponent, TimeDisplayPipe, ToastComponent, ToastEvent, ToastService, ToasterComponent, TreeComponent, UnicodeStrings, UserPreferenceService, ValidationMessageService, ViewOverlayComponent, WindowService, WizardBaseComponent, WizardButtonsComponent, WizardProgressComponent, canadianPostalCodeRegex, clickEvent, dateInputFormatRegex, domainPattern, findAllSpacesPattern, forEachFormControl, getApiError, getControlValue, getDecimalPattern, integerPattern, isApiError, menuAnimationSpeed, mockRouterFactory, numericboxValidation, orderByIgnoreCase, otherZipCodeRegex, phoneNumberValidationPattern, sortByIgnoreCase, textboxValidation, unitedStatesZipCodeRegex, urlValidationPattern, validateFormGroupValuesAreUnique, ResizableTableDirective as ɵa, AvatarService as ɵb, TableDetailRowComponent as ɵc };
|
|
9037
9048
|
//# sourceMappingURL=energycap-components.js.map
|