@fundamental-ngx/platform 0.48.0-rc.30 → 0.48.0-rc.32
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/button/button.component.d.ts +2 -4
- package/esm2022/button/button.component.mjs +3 -7
- package/esm2022/feed-input/feed-input.component.mjs +4 -4
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +18 -4
- package/esm2022/form/form-group/form-field/form-field.component.mjs +14 -19
- package/esm2022/form/form-group/form-group.component.mjs +7 -14
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -4
- package/esm2022/form/multi-input/multi-input.component.mjs +7 -8
- package/esm2022/link/link.component.mjs +9 -16
- package/esm2022/shared/form/base.input.mjs +27 -11
- package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +3 -3
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +4 -4
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +19 -44
- package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +9 -7
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +72 -56
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +5 -3
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +3 -3
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +4 -4
- package/esm2022/table/table.component.mjs +7 -4
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +2 -2
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +4 -4
- package/esm2022/variant-management/variant-management.component.mjs +24 -9
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +4 -4
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-button.mjs +2 -6
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +43 -42
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +8 -15
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +28 -11
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +97 -104
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +16 -12
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +25 -11
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +5 -5
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/form-generator/form-generator/form-generator.component.d.ts +2 -0
- package/form/form-group/form-field/form-field.component.d.ts +4 -6
- package/form/form-group/form-group.component.d.ts +2 -5
- package/fundamental-ngx-platform-v0.48.0-rc.32.tgz +0 -0
- package/link/link.component.d.ts +2 -4
- package/package.json +4 -4
- package/shared/form/base.input.d.ts +10 -2
- package/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.d.ts +8 -17
- package/smart-filter-bar/directives/smart-filter-bar-subject.directive.d.ts +2 -0
- package/smart-filter-bar/smart-filter-bar.component.d.ts +28 -22
- package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +3 -1
- package/table/table.component.d.ts +4 -2
- package/variant-management/variant-management.component.d.ts +5 -1
- package/fundamental-ngx-platform-v0.48.0-rc.30.tgz +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
|
|
2
2
|
import { ModuleDeprecation, Nullable } from '@fundamental-ngx/cdk/utils';
|
|
3
3
|
import { ButtonType, GlyphPosition } from '@fundamental-ngx/core/button';
|
|
4
4
|
import { IconFont } from '@fundamental-ngx/core/icon';
|
|
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
* @deprecated
|
|
9
9
|
* Button component is deprecated. Use `fd-button` from `@fundamental-ngx/core` instead.
|
|
10
10
|
*/
|
|
11
|
-
export declare class ButtonComponent extends BaseComponent
|
|
11
|
+
export declare class ButtonComponent extends BaseComponent {
|
|
12
12
|
protected _changeDetector: ChangeDetectorRef;
|
|
13
13
|
private _elementRef;
|
|
14
14
|
/** Position of glyph related to text */
|
|
@@ -79,8 +79,6 @@ export declare class ButtonComponent extends BaseComponent implements AfterViewI
|
|
|
79
79
|
private _ariaPressed;
|
|
80
80
|
/** @hidden */
|
|
81
81
|
constructor(_changeDetector: ChangeDetectorRef, _elementRef: ElementRef);
|
|
82
|
-
/** @hidden */
|
|
83
|
-
ngAfterViewInit(): void;
|
|
84
82
|
/**
|
|
85
83
|
* Handles button click
|
|
86
84
|
*/
|
|
@@ -52,10 +52,6 @@ export class ButtonComponent extends BaseComponent {
|
|
|
52
52
|
this.tabIndex = '-1';
|
|
53
53
|
warnOnce("Platform's ButtonComponent is deprecated and will be removed in the next major release. Consider using Core's ButtonComponent instead.");
|
|
54
54
|
}
|
|
55
|
-
/** @hidden */
|
|
56
|
-
ngAfterViewInit() {
|
|
57
|
-
this._elementRef.nativeElement.childNodes[0].classList.add('fd-ellipsis');
|
|
58
|
-
}
|
|
59
55
|
/**
|
|
60
56
|
* Handles button click
|
|
61
57
|
*/
|
|
@@ -63,11 +59,11 @@ export class ButtonComponent extends BaseComponent {
|
|
|
63
59
|
this.buttonClicked.emit($event);
|
|
64
60
|
}
|
|
65
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ButtonComponent, isStandalone: true, selector: "fdp-button", inputs: { glyphPosition: "glyphPosition", label: "label", glyph: "glyph", glyphFont: "glyphFont", buttonType: "buttonType", toggled: "toggled", title: "title", ariaSelected: "ariaSelected", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaControlsId: "ariaControlsId", ariaPressed: "ariaPressed", name: "name", type: "type", value: "value" }, outputs: { buttonClicked: "buttonClicked" }, host: { properties: { "attr.tabindex": "this.tabIndex" } }, usesInheritance: true, ngImport: i0, template: "<button\n #fdButton\n fd-button\n [attr.id]=\"id\"\n [attr.title]=\"title\"\n [attr.name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [attr.aria-controls]=\"ariaControlsId\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.value]=\"value\"\n [glyphPosition]=\"glyphPosition\"\n [label]=\"label\"\n [type]=\"type\"\n [toggled]=\"toggled || ariaPressed || ariaSelected\"\n [glyph]=\"glyph\"\n [glyphFont]=\"glyphFont\"\n [disabled]=\"disabled\"\n [fdType]=\"buttonType\"\n [class.is-disabled]=\"ariaDisabled\"\n [style.width]=\"width\"\n (click)=\"onBtnClick($event)\"\n></button>\n", styles: [":host{display:inline-block}:host(:focus){outline:none}.fd-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}\n"], dependencies: [{ kind: "component", type: CoreButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }] }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ButtonComponent, isStandalone: true, selector: "fdp-button", inputs: { glyphPosition: "glyphPosition", label: "label", glyph: "glyph", glyphFont: "glyphFont", buttonType: "buttonType", toggled: "toggled", title: "title", ariaSelected: "ariaSelected", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaControlsId: "ariaControlsId", ariaPressed: "ariaPressed", name: "name", type: "type", value: "value" }, outputs: { buttonClicked: "buttonClicked" }, host: { properties: { "attr.tabindex": "this.tabIndex" } }, usesInheritance: true, ngImport: i0, template: "<button\n #fdButton\n fd-button\n [attr.id]=\"id\"\n [attr.title]=\"title\"\n [attr.name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [attr.aria-controls]=\"ariaControlsId\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.value]=\"value\"\n [glyphPosition]=\"glyphPosition\"\n [label]=\"label\"\n [type]=\"type\"\n [toggled]=\"toggled || ariaPressed || ariaSelected\"\n [glyph]=\"glyph\"\n [glyphFont]=\"glyphFont\"\n [disabled]=\"disabled\"\n [fdType]=\"buttonType\"\n class=\"fd-ellipsis\"\n [class.is-disabled]=\"ariaDisabled\"\n [style.width]=\"width\"\n (click)=\"onBtnClick($event)\"\n></button>\n", styles: [":host{display:inline-block}:host(:focus){outline:none}.fd-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}\n"], dependencies: [{ kind: "component", type: CoreButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }] }); }
|
|
67
63
|
}
|
|
68
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
69
65
|
type: Component,
|
|
70
|
-
args: [{ selector: 'fdp-button', standalone: true, imports: [CoreButtonComponent], template: "<button\n #fdButton\n fd-button\n [attr.id]=\"id\"\n [attr.title]=\"title\"\n [attr.name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [attr.aria-controls]=\"ariaControlsId\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.value]=\"value\"\n [glyphPosition]=\"glyphPosition\"\n [label]=\"label\"\n [type]=\"type\"\n [toggled]=\"toggled || ariaPressed || ariaSelected\"\n [glyph]=\"glyph\"\n [glyphFont]=\"glyphFont\"\n [disabled]=\"disabled\"\n [fdType]=\"buttonType\"\n [class.is-disabled]=\"ariaDisabled\"\n [style.width]=\"width\"\n (click)=\"onBtnClick($event)\"\n></button>\n", styles: [":host{display:inline-block}:host(:focus){outline:none}.fd-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}\n"] }]
|
|
66
|
+
args: [{ selector: 'fdp-button', standalone: true, imports: [CoreButtonComponent], template: "<button\n #fdButton\n fd-button\n [attr.id]=\"id\"\n [attr.title]=\"title\"\n [attr.name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [attr.aria-controls]=\"ariaControlsId\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.value]=\"value\"\n [glyphPosition]=\"glyphPosition\"\n [label]=\"label\"\n [type]=\"type\"\n [toggled]=\"toggled || ariaPressed || ariaSelected\"\n [glyph]=\"glyph\"\n [glyphFont]=\"glyphFont\"\n [disabled]=\"disabled\"\n [fdType]=\"buttonType\"\n class=\"fd-ellipsis\"\n [class.is-disabled]=\"ariaDisabled\"\n [style.width]=\"width\"\n (click)=\"onBtnClick($event)\"\n></button>\n", styles: [":host{display:inline-block}:host(:focus){outline:none}.fd-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}\n"] }]
|
|
71
67
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { glyphPosition: [{
|
|
72
68
|
type: Input
|
|
73
69
|
}], label: [{
|
|
@@ -128,4 +124,4 @@ export class DeprecatedButtonAriaPressed {
|
|
|
128
124
|
};
|
|
129
125
|
}
|
|
130
126
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQStCLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25GLE9BQU8sRUFBYyxlQUFlLElBQUksbUJBQW1CLEVBQWlCLE1BQU0sOEJBQThCLENBQUM7QUFDakgsT0FBTyxFQUFFLDJCQUEyQixFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUVqRTs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBc0M5Qzs7T0FFRztJQUNILElBQ0ksWUFBWSxDQUFDLEtBQXdCO1FBQ3JDLFFBQVEsQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQXFCRDs7T0FFRztJQUNILElBQ0ksV0FBVyxDQUFDLEtBQXdCO1FBQ3BDLFFBQVEsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQWtDRCxjQUFjO0lBQ2QsWUFDYyxlQUFrQyxFQUNwQyxXQUF1QjtRQUUvQixLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFIYixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFySG5DLHdDQUF3QztRQUV4QyxrQkFBYSxHQUFrQixRQUFRLENBQUM7UUFleEMsd0JBQXdCO1FBRXhCLGNBQVMsR0FBYSwyQkFBMkIsQ0FBQztRQUVsRDs7O3VEQUcrQztRQUUvQyxlQUFVLEdBQWUsVUFBVSxDQUFDO1FBdUVwQyx3Q0FBd0M7UUFFeEMsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RDs7O1dBR0c7UUFFSCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBY1osUUFBUSxDQUNKLHdJQUF3SSxDQUMzSSxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLE1BQVc7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0F4SVEsZUFBZTtrR0FBZixlQUFlLDRpQkMzQjVCLHVxQkF1QkEsd01ERWMsbUJBQW1COzsyRkFFcEIsZUFBZTtrQkFQM0IsU0FBUzsrQkFDSSxZQUFZLGNBR1YsSUFBSSxXQUNQLENBQUMsbUJBQW1CLENBQUM7K0dBSzlCLGFBQWE7c0JBRFosS0FBSztnQkFPTixLQUFLO3NCQURKLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFRTixVQUFVO3NCQURULEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQU1OLEtBQUs7c0JBREosS0FBSztnQkFPRixZQUFZO3NCQURmLEtBQUs7Z0JBYU4sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLFlBQVk7c0JBRFgsS0FBSztnQkFRTixjQUFjO3NCQURiLEtBQUs7Z0JBT0YsV0FBVztzQkFEZCxLQUFLO2dCQWFOLElBQUk7c0JBREgsS0FBSztnQkFNTixJQUFJO3NCQURILEtBQUs7Z0JBTU4sS0FBSztzQkFESixLQUFLO2dCQUtOLGFBQWE7c0JBRFosTUFBTTtnQkFRUCxRQUFRO3NCQURQLFdBQVc7dUJBQUMsZUFBZTs7QUFpQ2hDLE1BQU0sT0FBTyw0QkFBNEI7SUFBekM7UUFDSSxjQUFjO1FBQ2QsWUFBTyxHQUFHLDRDQUE0QyxDQUFDO1FBRXZELGNBQWM7UUFDZCxnQkFBVyxHQUFHO1lBQ1YsSUFBSSxFQUFFLHNDQUFzQztZQUM1QyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO1lBQzdCLFFBQVEsRUFBRSxPQUFPO1NBQ3BCLENBQUM7SUFDTixDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0lBQXhDO1FBQ0ksY0FBYztRQUNkLFlBQU8sR0FBRywyQ0FBMkMsQ0FBQztRQUV0RCxjQUFjO1FBQ2QsZ0JBQVcsR0FBRztZQUNWLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQztZQUM3QixRQUFRLEVBQUUsT0FBTztTQUNwQixDQUFDO0lBQ04sQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1vZHVsZURlcHJlY2F0aW9uLCBOdWxsYWJsZSwgd2Fybk9uY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25UeXBlLCBCdXR0b25Db21wb25lbnQgYXMgQ29yZUJ1dHRvbkNvbXBvbmVudCwgR2x5cGhQb3NpdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZLCBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEJ1dHRvbiBjb21wb25lbnQgaXMgZGVwcmVjYXRlZC4gVXNlIGBmZC1idXR0b25gIGZyb20gYEBmdW5kYW1lbnRhbC1uZ3gvY29yZWAgaW5zdGVhZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb3JlQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIFBvc2l0aW9uIG9mIGdseXBoIHJlbGF0ZWQgdG8gdGV4dCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGhQb3NpdGlvbjogR2x5cGhQb3NpdGlvbiA9ICdiZWZvcmUnO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCByZW5kZXJlZCBpbnNpZGUgYnV0dG9uIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBUaGUgaWNvbiB0byBpbmNsdWRlIGluIHRoZSBidXR0b24uIFNlZSB0aGUgaWNvbiBwYWdlIGZvciB0aGUgbGlzdCBvZiBpY29ucy5cbiAgICAgKiBTZXR0ZXIgaXMgdXNlZCB0byBjb250cm9sIHdoZW4gY3NzIGNsYXNzIGhhdmUgdG8gYmUgcmVidWlsZGVkLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgc2V0IHRvICcnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IHN0cmluZztcblxuICAgIC8qKiBHbHlwaCBmb250IGZhbWlseSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGhGb250OiBJY29uRm9udCA9IEZEX0RFRkFVTFRfSUNPTl9GT05UX0ZBTUlMWTtcblxuICAgIC8qKiBUaGUgYnV0dG9uVHlwZSBvZiB0aGUgYnV0dG9uLiBUeXBlcyBpbmNsdWRlc1xuICAgICAnc3RhbmRhcmQnLCdwb3NpdGl2ZScsICduZWdhdGl2ZScsICdhdHRlbnRpb24nLCAnZ2hvc3QnLFxuICAgICAndHJhbnNwYXJlbnQnLCAnZW1waGFzaXplZCcsJ21lbnUnLlxuICAgICAqTGVhdmUgZW1wdHkgZm9yIGRlZmF1bHQgKHN0YW5kYXJkIGJ1dHRvbikuJyovXG4gICAgQElucHV0KClcbiAgICBidXR0b25UeXBlOiBCdXR0b25UeXBlID0gJ3N0YW5kYXJkJztcblxuICAgIC8qKiBXaGV0aGVyIGJ1dHRvbiBpcyBpbiB0b2dnbGVkIHN0YXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdG9nZ2xlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICAvKiogYXJpYWxhYmVsLCB0b29sdGlwIGZvciB0cnVuY2F0ZWQgdGV4dFxuICAgICAqIGZvciBhY2NjZXNpYmxpdHkgb2YgdGhlIGVsZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSB0b2dnbGVkIGlucHV0IHByb3BlcnR5IGluc3RlYWRcbiAgICAgKiBhcmlhLXNlbGVjdGVkIGZvciBhY2NjZXNpYmxpdHkgdG8gdGhlIG5hdGl2ZSBIVE1MIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFyaWFTZWxlY3RlZCh2YWx1ZTogTnVsbGFibGU8Ym9vbGVhbj4pIHtcbiAgICAgICAgd2Fybk9uY2UoJ1Byb3BlcnR5IGFyaWFTZWxlY3RlZCBpcyBkZXByZWNhdGVkLiBVc2UgYHRvZ2dsZWRgIGlucHV0IHByb3BlcnR5IGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuX2FyaWFTZWxlY3RlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBhcmlhU2VsZWN0ZWQoKTogTnVsbGFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJpYVNlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBhcmlhLWRpc2FibGVkIGZvciBhY2NjZXNpYmxpdHkgdG9cbiAgICAgKiAgdGhlIG5hdGl2ZSBIVE1MIGJ1dHRvbiovXG4gICAgQElucHV0KClcbiAgICBhcmlhRGlzYWJsZWQ6IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICogcHJvcGFnYXRlIGFyaWEtZXhwYW5kZWQgZm9yIGFjY2Vzc2libGl0eSB0b1xuICAgICAqIHRoZSBuYXRpdmUgSFRNTCBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFFeHBhbmRlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiBwcm9wYWdhdGUgYXJpYS1jb250cm9scyBmb3IgYWNjZXNzaWJsaXR5IHRvXG4gICAgICogdGhlIG5hdGl2ZSBIVE1MIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUNvbnRyb2xzSWQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIHRvZ2dsZWQgaW5wdXQgcHJvcGVydHkgaW5zdGVhZFxuICAgICAqIHByb3BhZ2F0ZSBhcmlhLXByZXNzZWQgZm9yIGFjY2Vzc2libGl0eSB0byB0aGUgbmF0aXZlIEhUTUwgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXJpYVByZXNzZWQodmFsdWU6IE51bGxhYmxlPGJvb2xlYW4+KSB7XG4gICAgICAgIHdhcm5PbmNlKCdQcm9wZXJ0eSBhcmlhUHJlc3NlZCBpcyBkZXByZWNhdGVkLiBVc2UgYHRvZ2dsZWRgIGlucHV0IHByb3BlcnR5IGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuX2FyaWFQcmVzc2VkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGFyaWFQcmVzc2VkKCk6IE51bGxhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FyaWFQcmVzc2VkO1xuICAgIH1cblxuICAgIC8qKiBTcGVjaWZpZXMgYSBuYW1lIHRvXG4gICAgICogIHRoZSBuYXRpdmUgSFRNTCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKiBTcGVjaWZpZXMgdGhlIHR5cGUgdG9cbiAgICAgKiAgdGhlIG5hdGl2ZSBIVE1MIGJ1dHRvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHlwZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBTcGVjaWZpZXMgYW4gaW5pdGlhbCB2YWx1ZSB0b1xuICAgICAqICB0aGUgbmF0aXZlIEhUTUwgYnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBFdmVudCBzZW50IHdoZW4gYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIFRha2UgaG9zdCBlbGVtZW50IG91dCBvZiB0YWIgb3JkZXIsIHNvIHRoYXQgY2hpbGQgYnV0dG9uIGNhblxuICAgICAqIGJlIHByb3Blcmx5IGZvY3VzZWQgb24uXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICB0YWJJbmRleCA9ICctMSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FyaWFTZWxlY3RlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FyaWFQcmVzc2VkOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3Rvcik7XG4gICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgXCJQbGF0Zm9ybSdzIEJ1dHRvbkNvbXBvbmVudCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgQ29yZSdzIEJ1dHRvbkNvbXBvbmVudCBpbnN0ZWFkLlwiXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzWzBdLmNsYXNzTGlzdC5hZGQoJ2ZkLWVsbGlwc2lzJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIEhhbmRsZXMgYnV0dG9uIGNsaWNrXG4gICAgICovXG4gICAgcHVibGljIG9uQnRuQ2xpY2soJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkQnV0dG9uQXJpYVNlbGVjdGVkIGltcGxlbWVudHMgTW9kdWxlRGVwcmVjYXRpb24ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbWVzc2FnZSA9ICdhcmlhU2VsZWN0ZWQgaW5wdXQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhbHRlcm5hdGl2ZSA9IHtcbiAgICAgICAgbmFtZTogJ1VzZSBbdG9nZ2xlZF0gaW5wdXQgcHJvcGVydHkgaW5zdGVhZCcsXG4gICAgICAgIGxpbms6IFsnL3BsYXRmb3JtJywgJ2J1dHRvbiddLFxuICAgICAgICBmcmFnbWVudDogJ3N0YXRlJ1xuICAgIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkQnV0dG9uQXJpYVByZXNzZWQgaW1wbGVtZW50cyBNb2R1bGVEZXByZWNhdGlvbiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtZXNzYWdlID0gJ2FyaWFQcmVzc2VkIGlucHV0IHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQuJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWx0ZXJuYXRpdmUgPSB7XG4gICAgICAgIG5hbWU6ICdVc2UgW3RvZ2dsZWRdIGlucHV0IHByb3BlcnR5IGluc3RlYWQnLFxuICAgICAgICBsaW5rOiBbJy9wbGF0Zm9ybScsICdidXR0b24nXSxcbiAgICAgICAgZnJhZ21lbnQ6ICdzdGF0ZSdcbiAgICB9O1xufVxuIiwiPGJ1dHRvblxuICAgICNmZEJ1dHRvblxuICAgIGZkLWJ1dHRvblxuICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICBbYXR0ci50aXRsZV09XCJ0aXRsZVwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNJZFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkXCJcbiAgICBbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG4gICAgW2dseXBoUG9zaXRpb25dPVwiZ2x5cGhQb3NpdGlvblwiXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbdG9nZ2xlZF09XCJ0b2dnbGVkIHx8IGFyaWFQcmVzc2VkIHx8IGFyaWFTZWxlY3RlZFwiXG4gICAgW2dseXBoXT1cImdseXBoXCJcbiAgICBbZ2x5cGhGb250XT1cImdseXBoRm9udFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZmRUeXBlXT1cImJ1dHRvblR5cGVcIlxuICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJhcmlhRGlzYWJsZWRcIlxuICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgKGNsaWNrKT1cIm9uQnRuQ2xpY2soJGV2ZW50KVwiXG4+PC9idXR0b24+XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBK0IsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFjLGVBQWUsSUFBSSxtQkFBbUIsRUFBaUIsTUFBTSw4QkFBOEIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsMkJBQTJCLEVBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRWpFOzs7R0FHRztBQVFILE1BQU0sT0FBTyxlQUFnQixTQUFRLGFBQWE7SUFzQzlDOztPQUVHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBd0I7UUFDckMsUUFBUSxDQUFDLDRFQUE0RSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBcUJEOztPQUVHO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBd0I7UUFDcEMsUUFBUSxDQUFDLDJFQUEyRSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBa0NELGNBQWM7SUFDZCxZQUNjLGVBQWtDLEVBQ3BDLFdBQXVCO1FBRS9CLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUhiLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXJIbkMsd0NBQXdDO1FBRXhDLGtCQUFhLEdBQWtCLFFBQVEsQ0FBQztRQWV4Qyx3QkFBd0I7UUFFeEIsY0FBUyxHQUFhLDJCQUEyQixDQUFDO1FBRWxEOzs7dURBRytDO1FBRS9DLGVBQVUsR0FBZSxVQUFVLENBQUM7UUF1RXBDLHdDQUF3QztRQUV4QyxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXREOzs7V0FHRztRQUVILGFBQVEsR0FBRyxJQUFJLENBQUM7UUFjWixRQUFRLENBQ0osd0lBQXdJLENBQzNJLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsTUFBVztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDOzhHQW5JUSxlQUFlO2tHQUFmLGVBQWUsNGlCQ2xCNUIsa3NCQXdCQSx3TURSYyxtQkFBbUI7OzJGQUVwQixlQUFlO2tCQVAzQixTQUFTOytCQUNJLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQzsrR0FLOUIsYUFBYTtzQkFEWixLQUFLO2dCQU9OLEtBQUs7c0JBREosS0FBSztnQkFRTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQVFOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixPQUFPO3NCQUROLEtBQUs7Z0JBTU4sS0FBSztzQkFESixLQUFLO2dCQU9GLFlBQVk7c0JBRGYsS0FBSztnQkFhTixZQUFZO3NCQURYLEtBQUs7Z0JBUU4sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLGNBQWM7c0JBRGIsS0FBSztnQkFPRixXQUFXO3NCQURkLEtBQUs7Z0JBYU4sSUFBSTtzQkFESCxLQUFLO2dCQU1OLElBQUk7c0JBREgsS0FBSztnQkFNTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixNQUFNO2dCQVFQLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxlQUFlOztBQTRCaEMsTUFBTSxPQUFPLDRCQUE0QjtJQUF6QztRQUNJLGNBQWM7UUFDZCxZQUFPLEdBQUcsNENBQTRDLENBQUM7UUFFdkQsY0FBYztRQUNkLGdCQUFXLEdBQUc7WUFDVixJQUFJLEVBQUUsc0NBQXNDO1lBQzVDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUM7WUFDN0IsUUFBUSxFQUFFLE9BQU87U0FDcEIsQ0FBQztJQUNOLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTywyQkFBMkI7SUFBeEM7UUFDSSxjQUFjO1FBQ2QsWUFBTyxHQUFHLDJDQUEyQyxDQUFDO1FBRXRELGNBQWM7UUFDZCxnQkFBVyxHQUFHO1lBQ1YsSUFBSSxFQUFFLHNDQUFzQztZQUM1QyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO1lBQzdCLFFBQVEsRUFBRSxPQUFPO1NBQ3BCLENBQUM7SUFDTixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1vZHVsZURlcHJlY2F0aW9uLCBOdWxsYWJsZSwgd2Fybk9uY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25UeXBlLCBCdXR0b25Db21wb25lbnQgYXMgQ29yZUJ1dHRvbkNvbXBvbmVudCwgR2x5cGhQb3NpdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZLCBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEJ1dHRvbiBjb21wb25lbnQgaXMgZGVwcmVjYXRlZC4gVXNlIGBmZC1idXR0b25gIGZyb20gYEBmdW5kYW1lbnRhbC1uZ3gvY29yZWAgaW5zdGVhZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb3JlQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICAvKiogUG9zaXRpb24gb2YgZ2x5cGggcmVsYXRlZCB0byB0ZXh0ICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaFBvc2l0aW9uOiBHbHlwaFBvc2l0aW9uID0gJ2JlZm9yZSc7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IHJlbmRlcmVkIGluc2lkZSBidXR0b24gY29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSBpY29uIHRvIGluY2x1ZGUgaW4gdGhlIGJ1dHRvbi4gU2VlIHRoZSBpY29uIHBhZ2UgZm9yIHRoZSBsaXN0IG9mIGljb25zLlxuICAgICAqIFNldHRlciBpcyB1c2VkIHRvIGNvbnRyb2wgd2hlbiBjc3MgY2xhc3MgaGF2ZSB0byBiZSByZWJ1aWxkZWQuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJycuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaDogc3RyaW5nO1xuXG4gICAgLyoqIEdseXBoIGZvbnQgZmFtaWx5ICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaEZvbnQ6IEljb25Gb250ID0gRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZO1xuXG4gICAgLyoqIFRoZSBidXR0b25UeXBlIG9mIHRoZSBidXR0b24uIFR5cGVzIGluY2x1ZGVzXG4gICAgICdzdGFuZGFyZCcsJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJywgJ2F0dGVudGlvbicsICdnaG9zdCcsXG4gICAgICd0cmFuc3BhcmVudCcsICdlbXBoYXNpemVkJywnbWVudScuXG4gICAgICpMZWF2ZSBlbXB0eSBmb3IgZGVmYXVsdCAoc3RhbmRhcmQgYnV0dG9uKS4nKi9cbiAgICBASW5wdXQoKVxuICAgIGJ1dHRvblR5cGU6IEJ1dHRvblR5cGUgPSAnc3RhbmRhcmQnO1xuXG4gICAgLyoqIFdoZXRoZXIgYnV0dG9uIGlzIGluIHRvZ2dsZWQgc3RhdGUuICovXG4gICAgQElucHV0KClcbiAgICB0b2dnbGVkOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIC8qKiBhcmlhbGFiZWwsIHRvb2x0aXAgZm9yIHRydW5jYXRlZCB0ZXh0XG4gICAgICogZm9yIGFjY2Nlc2libGl0eSBvZiB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIHRvZ2dsZWQgaW5wdXQgcHJvcGVydHkgaW5zdGVhZFxuICAgICAqIGFyaWEtc2VsZWN0ZWQgZm9yIGFjY2Nlc2libGl0eSB0byB0aGUgbmF0aXZlIEhUTUwgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXJpYVNlbGVjdGVkKHZhbHVlOiBOdWxsYWJsZTxib29sZWFuPikge1xuICAgICAgICB3YXJuT25jZSgnUHJvcGVydHkgYXJpYVNlbGVjdGVkIGlzIGRlcHJlY2F0ZWQuIFVzZSBgdG9nZ2xlZGAgaW5wdXQgcHJvcGVydHkgaW5zdGVhZC4nKTtcbiAgICAgICAgdGhpcy5fYXJpYVNlbGVjdGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGFyaWFTZWxlY3RlZCgpOiBOdWxsYWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcmlhU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIGFyaWEtZGlzYWJsZWQgZm9yIGFjY2Nlc2libGl0eSB0b1xuICAgICAqICB0aGUgbmF0aXZlIEhUTUwgYnV0dG9uKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFEaXNhYmxlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiBwcm9wYWdhdGUgYXJpYS1leHBhbmRlZCBmb3IgYWNjZXNzaWJsaXR5IHRvXG4gICAgICogdGhlIG5hdGl2ZSBIVE1MIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUV4cGFuZGVkOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIHByb3BhZ2F0ZSBhcmlhLWNvbnRyb2xzIGZvciBhY2Nlc3NpYmxpdHkgdG9cbiAgICAgKiB0aGUgbmF0aXZlIEhUTUwgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhcmlhQ29udHJvbHNJZDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgdG9nZ2xlZCBpbnB1dCBwcm9wZXJ0eSBpbnN0ZWFkXG4gICAgICogcHJvcGFnYXRlIGFyaWEtcHJlc3NlZCBmb3IgYWNjZXNzaWJsaXR5IHRvIHRoZSBuYXRpdmUgSFRNTCBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhcmlhUHJlc3NlZCh2YWx1ZTogTnVsbGFibGU8Ym9vbGVhbj4pIHtcbiAgICAgICAgd2Fybk9uY2UoJ1Byb3BlcnR5IGFyaWFQcmVzc2VkIGlzIGRlcHJlY2F0ZWQuIFVzZSBgdG9nZ2xlZGAgaW5wdXQgcHJvcGVydHkgaW5zdGVhZC4nKTtcbiAgICAgICAgdGhpcy5fYXJpYVByZXNzZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgYXJpYVByZXNzZWQoKTogTnVsbGFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJpYVByZXNzZWQ7XG4gICAgfVxuXG4gICAgLyoqIFNwZWNpZmllcyBhIG5hbWUgdG9cbiAgICAgKiAgdGhlIG5hdGl2ZSBIVE1MIGJ1dHRvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFNwZWNpZmllcyB0aGUgdHlwZSB0b1xuICAgICAqICB0aGUgbmF0aXZlIEhUTUwgYnV0dG9uICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNwZWNpZmllcyBhbiBpbml0aWFsIHZhbHVlIHRvXG4gICAgICogIHRoZSBuYXRpdmUgSFRNTCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEV2ZW50IHNlbnQgd2hlbiBidXR0b24gaXMgY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogVGFrZSBob3N0IGVsZW1lbnQgb3V0IG9mIHRhYiBvcmRlciwgc28gdGhhdCBjaGlsZCBidXR0b24gY2FuXG4gICAgICogYmUgcHJvcGVybHkgZm9jdXNlZCBvbi5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIHRhYkluZGV4ID0gJy0xJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXJpYVNlbGVjdGVkOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXJpYVByZXNzZWQ6IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2NoYW5nZURldGVjdG9yKTtcbiAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBcIlBsYXRmb3JtJ3MgQnV0dG9uQ29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBDb25zaWRlciB1c2luZyBDb3JlJ3MgQnV0dG9uQ29tcG9uZW50IGluc3RlYWQuXCJcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgSGFuZGxlcyBidXR0b24gY2xpY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgb25CdG5DbGljaygkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrZWQuZW1pdCgkZXZlbnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRCdXR0b25BcmlhU2VsZWN0ZWQgaW1wbGVtZW50cyBNb2R1bGVEZXByZWNhdGlvbiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtZXNzYWdlID0gJ2FyaWFTZWxlY3RlZCBpbnB1dCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFsdGVybmF0aXZlID0ge1xuICAgICAgICBuYW1lOiAnVXNlIFt0b2dnbGVkXSBpbnB1dCBwcm9wZXJ0eSBpbnN0ZWFkJyxcbiAgICAgICAgbGluazogWycvcGxhdGZvcm0nLCAnYnV0dG9uJ10sXG4gICAgICAgIGZyYWdtZW50OiAnc3RhdGUnXG4gICAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRCdXR0b25BcmlhUHJlc3NlZCBpbXBsZW1lbnRzIE1vZHVsZURlcHJlY2F0aW9uIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1lc3NhZ2UgPSAnYXJpYVByZXNzZWQgaW5wdXQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhbHRlcm5hdGl2ZSA9IHtcbiAgICAgICAgbmFtZTogJ1VzZSBbdG9nZ2xlZF0gaW5wdXQgcHJvcGVydHkgaW5zdGVhZCcsXG4gICAgICAgIGxpbms6IFsnL3BsYXRmb3JtJywgJ2J1dHRvbiddLFxuICAgICAgICBmcmFnbWVudDogJ3N0YXRlJ1xuICAgIH07XG59XG4iLCI8YnV0dG9uXG4gICAgI2ZkQnV0dG9uXG4gICAgZmQtYnV0dG9uXG4gICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgIFthdHRyLnRpdGxlXT1cInRpdGxlXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9sc0lkXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJhcmlhRGlzYWJsZWRcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICBbZ2x5cGhQb3NpdGlvbl09XCJnbHlwaFBvc2l0aW9uXCJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFt0b2dnbGVkXT1cInRvZ2dsZWQgfHwgYXJpYVByZXNzZWQgfHwgYXJpYVNlbGVjdGVkXCJcbiAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgIFtnbHlwaEZvbnRdPVwiZ2x5cGhGb250XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtmZFR5cGVdPVwiYnV0dG9uVHlwZVwiXG4gICAgY2xhc3M9XCJmZC1lbGxpcHNpc1wiXG4gICAgW2NsYXNzLmlzLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZFwiXG4gICAgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgICAoY2xpY2spPVwib25CdG5DbGljaygkZXZlbnQpXCJcbj48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Ou
|
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
3
|
import { warnOnce } from '@fundamental-ngx/cdk/utils';
|
|
4
4
|
import { AvatarComponent } from '@fundamental-ngx/core/avatar';
|
|
5
|
+
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
5
6
|
import { FormControlComponent } from '@fundamental-ngx/core/form';
|
|
6
7
|
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
7
|
-
import { ButtonComponent } from '@fundamental-ngx/platform/button';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/forms";
|
|
10
10
|
/**
|
|
@@ -68,11 +68,11 @@ export class FeedInputComponent {
|
|
|
68
68
|
parseInt(computed.getPropertyValue('border-bottom-width'), 10));
|
|
69
69
|
}
|
|
70
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FeedInputComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: FeedInputComponent, isStandalone: true, selector: "fdp-feed-input", inputs: { avatarSrc: "avatarSrc", placeholder: "placeholder", avatarShow: "avatarShow", disabled: "disabled", maxHeight: "maxHeight" }, outputs: { submit: "submit" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textAreaElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"fd-feed-input\" [class.is-disabled]=\"disabled\">\n @if (avatarShow) {\n <fd-avatar\n class=\"fd-feed-input__thumb\"\n size=\"s\"\n role=\"img\"\n [attr.aria-label]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [title]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [image]=\"avatarSrc\"\n [class.fd-avatar--placeholder]=\"!avatarSrc\"\n [class.sap-icon]=\"!avatarSrc\"\n [glyph]=\"!avatarSrc ? 'person-placeholder' : null\"\n >\n </fd-avatar>\n }\n <textarea\n #textAreaElement\n fd-form-control\n class=\"fd-textarea fd-feed-input__textarea\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange()\"\n ></textarea>\n <
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: FeedInputComponent, isStandalone: true, selector: "fdp-feed-input", inputs: { avatarSrc: "avatarSrc", placeholder: "placeholder", avatarShow: "avatarShow", disabled: "disabled", maxHeight: "maxHeight" }, outputs: { submit: "submit" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textAreaElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"fd-feed-input\" [class.is-disabled]=\"disabled\">\n @if (avatarShow) {\n <fd-avatar\n class=\"fd-feed-input__thumb\"\n size=\"s\"\n role=\"img\"\n [attr.aria-label]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [title]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [image]=\"avatarSrc\"\n [class.fd-avatar--placeholder]=\"!avatarSrc\"\n [class.sap-icon]=\"!avatarSrc\"\n [glyph]=\"!avatarSrc ? 'person-placeholder' : null\"\n >\n </fd-avatar>\n }\n <textarea\n #textAreaElement\n fd-form-control\n class=\"fd-textarea fd-feed-input__textarea\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange()\"\n ></textarea>\n <button\n fd-button\n class=\"fd-feed-input__submit-button\"\n glyph=\"feeder-arrow\"\n title=\"Send\"\n ariaLabel=\"Send\"\n [disabled]=\"!value || disabled\"\n (click)=\"onSubmit()\"\n ></button>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.33.1-rc.13\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-feed-input{-webkit-box-sizing:border-box;background-color:var(--sapField_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;padding:1rem .5rem 1rem 1rem}.fd-feed-input:after,.fd-feed-input:before{box-sizing:inherit;font-size:inherit}.fd-feed-input[dir=rtl],[dir=rtl] .fd-feed-input{padding-left:.5rem;padding-right:1rem}.fd-feed-input.is-disabled,.fd-feed-input:disabled,.fd-feed-input[aria-disabled=true]{cursor:not-allowed;opacity:1;pointer-events:auto}.fd-feed-input.is-disabled textarea::placeholder,.fd-feed-input:disabled textarea::placeholder,.fd-feed-input[aria-disabled=true] textarea::placeholder{color:var(--sapTextColor, #32363a);font-style:var(--fdFeed_Input_Placeholder_Font_Style)}.fd-feed-input .fd-feed-input__thumb{-webkit-box-flex:1;-ms-flex:1 0 auto;display:none;flex:1 0 auto;margin-left:0;margin-right:.5rem}.fd-feed-input .fd-feed-input__thumb[dir=rtl],[dir=rtl] .fd-feed-input .fd-feed-input__thumb{margin-left:.5rem;margin-right:0}.fd-feed-input .fd-feed-input__textarea{margin:0;max-height:20rem;min-height:3rem;padding:.3125rem .5rem}.fd-feed-input .fd-feed-input__submit-button{margin:auto 0 .375rem .5rem}.fd-feed-input .fd-feed-input__submit-button[dir=rtl],[dir=rtl] .fd-feed-input .fd-feed-input__submit-button{-webkit-transform:rotate(180deg);margin-left:0;margin-right:.5rem;transform:rotate(180deg)}@media (min-width: 25rem){.fd-feed-input{margin-bottom:1rem;margin-top:1rem}.fd-feed-input .fd-feed-input__thumb{display:inline-flex}}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
72
72
|
}
|
|
73
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FeedInputComponent, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
|
-
args: [{ selector: 'fdp-feed-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AvatarComponent, FormsModule, FormControlComponent, ButtonComponent, FdTranslatePipe], template: "<div class=\"fd-feed-input\" [class.is-disabled]=\"disabled\">\n @if (avatarShow) {\n <fd-avatar\n class=\"fd-feed-input__thumb\"\n size=\"s\"\n role=\"img\"\n [attr.aria-label]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [title]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [image]=\"avatarSrc\"\n [class.fd-avatar--placeholder]=\"!avatarSrc\"\n [class.sap-icon]=\"!avatarSrc\"\n [glyph]=\"!avatarSrc ? 'person-placeholder' : null\"\n >\n </fd-avatar>\n }\n <textarea\n #textAreaElement\n fd-form-control\n class=\"fd-textarea fd-feed-input__textarea\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange()\"\n ></textarea>\n <
|
|
75
|
+
args: [{ selector: 'fdp-feed-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AvatarComponent, FormsModule, FormControlComponent, ButtonComponent, FdTranslatePipe], template: "<div class=\"fd-feed-input\" [class.is-disabled]=\"disabled\">\n @if (avatarShow) {\n <fd-avatar\n class=\"fd-feed-input__thumb\"\n size=\"s\"\n role=\"img\"\n [attr.aria-label]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [title]=\"'platformFeedInput.userTitle' | fdTranslate\"\n [image]=\"avatarSrc\"\n [class.fd-avatar--placeholder]=\"!avatarSrc\"\n [class.sap-icon]=\"!avatarSrc\"\n [glyph]=\"!avatarSrc ? 'person-placeholder' : null\"\n >\n </fd-avatar>\n }\n <textarea\n #textAreaElement\n fd-form-control\n class=\"fd-textarea fd-feed-input__textarea\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange()\"\n ></textarea>\n <button\n fd-button\n class=\"fd-feed-input__submit-button\"\n glyph=\"feeder-arrow\"\n title=\"Send\"\n ariaLabel=\"Send\"\n [disabled]=\"!value || disabled\"\n (click)=\"onSubmit()\"\n ></button>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.33.1-rc.13\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-feed-input{-webkit-box-sizing:border-box;background-color:var(--sapField_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin:0;padding:1rem .5rem 1rem 1rem}.fd-feed-input:after,.fd-feed-input:before{box-sizing:inherit;font-size:inherit}.fd-feed-input[dir=rtl],[dir=rtl] .fd-feed-input{padding-left:.5rem;padding-right:1rem}.fd-feed-input.is-disabled,.fd-feed-input:disabled,.fd-feed-input[aria-disabled=true]{cursor:not-allowed;opacity:1;pointer-events:auto}.fd-feed-input.is-disabled textarea::placeholder,.fd-feed-input:disabled textarea::placeholder,.fd-feed-input[aria-disabled=true] textarea::placeholder{color:var(--sapTextColor, #32363a);font-style:var(--fdFeed_Input_Placeholder_Font_Style)}.fd-feed-input .fd-feed-input__thumb{-webkit-box-flex:1;-ms-flex:1 0 auto;display:none;flex:1 0 auto;margin-left:0;margin-right:.5rem}.fd-feed-input .fd-feed-input__thumb[dir=rtl],[dir=rtl] .fd-feed-input .fd-feed-input__thumb{margin-left:.5rem;margin-right:0}.fd-feed-input .fd-feed-input__textarea{margin:0;max-height:20rem;min-height:3rem;padding:.3125rem .5rem}.fd-feed-input .fd-feed-input__submit-button{margin:auto 0 .375rem .5rem}.fd-feed-input .fd-feed-input__submit-button[dir=rtl],[dir=rtl] .fd-feed-input .fd-feed-input__submit-button{-webkit-transform:rotate(180deg);margin-left:0;margin-right:.5rem;transform:rotate(180deg)}@media (min-width: 25rem){.fd-feed-input{margin-bottom:1rem;margin-top:1rem}.fd-feed-input .fd-feed-input__thumb{display:inline-flex}}\n"] }]
|
|
76
76
|
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { avatarSrc: [{
|
|
77
77
|
type: Input
|
|
78
78
|
}], placeholder: [{
|
|
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
91
91
|
type: ViewChild,
|
|
92
92
|
args: ['textAreaElement', { read: ElementRef }]
|
|
93
93
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ZlZWQtaW5wdXQvZmVlZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ZlZWQtaW5wdXQvZmVlZC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRW5FOzs7O0dBSUc7QUFVSCxNQUFNLE9BQU8sa0JBQWtCO0lBaUMzQixjQUFjO0lBQ2QsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXpCeEMsd0NBQXdDO1FBRXhDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIseUJBQXlCO1FBRXpCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNakIsMkRBQTJEO1FBRzNELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBV2hDLFFBQVEsQ0FDSiwwRUFBMEU7WUFDdEUsb0ZBQW9GLENBQzNGLENBQUM7SUFDTixDQUFDO0lBRUQs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QkFEUixLQUFLOztRQUtOLDREQUE0RDtRQUM1RCxNQUFNO3NCQUZMLE1BQU07Z0JBTVAsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2F2YXRhcic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2J1dHRvbic7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSB0aGUgYGZkLWZlZWQtaW5wdXRbbW9kZWxEcml2ZW5dYCBjb21wb25lbnQgZnJvbSBgQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ZlZWQtaW5wdXRgIGluc3RlYWQuXG4gKiBUaGUgYGZkLWZlZWQtaW5wdXRgIGNvbXBvbmVudCBpcyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIHRoZSBgZmRwLWZlZWQtaW5wdXRgIGNvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZmVlZC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9mZWVkLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0F2YXRhckNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEZvcm1Db250cm9sQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRmVlZElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIFRoZSB1c2VyIGltYWdlIHNvdXJjZSwgSWYgaXMgbm90IHNldCwgdGhlbiB0aGUgdXNlciBpbWFnZSB3aWxsIGRpc3BsYXkgcGxhY2Vob2xkZXIgaW1hZ2UuICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXZhdGFyU3JjOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0IHBsYWNlaG9sZGVyIHRleHRhcmVhIHRleHQgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0IGZlZWQgaW5wdXQgd2l0aG91dCB1c2VyIGltYWdlICovXG4gICAgQElucHV0KClcbiAgICBhdmF0YXJTaG93ID0gdHJ1ZTtcblxuICAgIC8qKiBTZXQgZGlzYWJsZWQgc3RhdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogVGhlIG1heCBudW1iZXIgb2Ygcm93cyB0byBhbGxvdyB0ZXh0YXJlYSBncm93ICovXG4gICAgQElucHV0KClcbiAgICBtYXhIZWlnaHQ6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrIG9uIHNlbmQgYnV0dG9uICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgc3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3RleHRBcmVhRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHRleHRhcmVhOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gVGV4dGFyZWEgZW50ZXJlZCB2YWx1ZSAqL1xuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgJ0ZlZWRJbnB1dENvbXBvbmVudCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHJlbGVhc2UuICcgK1xuICAgICAgICAgICAgICAgICdVc2UgdGhlIGBmZC1mZWVkLWlucHV0YCBjb21wb25lbnQgZnJvbSBgQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ZlZWQtaW5wdXRgIGluc3RlYWQuJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID0gdGhpcy5fZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMubWF4SGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnRleHRhcmVhLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gbGluZUhlaWdodCAqIHRoaXMubWF4SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzaXplKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gSGFuZGxlIHN1Ym1pdCBmZWVkIGlucHV0IHZhbHVlKi9cbiAgICBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0LmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBNYWtlIGdyb3cgdGV4dGFyZWEgKi9cbiAgICByZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMudGV4dGFyZWEubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsICdpbmhlcml0Jyk7XG5cbiAgICAgICAgY29uc3QgdG90YWxIZWlnaHQgPSB0aGlzLl9nZXRUZXh0YXJlYVRvdGFsSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMudGV4dGFyZWEubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke3RvdGFsSGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZ2V0IGxpbmUgaGVpZ2h0IG9mIHRleHRhcmVhICovXG4gICAgcHJpdmF0ZSBfZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnRleHRhcmVhICYmIHRoaXMudGV4dGFyZWEubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMudGV4dGFyZWEubmF0aXZlRWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKTtcbiAgICAgICAgICAgIGlmIChsaW5lSGVpZ2h0ID09PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMudGV4dGFyZWEubmF0aXZlRWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyksIDEwKSAqXG4gICAgICAgICAgICAgICAgICAgIDEuMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChsaW5lSGVpZ2h0LCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gR2V0IHRoZSB0b3RhbCBoZWlnaHQgaW5jbHVkaW5nIGJvcmRlcnMgYW5kIHNjcm9sbCBoZWlnaHQgKi9cbiAgICBwcml2YXRlIF9nZXRUZXh0YXJlYVRvdGFsSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpLCAxMCkgK1xuICAgICAgICAgICAgdGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCArXG4gICAgICAgICAgICBwYXJzZUludChjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItYm90dG9tLXdpZHRoJyksIDEwKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZC1mZWVkLWlucHV0XCIgW2NsYXNzLmlzLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgQGlmIChhdmF0YXJTaG93KSB7XG4gICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtZmVlZC1pbnB1dF9fdGh1bWJcIlxuICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybUZlZWRJbnB1dC51c2VyVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybUZlZWRJbnB1dC51c2VyVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2ltYWdlXT1cImF2YXRhclNyY1wiXG4gICAgICAgICAgICBbY2xhc3MuZmQtYXZhdGFyLS1wbGFjZWhvbGRlcl09XCIhYXZhdGFyU3JjXCJcbiAgICAgICAgICAgIFtjbGFzcy5zYXAtaWNvbl09XCIhYXZhdGFyU3JjXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCIhYXZhdGFyU3JjID8gJ3BlcnNvbi1wbGFjZWhvbGRlcicgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWF2YXRhcj5cbiAgICB9XG4gICAgPHRleHRhcmVhXG4gICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcbiAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgIGNsYXNzPVwiZmQtdGV4dGFyZWEgZmQtZmVlZC1pbnB1dF9fdGV4dGFyZWFcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiXG4gICAgPjwvdGV4dGFyZWE+XG4gICAgPGZkcC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJmZC1mZWVkLWlucHV0X19zdWJtaXQtYnV0dG9uXCJcbiAgICAgICAgZ2x5cGg9XCJmZWVkZXItYXJyb3dcIlxuICAgICAgICB0aXRsZT1cIlNlbmRcIlxuICAgICAgICBhcmlhTGFiZWw9XCJTZW5kXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiF2YWx1ZSB8fCBkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCJcbiAgICA+XG4gICAgPC9mZHAtYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ZlZWQtaW5wdXQvZmVlZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ZlZWQtaW5wdXQvZmVlZC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRXhEOzs7O0dBSUc7QUFVSCxNQUFNLE9BQU8sa0JBQWtCO0lBaUMzQixjQUFjO0lBQ2QsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXpCeEMsd0NBQXdDO1FBRXhDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIseUJBQXlCO1FBRXpCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNakIsMkRBQTJEO1FBRzNELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBV2hDLFFBQVEsQ0FDSiwwRUFBMEU7WUFDdEUsb0ZBQW9GLENBQzNGLENBQUM7SUFDTixDQUFDO0lBRUQs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QkFEUixLQUFLOztRQUtOLDREQUE0RDtRQUM1RCxNQUFNO3NCQUZMLE1BQU07Z0JBTVAsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2F2YXRhcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIHRoZSBgZmQtZmVlZC1pbnB1dFttb2RlbERyaXZlbl1gIGNvbXBvbmVudCBmcm9tIGBAZnVuZGFtZW50YWwtbmd4L2NvcmUvZmVlZC1pbnB1dGAgaW5zdGVhZC5cbiAqIFRoZSBgZmQtZmVlZC1pbnB1dGAgY29tcG9uZW50IGlzIGEgZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgdGhlIGBmZHAtZmVlZC1pbnB1dGAgY29tcG9uZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1mZWVkLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmVlZC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ZlZWQtaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXZhdGFyQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgRm9ybUNvbnRyb2xDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudCwgRmRUcmFuc2xhdGVQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBGZWVkSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKiogVGhlIHVzZXIgaW1hZ2Ugc291cmNlLCBJZiBpcyBub3Qgc2V0LCB0aGVuIHRoZSB1c2VyIGltYWdlIHdpbGwgZGlzcGxheSBwbGFjZWhvbGRlciBpbWFnZS4gICovXG4gICAgQElucHV0KClcbiAgICBhdmF0YXJTcmM6IHN0cmluZztcblxuICAgIC8qKiBTZXQgcGxhY2Vob2xkZXIgdGV4dGFyZWEgdGV4dCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKiBTZXQgZmVlZCBpbnB1dCB3aXRob3V0IHVzZXIgaW1hZ2UgKi9cbiAgICBASW5wdXQoKVxuICAgIGF2YXRhclNob3cgPSB0cnVlO1xuXG4gICAgLyoqIFNldCBkaXNhYmxlZCBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgbWF4IG51bWJlciBvZiByb3dzIHRvIGFsbG93IHRleHRhcmVhIGdyb3cgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2sgb24gc2VuZCBidXR0b24gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBzdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgndGV4dEFyZWFFbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgdGV4dGFyZWE6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiBUZXh0YXJlYSBlbnRlcmVkIHZhbHVlICovXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICAnRmVlZElucHV0Q29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgcmVsZWFzZS4gJyArXG4gICAgICAgICAgICAgICAgJ1VzZSB0aGUgYGZkLWZlZWQtaW5wdXRgIGNvbXBvbmVudCBmcm9tIGBAZnVuZGFtZW50YWwtbmd4L2NvcmUvZmVlZC1pbnB1dGAgaW5zdGVhZC4nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0aGlzLl9nZXRUZXh0YXJlYUxpbmVIZWlnaHQoKTtcblxuICAgICAgICBpZiAodGhpcy5tYXhIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dGFyZWEubmF0aXZlRWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSBsaW5lSGVpZ2h0ICogdGhpcy5tYXhIZWlnaHQgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBIYW5kbGUgc3VibWl0IGZlZWQgaW5wdXQgdmFsdWUqL1xuICAgIG9uU3VibWl0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE1ha2UgZ3JvdyB0ZXh0YXJlYSAqL1xuICAgIHJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgJ2luaGVyaXQnKTtcblxuICAgICAgICBjb25zdCB0b3RhbEhlaWdodCA9IHRoaXMuX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7dG90YWxIZWlnaHR9cHhgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBnZXQgbGluZSBoZWlnaHQgb2YgdGV4dGFyZWEgKi9cbiAgICBwcml2YXRlIF9nZXRUZXh0YXJlYUxpbmVIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMudGV4dGFyZWEgJiYgdGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpO1xuICAgICAgICAgICAgaWYgKGxpbmVIZWlnaHQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXNpemUnKSwgMTApICpcbiAgICAgICAgICAgICAgICAgICAgMS4xXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGxpbmVIZWlnaHQsIDEwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBHZXQgdGhlIHRvdGFsIGhlaWdodCBpbmNsdWRpbmcgYm9yZGVycyBhbmQgc2Nyb2xsIGhlaWdodCAqL1xuICAgIHByaXZhdGUgX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnRleHRhcmVhLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwYXJzZUludChjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItdG9wLXdpZHRoJyksIDEwKSArXG4gICAgICAgICAgICB0aGlzLnRleHRhcmVhLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICtcbiAgICAgICAgICAgIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSwgMTApXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLWZlZWQtaW5wdXRcIiBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICBAaWYgKGF2YXRhclNob3cpIHtcbiAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgY2xhc3M9XCJmZC1mZWVkLWlucHV0X190aHVtYlwiXG4gICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtRmVlZElucHV0LnVzZXJUaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtRmVlZElucHV0LnVzZXJUaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaW1hZ2VdPVwiYXZhdGFyU3JjXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZC1hdmF0YXItLXBsYWNlaG9sZGVyXT1cIiFhdmF0YXJTcmNcIlxuICAgICAgICAgICAgW2NsYXNzLnNhcC1pY29uXT1cIiFhdmF0YXJTcmNcIlxuICAgICAgICAgICAgW2dseXBoXT1cIiFhdmF0YXJTcmMgPyAncGVyc29uLXBsYWNlaG9sZGVyJyA6IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtYXZhdGFyPlxuICAgIH1cbiAgICA8dGV4dGFyZWFcbiAgICAgICAgI3RleHRBcmVhRWxlbWVudFxuICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgY2xhc3M9XCJmZC10ZXh0YXJlYSBmZC1mZWVkLWlucHV0X190ZXh0YXJlYVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCJcbiAgICA+PC90ZXh0YXJlYT5cbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICBjbGFzcz1cImZkLWZlZWQtaW5wdXRfX3N1Ym1pdC1idXR0b25cIlxuICAgICAgICBnbHlwaD1cImZlZWRlci1hcnJvd1wiXG4gICAgICAgIHRpdGxlPVwiU2VuZFwiXG4gICAgICAgIGFyaWFMYWJlbD1cIlNlbmRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXZhbHVlIHx8IGRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxuICAgID48L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Inject, Input, Output, QueryList, TemplateRef, ViewChild, ViewChildren, ViewEncapsulation, inject } from '@angular/core';
|
|
2
2
|
import { FormGroupDirective, FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { destroyObservable } from '@fundamental-ngx/cdk/utils';
|
|
4
|
-
import { FDP_DO_CHECK } from '@fundamental-ngx/platform/shared';
|
|
4
|
+
import { FDP_DO_CHECK, FDP_FORM_SUBMIT } from '@fundamental-ngx/platform/shared';
|
|
5
5
|
import { BehaviorSubject, Subject, isObservable, merge, of } from 'rxjs';
|
|
6
|
-
import { debounceTime, filter, startWith, switchMap, take, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { debounceTime, filter, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';
|
|
7
7
|
import { FormGeneratorFieldComponent } from '../form-generator-field/form-generator-field.component';
|
|
8
8
|
import { NgTemplateOutlet } from '@angular/common';
|
|
9
9
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -104,6 +104,8 @@ export class FormGeneratorComponent {
|
|
|
104
104
|
this.formSubmittedStatus = new EventEmitter();
|
|
105
105
|
/** @hidden */
|
|
106
106
|
this.doCheck$ = new Subject();
|
|
107
|
+
/** @hidden */
|
|
108
|
+
this.ngSubmit$ = new Subject();
|
|
107
109
|
/**
|
|
108
110
|
* Set of flags representing if particular form item should be visible to the user.
|
|
109
111
|
*/
|
|
@@ -290,7 +292,9 @@ export class FormGeneratorComponent {
|
|
|
290
292
|
_listenToSubmit() {
|
|
291
293
|
this._ngSubmitSubscription?.unsubscribe();
|
|
292
294
|
this._ngSubmitSubscription = this.formGroup.ngSubmit
|
|
293
|
-
.pipe(
|
|
295
|
+
.pipe(tap(() => {
|
|
296
|
+
this.ngSubmit$.next();
|
|
297
|
+
}), switchMap(() => this.formGroup.statusChanges.pipe(startWith(this.formGroup.status), filter((status) => status !== 'PENDING'), take(1), takeUntilDestroyed(this._destroyRef))))
|
|
294
298
|
.subscribe(async () => {
|
|
295
299
|
await this._onSubmit();
|
|
296
300
|
this._listenToSubmit();
|
|
@@ -348,6 +352,11 @@ export class FormGeneratorComponent {
|
|
|
348
352
|
provide: FDP_DO_CHECK,
|
|
349
353
|
useFactory: (formGenerator) => formGenerator.doCheck$,
|
|
350
354
|
deps: [FormGeneratorComponent]
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
provide: FDP_FORM_SUBMIT,
|
|
358
|
+
useFactory: (formGenerator) => formGenerator.ngSubmit$,
|
|
359
|
+
deps: [FormGeneratorComponent]
|
|
351
360
|
}
|
|
352
361
|
], viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "fields", predicate: FormGeneratorFieldComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (_firstLoadingDone) {\n <fd-busy-indicator [loading]=\"formLoading\" [block]=\"true\">\n @if (form) {\n <fdp-form-group\n [hint]=\"hint\"\n [mainTitle]=\"mainTitle\"\n [hideMainTItle]=\"hideMainTItle\"\n [formGroup]=\"form\"\n [columnLayout]=\"columnLayout\"\n [labelColumnLayout]=\"labelColumnLayout\"\n [fieldColumnLayout]=\"fieldColumnLayout\"\n [gapColumnLayout]=\"gapColumnLayout\"\n [unifiedLayout]=\"unifiedLayout\"\n [inlineColumnLayout]=\"inlineColumnLayout\"\n [useForm]=\"true\"\n >\n @for (error of _errorModels; track _errorsTrackBy($index, error)) {\n <span *fdpFormFieldError=\"error.type; let directiveError\">\n @if (_isAdvancedError(directiveError)) {\n @if (directiveError.heading) {\n <span *fdpFormFieldErrorHeading=\"let validationError; type: directiveError.type\">\n {{ validationError.heading }}\n </span>\n }\n @if (directiveError.description) {\n <span *fdpFormFieldErrorDescription=\"let validationError\">\n {{ validationError.description }}\n </span>\n }\n } @else {\n <span *fdpFormFieldErrorHeading=\"let validationError\">\n {{ error.value ? error.value : validationError }}\n </span>\n }\n </span>\n }\n @for (field of formControlItems; track _trackFn($index, field)) {\n <ng-template\n [ngTemplateOutlet]=\"field.type === 'field' ? fieldRenderer : groupRenderer\"\n [ngTemplateOutletContext]=\"{\n field: field,\n formFieldName: field.formItem.name,\n rank: field.formItem?.rank || 0\n }\"\n ></ng-template>\n <ng-template\n #fieldRenderer\n let-field=\"field\"\n let-formFieldName=\"formFieldName\"\n let-formGroupName=\"formGroupName\"\n let-rank=\"rank\"\n >\n <ng-container\n *fdpDynamicFormControlField=\"field; show: shouldShowFields[field.formItem.name] !== false\"\n >\n <fdp-form-generator-field\n [hintOptions]=\"field.formItem.guiOptions | getHintOptions\"\n [form]=\"form\"\n [shouldShow]=\"shouldShowFields[field.formItem.name] !== false\"\n [field]=\"field\"\n [formFieldName]=\"formFieldName\"\n [formGroupNamePath]=\"formGroupName\"\n [rank]=\"rank\"\n ></fdp-form-generator-field>\n </ng-container>\n </ng-template>\n <ng-template #groupRenderer>\n <fdp-form-field-group\n [hintOptions]=\"field.formItem.guiOptions | getHintOptions\"\n [label]=\"field.formItem.message || ''\"\n [labelColumnLayout]=\"field.formItem.guiOptions?.labelColumnLayout\"\n [fieldColumnLayout]=\"field.formItem.guiOptions?.fieldColumnLayout\"\n [gapColumnLayout]=\"field.formItem.guiOptions?.gapColumnLayout\"\n [formName]=\"field.formItem.name\"\n >\n @for (\n groupField of field | getOrderedFieldControls;\n track _groupTrackFn($index, groupField)\n ) {\n <ng-container\n *fdpDynamicFormControlField=\"\n groupField;\n show: shouldShowFields[groupField.formItem.name!] !== false\n \"\n >\n <fdp-form-generator-field\n [hintOptions]=\"groupField.formItem.guiOptions | getHintOptions\"\n [form]=\"form\"\n [field]=\"groupField\"\n [shouldShow]=\"shouldShowFields[groupField.formItem.name!] !== false\"\n [formFieldName]=\"groupField.formItem.name\"\n [formGroupNamePath]=\"field.formItem.name\"\n [rank]=\"groupField.formItem.rank || 0\"\n ></fdp-form-generator-field>\n </ng-container>\n }\n </fdp-form-field-group>\n </ng-template>\n }\n @if (!noAdditionalContent) {\n <fdp-form-field [column]=\"1\" [rank]=\"formControlItems.length + 1\">\n <!-- For user-defined elements, like submit button -->\n <ng-content></ng-content>\n </fdp-form-field>\n }\n </fdp-form-group>\n }\n </fd-busy-indicator>\n} @else {\n <fd-skeleton width=\"100%\" height=\"100px\" [style.padding.rem]=\"1\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n}\n", dependencies: [{ kind: "ngmodule", type: BusyIndicatorModule }, { kind: "component", type: i2.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "ngmodule", type: FdpFormGroupModule }, { kind: "component", type: i3.FormGroupComponent, selector: "fdp-form-group", inputs: ["id", "name", "editable", "noLabelLayout", "class", "hint", "inlineColumnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "formGroup", "topTitle", "mainTitle", "hideMainTItle", "object", "i18Strings", "useForm", "columnLayout", "unifiedLayout"], outputs: ["onSubmit"] }, { kind: "component", type: i4.FormFieldComponent, selector: "fdp-form-field", inputs: ["label", "id", "hint", "noLabelLayout", "validators", "rank", "placeholder", "column", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "i18Strings", "required", "editable", "columns", "disabled", "colon", "formGroupContainer"], outputs: ["onChange", "onColumnChange"] }, { kind: "component", type: i5.FormFieldGroupComponent, selector: "fdp-form-field-group", inputs: ["label", "formName", "formGroupContainer", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "hintOptions"] }, { kind: "directive", type: i6.FormFieldErrorDirective, selector: "[fdpFormFieldError]", inputs: ["fdpFormFieldErrorAs", "fdpFormFieldError", "fdpFormFieldErrorType"] }, { kind: "directive", type: i7.FormFieldErrorHeadingDirective, selector: "[fdpFormFieldErrorHeading]", inputs: ["fdpFormFieldErrorHeadingAs", "fdpFormFieldErrorHeadingType"] }, { kind: "directive", type: i8.FormFieldErrorDescriptionDirective, selector: "[fdpFormFieldErrorDescription]", inputs: ["fdpFormFieldErrorDescriptionAs"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DynamicFormControlFieldDirective, selector: "[fdpDynamicFormControlField]", inputs: ["fdpDynamicFormControlField", "fdpDynamicFormControlFieldShow"] }, { kind: "component", type: FormGeneratorFieldComponent, selector: "fdp-form-generator-field", inputs: ["field", "form", "i18n", "formFieldName", "formGroupNamePath", "rank", "shouldShow", "hintOptions"] }, { kind: "component", type: SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "pipe", type: GetOrderedFieldControlsPipe, name: "getOrderedFieldControls" }, { kind: "pipe", type: GetHintOptionsPipe, name: "getHintOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
353
362
|
}
|
|
@@ -358,6 +367,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
358
367
|
provide: FDP_DO_CHECK,
|
|
359
368
|
useFactory: (formGenerator) => formGenerator.doCheck$,
|
|
360
369
|
deps: [FormGeneratorComponent]
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
provide: FDP_FORM_SUBMIT,
|
|
373
|
+
useFactory: (formGenerator) => formGenerator.ngSubmit$,
|
|
374
|
+
deps: [FormGeneratorComponent]
|
|
361
375
|
}
|
|
362
376
|
], standalone: true, imports: [
|
|
363
377
|
BusyIndicatorModule,
|
|
@@ -414,4 +428,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
414
428
|
type: ViewChildren,
|
|
415
429
|
args: [FormGeneratorFieldComponent]
|
|
416
430
|
}] } });
|
|
417
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFCLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSCxPQUFPLEVBQVksaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBRUgsWUFBWSxFQUtmLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQWdCLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRXJHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFN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QUFpQjtzQkFEaEIsS0FBSztnQkFPTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFTTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBUU4sV0FBVztzQkFEVixNQUFNO2dCQVFQLGFBQWE7c0JBRFosTUFBTTtnQkFPUCxtQkFBbUI7c0JBRGxCLE1BQU07Z0JBT1AsTUFBTTtzQkFETCxTQUFTO3VCQUFDLE1BQU07Z0JBS2pCLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSzdCLE1BQU07c0JBREwsWUFBWTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3Jtc01vZHVsZSwgTmdGb3JtLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTnVsbGFibGUsIGRlc3Ryb3lPYnNlcnZhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBDb2x1bW5MYXlvdXQsXG4gICAgRkRQX0RPX0NIRUNLLFxuICAgIEZpZWxkSGludE9wdGlvbnMsXG4gICAgSGludElucHV0LFxuICAgIEhpbnRPcHRpb25zLFxuICAgIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgaXNPYnNlcnZhYmxlLCBtZXJnZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3ItZmllbGQvZm9ybS1nZW5lcmF0b3ItZmllbGQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCdXN5SW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1c3ktaW5kaWNhdG9yJztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NrZWxldG9uJztcbmltcG9ydCB7IERlZmF1bHRHYXBMYXlvdXQsIERlZmF1bHRWZXJ0aWNhbEZpZWxkTGF5b3V0LCBEZWZhdWx0VmVydGljYWxMYWJlbExheW91dCB9IGZyb20gJy4uLy4uL2Zvcm0tZ3JvdXAvY29uc3RhbnRzJztcbmltcG9ydCB7IEZkcEZvcm1Hcm91cE1vZHVsZSB9IGZyb20gJy4uLy4uL2Zvcm0tZ3JvdXAvZmRwLWZvcm0ubW9kdWxlJztcbmltcG9ydCB7IGRlZmF1bHRGb3JtR2VuZXJhdG9ySGludE9wdGlvbnMgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdC1mb3JtLWdlbmVyYXRvci1oaW50LW9wdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbnRyb2wsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sR3JvdXAsXG4gICAgRHluYW1pY0Zvcm1Hcm91cENvbnRyb2wsXG4gICAgRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzXG59IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1jb250cm9sJztcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbEZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWNvbnRyb2wtZmllbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBGRFBfRk9STV9HRU5FUkFUT1JfREVGQVVMVF9ISU5UX09QVElPTlMgfSBmcm9tICcuLi9mb3JtLWdlbmVyYXRvci50b2tlbnMnO1xuaW1wb3J0IHsgZ2V0UGFyZW50SXRlbSwgaXNGb3JtRmllbGRJdGVtLCBtYXBGb3JtSXRlbXMsIHRyYW5zZm9ybUZvcm1JdGVtIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUdyb3VwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tZ3JvdXAnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUl0ZW0sXG4gICAgRHluYW1pY0Zvcm1JdGVtTWFwLFxuICAgIER5bmFtaWNGb3JtSXRlbVZhbGlkYXRpb25PYmplY3QsXG4gICAgRHluYW1pY0Zvcm1WYWx1ZVxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS1pdGVtJztcbmltcG9ydCB7IEdldEhpbnRPcHRpb25zUGlwZSB9IGZyb20gJy4uL3BpcGVzL2dldC1oaW50LW9wdGlvbnMucGlwZSc7XG5pbXBvcnQgeyBHZXRPcmRlcmVkRmllbGRDb250cm9sc1BpcGUgfSBmcm9tICcuLi9waXBlcy9nZXQtb3JkZXJlZC1mb3JtLWNvbnRyb2xzLnBpcGUnO1xuXG5sZXQgZm9ybVVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IHR5cGUgRm9ybUdlbmVyYXRvckFjY2VwdGFibGVJdGVtcyA9IER5bmFtaWNGb3JtSXRlbVtdIHwgT2JzZXJ2YWJsZTxEeW5hbWljRm9ybUl0ZW1bXT47XG5cbmV4cG9ydCBjb25zdCBGRFBfRk9STV9JR05PUkVEX1NUQVRVU0VTOiBGb3JtQ29udHJvbFN0YXR1c1tdID0gWydJTlZBTElEJywgJ1BFTkRJTkcnLCAnRElTQUJMRUQnXTtcblxuZXhwb3J0IGludGVyZmFjZSBTdWJtaXRGb3JtRXZlbnRSZXN1bHQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmRpY2F0b3IgaWYgdmFsaWRhdGlvbiBoYXMgYmVlbiBwYXNzZWQuXG4gICAgICovXG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRm9ybWF0dGVkIGZvcm0gdmFsdWUuXG4gICAgICovXG4gICAgdmFsdWU6IER5bmFtaWNGb3JtVmFsdWUgfCBudWxsO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGb3JtIEdlbmVyYXRvciBjb21wb25lbnQgcmVwcmVzZW50cyBhIGhpZ2gtbGV2ZWwgY29tcG9uZW50XG4gKiB3aGljaCBpbmNsdWRlcyBAc2VlIEZvcm1Hcm91cCBpbnNpZGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWZvcm0tZ2VuZXJhdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9ET19DSEVDSyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChmb3JtR2VuZXJhdG9yOiBGb3JtR2VuZXJhdG9yQ29tcG9uZW50KSA9PiBmb3JtR2VuZXJhdG9yLmRvQ2hlY2skLFxuICAgICAgICAgICAgZGVwczogW0Zvcm1HZW5lcmF0b3JDb21wb25lbnRdXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBCdXN5SW5kaWNhdG9yTW9kdWxlLFxuICAgICAgICBGZHBGb3JtR3JvdXBNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBEeW5hbWljRm9ybUNvbnRyb2xGaWVsZERpcmVjdGl2ZSxcbiAgICAgICAgRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50LFxuICAgICAgICBTa2VsZXRvbkNvbXBvbmVudCxcbiAgICAgICAgR2V0T3JkZXJlZEZpZWxkQ29udHJvbHNQaXBlLFxuICAgICAgICBHZXRIaW50T3B0aW9uc1BpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBVbmlxdWUgZm9ybSBuYW1lICovXG4gICAgQElucHV0KClcbiAgICBmb3JtTmFtZSA9IGBmZHAtZm9ybS1nZW5lcmF0b3ItJHtmb3JtVW5pcXVlSWQrK31gO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgQHNlZSBEeW5hbWljRm9ybUl0ZW0gcmVwcmVzZW50aW5nIHRoZSBsaXN0IG9mIGl0ZW1zXG4gICAgICogdG8gYmUgcmVuZGVyZWQgaW4gdGhlIGZvcm0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9ybUl0ZW1zKGZvcm1JdGVtczogRm9ybUdlbmVyYXRvckFjY2VwdGFibGVJdGVtcykge1xuICAgICAgICBpZiAoIWZvcm1JdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybUl0ZW1zID0gaXNPYnNlcnZhYmxlKGZvcm1JdGVtcykgPyBmb3JtSXRlbXMgOiBvZihmb3JtSXRlbXMpO1xuXG4gICAgICAgIHRoaXMuX29uRm9ybUl0ZW1zQ2hhbmdlKGZvcm1JdGVtcyk7XG4gICAgfVxuICAgIGdldCBmb3JtSXRlbXMoKTogRm9ybUdlbmVyYXRvckFjY2VwdGFibGVJdGVtcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtSXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZvcm0gbWFpbiB0aXRsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1haW5UaXRsZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gaGlkZSBtYWluIHRpdGxlLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZU1haW5USXRsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSGludCBmb3IgdGhlIG1haW4gdGl0bGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpbnQ6IEhpbnRJbnB1dDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZ5IHRoZSBjb2x1bW4gbGF5b3V0IGluIHRoZSBmb3JtYXQgYFhMbi1Mbi1Nbi1TbmBcbiAgICAgKiB3aGVyZSBuIGlzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgY2FuIGJlIGRpZmZlcmVudCBmb3IgZWFjaCBzaXplLlxuICAgICAqIGVnOiBYTDItTDItTTItUzEgd291bGQgY3JlYXRlIDItY29sdW1uIGxheW91dHMgZm9yIFhMLCBMLFxuICAgICAqIGFuZCBNIHNpemVzIGFuZCBzaW5nbGUtY29sdW1uIGxheW91dCBmb3IgUyBzaXplLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uTGF5b3V0OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBsYWJlbCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdFZlcnRpY2FsTGFiZWxMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGZpZWxkJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnYXBDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRHYXBMYXlvdXQ7XG5cbiAgICAvKiogV2hldGhlciBhbGwgZm9ybSBpdGVtcyBzaG91bGQgaGF2ZSBpZGVudGljYWwgbGF5b3V0IHByb3ZpZGVkIGZvciBmb3JtIGdyb3VwLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdW5pZmllZExheW91dCA9IHRydWU7XG5cbiAgICAvKiogSW5saW5lIGNvbHVtbiBsYXlvdXQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlubGluZUNvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmVtb3ZlcyBleHRyYSBlbXB0eSByb3cuXG4gICAgICogVE9ETzogcmVtb3ZlIGFmdGVyICM3NTMzIGhhcyBiZWVuIGZpeGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9BZGRpdGlvbmFsQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV2ZW50IHdoaWNoIG5vdGlmaWVzIHBhcmVudCBjb21wb25lbnQgdGhhdCB0aGUgZm9ybSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY3JlYXRlZFxuICAgICAqIGFuZCBhbGwgY29udHJvbHMgYXJlIGluIHBsYWNlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1DcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUdyb3VwPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV2ZW50IHdoaWNoIG5vdGlmaWVzIHBhcmVudCBjb21wb25lbnQgdGhhdCB0aGUgZm9ybSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdmFsaWRhdGVkXG4gICAgICogYW5kIHN1Ym1pdHRlZC4gQ29udGFpbnMgZm9ybVxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1TdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtVmFsdWU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIHdhcyBzdWJtaXR0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVN1Ym1pdHRlZFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8U3VibWl0Rm9ybUV2ZW50UmVzdWx0PigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIGZvcm0gaW5zdGFuY2UuIEBzZWUgTmdGb3JtXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChOZ0Zvcm0pXG4gICAgbmdGb3JtOiBOZ0Zvcm07XG5cbiAgICAvKiogSW5uZXIgZm9ybSBncm91cCBkaXJlY3RpdmUuICovXG4gICAgQFZpZXdDaGlsZChGb3JtR3JvdXBEaXJlY3RpdmUpXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmU7XG5cbiAgICAvKiogSW5uZXIgZm9ybSBmaWVsZHMgKi9cbiAgICBAVmlld0NoaWxkcmVuKEZvcm1HZW5lcmF0b3JGaWVsZENvbXBvbmVudClcbiAgICBmaWVsZHM6IFF1ZXJ5TGlzdDxGb3JtR2VuZXJhdG9yRmllbGRDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBkb0NoZWNrJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQXJyYXkgb2YgZm9ybSBmaWVsZCBjb250cm9scy4gKi9cbiAgICBnZXQgZm9ybUZpZWxkcygpOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2xbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkc1xuICAgICAgICAgICAgPy50b0FycmF5KClcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiAhIWZpZWxkLmZpZWxkUmVuZGVyZXI/LmNvbnRyb2wpXG4gICAgICAgICAgICAubWFwKChmaWVsZCkgPT4gZmllbGQuZmllbGRSZW5kZXJlci5jb250cm9sISk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBmb3JtLiBAc2VlIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXG4gICAgICovXG4gICAgZm9ybTogRHluYW1pY0Zvcm1Hcm91cDtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiB0aGUgZm9ybSBjb250cm9scy5cbiAgICAgKi9cbiAgICBmb3JtQ29udHJvbEl0ZW1zOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGZsYWdzIHJlcHJlc2VudGluZyBpZiBwYXJ0aWN1bGFyIGZvcm0gaXRlbSBzaG91bGQgYmUgdmlzaWJsZSB0byB0aGUgdXNlci5cbiAgICAgKi9cbiAgICBzaG91bGRTaG93RmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogRmxhZyByZXByZXNlbnRpbmcgdGhhdCBmb3JtIGlzIGxvYWRpbmdcbiAgICAgKi9cbiAgICBmb3JtTG9hZGluZyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgZm9ybSBsb2FkaW5nIHN0YXRlLlxuICAgICAqL1xuICAgIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmZvcm1Mb2FkaW5nKTtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSBvZiBsYXN0IGZvcm0gc3VibWlzc2lvbiBzdGF0dXMuXG4gICAgICovXG4gICAgZm9ybVN1Ym1pdHRlZFN0YXR1cyQgPSBuZXcgU3ViamVjdDxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gb2YgbGFzdCBmb3JtIHN1Ym1pc3Npb24gdmFsdWUuXG4gICAgICovXG4gICAgZm9ybVZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0Zvcm1WYWx1ZT4oe30pO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBmaXJzdCBsb2FkaW5nIHdoZW4gc2tlbGV0b25zIGJlIHNob3duIGFuZCBzdWJzZXF1ZW50IGxvYWRpbmdzIHdoZW4gYnVzeSBpbmRpY2F0b3IgYmUgc2hvd25cbiAgICAgKi9cbiAgICBfZmlyc3RMb2FkaW5nRG9uZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGhpbnRPcHRpb25zOiBIaW50T3B0aW9ucztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Vycm9yTW9kZWxzOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtSXRlbXM6IEZvcm1HZW5lcmF0b3JBY2NlcHRhYmxlSXRlbXM7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybVZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZ1N1Ym1pdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tYXBwZWRGb3JtaXRlbXM6IE1hcDxzdHJpbmcsIER5bmFtaWNGb3JtSXRlbU1hcD4gPSBuZXcgTWFwKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9mZ1NlcnZpY2U6IEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRkRQX0ZPUk1fR0VORVJBVE9SX0RFRkFVTFRfSElOVF9PUFRJT05TKSBfcHJvdmlkZWRIaW50T3B0aW9uczogRmllbGRIaW50T3B0aW9uc1xuICAgICkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0SGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0Rm9ybUdlbmVyYXRvckhpbnRPcHRpb25zLFxuICAgICAgICAgICAgLi4uX3Byb3ZpZGVkSGludE9wdGlvbnNcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9lcnJvck1vZGVscyA9IHRoaXMuX2dldEVycm9ycygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5oaW50KSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGludCA9PT0gJ3N0cmluZycgfHwgdGhpcy5oaW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuaGludFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5oaW50XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmdTdWJtaXRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVmcmVzaGVzIGZvcm0gaXRlbXMgdmlzaWJpbGl0eSB3aXRoICd3aGVuJyBjb25kaXRpb24uXG4gICAgICovXG4gICAgYXN5bmMgcmVmcmVzaFN0ZXBzVmlzaWJpbGl0eSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zaG91bGRTaG93RmllbGRzID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmNoZWNrVmlzaWJsZUZvcm1JdGVtcyh0aGlzLmZvcm0pO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgYXN5bmMgX29uU3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuZG9DaGVjayQubmV4dCgpO1xuXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtVmFsdWUodGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWRTdGF0dXMuZW1pdCh7IHN1Y2Nlc3M6ICF0aGlzLmZvcm0uaW52YWxpZCwgdmFsdWU6IGZvcm1WYWx1ZSB9KTtcbiAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkU3RhdHVzJC5uZXh0KHsgc3VjY2VzczogIXRoaXMuZm9ybS5pbnZhbGlkLCB2YWx1ZTogZm9ybVZhbHVlIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZC5lbWl0KGZvcm1WYWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlJC5uZXh0KGZvcm1WYWx1ZSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBuZXcgY29udHJvbCB0byBhbiBleGlzdGluZyBmb3JtLlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgY29uZmlndXJhdGlvbiB0byBhZGQuXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgY29udHJvbC5cbiAgICAgKi9cbiAgICBhc3luYyBhZGRDb250cm9sKGNvbnRyb2w6IER5bmFtaWNGb3JtSXRlbSwgcGF0aD86IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2FkZENvbnRyb2xUb0Zvcm1JdGVtcyhjb250cm9sLCBwYXRoKTtcbiAgICAgICAgdGhpcy5fZmdTZXJ2aWNlLmFkZENvbnRyb2woY29udHJvbCwgdGhpcy5mb3JtLCBwYXRoKTtcblxuICAgICAgICB0aGlzLmZvcm1Db250cm9sSXRlbXMgPSB0aGlzLl9nZXRPcmRlcmVkQ29udHJvbHModGhpcy5mb3JtLmNvbnRyb2xzKTtcblxuICAgICAgICB0aGlzLnNob3VsZFNob3dGaWVsZHMgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuY2hlY2tWaXNpYmxlRm9ybUl0ZW1zKHRoaXMuZm9ybSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgY29udHJvbCB3aXRoIHRoZSBnaXZlbiBuYW1lIGJ5IHRoZSBnaXZlbiBwYXRoLlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGNvbnRyb2wuXG4gICAgICogQHBhcmFtIHBhdGggUGF0aCBvZiB0aGUgY29udHJvbC5cbiAgICAgKi9cbiAgICBhc3luYyByZW1vdmVDb250cm9sKG5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlQ29udHJvbEZyb21JdGVtcyhuYW1lLCBwYXRoKTtcbiAgICAgICAgdGhpcy5fZmdTZXJ2aWNlLnJlbW92ZUNvbnRyb2wobmFtZSwgdGhpcy5mb3JtLCBwYXRoKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbEl0ZW1zID0gdGhpcy5fZ2V0T3JkZXJlZENvbnRyb2xzKHRoaXMuZm9ybS5jb250cm9scyk7XG5cbiAgICAgICAgdGhpcy5zaG91bGRTaG93RmllbGRzID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmNoZWNrVmlzaWJsZUZvcm1JdGVtcyh0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF90cmFja0ZuKGluZGV4OiBudW1iZXIsIHZhbHVlOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtpbmRleH1fJHt2YWx1ZS5mb3JtSXRlbS5uYW1lfWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ3JvdXBUcmFja0ZuKGluZGV4OiBudW1iZXIsIHZhbHVlOiBEeW5hbWljRm9ybUdyb3VwQ29udHJvbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodmFsdWUgYXMgRHluYW1pY0Zvcm1Db250cm9sR3JvdXApLmZvcm1JdGVtLm5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvZ3JhbW1hdGljYWxseSBzdWJtaXQgZm9ybS5cbiAgICAgKiBUaGlzIG1ldGhvZCBhbHNvIGNhbGxzIHZhbGlkYXRpb24gZm9yIHRoZSBmb3JtIGl0ZW1zLlxuICAgICAqL1xuICAgIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAub25TdWJtaXQobmV3IEV2ZW50KCdzdWJtaXQnKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNBZHZhbmNlZEVycm9yKGVycm9yOiBhbnkpOiBlcnJvciBpcyBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIGVycm9yLmhlYWRpbmcgJiYgZXJyb3IuZGVzY3JpcHRpb24gJiYgZXJyb3IudHlwZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9lcnJvcnNUcmFja0J5KF86IG51bWJlciwgZXJyb3I6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZXJyb3IudHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2VuZXJhdGVGb3JtKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRoaXMuZm9ybUxvYWRpbmcpO1xuXG4gICAgICAgIGNvbnN0IGZvcm0gPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuZ2VuZXJhdGVGb3JtKHRoaXMuZm9ybU5hbWUsIHRoaXMuX21hcHBlZEZvcm1pdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fZm9ybVZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG5cbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbEl0ZW1zID0gdGhpcy5fZ2V0T3JkZXJlZENvbnRyb2xzKGZvcm0uY29udHJvbHMpO1xuXG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcblxuICAgICAgICB0aGlzLl9mb3JtVmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFNob3dGaWVsZHMgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuY2hlY2tWaXNpYmxlRm9ybUl0ZW1zKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2ZpcnN0TG9hZGluZ0RvbmUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLmVtaXQodGhpcy5mb3JtKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRoaXMuZm9ybUxvYWRpbmcpO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvU3VibWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRPcmRlcmVkQ29udHJvbHMoY29udHJvbHM6IER5bmFtaWNGb3JtR3JvdXBDb250cm9scyk6IChEeW5hbWljRm9ybUNvbnRyb2wgfCBEeW5hbWljRm9ybUNvbnRyb2xHcm91cClbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKGNvbnRyb2xzKS5zb3J0KFxuICAgICAgICAgICAgKGEsIGIpID0+IChhLmZvcm1JdGVtPy5yYW5rID8/IC1JbmZpbml0eSkgLSAoYi5mb3JtSXRlbT8ucmFuayA/PyAtSW5maW5pdHkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRFcnJvcnMoKTogeyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdIHtcbiAgICAgICAgY29uc3QgcmV0dXJuRXJyb3JzOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10gPSBbXTtcbiAgICAgICAgY29uc3QgcmVnaXN0ZXJlZEVycm9ycyA9IHRoaXMuX2ZnU2VydmljZS52YWxpZGF0aW9uRXJyb3JIaW50cztcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocmVnaXN0ZXJlZEVycm9ycykuZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgW2Vycm9yVHlwZSwgZXJyb3JWYWx1ZV0gPSB0eXBlO1xuXG4gICAgICAgICAgICByZXR1cm5FcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogZXJyb3JUeXBlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlcnJvclZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJldHVybkVycm9ycztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvU3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9uZ1N1Ym1pdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fbmdTdWJtaXRTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Hcm91cC5uZ1N1Ym1pdFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXMhLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtR3JvdXAuc3RhdHVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4gc3RhdHVzICE9PSAnUEVORElORycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fb25TdWJtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1N1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vbkZvcm1JdGVtc0NoYW5nZShpdGVtczogT2JzZXJ2YWJsZTxEeW5hbWljRm9ybUl0ZW1bXT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaCQubmV4dCgpO1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMuX3JlZnJlc2gkID0gbmV3IFN1YmplY3QoKTtcblxuICAgICAgICBpdGVtcy5waXBlKHRha2VVbnRpbChtZXJnZSh0aGlzLl9yZWZyZXNoJCwgZGVzdHJveU9ic2VydmFibGUodGhpcy5fZGVzdHJveVJlZikpKSkuc3Vic2NyaWJlKChmb3JtSXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21hcHBlZEZvcm1pdGVtcyA9IG1hcEZvcm1JdGVtcyhmb3JtSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVGb3JtKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwbHlSYW5rKGl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXSk6IER5bmFtaWNGb3JtSXRlbVtdIHtcbiAgICAgICAgaXRlbXMgPSBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLnJhbmsgPSBpdGVtLnJhbmsgfHwgaW5kZXg7XG4gICAgICAgICAgICBpZiAoaXRlbS5pdGVtcykge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXRlbXMgPSB0aGlzLl9hcHBseVJhbmsoaXRlbS5pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRkQ29udHJvbFRvRm9ybUl0ZW1zKGl0ZW06IER5bmFtaWNGb3JtSXRlbSwgcGF0aD86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgdGhpcy5fbWFwcGVkRm9ybWl0ZW1zLnNldChpdGVtLm5hbWUsIHRyYW5zZm9ybUZvcm1JdGVtKGl0ZW0sIHRoaXMuX21hcHBlZEZvcm1pdGVtcy5zaXplKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnRJdGVtID0gZ2V0UGFyZW50SXRlbShwYXRoLCB0aGlzLl9tYXBwZWRGb3JtaXRlbXMpO1xuXG4gICAgICAgIGlmICghcGFyZW50SXRlbSB8fCBpc0Zvcm1GaWVsZEl0ZW0ocGFyZW50SXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmVudEl0ZW0uaXRlbXMgPSBwYXJlbnRJdGVtLml0ZW1zIHx8IG5ldyBNYXAoKTtcbiAgICAgICAgcGFyZW50SXRlbS5pdGVtcy5zZXQoaXRlbS5uYW1lLCB0cmFuc2Zvcm1Gb3JtSXRlbShpdGVtLCBwYXJlbnRJdGVtLml0ZW1zLnNpemUpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlbW92ZUNvbnRyb2xGcm9tSXRlbXMobmFtZTogc3RyaW5nLCBwYXRoPzogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXBwZWRGb3JtaXRlbXMuZGVsZXRlKG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50SXRlbSA9IGdldFBhcmVudEl0ZW0ocGF0aCwgdGhpcy5fbWFwcGVkRm9ybWl0ZW1zKTtcblxuICAgICAgICBpZiAoIXBhcmVudEl0ZW0gfHwgaXNGb3JtRmllbGRJdGVtKHBhcmVudEl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwYXJlbnRJdGVtLml0ZW1zPy5kZWxldGUobmFtZSk7XG4gICAgfVxufVxuIiwiQGlmIChfZmlyc3RMb2FkaW5nRG9uZSkge1xuICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJmb3JtTG9hZGluZ1wiIFtibG9ja109XCJ0cnVlXCI+XG4gICAgICAgIEBpZiAoZm9ybSkge1xuICAgICAgICAgICAgPGZkcC1mb3JtLWdyb3VwXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwiaGludFwiXG4gICAgICAgICAgICAgICAgW21haW5UaXRsZV09XCJtYWluVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtoaWRlTWFpblRJdGxlXT1cImhpZGVNYWluVEl0bGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbkxheW91dF09XCJjb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbENvbHVtbkxheW91dF09XCJsYWJlbENvbHVtbkxheW91dFwiXG4gICAgICAgICAgICAgICAgW2ZpZWxkQ29sdW1uTGF5b3V0XT1cImZpZWxkQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICBbZ2FwQ29sdW1uTGF5b3V0XT1cImdhcENvbHVtbkxheW91dFwiXG4gICAgICAgICAgICAgICAgW3VuaWZpZWRMYXlvdXRdPVwidW5pZmllZExheW91dFwiXG4gICAgICAgICAgICAgICAgW2lubGluZUNvbHVtbkxheW91dF09XCJpbmxpbmVDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgIFt1c2VGb3JtXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIF9lcnJvck1vZGVsczsgdHJhY2sgX2Vycm9yc1RyYWNrQnkoJGluZGV4LCBlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yPVwiZXJyb3IudHlwZTsgbGV0IGRpcmVjdGl2ZUVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKF9pc0FkdmFuY2VkRXJyb3IoZGlyZWN0aXZlRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkaXJlY3RpdmVFcnJvci5oZWFkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yOyB0eXBlOiBkaXJlY3RpdmVFcnJvci50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWxpZGF0aW9uRXJyb3IuaGVhZGluZyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZGlyZWN0aXZlRXJyb3IuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb249XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWxpZGF0aW9uRXJyb3IuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yLnZhbHVlID8gZXJyb3IudmFsdWUgOiB2YWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZm9ybUNvbnRyb2xJdGVtczsgdHJhY2sgX3RyYWNrRm4oJGluZGV4LCBmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC50eXBlID09PSAnZmllbGQnID8gZmllbGRSZW5kZXJlciA6IGdyb3VwUmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogZmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkTmFtZTogZmllbGQuZm9ybUl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5rOiBmaWVsZC5mb3JtSXRlbT8ucmFuayB8fCAwXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgI2ZpZWxkUmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldC1maWVsZD1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldC1mb3JtRmllbGROYW1lPVwiZm9ybUZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQtZm9ybUdyb3VwTmFtZT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0LXJhbms9XCJyYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpmZHBEeW5hbWljRm9ybUNvbnRyb2xGaWVsZD1cImZpZWxkOyBzaG93OiBzaG91bGRTaG93RmllbGRzW2ZpZWxkLmZvcm1JdGVtLm5hbWVdICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGludE9wdGlvbnNdPVwiZmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucyB8IGdldEhpbnRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG91bGRTaG93XT1cInNob3VsZFNob3dGaWVsZHNbZmllbGQuZm9ybUl0ZW0ubmFtZV0gIT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1GaWVsZE5hbWVdPVwiZm9ybUZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmb3JtR3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwicmFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWZvcm0tZ2VuZXJhdG9yLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JvdXBSZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1maWVsZC1ncm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zIHwgZ2V0SGludE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmaWVsZC5mb3JtSXRlbS5tZXNzYWdlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxDb2x1bW5MYXlvdXRdPVwiZmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucz8ubGFiZWxDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5maWVsZENvbHVtbkxheW91dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dhcENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5nYXBDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtTmFtZV09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZCBvZiBmaWVsZCB8IGdldE9yZGVyZWRGaWVsZENvbnRyb2xzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBfZ3JvdXBUcmFja0ZuKCRpbmRleCwgZ3JvdXBGaWVsZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmZkcER5bmFtaWNGb3JtQ29udHJvbEZpZWxkPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiBzaG91bGRTaG93RmllbGRzW2dyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZSFdICE9PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJncm91cEZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnMgfCBnZXRIaW50T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImdyb3VwRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG91bGRTaG93XT1cInNob3VsZFNob3dGaWVsZHNbZ3JvdXBGaWVsZC5mb3JtSXRlbS5uYW1lIV0gIT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUZpZWxkTmFtZV09XCJncm91cEZpZWxkLmZvcm1JdGVtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFua109XCJncm91cEZpZWxkLmZvcm1JdGVtLnJhbmsgfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtZm9ybS1nZW5lcmF0b3ItZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmRwLWZvcm0tZmllbGQtZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIW5vQWRkaXRpb25hbENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWZpZWxkIFtjb2x1bW5dPVwiMVwiIFtyYW5rXT1cImZvcm1Db250cm9sSXRlbXMubGVuZ3RoICsgMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGb3IgdXNlci1kZWZpbmVkIGVsZW1lbnRzLCBsaWtlIHN1Ym1pdCBidXR0b24gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZmRwLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9mZHAtZm9ybS1ncm91cD5cbiAgICAgICAgfVxuICAgIDwvZmQtYnVzeS1pbmRpY2F0b3I+XG59IEBlbHNlIHtcbiAgICA8ZmQtc2tlbGV0b24gd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwcHhcIiBbc3R5bGUucGFkZGluZy5yZW1dPVwiMVwiPlxuICAgICAgICA8c3ZnOnJlY3QgeD1cIjBcIiB5PVwiMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMTUlXCIgaGVpZ2h0PVwiOFwiIC8+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMFwiIHk9XCIyMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMjUlXCIgaGVpZ2h0PVwiMTZcIiAvPlxuICAgICAgICA8c3ZnOnJlY3QgeD1cIjM1JVwiIHk9XCIwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIzNSVcIiB5PVwiMjBcIiByeD1cIjRcIiB3aWR0aD1cIjI1JVwiIGhlaWdodD1cIjE2XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjYwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjgwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG4gICAgPC9mZC1za2VsZXRvbj5cbn1cbiJdfQ==
|
|
431
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9mb3JtL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vZm9ybS9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFCLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSCxPQUFPLEVBQVksaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBRUgsWUFBWSxFQUNaLGVBQWUsRUFLbEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRXJHLE9BQU8s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QkFDOUUsSUFBSSxFQUFFLHdCQUF3Qjt5QkFDakM7cUJBQ0osY0FDVyxJQUFJLFdBQ1A7d0JBQ0wsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGdDQUFnQzt3QkFDaEMsMkJBQTJCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3FCQUNyQjs7MEJBdU5JLE1BQU07MkJBQUMsdUNBQXVDO3lDQWxObkQsUUFBUTtzQkFEUCxLQUFLO2dCQVFGLFNBQVM7c0JBRFosS0FBSztnQkFrQk4sU0FBUztzQkFEUixLQUFLO2dCQU9OLGFBQWE7c0JBRFosS0FBSztnQkFRTixJQUFJO3NCQURILEtBQUs7Z0JBVU4sWUFBWTtzQkFEWCxLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBU04sbUJBQW1CO3NCQURsQixLQUFLO2dCQVFOLFdBQVc7c0JBRFYsTUFBTTtnQkFRUCxhQUFhO3NCQURaLE1BQU07Z0JBT1AsbUJBQW1CO3NCQURsQixNQUFNO2dCQU9QLE1BQU07c0JBREwsU0FBUzt1QkFBQyxNQUFNO2dCQUtqQixTQUFTO3NCQURSLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUs3QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xTdGF0dXMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIE5nRm9ybSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE51bGxhYmxlLCBkZXN0cm95T2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQ29sdW1uTGF5b3V0LFxuICAgIEZEUF9ET19DSEVDSyxcbiAgICBGRFBfRk9STV9TVUJNSVQsXG4gICAgRmllbGRIaW50T3B0aW9ucyxcbiAgICBIaW50SW5wdXQsXG4gICAgSGludE9wdGlvbnMsXG4gICAgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBpc09ic2VydmFibGUsIG1lcmdlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLWZpZWxkL2Zvcm0tZ2VuZXJhdG9yLWZpZWxkLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQnVzeUluZGljYXRvck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXN5LWluZGljYXRvcic7XG5pbXBvcnQgeyBTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9za2VsZXRvbic7XG5pbXBvcnQgeyBEZWZhdWx0R2FwTGF5b3V0LCBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dCwgRGVmYXVsdFZlcnRpY2FsTGFiZWxMYXlvdXQgfSBmcm9tICcuLi8uLi9mb3JtLWdyb3VwL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGZHBGb3JtR3JvdXBNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3JtLWdyb3VwL2ZkcC1mb3JtLm1vZHVsZSc7XG5pbXBvcnQgeyBkZWZhdWx0Rm9ybUdlbmVyYXRvckhpbnRPcHRpb25zIH0gZnJvbSAnLi4vY29uZmlnL2RlZmF1bHQtZm9ybS1nZW5lcmF0b3ItaGludC1vcHRpb25zJztcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1Db250cm9sLFxuICAgIER5bmFtaWNGb3JtQ29udHJvbEdyb3VwLFxuICAgIER5bmFtaWNGb3JtR3JvdXBDb250cm9sLFxuICAgIER5bmFtaWNGb3JtR3JvdXBDb250cm9sc1xufSBmcm9tICcuLi9keW5hbWljLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1jb250cm9sLWZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRkRQX0ZPUk1fR0VORVJBVE9SX0RFRkFVTFRfSElOVF9PUFRJT05TIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IudG9rZW5zJztcbmltcG9ydCB7IGdldFBhcmVudEl0ZW0sIGlzRm9ybUZpZWxkSXRlbSwgbWFwRm9ybUl0ZW1zLCB0cmFuc2Zvcm1Gb3JtSXRlbSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Hcm91cCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWdyb3VwJztcbmltcG9ydCB7XG4gICAgRHluYW1pY0Zvcm1JdGVtLFxuICAgIER5bmFtaWNGb3JtSXRlbU1hcCxcbiAgICBEeW5hbWljRm9ybUl0ZW1WYWxpZGF0aW9uT2JqZWN0LFxuICAgIER5bmFtaWNGb3JtVmFsdWVcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0taXRlbSc7XG5pbXBvcnQgeyBHZXRIaW50T3B0aW9uc1BpcGUgfSBmcm9tICcuLi9waXBlcy9nZXQtaGludC1vcHRpb25zLnBpcGUnO1xuaW1wb3J0IHsgR2V0T3JkZXJlZEZpZWxkQ29udHJvbHNQaXBlIH0gZnJvbSAnLi4vcGlwZXMvZ2V0LW9yZGVyZWQtZm9ybS1jb250cm9scy5waXBlJztcblxubGV0IGZvcm1VbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCB0eXBlIEZvcm1HZW5lcmF0b3JBY2NlcHRhYmxlSXRlbXMgPSBEeW5hbWljRm9ybUl0ZW1bXSB8IE9ic2VydmFibGU8RHluYW1pY0Zvcm1JdGVtW10+O1xuXG5leHBvcnQgY29uc3QgRkRQX0ZPUk1fSUdOT1JFRF9TVEFUVVNFUzogRm9ybUNvbnRyb2xTdGF0dXNbXSA9IFsnSU5WQUxJRCcsICdQRU5ESU5HJywgJ0RJU0FCTEVEJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibWl0Rm9ybUV2ZW50UmVzdWx0IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5kaWNhdG9yIGlmIHZhbGlkYXRpb24gaGFzIGJlZW4gcGFzc2VkLlxuICAgICAqL1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZvcm1hdHRlZCBmb3JtIHZhbHVlLlxuICAgICAqL1xuICAgIHZhbHVlOiBEeW5hbWljRm9ybVZhbHVlIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRm9ybSBHZW5lcmF0b3IgY29tcG9uZW50IHJlcHJlc2VudHMgYSBoaWdoLWxldmVsIGNvbXBvbmVudFxuICogd2hpY2ggaW5jbHVkZXMgQHNlZSBGb3JtR3JvdXAgaW5zaWRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1mb3JtLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfRE9fQ0hFQ0ssXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoZm9ybUdlbmVyYXRvcjogRm9ybUdlbmVyYXRvckNvbXBvbmVudCkgPT4gZm9ybUdlbmVyYXRvci5kb0NoZWNrJCxcbiAgICAgICAgICAgIGRlcHM6IFtGb3JtR2VuZXJhdG9yQ29tcG9uZW50XVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfRk9STV9TVUJNSVQsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoZm9ybUdlbmVyYXRvcjogRm9ybUdlbmVyYXRvckNvbXBvbmVudCkgPT4gZm9ybUdlbmVyYXRvci5uZ1N1Ym1pdCQsXG4gICAgICAgICAgICBkZXBzOiBbRm9ybUdlbmVyYXRvckNvbXBvbmVudF1cbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEJ1c3lJbmRpY2F0b3JNb2R1bGUsXG4gICAgICAgIEZkcEZvcm1Hcm91cE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIER5bmFtaWNGb3JtQ29udHJvbEZpZWxkRGlyZWN0aXZlLFxuICAgICAgICBGb3JtR2VuZXJhdG9yRmllbGRDb21wb25lbnQsXG4gICAgICAgIFNrZWxldG9uQ29tcG9uZW50LFxuICAgICAgICBHZXRPcmRlcmVkRmllbGRDb250cm9sc1BpcGUsXG4gICAgICAgIEdldEhpbnRPcHRpb25zUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFVuaXF1ZSBmb3JtIG5hbWUgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1OYW1lID0gYGZkcC1mb3JtLWdlbmVyYXRvci0ke2Zvcm1VbmlxdWVJZCsrfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvZiBAc2VlIER5bmFtaWNGb3JtSXRlbSByZXByZXNlbnRpbmcgdGhlIGxpc3Qgb2YgaXRlbXNcbiAgICAgKiB0byBiZSByZW5kZXJlZCBpbiB0aGUgZm9ybS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JtSXRlbXMoZm9ybUl0ZW1zOiBGb3JtR2VuZXJhdG9yQWNjZXB0YWJsZUl0ZW1zKSB7XG4gICAgICAgIGlmICghZm9ybUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtSXRlbXMgPSBpc09ic2VydmFibGUoZm9ybUl0ZW1zKSA/IGZvcm1JdGVtcyA6IG9mKGZvcm1JdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fb25Gb3JtSXRlbXNDaGFuZ2UoZm9ybUl0ZW1zKTtcbiAgICB9XG4gICAgZ2V0IGZvcm1JdGVtcygpOiBGb3JtR2VuZXJhdG9yQWNjZXB0YWJsZUl0ZW1zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1JdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRm9ybSBtYWluIHRpdGxlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWFpblRpdGxlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBoaWRlIG1haW4gdGl0bGUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaWRlTWFpblRJdGxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBIaW50IGZvciB0aGUgbWFpbiB0aXRsZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGludDogSGludElucHV0O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNwZWNpZnkgdGhlIGNvbHVtbiBsYXlvdXQgaW4gdGhlIGZvcm1hdCBgWExuLUxuLU1uLVNuYFxuICAgICAqIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuZCBjYW4gYmUgZGlmZmVyZW50IGZvciBlYWNoIHNpemUuXG4gICAgICogZWc6IFhMMi1MMi1NMi1TMSB3b3VsZCBjcmVhdGUgMi1jb2x1bW4gbGF5b3V0cyBmb3IgWEwsIEwsXG4gICAgICogYW5kIE0gc2l6ZXMgYW5kIHNpbmdsZS1jb2x1bW4gbGF5b3V0IGZvciBTIHNpemUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb2x1bW5MYXlvdXQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxMYWJlbExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRWZXJ0aWNhbEZpZWxkTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdEdhcExheW91dDtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKiBJbmxpbmUgY29sdW1uIGxheW91dCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZW1vdmVzIGV4dHJhIGVtcHR5IHJvdy5cbiAgICAgKiBUT0RPOiByZW1vdmUgYWZ0ZXIgIzc1MzMgaGFzIGJlZW4gZml4ZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBub0FkZGl0aW9uYWxDb250ZW50ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkXG4gICAgICogYW5kIGFsbCBjb250cm9scyBhcmUgaW4gcGxhY2UuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtR3JvdXA+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgd2hpY2ggbm90aWZpZXMgcGFyZW50IGNvbXBvbmVudCB0aGF0IHRoZSBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWRcbiAgICAgKiBhbmQgc3VibWl0dGVkLiBDb250YWlucyBmb3JtXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0Zvcm1WYWx1ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFdmVudCB3aGljaCBub3RpZmllcyBwYXJlbnQgY29tcG9uZW50IHRoYXQgdGhlIGZvcm0gd2FzIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU3VibWl0dGVkU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxTdWJtaXRGb3JtRXZlbnRSZXN1bHQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgZm9ybSBpbnN0YW5jZS4gQHNlZSBOZ0Zvcm1cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE5nRm9ybSlcbiAgICBuZ0Zvcm06IE5nRm9ybTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGdyb3VwIGRpcmVjdGl2ZS4gKi9cbiAgICBAVmlld0NoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSlcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZTtcblxuICAgIC8qKiBJbm5lciBmb3JtIGZpZWxkcyAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckZpZWxkQ29tcG9uZW50KVxuICAgIGZpZWxkczogUXVlcnlMaXN0PEZvcm1HZW5lcmF0b3JGaWVsZENvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGRvQ2hlY2skID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdTdWJtaXQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBBcnJheSBvZiBmb3JtIGZpZWxkIGNvbnRyb2xzLiAqL1xuICAgIGdldCBmb3JtRmllbGRzKCk6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGRzXG4gICAgICAgICAgICA/LnRvQXJyYXkoKVxuICAgICAgICAgICAgLmZpbHRlcigoZmllbGQpID0+ICEhZmllbGQuZmllbGRSZW5kZXJlcj8uY29udHJvbClcbiAgICAgICAgICAgIC5tYXAoKGZpZWxkKSA9PiBmaWVsZC5maWVsZFJlbmRlcmVyLmNvbnRyb2whKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGZvcm0uIEBzZWUgRm9ybUdlbmVyYXRvclNlcnZpY2VcbiAgICAgKi9cbiAgICBmb3JtOiBEeW5hbWljRm9ybUdyb3VwO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIHRoZSBmb3JtIGNvbnRyb2xzLlxuICAgICAqL1xuICAgIGZvcm1Db250cm9sSXRlbXM6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sW107XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb2YgZmxhZ3MgcmVwcmVzZW50aW5nIGlmIHBhcnRpY3VsYXIgZm9ybSBpdGVtIHNob3VsZCBiZSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHNob3VsZFNob3dGaWVsZHM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICAvKipcbiAgICAgKiBGbGFnIHJlcHJlc2VudGluZyB0aGF0IGZvcm0gaXMgbG9hZGluZ1xuICAgICAqL1xuICAgIGZvcm1Mb2FkaW5nID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSBvZiBmb3JtIGxvYWRpbmcgc3RhdGUuXG4gICAgICovXG4gICAgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuZm9ybUxvYWRpbmcpO1xuXG4gICAgLyoqXG4gICAgICogU3RyZWFtIG9mIGxhc3QgZm9ybSBzdWJtaXNzaW9uIHN0YXR1cy5cbiAgICAgKi9cbiAgICBmb3JtU3VibWl0dGVkU3RhdHVzJCA9IG5ldyBTdWJqZWN0PFN1Ym1pdEZvcm1FdmVudFJlc3VsdD4oKTtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSBvZiBsYXN0IGZvcm0gc3VibWlzc2lvbiB2YWx1ZS5cbiAgICAgKi9cbiAgICBmb3JtVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEeW5hbWljRm9ybVZhbHVlPih7fSk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogVG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGZpcnN0IGxvYWRpbmcgd2hlbiBza2VsZXRvbnMgYmUgc2hvd24gYW5kIHN1YnNlcXVlbnQgbG9hZGluZ3Mgd2hlbiBidXN5IGluZGljYXRvciBiZSBzaG93blxuICAgICAqL1xuICAgIF9maXJzdExvYWRpbmdEb25lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgaGludE9wdGlvbnM6IEhpbnRPcHRpb25zO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZXJyb3JNb2RlbHM6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1JdGVtczogRm9ybUdlbmVyYXRvckFjY2VwdGFibGVJdGVtcztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtVmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVmcmVzaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0SGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25nU3VibWl0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21hcHBlZEZvcm1pdGVtczogTWFwPHN0cmluZywgRHluYW1pY0Zvcm1JdGVtTWFwPiA9IG5ldyBNYXAoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZnU2VydmljZTogRm9ybUdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChGRFBfRk9STV9HRU5FUkFUT1JfREVGQVVMVF9ISU5UX09QVElPTlMpIF9wcm92aWRlZEhpbnRPcHRpb25zOiBGaWVsZEhpbnRPcHRpb25zXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRGb3JtR2VuZXJhdG9ySGludE9wdGlvbnMsXG4gICAgICAgICAgICAuLi5fcHJvdmlkZWRIaW50T3B0aW9uc1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX2Vycm9yTW9kZWxzID0gdGhpcy5fZ2V0RXJyb3JzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmhpbnQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5oaW50ID09PSAnc3RyaW5nJyB8fCB0aGlzLmhpbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIHRoaXMuaGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5oaW50XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaW50T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fZGVmYXVsdEhpbnRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmhpbnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9uZ1N1Ym1pdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWZyZXNoZXMgZm9ybSBpdGVtcyB2aXNpYmlsaXR5IHdpdGggJ3doZW4nIGNvbmRpdGlvbi5cbiAgICAgKi9cbiAgICBhc3luYyByZWZyZXNoU3RlcHNWaXNpYmlsaXR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnNob3VsZFNob3dGaWVsZHMgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuY2hlY2tWaXNpYmxlRm9ybUl0ZW1zKHRoaXMuZm9ybSk7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBhc3luYyBfb25TdWJtaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5kb0NoZWNrJC5uZXh0KCk7XG5cbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmdldEZvcm1WYWx1ZSh0aGlzLmZvcm0pO1xuXG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pdHRlZFN0YXR1cy5lbWl0KHsgc3VjY2VzczogIXRoaXMuZm9ybS5pbnZhbGlkLCB2YWx1ZTogZm9ybVZhbHVlIH0pO1xuICAgICAgICB0aGlzLmZvcm1TdWJtaXR0ZWRTdGF0dXMkLm5leHQoeyBzdWNjZXNzOiAhdGhpcy5mb3JtLmludmFsaWQsIHZhbHVlOiBmb3JtVmFsdWUgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkLmVtaXQoZm9ybVZhbHVlKTtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWUkLm5leHQoZm9ybVZhbHVlKTtcblxuICAgICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIG5ldyBjb250cm9sIHRvIGFuIGV4aXN0aW5nIGZvcm0uXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBjb25maWd1cmF0aW9uIHRvIGFkZC5cbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqL1xuICAgIGFzeW5jIGFkZENvbnRyb2woY29udHJvbDogRHluYW1pY0Zvcm1JdGVtLCBwYXRoPzogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fYWRkQ29udHJvbFRvRm9ybUl0ZW1zKGNvbnRyb2wsIHBhdGgpO1xuICAgICAgICB0aGlzLl9mZ1NlcnZpY2UuYWRkQ29udHJvbChjb250cm9sLCB0aGlzLmZvcm0sIHBhdGgpO1xuXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xJdGVtcyA9IHRoaXMuX2dldE9yZGVyZWRDb250cm9scyh0aGlzLmZvcm0uY29udHJvbHMpO1xuXG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBjb250cm9sIHdpdGggdGhlIGdpdmVuIG5hbWUgYnkgdGhlIGdpdmVuIHBhdGguXG4gICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgY29udHJvbC5cbiAgICAgKiBAcGFyYW0gcGF0aCBQYXRoIG9mIHRoZSBjb250cm9sLlxuICAgICAqL1xuICAgIGFzeW5jIHJlbW92ZUNvbnRyb2wobmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLl9yZW1vdmVDb250cm9sRnJvbUl0ZW1zKG5hbWUsIHBhdGgpO1xuICAgICAgICB0aGlzLl9mZ1NlcnZpY2UucmVtb3ZlQ29udHJvbChuYW1lLCB0aGlzLmZvcm0sIHBhdGgpO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sSXRlbXMgPSB0aGlzLl9nZXRPcmRlcmVkQ29udHJvbHModGhpcy5mb3JtLmNvbnRyb2xzKTtcblxuICAgICAgICB0aGlzLnNob3VsZFNob3dGaWVsZHMgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuY2hlY2tWaXNpYmxlRm9ybUl0ZW1zKHRoaXMuZm9ybSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3RyYWNrRm4oaW5kZXg6IG51bWJlciwgdmFsdWU6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2luZGV4fV8ke3ZhbHVlLmZvcm1JdGVtLm5hbWV9YDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ncm91cFRyYWNrRm4oaW5kZXg6IG51bWJlciwgdmFsdWU6IER5bmFtaWNGb3JtR3JvdXBDb250cm9sKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBEeW5hbWljRm9ybUNvbnRyb2xHcm91cCkuZm9ybUl0ZW0ubmFtZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm9ncmFtbWF0aWNhbGx5IHN1Ym1pdCBmb3JtLlxuICAgICAqIFRoaXMgbWV0aG9kIGFsc28gY2FsbHMgdmFsaWRhdGlvbiBmb3IgdGhlIGZvcm0gaXRlbXMuXG4gICAgICovXG4gICAgc3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5vblN1Ym1pdChuZXcgRXZlbnQoJ3N1Ym1pdCcpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc0FkdmFuY2VkRXJyb3IoZXJyb3I6IGFueSk6IGVycm9yIGlzIER5bmFtaWNGb3JtSXRlbVZhbGlkYXRpb25PYmplY3Qge1xuICAgICAgICByZXR1cm4gZXJyb3IuaGVhZGluZyAmJiBlcnJvci5kZXNjcmlwdGlvbiAmJiBlcnJvci50eXBlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Vycm9yc1RyYWNrQnkoXzogbnVtYmVyLCBlcnJvcjogeyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBlcnJvci50eXBlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF9nZW5lcmF0ZUZvcm0oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZm9ybUxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodGhpcy5mb3JtTG9hZGluZyk7XG5cbiAgICAgICAgY29uc3QgZm9ybSA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5nZW5lcmF0ZUZvcm0odGhpcy5mb3JtTmFtZSwgdGhpcy5fbWFwcGVkRm9ybWl0ZW1zKTtcblxuICAgICAgICB0aGlzLl9mb3JtVmFsdWVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcblxuICAgICAgICB0aGlzLmZvcm1Db250cm9sSXRlbXMgPSB0aGlzLl9nZXRPcmRlcmVkQ29udHJvbHMoZm9ybS5jb250cm9scyk7XG5cbiAgICAgICAgdGhpcy5zaG91bGRTaG93RmllbGRzID0gYXdhaXQgdGhpcy5fZmdTZXJ2aWNlLmNoZWNrVmlzaWJsZUZvcm1JdGVtcyh0aGlzLmZvcm0pO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1WYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd0ZpZWxkcyA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5jaGVja1Zpc2libGVGb3JtSXRlbXModGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZmlyc3RMb2FkaW5nRG9uZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuZm9ybUNyZWF0ZWQuZW1pdCh0aGlzLmZvcm0pO1xuICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodGhpcy5mb3JtTG9hZGluZyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuVG9TdWJtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE9yZGVyZWRDb250cm9scyhjb250cm9sczogRHluYW1pY0Zvcm1Hcm91cENvbnRyb2xzKTogKER5bmFtaWNGb3JtQ29udHJvbCB8IER5bmFtaWNGb3JtQ29udHJvbEdyb3VwKVtdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLnNvcnQoXG4gICAgICAgICAgICAoYSwgYikgPT4gKGEuZm9ybUl0ZW0/LnJhbmsgPz8gLUluZmluaXR5KSAtIChiLmZvcm1JdGVtPy5yYW5rID8/IC1JbmZpbml0eSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEVycm9ycygpOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10ge1xuICAgICAgICBjb25zdCByZXR1cm5FcnJvcnM6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuICAgICAgICBjb25zdCByZWdpc3RlcmVkRXJyb3JzID0gdGhpcy5fZmdTZXJ2aWNlLnZhbGlkYXRpb25FcnJvckhpbnRzO1xuICAgICAgICBPYmplY3QuZW50cmllcyhyZWdpc3RlcmVkRXJyb3JzKS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbZXJyb3JUeXBlLCBlcnJvclZhbHVlXSA9IHR5cGU7XG5cbiAgICAgICAgICAgIHJldHVybkVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlcnJvclR5cGUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGVycm9yVmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3JzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nU3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9uZ1N1Ym1pdFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLm5nU3VibWl0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nU3VibWl0JC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXMhLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtR3JvdXAuc3RhdHVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4gc3RhdHVzICE9PSAnUEVORElORycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fb25TdWJtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1N1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vbkZvcm1JdGVtc0NoYW5nZShpdGVtczogT2JzZXJ2YWJsZTxEeW5hbWljRm9ybUl0ZW1bXT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaCQubmV4dCgpO1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMuX3JlZnJlc2gkID0gbmV3IFN1YmplY3QoKTtcblxuICAgICAgICBpdGVtcy5waXBlKHRha2VVbnRpbChtZXJnZSh0aGlzLl9yZWZyZXNoJCwgZGVzdHJveU9ic2VydmFibGUodGhpcy5fZGVzdHJveVJlZikpKSkuc3Vic2NyaWJlKChmb3JtSXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21hcHBlZEZvcm1pdGVtcyA9IG1hcEZvcm1JdGVtcyhmb3JtSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVGb3JtKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwbHlSYW5rKGl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXSk6IER5bmFtaWNGb3JtSXRlbVtdIHtcbiAgICAgICAgaXRlbXMgPSBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLnJhbmsgPSBpdGVtLnJhbmsgfHwgaW5kZXg7XG4gICAgICAgICAgICBpZiAoaXRlbS5pdGVtcykge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXRlbXMgPSB0aGlzLl9hcHBseVJhbmsoaXRlbS5pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRkQ29udHJvbFRvRm9ybUl0ZW1zKGl0ZW06IER5bmFtaWNGb3JtSXRlbSwgcGF0aD86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgdGhpcy5fbWFwcGVkRm9ybWl0ZW1zLnNldChpdGVtLm5hbWUsIHRyYW5zZm9ybUZvcm1JdGVtKGl0ZW0sIHRoaXMuX21hcHBlZEZvcm1pdGVtcy5zaXplKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnRJdGVtID0gZ2V0UGFyZW50SXRlbShwYXRoLCB0aGlzLl9tYXBwZWRGb3JtaXRlbXMpO1xuXG4gICAgICAgIGlmICghcGFyZW50SXRlbSB8fCBpc0Zvcm1GaWVsZEl0ZW0ocGFyZW50SXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmVudEl0ZW0uaXRlbXMgPSBwYXJlbnRJdGVtLml0ZW1zIHx8IG5ldyBNYXAoKTtcbiAgICAgICAgcGFyZW50SXRlbS5pdGVtcy5zZXQoaXRlbS5uYW1lLCB0cmFuc2Zvcm1Gb3JtSXRlbShpdGVtLCBwYXJlbnRJdGVtLml0ZW1zLnNpemUpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlbW92ZUNvbnRyb2xGcm9tSXRlbXMobmFtZTogc3RyaW5nLCBwYXRoPzogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXBwZWRGb3JtaXRlbXMuZGVsZXRlKG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50SXRlbSA9IGdldFBhcmVudEl0ZW0ocGF0aCwgdGhpcy5fbWFwcGVkRm9ybWl0ZW1zKTtcblxuICAgICAgICBpZiAoIXBhcmVudEl0ZW0gfHwgaXNGb3JtRmllbGRJdGVtKHBhcmVudEl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwYXJlbnRJdGVtLml0ZW1zPy5kZWxldGUobmFtZSk7XG4gICAgfVxufVxuIiwiQGlmIChfZmlyc3RMb2FkaW5nRG9uZSkge1xuICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJmb3JtTG9hZGluZ1wiIFtibG9ja109XCJ0cnVlXCI+XG4gICAgICAgIEBpZiAoZm9ybSkge1xuICAgICAgICAgICAgPGZkcC1mb3JtLWdyb3VwXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwiaGludFwiXG4gICAgICAgICAgICAgICAgW21haW5UaXRsZV09XCJtYWluVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtoaWRlTWFpblRJdGxlXT1cImhpZGVNYWluVEl0bGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbkxheW91dF09XCJjb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbENvbHVtbkxheW91dF09XCJsYWJlbENvbHVtbkxheW91dFwiXG4gICAgICAgICAgICAgICAgW2ZpZWxkQ29sdW1uTGF5b3V0XT1cImZpZWxkQ29sdW1uTGF5b3V0XCJcbiAgICAgICAgICAgICAgICBbZ2FwQ29sdW1uTGF5b3V0XT1cImdhcENvbHVtbkxheW91dFwiXG4gICAgICAgICAgICAgICAgW3VuaWZpZWRMYXlvdXRdPVwidW5pZmllZExheW91dFwiXG4gICAgICAgICAgICAgICAgW2lubGluZUNvbHVtbkxheW91dF09XCJpbmxpbmVDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgIFt1c2VGb3JtXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIF9lcnJvck1vZGVsczsgdHJhY2sgX2Vycm9yc1RyYWNrQnkoJGluZGV4LCBlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yPVwiZXJyb3IudHlwZTsgbGV0IGRpcmVjdGl2ZUVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKF9pc0FkdmFuY2VkRXJyb3IoZGlyZWN0aXZlRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkaXJlY3RpdmVFcnJvci5oZWFkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yOyB0eXBlOiBkaXJlY3RpdmVFcnJvci50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWxpZGF0aW9uRXJyb3IuaGVhZGluZyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZGlyZWN0aXZlRXJyb3IuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKmZkcEZvcm1GaWVsZEVycm9yRGVzY3JpcHRpb249XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWxpZGF0aW9uRXJyb3IuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpmZHBGb3JtRmllbGRFcnJvckhlYWRpbmc9XCJsZXQgdmFsaWRhdGlvbkVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yLnZhbHVlID8gZXJyb3IudmFsdWUgOiB2YWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZm9ybUNvbnRyb2xJdGVtczsgdHJhY2sgX3RyYWNrRm4oJGluZGV4LCBmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC50eXBlID09PSAnZmllbGQnID8gZmllbGRSZW5kZXJlciA6IGdyb3VwUmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogZmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkTmFtZTogZmllbGQuZm9ybUl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5rOiBmaWVsZC5mb3JtSXRlbT8ucmFuayB8fCAwXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgI2ZpZWxkUmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldC1maWVsZD1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldC1mb3JtRmllbGROYW1lPVwiZm9ybUZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQtZm9ybUdyb3VwTmFtZT1cImZvcm1Hcm91cE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0LXJhbms9XCJyYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpmZHBEeW5hbWljRm9ybUNvbnRyb2xGaWVsZD1cImZpZWxkOyBzaG93OiBzaG91bGRTaG93RmllbGRzW2ZpZWxkLmZvcm1JdGVtLm5hbWVdICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGludE9wdGlvbnNdPVwiZmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucyB8IGdldEhpbnRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG91bGRTaG93XT1cInNob3VsZFNob3dGaWVsZHNbZmllbGQuZm9ybUl0ZW0ubmFtZV0gIT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1GaWVsZE5hbWVdPVwiZm9ybUZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmb3JtR3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmtdPVwicmFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWZvcm0tZ2VuZXJhdG9yLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JvdXBSZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1maWVsZC1ncm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zIHwgZ2V0SGludE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmaWVsZC5mb3JtSXRlbS5tZXNzYWdlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxDb2x1bW5MYXlvdXRdPVwiZmllbGQuZm9ybUl0ZW0uZ3VpT3B0aW9ucz8ubGFiZWxDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5maWVsZENvbHVtbkxheW91dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dhcENvbHVtbkxheW91dF09XCJmaWVsZC5mb3JtSXRlbS5ndWlPcHRpb25zPy5nYXBDb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtTmFtZV09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZCBvZiBmaWVsZCB8IGdldE9yZGVyZWRGaWVsZENvbnRyb2xzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBfZ3JvdXBUcmFja0ZuKCRpbmRleCwgZ3JvdXBGaWVsZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmZkcER5bmFtaWNGb3JtQ29udHJvbEZpZWxkPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiBzaG91bGRTaG93RmllbGRzW2dyb3VwRmllbGQuZm9ybUl0ZW0ubmFtZSFdICE9PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvci1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaW50T3B0aW9uc109XCJncm91cEZpZWxkLmZvcm1JdGVtLmd1aU9wdGlvbnMgfCBnZXRIaW50T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImdyb3VwRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG91bGRTaG93XT1cInNob3VsZFNob3dGaWVsZHNbZ3JvdXBGaWVsZC5mb3JtSXRlbS5uYW1lIV0gIT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUZpZWxkTmFtZV09XCJncm91cEZpZWxkLmZvcm1JdGVtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lUGF0aF09XCJmaWVsZC5mb3JtSXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFua109XCJncm91cEZpZWxkLmZvcm1JdGVtLnJhbmsgfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtZm9ybS1nZW5lcmF0b3ItZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmRwLWZvcm0tZmllbGQtZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIW5vQWRkaXRpb25hbENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkcC1mb3JtLWZpZWxkIFtjb2x1bW5dPVwiMVwiIFtyYW5rXT1cImZvcm1Db250cm9sSXRlbXMubGVuZ3RoICsgMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGb3IgdXNlci1kZWZpbmVkIGVsZW1lbnRzLCBsaWtlIHN1Ym1pdCBidXR0b24gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZmRwLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9mZHAtZm9ybS1ncm91cD5cbiAgICAgICAgfVxuICAgIDwvZmQtYnVzeS1pbmRpY2F0b3I+XG59IEBlbHNlIHtcbiAgICA8ZmQtc2tlbGV0b24gd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwcHhcIiBbc3R5bGUucGFkZGluZy5yZW1dPVwiMVwiPlxuICAgICAgICA8c3ZnOnJlY3QgeD1cIjBcIiB5PVwiMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMTUlXCIgaGVpZ2h0PVwiOFwiIC8+XG4gICAgICAgIDxzdmc6cmVjdCB4PVwiMFwiIHk9XCIyMFwiIHJ4PVwiNFwiIHdpZHRoPVwiMjUlXCIgaGVpZ2h0PVwiMTZcIiAvPlxuICAgICAgICA8c3ZnOnJlY3QgeD1cIjM1JVwiIHk9XCIwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIzNSVcIiB5PVwiMjBcIiByeD1cIjRcIiB3aWR0aD1cIjI1JVwiIGhlaWdodD1cIjE2XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjYwXCIgcng9XCI0XCIgd2lkdGg9XCIxNSVcIiBoZWlnaHQ9XCI4XCIgLz5cbiAgICAgICAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjgwXCIgcng9XCI0XCIgd2lkdGg9XCIyNSVcIiBoZWlnaHQ9XCIxNlwiIC8+XG4gICAgPC9mZC1za2VsZXRvbj5cbn1cbiJdfQ==
|