@tsi-developpement/tsi-shared-ui 1.7.39 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/consts/app-providers.mjs +4 -2
- package/esm2022/lib/models/common/entity-properties.mjs +1 -1
- package/esm2022/lib/services/form/form-state.service.mjs +13 -0
- package/esm2022/lib/services/validation/input-registry.service.mjs +9 -1
- package/esm2022/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.mjs +44 -7
- package/esm2022/lib/tsi-base/tsi-input-base/tsi-input-base.component.mjs +16 -9
- package/esm2022/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.mjs +3 -3
- package/esm2022/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.mjs +3 -3
- package/esm2022/lib/tsi-components/input-components/editable-grid/editable-grid.component.mjs +12 -10
- package/esm2022/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.mjs +10 -8
- package/esm2022/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.mjs +5 -1
- package/esm2022/lib/tsi-components/input-components/tsi-formula-box/tsi-formula-box.component.mjs +5 -3
- package/esm2022/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-text-area/tsi-text-area.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-text-box/tsi-text-box.component.mjs +4 -3
- package/esm2022/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.mjs +10 -8
- package/esm2022/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.mjs +3 -3
- package/esm2022/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.mjs +3 -3
- package/esm2022/lib/tsi-components/reporting/reporting.component.mjs +16 -9
- package/esm2022/lib/tsi-components/tsi-change-password/tsi-change-password.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-dynamic-form/create-or-edit-dynamic-form/create-or-edit-dynamic-form.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-form/tsi-form.component.mjs +11 -3
- package/esm2022/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.mjs +20 -9
- package/esm2022/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.mjs +8 -1
- package/esm2022/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.mjs +3 -3
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +204 -86
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/consts/app-providers.d.ts +2 -1
- package/lib/models/common/entity-properties.d.ts +1 -0
- package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
- package/lib/services/form/form-state.service.d.ts +7 -0
- package/lib/services/validation/input-registry.service.d.ts +1 -0
- package/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.d.ts +15 -5
- package/lib/tsi-base/tsi-input-base/tsi-input-base.component.d.ts +5 -1
- package/lib/tsi-components/input-components/editable-grid/editable-grid.component.d.ts +3 -4
- package/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.d.ts +1 -1
- package/lib/tsi-components/reporting/reporting.component.d.ts +4 -1
- package/lib/tsi-components/tsi-form/tsi-form.component.d.ts +4 -1
- package/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.d.ts +6 -2
- package/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -7,6 +7,12 @@ import { InputRegistryService } from "../../services/validation/input-registry.s
|
|
|
7
7
|
import { LocalizationService } from "../../services/localization/localization.service";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class TsiInputBase extends TsiBaseComponent {
|
|
10
|
+
get isDirty() {
|
|
11
|
+
return this._isDirty;
|
|
12
|
+
}
|
|
13
|
+
set isDirty(val) {
|
|
14
|
+
this._isDirty = val;
|
|
15
|
+
}
|
|
10
16
|
get inputField() {
|
|
11
17
|
return this._inputField;
|
|
12
18
|
}
|
|
@@ -18,9 +24,10 @@ export class TsiInputBase extends TsiBaseComponent {
|
|
|
18
24
|
constructor(cdRef) {
|
|
19
25
|
super(cdRef);
|
|
20
26
|
this.cdRef = cdRef;
|
|
21
|
-
this.
|
|
27
|
+
this.genericValidationStateService = inject(GenericValidationStateService);
|
|
22
28
|
this._formState = { isValid: false, isSubmitted: false };
|
|
23
29
|
this._layoutHelperService = inject(LayoutHelperService);
|
|
30
|
+
this._isDirty = false;
|
|
24
31
|
this._inputRegistry = inject(InputRegistryService);
|
|
25
32
|
this._localizationService = inject(LocalizationService);
|
|
26
33
|
this.isInputNameNotFound = false;
|
|
@@ -55,10 +62,10 @@ export class TsiInputBase extends TsiBaseComponent {
|
|
|
55
62
|
this.validationStatusCssClass = "border-cyan-300 border-3";
|
|
56
63
|
throw new Error('no input name was provided !');
|
|
57
64
|
}
|
|
58
|
-
if (!this.
|
|
65
|
+
if (!this.genericValidationStateService) {
|
|
59
66
|
return;
|
|
60
67
|
}
|
|
61
|
-
var validationInfos = this.
|
|
68
|
+
var validationInfos = this.genericValidationStateService.getValidationInfos(this.inputName);
|
|
62
69
|
if (!validationInfos) {
|
|
63
70
|
this.isInputNameNotFound = true;
|
|
64
71
|
return;
|
|
@@ -67,14 +74,14 @@ export class TsiInputBase extends TsiBaseComponent {
|
|
|
67
74
|
this.maxLength = validationInfos.maxLength;
|
|
68
75
|
}
|
|
69
76
|
registerEntityValidationInfosLoadedHandler() {
|
|
70
|
-
if (!this.
|
|
77
|
+
if (!this.genericValidationStateService)
|
|
71
78
|
return;
|
|
72
|
-
if (this.
|
|
79
|
+
if (this.genericValidationStateService.isEntityValidationInfosLoaded) {
|
|
73
80
|
this.calculateValidationStatus();
|
|
74
81
|
this.calculateValidationStatusCssClass();
|
|
75
82
|
return;
|
|
76
83
|
}
|
|
77
|
-
this._entityValidationInfosLoadedSub = this.
|
|
84
|
+
this._entityValidationInfosLoadedSub = this.genericValidationStateService
|
|
78
85
|
.entityValidationInfosLoaded
|
|
79
86
|
.subscribe(() => {
|
|
80
87
|
this.calculateValidationStatus();
|
|
@@ -82,9 +89,9 @@ export class TsiInputBase extends TsiBaseComponent {
|
|
|
82
89
|
});
|
|
83
90
|
}
|
|
84
91
|
registerFormStateChangesHandler() {
|
|
85
|
-
if (!this.
|
|
92
|
+
if (!this.genericValidationStateService)
|
|
86
93
|
return;
|
|
87
|
-
this._formStateChangeSub = this.
|
|
94
|
+
this._formStateChangeSub = this.genericValidationStateService
|
|
88
95
|
.formStateChange
|
|
89
96
|
.subscribe((formState) => {
|
|
90
97
|
this._formState = { ...formState };
|
|
@@ -161,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
161
168
|
}], inputField: [{
|
|
162
169
|
type: Input
|
|
163
170
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWlucHV0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1iYXNlL3RzaS1pbnB1dC1iYXNlL3RzaS1pbnB1dC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0MsTUFBTSxhQUFhLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7O0FBR3ZGLE1BQU0sT0FBZ0IsWUFBc0IsU0FBUSxnQkFBZ0I7SUE2QmhFLElBQWEsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQU07UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUNELFlBQVk7SUFFWixjQUFjO0lBQ2QsWUFBK0IsS0FBeUI7UUFDcEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRGMsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFwQ2hELG1DQUE4QixHQUFtQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUV2RyxlQUFVLEdBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVB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QUU7c0ZBbUIxQyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVHNpQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL3RzaS1iYXNlL3RzaS1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkVycm9yLCBGb3JtVmFsaWRpdHlSZXN1bHQsIExvY2FsZUNvZGUgfSBmcm9tIFwiLi4vLi4vZW51bXNcIjtcclxuaW1wb3J0IHsgR2VuZXJpY1ZhbGlkYXRpb25TdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi9nZW5lcmljLXZhbGlkYXRpb24tc3RhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBMYXlvdXRIZWxwZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xheW91dC9sYXlvdXQtaGVscGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW5wdXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi9pbnB1dC1yZWdpc3RyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEZvcm1TdGF0ZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZm9ybS9mb3JtLXN0YXRlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICd0c2ktaW5wdXQtYmFzZScsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHNpSW5wdXRCYXNlPFQgPSBhbnk+IGV4dGVuZHMgVHNpQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICAvLyNyZWdpb24gcHJvcHNcclxuICAgIHByaXZhdGUgX2VudGl0eVZhbGlkYXRpb25JbmZvc0xvYWRlZFN1Yj86IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX2dlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlPzogR2VuZXJpY1ZhbGlkYXRpb25TdGF0ZVNlcnZpY2UgPSBpbmplY3QoR2VuZXJpY1ZhbGlkYXRpb25TdGF0ZVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBfZm9ybVN0YXRlQ2hhbmdlU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBfZm9ybVN0YXRlOiBGb3JtU3RhdGUgPSB7IGlzVmFsaWQ6IGZhbHNlLCBpc1N1Ym1pdHRlZDogZmFsc2UgfTtcclxuICAgIHByaXZhdGUgX2xheW91dEhlbHBlclNlcnZpY2U6IExheW91dEhlbHBlclNlcnZpY2UgPSBpbmplY3QoTGF5b3V0SGVscGVyU2VydmljZSk7XHJcbiAgICBwcml2YXRlIF9pbnB1dEZpZWxkITogVDtcclxuICAgIHByaXZhdGUgX2lucHV0UmVnaXN0cnkgPSBpbmplY3QoSW5wdXRSZWdpc3RyeVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBfbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgbG9jYWxlOiBMb2NhbGVDb2RlO1xyXG4gICAgcHJvdGVjdGVkIGlzSW5wdXROYW1lTm90Rm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIFxyXG4gICAgcHVibGljIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBtYXhMZW5ndGggOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICBwdWJsaWMgaXNTdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSB2YWxpZGF0aW9uU3RhdHVzQ3NzQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gICAgLy8jZW5kcmVnaW9uXHJcbiAgICBcclxuICAgIC8vI3JlZ2lvbiBJbnB1dHNcclxuICAgIEBJbnB1dCgpIGlucHV0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkIDtcclxuICAgIEBJbnB1dCgpIGlucHV0SWQ/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcGxhY2VIb2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gICAgQElucHV0KCkgc2V0UGxhY2VIb2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGluZm9UZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKSBnZXQgaW5wdXRGaWVsZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRGaWVsZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgaW5wdXRGaWVsZCh2YWw6IFQpIHtcclxuICAgICAgICB0aGlzLl9pbnB1dEZpZWxkID0gdmFsO1xyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIGN0b3JcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvdmVycmlkZSBjZFJlZj86IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoY2RSZWYpO1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0gIHRoaXMuX2xvY2FsaXphdGlvblNlcnZpY2UubG9jYWxlO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9pbnB1dFJlZ2lzdHJ5LnJlZ2lzdGVyKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIExpZmVjeWNsZSBob29rc1xyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRW50aXR5VmFsaWRhdGlvbkluZm9zTG9hZGVkSGFuZGxlcigpO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJGb3JtU3RhdGVDaGFuZ2VzSGFuZGxlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VudGl0eVZhbGlkYXRpb25JbmZvc0xvYWRlZFN1Yj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9mb3JtU3RhdGVDaGFuZ2VTdWI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5faW5wdXRSZWdpc3RyeS51bnJlZ2lzdGVyKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVWYWxpZGF0aW9uU3RhdHVzKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnB1dE5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdHVzQ3NzQ2xhc3MgPSBcImJvcmRlci1jeWFuLTMwMCBib3JkZXItM1wiO1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGlucHV0IG5hbWUgd2FzIHByb3ZpZGVkICEnKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9nZW5lcmljVmFsaWRhdGlvblN0YXRlU2VydmljZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdmFsaWRhdGlvbkluZm9zID0gdGhpcy5fZ2VuZXJpY1ZhbGlkYXRpb25TdGF0ZVNlcnZpY2UuZ2V0VmFsaWRhdGlvbkluZm9zKHRoaXMuaW5wdXROYW1lKTtcclxuICAgICAgICBpZiAoIXZhbGlkYXRpb25JbmZvcykge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5wdXROYW1lTm90Rm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzUmVxdWlyZWQgPSB2YWxpZGF0aW9uSW5mb3MuaXNOdWxsYWJsZSAhPT0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9IHZhbGlkYXRpb25JbmZvcy5tYXhMZW5ndGg7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVnaXN0ZXJFbnRpdHlWYWxpZGF0aW9uSW5mb3NMb2FkZWRIYW5kbGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fZ2VuZXJpY1ZhbGlkYXRpb25TdGF0ZVNlcnZpY2UpIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2dlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlLmlzRW50aXR5VmFsaWRhdGlvbkluZm9zTG9hZGVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVWYWxpZGF0aW9uU3RhdHVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlVmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VudGl0eVZhbGlkYXRpb25JbmZvc0xvYWRlZFN1YiA9IHRoaXMuX2dlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5lbnRpdHlWYWxpZGF0aW9uSW5mb3NMb2FkZWRcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVZhbGlkYXRpb25TdGF0dXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlVmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVnaXN0ZXJGb3JtU3RhdGVDaGFuZ2VzSGFuZGxlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2dlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuX2Zvcm1TdGF0ZUNoYW5nZVN1YiA9IHRoaXMuX2dlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mb3JtU3RhdGVDaGFuZ2VcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZm9ybVN0YXRlOiBGb3JtU3RhdGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1TdGF0ZSA9IHsgLi4uZm9ybVN0YXRlIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVZhbGlkYXRpb25TdGF0dXNDc3NDbGFzcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZVZhbGlkYXRpb25TdGF0dXNDc3NDbGFzcygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc0lucHV0TmFtZU5vdEZvdW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzID0gdGhpcy5fbGF5b3V0SGVscGVyU2VydmljZT8ubGF5b3V0Q29uZmlndXJhdGlvbj8uaXNDb2xvcmZ1bE1vZGVFbmFibGVkID09PSB0cnVlXHJcbiAgICAgICAgICAgID8gJ2JvcmRlci1jeWFuLTMwMCBib3JkZXItMydcclxuICAgICAgICAgICAgOiAnYm9yZGVyLWJsdWUtNTAwIGJvcmRlci0zJztcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGlzVmFsaWQgPSB0aGlzLmlzVmFsaWQoKS5pc1ZhbGlkO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzID0gdGhpcy5pc1JlcXVpcmVkXHJcbiAgICAgICAgICAgID8gKHRoaXMuX2Zvcm1TdGF0ZS5pc1N1Ym1pdHRlZCAmJiAhaXNWYWxpZCA/ICdib3JkZXItcmVkLTUwMCBib3JkZXItMycgOiAnYm9yZGVyLWdyYXktOTAwIGJvcmRlci0zJylcclxuICAgICAgICAgICAgOiAnJztcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIHB1YmxpYyBpc1ZhbGlkKCk6IEZvcm1WYWxpZGl0eVJlc3VsdCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZXF1aXJlZCA9PT0gZmFsc2UgJiYgdGhpcy5tYXhMZW5ndGggPT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpc1ZhbGlkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIGlucHV0TmFtZTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc1JlcXVpcmVkID09PSB0cnVlICYmIHRoaXMuaW5wdXRGaWVsZCA9PT0gbnVsbCB8fCB0aGlzLmlucHV0RmllbGQgPT09IHVuZGVmaW5lZCB8fCBcclxuICAgICAgICAgICAodHlwZW9mIHRoaXMuaW5wdXRGaWVsZCA9PT0gJ3N0cmluZycgJiYgdGhpcy5pbnB1dEZpZWxkLnRyaW0oKS5sZW5ndGggPT09IDApKXtcclxuICAgICAgICAgICAgcmV0dXJuIHsgXHJcbiAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBGb3JtVmFsaWRhdGlvbkVycm9yLlJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgaW5wdXROYW1lOiB0aGlzLmlucHV0TmFtZSxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW5wdXRGaWVsZCA9PT0gJ3N0cmluZycgJiYgdGhpcy5tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMuaW5wdXRGaWVsZC50cmltKCkubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBcclxuICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGxlbmd0aCA8PSB0aGlzLm1heExlbmd0aCxcclxuICAgICAgICAgICAgICAgIGlucHV0TmFtZTogdGhpcy5pbnB1dE5hbWUsXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogbGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoID8gdW5kZWZpbmVkIDogRm9ybVZhbGlkYXRpb25FcnJvci5NYXhMZW5ndGggLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogbGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoID8gdW5kZWZpbmVkIDogdGhpcy5tYXhMZW5ndGhcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgICAgIGVycm9yOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIGlucHV0TmFtZTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBkYXRhOiB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59Il19
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWlucHV0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1iYXNlL3RzaS1pbnB1dC1iYXNlL3RzaS1pbnB1dC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0MsTUFBTSxhQUFhLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7O0FBR3ZGLE1BQU0sT0FBZ0IsWUFBc0IsU0FBUSxnQkFBZ0I7SUFtQmhFLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBWTtRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBYUQsSUFBYSxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsR0FBTTtRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFBWTtJQUVaLGNBQWM7SUFDZCxZQUErQixLQUF5QjtRQUNwRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFE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O1lBQ3BCLElBQUksRUFBRSxTQUFTO1NBQ2xCLENBQUM7SUFDTixDQUFDOytHQTdLaUIsWUFBWTttR0FBWixZQUFZLCtUQURpQixFQUFFOzs0RkFDL0IsWUFBWTtrQkFEakMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO3NGQTRCMUMsd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRzaUJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy90c2ktYmFzZS90c2ktYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciwgRm9ybVZhbGlkaXR5UmVzdWx0LCBMb2NhbGVDb2RlIH0gZnJvbSBcIi4uLy4uL2VudW1zXCI7XHJcbmltcG9ydCB7IEdlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24vZ2VuZXJpYy12YWxpZGF0aW9uLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTGF5b3V0SGVscGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9sYXlvdXQvbGF5b3V0LWhlbHBlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IElucHV0UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24vaW5wdXQtcmVnaXN0cnkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBGb3JtU3RhdGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2Zvcm0vZm9ybS1zdGF0ZVwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAndHNpLWlucHV0LWJhc2UnLCB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRzaUlucHV0QmFzZTxUID0gYW55PiBleHRlbmRzIFRzaUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLy8jcmVnaW9uIHByb3BzXHJcbiAgICBwcml2YXRlIF9lbnRpdHlWYWxpZGF0aW9uSW5mb3NMb2FkZWRTdWI/OiBTdWJzY3JpcHRpb247XHJcbiAgICBwcm90ZWN0ZWQgZ2VuZXJpY1ZhbGlkYXRpb25TdGF0ZVNlcnZpY2U/OiBHZW5lcmljVmFsaWRhdGlvblN0YXRlU2VydmljZSA9IGluamVjdChHZW5lcmljVmFsaWRhdGlvblN0YXRlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIF9mb3JtU3RhdGVDaGFuZ2VTdWI/OiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9mb3JtU3RhdGU6IEZvcm1TdGF0ZSA9IHsgaXNWYWxpZDogZmFsc2UsIGlzU3VibWl0dGVkOiBmYWxzZSB9O1xyXG4gICAgcHJpdmF0ZSBfbGF5b3V0SGVscGVyU2VydmljZTogTGF5b3V0SGVscGVyU2VydmljZSA9IGluamVjdChMYXlvdXRIZWxwZXJTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgX2lucHV0RmllbGQhOiBUO1xyXG4gICAgcHJpdmF0ZSBfaXNEaXJ0eSA6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICAgcHJpdmF0ZSBfaW5wdXRSZWdpc3RyeSA9IGluamVjdChJbnB1dFJlZ2lzdHJ5U2VydmljZSk7XHJcbiAgICBwcml2YXRlIF9sb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG5cclxuICAgIHByb3RlY3RlZCBsb2NhbGU6IExvY2FsZUNvZGU7XHJcbiAgICBwcm90ZWN0ZWQgaXNJbnB1dE5hbWVOb3RGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIG1heExlbmd0aCA6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIHB1YmxpYyBpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGdldCBpc0RpcnR5KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RpcnR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpc0RpcnR5KHZhbDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzRGlydHkgPSB2YWw7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgdmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzOiBzdHJpbmcgPSAnJztcclxuICAgIC8vI2VuZHJlZ2lvblxyXG4gICAgXHJcbiAgICAvLyNyZWdpb24gSW5wdXRzXHJcbiAgICBASW5wdXQoKSBpbnB1dE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA7XHJcbiAgICBASW5wdXQoKSBpbnB1dElkPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHBsYWNlSG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICAgIEBJbnB1dCgpIHNldFBsYWNlSG9sZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBpbmZvVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgQElucHV0KCkgZ2V0IGlucHV0RmllbGQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0RmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGlucHV0RmllbGQodmFsOiBUKSB7XHJcbiAgICAgICAgdGhpcy5faW5wdXRGaWVsZCA9IHZhbDtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBjdG9yXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RSZWY/OiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGNkUmVmKTtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9ICB0aGlzLl9sb2NhbGl6YXRpb25TZXJ2aWNlLmxvY2FsZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faW5wdXRSZWdpc3RyeS5yZWdpc3Rlcih0aGlzKTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBMaWZlY3ljbGUgaG9va3NcclxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckVudGl0eVZhbGlkYXRpb25JbmZvc0xvYWRlZEhhbmRsZXIoKTtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRm9ybVN0YXRlQ2hhbmdlc0hhbmRsZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbnRpdHlWYWxpZGF0aW9uSW5mb3NMb2FkZWRTdWI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fZm9ybVN0YXRlQ2hhbmdlU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX2lucHV0UmVnaXN0cnkudW5yZWdpc3Rlcih0aGlzKTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxuICAgIHByaXZhdGUgY2FsY3VsYXRlVmFsaWRhdGlvblN0YXR1cygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5wdXROYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzID0gXCJib3JkZXItY3lhbi0zMDAgYm9yZGVyLTNcIjtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBpbnB1dCBuYW1lIHdhcyBwcm92aWRlZCAhJylcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5nZW5lcmljVmFsaWRhdGlvblN0YXRlU2VydmljZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdmFsaWRhdGlvbkluZm9zID0gdGhpcy5nZW5lcmljVmFsaWRhdGlvblN0YXRlU2VydmljZS5nZXRWYWxpZGF0aW9uSW5mb3ModGhpcy5pbnB1dE5hbWUpO1xyXG4gICAgICAgIGlmICghdmFsaWRhdGlvbkluZm9zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnB1dE5hbWVOb3RGb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHZhbGlkYXRpb25JbmZvcy5pc051bGxhYmxlICE9PSB0cnVlO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID0gdmFsaWRhdGlvbkluZm9zLm1heExlbmd0aDtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZWdpc3RlckVudGl0eVZhbGlkYXRpb25JbmZvc0xvYWRlZEhhbmRsZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmdlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlLmlzRW50aXR5VmFsaWRhdGlvbkluZm9zTG9hZGVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVWYWxpZGF0aW9uU3RhdHVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlVmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VudGl0eVZhbGlkYXRpb25JbmZvc0xvYWRlZFN1YiA9IHRoaXMuZ2VuZXJpY1ZhbGlkYXRpb25TdGF0ZVNlcnZpY2VcclxuICAgICAgICAgICAgLmVudGl0eVZhbGlkYXRpb25JbmZvc0xvYWRlZFxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlVmFsaWRhdGlvblN0YXR1cygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVWYWxpZGF0aW9uU3RhdHVzQ3NzQ2xhc3MoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZWdpc3RlckZvcm1TdGF0ZUNoYW5nZXNIYW5kbGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5nZW5lcmljVmFsaWRhdGlvblN0YXRlU2VydmljZSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLl9mb3JtU3RhdGVDaGFuZ2VTdWIgPSB0aGlzLmdlbmVyaWNWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mb3JtU3RhdGVDaGFuZ2VcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZm9ybVN0YXRlOiBGb3JtU3RhdGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1TdGF0ZSA9IHsgLi4uZm9ybVN0YXRlIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVZhbGlkYXRpb25TdGF0dXNDc3NDbGFzcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZVZhbGlkYXRpb25TdGF0dXNDc3NDbGFzcygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc0lucHV0TmFtZU5vdEZvdW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzID0gdGhpcy5fbGF5b3V0SGVscGVyU2VydmljZT8ubGF5b3V0Q29uZmlndXJhdGlvbj8uaXNDb2xvcmZ1bE1vZGVFbmFibGVkID09PSB0cnVlXHJcbiAgICAgICAgICAgID8gJ2JvcmRlci1jeWFuLTMwMCBib3JkZXItMydcclxuICAgICAgICAgICAgOiAnYm9yZGVyLWJsdWUtNTAwIGJvcmRlci0zJztcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGlzVmFsaWQgPSB0aGlzLmlzVmFsaWQoKS5pc1ZhbGlkO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXR1c0Nzc0NsYXNzID0gdGhpcy5pc1JlcXVpcmVkXHJcbiAgICAgICAgICAgID8gKHRoaXMuX2Zvcm1TdGF0ZS5pc1N1Ym1pdHRlZCAmJiAhaXNWYWxpZCA/ICdib3JkZXItcmVkLTUwMCBib3JkZXItMycgOiAnYm9yZGVyLWdyYXktOTAwIGJvcmRlci0zJylcclxuICAgICAgICAgICAgOiAnJztcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIHB1YmxpYyBpc1ZhbGlkKCk6IEZvcm1WYWxpZGl0eVJlc3VsdCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZXF1aXJlZCA9PT0gZmFsc2UgJiYgdGhpcy5tYXhMZW5ndGggPT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpc1ZhbGlkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIGlucHV0TmFtZTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc1JlcXVpcmVkID09PSB0cnVlICYmIHRoaXMuaW5wdXRGaWVsZCA9PT0gbnVsbCB8fCB0aGlzLmlucHV0RmllbGQgPT09IHVuZGVmaW5lZCB8fCBcclxuICAgICAgICAgICAodHlwZW9mIHRoaXMuaW5wdXRGaWVsZCA9PT0gJ3N0cmluZycgJiYgdGhpcy5pbnB1dEZpZWxkLnRyaW0oKS5sZW5ndGggPT09IDApKXtcclxuICAgICAgICAgICAgcmV0dXJuIHsgXHJcbiAgICAgICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBGb3JtVmFsaWRhdGlvbkVycm9yLlJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgaW5wdXROYW1lOiB0aGlzLmlucHV0TmFtZSxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW5wdXRGaWVsZCA9PT0gJ3N0cmluZycgJiYgdGhpcy5tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMuaW5wdXRGaWVsZC50cmltKCkubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBcclxuICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGxlbmd0aCA8PSB0aGlzLm1heExlbmd0aCxcclxuICAgICAgICAgICAgICAgIGlucHV0TmFtZTogdGhpcy5pbnB1dE5hbWUsXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogbGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoID8gdW5kZWZpbmVkIDogRm9ybVZhbGlkYXRpb25FcnJvci5NYXhMZW5ndGggLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogbGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoID8gdW5kZWZpbmVkIDogdGhpcy5tYXhMZW5ndGhcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IHRydWUsXHJcbiAgICAgICAgICAgIGVycm9yOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIGlucHV0TmFtZTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBkYXRhOiB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59Il19
|