@softpak/components 0.3.7 → 18.1.0
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/spx-alert/spx-alert.component.mjs +53 -43
- package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +57 -40
- package/esm2022/spx-app-update/spx-app-update.component.mjs +61 -55
- package/esm2022/spx-card/spx-card-item.component.mjs +37 -31
- package/esm2022/spx-card/spx-card-line.component.mjs +63 -40
- package/esm2022/spx-card/spx-card.component.mjs +52 -49
- package/esm2022/spx-change-details/spx-change-details.component.mjs +3 -5
- package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +3 -6
- package/esm2022/spx-check-digit/spx-check-digit.component.mjs +4 -7
- package/esm2022/spx-form-section/spx-form-section.component.mjs +19 -14
- package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +3 -5
- package/esm2022/spx-form-view/spx-form-view.component.mjs +141 -131
- package/esm2022/spx-inputs/spx-dropdown.component.mjs +35 -36
- package/esm2022/spx-inputs/spx-input-box.component.mjs +143 -125
- package/esm2022/spx-inputs/spx-input-date.component.mjs +84 -81
- package/esm2022/spx-inputs/spx-input-float.component.mjs +2 -5
- package/esm2022/spx-inputs/spx-input-radio.component.mjs +25 -25
- package/esm2022/spx-inputs/spx-input-text.component.mjs +65 -61
- package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +73 -60
- package/esm2022/spx-inputs/spx-input-time.component.mjs +2 -5
- package/esm2022/spx-inputs/spx-input.component.mjs +223 -213
- package/esm2022/spx-navigation/spx-home-tile.component.mjs +40 -37
- package/esm2022/spx-navigation/spx-navigation.component.mjs +6 -10
- package/esm2022/spx-number-check/spx-number-check.component.mjs +47 -41
- package/esm2022/spx-patch/spx-patch.component.mjs +27 -21
- package/esm2022/spx-spinner/spx-spinner.component.mjs +143 -142
- package/esm2022/spx-stock-info/spx-stock-info.component.mjs +6 -9
- package/esm2022/spx-toaster/src/spx-toaster.component.mjs +91 -96
- package/esm2022/spx-update/src/spx-update-info.component.mjs +3 -5
- package/esm2022/spx-validation/spx-validate-control.component.mjs +4 -7
- package/fesm2022/softpak-components-spx-alert.mjs +52 -42
- package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-expiry.mjs +56 -39
- package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-app-update.mjs +60 -54
- package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-card.mjs +148 -115
- package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-change-details.mjs +2 -4
- package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-channel-selection.mjs +2 -5
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-check-digit.mjs +3 -6
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-section.mjs +18 -13
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-view.mjs +142 -133
- package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-inputs.mjs +643 -594
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-navigation.mjs +44 -44
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-number-check.mjs +46 -40
- package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-patch.mjs +26 -20
- package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-spinner.mjs +142 -141
- package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-stock-info.mjs +5 -8
- package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-toaster.mjs +90 -95
- package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-update.mjs +2 -4
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-validation.mjs +3 -6
- package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
- package/package.json +12 -12
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { CommonModule, NgIf } from '@angular/common';
|
|
2
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
2
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
4
3
|
import { faCheck, faCircleInfo, faTimes, faTriangleExclamation } from '@fortawesome/free-solid-svg-icons';
|
|
5
4
|
import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular
|
|
8
|
-
import * as i2 from "@fortawesome/angular-fontawesome";
|
|
6
|
+
import * as i1 from "@fortawesome/angular-fontawesome";
|
|
9
7
|
export class SpxAlertComponent {
|
|
10
8
|
constructor() {
|
|
11
9
|
this.spxClose = new EventEmitter();
|
|
@@ -59,7 +57,7 @@ export class SpxAlertComponent {
|
|
|
59
57
|
}
|
|
60
58
|
}
|
|
61
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxAlertComponent, isStandalone: true, selector: "spx-alert", inputs: { spxAutoclose: "spxAutoclose", spxCloseable: "spxCloseable", spxHideTitle: "spxHideTitle", spxTitle: "spxTitle", spxMarginTop: "spxMarginTop", spxSeverity: "spxSeverity", tick: "tick" }, outputs: { spxClose: "spxClose" }, ngImport: i0, template: `
|
|
63
61
|
<div class="flex items-center gap-3 border-t-4 rounded px-4 py-3 shadow-md"
|
|
64
62
|
[class.cursor-pointer]="this.spxCloseable"
|
|
65
63
|
[class.bg-red-100]="this.isSeverityError"
|
|
@@ -87,29 +85,36 @@ export class SpxAlertComponent {
|
|
|
87
85
|
[class.hover:bg-amber-200]="this.spxCloseable && this.isSeverityWarning"
|
|
88
86
|
[class.over:border-amber-600]="this.spxCloseable && this.isSeverityWarning"
|
|
89
87
|
(click)="onClose()">
|
|
88
|
+
@if (this.isSeverityInfo) {
|
|
90
89
|
<fa-icon
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
*ngIf="this.isSeverityError"
|
|
95
|
-
[icon]="faTriangleExclamation" class="block text-xl text-red-600"></fa-icon>
|
|
90
|
+
[icon]="faCircleInfo" class="block text-xl text-cyan-600"></fa-icon>
|
|
91
|
+
}
|
|
92
|
+
@if (this.isSeverityError) {
|
|
96
93
|
<fa-icon
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
[icon]="faTriangleExclamation" class="block text-xl text-red-600"></fa-icon>
|
|
95
|
+
}
|
|
96
|
+
@if (this.isSeveritySuccess) {
|
|
99
97
|
<fa-icon
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
<p *ngIf="this.spxTitle && !this.spxHideTitle" class="font-bold">{{this.spxTitle}}</p>
|
|
104
|
-
<p class="text-sm">
|
|
105
|
-
<ng-content></ng-content>
|
|
106
|
-
</p>
|
|
107
|
-
</div>
|
|
98
|
+
[icon]="faCheck" class="block text-xl text-lime-600"></fa-icon>
|
|
99
|
+
}
|
|
100
|
+
@if (this.isSeverityWarning) {
|
|
108
101
|
<fa-icon
|
|
109
|
-
|
|
110
|
-
|
|
102
|
+
[icon]="faTriangleExclamation" class="block text-xl text-amber-600"></fa-icon>
|
|
103
|
+
}
|
|
104
|
+
<div class="grow">
|
|
105
|
+
@if (this.spxTitle && !this.spxHideTitle) {
|
|
106
|
+
<p class="font-bold">{{this.spxTitle}}</p>
|
|
107
|
+
}
|
|
108
|
+
<p class="text-sm">
|
|
109
|
+
<ng-content></ng-content>
|
|
110
|
+
</p>
|
|
111
111
|
</div>
|
|
112
|
-
|
|
112
|
+
@if (this.spxCloseable) {
|
|
113
|
+
<fa-icon
|
|
114
|
+
[icon]="faTimes" class="block text-xl"></fa-icon>
|
|
115
|
+
}
|
|
116
|
+
</div>
|
|
117
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
|
|
113
118
|
}
|
|
114
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAlertComponent, decorators: [{
|
|
115
120
|
type: Component,
|
|
@@ -117,9 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
117
122
|
selector: 'spx-alert',
|
|
118
123
|
standalone: true,
|
|
119
124
|
imports: [
|
|
120
|
-
|
|
121
|
-
FontAwesomeModule,
|
|
122
|
-
NgIf,
|
|
125
|
+
FontAwesomeModule
|
|
123
126
|
],
|
|
124
127
|
template: `
|
|
125
128
|
<div class="flex items-center gap-3 border-t-4 rounded px-4 py-3 shadow-md"
|
|
@@ -149,28 +152,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
149
152
|
[class.hover:bg-amber-200]="this.spxCloseable && this.isSeverityWarning"
|
|
150
153
|
[class.over:border-amber-600]="this.spxCloseable && this.isSeverityWarning"
|
|
151
154
|
(click)="onClose()">
|
|
155
|
+
@if (this.isSeverityInfo) {
|
|
152
156
|
<fa-icon
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
*ngIf="this.isSeverityError"
|
|
157
|
-
[icon]="faTriangleExclamation" class="block text-xl text-red-600"></fa-icon>
|
|
157
|
+
[icon]="faCircleInfo" class="block text-xl text-cyan-600"></fa-icon>
|
|
158
|
+
}
|
|
159
|
+
@if (this.isSeverityError) {
|
|
158
160
|
<fa-icon
|
|
159
|
-
|
|
160
|
-
|
|
161
|
+
[icon]="faTriangleExclamation" class="block text-xl text-red-600"></fa-icon>
|
|
162
|
+
}
|
|
163
|
+
@if (this.isSeveritySuccess) {
|
|
161
164
|
<fa-icon
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
<p *ngIf="this.spxTitle && !this.spxHideTitle" class="font-bold">{{this.spxTitle}}</p>
|
|
166
|
-
<p class="text-sm">
|
|
167
|
-
<ng-content></ng-content>
|
|
168
|
-
</p>
|
|
169
|
-
</div>
|
|
165
|
+
[icon]="faCheck" class="block text-xl text-lime-600"></fa-icon>
|
|
166
|
+
}
|
|
167
|
+
@if (this.isSeverityWarning) {
|
|
170
168
|
<fa-icon
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
[icon]="faTriangleExclamation" class="block text-xl text-amber-600"></fa-icon>
|
|
170
|
+
}
|
|
171
|
+
<div class="grow">
|
|
172
|
+
@if (this.spxTitle && !this.spxHideTitle) {
|
|
173
|
+
<p class="font-bold">{{this.spxTitle}}</p>
|
|
174
|
+
}
|
|
175
|
+
<p class="text-sm">
|
|
176
|
+
<ng-content></ng-content>
|
|
177
|
+
</p>
|
|
173
178
|
</div>
|
|
179
|
+
@if (this.spxCloseable) {
|
|
180
|
+
<fa-icon
|
|
181
|
+
[icon]="faTimes" class="block text-xl"></fa-icon>
|
|
182
|
+
}
|
|
183
|
+
</div>
|
|
174
184
|
`,
|
|
175
185
|
}]
|
|
176
186
|
}], propDecorators: { spxClose: [{
|
|
@@ -190,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
190
200
|
}], tick: [{
|
|
191
201
|
type: Input
|
|
192
202
|
}] } });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtYWxlcnQvc3B4LWFsZXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBbUVsRSxNQUFNLE9BQU8saUJBQWlCO0lBakU5QjtRQW1FWSxhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekQsaUJBQVksR0FBSSxLQUFLLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQU1uQixZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQzlDLFlBQU8sR0FBRyxPQUFPLENBQUM7S0F5Q25CO0lBaERDLElBQUksZUFBZSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RSxJQUFJLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUUsSUFBSSxpQkFBaUIsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEYsSUFBSSxpQkFBaUIsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFNaEYsZ0JBQWdCO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQixDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekIsS0FBSyxlQUFlLENBQUMsS0FBSztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLGVBQWUsQ0FBQyxJQUFJO2dCQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssZUFBZSxDQUFDLE9BQU87Z0JBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsS0FBSyxlQUFlLENBQUMsT0FBTztnQkFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7Z0JBQzFCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDOytHQTFEVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw0U0EzRGxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RFQsMkRBM0RDLGlCQUFpQjs7NEZBNkRSLGlCQUFpQjtrQkFqRTdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3FCQUNwQjtvQkFDQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlEVDtpQkFDRjs4QkFHVyxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFDaGVjaywgZmFDaXJjbGVJbmZvLCBmYVRpbWVzLCBmYVRyaWFuZ2xlRXhjbGFtYXRpb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgU3B4U2V2ZXJpdHlFbnVtIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1hbGVydCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb250QXdlc29tZU1vZHVsZVxuXSxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIGJvcmRlci10LTQgcm91bmRlZCBweC00IHB5LTMgc2hhZG93LW1kXCJcbiAgICBbY2xhc3MuY3Vyc29yLXBvaW50ZXJdPVwidGhpcy5zcHhDbG9zZWFibGVcIlxuICAgIFtjbGFzcy5iZy1yZWQtMTAwXT1cInRoaXMuaXNTZXZlcml0eUVycm9yXCJcbiAgICBbY2xhc3MuYm9yZGVyLXJlZC01MDBdPVwidGhpcy5pc1NldmVyaXR5RXJyb3JcIlxuICAgIFtjbGFzcy50ZXh0LXJlZC05MDBdPVwidGhpcy5pc1NldmVyaXR5RXJyb3JcIlxuICAgIFtjbGFzcy5iZy1jeWFuLTEwMF09XCJ0aGlzLmlzU2V2ZXJpdHlJbmZvXCJcbiAgICBbY2xhc3MuYm9yZGVyLWN5YW4tNTAwXT1cInRoaXMuaXNTZXZlcml0eUluZm9cIlxuICAgIFtjbGFzcy50ZXh0LWN5YW4tOTAwXT1cInRoaXMuaXNTZXZlcml0eUluZm9cIlxuICAgIFtjbGFzcy5iZy1saW1lLTEwMF09XCJ0aGlzLmlzU2V2ZXJpdHlTdWNjZXNzXCJcbiAgICBbY2xhc3MuYm9yZGVyLWxpbWUtNTAwXT1cInRoaXMuaXNTZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy50ZXh0LWxpbWUtOTAwXT1cInRoaXMuaXNTZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy5iZy1hbWJlci0xMDBdPVwidGhpcy5pc1NldmVyaXR5V2FybmluZ1wiXG4gICAgW2NsYXNzLmJvcmRlci1hbWJlci01MDBdPVwidGhpcy5pc1NldmVyaXR5V2FybmluZ1wiXG4gICAgW2NsYXNzLnRleHQtYW1iZXItOTAwXT1cInRoaXMuaXNTZXZlcml0eVdhcm5pbmdcIlxuICAgIFtjbGFzcy5mb2N1czpyaW5nLXJlZC02MDBdPVwidGhpcy5zcHhDbG9zZWFibGUgJiYgdGhpcy5pc1NldmVyaXR5RXJyb3JcIlxuICAgIFtjbGFzcy5ob3ZlcjpiZy1yZWQtMjAwXT1cInRoaXMuc3B4Q2xvc2VhYmxlICYmIHRoaXMuaXNTZXZlcml0eUVycm9yXCJcbiAgICBbY2xhc3Mub3Zlcjpib3JkZXItcmVkLTYwMF09XCJ0aGlzLnNweENsb3NlYWJsZSAmJiB0aGlzLmlzU2V2ZXJpdHlFcnJvclwiXG4gICAgW2NsYXNzLmZvY3VzOnJpbmctY3lhbi02MDBdPVwidGhpcy5zcHhDbG9zZWFibGUgJiYgdGhpcy5pc1NldmVyaXR5SW5mb1wiXG4gICAgW2NsYXNzLmhvdmVyOmJnLWN5YW4tMjAwXT1cInRoaXMuc3B4Q2xvc2VhYmxlICYmIHRoaXMuaXNTZXZlcml0eUluZm9cIlxuICAgIFtjbGFzcy5vdmVyOmJvcmRlci1jeWFuLTYwMF09XCJ0aGlzLnNweENsb3NlYWJsZSAmJiB0aGlzLmlzU2V2ZXJpdHlJbmZvXCJcbiAgICBbY2xhc3MuZm9jdXM6cmluZy1saW1lLTYwMF09XCJ0aGlzLnNweENsb3NlYWJsZSAmJiB0aGlzLmlzU2V2ZXJpdHlTdWNjZXNzXCJcbiAgICBbY2xhc3MuaG92ZXI6YmctbGltZS0yMDBdPVwidGhpcy5zcHhDbG9zZWFibGUgJiYgdGhpcy5pc1NldmVyaXR5U3VjY2Vzc1wiXG4gICAgW2NsYXNzLm92ZXI6Ym9yZGVyLWxpbWUtNjAwXT1cInRoaXMuc3B4Q2xvc2VhYmxlICYmIHRoaXMuaXNTZXZlcml0eVN1Y2Nlc3NcIlxuICAgIFtjbGFzcy5mb2N1czpyaW5nLWFtYmVyLTYwMF09XCJ0aGlzLnNweENsb3NlYWJsZSAmJiB0aGlzLmlzU2V2ZXJpdHlXYXJuaW5nXCJcbiAgICBbY2xhc3MuaG92ZXI6YmctYW1iZXItMjAwXT1cInRoaXMuc3B4Q2xvc2VhYmxlICYmIHRoaXMuaXNTZXZlcml0eVdhcm5pbmdcIlxuICAgIFtjbGFzcy5vdmVyOmJvcmRlci1hbWJlci02MDBdPVwidGhpcy5zcHhDbG9zZWFibGUgJiYgdGhpcy5pc1NldmVyaXR5V2FybmluZ1wiXG4gICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPlxuICAgIEBpZiAodGhpcy5pc1NldmVyaXR5SW5mbykge1xuICAgICAgPGZhLWljb25cbiAgICAgIFtpY29uXT1cImZhQ2lyY2xlSW5mb1wiIGNsYXNzPVwiYmxvY2sgdGV4dC14bCB0ZXh0LWN5YW4tNjAwXCI+PC9mYS1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRoaXMuaXNTZXZlcml0eUVycm9yKSB7XG4gICAgICA8ZmEtaWNvblxuICAgICAgW2ljb25dPVwiZmFUcmlhbmdsZUV4Y2xhbWF0aW9uXCIgY2xhc3M9XCJibG9jayB0ZXh0LXhsIHRleHQtcmVkLTYwMFwiPjwvZmEtaWNvbj5cbiAgICB9XG4gICAgQGlmICh0aGlzLmlzU2V2ZXJpdHlTdWNjZXNzKSB7XG4gICAgICA8ZmEtaWNvblxuICAgICAgW2ljb25dPVwiZmFDaGVja1wiIGNsYXNzPVwiYmxvY2sgdGV4dC14bCB0ZXh0LWxpbWUtNjAwXCI+PC9mYS1pY29uPlxuICAgIH1cbiAgICBAaWYgKHRoaXMuaXNTZXZlcml0eVdhcm5pbmcpIHtcbiAgICAgIDxmYS1pY29uXG4gICAgICBbaWNvbl09XCJmYVRyaWFuZ2xlRXhjbGFtYXRpb25cIiBjbGFzcz1cImJsb2NrIHRleHQteGwgdGV4dC1hbWJlci02MDBcIj48L2ZhLWljb24+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJncm93XCI+XG4gICAgICBAaWYgKHRoaXMuc3B4VGl0bGUgJiYgIXRoaXMuc3B4SGlkZVRpdGxlKSB7XG4gICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkXCI+e3t0aGlzLnNweFRpdGxlfX08L3A+XG4gICAgICB9XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIEBpZiAodGhpcy5zcHhDbG9zZWFibGUpIHtcbiAgICAgIDxmYS1pY29uXG4gICAgICBbaWNvbl09XCJmYVRpbWVzXCIgY2xhc3M9XCJibG9jayB0ZXh0LXhsXCI+PC9mYS1pY29uPlxuICAgIH1cbiAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEFsZXJ0Q29tcG9uZW50IHtcbiAgX2F1dG9DbG9zZVRpbWVvdXQ6IGFueTtcbiAgQE91dHB1dCgpIHNweENsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHNweEF1dG9jbG9zZT86IG51bWJlcjtcbiAgQElucHV0KCkgc3B4Q2xvc2VhYmxlPyA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhIaWRlVGl0bGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4VGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweE1hcmdpblRvcCA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhTZXZlcml0eT86IFNweFNldmVyaXR5RW51bTtcbiAgQElucHV0KCkgdGljayA9IHt9O1xuXG4gIGdldCBpc1NldmVyaXR5RXJyb3IoKSB7IHJldHVybiB0aGlzLnNweFNldmVyaXR5ID09PSBTcHhTZXZlcml0eUVudW0uZXJyb3I7IH1cbiAgZ2V0IGlzU2V2ZXJpdHlJbmZvKCkgeyByZXR1cm4gdGhpcy5zcHhTZXZlcml0eSA9PT0gU3B4U2V2ZXJpdHlFbnVtLmluZm87IH1cbiAgZ2V0IGlzU2V2ZXJpdHlTdWNjZXNzKCkgeyByZXR1cm4gdGhpcy5zcHhTZXZlcml0eSA9PT0gU3B4U2V2ZXJpdHlFbnVtLnN1Y2Nlc3M7IH1cbiAgZ2V0IGlzU2V2ZXJpdHlXYXJuaW5nKCkgeyByZXR1cm4gdGhpcy5zcHhTZXZlcml0eSA9PT0gU3B4U2V2ZXJpdHlFbnVtLndhcm5pbmc7IH1cbiAgZmFDaGVjayA9IGZhQ2hlY2s7XG4gIGZhQ2lyY2xlSW5mbyA9IGZhQ2lyY2xlSW5mbztcbiAgZmFUcmlhbmdsZUV4Y2xhbWF0aW9uID0gZmFUcmlhbmdsZUV4Y2xhbWF0aW9uO1xuICBmYVRpbWVzID0gZmFUaW1lcztcblxuICBjb21wb25lbnREaWRMb2FkKCkge1xuICAgIGlmICh0aGlzLnNweEF1dG9jbG9zZSkge1xuICAgICAgdGhpcy5wcmVwYXJlQXV0b0Nsb3NlKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5zcHhUaXRsZSkge1xuICAgICAgdGhpcy5fYXNzaWduRGVmYXVsdFRpdGxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlQXV0b0Nsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX2F1dG9DbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgICAgdGhpcy5fYXV0b0Nsb3NlVGltZW91dCA9IG51bGw7XG4gICAgICB0aGlzLnRpY2sgPSB7fTtcbiAgICB9LCB0aGlzLnNweEF1dG9jbG9zZSk7XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25EZWZhdWx0VGl0bGUoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLnNweFNldmVyaXR5KSB7XG4gICAgICBjYXNlIFNweFNldmVyaXR5RW51bS5lcnJvcjpcbiAgICAgICAgdGhpcy5zcHhUaXRsZSA9ICdFcnJvcic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTcHhTZXZlcml0eUVudW0uaW5mbzpcbiAgICAgICAgdGhpcy5zcHhUaXRsZSA9ICdJbmZvJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNweFNldmVyaXR5RW51bS5zdWNjZXNzOlxuICAgICAgICB0aGlzLnNweFRpdGxlID0gJ05vdGlmaWNhdGlvbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTcHhTZXZlcml0eUVudW0ud2FybmluZzpcbiAgICAgICAgdGhpcy5zcHhUaXRsZSA9ICdXYXJuaW5nJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25DbG9zZSgpIHtcbiAgICBpZiAodGhpcy5zcHhDbG9zZWFibGUpIHtcbiAgICAgIHRoaXMuc3B4Q2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { NgIf } from '@angular/common';
|
|
2
1
|
import { Component, Input } from '@angular/core';
|
|
3
2
|
import { spxCheckExpiryWarning } from './spx-check-expiry-warning.interface';
|
|
4
3
|
import { spxCheckExpiryFinalWarning } from './spx-check-expiry-final-warning.interface';
|
|
@@ -18,53 +17,71 @@ export class SpxAppExpiryComponent {
|
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAppExpiryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
22
|
-
|
|
23
|
-
<div
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxAppExpiryComponent, isStandalone: true, selector: "spx-app-expiry", inputs: { txtContactHelpdeskOrSoftpak: "txtContactHelpdeskOrSoftpak", txtExpired: "txtExpired", txtLastReminder: "txtLastReminder", txtPleaseOpenTheAppStore: "txtPleaseOpenTheAppStore", txtPleaseUpdate: "txtPleaseUpdate", txtThisVersionWillExpireSoon: "txtThisVersionWillExpireSoon", txtUpdateAvailable: "txtUpdateAvailable", txtUpdateTheAppToTheLatestVersion: "txtUpdateTheAppToTheLatestVersion", spxExpiry: "spxExpiry", spxVersion: "spxVersion" }, usesOnChanges: true, ngImport: i0, template: `
|
|
21
|
+
@if (warning || finalWarning || expired) {
|
|
22
|
+
<div class="m-3">
|
|
23
|
+
<div
|
|
24
|
+
class="p-3 font-bold text-white rounded-t text-xl"
|
|
25
|
+
[class.bg-lime-600]="warning"
|
|
26
|
+
[class.bg-red-600]="expired"
|
|
27
|
+
[class.bg-amber-600]="finalWarning">
|
|
28
|
+
@if (warning) {
|
|
29
|
+
{{ txtUpdateAvailable }}
|
|
30
|
+
}
|
|
31
|
+
@if (finalWarning) {
|
|
32
|
+
{{ txtLastReminder }}
|
|
33
|
+
}
|
|
34
|
+
@if (expired) {
|
|
35
|
+
{{ txtExpired }}
|
|
36
|
+
}
|
|
37
|
+
</div>
|
|
38
|
+
<div
|
|
39
|
+
class="bg-amber-50 p-3 text-black rounded-b mb-3">
|
|
40
|
+
<div>{{ txtPleaseOpenTheAppStore }}.</div>
|
|
41
|
+
<div>{{ txtUpdateTheAppToTheLatestVersion }}.</div>
|
|
42
|
+
<div>{{ txtContactHelpdeskOrSoftpak }}.</div>
|
|
43
|
+
@if (finalWarning) {
|
|
44
|
+
<div>{{ txtThisVersionWillExpireSoon }}.</div>
|
|
45
|
+
}
|
|
46
|
+
</div>
|
|
38
47
|
</div>
|
|
39
|
-
|
|
48
|
+
}`, isInline: true }); }
|
|
40
49
|
}
|
|
41
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAppExpiryComponent, decorators: [{
|
|
42
51
|
type: Component,
|
|
43
52
|
args: [{
|
|
44
53
|
selector: 'spx-app-expiry',
|
|
45
54
|
standalone: true,
|
|
46
|
-
imports: [
|
|
47
|
-
NgIf,
|
|
48
|
-
],
|
|
55
|
+
imports: [],
|
|
49
56
|
template: `
|
|
50
|
-
|
|
51
|
-
<div
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
@if (warning || finalWarning || expired) {
|
|
58
|
+
<div class="m-3">
|
|
59
|
+
<div
|
|
60
|
+
class="p-3 font-bold text-white rounded-t text-xl"
|
|
61
|
+
[class.bg-lime-600]="warning"
|
|
62
|
+
[class.bg-red-600]="expired"
|
|
63
|
+
[class.bg-amber-600]="finalWarning">
|
|
64
|
+
@if (warning) {
|
|
65
|
+
{{ txtUpdateAvailable }}
|
|
66
|
+
}
|
|
67
|
+
@if (finalWarning) {
|
|
68
|
+
{{ txtLastReminder }}
|
|
69
|
+
}
|
|
70
|
+
@if (expired) {
|
|
71
|
+
{{ txtExpired }}
|
|
72
|
+
}
|
|
73
|
+
</div>
|
|
74
|
+
<div
|
|
75
|
+
class="bg-amber-50 p-3 text-black rounded-b mb-3">
|
|
76
|
+
<div>{{ txtPleaseOpenTheAppStore }}.</div>
|
|
77
|
+
<div>{{ txtUpdateTheAppToTheLatestVersion }}.</div>
|
|
78
|
+
<div>{{ txtContactHelpdeskOrSoftpak }}.</div>
|
|
79
|
+
@if (finalWarning) {
|
|
80
|
+
<div>{{ txtThisVersionWillExpireSoon }}.</div>
|
|
81
|
+
}
|
|
82
|
+
</div>
|
|
66
83
|
</div>
|
|
67
|
-
|
|
84
|
+
}`,
|
|
68
85
|
}]
|
|
69
86
|
}], propDecorators: { txtContactHelpdeskOrSoftpak: [{
|
|
70
87
|
type: Input
|
|
@@ -87,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
87
104
|
}], spxVersion: [{
|
|
88
105
|
type: Input
|
|
89
106
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFwcC1leHBpcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1hcHAtZXhwaXJ5L3NweC1hcHAtZXhwaXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFvQy9FLE1BQU0sT0FBTyxxQkFBcUI7SUFsQ2xDO1FBNkNFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsWUFBTyxHQUFHLEtBQUssQ0FBQztLQVFqQjtJQVBDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFlBQVksR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakcsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQy9HLENBQUM7SUFDSCxDQUFDOytHQXBCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixpaUJBOUJ0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTRCUjs7NEZBRVMscUJBQXFCO2tCQWxDakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBNEJSO2lCQUNIOzhCQUVVLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxpQ0FBaUM7c0JBQXpDLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweEFwcEV4cGlyeUkgfSBmcm9tICcuL3NweC1hcHAtZXhwaXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBzcHhDaGVja0V4cGlyeVdhcm5pbmcgfSBmcm9tICcuL3NweC1jaGVjay1leHBpcnktd2FybmluZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgc3B4Q2hlY2tFeHBpcnlGaW5hbFdhcm5pbmcgfSBmcm9tICcuL3NweC1jaGVjay1leHBpcnktZmluYWwtd2FybmluZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgc3B4Q2hlY2tFeHBpcnlIYXBwZW5lZCB9IGZyb20gJy4vc3B4LWNoZWNrLWV4cGlyeS1oYXBwZW5lZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtYXBwLWV4cGlyeScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogYFxuICBAaWYgKHdhcm5pbmcgfHwgZmluYWxXYXJuaW5nIHx8IGV4cGlyZWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwibS0zXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicC0zIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIHJvdW5kZWQtdCB0ZXh0LXhsXCJcbiAgICAgICAgW2NsYXNzLmJnLWxpbWUtNjAwXT1cIndhcm5pbmdcIlxuICAgICAgICBbY2xhc3MuYmctcmVkLTYwMF09XCJleHBpcmVkXCJcbiAgICAgICAgW2NsYXNzLmJnLWFtYmVyLTYwMF09XCJmaW5hbFdhcm5pbmdcIj5cbiAgICAgICAgQGlmICh3YXJuaW5nKSB7XG4gICAgICAgICAge3sgdHh0VXBkYXRlQXZhaWxhYmxlIH19XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChmaW5hbFdhcm5pbmcpIHtcbiAgICAgICAgICB7eyB0eHRMYXN0UmVtaW5kZXIgfX1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGV4cGlyZWQpIHtcbiAgICAgICAgICB7eyB0eHRFeHBpcmVkIH19XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImJnLWFtYmVyLTUwIHAtMyB0ZXh0LWJsYWNrIHJvdW5kZWQtYiBtYi0zXCI+XG4gICAgICAgIDxkaXY+e3sgdHh0UGxlYXNlT3BlblRoZUFwcFN0b3JlIH19LjwvZGl2PlxuICAgICAgICA8ZGl2Pnt7IHR4dFVwZGF0ZVRoZUFwcFRvVGhlTGF0ZXN0VmVyc2lvbiB9fS48L2Rpdj5cbiAgICAgICAgPGRpdj57eyB0eHRDb250YWN0SGVscGRlc2tPclNvZnRwYWsgfX0uPC9kaXY+XG4gICAgICAgIEBpZiAoZmluYWxXYXJuaW5nKSB7XG4gICAgICAgICAgPGRpdj57eyB0eHRUaGlzVmVyc2lvbldpbGxFeHBpcmVTb29uIH19LjwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfWAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEFwcEV4cGlyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHR4dENvbnRhY3RIZWxwZGVza09yU29mdHBhayE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0RXhwaXJlZCE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0TGFzdFJlbWluZGVyITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRQbGVhc2VPcGVuVGhlQXBwU3RvcmUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFBsZWFzZVVwZGF0ZSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0VGhpc1ZlcnNpb25XaWxsRXhwaXJlU29vbiE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0VXBkYXRlQXZhaWxhYmxlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRVcGRhdGVUaGVBcHBUb1RoZUxhdGVzdFZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweEV4cGlyeSE6IFNweEFwcEV4cGlyeUk7XG4gIEBJbnB1dCgpIHNweFZlcnNpb24hOiBzdHJpbmc7XG4gIHdhcm5pbmcgPSBmYWxzZTtcbiAgZmluYWxXYXJuaW5nID0gZmFsc2U7XG4gIGV4cGlyZWQgPSBmYWxzZTtcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3B4RXhwaXJ5ICYmIHRoaXMuc3B4VmVyc2lvbikge1xuICAgICAgdGhpcy5leHBpcmVkID0gc3B4Q2hlY2tFeHBpcnlIYXBwZW5lZCh0aGlzLnNweFZlcnNpb24sIHRoaXMuc3B4RXhwaXJ5KTtcbiAgICAgIHRoaXMuZmluYWxXYXJuaW5nID0gc3B4Q2hlY2tFeHBpcnlGaW5hbFdhcm5pbmcodGhpcy5zcHhWZXJzaW9uLCB0aGlzLnNweEV4cGlyeSkgJiYgIXRoaXMuZXhwaXJlZDtcbiAgICAgIHRoaXMud2FybmluZyA9IHNweENoZWNrRXhwaXJ5V2FybmluZyh0aGlzLnNweFZlcnNpb24sIHRoaXMuc3B4RXhwaXJ5KSAmJiAhdGhpcy5maW5hbFdhcm5pbmcgJiYgIXRoaXMuZXhwaXJlZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { NgIf } from '@angular/common';
|
|
2
1
|
import { Component, Input } from '@angular/core';
|
|
3
2
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
3
|
import { TranslateModule } from '@ngx-translate/core';
|
|
@@ -213,32 +212,36 @@ export class SpxAppUpdateComponent {
|
|
|
213
212
|
}
|
|
214
213
|
}
|
|
215
214
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAppUpdateComponent, deps: [{ token: i1.Deploy }, { token: i0.ChangeDetectorRef }, { token: i0.ApplicationRef }, { token: i2.TranslateService }, { token: i3.FormBuilder }, { token: i4.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
</ion-header>
|
|
223
|
-
|
|
224
|
-
<ion-content class="ion-content--upd" [fullscreen]="true">
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
</
|
|
215
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxAppUpdateComponent, isStandalone: true, selector: "spx-app-update", inputs: { spxHomeUrl: "spxHomeUrl", spxIsSignedIn: "spxIsSignedIn", textCheckingForUpdates: "textCheckingForUpdates", textDownloadingUpdate: "textDownloadingUpdate", textErrorWhileUpdatingApp: "textErrorWhileUpdatingApp", textFinishedUpdating: "textFinishedUpdating", textNoUpdatesAvailable: "textNoUpdatesAvailable", textUnexpectedError: "textUnexpectedError", txtAppStoreVersion: "txtAppStoreVersion", txtChannel: "txtChannel", txtNextVersion: "txtNextVersion", txtUpdate: "txtUpdate", txtVersion: "txtVersion", spxAppId: "spxAppId" }, ngImport: i0, template: `<ion-header>
|
|
216
|
+
<ion-toolbar>
|
|
217
|
+
<ion-title>
|
|
218
|
+
{{ txtUpdate | translate | capitalize }}
|
|
219
|
+
</ion-title>
|
|
220
|
+
</ion-toolbar>
|
|
221
|
+
</ion-header>
|
|
222
|
+
|
|
223
|
+
<ion-content class="ion-content--upd" [fullscreen]="true">
|
|
224
|
+
<div class="ion-padding">
|
|
225
|
+
<spx-progress-bar [spxPercentage]="delayedPercentage" [spxTitle]="updateStatus | capitalize">
|
|
226
|
+
</spx-progress-bar>
|
|
227
|
+
<form [formGroup]="form" class="mt-3">
|
|
228
|
+
@if (ctrlAppStoreVersion.value && ctrlAppStoreVersion.value.value) {
|
|
229
|
+
<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
|
|
230
|
+
<spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | translate | capitalize"
|
|
231
|
+
[spxReadonly]="true"></spx-input>
|
|
232
|
+
<spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | translate | capitalize"
|
|
233
|
+
[spxReadonly]="true"></spx-input>
|
|
234
|
+
<spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | translate | capitalize"
|
|
235
|
+
[spxReadonly]="true"></spx-input>
|
|
236
|
+
@if (ctrlNextVersionNumber.value && ctrlNextVersionNumber.value.value) {
|
|
237
|
+
<spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | translate | capitalize"
|
|
238
|
+
[spxReadonly]="true"></spx-input>
|
|
239
|
+
}
|
|
240
|
+
</div>
|
|
241
|
+
}
|
|
242
|
+
</form>
|
|
243
|
+
</div>
|
|
244
|
+
</ion-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutocomplete", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
242
245
|
}
|
|
243
246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAppUpdateComponent, decorators: [{
|
|
244
247
|
type: Component,
|
|
@@ -248,39 +251,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
248
251
|
imports: [
|
|
249
252
|
FormsModule,
|
|
250
253
|
IonicModule,
|
|
251
|
-
NgIf,
|
|
252
254
|
ReactiveFormsModule,
|
|
253
255
|
SpxCapitalizePipe,
|
|
254
256
|
SpxInputComponent,
|
|
255
257
|
SpxProgressBarComponent,
|
|
256
|
-
TranslateModule
|
|
258
|
+
TranslateModule
|
|
257
259
|
],
|
|
258
260
|
template: `<ion-header>
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
</ion-header>
|
|
265
|
-
|
|
266
|
-
<ion-content class="ion-content--upd" [fullscreen]="true">
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
</
|
|
261
|
+
<ion-toolbar>
|
|
262
|
+
<ion-title>
|
|
263
|
+
{{ txtUpdate | translate | capitalize }}
|
|
264
|
+
</ion-title>
|
|
265
|
+
</ion-toolbar>
|
|
266
|
+
</ion-header>
|
|
267
|
+
|
|
268
|
+
<ion-content class="ion-content--upd" [fullscreen]="true">
|
|
269
|
+
<div class="ion-padding">
|
|
270
|
+
<spx-progress-bar [spxPercentage]="delayedPercentage" [spxTitle]="updateStatus | capitalize">
|
|
271
|
+
</spx-progress-bar>
|
|
272
|
+
<form [formGroup]="form" class="mt-3">
|
|
273
|
+
@if (ctrlAppStoreVersion.value && ctrlAppStoreVersion.value.value) {
|
|
274
|
+
<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3">
|
|
275
|
+
<spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | translate | capitalize"
|
|
276
|
+
[spxReadonly]="true"></spx-input>
|
|
277
|
+
<spx-input [formControl]="ctrlConfiguredChannel" [spxLabel]="txtChannel | translate | capitalize"
|
|
278
|
+
[spxReadonly]="true"></spx-input>
|
|
279
|
+
<spx-input [formControl]="ctrlVersionNumber" [spxLabel]="txtVersion | translate | capitalize"
|
|
280
|
+
[spxReadonly]="true"></spx-input>
|
|
281
|
+
@if (ctrlNextVersionNumber.value && ctrlNextVersionNumber.value.value) {
|
|
282
|
+
<spx-input [formControl]="ctrlNextVersionNumber" [spxLabel]="txtNextVersion | translate | capitalize"
|
|
283
|
+
[spxReadonly]="true"></spx-input>
|
|
284
|
+
}
|
|
285
|
+
</div>
|
|
286
|
+
}
|
|
287
|
+
</form>
|
|
288
|
+
</div>
|
|
289
|
+
</ion-content>`,
|
|
284
290
|
}]
|
|
285
291
|
}], ctorParameters: () => [{ type: i1.Deploy }, { type: i0.ChangeDetectorRef }, { type: i0.ApplicationRef }, { type: i2.TranslateService }, { type: i3.FormBuilder }, { type: i4.NavController }], propDecorators: { spxHomeUrl: [{
|
|
286
292
|
type: Input
|
|
@@ -311,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
311
317
|
}], spxAppId: [{
|
|
312
318
|
type: Input
|
|
313
319
|
}] } });
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFwcC11cGRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1hcHAtdXBkYXRlL3NweC1hcHAtdXBkYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFxQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBdUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFpQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFFNUQsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN0RCxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO0FBQzlDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFDdEQsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQTBDbEQsTUFBTSxPQUFPLHFCQUFxQjtJQXVCaEMsWUFDbUIsTUFBYyxFQUNkLGNBQWlD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QUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMnO1xuaW1wb3J0IHsgU3B4UHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgU3B4U3RvcmFnZSwgU3B4U3RvcmFnZUtleUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1zdG9yYWdlJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJ0BjYXBhY2l0b3IvZGV2aWNlJztcbmltcG9ydCB7IERlcGxveSB9IGZyb20gJ2NvcmRvdmEtcGx1Z2luLWlvbmljL2Rpc3Qvbmd4JztcbmltcG9ydCB7IGdldEN1cnJlbnRTY29wZSB9IGZyb20gJ0BzZW50cnkvYW5ndWxhcic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSwgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuY29uc3QgY3RybE5leHRWZXJzaW9uTnVtYmVyID0gJ2N0cmxOZXh0VmVyc2lvbk51bWJlcic7XG5jb25zdCBjdHJsVmVyc2lvbk51bWJlciA9ICdjdHJsVmVyc2lvbk51bWJlcic7XG5jb25zdCBjdHJsQ29uZmlndXJlZENoYW5uZWwgPSAnY3RybENvbmZpZ3VyZWRDaGFubmVsJztcbmNvbnN0IGN0cmxBcHBTdG9yZVZlcnNpb24gPSAnY3RybEFwcFN0b3JlVmVyc2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1hcHAtdXBkYXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTcHhDYXBpdGFsaXplUGlwZSxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhcj5cbiAgICA8aW9uLXRpdGxlPlxuICAgICAge3sgdHh0VXBkYXRlIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZSB9fVxuICAgIDwvaW9uLXRpdGxlPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tY29udGVudC0tdXBkXCIgW2Z1bGxzY3JlZW5dPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICA8c3B4LXByb2dyZXNzLWJhciBbc3B4UGVyY2VudGFnZV09XCJkZWxheWVkUGVyY2VudGFnZVwiIFtzcHhUaXRsZV09XCJ1cGRhdGVTdGF0dXMgfCBjYXBpdGFsaXplXCI+XG4gICAgPC9zcHgtcHJvZ3Jlc3MtYmFyPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgPGRpdiAqbmdJZj1cImN0cmxBcHBTdG9yZVZlcnNpb24udmFsdWUgJiYgY3RybEFwcFN0b3JlVmVyc2lvbi52YWx1ZS52YWx1ZVwiIGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiB4bDpncmlkLWNvbHMtMyBnYXAtM1wiPlxuICAgICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsQXBwU3RvcmVWZXJzaW9uXCIgW3NweExhYmVsXT1cInR4dEFwcFN0b3JlVmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxDb25maWd1cmVkQ2hhbm5lbFwiIFtzcHhMYWJlbF09XCJ0eHRDaGFubmVsIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybFZlcnNpb25OdW1iZXJcIiBbc3B4TGFiZWxdPVwidHh0VmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICAgIDxzcHgtaW5wdXQgKm5nSWY9XCJjdHJsTmV4dFZlcnNpb25OdW1iZXIudmFsdWUgJiYgY3RybE5leHRWZXJzaW9uTnVtYmVyLnZhbHVlLnZhbHVlXCIgW2Zvcm1Db250cm9sXT1cImN0cmxOZXh0VmVyc2lvbk51bWJlclwiIFtzcHhMYWJlbF09XCJ0eHROZXh0VmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuPC9pb24tY29udGVudD5gLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhBcHBVcGRhdGVDb21wb25lbnQge1xuICBASW5wdXQoKSBzcHhIb21lVXJsITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhJc1NpZ25lZEluITogYm9vbGVhbjtcbiAgQElucHV0KCkgdGV4dENoZWNraW5nRm9yVXBkYXRlcyE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dERvd25sb2FkaW5nVXBkYXRlITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0RXJyb3JXaGlsZVVwZGF0aW5nQXBwITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0RmluaXNoZWRVcGRhdGluZyE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dE5vVXBkYXRlc0F2YWlsYWJsZSE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dFVuZXhwZWN0ZWRFcnJvciE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0QXBwU3RvcmVWZXJzaW9uITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDaGFubmVsITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHROZXh0VmVyc2lvbiE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0VXBkYXRlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRWZXJzaW9uITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhBcHBJZCE6IHN0cmluZztcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgZGVsYXllZFBlcmNlbnRhZ2U6IG51bWJlciA9IDA7XG4gIHBlcmNlbnRhZ2U6IG51bWJlciA9IDA7XG4gIHN5bmNUcnVja0ludGVydmFsOiBhbnkgfCBudWxsID0gbnVsbDtcbiAgdXBkYXRlU3RhdHVzOiBzdHJpbmcgPSB0aGlzLnRleHRDaGVja2luZ0ZvclVwZGF0ZXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3k6IERlcGxveSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxuICApIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIFtjdHJsTmV4dFZlcnNpb25OdW1iZXJdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxWZXJzaW9uTnVtYmVyXTogW251bGwsIFtdXSxcbiAgICAgIFtjdHJsQ29uZmlndXJlZENoYW5uZWxdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxBcHBTdG9yZVZlcnNpb25dOiBbbnVsbCwgW11dLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGN0cmxWZXJzaW9uTnVtYmVyKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY3RybFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsTmV4dFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsTmV4dFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQ29uZmlndXJlZENoYW5uZWwoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQ29uZmlndXJlZENoYW5uZWwpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQXBwU3RvcmVWZXJzaW9uKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY3RybEFwcFN0b3JlVmVyc2lvbikgYXMgRm9ybUNvbnRyb2w7IH1cblxuICBpbml0KCkge1xuICAgIHRoaXMuZGVsYXllZFBlcmNlbnRhZ2UgPSAwO1xuICAgIHRoaXMucGVyY2VudGFnZSA9IDA7XG4gICAgdGhpcy5wZXJmb3JtQXV0b21hdGljVXBkYXRlKCkudGhlbigoKSA9PiB7IH0pO1xuICAgIHRoaXMuc3RhcnRMb2FkZXJTeW5jKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgcGVyY2VudGFnZTogMCxcbiAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dENoZWNraW5nRm9yVXBkYXRlcyksXG4gICAgfSk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcExvYWRlclN5bmMoKTtcbiAgfVxuXG4gIGFzeW5jIHBlcmZvcm1BdXRvbWF0aWNVcGRhdGUoKSB7XG4gICAgY29uc3QgZGV2aWNlSW5mbyA9IGF3YWl0IERldmljZS5nZXRJbmZvKCk7XG5cbiAgICBpZiAoZGV2aWNlSW5mbz8ucGxhdGZvcm0gPT09ICd3ZWInKSB7XG4gICAgICAvLyBMb2NhbD8gU2tpcCB0aGUgdXBkYXRlIHBhZ2UuXG4gICAgICB0aGlzLmNsb3NlVXBkYXRlU2NyZWVuKCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVwZGF0ZUluZm8oKTtcblxuICAgICAgLy8gU3RhcnQgdXBncmFkZVxuICAgICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDdXJyZW50VmVyc2lvbigpO1xuICAgICAgaWYgKGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uTmFtZSkge1xuICAgICAgICBjb25zdCBiaW5hcnlHcm91cCA9IGN1cnJlbnRWZXJzaW9uLmJpbmFyeVZlcnNpb25OYW1lLnN1YnN0cmluZygwLCAzKTsgLy8gZS5nLiBcIjEuNFwiXG4gICAgICAgIGNvbnN0IGNoYW5uZWxHcm91cCA9IGN1cnJlbnRWZXJzaW9uLmNoYW5uZWwuc3BsaXQoJy0nKVsxXS5zdWJzdHJpbmcoMCwgMyk7IC8vIGUuZy4gXCIxLjRcIlxuICAgICAgICBjb25zdCBjaGFubmVsVHlwZSA9IGN1cnJlbnRWZXJzaW9uLmNoYW5uZWwuc3BsaXQoJy0nKVswXTtcblxuICAgICAgICBpZiAoYmluYXJ5R3JvdXAgIT0gY2hhbm5lbEdyb3VwKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kZXBsb3kuY29uZmlndXJlKHtcbiAgICAgICAgICAgIGFwcElkOiB0aGlzLnNweEFwcElkLFxuICAgICAgICAgICAgY2hhbm5lbDogYCR7Y2hhbm5lbFR5cGV9LSR7YmluYXJ5R3JvdXB9LnhgXG4gICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zeW5jKCkudGhlbigoKSA9PiB7IH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICB9XG4gICAgICAvLyBFbmQgdXBncmFkZVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dFVuZXhwZWN0ZWRFcnJvcilcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3luYygpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy51cGRhdGVJbmZvKCk7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZUF2YWlsYWJsZUluZm8gPSBhd2FpdCB0aGlzLmRlcGxveS5jaGVja0ZvclVwZGF0ZSgpO1xuICAgICAgaWYgKCF1cGRhdGVBdmFpbGFibGVJbmZvLmF2YWlsYWJsZSkge1xuICAgICAgICAvLyBObyB1cGRhdGUgYXZhaWxhYmxlXG4gICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dE5vVXBkYXRlc0F2YWlsYWJsZSksXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRG93bmxvYWQgdXBkYXRlXG4gICAgICAgIGF3YWl0IHRoaXMuZGVwbG95LnN5bmMoeyB1cGRhdGVNZXRob2Q6ICdhdXRvJyB9LCAocGVyY2VudGFnZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IHBlcmNlbnRhZ2UgPz8gMCxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dERvd25sb2FkaW5nVXBkYXRlLCB7IHBlcmNlbnRhZ2UsIHZlcnNpb246IHVwZGF0ZUF2YWlsYWJsZUluZm8uYnVpbGQgfSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnRleHRFcnJvcldoaWxlVXBkYXRpbmdBcHApLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgICAgcGVyY2VudGFnZTogMTAwLFxuICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dEZpbmlzaGVkVXBkYXRpbmcsIHsgdmVyc2lvbjogdXBkYXRlQXZhaWxhYmxlSW5mby5idWlsZCB9KVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBDYXRjaCB1bmV4cGVjdGVkIHBsdWctaW4gZXJyb3JzXG4gICAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgcGVyY2VudGFnZTogMTAwLFxuICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnRleHRVbmV4cGVjdGVkRXJyb3IpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUluZm8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDdXJyZW50VmVyc2lvbigpO1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDb25maWd1cmF0aW9uKCk7XG4gICAgY29uc3QgdXBkYXRlQXZhaWxhYmxlSW5mbyA9IGF3YWl0IHRoaXMuZGVwbG95LmNoZWNrRm9yVXBkYXRlKCk7XG5cbiAgICBpZiAoY3VycmVudFZlcnNpb24pIHtcbiAgICAgIHRoaXMuY3RybFZlcnNpb25OdW1iZXIuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogY29uZmlndXJhdGlvbj8uY3VycmVudEJ1aWxkSWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybE5leHRWZXJzaW9uTnVtYmVyLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IHVwZGF0ZUF2YWlsYWJsZUluZm8/LmJ1aWxkXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybENvbmZpZ3VyZWRDaGFubmVsLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ3VyYXRpb24gPyBjb25maWd1cmF0aW9uLmNoYW5uZWwgOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybEFwcFN0b3JlVmVyc2lvbi5zZXRWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBjb25maWd1cmF0aW9uID8gY29uZmlndXJhdGlvbi5iaW5hcnlWZXJzaW9uTmFtZSA6IG51bGxcbiAgICAgIH0pO1xuXG4gICAgICB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gZ2V0Q3VycmVudFNjb3BlKCk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9iaW5hcnlfY29kZScsIGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uQ29kZSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9iaW5hcnlfbmFtZScsIGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uTmFtZSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9idWlsZF9pZCcsIGN1cnJlbnRWZXJzaW9uPy5idWlsZElkKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdjaGFubmVsX3R5cGUnLCBjdXJyZW50VmVyc2lvbj8uY2hhbm5lbCk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9zbmFwc2hvdF9pZCcsIGN1cnJlbnRWZXJzaW9uPy52ZXJzaW9uSWQpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYudGljaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlU3RhdHVzKHN0YXR1czoge1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBjbG9zZVNjcmVlbj86IGJvb2xlYW47XG4gICAgcGVyY2VudGFnZTogbnVtYmVyO1xuICB9KSB7XG4gICAgdGhpcy51cGRhdGVTdGF0dXMgPSBzdGF0dXMudGV4dDtcbiAgICB0aGlzLnBlcmNlbnRhZ2UgPSBzdGF0dXMucGVyY2VudGFnZTtcbiAgICBpZiAoc3RhdHVzLmNsb3NlU2NyZWVuKSB7XG4gICAgICB0aGlzLmNsb3NlVXBkYXRlU2NyZWVuKCk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMuZXJyb3IpIHtcbiAgICAgIC8vIHRoaXMuYXBwU3RvcmUuZGlzcGF0Y2goXG4gICAgICAvLyAgIHNoYXJlZFRvYXN0ZXJBY3Rpb25zLkNSRUFURV9FUlJPUih7XG4gICAgICAvLyAgICAgbWVzc2FnZVRleHQ6IHN0YXR1cy5lcnJvcixcbiAgICAgIC8vICAgfSlcbiAgICAgIC8vICk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5hcHBsaWNhdGlvblJlZi50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlVXBkYXRlU2NyZWVuKCkge1xuICAgIC8vIEFsbG93aW5nIHNvbWUgdGltZSB0byBtYWtlIGEgc2NyZWVuc2hvdCBvZiB2ZXJzaW9uIGluZm9cbiAgICBTcHhTdG9yYWdlLmNsZWFyU2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLnVwZGF0ZUluUHJvZ3Jlc3MpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBTcHhTdG9yYWdlLmdldFNldHRpbmc8YW55PihTcHhTdG9yYWdlS2V5RW51bS5hZnRlclNpZ25JbikgJiZcbiAgICAgICAgdGhpcy5zcHhJc1NpZ25lZEluXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbU3B4U3RvcmFnZS5nZXRTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0uYWZ0ZXJTaWduSW4pXSk7XG4gICAgICAgIFNweFN0b3JhZ2UuY2xlYXJTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0uYWZ0ZXJTaWduSW4pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnNweEhvbWVVcmxdKTtcbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRMb2FkZXJTeW5jKCkge1xuICAgIFNweFN0b3JhZ2Uuc2V0U2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLnVwZGF0ZUluUHJvZ3Jlc3MsICcxJyk7XG4gICAgaWYgKHRoaXMuc3luY1RydWNrSW50ZXJ2YWwgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc3luY1RydWNrSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVsYXllZFBlcmNlbnRhZ2UgPSB0aGlzLnBlcmNlbnRhZ2U7XG4gICAgICB9LCAyMDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RvcExvYWRlclN5bmMoKSB7XG4gICAgaWYgKHRoaXMuc3luY1RydWNrSW50ZXJ2YWwgIT09IG51bGwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCk7XG4gICAgICB0aGlzLnN5bmNUcnVja0ludGVydmFsID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFwcC11cGRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1hcHAtdXBkYXRlL3NweC1hcHAtdXBkYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWlCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUU1RCxNQUFNLHFCQUFxQixHQUFHLHVCQUF1QixDQUFDO0FBQ3RELE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDOUMsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN0RCxNQUFNLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBNkNsRCxNQUFNLE9BQU8scUJBQXFCO0lBdUJoQyxZQUNtQixNQUFjLEVBQ2QsY0FBaUMsRUFDakMsY0FBOEIsRUFDOUIsZ0JBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hC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c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNweENhcGl0YWxpemVQaXBlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtY2FwaXRhbGl6ZSc7XG5pbXBvcnQgeyBTcHhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXByb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBTcHhTdG9yYWdlLCBTcHhTdG9yYWdlS2V5RW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN0b3JhZ2UnO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSAnQGNhcGFjaXRvci9kZXZpY2UnO1xuaW1wb3J0IHsgRGVwbG95IH0gZnJvbSAnY29yZG92YS1wbHVnaW4taW9uaWMvZGlzdC9uZ3gnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFNjb3BlIH0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcbmltcG9ydCB7IElvbmljTW9kdWxlLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuXG5jb25zdCBjdHJsTmV4dFZlcnNpb25OdW1iZXIgPSAnY3RybE5leHRWZXJzaW9uTnVtYmVyJztcbmNvbnN0IGN0cmxWZXJzaW9uTnVtYmVyID0gJ2N0cmxWZXJzaW9uTnVtYmVyJztcbmNvbnN0IGN0cmxDb25maWd1cmVkQ2hhbm5lbCA9ICdjdHJsQ29uZmlndXJlZENoYW5uZWwnO1xuY29uc3QgY3RybEFwcFN0b3JlVmVyc2lvbiA9ICdjdHJsQXBwU3RvcmVWZXJzaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LWFwcC11cGRhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTcHhDYXBpdGFsaXplUGlwZSxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbl0sXG4gIHRlbXBsYXRlOiBgPGlvbi1oZWFkZXI+XG4gICAgPGlvbi10b29sYmFyPlxuICAgICAgPGlvbi10aXRsZT5cbiAgICAgICAge3sgdHh0VXBkYXRlIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZSB9fVxuICAgICAgPC9pb24tdGl0bGU+XG4gICAgPC9pb24tdG9vbGJhcj5cbiAgPC9pb24taGVhZGVyPlxuICBcbiAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLWNvbnRlbnQtLXVwZFwiIFtmdWxsc2NyZWVuXT1cInRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDxzcHgtcHJvZ3Jlc3MtYmFyIFtzcHhQZXJjZW50YWdlXT1cImRlbGF5ZWRQZXJjZW50YWdlXCIgW3NweFRpdGxlXT1cInVwZGF0ZVN0YXR1cyB8IGNhcGl0YWxpemVcIj5cbiAgICAgIDwvc3B4LXByb2dyZXNzLWJhcj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgICBAaWYgKGN0cmxBcHBTdG9yZVZlcnNpb24udmFsdWUgJiYgY3RybEFwcFN0b3JlVmVyc2lvbi52YWx1ZS52YWx1ZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIHhsOmdyaWQtY29scy0zIGdhcC0zXCI+XG4gICAgICAgICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsQXBwU3RvcmVWZXJzaW9uXCIgW3NweExhYmVsXT1cInR4dEFwcFN0b3JlVmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgICAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxDb25maWd1cmVkQ2hhbm5lbFwiIFtzcHhMYWJlbF09XCJ0eHRDaGFubmVsIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybFZlcnNpb25OdW1iZXJcIiBbc3B4TGFiZWxdPVwidHh0VmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgICAgICAgIEBpZiAoY3RybE5leHRWZXJzaW9uTnVtYmVyLnZhbHVlICYmIGN0cmxOZXh0VmVyc2lvbk51bWJlci52YWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsTmV4dFZlcnNpb25OdW1iZXJcIiBbc3B4TGFiZWxdPVwidHh0TmV4dFZlcnNpb24gfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICA8L2lvbi1jb250ZW50PmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEFwcFVwZGF0ZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNweEhvbWVVcmwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweElzU2lnbmVkSW4hOiBib29sZWFuO1xuICBASW5wdXQoKSB0ZXh0Q2hlY2tpbmdGb3JVcGRhdGVzITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0RG93bmxvYWRpbmdVcGRhdGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRFcnJvcldoaWxlVXBkYXRpbmdBcHAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRGaW5pc2hlZFVwZGF0aW5nITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Tm9VcGRhdGVzQXZhaWxhYmxlITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0VW5leHBlY3RlZEVycm9yITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRBcHBTdG9yZVZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENoYW5uZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dE5leHRWZXJzaW9uITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRVcGRhdGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweEFwcElkITogc3RyaW5nO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBkZWxheWVkUGVyY2VudGFnZTogbnVtYmVyID0gMDtcbiAgcGVyY2VudGFnZTogbnVtYmVyID0gMDtcbiAgc3luY1RydWNrSW50ZXJ2YWw6IGFueSB8IG51bGwgPSBudWxsO1xuICB1cGRhdGVTdGF0dXM6IHN0cmluZyA9IHRoaXMudGV4dENoZWNraW5nRm9yVXBkYXRlcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveTogRGVwbG95LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXG4gICkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgW2N0cmxOZXh0VmVyc2lvbk51bWJlcl06IFtudWxsLCBbXV0sXG4gICAgICBbY3RybFZlcnNpb25OdW1iZXJdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxDb25maWd1cmVkQ2hhbm5lbF06IFtudWxsLCBbXV0sXG4gICAgICBbY3RybEFwcFN0b3JlVmVyc2lvbl06IFtudWxsLCBbXV0sXG4gICAgfSk7XG4gIH1cblxuICBnZXQgY3RybFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsVmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxOZXh0VmVyc2lvbk51bWJlcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxOZXh0VmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDb25maWd1cmVkQ2hhbm5lbCgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxDb25maWd1cmVkQ2hhbm5lbCkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxBcHBTdG9yZVZlcnNpb24oKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQXBwU3RvcmVWZXJzaW9uKSBhcyBGb3JtQ29udHJvbDsgfVxuXG4gIGluaXQoKSB7XG4gICAgdGhpcy5kZWxheWVkUGVyY2VudGFnZSA9IDA7XG4gICAgdGhpcy5wZXJjZW50YWdlID0gMDtcbiAgICB0aGlzLnBlcmZvcm1BdXRvbWF0aWNVcGRhdGUoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgdGhpcy5zdGFydExvYWRlclN5bmMoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0Q2hlY2tpbmdGb3JVcGRhdGVzKSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9wTG9hZGVyU3luYygpO1xuICB9XG5cbiAgYXN5bmMgcGVyZm9ybUF1dG9tYXRpY1VwZGF0ZSgpIHtcbiAgICBjb25zdCBkZXZpY2VJbmZvID0gYXdhaXQgRGV2aWNlLmdldEluZm8oKTtcblxuICAgIGlmIChkZXZpY2VJbmZvPy5wbGF0Zm9ybSA9PT0gJ3dlYicpIHtcbiAgICAgIC8vIExvY2FsPyBTa2lwIHRoZSB1cGRhdGUgcGFnZS5cbiAgICAgIHRoaXMuY2xvc2VVcGRhdGVTY3JlZW4oKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudXBkYXRlSW5mbygpO1xuXG4gICAgICAvLyBTdGFydCB1cGdyYWRlXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBpZiAoY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25OYW1lKSB7XG4gICAgICAgIGNvbnN0IGJpbmFyeUdyb3VwID0gY3VycmVudFZlcnNpb24uYmluYXJ5VmVyc2lvbk5hbWUuc3Vic3RyaW5nKDAsIDMpOyAvLyBlLmcuIFwiMS40XCJcbiAgICAgICAgY29uc3QgY2hhbm5lbEdyb3VwID0gY3VycmVudFZlcnNpb24uY2hhbm5lbC5zcGxpdCgnLScpWzFdLnN1YnN0cmluZygwLCAzKTsgLy8gZS5nLiBcIjEuNFwiXG4gICAgICAgIGNvbnN0IGNoYW5uZWxUeXBlID0gY3VycmVudFZlcnNpb24uY2hhbm5lbC5zcGxpdCgnLScpWzBdO1xuXG4gICAgICAgIGlmIChiaW5hcnlHcm91cCAhPSBjaGFubmVsR3JvdXApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmRlcGxveS5jb25maWd1cmUoe1xuICAgICAgICAgICAgYXBwSWQ6IHRoaXMuc3B4QXBwSWQsXG4gICAgICAgICAgICBjaGFubmVsOiBgJHtjaGFubmVsVHlwZX0tJHtiaW5hcnlHcm91cH0ueGBcbiAgICAgICAgICB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3luYygpLnRoZW4oKCkgPT4geyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3luYygpLnRoZW4oKCkgPT4geyB9KTtcbiAgICAgIH1cbiAgICAgIC8vIEVuZCB1cGdyYWRlXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHBlcmNlbnRhZ2U6IDEwMCxcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0VW5leHBlY3RlZEVycm9yKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzeW5jKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnVwZGF0ZUluZm8oKTtcblxuICAgICAgY29uc3QgdXBkYXRlQXZhaWxhYmxlSW5mbyA9IGF3YWl0IHRoaXMuZGVwbG95LmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgICBpZiAoIXVwZGF0ZUF2YWlsYWJsZUluZm8uYXZhaWxhYmxlKSB7XG4gICAgICAgIC8vIE5vIHVwZGF0ZSBhdmFpbGFibGVcbiAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0Tm9VcGRhdGVzQXZhaWxhYmxlKSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEb3dubG9hZCB1cGRhdGVcbiAgICAgICAgYXdhaXQgdGhpcy5kZXBsb3kuc3luYyh7IHVwZGF0ZU1ldGhvZDogJ2F1dG8nIH0sIChwZXJjZW50YWdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgICAgcGVyY2VudGFnZTogcGVyY2VudGFnZSA/PyAwLFxuICAgICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0RG93bmxvYWRpbmdVcGRhdGUsIHsgcGVyY2VudGFnZSwgdmVyc2lvbjogdXBkYXRlQXZhaWxhYmxlSW5mby5idWlsZCB9KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IDEwMCxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dEVycm9yV2hpbGVVcGRhdGluZ0FwcCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0RmluaXNoZWRVcGRhdGluZywgeyB2ZXJzaW9uOiB1cGRhdGVBdmFpbGFibGVJbmZvLmJ1aWxkIH0pXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIENhdGNoIHVuZXhwZWN0ZWQgcGx1Zy1pbiBlcnJvcnNcbiAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dFVuZXhwZWN0ZWRFcnJvcilcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlSW5mbygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldENvbmZpZ3VyYXRpb24oKTtcbiAgICBjb25zdCB1cGRhdGVBdmFpbGFibGVJbmZvID0gYXdhaXQgdGhpcy5kZXBsb3kuY2hlY2tGb3JVcGRhdGUoKTtcblxuICAgIGlmIChjdXJyZW50VmVyc2lvbikge1xuICAgICAgdGhpcy5jdHJsVmVyc2lvbk51bWJlci5zZXRWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBjb25maWd1cmF0aW9uPy5jdXJyZW50QnVpbGRJZCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsTmV4dFZlcnNpb25OdW1iZXIuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogdXBkYXRlQXZhaWxhYmxlSW5mbz8uYnVpbGRcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsQ29uZmlndXJlZENoYW5uZWwuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogY29uZmlndXJhdGlvbiA/IGNvbmZpZ3VyYXRpb24uY2hhbm5lbCA6IG51bGxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsQXBwU3RvcmVWZXJzaW9uLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ3VyYXRpb24gPyBjb25maWd1cmF0aW9uLmJpbmFyeVZlcnNpb25OYW1lIDogbnVsbFxuICAgICAgfSk7XG5cbiAgICAgIHtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBnZXRDdXJyZW50U2NvcGUoKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2JpbmFyeV9jb2RlJywgY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25Db2RlKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2JpbmFyeV9uYW1lJywgY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25OYW1lKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2J1aWxkX2lkJywgY3VycmVudFZlcnNpb24/LmJ1aWxkSWQpO1xuICAgICAgICBzY29wZS5zZXRUYWcoJ2NoYW5uZWxfdHlwZScsIGN1cnJlbnRWZXJzaW9uPy5jaGFubmVsKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX3NuYXBzaG90X2lkJywgY3VycmVudFZlcnNpb24/LnZlcnNpb25JZCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi50aWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VTdGF0dXMoc3RhdHVzOiB7XG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNsb3NlU2NyZWVuPzogYm9vbGVhbjtcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gIH0pIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXR1cyA9IHN0YXR1cy50ZXh0O1xuICAgIHRoaXMucGVyY2VudGFnZSA9IHN0YXR1cy5wZXJjZW50YWdlO1xuICAgIGlmIChzdGF0dXMuY2xvc2VTY3JlZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VVcGRhdGVTY3JlZW4oKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cy5lcnJvcikge1xuICAgICAgLy8gdGhpcy5hcHBTdG9yZS5kaXNwYXRjaChcbiAgICAgIC8vICAgc2hhcmVkVG9hc3RlckFjdGlvbnMuQ1JFQVRFX0VSUk9SKHtcbiAgICAgIC8vICAgICBtZXNzYWdlVGV4dDogc3RhdHVzLmVycm9yLFxuICAgICAgLy8gICB9KVxuICAgICAgLy8gKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLnRpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VVcGRhdGVTY3JlZW4oKSB7XG4gICAgLy8gQWxsb3dpbmcgc29tZSB0aW1lIHRvIG1ha2UgYSBzY3JlZW5zaG90IG9mIHZlcnNpb24gaW5mb1xuICAgIFNweFN0b3JhZ2UuY2xlYXJTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0udXBkYXRlSW5Qcm9ncmVzcyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIFNweFN0b3JhZ2UuZ2V0U2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLmFmdGVyU2lnbkluKSAmJlxuICAgICAgICB0aGlzLnNweElzU2lnbmVkSW5cbiAgICAgICkge1xuICAgICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFtTcHhTdG9yYWdlLmdldFNldHRpbmc8YW55PihTcHhTdG9yYWdlS2V5RW51bS5hZnRlclNpZ25JbildKTtcbiAgICAgICAgU3B4U3RvcmFnZS5jbGVhclNldHRpbmc8YW55PihTcHhTdG9yYWdlS2V5RW51bS5hZnRlclNpZ25JbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoW3RoaXMuc3B4SG9tZVVybF0pO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydExvYWRlclN5bmMoKSB7XG4gICAgU3B4U3RvcmFnZS5zZXRTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0udXBkYXRlSW5Qcm9ncmVzcywgJzEnKTtcbiAgICBpZiAodGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5kZWxheWVkUGVyY2VudGFnZSA9IHRoaXMucGVyY2VudGFnZTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wTG9hZGVyU3luYygpIHtcbiAgICBpZiAodGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnN5bmNUcnVja0ludGVydmFsKTtcbiAgICAgIHRoaXMuc3luY1RydWNrSW50ZXJ2YWwgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
|