valtech-components 2.0.718 → 2.0.720
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/molecules/action-card/action-card.component.mjs +15 -40
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +8 -10
- package/esm2022/lib/services/auth/auth.service.mjs +34 -4
- package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +25 -11
- package/esm2022/lib/services/confirmation-dialog/types.mjs +1 -1
- package/esm2022/lib/services/i18n/default-content.mjs +7 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +262 -240
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/action-card/action-card.component.d.ts +3 -3
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +2 -2
- package/lib/services/auth/auth.service.d.ts +24 -2
- package/lib/services/confirmation-dialog/types.d.ts +2 -2
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/components/styles/alert.scss +122 -0
- package/src/lib/components/styles/overrides.scss +1 -0
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, computed, EventEmitter, inject, input, Output
|
|
2
|
+
import { Component, computed, EventEmitter, inject, input, Output } from '@angular/core';
|
|
3
3
|
import { RouterLink } from '@angular/router';
|
|
4
4
|
import { IonIcon, IonRippleEffect } from '@ionic/angular/standalone';
|
|
5
5
|
import { addIcons } from 'ionicons';
|
|
6
6
|
import { chevronForwardOutline } from 'ionicons/icons';
|
|
7
7
|
import { I18nService } from '../../../services/i18n';
|
|
8
8
|
import { NavigationService } from '../../../services/navigation';
|
|
9
|
-
import { ACTION_CARD_DEFAULTS
|
|
9
|
+
import { ACTION_CARD_DEFAULTS } from './types';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
addIcons({ chevronForwardOutline });
|
|
12
|
-
const IONIC_COLORS = [
|
|
13
|
-
'primary', 'secondary', 'tertiary', 'success',
|
|
14
|
-
'warning', 'danger', 'light', 'medium', 'dark'
|
|
15
|
-
];
|
|
12
|
+
const IONIC_COLORS = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
16
13
|
/**
|
|
17
14
|
* val-action-card
|
|
18
15
|
*
|
|
@@ -27,7 +24,7 @@ const IONIC_COLORS = [
|
|
|
27
24
|
* title: 'Settings',
|
|
28
25
|
* description: 'Manage your preferences'
|
|
29
26
|
* }"
|
|
30
|
-
* (
|
|
27
|
+
* (onClick)="onCardClick($event)"
|
|
31
28
|
* />
|
|
32
29
|
* ```
|
|
33
30
|
*
|
|
@@ -63,7 +60,7 @@ export class ActionCardComponent {
|
|
|
63
60
|
/** Component configuration */
|
|
64
61
|
this.props = input({});
|
|
65
62
|
/** Event emitted when card is clicked */
|
|
66
|
-
this.
|
|
63
|
+
this.onClick = new EventEmitter();
|
|
67
64
|
/** Merged configuration with defaults */
|
|
68
65
|
this.config = computed(() => ({
|
|
69
66
|
...ACTION_CARD_DEFAULTS,
|
|
@@ -127,7 +124,7 @@ export class ActionCardComponent {
|
|
|
127
124
|
return;
|
|
128
125
|
}
|
|
129
126
|
// Emit click event
|
|
130
|
-
this.
|
|
127
|
+
this.onClick.emit({
|
|
131
128
|
token: cfg.token,
|
|
132
129
|
navigated: !!cfg.routerLink || !!cfg.href,
|
|
133
130
|
});
|
|
@@ -137,7 +134,7 @@ export class ActionCardComponent {
|
|
|
137
134
|
}
|
|
138
135
|
}
|
|
139
136
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ActionCardComponent, isStandalone: true, selector: "val-action-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: {
|
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ActionCardComponent, isStandalone: true, selector: "val-action-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
141
138
|
<article
|
|
142
139
|
class="action-card"
|
|
143
140
|
[class.action-card--small]="config().size === 'small'"
|
|
@@ -169,11 +166,7 @@ export class ActionCardComponent {
|
|
|
169
166
|
}
|
|
170
167
|
|
|
171
168
|
<!-- Icon Container -->
|
|
172
|
-
<div
|
|
173
|
-
class="action-card__icon"
|
|
174
|
-
[style.color]="getIconColor()"
|
|
175
|
-
[style.background-color]="getIconBackgroundColor()"
|
|
176
|
-
>
|
|
169
|
+
<div class="action-card__icon" [style.color]="getIconColor()" [style.background-color]="getIconBackgroundColor()">
|
|
177
170
|
@if (config().icon?.ionicon) {
|
|
178
171
|
<ion-icon [name]="config().icon!.ionicon!"></ion-icon>
|
|
179
172
|
} @else if (config().icon?.svgPath) {
|
|
@@ -188,11 +181,7 @@ export class ActionCardComponent {
|
|
|
188
181
|
<path [attr.d]="config().icon!.svgPath" />
|
|
189
182
|
</svg>
|
|
190
183
|
} @else if (config().icon?.imageUrl) {
|
|
191
|
-
<img
|
|
192
|
-
[src]="config().icon!.imageUrl"
|
|
193
|
-
[alt]="getTitle()"
|
|
194
|
-
class="action-card__icon-image"
|
|
195
|
-
/>
|
|
184
|
+
<img [src]="config().icon!.imageUrl" [alt]="getTitle()" class="action-card__icon-image" />
|
|
196
185
|
}
|
|
197
186
|
</div>
|
|
198
187
|
|
|
@@ -206,10 +195,7 @@ export class ActionCardComponent {
|
|
|
206
195
|
|
|
207
196
|
<!-- Chevron (optional) -->
|
|
208
197
|
@if (config().showChevron && !config().disabled) {
|
|
209
|
-
<ion-icon
|
|
210
|
-
name="chevron-forward-outline"
|
|
211
|
-
class="action-card__chevron"
|
|
212
|
-
></ion-icon>
|
|
198
|
+
<ion-icon name="chevron-forward-outline" class="action-card__chevron"></ion-icon>
|
|
213
199
|
}
|
|
214
200
|
</article>
|
|
215
201
|
`, isInline: true, styles: [":host{display:block}.action-card{position:relative;display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--card-bg, var(--ion-card-background, var(--ion-background-color)));border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--ion-color-primary)}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:18px;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:24px;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:28px;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--bordered{border:1px solid var(--card-border-color, var(--ion-color-light-shade))}.action-card--shadowed{box-shadow:0 2px 8px #00000014}.action-card--clickable:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.action-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.action-card--clickable:active{transform:translateY(0)}.action-card--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.action-card__badge{position:absolute;top:8px;right:8px;padding:2px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;z-index:1}.action-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.action-card__icon ion-icon{font-size:inherit}.action-card__icon svg{display:block}.action-card__icon-image{width:100%;height:100%;object-fit:cover;border-radius:8px}.action-card__content{flex:1;min-width:0}.action-card__title{margin:0 0 .25rem;font-weight:600;color:var(--ion-text-color);line-height:1.3}.action-card__description{margin:0;color:var(--ion-color-medium);line-height:1.4}.action-card__chevron{flex-shrink:0;font-size:1.25rem;color:var(--ion-color-medium);transition:transform .2s ease}.action-card--clickable:hover .action-card__chevron{transform:translate(4px)}@media (prefers-color-scheme: dark){.action-card--shadowed{box-shadow:0 2px 8px #0000004d}.action-card--clickable:hover{box-shadow:0 4px 16px #0006}}:host-context(.dark) .action-card--shadowed,:host-context(body.dark) .action-card--shadowed,:host-context([data-theme=dark]) .action-card--shadowed{box-shadow:0 2px 8px #0000004d}:host-context(.dark) .action-card--clickable:hover,:host-context(body.dark) .action-card--clickable:hover,:host-context([data-theme=dark]) .action-card--clickable:hover{box-shadow:0 4px 16px #0006}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
|
|
@@ -248,11 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
248
234
|
}
|
|
249
235
|
|
|
250
236
|
<!-- Icon Container -->
|
|
251
|
-
<div
|
|
252
|
-
class="action-card__icon"
|
|
253
|
-
[style.color]="getIconColor()"
|
|
254
|
-
[style.background-color]="getIconBackgroundColor()"
|
|
255
|
-
>
|
|
237
|
+
<div class="action-card__icon" [style.color]="getIconColor()" [style.background-color]="getIconBackgroundColor()">
|
|
256
238
|
@if (config().icon?.ionicon) {
|
|
257
239
|
<ion-icon [name]="config().icon!.ionicon!"></ion-icon>
|
|
258
240
|
} @else if (config().icon?.svgPath) {
|
|
@@ -267,11 +249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
267
249
|
<path [attr.d]="config().icon!.svgPath" />
|
|
268
250
|
</svg>
|
|
269
251
|
} @else if (config().icon?.imageUrl) {
|
|
270
|
-
<img
|
|
271
|
-
[src]="config().icon!.imageUrl"
|
|
272
|
-
[alt]="getTitle()"
|
|
273
|
-
class="action-card__icon-image"
|
|
274
|
-
/>
|
|
252
|
+
<img [src]="config().icon!.imageUrl" [alt]="getTitle()" class="action-card__icon-image" />
|
|
275
253
|
}
|
|
276
254
|
</div>
|
|
277
255
|
|
|
@@ -285,14 +263,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
285
263
|
|
|
286
264
|
<!-- Chevron (optional) -->
|
|
287
265
|
@if (config().showChevron && !config().disabled) {
|
|
288
|
-
<ion-icon
|
|
289
|
-
name="chevron-forward-outline"
|
|
290
|
-
class="action-card__chevron"
|
|
291
|
-
></ion-icon>
|
|
266
|
+
<ion-icon name="chevron-forward-outline" class="action-card__chevron"></ion-icon>
|
|
292
267
|
}
|
|
293
268
|
</article>
|
|
294
269
|
`, styles: [":host{display:block}.action-card{position:relative;display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--card-bg, var(--ion-card-background, var(--ion-background-color)));border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--ion-color-primary)}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:18px;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:24px;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:28px;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--bordered{border:1px solid var(--card-border-color, var(--ion-color-light-shade))}.action-card--shadowed{box-shadow:0 2px 8px #00000014}.action-card--clickable:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.action-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.action-card--clickable:active{transform:translateY(0)}.action-card--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.action-card__badge{position:absolute;top:8px;right:8px;padding:2px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;z-index:1}.action-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.action-card__icon ion-icon{font-size:inherit}.action-card__icon svg{display:block}.action-card__icon-image{width:100%;height:100%;object-fit:cover;border-radius:8px}.action-card__content{flex:1;min-width:0}.action-card__title{margin:0 0 .25rem;font-weight:600;color:var(--ion-text-color);line-height:1.3}.action-card__description{margin:0;color:var(--ion-color-medium);line-height:1.4}.action-card__chevron{flex-shrink:0;font-size:1.25rem;color:var(--ion-color-medium);transition:transform .2s ease}.action-card--clickable:hover .action-card__chevron{transform:translate(4px)}@media (prefers-color-scheme: dark){.action-card--shadowed{box-shadow:0 2px 8px #0000004d}.action-card--clickable:hover{box-shadow:0 4px 16px #0006}}:host-context(.dark) .action-card--shadowed,:host-context(body.dark) .action-card--shadowed,:host-context([data-theme=dark]) .action-card--shadowed{box-shadow:0 2px 8px #0000004d}:host-context(.dark) .action-card--clickable:hover,:host-context(body.dark) .action-card--clickable:hover,:host-context([data-theme=dark]) .action-card--clickable:hover{box-shadow:0 4px 16px #0006}\n"] }]
|
|
295
|
-
}], propDecorators: {
|
|
270
|
+
}], propDecorators: { onClick: [{
|
|
296
271
|
type: Output
|
|
297
272
|
}] } });
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBR0wsb0JBQW9CLEdBQ3JCLE1BQU0sU0FBUyxDQUFDOztBQUVqQixRQUFRLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFcEMsTUFBTSxZQUFZLEdBQUc7SUFDbkIsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUztJQUM3QyxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTTtDQUMvQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDRztBQW1GSCxNQUFNLE9BQU8sbUJBQW1CO0lBbEZoQztRQW1GVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvQyw4QkFBOEI7UUFDckIsVUFBSyxHQUFHLEtBQUssQ0FBOEIsRUFBRSxDQUFDLENBQUM7UUFFeEQseUNBQXlDO1FBQy9CLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUUvRCx5Q0FBeUM7UUFDekMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLEdBQUcsb0JBQW9CO1lBQ3ZCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUNoQixDQUFDLENBQUMsQ0FBQztLQThFTDtJQTVFQyxrQ0FBa0M7SUFDbEMsUUFBUTtRQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7WUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGNBQWM7UUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsYUFBYSxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsd0NBQXdDO1lBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlDQUFpQztJQUN6QixZQUFZLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3hCLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sbUJBQW1CLEtBQUssR0FBRyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxlQUF5QixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQXFCLENBQUMsSUFBSSw4QkFBOEIsQ0FBQztJQUNsRyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQWUsQ0FBQyxJQUFJLDBCQUEwQixDQUFDO0lBQzlGLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUM7UUFDL0MsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLHlDQUF5QyxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQWUsQ0FBQyxJQUFJLE9BQU8sQ0FBQztJQUM1RSxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLGVBQXlCLENBQUMsSUFBSSwwQkFBMEIsQ0FBQztJQUN6RyxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFMUIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNsQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSTtTQUMxQyxDQUFDLENBQUM7UUFFSCxzQkFBc0I7UUFDdEIsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7K0dBM0ZVLG1CQUFtQjttR0FBbkIsbUJBQW1CLG9QQTlFcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJFVCxtc0dBNUVTLFlBQVksK0JBQUUsVUFBVSxvT0FBRSxPQUFPLDJKQUFFLGVBQWU7OzRGQStFakQsbUJBQW1CO2tCQWxGL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsWUFDbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJFVDs4QkFXUyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Gb3J3YXJkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ2FyZE1ldGFkYXRhLFxuICBBY3Rpb25DYXJkQ2xpY2tFdmVudCxcbiAgQUNUSU9OX0NBUkRfREVGQVVMVFMsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5hZGRJY29ucyh7IGNoZXZyb25Gb3J3YXJkT3V0bGluZSB9KTtcblxuY29uc3QgSU9OSUNfQ09MT1JTID0gW1xuICAncHJpbWFyeScsICdzZWNvbmRhcnknLCAndGVydGlhcnknLCAnc3VjY2VzcycsXG4gICd3YXJuaW5nJywgJ2RhbmdlcicsICdsaWdodCcsICdtZWRpdW0nLCAnZGFyaydcbl07XG5cbi8qKlxuICogdmFsLWFjdGlvbi1jYXJkXG4gKlxuICogQSBjbGlja2FibGUgY2FyZCBjb21wb25lbnQgd2l0aCBpY29uLCB0aXRsZSwgZGVzY3JpcHRpb24sIGFuZCBvcHRpb25hbCBiYWRnZS5cbiAqIFN1cHBvcnRzIG11bHRpcGxlIGljb24gZm9ybWF0czogSW9uaWNvbnMsIFNWRyBwYXRocywgYW5kIGltYWdlIFVSTHMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2Ugd2l0aCBJb25pY29uXG4gKiBgYGBodG1sXG4gKiA8dmFsLWFjdGlvbi1jYXJkXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaWNvbjogeyBpb25pY29uOiAnc2V0dGluZ3Mtb3V0bGluZScgfSxcbiAqICAgICB0aXRsZTogJ1NldHRpbmdzJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ01hbmFnZSB5b3VyIHByZWZlcmVuY2VzJ1xuICogICB9XCJcbiAqICAgKGNhcmRDbGljayk9XCJvbkNhcmRDbGljaygkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHJvdXRlckxpbmsgbmF2aWdhdGlvblxuICogYGBgaHRtbFxuICogPHZhbC1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgaW9uaWNvbjogJ3BlcnNvbi1vdXRsaW5lJywgY29sb3I6ICdwcmltYXJ5JyB9LFxuICogICAgIHRpdGxlOiAnUHJvZmlsZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdWaWV3IGFuZCBlZGl0IHlvdXIgcHJvZmlsZScsXG4gKiAgICAgcm91dGVyTGluazogJy9zZXR0aW5ncy9wcm9maWxlJyxcbiAqICAgICBzaG93Q2hldnJvbjogdHJ1ZVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGN1c3RvbSBTVkcgaWNvblxuICogYGBgaHRtbFxuICogPHZhbC1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgc3ZnUGF0aDogJ00xMiAyTDIgN2wxMCA1IDEwLTUtMTAtNXpNMiAxN2wxMCA1IDEwLTVNMiAxMmwxMCA1IDEwLTUnIH0sXG4gKiAgICAgdGl0bGU6ICdDdXN0b20gRmVhdHVyZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdBIGZlYXR1cmUgd2l0aCBjdXN0b20gU1ZHIGljb24nLFxuICogICAgIGJhZGdlOiB7IHRleHQ6ICdORVcnLCBjb2xvcjogJ2xpZ2h0JywgYmFja2dyb3VuZENvbG9yOiAncHJpbWFyeScgfVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFjdGlvbi1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTGluaywgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXJ0aWNsZVxuICAgICAgY2xhc3M9XCJhY3Rpb24tY2FyZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLXNtYWxsXT1cImNvbmZpZygpLnNpemUgPT09ICdzbWFsbCdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1tZWRpdW1dPVwiY29uZmlnKCkuc2l6ZSA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1sYXJnZV09XCJjb25maWcoKS5zaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tYm9yZGVyZWRdPVwiY29uZmlnKCkuYm9yZGVyZWRcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1zaGFkb3dlZF09XCJjb25maWcoKS5zaGFkb3dlZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLWRpc2FibGVkXT1cImNvbmZpZygpLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tY2xpY2thYmxlXT1cIiFjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgICBbc3R5bGUuLS1jYXJkLWJnXT1cImdldEJhY2tncm91bmRDb2xvcigpXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtYm9yZGVyLWNvbG9yXT1cImdldEJvcmRlckNvbG9yKClcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiY29uZmlnKCkuZGlzYWJsZWQgPyBudWxsIDogY29uZmlnKCkucm91dGVyTGlua1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJjb25maWcoKS5kaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICBbYXR0ci5yb2xlXT1cIididXR0b24nXCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiY29uZmlnKCkuZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuXG4gICAgICA8IS0tIEJhZGdlICh0b3AtcmlnaHQgY29ybmVyKSAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuYmFkZ2UpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImFjdGlvbi1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldEJhZGdlQ29sb3IoKVwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb25maWcoKS5iYWRnZSEudGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gSWNvbiBDb250YWluZXIgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2ljb25cIlxuICAgICAgICBbc3R5bGUuY29sb3JdPVwiZ2V0SWNvbkNvbG9yKClcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRJY29uQmFja2dyb3VuZENvbG9yKClcIlxuICAgICAgPlxuICAgICAgICBAaWYgKGNvbmZpZygpLmljb24/Lmlvbmljb24pIHtcbiAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiY29uZmlnKCkuaWNvbiEuaW9uaWNvbiFcIj48L2lvbi1pY29uPlxuICAgICAgICB9IEBlbHNlIGlmIChjb25maWcoKS5pY29uPy5zdmdQYXRoKSB7XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiY29uZmlnKCkuaWNvbiEuc3ZnUGF0aFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIH0gQGVsc2UgaWYgKGNvbmZpZygpLmljb24/LmltYWdlVXJsKSB7XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJjb25maWcoKS5pY29uIS5pbWFnZVVybFwiXG4gICAgICAgICAgICBbYWx0XT1cImdldFRpdGxlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tY2FyZF9faWNvbi1pbWFnZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tY2FyZF9fY29udGVudFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJhY3Rpb24tY2FyZF9fdGl0bGVcIj57eyBnZXRUaXRsZSgpIH19PC9oMz5cbiAgICAgICAgQGlmIChnZXREZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJhY3Rpb24tY2FyZF9fZGVzY3JpcHRpb25cIj57eyBnZXREZXNjcmlwdGlvbigpIH19PC9wPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDaGV2cm9uIChvcHRpb25hbCkgLS0+XG4gICAgICBAaWYgKGNvbmZpZygpLnNob3dDaGV2cm9uICYmICFjb25maWcoKS5kaXNhYmxlZCkge1xuICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICBuYW1lPVwiY2hldnJvbi1mb3J3YXJkLW91dGxpbmVcIlxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2NoZXZyb25cIlxuICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgIH1cbiAgICA8L2FydGljbGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNhcmRDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PFBhcnRpYWw8QWN0aW9uQ2FyZE1ldGFkYXRhPj4oe30pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY2FyZCBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBjYXJkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkNhcmRDbGlja0V2ZW50PigpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQUNUSU9OX0NBUkRfREVGQVVMVFMsXG4gICAgLi4udGhpcy5wcm9wcygpLFxuICB9KSk7XG5cbiAgLyoqIEdldCB0aXRsZSB3aXRoIGkxOG4gc3VwcG9ydCAqL1xuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKGNmZy5pMThuTmFtZXNwYWNlICYmIGNmZy50aXRsZUtleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGNmZy50aXRsZUtleSwgY2ZnLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2ZnLnRpdGxlIHx8ICcnO1xuICB9XG5cbiAgLyoqIEdldCBkZXNjcmlwdGlvbiB3aXRoIGkxOG4gc3VwcG9ydCAqL1xuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKGNmZy5pMThuTmFtZXNwYWNlICYmIGNmZy5kZXNjcmlwdGlvbktleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGNmZy5kZXNjcmlwdGlvbktleSwgY2ZnLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2ZnLmRlc2NyaXB0aW9uIHx8ICcnO1xuICB9XG5cbiAgLyoqIFJlc29sdmUgY29sb3IgdG8gQ1NTIHZhbHVlICovXG4gIHByaXZhdGUgcmVzb2x2ZUNvbG9yKGNvbG9yPzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFjb2xvcikgcmV0dXJuIG51bGw7XG4gICAgaWYgKElPTklDX0NPTE9SUy5pbmNsdWRlcyhjb2xvcikpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Y29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxuXG4gIGdldEJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5iYWNrZ3JvdW5kQ29sb3IgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldEJvcmRlckNvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVDb2xvcih0aGlzLmNvbmZpZygpLmJvcmRlckNvbG9yIGFzIHN0cmluZykgfHwgJ3ZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSknO1xuICB9XG5cbiAgZ2V0SWNvbkNvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVDb2xvcih0aGlzLmNvbmZpZygpLmljb24/LmNvbG9yIGFzIHN0cmluZykgfHwgJ3ZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSc7XG4gIH1cblxuICBnZXRJY29uQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGJnID0gdGhpcy5jb25maWcoKS5pY29uPy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgaWYgKCFiZykgcmV0dXJuICdyZ2JhKHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXJnYiksIDAuMSknO1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVDb2xvcihiZyBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0QmFkZ2VDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5iYWRnZT8uY29sb3IgYXMgc3RyaW5nKSB8fCAnd2hpdGUnO1xuICB9XG5cbiAgZ2V0QmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFkZ2U/LmJhY2tncm91bmRDb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBjYXJkIGNsaWNrICovXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5jb25maWcoKTtcblxuICAgIGlmIChjZmcuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFbWl0IGNsaWNrIGV2ZW50XG4gICAgdGhpcy5jYXJkQ2xpY2suZW1pdCh7XG4gICAgICB0b2tlbjogY2ZnLnRva2VuLFxuICAgICAgbmF2aWdhdGVkOiAhIWNmZy5yb3V0ZXJMaW5rIHx8ICEhY2ZnLmhyZWYsXG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGUgZXh0ZXJuYWwgVVJMXG4gICAgaWYgKGNmZy5ocmVmKSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb24ub3BlbkluTmV3VGFiKGNmZy5ocmVmKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQTRDLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV6RixRQUFRLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFcEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXJIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUF3RUgsTUFBTSxPQUFPLG1CQUFtQjtJQXZFaEM7UUF3RVUsU0FBSSxHQUFHLE1B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UyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvblJpcHBsZUVmZmVjdCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSwgQWN0aW9uQ2FyZENsaWNrRXZlbnQsIEFDVElPTl9DQVJEX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHsgY2hldnJvbkZvcndhcmRPdXRsaW5lIH0pO1xuXG5jb25zdCBJT05JQ19DT0xPUlMgPSBbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ3RlcnRpYXJ5JywgJ3N1Y2Nlc3MnLCAnd2FybmluZycsICdkYW5nZXInLCAnbGlnaHQnLCAnbWVkaXVtJywgJ2RhcmsnXTtcblxuLyoqXG4gKiB2YWwtYWN0aW9uLWNhcmRcbiAqXG4gKiBBIGNsaWNrYWJsZSBjYXJkIGNvbXBvbmVudCB3aXRoIGljb24sIHRpdGxlLCBkZXNjcmlwdGlvbiwgYW5kIG9wdGlvbmFsIGJhZGdlLlxuICogU3VwcG9ydHMgbXVsdGlwbGUgaWNvbiBmb3JtYXRzOiBJb25pY29ucywgU1ZHIHBhdGhzLCBhbmQgaW1hZ2UgVVJMcy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZSB3aXRoIElvbmljb25cbiAqIGBgYGh0bWxcbiAqIDx2YWwtYWN0aW9uLWNhcmRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBpY29uOiB7IGlvbmljb246ICdzZXR0aW5ncy1vdXRsaW5lJyB9LFxuICogICAgIHRpdGxlOiAnU2V0dGluZ3MnLFxuICogICAgIGRlc2NyaXB0aW9uOiAnTWFuYWdlIHlvdXIgcHJlZmVyZW5jZXMnXG4gKiAgIH1cIlxuICogICAob25DbGljayk9XCJvbkNhcmRDbGljaygkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHJvdXRlckxpbmsgbmF2aWdhdGlvblxuICogYGBgaHRtbFxuICogPHZhbC1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgaW9uaWNvbjogJ3BlcnNvbi1vdXRsaW5lJywgY29sb3I6ICdwcmltYXJ5JyB9LFxuICogICAgIHRpdGxlOiAnUHJvZmlsZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdWaWV3IGFuZCBlZGl0IHlvdXIgcHJvZmlsZScsXG4gKiAgICAgcm91dGVyTGluazogJy9zZXR0aW5ncy9wcm9maWxlJyxcbiAqICAgICBzaG93Q2hldnJvbjogdHJ1ZVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGN1c3RvbSBTVkcgaWNvblxuICogYGBgaHRtbFxuICogPHZhbC1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgc3ZnUGF0aDogJ00xMiAyTDIgN2wxMCA1IDEwLTUtMTAtNXpNMiAxN2wxMCA1IDEwLTVNMiAxMmwxMCA1IDEwLTUnIH0sXG4gKiAgICAgdGl0bGU6ICdDdXN0b20gRmVhdHVyZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdBIGZlYXR1cmUgd2l0aCBjdXN0b20gU1ZHIGljb24nLFxuICogICAgIGJhZGdlOiB7IHRleHQ6ICdORVcnLCBjb2xvcjogJ2xpZ2h0JywgYmFja2dyb3VuZENvbG9yOiAncHJpbWFyeScgfVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFjdGlvbi1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTGluaywgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXJ0aWNsZVxuICAgICAgY2xhc3M9XCJhY3Rpb24tY2FyZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLXNtYWxsXT1cImNvbmZpZygpLnNpemUgPT09ICdzbWFsbCdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1tZWRpdW1dPVwiY29uZmlnKCkuc2l6ZSA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1sYXJnZV09XCJjb25maWcoKS5zaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tYm9yZGVyZWRdPVwiY29uZmlnKCkuYm9yZGVyZWRcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1zaGFkb3dlZF09XCJjb25maWcoKS5zaGFkb3dlZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLWRpc2FibGVkXT1cImNvbmZpZygpLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tY2xpY2thYmxlXT1cIiFjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgICBbc3R5bGUuLS1jYXJkLWJnXT1cImdldEJhY2tncm91bmRDb2xvcigpXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtYm9yZGVyLWNvbG9yXT1cImdldEJvcmRlckNvbG9yKClcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiY29uZmlnKCkuZGlzYWJsZWQgPyBudWxsIDogY29uZmlnKCkucm91dGVyTGlua1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJjb25maWcoKS5kaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICBbYXR0ci5yb2xlXT1cIididXR0b24nXCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiY29uZmlnKCkuZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuXG4gICAgICA8IS0tIEJhZGdlICh0b3AtcmlnaHQgY29ybmVyKSAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuYmFkZ2UpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImFjdGlvbi1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldEJhZGdlQ29sb3IoKVwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb25maWcoKS5iYWRnZSEudGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gSWNvbiBDb250YWluZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWNhcmRfX2ljb25cIiBbc3R5bGUuY29sb3JdPVwiZ2V0SWNvbkNvbG9yKClcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRJY29uQmFja2dyb3VuZENvbG9yKClcIj5cbiAgICAgICAgQGlmIChjb25maWcoKS5pY29uPy5pb25pY29uKSB7XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImNvbmZpZygpLmljb24hLmlvbmljb24hXCI+PC9pb24taWNvbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoY29uZmlnKCkuaWNvbj8uc3ZnUGF0aCkge1xuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImNvbmZpZygpLmljb24hLnN2Z1BhdGhcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICB9IEBlbHNlIGlmIChjb25maWcoKS5pY29uPy5pbWFnZVVybCkge1xuICAgICAgICAgIDxpbWcgW3NyY109XCJjb25maWcoKS5pY29uIS5pbWFnZVVybFwiIFthbHRdPVwiZ2V0VGl0bGUoKVwiIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2ljb24taW1hZ2VcIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImFjdGlvbi1jYXJkX190aXRsZVwiPnt7IGdldFRpdGxlKCkgfX08L2gzPlxuICAgICAgICBAaWYgKGdldERlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICA8cCBjbGFzcz1cImFjdGlvbi1jYXJkX19kZXNjcmlwdGlvblwiPnt7IGdldERlc2NyaXB0aW9uKCkgfX08L3A+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIENoZXZyb24gKG9wdGlvbmFsKSAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuc2hvd0NoZXZyb24gJiYgIWNvbmZpZygpLmRpc2FibGVkKSB7XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkLW91dGxpbmVcIiBjbGFzcz1cImFjdGlvbi1jYXJkX19jaGV2cm9uXCI+PC9pb24taWNvbj5cbiAgICAgIH1cbiAgICA8L2FydGljbGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNhcmRDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PFBhcnRpYWw8QWN0aW9uQ2FyZE1ldGFkYXRhPj4oe30pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY2FyZCBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25DYXJkQ2xpY2tFdmVudD4oKTtcblxuICAvKiogTWVyZ2VkIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0cyAqL1xuICBjb25maWcgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIC4uLkFDVElPTl9DQVJEX0RFRkFVTFRTLFxuICAgIC4uLnRoaXMucHJvcHMoKSxcbiAgfSkpO1xuXG4gIC8qKiBHZXQgdGl0bGUgd2l0aCBpMThuIHN1cHBvcnQgKi9cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGlmIChjZmcuaTE4bk5hbWVzcGFjZSAmJiBjZmcudGl0bGVLZXkpIHtcbiAgICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXMgZm9yIHJlYWN0aXZpdHlcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChjZmcudGl0bGVLZXksIGNmZy5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNmZy50aXRsZSB8fCAnJztcbiAgfVxuXG4gIC8qKiBHZXQgZGVzY3JpcHRpb24gd2l0aCBpMThuIHN1cHBvcnQgKi9cbiAgZ2V0RGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGlmIChjZmcuaTE4bk5hbWVzcGFjZSAmJiBjZmcuZGVzY3JpcHRpb25LZXkpIHtcbiAgICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXMgZm9yIHJlYWN0aXZpdHlcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChjZmcuZGVzY3JpcHRpb25LZXksIGNmZy5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNmZy5kZXNjcmlwdGlvbiB8fCAnJztcbiAgfVxuXG4gIC8qKiBSZXNvbHZlIGNvbG9yIHRvIENTUyB2YWx1ZSAqL1xuICBwcml2YXRlIHJlc29sdmVDb2xvcihjb2xvcj86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghY29sb3IpIHJldHVybiBudWxsO1xuICAgIGlmIChJT05JQ19DT0xPUlMuaW5jbHVkZXMoY29sb3IpKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICAgIH1cbiAgICByZXR1cm4gY29sb3I7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFja2dyb3VuZENvbG9yIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRCb3JkZXJDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5ib3JkZXJDb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUpJztcbiAgfVxuXG4gIGdldEljb25Db2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5pY29uPy5jb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICB9XG5cbiAgZ2V0SWNvbkJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBiZyA9IHRoaXMuY29uZmlnKCkuaWNvbj8uYmFja2dyb3VuZENvbG9yO1xuICAgIGlmICghYmcpIHJldHVybiAncmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IpLCAwLjEpJztcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IoYmcgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFkZ2U/LmNvbG9yIGFzIHN0cmluZykgfHwgJ3doaXRlJztcbiAgfVxuXG4gIGdldEJhZGdlQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVDb2xvcih0aGlzLmNvbmZpZygpLmJhZGdlPy5iYWNrZ3JvdW5kQ29sb3IgYXMgc3RyaW5nKSB8fCAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgfVxuXG4gIC8qKiBIYW5kbGUgY2FyZCBjbGljayAqL1xuICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG5cbiAgICBpZiAoY2ZnLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRW1pdCBjbGljayBldmVudFxuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIHRva2VuOiBjZmcudG9rZW4sXG4gICAgICBuYXZpZ2F0ZWQ6ICEhY2ZnLnJvdXRlckxpbmsgfHwgISFjZmcuaHJlZixcbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBleHRlcm5hbCBVUkxcbiAgICBpZiAoY2ZnLmhyZWYpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5vcGVuSW5OZXdUYWIoY2ZnLmhyZWYpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -25,14 +25,14 @@ addIcons({ trendingUp, trendingDown, remove, analytics, people, cash, cart, eye,
|
|
|
25
25
|
*
|
|
26
26
|
* @input preset: string - Name of preset to apply
|
|
27
27
|
* @input props: StatsCardMetadata - Configuration for the stats card
|
|
28
|
-
* @output
|
|
28
|
+
* @output onClick: void - Emits when card is clicked
|
|
29
29
|
*/
|
|
30
30
|
export class StatsCardComponent {
|
|
31
31
|
constructor() {
|
|
32
32
|
this.presets = inject(PresetService);
|
|
33
33
|
this.props = {};
|
|
34
34
|
this.resolvedProps = {};
|
|
35
|
-
this.
|
|
35
|
+
this.onClick = new EventEmitter();
|
|
36
36
|
this.Math = Math;
|
|
37
37
|
}
|
|
38
38
|
ngOnInit() {
|
|
@@ -44,9 +44,7 @@ export class StatsCardComponent {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
resolveProps() {
|
|
47
|
-
const presetProps = this.preset
|
|
48
|
-
? this.presets.get('statsCard', this.preset)
|
|
49
|
-
: {};
|
|
47
|
+
const presetProps = this.preset ? this.presets.get('statsCard', this.preset) : {};
|
|
50
48
|
this.resolvedProps = {
|
|
51
49
|
...presetProps,
|
|
52
50
|
...this.props,
|
|
@@ -78,13 +76,13 @@ export class StatsCardComponent {
|
|
|
78
76
|
return 'remove';
|
|
79
77
|
}
|
|
80
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, isStandalone: true, selector: "val-stats-card", inputs: { preset: "preset", props: "props" }, outputs: {
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, isStandalone: true, selector: "val-stats-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
82
80
|
<ion-card
|
|
83
81
|
class="stats-card"
|
|
84
82
|
[class]="getBackgroundClass()"
|
|
85
83
|
[style.--card-color]="getCardColor()"
|
|
86
84
|
[style.min-height.px]="resolvedProps.minHeight"
|
|
87
|
-
(click)="
|
|
85
|
+
(click)="onClick.emit()"
|
|
88
86
|
>
|
|
89
87
|
<ion-card-content>
|
|
90
88
|
<div class="stats-header">
|
|
@@ -148,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
148
146
|
[class]="getBackgroundClass()"
|
|
149
147
|
[style.--card-color]="getCardColor()"
|
|
150
148
|
[style.min-height.px]="resolvedProps.minHeight"
|
|
151
|
-
(click)="
|
|
149
|
+
(click)="onClick.emit()"
|
|
152
150
|
>
|
|
153
151
|
<ion-card-content>
|
|
154
152
|
<div class="stats-header">
|
|
@@ -207,7 +205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
207
205
|
type: Input
|
|
208
206
|
}], props: [{
|
|
209
207
|
type: Input
|
|
210
|
-
}],
|
|
208
|
+
}], onClick: [{
|
|
211
209
|
type: Output
|
|
212
210
|
}] } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkgsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQXFFaEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQXhGL0I7UUF5RlUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUcvQixVQUFLLEdBQStCLEVBQUUsQ0FBQztRQUVoRCxrQkFBYSxHQUFzQixFQUF1QixDQUFDO1FBRWpELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRS9DLFNBQUksR0FBRyxJQUFJLENBQUM7S0FnRGI7SUE5Q0MsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDN0IsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFnQztZQUM1RSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ08sQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztRQUNwRCxPQUFPLG1CQUFtQixLQUFLLEdBQUcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQztRQUNwRCxPQUFPLGNBQWMsRUFBRSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksU0FBUyxDQUFDO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUV0RCxJQUFJLFNBQVMsS0FBSyxTQUFTO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDcEQsSUFBSSxTQUFTLEtBQUssSUFBSTtZQUFFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNsRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksU0FBUyxDQUFDO1FBQ25FLElBQUksU0FBUyxLQUFLLElBQUk7WUFBRSxPQUFPLGFBQWEsQ0FBQztRQUM3QyxJQUFJLFNBQVMsS0FBSyxNQUFNO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDakQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0F6RFUsa0JBQWtCO21HQUFsQixrQkFBa0Isa0xBcEZuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERULG1xR0E3RFMsWUFBWSwrQkFBRSxPQUFPLHlMQUFFLGNBQWMsK0VBQUUsT0FBTywySkFBRSxlQUFlOzs0RkFxRjlELGtCQUFrQjtrQkF4RjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxZQUNoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERUOzhCQTJCUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQ2FyZCwgSW9uQ2FyZENvbnRlbnQsIElvbkljb24sIElvblNrZWxldG9uVGV4dCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IFN0YXRzQ2FyZE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IHRyZW5kaW5nVXAsIHRyZW5kaW5nRG93biwgcmVtb3ZlLCBhbmFseXRpY3MsIHBlb3BsZSwgY2FzaCwgY2FydCwgZXllLCBoZWFydCwgc3RhciB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuYWRkSWNvbnMoeyB0cmVuZGluZ1VwLCB0cmVuZGluZ0Rvd24sIHJlbW92ZSwgYW5hbHl0aWNzLCBwZW9wbGUsIGNhc2gsIGNhcnQsIGV5ZSwgaGVhcnQsIHN0YXIgfSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zdGF0cy1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQ2FyZCwgSW9uQ2FyZENvbnRlbnQsIElvbkljb24sIElvblNrZWxldG9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1jYXJkXG4gICAgICBjbGFzcz1cInN0YXRzLWNhcmRcIlxuICAgICAgW2NsYXNzXT1cImdldEJhY2tncm91bmRDbGFzcygpXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtY29sb3JdPVwiZ2V0Q2FyZENvbG9yKClcIlxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwicmVzb2x2ZWRQcm9wcy5taW5IZWlnaHRcIlxuICAgICAgKGNsaWNrKT1cImNhcmRDbGljay5lbWl0KClcIlxuICAgID5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0cy10aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmljb24pIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJyZXNvbHZlZFByb3BzLmljb25cIiBjbGFzcz1cInN0YXRzLWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLXZhbHVlXCI+XG4gICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBbYW5pbWF0ZWRdPVwidHJ1ZVwiIHN0eWxlPVwid2lkdGg6IDYwJTsgaGVpZ2h0OiAzMnB4O1wiPjwvaW9uLXNrZWxldG9uLXRleHQ+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMucHJlZml4KSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlZml4XCI+e3sgcmVzb2x2ZWRQcm9wcy5wcmVmaXggfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgcmVzb2x2ZWRQcm9wcy52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5zdWZmaXgpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWZmaXhcIj57eyByZXNvbHZlZFByb3BzLnN1ZmZpeCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy50cmVuZCAmJiAhcmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLXRyZW5kXCIgW2NsYXNzXT1cImdldFRyZW5kQ2xhc3MoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImdldFRyZW5kSWNvbigpXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJlbmQtdmFsdWVcIj57eyBNYXRoLmFicyhyZXNvbHZlZFByb3BzLnRyZW5kLnZhbHVlKSB9fSU8L3NwYW4+XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMudHJlbmQubGFiZWwpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmVuZC1sYWJlbFwiPnt7IHJlc29sdmVkUHJvcHMudHJlbmQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyICYmICFyZXNvbHZlZFByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtZm9vdGVyXCI+e3sgcmVzb2x2ZWRQcm9wcy5mb290ZXIgfX08L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5kZXNjcmlwdGlvbiAmJiAhcmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWRlc2NyaXB0aW9uXCI+e3sgcmVzb2x2ZWRQcm9wcy5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmxvZ28gJiYgIXJlc29sdmVkUHJvcHMubG9hZGluZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy1sb2dvXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5sb2dvLnNyY1wiXG4gICAgICAgICAgICAgIFthbHRdPVwicmVzb2x2ZWRQcm9wcy5sb2dvLmFsdFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cInJlc29sdmVkUHJvcHMubG9nby5tYXhIZWlnaHQgfHwgMzJcIlxuICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnB4XT1cInJlc29sdmVkUHJvcHMubG9nby5tYXhXaWR0aCB8fCAxMjBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgIDwvaW9uLWNhcmQ+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3N0YXRzLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1zdGF0cy1jYXJkXG4gKlxuICogQSBjYXJkIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBzdGF0aXN0aWNzIGFuZCBLUElzLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQ6XG4gKiA8dmFsLXN0YXRzLWNhcmQgcHJlc2V0PVwia3BpXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdVc2VycycsIHZhbHVlOiAxMDAwIH1cIj48L3ZhbC1zdGF0cy1jYXJkPlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiA8dmFsLXN0YXRzLWNhcmQgW3Byb3BzXT1cIntcbiAqICAgdGl0bGU6ICdUb3RhbCBVc2VycycsXG4gKiAgIHZhbHVlOiAxMjUwMCxcbiAqICAgaWNvbjogJ3Blb3BsZScsXG4gKiAgIGNvbG9yOiAncHJpbWFyeSdcbiAqIH1cIj48L3ZhbC1zdGF0cy1jYXJkPlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5XG4gKiBAaW5wdXQgcHJvcHM6IFN0YXRzQ2FyZE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHN0YXRzIGNhcmRcbiAqIEBvdXRwdXQgY2FyZENsaWNrOiB2b2lkIC0gRW1pdHMgd2hlbiBjYXJkIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YXRzQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8U3RhdHNDYXJkTWV0YWRhdGE+ID0ge307XG5cbiAgcmVzb2x2ZWRQcm9wczogU3RhdHNDYXJkTWV0YWRhdGEgPSB7fSBhcyBTdGF0c0NhcmRNZXRhZGF0YTtcblxuICBAT3V0cHV0KCkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIE1hdGggPSBNYXRoO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldFxuICAgICAgPyAodGhpcy5wcmVzZXRzLmdldCgnc3RhdHNDYXJkJywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8U3RhdHNDYXJkTWV0YWRhdGE+KVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIFN0YXRzQ2FyZE1ldGFkYXRhO1xuICB9XG5cbiAgZ2V0Q2FyZENvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnJlc29sdmVkUHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknO1xuICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Y29sb3J9KWA7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiZyA9IHRoaXMucmVzb2x2ZWRQcm9wcy5iYWNrZ3JvdW5kIHx8ICdsaWdodCc7XG4gICAgcmV0dXJuIGBiYWNrZ3JvdW5kLSR7Ymd9YDtcbiAgfVxuXG4gIGdldFRyZW5kQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnJlc29sdmVkUHJvcHMudHJlbmQ/LmRpcmVjdGlvbiB8fCAnbmV1dHJhbCc7XG4gICAgY29uc3QgaW52ZXJ0ID0gdGhpcy5yZXNvbHZlZFByb3BzLnRyZW5kPy5pbnZlcnRDb2xvcnM7XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAnbmV1dHJhbCcpIHJldHVybiAndHJlbmQtbmV1dHJhbCc7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3VwJykgcmV0dXJuIGludmVydCA/ICd0cmVuZC1kb3duJyA6ICd0cmVuZC11cCc7XG4gICAgcmV0dXJuIGludmVydCA/ICd0cmVuZC11cCcgOiAndHJlbmQtZG93bic7XG4gIH1cblxuICBnZXRUcmVuZEljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnJlc29sdmVkUHJvcHMudHJlbmQ/LmRpcmVjdGlvbiB8fCAnbmV1dHJhbCc7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3VwJykgcmV0dXJuICd0cmVuZGluZy11cCc7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2Rvd24nKSByZXR1cm4gJ3RyZW5kaW5nLWRvd24nO1xuICAgIHJldHVybiAncmVtb3ZlJztcbiAgfVxufVxuIl19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkgsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQXFFaEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQXhGL0I7UUF5RlUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUcvQixVQUFLLEdBQStCLEVBQUUsQ0FBQztRQUVoRCxrQkFBYSxHQUFzQixFQUF1QixDQUFDO1FBRWpELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTdDLFNBQUksR0FBRyxJQUFJLENBQUM7S0E4Q2I7SUE1Q0MsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVsSCxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLEdBQUcsV0FBVztZQUNkLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDO1FBQ3BELE9BQU8sbUJBQW1CLEtBQUssR0FBRyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDO1FBQ3BELE9BQU8sY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1FBRXRELElBQUksU0FBUyxLQUFLLFNBQVM7WUFBRSxPQUFPLGVBQWUsQ0FBQztRQUNwRCxJQUFJLFNBQVMsS0FBSyxJQUFJO1lBQUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2xFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM1QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFDbkUsSUFBSSxTQUFTLEtBQUssSUFBSTtZQUFFLE9BQU8sYUFBYSxDQUFDO1FBQzdDLElBQUksU0FBUyxLQUFLLE1BQU07WUFBRSxPQUFPLGVBQWUsQ0FBQztRQUNqRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQXZEVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4S0FwRm5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RFQsbXFHQTdEUyxZQUFZLCtCQUFFLE9BQU8seUxBQUUsY0FBYywrRUFBRSxPQUFPLDJKQUFFLGVBQWU7OzRGQXFGOUQsa0JBQWtCO2tCQXhGOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLFlBQ2hFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RFQ7OEJBMkJRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25DYXJkLCBJb25DYXJkQ29udGVudCwgSW9uSWNvbiwgSW9uU2tlbGV0b25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgU3RhdHNDYXJkTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgdHJlbmRpbmdVcCwgdHJlbmRpbmdEb3duLCByZW1vdmUsIGFuYWx5dGljcywgcGVvcGxlLCBjYXNoLCBjYXJ0LCBleWUsIGhlYXJ0LCBzdGFyIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5hZGRJY29ucyh7IHRyZW5kaW5nVXAsIHRyZW5kaW5nRG93biwgcmVtb3ZlLCBhbmFseXRpY3MsIHBlb3BsZSwgY2FzaCwgY2FydCwgZXllLCBoZWFydCwgc3RhciB9KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN0YXRzLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25DYXJkLCBJb25DYXJkQ29udGVudCwgSW9uSWNvbiwgSW9uU2tlbGV0b25UZXh0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNhcmRcbiAgICAgIGNsYXNzPVwic3RhdHMtY2FyZFwiXG4gICAgICBbY2xhc3NdPVwiZ2V0QmFja2dyb3VuZENsYXNzKClcIlxuICAgICAgW3N0eWxlLi0tY2FyZC1jb2xvcl09XCJnZXRDYXJkQ29sb3IoKVwiXG4gICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJyZXNvbHZlZFByb3BzLm1pbkhlaWdodFwiXG4gICAgICAoY2xpY2spPVwib25DbGljay5lbWl0KClcIlxuICAgID5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0cy10aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmljb24pIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJyZXNvbHZlZFByb3BzLmljb25cIiBjbGFzcz1cInN0YXRzLWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLXZhbHVlXCI+XG4gICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBbYW5pbWF0ZWRdPVwidHJ1ZVwiIHN0eWxlPVwid2lkdGg6IDYwJTsgaGVpZ2h0OiAzMnB4O1wiPjwvaW9uLXNrZWxldG9uLXRleHQ+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMucHJlZml4KSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlZml4XCI+e3sgcmVzb2x2ZWRQcm9wcy5wcmVmaXggfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgcmVzb2x2ZWRQcm9wcy52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5zdWZmaXgpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWZmaXhcIj57eyByZXNvbHZlZFByb3BzLnN1ZmZpeCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy50cmVuZCAmJiAhcmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLXRyZW5kXCIgW2NsYXNzXT1cImdldFRyZW5kQ2xhc3MoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImdldFRyZW5kSWNvbigpXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJlbmQtdmFsdWVcIj57eyBNYXRoLmFicyhyZXNvbHZlZFByb3BzLnRyZW5kLnZhbHVlKSB9fSU8L3NwYW4+XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMudHJlbmQubGFiZWwpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmVuZC1sYWJlbFwiPnt7IHJlc29sdmVkUHJvcHMudHJlbmQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyICYmICFyZXNvbHZlZFByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtZm9vdGVyXCI+e3sgcmVzb2x2ZWRQcm9wcy5mb290ZXIgfX08L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5kZXNjcmlwdGlvbiAmJiAhcmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWRlc2NyaXB0aW9uXCI+e3sgcmVzb2x2ZWRQcm9wcy5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmxvZ28gJiYgIXJlc29sdmVkUHJvcHMubG9hZGluZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy1sb2dvXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5sb2dvLnNyY1wiXG4gICAgICAgICAgICAgIFthbHRdPVwicmVzb2x2ZWRQcm9wcy5sb2dvLmFsdFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cInJlc29sdmVkUHJvcHMubG9nby5tYXhIZWlnaHQgfHwgMzJcIlxuICAgICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnB4XT1cInJlc29sdmVkUHJvcHMubG9nby5tYXhXaWR0aCB8fCAxMjBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgIDwvaW9uLWNhcmQ+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3N0YXRzLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1zdGF0cy1jYXJkXG4gKlxuICogQSBjYXJkIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBzdGF0aXN0aWNzIGFuZCBLUElzLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQ6XG4gKiA8dmFsLXN0YXRzLWNhcmQgcHJlc2V0PVwia3BpXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdVc2VycycsIHZhbHVlOiAxMDAwIH1cIj48L3ZhbC1zdGF0cy1jYXJkPlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiA8dmFsLXN0YXRzLWNhcmQgW3Byb3BzXT1cIntcbiAqICAgdGl0bGU6ICdUb3RhbCBVc2VycycsXG4gKiAgIHZhbHVlOiAxMjUwMCxcbiAqICAgaWNvbjogJ3Blb3BsZScsXG4gKiAgIGNvbG9yOiAncHJpbWFyeSdcbiAqIH1cIj48L3ZhbC1zdGF0cy1jYXJkPlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5XG4gKiBAaW5wdXQgcHJvcHM6IFN0YXRzQ2FyZE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHN0YXRzIGNhcmRcbiAqIEBvdXRwdXQgb25DbGljazogdm9pZCAtIEVtaXRzIHdoZW4gY2FyZCBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGF0c0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPFN0YXRzQ2FyZE1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IFN0YXRzQ2FyZE1ldGFkYXRhID0ge30gYXMgU3RhdHNDYXJkTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgTWF0aCA9IE1hdGg7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ3N0YXRzQ2FyZCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPFN0YXRzQ2FyZE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIFN0YXRzQ2FyZE1ldGFkYXRhO1xuICB9XG5cbiAgZ2V0Q2FyZENvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnJlc29sdmVkUHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknO1xuICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Y29sb3J9KWA7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiZyA9IHRoaXMucmVzb2x2ZWRQcm9wcy5iYWNrZ3JvdW5kIHx8ICdsaWdodCc7XG4gICAgcmV0dXJuIGBiYWNrZ3JvdW5kLSR7Ymd9YDtcbiAgfVxuXG4gIGdldFRyZW5kQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnJlc29sdmVkUHJvcHMudHJlbmQ/LmRpcmVjdGlvbiB8fCAnbmV1dHJhbCc7XG4gICAgY29uc3QgaW52ZXJ0ID0gdGhpcy5yZXNvbHZlZFByb3BzLnRyZW5kPy5pbnZlcnRDb2xvcnM7XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAnbmV1dHJhbCcpIHJldHVybiAndHJlbmQtbmV1dHJhbCc7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3VwJykgcmV0dXJuIGludmVydCA/ICd0cmVuZC1kb3duJyA6ICd0cmVuZC11cCc7XG4gICAgcmV0dXJuIGludmVydCA/ICd0cmVuZC11cCcgOiAndHJlbmQtZG93bic7XG4gIH1cblxuICBnZXRUcmVuZEljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnJlc29sdmVkUHJvcHMudHJlbmQ/LmRpcmVjdGlvbiB8fCAnbmV1dHJhbCc7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3VwJykgcmV0dXJuICd0cmVuZGluZy11cCc7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2Rvd24nKSByZXR1cm4gJ3RyZW5kaW5nLWRvd24nO1xuICAgIHJldHVybiAncmVtb3ZlJztcbiAgfVxufVxuIl19
|