@osovitny/anatoly 2.0.51 → 2.0.53
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/bundles/osovitny-anatoly.umd.js +92 -90
- package/bundles/osovitny-anatoly.umd.js.map +1 -1
- package/esm2015/lib/core/consts/settings.js +2 -2
- package/esm2015/lib/core/convert.js +2 -2
- package/esm2015/lib/core/go/base-go.service.js +2 -2
- package/esm2015/lib/core/guards/once-import.guard.js +2 -2
- package/esm2015/lib/core/guid.js +2 -2
- package/esm2015/lib/core/interceptors/httpInterceptor.js +2 -2
- package/esm2015/lib/core/localization/localization.module.js +2 -2
- package/esm2015/lib/core/localization/localization.service.js +2 -2
- package/esm2015/lib/core/localization/localizationSettings.module.js +2 -2
- package/esm2015/lib/core/localization/localize.pipe.js +2 -2
- package/esm2015/lib/core/localization/utils.js +2 -2
- package/esm2015/lib/core/logging/globalErrorHandler.js +2 -2
- package/esm2015/lib/core/logging/logging.service.js +2 -2
- package/esm2015/lib/core/notifications/alerts.js +2 -2
- package/esm2015/lib/core/notifications/interfaces/notification.js +2 -2
- package/esm2015/lib/core/notifications/services/notification-service.js +2 -2
- package/esm2015/lib/core/services/appcontext.service.js +2 -2
- package/esm2015/lib/core/services/dm.service.js +2 -2
- package/esm2015/lib/core/services/google-analytics.service.js +2 -2
- package/esm2015/lib/core/services/idle.service.js +2 -2
- package/esm2015/lib/core/services/loading.service.js +2 -2
- package/esm2015/lib/core/services/web-storage.service.js +2 -2
- package/esm2015/lib/core/subs.js +2 -2
- package/esm2015/lib/core/utils.js +2 -2
- package/esm2015/lib/data/base/base-api.service.js +2 -2
- package/esm2015/lib/data/base/grid/base-grid-edit.service.js +2 -2
- package/esm2015/lib/data/base/grid/base-grid-read.service.js +2 -2
- package/esm2015/lib/data/consts.js +2 -2
- package/esm2015/lib/data/data.module.js +2 -2
- package/esm2015/lib/data/services/billing-api.service.js +2 -2
- package/esm2015/lib/data/services/notifications/notifications-api-service.js +2 -2
- package/esm2015/lib/ui/components/base-edit.component.js +2 -2
- package/esm2015/lib/ui/components/base.component.js +2 -2
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +2 -2
- package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +2 -2
- package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +2 -2
- package/esm2015/lib/ui/components/content-header/content-header.component.js +2 -2
- package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +7 -5
- package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +2 -2
- package/esm2015/lib/ui/components/html-editor/html-editor.component.js +2 -2
- package/esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js +2 -2
- package/esm2015/lib/ui/components/identity/signin-button.component.js +2 -2
- package/esm2015/lib/ui/components/identity/signout-button.component.js +2 -2
- package/esm2015/lib/ui/components/identity/signup-button.component.js +2 -2
- package/esm2015/lib/ui/components/loading/loading.component.js +2 -2
- package/esm2015/lib/ui/components/spinner/spinner.component.js +2 -2
- package/esm2015/lib/ui/directives/native-element.directive.js +2 -2
- package/esm2015/lib/ui/pipes/filesize.pipe.js +2 -2
- package/esm2015/lib/ui/pipes/replace-text.pipe.js +2 -2
- package/esm2015/lib/ui/pipes/safeHtml.pipe.js +2 -2
- package/esm2015/lib/ui/ui.module.js +44 -37
- package/esm2015/lib/ui/validation/form-validation-summary.component.js +2 -2
- package/esm2015/lib/ui/validation/item-validation-summary.component.js +2 -2
- package/esm2015/lib/ui/validation/validation-summary.component.js +24 -21
- package/fesm2015/osovitny-anatoly.js +96 -86
- package/fesm2015/osovitny-anatoly.js.map +1 -1
- package/lib/ui/ui.module.d.ts +1 -1
- package/lib/ui/validation/validation-summary.component.d.ts +4 -4
- package/osovitny-anatoly.metadata.json +1 -1
- package/package.json +4 -4
- package/assets/styles/alerts.less +0 -182
- package/assets/styles/spinner.less +0 -64
- package/assets/styles/toastr.less +0 -192
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Version:
|
|
14
14
|
1.0
|
|
15
15
|
|
|
16
|
-
Copyright (c) 2016-
|
|
16
|
+
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
19
|
// Node
|
|
@@ -61,4 +61,4 @@ FormValidationSummaryComponent.propDecorators = {
|
|
|
61
61
|
customerrors: [{ type: Input }],
|
|
62
62
|
viewtype: [{ type: Input }]
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU01RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBVzVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFYRCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBRXJDOzs7O1VBSUU7UUFDTyxhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBSTlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUI7UUFFRCxJQUFJLHNCQUFzQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxzQkFBc0IsQ0FBQztTQUMvQjtRQUVELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLHNCQUFzQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7O1lBdkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUNBQWlDO2dCQUMzQyx5UEFBdUQ7YUFDeEQ7Ozs7c0JBRUUsS0FBSzsyQkFDTCxLQUFLO3VCQU9MLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA3IERlYyAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gXCIuL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFuYXRvbHktZm9ybS12YWxpZGF0aW9uLXN1bW1hcnlcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2Zvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5odG1sXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgZXh0ZW5kcyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWVycm9yczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgLypcclxuICAgIDAgLSBvbmx5IEZvcm1WYWxpZGF0aW9uIG1lc3NhZ2VzXHJcbiAgICAxIC0gb25seSBDdXN0b20gbWVzc2FnZXNcclxuICAgIDIgLSBhbGxcclxuICAqLyBcclxuICBASW5wdXQoKSB2aWV3dHlwZTogbnVtYmVyID0gMDsgXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGdldEVycm9ycygpIHtcclxuICAgIGlmICh0aGlzLnZpZXd0eXBlID09IDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzID0gdGhpcy5nZXRGb3JtVmFsaWRhdGlvbk1lc3NhZ2VzKCk7XHJcbiAgICBpZiAodGhpcy52aWV3dHlwZSA9PSAwKSB7XHJcbiAgICAgIHJldHVybiBmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBtZXNzYWdlcyA9IFtdO1xyXG4gICAgaWYgKGZvcm1WYWxpZGF0aW9uTWVzc2FnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKC4uLmZvcm1WYWxpZGF0aW9uTWVzc2FnZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbWVycm9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIG1lc3NhZ2VzLnB1c2goLi4udGhpcy5jdXN0b21lcnJvcnMpO1xyXG4gICAgfSAgIFxyXG5cclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Version:
|
|
14
14
|
1.0
|
|
15
15
|
|
|
16
|
-
Copyright (c) 2016-
|
|
16
|
+
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
19
|
// Node
|
|
@@ -35,4 +35,4 @@ ItemValidationSummaryComponent.propDecorators = {
|
|
|
35
35
|
controlName: [{ type: Input }],
|
|
36
36
|
controlTitle: [{ type: Input }]
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU01RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBSTVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzs7WUFWRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0MsbVFBQXVEO2FBQ3hEOzs7OzBCQUVFLEtBQUs7MkJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDYgRGVjIDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xUaXRsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
Version:
|
|
14
14
|
1.0
|
|
15
15
|
|
|
16
|
-
Copyright (c) 2016-
|
|
16
|
+
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
19
|
// Node
|
|
20
|
-
import {
|
|
20
|
+
import { Component } from "@angular/core";
|
|
21
21
|
//Custom
|
|
22
22
|
import { BaseEditComponent } from "../components/base-edit.component";
|
|
23
23
|
export class ValidationSummaryComponent extends BaseEditComponent {
|
|
@@ -26,16 +26,16 @@ export class ValidationSummaryComponent extends BaseEditComponent {
|
|
|
26
26
|
}
|
|
27
27
|
getFormValidationMessages() {
|
|
28
28
|
let messages = [];
|
|
29
|
-
Object.keys(this.formGroup.controls).forEach(k => {
|
|
29
|
+
Object.keys(this.formGroup.controls).forEach((k) => {
|
|
30
30
|
var control = this.formGroup.controls[k];
|
|
31
31
|
if (control.controls != null) {
|
|
32
|
-
Object.keys(control.controls).forEach(k => {
|
|
32
|
+
Object.keys(control.controls).forEach((k) => {
|
|
33
33
|
var child = control.controls[k];
|
|
34
|
-
this.getValidationMessages(child, this.getControlName(child, k)).forEach(m => messages.push(m));
|
|
34
|
+
this.getValidationMessages(child, this.getControlName(child, k)).forEach((m) => messages.push(m));
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
|
-
this.getValidationMessages(control, this.getControlName(control, k)).forEach(m => messages.push(m));
|
|
38
|
+
this.getValidationMessages(control, this.getControlName(control, k)).forEach((m) => messages.push(m));
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
return messages;
|
|
@@ -47,22 +47,22 @@ export class ValidationSummaryComponent extends BaseEditComponent {
|
|
|
47
47
|
for (let errorName in state.errors) {
|
|
48
48
|
if (state.errors.hasOwnProperty(errorName)) {
|
|
49
49
|
switch (errorName) {
|
|
50
|
-
case
|
|
50
|
+
case "required":
|
|
51
51
|
messages.push(`${thing} is required`);
|
|
52
52
|
break;
|
|
53
|
-
case
|
|
53
|
+
case "minlength":
|
|
54
54
|
messages.push(`${thing} must be at least ${state.errors["minlength"].requiredLength} characters`);
|
|
55
55
|
break;
|
|
56
|
-
case
|
|
56
|
+
case "pattern":
|
|
57
57
|
messages.push(`${thing} contains illegal characters`);
|
|
58
58
|
break;
|
|
59
|
-
case
|
|
59
|
+
case "format":
|
|
60
60
|
messages.push(`${thing} format mismatch`);
|
|
61
61
|
break;
|
|
62
|
-
case
|
|
62
|
+
case "maxlength":
|
|
63
63
|
messages.push(`${thing} must have maximum ${state.errors["maxlength"].requiredLength} characters`);
|
|
64
64
|
break;
|
|
65
|
-
case
|
|
65
|
+
case "specialcharacters":
|
|
66
66
|
messages.push(`${thing} contains special characters`);
|
|
67
67
|
break;
|
|
68
68
|
}
|
|
@@ -72,10 +72,10 @@ export class ValidationSummaryComponent extends BaseEditComponent {
|
|
|
72
72
|
return messages;
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
* Get Control Name
|
|
76
|
+
* @param control
|
|
77
|
+
* @param thingName
|
|
78
|
+
*/
|
|
79
79
|
getControlName(control, thingName) {
|
|
80
80
|
let value = this.getControlTitle(control);
|
|
81
81
|
return value ? value : thingName;
|
|
@@ -103,21 +103,24 @@ export class ValidationSummaryComponent extends BaseEditComponent {
|
|
|
103
103
|
// For Kendo time and date picker element title is assigned to the 4th child control.
|
|
104
104
|
case "KENDO-TIMEPICKER":
|
|
105
105
|
case "KENDO-DATEPICKER":
|
|
106
|
-
title =
|
|
106
|
+
title =
|
|
107
|
+
(_d = (_c = (_b = (_a = nativeElement.children[0]) === null || _a === void 0 ? void 0 : _a.children[0]) === null || _b === void 0 ? void 0 : _b.children[0]) === null || _c === void 0 ? void 0 : _c.children[0]) === null || _d === void 0 ? void 0 : _d.getAttribute("title");
|
|
107
108
|
break;
|
|
108
109
|
// For Kendo numaric element title is assigned to the 2nd child control.
|
|
109
110
|
case "KENDO-NUMERICTEXTBOX":
|
|
110
|
-
title = (_f = (_e = nativeElement.children[0]) === null || _e === void 0 ? void 0 : _e.children[0]) === null || _f === void 0 ? void 0 : _f.getAttribute(
|
|
111
|
+
title = (_f = (_e = nativeElement.children[0]) === null || _e === void 0 ? void 0 : _e.children[0]) === null || _f === void 0 ? void 0 : _f.getAttribute("title");
|
|
111
112
|
break;
|
|
112
113
|
default:
|
|
113
|
-
title = nativeElement.getAttribute(
|
|
114
|
+
title = nativeElement.getAttribute("title");
|
|
114
115
|
break;
|
|
115
116
|
}
|
|
116
117
|
return title;
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
120
|
ValidationSummaryComponent.decorators = [
|
|
120
|
-
{ type:
|
|
121
|
+
{ type: Component, args: [{
|
|
122
|
+
template: ""
|
|
123
|
+
},] }
|
|
121
124
|
];
|
|
122
125
|
ValidationSummaryComponent.ctorParameters = () => [];
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS92YWxpZGF0aW9uL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSXRFLE1BQU0sT0FBZ0IsMEJBQTJCLFNBQVEsaUJBQWlCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUU1QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9DLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpDLElBQWdCLE9BQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFhLE9BQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3JELElBQUksS0FBSyxHQUFlLE9BQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMs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QUUsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsMENBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRyxNQUFNO1lBRVIsd0VBQXdFO1lBQ3hFLEtBQUssc0JBQXNCO2dCQUN6QixLQUFLLEdBQUcsTUFBQSxNQUFBLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsMENBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0RSxNQUFNO1lBRVI7Z0JBQ0UsS0FBSyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVDLE1BQU07U0FDVDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBbEhGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA4IERlYyAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAxT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vL0N1c3RvbVxyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Jhc2UtZWRpdC5jb21wb25lbnRcIjtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIEJhc2VFZGl0Q29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtVmFsaWRhdGlvbk1lc3NhZ2VzKCk6IHN0cmluZ1tdIHtcclxuICAgIGxldCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChrID0+IHtcclxuICAgICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1trXTtcclxuXHJcbiAgICAgIGlmICgoPEZvcm1Hcm91cD5jb250cm9sKS5jb250cm9scyAhPSBudWxsKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoKDxGb3JtR3JvdXA+Y29udHJvbCkuY29udHJvbHMpLmZvckVhY2goayA9PiB7XHJcbiAgICAgICAgICB2YXIgY2hpbGQgPSAoPEZvcm1Hcm91cD5jb250cm9sKS5jb250cm9sc1trXTtcclxuICAgICAgICAgIHRoaXMuZ2V0VmFsaWRhdGlvbk1lc3NhZ2VzKGNoaWxkLCB0aGlzLmdldENvbnRyb2xOYW1lKGNoaWxkLCBrKSkuZm9yRWFjaChtID0+IG1lc3NhZ2VzLnB1c2gobSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ2V0VmFsaWRhdGlvbk1lc3NhZ2VzKGNvbnRyb2wsIHRoaXMuZ2V0Q29udHJvbE5hbWUoY29udHJvbCwgaykpLmZvckVhY2gobSA9PiBtZXNzYWdlcy5wdXNoKG0pKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2VzKHN0YXRlOiBhbnksIHRoaW5nTmFtZT86IHN0cmluZykge1xyXG4gICAgbGV0IHRoaW5nOiBzdHJpbmcgPSBzdGF0ZS5wYXRoIHx8IHRoaW5nTmFtZTtcclxuICAgIGxldCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBpZiAoc3RhdGUuZXJyb3JzKSB7XHJcbiAgICAgIGZvciAobGV0IGVycm9yTmFtZSBpbiBzdGF0ZS5lcnJvcnMpIHtcclxuICAgICAgICBpZiAoc3RhdGUuZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yTmFtZSkpIHtcclxuICAgICAgICAgIHN3aXRjaCAoZXJyb3JOYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcclxuICAgICAgICAgICAgICBtZXNzYWdlcy5wdXNoKGAke3RoaW5nfSBpcyByZXF1aXJlZGApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSAnbWlubGVuZ3RoJzpcclxuICAgICAgICAgICAgICBtZXNzYWdlcy5wdXNoKGAke3RoaW5nfSBtdXN0IGJlIGF0IGxlYXN0ICR7c3RhdGUuZXJyb3JzW1wibWlubGVuZ3RoXCJdLnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlICdwYXR0ZXJuJzpcclxuICAgICAgICAgICAgICBtZXNzYWdlcy5wdXNoKGAke3RoaW5nfSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnNgKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgJ2Zvcm1hdCc6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChgJHt0aGluZ30gZm9ybWF0IG1pc21hdGNoYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlICdtYXhsZW5ndGgnOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IG11c3QgaGF2ZSBtYXhpbXVtICR7c3RhdGUuZXJyb3JzW1wibWF4bGVuZ3RoXCJdLnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlICdzcGVjaWFsY2hhcmFjdGVycyc6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChgJHt0aGluZ30gY29udGFpbnMgc3BlY2lhbCBjaGFyYWN0ZXJzYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBHZXQgQ29udHJvbCBOYW1lXHJcbiAgKiBAcGFyYW0gY29udHJvbFxyXG4gICogQHBhcmFtIHRoaW5nTmFtZVxyXG4gICovXHJcbiAgZ2V0Q29udHJvbE5hbWUoY29udHJvbDogYW55LCB0aGluZ05hbWU/OiBzdHJpbmcpIHtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0Q29udHJvbFRpdGxlKGNvbnRyb2wpO1xyXG4gICAgcmV0dXJuIHZhbHVlID8gdmFsdWUgOiB0aGluZ05hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSB0aWx0ZSBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xcclxuICAgKi9cclxuICBnZXRDb250cm9sVGl0bGUoY29udHJvbDogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChjb250cm9sPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGxldCBjb250cm9sVGl0bGUgPSB0aGlzLmdldFRpdGxlQXR0cmlidXRlKGNvbnRyb2wubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgIGlmIChjb250cm9sVGl0bGUpIHtcclxuICAgICAgICByZXR1cm4gY29udHJvbFRpdGxlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiB0aXRsZSBhdHRyaWJ1dGUgb2YgZm9ybSBjb250cm9sXHJcbiAgICovXHJcbiAgZ2V0VGl0bGVBdHRyaWJ1dGUobmF0aXZlRWxlbWVudDogSFRNTEZvcm1FbGVtZW50KTogc3RyaW5nIHtcclxuICAgIGxldCB0aXRsZTogc3RyaW5nO1xyXG5cclxuICAgIHN3aXRjaCAobmF0aXZlRWxlbWVudC50YWdOYW1lKSB7XHJcbiAgICAgIC8vIEZvciBLZW5kbyB0aW1lIGFuZCBkYXRlIHBpY2tlciBlbGVtZW50IHRpdGxlIGlzIGFzc2lnbmVkIHRvIHRoZSA0dGggY2hpbGQgY29udHJvbC5cclxuICAgICAgY2FzZSBcIktFTkRPLVRJTUVQSUNLRVJcIjpcclxuICAgICAgY2FzZSBcIktFTkRPLURBVEVQSUNLRVJcIjpcclxuICAgICAgICB0aXRsZSA9IG5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmdldEF0dHJpYnV0ZSgndGl0bGUnKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIEZvciBLZW5kbyBudW1hcmljIGVsZW1lbnQgdGl0bGUgaXMgYXNzaWduZWQgdG8gdGhlIDJuZCBjaGlsZCBjb250cm9sLlxyXG4gICAgICBjYXNlIFwiS0VORE8tTlVNRVJJQ1RFWFRCT1hcIjpcclxuICAgICAgICB0aXRsZSA9IG5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdPy5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRpdGxlID0gbmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS92YWxpZGF0aW9uL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3RFLE1BQU0sT0FBZ0IsMEJBQTJCLFNBQVEsaUJBQWlCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUU1QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekMsSUFBZ0IsT0FBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQWEsT0FBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN2RCxJQUFJLEtBQUssR0FBZSxPQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMscUJBQXFCLENBQ3hCLEtBQUssRUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FDOUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFB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QyxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsMENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFlBQVksQ0FDNUUsT0FBTyxDQUNSLENBQUM7Z0JBQ0osTUFBTTtZQUVSLHdFQUF3RTtZQUN4RSxLQUFLLHNCQUFzQjtnQkFDekIsS0FBSyxHQUFHLE1BQUEsTUFBQSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEUsTUFBTTtZQUVSO2dCQUNFLEtBQUssR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1NBQ1Q7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQWhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDYiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDggRGVjIDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vL0N1c3RvbVxyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Jhc2UtZWRpdC5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBcIlwiLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVZhbGlkYXRpb25NZXNzYWdlcygpOiBzdHJpbmdbXSB7XHJcbiAgICBsZXQgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGspID0+IHtcclxuICAgICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1trXTtcclxuXHJcbiAgICAgIGlmICgoPEZvcm1Hcm91cD5jb250cm9sKS5jb250cm9scyAhPSBudWxsKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoKDxGb3JtR3JvdXA+Y29udHJvbCkuY29udHJvbHMpLmZvckVhY2goKGspID0+IHtcclxuICAgICAgICAgIHZhciBjaGlsZCA9ICg8Rm9ybUdyb3VwPmNvbnRyb2wpLmNvbnRyb2xzW2tdO1xyXG4gICAgICAgICAgdGhpcy5nZXRWYWxpZGF0aW9uTWVzc2FnZXMoXHJcbiAgICAgICAgICAgIGNoaWxkLFxyXG4gICAgICAgICAgICB0aGlzLmdldENvbnRyb2xOYW1lKGNoaWxkLCBrKVxyXG4gICAgICAgICAgKS5mb3JFYWNoKChtKSA9PiBtZXNzYWdlcy5wdXNoKG0pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdldFZhbGlkYXRpb25NZXNzYWdlcyhcclxuICAgICAgICAgIGNvbnRyb2wsXHJcbiAgICAgICAgICB0aGlzLmdldENvbnRyb2xOYW1lKGNvbnRyb2wsIGspXHJcbiAgICAgICAgKS5mb3JFYWNoKChtKSA9PiBtZXNzYWdlcy5wdXNoKG0pKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2VzKHN0YXRlOiBhbnksIHRoaW5nTmFtZT86IHN0cmluZykge1xyXG4gICAgbGV0IHRoaW5nOiBzdHJpbmcgPSBzdGF0ZS5wYXRoIHx8IHRoaW5nTmFtZTtcclxuICAgIGxldCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBpZiAoc3RhdGUuZXJyb3JzKSB7XHJcbiAgICAgIGZvciAobGV0IGVycm9yTmFtZSBpbiBzdGF0ZS5lcnJvcnMpIHtcclxuICAgICAgICBpZiAoc3RhdGUuZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yTmFtZSkpIHtcclxuICAgICAgICAgIHN3aXRjaCAoZXJyb3JOYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGlzIHJlcXVpcmVkYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwibWlubGVuZ3RoXCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChcclxuICAgICAgICAgICAgICAgIGAke3RoaW5nfSBtdXN0IGJlIGF0IGxlYXN0ICR7c3RhdGUuZXJyb3JzW1wibWlubGVuZ3RoXCJdLnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzYFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwicGF0dGVyblwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGNvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVyc2ApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcImZvcm1hdFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGZvcm1hdCBtaXNtYXRjaGApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcIm1heGxlbmd0aFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goXHJcbiAgICAgICAgICAgICAgICBgJHt0aGluZ30gbXVzdCBoYXZlIG1heGltdW0gJHtzdGF0ZS5lcnJvcnNbXCJtYXhsZW5ndGhcIl0ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJzcGVjaWFsY2hhcmFjdGVyc1wiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGNvbnRhaW5zIHNwZWNpYWwgY2hhcmFjdGVyc2ApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBDb250cm9sIE5hbWVcclxuICAgKiBAcGFyYW0gY29udHJvbFxyXG4gICAqIEBwYXJhbSB0aGluZ05hbWVcclxuICAgKi9cclxuICBnZXRDb250cm9sTmFtZShjb250cm9sOiBhbnksIHRoaW5nTmFtZT86IHN0cmluZykge1xyXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRDb250cm9sVGl0bGUoY29udHJvbCk7XHJcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZSA6IHRoaW5nTmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIHRpbHRlIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbFxyXG4gICAqL1xyXG4gIGdldENvbnRyb2xUaXRsZShjb250cm9sOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKGNvbnRyb2w/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgbGV0IGNvbnRyb2xUaXRsZSA9IHRoaXMuZ2V0VGl0bGVBdHRyaWJ1dGUoY29udHJvbC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgaWYgKGNvbnRyb2xUaXRsZSkge1xyXG4gICAgICAgIHJldHVybiBjb250cm9sVGl0bGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIHRpdGxlIGF0dHJpYnV0ZSBvZiBmb3JtIGNvbnRyb2xcclxuICAgKi9cclxuICBnZXRUaXRsZUF0dHJpYnV0ZShuYXRpdmVFbGVtZW50OiBIVE1MRm9ybUVsZW1lbnQpOiBzdHJpbmcge1xyXG4gICAgbGV0IHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgc3dpdGNoIChuYXRpdmVFbGVtZW50LnRhZ05hbWUpIHtcclxuICAgICAgLy8gRm9yIEtlbmRvIHRpbWUgYW5kIGRhdGUgcGlja2VyIGVsZW1lbnQgdGl0bGUgaXMgYXNzaWduZWQgdG8gdGhlIDR0aCBjaGlsZCBjb250cm9sLlxyXG4gICAgICBjYXNlIFwiS0VORE8tVElNRVBJQ0tFUlwiOlxyXG4gICAgICBjYXNlIFwiS0VORE8tREFURVBJQ0tFUlwiOlxyXG4gICAgICAgIHRpdGxlID1cclxuICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmdldEF0dHJpYnV0ZShcclxuICAgICAgICAgICAgXCJ0aXRsZVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gRm9yIEtlbmRvIG51bWFyaWMgZWxlbWVudCB0aXRsZSBpcyBhc3NpZ25lZCB0byB0aGUgMm5kIGNoaWxkIGNvbnRyb2wuXHJcbiAgICAgIGNhc2UgXCJLRU5ETy1OVU1FUklDVEVYVEJPWFwiOlxyXG4gICAgICAgIHRpdGxlID0gbmF0aXZlRWxlbWVudC5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmdldEF0dHJpYnV0ZShcInRpdGxlXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aXRsZSA9IG5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxufVxyXG4iXX0=
|