@carefirst/library 2.0.29 → 2.0.30
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/components/form-input/form-input.component.mjs +13 -3
- package/esm2022/lib/utils/form-validators-utility.mjs +10 -1
- package/fesm2022/carefirst-library.mjs +129 -111
- package/fesm2022/carefirst-library.mjs.map +1 -1
- package/lib/components/form-input/form-input.component.d.ts +4 -2
- package/lib/utils/form-validators-utility.d.ts +1 -0
- package/package.json +1 -1
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
2
2
|
import { FormControl } from '@angular/forms';
|
3
3
|
import { checkTruthAttribute, validateStringValue } from '../../utils/attribute.util';
|
4
|
+
import { CFPFormValidators } from '../../utils/form-validators-utility';
|
4
5
|
import * as i0 from "@angular/core";
|
5
6
|
import * as i1 from "@ionic/angular";
|
6
7
|
import * as i2 from "@angular/common";
|
@@ -15,8 +16,8 @@ const inputsC = {
|
|
15
16
|
};
|
16
17
|
export class FormInputComponent {
|
17
18
|
label;
|
18
|
-
min
|
19
|
-
max
|
19
|
+
min;
|
20
|
+
max;
|
20
21
|
labelPlacement;
|
21
22
|
placeholder;
|
22
23
|
inputmode;
|
@@ -37,6 +38,8 @@ export class FormInputComponent {
|
|
37
38
|
inputAutoCapitalize;
|
38
39
|
inputGreyBackground = false;
|
39
40
|
showPassword = false;
|
41
|
+
dateValidatorMin = null;
|
42
|
+
dateValidatorMax = null;
|
40
43
|
ngOnChanges(changes) {
|
41
44
|
this.inputLabelPlacement =
|
42
45
|
validateStringValue(changes, 'labelPlacement', inputsC.labelPlacement.slice(), this.inputLabelPlacement) || 'floating';
|
@@ -48,6 +51,13 @@ export class FormInputComponent {
|
|
48
51
|
this.inputAutoCapitalize =
|
49
52
|
validateStringValue(changes, 'autoCapitalize', inputsC.autoCapitalize.slice(), this.inputAutoCapitalize) || 'none';
|
50
53
|
this.inputGreyBackground = checkTruthAttribute(changes, 'greyBackground', this.inputGreyBackground);
|
54
|
+
if (this.inputType === 'date') {
|
55
|
+
if (changes['min']?.currentValue || changes['max']?.currentValue) {
|
56
|
+
this.dateValidatorMin = changes['min'] ? changes['min'].currentValue : this.dateValidatorMin;
|
57
|
+
this.dateValidatorMax = changes['max'] ? changes['max'].currentValue : this.dateValidatorMax;
|
58
|
+
this.control?.addValidators(CFPFormValidators.isValidDate(this.dateValidatorMin || null, this.dateValidatorMax || null));
|
59
|
+
}
|
60
|
+
}
|
51
61
|
}
|
52
62
|
togglePasswordShow() {
|
53
63
|
this.showPassword = !this.showPassword;
|
@@ -90,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
90
100
|
}], valueChange: [{
|
91
101
|
type: Output
|
92
102
|
}] } });
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFzQyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBTXRGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsY0FBYyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUNoRSxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDMUUsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDekUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztDQUNoSCxDQUFD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RyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IEZvcm0gSW5wdXQgRmllbGRcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE0XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dCBsYWJlbD1cIkxhYmVsIE5hbWVcIiAlbGFiZWxQbGFjZW1lbnQlICVpbnB1dE1vZGUlICVub0NsZWFyQnV0dG9uJSAldGV4dENlbnRlciUgJW1pbiUgJW1heCUgJWF1dG9DYXBpdGFsaXplJSAldHlwZSUgJVsodmFsdWUpXT1cInR3b1dheUNvbXNcIiUgJSh2YWx1ZUNoYW5nZSk9XCJjdXJyZW50VmFsdWVFdmVudFwiJSAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCI+PC9jZi1mb3JtLWlucHV0PlxuICogICAgICAgICAgICAgICAgZGlzYWJsZSBpbnB1dCBieSBkaXNhYmxpbmcgdGhlIGZvcm0gY29udHJvbFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vLS0tIFV0aWxzXG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlLCB2YWxpZGF0ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuXG4vKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBAaW50ZXJmYWNlICAgICBpbnB1dHNDXG4gKiBAZGVzY3JpcHRpb24gICBEZWZpbmUgYXZhaWxhYmxlIGlucHV0IHZhbHVlc1xuICovXG5jb25zdCBpbnB1dHNDID0ge1xuICBsYWJlbFBsYWNlbWVudDogWydmaXhlZCcsICdmbG9hdGluZycsICdzdGFja2VkJywgJ3N0YXJ0JywgJ2VuZCddLFxuICBpbnB1dE1vZGU6IFsndGV4dCcsICdlbWFpbCcsICdudW1lcmljJywgJ3RlbCcsICdkZWNpbWFsJywgJ3VybCcsICdzZWFyY2gnXSxcbiAgYXV0b0NhcGl0YWxpemU6IFsnb2ZmJywgJ25vbmUnLCAnb24nLCAnc2VudGVuY2VzJywgJ3dvcmRzJywgJ2NoYXJhY3RlcnMnXSxcbiAgdHlwZTogWydkYXRlJywgJ2RhdGV0aW1lLWxvY2FsJywgJ2VtYWlsJywgJ21vbnRoJywgJ251bWJlcicsICdwYXNzd29yZCcsICdzZWFyY2gnLCAndGVsJywgJ3RleHQnLCAndGltZScsICd1cmwnLCAnd2VlayddLFxufSBhcyBjb25zdDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2YtZm9ybS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0taW5wdXQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgbWluOiBudW1iZXIgfCBzdHJpbmcgPSAnbm9uZSc7XG4gIEBJbnB1dCgpIG1heDogbnVtYmVyIHwgc3RyaW5nID0gJ25vbmUnO1xuICBASW5wdXQoKSBsYWJlbFBsYWNlbWVudD86ICh0eXBlb2YgaW5wdXRzQy5sYWJlbFBsYWNlbWVudClbbnVtYmVyXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGlucHV0bW9kZT86ICh0eXBlb2YgaW5wdXRzQy5pbnB1dE1vZGUpW251bWJlcl07XG4gIEBJbnB1dCgpIGF1dG9DYXBpdGFsaXplPzogKHR5cGVvZiBpbnB1dHNDLmF1dG9DYXBpdGFsaXplKVtudW1iZXJdO1xuICBASW5wdXQoKSB0eXBlPzogKHR5cGVvZiBpbnB1dHNDLnR5cGUpW251bWJlcl07XG4gIEBJbnB1dCgpIG5vQ2xlYXJCdXR0b24/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBjb250cm9sPzogRm9ybUNvbnRyb2wgfCBudWxsO1xuICBASW5wdXQoKSB0ZXh0Q2VudGVyPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyIHwgc3RyaW5nO1xuICBASW5wdXQoKSBncmV5QmFja2dyb3VuZD86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLy8tLS0gbmdNb2RlbFxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiB0aGlzLnZhbHVlPigpO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dExhYmVsUGxhY2VtZW50OiB0eXBlb2YgdGhpcy5sYWJlbFBsYWNlbWVudDtcbiAgbG9jYWxJbnB1dE1vZGU6IHR5cGVvZiB0aGlzLmlucHV0bW9kZTtcbiAgaW5wdXRDbGVhciA9IGZhbHNlO1xuICBpbnB1dFRleHRDZW50ZXIgPSBmYWxzZTtcbiAgaW5wdXRUeXBlOiB0eXBlb2YgdGhpcy50eXBlO1xuICBpbnB1dEF1dG9DYXBpdGFsaXplOiB0eXBlb2YgdGhpcy5hdXRvQ2FwaXRhbGl6ZTtcbiAgaW5wdXRHcmV5QmFja2dyb3VuZCA9IGZhbHNlO1xuICBzaG93UGFzc3dvcmQgPSBmYWxzZTtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIERldGVjdCBjaGFuZ2VzIHRvIGlucHV0IHZhbHVlc1xuICAgKiBAcGFyYW0gICAgICAgICB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIExhYmVsIFBsYWNlbWVudFxuICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudCA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRzQy5sYWJlbFBsYWNlbWVudClbbnVtYmVyXT4oXG4gICAgICAgIGNoYW5nZXMsXG4gICAgICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgICAgIGlucHV0c0MubGFiZWxQbGFjZW1lbnQuc2xpY2UoKSxcbiAgICAgICAgdGhpcy5pbnB1dExhYmVsUGxhY2VtZW50XG4gICAgICApIHx8ICdmbG9hdGluZyc7XG4gICAgLy8tLS0gSW5wdXQgVHlwZSAoa2V5Ym9hcmQpXG4gICAgdGhpcy5sb2NhbElucHV0TW9kZSA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRzQy5pbnB1dE1vZGUpW251bWJlcl0+KGNoYW5nZXMsICdpbnB1dG1vZGUnLCBpbnB1dHNDLmlucHV0TW9kZS5zbGljZSgpLCB0aGlzLmxvY2FsSW5wdXRNb2RlKSB8fCAndGV4dCc7XG4gICAgLy8tLS0gQ2xlYXIgQnV0dG9uXG4gICAgdGhpcy5pbnB1dENsZWFyID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnbm9DbGVhckJ1dHRvbicsIHRoaXMuaW5wdXRDbGVhcik7XG4gICAgLy8tLS0gVGV4dCBDZW50ZXJcbiAgICB0aGlzLmlucHV0VGV4dENlbnRlciA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ3RleHRDZW50ZXInLCB0aGlzLmlucHV0VGV4dENlbnRlcik7XG4gICAgLy8tLS0gVHlwZVxuICAgIHRoaXMuaW5wdXRUeXBlID0gdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MudHlwZSlbbnVtYmVyXT4oY2hhbmdlcywgJ3R5cGUnLCBpbnB1dHNDLnR5cGUuc2xpY2UoKSwgdGhpcy5pbnB1dFR5cGUpIHx8ICd0ZXh0JztcbiAgICAvLy0tLSBBdXRvIENhcGl0YWxpemVcbiAgICB0aGlzLmlucHV0QXV0b0NhcGl0YWxpemUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MuYXV0b0NhcGl0YWxpemUpW251bWJlcl0+KFxuICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAnYXV0b0NhcGl0YWxpemUnLFxuICAgICAgICBpbnB1dHNDLmF1dG9DYXBpdGFsaXplLnNsaWNlKCksXG4gICAgICAgIHRoaXMuaW5wdXRBdXRvQ2FwaXRhbGl6ZVxuICAgICAgKSB8fCAnbm9uZSc7XG4gICAgLy8tLS0gR3JleSBCYWNrZ3JvdW5kXG4gICAgdGhpcy5pbnB1dEdyZXlCYWNrZ3JvdW5kID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnZ3JleUJhY2tncm91bmQnLCB0aGlzLmlucHV0R3JleUJhY2tncm91bmQpO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICB0b2dnbGVQYXNzd29yZFNob3dcbiAgICogQGRlc2NyaXB0aW9uICAgVG9nZ2xlIGlmIHBhc3N3b3JkIGlzIHNob3dpbmcgb3IgaGlkZGVuXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgdG9nZ2xlUGFzc3dvcmRTaG93KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1Bhc3N3b3JkID0gIXRoaXMuc2hvd1Bhc3N3b3JkO1xuICAgIHRoaXMuaW5wdXRUeXBlID0gdGhpcy5pbnB1dFR5cGUgPT09ICdwYXNzd29yZCcgPyAndGV4dCcgOiAncGFzc3dvcmQnO1xuICB9XG59XG4iLCI8IS0tIG5nTW9kZWwgLS0+XG48aW9uLWlucHV0XG4gICNub3JtYWxJbnB1dFxuICAqbmdJZj1cIiFjb250cm9sXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC1jZW50ZXInOiBpbnB1dFRleHRDZW50ZXIsICdncmV5LWJhY2tncm91bmQnOiBpbnB1dEdyZXlCYWNrZ3JvdW5kIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2NsZWFySW5wdXRdPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyA/IGZhbHNlIDogIWlucHV0Q2xlYXJcIlxuICBbYXV0b2NhcGl0YWxpemVdPVwiYXV0b0NhcGl0YWxpemVcIlxuICBtb2RlPVwibWRcIlxuICBbaW5wdXRtb2RlXT1cImxvY2FsSW5wdXRNb2RlXCJcbiAgW21pbl09XCJtaW5cIlxuICBbbWF4XT1cIm1heFwiXG4gIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoIHx8IG51bGxcIlxuICBbdHlwZV09XCJpbnB1dFR5cGVcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIlxuICBbdmFsdWVdPVwidmFsdWVcIj5cbiAgPGNmLWljb25cbiAgICBzbG90PVwiZW5kXCJcbiAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgKm5nSWY9XCJub3JtYWxJbnB1dC52YWx1ZSAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcbiAgICBbaWNvbl09XCJzaG93UGFzc3dvcmQgPyAnaGlkZS1wYXNzd29yZCcgOiAnc2hvdy1wYXNzd29yZCdcIlxuICAgIFtoZWlnaHRdPVwiMjRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFNob3coKVwiPjwvY2YtaWNvblxuPjwvaW9uLWlucHV0PlxuPCEtLSBGb3JtIENvbnRyb2wgLS0+XG48aW9uLWlucHV0XG4gICNmb3JtQ29udHJvbElucHV0XG4gICpuZ0lmPVwiY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQtY2VudGVyJzogaW5wdXRUZXh0Q2VudGVyLCAnZ3JleS1iYWNrZ3JvdW5kJzogaW5wdXRHcmV5QmFja2dyb3VuZCB9XCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIFtjbGVhcklucHV0XT1cInR5cGUgPT09ICdwYXNzd29yZCcgPyBmYWxzZSA6ICFpbnB1dENsZWFyXCJcbiAgW2F1dG9jYXBpdGFsaXplXT1cImF1dG9DYXBpdGFsaXplXCJcbiAgbW9kZT1cIm1kXCJcbiAgW2lucHV0bW9kZV09XCJsb2NhbElucHV0TW9kZVwiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgW21pbl09XCJtaW5cIlxuICBbbWF4XT1cIm1heFwiXG4gIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoIHx8IG51bGxcIlxuICBbdHlwZV09XCJpbnB1dFR5cGVcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIj5cbiAgPGNmLWljb25cbiAgICBzbG90PVwiZW5kXCJcbiAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgKm5nSWY9XCJmb3JtQ29udHJvbElucHV0LnZhbHVlICYmIHR5cGUgPT09ICdwYXNzd29yZCdcIlxuICAgIFtpY29uXT1cInNob3dQYXNzd29yZCA/ICdoaWRlLXBhc3N3b3JkJyA6ICdzaG93LXBhc3N3b3JkJ1wiXG4gICAgW2hlaWdodF09XCIyNFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVBhc3N3b3JkU2hvdygpXCI+PC9jZi1pY29uPlxuPC9pb24taW5wdXQ+XG48Y2YtZm9ybS12YWxpZGF0aW9uICpuZ0lmPVwiY29udHJvbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIj48L2NmLWZvcm0tdmFsaWRhdGlvbj5cbiJdfQ==
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFzQyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBTXhFLE1BQU0sT0FBTyxHQUFHO0lBQ2QsY0FBYyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUNoRSxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDMUUsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDekUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0s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LE9BQU8sRUFBRSxhQUFhLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBT0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ3ZFLENBQUM7dUdBdEZVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLHFjQ2pDL0IsMjBEQXVEQTs7MkZEdEJhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlOzhCQUtoQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IEZvcm0gSW5wdXQgRmllbGRcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE0XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dCBsYWJlbD1cIkxhYmVsIE5hbWVcIiAlbGFiZWxQbGFjZW1lbnQlICVpbnB1dE1vZGUlICVub0NsZWFyQnV0dG9uJSAldGV4dENlbnRlciUgJW1pbiUgJW1heCUgJWF1dG9DYXBpdGFsaXplJSAldHlwZSUgJVsodmFsdWUpXT1cInR3b1dheUNvbXNcIiUgJSh2YWx1ZUNoYW5nZSk9XCJjdXJyZW50VmFsdWVFdmVudFwiJSAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCI+PC9jZi1mb3JtLWlucHV0PlxuICogICAgICAgICAgICAgICAgZGlzYWJsZSBpbnB1dCBieSBkaXNhYmxpbmcgdGhlIGZvcm0gY29udHJvbFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vLS0tIFV0aWxzXG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlLCB2YWxpZGF0ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuaW1wb3J0IHsgQ0ZQRm9ybVZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtLXZhbGlkYXRvcnMtdXRpbGl0eSc7XG5cbi8qKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBpbnRlcmZhY2UgICAgIGlucHV0c0NcbiAqIEBkZXNjcmlwdGlvbiAgIERlZmluZSBhdmFpbGFibGUgaW5wdXQgdmFsdWVzXG4gKi9cbmNvbnN0IGlucHV0c0MgPSB7XG4gIGxhYmVsUGxhY2VtZW50OiBbJ2ZpeGVkJywgJ2Zsb2F0aW5nJywgJ3N0YWNrZWQnLCAnc3RhcnQnLCAnZW5kJ10sXG4gIGlucHV0TW9kZTogWyd0ZXh0JywgJ2VtYWlsJywgJ251bWVyaWMnLCAndGVsJywgJ2RlY2ltYWwnLCAndXJsJywgJ3NlYXJjaCddLFxuICBhdXRvQ2FwaXRhbGl6ZTogWydvZmYnLCAnbm9uZScsICdvbicsICdzZW50ZW5jZXMnLCAnd29yZHMnLCAnY2hhcmFjdGVycyddLFxuICB0eXBlOiBbJ2RhdGUnLCAnZGF0ZXRpbWUtbG9jYWwnLCAnZW1haWwnLCAnbW9udGgnLCAnbnVtYmVyJywgJ3Bhc3N3b3JkJywgJ3NlYXJjaCcsICd0ZWwnLCAndGV4dCcsICd0aW1lJywgJ3VybCcsICd3ZWVrJ10sXG59IGFzIGNvbnN0O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1mb3JtLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS1pbnB1dC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBtaW46IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWF4OiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGxhYmVsUGxhY2VtZW50PzogKHR5cGVvZiBpbnB1dHNDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaW5wdXRtb2RlPzogKHR5cGVvZiBpbnB1dHNDLmlucHV0TW9kZSlbbnVtYmVyXTtcbiAgQElucHV0KCkgYXV0b0NhcGl0YWxpemU/OiAodHlwZW9mIGlucHV0c0MuYXV0b0NhcGl0YWxpemUpW251bWJlcl07XG4gIEBJbnB1dCgpIHR5cGU/OiAodHlwZW9mIGlucHV0c0MudHlwZSlbbnVtYmVyXTtcbiAgQElucHV0KCkgbm9DbGVhckJ1dHRvbj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNvbnRyb2w/OiBGb3JtQ29udHJvbCB8IG51bGw7XG4gIEBJbnB1dCgpIHRleHRDZW50ZXI/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIGdyZXlCYWNrZ3JvdW5kPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvLy0tLSBuZ01vZGVsXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dHlwZW9mIHRoaXMudmFsdWU+KCk7XG5cbiAgLy8tLS0gTG9jYWwgdmFyaWFibGVzXG4gIGlucHV0TGFiZWxQbGFjZW1lbnQ6IHR5cGVvZiB0aGlzLmxhYmVsUGxhY2VtZW50O1xuICBsb2NhbElucHV0TW9kZTogdHlwZW9mIHRoaXMuaW5wdXRtb2RlO1xuICBpbnB1dENsZWFyID0gZmFsc2U7XG4gIGlucHV0VGV4dENlbnRlciA9IGZhbHNlO1xuICBpbnB1dFR5cGU6IHR5cGVvZiB0aGlzLnR5cGU7XG4gIGlucHV0QXV0b0NhcGl0YWxpemU6IHR5cGVvZiB0aGlzLmF1dG9DYXBpdGFsaXplO1xuICBpbnB1dEdyZXlCYWNrZ3JvdW5kID0gZmFsc2U7XG4gIHNob3dQYXNzd29yZCA9IGZhbHNlO1xuICBkYXRlVmFsaWRhdG9yTWluOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZGF0ZVZhbGlkYXRvck1heDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBEZXRlY3QgY2hhbmdlcyB0byBpbnB1dCB2YWx1ZXNcbiAgICogQHBhcmFtICAgICAgICAge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXNcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBMYWJlbCBQbGFjZW1lbnRcbiAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnQgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MubGFiZWxQbGFjZW1lbnQpW251bWJlcl0+KFxuICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICAgICBpbnB1dHNDLmxhYmVsUGxhY2VtZW50LnNsaWNlKCksXG4gICAgICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudFxuICAgICAgKSB8fCAnZmxvYXRpbmcnO1xuICAgIC8vLS0tIElucHV0IFR5cGUgKGtleWJvYXJkKVxuICAgIHRoaXMubG9jYWxJbnB1dE1vZGUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MuaW5wdXRNb2RlKVtudW1iZXJdPihjaGFuZ2VzLCAnaW5wdXRtb2RlJywgaW5wdXRzQy5pbnB1dE1vZGUuc2xpY2UoKSwgdGhpcy5sb2NhbElucHV0TW9kZSkgfHwgJ3RleHQnO1xuICAgIC8vLS0tIENsZWFyIEJ1dHRvblxuICAgIHRoaXMuaW5wdXRDbGVhciA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ25vQ2xlYXJCdXR0b24nLCB0aGlzLmlucHV0Q2xlYXIpO1xuICAgIC8vLS0tIFRleHQgQ2VudGVyXG4gICAgdGhpcy5pbnB1dFRleHRDZW50ZXIgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICd0ZXh0Q2VudGVyJywgdGhpcy5pbnB1dFRleHRDZW50ZXIpO1xuICAgIC8vLS0tIFR5cGVcbiAgICB0aGlzLmlucHV0VHlwZSA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8KHR5cGVvZiBpbnB1dHNDLnR5cGUpW251bWJlcl0+KGNoYW5nZXMsICd0eXBlJywgaW5wdXRzQy50eXBlLnNsaWNlKCksIHRoaXMuaW5wdXRUeXBlKSB8fCAndGV4dCc7XG4gICAgLy8tLS0gQXV0byBDYXBpdGFsaXplXG4gICAgdGhpcy5pbnB1dEF1dG9DYXBpdGFsaXplID1cbiAgICAgIHZhbGlkYXRlU3RyaW5nVmFsdWU8KHR5cGVvZiBpbnB1dHNDLmF1dG9DYXBpdGFsaXplKVtudW1iZXJdPihcbiAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgJ2F1dG9DYXBpdGFsaXplJyxcbiAgICAgICAgaW5wdXRzQy5hdXRvQ2FwaXRhbGl6ZS5zbGljZSgpLFxuICAgICAgICB0aGlzLmlucHV0QXV0b0NhcGl0YWxpemVcbiAgICAgICkgfHwgJ25vbmUnO1xuICAgIC8vLS0tIEdyZXkgQmFja2dyb3VuZFxuICAgIHRoaXMuaW5wdXRHcmV5QmFja2dyb3VuZCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2dyZXlCYWNrZ3JvdW5kJywgdGhpcy5pbnB1dEdyZXlCYWNrZ3JvdW5kKTtcblxuICAgIC8vLS0tPD4gYWRkaW5nIG11bHRpcGxlIHZhbGlkYXRvcnNcbiAgICAvLy0tLSBBdXRvbWF0aWNhbGx5IGFkZCBpc1ZhbGlkRGF0ZSB2YWxpZGF0b3Igd2hlbiBpbnB1dCBpcyBhIGRhdGUgdHlwZSBhbmQgaGFzIGVpdGhlciBhIG1pbiBvciBhIG1heCB2YWx1ZVxuICAgIGlmICh0aGlzLmlucHV0VHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICBpZiAoY2hhbmdlc1snbWluJ10/LmN1cnJlbnRWYWx1ZSB8fCBjaGFuZ2VzWydtYXgnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIC8vLS0tIFVwZGF0ZSBtaW4gbWF4IGlucHV0XG4gICAgICAgIHRoaXMuZGF0ZVZhbGlkYXRvck1pbiA9IGNoYW5nZXNbJ21pbiddID8gY2hhbmdlc1snbWluJ10uY3VycmVudFZhbHVlIDogdGhpcy5kYXRlVmFsaWRhdG9yTWluO1xuICAgICAgICB0aGlzLmRhdGVWYWxpZGF0b3JNYXggPSBjaGFuZ2VzWydtYXgnXSA/IGNoYW5nZXNbJ21heCddLmN1cnJlbnRWYWx1ZSA6IHRoaXMuZGF0ZVZhbGlkYXRvck1heDtcbiAgICAgICAgLy8tLS0gQWRkIG5ldyB2YWxpZGF0b3JcbiAgICAgICAgdGhpcy5jb250cm9sPy5hZGRWYWxpZGF0b3JzKENGUEZvcm1WYWxpZGF0b3JzLmlzVmFsaWREYXRlKHRoaXMuZGF0ZVZhbGlkYXRvck1pbiB8fCBudWxsLCB0aGlzLmRhdGVWYWxpZGF0b3JNYXggfHwgbnVsbCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgdG9nZ2xlUGFzc3dvcmRTaG93XG4gICAqIEBkZXNjcmlwdGlvbiAgIFRvZ2dsZSBpZiBwYXNzd29yZCBpcyBzaG93aW5nIG9yIGhpZGRlblxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHRvZ2dsZVBhc3N3b3JkU2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQYXNzd29yZCA9ICF0aGlzLnNob3dQYXNzd29yZDtcbiAgICB0aGlzLmlucHV0VHlwZSA9IHRoaXMuaW5wdXRUeXBlID09PSAncGFzc3dvcmQnID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcbiAgfVxufVxuIiwiPCEtLSBuZ01vZGVsIC0tPlxuPGlvbi1pbnB1dFxuICAjbm9ybWFsSW5wdXRcbiAgKm5nSWY9XCIhY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQtY2VudGVyJzogaW5wdXRUZXh0Q2VudGVyLCAnZ3JleS1iYWNrZ3JvdW5kJzogaW5wdXRHcmV5QmFja2dyb3VuZCB9XCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIFtjbGVhcklucHV0XT1cInR5cGUgPT09ICdwYXNzd29yZCcgPyBmYWxzZSA6ICFpbnB1dENsZWFyXCJcbiAgW2F1dG9jYXBpdGFsaXplXT1cImF1dG9DYXBpdGFsaXplXCJcbiAgbW9kZT1cIm1kXCJcbiAgW2lucHV0bW9kZV09XCJsb2NhbElucHV0TW9kZVwiXG4gIFttaW5dPVwibWluXCJcbiAgW21heF09XCJtYXhcIlxuICBbbWF4bGVuZ3RoXT1cIm1heExlbmd0aCB8fCBudWxsXCJcbiAgW3R5cGVdPVwiaW5wdXRUeXBlXCJcbiAgKGlvbklucHV0KT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50LmRldGFpbC52YWx1ZSA/PyB1bmRlZmluZWQpXCJcbiAgW3ZhbHVlXT1cInZhbHVlXCI+XG4gIDxjZi1pY29uXG4gICAgc2xvdD1cImVuZFwiXG4gICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxuICAgICpuZ0lmPVwibm9ybWFsSW5wdXQudmFsdWUgJiYgdHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiXG4gICAgW2ljb25dPVwic2hvd1Bhc3N3b3JkID8gJ2hpZGUtcGFzc3dvcmQnIDogJ3Nob3ctcGFzc3dvcmQnXCJcbiAgICBbaGVpZ2h0XT1cIjI0XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlUGFzc3dvcmRTaG93KClcIj48L2NmLWljb25cbj48L2lvbi1pbnB1dD5cbjwhLS0gRm9ybSBDb250cm9sIC0tPlxuPGlvbi1pbnB1dFxuICAjZm9ybUNvbnRyb2xJbnB1dFxuICAqbmdJZj1cImNvbnRyb2xcIlxuICBbbmdDbGFzc109XCJ7ICd0ZXh0LWNlbnRlcic6IGlucHV0VGV4dENlbnRlciwgJ2dyZXktYmFja2dyb3VuZCc6IGlucHV0R3JleUJhY2tncm91bmQgfVwiXG4gIFtsYWJlbF09XCJsYWJlbFwiXG4gIFtsYWJlbFBsYWNlbWVudF09XCJpbnB1dExhYmVsUGxhY2VtZW50XCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgZmlsbD1cIm91dGxpbmVcIlxuICBbY2xlYXJJbnB1dF09XCJ0eXBlID09PSAncGFzc3dvcmQnID8gZmFsc2UgOiAhaW5wdXRDbGVhclwiXG4gIFthdXRvY2FwaXRhbGl6ZV09XCJhdXRvQ2FwaXRhbGl6ZVwiXG4gIG1vZGU9XCJtZFwiXG4gIFtpbnB1dG1vZGVdPVwibG9jYWxJbnB1dE1vZGVcIlxuICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gIFttaW5dPVwibWluXCJcbiAgW21heF09XCJtYXhcIlxuICBbbWF4bGVuZ3RoXT1cIm1heExlbmd0aCB8fCBudWxsXCJcbiAgW3R5cGVdPVwiaW5wdXRUeXBlXCJcbiAgKGlvbklucHV0KT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50LmRldGFpbC52YWx1ZSA/PyB1bmRlZmluZWQpXCI+XG4gIDxjZi1pY29uXG4gICAgc2xvdD1cImVuZFwiXG4gICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxuICAgICpuZ0lmPVwiZm9ybUNvbnRyb2xJbnB1dC52YWx1ZSAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcbiAgICBbaWNvbl09XCJzaG93UGFzc3dvcmQgPyAnaGlkZS1wYXNzd29yZCcgOiAnc2hvdy1wYXNzd29yZCdcIlxuICAgIFtoZWlnaHRdPVwiMjRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFNob3coKVwiPjwvY2YtaWNvbj5cbjwvaW9uLWlucHV0PlxuPGNmLWZvcm0tdmFsaWRhdGlvbiAqbmdJZj1cImNvbnRyb2xcIiBbY29udHJvbF09XCJjb250cm9sXCI+PC9jZi1mb3JtLXZhbGlkYXRpb24+XG4iXX0=
|
@@ -109,5 +109,14 @@ export class CFPFormValidators {
|
|
109
109
|
return error ? { errorMessage: error } : null;
|
110
110
|
};
|
111
111
|
}
|
112
|
+
static isValidDate(minDate, maxDate) {
|
113
|
+
return (control) => {
|
114
|
+
if (!dayjs(new Date(control.value)).isValid())
|
115
|
+
return { errorMessage: 'The given date is not valid' };
|
116
|
+
if ((minDate && dayjs(new Date(control.value)).isBefore(minDate)) || (maxDate && dayjs(new Date(control.value)).isAfter(maxDate)))
|
117
|
+
return { errorMessage: 'The given date is not within the valid parameters' };
|
118
|
+
return null;
|
119
|
+
};
|
120
|
+
}
|
112
121
|
}
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLXV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUloQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLE1BQU0sQ0FBQyxTQUFTLENBQUMseUJBQWlDO1FBQ2hELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBRTNELE1BQU0sZ0JBQWdCLEdBQTJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksSUFBSSxDQUFDO1lBR3pHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztpQkFFdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztpQkFFOUUsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRSxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsS0FBSztnQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7WUFFeEgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBUUQsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLENBQUMsT0FBd0IsRUFBMkIs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RSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEQsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIHZhbGlkYXRvcnNcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLXZhbGlkYXRvcnNcbiAqIEBkZXNjcmlwdGlvbiAgIFZhcmlvdXMgZm9ybSB2YWxpZGF0b3JzXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjIgLSAwMSAtIDIwXG4gKiBAdXNhZ2UgICAgICAgICBEaXNwbGF5IFwiZXJyb3JNZXNzYWdlXCIga2V5IHZhbHVlIGFzIHZhbGlkYXRvciByZXNwb25zZSBtZXNzYWdlXG4gKi9cblxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHBhc3N3b3JkVmFsaWRhdG9yIGZyb20gJ3Bhc3N3b3JkLXZhbGlkYXRvcic7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIENGUEZvcm1WYWxpZGF0b3JzIHtcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjaGVja1BTV1JldHlwZVxuICAgKiBAZGVzY3JpcHRpb24gICBDaGVjayBpZiBwYXNzd29yZHMgbWF0Y2hcbiAgICogQHBhcmFtICAgICAgICAge3N0cmluZ30gY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmNvbXBhcmVUbygncGFzc3dvcmQnKVxuICAgKi9cbiAgc3RhdGljIGNvbXBhcmVUbyhjb250cm9sTmFtZVRvQ2hlY2tBZ2FpbnN0OiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAvLy0tLSBDb21wYXJlIGNvbnRyb2xzXG4gICAgICBjb25zdCBjb250cm9sVG9DaGVja1RvOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gY29udHJvbD8ucGFyZW50Py5nZXQoY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdCkgfHwgbnVsbDtcblxuICAgICAgLy8tLS0gQ2hlY2sgcHJpbWFyeSBjb250cm9sIHZhbHVlXG4gICAgICBpZiAoIWNvbnRyb2xUb0NoZWNrVG8/LnZhbHVlKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQYXNzd29yZCBSZXF1aXJlZGAgfTtcbiAgICAgIC8vLS0tIENoZWNrIHNlY29uZGFyeSBjb250cm9sIHZhbHVlXG4gICAgICBlbHNlIGlmICghY29udHJvbC52YWx1ZSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgUGFzc3dvcmQgY29uZmlybWF0aW9uIHJlcXVpcmVkYCB9O1xuICAgICAgLy8tLS0gQ29tcGFyZSBjb250cm9sc1xuICAgICAgZWxzZSBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sPy52YWx1ZSAhPT0gY29udHJvbFRvQ2hlY2tUbz8udmFsdWUpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgIH07XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGFzUGFzc3dvcmRcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCBhcyBwYXNzd29yZFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmFzUGFzc3dvcmQoKVxuICAgKi9cbiAgc3RhdGljIGFzUGFzc3dvcmQoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3Qgc2NoZW1hID0gbmV3IHBhc3N3b3JkVmFsaWRhdG9yKCk7XG5cbiAgICAgIC8vLS0tIFNldHVwIHBhc3N3b3JkIHJlcXVpcmVtZW50c1xuICAgICAgc2NoZW1hXG4gICAgICAgIC8vLS0tIE1pbmltdW0gbGVuZ3RoIDhcbiAgICAgICAgLmlzKClcbiAgICAgICAgLm1pbig4LCAnTWluaW11bSBvZiA4IGNoYXJhY3RlcnMnKVxuICAgICAgICAvLy0tLSBNYXhpbXVtIGxlbmd0aCA1MFxuICAgICAgICAuaXMoKVxuICAgICAgICAubWF4KDMwLCAnTWF4aW11bSBvZiAzMCBjaGFyYWN0ZXJzJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIHVwcGVyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAudXBwZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBVUFBFUkNBU0UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGxvd2VyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAubG93ZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBsb3dlcmNhc2UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGF0IGxlYXN0IDEgZGlnaXRzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAuZGlnaXRzKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBkaWdpdCcpXG4gICAgICAgIC8vLS0tIFNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAgICAuaGFzKClcbiAgICAgICAgLnN5bWJvbHModW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyJyk7XG5cbiAgICAgIC8vLS0tIFZhbGlkYXRlIHN0cmluZ1xuICAgICAgY29uc3QgaW5WYWxpZCA9IHNjaGVtYS52YWxpZGF0ZShjb250cm9sLnZhbHVlLCB7IGRldGFpbHM6IHRydWUgfSkgYXMge1xuICAgICAgICB2YWxpZGF0aW9uOiBzdHJpbmc7XG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgYXJndW1lbnRzPzogbnVtYmVyO1xuICAgICAgfVtdO1xuXG4gICAgICBjb25zdCByZXR1cm5SZXNwb25zZTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgICAgIGluVmFsaWQuZm9yRWFjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuUmVzcG9uc2VbJ3Bhc3N3b3JkLScgKyBlcnJvci52YWxpZGF0aW9uXSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBpblZhbGlkLmxlbmd0aCA/IHJldHVyblJlc3BvbnNlIDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBhc0VtYWlsXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgYXMgZW1haWxcbiAgICogQHBhcmFtICAgICAgICAge3RydWV9IGNhbkJlRW1wdHlcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5hc0VtYWlsKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGFzRW1haWwoY2FuQmVFbXB0eT86IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgc2V0RXJyb3JzID0gbnVsbDtcbiAgICAgIGNvbnN0IGVtYWlsUmVnRXggPSBuZXcgUmVnRXhwKCdeW1xcXFx3LS5dK0BbXFxcXHddK1xcXFwuW1xcXFx3XSsnKTtcblxuICAgICAgLy8tLS0gQ2hlY2sgaWYgZW1haWwgY2FuIGJlIGVtcHR5XG4gICAgICBpZiAoY2FuQmVFbXB0eSAmJiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlID09PSAnJykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vLS0tIFRlc3QgUmVnRXhwXG4gICAgICBpZiAoIShjb250cm9sLnZhbHVlICYmIGVtYWlsUmVnRXgudGVzdChjb250cm9sLnZhbHVlKSAmJiB0eXBlb2YgY29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycgJiYgIWNvbnRyb2wudmFsdWUuaW5jbHVkZXMoJyAnKSkpIHtcbiAgICAgICAgc2V0RXJyb3JzID0geyBlcnJvck1lc3NhZ2U6IGBOb3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzYCB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0RXJyb3JzO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlzSW5cbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCB2YWx1ZSBpcyBwYXJ0IG9mIGEgZ2l2ZW4gbGlzdFxuICAgKiBAcGFyYW0gICAgICAgICB7c3RyaW5nIHwgbnVtYmVyW119IGxpc3RcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5pc0luKClcbiAgICovXG4gIHN0YXRpYyBpc0luKGxpc3Q6IChzdHJpbmcgfCBudW1iZXIpW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWxpc3QuaW5jbHVkZXMoY29udHJvbC52YWx1ZSkpIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ0NvbnRyb2wgdmFsdWUgbm90IHBhcnQgb2YgZWxpZ2libGUgdmFsdWVzJyB9O1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaXNTQUlETnVtYmVyXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgaXMgYSB2YWxpZCBSU0EgSUQgTnVtYmVyXG4gICAqIEBwYXJhbSAgICAgICAgIHt0cnVlfSBjYW5CZUVtcHR5XG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuaXNTQUlETnVtYmVyKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGlzU0FJRE51bWJlcihjYW5CZUVtcHR5PzogdHJ1ZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9ICgpOiBib29sZWFuID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJyB8fCBjb250cm9sLnZhbHVlLmxlbmd0aCA8IDYpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgbW9udGggPSBjb250cm9sLnZhbHVlLnNsaWNlKDIsIDQpO1xuICAgICAgICBjb25zdCBkYXkgPSBjb250cm9sLnZhbHVlLnNsaWNlKDQsIDYpO1xuICAgICAgICBpZiAoK21vbnRoIDwgMCAmJiArbW9udGggPiAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoK2RheSA8IDAgJiYgK2RheSA+IDMxKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghZGF5anMoY29udHJvbC52YWx1ZS5zbGljZSgwLCA2KSwgJ1lZTU1ERCcsIHRydWUpLmlzVmFsaWQoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNoZWNrc3VtID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnIHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgblN1bSA9IDA7IC8vLS0tIFRvdGFsIHN1bSBvZiBhbGwgdGhlIHZhbHVlc1xuICAgICAgICBsZXQgaXNTZWNvbmQgPSBmYWxzZTsgLy8tLS0gVG8gZG91YmxlIGV2ZXJ5IG90aGVyIHZhbHVlXG4gICAgICAgIC8vLS0tIFN0YXJ0IGZyb20gdGhlIGVuZFxuICAgICAgICBmb3IgKGxldCBpID0gY29udHJvbC52YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGNvbnN0IHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gY29udHJvbC52YWx1ZVtpXTtcbiAgICAgICAgICBpZiAoIXZhbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIC8vLS0tIEdldCBudW1lcmljYWwgdmFsdWUgZnJvbSBhc2NpaSBzdHJpbmdcbiAgICAgICAgICBsZXQgZDogbnVtYmVyID0gdmFsLmNoYXJDb2RlQXQoMCkgLSAnMCcuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICAvLy0tLSBEb3VibGUgZXZlcnkgb3RoZXIgdmFsdWVcbiAgICAgICAgICBpZiAoaXNTZWNvbmQgPT0gdHJ1ZSkgZCA9IGQgKiAyO1xuICAgICAgICAgIC8vLS0tIFN1bSB0aGUgdG90YWwgb2YgdGhlIGRvdWJsZWQgdmFsdWVzIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIG5TdW0gKz0gTWF0aC5mbG9vcihkIC8gMTApO1xuICAgICAgICAgIG5TdW0gKz0gZCAlIDEwO1xuICAgICAgICAgIC8vLS0tIEludmVyc2Ugc2Vjb25kIHRvIGRldGVybWluZSBldmVyeSBvdGhlciBpbmRleCB2YWx1ZVxuICAgICAgICAgIGlzU2Vjb25kID0gIWlzU2Vjb25kO1xuICAgICAgICB9XG4gICAgICAgIC8vLS0tIFJldHVybiB0aGUgbW9kdWx1cyAxMCBvZiB0aGUgc3VtbWF0aW9uXG4gICAgICAgIHJldHVybiBuU3VtICUgMTAgPT0gMDtcbiAgICAgIH07XG5cbiAgICAgIGxldCBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBpZiAoY2FuQmVFbXB0eSAmJiAoIWNvbnRyb2wudmFsdWUgfHwgY29udHJvbC52YWx1ZT8ubGVuZ3RoID09PSAwKSkgcmV0dXJuIG51bGw7XG4gICAgICAvLy0tLSBzdHJpbmdcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJykgZXJyb3IgPSAnSW52YWxpZCBSU0EgSUQgTnVtYmVyJztcbiAgICAgIC8vLS0tIExlbmd0aCA9IDEzXG4gICAgICBlbHNlIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gMTMpIGVycm9yID0gYExlbmd0aCByZXF1aXJlZDogJHsxMyAtIGNvbnRyb2wudmFsdWUubGVuZ3RofWA7XG4gICAgICAvLy0tLSBWYWxpZGF0ZSBkYXRlXG4gICAgICBlbHNlIGlmICghdmFsaWRhdGVEYXRlKCkpIGVycm9yID0gYEludmFsaWQgZGF0ZSBvZiBiaXJ0aGA7XG4gICAgICAvLy0tLSBDaXRpemVuc2hpcFxuICAgICAgZWxzZSBpZiAoIVsnMCcsICcxJ10uaW5jbHVkZXMoY29udHJvbC52YWx1ZS5zbGljZSgxMCwgMTEpKSkgZXJyb3IgPSBgSW52YWxpZCBjaXRpemVuc2hpcCB2YWx1ZWA7XG4gICAgICAvLy0tLSBDaGVja3N1bVxuICAgICAgZWxzZSBpZiAoIWNoZWNrc3VtKCkpIGVycm9yID0gYEludmFsaWQgUlNBIElEIG51bWJlciBjaGVja3N1bWA7XG5cbiAgICAgIHJldHVybiBlcnJvciA/IHsgZXJyb3JNZXNzYWdlOiBlcnJvciB9IDogbnVsbDtcbiAgICB9O1xuICB9XG59XG4iXX0=
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLXV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUloQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLE1BQU0sQ0FBQyxTQUFTLENBQUMseUJBQWlDO1FBQ2hELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBRTNELE1BQU0sZ0JBQWdCLEdBQTJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksSUFBSSxDQUFDO1lBR3pHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztpQkFFdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztpQkFFOUUsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRSxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsS0FBSztnQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7WUFFeEgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBUUQsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLENBQUMsT0FBd0IsRUFBMkIs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RSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEQsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQVVELE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBc0IsRUFBRSxPQUF1QjtRQUNoRSxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtZQUUzRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLENBQUM7WUFFdEcsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0gsT0FBTyxFQUFFLFlBQVksRUFBRSxtREFBbUQsRUFBRSxDQUFDO1lBQy9FLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIHZhbGlkYXRvcnNcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLXZhbGlkYXRvcnNcbiAqIEBkZXNjcmlwdGlvbiAgIFZhcmlvdXMgZm9ybSB2YWxpZGF0b3JzXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjIgLSAwMSAtIDIwXG4gKiBAdXNhZ2UgICAgICAgICBEaXNwbGF5IFwiZXJyb3JNZXNzYWdlXCIga2V5IHZhbHVlIGFzIHZhbGlkYXRvciByZXNwb25zZSBtZXNzYWdlXG4gKi9cblxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHBhc3N3b3JkVmFsaWRhdG9yIGZyb20gJ3Bhc3N3b3JkLXZhbGlkYXRvcic7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIENGUEZvcm1WYWxpZGF0b3JzIHtcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjaGVja1BTV1JldHlwZVxuICAgKiBAZGVzY3JpcHRpb24gICBDaGVjayBpZiBwYXNzd29yZHMgbWF0Y2hcbiAgICogQHBhcmFtICAgICAgICAge3N0cmluZ30gY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmNvbXBhcmVUbygncGFzc3dvcmQnKVxuICAgKi9cbiAgc3RhdGljIGNvbXBhcmVUbyhjb250cm9sTmFtZVRvQ2hlY2tBZ2FpbnN0OiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAvLy0tLSBDb21wYXJlIGNvbnRyb2xzXG4gICAgICBjb25zdCBjb250cm9sVG9DaGVja1RvOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gY29udHJvbD8ucGFyZW50Py5nZXQoY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdCkgfHwgbnVsbDtcblxuICAgICAgLy8tLS0gQ2hlY2sgcHJpbWFyeSBjb250cm9sIHZhbHVlXG4gICAgICBpZiAoIWNvbnRyb2xUb0NoZWNrVG8/LnZhbHVlKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQYXNzd29yZCBSZXF1aXJlZGAgfTtcbiAgICAgIC8vLS0tIENoZWNrIHNlY29uZGFyeSBjb250cm9sIHZhbHVlXG4gICAgICBlbHNlIGlmICghY29udHJvbC52YWx1ZSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgUGFzc3dvcmQgY29uZmlybWF0aW9uIHJlcXVpcmVkYCB9O1xuICAgICAgLy8tLS0gQ29tcGFyZSBjb250cm9sc1xuICAgICAgZWxzZSBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sPy52YWx1ZSAhPT0gY29udHJvbFRvQ2hlY2tUbz8udmFsdWUpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgIH07XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGFzUGFzc3dvcmRcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCBhcyBwYXNzd29yZFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmFzUGFzc3dvcmQoKVxuICAgKi9cbiAgc3RhdGljIGFzUGFzc3dvcmQoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3Qgc2NoZW1hID0gbmV3IHBhc3N3b3JkVmFsaWRhdG9yKCk7XG5cbiAgICAgIC8vLS0tIFNldHVwIHBhc3N3b3JkIHJlcXVpcmVtZW50c1xuICAgICAgc2NoZW1hXG4gICAgICAgIC8vLS0tIE1pbmltdW0gbGVuZ3RoIDhcbiAgICAgICAgLmlzKClcbiAgICAgICAgLm1pbig4LCAnTWluaW11bSBvZiA4IGNoYXJhY3RlcnMnKVxuICAgICAgICAvLy0tLSBNYXhpbXVtIGxlbmd0aCA1MFxuICAgICAgICAuaXMoKVxuICAgICAgICAubWF4KDMwLCAnTWF4aW11bSBvZiAzMCBjaGFyYWN0ZXJzJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIHVwcGVyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAudXBwZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBVUFBFUkNBU0UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGxvd2VyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAubG93ZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBsb3dlcmNhc2UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGF0IGxlYXN0IDEgZGlnaXRzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAuZGlnaXRzKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBkaWdpdCcpXG4gICAgICAgIC8vLS0tIFNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAgICAuaGFzKClcbiAgICAgICAgLnN5bWJvbHModW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyJyk7XG5cbiAgICAgIC8vLS0tIFZhbGlkYXRlIHN0cmluZ1xuICAgICAgY29uc3QgaW5WYWxpZCA9IHNjaGVtYS52YWxpZGF0ZShjb250cm9sLnZhbHVlLCB7IGRldGFpbHM6IHRydWUgfSkgYXMge1xuICAgICAgICB2YWxpZGF0aW9uOiBzdHJpbmc7XG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgYXJndW1lbnRzPzogbnVtYmVyO1xuICAgICAgfVtdO1xuXG4gICAgICBjb25zdCByZXR1cm5SZXNwb25zZTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgICAgIGluVmFsaWQuZm9yRWFjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuUmVzcG9uc2VbJ3Bhc3N3b3JkLScgKyBlcnJvci52YWxpZGF0aW9uXSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBpblZhbGlkLmxlbmd0aCA/IHJldHVyblJlc3BvbnNlIDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBhc0VtYWlsXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgYXMgZW1haWxcbiAgICogQHBhcmFtICAgICAgICAge3RydWV9IGNhbkJlRW1wdHlcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5hc0VtYWlsKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGFzRW1haWwoY2FuQmVFbXB0eT86IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgc2V0RXJyb3JzID0gbnVsbDtcbiAgICAgIGNvbnN0IGVtYWlsUmVnRXggPSBuZXcgUmVnRXhwKCdeW1xcXFx3LS5dK0BbXFxcXHddK1xcXFwuW1xcXFx3XSsnKTtcblxuICAgICAgLy8tLS0gQ2hlY2sgaWYgZW1haWwgY2FuIGJlIGVtcHR5XG4gICAgICBpZiAoY2FuQmVFbXB0eSAmJiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlID09PSAnJykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vLS0tIFRlc3QgUmVnRXhwXG4gICAgICBpZiAoIShjb250cm9sLnZhbHVlICYmIGVtYWlsUmVnRXgudGVzdChjb250cm9sLnZhbHVlKSAmJiB0eXBlb2YgY29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycgJiYgIWNvbnRyb2wudmFsdWUuaW5jbHVkZXMoJyAnKSkpIHtcbiAgICAgICAgc2V0RXJyb3JzID0geyBlcnJvck1lc3NhZ2U6IGBOb3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzYCB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0RXJyb3JzO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlzSW5cbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCB2YWx1ZSBpcyBwYXJ0IG9mIGEgZ2l2ZW4gbGlzdFxuICAgKiBAcGFyYW0gICAgICAgICB7KHN0cmluZyB8IG51bWJlcilbXX0gbGlzdFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmlzSW4oKVxuICAgKi9cbiAgc3RhdGljIGlzSW4obGlzdDogKHN0cmluZyB8IG51bWJlcilbXSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGlmICghbGlzdC5pbmNsdWRlcyhjb250cm9sLnZhbHVlKSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiAnQ29udHJvbCB2YWx1ZSBub3QgcGFydCBvZiBlbGlnaWJsZSB2YWx1ZXMnIH07XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpc1NBSUROdW1iZXJcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCB2YWx1ZSBpcyBhIHZhbGlkIFJTQSBJRCBOdW1iZXJcbiAgICogQHBhcmFtICAgICAgICAge3RydWV9IGNhbkJlRW1wdHlcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5pc1NBSUROdW1iZXIodHJ1ZT8pXG4gICAqL1xuICBzdGF0aWMgaXNTQUlETnVtYmVyKGNhbkJlRW1wdHk/OiB0cnVlKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVEYXRlID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnIHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoIDwgNikgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBtb250aCA9IGNvbnRyb2wudmFsdWUuc2xpY2UoMiwgNCk7XG4gICAgICAgIGNvbnN0IGRheSA9IGNvbnRyb2wudmFsdWUuc2xpY2UoNCwgNik7XG4gICAgICAgIGlmICgrbW9udGggPCAwICYmICttb250aCA+IDEzKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICgrZGF5IDwgMCAmJiArZGF5ID4gMzEpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKCFkYXlqcyhjb250cm9sLnZhbHVlLnNsaWNlKDAsIDYpLCAnWVlNTUREJywgdHJ1ZSkuaXNWYWxpZCgpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgY2hlY2tzdW0gPSAoKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29udHJvbC52YWx1ZSAhPT0gJ3N0cmluZycgfHwgY29udHJvbC52YWx1ZS5sZW5ndGggIT09IDEzKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBuU3VtID0gMDsgLy8tLS0gVG90YWwgc3VtIG9mIGFsbCB0aGUgdmFsdWVzXG4gICAgICAgIGxldCBpc1NlY29uZCA9IGZhbHNlOyAvLy0tLSBUbyBkb3VibGUgZXZlcnkgb3RoZXIgdmFsdWVcbiAgICAgICAgLy8tLS0gU3RhcnQgZnJvbSB0aGUgZW5kXG4gICAgICAgIGZvciAobGV0IGkgPSBjb250cm9sLnZhbHVlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgY29uc3QgdmFsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBjb250cm9sLnZhbHVlW2ldO1xuICAgICAgICAgIGlmICghdmFsKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgLy8tLS0gR2V0IG51bWVyaWNhbCB2YWx1ZSBmcm9tIGFzY2lpIHN0cmluZ1xuICAgICAgICAgIGxldCBkOiBudW1iZXIgPSB2YWwuY2hhckNvZGVBdCgwKSAtICcwJy5jaGFyQ29kZUF0KDApO1xuICAgICAgICAgIC8vLS0tIERvdWJsZSBldmVyeSBvdGhlciB2YWx1ZVxuICAgICAgICAgIGlmIChpc1NlY29uZCA9PSB0cnVlKSBkID0gZCAqIDI7XG4gICAgICAgICAgLy8tLS0gU3VtIHRoZSB0b3RhbCBvZiB0aGUgZG91YmxlZCB2YWx1ZXMgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgblN1bSArPSBNYXRoLmZsb29yKGQgLyAxMCk7XG4gICAgICAgICAgblN1bSArPSBkICUgMTA7XG4gICAgICAgICAgLy8tLS0gSW52ZXJzZSBzZWNvbmQgdG8gZGV0ZXJtaW5lIGV2ZXJ5IG90aGVyIGluZGV4IHZhbHVlXG4gICAgICAgICAgaXNTZWNvbmQgPSAhaXNTZWNvbmQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8tLS0gUmV0dXJuIHRoZSBtb2R1bHVzIDEwIG9mIHRoZSBzdW1tYXRpb25cbiAgICAgICAgcmV0dXJuIG5TdW0gJSAxMCA9PSAwO1xuICAgICAgfTtcblxuICAgICAgbGV0IGVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgIGlmIChjYW5CZUVtcHR5ICYmICghY29udHJvbC52YWx1ZSB8fCBjb250cm9sLnZhbHVlPy5sZW5ndGggPT09IDApKSByZXR1cm4gbnVsbDtcbiAgICAgIC8vLS0tIHN0cmluZ1xuICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnKSBlcnJvciA9ICdJbnZhbGlkIFJTQSBJRCBOdW1iZXInO1xuICAgICAgLy8tLS0gTGVuZ3RoID0gMTNcbiAgICAgIGVsc2UgaWYgKGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSAxMykgZXJyb3IgPSBgTGVuZ3RoIHJlcXVpcmVkOiAkezEzIC0gY29udHJvbC52YWx1ZS5sZW5ndGh9YDtcbiAgICAgIC8vLS0tIFZhbGlkYXRlIGRhdGVcbiAgICAgIGVsc2UgaWYgKCF2YWxpZGF0ZURhdGUoKSkgZXJyb3IgPSBgSW52YWxpZCBkYXRlIG9mIGJpcnRoYDtcbiAgICAgIC8vLS0tIENpdGl6ZW5zaGlwXG4gICAgICBlbHNlIGlmICghWycwJywgJzEnXS5pbmNsdWRlcyhjb250cm9sLnZhbHVlLnNsaWNlKDEwLCAxMSkpKSBlcnJvciA9IGBJbnZhbGlkIGNpdGl6ZW5zaGlwIHZhbHVlYDtcbiAgICAgIC8vLS0tIENoZWNrc3VtXG4gICAgICBlbHNlIGlmICghY2hlY2tzdW0oKSkgZXJyb3IgPSBgSW52YWxpZCBSU0EgSUQgbnVtYmVyIGNoZWNrc3VtYDtcblxuICAgICAgcmV0dXJuIGVycm9yID8geyBlcnJvck1lc3NhZ2U6IGVycm9yIH0gOiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlzVmFsaWREYXRlXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgaXMgcGFydCBvZiBhIGdpdmVuIGxpc3RcbiAgICogQHBhcmFtICAgICAgICAge3N0cmluZyB8IG51bGx9IG1pbkRhdGVcbiAgICogQHBhcmFtICAgICAgICAge3N0cmluZyB8IG51bGx9IG1heERhdGVcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5pc1ZhbGlkRGF0ZSgnMTk5OS0wMS0wMScsICcyMDIwLTAxLTAxJylcbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkRGF0ZShtaW5EYXRlOiBzdHJpbmcgfCBudWxsLCBtYXhEYXRlPzogc3RyaW5nIHwgbnVsbCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIC8vLS0tIENoZWNrIHRvIHNlZSBpZiBhIGludmFsaWQgZGF0ZSBpcyByZWNlaXZlZCBsaWtlICgzMSBGZWIpXG4gICAgICBpZiAoIWRheWpzKG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpKS5pc1ZhbGlkKCkpIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ1RoZSBnaXZlbiBkYXRlIGlzIG5vdCB2YWxpZCcgfTtcbiAgICAgIC8vLS0tIENoZWNrIGRhdGUgaXMgbm90IGxlc3MgdGhhbiBtaW5EYXRlIGFuZCBkYXRlIGRvZXNuJ3QgZXhjZWVkIG1heERhdGVcbiAgICAgIGlmICgobWluRGF0ZSAmJiBkYXlqcyhuZXcgRGF0ZShjb250cm9sLnZhbHVlKSkuaXNCZWZvcmUobWluRGF0ZSkpIHx8IChtYXhEYXRlICYmIGRheWpzKG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpKS5pc0FmdGVyKG1heERhdGUpKSlcbiAgICAgICAgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiAnVGhlIGdpdmVuIGRhdGUgaXMgbm90IHdpdGhpbiB0aGUgdmFsaWQgcGFyYW1ldGVycycgfTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
@@ -473,6 +473,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
473
473
|
type: Input
|
474
474
|
}] } });
|
475
475
|
|
476
|
+
dayjs.extend(customParseFormat);
|
477
|
+
class CFPFormValidators {
|
478
|
+
static compareTo(controlNameToCheckAgainst) {
|
479
|
+
return (control) => {
|
480
|
+
const controlToCheckTo = control?.parent?.get(controlNameToCheckAgainst) || null;
|
481
|
+
if (!controlToCheckTo?.value)
|
482
|
+
return { errorMessage: `Password Required` };
|
483
|
+
else if (!control.value)
|
484
|
+
return { errorMessage: `Password confirmation required` };
|
485
|
+
else if (control.value && control?.value !== controlToCheckTo?.value)
|
486
|
+
return { errorMessage: `Passwords do not match` };
|
487
|
+
return null;
|
488
|
+
};
|
489
|
+
}
|
490
|
+
static asPassword() {
|
491
|
+
return (control) => {
|
492
|
+
const schema = new passwordValidator();
|
493
|
+
schema
|
494
|
+
.is()
|
495
|
+
.min(8, 'Minimum of 8 characters')
|
496
|
+
.is()
|
497
|
+
.max(30, 'Maximum of 30 characters')
|
498
|
+
.has()
|
499
|
+
.uppercase(undefined, 'At least one UPPERCASE character')
|
500
|
+
.has()
|
501
|
+
.lowercase(undefined, 'At least one lowercase character')
|
502
|
+
.has()
|
503
|
+
.digits(undefined, 'At least one digit')
|
504
|
+
.has()
|
505
|
+
.symbols(undefined, 'At least one special character');
|
506
|
+
const inValid = schema.validate(control.value, { details: true });
|
507
|
+
const returnResponse = {};
|
508
|
+
inValid.forEach((error) => {
|
509
|
+
returnResponse['password-' + error.validation] = error.message;
|
510
|
+
});
|
511
|
+
return inValid.length ? returnResponse : null;
|
512
|
+
};
|
513
|
+
}
|
514
|
+
static asEmail(canBeEmpty) {
|
515
|
+
return (control) => {
|
516
|
+
let setErrors = null;
|
517
|
+
const emailRegEx = new RegExp('^[\\w-.]+@[\\w]+\\.[\\w]+');
|
518
|
+
if (canBeEmpty && (control.value === null || control.value === '')) {
|
519
|
+
return null;
|
520
|
+
}
|
521
|
+
if (!(control.value && emailRegEx.test(control.value) && typeof control.value === 'string' && !control.value.includes(' '))) {
|
522
|
+
setErrors = { errorMessage: `Not a valid email address` };
|
523
|
+
}
|
524
|
+
return setErrors;
|
525
|
+
};
|
526
|
+
}
|
527
|
+
static isIn(list) {
|
528
|
+
return (control) => {
|
529
|
+
if (!list.includes(control.value))
|
530
|
+
return { errorMessage: 'Control value not part of eligible values' };
|
531
|
+
return null;
|
532
|
+
};
|
533
|
+
}
|
534
|
+
static isSAIDNumber(canBeEmpty) {
|
535
|
+
return (control) => {
|
536
|
+
const validateDate = () => {
|
537
|
+
if (typeof control.value !== 'string' || control.value.length < 6)
|
538
|
+
return false;
|
539
|
+
const month = control.value.slice(2, 4);
|
540
|
+
const day = control.value.slice(4, 6);
|
541
|
+
if (+month < 0 && +month > 13)
|
542
|
+
return false;
|
543
|
+
if (+day < 0 && +day > 31)
|
544
|
+
return false;
|
545
|
+
if (!dayjs(control.value.slice(0, 6), 'YYMMDD', true).isValid())
|
546
|
+
return false;
|
547
|
+
return true;
|
548
|
+
};
|
549
|
+
const checksum = () => {
|
550
|
+
if (typeof control.value !== 'string' || control.value.length !== 13)
|
551
|
+
return false;
|
552
|
+
let nSum = 0;
|
553
|
+
let isSecond = false;
|
554
|
+
for (let i = control.value.length - 1; i >= 0; i--) {
|
555
|
+
const val = control.value[i];
|
556
|
+
if (!val)
|
557
|
+
return false;
|
558
|
+
let d = val.charCodeAt(0) - '0'.charCodeAt(0);
|
559
|
+
if (isSecond == true)
|
560
|
+
d = d * 2;
|
561
|
+
nSum += Math.floor(d / 10);
|
562
|
+
nSum += d % 10;
|
563
|
+
isSecond = !isSecond;
|
564
|
+
}
|
565
|
+
return nSum % 10 == 0;
|
566
|
+
};
|
567
|
+
let error = null;
|
568
|
+
if (canBeEmpty && (!control.value || control.value?.length === 0))
|
569
|
+
return null;
|
570
|
+
else if (typeof control.value !== 'string')
|
571
|
+
error = 'Invalid RSA ID Number';
|
572
|
+
else if (control.value.length !== 13)
|
573
|
+
error = `Length required: ${13 - control.value.length}`;
|
574
|
+
else if (!validateDate())
|
575
|
+
error = `Invalid date of birth`;
|
576
|
+
else if (!['0', '1'].includes(control.value.slice(10, 11)))
|
577
|
+
error = `Invalid citizenship value`;
|
578
|
+
else if (!checksum())
|
579
|
+
error = `Invalid RSA ID number checksum`;
|
580
|
+
return error ? { errorMessage: error } : null;
|
581
|
+
};
|
582
|
+
}
|
583
|
+
static isValidDate(minDate, maxDate) {
|
584
|
+
return (control) => {
|
585
|
+
if (!dayjs(new Date(control.value)).isValid())
|
586
|
+
return { errorMessage: 'The given date is not valid' };
|
587
|
+
if ((minDate && dayjs(new Date(control.value)).isBefore(minDate)) || (maxDate && dayjs(new Date(control.value)).isAfter(maxDate)))
|
588
|
+
return { errorMessage: 'The given date is not within the valid parameters' };
|
589
|
+
return null;
|
590
|
+
};
|
591
|
+
}
|
592
|
+
}
|
593
|
+
|
476
594
|
const inputsC = {
|
477
595
|
labelPlacement: ['fixed', 'floating', 'stacked', 'start', 'end'],
|
478
596
|
inputMode: ['text', 'email', 'numeric', 'tel', 'decimal', 'url', 'search'],
|
@@ -481,8 +599,8 @@ const inputsC = {
|
|
481
599
|
};
|
482
600
|
class FormInputComponent {
|
483
601
|
label;
|
484
|
-
min
|
485
|
-
max
|
602
|
+
min;
|
603
|
+
max;
|
486
604
|
labelPlacement;
|
487
605
|
placeholder;
|
488
606
|
inputmode;
|
@@ -503,6 +621,8 @@ class FormInputComponent {
|
|
503
621
|
inputAutoCapitalize;
|
504
622
|
inputGreyBackground = false;
|
505
623
|
showPassword = false;
|
624
|
+
dateValidatorMin = null;
|
625
|
+
dateValidatorMax = null;
|
506
626
|
ngOnChanges(changes) {
|
507
627
|
this.inputLabelPlacement =
|
508
628
|
validateStringValue(changes, 'labelPlacement', inputsC.labelPlacement.slice(), this.inputLabelPlacement) || 'floating';
|
@@ -514,6 +634,13 @@ class FormInputComponent {
|
|
514
634
|
this.inputAutoCapitalize =
|
515
635
|
validateStringValue(changes, 'autoCapitalize', inputsC.autoCapitalize.slice(), this.inputAutoCapitalize) || 'none';
|
516
636
|
this.inputGreyBackground = checkTruthAttribute(changes, 'greyBackground', this.inputGreyBackground);
|
637
|
+
if (this.inputType === 'date') {
|
638
|
+
if (changes['min']?.currentValue || changes['max']?.currentValue) {
|
639
|
+
this.dateValidatorMin = changes['min'] ? changes['min'].currentValue : this.dateValidatorMin;
|
640
|
+
this.dateValidatorMax = changes['max'] ? changes['max'].currentValue : this.dateValidatorMax;
|
641
|
+
this.control?.addValidators(CFPFormValidators.isValidDate(this.dateValidatorMin || null, this.dateValidatorMax || null));
|
642
|
+
}
|
643
|
+
}
|
517
644
|
}
|
518
645
|
togglePasswordShow() {
|
519
646
|
this.showPassword = !this.showPassword;
|
@@ -1007,115 +1134,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
1007
1134
|
}]
|
1008
1135
|
}] });
|
1009
1136
|
|
1010
|
-
dayjs.extend(customParseFormat);
|
1011
|
-
class CFPFormValidators {
|
1012
|
-
static compareTo(controlNameToCheckAgainst) {
|
1013
|
-
return (control) => {
|
1014
|
-
const controlToCheckTo = control?.parent?.get(controlNameToCheckAgainst) || null;
|
1015
|
-
if (!controlToCheckTo?.value)
|
1016
|
-
return { errorMessage: `Password Required` };
|
1017
|
-
else if (!control.value)
|
1018
|
-
return { errorMessage: `Password confirmation required` };
|
1019
|
-
else if (control.value && control?.value !== controlToCheckTo?.value)
|
1020
|
-
return { errorMessage: `Passwords do not match` };
|
1021
|
-
return null;
|
1022
|
-
};
|
1023
|
-
}
|
1024
|
-
static asPassword() {
|
1025
|
-
return (control) => {
|
1026
|
-
const schema = new passwordValidator();
|
1027
|
-
schema
|
1028
|
-
.is()
|
1029
|
-
.min(8, 'Minimum of 8 characters')
|
1030
|
-
.is()
|
1031
|
-
.max(30, 'Maximum of 30 characters')
|
1032
|
-
.has()
|
1033
|
-
.uppercase(undefined, 'At least one UPPERCASE character')
|
1034
|
-
.has()
|
1035
|
-
.lowercase(undefined, 'At least one lowercase character')
|
1036
|
-
.has()
|
1037
|
-
.digits(undefined, 'At least one digit')
|
1038
|
-
.has()
|
1039
|
-
.symbols(undefined, 'At least one special character');
|
1040
|
-
const inValid = schema.validate(control.value, { details: true });
|
1041
|
-
const returnResponse = {};
|
1042
|
-
inValid.forEach((error) => {
|
1043
|
-
returnResponse['password-' + error.validation] = error.message;
|
1044
|
-
});
|
1045
|
-
return inValid.length ? returnResponse : null;
|
1046
|
-
};
|
1047
|
-
}
|
1048
|
-
static asEmail(canBeEmpty) {
|
1049
|
-
return (control) => {
|
1050
|
-
let setErrors = null;
|
1051
|
-
const emailRegEx = new RegExp('^[\\w-.]+@[\\w]+\\.[\\w]+');
|
1052
|
-
if (canBeEmpty && (control.value === null || control.value === '')) {
|
1053
|
-
return null;
|
1054
|
-
}
|
1055
|
-
if (!(control.value && emailRegEx.test(control.value) && typeof control.value === 'string' && !control.value.includes(' '))) {
|
1056
|
-
setErrors = { errorMessage: `Not a valid email address` };
|
1057
|
-
}
|
1058
|
-
return setErrors;
|
1059
|
-
};
|
1060
|
-
}
|
1061
|
-
static isIn(list) {
|
1062
|
-
return (control) => {
|
1063
|
-
if (!list.includes(control.value))
|
1064
|
-
return { errorMessage: 'Control value not part of eligible values' };
|
1065
|
-
return null;
|
1066
|
-
};
|
1067
|
-
}
|
1068
|
-
static isSAIDNumber(canBeEmpty) {
|
1069
|
-
return (control) => {
|
1070
|
-
const validateDate = () => {
|
1071
|
-
if (typeof control.value !== 'string' || control.value.length < 6)
|
1072
|
-
return false;
|
1073
|
-
const month = control.value.slice(2, 4);
|
1074
|
-
const day = control.value.slice(4, 6);
|
1075
|
-
if (+month < 0 && +month > 13)
|
1076
|
-
return false;
|
1077
|
-
if (+day < 0 && +day > 31)
|
1078
|
-
return false;
|
1079
|
-
if (!dayjs(control.value.slice(0, 6), 'YYMMDD', true).isValid())
|
1080
|
-
return false;
|
1081
|
-
return true;
|
1082
|
-
};
|
1083
|
-
const checksum = () => {
|
1084
|
-
if (typeof control.value !== 'string' || control.value.length !== 13)
|
1085
|
-
return false;
|
1086
|
-
let nSum = 0;
|
1087
|
-
let isSecond = false;
|
1088
|
-
for (let i = control.value.length - 1; i >= 0; i--) {
|
1089
|
-
const val = control.value[i];
|
1090
|
-
if (!val)
|
1091
|
-
return false;
|
1092
|
-
let d = val.charCodeAt(0) - '0'.charCodeAt(0);
|
1093
|
-
if (isSecond == true)
|
1094
|
-
d = d * 2;
|
1095
|
-
nSum += Math.floor(d / 10);
|
1096
|
-
nSum += d % 10;
|
1097
|
-
isSecond = !isSecond;
|
1098
|
-
}
|
1099
|
-
return nSum % 10 == 0;
|
1100
|
-
};
|
1101
|
-
let error = null;
|
1102
|
-
if (canBeEmpty && (!control.value || control.value?.length === 0))
|
1103
|
-
return null;
|
1104
|
-
else if (typeof control.value !== 'string')
|
1105
|
-
error = 'Invalid RSA ID Number';
|
1106
|
-
else if (control.value.length !== 13)
|
1107
|
-
error = `Length required: ${13 - control.value.length}`;
|
1108
|
-
else if (!validateDate())
|
1109
|
-
error = `Invalid date of birth`;
|
1110
|
-
else if (!['0', '1'].includes(control.value.slice(10, 11)))
|
1111
|
-
error = `Invalid citizenship value`;
|
1112
|
-
else if (!checksum())
|
1113
|
-
error = `Invalid RSA ID number checksum`;
|
1114
|
-
return error ? { errorMessage: error } : null;
|
1115
|
-
};
|
1116
|
-
}
|
1117
|
-
}
|
1118
|
-
|
1119
1137
|
var alert_interface = /*#__PURE__*/Object.freeze({
|
1120
1138
|
__proto__: null
|
1121
1139
|
});
|