@carefirst/library 1.0.2 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/components/button/button.component.mjs +23 -13
- package/esm2022/lib/components/icon/icon.component.mjs +5 -5
- package/esm2022/lib/components/page/page.component.mjs +4 -4
- package/esm2022/lib/components/spacer/spacer.component.mjs +4 -4
- package/esm2022/lib/utils/attribute.util.mjs +10 -4
- package/fesm2022/carefirst-library.mjs +44 -28
- package/fesm2022/carefirst-library.mjs.map +1 -1
- package/lib/components/button/button.component.d.ts +1 -0
- package/lib/utils/attribute.util.d.ts +3 -3
- package/package.json +1 -1
- package/public/styles/app.scss +7 -0
- package/public/styles/font.scss +14 -14
- package/public/styles/fonts/Mulish-200.ttf +0 -0
- package/public/styles/fonts/Mulish-300.ttf +0 -0
- package/public/styles/fonts/Mulish-400.ttf +0 -0
- package/public/styles/fonts/Mulish-500.ttf +0 -0
- package/public/styles/fonts/Mulish-600.ttf +0 -0
- package/public/styles/fonts/Mulish-700.ttf +0 -0
- package/public/styles/fonts/Mulish-800.ttf +0 -0
- package/public/styles/fonts/Mulish-900.ttf +0 -0
- package/public/styles/fonts/Roboto-100.woff2 +0 -0
- package/public/styles/fonts/Roboto-300.woff2 +0 -0
- package/public/styles/fonts/Roboto-400.woff2 +0 -0
- package/public/styles/fonts/Roboto-500.woff2 +0 -0
- package/public/styles/fonts/Roboto-700.woff2 +0 -0
- package/public/styles/fonts/Roboto-900.woff2 +0 -0
- package/public/styles/forms.scss +8 -9
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
1
|
+
import { Component, Input, HostBinding } from '@angular/core';
|
2
2
|
import { checkTruthAttribute, validateStringValue } from '../../utils/attribute.util';
|
3
3
|
import { IconsC } from '../../interfaces/icon.interface';
|
4
4
|
import * as i0 from "@angular/core";
|
@@ -16,6 +16,12 @@ export class ButtonComponent {
|
|
16
16
|
iconStart;
|
17
17
|
iconEnd;
|
18
18
|
loading;
|
19
|
+
get parentEvents() {
|
20
|
+
if (this.disabled) {
|
21
|
+
return 'none';
|
22
|
+
}
|
23
|
+
return 'auto';
|
24
|
+
}
|
19
25
|
inputType = 'primary';
|
20
26
|
inputFontSize = undefined;
|
21
27
|
inputDisabled = false;
|
@@ -26,22 +32,23 @@ export class ButtonComponent {
|
|
26
32
|
inputIconEnd = undefined;
|
27
33
|
inputLoading = false;
|
28
34
|
ngOnChanges(changes) {
|
29
|
-
this.inputType =
|
30
|
-
|
31
|
-
this.
|
32
|
-
this.
|
33
|
-
this.
|
34
|
-
this.
|
35
|
-
this.
|
36
|
-
this.
|
37
|
-
this.
|
35
|
+
this.inputType =
|
36
|
+
validateStringValue(changes, 'type', ['primary', 'secondary', 'tertiary'], this.inputType) || 'primary';
|
37
|
+
this.inputFontSize = validateStringValue(changes, 'fontSize', ['small', 'large'], this.inputFontSize);
|
38
|
+
this.inputDisabled = checkTruthAttribute(changes, 'disabled', this.inputDisabled);
|
39
|
+
this.inputAlert = checkTruthAttribute(changes, 'alert', this.inputAlert);
|
40
|
+
this.inputAction = checkTruthAttribute(changes, 'action', this.inputAction);
|
41
|
+
this.inputSnug = checkTruthAttribute(changes, 'snug', this.inputSnug);
|
42
|
+
this.inputIconStart = validateStringValue(changes, 'iconStart', IconsC.slice(), this.inputIconStart);
|
43
|
+
this.inputIconEnd = validateStringValue(changes, 'iconEnd', IconsC.slice(), this.inputIconEnd);
|
44
|
+
this.inputLoading = checkTruthAttribute(changes, 'loading', this.inputLoading);
|
38
45
|
}
|
39
46
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
40
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, selector: "cf-btn", inputs: { type: "type", disabled: "disabled", alert: "alert", action: "action", snug: "snug", fontSize: "fontSize", iconStart: "iconStart", iconEnd: "iconEnd", loading: "loading" }, usesOnChanges: true, ngImport: i0, template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { 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.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "iconColor"] }, { kind: "directive", type: i4.ButtonLoaderDirective, selector: "[cfButtonLoader]", inputs: ["cfButtonLoader"] }] });
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, selector: "cf-btn", inputs: { type: "type", disabled: "disabled", alert: "alert", action: "action", snug: "snug", fontSize: "fontSize", iconStart: "iconStart", iconEnd: "iconEnd", loading: "loading" }, host: { properties: { "style.pointer-events": "this.parentEvents" } }, usesOnChanges: true, ngImport: i0, template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { 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.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "iconColor"] }, { kind: "directive", type: i4.ButtonLoaderDirective, selector: "[cfButtonLoader]", inputs: ["cfButtonLoader"] }] });
|
41
48
|
}
|
42
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
|
43
50
|
type: Component,
|
44
|
-
args: [{ selector: 'cf-btn', template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"] }]
|
51
|
+
args: [{ selector: 'cf-btn', template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"] }]
|
45
52
|
}], propDecorators: { type: [{
|
46
53
|
type: Input
|
47
54
|
}], disabled: [{
|
@@ -60,5 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
60
67
|
type: Input
|
61
68
|
}], loading: [{
|
62
69
|
type: Input
|
70
|
+
}], parentEvents: [{
|
71
|
+
type: HostBinding,
|
72
|
+
args: ['style.pointer-events']
|
63
73
|
}] } });
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBZSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFPdEUsTUFBTSxPQUFPLGVBQWU7SUFDakIsSUFBSSxHQUF5QyxTQUFTLENBQUM7SUFDdkQsUUFBUSxDQUFnQztJQUN4QyxLQUFLLENBQWdDO0lBQ3JDLE1BQU0sQ0FBZ0M7SUFDdEMsSUFBSSxDQUFnQztJQUNwQyxRQUFRLENBQXFCO0lBQzdCLFNBQVMsQ0FBc0I7SUFDL0IsT0FBTyxDQUFzQjtJQUM3QixPQUFPLENBQWdDO0lBRWhELElBQXlDLFlBQVk7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBR0QsU0FBUyxHQUFxQixTQUFTLENBQUM7SUFDeEMsYUFBYSxHQUFxQyxTQUFTLENBQUM7SUFDNUQsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixjQUFjLEdBQXNDLFNBQVMsQ0FBQztJQUM5RCxZQUFZLEdBQW9DLFNBQVMsQ0FBQztJQUMxRCxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBT3JCLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsU0FBUztZQUNaLG1CQUFtQixDQUF1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDO1FBRWhKLElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQW9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpILElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsQ0FBUyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0csSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBUyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdkcsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRixDQUFDO3dHQXREVSxlQUFlOzRGQUFmLGVBQWUsZ1VDbkI1Qixtd0JBbUJBOzs0RkRBYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFFBQVE7OEJBS1QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRW1DLFlBQVk7c0JBQXBELFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlRmlyc3QgTGlicmFyeSAtIEJ1dHRvblxuICpcbiAqIEBmaWxlICAgICAgICAgIGJ1dHRvbi5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgQnV0dG9uXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMSAtIDA3XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtYnRuIHR5cGU9XCIncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICd0ZXJ0aWFyeSdcIiBmb250U2l6ZT1cIidzbWFsbCcgfCAnbGFyZ2UnXCIgJWRpc2FibGVkJSAlYWxlcnQlICVhY3Rpb24lICVzbnVnJT5URVhUPC9jZi1idG4+XG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgdHlwZSBTaW1wbGVDaGFuZ2VzLCB0eXBlIE9uQ2hhbmdlcywgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNoZWNrVHJ1dGhBdHRyaWJ1dGUsIHZhbGlkYXRlU3RyaW5nVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9hdHRyaWJ1dGUudXRpbCc7XG5pbXBvcnQgeyBJY29uc0MsIHR5cGUgSWNvbnNUIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pY29uLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAndGVydGlhcnknID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFsZXJ0PzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYWN0aW9uPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc251Zz86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZvbnRTaXplPzogJ3NtYWxsJyB8ICdsYXJnZSc7XG4gIEBJbnB1dCgpIGljb25TdGFydD86IEljb25zVCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaWNvbkVuZD86IEljb25zVCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbG9hZGluZz86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpIGdldCBwYXJlbnRFdmVudHMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICdub25lJztcbiAgICB9XG4gICAgcmV0dXJuICdhdXRvJztcbiAgfVxuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dFR5cGU6IHR5cGVvZiB0aGlzLnR5cGUgPSAncHJpbWFyeSc7XG4gIGlucHV0Rm9udFNpemU6IHR5cGVvZiB0aGlzLmZvbnRTaXplIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpbnB1dERpc2FibGVkID0gZmFsc2U7XG4gIGlucHV0QWxlcnQgPSBmYWxzZTtcbiAgaW5wdXRBY3Rpb24gPSBmYWxzZTtcbiAgaW5wdXRTbnVnID0gZmFsc2U7XG4gIGlucHV0SWNvblN0YXJ0OiB0eXBlb2YgdGhpcy5pY29uU3RhcnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGlucHV0SWNvbkVuZDogdHlwZW9mIHRoaXMuaWNvbkVuZCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgaW5wdXRMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gaW5wdXQgY2hhbmdlc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBUeXBlXG4gICAgdGhpcy5pbnB1dFR5cGUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICd0ZXJ0aWFyeSc+KGNoYW5nZXMsICd0eXBlJywgWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeSddLCB0aGlzLmlucHV0VHlwZSkgfHwgJ3ByaW1hcnknO1xuICAgIC8vLS0tIEZvbnQgU2l6ZVxuICAgIHRoaXMuaW5wdXRGb250U2l6ZSA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8J3NtYWxsJyB8ICdsYXJnZSc+KGNoYW5nZXMsICdmb250U2l6ZScsIFsnc21hbGwnLCAnbGFyZ2UnXSwgdGhpcy5pbnB1dEZvbnRTaXplKTtcbiAgICAvLy0tLSBEaXNhYmxlZFxuICAgIHRoaXMuaW5wdXREaXNhYmxlZCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2Rpc2FibGVkJywgdGhpcy5pbnB1dERpc2FibGVkKTtcbiAgICAvLy0tLSBBbGVydFxuICAgIHRoaXMuaW5wdXRBbGVydCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2FsZXJ0JywgdGhpcy5pbnB1dEFsZXJ0KTtcbiAgICAvLy0tLSBBY3Rpb25cbiAgICB0aGlzLmlucHV0QWN0aW9uID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnYWN0aW9uJywgdGhpcy5pbnB1dEFjdGlvbik7XG4gICAgLy8tLS0gU251Z1xuICAgIHRoaXMuaW5wdXRTbnVnID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnc251ZycsIHRoaXMuaW5wdXRTbnVnKTtcbiAgICAvLy0tLSBJY29uIFN0YXJ0XG4gICAgdGhpcy5pbnB1dEljb25TdGFydCA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8SWNvbnNUPihjaGFuZ2VzLCAnaWNvblN0YXJ0JywgSWNvbnNDLnNsaWNlKCksIHRoaXMuaW5wdXRJY29uU3RhcnQpO1xuICAgIC8vLS0tIEljb24gU3RhcnRcbiAgICB0aGlzLmlucHV0SWNvbkVuZCA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8SWNvbnNUPihjaGFuZ2VzLCAnaWNvbkVuZCcsIEljb25zQy5zbGljZSgpLCB0aGlzLmlucHV0SWNvbkVuZCk7XG4gICAgLy8tLS0gTG9hZGluZ1xuICAgIHRoaXMuaW5wdXRMb2FkaW5nID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnbG9hZGluZycsIHRoaXMuaW5wdXRMb2FkaW5nKTtcbiAgfVxufVxuIiwiPGlvbi1idXR0b25cbiAgW25nQ2xhc3NdPVwie1xuICAgICdjZi1idXR0b24tcHJpbWFyeSc6IGlucHV0VHlwZSA9PT0gJ3ByaW1hcnknLFxuICAgICdjZi1idXR0b24tc2Vjb25kYXJ5JzogaW5wdXRUeXBlID09PSAnc2Vjb25kYXJ5JyxcbiAgICAnY2YtYnV0dG9uLXRlcnRpYXJ5JzogaW5wdXRUeXBlID09PSAndGVydGlhcnknLFxuICAgICd0ZXh0LWxhcmdlJzogaW5wdXRGb250U2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAndGV4dC1zbWFsbCc6IGlucHV0Rm9udFNpemUgPT09ICdzbWFsbCcsXG4gICAgYWxlcnQ6IGlucHV0QWxlcnQsXG4gICAgYWN0aW9uOiBpbnB1dEFjdGlvbixcbiAgICBzbnVnOiBpbnB1dFNudWdcbiAgfVwiXG4gIFtkaXNhYmxlZF09XCJpbnB1dERpc2FibGVkXCJcbiAgKmNmQnV0dG9uTG9hZGVyPVwiaW5wdXRMb2FkaW5nXCI+XG4gIDxjZi1pY29uICpuZ0lmPVwiaW5wdXRJY29uU3RhcnRcIiBbaWNvbl09XCJpbnB1dEljb25TdGFydFwiIHN0eWxlPVwiLS1jZi1zdmctb3ZlcndyaXRlLXN0cm9rZS1jb2xvcjogdmFyKC0tYnV0dG9uLXRleHQtY29sb3IpXCI+PC9jZi1pY29uPlxuICA8cD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvcD5cbiAgPGNmLWljb24gKm5nSWY9XCJpbnB1dEljb25FbmRcIiBbaWNvbl09XCJpbnB1dEljb25FbmRcIiBzdHlsZT1cIi0tY2Ytc3ZnLW92ZXJ3cml0ZS1zdHJva2UtY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0LWNvbG9yKVwiPjwvY2YtaWNvbj5cbjwvaW9uLWJ1dHRvbj5cbiJdfQ==
|