valtech-components 2.0.1035 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/atoms/box/box.component.mjs +6 -8
- package/esm2022/lib/components/atoms/button/factory.mjs +24 -217
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +2 -4
- package/esm2022/lib/components/atoms/href/href.component.mjs +1 -2
- package/esm2022/lib/components/atoms/image/image.component.mjs +36 -3
- package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +4 -9
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/lib/components/molecules/card/card.component.mjs +53 -10
- package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +27 -36
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +44 -6
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +32 -7
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +28 -12
- package/esm2022/lib/components/molecules/cta-card/cta-card.component.mjs +4 -9
- package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +7 -7
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +159 -71
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +7 -3
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +30 -5
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +75 -19
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +42 -9
- package/esm2022/lib/components/molecules/permission-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +88 -12
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +15 -7
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +93 -7
- package/esm2022/lib/components/organisms/change-email-modal/change-email-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/change-password-modal/change-password-modal.component.mjs +4 -4
- package/esm2022/lib/components/organisms/form/form.component.mjs +62 -20
- package/esm2022/lib/components/organisms/login/login.component.mjs +8 -8
- package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
- package/esm2022/lib/components/types.mjs +1 -1
- package/esm2022/lib/services/presets/default-presets.mjs +45 -0
- package/esm2022/lib/services/presets/index.mjs +3 -1
- package/esm2022/lib/services/presets/preset.service.mjs +17 -4
- package/esm2022/lib/services/requests/request-form-builder.service.mjs +8 -3
- package/esm2022/lib/shared/utils/ionic-color.mjs +36 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -8
- package/fesm2022/valtech-components.mjs +1140 -1024
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/box/box.component.d.ts +2 -5
- package/lib/components/atoms/button/factory.d.ts +15 -69
- package/lib/components/atoms/divider/divider.component.d.ts +1 -4
- package/lib/components/atoms/href/href.component.d.ts +2 -3
- package/lib/components/atoms/image/image.component.d.ts +5 -0
- package/lib/components/molecules/action-card/action-card.component.d.ts +1 -1
- package/lib/components/molecules/card/card.component.d.ts +2 -1
- package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +2 -3
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +5 -0
- package/lib/components/molecules/command-display/command-display.component.d.ts +4 -0
- package/lib/components/molecules/comment/comment.component.d.ts +3 -0
- package/lib/components/molecules/cta-card/cta-card.component.d.ts +0 -1
- package/lib/components/molecules/hint/hint.component.d.ts +11 -1
- package/lib/components/molecules/pagination/pagination.component.d.ts +5 -0
- package/lib/components/molecules/password-input/password-input.component.d.ts +4 -2
- package/lib/components/molecules/permission-selector/types.d.ts +1 -0
- package/lib/components/molecules/rating/rating.component.d.ts +11 -0
- package/lib/components/molecules/text-input/text-input.component.d.ts +21 -0
- package/lib/components/organisms/form/form.component.d.ts +19 -0
- package/lib/components/types.d.ts +21 -1
- package/lib/services/presets/default-presets.d.ts +22 -0
- package/lib/services/presets/index.d.ts +1 -0
- package/lib/services/presets/preset.service.d.ts +4 -0
- package/lib/shared/utils/ionic-color.d.ts +20 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -7
- package/src/lib/components/styles/mixins.scss +16 -0
- package/esm2022/lib/components/molecules/content-card/content-card.component.mjs +0 -86
- package/esm2022/lib/components/molecules/content-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
- package/esm2022/lib/components/molecules/info-card/info-card.component.mjs +0 -126
- package/esm2022/lib/components/molecules/info-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
- package/lib/components/molecules/content-card/content-card.component.d.ts +0 -26
- package/lib/components/molecules/content-card/types.d.ts +0 -30
- package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
- package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
- package/lib/components/molecules/info-card/info-card.component.d.ts +0 -37
- package/lib/components/molecules/info-card/types.d.ts +0 -44
- package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
|
@@ -75,6 +75,11 @@ export class CardComponent {
|
|
|
75
75
|
clickHandler(section, token) {
|
|
76
76
|
this.onClick.emit({ section, token });
|
|
77
77
|
}
|
|
78
|
+
/** Activación por teclado con Space — previene el scroll de la página. */
|
|
79
|
+
onKeyActivate(event, section, token) {
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
this.clickHandler(section, token);
|
|
82
|
+
}
|
|
78
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
84
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "val-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
80
85
|
<ion-card *ngIf="resolvedProps.type === types.native">
|
|
@@ -101,8 +106,13 @@ export class CardComponent {
|
|
|
101
106
|
|
|
102
107
|
<ion-card
|
|
103
108
|
*ngIf="resolvedProps.type === types.tappable"
|
|
104
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
105
109
|
class="tapable"
|
|
110
|
+
role="button"
|
|
111
|
+
tabindex="0"
|
|
112
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
113
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
114
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
115
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
106
116
|
>
|
|
107
117
|
@if (resolvedProps.image) {
|
|
108
118
|
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
@@ -117,8 +127,14 @@ export class CardComponent {
|
|
|
117
127
|
|
|
118
128
|
<ion-card
|
|
119
129
|
*ngIf="resolvedProps.type === types.checker"
|
|
120
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
121
130
|
class="tapable"
|
|
131
|
+
role="button"
|
|
132
|
+
tabindex="0"
|
|
133
|
+
[attr.aria-pressed]="!!resolvedProps.selected"
|
|
134
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
135
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
136
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
137
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
122
138
|
>
|
|
123
139
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="checker">
|
|
124
140
|
<div>
|
|
@@ -194,7 +210,15 @@ export class CardComponent {
|
|
|
194
210
|
</ion-buttons>
|
|
195
211
|
</ion-card-header>
|
|
196
212
|
|
|
197
|
-
<div
|
|
213
|
+
<div
|
|
214
|
+
class="tapable"
|
|
215
|
+
role="button"
|
|
216
|
+
tabindex="0"
|
|
217
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
218
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
219
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
220
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
221
|
+
>
|
|
198
222
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="complex-header">
|
|
199
223
|
<div>
|
|
200
224
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -248,7 +272,7 @@ export class CardComponent {
|
|
|
248
272
|
</ng-container>
|
|
249
273
|
</ion-buttons>
|
|
250
274
|
</ion-card>
|
|
251
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
275
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
252
276
|
}
|
|
253
277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
254
278
|
type: Component,
|
|
@@ -292,8 +316,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
292
316
|
|
|
293
317
|
<ion-card
|
|
294
318
|
*ngIf="resolvedProps.type === types.tappable"
|
|
295
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
296
319
|
class="tapable"
|
|
320
|
+
role="button"
|
|
321
|
+
tabindex="0"
|
|
322
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
323
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
324
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
325
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
297
326
|
>
|
|
298
327
|
@if (resolvedProps.image) {
|
|
299
328
|
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
@@ -308,8 +337,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
308
337
|
|
|
309
338
|
<ion-card
|
|
310
339
|
*ngIf="resolvedProps.type === types.checker"
|
|
311
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
312
340
|
class="tapable"
|
|
341
|
+
role="button"
|
|
342
|
+
tabindex="0"
|
|
343
|
+
[attr.aria-pressed]="!!resolvedProps.selected"
|
|
344
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
345
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
346
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
347
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
313
348
|
>
|
|
314
349
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="checker">
|
|
315
350
|
<div>
|
|
@@ -385,7 +420,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
385
420
|
</ion-buttons>
|
|
386
421
|
</ion-card-header>
|
|
387
422
|
|
|
388
|
-
<div
|
|
423
|
+
<div
|
|
424
|
+
class="tapable"
|
|
425
|
+
role="button"
|
|
426
|
+
tabindex="0"
|
|
427
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
428
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
429
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
430
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
431
|
+
>
|
|
389
432
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="complex-header">
|
|
390
433
|
<div>
|
|
391
434
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -439,12 +482,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
439
482
|
</ng-container>
|
|
440
483
|
</ion-buttons>
|
|
441
484
|
</ion-card>
|
|
442
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"] }]
|
|
443
|
-
}],
|
|
485
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"] }]
|
|
486
|
+
}], propDecorators: { preset: [{
|
|
444
487
|
type: Input
|
|
445
488
|
}], props: [{
|
|
446
489
|
type: Input
|
|
447
490
|
}], onClick: [{
|
|
448
491
|
type: Output
|
|
449
492
|
}] } });
|
|
450
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFnQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFvTTlFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBd0N4QjtRQXZDUSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBV3hDOzs7Ozs7Ozs7O1dBVUc7UUFDTSxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGtCQUFhLEdBQWlCLEVBQWtCLENBQUM7UUFFakQ7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNqQixnQkFBVyxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLGFBQVEsR0FBRyxXQUFXLENBQUM7SUFFUixDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0UsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBYztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBbkVVLGFBQWE7bUdBQWIsYUFBYSx3S0EvTGQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0S1QseTNHQTNMQyxZQUFZLGdRQUNaLGVBQWUsMEdBQ2YsZUFBZSwwR0FDZixjQUFjLHlFQUNkLGFBQWEsd0VBQ2IsT0FBTyx5TEFDUCxjQUFjLCtFQUNkLGFBQWEsc0dBQ2IsWUFBWSxzRkFDWixlQUFlLHlGQUNmLFdBQVcscU1BQ1gsVUFBVSw4RUFDVixTQUFTLG9QQUNULE9BQU87OzRGQWlNRSxhQUFhO2tCQWxOekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsT0FBTztxQkFDUixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEtUO3dEQTZCUSxNQUFNO3NCQUFkLEtBQUs7Z0JBYUcsS0FBSztzQkFBYixLQUFLO2dCQVdOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25DYXJkLFxuICBJb25DYXJkQ29udGVudCxcbiAgSW9uQ2FyZEhlYWRlcixcbiAgSW9uQ2FyZFN1YnRpdGxlLFxuICBJb25DYXJkVGl0bGUsXG4gIElvbkNoZWNrYm94LFxuICBJb25JY29uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ2FyZENsaWNrRXZlbnQsIENhcmRNZXRhZGF0YSwgQ2FyZFNlY3Rpb24sIENhcmRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgSW9uQ2FyZCxcbiAgICBJb25DYXJkQ29udGVudCxcbiAgICBJb25DYXJkSGVhZGVyLFxuICAgIElvbkNhcmRUaXRsZSxcbiAgICBJb25DYXJkU3VidGl0bGUsXG4gICAgSW9uQ2hlY2tib3gsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNhcmQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLm5hdGl2ZVwiPlxuICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgIDxpbWcgW2FsdF09XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8ICdDYXJkIGltYWdlJ1wiIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVwiIC8+XG4gICAgICB9XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5jb250ZW50XCI+e3sgcmVzb2x2ZWRQcm9wcy5jb250ZW50IH19PC9pb24tY2FyZC1jb250ZW50PlxuXG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucyAmJiByZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBiIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYlwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyLCBiLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZFxuICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLnRhcHBhYmxlXCJcbiAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgICAgY2xhc3M9XCJ0YXBhYmxlXCJcbiAgICA+XG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuaW1hZ2UpIHtcbiAgICAgICAgPGltZyBbYWx0XT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgJ0NhcmQgaW1hZ2UnXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgIH1cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZFxuICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLmNoZWNrZXJcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICBjbGFzcz1cInRhcGFibGVcIlxuICAgID5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjaGVja2VyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aW9uLWNoZWNrYm94IFtjaGVja2VkXT1cInJlc29sdmVkUHJvcHMuc2VsZWN0ZWRcIj48L2lvbi1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZCAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMuY29tcGxleFwiIGNsYXNzPVwiY29tcGxleFwiPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlciBjbGFzcz1cImNvbXBsZXgtaGVhZGVyXCI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIiAqbmdJZj1cInJlc29sdmVkUHJvcHMubGVmdEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5sZWZ0QWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHg7IGN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlckxlZnQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5oZWFkZXJUZXh0XCI+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBjb250ZW50OiByZXNvbHZlZFByb3BzLmhlYWRlclRleHQsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IHRydWUsIHNpemU6ICdtZWRpdW0nIH1cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIiAqbmdJZj1cInJlc29sdmVkUHJvcHMucmlnaHRBY3Rpb25zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJlc29sdmVkUHJvcHMucmlnaHRBY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHg7IGN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWF2YXRhcj5cbiAgICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSU1BR0VcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwiYWN0aW9uLmltYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRhcGFibGVcIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCI+XG4gICAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjb21wbGV4LWhlYWRlclwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgICAgPGltZyBbYWx0XT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgJ0NhcmQgaW1hZ2UnXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiIGNsYXNzPVwiY29tcGxleC1jb250ZW50XCI+e3sgcmVzb2x2ZWRQcm9wcy5jb250ZW50IH19PC9pb24tY2FyZC1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucyAmJiByZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBiIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYlwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyLCBiLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWJ1dHRvbnNcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBtYXJnaW46IDhweFwiXG4gICAgICAgICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5mb290ZXJDb21wbGV4QWN0aW9ucz8ubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByZXNvbHZlZFByb3BzLmZvb3RlckNvbXBsZXhBY3Rpb25zXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8dmFsLWF2YXRhclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBpbWFnZTogYWN0aW9uLmRlc2NyaXB0aW9uLCBkZWZhdWx0OiAnJyB9XCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWF2YXRhcj5cbiAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYWN0aW9uLmltYWdlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgID48L3ZhbC1pbWFnZT5cbiAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICA8L2lvbi1jYXJkPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY2FyZFxuICpcbiAqIEEgZmxleGlibGUgY2FyZCBjb21wb25lbnQgc3VwcG9ydGluZyBpbWFnZXMsIHRpdGxlcywgY29udGVudCwgYWN0aW9ucywgYW5kIGN1c3RvbSBzZWN0aW9ucy5cbiAqIFN1cHBvcnRzIHByZXNldHMgZm9yIHJldXNhYmxlIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJlc2V0IChyZWNvbW1lbmRlZCk6XG4gKiA8dmFsLWNhcmQgcHJlc2V0PVwiZmVhdHVyZVwiIFtwcm9wc109XCJ7IHRpdGxlOiAnQ2FyZCcsIGltYWdlOiAndXJsJywgY29udGVudDogJy4uLicgfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoJGV2ZW50KVwiPjwvdmFsLWNhcmQ+XG4gKlxuICogQGV4YW1wbGUgU3RhdGljIChiYWNrd2FyZHMgY29tcGF0aWJsZSk6XG4gKiA8dmFsLWNhcmQgW3Byb3BzXT1cInsgdHlwZTogJ25hdGl2ZScsIHRpdGxlOiAnQ2FyZCcsIGltYWdlOiAndXJsJywgY29udGVudDogJy4uLicgfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoJGV2ZW50KVwiPjwvdmFsLWNhcmQ+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHkgKGUuZy4sICdmZWF0dXJlJywgJ2NvbXBhY3QnKVxuICogQGlucHV0IHByb3BzOiBDYXJkTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgY2FyZCAob3ZlcnJpZGVzIHByZXNldCB2YWx1ZXMpXG4gKiBAb3V0cHV0IG9uQ2xpY2sgLSBFbWl0cyBhIENhcmRDbGlja0V2ZW50IHdoZW4gdGhlIGNhcmQgb3IgYW4gYWN0aW9uIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogUHJlc2V0IG5hbWUgdG8gYXBwbHkuIFByZXNldHMgZGVmaW5lIHJldXNhYmxlIGNhcmQgY29uZmlndXJhdGlvbnNcbiAgICogKHR5cGUsIHZhcmlhbnQsIHBhZGRpbmcsIGV0Yy4pIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiA8dmFsLWNhcmQgcHJlc2V0PVwiZmVhdHVyZVwiIFtwcm9wc109XCJ7IHRpdGxlOiAnTXkgQ2FyZCcgfVwiPjwvdmFsLWNhcmQ+XG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhcmQgY29uZmlndXJhdGlvbiBvYmplY3QuIFZhbHVlcyBoZXJlIG92ZXJyaWRlIHByZXNldCB2YWx1ZXMuXG4gICAqIEB0eXBlIHtDYXJkTWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSB0eXBlIC0gVGhlIGNhcmQgdHlwZSAoc2VlIENhcmRUeXBlKS5cbiAgICogQHByb3BlcnR5IHRpdGxlIC0gVGhlIGNhcmQgdGl0bGUuXG4gICAqIEBwcm9wZXJ0eSBpbWFnZSAtIFRoZSBjYXJkIGltYWdlIFVSTC5cbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBUaGUgY2FyZCBjb250ZW50LlxuICAgKiBAcHJvcGVydHkgYWN0aW9ucyAtIEFycmF5IG9mIGFjdGlvbiBidXR0b25zIChvcHRpb25hbCkuXG4gICAqIEBwcm9wZXJ0eSBzZWN0aW9ucyAtIEN1c3RvbSBjYXJkIHNlY3Rpb25zIChvcHRpb25hbCkuXG4gICAqIEBwcm9wZXJ0eSBvdmVydGl0bGUgLSBTdWJ0aXRsZSBvciBvdmVydGl0bGUgKG9wdGlvbmFsKS5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPENhcmRNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IENhcmRNZXRhZGF0YSA9IHt9IGFzIENhcmRNZXRhZGF0YTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjYXJkIG9yIGFuIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmRDbGlja0V2ZW50PigpO1xuXG4gIHR5cGVzID0gQ2FyZFR5cGU7XG4gIGFjdGlvblR5cGVzID0gVG9vbGJhckFjdGlvblR5cGU7XG4gIHNlY3Rpb25zID0gQ2FyZFNlY3Rpb247XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ2NhcmQnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxDYXJkTWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgQ2FyZE1ldGFkYXRhO1xuICB9XG5cbiAgY2xpY2tIYW5kbGVyKHNlY3Rpb246IENhcmRTZWN0aW9uLCB0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHsgc2VjdGlvbiwgdG9rZW4gfSk7XG4gIH1cbn1cbiJdfQ==
|
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFnQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUF1TjlFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBck8xQjtRQXNPVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBV3hDOzs7Ozs7Ozs7O1dBVUc7UUFDTSxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGtCQUFhLEdBQWlCLEVBQWtCLENBQUM7UUFFakQ7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNqQixnQkFBVyxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLGFBQVEsR0FBRyxXQUFXLENBQUM7S0FrQ3hCO0lBaENDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0UsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBYztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsYUFBYSxDQUFDLEtBQVksRUFBRSxPQUFvQixFQUFFLEtBQWM7UUFDOUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7K0dBdkVVLGFBQWE7bUdBQWIsYUFBYSx3S0FsTmQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0xULDZnSEE5TUMsWUFBWSxnUUFDWixlQUFlLDBHQUNmLGVBQWUsMEdBQ2YsY0FBYyx5RUFDZCxhQUFhLHdFQUNiLE9BQU8seUxBQ1AsY0FBYywrRUFDZCxhQUFhLHNHQUNiLFlBQVksc0ZBQ1osZUFBZSx5RkFDZixXQUFXLHFNQUNYLFVBQVUsOEVBQ1YsU0FBUyxvUEFDVCxPQUFPOzs0RkFvTkUsYUFBYTtrQkFyT3pCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixTQUFTO3dCQUNULE9BQU87cUJBQ1IsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErTFQ7OEJBNkJRLE1BQU07c0JBQWQsS0FBSztnQkFhRyxLQUFLO3NCQUFiLEtBQUs7Z0JBV04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNhcmQsXG4gIElvbkNhcmRDb250ZW50LFxuICBJb25DYXJkSGVhZGVyLFxuICBJb25DYXJkU3VidGl0bGUsXG4gIElvbkNhcmRUaXRsZSxcbiAgSW9uQ2hlY2tib3gsXG4gIElvbkljb24sXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbGJhckFjdGlvblR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDYXJkQ2xpY2tFdmVudCwgQ2FyZE1ldGFkYXRhLCBDYXJkU2VjdGlvbiwgQ2FyZFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBJb25DYXJkLFxuICAgIElvbkNhcmRDb250ZW50LFxuICAgIElvbkNhcmRIZWFkZXIsXG4gICAgSW9uQ2FyZFRpdGxlLFxuICAgIElvbkNhcmRTdWJ0aXRsZSxcbiAgICBJb25DaGVja2JveCxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25JY29uLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tY2FyZCAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMubmF0aXZlXCI+XG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuaW1hZ2UpIHtcbiAgICAgICAgPGltZyBbYWx0XT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgJ0NhcmQgaW1hZ2UnXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgIH1cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zICYmIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFjdGlvbnNcIj5cbiAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGIgb2YgcmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJiXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXIsIGIudG9rZW4pXCJcbiAgICAgICAgICA+PC92YWwtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2lvbi1jYXJkPlxuXG4gICAgPGlvbi1jYXJkXG4gICAgICAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMudGFwcGFibGVcIlxuICAgICAgY2xhc3M9XCJ0YXBhYmxlXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB8fCBudWxsXCJcbiAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCJcbiAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uS2V5QWN0aXZhdGUoJGV2ZW50LCBzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgPlxuICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgIDxpbWcgW2FsdF09XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8ICdDYXJkIGltYWdlJ1wiIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVwiIC8+XG4gICAgICB9XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5jb250ZW50XCI+e3sgcmVzb2x2ZWRQcm9wcy5jb250ZW50IH19PC9pb24tY2FyZC1jb250ZW50PlxuICAgIDwvaW9uLWNhcmQ+XG5cbiAgICA8aW9uLWNhcmRcbiAgICAgICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50eXBlID09PSB0eXBlcy5jaGVja2VyXCJcbiAgICAgIGNsYXNzPVwidGFwYWJsZVwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiISFyZXNvbHZlZFByb3BzLnNlbGVjdGVkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB8fCBudWxsXCJcbiAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCJcbiAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uS2V5QWN0aXZhdGUoJGV2ZW50LCBzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlciAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIiBjbGFzcz1cImNoZWNrZXJcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxpb24tY2hlY2tib3ggW2NoZWNrZWRdPVwicmVzb2x2ZWRQcm9wcy5zZWxlY3RlZFwiPjwvaW9uLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiPnt7IHJlc29sdmVkUHJvcHMuY29udGVudCB9fTwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuXG4gICAgPGlvbi1jYXJkICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50eXBlID09PSB0eXBlcy5jb21wbGV4XCIgY2xhc3M9XCJjb21wbGV4XCI+XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyIGNsYXNzPVwiY29tcGxleC1oZWFkZXJcIj5cbiAgICAgICAgPGlvbi1idXR0b25zIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5sZWZ0QWN0aW9ucz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByZXNvbHZlZFByb3BzLmxlZnRBY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlckxlZnQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmhlYWRlclRleHRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHJlc29sdmVkUHJvcHMuaGVhZGVyVGV4dCwgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgc2l6ZTogJ21lZGl1bScgfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1pbWFnZT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkJVVFRPTlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFwYWJsZVwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfHwgbnVsbFwiXG4gICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvbktleUFjdGl2YXRlKCRldmVudCwgc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWNhcmQtaGVhZGVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiIGNsYXNzPVwiY29tcGxleC1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5pbWFnZSkge1xuICAgICAgICAgIDxpbWcgW2FsdF09XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8ICdDYXJkIGltYWdlJ1wiIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIiBjbGFzcz1cImNvbXBsZXgtY29udGVudFwiPnt7IHJlc29sdmVkUHJvcHMuY29udGVudCB9fTwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnMgJiYgcmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiPlxuICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYiBvZiByZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnNcIlxuICAgICAgICAgICAgW3Byb3BzXT1cImJcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlciwgYi50b2tlbilcIlxuICAgICAgICAgID48L3ZhbC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPGlvbi1idXR0b25zXG4gICAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgbWFyZ2luOiA4cHhcIlxuICAgICAgICAqbmdJZj1cInJlc29sdmVkUHJvcHMuZm9vdGVyQ29tcGxleEFjdGlvbnM/Lmxlbmd0aCA+IDBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5mb290ZXJDb21wbGV4QWN0aW9uc1wiPlxuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHg7IGN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5BVkFUQVJcIlxuICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSU1BR0VcIlxuICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkJVVFRPTlwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgPC9pb24tY2FyZD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNhcmRcbiAqXG4gKiBBIGZsZXhpYmxlIGNhcmQgY29tcG9uZW50IHN1cHBvcnRpbmcgaW1hZ2VzLCB0aXRsZXMsIGNvbnRlbnQsIGFjdGlvbnMsIGFuZCBjdXN0b20gc2VjdGlvbnMuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldCAocmVjb21tZW5kZWQpOlxuICogPHZhbC1jYXJkIHByZXNldD1cImZlYXR1cmVcIiBbcHJvcHNdPVwieyB0aXRsZTogJ0NhcmQnLCBpbWFnZTogJ3VybCcsIGNvbnRlbnQ6ICcuLi4nIH1cIiAob25DbGljayk9XCJoYW5kbGVyKCRldmVudClcIj48L3ZhbC1jYXJkPlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyAoYmFja3dhcmRzIGNvbXBhdGlibGUpOlxuICogPHZhbC1jYXJkIFtwcm9wc109XCJ7IHR5cGU6ICduYXRpdmUnLCB0aXRsZTogJ0NhcmQnLCBpbWFnZTogJ3VybCcsIGNvbnRlbnQ6ICcuLi4nIH1cIiAob25DbGljayk9XCJoYW5kbGVyKCRldmVudClcIj48L3ZhbC1jYXJkPlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5IChlLmcuLCAnZmVhdHVyZScsICdjb21wYWN0JylcbiAqIEBpbnB1dCBwcm9wczogQ2FyZE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcmQgKG92ZXJyaWRlcyBwcmVzZXQgdmFsdWVzKVxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgYSBDYXJkQ2xpY2tFdmVudCB3aGVuIHRoZSBjYXJkIG9yIGFuIGFjdGlvbiBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFByZXNldCBuYW1lIHRvIGFwcGx5LiBQcmVzZXRzIGRlZmluZSByZXVzYWJsZSBjYXJkIGNvbmZpZ3VyYXRpb25zXG4gICAqICh0eXBlLCB2YXJpYW50LCBwYWRkaW5nLCBldGMuKSB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPHZhbC1jYXJkIHByZXNldD1cImZlYXR1cmVcIiBbcHJvcHNdPVwieyB0aXRsZTogJ015IENhcmQnIH1cIj48L3ZhbC1jYXJkPlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDYXJkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBAdHlwZSB7Q2FyZE1ldGFkYXRhfVxuICAgKiBAcHJvcGVydHkgdHlwZSAtIFRoZSBjYXJkIHR5cGUgKHNlZSBDYXJkVHlwZSkuXG4gICAqIEBwcm9wZXJ0eSB0aXRsZSAtIFRoZSBjYXJkIHRpdGxlLlxuICAgKiBAcHJvcGVydHkgaW1hZ2UgLSBUaGUgY2FyZCBpbWFnZSBVUkwuXG4gICAqIEBwcm9wZXJ0eSBjb250ZW50IC0gVGhlIGNhcmQgY29udGVudC5cbiAgICogQHByb3BlcnR5IGFjdGlvbnMgLSBBcnJheSBvZiBhY3Rpb24gYnV0dG9ucyAob3B0aW9uYWwpLlxuICAgKiBAcHJvcGVydHkgc2VjdGlvbnMgLSBDdXN0b20gY2FyZCBzZWN0aW9ucyAob3B0aW9uYWwpLlxuICAgKiBAcHJvcGVydHkgb3ZlcnRpdGxlIC0gU3VidGl0bGUgb3Igb3ZlcnRpdGxlIChvcHRpb25hbCkuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxDYXJkTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBDYXJkTWV0YWRhdGEgPSB7fSBhcyBDYXJkTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBvciBhbiBhY3Rpb24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJkQ2xpY2tFdmVudD4oKTtcblxuICB0eXBlcyA9IENhcmRUeXBlO1xuICBhY3Rpb25UeXBlcyA9IFRvb2xiYXJBY3Rpb25UeXBlO1xuICBzZWN0aW9ucyA9IENhcmRTZWN0aW9uO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ2NhcmQnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxDYXJkTWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgQ2FyZE1ldGFkYXRhO1xuICB9XG5cbiAgY2xpY2tIYW5kbGVyKHNlY3Rpb246IENhcmRTZWN0aW9uLCB0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHsgc2VjdGlvbiwgdG9rZW4gfSk7XG4gIH1cblxuICAvKiogQWN0aXZhY2nDs24gcG9yIHRlY2xhZG8gY29uIFNwYWNlIOKAlCBwcmV2aWVuZSBlbCBzY3JvbGwgZGUgbGEgcMOhZ2luYS4gKi9cbiAgb25LZXlBY3RpdmF0ZShldmVudDogRXZlbnQsIHNlY3Rpb246IENhcmRTZWN0aW9uLCB0b2tlbj86IHN0cmluZykge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5jbGlja0hhbmRsZXIoc2VjdGlvbiwgdG9rZW4pO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, Input } from '@angular/core';
|
|
3
3
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import {
|
|
4
|
+
import { IonRadio, IonRadioGroup } from '@ionic/angular/standalone';
|
|
5
5
|
import { ComponentStates } from '../../types';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
/**
|
|
@@ -26,54 +26,45 @@ export class CheckboxRadioInputComponent {
|
|
|
26
26
|
this.states = ComponentStates;
|
|
27
27
|
}
|
|
28
28
|
ngOnInit() { }
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// Seleccionar esta opción
|
|
35
|
-
this.props.control?.setValue(option.id);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
// Si se deselecciona la opción actual, limpiar
|
|
39
|
-
if (this.props.control?.value === option.id) {
|
|
40
|
-
this.props.control?.setValue(null);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
29
|
+
onSelectionChange(event) {
|
|
30
|
+
// ion-radio-group con allowEmptySelection: re-clickear la opción activa la
|
|
31
|
+
// deselecciona (value === undefined) → mapear a null para limpiar el control.
|
|
32
|
+
const value = event.detail.value;
|
|
33
|
+
this.props.control?.setValue(value ?? null);
|
|
43
34
|
}
|
|
44
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxRadioInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
36
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CheckboxRadioInputComponent, isStandalone: true, selector: "val-checkbox-radio-input", inputs: { props: "props" }, ngImport: i0, template: `
|
|
46
|
-
<
|
|
37
|
+
<ion-radio-group
|
|
38
|
+
class="checkbox-radio-group"
|
|
39
|
+
[value]="props.control?.value"
|
|
40
|
+
[allowEmptySelection]="true"
|
|
41
|
+
(ionChange)="onSelectionChange($event)"
|
|
42
|
+
>
|
|
47
43
|
@for (option of props.options; track option.id) {
|
|
48
|
-
<ion-
|
|
49
|
-
[checked]="isSelected(option)"
|
|
50
|
-
[disabled]="props.state === states.DISABLED"
|
|
51
|
-
[labelPlacement]="'end'"
|
|
52
|
-
(ionChange)="onOptionSelect(option, $event)"
|
|
53
|
-
>
|
|
44
|
+
<ion-radio [value]="option.id" [disabled]="props.state === states.DISABLED" labelPlacement="end">
|
|
54
45
|
{{ option.name }}
|
|
55
|
-
</ion-
|
|
46
|
+
</ion-radio>
|
|
56
47
|
}
|
|
57
|
-
</
|
|
58
|
-
`, isInline: true, styles: [".checkbox-radio-group{display:flex;flex-direction:row;gap:12px;margin-top:.5rem}.checkbox-radio-group ion-checkbox{--size: 24px;--checkbox-background-checked: var(--ion-color-primary);--checkmark-color: var(--ion-color-primary-contrast)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type:
|
|
48
|
+
</ion-radio-group>
|
|
49
|
+
`, isInline: true, styles: [".checkbox-radio-group{display:flex;flex-direction:row;gap:12px;margin-top:.5rem}.checkbox-radio-group ion-checkbox{--size: 24px;--checkbox-background-checked: var(--ion-color-primary);--checkmark-color: var(--ion-color-primary-contrast)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "errorText", "helperText", "name", "value"] }] }); }
|
|
59
50
|
}
|
|
60
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxRadioInputComponent, decorators: [{
|
|
61
52
|
type: Component,
|
|
62
|
-
args: [{ selector: 'val-checkbox-radio-input', standalone: true, imports: [CommonModule, ReactiveFormsModule,
|
|
63
|
-
<
|
|
53
|
+
args: [{ selector: 'val-checkbox-radio-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonRadio, IonRadioGroup], template: `
|
|
54
|
+
<ion-radio-group
|
|
55
|
+
class="checkbox-radio-group"
|
|
56
|
+
[value]="props.control?.value"
|
|
57
|
+
[allowEmptySelection]="true"
|
|
58
|
+
(ionChange)="onSelectionChange($event)"
|
|
59
|
+
>
|
|
64
60
|
@for (option of props.options; track option.id) {
|
|
65
|
-
<ion-
|
|
66
|
-
[checked]="isSelected(option)"
|
|
67
|
-
[disabled]="props.state === states.DISABLED"
|
|
68
|
-
[labelPlacement]="'end'"
|
|
69
|
-
(ionChange)="onOptionSelect(option, $event)"
|
|
70
|
-
>
|
|
61
|
+
<ion-radio [value]="option.id" [disabled]="props.state === states.DISABLED" labelPlacement="end">
|
|
71
62
|
{{ option.name }}
|
|
72
|
-
</ion-
|
|
63
|
+
</ion-radio>
|
|
73
64
|
}
|
|
74
|
-
</
|
|
65
|
+
</ion-radio-group>
|
|
75
66
|
`, styles: [".checkbox-radio-group{display:flex;flex-direction:row;gap:12px;margin-top:.5rem}.checkbox-radio-group ion-checkbox{--size: 24px;--checkbox-background-checked: var(--ion-color-primary);--checkmark-color: var(--ion-color-primary-contrast)}\n"] }]
|
|
76
67
|
}], propDecorators: { props: [{
|
|
77
68
|
type: Input
|
|
78
69
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcmFkaW8taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jaGVja2JveC1yYWRpby1pbnB1dC9jaGVja2JveC1yYWRpby1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBc0I3RDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sT0FBTywyQkFBMkI7SUFyQ3hDO1FBdUNFLFdBQU0sR0FBRyxlQUFlLENBQUM7S0FVMUI7SUFSQyxRQUFRLEtBQUksQ0FBQztJQUViLGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsMkVBQTJFO1FBQzNFLDhFQUE4RTtRQUM5RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBWFUsMkJBQTJCO21HQUEzQiwyQkFBMkIsZ0hBakM1Qjs7Ozs7Ozs7Ozs7OztHQWFULHdUQWRTLFlBQVksOEJBQUUsbUJBQW1CLCtCQUFFLFFBQVEsd0pBQUUsYUFBYTs7NEZBa0N6RCwyQkFBMkI7a0JBckN2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxZQUMzRDs7Ozs7Ozs7Ozs7OztHQWFUOzhCQXFCUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uUmFkaW8sIElvblJhZGlvR3JvdXAgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IElucHV0TWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoZWNrYm94LXJhZGlvLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uUmFkaW8sIElvblJhZGlvR3JvdXBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tcmFkaW8tZ3JvdXBcbiAgICAgIGNsYXNzPVwiY2hlY2tib3gtcmFkaW8tZ3JvdXBcIlxuICAgICAgW3ZhbHVlXT1cInByb3BzLmNvbnRyb2w/LnZhbHVlXCJcbiAgICAgIFthbGxvd0VtcHR5U2VsZWN0aW9uXT1cInRydWVcIlxuICAgICAgKGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAZm9yIChvcHRpb24gb2YgcHJvcHMub3B0aW9uczsgdHJhY2sgb3B0aW9uLmlkKSB7XG4gICAgICAgIDxpb24tcmFkaW8gW3ZhbHVlXT1cIm9wdGlvbi5pZFwiIFtkaXNhYmxlZF09XCJwcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEXCIgbGFiZWxQbGFjZW1lbnQ9XCJlbmRcIj5cbiAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICA8L2lvbi1yYWRpbz5cbiAgICAgIH1cbiAgICA8L2lvbi1yYWRpby1ncm91cD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtcmFkaW8taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1jaGVja2JveC1yYWRpby1pbnB1dFxuICpcbiAqIEEgZ3JvdXAgb2YgY2hlY2tib3hlcyB3aXRoIHJhZGlvIGJlaGF2aW9yIChzaW5nbGUgc2VsZWN0aW9uKS5cbiAqIFZpc3VhbGx5IGRpc3BsYXlzIGFzIGNoZWNrYm94ZXMgYnV0IG9ubHkgYWxsb3dzIG9uZSBvcHRpb24gdG8gYmUgc2VsZWN0ZWQgYXQgYSB0aW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWNoZWNrYm94LXJhZGlvLWlucHV0IFtwcm9wc109XCJ7XG4gKiAgIGNvbnRyb2w6IG15Q29udHJvbCxcbiAqICAgb3B0aW9uczogW1xuICogICAgIHsgaWQ6ICd5ZXMnLCBuYW1lOiAnU8OtJywgb3JkZXI6IDAgfSxcbiAqICAgICB7IGlkOiAnbm8nLCBuYW1lOiAnTm8nLCBvcmRlcjogMSB9XG4gKiAgIF1cbiAqIH1cIj48L3ZhbC1jaGVja2JveC1yYWRpby1pbnB1dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IElucHV0TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGluY2x1ZGluZyBjb250cm9sIGFuZCBvcHRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBDaGVja2JveFJhZGlvSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcbiAgc3RhdGVzID0gQ29tcG9uZW50U3RhdGVzO1xuXG4gIG5nT25Jbml0KCkge31cblxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4gICAgLy8gaW9uLXJhZGlvLWdyb3VwIGNvbiBhbGxvd0VtcHR5U2VsZWN0aW9uOiByZS1jbGlja2VhciBsYSBvcGNpw7NuIGFjdGl2YSBsYVxuICAgIC8vIGRlc2VsZWNjaW9uYSAodmFsdWUgPT09IHVuZGVmaW5lZCkg4oaSIG1hcGVhciBhIG51bGwgcGFyYSBsaW1waWFyIGVsIGNvbnRyb2wuXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgdGhpcy5wcm9wcy5jb250cm9sPy5zZXRWYWx1ZSh2YWx1ZSA/PyBudWxsKTtcbiAgfVxufVxuIl19
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import { Component, inject, Input, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { IonChip, IonIcon, IonLabel } from '@ionic/angular/standalone';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { I18nService } from '../../../services/i18n';
|
|
4
5
|
import { PresetService } from '../../../services/presets';
|
|
5
6
|
import { addIcons } from 'ionicons';
|
|
6
7
|
import { close, checkmark } from 'ionicons/icons';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
addIcons({ close, checkmark });
|
|
10
|
+
/**
|
|
11
|
+
* Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
|
|
12
|
+
* namespace `ChipGroup`. Cubre el aria-label del botón eliminar.
|
|
13
|
+
*/
|
|
14
|
+
const CHIP_GROUP_I18N = {
|
|
15
|
+
es: { remove: 'Eliminar {label}' },
|
|
16
|
+
en: { remove: 'Remove {label}' },
|
|
17
|
+
};
|
|
9
18
|
/**
|
|
10
19
|
* val-chip-group
|
|
11
20
|
*
|
|
@@ -34,15 +43,30 @@ addIcons({ close, checkmark });
|
|
|
34
43
|
export class ChipGroupComponent {
|
|
35
44
|
constructor() {
|
|
36
45
|
this.presets = inject(PresetService);
|
|
46
|
+
this.i18n = inject(I18nService);
|
|
37
47
|
this.props = {};
|
|
38
48
|
this.resolvedProps = {};
|
|
39
49
|
this.selectionChange = new EventEmitter();
|
|
40
50
|
this.chipRemove = new EventEmitter();
|
|
41
51
|
this.chipClick = new EventEmitter();
|
|
52
|
+
if (!this.i18n.hasNamespace('ChipGroup')) {
|
|
53
|
+
this.i18n.registerContent('ChipGroup', CHIP_GROUP_I18N);
|
|
54
|
+
}
|
|
42
55
|
}
|
|
43
56
|
ngOnInit() {
|
|
44
57
|
this.resolveProps();
|
|
45
58
|
}
|
|
59
|
+
removeLabel(chip) {
|
|
60
|
+
this.i18n.lang();
|
|
61
|
+
return this.i18n.t('remove', 'ChipGroup', { label: this.getChipLabel(chip) });
|
|
62
|
+
}
|
|
63
|
+
/** Activación de chip selectable por teclado (Enter/Space). */
|
|
64
|
+
onChipKey(event, chip) {
|
|
65
|
+
if (!this.resolvedProps.selectable)
|
|
66
|
+
return;
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
this.onChipClick(chip);
|
|
69
|
+
}
|
|
46
70
|
ngOnChanges(changes) {
|
|
47
71
|
if (changes['preset'] || changes['props']) {
|
|
48
72
|
this.resolveProps();
|
|
@@ -110,7 +134,12 @@ export class ChipGroupComponent {
|
|
|
110
134
|
[color]="getChipColor(chip)"
|
|
111
135
|
[outline]="resolvedProps.outline && !chip.selected"
|
|
112
136
|
[disabled]="chip.disabled"
|
|
137
|
+
[attr.role]="resolvedProps.selectable ? 'button' : null"
|
|
138
|
+
[attr.tabindex]="resolvedProps.selectable && !chip.disabled ? 0 : null"
|
|
139
|
+
[attr.aria-pressed]="resolvedProps.selectable ? !!chip.selected : null"
|
|
113
140
|
(click)="onChipClick(chip)"
|
|
141
|
+
(keydown.enter)="onChipKey($event, chip)"
|
|
142
|
+
(keydown.space)="onChipKey($event, chip)"
|
|
114
143
|
>
|
|
115
144
|
@if (chip.icon) {
|
|
116
145
|
<ion-icon [name]="chip.icon"></ion-icon>
|
|
@@ -120,12 +149,14 @@ export class ChipGroupComponent {
|
|
|
120
149
|
}
|
|
121
150
|
<ion-label>{{ getChipLabel(chip) }}</ion-label>
|
|
122
151
|
@if (resolvedProps.removable && !chip.disabled) {
|
|
123
|
-
<
|
|
152
|
+
<button type="button" class="remove-button" [attr.aria-label]="removeLabel(chip)" (click)="onRemoveChip($event, chip)">
|
|
153
|
+
<ion-icon name="close" class="remove-icon" aria-hidden="true"></ion-icon>
|
|
154
|
+
</button>
|
|
124
155
|
}
|
|
125
156
|
</ion-chip>
|
|
126
157
|
}
|
|
127
158
|
</div>
|
|
128
|
-
`, isInline: true, styles: [":host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-
|
|
159
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:focus{outline:none}ion-chip:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-button{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:0;border:none;background:none;line-height:0;cursor:pointer;border-radius:50%}ion-chip .remove-button:focus{outline:none}ion-chip .remove-button:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip .remove-icon{opacity:.7;transition:opacity .2s}.remove-button:hover ion-chip .remove-icon{opacity:1}ion-chip ion-label{font-size:.875rem;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
|
|
129
160
|
}
|
|
130
161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipGroupComponent, decorators: [{
|
|
131
162
|
type: Component,
|
|
@@ -136,7 +167,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
136
167
|
[color]="getChipColor(chip)"
|
|
137
168
|
[outline]="resolvedProps.outline && !chip.selected"
|
|
138
169
|
[disabled]="chip.disabled"
|
|
170
|
+
[attr.role]="resolvedProps.selectable ? 'button' : null"
|
|
171
|
+
[attr.tabindex]="resolvedProps.selectable && !chip.disabled ? 0 : null"
|
|
172
|
+
[attr.aria-pressed]="resolvedProps.selectable ? !!chip.selected : null"
|
|
139
173
|
(click)="onChipClick(chip)"
|
|
174
|
+
(keydown.enter)="onChipKey($event, chip)"
|
|
175
|
+
(keydown.space)="onChipKey($event, chip)"
|
|
140
176
|
>
|
|
141
177
|
@if (chip.icon) {
|
|
142
178
|
<ion-icon [name]="chip.icon"></ion-icon>
|
|
@@ -146,13 +182,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
146
182
|
}
|
|
147
183
|
<ion-label>{{ getChipLabel(chip) }}</ion-label>
|
|
148
184
|
@if (resolvedProps.removable && !chip.disabled) {
|
|
149
|
-
<
|
|
185
|
+
<button type="button" class="remove-button" [attr.aria-label]="removeLabel(chip)" (click)="onRemoveChip($event, chip)">
|
|
186
|
+
<ion-icon name="close" class="remove-icon" aria-hidden="true"></ion-icon>
|
|
187
|
+
</button>
|
|
150
188
|
}
|
|
151
189
|
</ion-chip>
|
|
152
190
|
}
|
|
153
191
|
</div>
|
|
154
|
-
`, styles: [":host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-
|
|
155
|
-
}], propDecorators: { preset: [{
|
|
192
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:focus{outline:none}ion-chip:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-button{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:0;border:none;background:none;line-height:0;cursor:pointer;border-radius:50%}ion-chip .remove-button:focus{outline:none}ion-chip .remove-button:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip .remove-icon{opacity:.7;transition:opacity .2s}.remove-button:hover ion-chip .remove-icon{opacity:1}ion-chip ion-label{font-size:.875rem;font-weight:500}\n"] }]
|
|
193
|
+
}], ctorParameters: () => [], propDecorators: { preset: [{
|
|
156
194
|
type: Input
|
|
157
195
|
}], props: [{
|
|
158
196
|
type: Input
|
|
@@ -163,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
163
201
|
}], chipClick: [{
|
|
164
202
|
type: Output
|
|
165
203
|
}] } });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbEQsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7QUErQi9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBdEQvQjtRQXVEVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRy9CLFVBQUssR0FBK0IsRUFBRSxDQUFDO1FBRWhELGtCQUFhLEdBQXNCLEVBQXVCLENBQUM7UUFFakQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUN6RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDakQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0tBMkV4RDtJQXpFQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxX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LEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDeEIsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDekQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FwRlUsa0JBQWtCO21HQUFsQixrQkFBa0IsZ1BBbERuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVCxnNEJBdkJTLFlBQVksK0JBQUUsT0FBTyx1R0FBRSxPQUFPLDJKQUFFLFFBQVE7OzRGQW1EdkMsa0JBQWtCO2tCQXREOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsWUFDekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQ7OEJBK0JRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQ2hpcCwgSW9uSWNvbiwgSW9uTGFiZWwgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBDaGlwR3JvdXBNZXRhZGF0YSwgQ2hpcE1ldGFkYXRhLCBDaGlwU2VsZWN0aW9uRXZlbnQsIENoaXBSZW1vdmVFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjbG9zZSwgY2hlY2ttYXJrIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5hZGRJY29ucyh7IGNsb3NlLCBjaGVja21hcmsgfSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jaGlwLWdyb3VwJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQ2hpcCwgSW9uSWNvbiwgSW9uTGFiZWxdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjaGlwLWdyb3VwXCIgW2NsYXNzLndyYXBdPVwicmVzb2x2ZWRQcm9wcy53cmFwICE9PSBmYWxzZVwiPlxuICAgICAgQGZvciAoY2hpcCBvZiByZXNvbHZlZFByb3BzLmNoaXBzOyB0cmFjayBjaGlwLnZhbHVlKSB7XG4gICAgICAgIDxpb24tY2hpcFxuICAgICAgICAgIFtjb2xvcl09XCJnZXRDaGlwQ29sb3IoY2hpcClcIlxuICAgICAgICAgIFtvdXRsaW5lXT1cInJlc29sdmVkUHJvcHMub3V0bGluZSAmJiAhY2hpcC5zZWxlY3RlZFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNoaXAuZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJvbkNoaXBDbGljayhjaGlwKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGNoaXAuaWNvbikge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImNoaXAuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY2hpcC5zZWxlY3RlZCAmJiByZXNvbHZlZFByb3BzLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrXCIgY2xhc3M9XCJzZWxlY3RlZC1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGlvbi1sYWJlbD57eyBnZXRDaGlwTGFiZWwoY2hpcCkgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMucmVtb3ZhYmxlICYmICFjaGlwLmRpc2FibGVkKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlXCIgY2xhc3M9XCJyZW1vdmUtaWNvblwiIChjbGljayk9XCJvblJlbW92ZUNoaXAoJGV2ZW50LCBjaGlwKVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1jaGlwPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jaGlwLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY2hpcC1ncm91cFxuICpcbiAqIEEgZ3JvdXAgb2YgY2hpcHMgZm9yIHRhZ3MsIGZpbHRlcnMsIG9yIHNlbGVjdGlvbnMuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldDpcbiAqIDx2YWwtY2hpcC1ncm91cCBwcmVzZXQ9XCJ0YWdzXCIgW3Byb3BzXT1cInsgY2hpcHM6IFsuLi5dIH1cIj48L3ZhbC1jaGlwLWdyb3VwPlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHNlbGVjdGFibGVcbiAqIDx2YWwtY2hpcC1ncm91cCBbcHJvcHNdPVwie1xuICogICBjaGlwczogW1xuICogICAgIHsgdmFsdWU6ICdhbmd1bGFyJywgbGFiZWw6ICdBbmd1bGFyJyB9LFxuICogICAgIHsgdmFsdWU6ICdyZWFjdCcsIGxhYmVsOiAnUmVhY3QnIH0sXG4gKiAgICAgeyB2YWx1ZTogJ3Z1ZScsIGxhYmVsOiAnVnVlJyB9XG4gKiAgIF0sXG4gKiAgIHNlbGVjdGFibGU6IHRydWUsXG4gKiAgIG11bHRpcGxlOiB0cnVlXG4gKiB9XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+PC92YWwtY2hpcC1ncm91cD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseVxuICogQGlucHV0IHByb3BzOiBDaGlwR3JvdXBNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGlwIGdyb3VwXG4gKiBAb3V0cHV0IHNlbGVjdGlvbkNoYW5nZTogQ2hpcFNlbGVjdGlvbkV2ZW50IC0gRW1pdHMgd2hlbiBzZWxlY3Rpb24gY2hhbmdlc1xuICogQG91dHB1dCBjaGlwUmVtb3ZlOiBDaGlwUmVtb3ZlRXZlbnQgLSBFbWl0cyB3aGVuIGEgY2hpcCBpcyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBDaGlwR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPENoaXBHcm91cE1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IENoaXBHcm91cE1ldGFkYXRhID0ge30gYXMgQ2hpcEdyb3VwTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hpcFNlbGVjdGlvbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hpcFJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hpcFJlbW92ZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hpcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwTWV0YWRhdGE+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0XG4gICAgICA/ICh0aGlzLnByZXNldHMuZ2V0KCdjaGlwR3JvdXAnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxDaGlwR3JvdXBNZXRhZGF0YT4pXG4gICAgICA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgQ2hpcEdyb3VwTWV0YWRhdGE7XG4gIH1cblxuICBnZXRDaGlwQ29sb3IoY2hpcDogQ2hpcE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICBpZiAoY2hpcC5zZWxlY3RlZCAmJiB0aGlzLnJlc29sdmVkUHJvcHMuc2VsZWN0ZWRDb2xvcikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5zZWxlY3RlZENvbG9yO1xuICAgIH1cbiAgICByZXR1cm4gY2hpcC5jb2xvciB8fCB0aGlzLnJlc29sdmVkUHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknO1xuICB9XG5cbiAgZ2V0Q2hpcExhYmVsKGNoaXA6IENoaXBNZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNoaXAubGFiZWwgfHwgY2hpcC5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBvbkNoaXBDbGljayhjaGlwOiBDaGlwTWV0YWRhdGEpOiB2b2lkIHtcbiAgICBpZiAoY2hpcC5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5jaGlwQ2xpY2suZW1pdChjaGlwKTtcblxuICAgIGlmICghdGhpcy5yZXNvbHZlZFByb3BzLnNlbGVjdGFibGUpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHMubXVsdGlwbGUpIHtcbiAgICAgIGNoaXAuc2VsZWN0ZWQgPSAhY2hpcC5zZWxlY3RlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2luZ2xlIHNlbGVjdGlvbjogZGVzZWxlY3QgYWxsIG90aGVyc1xuICAgICAgdGhpcy5yZXNvbHZlZFByb3BzLmNoaXBzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgYy5zZWxlY3RlZCA9IGMudmFsdWUgPT09IGNoaXAudmFsdWUgPyAhYy5zZWxlY3RlZCA6IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCk7XG4gIH1cblxuICBvblJlbW92ZUNoaXAoZXZlbnQ6IEV2ZW50LCBjaGlwOiBDaGlwTWV0YWRhdGEpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZXNvbHZlZFByb3BzLmNoaXBzLmluZGV4T2YoY2hpcCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRQcm9wcy5jaGlwcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5jaGlwUmVtb3ZlLmVtaXQoe1xuICAgICAgICBjaGlwLFxuICAgICAgICByZW1haW5pbmc6IFsuLi50aGlzLnJlc29sdmVkUHJvcHMuY2hpcHNdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5yZXNvbHZlZFByb3BzLmNoaXBzLmZpbHRlcigoYykgPT4gYy5zZWxlY3RlZCk7XG4gICAgY29uc3QgdmFsdWVzID0gc2VsZWN0ZWQubWFwKChjKSA9PiBjLnZhbHVlKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMucmVzb2x2ZWRQcm9wcy5tdWx0aXBsZSA/IHNlbGVjdGVkIDogc2VsZWN0ZWRbMF0sXG4gICAgICB2YWx1ZXM6IHRoaXMucmVzb2x2ZWRQcm9wcy5tdWx0aXBsZSA/IHZhbHVlcyA6IHZhbHVlc1swXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWxELFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBRS9COzs7R0FHRztBQUNILE1BQU0sZUFBZSxHQUFHO0lBQ3RCLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRTtJQUNsQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUU7Q0FDakMsQ0FBQztBQXNDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QjtRQVpRLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUcxQixVQUFLLEdBQStCLEVBQUUs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TSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDekQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2R1Usa0JBQWtCO21HQUFsQixrQkFBa0IsZ1BBekRuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQsMGhJQTlCUyxZQUFZLCtCQUFFLE9BQU8sdUdBQUUsT0FBTywySkFBRSxRQUFROzs0RkEwRHZDLGtCQUFrQjtrQkE3RDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFlBQ3pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDt3REFnQ1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFJSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25DaGlwLCBJb25JY29uLCBJb25MYWJlbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBDaGlwR3JvdXBNZXRhZGF0YSwgQ2hpcE1ldGFkYXRhLCBDaGlwU2VsZWN0aW9uRXZlbnQsIENoaXBSZW1vdmVFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjbG9zZSwgY2hlY2ttYXJrIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5hZGRJY29ucyh7IGNsb3NlLCBjaGVja21hcmsgfSk7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pIOKAlCBhdXRvLXJlZ2lzdHJhZG9zIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsXG4gKiBuYW1lc3BhY2UgYENoaXBHcm91cGAuIEN1YnJlIGVsIGFyaWEtbGFiZWwgZGVsIGJvdMOzbiBlbGltaW5hci5cbiAqL1xuY29uc3QgQ0hJUF9HUk9VUF9JMThOID0ge1xuICBlczogeyByZW1vdmU6ICdFbGltaW5hciB7bGFiZWx9JyB9LFxuICBlbjogeyByZW1vdmU6ICdSZW1vdmUge2xhYmVsfScgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jaGlwLWdyb3VwJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQ2hpcCwgSW9uSWNvbiwgSW9uTGFiZWxdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjaGlwLWdyb3VwXCIgW2NsYXNzLndyYXBdPVwicmVzb2x2ZWRQcm9wcy53cmFwICE9PSBmYWxzZVwiPlxuICAgICAgQGZvciAoY2hpcCBvZiByZXNvbHZlZFByb3BzLmNoaXBzOyB0cmFjayBjaGlwLnZhbHVlKSB7XG4gICAgICAgIDxpb24tY2hpcFxuICAgICAgICAgIFtjb2xvcl09XCJnZXRDaGlwQ29sb3IoY2hpcClcIlxuICAgICAgICAgIFtvdXRsaW5lXT1cInJlc29sdmVkUHJvcHMub3V0bGluZSAmJiAhY2hpcC5zZWxlY3RlZFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNoaXAuZGlzYWJsZWRcIlxuICAgICAgICAgIFthdHRyLnJvbGVdPVwicmVzb2x2ZWRQcm9wcy5zZWxlY3RhYmxlID8gJ2J1dHRvbicgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJyZXNvbHZlZFByb3BzLnNlbGVjdGFibGUgJiYgIWNoaXAuZGlzYWJsZWQgPyAwIDogbnVsbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cInJlc29sdmVkUHJvcHMuc2VsZWN0YWJsZSA/ICEhY2hpcC5zZWxlY3RlZCA6IG51bGxcIlxuICAgICAgICAgIChjbGljayk9XCJvbkNoaXBDbGljayhjaGlwKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25DaGlwS2V5KCRldmVudCwgY2hpcClcIlxuICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uQ2hpcEtleSgkZXZlbnQsIGNoaXApXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoY2hpcC5pY29uKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiY2hpcC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChjaGlwLnNlbGVjdGVkICYmIHJlc29sdmVkUHJvcHMuc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmtcIiBjbGFzcz1cInNlbGVjdGVkLWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8aW9uLWxhYmVsPnt7IGdldENoaXBMYWJlbChjaGlwKSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5yZW1vdmFibGUgJiYgIWNoaXAuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicmVtb3ZlLWJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlTGFiZWwoY2hpcClcIiAoY2xpY2spPVwib25SZW1vdmVDaGlwKCRldmVudCwgY2hpcClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiIGNsYXNzPVwicmVtb3ZlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1jaGlwPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jaGlwLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY2hpcC1ncm91cFxuICpcbiAqIEEgZ3JvdXAgb2YgY2hpcHMgZm9yIHRhZ3MsIGZpbHRlcnMsIG9yIHNlbGVjdGlvbnMuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldDpcbiAqIDx2YWwtY2hpcC1ncm91cCBwcmVzZXQ9XCJ0YWdzXCIgW3Byb3BzXT1cInsgY2hpcHM6IFsuLi5dIH1cIj48L3ZhbC1jaGlwLWdyb3VwPlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHNlbGVjdGFibGVcbiAqIDx2YWwtY2hpcC1ncm91cCBbcHJvcHNdPVwie1xuICogICBjaGlwczogW1xuICogICAgIHsgdmFsdWU6ICdhbmd1bGFyJywgbGFiZWw6ICdBbmd1bGFyJyB9LFxuICogICAgIHsgdmFsdWU6ICdyZWFjdCcsIGxhYmVsOiAnUmVhY3QnIH0sXG4gKiAgICAgeyB2YWx1ZTogJ3Z1ZScsIGxhYmVsOiAnVnVlJyB9XG4gKiAgIF0sXG4gKiAgIHNlbGVjdGFibGU6IHRydWUsXG4gKiAgIG11bHRpcGxlOiB0cnVlXG4gKiB9XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+PC92YWwtY2hpcC1ncm91cD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseVxuICogQGlucHV0IHByb3BzOiBDaGlwR3JvdXBNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGlwIGdyb3VwXG4gKiBAb3V0cHV0IHNlbGVjdGlvbkNoYW5nZTogQ2hpcFNlbGVjdGlvbkV2ZW50IC0gRW1pdHMgd2hlbiBzZWxlY3Rpb24gY2hhbmdlc1xuICogQG91dHB1dCBjaGlwUmVtb3ZlOiBDaGlwUmVtb3ZlRXZlbnQgLSBFbWl0cyB3aGVuIGEgY2hpcCBpcyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBDaGlwR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPENoaXBHcm91cE1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IENoaXBHcm91cE1ldGFkYXRhID0ge30gYXMgQ2hpcEdyb3VwTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hpcFNlbGVjdGlvbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hpcFJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hpcFJlbW92ZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hpcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwTWV0YWRhdGE+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKCdDaGlwR3JvdXAnKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudCgnQ2hpcEdyb3VwJywgQ0hJUF9HUk9VUF9JMThOKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgcmVtb3ZlTGFiZWwoY2hpcDogQ2hpcE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgncmVtb3ZlJywgJ0NoaXBHcm91cCcsIHsgbGFiZWw6IHRoaXMuZ2V0Q2hpcExhYmVsKGNoaXApIH0pO1xuICB9XG5cbiAgLyoqIEFjdGl2YWNpw7NuIGRlIGNoaXAgc2VsZWN0YWJsZSBwb3IgdGVjbGFkbyAoRW50ZXIvU3BhY2UpLiAqL1xuICBvbkNoaXBLZXkoZXZlbnQ6IEV2ZW50LCBjaGlwOiBDaGlwTWV0YWRhdGEpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzb2x2ZWRQcm9wcy5zZWxlY3RhYmxlKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm9uQ2hpcENsaWNrKGNoaXApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXRcbiAgICAgID8gKHRoaXMucHJlc2V0cy5nZXQoJ2NoaXBHcm91cCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPENoaXBHcm91cE1ldGFkYXRhPilcbiAgICAgIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICAuLi5wcmVzZXRQcm9wcyxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgfSBhcyBDaGlwR3JvdXBNZXRhZGF0YTtcbiAgfVxuXG4gIGdldENoaXBDb2xvcihjaGlwOiBDaGlwTWV0YWRhdGEpOiBzdHJpbmcge1xuICAgIGlmIChjaGlwLnNlbGVjdGVkICYmIHRoaXMucmVzb2x2ZWRQcm9wcy5zZWxlY3RlZENvbG9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzLnNlbGVjdGVkQ29sb3I7XG4gICAgfVxuICAgIHJldHVybiBjaGlwLmNvbG9yIHx8IHRoaXMucmVzb2x2ZWRQcm9wcy5jb2xvciB8fCAncHJpbWFyeSc7XG4gIH1cblxuICBnZXRDaGlwTGFiZWwoY2hpcDogQ2hpcE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2hpcC5sYWJlbCB8fCBjaGlwLmNvbnRlbnRGYWxsYmFjayB8fCAnJztcbiAgfVxuXG4gIG9uQ2hpcENsaWNrKGNoaXA6IENoaXBNZXRhZGF0YSk6IHZvaWQge1xuICAgIGlmIChjaGlwLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLmNoaXBDbGljay5lbWl0KGNoaXApO1xuXG4gICAgaWYgKCF0aGlzLnJlc29sdmVkUHJvcHMuc2VsZWN0YWJsZSkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5tdWx0aXBsZSkge1xuICAgICAgY2hpcC5zZWxlY3RlZCA9ICFjaGlwLnNlbGVjdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTaW5nbGUgc2VsZWN0aW9uOiBkZXNlbGVjdCBhbGwgb3RoZXJzXG4gICAgICB0aGlzLnJlc29sdmVkUHJvcHMuY2hpcHMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICBjLnNlbGVjdGVkID0gYy52YWx1ZSA9PT0gY2hpcC52YWx1ZSA/ICFjLnNlbGVjdGVkIDogZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIG9uUmVtb3ZlQ2hpcChldmVudDogRXZlbnQsIGNoaXA6IENoaXBNZXRhZGF0YSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnJlc29sdmVkUHJvcHMuY2hpcHMuaW5kZXhPZihjaGlwKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5yZXNvbHZlZFByb3BzLmNoaXBzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLmNoaXBSZW1vdmUuZW1pdCh7XG4gICAgICAgIGNoaXAsXG4gICAgICAgIHJlbWFpbmluZzogWy4uLnRoaXMucmVzb2x2ZWRQcm9wcy5jaGlwc10sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnJlc29sdmVkUHJvcHMuY2hpcHMuZmlsdGVyKChjKSA9PiBjLnNlbGVjdGVkKTtcbiAgICBjb25zdCB2YWx1ZXMgPSBzZWxlY3RlZC5tYXAoKGMpID0+IGMudmFsdWUpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICBzZWxlY3RlZDogdGhpcy5yZXNvbHZlZFByb3BzLm11bHRpcGxlID8gc2VsZWN0ZWQgOiBzZWxlY3RlZFswXSxcbiAgICAgIHZhbHVlczogdGhpcy5yZXNvbHZlZFByb3BzLm11bHRpcGxlID8gdmFsdWVzIDogdmFsdWVzWzBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|