barsa-sap-ui 1.0.357 → 1.0.358
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/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +12 -12
- package/esm2020/lib/barsa-sap-ui.module.mjs +118 -129
- package/esm2020/lib/barsa-table-column/barsa-table-column.component.mjs +3 -3
- package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +51 -18
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2020/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +11 -8
- package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +6 -7
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +7 -8
- package/esm2020/lib/card-item/card-item.component.mjs +3 -3
- package/esm2020/lib/column-renderer/column-renderer.component.mjs +9 -8
- package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +3 -3
- package/esm2020/lib/global-search/global-search.component.mjs +7 -6
- package/esm2020/lib/index.mjs +1 -3
- package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +4 -4
- package/esm2020/lib/layout-actions/layout-actions.component.mjs +3 -4
- package/esm2020/lib/list-item/list-item.component.mjs +3 -3
- package/esm2020/lib/models/grid-data-provider.mjs +3 -142
- package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +5 -6
- package/esm2020/lib/report-view-renderer.directive.mjs +8 -2
- package/esm2020/lib/sap-ui-report-base.component.mjs +2 -3
- package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +3 -3
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +3 -3
- package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +3 -3
- package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +3 -3
- package/esm2020/lib/ui-form-panel-toolbar/ui-form-panel-toolbar.component.mjs +5 -7
- package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +3 -3
- package/esm2020/lib/ui-grid/ui-grid.component.mjs +3 -3
- package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +3 -3
- package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +4 -5
- package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +4 -4
- package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +1 -1
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +57 -8
- package/esm2020/lib/ui-tree/ui-tree.component.mjs +8 -8
- package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +15 -13
- package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +13 -14
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +5 -6
- package/esm2020/public-api.mjs +1 -2
- package/fesm2015/barsa-sap-ui.mjs +351 -477
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +351 -476
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-sap-ui.module.d.ts +124 -126
- package/lib/barsa-table-header/barsa-table-header.component.d.ts +13 -4
- package/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.d.ts +2 -2
- package/lib/global-search/global-search.component.d.ts +1 -2
- package/lib/index.d.ts +1 -2
- package/lib/models/grid-data-provider.d.ts +2 -6
- package/lib/report-view-renderer.directive.d.ts +3 -1
- package/lib/sap-ui-report-base.component.d.ts +1 -3
- package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +1 -1
- package/lib/ui-table-view/ui-table-view.component.d.ts +12 -3
- package/lib/ulv-column-settings/ulv-column-settings.component.d.ts +2 -1
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +2 -4
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2020/lib/page-with-header/page-with-header.component.mjs +0 -75
- package/lib/page-with-header/page-with-header.component.d.ts +0 -29
|
@@ -3,18 +3,20 @@ import { BaseUlvSettingComponent } from 'barsa-novin-ray-core';
|
|
|
3
3
|
import { UiGridColumnsComponent } from '../ui-grid-columns/ui-grid-columns.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@fundamental-ngx/core";
|
|
6
|
-
import * as i2 from "@
|
|
7
|
-
import * as i3 from "@fundamental-ngx/core/
|
|
8
|
-
import * as i4 from "@fundamental-ngx/core/
|
|
9
|
-
import * as i5 from "@fundamental-ngx/core/
|
|
10
|
-
import * as i6 from "@fundamental-ngx/core/
|
|
11
|
-
import * as i7 from "@fundamental-ngx/
|
|
12
|
-
import * as i8 from "
|
|
13
|
-
import * as i9 from "
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "@fundamental-ngx/core/bar";
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/button";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/input-group";
|
|
10
|
+
import * as i6 from "@fundamental-ngx/core/dialog";
|
|
11
|
+
import * as i7 from "@fundamental-ngx/core/title";
|
|
12
|
+
import * as i8 from "@fundamental-ngx/core/utils";
|
|
13
|
+
import * as i9 from "../ui-grid-columns/ui-grid-columns.component";
|
|
14
|
+
import * as i10 from "barsa-novin-ray-core";
|
|
14
15
|
export class UlvColumnSettingsComponent extends BaseUlvSettingComponent {
|
|
15
16
|
constructor(dialogRef) {
|
|
16
17
|
super();
|
|
17
18
|
this.dialogRef = dialogRef;
|
|
19
|
+
this.searchTerm = '';
|
|
18
20
|
}
|
|
19
21
|
ngOnInit() {
|
|
20
22
|
this.context = this.dialogRef.data.context;
|
|
@@ -24,8 +26,8 @@ export class UlvColumnSettingsComponent extends BaseUlvSettingComponent {
|
|
|
24
26
|
onColumnsChange(columns) {
|
|
25
27
|
this.columns = [...columns];
|
|
26
28
|
}
|
|
27
|
-
|
|
28
|
-
const filterText =
|
|
29
|
+
onSearchSubmit() {
|
|
30
|
+
const filterText = this.searchTerm;
|
|
29
31
|
this.columns = this.allColumns.filter((c) => c.Caption.indexOf(filterText) > -1);
|
|
30
32
|
}
|
|
31
33
|
onReset() {
|
|
@@ -42,12 +44,12 @@ export class UlvColumnSettingsComponent extends BaseUlvSettingComponent {
|
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
UlvColumnSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvColumnSettingsComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
UlvColumnSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvColumnSettingsComponent, selector: "bsu-ulv-column-settings", viewQueries: [{ propertyName: "gridColumnsComponent", first: true, predicate: UiGridColumnsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--this commit is for test some github ability not more-->\
|
|
47
|
+
UlvColumnSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvColumnSettingsComponent, selector: "bsu-ulv-column-settings", viewQueries: [{ propertyName: "gridColumnsComponent", first: true, predicate: UiGridColumnsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--this commit is for test some github ability not more-->\n\n<fd-dialog>\n <fd-dialog-header>\n <ng-template fdTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'Columns' | bbbTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n [label]=\"'Reset' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onReset()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body class=\"setting-wrapper\">\n <fd-input-group\n type=\"search\"\n glyph=\"search\"\n [glyphAriaLabel]=\"'EnterSearchCriteria' | bbbTranslate\"\n [placeholder]=\"'EnterSearchCriteria' | bbbTranslate\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm\"\n (addOnButtonClicked)=\"onSearchSubmit()\"\n >\n </fd-input-group>\n\n <bsu-ui-grid-columns\n [selectedColumns]=\"columns | filter: { Hidden: false } | listCount\"\n [columns]=\"columns\"\n (columnsChange)=\"onColumnsChange($event)\"\n #gridColumnsRef\n ></bsu-ui-grid-columns>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i6.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i6.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i6.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i6.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i6.DialogFooterButtonComponent, selector: "fd-dialog-footer-button" }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "component", type: i9.UiGridColumnsComponent, selector: "bsu-ui-grid-columns", inputs: ["columns", "selectedColumns"], outputs: ["columnsChange"] }, { kind: "pipe", type: i10.FilterPipe, name: "filter" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i10.ListCountPipe, name: "listCount" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvColumnSettingsComponent, decorators: [{
|
|
47
49
|
type: Component,
|
|
48
|
-
args: [{ selector: 'bsu-ulv-column-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--this commit is for test some github ability not more-->\
|
|
50
|
+
args: [{ selector: 'bsu-ulv-column-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--this commit is for test some github ability not more-->\n\n<fd-dialog>\n <fd-dialog-header>\n <ng-template fdTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'Columns' | bbbTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n [label]=\"'Reset' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onReset()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body class=\"setting-wrapper\">\n <fd-input-group\n type=\"search\"\n glyph=\"search\"\n [glyphAriaLabel]=\"'EnterSearchCriteria' | bbbTranslate\"\n [placeholder]=\"'EnterSearchCriteria' | bbbTranslate\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm\"\n (addOnButtonClicked)=\"onSearchSubmit()\"\n >\n </fd-input-group>\n\n <bsu-ui-grid-columns\n [selectedColumns]=\"columns | filter: { Hidden: false } | listCount\"\n [columns]=\"columns\"\n (columnsChange)=\"onColumnsChange($event)\"\n #gridColumnsRef\n ></bsu-ui-grid-columns>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button fd-button fdType=\"emphasized\" (click)=\"onOkClick()\" [label]=\"'OK' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n <fd-dialog-footer-button>\n <button fd-button (click)=\"onCancelSettings()\" [label]=\"'Cancel' | bbbTranslate\"></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
|
|
49
51
|
}], ctorParameters: function () { return [{ type: i1.DialogRef }]; }, propDecorators: { gridColumnsComponent: [{
|
|
50
52
|
type: ViewChild,
|
|
51
53
|
args: [UiGridColumnsComponent]
|
|
52
54
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91bHYtY29sdW1uLXNldHRpbmdzL3Vsdi1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWNvbHVtbi1zZXR0aW5ncy91bHYtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSx1QkFBdUIsRUFBaUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3RGLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx1QkFBdUI7SUFLbkUsWUFBb0IsU0FBb0I7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFEUSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRHhDLGVBQVUsR0FBRyxFQUFFLENBQUM7SUFHaEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMzQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ25DLENBQUM7SUFDRCxlQUFlLENBQUMsT0FBTztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsY0FBYztRQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ0QsT0FBTztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUNELFdBQVc7UUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxRQUFRLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBQ0QsS0FBSyxDQUFDLFVBQWUsSUFBSTtRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDOzt1SEFoQ1EsMEJBQTBCOzJHQUExQiwwQkFBMEIscUhBQ3hCLHNCQUFzQix1RUNackMsdytEQXNEQTsyRkQzQ2EsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTtnR0FJL0Msb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlVWx2U2V0dGluZ0NvbXBvbmVudCwgR3JpZFNldHRpbmcsIFJlcG9ydFZpZXdDb2x1bW4gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBVaUdyaWRDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi4vdWktZ3JpZC1jb2x1bW5zL3VpLWdyaWQtY29sdW1ucy5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LWNvbHVtbi1zZXR0aW5ncycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Vsdi1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVbHZDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCBleHRlbmRzIEJhc2VVbHZTZXR0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKFVpR3JpZENvbHVtbnNDb21wb25lbnQpXG4gICAgZ3JpZENvbHVtbnNDb21wb25lbnQ6IFVpR3JpZENvbHVtbnNDb21wb25lbnQ7XG4gICAgY29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xuICAgIHNlYXJjaFRlcm0gPSAnJztcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogRGlhbG9nUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuY29udGV4dDtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5hbGxDb2x1bW5zO1xuICAgIH1cbiAgICBvbkNvbHVtbnNDaGFuZ2UoY29sdW1ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSBbLi4uY29sdW1uc107XG4gICAgfVxuICAgIG9uU2VhcmNoU3VibWl0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXJUZXh0ID0gdGhpcy5zZWFyY2hUZXJtO1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmFsbENvbHVtbnMuZmlsdGVyKChjKSA9PiBjLkNhcHRpb24uaW5kZXhPZihmaWx0ZXJUZXh0KSA+IC0xKTtcbiAgICB9XG4gICAgb25SZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5hbGxDb2x1bW5zLm1hcCgoYykgPT4gKHsgLi4uYywgSGlkZGVuOiBmYWxzZSwgV2lkdGg6IDAgfSkpO1xuICAgIH1cbiAgICBnZXRTZXR0aW5ncygpOiBHcmlkU2V0dGluZyB7XG4gICAgICAgIGNvbnN0IGNvbExpc3QgPSB0aGlzLmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gc3VwZXIuZ2V0U2V0dGluZ3MoKTtcbiAgICAgICAgc2V0dGluZ3MuQ29sU2V0dGluZ0xpc3QgPSBjb2xMaXN0Lm1hcCgoYykgPT4gKHsgSXNIaWRkZW46IGMuSGlkZGVuLCBOYW1lOiBjLk5hbWUsIFdpZHRoOiBjLldpZHRoIH0pKTtcbiAgICAgICAgcmV0dXJuIHNldHRpbmdzO1xuICAgIH1cbiAgICBjbG9zZShzZXR0aW5nOiBhbnkgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHNldHRpbmcpO1xuICAgIH1cbn1cbiIsIjwhLS10aGlzIGNvbW1pdCBpcyBmb3IgdGVzdCBzb21lIGdpdGh1YiBhYmlsaXR5IG5vdCBtb3JlLS0+XG5cbjxmZC1kaWFsb2c+XG4gICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBmZFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cIjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdDb2x1bW5zJyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1Jlc2V0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVzZXQoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgIDxmZC1kaWFsb2ctYm9keSBjbGFzcz1cInNldHRpbmctd3JhcHBlclwiPlxuICAgICAgICA8ZmQtaW5wdXQtZ3JvdXBcbiAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgZ2x5cGg9XCJzZWFyY2hcIlxuICAgICAgICAgICAgW2dseXBoQXJpYUxhYmVsXT1cIidFbnRlclNlYXJjaENyaXRlcmlhJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0VudGVyU2VhcmNoQ3JpdGVyaWEnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtidXR0b25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAgIChhZGRPbkJ1dHRvbkNsaWNrZWQpPVwib25TZWFyY2hTdWJtaXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1pbnB1dC1ncm91cD5cblxuICAgICAgICA8YnN1LXVpLWdyaWQtY29sdW1uc1xuICAgICAgICAgICAgW3NlbGVjdGVkQ29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyOiB7IEhpZGRlbjogZmFsc2UgfSB8IGxpc3RDb3VudFwiXG4gICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgIChjb2x1bW5zQ2hhbmdlKT1cIm9uQ29sdW1uc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICNncmlkQ29sdW1uc1JlZlxuICAgICAgICA+PC9ic3UtdWktZ3JpZC1jb2x1bW5zPlxuICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwiZW1waGFzaXplZFwiIChjbGljayk9XCJvbk9rQ2xpY2soKVwiIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCI+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIChjbGljayk9XCJvbkNhbmNlbFNldHRpbmdzKClcIiBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIj48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==
|
|
@@ -5,17 +5,16 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@fundamental-ngx/core";
|
|
6
6
|
import * as i2 from "barsa-novin-ray-core";
|
|
7
7
|
import * as i3 from "@angular/common";
|
|
8
|
-
import * as i4 from "@fundamental-ngx/core/
|
|
9
|
-
import * as i5 from "@fundamental-ngx/core/
|
|
10
|
-
import * as i6 from "@fundamental-ngx/core/
|
|
11
|
-
import * as i7 from "@fundamental-ngx/core/
|
|
12
|
-
import * as i8 from "@fundamental-ngx/core/
|
|
13
|
-
import * as i9 from "@fundamental-ngx/core/
|
|
14
|
-
import * as i10 from "@fundamental-ngx/core/
|
|
15
|
-
import * as i11 from "@fundamental-ngx/
|
|
16
|
-
import * as i12 from "
|
|
17
|
-
import * as i13 from "../
|
|
18
|
-
import * as i14 from "../fullscreen-dialog.directive";
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/content-density";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/bar";
|
|
10
|
+
import * as i6 from "@fundamental-ngx/core/button";
|
|
11
|
+
import * as i7 from "@fundamental-ngx/core/dialog";
|
|
12
|
+
import * as i8 from "@fundamental-ngx/core/title";
|
|
13
|
+
import * as i9 from "@fundamental-ngx/core/utils";
|
|
14
|
+
import * as i10 from "@fundamental-ngx/core/toolbar";
|
|
15
|
+
import * as i11 from "@fundamental-ngx/core/token";
|
|
16
|
+
import * as i12 from "../ui-ulv-main-ui/ui-ulv-main-ui.component";
|
|
17
|
+
import * as i13 from "../fullscreen-dialog.directive";
|
|
19
18
|
export class UlvFormMultiSelectComponent extends BaseComponent {
|
|
20
19
|
constructor(_dialogService, _bbbTranslatePipe, _portalService, _contentDensityService) {
|
|
21
20
|
super();
|
|
@@ -173,14 +172,14 @@ export class UlvFormMultiSelectComponent extends BaseComponent {
|
|
|
173
172
|
}
|
|
174
173
|
}
|
|
175
174
|
UlvFormMultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvFormMultiSelectComponent, deps: [{ token: i1.DialogService }, { token: i2.BbbTranslatePipe }, { token: i2.PortalService }, { token: i1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
176
|
-
UlvFormMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvFormMultiSelectComponent, selector: "bsu-ulv-form-multi-select", inputs: { Show: "Show" }, viewQueries: [{ propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-button-bar\n *ngIf=\"!dialogConfig.fullscreen\"\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngIf=\"dialog.data.ulv1 as ulv1\">\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n </ng-container>\n <div\n *ngIf=\"dialog.data.ulv2 && dialog.data.ShowSecondPanel\"\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n <fd-toolbar [shouldOverflow]=\"true\" *ngIf=\"dialog.data.selectedItems\">\n <!-- Selected items -->\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n *ngFor=\"\n let item of dialog.data.selectedItems.MoDataList;\n index as selectedIndex;\n trackBy: _trackBySelectedFn\n \"\n >{{ item.$Caption }}\n </fd-token>\n </fd-toolbar>\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons\">\n <ng-template fdTemplate=\"footer\">\n <div\n class=\"ulv-selection-form-dialog__actions-row\"\n *ngIf=\"dialog.data.adapter?.ShowOkCancelButtons !== false\"\n >\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n [compact]=\"true\"\n (click)=\"onOk(dialog)\"\n ></button>\n <fdp-button\n [contentDensity]=\"'compact'\"\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [buttonType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></fdp-button>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column;overflow-y:hidden}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:100%!important;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog .fd-dialog__footer{flex-direction:column}.ulv-selection-form-dialog .fd-dialog__footer.fd-bar{padding:0!important}.ulv-selection-form-dialog .fd-dialog__footer{border-top:none}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 2rem 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);margin-right:.5rem;border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i5.DeprecatedButtonContentDensityDirective, selector: "[fd-button][compact]" }, { kind: "component", type: i6.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i6.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i6.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i6.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i6.DialogDecisiveButtonDirective, selector: "[fd-dialog-decisive-button]" }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "directive", type: i9.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "component", type: i10.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly", "deleteButtonLabel", "ariaRoleDescription"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown"] }, { kind: "directive", type: i11.PlatformContentDensityDeprecationDirective, selector: " fdp-action-bar[contentDensity], fdp-button[contentDensity], fdp-object-list-item[contentDensity], fdp-standard-list-item[contentDensity], fdp-menu[contentDensity], fdp-menu-button[contentDensity], fdp-panel[contentDensity], fdp-search-field[contentDensity], fdp-split-menu-button[contentDensity], fdp-file-uploader[contentDensity], fdp-upload-collection[contentDensity], fdp-table[contentDensity], fdp-multi-input[contentDensity], fdp-list[contentDensity], fdp-slider[contentDensity], fdp-time-picker[contentDensity], fdp-textarea[contentDensity], fdp-switch[contentDensity], fdp-number-step-input[contentDensity], fdp-select[contentDensity], fdp-date-picker[contentDensity], fdp-checkbox[contentDensity], fdp-checkbox-group[contentDensity], fdp-combobox[contentDensity], fdp-datetime-picker[contentDensity], fdp-input[contentDensity], fdp-radio-group[contentDensity], fdp-radio-button[contentDensity], fdp-multi-combobox[contentDensity], fdp-input-group-addon-body[contentDensity], fdp-input-group[contentDensity], fdp-value-help-dialog[contentDensity], fdp-filter-single-select[contentDensity], fdp-filter-multi-select[contentDensity], fdp-filter-custom[contentDensity] " }, { kind: "component", type: i12.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i13.UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: ["context", "isReportPage", "inDialog", "isMultiSelect", "layoutInfo", "fullscreen"] }, { kind: "directive", type: i14.FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
175
|
+
UlvFormMultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvFormMultiSelectComponent, selector: "bsu-ulv-form-multi-select", inputs: { Show: "Show" }, viewQueries: [{ propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-button-bar\n *ngIf=\"!dialogConfig.fullscreen\"\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngIf=\"dialog.data.ulv1 as ulv1\">\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n </ng-container>\n <div\n *ngIf=\"dialog.data.ulv2 && dialog.data.ShowSecondPanel\"\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n <fd-toolbar [shouldOverflow]=\"true\" *ngIf=\"dialog.data.selectedItems\">\n <!-- Selected items -->\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n *ngFor=\"\n let item of dialog.data.selectedItems.MoDataList;\n index as selectedIndex;\n trackBy: _trackBySelectedFn\n \"\n >{{ item.$Caption }}\n </fd-token>\n </fd-toolbar>\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons\">\n <ng-template fdTemplate=\"footer\">\n <div\n class=\"ulv-selection-form-dialog__actions-row\"\n *ngIf=\"dialog.data.adapter?.ShowOkCancelButtons !== false\"\n >\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n [compact]=\"true\"\n (click)=\"onOk(dialog)\"\n ></button>\n <button\n fd-button\n fdCompact\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></button>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column;overflow-y:hidden}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:100%!important;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog .fd-dialog__footer{flex-direction:column}.ulv-selection-form-dialog .fd-dialog__footer.fd-bar{padding:0!important}.ulv-selection-form-dialog .fd-dialog__footer{border-top:none}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 2rem 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);margin-right:.5rem;border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: i5.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i5.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i5.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i5.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i6.DeprecatedButtonContentDensityDirective, selector: "[fd-button][compact]" }, { kind: "component", type: i7.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i7.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i7.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i7.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i7.DialogDecisiveButtonDirective, selector: "[fd-dialog-decisive-button]" }, { kind: "component", type: i8.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i9.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "directive", type: i10.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "component", type: i11.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly", "deleteButtonLabel", "ariaRoleDescription"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown"] }, { kind: "component", type: i12.UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: ["context", "isReportPage", "inDialog", "isMultiSelect", "layoutInfo", "fullscreen"] }, { kind: "directive", type: i13.FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
177
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvFormMultiSelectComponent, decorators: [{
|
|
178
177
|
type: Component,
|
|
179
|
-
args: [{ selector: 'bsu-ulv-form-multi-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-button-bar\n *ngIf=\"!dialogConfig.fullscreen\"\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngIf=\"dialog.data.ulv1 as ulv1\">\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n </ng-container>\n <div\n *ngIf=\"dialog.data.ulv2 && dialog.data.ShowSecondPanel\"\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n <fd-toolbar [shouldOverflow]=\"true\" *ngIf=\"dialog.data.selectedItems\">\n <!-- Selected items -->\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n *ngFor=\"\n let item of dialog.data.selectedItems.MoDataList;\n index as selectedIndex;\n trackBy: _trackBySelectedFn\n \"\n >{{ item.$Caption }}\n </fd-token>\n </fd-toolbar>\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons\">\n <ng-template fdTemplate=\"footer\">\n <div\n class=\"ulv-selection-form-dialog__actions-row\"\n *ngIf=\"dialog.data.adapter?.ShowOkCancelButtons !== false\"\n >\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n [compact]=\"true\"\n (click)=\"onOk(dialog)\"\n ></button>\n <
|
|
178
|
+
args: [{ selector: 'bsu-ulv-form-multi-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-button-bar\n *ngIf=\"!dialogConfig.fullscreen\"\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngIf=\"dialog.data.ulv1 as ulv1\">\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n </ng-container>\n <div\n *ngIf=\"dialog.data.ulv2 && dialog.data.ShowSecondPanel\"\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n <fd-toolbar [shouldOverflow]=\"true\" *ngIf=\"dialog.data.selectedItems\">\n <!-- Selected items -->\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n *ngFor=\"\n let item of dialog.data.selectedItems.MoDataList;\n index as selectedIndex;\n trackBy: _trackBySelectedFn\n \"\n >{{ item.$Caption }}\n </fd-token>\n </fd-toolbar>\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons\">\n <ng-template fdTemplate=\"footer\">\n <div\n class=\"ulv-selection-form-dialog__actions-row\"\n *ngIf=\"dialog.data.adapter?.ShowOkCancelButtons !== false\"\n >\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n [compact]=\"true\"\n (click)=\"onOk(dialog)\"\n ></button>\n <button\n fd-button\n fdCompact\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></button>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column;overflow-y:hidden}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:100%!important;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog .fd-dialog__footer{flex-direction:column}.ulv-selection-form-dialog .fd-dialog__footer.fd-bar{padding:0!important}.ulv-selection-form-dialog .fd-dialog__footer{border-top:none}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 2rem 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);margin-right:.5rem;border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"] }]
|
|
180
179
|
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.BbbTranslatePipe }, { type: i2.PortalService }, { type: i1.ContentDensityService }]; }, propDecorators: { dialogContainer: [{
|
|
181
180
|
type: ViewChild,
|
|
182
181
|
args: ['container', { read: TemplateRef }]
|
|
183
182
|
}], Show: [{
|
|
184
183
|
type: Input
|
|
185
184
|
}] } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQU8xRCxZQUNZLGNBQTZCLEVBQzdCLGlCQUFtQyxFQUMzQyxjQUE2QixFQUM3QixzQkFBNkM7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFMQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVy9DLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztZQUN4RSxNQUFNLFlBQVksR0FBMkI7Z0JBQ3pDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRTtn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bnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UsIERpYWxvZ1JlZiwgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXJzYUFwaSwgTWV0YW9iamVjdERhdGFNb2RlbCwgQmJiVHJhbnNsYXRlUGlwZSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LWZvcm0tbXVsdGktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVsdkZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBkaWFsb2dDb250YWluZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBkZXZpY2VTaXplOiBzdHJpbmc7XG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGVQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gX2NvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eTtcbiAgICAgICAgQmFyc2FBcGkuQncuVWx2Rm9ybU11bHRpU2VsZWN0ID0gdGhpcztcbiAgICAgICAgX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXZpY2VTaXplID0gYztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgU2hvdyA9IChhZGFwdGVyLCBjb25maWcpID0+IHtcbiAgICAgICAgY29uc3QgbGFyZ2VTY3JlZW4gPSB0aGlzLmRldmljZVNpemUgPT09ICdsJyB8fCB0aGlzLmRldmljZVNpemUgPT09ICd4bCc7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgICAgICAgIGRhdGE6IHsgLi4uY29uZmlnLCBhZGFwdGVyIH0sXG4gICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGlhbG9nUGFuZWxDbGFzczogYHVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2cgJHt0aGlzLmRldmljZVNpemUgPyAndWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZy1tb2JpbGUnIDogJyd9YCxcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGxhcmdlU2NyZWVuKSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNTB2dyc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbldpZHRoID0gJzQwMCc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubWluSGVpZ2h0ID0gJzYwdmgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1vYmlsZSA9IHRydWU7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkYXB0ZXIuSGlkZU9rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmZ1bGxTY3JlZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ0NvbnRhaW5lciwgZGlhbG9nQ29uZmlnKTtcbiAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcoY29uZmlnLklzTG9hZGVkID09PSB0cnVlID8gZmFsc2UgOiB0cnVlKTsgLy8gbWVhbnMgdWx2IGlzIGxvYWRlZCBhbmQgaXQgZG9lcyBub3Qgc2hvdyBsb2FkaW5nIGluIGRpYWxvZ1xuICAgICAgICAoZGlhbG9nUmVmIGFzIGFueSkubWFzayA9ICh2YWwpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKHZhbCk7XG4gICAgICAgIH07XG4gICAgICAgIChkaWFsb2dSZWYgYXMgYW55KS5BZGRVbHZUb1dpbmRvdyA9ICh1bHZDb250cm9sMSwgdWx2Q29udHJvbDIpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdEZvcm1UaXRsZVRleHQgPSB0aGlzLl9iYmJUcmFuc2xhdGVQaXBlLnRyYW5zZm9ybSgnU2VsZWN0Rm9ybVRpdGxlJyk7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS50aXRsZSA9XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEuU2V0dGluZy5FeHRyYT8uRXh0cmFKc29uUHJvcFJlcG9ydD8uVGl0bGUgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RGb3JtVGl0bGVUZXh0LnJlcGxhY2UoJ3swfScsIHVsdkNvbnRyb2wxLlNldHRpbmcuRXh0cmEuUmVwb3J0LlR5cGVEZWZDYXB0aW9uKTtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEgPSB1bHZDb250cm9sMTtcbiAgICAgICAgICAgIGlmICh1bHZDb250cm9sMS52aWV3ZXJDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDEsIGFkYXB0ZXIsIGRpYWxvZ1JlZik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLm9uKHtcbiAgICAgICAgICAgICAgICAgICAgVmlld2VyQ29udHJvbENoYW5nZWQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxLCBhZGFwdGVyLCBkaWFsb2dSZWYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodWx2Q29udHJvbDIpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYyID0gdWx2Q29udHJvbDI7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IHVsdkNvbnRyb2wyLlNldHRpbmcuRGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBfaGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDE6IGFueSwgYWRhcHRlcjogYW55LCBkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnksIGFueT4pIHtcbiAgICAgICAgdWx2Q29udHJvbDEudmlld2VyQ29udHJvbC5TaG93T2tDYW5jZWxCdXR0b25zID0gYWRhcHRlci5TaG93T2tDYW5jZWxCdXR0b25zO1xuICAgICAgICB1bHZDb250cm9sMS52aWV3ZXJDb250cm9sLm9uKHtcbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICByb3dzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAgICAgICAgIHJvd2Rlc2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvd1NlbGVjdEFsbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLlNldHRpbmcuRGF0YS5Nb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZEl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm93RGVTZWxlY3RBbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk9rKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdWx2LCB1bHYyIH0gPSB0aGlzLl9nZXRVbHYoZGlhbG9nUmVmKTtcbiAgICAgICAgLy8gaWYgKHVsdikge1xuICAgICAgICAvLyAgICAgaWYgKHVsdjIpIHtcbiAgICAgICAgLy8gICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgLy8gICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnQWRkJyk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5fYnRuQ2xpY2sodWx2LCAnT2snKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRVbHYoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB7IHVsdjogYW55OyB1bHYyOiBhbnkgfSB7XG4gICAgICAgIGNvbnN0IHVsdjIgPSBkaWFsb2dSZWYuZGF0YS51bHYyO1xuICAgICAgICBjb25zdCB1bHYxID0gZGlhbG9nUmVmLmRhdGEudWx2MTtcbiAgICAgICAgY29uc3QgdWx2ID0gdWx2MiB8fCB1bHYxO1xuICAgICAgICByZXR1cm4geyB1bHYsIHVsdjIgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9idG5DbGljayh1bHY6IGFueSwgYnRuS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2tCdG4gPSB1bHYuYnV0dG9ucy5maW5kKChjKSA9PiBjLktleSA9PT0gYnRuS2V5KTtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBva0J0bi5zY29wZTtcbiAgICAgICAgb2tCdG4uaGFuZGxlci5iaW5kKHNjb3BlKShva0J0bik7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFkaWFsb2dSZWYuZGF0YS5hZGFwdGVyPy5TaG93T2tDYW5jZWxCdXR0b25zKSB7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgdWx2LCB1bHYyIH0gPSB0aGlzLl9nZXRVbHYoZGlhbG9nUmVmKTtcbiAgICAgICAgdGhpcy5fYnRuQ2xpY2sodWx2LCAnQ2FuY2VsJyk7XG4gICAgfVxuXG4gICAgb25DbGVhcihkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdDbGVhckFsbFNlbGVjdGVkJyk7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IFtdO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlU2VsZWN0ZWQoZGlhbG9nUmVmOiBEaWFsb2dSZWYsIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIGl0ZW0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmVtb3ZlSXRlbShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCBtbzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QuZmlsdGVyKChjKSA9PiBjLklkICE9PSBtby5JZCk7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ0Rlc2VsZWN0Um93SW5EaWFsb2cnLCBbbW9dKTtcbiAgICAgICAgaWYgKGRpYWxvZ1JlZi5kYXRhLnVsdjIpIHtcbiAgICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ1JlbW92ZScpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAvLyBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnUmVtb3ZlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9hZGRJdGVtKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdC5maW5kKChjKSA9PiBjLklkID09PSBtby5JZCkpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IFsuLi5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QsIG1vXTtcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZWYuZGF0YS51bHYyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ0FkZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgICAgIC8vIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF90cmFja0J5U2VsZWN0ZWRGbihfaW5kZXg6IG51bWJlciwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLklkO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjY29udGFpbmVyPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiICNkaWFsb2dUcGw+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZkVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTNcIiBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkaWFsb2dDb25maWcuZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJmdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuID8gJ2V4aXRmdWxsc2NyZWVuJyA6ICdyZXNpemUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5EaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2ddPVwiZGlhbG9nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2dDb21wb25lbnRdPVwiZGlhbG9nVHBsXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DYW5jZWwoZGlhbG9nKVwiPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8IS0tIDxoMyBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDM+XG4gICAgICA8YnV0dG9uIGZkLWRpYWxvZy1jbG9zZS1idXR0b24+PC9idXR0b24+IC0tPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpYWxvZy5kYXRhLnVsdjEgYXMgdWx2MVwiPlxuICAgICAgICAgICAgICAgIDxic3UtdWktdWx2LW1haW4tdWlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtZm9ybS1tdWx0aS1zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJ1bHYxXCJcbiAgICAgICAgICAgICAgICAgICAgW2luRGlhbG9nXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJkaWFsb2cuZGF0YS5TaG93U2Vjb25kUGFuZWxcIlxuICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICA+PC9ic3UtdWktdWx2LW1haW4tdWk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpYWxvZy5kYXRhLnVsdjIgJiYgZGlhbG9nLmRhdGEuU2hvd1NlY29uZFBhbmVsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3JvdyB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19zZWxlY3Rpb24tcm93XCJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGUgY2xhc3M9XCJzZWxlY3RlZC1hbmQtY29uZGl0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPnt7ICdTZWxlY3RlZEl0ZW1zQW5kQ29uZGl0aW9ucycgfCBiYmJUcmFuc2xhdGUgfX0gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAoe3sgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcz8uTW9EYXRhTGlzdD8ubGVuZ3RoIHx8IDAgfX0pXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvaDU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vuc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgW3Nob3VsZE92ZXJmbG93XT1cInRydWVcIiAqbmdJZj1cImRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlbGVjdGVkIGl0ZW1zIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwiaGlnaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19zZWxlY3Rpb24tdG9rZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbG9zZUNsaWNrKT1cIm9uUmVtb3ZlU2VsZWN0ZWQoZGlhbG9nLCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggYXMgc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IF90cmFja0J5U2VsZWN0ZWRGblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS4kQ2FwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy1jbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3RlciAqbmdJZj1cImRpYWxvZy5kYXRhLnVsdjEgJiYgIWRpYWxvZy5kYXRhLnVsdjE/LkhpZGVPa0NhbmNlbEJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX2FjdGlvbnMtcm93XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2cuZGF0YS5hZGFwdGVyPy5TaG93T2tDYW5jZWxCdXR0b25zICE9PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3VjY2VzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wYWN0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT2soZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCInY29tcGFjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1kaXNtaXNzLWRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgIDwvZmQtZGlhbG9nPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUzNDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxhQUFhO0lBTzFELFlBQ1ksY0FBNkIsRUFDN0IsaUJBQW1DLEVBQzNDLGNBQTZCLEVBQzdCLHNCQUE2QztRQUU3QyxLQUFLLEVBQUUsQ0FBQztRQUxBLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFXL0Msb0JBQW9CO1FBQ1gsU0FBSSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDO1lBQ3hFLE1BQU0sWUFBWSxHQUEyQjtnQkFDekMsSUFBSSxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFO2dC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cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSwgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBCYmJUcmFuc2xhdGVQaXBlLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtZm9ybS1tdWx0aS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWx2Rm9ybU11bHRpU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGRpYWxvZ0NvbnRhaW5lcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGRldmljZVNpemU6IHN0cmluZztcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2JiYlRyYW5zbGF0ZVBpcGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSBfY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICBCYXJzYUFwaS5Cdy5VbHZGb3JtTXVsdGlTZWxlY3QgPSB0aGlzO1xuICAgICAgICBfcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRldmljZVNpemUgPSBjO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBTaG93ID0gKGFkYXB0ZXIsIGNvbmZpZykgPT4ge1xuICAgICAgICBjb25zdCBsYXJnZVNjcmVlbiA9IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ2wnIHx8IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3hsJztcbiAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgICAgICAgZGF0YTogeyAuLi5jb25maWcsIGFkYXB0ZXIgfSxcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkaWFsb2dQYW5lbENsYXNzOiBgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZyAke3RoaXMuZGV2aWNlU2l6ZSA/ICd1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nLW1vYmlsZScgOiAnJ31gLFxuICAgICAgICAgICAgdmVydGljYWxQYWRkaW5nOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBpZiAobGFyZ2VTY3JlZW4pIHtcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICc1MHZ3JztcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSAnYXV0byc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubWluV2lkdGggPSAnNDAwJztcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5taW5IZWlnaHQgPSAnNjB2aCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubW9iaWxlID0gdHJ1ZTtcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5mdWxsU2NyZWVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWRhcHRlci5IaWRlT2tDYW5jZWxCdXR0b25zKSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMuZGlhbG9nQ29udGFpbmVyLCBkaWFsb2dDb25maWcpO1xuICAgICAgICBkaWFsb2dSZWYubG9hZGluZyhjb25maWcuSXNMb2FkZWQgPT09IHRydWUgPyBmYWxzZSA6IHRydWUpOyAvLyBtZWFucyB1bHYgaXMgbG9hZGVkIGFuZCBpdCBkb2VzIG5vdCBzaG93IGxvYWRpbmcgaW4gZGlhbG9nXG4gICAgICAgIChkaWFsb2dSZWYgYXMgYW55KS5tYXNrID0gKHZhbCkgPT4ge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcodmFsKTtcbiAgICAgICAgfTtcbiAgICAgICAgKGRpYWxvZ1JlZiBhcyBhbnkpLkFkZFVsdlRvV2luZG93ID0gKHVsdkNvbnRyb2wxLCB1bHZDb250cm9sMikgPT4ge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0Rm9ybVRpdGxlVGV4dCA9IHRoaXMuX2JiYlRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKCdTZWxlY3RGb3JtVGl0bGUnKTtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnRpdGxlID1cbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkV4dHJhPy5FeHRyYUpzb25Qcm9wUmVwb3J0Py5UaXRsZSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgICA6IHNlbGVjdEZvcm1UaXRsZVRleHQucmVwbGFjZSgnezB9JywgdWx2Q29udHJvbDEuU2V0dGluZy5FeHRyYS5SZXBvcnQuVHlwZURlZkNhcHRpb24pO1xuICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MSA9IHVsdkNvbnRyb2wxO1xuICAgICAgICAgICAgaWYgKHVsdkNvbnRyb2wxLnZpZXdlckNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVVbHZWaWV3ZXJFdmVudCh1bHZDb250cm9sMSwgYWRhcHRlciwgZGlhbG9nUmVmKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEub24oe1xuICAgICAgICAgICAgICAgICAgICBWaWV3ZXJDb250cm9sQ2hhbmdlZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDEsIGFkYXB0ZXIsIGRpYWxvZ1JlZik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1bHZDb250cm9sMikge1xuICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjIgPSB1bHZDb250cm9sMjtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gdWx2Q29udHJvbDIuU2V0dGluZy5EYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG5cbiAgICBwcml2YXRlIF9oYW5kbGVVbHZWaWV3ZXJFdmVudCh1bHZDb250cm9sMTogYW55LCBhZGFwdGVyOiBhbnksIGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueSwgYW55Pikge1xuICAgICAgICB1bHZDb250cm9sMS52aWV3ZXJDb250cm9sLlNob3dPa0NhbmNlbEJ1dHRvbnMgPSBhZGFwdGVyLlNob3dPa0NhbmNlbEJ1dHRvbnM7XG4gICAgICAgIHVsdkNvbnRyb2wxLnZpZXdlckNvbnRyb2wub24oe1xuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAgICAgICAgIHJvd3NlbGVjdDogKHNlbmRlciwgaW5kZXgsIG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgcm93ZGVzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm93U2VsZWN0QWxsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb3dEZVNlbGVjdEFsbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLlNldHRpbmcuRGF0YS5Nb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT2soZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB1bHYsIHVsdjIgfSA9IHRoaXMuX2dldFVsdihkaWFsb2dSZWYpO1xuICAgICAgICAvLyBpZiAodWx2KSB7XG4gICAgICAgIC8vICAgICBpZiAodWx2Mikge1xuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAvLyAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICB0aGlzLl9idG5DbGljayh1bHYsICdPaycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFVsdihkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHsgdWx2OiBhbnk7IHVsdjI6IGFueSB9IHtcbiAgICAgICAgY29uc3QgdWx2MiA9IGRpYWxvZ1JlZi5kYXRhLnVsdjI7XG4gICAgICAgIGNvbnN0IHVsdjEgPSBkaWFsb2dSZWYuZGF0YS51bHYxO1xuICAgICAgICBjb25zdCB1bHYgPSB1bHYyIHx8IHVsdjE7XG4gICAgICAgIHJldHVybiB7IHVsdiwgdWx2MiB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2J0bkNsaWNrKHVsdjogYW55LCBidG5LZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBva0J0biA9IHVsdi5idXR0b25zLmZpbmQoKGMpID0+IGMuS2V5ID09PSBidG5LZXkpO1xuICAgICAgICBjb25zdCBzY29wZSA9IG9rQnRuLnNjb3BlO1xuICAgICAgICBva0J0bi5oYW5kbGVyLmJpbmQoc2NvcGUpKG9rQnRuKTtcbiAgICB9XG5cbiAgICBvbkNhbmNlbChkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xuICAgICAgICBpZiAoIWRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI/LlNob3dPa0NhbmNlbEJ1dHRvbnMpIHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyB1bHYsIHVsdjIgfSA9IHRoaXMuX2dldFVsdihkaWFsb2dSZWYpO1xuICAgICAgICB0aGlzLl9idG5DbGljayh1bHYsICdDYW5jZWwnKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ0NsZWFyQWxsU2VsZWN0ZWQnKTtcbiAgICAgICAgZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0ID0gW107XG4gICAgfVxuXG4gICAgb25SZW1vdmVTZWxlY3RlZChkaWFsb2dSZWY6IERpYWxvZ1JlZiwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgaXRlbSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yZW1vdmVJdGVtKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sIG1vOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXM7XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdC5maWx0ZXIoKGMpID0+IGMuSWQgIT09IG1vLklkKTtcbiAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgnRGVzZWxlY3RSb3dJbkRpYWxvZycsIFttb10pO1xuICAgICAgICBpZiAoZGlhbG9nUmVmLmRhdGEudWx2Mikge1xuICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnUmVtb3ZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgIC8vIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdSZW1vdmUnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2FkZEl0ZW0oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55PiwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXM7XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LmZpbmQoKGMpID0+IGMuSWQgPT09IG1vLklkKSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0ID0gWy4uLnNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCwgbW9dO1xuICAgICAgICAgICAgaWYgKGRpYWxvZ1JlZi5kYXRhLnVsdjIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnQWRkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAgICAgLy8gYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ0FkZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3RyYWNrQnlTZWxlY3RlZEZuKF9pbmRleDogbnVtYmVyLCBpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uSWQ7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNjb250YWluZXI+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCIgI2RpYWxvZ1RwbD5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItM1wiIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpYWxvZ0NvbmZpZy5mdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cImZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPyAnZXhpdGZ1bGxzY3JlZW4nIDogJ3Jlc2l6ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbkRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ109XCJkaWFsb2dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ0NvbXBvbmVudF09XCJkaWFsb2dUcGxcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBhcmlhTGFiZWw9XCJjbG9zZVwiIGdseXBoPVwiZGVjbGluZVwiIChjbGljayk9XCJvbkNhbmNlbChkaWFsb2cpXCI+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwhLS0gPGgzIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMz5cbiAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbj48L2J1dHRvbj4gLS0+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlhbG9nLmRhdGEudWx2MSBhcyB1bHYxXCI+XG4gICAgICAgICAgICAgICAgPGJzdS11aS11bHYtbWFpbi11aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1mb3JtLW11bHRpLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cInVsdjFcIlxuICAgICAgICAgICAgICAgICAgICBbaW5EaWFsb2ddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc011bHRpU2VsZWN0XT1cImRpYWxvZy5kYXRhLlNob3dTZWNvbmRQYW5lbFwiXG4gICAgICAgICAgICAgICAgICAgIFtmdWxsc2NyZWVuXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgICAgID48L2JzdS11aS11bHYtbWFpbi11aT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nLmRhdGEudWx2MiAmJiBkaWFsb2cuZGF0YS5TaG93U2Vjb25kUGFuZWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fcm93IHVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3NlbGVjdGlvbi1yb3dcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidTZWxlY3RlZEl0ZW1zQW5kQ29uZGl0aW9ucycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxoNSBmZC10aXRsZSBjbGFzcz1cInNlbGVjdGVkLWFuZC1jb25kaXRpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+e3sgJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZSB9fSA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICh7eyBkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zPy5Nb0RhdGFMaXN0Py5sZW5ndGggfHwgMCB9fSlcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9oNT5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnMtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiICpuZ0lmPVwiZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VsZWN0ZWQgaXRlbXMgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJoaWdoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtdmFsdWUtaGVscC1kaWFsb2dfX3NlbGVjdGlvbi10b2tlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVTZWxlY3RlZChkaWFsb2csIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCBhcyBzZWxlY3RlZEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogX3RyYWNrQnlTZWxlY3RlZEZuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBpdGVtLiRDYXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zLWNsZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidDbGVhcicgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyICpuZ0lmPVwiZGlhbG9nLmRhdGEudWx2MSAmJiAhZGlhbG9nLmRhdGEudWx2MT8uSGlkZU9rQ2FuY2VsQnV0dG9uc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZkVGVtcGxhdGU9XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fYWN0aW9ucy1yb3dcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRpYWxvZy5kYXRhLmFkYXB0ZXI/LlNob3dPa0NhbmNlbEJ1dHRvbnMgIT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zdWNjZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBhY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25PayhkaWFsb2cpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1kaXNtaXNzLWRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|