@carefirst/library 1.2.5 → 1.2.7
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/components/alert/alert.component.mjs +3 -3
- package/esm2022/lib/components/button/button.component.mjs +3 -3
- package/esm2022/lib/components/calendar/calendar.component.mjs +3 -3
- package/esm2022/lib/components/form-input/form-input.component.mjs +14 -9
- package/esm2022/lib/components/form-input-select/form-input-select.component.mjs +4 -4
- package/esm2022/lib/components/form-input-text-area/form-input-text-area.component.mjs +3 -3
- package/esm2022/lib/components/form-validation/form-validation.component.mjs +5 -5
- package/esm2022/lib/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/logo/logo.component.mjs +3 -3
- package/esm2022/lib/components/notification/notification.component.mjs +3 -3
- package/esm2022/lib/components/page/page.component.mjs +5 -5
- package/esm2022/lib/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/lib/directives/button-loader.directive.mjs +6 -6
- package/esm2022/lib/interfaces/input.interface.mjs +2 -0
- package/esm2022/lib/library.module.mjs +4 -4
- package/esm2022/lib/utils/form-validators-utility.mjs +113 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/carefirst-library.mjs +174 -54
- package/fesm2022/carefirst-library.mjs.map +1 -1
- package/lib/components/form-input/form-input.component.d.ts +11 -4
- package/lib/components/form-input-select/form-input-select.component.d.ts +2 -4
- package/lib/interfaces/input.interface.d.ts +4 -0
- package/lib/utils/form-validators-utility.d.ts +8 -0
- package/package.json +6 -5
- package/public-api.d.ts +2 -0
@@ -8,10 +8,10 @@ import * as i5 from "../icon/icon.component";
|
|
8
8
|
export class NotificationComponent {
|
9
9
|
data;
|
10
10
|
buttonClick = new EventEmitter();
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
12
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: NotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
12
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: NotificationComponent, selector: "cf-notification", inputs: { data: "data" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<div *ngIf=\"data\">\n <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"12\" size-md=\"6\">\n <div [ngClass]=\"data.status\" id=\"notification-container\">\n <ion-grid>\n <ion-row>\n <ion-col class=\"ion-align-self-center ion-text-start\">\n <p class=\"body-medium bold\">{{ data.heading }}</p>\n </ion-col>\n <ion-col size=\"auto\">\n <cf-icon icon=\"close\" *ngIf=\"data.canClose\" (click)=\"data = undefined\" [height]=\"10\" [iconColor]=\"data.status\"></cf-icon>\n </ion-col>\n <ion-col *ngIf=\"data.message\" size=\"12\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-small\">{{ data.message }}</p>\n </ion-col>\n <ion-col *ngIf=\"data.button?.buttonHeading\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-medium bold\">{{ data.button?.buttonHeading }}</p>\n </ion-col>\n <ion-col size=\"12\">\n <ng-content></ng-content>\n </ion-col>\n <ion-col size=\"12\" *ngIf=\"data.button\">\n <cf-spacer default=\"8\"></cf-spacer>\n <cf-btn type=\"primary\" fontSize=\"large\" action snug (click)=\"buttonClick.emit(data.button.buttonClickIdentifier)\">{{\n data.button.buttonText\n }}</cf-btn>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n</div>\n", styles: ["#notification-container{border-radius:4px;text-align:start;padding:12px}#notification-container.success{border:1.5px solid var(--cf-app-system-color-success);background-color:var(--cf-app-system-color-light-green)}#notification-container.warning{border:1.5px solid var(--cf-app-system-color-warning);background-color:var(--cf-app-system-color-light-warning)}#notification-container.error{border:1.5px solid var(--cf-app-system-color-error);background-color:var(--cf-app-system-color-light-red)}\n"], dependencies: [{ kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "cf-btn", inputs: ["type", "disabled", "alert", "action", "snug", "fontSize", "iconStart", "iconEnd", "loading"] }, { kind: "component", type: i4.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: i5.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "iconColor"] }] });
|
13
13
|
}
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: NotificationComponent, decorators: [{
|
15
15
|
type: Component,
|
16
16
|
args: [{ selector: 'cf-notification', template: "<div *ngIf=\"data\">\n <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"12\" size-md=\"6\">\n <div [ngClass]=\"data.status\" id=\"notification-container\">\n <ion-grid>\n <ion-row>\n <ion-col class=\"ion-align-self-center ion-text-start\">\n <p class=\"body-medium bold\">{{ data.heading }}</p>\n </ion-col>\n <ion-col size=\"auto\">\n <cf-icon icon=\"close\" *ngIf=\"data.canClose\" (click)=\"data = undefined\" [height]=\"10\" [iconColor]=\"data.status\"></cf-icon>\n </ion-col>\n <ion-col *ngIf=\"data.message\" size=\"12\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-small\">{{ data.message }}</p>\n </ion-col>\n <ion-col *ngIf=\"data.button?.buttonHeading\">\n <cf-spacer default=\"8\"></cf-spacer>\n <p class=\"body-medium bold\">{{ data.button?.buttonHeading }}</p>\n </ion-col>\n <ion-col size=\"12\">\n <ng-content></ng-content>\n </ion-col>\n <ion-col size=\"12\" *ngIf=\"data.button\">\n <cf-spacer default=\"8\"></cf-spacer>\n <cf-btn type=\"primary\" fontSize=\"large\" action snug (click)=\"buttonClick.emit(data.button.buttonClickIdentifier)\">{{\n data.button.buttonText\n }}</cf-btn>\n </ion-col>\n </ion-row>\n </ion-grid>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n <cf-spacer mobile=\"16\" desktop=\"32\"></cf-spacer>\n</div>\n", styles: ["#notification-container{border-radius:4px;text-align:start;padding:12px}#notification-container.success{border:1.5px solid var(--cf-app-system-color-success);background-color:var(--cf-app-system-color-light-green)}#notification-container.warning{border:1.5px solid var(--cf-app-system-color-warning);background-color:var(--cf-app-system-color-light-warning)}#notification-container.error{border:1.5px solid var(--cf-app-system-color-error);background-color:var(--cf-app-system-color-light-red)}\n"] }]
|
17
17
|
}], propDecorators: { data: [{
|
@@ -15,12 +15,12 @@ export class PageComponent {
|
|
15
15
|
this.inputCenterV = checkTruthAttribute(changes, 'centerV', this.inputCenterV);
|
16
16
|
this.inputDark = checkTruthAttribute(changes, 'dark', this.inputDark);
|
17
17
|
}
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
19
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
19
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: PageComponent, selector: "cf-page", inputs: { centerH: "centerH", centerV: "centerV", dark: "dark" }, usesOnChanges: true, ngImport: i0, template: "<ion-content class=\"ion-page cf-page\" [ngClass]=\"{ 'bg-dark': inputDark }\">\n <div class=\"page\" [ngClass]=\"{ 'center-h': inputCenterH, 'center-v': inputCenterV }\">\n <ng-content></ng-content>\n </div>\n</ion-content>\n", styles: ["ion-content.cf-page::part(scroll){padding-inline:var(--cf-page-inline-padding, 16px);background-color:var(--cf-app-background-light)}ion-content.cf-page.bg-dark::part(scroll){background-color:var(--cf-app-background-dark)}ion-content.cf-page>div.page{height:100%;max-width:var(--cf-page-max-width, 1300px);margin-inline:auto;overflow:hidden}ion-content.cf-page>div.page.center-h,ion-content.cf-page>div.page.center-v{display:flex;flex-direction:column}ion-content.cf-page>div.page.center-h{align-items:center;text-align:center}ion-content.cf-page>div.page.center-v{justify-content:center}\n"], dependencies: [{ kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
20
20
|
}
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: PageComponent, decorators: [{
|
22
22
|
type: Component,
|
23
|
-
args: [{ selector: 'cf-page', template: "<ion-content class=\"ion-page cf-page\" [ngClass]=\"{ 'bg-dark': inputDark }\">\n <div class=\"page
|
23
|
+
args: [{ selector: 'cf-page', template: "<ion-content class=\"ion-page cf-page\" [ngClass]=\"{ 'bg-dark': inputDark }\">\n <div class=\"page\" [ngClass]=\"{ 'center-h': inputCenterH, 'center-v': inputCenterV }\">\n <ng-content></ng-content>\n </div>\n</ion-content>\n", styles: ["ion-content.cf-page::part(scroll){padding-inline:var(--cf-page-inline-padding, 16px);background-color:var(--cf-app-background-light)}ion-content.cf-page.bg-dark::part(scroll){background-color:var(--cf-app-background-dark)}ion-content.cf-page>div.page{height:100%;max-width:var(--cf-page-max-width, 1300px);margin-inline:auto;overflow:hidden}ion-content.cf-page>div.page.center-h,ion-content.cf-page>div.page.center-v{display:flex;flex-direction:column}ion-content.cf-page>div.page.center-h{align-items:center;text-align:center}ion-content.cf-page>div.page.center-v{justify-content:center}\n"] }]
|
24
24
|
}], propDecorators: { centerH: [{
|
25
25
|
type: Input
|
26
26
|
}], centerV: [{
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
28
28
|
}], dark: [{
|
29
29
|
type: Input
|
30
30
|
}] } });
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXNDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBT2pFLE1BQU0sT0FBTyxhQUFhO0lBQ2YsT0FBTyxDQUFnQztJQUN2QyxPQUFPLENBQWdDO0lBQ3ZDLElBQUksQ0FBZ0M7SUFHN0MsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFPbEIsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7dUdBdEJVLGFBQWE7MkZBQWIsYUFBYSxzSUNsQjFCLHlPQUtBOzsyRkRhYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7OEJBS1YsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IC0gUGFnZVxuICpcbiAqIEBmaWxlICAgICAgICAgIHBhZ2UuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgYmFzaWMgQ2FyZUZpcnN0IFBhZ2Ugc3RydWN0dXJlXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMSAtIDA3XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtcGFnZSAlY2VudGVySCUgJWNlbnRlclYlICVkYXJrJSBzdHlsZT1cIi0tY2YtcGFnZS1pbmxpbmUtcGFkZGluZzogMTZweDsgLS1jZi1wYWdlLW1heC13aWR0aDogMTMwMHB4XCI+Q09OVEVOVDwvY2YtcGFnZT5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjZW50ZXJIPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY2VudGVyVj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRhcms/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dENlbnRlckggPSBmYWxzZTtcbiAgaW5wdXRDZW50ZXJWID0gZmFsc2U7XG4gIGlucHV0RGFyayA9IGZhbHNlO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGlucHV0IGNoYW5nZXNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8tLS0gQ2VudGVyIEhcbiAgICB0aGlzLmlucHV0Q2VudGVySCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2NlbnRlckgnLCB0aGlzLmlucHV0Q2VudGVySCk7XG4gICAgLy8tLS0gQ2VudGVyIFZcbiAgICB0aGlzLmlucHV0Q2VudGVyViA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2NlbnRlclYnLCB0aGlzLmlucHV0Q2VudGVyVik7XG4gICAgLy8tLS0gRGFya1xuICAgIHRoaXMuaW5wdXREYXJrID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnZGFyaycsIHRoaXMuaW5wdXREYXJrKTtcbiAgfVxufVxuIiwiPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZ2UgY2YtcGFnZVwiIFtuZ0NsYXNzXT1cInsgJ2JnLWRhcmsnOiBpbnB1dERhcmsgfVwiPlxuICA8ZGl2IGNsYXNzPVwicGFnZVwiIFtuZ0NsYXNzXT1cInsgJ2NlbnRlci1oJzogaW5wdXRDZW50ZXJILCAnY2VudGVyLXYnOiBpbnB1dENlbnRlclYgfVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2lvbi1jb250ZW50PlxuIl19
|
@@ -14,10 +14,10 @@ export class SpacerComponent {
|
|
14
14
|
this.inputMobile = validateNumberValue(changes, 'mobile', this.inputMobile);
|
15
15
|
this.inputDesktop = validateNumberValue(changes, 'desktop', this.inputDesktop);
|
16
16
|
}
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
18
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
18
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: SpacerComponent, selector: "cf-spacer", inputs: { default: "default", mobile: "mobile", desktop: "desktop" }, usesOnChanges: true, ngImport: i0, template: "<!-- Mobile Only OR Default -->\n<div *ngIf=\"inputMobile || inputDefault\" class=\"mobile-only\" [ngStyle]=\"{ height: (inputMobile || inputDefault || 0) + 'px' }\"> </div>\n<!-- Desktop Only OR Default-->\n<div *ngIf=\"inputDesktop || inputDefault\" class=\"desktop-only\" [ngStyle]=\"{ height: (inputDesktop || inputDefault || 0) + 'px' }\"> </div>\n", styles: ["@media not (min-width: 768px){div.mobile-only{display:block}div.desktop-only{display:none}}@media (min-width: 768px){div.mobile-only{display:none}div.desktop-only{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
19
19
|
}
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpacerComponent, decorators: [{
|
21
21
|
type: Component,
|
22
22
|
args: [{ selector: 'cf-spacer', template: "<!-- Mobile Only OR Default -->\n<div *ngIf=\"inputMobile || inputDefault\" class=\"mobile-only\" [ngStyle]=\"{ height: (inputMobile || inputDefault || 0) + 'px' }\"> </div>\n<!-- Desktop Only OR Default-->\n<div *ngIf=\"inputDesktop || inputDefault\" class=\"desktop-only\" [ngStyle]=\"{ height: (inputDesktop || inputDefault || 0) + 'px' }\"> </div>\n", styles: ["@media not (min-width: 768px){div.mobile-only{display:block}div.desktop-only{display:none}}@media (min-width: 768px){div.mobile-only{display:none}div.desktop-only{display:block}}\n"] }]
|
23
23
|
}], propDecorators: { default: [{
|
@@ -19,10 +19,10 @@ export class ButtonLoaderDirective {
|
|
19
19
|
this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');
|
20
20
|
}
|
21
21
|
}
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
23
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonLoaderDirective, deps: [{ token: i0.TemplateRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
23
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: ButtonLoaderDirective, selector: "[cfButtonLoader]", inputs: { cfButtonLoader: "cfButtonLoader" }, ngImport: i0 });
|
24
24
|
}
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ButtonLoaderDirective, decorators: [{
|
26
26
|
type: Directive,
|
27
27
|
args: [{
|
28
28
|
selector: '[cfButtonLoader]',
|
@@ -31,10 +31,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
31
31
|
type: Input
|
32
32
|
}] } });
|
33
33
|
class SpinnerComponent {
|
34
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: SpinnerComponent, selector: "ng-component", ngImport: i0, template: '<div class="loading-spinner"></div>', isInline: true, styles: ["@keyframes spinner{to{transform:rotate(360deg)}}.loading-spinner{box-sizing:border-box;position:absolute;top:50%;left:50%;width:30px;height:30px;margin-top:-15px;margin-left:-15px;border-radius:50%;border:3px solid var(--cf-app-color-secondary);border-top-color:var(--cf-app-color-primary);animation:spinner 1s linear infinite}\n"] });
|
36
36
|
}
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: SpinnerComponent, decorators: [{
|
38
38
|
type: Component,
|
39
39
|
args: [{ template: '<div class="loading-spinner"></div>', styles: ["@keyframes spinner{to{transform:rotate(360deg)}}.loading-spinner{box-sizing:border-box;position:absolute;top:50%;left:50%;width:30px;height:30px;margin-top:-15px;margin-left:-15px;border-radius:50%;border:3px solid var(--cf-app-color-secondary);border-top-color:var(--cf-app-color-primary);animation:spinner 1s linear infinite}\n"] }]
|
40
40
|
}] });
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9pbnRlcmZhY2VzL2lucHV0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQGludGVyZmFjZSAgICAgRm9ybUlucHV0U2VsZWN0T3B0aW9uc0lcbiAqIEBkZXNjcmlwdGlvbiAgIFN0cnVjdHVyZSBmb3IgdGhlIGlucHV0IHNlbGVjdCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUlucHV0U2VsZWN0T3B0aW9uc0kge1xuICBkaXNwbGF5TmFtZTogc3RyaW5nIHwgbnVtYmVyO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG59XG4iXX0=
|
@@ -17,8 +17,8 @@ import { FormInputSelectComponent } from './components/form-input-select/form-in
|
|
17
17
|
import { FormInputTextAreaComponent } from './components/form-input-text-area/form-input-text-area.component';
|
18
18
|
import * as i0 from "@angular/core";
|
19
19
|
export class CareFirstLibraryModule {
|
20
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
21
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
21
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, declarations: [PageComponent,
|
22
22
|
ButtonComponent,
|
23
23
|
SpacerComponent,
|
24
24
|
IconComponent,
|
@@ -43,9 +43,9 @@ export class CareFirstLibraryModule {
|
|
43
43
|
FormInputComponent,
|
44
44
|
FormInputSelectComponent,
|
45
45
|
FormInputTextAreaComponent] });
|
46
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
46
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, imports: [IonicModule, CommonModule, ReactiveFormsModule] });
|
47
47
|
}
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CareFirstLibraryModule, decorators: [{
|
49
49
|
type: NgModule,
|
50
50
|
args: [{
|
51
51
|
declarations: [
|
@@ -0,0 +1,113 @@
|
|
1
|
+
import { AbstractControl } from '@angular/forms';
|
2
|
+
import passwordValidator from 'password-validator';
|
3
|
+
import dayjs from 'dayjs';
|
4
|
+
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
5
|
+
dayjs.extend(customParseFormat);
|
6
|
+
export class CFPFormValidators {
|
7
|
+
static compareTo(controlNameToCheckAgainst) {
|
8
|
+
return (control) => {
|
9
|
+
const controlToCheckTo = control?.parent?.get(controlNameToCheckAgainst) || null;
|
10
|
+
if (!controlToCheckTo?.value)
|
11
|
+
return { errorMessage: `Password Required` };
|
12
|
+
else if (!control.value)
|
13
|
+
return { errorMessage: `Password confirmation required` };
|
14
|
+
else if (control.value && control?.value !== controlToCheckTo?.value)
|
15
|
+
return { errorMessage: `Passwords do not match` };
|
16
|
+
return null;
|
17
|
+
};
|
18
|
+
}
|
19
|
+
static asPassword() {
|
20
|
+
return (control) => {
|
21
|
+
const schema = new passwordValidator();
|
22
|
+
schema
|
23
|
+
.is()
|
24
|
+
.min(8, 'Minimum of 8 characters')
|
25
|
+
.is()
|
26
|
+
.max(30, 'Maximum of 30 characters')
|
27
|
+
.has()
|
28
|
+
.uppercase(undefined, 'At least one UPPERCASE character')
|
29
|
+
.has()
|
30
|
+
.lowercase(undefined, 'At least one lowercase character')
|
31
|
+
.has()
|
32
|
+
.digits(undefined, 'At least one digit')
|
33
|
+
.has()
|
34
|
+
.symbols(undefined, 'At least one special character');
|
35
|
+
const inValid = schema.validate(control.value, { details: true });
|
36
|
+
const returnResponse = {};
|
37
|
+
inValid.forEach((error) => {
|
38
|
+
returnResponse['password-' + error.validation] = error.message;
|
39
|
+
});
|
40
|
+
return inValid.length ? returnResponse : null;
|
41
|
+
};
|
42
|
+
}
|
43
|
+
static asEmail(canBeEmpty) {
|
44
|
+
return (control) => {
|
45
|
+
let setErrors = null;
|
46
|
+
const emailRegEx = new RegExp('^[\\w-.]+@[\\w]+\\.[\\w]+');
|
47
|
+
if (canBeEmpty && (control.value === null || control.value === '')) {
|
48
|
+
return null;
|
49
|
+
}
|
50
|
+
if (!(control.value && emailRegEx.test(control.value))) {
|
51
|
+
setErrors = { errorMessage: `Not a valid email address` };
|
52
|
+
}
|
53
|
+
return setErrors;
|
54
|
+
};
|
55
|
+
}
|
56
|
+
static isIn(list) {
|
57
|
+
return (control) => {
|
58
|
+
if (!list.includes(control.value))
|
59
|
+
return { errorMessage: 'Control value not part of eligible values' };
|
60
|
+
return null;
|
61
|
+
};
|
62
|
+
}
|
63
|
+
static isSAIDNumber(canBeEmpty) {
|
64
|
+
return (control) => {
|
65
|
+
const validateDate = () => {
|
66
|
+
if (typeof control.value !== 'string' || control.value.length < 6)
|
67
|
+
return false;
|
68
|
+
const month = control.value.slice(2, 4);
|
69
|
+
const day = control.value.slice(4, 6);
|
70
|
+
if (+month < 0 && +month > 13)
|
71
|
+
return false;
|
72
|
+
if (+day < 0 && +day > 31)
|
73
|
+
return false;
|
74
|
+
if (!dayjs(control.value.slice(0, 6), 'YYMMDD', true).isValid())
|
75
|
+
return false;
|
76
|
+
return true;
|
77
|
+
};
|
78
|
+
const checksum = () => {
|
79
|
+
if (typeof control.value !== 'string' || control.value.length !== 13)
|
80
|
+
return false;
|
81
|
+
let nSum = 0;
|
82
|
+
let isSecond = false;
|
83
|
+
for (let i = control.value.length - 1; i >= 0; i--) {
|
84
|
+
const val = control.value[i];
|
85
|
+
if (!val)
|
86
|
+
return false;
|
87
|
+
let d = val.charCodeAt(0) - '0'.charCodeAt(0);
|
88
|
+
if (isSecond == true)
|
89
|
+
d = d * 2;
|
90
|
+
nSum += Math.floor(d / 10);
|
91
|
+
nSum += d % 10;
|
92
|
+
isSecond = !isSecond;
|
93
|
+
}
|
94
|
+
return nSum % 10 == 0;
|
95
|
+
};
|
96
|
+
let error = null;
|
97
|
+
if (canBeEmpty && control.value.length === 0)
|
98
|
+
return null;
|
99
|
+
else if (typeof control.value !== 'string')
|
100
|
+
error = 'Invalid RSA ID Number';
|
101
|
+
else if (control.value.length !== 13)
|
102
|
+
error = `Length required: ${13 - control.value.length}`;
|
103
|
+
else if (!validateDate())
|
104
|
+
error = `Invalid date of birth`;
|
105
|
+
else if (!['0', '1'].includes(control.value.slice(10, 11)))
|
106
|
+
error = `Invalid citizenship value`;
|
107
|
+
else if (!checksum())
|
108
|
+
error = `Invalid RSA ID number checksum`;
|
109
|
+
return error ? { errorMessage: error } : null;
|
110
|
+
};
|
111
|
+
}
|
112
|
+
}
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLXV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUloQyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLE1BQU0sQ0FBQyxTQUFTLENBQUMseUJBQWlDO1FBQ2hELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBRTNELE1BQU0sZ0JBQWdCLEdBQTJCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksSUFBSSxDQUFDO1lBR3pHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztpQkFFdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztpQkFFOUUsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sRUFBRSxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsS0FBSztnQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLENBQUM7WUFFeEgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBUUQsTUFBTSxDQUFDLFVBQVU7UUFDZixPQUFPLENBQUMsT0FBd0IsRUFBMkIs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LEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQzNCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUVmLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQztpQkFDdEI7Z0JBRUQsT0FBTyxJQUFJLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7WUFFRixJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO1lBQ2hDLElBQUksVUFBVSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7aUJBRXJELElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVE7Z0JBQUUsS0FBSyxHQUFHLHVCQUF1QixDQUFDO2lCQUV2RSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLEVBQUU7Z0JBQUUsS0FBSyxHQUFHLG9CQUFvQixFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFFekYsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFBRSxLQUFLLEdBQUcsdUJBQXVCLENBQUM7aUJBRXJELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUFFLEtBQUssR0FBRywyQkFBMkIsQ0FBQztpQkFFM0YsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFBRSxLQUFLLEdBQUcsZ0NBQWdDLENBQUM7WUFFL0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEQsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIHZhbGlkYXRvcnNcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLXZhbGlkYXRvcnNcbiAqIEBkZXNjcmlwdGlvbiAgIFZhcmlvdXMgZm9ybSB2YWxpZGF0b3JzXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjIgLSAwMSAtIDIwXG4gKiBAdXNhZ2UgICAgICAgICBEaXNwbGF5IFwiZXJyb3JNZXNzYWdlXCIga2V5IHZhbHVlIGFzIHZhbGlkYXRvciByZXNwb25zZSBtZXNzYWdlXG4gKi9cblxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHBhc3N3b3JkVmFsaWRhdG9yIGZyb20gJ3Bhc3N3b3JkLXZhbGlkYXRvcic7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIENGUEZvcm1WYWxpZGF0b3JzIHtcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjaGVja1BTV1JldHlwZVxuICAgKiBAZGVzY3JpcHRpb24gICBDaGVjayBpZiBwYXNzd29yZHMgbWF0Y2hcbiAgICogQHBhcmFtICAgICAgICAge3N0cmluZ30gY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmNvbXBhcmVUbygncGFzc3dvcmQnKVxuICAgKi9cbiAgc3RhdGljIGNvbXBhcmVUbyhjb250cm9sTmFtZVRvQ2hlY2tBZ2FpbnN0OiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAvLy0tLSBDb21wYXJlIGNvbnRyb2xzXG4gICAgICBjb25zdCBjb250cm9sVG9DaGVja1RvOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gY29udHJvbD8ucGFyZW50Py5nZXQoY29udHJvbE5hbWVUb0NoZWNrQWdhaW5zdCkgfHwgbnVsbDtcblxuICAgICAgLy8tLS0gQ2hlY2sgcHJpbWFyeSBjb250cm9sIHZhbHVlXG4gICAgICBpZiAoIWNvbnRyb2xUb0NoZWNrVG8/LnZhbHVlKSByZXR1cm4geyBlcnJvck1lc3NhZ2U6IGBQYXNzd29yZCBSZXF1aXJlZGAgfTtcbiAgICAgIC8vLS0tIENoZWNrIHNlY29uZGFyeSBjb250cm9sIHZhbHVlXG4gICAgICBlbHNlIGlmICghY29udHJvbC52YWx1ZSkgcmV0dXJuIHsgZXJyb3JNZXNzYWdlOiBgUGFzc3dvcmQgY29uZmlybWF0aW9uIHJlcXVpcmVkYCB9O1xuICAgICAgLy8tLS0gQ29tcGFyZSBjb250cm9sc1xuICAgICAgZWxzZSBpZiAoY29udHJvbC52YWx1ZSAmJiBjb250cm9sPy52YWx1ZSAhPT0gY29udHJvbFRvQ2hlY2tUbz8udmFsdWUpIHJldHVybiB7IGVycm9yTWVzc2FnZTogYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgIH07XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGFzUGFzc3dvcmRcbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCBhcyBwYXNzd29yZFxuICAgKiBAcmV0dXJucyAgICAgICB7VmFsaWRhdG9yRm59XG4gICAqIEB1c2FnZSAgICAgICAgIEZvcm1WYWxpZGF0b3JzLmFzUGFzc3dvcmQoKVxuICAgKi9cbiAgc3RhdGljIGFzUGFzc3dvcmQoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3Qgc2NoZW1hID0gbmV3IHBhc3N3b3JkVmFsaWRhdG9yKCk7XG5cbiAgICAgIC8vLS0tIFNldHVwIHBhc3N3b3JkIHJlcXVpcmVtZW50c1xuICAgICAgc2NoZW1hXG4gICAgICAgIC8vLS0tIE1pbmltdW0gbGVuZ3RoIDhcbiAgICAgICAgLmlzKClcbiAgICAgICAgLm1pbig4LCAnTWluaW11bSBvZiA4IGNoYXJhY3RlcnMnKVxuICAgICAgICAvLy0tLSBNYXhpbXVtIGxlbmd0aCA1MFxuICAgICAgICAuaXMoKVxuICAgICAgICAubWF4KDMwLCAnTWF4aW11bSBvZiAzMCBjaGFyYWN0ZXJzJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIHVwcGVyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAudXBwZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBVUFBFUkNBU0UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGxvd2VyY2FzZSBsZXR0ZXJzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAubG93ZXJjYXNlKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBsb3dlcmNhc2UgY2hhcmFjdGVyJylcbiAgICAgICAgLy8tLS0gTXVzdCBoYXZlIGF0IGxlYXN0IDEgZGlnaXRzXG4gICAgICAgIC5oYXMoKVxuICAgICAgICAuZGlnaXRzKHVuZGVmaW5lZCwgJ0F0IGxlYXN0IG9uZSBkaWdpdCcpXG4gICAgICAgIC8vLS0tIFNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAgICAuaGFzKClcbiAgICAgICAgLnN5bWJvbHModW5kZWZpbmVkLCAnQXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyJyk7XG5cbiAgICAgIC8vLS0tIFZhbGlkYXRlIHN0cmluZ1xuICAgICAgY29uc3QgaW5WYWxpZCA9IHNjaGVtYS52YWxpZGF0ZShjb250cm9sLnZhbHVlLCB7IGRldGFpbHM6IHRydWUgfSkgYXMge1xuICAgICAgICB2YWxpZGF0aW9uOiBzdHJpbmc7XG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgYXJndW1lbnRzPzogbnVtYmVyO1xuICAgICAgfVtdO1xuXG4gICAgICBjb25zdCByZXR1cm5SZXNwb25zZTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgICAgIGluVmFsaWQuZm9yRWFjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgcmV0dXJuUmVzcG9uc2VbJ3Bhc3N3b3JkLScgKyBlcnJvci52YWxpZGF0aW9uXSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBpblZhbGlkLmxlbmd0aCA/IHJldHVyblJlc3BvbnNlIDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBhc0VtYWlsXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgYXMgZW1haWxcbiAgICogQHBhcmFtICAgICAgICAge3RydWV9IGNhbkJlRW1wdHlcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5hc0VtYWlsKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGFzRW1haWwoY2FuQmVFbXB0eT86IHRydWUpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgc2V0RXJyb3JzID0gbnVsbDtcbiAgICAgIGNvbnN0IGVtYWlsUmVnRXggPSBuZXcgUmVnRXhwKCdeW1xcXFx3LS5dK0BbXFxcXHddK1xcXFwuW1xcXFx3XSsnKTtcblxuICAgICAgLy8tLS0gQ2hlY2sgaWYgZW1haWwgY2FuIGJlIGVtcHR5XG4gICAgICBpZiAoY2FuQmVFbXB0eSAmJiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlID09PSAnJykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vLS0tIFRlc3QgUmVnRXhwXG4gICAgICBpZiAoIShjb250cm9sLnZhbHVlICYmIGVtYWlsUmVnRXgudGVzdChjb250cm9sLnZhbHVlKSkpIHtcbiAgICAgICAgc2V0RXJyb3JzID0geyBlcnJvck1lc3NhZ2U6IGBOb3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzYCB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2V0RXJyb3JzO1xuICAgIH07XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlzSW5cbiAgICogQGRlc2NyaXB0aW9uICAgVmFsaWRhdGUgY29udHJvbCB2YWx1ZSBpcyBwYXJ0IG9mIGEgZ2l2ZW4gbGlzdFxuICAgKiBAcGFyYW0gICAgICAgICB7c3RyaW5nIHwgbnVtYmVyW119IGxpc3RcbiAgICogQHJldHVybnMgICAgICAge1ZhbGlkYXRvckZufVxuICAgKiBAdXNhZ2UgICAgICAgICBGb3JtVmFsaWRhdG9ycy5pc0luKClcbiAgICovXG4gIHN0YXRpYyBpc0luKGxpc3Q6IChzdHJpbmcgfCBudW1iZXIpW10pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWxpc3QuaW5jbHVkZXMoY29udHJvbC52YWx1ZSkpIHJldHVybiB7IGVycm9yTWVzc2FnZTogJ0NvbnRyb2wgdmFsdWUgbm90IHBhcnQgb2YgZWxpZ2libGUgdmFsdWVzJyB9O1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaXNTQUlETnVtYmVyXG4gICAqIEBkZXNjcmlwdGlvbiAgIFZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgaXMgYSB2YWxpZCBSU0EgSUQgTnVtYmVyXG4gICAqIEBwYXJhbSAgICAgICAgIHt0cnVlfSBjYW5CZUVtcHR5XG4gICAqIEByZXR1cm5zICAgICAgIHtWYWxpZGF0b3JGbn1cbiAgICogQHVzYWdlICAgICAgICAgRm9ybVZhbGlkYXRvcnMuaXNTQUlETnVtYmVyKHRydWU/KVxuICAgKi9cbiAgc3RhdGljIGlzU0FJRE51bWJlcihjYW5CZUVtcHR5PzogdHJ1ZSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9ICgpOiBib29sZWFuID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJyB8fCBjb250cm9sLnZhbHVlLmxlbmd0aCA8IDYpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgbW9udGggPSBjb250cm9sLnZhbHVlLnNsaWNlKDIsIDQpO1xuICAgICAgICBjb25zdCBkYXkgPSBjb250cm9sLnZhbHVlLnNsaWNlKDQsIDYpO1xuICAgICAgICBpZiAoK21vbnRoIDwgMCAmJiArbW9udGggPiAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoK2RheSA8IDAgJiYgK2RheSA+IDMxKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghZGF5anMoY29udHJvbC52YWx1ZS5zbGljZSgwLCA2KSwgJ1lZTU1ERCcsIHRydWUpLmlzVmFsaWQoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNoZWNrc3VtID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2wudmFsdWUgIT09ICdzdHJpbmcnIHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSAxMykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgblN1bSA9IDA7IC8vLS0tIFRvdGFsIHN1bSBvZiBhbGwgdGhlIHZhbHVlc1xuICAgICAgICBsZXQgaXNTZWNvbmQgPSBmYWxzZTsgLy8tLS0gVG8gZG91YmxlIGV2ZXJ5IG90aGVyIHZhbHVlXG4gICAgICAgIC8vLS0tIFN0YXJ0IGZyb20gdGhlIGVuZFxuICAgICAgICBmb3IgKGxldCBpID0gY29udHJvbC52YWx1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGNvbnN0IHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gY29udHJvbC52YWx1ZVtpXTtcbiAgICAgICAgICBpZiAoIXZhbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIC8vLS0tIEdldCBudW1lcmljYWwgdmFsdWUgZnJvbSBhc2NpaSBzdHJpbmdcbiAgICAgICAgICBsZXQgZDogbnVtYmVyID0gdmFsLmNoYXJDb2RlQXQoMCkgLSAnMCcuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICAvLy0tLSBEb3VibGUgZXZlcnkgb3RoZXIgdmFsdWVcbiAgICAgICAgICBpZiAoaXNTZWNvbmQgPT0gdHJ1ZSkgZCA9IGQgKiAyO1xuICAgICAgICAgIC8vLS0tIFN1bSB0aGUgdG90YWwgb2YgdGhlIGRvdWJsZWQgdmFsdWVzIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIG5TdW0gKz0gTWF0aC5mbG9vcihkIC8gMTApO1xuICAgICAgICAgIG5TdW0gKz0gZCAlIDEwO1xuICAgICAgICAgIC8vLS0tIEludmVyc2Ugc2Vjb25kIHRvIGRldGVybWluZSBldmVyeSBvdGhlciBpbmRleCB2YWx1ZVxuICAgICAgICAgIGlzU2Vjb25kID0gIWlzU2Vjb25kO1xuICAgICAgICB9XG4gICAgICAgIC8vLS0tIFJldHVybiB0aGUgbW9kdWx1cyAxMCBvZiB0aGUgc3VtbWF0aW9uXG4gICAgICAgIHJldHVybiBuU3VtICUgMTAgPT0gMDtcbiAgICAgIH07XG5cbiAgICAgIGxldCBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBpZiAoY2FuQmVFbXB0eSAmJiBjb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgICAvLy0tLSBzdHJpbmdcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJykgZXJyb3IgPSAnSW52YWxpZCBSU0EgSUQgTnVtYmVyJztcbiAgICAgIC8vLS0tIExlbmd0aCA9IDEzXG4gICAgICBlbHNlIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gMTMpIGVycm9yID0gYExlbmd0aCByZXF1aXJlZDogJHsxMyAtIGNvbnRyb2wudmFsdWUubGVuZ3RofWA7XG4gICAgICAvLy0tLSBWYWxpZGF0ZSBkYXRlXG4gICAgICBlbHNlIGlmICghdmFsaWRhdGVEYXRlKCkpIGVycm9yID0gYEludmFsaWQgZGF0ZSBvZiBiaXJ0aGA7XG4gICAgICAvLy0tLSBDaXRpemVuc2hpcFxuICAgICAgZWxzZSBpZiAoIVsnMCcsICcxJ10uaW5jbHVkZXMoY29udHJvbC52YWx1ZS5zbGljZSgxMCwgMTEpKSkgZXJyb3IgPSBgSW52YWxpZCBjaXRpemVuc2hpcCB2YWx1ZWA7XG4gICAgICAvLy0tLSBDaGVja3N1bVxuICAgICAgZWxzZSBpZiAoIWNoZWNrc3VtKCkpIGVycm9yID0gYEludmFsaWQgUlNBIElEIG51bWJlciBjaGVja3N1bWA7XG5cbiAgICAgIHJldHVybiBlcnJvciA/IHsgZXJyb3JNZXNzYWdlOiBlcnJvciB9IDogbnVsbDtcbiAgICB9O1xuICB9XG59XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
export * from './lib/library.module';
|
2
2
|
export * from './lib/directives/button-loader.directive';
|
3
|
+
export * from './lib/utils/form-validators-utility';
|
3
4
|
export * from './lib/components/alert/alert.component';
|
4
5
|
export * from './lib/components/page/page.component';
|
5
6
|
export * from './lib/components/button/button.component';
|
@@ -16,4 +17,5 @@ export * as CFAlertI from './lib/interfaces/alert.interface';
|
|
16
17
|
export * as CFIconI from './lib/interfaces/icon.interface';
|
17
18
|
export * as CFSpacerI from './lib/interfaces/spacer.interface';
|
18
19
|
export * as CFNotificationI from './lib/interfaces/notification.interface';
|
19
|
-
|
20
|
+
export * as CFInputI from './lib/interfaces/input.interface';
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLHNFQUFzRSxDQUFDO0FBRXJGLE9BQU8sS0FBSyxRQUFRLE1BQU0sa0NBQWtDLENBQUM7QUFDN0QsT0FBTyxLQUFLLE9BQU8sTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEtBQUssU0FBUyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxlQUFlLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxLQUFLLFFBQVEsTUFBTSxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbGlicmFyeVxuICovXG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbj09PT09PT09PT09PT09PT09PT09PSBVU0FHRSA9PT09PT09PT09PT09PT09PT09PT1cbkluY2x1ZGUgaW4gZ2xvYmFsLnNjc3M6XG4gIC0gQGltcG9ydCAnLi4vbm9kZV9tb2R1bGVzL0BjYXJlZmlyc3QvbGlicmFyeS9wdWJsaWMvc3R5bGVzL2luZGV4LnNjc3MnO1xuQWRkIHRvIGFwcCBtb2R1bGU6XG4gIC0gaW1wb3J0IHsgQ2FyZUZpcnN0TGlicmFyeU1vZHVsZSB9IGZyb20gJ0BjYXJlZmlyc3QvbGlicmFyeSc7XG4gIC0gQWRkIFwiQ2FyZUZpcnN0TGlicmFyeU1vZHVsZVwiIHRvIGltcG9ydHNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuLy8tLS0gTW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlicmFyeS5tb2R1bGUnO1xuLy8tLS0gRGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9idXR0b24tbG9hZGVyLmRpcmVjdGl2ZSc7XG4vLyAtLS0gVXRpbGl0aWVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9mb3JtLXZhbGlkYXRvcnMtdXRpbGl0eSc7XG4vLy0tLSBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NwYWNlci9zcGFjZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbG9nby9sb2dvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0tdmFsaWRhdGlvbi9mb3JtLXZhbGlkYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtc2VsZWN0L2Zvcm0taW5wdXQtc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudCc7XG4vLy0tLSBJbnRlcmZhY2VzXG5leHBvcnQgKiBhcyBDRkFsZXJ0SSBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2FsZXJ0LmludGVyZmFjZSc7XG5leHBvcnQgKiBhcyBDRkljb25JIGZyb20gJy4vbGliL2ludGVyZmFjZXMvaWNvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogYXMgQ0ZTcGFjZXJJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvc3BhY2VyLmludGVyZmFjZSc7XG5leHBvcnQgKiBhcyBDRk5vdGlmaWNhdGlvbkkgZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9ub3RpZmljYXRpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGFzIENGSW5wdXRJIGZyb20gJy4vbGliL2ludGVyZmFjZXMvaW5wdXQuaW50ZXJmYWNlJztcbiJdfQ==
|