@fundamental-ngx/platform 0.46.0-rc.2 → 0.46.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/approval-flow/approval-flow.component.mjs +3 -3
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +3 -3
- package/esm2022/form/form-group/form-field/form-field.component.mjs +3 -3
- package/esm2022/list/list.component.mjs +3 -3
- package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +3 -3
- package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +3 -3
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +3 -3
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +3 -3
- package/esm2022/split-menu-button/split-menu-button.component.mjs +3 -3
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +3 -3
- package/esm2022/table/components/table-row/table-row.component.mjs +3 -3
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +3 -3
- package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +3 -3
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -3
- package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +8 -8
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.46.0-rc.4.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/fundamental-ngx-platform-v0.46.0-rc.2.tgz +0 -0
|
@@ -117,11 +117,11 @@ export class SettingsGeneratorSidebarLayoutComponent extends BaseSettingsGenerat
|
|
|
117
117
|
return !!section.id;
|
|
118
118
|
}
|
|
119
119
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SettingsGeneratorSidebarLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SettingsGeneratorSidebarLayoutComponent, selector: "fdp-settings-generator-sidebar-layout", host: { properties: { "class.fdp-settings-generator__sidebar-layout--mobile": "this._isMobile", "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_settingsGeneratorContent", first: true, predicate: ["settingsGeneratorContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"fdp-settings-generator__sidebar\"\n [class.fdp-settings-generator__sidebar--hidden]=\"!_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : _sidebarWidth.width\"\n [style.min-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.minWidth\"\n [style.max-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.maxWidth\"\n>\n <ul fd-list [byline]=\"true\" [navigationIndicator]=\"true\">\n <li\n (click)=\"_setSelectedIndex(i)\"\n fd-list-item\n [selected]=\"i === _selectedIndex\"\n *ngFor=\"let item of settings?.items; let i = index\"\n >\n <a fd-list-link [navigated]=\"i === _selectedIndex\">\n <span fd-list-thumbnail *ngIf=\"item.thumbnail\">\n <fdp-settings-generator-sidebar-icon\n [thumbnail]=\"item.thumbnail\"\n ></fdp-settings-generator-sidebar-icon>\n </span>\n <div fd-list-content>\n <ng-container *ngIf=\"item.title | fdkAsyncOrSync as titleValue; else titleElseBlock\">\n <div fd-list-title>{{ titleValue }}</div>\n </ng-container>\n <ng-template #titleElseBlock>\n <div fd-list-title>\n <fd-skeleton\n height=\"16px\"\n type=\"rectangle\"\n width=\"40%\"\n textLines=\"1\"\n style=\"
|
|
120
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SettingsGeneratorSidebarLayoutComponent, selector: "fdp-settings-generator-sidebar-layout", host: { properties: { "class.fdp-settings-generator__sidebar-layout--mobile": "this._isMobile", "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_settingsGeneratorContent", first: true, predicate: ["settingsGeneratorContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"fdp-settings-generator__sidebar\"\n [class.fdp-settings-generator__sidebar--hidden]=\"!_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : _sidebarWidth.width\"\n [style.min-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.minWidth\"\n [style.max-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.maxWidth\"\n>\n <ul fd-list [byline]=\"true\" [navigationIndicator]=\"true\">\n <li\n (click)=\"_setSelectedIndex(i)\"\n fd-list-item\n [selected]=\"i === _selectedIndex\"\n *ngFor=\"let item of settings?.items; let i = index\"\n >\n <a fd-list-link [navigated]=\"i === _selectedIndex\">\n <span fd-list-thumbnail *ngIf=\"item.thumbnail\">\n <fdp-settings-generator-sidebar-icon\n [thumbnail]=\"item.thumbnail\"\n ></fdp-settings-generator-sidebar-icon>\n </span>\n <div fd-list-content>\n <ng-container *ngIf=\"item.title | fdkAsyncOrSync as titleValue; else titleElseBlock\">\n <div fd-list-title>{{ titleValue }}</div>\n </ng-container>\n <ng-template #titleElseBlock>\n <div fd-list-title>\n <fd-skeleton\n height=\"16px\"\n type=\"rectangle\"\n width=\"40%\"\n textLines=\"1\"\n [style.margin]=\"'auto 0'\"\n ></fd-skeleton>\n </div>\n </ng-template>\n <div fd-list-byline *ngIf=\"item.description\">\n <ng-container\n *ngIf=\"item.description | fdkAsyncOrSync as descriptionValue; else descriptionElseBlock\"\n >\n {{ descriptionValue }}\n </ng-container>\n <ng-template #descriptionElseBlock>\n <fd-skeleton type=\"text\" width=\"60%\" textLines=\"1\" [style.margin]=\"'auto 0'\"></fd-skeleton>\n </ng-template>\n </div>\n </div>\n </a>\n </li>\n </ul>\n</div>\n<div\n class=\"fdp-settings-generator__content\"\n [class.fdp-settings-generator__content--hidden]=\"_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.width + ')'\"\n [style.min-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.minWidth + ')'\"\n [style.max-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.maxWidth + ')'\"\n>\n <ng-container *ngFor=\"let item of settings?.items; let i = index\">\n <fdp-settings-generator-content\n [attr.hidden]=\"i !== _selectedIndex ? true : null\"\n [settings]=\"item\"\n [mobile]=\"_isMobile\"\n (goBack)=\"_goBack()\"\n #settingsGeneratorContent\n ></fdp-settings-generator-content>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator"], outputs: ["focusEscapeList"] }, { kind: "component", type: i2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: i2.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i2.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i2.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i2.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i2.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i3.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "component", type: i4.SettingsGeneratorContentComponent, selector: "fdp-settings-generator-content", inputs: ["settings", "mobile"], outputs: ["goBack"] }, { kind: "component", type: i5.SettingsGeneratorSidebarIconComponent, selector: "fdp-settings-generator-sidebar-icon", inputs: ["thumbnail"] }, { kind: "pipe", type: i6.AsyncOrSyncPipe, name: "fdkAsyncOrSync" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
121
121
|
}
|
|
122
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SettingsGeneratorSidebarLayoutComponent, decorators: [{
|
|
123
123
|
type: Component,
|
|
124
|
-
args: [{ selector: 'fdp-settings-generator-sidebar-layout', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"fdp-settings-generator__sidebar\"\n [class.fdp-settings-generator__sidebar--hidden]=\"!_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : _sidebarWidth.width\"\n [style.min-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.minWidth\"\n [style.max-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.maxWidth\"\n>\n <ul fd-list [byline]=\"true\" [navigationIndicator]=\"true\">\n <li\n (click)=\"_setSelectedIndex(i)\"\n fd-list-item\n [selected]=\"i === _selectedIndex\"\n *ngFor=\"let item of settings?.items; let i = index\"\n >\n <a fd-list-link [navigated]=\"i === _selectedIndex\">\n <span fd-list-thumbnail *ngIf=\"item.thumbnail\">\n <fdp-settings-generator-sidebar-icon\n [thumbnail]=\"item.thumbnail\"\n ></fdp-settings-generator-sidebar-icon>\n </span>\n <div fd-list-content>\n <ng-container *ngIf=\"item.title | fdkAsyncOrSync as titleValue; else titleElseBlock\">\n <div fd-list-title>{{ titleValue }}</div>\n </ng-container>\n <ng-template #titleElseBlock>\n <div fd-list-title>\n <fd-skeleton\n height=\"16px\"\n type=\"rectangle\"\n width=\"40%\"\n textLines=\"1\"\n style=\"
|
|
124
|
+
args: [{ selector: 'fdp-settings-generator-sidebar-layout', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"fdp-settings-generator__sidebar\"\n [class.fdp-settings-generator__sidebar--hidden]=\"!_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : _sidebarWidth.width\"\n [style.min-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.minWidth\"\n [style.max-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.maxWidth\"\n>\n <ul fd-list [byline]=\"true\" [navigationIndicator]=\"true\">\n <li\n (click)=\"_setSelectedIndex(i)\"\n fd-list-item\n [selected]=\"i === _selectedIndex\"\n *ngFor=\"let item of settings?.items; let i = index\"\n >\n <a fd-list-link [navigated]=\"i === _selectedIndex\">\n <span fd-list-thumbnail *ngIf=\"item.thumbnail\">\n <fdp-settings-generator-sidebar-icon\n [thumbnail]=\"item.thumbnail\"\n ></fdp-settings-generator-sidebar-icon>\n </span>\n <div fd-list-content>\n <ng-container *ngIf=\"item.title | fdkAsyncOrSync as titleValue; else titleElseBlock\">\n <div fd-list-title>{{ titleValue }}</div>\n </ng-container>\n <ng-template #titleElseBlock>\n <div fd-list-title>\n <fd-skeleton\n height=\"16px\"\n type=\"rectangle\"\n width=\"40%\"\n textLines=\"1\"\n [style.margin]=\"'auto 0'\"\n ></fd-skeleton>\n </div>\n </ng-template>\n <div fd-list-byline *ngIf=\"item.description\">\n <ng-container\n *ngIf=\"item.description | fdkAsyncOrSync as descriptionValue; else descriptionElseBlock\"\n >\n {{ descriptionValue }}\n </ng-container>\n <ng-template #descriptionElseBlock>\n <fd-skeleton type=\"text\" width=\"60%\" textLines=\"1\" [style.margin]=\"'auto 0'\"></fd-skeleton>\n </ng-template>\n </div>\n </div>\n </a>\n </li>\n </ul>\n</div>\n<div\n class=\"fdp-settings-generator__content\"\n [class.fdp-settings-generator__content--hidden]=\"_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.width + ')'\"\n [style.min-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.minWidth + ')'\"\n [style.max-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.maxWidth + ')'\"\n>\n <ng-container *ngFor=\"let item of settings?.items; let i = index\">\n <fdp-settings-generator-content\n [attr.hidden]=\"i !== _selectedIndex ? true : null\"\n [settings]=\"item\"\n [mobile]=\"_isMobile\"\n (goBack)=\"_goBack()\"\n #settingsGeneratorContent\n ></fdp-settings-generator-content>\n </ng-container>\n</div>\n" }]
|
|
125
125
|
}], ctorParameters: function () { return []; }, propDecorators: { _isMobile: [{
|
|
126
126
|
type: HostBinding,
|
|
127
127
|
args: ['class.fdp-settings-generator__sidebar-layout--mobile']
|
|
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
132
132
|
type: ViewChild,
|
|
133
133
|
args: ['settingsGeneratorContent']
|
|
134
134
|
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zZXR0aW5ncy1nZW5lcmF0b3IvbGF5b3V0cy9zZXR0aW5ncy1nZW5lcmF0b3Itc2lkZWJhci1sYXlvdXQvc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zZXR0aW5ncy1nZW5lcmF0b3IvbGF5b3V0cy9zZXR0aW5ncy1nZW5lcmF0b3Itc2lkZWJhci1sYXlvdXQvc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFFVixXQUFXLEVBQ1gsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFZLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFTckUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQVFoRSxNQUFNLE9BQU8sdUNBQ1QsU0FBUSwyQkFBMkI7SUFrQ25DLGNBQWM7SUFDZCxJQUFJLHFCQUFxQjtRQUNyQixPQUFP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QyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYztJQUNkLE9BQU87UUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztJQUNOLDBCQUEwQixDQUFDLEtBQXlDO1FBQ3hFLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzNGLENBQUM7SUFFRCxjQUFjO0lBQ04sa0JBQWtCLENBQUMsUUFBdUI7UUFDOUMsT0FBTyxRQUFRLEVBQUUsVUFBVSxLQUFLLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztJQUNOLHVCQUF1QixDQUFDLE9BQXFCO1FBQ2pELE9BQU8sQ0FBQyxDQUFFLE9BQWUsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0ExSVEsdUNBQXVDO2tHQUF2Qyx1Q0FBdUMsOFdDakNwRCw4ckdBbUVBOzsyRkRsQ2EsdUNBQXVDO2tCQU5uRCxTQUFTOytCQUNJLHVDQUF1QyxtQkFFaEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTswRUFRckMsU0FBUztzQkFEUixXQUFXO3VCQUFDLHNEQUFzRDtnQkFLbEQsYUFBYTtzQkFEN0IsV0FBVzt1QkFBQyxPQUFPO2dCQUtILHlCQUF5QjtzQkFEekMsU0FBUzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlLCByZXNpemVPYnNlcnZhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaWRlYmFyU2V0dGluZ3NHZW5lcmF0b3JDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2V0dGluZ3MtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7XG4gICAgRm9ybVNldHRpbmdzSXRlbSxcbiAgICBHcm91cGVkRm9ybVNldHRpbmdzSXRlbSxcbiAgICBTZXR0aW5nc0l0ZW0sXG4gICAgU2lkZWJhclNldHRpbmdzTW9kZWwsXG4gICAgU2lkZWJhcldpZHRoQ29uZmlndXJhdGlvblxufSBmcm9tICcuLi8uLi9tb2RlbHMvc2V0dGluZ3MubW9kZWwnO1xuaW1wb3J0IHsgU2V0dGluZ3NHZW5lcmF0b3JDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQvc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEZEUF9TRVRUSU5HU19HRU5FUkFUT1JfQ09ORklHIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcbmltcG9ydCB7IEJhc2VTZXR0aW5nc0dlbmVyYXRvckxheW91dCB9IGZyb20gJy4uL2Jhc2Utc2V0dGluZ3MtZ2VuZXJhdG9yLWxheW91dCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXNldHRpbmdzLWdlbmVyYXRvci1zaWRlYmFyLWxheW91dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmdzLWdlbmVyYXRvci1zaWRlYmFyLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0dlbmVyYXRvclNpZGViYXJMYXlvdXRDb21wb25lbnRcbiAgICBleHRlbmRzIEJhc2VTZXR0aW5nc0dlbmVyYXRvckxheW91dFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX3NpZGViYXItbGF5b3V0LS1tb2JpbGUnKVxuICAgIF9pc01vYmlsZTogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbENsYXNzID0gJ2ZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX3NpZGViYXItbGF5b3V0JztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc2V0dGluZ3NHZW5lcmF0b3JDb250ZW50JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zZXR0aW5nc0dlbmVyYXRvckNvbnRlbnQ6IFNldHRpbmdzR2VuZXJhdG9yQ29udGVudENvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdGVkIHNldHRpbmdzIHNlY3Rpb24uXG4gICAgICovXG4gICAgX3NlbGVjdGVkSW5kZXggPSAtMTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaWRlYmFyV2lkdGg6IFNpZGViYXJXaWR0aENvbmZpZ3VyYXRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnID0gaW5qZWN0PFNpZGViYXJTZXR0aW5nc0dlbmVyYXRvckNvbmZpZz4oRkRQX1NFVFRJTkdTX0dFTkVSQVRPUl9DT05GSUcpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zaWRlYmFyVmlzaWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxTZWxlY3RlZEl0ZW1TZXQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9tb2JpbGVTaWRlYmFyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTW9iaWxlICYmIHRoaXMuX3NpZGViYXJWaXNpYmxlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3NpZGViYXJXaWR0aCA9IHRoaXMuX2dldE5vcm1hbGl6ZWRTaWRlYmFyV2lkdGgodGhpcy5fY29uZmlnLnNpZGViYXI/LndpZHRoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9zZXR0aW5nc0dlbmVyYXRvclNlcnZpY2Uuc2V0dGluZ3MucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoc2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc1NpZGViYXJTZXR0aW5ncyhzZXR0aW5ncykgJiYgc2V0dGluZ3Muc2lkZWJhcldpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2lkZWJhcldpZHRoID0gdGhpcy5fZ2V0Tm9ybWFsaXplZFNpZGViYXJXaWR0aChzZXR0aW5ncy5zaWRlYmFyV2lkdGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZm9jdXNFbGVtZW50QnlQYXRoKHBhdGg6IHN0cmluZywgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGF0aEFycmF5ID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgICAvLyBXZSBhcmUgaW50ZXJlc3RlZCBvbmx5IGluIHNlY3Rpb25zIHdpdGggSUQuXG4gICAgICAgIGNvbnN0IHNlY3Rpb25JbmRleCA9XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzPy5pdGVtcy5maW5kSW5kZXgoKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lzRm9ybUdlbmVyYXRvclNlY3Rpb24oc2VjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc2VjdGlvbi5pZCA9PT0gcGF0aEFycmF5WzBdO1xuICAgICAgICAgICAgfSkgPz8gLTE7XG5cbiAgICAgICAgLy8gRm9jdXMgb24gc2VjdGlvbi5cbiAgICAgICAgaWYgKHNlY3Rpb25JbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEluZGV4KHNlY3Rpb25JbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBvbmx5IDIgbGV2ZWwgbmVzdGluZyBvZiBmb3JtIGdyb3Vwcy5cbiAgICAgICAgaWYgKHBhdGhBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc0dlbmVyYXRvckNvbnRlbnQuc2V0QWN0aXZlVGFiKHBhdGhBcnJheVsxXSk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzR2VuZXJhdG9yLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAmJiB0aGlzLl9jb25maWcuc2lkZWJhcj8ubW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9zZXR0aW5nc0dlbmVyYXRvci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCBkZWJvdW5jZVRpbWUoMzApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGggfSA9IHRoaXMuX3NldHRpbmdzR2VuZXJhdG9yLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNNb2JpbGUgPSB3aWR0aCA8PSB0aGlzLl9jb25maWcuc2lkZWJhci5tb2JpbGVCcmVha3BvaW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNNb2JpbGUgPT09IGlzTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NHZW5lcmF0b3JTZXJ2aWNlLnNldE1vYmlsZVN0YXRlKGlzTW9iaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNNb2JpbGUgPSBpc01vYmlsZTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBVc2VyIG9wZW5lZCBzZWN0aW9uIHByZXZpb3VzbHksIHNvIGZvY3VzIG9uIHRoYXQgc2VjdGlvblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNNb2JpbGUgJiYgdGhpcy5fc2VsZWN0ZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaWRlYmFyVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9iaWxlIHZpZXcsIHdlIGRvbid0IG5lZWQgdG8gc2V0IGluaXRpYWwgaW5kZXgsIHNpbmNlIHRoZSBzZWN0aW9uIHdvbid0IGJlIHZpc2libGUgdG8gdGhlIGVuZCB1c2VyLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxTZWxlY3RlZEl0ZW1TZXQgJiYgIXRoaXMuX2lzTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEluZGV4KHRoaXMuX3NlbGVjdGVkSW5kZXggPiAtMSA/IHRoaXMuX3NlbGVjdGVkSW5kZXggOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxTZWxlY3RlZEl0ZW1TZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRTZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLl9zaWRlYmFyVmlzaWJsZSA9IGluZGV4ID09PSAtMTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9nb0JhY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0Tm9ybWFsaXplZFNpZGViYXJXaWR0aCh3aWR0aDogc3RyaW5nIHwgU2lkZWJhcldpZHRoQ29uZmlndXJhdGlvbik6IFNpZGViYXJXaWR0aENvbmZpZ3VyYXRpb24ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHdpZHRoID09PSAnc3RyaW5nJyA/IHsgbWluV2lkdGg6IHdpZHRoLCBtYXhXaWR0aDogd2lkdGgsIHdpZHRoIH0gOiB3aWR0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzU2lkZWJhclNldHRpbmdzKHNldHRpbmdzOiBOdWxsYWJsZTxhbnk+KTogc2V0dGluZ3MgaXMgU2lkZWJhclNldHRpbmdzTW9kZWw8YW55PiB7XG4gICAgICAgIHJldHVybiBzZXR0aW5ncz8uYXBwZWFyYW5jZSA9PT0gJ3NpZGViYXInO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNGb3JtR2VuZXJhdG9yU2VjdGlvbihzZWN0aW9uOiBTZXR0aW5nc0l0ZW0pOiBzZWN0aW9uIGlzIEZvcm1TZXR0aW5nc0l0ZW0gfCBHcm91cGVkRm9ybVNldHRpbmdzSXRlbSB7XG4gICAgICAgIHJldHVybiAhIShzZWN0aW9uIGFzIGFueSkuaWQ7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZmRwLXNldHRpbmdzLWdlbmVyYXRvcl9fc2lkZWJhclwiXG4gICAgW2NsYXNzLmZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX3NpZGViYXItLWhpZGRlbl09XCIhX21vYmlsZVNpZGViYXJWaXNpYmxlXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6IF9zaWRlYmFyV2lkdGgud2lkdGhcIlxuICAgIFtzdHlsZS5taW4td2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6IF9zaWRlYmFyV2lkdGgubWluV2lkdGhcIlxuICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6IF9zaWRlYmFyV2lkdGgubWF4V2lkdGhcIlxuPlxuICAgIDx1bCBmZC1saXN0IFtieWxpbmVdPVwidHJ1ZVwiIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cInRydWVcIj5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldFNlbGVjdGVkSW5kZXgoaSlcIlxuICAgICAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaSA9PT0gX3NlbGVjdGVkSW5kZXhcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2V0dGluZ3M/Lml0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIFtuYXZpZ2F0ZWRdPVwiaSA9PT0gX3NlbGVjdGVkSW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRodW1ibmFpbCAqbmdJZj1cIml0ZW0udGh1bWJuYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3RodW1ibmFpbF09XCJpdGVtLnRodW1ibmFpbFwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1zZXR0aW5ncy1nZW5lcmF0b3Itc2lkZWJhci1pY29uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udGl0bGUgfCBmZGtBc3luY09yU3luYyBhcyB0aXRsZVZhbHVlOyBlbHNlIHRpdGxlRWxzZUJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtdGl0bGU+e3sgdGl0bGVWYWx1ZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0aXRsZUVsc2VCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2tlbGV0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyZWN0YW5nbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRMaW5lcz1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbjogYXV0byAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lICpuZ0lmPVwiaXRlbS5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5kZXNjcmlwdGlvbiB8IGZka0FzeW5jT3JTeW5jIGFzIGRlc2NyaXB0aW9uVmFsdWU7IGVsc2UgZGVzY3JpcHRpb25FbHNlQmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRlc2NyaXB0aW9uVmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZXNjcmlwdGlvbkVsc2VCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2tlbGV0b24gdHlwZT1cInRleHRcIiB3aWR0aD1cIjYwJVwiIHRleHRMaW5lcz1cIjFcIiBzdHlsZT1cIm1hcmdpbjogYXV0byAwXCI+PC9mZC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cImZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX2NvbnRlbnRcIlxuICAgIFtjbGFzcy5mZHAtc2V0dGluZ3MtZ2VuZXJhdG9yX19jb250ZW50LS1oaWRkZW5dPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6ICdjYWxjKDEwMCUgLSAnICsgX3NpZGViYXJXaWR0aC53aWR0aCArICcpJ1wiXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJfbW9iaWxlU2lkZWJhclZpc2libGUgPyBudWxsIDogJ2NhbGMoMTAwJSAtICcgKyBfc2lkZWJhcldpZHRoLm1pbldpZHRoICsgJyknXCJcbiAgICBbc3R5bGUubWF4LXdpZHRoXT1cIl9tb2JpbGVTaWRlYmFyVmlzaWJsZSA/IG51bGwgOiAnY2FsYygxMDAlIC0gJyArIF9zaWRlYmFyV2lkdGgubWF4V2lkdGggKyAnKSdcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2V0dGluZ3M/Lml0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxmZHAtc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnRcbiAgICAgICAgICAgIFthdHRyLmhpZGRlbl09XCJpICE9PSBfc2VsZWN0ZWRJbmRleCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIFtzZXR0aW5nc109XCJpdGVtXCJcbiAgICAgICAgICAgIFttb2JpbGVdPVwiX2lzTW9iaWxlXCJcbiAgICAgICAgICAgIChnb0JhY2spPVwiX2dvQmFjaygpXCJcbiAgICAgICAgICAgICNzZXR0aW5nc0dlbmVyYXRvckNvbnRlbnRcbiAgICAgICAgPjwvZmRwLXNldHRpbmdzLWdlbmVyYXRvci1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zZXR0aW5ncy1nZW5lcmF0b3IvbGF5b3V0cy9zZXR0aW5ncy1nZW5lcmF0b3Itc2lkZWJhci1sYXlvdXQvc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zZXR0aW5ncy1nZW5lcmF0b3IvbGF5b3V0cy9zZXR0aW5ncy1nZW5lcmF0b3Itc2lkZWJhci1sYXlvdXQvc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFFVixXQUFXLEVBQ1gsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFZLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFTckUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQVFoRSxNQUFNLE9BQU8sdUNBQ1QsU0FBUSwyQkFBMkI7SUFrQ25DLGNBQWM7SUFDZCxJQUFJLHFCQUFxQjtRQUNyQixPQUFP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QyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYztJQUNkLE9BQU87UUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztJQUNOLDBCQUEwQixDQUFDLEtBQXlDO1FBQ3hFLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzNGLENBQUM7SUFFRCxjQUFjO0lBQ04sa0JBQWtCLENBQUMsUUFBdUI7UUFDOUMsT0FBTyxRQUFRLEVBQUUsVUFBVSxLQUFLLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztJQUNOLHVCQUF1QixDQUFDLE9BQXFCO1FBQ2pELE9BQU8sQ0FBQyxDQUFFLE9BQWUsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0ExSVEsdUNBQXVDO2tHQUF2Qyx1Q0FBdUMsOFdDakNwRCxvc0dBbUVBOzsyRkRsQ2EsdUNBQXVDO2tCQU5uRCxTQUFTOytCQUNJLHVDQUF1QyxtQkFFaEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTswRUFRckMsU0FBUztzQkFEUixXQUFXO3VCQUFDLHNEQUFzRDtnQkFLbEQsYUFBYTtzQkFEN0IsV0FBVzt1QkFBQyxPQUFPO2dCQUtILHlCQUF5QjtzQkFEekMsU0FBUzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlLCByZXNpemVPYnNlcnZhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaWRlYmFyU2V0dGluZ3NHZW5lcmF0b3JDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2V0dGluZ3MtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7XG4gICAgRm9ybVNldHRpbmdzSXRlbSxcbiAgICBHcm91cGVkRm9ybVNldHRpbmdzSXRlbSxcbiAgICBTZXR0aW5nc0l0ZW0sXG4gICAgU2lkZWJhclNldHRpbmdzTW9kZWwsXG4gICAgU2lkZWJhcldpZHRoQ29uZmlndXJhdGlvblxufSBmcm9tICcuLi8uLi9tb2RlbHMvc2V0dGluZ3MubW9kZWwnO1xuaW1wb3J0IHsgU2V0dGluZ3NHZW5lcmF0b3JDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQvc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEZEUF9TRVRUSU5HU19HRU5FUkFUT1JfQ09ORklHIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcbmltcG9ydCB7IEJhc2VTZXR0aW5nc0dlbmVyYXRvckxheW91dCB9IGZyb20gJy4uL2Jhc2Utc2V0dGluZ3MtZ2VuZXJhdG9yLWxheW91dCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXNldHRpbmdzLWdlbmVyYXRvci1zaWRlYmFyLWxheW91dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmdzLWdlbmVyYXRvci1zaWRlYmFyLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0dlbmVyYXRvclNpZGViYXJMYXlvdXRDb21wb25lbnRcbiAgICBleHRlbmRzIEJhc2VTZXR0aW5nc0dlbmVyYXRvckxheW91dFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX3NpZGViYXItbGF5b3V0LS1tb2JpbGUnKVxuICAgIF9pc01vYmlsZTogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbENsYXNzID0gJ2ZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX3NpZGViYXItbGF5b3V0JztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc2V0dGluZ3NHZW5lcmF0b3JDb250ZW50JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zZXR0aW5nc0dlbmVyYXRvckNvbnRlbnQ6IFNldHRpbmdzR2VuZXJhdG9yQ29udGVudENvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdGVkIHNldHRpbmdzIHNlY3Rpb24uXG4gICAgICovXG4gICAgX3NlbGVjdGVkSW5kZXggPSAtMTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaWRlYmFyV2lkdGg6IFNpZGViYXJXaWR0aENvbmZpZ3VyYXRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnID0gaW5qZWN0PFNpZGViYXJTZXR0aW5nc0dlbmVyYXRvckNvbmZpZz4oRkRQX1NFVFRJTkdTX0dFTkVSQVRPUl9DT05GSUcpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zaWRlYmFyVmlzaWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxTZWxlY3RlZEl0ZW1TZXQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9tb2JpbGVTaWRlYmFyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTW9iaWxlICYmIHRoaXMuX3NpZGViYXJWaXNpYmxlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3NpZGViYXJXaWR0aCA9IHRoaXMuX2dldE5vcm1hbGl6ZWRTaWRlYmFyV2lkdGgodGhpcy5fY29uZmlnLnNpZGViYXI/LndpZHRoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9zZXR0aW5nc0dlbmVyYXRvclNlcnZpY2Uuc2V0dGluZ3MucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoc2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc1NpZGViYXJTZXR0aW5ncyhzZXR0aW5ncykgJiYgc2V0dGluZ3Muc2lkZWJhcldpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2lkZWJhcldpZHRoID0gdGhpcy5fZ2V0Tm9ybWFsaXplZFNpZGViYXJXaWR0aChzZXR0aW5ncy5zaWRlYmFyV2lkdGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZm9jdXNFbGVtZW50QnlQYXRoKHBhdGg6IHN0cmluZywgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGF0aEFycmF5ID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgICAvLyBXZSBhcmUgaW50ZXJlc3RlZCBvbmx5IGluIHNlY3Rpb25zIHdpdGggSUQuXG4gICAgICAgIGNvbnN0IHNlY3Rpb25JbmRleCA9XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzPy5pdGVtcy5maW5kSW5kZXgoKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lzRm9ybUdlbmVyYXRvclNlY3Rpb24oc2VjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc2VjdGlvbi5pZCA9PT0gcGF0aEFycmF5WzBdO1xuICAgICAgICAgICAgfSkgPz8gLTE7XG5cbiAgICAgICAgLy8gRm9jdXMgb24gc2VjdGlvbi5cbiAgICAgICAgaWYgKHNlY3Rpb25JbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEluZGV4KHNlY3Rpb25JbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDdXJyZW50bHkgd2Ugc3VwcG9ydCBvbmx5IDIgbGV2ZWwgbmVzdGluZyBvZiBmb3JtIGdyb3Vwcy5cbiAgICAgICAgaWYgKHBhdGhBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXR0aW5nc0dlbmVyYXRvckNvbnRlbnQuc2V0QWN0aXZlVGFiKHBhdGhBcnJheVsxXSk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzR2VuZXJhdG9yLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAmJiB0aGlzLl9jb25maWcuc2lkZWJhcj8ubW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9zZXR0aW5nc0dlbmVyYXRvci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCBkZWJvdW5jZVRpbWUoMzApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGggfSA9IHRoaXMuX3NldHRpbmdzR2VuZXJhdG9yLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNNb2JpbGUgPSB3aWR0aCA8PSB0aGlzLl9jb25maWcuc2lkZWJhci5tb2JpbGVCcmVha3BvaW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNNb2JpbGUgPT09IGlzTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NHZW5lcmF0b3JTZXJ2aWNlLnNldE1vYmlsZVN0YXRlKGlzTW9iaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNNb2JpbGUgPSBpc01vYmlsZTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBVc2VyIG9wZW5lZCBzZWN0aW9uIHByZXZpb3VzbHksIHNvIGZvY3VzIG9uIHRoYXQgc2VjdGlvblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNNb2JpbGUgJiYgdGhpcy5fc2VsZWN0ZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaWRlYmFyVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9iaWxlIHZpZXcsIHdlIGRvbid0IG5lZWQgdG8gc2V0IGluaXRpYWwgaW5kZXgsIHNpbmNlIHRoZSBzZWN0aW9uIHdvbid0IGJlIHZpc2libGUgdG8gdGhlIGVuZCB1c2VyLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxTZWxlY3RlZEl0ZW1TZXQgJiYgIXRoaXMuX2lzTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEluZGV4KHRoaXMuX3NlbGVjdGVkSW5kZXggPiAtMSA/IHRoaXMuX3NlbGVjdGVkSW5kZXggOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxTZWxlY3RlZEl0ZW1TZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRTZWxlY3RlZEluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLl9zaWRlYmFyVmlzaWJsZSA9IGluZGV4ID09PSAtMTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9nb0JhY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0Tm9ybWFsaXplZFNpZGViYXJXaWR0aCh3aWR0aDogc3RyaW5nIHwgU2lkZWJhcldpZHRoQ29uZmlndXJhdGlvbik6IFNpZGViYXJXaWR0aENvbmZpZ3VyYXRpb24ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHdpZHRoID09PSAnc3RyaW5nJyA/IHsgbWluV2lkdGg6IHdpZHRoLCBtYXhXaWR0aDogd2lkdGgsIHdpZHRoIH0gOiB3aWR0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzU2lkZWJhclNldHRpbmdzKHNldHRpbmdzOiBOdWxsYWJsZTxhbnk+KTogc2V0dGluZ3MgaXMgU2lkZWJhclNldHRpbmdzTW9kZWw8YW55PiB7XG4gICAgICAgIHJldHVybiBzZXR0aW5ncz8uYXBwZWFyYW5jZSA9PT0gJ3NpZGViYXInO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNGb3JtR2VuZXJhdG9yU2VjdGlvbihzZWN0aW9uOiBTZXR0aW5nc0l0ZW0pOiBzZWN0aW9uIGlzIEZvcm1TZXR0aW5nc0l0ZW0gfCBHcm91cGVkRm9ybVNldHRpbmdzSXRlbSB7XG4gICAgICAgIHJldHVybiAhIShzZWN0aW9uIGFzIGFueSkuaWQ7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZmRwLXNldHRpbmdzLWdlbmVyYXRvcl9fc2lkZWJhclwiXG4gICAgW2NsYXNzLmZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX3NpZGViYXItLWhpZGRlbl09XCIhX21vYmlsZVNpZGViYXJWaXNpYmxlXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6IF9zaWRlYmFyV2lkdGgud2lkdGhcIlxuICAgIFtzdHlsZS5taW4td2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6IF9zaWRlYmFyV2lkdGgubWluV2lkdGhcIlxuICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6IF9zaWRlYmFyV2lkdGgubWF4V2lkdGhcIlxuPlxuICAgIDx1bCBmZC1saXN0IFtieWxpbmVdPVwidHJ1ZVwiIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cInRydWVcIj5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldFNlbGVjdGVkSW5kZXgoaSlcIlxuICAgICAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaSA9PT0gX3NlbGVjdGVkSW5kZXhcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2V0dGluZ3M/Lml0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIFtuYXZpZ2F0ZWRdPVwiaSA9PT0gX3NlbGVjdGVkSW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRodW1ibmFpbCAqbmdJZj1cIml0ZW0udGh1bWJuYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtc2V0dGluZ3MtZ2VuZXJhdG9yLXNpZGViYXItaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3RodW1ibmFpbF09XCJpdGVtLnRodW1ibmFpbFwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1zZXR0aW5ncy1nZW5lcmF0b3Itc2lkZWJhci1pY29uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udGl0bGUgfCBmZGtBc3luY09yU3luYyBhcyB0aXRsZVZhbHVlOyBlbHNlIHRpdGxlRWxzZUJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtdGl0bGU+e3sgdGl0bGVWYWx1ZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0aXRsZUVsc2VCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2tlbGV0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyZWN0YW5nbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRMaW5lcz1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubWFyZ2luXT1cIidhdXRvIDAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lICpuZ0lmPVwiaXRlbS5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5kZXNjcmlwdGlvbiB8IGZka0FzeW5jT3JTeW5jIGFzIGRlc2NyaXB0aW9uVmFsdWU7IGVsc2UgZGVzY3JpcHRpb25FbHNlQmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRlc2NyaXB0aW9uVmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZXNjcmlwdGlvbkVsc2VCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtc2tlbGV0b24gdHlwZT1cInRleHRcIiB3aWR0aD1cIjYwJVwiIHRleHRMaW5lcz1cIjFcIiBbc3R5bGUubWFyZ2luXT1cIidhdXRvIDAnXCI+PC9mZC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cImZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX2NvbnRlbnRcIlxuICAgIFtjbGFzcy5mZHAtc2V0dGluZ3MtZ2VuZXJhdG9yX19jb250ZW50LS1oaWRkZW5dPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiX21vYmlsZVNpZGViYXJWaXNpYmxlID8gbnVsbCA6ICdjYWxjKDEwMCUgLSAnICsgX3NpZGViYXJXaWR0aC53aWR0aCArICcpJ1wiXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJfbW9iaWxlU2lkZWJhclZpc2libGUgPyBudWxsIDogJ2NhbGMoMTAwJSAtICcgKyBfc2lkZWJhcldpZHRoLm1pbldpZHRoICsgJyknXCJcbiAgICBbc3R5bGUubWF4LXdpZHRoXT1cIl9tb2JpbGVTaWRlYmFyVmlzaWJsZSA/IG51bGwgOiAnY2FsYygxMDAlIC0gJyArIF9zaWRlYmFyV2lkdGgubWF4V2lkdGggKyAnKSdcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2V0dGluZ3M/Lml0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxmZHAtc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnRcbiAgICAgICAgICAgIFthdHRyLmhpZGRlbl09XCJpICE9PSBfc2VsZWN0ZWRJbmRleCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIFtzZXR0aW5nc109XCJpdGVtXCJcbiAgICAgICAgICAgIFttb2JpbGVdPVwiX2lzTW9iaWxlXCJcbiAgICAgICAgICAgIChnb0JhY2spPVwiX2dvQmFjaygpXCJcbiAgICAgICAgICAgICNzZXR0aW5nc0dlbmVyYXRvckNvbnRlbnRcbiAgICAgICAgPjwvZmRwLXNldHRpbmdzLWdlbmVyYXRvci1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -65,11 +65,11 @@ export class SettingsGeneratorContentComponent {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SettingsGeneratorContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SettingsGeneratorContentComponent, selector: "fdp-settings-generator-content", inputs: { settings: "settings", mobile: "mobile" }, outputs: { goBack: "goBack" }, host: { properties: { "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_tabPanels", predicate: TabPanelComponent, descendants: true }], ngImport: i0, template: "<h2 fd-title class=\"fdp-settings-generator__title\">\n <button *ngIf=\"mobile\" fd-button glyph=\"menu2\" fdType=\"transparent\" (click)=\"goBack.emit()\"></button>\n <ng-container *ngIf=\"settings?.title | fdkAsyncOrSync as settingsTitle; else loadingBlock\">\n {{ settingsTitle }}\n </ng-container>\n <ng-template #loadingBlock>\n <fd-skeleton height=\"40px\" type=\"rectangle\" width=\"40%\" textLines=\"1\" style=\"
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SettingsGeneratorContentComponent, selector: "fdp-settings-generator-content", inputs: { settings: "settings", mobile: "mobile" }, outputs: { goBack: "goBack" }, host: { properties: { "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_tabPanels", predicate: TabPanelComponent, descendants: true }], ngImport: i0, template: "<h2 fd-title class=\"fdp-settings-generator__title\">\n <button *ngIf=\"mobile\" fd-button glyph=\"menu2\" fdType=\"transparent\" (click)=\"goBack.emit()\"></button>\n <ng-container *ngIf=\"settings?.title | fdkAsyncOrSync as settingsTitle; else loadingBlock\">\n {{ settingsTitle }}\n </ng-container>\n <ng-template #loadingBlock>\n <fd-skeleton height=\"40px\" type=\"rectangle\" width=\"40%\" textLines=\"1\" [style.margin]=\"'auto 0'\"></fd-skeleton>\n </ng-template>\n</h2>\n\n<ng-template #tabbedLayout>\n <fd-tab-list size=\"s\">\n <fd-tab *ngFor=\"let group of _groups\" [title]=\"group.title | fdkAsyncOrSync\">\n <fdp-settings-generator-section\n [groupName]=\"$any(settings).id\"\n [items]=\"group\"\n ></fdp-settings-generator-section>\n </fd-tab>\n </fd-tab-list>\n</ng-template>\n\n<ng-template #formLayout>\n <fdp-settings-generator-section [items]=\"settings!\"></fdp-settings-generator-section>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"_contentLayout === 'tabs' ? tabbedLayout : formLayout\"></ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.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: "component", type: i3.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "defaultTab", "selectDefaultOnTabsChange", "focusFirstFocusableElement"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "component", type: i4.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.SettingsGeneratorSectionComponent, selector: "fdp-settings-generator-section", inputs: ["groupName", "items"] }, { kind: "pipe", type: i7.AsyncOrSyncPipe, name: "fdkAsyncOrSync" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
69
69
|
}
|
|
70
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SettingsGeneratorContentComponent, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
|
-
args: [{ selector: 'fdp-settings-generator-content', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<h2 fd-title class=\"fdp-settings-generator__title\">\n <button *ngIf=\"mobile\" fd-button glyph=\"menu2\" fdType=\"transparent\" (click)=\"goBack.emit()\"></button>\n <ng-container *ngIf=\"settings?.title | fdkAsyncOrSync as settingsTitle; else loadingBlock\">\n {{ settingsTitle }}\n </ng-container>\n <ng-template #loadingBlock>\n <fd-skeleton height=\"40px\" type=\"rectangle\" width=\"40%\" textLines=\"1\" style=\"
|
|
72
|
+
args: [{ selector: 'fdp-settings-generator-content', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<h2 fd-title class=\"fdp-settings-generator__title\">\n <button *ngIf=\"mobile\" fd-button glyph=\"menu2\" fdType=\"transparent\" (click)=\"goBack.emit()\"></button>\n <ng-container *ngIf=\"settings?.title | fdkAsyncOrSync as settingsTitle; else loadingBlock\">\n {{ settingsTitle }}\n </ng-container>\n <ng-template #loadingBlock>\n <fd-skeleton height=\"40px\" type=\"rectangle\" width=\"40%\" textLines=\"1\" [style.margin]=\"'auto 0'\"></fd-skeleton>\n </ng-template>\n</h2>\n\n<ng-template #tabbedLayout>\n <fd-tab-list size=\"s\">\n <fd-tab *ngFor=\"let group of _groups\" [title]=\"group.title | fdkAsyncOrSync\">\n <fdp-settings-generator-section\n [groupName]=\"$any(settings).id\"\n [items]=\"group\"\n ></fdp-settings-generator-section>\n </fd-tab>\n </fd-tab-list>\n</ng-template>\n\n<ng-template #formLayout>\n <fdp-settings-generator-section [items]=\"settings!\"></fdp-settings-generator-section>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"_contentLayout === 'tabs' ? tabbedLayout : formLayout\"></ng-container>\n" }]
|
|
73
73
|
}], propDecorators: { settings: [{
|
|
74
74
|
type: Input
|
|
75
75
|
}], mobile: [{
|
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
83
83
|
type: ViewChildren,
|
|
84
84
|
args: [TabPanelComponent]
|
|
85
85
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3NldHRpbmdzLWdlbmVyYXRvci9zZXR0aW5ncy1nZW5lcmF0b3ItY29udGVudC9zZXR0aW5ncy1nZW5lcmF0b3ItY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc2V0dGluZ3MtZ2VuZXJhdG9yL3NldHRpbmdzLWdlbmVyYXRvci1jb250ZW50L3NldHRpbmdzLWdlbmVyYXRvci1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFnQi9ELE1BQU0sT0FBTyxpQ0FBaUM7SUFOOUM7UUFPSSxjQUFjO1FBQ0csU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBS2xELGNBQWM7UUFDZCxZQUFPLEdBQThDLEVBQUUsQ0FBQztRQXVCeEQsMERBQTBEO1FBRTFELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZix5RUFBeUU7UUFFekUsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLbEMsY0FBYztRQUNkLGNBQVMsR0FBd0IsTUFBTSxDQUFDO1FBRXhDLGNBQWM7UUFDZCxtQkFBYyxHQUFvQixNQUFNLENBQUM7UUFFekMsY0FBYztRQUVHLGtCQUFhLEdBQUcseUNBQXlDLENBQUM7S0FpQzlFO0lBdEVHLGNBQWM7SUFDZCxJQUNJLFFBQVEsQ0FBQyxLQUE2QjtRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzdFLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3hDO2FBQU07WUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQTJCRCxjQUFjO0lBQ2QsZ0JBQWdCLENBQUMsUUFBZ0M7UUFDN0MsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQixDQUFDLFFBQWE7UUFDM0IsT0FBTyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxFQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3pDLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFbEMsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDZixPQUFPLEtBQUssQ0FBQzthQUNoQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FsRlEsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsaVBBcUQ1QixpQkFBaUIsZ0RDbkZuQyx3bkNBMEJBOzsyRkRJYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0ksZ0NBQWdDLGlCQUUzQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzhCQWlCM0MsUUFBUTtzQkFEWCxLQUFLO2dCQW1CTixNQUFNO3NCQURMLEtBQUs7Z0JBS04sTUFBTTtzQkFETCxNQUFNO2dCQWNVLGFBQWE7c0JBRDdCLFdBQVc7dUJBQUMsT0FBTztnQkFLSCxVQUFVO3NCQUQxQixZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFRhYlBhbmVsQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RhYnMnO1xuaW1wb3J0IHtcbiAgICBHcm91cGVkRm9ybVNldHRpbmdzSXRlbSxcbiAgICBHcm91cGVkVGVtcGxhdGVTZXR0aW5nc0l0ZW0sXG4gICAgU2V0dGluZ3NGb3JtVGFiLFxuICAgIFNldHRpbmdzSXRlbSxcbiAgICBTZXR0aW5nc1RlbXBsYXRlVGFiLFxuICAgIFRlbXBsYXRlU2V0dGluZ3NJdGVtXG59IGZyb20gJy4uL21vZGVscy9zZXR0aW5ncy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXNldHRpbmdzLWdlbmVyYXRvci1jb250ZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MtZ2VuZXJhdG9yLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NHZW5lcmF0b3JDb250ZW50Q29tcG9uZW50IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHRpbmdzOiBOdWxsYWJsZTxTZXR0aW5nc0l0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ3JvdXBzOiAoU2V0dGluZ3NUZW1wbGF0ZVRhYiB8IFNldHRpbmdzRm9ybVRhYilbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5kZXg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2V0dGluZ3ModmFsdWU6IE51bGxhYmxlPFNldHRpbmdzSXRlbT4pIHtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlciA9IHRoaXMuaXNUZW1wbGF0ZUxheW91dCh0aGlzLl9zZXR0aW5ncykgPyAndGVtcGxhdGUnIDogJ2Zvcm0nO1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwZWRTZXR0aW5ncyh0aGlzLl9zZXR0aW5ncykpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRMYXlvdXQgPSAndGFicyc7XG4gICAgICAgICAgICB0aGlzLl9ncm91cHMgPSB0aGlzLl9zZXR0aW5ncy5ncm91cHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50TGF5b3V0ID0gJ2Zvcm0nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHNldHRpbmdzKCk6IE51bGxhYmxlPFNldHRpbmdzSXRlbT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdG8gcmVuZGVyIGNvbnRlbnQgY29tcG9uZW50IGluIG1vYmlsZSB2aWV3LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgZW1pdHMgd2hlbiB1c2VyIG5lZWRzIHRvIGJlIG1vdmVkIGJhY2sgdG8gbmF2aWdhdGlvbiBzY3JlZW4uICovXG4gICAgQE91dHB1dCgpXG4gICAgZ29CYWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaWQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yZW5kZXJlcjogJ2Zvcm0nIHwgJ3RlbXBsYXRlJyA9ICdmb3JtJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbnRlbnRMYXlvdXQ6ICdmb3JtJyB8ICd0YWJzJyA9ICdmb3JtJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbENsYXNzID0gJ2ZkcC1zZXR0aW5ncy1nZW5lcmF0b3JfX2NvbnRlbnQtc2VjdGlvbic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oVGFiUGFuZWxDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiUGFuZWxzOiBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpc1RlbXBsYXRlTGF5b3V0KHNldHRpbmdzOiBOdWxsYWJsZTxTZXR0aW5nc0l0ZW0+KTogc2V0dGluZ3MgaXMgVGVtcGxhdGVTZXR0aW5nc0l0ZW0ge1xuICAgICAgICByZXR1cm4gISFzZXR0aW5ncz8udGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpc0dyb3VwZWRTZXR0aW5ncyhzZXR0aW5nczogYW55KTogc2V0dGluZ3MgaXMgR3JvdXBlZEZvcm1TZXR0aW5nc0l0ZW0gfCBHcm91cGVkVGVtcGxhdGVTZXR0aW5nc0l0ZW0ge1xuICAgICAgICByZXR1cm4gc2V0dGluZ3M/Lmdyb3Vwcz8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZXMgdGFiIGJ5IGdyb3VwIElELlxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgZ3JvdXAuXG4gICAgICovXG4gICAgc2V0QWN0aXZlVGFiKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzR3JvdXBlZFNldHRpbmdzKHRoaXMuX3NldHRpbmdzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RhYlBhbmVscz8uZm9yRWFjaCgodGFiLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLl9ncm91cHNbaW5kZXhdO1xuXG4gICAgICAgICAgICBpZiAoZ3JvdXAuaWQgPT09IGlkKSB7XG4gICAgICAgICAgICAgICAgdGFiLm9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8aDIgZmQtdGl0bGUgY2xhc3M9XCJmZHAtc2V0dGluZ3MtZ2VuZXJhdG9yX190aXRsZVwiPlxuICAgIDxidXR0b24gKm5nSWY9XCJtb2JpbGVcIiBmZC1idXR0b24gZ2x5cGg9XCJtZW51MlwiIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgKGNsaWNrKT1cImdvQmFjay5lbWl0KClcIj48L2J1dHRvbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2V0dGluZ3M/LnRpdGxlIHwgZmRrQXN5bmNPclN5bmMgYXMgc2V0dGluZ3NUaXRsZTsgZWxzZSBsb2FkaW5nQmxvY2tcIj5cbiAgICAgICAge3sgc2V0dGluZ3NUaXRsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ0Jsb2NrPlxuICAgICAgICA8ZmQtc2tlbGV0b24gaGVpZ2h0PVwiNDBweFwiIHR5cGU9XCJyZWN0YW5nbGVcIiB3aWR0aD1cIjQwJVwiIHRleHRMaW5lcz1cIjFcIiBbc3R5bGUubWFyZ2luXT1cIidhdXRvIDAnXCI+PC9mZC1za2VsZXRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9oMj5cblxuPG5nLXRlbXBsYXRlICN0YWJiZWRMYXlvdXQ+XG4gICAgPGZkLXRhYi1saXN0IHNpemU9XCJzXCI+XG4gICAgICAgIDxmZC10YWIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIF9ncm91cHNcIiBbdGl0bGVdPVwiZ3JvdXAudGl0bGUgfCBmZGtBc3luY09yU3luY1wiPlxuICAgICAgICAgICAgPGZkcC1zZXR0aW5ncy1nZW5lcmF0b3Itc2VjdGlvblxuICAgICAgICAgICAgICAgIFtncm91cE5hbWVdPVwiJGFueShzZXR0aW5ncykuaWRcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJncm91cFwiXG4gICAgICAgICAgICA+PC9mZHAtc2V0dGluZ3MtZ2VuZXJhdG9yLXNlY3Rpb24+XG4gICAgICAgIDwvZmQtdGFiPlxuICAgIDwvZmQtdGFiLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvcm1MYXlvdXQ+XG4gICAgPGZkcC1zZXR0aW5ncy1nZW5lcmF0b3Itc2VjdGlvbiBbaXRlbXNdPVwic2V0dGluZ3MhXCI+PC9mZHAtc2V0dGluZ3MtZ2VuZXJhdG9yLXNlY3Rpb24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2NvbnRlbnRMYXlvdXQgPT09ICd0YWJzJyA/IHRhYmJlZExheW91dCA6IGZvcm1MYXlvdXRcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -215,11 +215,11 @@ export class SmartFilterBarConditionsDialogComponent {
|
|
|
215
215
|
];
|
|
216
216
|
}
|
|
217
217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SmartFilterBarConditionsDialogComponent, deps: [{ token: i1.DialogRef }, { token: FD_LANGUAGE }, { token: i0.ChangeDetectorRef }, { token: i2.SmartFilterBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SmartFilterBarConditionsDialogComponent, selector: "fdp-smart-filter-bar-conditions-dialog", viewQueries: [{ propertyName: "formGenerators", predicate: FormGeneratorComponent, descendants: true }], ngImport: i0, template: "<fd-dialog class=\"fdp-smart-filter-bar__conditions-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>{{ config.header }}</h4>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <form *ngIf=\"loaded; else loadingTpl\">\n <fd-layout-grid *ngFor=\"let condition of _formItems; let i = index\">\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol>\n <!-- wrapping \"formSubmitted\" event payload as any, because it's type is more generic than we're expecting -->\n <fdp-form-generator\n (formSubmitted)=\"_onFormSubmitted($any($event))\"\n [formItems]=\"condition\"\n [unifiedLayout]=\"false\"\n columnLayout=\"XL3-L3-M3-S3\"\n [noAdditionalContent]=\"true\"\n ></fdp-form-generator>\n </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" colGrow fdLayoutGridCol>\n <fdp-button\n (click)=\"removeCondition(i)\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformSmartFilterBar.defineConditionsRemoveConditionButtonTitle' | fdTranslate\"\n type=\"button\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol> </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" fdLayoutGridCol>\n <fdp-button\n (click)=\"addCondition()\"\n [label]=\"'platformSmartFilterBar.defineConditionsAddConditionButtonLabel' | fdTranslate\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n </form>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n (click)=\"applyConditions()\"\n fdType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.defineConditionsSubmitButtonLabel' | fdTranslate\"\n >\n </fd-button-bar>\n\n <fd-button-bar\n (click)=\"_cancel()\"\n fdType=\"transparent\"\n [label]=\"'platformSmartFilterBar.defineConditionsCancelButton' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div style
|
|
218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SmartFilterBarConditionsDialogComponent, selector: "fdp-smart-filter-bar-conditions-dialog", viewQueries: [{ propertyName: "formGenerators", predicate: FormGeneratorComponent, descendants: true }], ngImport: i0, template: "<fd-dialog class=\"fdp-smart-filter-bar__conditions-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>{{ config.header }}</h4>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <form *ngIf=\"loaded; else loadingTpl\">\n <fd-layout-grid *ngFor=\"let condition of _formItems; let i = index\">\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol>\n <!-- wrapping \"formSubmitted\" event payload as any, because it's type is more generic than we're expecting -->\n <fdp-form-generator\n (formSubmitted)=\"_onFormSubmitted($any($event))\"\n [formItems]=\"condition\"\n [unifiedLayout]=\"false\"\n columnLayout=\"XL3-L3-M3-S3\"\n [noAdditionalContent]=\"true\"\n ></fdp-form-generator>\n </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" colGrow fdLayoutGridCol>\n <fdp-button\n (click)=\"removeCondition(i)\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformSmartFilterBar.defineConditionsRemoveConditionButtonTitle' | fdTranslate\"\n type=\"button\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol> </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" fdLayoutGridCol>\n <fdp-button\n (click)=\"addCondition()\"\n [label]=\"'platformSmartFilterBar.defineConditionsAddConditionButtonLabel' | fdTranslate\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n </form>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n (click)=\"applyConditions()\"\n fdType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.defineConditionsSubmitButtonLabel' | fdTranslate\"\n >\n </fd-button-bar>\n\n <fd-button-bar\n (click)=\"_cancel()\"\n fdType=\"transparent\"\n [label]=\"'platformSmartFilterBar.defineConditionsCancelButton' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div [style.text-align]=\"'center'\" [style.margin.rem]=\"1\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.FormGeneratorComponent, selector: "fdp-form-generator", inputs: ["formName", "formItems", "mainTitle", "hideMainTItle", "hint", "columnLayout", "labelColumnLayout", "fieldColumnLayout", "gapColumnLayout", "unifiedLayout", "inlineColumnLayout", "noAdditionalContent"], outputs: ["formCreated", "formSubmitted", "formSubmittedStatus"] }, { kind: "component", type: i6.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i7.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i8.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i8.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i8.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i9.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: i10.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i11.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i11.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i11.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "pipe", type: i12.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
219
219
|
}
|
|
220
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SmartFilterBarConditionsDialogComponent, decorators: [{
|
|
221
221
|
type: Component,
|
|
222
|
-
args: [{ selector: 'fdp-smart-filter-bar-conditions-dialog', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog class=\"fdp-smart-filter-bar__conditions-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>{{ config.header }}</h4>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <form *ngIf=\"loaded; else loadingTpl\">\n <fd-layout-grid *ngFor=\"let condition of _formItems; let i = index\">\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol>\n <!-- wrapping \"formSubmitted\" event payload as any, because it's type is more generic than we're expecting -->\n <fdp-form-generator\n (formSubmitted)=\"_onFormSubmitted($any($event))\"\n [formItems]=\"condition\"\n [unifiedLayout]=\"false\"\n columnLayout=\"XL3-L3-M3-S3\"\n [noAdditionalContent]=\"true\"\n ></fdp-form-generator>\n </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" colGrow fdLayoutGridCol>\n <fdp-button\n (click)=\"removeCondition(i)\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformSmartFilterBar.defineConditionsRemoveConditionButtonTitle' | fdTranslate\"\n type=\"button\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol> </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" fdLayoutGridCol>\n <fdp-button\n (click)=\"addCondition()\"\n [label]=\"'platformSmartFilterBar.defineConditionsAddConditionButtonLabel' | fdTranslate\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n </form>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n (click)=\"applyConditions()\"\n fdType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.defineConditionsSubmitButtonLabel' | fdTranslate\"\n >\n </fd-button-bar>\n\n <fd-button-bar\n (click)=\"_cancel()\"\n fdType=\"transparent\"\n [label]=\"'platformSmartFilterBar.defineConditionsCancelButton' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div style
|
|
222
|
+
args: [{ selector: 'fdp-smart-filter-bar-conditions-dialog', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog class=\"fdp-smart-filter-bar__conditions-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>{{ config.header }}</h4>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <form *ngIf=\"loaded; else loadingTpl\">\n <fd-layout-grid *ngFor=\"let condition of _formItems; let i = index\">\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol>\n <!-- wrapping \"formSubmitted\" event payload as any, because it's type is more generic than we're expecting -->\n <fdp-form-generator\n (formSubmitted)=\"_onFormSubmitted($any($event))\"\n [formItems]=\"condition\"\n [unifiedLayout]=\"false\"\n columnLayout=\"XL3-L3-M3-S3\"\n [noAdditionalContent]=\"true\"\n ></fdp-form-generator>\n </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" colGrow fdLayoutGridCol>\n <fdp-button\n (click)=\"removeCondition(i)\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformSmartFilterBar.defineConditionsRemoveConditionButtonTitle' | fdTranslate\"\n type=\"button\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol> </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" fdLayoutGridCol>\n <fdp-button\n (click)=\"addCondition()\"\n [label]=\"'platformSmartFilterBar.defineConditionsAddConditionButtonLabel' | fdTranslate\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n </form>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n (click)=\"applyConditions()\"\n fdType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.defineConditionsSubmitButtonLabel' | fdTranslate\"\n >\n </fd-button-bar>\n\n <fd-button-bar\n (click)=\"_cancel()\"\n fdType=\"transparent\"\n [label]=\"'platformSmartFilterBar.defineConditionsCancelButton' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div [style.text-align]=\"'center'\" [style.margin.rem]=\"1\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\n" }]
|
|
223
223
|
}], ctorParameters: function () { return [{ type: i1.DialogRef }, { type: i13.Observable, decorators: [{
|
|
224
224
|
type: Inject,
|
|
225
225
|
args: [FD_LANGUAGE]
|
|
@@ -227,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
227
227
|
type: ViewChildren,
|
|
228
228
|
args: [FormGeneratorComponent]
|
|
229
229
|
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9ucy1kaWFsb2cvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9ucy1kaWFsb2cvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBcUIsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBdUMsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRbEQsTUFBTSxPQUFP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QUUsS0FBSztvQkFDYixNQUFNLEVBQUUsQ0FBQztvQkFDVCxhQUFhLEVBQUUsSUFBSTtpQkFDdEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOzhHQXhQUSx1Q0FBdUMsMkNBZ0RwQyxXQUFXO2tHQWhEZCx1Q0FBdUMsaUhBYWxDLHNCQUFzQixnREN4Q3hDLDJnR0F1RUE7OzJGRDVDYSx1Q0FBdUM7a0JBTm5ELFNBQVM7K0JBQ0ksd0NBQXdDLGlCQUVuQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFrRDFDLE1BQU07MkJBQUMsV0FBVztnSEFsQ3ZCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmlsdGVyQWxsU3RyYXRlZ3ksIEZJTFRFUl9TVFJBVEVHWSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUnO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sLCBEeW5hbWljRm9ybUl0ZW0sIEZvcm1HZW5lcmF0b3JDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJDb25kaXRpb24sIFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24nO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc21hcnQtZmlsdGVyLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFNlbGVjdEl0ZW1WYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc3RyYXRlZ3ktbGFiZWxzLnR5cGUnO1xuaW1wb3J0IHsgRmRMYW5ndWFnZSwgRkRfTEFOR1VBR0UsIFRyYW5zbGF0aW9uUmVzb2x2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRGaWx0ZXJCYXJDb25kaXRpb25zRGlhbG9nQ29tcG9uZW50IHtcbiAgICAvKiogQ29uZGl0aW9uIGJ1aWxkZXIgY29uZmlnLiAqL1xuICAgIGNvbmZpZzogU21hcnRGaWx0ZXJCYXJDb25kaXRpb25CdWlsZGVyO1xuXG4gICAgLyoqIEF2YWlsYWJsZSBjb25kaXRpb24gb3BlcmF0b3Igb3B0aW9ucy4gKi9cbiAgICBjb25kaXRpb25PcGVyYXRvck9wdGlvbnM6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9ybUl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZWQgY29uZGl0aW9uIGZvcm1zLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckNvbXBvbmVudClcbiAgICBmb3JtR2VuZXJhdG9ycyE6IFF1ZXJ5TGlzdDxGb3JtR2VuZXJhdG9yQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbG9hZGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbmRpdGlvbkxhYmVsS2V5czogU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyA9IHtcbiAgICAgICAgY29udGFpbnM6ICdmaWx0ZXJDb25kaXRpb25Db250YWlucycsXG4gICAgICAgIGVxdWFsVG86ICdmaWx0ZXJDb25kaXRpb25FcXVhbFRvJyxcbiAgICAgICAgYmV0d2VlbjogJ2ZpbHRlckNvbmRpdGlvbkJldHdlZW4nLFxuICAgICAgICBiZWdpbnNXaXRoOiAnZmlsdGVyQ29uZGl0aW9uQmVnaW5zV2l0aCcsXG4gICAgICAgIGVuZHNXaXRoOiAnZmlsdGVyQ29uZGl0aW9uRW5kc1dpdGgnLFxuICAgICAgICBsZXNzVGhhbjogJ2ZpbHRlckNvbmRpdGlvbkxlc3NUaGFuJyxcbiAgICAgICAgbGVzc1RoYW5PckVxdWFsVG86ICdmaWx0ZXJDb25kaXRpb25MZXNzVGhhbk9yRXF1YWxUbycsXG4gICAgICAgIGdyZWF0ZXJUaGFuOiAnZmlsdGVyQ29uZGl0aW9uR3JlYXRlclRoYW4nLFxuICAgICAgICBncmVhdGVyVGhhbk9yRXF1YWxUbzogJ2ZpbHRlckNvbmRpdGlvbkdyZWF0ZXJUaGFuT3JFcXVhbFRvJyxcbiAgICAgICAgYWZ0ZXI6ICdmaWx0ZXJDb25kaXRpb25BZnRlcicsXG4gICAgICAgIG9uT3JBZnRlcjogJ2ZpbHRlckNvbmRpdGlvbk9uT3JBZnRlcicsXG4gICAgICAgIGJlZm9yZTogJ2ZpbHRlckNvbmRpdGlvbkJlZm9yZScsXG4gICAgICAgIGJlZm9yZU9yT246ICdmaWx0ZXJDb25kaXRpb25CZWZvcmVPck9uJ1xuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1Ym1pdHRlZEZvcm1zOiBhbnlbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYW5ndWFnZTogRmRMYW5ndWFnZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRpb25SZXNvbHZlciA9IG5ldyBUcmFuc2xhdGlvblJlc29sdmVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dSZWY6IERpYWxvZ1JlZjxTbWFydEZpbHRlckJhckNvbmRpdGlvbkJ1aWxkZXIsIFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW10+LFxuICAgICAgICBASW5qZWN0KEZEX0xBTkdVQUdFKSBwcml2YXRlIHJlYWRvbmx5IF9sYW5ndWFnZSQ6IE9ic2VydmFibGU8RmRMYW5ndWFnZT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyQmFyU2VydmljZTogU21hcnRGaWx0ZXJCYXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2luaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5fZGlhbG9nUmVmLmRhdGE7XG5cbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl9sYW5ndWFnZSQpO1xuICAgICAgICB0aGlzLmNvbmRpdGlvbk9wZXJhdG9yT3B0aW9ucyA9IGF3YWl0IHRoaXMuX2dldEFwcGxpY2FibGVDb25kaXRpb25PcGVyYXRvcnMoKTtcblxuICAgICAgICB0aGlzLl9hZGRFeGlzdGluZ0NvbmRpdGlvbnMoZ2V0U2VsZWN0SXRlbVZhbHVlKHRoaXMuY29uZmlnLmNvbmRpdGlvbnMpKTtcblxuICAgICAgICBpZiAodGhpcy5jb25maWcuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIEFkZCBmaXJzdCBlbXB0eSBjb25kaXRpb25cbiAgICAgICAgICAgIHRoaXMuYWRkQ29uZGl0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBlbXB0eSBjb25kaXRpb24uXG4gICAgICovXG4gICAgYWRkQ29uZGl0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSXRlbXMucHVzaCh0aGlzLl9nZW5lcmF0ZUZvcm1HZW5lcmF0b3JJdGVtcygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGNvbmRpdGlvbiBhdCBkZWZpbmVkIGluZGV4XG4gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSBjb25kaXRpb24gaW4gdGhlIGFycmF5LlxuICAgICAqL1xuICAgIHJlbW92ZUNvbmRpdGlvbihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1JdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGlmICh0aGlzLl9mb3JtSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFkZENvbmRpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3VibWl0cyBhbGwgY29uZGl0aW9uIGZvcm1zLlxuICAgICAqL1xuICAgIGFwcGx5Q29uZGl0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fc3VibWl0dGVkRm9ybXMgPSBbXTtcbiAgICAgICAgdGhpcy5mb3JtR2VuZXJhdG9ycy50b0FycmF5KCkuZm9yRWFjaCgoZm9ybUdlbmVyYXRvcikgPT4gZm9ybUdlbmVyYXRvci5zdWJtaXQoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gZm9ybSBnZW5lcmF0b3IgZm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQuXG4gICAgICogV2lsbCBjbG9zZSBkaWFsb2cgaW4gY2FzZSBpZiBhbGwgZm9ybXMgYXJlIHZhbGlkLlxuICAgICAqIEBwYXJhbSBmb3JtIEZvcm0gZ2VuZXJhdG9yIGZvcm0gdmFsdWUuXG4gICAgICovXG4gICAgX29uRm9ybVN1Ym1pdHRlZChmb3JtOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJtaXR0ZWRGb3Jtcy5wdXNoKGZvcm0pO1xuXG4gICAgICAgIGlmICh0aGlzLl9zdWJtaXR0ZWRGb3Jtcy5sZW5ndGggIT09IHRoaXMuZm9ybUdlbmVyYXRvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3Jtc1Jlc3VsdCA9IHRoaXMuX3N1Ym1pdHRlZEZvcm1zLm1hcCgoZikgPT4ge1xuICAgICAgICAgICAgZi52YWx1ZSA9IGYudmFsdWUxICE9PSB1bmRlZmluZWQgPyBmLnZhbHVlMSA6IGYudmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gZjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKFxuICAgICAgICAgICAgZm9ybXNSZXN1bHQuZmlsdGVyKChjOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbikgPT4gYy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGMudmFsdWUgIT09IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXR1cm5zIGFwcGxpY2FibGUgY29uZGl0aW9uIG9wdGlvbnMgb2YgdGhlIGZpbHRlci5cbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBhcHBsaWNhYmxlIGNvbmRpdGlvbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEFwcGxpY2FibGVDb25kaXRpb25PcGVyYXRvcnMoKTogU2VsZWN0SXRlbVtdIHtcbiAgICAgICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UuZ2V0QXBwbGljYWJsZUZpbHRlckNvbmRpdGlvbnMoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGF0YVR5cGVcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBsYWJlbHNDb25maWcgPSB7IC4uLnRoaXMuX2NvbmRpdGlvbkxhYmVsS2V5cyB9O1xuICAgICAgICBmb3IgKGNvbnN0IHN0cmF0ZWd5SXRlbSBpbiBsYWJlbHNDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobGFiZWxzQ29uZmlnLCBzdHJhdGVneUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBsYWJlbHNDb25maWdbc3RyYXRlZ3lJdGVtXTtcbiAgICAgICAgICAgICAgICBsYWJlbHNDb25maWdbc3RyYXRlZ3lJdGVtXSA9IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLicgKyB0cmFuc2xhdGlvbktleVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kubWFwKChzOiBGaWx0ZXJBbGxTdHJhdGVneSkgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBsYWJlbHNDb25maWchW3NdLFxuICAgICAgICAgICAgdmFsdWU6IHNcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgZmlsdGVyIGNvbmRpdGlvbnMgaW50byBmb3JtIGdlbmVyYXRvciBmb3JtIGl0ZW1zIGFycmF5LlxuICAgICAqIEBwYXJhbSBjb25kaXRpb25zIGV4aXN0aW5nIHNtYXJ0IGZpbHRlciBiYXIgZmlsdGVyIGNvbmRpdGlvbnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfYWRkRXhpc3RpbmdDb25kaXRpb25zKGNvbmRpdGlvbnM6IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbkdyb3VwID0gdGhpcy5fZ2VuZXJhdGVGb3JtR2VuZXJhdG9ySXRlbXMoY29uZGl0aW9uKTtcblxuICAgICAgICAgICAgdGhpcy5fZm9ybUl0ZW1zLnB1c2goY29uZGl0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlRm9ybUdlbmVyYXRvckl0ZW1zKGNvbmRpdGlvbj86IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uKTogRHluYW1pY0Zvcm1JdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdvcGVyYXRvcicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBjb25kaXRpb25cbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNvbmRpdGlvbk9wZXJhdG9yT3B0aW9ucy5maW5kKChvKSA9PiBvLnZhbHVlID09PSBjb25kaXRpb24ub3BlcmF0b3IpPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuY29uZGl0aW9uT3BlcmF0b3JPcHRpb25zWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGNob2ljZXM6IHRoaXMuY29uZGl0aW9uT3BlcmF0b3JPcHRpb25zLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGd1aU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiAxLFxuICAgICAgICAgICAgICAgICAgICBub0xhYmVsTGF5b3V0OiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndmFsdWUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogY29uZGl0aW9uPy52YWx1ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbmZpZy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgICAgIGNob2ljZXM6IHRoaXMuY29uZmlnLmNob2ljZXMsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmZpbHRlckNvbmRpdGlvblZhbHVlUGxhY2Vob2xkZXInXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb25maWcuY29udHJvbFR5cGUsXG4gICAgICAgICAgICAgICAgd2hlbjogKHZhbHVlKSA9PiB2YWx1ZS5vcGVyYXRvciAhPT0gRklMVEVSX1NUUkFURUdZLkJFVFdFRU4sXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6ICh2YWx1ZSwgXywgY29udHJvbDogRHluYW1pY0Zvcm1Db250cm9sKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wucGFyZW50Py5nZXQoJ3ZhbHVlMScpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ3VpT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IDIsXG4gICAgICAgICAgICAgICAgICAgIG5vTGFiZWxMYXlvdXQ6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICd2YWx1ZTEnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICd2YWx1ZTEnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGNvbmRpdGlvbj8udmFsdWUsXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jb25maWcuZmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICBjaG9pY2VzOiB0aGlzLmNvbmZpZy5jaG9pY2VzLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLl90cmFuc2xhdGlvblJlc29sdmVyLnJlc29sdmUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1TbWFydEZpbHRlckJhci5maWx0ZXJDb25kaXRpb25WYWx1ZUZyb21QbGFjZWhvbGRlcidcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbmZpZy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgICAgICB3aGVuOiAodmFsdWUpID0+IHZhbHVlLm9wZXJhdG9yID09PSBGSUxURVJfU1RSQVRFR1kuQkVUV0VFTixcbiAgICAgICAgICAgICAgICBvbmNoYW5nZTogKHZhbHVlLCBfLCBjb250cm9sOiBEeW5hbWljRm9ybUNvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5wYXJlbnQ/LmdldCgndmFsdWUnKT8uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGd1aU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiAyLFxuICAgICAgICAgICAgICAgICAgICBub0xhYmVsTGF5b3V0OiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndmFsdWUyJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAndmFsdWUyJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBjb25kaXRpb24/LnZhbHVlMixcbiAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbmZpZy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgICAgIGNob2ljZXM6IHRoaXMuY29uZmlnLmNob2ljZXMsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmZpbHRlckNvbmRpdGlvblZhbHVlVG9QbGFjZWhvbGRlcidcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbmZpZy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgICAgICB3aGVuOiAodmFsdWUpID0+IHZhbHVlPy5vcGVyYXRvciA9PT0gRklMVEVSX1NUUkFURUdZLkJFVFdFRU4sXG4gICAgICAgICAgICAgICAgZ3VpT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IDMsXG4gICAgICAgICAgICAgICAgICAgIG5vTGFiZWxMYXlvdXQ6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPGZkLWRpYWxvZyBjbGFzcz1cImZkcC1zbWFydC1maWx0ZXItYmFyX19jb25kaXRpb25zLWRpYWxvZ1wiPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICA8aDQgW2hlYWRlclNpemVdPVwiNFwiIGZkLXRpdGxlPnt7IGNvbmZpZy5oZWFkZXIgfX08L2g0PlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmb3JtICpuZ0lmPVwibG9hZGVkOyBlbHNlIGxvYWRpbmdUcGxcIj5cbiAgICAgICAgICAgIDxmZC1sYXlvdXQtZ3JpZCAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIF9mb3JtSXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjb2xHcm93IGZkTGF5b3V0R3JpZENvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gd3JhcHBpbmcgXCJmb3JtU3VibWl0dGVkXCIgZXZlbnQgcGF5bG9hZCBhcyBhbnksIGJlY2F1c2UgaXQncyB0eXBlIGlzIG1vcmUgZ2VuZXJpYyB0aGFuIHdlJ3JlIGV4cGVjdGluZyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1nZW5lcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybVN1Ym1pdHRlZCk9XCJfb25Gb3JtU3VibWl0dGVkKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtSXRlbXNdPVwiY29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdW5pZmllZExheW91dF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0PVwiWEwzLUwzLU0zLVMzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9BZGRpdGlvbmFsQ29udGVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZHAtc21hcnQtZmlsdGVyLWJhcl9fYWN0aW9ucy1jb2x1bW5cIiBjb2xHcm93IGZkTGF5b3V0R3JpZENvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbmRpdGlvbihpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5kZWZpbmVDb25kaXRpb25zUmVtb3ZlQ29uZGl0aW9uQnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLWxheW91dC1ncmlkPlxuICAgICAgICAgICAgPGZkLWxheW91dC1ncmlkPlxuICAgICAgICAgICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkUm93PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNvbEdyb3cgZmRMYXlvdXRHcmlkQ29sPiZuYnNwOzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXNtYXJ0LWZpbHRlci1iYXJfX2FjdGlvbnMtY29sdW1uXCIgZmRMYXlvdXRHcmlkQ29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ29uZGl0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5kZWZpbmVDb25kaXRpb25zQWRkQ29uZGl0aW9uQnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLWxheW91dC1ncmlkPlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5Q29uZGl0aW9ucygpXCJcbiAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmRlZmluZUNvbmRpdGlvbnNTdWJtaXRCdXR0b25MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuXG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAoY2xpY2spPVwiX2NhbmNlbCgpXCJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5kZWZpbmVDb25kaXRpb25zQ2FuY2VsQnV0dG9uJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogMXJlbVwiPlxuICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwidHJ1ZVwiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9ucy1kaWFsb2cvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9ucy1kaWFsb2cvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBcUIsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBdUMsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRbEQsTUFBTSxPQUFP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QUUsS0FBSztvQkFDYixNQUFNLEVBQUUsQ0FBQztvQkFDVCxhQUFhLEVBQUUsSUFBSTtpQkFDdEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOzhHQXhQUSx1Q0FBdUMsMkNBZ0RwQyxXQUFXO2tHQWhEZCx1Q0FBdUMsaUhBYWxDLHNCQUFzQixnREN4Q3hDLHloR0F1RUE7OzJGRDVDYSx1Q0FBdUM7a0JBTm5ELFNBQVM7K0JBQ0ksd0NBQXdDLGlCQUVuQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFrRDFDLE1BQU07MkJBQUMsV0FBVztnSEFsQ3ZCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmlsdGVyQWxsU3RyYXRlZ3ksIEZJTFRFUl9TVFJBVEVHWSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUnO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sLCBEeW5hbWljRm9ybUl0ZW0sIEZvcm1HZW5lcmF0b3JDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJDb25kaXRpb24sIFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb24nO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc21hcnQtZmlsdGVyLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFNlbGVjdEl0ZW1WYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc3RyYXRlZ3ktbGFiZWxzLnR5cGUnO1xuaW1wb3J0IHsgRmRMYW5ndWFnZSwgRkRfTEFOR1VBR0UsIFRyYW5zbGF0aW9uUmVzb2x2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc21hcnQtZmlsdGVyLWJhci1jb25kaXRpb25zLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRGaWx0ZXJCYXJDb25kaXRpb25zRGlhbG9nQ29tcG9uZW50IHtcbiAgICAvKiogQ29uZGl0aW9uIGJ1aWxkZXIgY29uZmlnLiAqL1xuICAgIGNvbmZpZzogU21hcnRGaWx0ZXJCYXJDb25kaXRpb25CdWlsZGVyO1xuXG4gICAgLyoqIEF2YWlsYWJsZSBjb25kaXRpb24gb3BlcmF0b3Igb3B0aW9ucy4gKi9cbiAgICBjb25kaXRpb25PcGVyYXRvck9wdGlvbnM6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9ybUl0ZW1zOiBEeW5hbWljRm9ybUl0ZW1bXVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZWQgY29uZGl0aW9uIGZvcm1zLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckNvbXBvbmVudClcbiAgICBmb3JtR2VuZXJhdG9ycyE6IFF1ZXJ5TGlzdDxGb3JtR2VuZXJhdG9yQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbG9hZGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbmRpdGlvbkxhYmVsS2V5czogU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyA9IHtcbiAgICAgICAgY29udGFpbnM6ICdmaWx0ZXJDb25kaXRpb25Db250YWlucycsXG4gICAgICAgIGVxdWFsVG86ICdmaWx0ZXJDb25kaXRpb25FcXVhbFRvJyxcbiAgICAgICAgYmV0d2VlbjogJ2ZpbHRlckNvbmRpdGlvbkJldHdlZW4nLFxuICAgICAgICBiZWdpbnNXaXRoOiAnZmlsdGVyQ29uZGl0aW9uQmVnaW5zV2l0aCcsXG4gICAgICAgIGVuZHNXaXRoOiAnZmlsdGVyQ29uZGl0aW9uRW5kc1dpdGgnLFxuICAgICAgICBsZXNzVGhhbjogJ2ZpbHRlckNvbmRpdGlvbkxlc3NUaGFuJyxcbiAgICAgICAgbGVzc1RoYW5PckVxdWFsVG86ICdmaWx0ZXJDb25kaXRpb25MZXNzVGhhbk9yRXF1YWxUbycsXG4gICAgICAgIGdyZWF0ZXJUaGFuOiAnZmlsdGVyQ29uZGl0aW9uR3JlYXRlclRoYW4nLFxuICAgICAgICBncmVhdGVyVGhhbk9yRXF1YWxUbzogJ2ZpbHRlckNvbmRpdGlvbkdyZWF0ZXJUaGFuT3JFcXVhbFRvJyxcbiAgICAgICAgYWZ0ZXI6ICdmaWx0ZXJDb25kaXRpb25BZnRlcicsXG4gICAgICAgIG9uT3JBZnRlcjogJ2ZpbHRlckNvbmRpdGlvbk9uT3JBZnRlcicsXG4gICAgICAgIGJlZm9yZTogJ2ZpbHRlckNvbmRpdGlvbkJlZm9yZScsXG4gICAgICAgIGJlZm9yZU9yT246ICdmaWx0ZXJDb25kaXRpb25CZWZvcmVPck9uJ1xuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1Ym1pdHRlZEZvcm1zOiBhbnlbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYW5ndWFnZTogRmRMYW5ndWFnZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRpb25SZXNvbHZlciA9IG5ldyBUcmFuc2xhdGlvblJlc29sdmVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dSZWY6IERpYWxvZ1JlZjxTbWFydEZpbHRlckJhckNvbmRpdGlvbkJ1aWxkZXIsIFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW10+LFxuICAgICAgICBASW5qZWN0KEZEX0xBTkdVQUdFKSBwcml2YXRlIHJlYWRvbmx5IF9sYW5ndWFnZSQ6IE9ic2VydmFibGU8RmRMYW5ndWFnZT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyQmFyU2VydmljZTogU21hcnRGaWx0ZXJCYXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2luaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5fZGlhbG9nUmVmLmRhdGE7XG5cbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl9sYW5ndWFnZSQpO1xuICAgICAgICB0aGlzLmNvbmRpdGlvbk9wZXJhdG9yT3B0aW9ucyA9IGF3YWl0IHRoaXMuX2dldEFwcGxpY2FibGVDb25kaXRpb25PcGVyYXRvcnMoKTtcblxuICAgICAgICB0aGlzLl9hZGRFeGlzdGluZ0NvbmRpdGlvbnMoZ2V0U2VsZWN0SXRlbVZhbHVlKHRoaXMuY29uZmlnLmNvbmRpdGlvbnMpKTtcblxuICAgICAgICBpZiAodGhpcy5jb25maWcuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIEFkZCBmaXJzdCBlbXB0eSBjb25kaXRpb25cbiAgICAgICAgICAgIHRoaXMuYWRkQ29uZGl0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBlbXB0eSBjb25kaXRpb24uXG4gICAgICovXG4gICAgYWRkQ29uZGl0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSXRlbXMucHVzaCh0aGlzLl9nZW5lcmF0ZUZvcm1HZW5lcmF0b3JJdGVtcygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGNvbmRpdGlvbiBhdCBkZWZpbmVkIGluZGV4XG4gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSBjb25kaXRpb24gaW4gdGhlIGFycmF5LlxuICAgICAqL1xuICAgIHJlbW92ZUNvbmRpdGlvbihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1JdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGlmICh0aGlzLl9mb3JtSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFkZENvbmRpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3VibWl0cyBhbGwgY29uZGl0aW9uIGZvcm1zLlxuICAgICAqL1xuICAgIGFwcGx5Q29uZGl0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fc3VibWl0dGVkRm9ybXMgPSBbXTtcbiAgICAgICAgdGhpcy5mb3JtR2VuZXJhdG9ycy50b0FycmF5KCkuZm9yRWFjaCgoZm9ybUdlbmVyYXRvcikgPT4gZm9ybUdlbmVyYXRvci5zdWJtaXQoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gZm9ybSBnZW5lcmF0b3IgZm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQuXG4gICAgICogV2lsbCBjbG9zZSBkaWFsb2cgaW4gY2FzZSBpZiBhbGwgZm9ybXMgYXJlIHZhbGlkLlxuICAgICAqIEBwYXJhbSBmb3JtIEZvcm0gZ2VuZXJhdG9yIGZvcm0gdmFsdWUuXG4gICAgICovXG4gICAgX29uRm9ybVN1Ym1pdHRlZChmb3JtOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJtaXR0ZWRGb3Jtcy5wdXNoKGZvcm0pO1xuXG4gICAgICAgIGlmICh0aGlzLl9zdWJtaXR0ZWRGb3Jtcy5sZW5ndGggIT09IHRoaXMuZm9ybUdlbmVyYXRvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3Jtc1Jlc3VsdCA9IHRoaXMuX3N1Ym1pdHRlZEZvcm1zLm1hcCgoZikgPT4ge1xuICAgICAgICAgICAgZi52YWx1ZSA9IGYudmFsdWUxICE9PSB1bmRlZmluZWQgPyBmLnZhbHVlMSA6IGYudmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gZjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKFxuICAgICAgICAgICAgZm9ybXNSZXN1bHQuZmlsdGVyKChjOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbikgPT4gYy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGMudmFsdWUgIT09IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXR1cm5zIGFwcGxpY2FibGUgY29uZGl0aW9uIG9wdGlvbnMgb2YgdGhlIGZpbHRlci5cbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBhcHBsaWNhYmxlIGNvbmRpdGlvbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEFwcGxpY2FibGVDb25kaXRpb25PcGVyYXRvcnMoKTogU2VsZWN0SXRlbVtdIHtcbiAgICAgICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UuZ2V0QXBwbGljYWJsZUZpbHRlckNvbmRpdGlvbnMoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGF0YVR5cGVcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBsYWJlbHNDb25maWcgPSB7IC4uLnRoaXMuX2NvbmRpdGlvbkxhYmVsS2V5cyB9O1xuICAgICAgICBmb3IgKGNvbnN0IHN0cmF0ZWd5SXRlbSBpbiBsYWJlbHNDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobGFiZWxzQ29uZmlnLCBzdHJhdGVneUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBsYWJlbHNDb25maWdbc3RyYXRlZ3lJdGVtXTtcbiAgICAgICAgICAgICAgICBsYWJlbHNDb25maWdbc3RyYXRlZ3lJdGVtXSA9IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLicgKyB0cmFuc2xhdGlvbktleVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kubWFwKChzOiBGaWx0ZXJBbGxTdHJhdGVneSkgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBsYWJlbHNDb25maWchW3NdLFxuICAgICAgICAgICAgdmFsdWU6IHNcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgZmlsdGVyIGNvbmRpdGlvbnMgaW50byBmb3JtIGdlbmVyYXRvciBmb3JtIGl0ZW1zIGFycmF5LlxuICAgICAqIEBwYXJhbSBjb25kaXRpb25zIGV4aXN0aW5nIHNtYXJ0IGZpbHRlciBiYXIgZmlsdGVyIGNvbmRpdGlvbnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfYWRkRXhpc3RpbmdDb25kaXRpb25zKGNvbmRpdGlvbnM6IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbkdyb3VwID0gdGhpcy5fZ2VuZXJhdGVGb3JtR2VuZXJhdG9ySXRlbXMoY29uZGl0aW9uKTtcblxuICAgICAgICAgICAgdGhpcy5fZm9ybUl0ZW1zLnB1c2goY29uZGl0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlRm9ybUdlbmVyYXRvckl0ZW1zKGNvbmRpdGlvbj86IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uKTogRHluYW1pY0Zvcm1JdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdvcGVyYXRvcicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBjb25kaXRpb25cbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNvbmRpdGlvbk9wZXJhdG9yT3B0aW9ucy5maW5kKChvKSA9PiBvLnZhbHVlID09PSBjb25kaXRpb24ub3BlcmF0b3IpPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuY29uZGl0aW9uT3BlcmF0b3JPcHRpb25zWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGNob2ljZXM6IHRoaXMuY29uZGl0aW9uT3BlcmF0b3JPcHRpb25zLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGd1aU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiAxLFxuICAgICAgICAgICAgICAgICAgICBub0xhYmVsTGF5b3V0OiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndmFsdWUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogY29uZGl0aW9uPy52YWx1ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbmZpZy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgICAgIGNob2ljZXM6IHRoaXMuY29uZmlnLmNob2ljZXMsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmZpbHRlckNvbmRpdGlvblZhbHVlUGxhY2Vob2xkZXInXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb25maWcuY29udHJvbFR5cGUsXG4gICAgICAgICAgICAgICAgd2hlbjogKHZhbHVlKSA9PiB2YWx1ZS5vcGVyYXRvciAhPT0gRklMVEVSX1NUUkFURUdZLkJFVFdFRU4sXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6ICh2YWx1ZSwgXywgY29udHJvbDogRHluYW1pY0Zvcm1Db250cm9sKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wucGFyZW50Py5nZXQoJ3ZhbHVlMScpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ3VpT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IDIsXG4gICAgICAgICAgICAgICAgICAgIG5vTGFiZWxMYXlvdXQ6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICd2YWx1ZTEnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICd2YWx1ZTEnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGNvbmRpdGlvbj8udmFsdWUsXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5jb25maWcuZmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICBjaG9pY2VzOiB0aGlzLmNvbmZpZy5jaG9pY2VzLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLl90cmFuc2xhdGlvblJlc29sdmVyLnJlc29sdmUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1TbWFydEZpbHRlckJhci5maWx0ZXJDb25kaXRpb25WYWx1ZUZyb21QbGFjZWhvbGRlcidcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbmZpZy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgICAgICB3aGVuOiAodmFsdWUpID0+IHZhbHVlLm9wZXJhdG9yID09PSBGSUxURVJfU1RSQVRFR1kuQkVUV0VFTixcbiAgICAgICAgICAgICAgICBvbmNoYW5nZTogKHZhbHVlLCBfLCBjb250cm9sOiBEeW5hbWljRm9ybUNvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5wYXJlbnQ/LmdldCgndmFsdWUnKT8uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGd1aU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiAyLFxuICAgICAgICAgICAgICAgICAgICBub0xhYmVsTGF5b3V0OiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndmFsdWUyJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAndmFsdWUyJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBjb25kaXRpb24/LnZhbHVlMixcbiAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLmNvbmZpZy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgICAgIGNob2ljZXM6IHRoaXMuY29uZmlnLmNob2ljZXMsXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmZpbHRlckNvbmRpdGlvblZhbHVlVG9QbGFjZWhvbGRlcidcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbmZpZy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgICAgICB3aGVuOiAodmFsdWUpID0+IHZhbHVlPy5vcGVyYXRvciA9PT0gRklMVEVSX1NUUkFURUdZLkJFVFdFRU4sXG4gICAgICAgICAgICAgICAgZ3VpT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IDMsXG4gICAgICAgICAgICAgICAgICAgIG5vTGFiZWxMYXlvdXQ6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPGZkLWRpYWxvZyBjbGFzcz1cImZkcC1zbWFydC1maWx0ZXItYmFyX19jb25kaXRpb25zLWRpYWxvZ1wiPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICA8aDQgW2hlYWRlclNpemVdPVwiNFwiIGZkLXRpdGxlPnt7IGNvbmZpZy5oZWFkZXIgfX08L2g0PlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmb3JtICpuZ0lmPVwibG9hZGVkOyBlbHNlIGxvYWRpbmdUcGxcIj5cbiAgICAgICAgICAgIDxmZC1sYXlvdXQtZ3JpZCAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIF9mb3JtSXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjb2xHcm93IGZkTGF5b3V0R3JpZENvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gd3JhcHBpbmcgXCJmb3JtU3VibWl0dGVkXCIgZXZlbnQgcGF5bG9hZCBhcyBhbnksIGJlY2F1c2UgaXQncyB0eXBlIGlzIG1vcmUgZ2VuZXJpYyB0aGFuIHdlJ3JlIGV4cGVjdGluZyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtZm9ybS1nZW5lcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybVN1Ym1pdHRlZCk9XCJfb25Gb3JtU3VibWl0dGVkKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtSXRlbXNdPVwiY29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdW5pZmllZExheW91dF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uTGF5b3V0PVwiWEwzLUwzLU0zLVMzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9BZGRpdGlvbmFsQ29udGVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZHAtc21hcnQtZmlsdGVyLWJhcl9fYWN0aW9ucy1jb2x1bW5cIiBjb2xHcm93IGZkTGF5b3V0R3JpZENvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbmRpdGlvbihpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5kZWZpbmVDb25kaXRpb25zUmVtb3ZlQ29uZGl0aW9uQnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLWxheW91dC1ncmlkPlxuICAgICAgICAgICAgPGZkLWxheW91dC1ncmlkPlxuICAgICAgICAgICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkUm93PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNvbEdyb3cgZmRMYXlvdXRHcmlkQ29sPiZuYnNwOzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXNtYXJ0LWZpbHRlci1iYXJfX2FjdGlvbnMtY29sdW1uXCIgZmRMYXlvdXRHcmlkQ29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ29uZGl0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5kZWZpbmVDb25kaXRpb25zQWRkQ29uZGl0aW9uQnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ZkLWxheW91dC1ncmlkPlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5Q29uZGl0aW9ucygpXCJcbiAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmRlZmluZUNvbmRpdGlvbnNTdWJtaXRCdXR0b25MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuXG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAoY2xpY2spPVwiX2NhbmNlbCgpXCJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5kZWZpbmVDb25kaXRpb25zQ2FuY2VsQnV0dG9uJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgIDxkaXYgW3N0eWxlLnRleHQtYWxpZ25dPVwiJ2NlbnRlcidcIiBbc3R5bGUubWFyZ2luLnJlbV09XCIxXCI+XG4gICAgICAgIDxmZC1idXN5LWluZGljYXRvciBbbG9hZGluZ109XCJ0cnVlXCI+PC9mZC1idXN5LWluZGljYXRvcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|