@c8y/ngx-components 1018.0.74 → 1018.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/context-dashboard/context-dashboard.component.mjs +3 -3
- package/esm2020/context-dashboard/widget-config.component.mjs +3 -3
- package/esm2020/core/dashboard/widgets-dashboard.component.mjs +3 -3
- package/esm2020/core/help/help.component.mjs +3 -3
- package/esm2020/widgets/implementations/device-management-welcome/welcome.component.mjs +3 -3
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +4 -4
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +2 -2
- package/fesm2015/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +4 -4
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +4 -4
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +2 -2
- package/fesm2020/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +4 -4
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -130,7 +130,7 @@ export class WidgetsDashboardComponent {
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
WidgetsDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetsDashboardComponent, deps: [{ token: i1.DynamicComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
-
WidgetsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: { widgets: "widgets", context: "context", contextDashboard: "contextDashboard", _settings: ["settings", "_settings"], breadcrumb: "breadcrumb" }, outputs: { onAddWidget: "onAddWidget", onEditWidget: "onEditWidget", onDeleteWidget: "onDeleteWidget", onChangeDashboard: "onChangeDashboard", onEditDashboard: "onEditDashboard", onCopyDashboard: "onCopyDashboard", onDeleteDashboard: "onDeleteDashboard", onFreeze: "onFreeze", onChangeStart: "onChangeStart", onChangeEnd: "onChangeEnd" }, host: { styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, providers: [WidgetsDashboardEventService], ngImport: i0, template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!!breadcrumb\">\n <c8y-breadcrumb-item\n [icon]=\"breadcrumb.icon\"\n [label]=\"breadcrumb.label\"\n [path]=\"breadcrumb.path\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button\n title=\"{{ 'Full screen' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i>\n {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'more'\" [priority]=\"-2000\" *ngIf=\"settings.canCopy\">\n <button title=\"{{ 'Copy dashboard' | translate }}\" type=\"button\" (click)=\"onCopyDashboard.emit()\" class=\"btn btn-link\">\n <i c8yIcon=\"clone\"></i>\n <span class=\"m-l-4\" translate>Copy dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button\n title=\"{{ 'Delete dashboard' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<ng-template #loadingIndicator>\n <c8y-loading class=\"col-xs-12 text-center\" *ngIf=\"isLoadingWidgets$ | async\"></c8y-loading>\n</ng-template>\n\n<ng-container *ngIf=\"!(isLoadingWidgets$ | async); else loadingIndicator\">\n <ng-container *ngIf=\"resolvedWidgets$ | async as widgetsToDisplay\">\n <!-- empty state -->\n <c8y-ui-empty-state\n *ngIf=\"widgetsToDisplay?.length === 0\"\n [icon]=\"'c8y-device'\"\n [title]=\"'No widgets to display.' | translate\"\n >\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary m-t-16\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n </div>\n </c8y-ui-empty-state>\n\n <c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n >\n <c8y-dashboard-child\n *ngFor=\"let widget of widgetsToDisplay\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span \n data-cy=\"c8y-dashboard-list--device-widget\"\n *ngIf=\"settings.translateWidgetTitle\">\n {{ widget.title | translate }}\n </span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button\n title=\"{{ 'Edit widget' | translate }}\"\n type=\"button\"\n (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"pencil\"></i>\n <span class=\"m-l-4\" translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n title=\"{{ 'Remove widget' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n\n <c8y-widget-time-context\n *ngIf=\"\n widget.config?.displaySettings?.globalTimeContext &&\n widget.config.widgetInstanceGlobalTimeContext\n \"\n (dateContextChange)=\"updateWidgetConfig({ date: $event }, widget)\"\n [canDecouple]=\"widget.config.canDecoupleGlobalTimeContext\"\n ></c8y-widget-time-context>\n\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n (updateWidgetClasses)=\"updateWidgetClasses(widget, $event)\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n </c8y-dashboard>\n </ng-container>\n</ng-container>\n\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.LoadingComponent, selector: "c8y-loading" }, { kind: "component", type: i7.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: i8.DynamicComponentComponent, selector: "c8y-dynamic-component", inputs: ["componentId", "config", "mode", "notFoundError", "executeResolvers"], outputs: ["updateWidgetClasses"] }, { kind: "component", type: i9.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i10.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i11.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i12.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i13.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i14.DashboardChildComponent, selector: "c8y-dashboard-child", inputs: ["x", "y", "width", "height", "data", "margin", "isFrozen", "useIntersection", "class"], outputs: ["changeStart", "changeEnd"] }, { kind: "component", type: i15.DashboardComponent, selector: "c8y-dashboard", inputs: ["columns", "gap", "rows"], outputs: ["dashboardChange"] }, { kind: "component", type: i16.DashboardChildTitleComponent, selector: "c8y-dashboard-child-title" }, { kind: "component", type: i17.DashboardChildActionComponent, selector: "c8y-dashboard-child-action" }, { kind: "component", type: i18.WidgetTimeContextComponent, selector: "c8y-widget-time-context", inputs: ["canDecouple"], outputs: ["dateContextChange"] }, { kind: "pipe", type: i19.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
133
|
+
WidgetsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: { widgets: "widgets", context: "context", contextDashboard: "contextDashboard", _settings: ["settings", "_settings"], breadcrumb: "breadcrumb" }, outputs: { onAddWidget: "onAddWidget", onEditWidget: "onEditWidget", onDeleteWidget: "onDeleteWidget", onChangeDashboard: "onChangeDashboard", onEditDashboard: "onEditDashboard", onCopyDashboard: "onCopyDashboard", onDeleteDashboard: "onDeleteDashboard", onFreeze: "onFreeze", onChangeStart: "onChangeStart", onChangeEnd: "onChangeEnd" }, host: { styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, providers: [WidgetsDashboardEventService], ngImport: i0, template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!!breadcrumb\">\n <c8y-breadcrumb-item\n [icon]=\"breadcrumb.icon\"\n [label]=\"breadcrumb.label\"\n [path]=\"breadcrumb.path\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n data-cy=\"widget-dashboard--Add-widget\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n data-cy=\"widgets-dashboard--edit-widget\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button\n title=\"{{ 'Full screen' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i>\n {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n data-cy=\"widgets-dashboard--button-lock-toggle\"\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'more'\" [priority]=\"-2000\" *ngIf=\"settings.canCopy\">\n <button title=\"{{ 'Copy dashboard' | translate }}\" type=\"button\" (click)=\"onCopyDashboard.emit()\" class=\"btn btn-link\">\n <i c8yIcon=\"clone\"></i>\n <span class=\"m-l-4\" translate>Copy dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button\n title=\"{{ 'Delete dashboard' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<ng-template #loadingIndicator>\n <c8y-loading class=\"col-xs-12 text-center\" *ngIf=\"isLoadingWidgets$ | async\"></c8y-loading>\n</ng-template>\n\n<ng-container *ngIf=\"!(isLoadingWidgets$ | async); else loadingIndicator\">\n <ng-container *ngIf=\"resolvedWidgets$ | async as widgetsToDisplay\">\n <!-- empty state -->\n <c8y-ui-empty-state\n *ngIf=\"widgetsToDisplay?.length === 0\"\n [icon]=\"'c8y-device'\"\n [title]=\"'No widgets to display.' | translate\"\n >\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary m-t-16\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n </div>\n </c8y-ui-empty-state>\n\n <c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n >\n <c8y-dashboard-child\n *ngFor=\"let widget of widgetsToDisplay\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span \n data-cy=\"c8y-dashboard-list--device-widget\"\n *ngIf=\"settings.translateWidgetTitle\">\n {{ widget.title | translate }}\n </span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button\n title=\"{{ 'Edit widget' | translate }}\"\n type=\"button\"\n (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"pencil\"></i>\n <span class=\"m-l-4\" translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n title=\"{{ 'Remove widget' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n\n <c8y-widget-time-context\n *ngIf=\"\n widget.config?.displaySettings?.globalTimeContext &&\n widget.config.widgetInstanceGlobalTimeContext\n \"\n (dateContextChange)=\"updateWidgetConfig({ date: $event }, widget)\"\n [canDecouple]=\"widget.config.canDecoupleGlobalTimeContext\"\n ></c8y-widget-time-context>\n\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n (updateWidgetClasses)=\"updateWidgetClasses(widget, $event)\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n </c8y-dashboard>\n </ng-container>\n</ng-container>\n\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.LoadingComponent, selector: "c8y-loading" }, { kind: "component", type: i7.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: i8.DynamicComponentComponent, selector: "c8y-dynamic-component", inputs: ["componentId", "config", "mode", "notFoundError", "executeResolvers"], outputs: ["updateWidgetClasses"] }, { kind: "component", type: i9.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i10.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i11.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i12.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i13.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i14.DashboardChildComponent, selector: "c8y-dashboard-child", inputs: ["x", "y", "width", "height", "data", "margin", "isFrozen", "useIntersection", "class"], outputs: ["changeStart", "changeEnd"] }, { kind: "component", type: i15.DashboardComponent, selector: "c8y-dashboard", inputs: ["columns", "gap", "rows"], outputs: ["dashboardChange"] }, { kind: "component", type: i16.DashboardChildTitleComponent, selector: "c8y-dashboard-child-title" }, { kind: "component", type: i17.DashboardChildActionComponent, selector: "c8y-dashboard-child-action" }, { kind: "component", type: i18.WidgetTimeContextComponent, selector: "c8y-widget-time-context", inputs: ["canDecouple"], outputs: ["dateContextChange"] }, { kind: "pipe", type: i19.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetsDashboardComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
136
|
args: [{ selector: 'c8y-widgets-dashboard', host: {
|
|
@@ -138,7 +138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
138
138
|
display: block;
|
|
139
139
|
`,
|
|
140
140
|
class: 'dashboard c8y-grid-dashboard'
|
|
141
|
-
}, providers: [WidgetsDashboardEventService], template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!!breadcrumb\">\n <c8y-breadcrumb-item\n [icon]=\"breadcrumb.icon\"\n [label]=\"breadcrumb.label\"\n [path]=\"breadcrumb.path\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button\n title=\"{{ 'Full screen' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i>\n {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'more'\" [priority]=\"-2000\" *ngIf=\"settings.canCopy\">\n <button title=\"{{ 'Copy dashboard' | translate }}\" type=\"button\" (click)=\"onCopyDashboard.emit()\" class=\"btn btn-link\">\n <i c8yIcon=\"clone\"></i>\n <span class=\"m-l-4\" translate>Copy dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button\n title=\"{{ 'Delete dashboard' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<ng-template #loadingIndicator>\n <c8y-loading class=\"col-xs-12 text-center\" *ngIf=\"isLoadingWidgets$ | async\"></c8y-loading>\n</ng-template>\n\n<ng-container *ngIf=\"!(isLoadingWidgets$ | async); else loadingIndicator\">\n <ng-container *ngIf=\"resolvedWidgets$ | async as widgetsToDisplay\">\n <!-- empty state -->\n <c8y-ui-empty-state\n *ngIf=\"widgetsToDisplay?.length === 0\"\n [icon]=\"'c8y-device'\"\n [title]=\"'No widgets to display.' | translate\"\n >\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary m-t-16\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n </div>\n </c8y-ui-empty-state>\n\n <c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n >\n <c8y-dashboard-child\n *ngFor=\"let widget of widgetsToDisplay\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span \n data-cy=\"c8y-dashboard-list--device-widget\"\n *ngIf=\"settings.translateWidgetTitle\">\n {{ widget.title | translate }}\n </span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button\n title=\"{{ 'Edit widget' | translate }}\"\n type=\"button\"\n (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"pencil\"></i>\n <span class=\"m-l-4\" translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n title=\"{{ 'Remove widget' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n\n <c8y-widget-time-context\n *ngIf=\"\n widget.config?.displaySettings?.globalTimeContext &&\n widget.config.widgetInstanceGlobalTimeContext\n \"\n (dateContextChange)=\"updateWidgetConfig({ date: $event }, widget)\"\n [canDecouple]=\"widget.config.canDecoupleGlobalTimeContext\"\n ></c8y-widget-time-context>\n\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n (updateWidgetClasses)=\"updateWidgetClasses(widget, $event)\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n </c8y-dashboard>\n </ng-container>\n</ng-container>\n\n" }]
|
|
141
|
+
}, providers: [WidgetsDashboardEventService], template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!!breadcrumb\">\n <c8y-breadcrumb-item\n [icon]=\"breadcrumb.icon\"\n [label]=\"breadcrumb.label\"\n [path]=\"breadcrumb.path\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n data-cy=\"widget-dashboard--Add-widget\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n data-cy=\"widgets-dashboard--edit-widget\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button\n title=\"{{ 'Full screen' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i>\n {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n data-cy=\"widgets-dashboard--button-lock-toggle\"\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'more'\" [priority]=\"-2000\" *ngIf=\"settings.canCopy\">\n <button title=\"{{ 'Copy dashboard' | translate }}\" type=\"button\" (click)=\"onCopyDashboard.emit()\" class=\"btn btn-link\">\n <i c8yIcon=\"clone\"></i>\n <span class=\"m-l-4\" translate>Copy dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button\n title=\"{{ 'Delete dashboard' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<ng-template #loadingIndicator>\n <c8y-loading class=\"col-xs-12 text-center\" *ngIf=\"isLoadingWidgets$ | async\"></c8y-loading>\n</ng-template>\n\n<ng-container *ngIf=\"!(isLoadingWidgets$ | async); else loadingIndicator\">\n <ng-container *ngIf=\"resolvedWidgets$ | async as widgetsToDisplay\">\n <!-- empty state -->\n <c8y-ui-empty-state\n *ngIf=\"widgetsToDisplay?.length === 0\"\n [icon]=\"'c8y-device'\"\n [title]=\"'No widgets to display.' | translate\"\n >\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary m-t-16\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n </div>\n </c8y-ui-empty-state>\n\n <c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n >\n <c8y-dashboard-child\n *ngFor=\"let widget of widgetsToDisplay\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span \n data-cy=\"c8y-dashboard-list--device-widget\"\n *ngIf=\"settings.translateWidgetTitle\">\n {{ widget.title | translate }}\n </span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button\n title=\"{{ 'Edit widget' | translate }}\"\n type=\"button\"\n (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"pencil\"></i>\n <span class=\"m-l-4\" translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n title=\"{{ 'Remove widget' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n\n <c8y-widget-time-context\n *ngIf=\"\n widget.config?.displaySettings?.globalTimeContext &&\n widget.config.widgetInstanceGlobalTimeContext\n \"\n (dateContextChange)=\"updateWidgetConfig({ date: $event }, widget)\"\n [canDecouple]=\"widget.config.canDecoupleGlobalTimeContext\"\n ></c8y-widget-time-context>\n\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n (updateWidgetClasses)=\"updateWidgetClasses(widget, $event)\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n </c8y-dashboard>\n </ng-container>\n</ng-container>\n\n" }]
|
|
142
142
|
}], ctorParameters: function () { return [{ type: i1.DynamicComponentService }]; }, propDecorators: { widgets: [{
|
|
143
143
|
type: Input
|
|
144
144
|
}], context: [{
|
|
@@ -171,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
171
171
|
}], onChangeEnd: [{
|
|
172
172
|
type: Output
|
|
173
173
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYWpGLE1BQU0sT0FBTyx5QkFBeUI7SUE0RXBDLFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBOURwRCxxQkFBZ0IsR0FBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQVcvQyxhQUFRLEdBQXNCO1lBQzVCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixhQUFhLEVBQUUsQ0FBQztZQUNoQixZQUFZLEVBQUUsQ0FBQztZQUNmLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixT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O2dCQUlGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxVQUFVO2dCQU9qQixVQUFVO3NCQURULEtBQUs7Z0JBaUJOLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU07Z0JBSVAsY0FBYztzQkFEYixNQUFNO2dCQUlQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFJUCxlQUFlO3NCQURkLE1BQU07Z0JBSVAsZUFBZTtzQkFEZCxNQUFNO2dCQUlQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNO2dCQUlQLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbSB9IGZyb20gJy4uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5tb2RlbCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hhbmdlLCBEYXNoYm9hcmRTZXR0aW5ncywgV2lkZ2V0LCBXaWRnZXRDaGFuZ2UgfSBmcm9tICcuL2Rhc2hib2FyZC5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFdpZGdldHNEYXNoYm9hcmRFdmVudFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMtZGFzaGJvYXJkLWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktd2lkZ2V0cy1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgc3R5bGU6IGBcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGAsXG4gICAgY2xhc3M6ICdkYXNoYm9hcmQgYzh5LWdyaWQtZGFzaGJvYXJkJ1xuICB9LFxuICBwcm92aWRlcnM6IFtXaWRnZXRzRGFzaGJvYXJkRXZlbnRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRzRGFzaGJvYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2V0IHdpZGdldHModmFsdWU6IFdpZGdldFtdKSB7XG4gICAgdGhpcy5fd2lkZ2V0cy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCB3aWRnZXRzKCk6IFdpZGdldFtdIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0cy52YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IGFueTtcblxuICBASW5wdXQoKVxuICBjb250ZXh0RGFzaGJvYXJkOiBhbnkgPSB7IHVwZGF0ZVRhcmdldDogdHJ1ZSB9O1xuXG4gIEBJbnB1dCgnc2V0dGluZ3MnKVxuICBzZXQgX3NldHRpbmdzKHNldHRpbmdzOiBQYXJ0aWFsPERhc2hib2FyZFNldHRpbmdzPikge1xuICAgIHRoaXMuc2V0dGluZ3MgPSB7IC4uLnRoaXMuc2V0dGluZ3MsIC4uLnNldHRpbmdzIH07XG4gICAgdGhpcy5pc0xvYWRpbmckLm5leHQoISF0aGlzLnNldHRpbmdzLmlzTG9hZGluZyk7XG4gIH1cblxuICBASW5wdXQoKVxuICBicmVhZGNydW1iOiBCcmVhZGNydW1iSXRlbTtcblxuICBzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MgPSB7XG4gICAgaXNGcm96ZW46IGZhbHNlLFxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICAgIHdpZGdldE1hcmdpbjogMTIsXG4gICAgdHJhbnNsYXRlV2lkZ2V0VGl0bGU6IGZhbHNlLFxuICAgIGRlZmF1bHRIZWlnaHQ6IDQsXG4gICAgZGVmYXVsdFdpZHRoOiA0LFxuICAgIGFsbG93RnVsbHNjcmVlbjogZmFsc2UsXG4gICAgY2FuQ29weTogdHJ1ZSxcbiAgICBjYW5EZWxldGU6IHRydWUsXG4gICAgaXNMb2FkaW5nOiBmYWxzZVxuICB9O1xuXG4gIEBPdXRwdXQoKVxuICBvbkFkZFdpZGdldDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRWRpdFdpZGdldDogRXZlbnRFbWl0dGVyPFdpZGdldENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRGVsZXRlV2lkZ2V0OiBFdmVudEVtaXR0ZXI8V2lkZ2V0Q2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25DaGFuZ2VEYXNoYm9hcmQ6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkVkaXREYXNoYm9hcmQ6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNvcHlEYXNoYm9hcmQ6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkRlbGV0ZURhc2hib2FyZDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRnJlZXplOiBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkU2V0dGluZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZVN0YXJ0OiBFdmVudEVtaXR0ZXI8V2lkZ2V0Q2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25DaGFuZ2VFbmQ6IEV2ZW50RW1pdHRlcjxXaWRnZXRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlc29sdmVkV2lkZ2V0cyQ6IE9ic2VydmFibGU8V2lkZ2V0W10+O1xuXG4gIGlzTG9hZGluZ1dpZGdldHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgX3dpZGdldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldFtdPihbXSk7XG4gIHByaXZhdGUgaXNMb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoISF0aGlzLl9zZXR0aW5ncz8uaXNMb2FkaW5nKTtcbiAgcHJpdmF0ZSBpc0V4ZWN1dGluZ1Jlc29sdmVycyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkeW5hbWljOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSkge1xuICAgIHRoaXMucmVzb2x2ZWRXaWRnZXRzJCA9IHRoaXMuX3dpZGdldHMucGlwZShcbiAgICAgIHN3aXRjaE1hcCh3aWRnZXRzID0+IHRoaXMuZXhlY3V0ZVJlc29sdmVyc09mV2lkZ2V0cyh3aWRnZXRzKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gICAgdGhpcy5pc0V4ZWN1dGluZ1Jlc29sdmVycyQgPSBtZXJnZShcbiAgICAgIHRoaXMuX3dpZGdldHMucGlwZShtYXAoKCkgPT4gdHJ1ZSkpLFxuICAgICAgdGhpcy5yZXNvbHZlZFdpZGdldHMkLnBpcGUobWFwKCgpID0+IGZhbHNlKSlcbiAgICApO1xuICAgIHRoaXMuaXNMb2FkaW5nV2lkZ2V0cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzTG9hZGluZyQsIHRoaXMuaXNFeGVjdXRpbmdSZXNvbHZlcnMkXSkucGlwZShcbiAgICAgIG1hcChsb2FkaW5ncyA9PiBsb2FkaW5ncy5zb21lKGxvYWRpbmcgPT4gbG9hZGluZykpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpIHtcbiAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQuYm9keSBhcyBhbnk7XG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQgYXMgYW55O1xuICAgIGlmICghdGhpcy5mdWxsU2NyZWVuKCkpIHtcbiAgICAgIGlmIChlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ucmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtLm1velJlcXVlc3RGdWxsU2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBlbGVtLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKChFbGVtZW50IGFzIGFueSkuQUxMT1dfS0VZQk9BUkRfSU5QVVQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZG9jLmV4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGRvYy5tc0V4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MubXNFeGl0RnVsbHNjcmVlbigpO1xuICAgIH0gZWxzZSBpZiAoZG9jLm1vekNhbmNlbEZ1bGxTY3JlZW4pIHtcbiAgICAgIGRvYy5tb3pDYW5jZWxGdWxsU2NyZWVuKCk7XG4gICAgfSBlbHNlIGlmIChkb2Mud2Via2l0RXhpdEZ1bGxzY3JlZW4pIHtcbiAgICAgIGRvYy53ZWJraXRFeGl0RnVsbHNjcmVlbigpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bGxTY3JlZW4oKSB7XG4gICAgY29uc3QgZG9jOiBhbnkgPSBkb2N1bWVudDtcbiAgICByZXR1cm4gISEoXG4gICAgICBkb2MuZnVsbHNjcmVlbkVsZW1lbnQgfHxcbiAgICAgIGRvYy5tb3pGdWxsU2NyZWVuRWxlbWVudCB8fFxuICAgICAgZG9jLndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IHx8XG4gICAgICBkb2MubXNGdWxsc2NyZWVuRWxlbWVudFxuICAgICk7XG4gIH1cblxuICB1cGRhdGVXaWRnZXRDbGFzc2VzKHdpZGdldDogV2lkZ2V0LCBjbGFzc2VzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSkge1xuICAgIHdpZGdldC5jbGFzc2VzID0geyAuLi53aWRnZXQuY2xhc3NlcywgLi4uY2xhc3NlcyB9O1xuICB9XG5cbiAgdXBkYXRlV2lkZ2V0Q29uZmlnKGRhdGE6IGFueSwgd2lkZ2V0OiBXaWRnZXQpIHtcbiAgICB3aWRnZXQuY29uZmlnID0geyAuLi53aWRnZXQuY29uZmlnLCAuLi5kYXRhIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGVSZXNvbHZlcnNPZldpZGdldHMod2lkZ2V0czogV2lkZ2V0W10pOiBQcm9taXNlPFdpZGdldFtdPiB7XG4gICAgaWYgKCF3aWRnZXRzKSB7XG4gICAgICByZXR1cm4gd2lkZ2V0cztcbiAgICB9XG5cbiAgICBjb25zdCB0dXBsZSA9IHdpZGdldHMubWFwKHdpZGdldCA9PiAoe1xuICAgICAgY29tcG9uZW50SWQ6IHdpZGdldC5jb21wb25lbnRJZCB8fCB3aWRnZXQubmFtZSxcbiAgICAgIGNvbmZpZzogd2lkZ2V0LmNvbmZpZ1xuICAgIH0pKTtcblxuICAgIGNvbnN0IHJlc29sdmVkUmVzdWx0cyA9IGF3YWl0IHRoaXMuZHluYW1pYy5leGVjdXRlUmVzb2x2ZXJzKHR1cGxlKTtcbiAgICB3aWRnZXRzLmZvckVhY2goKHdpZGdldCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChyZXNvbHZlZFJlc3VsdHNbaW5kZXhdKSB7XG4gICAgICAgIGlmICghd2lkZ2V0LmNvbmZpZykge1xuICAgICAgICAgIHdpZGdldC5jb25maWcgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZFJlc3VsdHNbaW5kZXhdKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+XG4gICAgICAgICAgc2V0KHdpZGdldC5jb25maWcsIGtleSwgdmFsdWUpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHdpZGdldHM7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGUgKm5nSWY9XCIhIXNldHRpbmdzLnRpdGxlXCI+XG4gIHt7IHNldHRpbmdzLnRpdGxlIHwgdHJhbnNsYXRlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iICpuZ0lmPVwiISFicmVhZGNydW1iXCI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiYnJlYWRjcnVtYi5pY29uXCJcbiAgICBbbGFiZWxdPVwiYnJlYWRjcnVtYi5sYWJlbFwiXG4gICAgW3BhdGhdPVwiYnJlYWRjcnVtYi5wYXRoXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiICpuZ0lmPVwib25BZGRXaWRnZXQub2JzZXJ2ZXJzLmxlbmd0aFwiPlxuICA8YnV0dG9uXG4gICAgdGl0bGU9XCJ7eyAnQWRkIHdpZGdldCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICBbZGlzYWJsZWRdPVwic2V0dGluZ3MuaXNGcm96ZW4gfHwgc2V0dGluZ3MuaXNEaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cIm9uQWRkV2lkZ2V0LmVtaXQoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAge3sgJ0FkZCB3aWRnZXQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIiAqbmdJZj1cIm9uRWRpdERhc2hib2FyZC5vYnNlcnZlcnMubGVuZ3RoXCI+XG4gIDxidXR0b25cbiAgICB0aXRsZT1cInt7ICdFZGl0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIFtkaXNhYmxlZF09XCJzZXR0aW5ncy5pc0Zyb3plbiB8fCBzZXR0aW5ncy5pc0Rpc2FibGVkXCJcbiAgICAoY2xpY2spPVwib25FZGl0RGFzaGJvYXJkLmVtaXQoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGVuY2lsXCI+PC9pPlxuICAgIHt7ICdFZGl0JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCIgKm5nSWY9XCJzZXR0aW5ncy5hbGxvd0Z1bGxzY3JlZW5cIj5cbiAgPGJ1dHRvblxuICAgIHRpdGxlPVwie3sgJ0Z1bGwgc2NyZWVuJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIlxuICA+XG4gICAgPGkgW2M4eUljb25dPVwiZnVsbFNjcmVlbigpID8gJ2NvbXByZXNzJyA6ICdleHBhbmQnXCI+PC9pPlxuICAgIHt7ICdGdWxsIHNjcmVlbicgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiXG4gIGl0ZW1DbGFzcz1cIm5hdmJhci1mb3JtXCJcbiAgKm5nSWY9XCJvbkZyZWV6ZS5vYnNlcnZlcnMubGVuZ3RoXCJcbj5cbiAgPGJ1dHRvblxuICAgIHRpdGxlPVwie3sgJ0xvY2svdW5sb2NrIHRoaXMgZGFzaGJvYXJkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBzZXR0aW5ncy5pc0Zyb3plbiB9XCJcbiAgICAoY2xpY2spPVwib25GcmVlemUuZW1pdChzZXR0aW5ncylcIlxuICAgIFtkaXNhYmxlZF09XCJzZXR0aW5ncy5pc0Rpc2FibGVkXCJcbiAgICB1aWItYnRuLWNoZWNrYm94XG4gID5cbiAgICA8aSBbYzh5SWNvbl09XCJzZXR0aW5ncy5pc0Zyb3plbiA/ICdsb2NrJyA6ICd1bmxvY2snXCI+PC9pPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ21vcmUnXCIgW3ByaW9yaXR5XT1cIi0yMDAwXCIgKm5nSWY9XCJzZXR0aW5ncy5jYW5Db3B5XCI+XG4gIDxidXR0b24gdGl0bGU9XCJ7eyAnQ29weSBkYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNvcHlEYXNoYm9hcmQuZW1pdCgpXCIgY2xhc3M9XCJidG4gYnRuLWxpbmtcIj5cbiAgICA8aSBjOHlJY29uPVwiY2xvbmVcIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJtLWwtNFwiIHRyYW5zbGF0ZT5Db3B5IGRhc2hib2FyZDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ21vcmUnXCJcbiAgW3ByaW9yaXR5XT1cIi0zMDAwXCJcbiAgKm5nSWY9XCJzZXR0aW5ncy5jYW5EZWxldGUgJiYgb25EZWxldGVEYXNoYm9hcmQub2JzZXJ2ZXJzLmxlbmd0aFwiXG4+XG4gIDxidXR0b25cbiAgICB0aXRsZT1cInt7ICdEZWxldGUgZGFzaGJvYXJkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cIm9uRGVsZXRlRGFzaGJvYXJkLmVtaXQoKVwiXG4gICAgW2Rpc2FibGVkXT1cInNldHRpbmdzLmlzRnJvemVuIHx8IHNldHRpbmdzLmlzRGlzYWJsZWRcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cImRlbGV0ZVwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cIm0tbC00XCIgdHJhbnNsYXRlPkRlbGV0ZSBkYXNoYm9hcmQ8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdJbmRpY2F0b3I+XG4gIDxjOHktbG9hZGluZyBjbGFzcz1cImNvbC14cy0xMiB0ZXh0LWNlbnRlclwiICpuZ0lmPVwiaXNMb2FkaW5nV2lkZ2V0cyQgfCBhc3luY1wiPjwvYzh5LWxvYWRpbmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIShpc0xvYWRpbmdXaWRnZXRzJCB8IGFzeW5jKTsgZWxzZSBsb2FkaW5nSW5kaWNhdG9yXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvbHZlZFdpZGdldHMkIHwgYXN5bmMgYXMgd2lkZ2V0c1RvRGlzcGxheVwiPlxuICAgIDwhLS0gZW1wdHkgc3RhdGUgLS0+XG4gICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgKm5nSWY9XCJ3aWRnZXRzVG9EaXNwbGF5Py5sZW5ndGggPT09IDBcIlxuICAgICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UnXCJcbiAgICAgIFt0aXRsZV09XCInTm8gd2lkZ2V0cyB0byBkaXNwbGF5LicgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICAgIDxkaXYgKm5nSWY9XCIhc2V0dGluZ3MuaXNGcm96ZW4gJiYgb25BZGRXaWRnZXQub2JzZXJ2ZXJzLmxlbmd0aFwiPlxuICAgICAgICA8cCB0cmFuc2xhdGU+QWRkIHdpZGdldHMgdG8gdGhpcyBkYXNoYm9hcmQuPC9wPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FkZCB3aWRnZXQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNldHRpbmdzLmlzRnJvemVuIHx8IHNldHRpbmdzLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkV2lkZ2V0LmVtaXQoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtLXQtMTZcIlxuICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWRkIHdpZGdldFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgYzh5LWd1aWRlLWRvY3M+XG4gICAgICAgICAgPHNtYWxsIHRyYW5zbGF0ZSBuZ05vbkJpbmRhYmxlPlxuICAgICAgICAgICAgRmluZCBvdXQgbW9yZSBpbiB0aGVcbiAgICAgICAgICAgIDxhIGM4eS1ndWlkZS1ocmVmPVwidXNlcnMtZ3VpZGUvY29ja3BpdC8jZGFzaGJvYXJkc1wiPlVzZXIgZ3VpZGVgS0VFUF9PUklHSU5BTGA8L2E+XG4gICAgICAgICAgICAuXG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG5cbiAgICA8Yzh5LWRhc2hib2FyZFxuICAgICAgKGRhc2hib2FyZENoYW5nZSk9XCJvbkNoYW5nZURhc2hib2FyZC5lbWl0KCRldmVudClcIlxuICAgICAgI2Rhc2hib2FyZFxuICAgID5cbiAgICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkXG4gICAgICAgICpuZ0Zvcj1cImxldCB3aWRnZXQgb2Ygd2lkZ2V0c1RvRGlzcGxheVwiXG4gICAgICAgIFt4XT1cIndpZGdldC5feFwiXG4gICAgICAgIFt5XT1cIndpZGdldC5feVwiXG4gICAgICAgIFt3aWR0aF09XCJ3aWRnZXQuX3dpZHRoIHx8IHNldHRpbmdzLmRlZmF1bHRXaWR0aFwiXG4gICAgICAgIFtoZWlnaHRdPVwid2lkZ2V0Ll9oZWlnaHQgfHwgc2V0dGluZ3MuZGVmYXVsdEhlaWdodFwiXG4gICAgICAgIFttYXJnaW5dPVwic2V0dGluZ3Mud2lkZ2V0TWFyZ2luXCJcbiAgICAgICAgW2lzRnJvemVuXT1cInNldHRpbmdzLmlzRnJvemVuIHx8IHNldHRpbmdzLmlzRGlzYWJsZWRcIlxuICAgICAgICBbY2xhc3NdPVwid2lkZ2V0LmNsYXNzZXNcIlxuICAgICAgICBbZGF0YV09XCJ3aWRnZXRcIlxuICAgICAgICBbdXNlSW50ZXJzZWN0aW9uXT1cInRydWVcIlxuICAgICAgICAoY2hhbmdlU3RhcnQpPVwib25DaGFuZ2VTdGFydC5lbWl0KHsgd2lkZ2V0OiB3aWRnZXQsIHNvdXJjZTogY2hpbGQsIGRhc2hib2FyZDogZGFzaGJvYXJkIH0pXCJcbiAgICAgICAgKGNoYW5nZUVuZCk9XCJvbkNoYW5nZUVuZC5lbWl0KHsgd2lkZ2V0OiB3aWRnZXQsIHNvdXJjZTogY2hpbGQsIGRhc2hib2FyZDogZGFzaGJvYXJkIH0pXCJcbiAgICAgICAgI2NoaWxkXG4gICAgICA+XG4gICAgICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlPlxuICAgICAgICAgIDxzcGFuIFxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktZGFzaGJvYXJkLWxpc3QtLWRldmljZS13aWRnZXRcIlxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZ3MudHJhbnNsYXRlV2lkZ2V0VGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHdpZGdldC50aXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFzZXR0aW5ncy50cmFuc2xhdGVXaWRnZXRUaXRsZVwiPlxuICAgICAgICAgICAge3sgd2lkZ2V0LnRpdGxlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGU+XG4gICAgICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbiAqbmdJZj1cIm9uRWRpdFdpZGdldC5vYnNlcnZlcnMubGVuZ3RoXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRWRpdCB3aWRnZXQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWRpdFdpZGdldC5lbWl0KHsgd2lkZ2V0OiB3aWRnZXQsIHNvdXJjZTogY2hpbGQsIGRhc2hib2FyZDogZGFzaGJvYXJkIH0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjOHlJY29uPVwicGVuY2lsXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLWwtNFwiIHRyYW5zbGF0ZT5FZGl0PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICAgICAgICA8Yzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb24gKm5nSWY9XCJvbkRlbGV0ZVdpZGdldC5vYnNlcnZlcnMubGVuZ3RoXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlIHdpZGdldCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVXaWRnZXQuZW1pdCh7IHdpZGdldDogd2lkZ2V0LCBzb3VyY2U6IGNoaWxkLCBkYXNoYm9hcmQ6IGRhc2hib2FyZCB9KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRlbGV0ZVwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS1sLTRcIiB0cmFuc2xhdGU+UmVtb3ZlPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuXG4gICAgICAgIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dFxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICB3aWRnZXQuY29uZmlnPy5kaXNwbGF5U2V0dGluZ3M/Lmdsb2JhbFRpbWVDb250ZXh0ICYmXG4gICAgICAgICAgICB3aWRnZXQuY29uZmlnLndpZGdldEluc3RhbmNlR2xvYmFsVGltZUNvbnRleHRcbiAgICAgICAgICBcIlxuICAgICAgICAgIChkYXRlQ29udGV4dENoYW5nZSk9XCJ1cGRhdGVXaWRnZXRDb25maWcoeyBkYXRlOiAkZXZlbnQgfSwgd2lkZ2V0KVwiXG4gICAgICAgICAgW2NhbkRlY291cGxlXT1cIndpZGdldC5jb25maWcuY2FuRGVjb3VwbGVHbG9iYWxUaW1lQ29udGV4dFwiXG4gICAgICAgID48L2M4eS13aWRnZXQtdGltZS1jb250ZXh0PlxuXG4gICAgICAgIDxjOHktZHluYW1pYy1jb21wb25lbnRcbiAgICAgICAgICBbY29tcG9uZW50SWRdPVwid2lkZ2V0LmNvbXBvbmVudElkIHx8IHdpZGdldC5uYW1lXCJcbiAgICAgICAgICBbY29uZmlnXT1cIlxuICAgICAgICAgICAgd2lkZ2V0LnRlbXBsYXRlVXJsIHx8IHdpZGdldC53aWRnZXRDb21wb25lbnRcbiAgICAgICAgICAgICAgPyB7IGNoaWxkOiB3aWRnZXQsIGRhc2hib2FyZDogY29udGV4dERhc2hib2FyZCwgY29udGV4dDogY29udGV4dCB9XG4gICAgICAgICAgICAgIDogd2lkZ2V0LmNvbmZpZ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgKm5nSWY9XCJjaGlsZC5pbnRlcnNlY3RlZFwiXG4gICAgICAgICAgKHVwZGF0ZVdpZGdldENsYXNzZXMpPVwidXBkYXRlV2lkZ2V0Q2xhc3Nlcyh3aWRnZXQsICRldmVudClcIlxuICAgICAgICA+PC9jOHktZHluYW1pYy1jb21wb25lbnQ+XG4gICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQ+XG4gICAgPC9jOHktZGFzaGJvYXJkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYWpGLE1BQU0sT0FBTyx5QkFBeUI7SUE0RXBDLFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBOURwRCxxQkFBZ0IsR0FBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQVcvQyxhQUFRLEdBQXNCO1lBQzVCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixhQUFhLEVBQUUsQ0FBQztZQUNoQixZQUFZLEVBQUUsQ0FBQztZQUNmLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixT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O2dCQUlGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxVQUFVO2dCQU9qQixVQUFVO3NCQURULEtBQUs7Z0JBaUJOLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU07Z0JBSVAsY0FBYztzQkFEYixNQUFNO2dCQUlQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFJUCxlQUFlO3NCQURkLE1BQU07Z0JBSVAsZUFBZTtzQkFEZCxNQUFNO2dCQUlQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNO2dCQUlQLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbSB9IGZyb20gJy4uL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5tb2RlbCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hhbmdlLCBEYXNoYm9hcmRTZXR0aW5ncywgV2lkZ2V0LCBXaWRnZXRDaGFuZ2UgfSBmcm9tICcuL2Rhc2hib2FyZC5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFdpZGdldHNEYXNoYm9hcmRFdmVudFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMtZGFzaGJvYXJkLWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktd2lkZ2V0cy1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgc3R5bGU6IGBcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGAsXG4gICAgY2xhc3M6ICdkYXNoYm9hcmQgYzh5LWdyaWQtZGFzaGJvYXJkJ1xuICB9LFxuICBwcm92aWRlcnM6IFtXaWRnZXRzRGFzaGJvYXJkRXZlbnRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRzRGFzaGJvYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2V0IHdpZGdldHModmFsdWU6IFdpZGdldFtdKSB7XG4gICAgdGhpcy5fd2lkZ2V0cy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCB3aWRnZXRzKCk6IFdpZGdldFtdIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0cy52YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IGFueTtcblxuICBASW5wdXQoKVxuICBjb250ZXh0RGFzaGJvYXJkOiBhbnkgPSB7IHVwZGF0ZVRhcmdldDogdHJ1ZSB9O1xuXG4gIEBJbnB1dCgnc2V0dGluZ3MnKVxuICBzZXQgX3NldHRpbmdzKHNldHRpbmdzOiBQYXJ0aWFsPERhc2hib2FyZFNldHRpbmdzPikge1xuICAgIHRoaXMuc2V0dGluZ3MgPSB7IC4uLnRoaXMuc2V0dGluZ3MsIC4uLnNldHRpbmdzIH07XG4gICAgdGhpcy5pc0xvYWRpbmckLm5leHQoISF0aGlzLnNldHRpbmdzLmlzTG9hZGluZyk7XG4gIH1cblxuICBASW5wdXQoKVxuICBicmVhZGNydW1iOiBCcmVhZGNydW1iSXRlbTtcblxuICBzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MgPSB7XG4gICAgaXNGcm96ZW46IGZhbHNlLFxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICAgIHdpZGdldE1hcmdpbjogMTIsXG4gICAgdHJhbnNsYXRlV2lkZ2V0VGl0bGU6IGZhbHNlLFxuICAgIGRlZmF1bHRIZWlnaHQ6IDQsXG4gICAgZGVmYXVsdFdpZHRoOiA0LFxuICAgIGFsbG93RnVsbHNjcmVlbjogZmFsc2UsXG4gICAgY2FuQ29weTogdHJ1ZSxcbiAgICBjYW5EZWxldGU6IHRydWUsXG4gICAgaXNMb2FkaW5nOiBmYWxzZVxuICB9O1xuXG4gIEBPdXRwdXQoKVxuICBvbkFkZFdpZGdldDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRWRpdFdpZGdldDogRXZlbnRFbWl0dGVyPFdpZGdldENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRGVsZXRlV2lkZ2V0OiBFdmVudEVtaXR0ZXI8V2lkZ2V0Q2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25DaGFuZ2VEYXNoYm9hcmQ6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkVkaXREYXNoYm9hcmQ6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNvcHlEYXNoYm9hcmQ6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkRlbGV0ZURhc2hib2FyZDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRnJlZXplOiBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkU2V0dGluZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZVN0YXJ0OiBFdmVudEVtaXR0ZXI8V2lkZ2V0Q2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25DaGFuZ2VFbmQ6IEV2ZW50RW1pdHRlcjxXaWRnZXRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlc29sdmVkV2lkZ2V0cyQ6IE9ic2VydmFibGU8V2lkZ2V0W10+O1xuXG4gIGlzTG9hZGluZ1dpZGdldHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgX3dpZGdldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldFtdPihbXSk7XG4gIHByaXZhdGUgaXNMb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoISF0aGlzLl9zZXR0aW5ncz8uaXNMb2FkaW5nKTtcbiAgcHJpdmF0ZSBpc0V4ZWN1dGluZ1Jlc29sdmVycyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkeW5hbWljOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSkge1xuICAgIHRoaXMucmVzb2x2ZWRXaWRnZXRzJCA9IHRoaXMuX3dpZGdldHMucGlwZShcbiAgICAgIHN3aXRjaE1hcCh3aWRnZXRzID0+IHRoaXMuZXhlY3V0ZVJlc29sdmVyc09mV2lkZ2V0cyh3aWRnZXRzKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gICAgdGhpcy5pc0V4ZWN1dGluZ1Jlc29sdmVycyQgPSBtZXJnZShcbiAgICAgIHRoaXMuX3dpZGdldHMucGlwZShtYXAoKCkgPT4gdHJ1ZSkpLFxuICAgICAgdGhpcy5yZXNvbHZlZFdpZGdldHMkLnBpcGUobWFwKCgpID0+IGZhbHNlKSlcbiAgICApO1xuICAgIHRoaXMuaXNMb2FkaW5nV2lkZ2V0cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzTG9hZGluZyQsIHRoaXMuaXNFeGVjdXRpbmdSZXNvbHZlcnMkXSkucGlwZShcbiAgICAgIG1hcChsb2FkaW5ncyA9PiBsb2FkaW5ncy5zb21lKGxvYWRpbmcgPT4gbG9hZGluZykpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpIHtcbiAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQuYm9keSBhcyBhbnk7XG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQgYXMgYW55O1xuICAgIGlmICghdGhpcy5mdWxsU2NyZWVuKCkpIHtcbiAgICAgIGlmIChlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ucmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtLm1velJlcXVlc3RGdWxsU2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBlbGVtLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKChFbGVtZW50IGFzIGFueSkuQUxMT1dfS0VZQk9BUkRfSU5QVVQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZG9jLmV4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGRvYy5tc0V4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MubXNFeGl0RnVsbHNjcmVlbigpO1xuICAgIH0gZWxzZSBpZiAoZG9jLm1vekNhbmNlbEZ1bGxTY3JlZW4pIHtcbiAgICAgIGRvYy5tb3pDYW5jZWxGdWxsU2NyZWVuKCk7XG4gICAgfSBlbHNlIGlmIChkb2Mud2Via2l0RXhpdEZ1bGxzY3JlZW4pIHtcbiAgICAgIGRvYy53ZWJraXRFeGl0RnVsbHNjcmVlbigpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bGxTY3JlZW4oKSB7XG4gICAgY29uc3QgZG9jOiBhbnkgPSBkb2N1bWVudDtcbiAgICByZXR1cm4gISEoXG4gICAgICBkb2MuZnVsbHNjcmVlbkVsZW1lbnQgfHxcbiAgICAgIGRvYy5tb3pGdWxsU2NyZWVuRWxlbWVudCB8fFxuICAgICAgZG9jLndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IHx8XG4gICAgICBkb2MubXNGdWxsc2NyZWVuRWxlbWVudFxuICAgICk7XG4gIH1cblxuICB1cGRhdGVXaWRnZXRDbGFzc2VzKHdpZGdldDogV2lkZ2V0LCBjbGFzc2VzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSkge1xuICAgIHdpZGdldC5jbGFzc2VzID0geyAuLi53aWRnZXQuY2xhc3NlcywgLi4uY2xhc3NlcyB9O1xuICB9XG5cbiAgdXBkYXRlV2lkZ2V0Q29uZmlnKGRhdGE6IGFueSwgd2lkZ2V0OiBXaWRnZXQpIHtcbiAgICB3aWRnZXQuY29uZmlnID0geyAuLi53aWRnZXQuY29uZmlnLCAuLi5kYXRhIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGVSZXNvbHZlcnNPZldpZGdldHMod2lkZ2V0czogV2lkZ2V0W10pOiBQcm9taXNlPFdpZGdldFtdPiB7XG4gICAgaWYgKCF3aWRnZXRzKSB7XG4gICAgICByZXR1cm4gd2lkZ2V0cztcbiAgICB9XG5cbiAgICBjb25zdCB0dXBsZSA9IHdpZGdldHMubWFwKHdpZGdldCA9PiAoe1xuICAgICAgY29tcG9uZW50SWQ6IHdpZGdldC5jb21wb25lbnRJZCB8fCB3aWRnZXQubmFtZSxcbiAgICAgIGNvbmZpZzogd2lkZ2V0LmNvbmZpZ1xuICAgIH0pKTtcblxuICAgIGNvbnN0IHJlc29sdmVkUmVzdWx0cyA9IGF3YWl0IHRoaXMuZHluYW1pYy5leGVjdXRlUmVzb2x2ZXJzKHR1cGxlKTtcbiAgICB3aWRnZXRzLmZvckVhY2goKHdpZGdldCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChyZXNvbHZlZFJlc3VsdHNbaW5kZXhdKSB7XG4gICAgICAgIGlmICghd2lkZ2V0LmNvbmZpZykge1xuICAgICAgICAgIHdpZGdldC5jb25maWcgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZFJlc3VsdHNbaW5kZXhdKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+XG4gICAgICAgICAgc2V0KHdpZGdldC5jb25maWcsIGtleSwgdmFsdWUpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHdpZGdldHM7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGUgKm5nSWY9XCIhIXNldHRpbmdzLnRpdGxlXCI+XG4gIHt7IHNldHRpbmdzLnRpdGxlIHwgdHJhbnNsYXRlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iICpuZ0lmPVwiISFicmVhZGNydW1iXCI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiYnJlYWRjcnVtYi5pY29uXCJcbiAgICBbbGFiZWxdPVwiYnJlYWRjcnVtYi5sYWJlbFwiXG4gICAgW3BhdGhdPVwiYnJlYWRjcnVtYi5wYXRoXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiICpuZ0lmPVwib25BZGRXaWRnZXQub2JzZXJ2ZXJzLmxlbmd0aFwiPlxuICA8YnV0dG9uXG4gICAgdGl0bGU9XCJ7eyAnQWRkIHdpZGdldCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICBbZGlzYWJsZWRdPVwic2V0dGluZ3MuaXNGcm96ZW4gfHwgc2V0dGluZ3MuaXNEaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cIm9uQWRkV2lkZ2V0LmVtaXQoKVwiXG4gICAgZGF0YS1jeT1cIndpZGdldC1kYXNoYm9hcmQtLUFkZC13aWRnZXRcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdBZGQgd2lkZ2V0JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCIgKm5nSWY9XCJvbkVkaXREYXNoYm9hcmQub2JzZXJ2ZXJzLmxlbmd0aFwiPlxuICA8YnV0dG9uXG4gICAgdGl0bGU9XCJ7eyAnRWRpdCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICBbZGlzYWJsZWRdPVwic2V0dGluZ3MuaXNGcm96ZW4gfHwgc2V0dGluZ3MuaXNEaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cIm9uRWRpdERhc2hib2FyZC5lbWl0KClcIlxuICAgIGRhdGEtY3k9XCJ3aWRnZXRzLWRhc2hib2FyZC0tZWRpdC13aWRnZXRcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBlbmNpbFwiPjwvaT5cbiAgICB7eyAnRWRpdCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiICpuZ0lmPVwic2V0dGluZ3MuYWxsb3dGdWxsc2NyZWVuXCI+XG4gIDxidXR0b25cbiAgICB0aXRsZT1cInt7ICdGdWxsIHNjcmVlbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbigpXCJcbiAgPlxuICAgIDxpIFtjOHlJY29uXT1cImZ1bGxTY3JlZW4oKSA/ICdjb21wcmVzcycgOiAnZXhwYW5kJ1wiPjwvaT5cbiAgICB7eyAnRnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiXG4gICpuZ0lmPVwib25GcmVlemUub2JzZXJ2ZXJzLmxlbmd0aFwiXG4+XG4gIDxidXR0b25cbiAgICB0aXRsZT1cInt7ICdMb2NrL3VubG9jayB0aGlzIGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogc2V0dGluZ3MuaXNGcm96ZW4gfVwiXG4gICAgKGNsaWNrKT1cIm9uRnJlZXplLmVtaXQoc2V0dGluZ3MpXCJcbiAgICBbZGlzYWJsZWRdPVwic2V0dGluZ3MuaXNEaXNhYmxlZFwiXG4gICAgdWliLWJ0bi1jaGVja2JveFxuICAgIGRhdGEtY3k9XCJ3aWRnZXRzLWRhc2hib2FyZC0tYnV0dG9uLWxvY2stdG9nZ2xlXCJcbiAgPlxuICAgIDxpIFtjOHlJY29uXT1cInNldHRpbmdzLmlzRnJvemVuID8gJ2xvY2snIDogJ3VubG9jaydcIj48L2k+XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbW9yZSdcIiBbcHJpb3JpdHldPVwiLTIwMDBcIiAqbmdJZj1cInNldHRpbmdzLmNhbkNvcHlcIj5cbiAgPGJ1dHRvbiB0aXRsZT1cInt7ICdDb3B5IGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ29weURhc2hib2FyZC5lbWl0KClcIiBjbGFzcz1cImJ0biBidG4tbGlua1wiPlxuICAgIDxpIGM4eUljb249XCJjbG9uZVwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cIm0tbC00XCIgdHJhbnNsYXRlPkNvcHkgZGFzaGJvYXJkPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCInbW9yZSdcIlxuICBbcHJpb3JpdHldPVwiLTMwMDBcIlxuICAqbmdJZj1cInNldHRpbmdzLmNhbkRlbGV0ZSAmJiBvbkRlbGV0ZURhc2hib2FyZC5vYnNlcnZlcnMubGVuZ3RoXCJcbj5cbiAgPGJ1dHRvblxuICAgIHRpdGxlPVwie3sgJ0RlbGV0ZSBkYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwib25EZWxldGVEYXNoYm9hcmQuZW1pdCgpXCJcbiAgICBbZGlzYWJsZWRdPVwic2V0dGluZ3MuaXNGcm96ZW4gfHwgc2V0dGluZ3MuaXNEaXNhYmxlZFwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwiZGVsZXRlXCI+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwibS1sLTRcIiB0cmFuc2xhdGU+RGVsZXRlIGRhc2hib2FyZDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0luZGljYXRvcj5cbiAgPGM4eS1sb2FkaW5nIGNsYXNzPVwiY29sLXhzLTEyIHRleHQtY2VudGVyXCIgKm5nSWY9XCJpc0xvYWRpbmdXaWRnZXRzJCB8IGFzeW5jXCI+PC9jOHktbG9hZGluZz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhKGlzTG9hZGluZ1dpZGdldHMkIHwgYXN5bmMpOyBlbHNlIGxvYWRpbmdJbmRpY2F0b3JcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVkV2lkZ2V0cyQgfCBhc3luYyBhcyB3aWRnZXRzVG9EaXNwbGF5XCI+XG4gICAgPCEtLSBlbXB0eSBzdGF0ZSAtLT5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAqbmdJZj1cIndpZGdldHNUb0Rpc3BsYXk/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICBbaWNvbl09XCInYzh5LWRldmljZSdcIlxuICAgICAgW3RpdGxlXT1cIidObyB3aWRnZXRzIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cIiFzZXR0aW5ncy5pc0Zyb3plbiAmJiBvbkFkZFdpZGdldC5vYnNlcnZlcnMubGVuZ3RoXCI+XG4gICAgICAgIDxwIHRyYW5zbGF0ZT5BZGQgd2lkZ2V0cyB0byB0aGlzIGRhc2hib2FyZC48L3A+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQWRkIHdpZGdldCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwic2V0dGluZ3MuaXNGcm96ZW4gfHwgc2V0dGluZ3MuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25BZGRXaWRnZXQuZW1pdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG0tdC0xNlwiXG4gICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICBBZGQgd2lkZ2V0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCBjOHktZ3VpZGUtZG9jcz5cbiAgICAgICAgICA8c21hbGwgdHJhbnNsYXRlIG5nTm9uQmluZGFibGU+XG4gICAgICAgICAgICBGaW5kIG91dCBtb3JlIGluIHRoZVxuICAgICAgICAgICAgPGEgYzh5LWd1aWRlLWhyZWY9XCJ1c2Vycy1ndWlkZS9jb2NrcGl0LyNkYXNoYm9hcmRzXCI+VXNlciBndWlkZWBLRUVQX09SSUdJTkFMYDwvYT5cbiAgICAgICAgICAgIC5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2M4eS11aS1lbXB0eS1zdGF0ZT5cblxuICAgIDxjOHktZGFzaGJvYXJkXG4gICAgICAoZGFzaGJvYXJkQ2hhbmdlKT1cIm9uQ2hhbmdlRGFzaGJvYXJkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAjZGFzaGJvYXJkXG4gICAgPlxuICAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGRcbiAgICAgICAgKm5nRm9yPVwibGV0IHdpZGdldCBvZiB3aWRnZXRzVG9EaXNwbGF5XCJcbiAgICAgICAgW3hdPVwid2lkZ2V0Ll94XCJcbiAgICAgICAgW3ldPVwid2lkZ2V0Ll95XCJcbiAgICAgICAgW3dpZHRoXT1cIndpZGdldC5fd2lkdGggfHwgc2V0dGluZ3MuZGVmYXVsdFdpZHRoXCJcbiAgICAgICAgW2hlaWdodF09XCJ3aWRnZXQuX2hlaWdodCB8fCBzZXR0aW5ncy5kZWZhdWx0SGVpZ2h0XCJcbiAgICAgICAgW21hcmdpbl09XCJzZXR0aW5ncy53aWRnZXRNYXJnaW5cIlxuICAgICAgICBbaXNGcm96ZW5dPVwic2V0dGluZ3MuaXNGcm96ZW4gfHwgc2V0dGluZ3MuaXNEaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzc109XCJ3aWRnZXQuY2xhc3Nlc1wiXG4gICAgICAgIFtkYXRhXT1cIndpZGdldFwiXG4gICAgICAgIFt1c2VJbnRlcnNlY3Rpb25dPVwidHJ1ZVwiXG4gICAgICAgIChjaGFuZ2VTdGFydCk9XCJvbkNoYW5nZVN0YXJ0LmVtaXQoeyB3aWRnZXQ6IHdpZGdldCwgc291cmNlOiBjaGlsZCwgZGFzaGJvYXJkOiBkYXNoYm9hcmQgfSlcIlxuICAgICAgICAoY2hhbmdlRW5kKT1cIm9uQ2hhbmdlRW5kLmVtaXQoeyB3aWRnZXQ6IHdpZGdldCwgc291cmNlOiBjaGlsZCwgZGFzaGJvYXJkOiBkYXNoYm9hcmQgfSlcIlxuICAgICAgICAjY2hpbGRcbiAgICAgID5cbiAgICAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGU+XG4gICAgICAgICAgPHNwYW4gXG4gICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtbGlzdC0tZGV2aWNlLXdpZGdldFwiXG4gICAgICAgICAgKm5nSWY9XCJzZXR0aW5ncy50cmFuc2xhdGVXaWRnZXRUaXRsZVwiPlxuICAgICAgICAgICAge3sgd2lkZ2V0LnRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXNldHRpbmdzLnRyYW5zbGF0ZVdpZGdldFRpdGxlXCI+XG4gICAgICAgICAgICB7eyB3aWRnZXQudGl0bGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZT5cbiAgICAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uICpuZ0lmPVwib25FZGl0V2lkZ2V0Lm9ic2VydmVycy5sZW5ndGhcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdFZGl0IHdpZGdldCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25FZGl0V2lkZ2V0LmVtaXQoeyB3aWRnZXQ6IHdpZGdldCwgc291cmNlOiBjaGlsZCwgZGFzaGJvYXJkOiBkYXNoYm9hcmQgfSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGM4eUljb249XCJwZW5jaWxcIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tbC00XCIgdHJhbnNsYXRlPkVkaXQ8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb24+XG4gICAgICAgIDxjOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbiAqbmdJZj1cIm9uRGVsZXRlV2lkZ2V0Lm9ic2VydmVycy5sZW5ndGhcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdSZW1vdmUgd2lkZ2V0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZVdpZGdldC5lbWl0KHsgd2lkZ2V0OiB3aWRnZXQsIHNvdXJjZTogY2hpbGQsIGRhc2hib2FyZDogZGFzaGJvYXJkIH0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjOHlJY29uPVwiZGVsZXRlXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLWwtNFwiIHRyYW5zbGF0ZT5SZW1vdmU8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb24+XG5cbiAgICAgICAgPGM4eS13aWRnZXQtdGltZS1jb250ZXh0XG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIHdpZGdldC5jb25maWc/LmRpc3BsYXlTZXR0aW5ncz8uZ2xvYmFsVGltZUNvbnRleHQgJiZcbiAgICAgICAgICAgIHdpZGdldC5jb25maWcud2lkZ2V0SW5zdGFuY2VHbG9iYWxUaW1lQ29udGV4dFxuICAgICAgICAgIFwiXG4gICAgICAgICAgKGRhdGVDb250ZXh0Q2hhbmdlKT1cInVwZGF0ZVdpZGdldENvbmZpZyh7IGRhdGU6ICRldmVudCB9LCB3aWRnZXQpXCJcbiAgICAgICAgICBbY2FuRGVjb3VwbGVdPVwid2lkZ2V0LmNvbmZpZy5jYW5EZWNvdXBsZUdsb2JhbFRpbWVDb250ZXh0XCJcbiAgICAgICAgPjwvYzh5LXdpZGdldC10aW1lLWNvbnRleHQ+XG5cbiAgICAgICAgPGM4eS1keW5hbWljLWNvbXBvbmVudFxuICAgICAgICAgIFtjb21wb25lbnRJZF09XCJ3aWRnZXQuY29tcG9uZW50SWQgfHwgd2lkZ2V0Lm5hbWVcIlxuICAgICAgICAgIFtjb25maWddPVwiXG4gICAgICAgICAgICB3aWRnZXQudGVtcGxhdGVVcmwgfHwgd2lkZ2V0LndpZGdldENvbXBvbmVudFxuICAgICAgICAgICAgICA/IHsgY2hpbGQ6IHdpZGdldCwgZGFzaGJvYXJkOiBjb250ZXh0RGFzaGJvYXJkLCBjb250ZXh0OiBjb250ZXh0IH1cbiAgICAgICAgICAgICAgOiB3aWRnZXQuY29uZmlnXG4gICAgICAgICAgXCJcbiAgICAgICAgICAqbmdJZj1cImNoaWxkLmludGVyc2VjdGVkXCJcbiAgICAgICAgICAodXBkYXRlV2lkZ2V0Q2xhc3Nlcyk9XCJ1cGRhdGVXaWRnZXRDbGFzc2VzKHdpZGdldCwgJGV2ZW50KVwiXG4gICAgICAgID48L2M4eS1keW5hbWljLWNvbXBvbmVudD5cbiAgICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZD5cbiAgICA8L2M4eS1kYXNoYm9hcmQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbiJdfQ==
|
|
@@ -172,10 +172,10 @@ export class HelpComponent {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
HelpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpComponent, deps: [{ token: i1.DocsService }, { token: i2.HelpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
-
HelpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: HelpComponent, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'About this page' | translate\"\n data-cy=\"help--help-btn\"\n tooltip=\"{{ 'About this page' | translate }}\"\n [delay]=\"750\"\n placement=\"left\"\n container=\"body\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n id=\"collapseHelp\"\n class=\"c8y-help-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n class=\"c8y-icon-duocolor icon-48\"\n ></i>\n <div class=\"p-l-16 flex-grow\" *ngIf=\"!hasError\">\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div id=\"helpContent\" class=\"help-content\" [innerHTML]=\"sectionContent\"></div>\n </div>\n\n <div class=\"p-l-16 p-t-16 flex-grow\" *ngIf=\"hasError\">\n <h4 class=\"text-bold m-b-16\" translate>Content couldn't be loaded.</h4>\n <div class=\"help-content\">\n <p translate>Check connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n type=\"button\"\n [title]=\"'Close help' | translate\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >\n Close\n </button>\n <a\n data-cy=\"help--href-value\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span translate *ngIf=\"!hasError\">\n Open the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span translate *ngIf=\"hasError\">\n Check the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i7.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i9.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i10.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
175
|
+
HelpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: HelpComponent, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'About this page' | translate\"\n data-cy=\"help--help-btn\"\n tooltip=\"{{ 'About this page' | translate }}\"\n [delay]=\"750\"\n placement=\"left\"\n container=\"body\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n id=\"collapseHelp\"\n class=\"c8y-help-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n class=\"c8y-icon-duocolor icon-48\"\n ></i>\n <div class=\"p-l-16 flex-grow\" *ngIf=\"!hasError\">\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div id=\"helpContent\" class=\"help-content\" [innerHTML]=\"sectionContent\" data-cy=\"help--c8y-help-content\"></div>\n </div>\n\n <div class=\"p-l-16 p-t-16 flex-grow\" *ngIf=\"hasError\">\n <h4 class=\"text-bold m-b-16\" translate>Content couldn't be loaded.</h4>\n <div class=\"help-content\">\n <p translate>Check connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n type=\"button\"\n [title]=\"'Close help' | translate\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >\n Close\n </button>\n <a\n data-cy=\"help--href-value\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span translate *ngIf=\"!hasError\">\n Open the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span translate *ngIf=\"hasError\">\n Check the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i7.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i9.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i10.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
176
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpComponent, decorators: [{
|
|
177
177
|
type: Component,
|
|
178
|
-
args: [{ selector: 'c8y-help', template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'About this page' | translate\"\n data-cy=\"help--help-btn\"\n tooltip=\"{{ 'About this page' | translate }}\"\n [delay]=\"750\"\n placement=\"left\"\n container=\"body\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n id=\"collapseHelp\"\n class=\"c8y-help-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n class=\"c8y-icon-duocolor icon-48\"\n ></i>\n <div class=\"p-l-16 flex-grow\" *ngIf=\"!hasError\">\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div id=\"helpContent\" class=\"help-content\" [innerHTML]=\"sectionContent\"></div>\n </div>\n\n <div class=\"p-l-16 p-t-16 flex-grow\" *ngIf=\"hasError\">\n <h4 class=\"text-bold m-b-16\" translate>Content couldn't be loaded.</h4>\n <div class=\"help-content\">\n <p translate>Check connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n type=\"button\"\n [title]=\"'Close help' | translate\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >\n Close\n </button>\n <a\n data-cy=\"help--href-value\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span translate *ngIf=\"!hasError\">\n Open the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span translate *ngIf=\"hasError\">\n Check the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>\n" }]
|
|
178
|
+
args: [{ selector: 'c8y-help', template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'About this page' | translate\"\n data-cy=\"help--help-btn\"\n tooltip=\"{{ 'About this page' | translate }}\"\n [delay]=\"750\"\n placement=\"left\"\n container=\"body\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n id=\"collapseHelp\"\n class=\"c8y-help-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n class=\"c8y-icon-duocolor icon-48\"\n ></i>\n <div class=\"p-l-16 flex-grow\" *ngIf=\"!hasError\">\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div id=\"helpContent\" class=\"help-content\" [innerHTML]=\"sectionContent\" data-cy=\"help--c8y-help-content\"></div>\n </div>\n\n <div class=\"p-l-16 p-t-16 flex-grow\" *ngIf=\"hasError\">\n <h4 class=\"text-bold m-b-16\" translate>Content couldn't be loaded.</h4>\n <div class=\"help-content\">\n <p translate>Check connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n type=\"button\"\n [title]=\"'Close help' | translate\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >\n Close\n </button>\n <a\n data-cy=\"help--href-value\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span translate *ngIf=\"!hasError\">\n Open the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span translate *ngIf=\"hasError\">\n Check the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>\n" }]
|
|
179
179
|
}], ctorParameters: function () { return [{ type: i1.DocsService }, { type: i2.HelpService }]; }, propDecorators: { src: [{
|
|
180
180
|
type: Input
|
|
181
181
|
}], isCollapsed: [{
|
|
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
185
185
|
}], icon: [{
|
|
186
186
|
type: Input
|
|
187
187
|
}] } });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTdDOzs7Ozs7OztHQVFHO0FBS0gsTUFBTSxPQUFPLGFBQWE7SUE2RHhCOztPQUVHO0lBQ0gsWUFBb0IsV0FBd0IsRUFBUyxXQUF3QjtRQUF6RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBL0Q3RTs7O1dBR0c7UUFFSCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBRVQ7O1dBRUc7UUFFSCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQjs7V0FFRztRQUVILGFBQVEsR0FBRyxRQUFRLENBQUM7UUFRcEI7O1dBRUc7UUFDSCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVg7O1dBRUc7UUFDSCxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQjs7V0FFRztRQUNILG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQjs7V0FFRztRQUNILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUM7SUFLaUUsQ0FBQztJQUVqRjs7OztPQUlHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFD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c0JBRFAsS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2NzU2VydmljZSB9IGZyb20gJy4uL2RvY3MvZG9jcy5zZXJ2aWNlJztcbmltcG9ydCB7IEhlbHBTZXJ2aWNlIH0gZnJvbSAnLi9oZWxwLnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHdoaWNoIHNob3dzIGEgY29udGV4dCBoZWxwIGluXG4gKiB0aGUgYWN0aW9uIGJhci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGM4eS1oZWxwIHNyYz1cIi91c2Vycy1ndWlkZS9jb2NrcGl0LyNkYXNoYm9hcmRzXCI+PC9jOHktaGVscD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktaGVscCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWxwLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIZWxwQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRvY3VtZW50YXRpb24uIFVzZWQgdG8gbGluayB0byB0aGUgZG9jdW1lbnRhdGlvbiBhcyB3ZWxsIGFzXG4gICAqIHRvIHBhcnNlIHRoZSBzb3VyY2UgdG8gZGlzcGxheS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNyYyA9ICcnO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGhlbHAgZGlhbG9nIGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGlzQ29sbGFwc2VkID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIHByaW9yaXR5IHdoZXJlIHRoZSBoZWxwIGljb24gc2hvdWxkIGJlIHNob3duIGluIHRoZSBhY3Rpb24gYmFyXG4gICAqL1xuICBASW5wdXQoKVxuICBwcmlvcml0eSA9IEluZmluaXR5O1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBpY29uLiBJZiBub3Qgc2V0LCB0aGUgbmF2aWdhdG9yIGljb24gaXMgcmVzb2x2ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGljb247XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUuIFNldCBpbiBvcGVuIGJ5IHBhc3NpbmcgdGhlIHNvdXJjZS5cbiAgICovXG4gIHRpdGxlID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN0aW9uIGhlYWRpbmcgaW4gdGhlIGRvYyB3aGljaCBpcyBnb2luZyB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBzZWN0aW9uSGVhZGluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiBjb250ZW50IGluIHRoZSBkb2Mgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgc2VjdGlvbkNvbnRlbnQgPSAnJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjb21wb25lbnQgaXMgbG9hZGluZy5cbiAgICovXG4gIGlzTG9hZGluZyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29tcG9uZW50IGZhaWxlZCBsb2FkaW5nIHRoZSBzb3VyY2UuXG4gICAqL1xuICBoYXNFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB3YXJuaW5nIHNob3VsZCBiZSBzaG93bi5cbiAgICovXG4gIHNob3dMYW5nV2FybmluZyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpc0luaXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGlnbm9yZSBPbmx5IHByaXZhdGUgRElcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9jc1NlcnZpY2U6IERvY3NTZXJ2aWNlLCBwdWJsaWMgaGVscFNlcnZpY2U6IEhlbHBTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IGlzIHNob3duIGJ5IGRlZmF1bHQgYW5kIHRoZXJlZm9yZSBicmVha3MgZTJlIHRlc3QuIFRoaXMgaXNcbiAgICogdG8gcHJldmVudCB0aGUgdmlzaWJpbGl0eSBvbiBmaXJzdCBuYXZpZ2F0aW9uLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbkNvbGxhcHNlZCgpIHtcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBVUkwgYmFzZWQgb24gdGhlIHNyYy4gVGhlIEJhc2UgVVJMIGNhbiBiZSBzZXQgaW4gdGhlIGFwcGxpY2F0aW9uIG9wdGlvbnMgZG9jQmFzZVVybC5cbiAgICogQHBhcmFtIHNyYyBUaGUgc291cmNlIG9mIHRoZSBoZWxwIG9uIHRoZSBndWlkZS5cbiAgICogQHBhcmFtIGluZGV4IFRoaXMgZmxhZyBpcyB1c2VkIHRvIGNhbGwgdGhlIGluZGV4Lmpzb24gY29udGVudCBvZiBhIGd1aWRlLiBGb3IgZXhhbXBsZSwgXCJodHRwczovL3d3dy5jdW11bG9jaXR5LmNvbS9ndWlkZXMvdXNlcnMtZ3VpZGUvY29ja3BpdC9pbmRleC5qc29uXCIuXG4gICAqL1xuICBnZXRVcmwoc3JjID0gJycsIGluZGV4ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGxldCBkb2NzVXJsOiBVUkw7XG5cbiAgICB0cnkge1xuICAgICAgZG9jc1VybCA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldFVybFdpdGhEb2NzVmVyc2lvbih0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlKSlcbiAgICAgICAgICA6IG5ldyBVUkwodGhpcy5kb2NzU2VydmljZS5nZXRCYXNlVXJsKCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBkb2NzVXJsID0gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldEJhc2VVcmwoKSk7XG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IFt1cmwsIGhhc2hGcmFnbWVudF0gPSBzcmMuc3BsaXQoJyMnKTtcbiAgICB0aGlzLnNlY3Rpb25IZWFkaW5nID0gaGFzaEZyYWdtZW50O1xuXG4gICAgaWYgKGluZGV4KSB7XG4gICAgICBzcmMgPSBgJHt1cmx9aW5kZXguanNvbmA7XG4gICAgfVxuICAgIHJldHVybiBgJHtkb2NzVXJsLmhyZWZ9JHtzcmN9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGhlbHAgZGlhbG9nLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgdGhpcy5jbGVhbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlcXVlc3RDb250ZW50KCk7XG4gICAgaWYgKCF0aGlzLmljb24pIHtcbiAgICAgIHRoaXMuaWNvbiA9IHRoaXMucmVzb2x2ZUljb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcXVlc3RDb250ZW50KCkge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB0aGlzLnJlbmRlcihyZXEpO1xuICAgIHJlcS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpcy5yZW5kZXIocmVxKSk7XG4gICAgcmVxLm9wZW4oJ0dFVCcsIHRoaXMuZ2V0VXJsKHRoaXMuc3JjLCB0cnVlKSk7XG4gICAgcmVxLnJlc3BvbnNlVHlwZSA9ICdqc29uJztcbiAgICByZXEuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ3RleHQvaHRtbCcpO1xuICAgIHJlcS5zZW5kKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuKCkge1xuICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zZWN0aW9uQ29udGVudCA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaWNvbiA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmF2IC5hY3RpdmUgaScpLmNsYXNzTGlzdCkuZmluZChcbiAgICAgICAgY2xhc3NlcyA9PiBjbGFzc2VzLnN0YXJ0c1dpdGgoJ2M4eS1pY29uLScpIHx8IGNsYXNzZXMuc3RhcnRzV2l0aCgnZGx0LWM4eS1pY29uLScpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGljb24ucmVwbGFjZSgnZGx0LWM4eS1pY29uLScsICcnKS5yZXBsYWNlKCdjOHktaWNvbi0nLCAnYzh5LScpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICByZXR1cm4gJ2xpZmUtc2F2ZXInO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKHJlcTogWE1MSHR0cFJlcXVlc3QpIHtcbiAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICBpZiAocmVxLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkRhdGEgPSByZXEucmVzcG9uc2VbdGhpcy5zZWN0aW9uSGVhZGluZ107XG4gICAgICAgIGlmIChzZWN0aW9uRGF0YSkge1xuICAgICAgICAgIHRoaXMudGl0bGUgPSBzZWN0aW9uRGF0YS50aXRsZTtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25Db250ZW50ID0gc2VjdGlvbkRhdGEuaGVscGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgaXRlbUNsYXNzPVwicHVsbC1yaWdodCBtLWwtOFwiXG4gIFtwcmlvcml0eV09XCJwcmlvcml0eVwiXG4gICpuZ0lmPVwiISEoaGVscFNlcnZpY2UuY29udGV4dEhlbHAgfCBhc3luYylcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4taGVscFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWJvdXQgdGhpcyBwYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgZGF0YS1jeT1cImhlbHAtLWhlbHAtYnRuXCJcbiAgICB0b29sdGlwPVwie3sgJ0Fib3V0IHRoaXMgcGFnZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFtkZWxheV09XCI3NTBcIlxuICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiIWlzQ29sbGFwc2VkXCJcbiAgICBhcmlhLWNvbnRyb2xzPVwiY29sbGFwc2VIZWxwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiaXNDb2xsYXBzZWQgPyAnaGVscE9wZW5lZCcgOiAnaGVscENsb3NlZCdcIlxuICAgIFthY3Rpb25EYXRhXT1cInsgc3JjOiBzcmMgfVwiXG4gID48L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGRpdlxuICBpZD1cImNvbGxhcHNlSGVscFwiXG4gIGNsYXNzPVwiYzh5LWhlbHAtZHJhd2VyXCJcbiAgW2NvbGxhcHNlXT1cImlzQ29sbGFwc2VkXCJcbiAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4gIChjb2xsYXBzZWQpPVwib25Db2xsYXBzZWQoKVwiXG4+XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7ICdjOHktaGVscC1kcmF3ZXItYmxvY2snOiBpc0luaXQgfVwiXG4gICAgI2RvY091dGxldFxuICAgIGRhdGEtY3k9XCJjOHktaGVscC0tYzh5LWhlbHAtZHJhd2VyLWJsb2NrXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgPGlcbiAgICAgICAgICBbYzh5SWNvbl09XCIhaGFzRXJyb3IgPyBpY29uIDogJ3VubGluaydcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtd2FybmluZyc6IGhhc0Vycm9yLCAndGV4dC1tdXRlZCc6ICFoYXNFcnJvciB9XCJcbiAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yIGljb24tNDhcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1sLTE2IGZsZXgtZ3Jvd1wiICpuZ0lmPVwiIWhhc0Vycm9yXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvIG0tYi0xNlwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAhaGVscFNlcnZpY2UuaXNTdXBwb3J0ZWRMYW5ndWFnZSgpICYmXG4gICAgICAgICAgICAgICFzaG93TGFuZ1dhcm5pbmcgJiZcbiAgICAgICAgICAgICAgIWhlbHBTZXJ2aWNlLmlzV2FybmluZ0FsZXJ0Vmlld2VkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Nsb3NlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgc2hvd0xhbmdXYXJuaW5nID0gIXNob3dMYW5nV2FybmluZztcbiAgICAgICAgICAgICAgICBoZWxwU2VydmljZS5pc1dhcm5pbmdBbGVydFZpZXdlZCA9ICFoZWxwU2VydmljZS5pc1dhcm5pbmdBbGVydFZpZXdlZFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj7Dlzwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7eyAnSGVscCBjb250ZW50IGlzIG9ubHkgYXZhaWxhYmxlIGluIEVuZ2xpc2guJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtYm9sZCB0ZXh0LXByaW1hcnkgcC10LTE2IG0tYi0xNlwiPlxuICAgICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgICAgICA8L2g0PlxuICAgICAgICAgIDxkaXYgaWQ9XCJoZWxwQ29udGVudFwiIGNsYXNzPVwiaGVscC1jb250ZW50XCIgW2lubmVySFRNTF09XCJzZWN0aW9uQ29udGVudFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1sLTE2IHAtdC0xNiBmbGV4LWdyb3dcIiAqbmdJZj1cImhhc0Vycm9yXCI+XG4gICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ib2xkIG0tYi0xNlwiIHRyYW5zbGF0ZT5Db250ZW50IGNvdWxkbid0IGJlIGxvYWRlZC48L2g0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxwIHRyYW5zbGF0ZT5DaGVjayBjb25uZWN0aW9uIG9yIHJlbG9hZCBwYWdlLjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImM4eS1oZWxwLWRyYXdlci1mb290ZXIgYW5pbWF0ZWQgZmFkZUluXCJcbiAgICBzdHlsZT1cImFuaW1hdGlvbi1kZWxheTogMC4zNXNcIlxuICAgICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3JcIlxuICAgIGRhdGEtY3k9XCJjOHktaGVscC0tYzh5LWhlbHAtZHJhd2VyLWZvb3RlclwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFt0aXRsZV09XCInQ2xvc2UgaGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiIWlzQ29sbGFwc2VkXCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJjb2xsYXBzZUhlbHBcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgQ2xvc2VcbiAgICA8L2J1dHRvbj5cbiAgICA8YVxuICAgICAgZGF0YS1jeT1cImhlbHAtLWhyZWYtdmFsdWVcIlxuICAgICAgaHJlZj1cInt7IGhhc0Vycm9yID8gZ2V0VXJsKCkgOiBnZXRVcmwoc3JjKSB9fVwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlICpuZ0lmPVwiIWhhc0Vycm9yXCI+XG4gICAgICAgIE9wZW4gdGhlXG4gICAgICAgIDxzcGFuPlVzZXIgZ3VpZGVgS0VFUF9PUklHSU5BTGA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiB0cmFuc2xhdGUgKm5nSWY9XCJoYXNFcnJvclwiPlxuICAgICAgICBDaGVjayB0aGVcbiAgICAgICAgPHNwYW4+VXNlciBndWlkZWBLRUVQX09SSUdJTkFMYDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTdDOzs7Ozs7OztHQVFHO0FBS0gsTUFBTSxPQUFPLGFBQWE7SUE2RHhCOztPQUVHO0lBQ0gsWUFBb0IsV0FBd0IsRUFBUyxXQUF3QjtRQUF6RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBL0Q3RTs7O1dBR0c7UUFFSCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBRVQ7O1dBRUc7UUFFSCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQjs7V0FFRztRQUVILGFBQVEsR0FBRyxRQUFRLENBQUM7UUFRcEI7O1dBRUc7UUFDSCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVg7O1dBRUc7UUFDSCxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQjs7V0FFRztRQUNILG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQjs7V0FFRztRQUNILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUM7SUFLaUUsQ0FBQztJQUVqRjs7OztPQUlHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFD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c0JBRFAsS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2NzU2VydmljZSB9IGZyb20gJy4uL2RvY3MvZG9jcy5zZXJ2aWNlJztcbmltcG9ydCB7IEhlbHBTZXJ2aWNlIH0gZnJvbSAnLi9oZWxwLnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHdoaWNoIHNob3dzIGEgY29udGV4dCBoZWxwIGluXG4gKiB0aGUgYWN0aW9uIGJhci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGM4eS1oZWxwIHNyYz1cIi91c2Vycy1ndWlkZS9jb2NrcGl0LyNkYXNoYm9hcmRzXCI+PC9jOHktaGVscD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktaGVscCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWxwLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIZWxwQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRvY3VtZW50YXRpb24uIFVzZWQgdG8gbGluayB0byB0aGUgZG9jdW1lbnRhdGlvbiBhcyB3ZWxsIGFzXG4gICAqIHRvIHBhcnNlIHRoZSBzb3VyY2UgdG8gZGlzcGxheS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNyYyA9ICcnO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGhlbHAgZGlhbG9nIGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGlzQ29sbGFwc2VkID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIHByaW9yaXR5IHdoZXJlIHRoZSBoZWxwIGljb24gc2hvdWxkIGJlIHNob3duIGluIHRoZSBhY3Rpb24gYmFyXG4gICAqL1xuICBASW5wdXQoKVxuICBwcmlvcml0eSA9IEluZmluaXR5O1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBpY29uLiBJZiBub3Qgc2V0LCB0aGUgbmF2aWdhdG9yIGljb24gaXMgcmVzb2x2ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGljb247XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUuIFNldCBpbiBvcGVuIGJ5IHBhc3NpbmcgdGhlIHNvdXJjZS5cbiAgICovXG4gIHRpdGxlID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN0aW9uIGhlYWRpbmcgaW4gdGhlIGRvYyB3aGljaCBpcyBnb2luZyB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBzZWN0aW9uSGVhZGluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiBjb250ZW50IGluIHRoZSBkb2Mgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgc2VjdGlvbkNvbnRlbnQgPSAnJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjb21wb25lbnQgaXMgbG9hZGluZy5cbiAgICovXG4gIGlzTG9hZGluZyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29tcG9uZW50IGZhaWxlZCBsb2FkaW5nIHRoZSBzb3VyY2UuXG4gICAqL1xuICBoYXNFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB3YXJuaW5nIHNob3VsZCBiZSBzaG93bi5cbiAgICovXG4gIHNob3dMYW5nV2FybmluZyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpc0luaXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGlnbm9yZSBPbmx5IHByaXZhdGUgRElcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9jc1NlcnZpY2U6IERvY3NTZXJ2aWNlLCBwdWJsaWMgaGVscFNlcnZpY2U6IEhlbHBTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IGlzIHNob3duIGJ5IGRlZmF1bHQgYW5kIHRoZXJlZm9yZSBicmVha3MgZTJlIHRlc3QuIFRoaXMgaXNcbiAgICogdG8gcHJldmVudCB0aGUgdmlzaWJpbGl0eSBvbiBmaXJzdCBuYXZpZ2F0aW9uLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbkNvbGxhcHNlZCgpIHtcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBVUkwgYmFzZWQgb24gdGhlIHNyYy4gVGhlIEJhc2UgVVJMIGNhbiBiZSBzZXQgaW4gdGhlIGFwcGxpY2F0aW9uIG9wdGlvbnMgZG9jQmFzZVVybC5cbiAgICogQHBhcmFtIHNyYyBUaGUgc291cmNlIG9mIHRoZSBoZWxwIG9uIHRoZSBndWlkZS5cbiAgICogQHBhcmFtIGluZGV4IFRoaXMgZmxhZyBpcyB1c2VkIHRvIGNhbGwgdGhlIGluZGV4Lmpzb24gY29udGVudCBvZiBhIGd1aWRlLiBGb3IgZXhhbXBsZSwgXCJodHRwczovL3d3dy5jdW11bG9jaXR5LmNvbS9ndWlkZXMvdXNlcnMtZ3VpZGUvY29ja3BpdC9pbmRleC5qc29uXCIuXG4gICAqL1xuICBnZXRVcmwoc3JjID0gJycsIGluZGV4ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGxldCBkb2NzVXJsOiBVUkw7XG5cbiAgICB0cnkge1xuICAgICAgZG9jc1VybCA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldFVybFdpdGhEb2NzVmVyc2lvbih0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlKSlcbiAgICAgICAgICA6IG5ldyBVUkwodGhpcy5kb2NzU2VydmljZS5nZXRCYXNlVXJsKCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBkb2NzVXJsID0gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldEJhc2VVcmwoKSk7XG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IFt1cmwsIGhhc2hGcmFnbWVudF0gPSBzcmMuc3BsaXQoJyMnKTtcbiAgICB0aGlzLnNlY3Rpb25IZWFkaW5nID0gaGFzaEZyYWdtZW50O1xuXG4gICAgaWYgKGluZGV4KSB7XG4gICAgICBzcmMgPSBgJHt1cmx9aW5kZXguanNvbmA7XG4gICAgfVxuICAgIHJldHVybiBgJHtkb2NzVXJsLmhyZWZ9JHtzcmN9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGhlbHAgZGlhbG9nLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgdGhpcy5jbGVhbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlcXVlc3RDb250ZW50KCk7XG4gICAgaWYgKCF0aGlzLmljb24pIHtcbiAgICAgIHRoaXMuaWNvbiA9IHRoaXMucmVzb2x2ZUljb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcXVlc3RDb250ZW50KCkge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB0aGlzLnJlbmRlcihyZXEpO1xuICAgIHJlcS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpcy5yZW5kZXIocmVxKSk7XG4gICAgcmVxLm9wZW4oJ0dFVCcsIHRoaXMuZ2V0VXJsKHRoaXMuc3JjLCB0cnVlKSk7XG4gICAgcmVxLnJlc3BvbnNlVHlwZSA9ICdqc29uJztcbiAgICByZXEuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ3RleHQvaHRtbCcpO1xuICAgIHJlcS5zZW5kKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuKCkge1xuICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zZWN0aW9uQ29udGVudCA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaWNvbiA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmF2IC5hY3RpdmUgaScpLmNsYXNzTGlzdCkuZmluZChcbiAgICAgICAgY2xhc3NlcyA9PiBjbGFzc2VzLnN0YXJ0c1dpdGgoJ2M4eS1pY29uLScpIHx8IGNsYXNzZXMuc3RhcnRzV2l0aCgnZGx0LWM4eS1pY29uLScpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGljb24ucmVwbGFjZSgnZGx0LWM4eS1pY29uLScsICcnKS5yZXBsYWNlKCdjOHktaWNvbi0nLCAnYzh5LScpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICByZXR1cm4gJ2xpZmUtc2F2ZXInO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKHJlcTogWE1MSHR0cFJlcXVlc3QpIHtcbiAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICBpZiAocmVxLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkRhdGEgPSByZXEucmVzcG9uc2VbdGhpcy5zZWN0aW9uSGVhZGluZ107XG4gICAgICAgIGlmIChzZWN0aW9uRGF0YSkge1xuICAgICAgICAgIHRoaXMudGl0bGUgPSBzZWN0aW9uRGF0YS50aXRsZTtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25Db250ZW50ID0gc2VjdGlvbkRhdGEuaGVscGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgaXRlbUNsYXNzPVwicHVsbC1yaWdodCBtLWwtOFwiXG4gIFtwcmlvcml0eV09XCJwcmlvcml0eVwiXG4gICpuZ0lmPVwiISEoaGVscFNlcnZpY2UuY29udGV4dEhlbHAgfCBhc3luYylcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4taGVscFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWJvdXQgdGhpcyBwYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgZGF0YS1jeT1cImhlbHAtLWhlbHAtYnRuXCJcbiAgICB0b29sdGlwPVwie3sgJ0Fib3V0IHRoaXMgcGFnZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFtkZWxheV09XCI3NTBcIlxuICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiIWlzQ29sbGFwc2VkXCJcbiAgICBhcmlhLWNvbnRyb2xzPVwiY29sbGFwc2VIZWxwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiaXNDb2xsYXBzZWQgPyAnaGVscE9wZW5lZCcgOiAnaGVscENsb3NlZCdcIlxuICAgIFthY3Rpb25EYXRhXT1cInsgc3JjOiBzcmMgfVwiXG4gID48L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGRpdlxuICBpZD1cImNvbGxhcHNlSGVscFwiXG4gIGNsYXNzPVwiYzh5LWhlbHAtZHJhd2VyXCJcbiAgW2NvbGxhcHNlXT1cImlzQ29sbGFwc2VkXCJcbiAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4gIChjb2xsYXBzZWQpPVwib25Db2xsYXBzZWQoKVwiXG4+XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7ICdjOHktaGVscC1kcmF3ZXItYmxvY2snOiBpc0luaXQgfVwiXG4gICAgI2RvY091dGxldFxuICAgIGRhdGEtY3k9XCJjOHktaGVscC0tYzh5LWhlbHAtZHJhd2VyLWJsb2NrXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgPGlcbiAgICAgICAgICBbYzh5SWNvbl09XCIhaGFzRXJyb3IgPyBpY29uIDogJ3VubGluaydcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtd2FybmluZyc6IGhhc0Vycm9yLCAndGV4dC1tdXRlZCc6ICFoYXNFcnJvciB9XCJcbiAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yIGljb24tNDhcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1sLTE2IGZsZXgtZ3Jvd1wiICpuZ0lmPVwiIWhhc0Vycm9yXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvIG0tYi0xNlwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAhaGVscFNlcnZpY2UuaXNTdXBwb3J0ZWRMYW5ndWFnZSgpICYmXG4gICAgICAgICAgICAgICFzaG93TGFuZ1dhcm5pbmcgJiZcbiAgICAgICAgICAgICAgIWhlbHBTZXJ2aWNlLmlzV2FybmluZ0FsZXJ0Vmlld2VkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Nsb3NlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgc2hvd0xhbmdXYXJuaW5nID0gIXNob3dMYW5nV2FybmluZztcbiAgICAgICAgICAgICAgICBoZWxwU2VydmljZS5pc1dhcm5pbmdBbGVydFZpZXdlZCA9ICFoZWxwU2VydmljZS5pc1dhcm5pbmdBbGVydFZpZXdlZFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj7Dlzwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7eyAnSGVscCBjb250ZW50IGlzIG9ubHkgYXZhaWxhYmxlIGluIEVuZ2xpc2guJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtYm9sZCB0ZXh0LXByaW1hcnkgcC10LTE2IG0tYi0xNlwiPlxuICAgICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgICAgICA8L2g0PlxuICAgICAgICAgIDxkaXYgaWQ9XCJoZWxwQ29udGVudFwiIGNsYXNzPVwiaGVscC1jb250ZW50XCIgW2lubmVySFRNTF09XCJzZWN0aW9uQ29udGVudFwiIGRhdGEtY3k9XCJoZWxwLS1jOHktaGVscC1jb250ZW50XCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWwtMTYgcC10LTE2IGZsZXgtZ3Jvd1wiICpuZ0lmPVwiaGFzRXJyb3JcIj5cbiAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWJvbGQgbS1iLTE2XCIgdHJhbnNsYXRlPkNvbnRlbnQgY291bGRuJ3QgYmUgbG9hZGVkLjwvaDQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtY29udGVudFwiPlxuICAgICAgICAgICAgPHAgdHJhbnNsYXRlPkNoZWNrIGNvbm5lY3Rpb24gb3IgcmVsb2FkIHBhZ2UuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYzh5LWhlbHAtZHJhd2VyLWZvb3RlciBhbmltYXRlZCBmYWRlSW5cIlxuICAgIHN0eWxlPVwiYW5pbWF0aW9uLWRlbGF5OiAwLjM1c1wiXG4gICAgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvclwiXG4gICAgZGF0YS1jeT1cImM4eS1oZWxwLS1jOHktaGVscC1kcmF3ZXItZm9vdGVyXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3RpdGxlXT1cIidDbG9zZSBoZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhaXNDb2xsYXBzZWRcIlxuICAgICAgYXJpYS1jb250cm9scz1cImNvbGxhcHNlSGVscFwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBDbG9zZVxuICAgIDwvYnV0dG9uPlxuICAgIDxhXG4gICAgICBkYXRhLWN5PVwiaGVscC0taHJlZi12YWx1ZVwiXG4gICAgICBocmVmPVwie3sgaGFzRXJyb3IgPyBnZXRVcmwoKSA6IGdldFVybChzcmMpIH19XCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGUgKm5nSWY9XCIhaGFzRXJyb3JcIj5cbiAgICAgICAgT3BlbiB0aGVcbiAgICAgICAgPHNwYW4+VXNlciBndWlkZWBLRUVQX09SSUdJTkFMYDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZSAqbmdJZj1cImhhc0Vycm9yXCI+XG4gICAgICAgIENoZWNrIHRoZVxuICAgICAgICA8c3Bhbj5Vc2VyIGd1aWRlYEtFRVBfT1JJR0lOQUxgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -84,9 +84,9 @@ export class WelcomeToDeviceManagementComponent {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
WelcomeToDeviceManagementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WelcomeToDeviceManagementComponent, deps: [{ token: i1.Router }, { token: i2.NavigatorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
-
WelcomeToDeviceManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WelcomeToDeviceManagementComponent, selector: "c8y-welcome-to-devicemanagement", ngImport: i0, template: "<div class=\"welcome-widget\" tabindex=\"0\">\n <div class=\"p-16 text-center\" *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"d-flex fit-h\" *ngIf=\"!isLoading\">\n <div class=\"col-xs-12 a-s-stretch col-md-12\">\n <div class=\"card-group interact-grid fit-h\">\n <div *ngFor=\"let link of quickLinks\" class=\"col-xs-4 no-gutter\">\n <button\n class=\"btn-clean card text-pre-normal\"\n [ngClass]=\"{ 'm-b-0': true }\"\n type=\"button\"\n [title]=\"link.label | translate\"\n (click)=\"link.click ? link.click() : false\"\n c8yProductExperience\n [actionName]=\"'welcomeWidgetClicked'\"\n [actionData]=\"{ link: link.label }\"\n >\n <c8y-quick-link [icon]=\"link.icon\" [label]=\"link.label\"></c8y-quick-link>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i2.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i2.QuickLinkComponent, selector: "c8y-quick-link", inputs: ["icon", "label"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
|
|
87
|
+
WelcomeToDeviceManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WelcomeToDeviceManagementComponent, selector: "c8y-welcome-to-devicemanagement", ngImport: i0, template: "<div class=\"welcome-widget\" tabindex=\"0\">\n <div class=\"p-16 text-center\" *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"d-flex fit-h\" *ngIf=\"!isLoading\">\n <div class=\"col-xs-12 a-s-stretch col-md-12\">\n <div class=\"card-group interact-grid fit-h\">\n <div *ngFor=\"let link of quickLinks\" class=\"col-xs-4 no-gutter\">\n <button\n class=\"btn-clean card text-pre-normal\"\n [ngClass]=\"{ 'm-b-0': true }\"\n type=\"button\"\n [title]=\"link.label | translate\"\n (click)=\"link.click ? link.click() : false\"\n c8yProductExperience\n [actionName]=\"'welcomeWidgetClicked'\"\n [actionData]=\"{ link: link.label }\"\n data-cy=\"devicemanagement-welcome--quick-link\"\n >\n <c8y-quick-link [icon]=\"link.icon\" [label]=\"link.label\"></c8y-quick-link>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i2.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i2.QuickLinkComponent, selector: "c8y-quick-link", inputs: ["icon", "label"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WelcomeToDeviceManagementComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
90
|
-
args: [{ selector: 'c8y-welcome-to-devicemanagement', template: "<div class=\"welcome-widget\" tabindex=\"0\">\n <div class=\"p-16 text-center\" *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"d-flex fit-h\" *ngIf=\"!isLoading\">\n <div class=\"col-xs-12 a-s-stretch col-md-12\">\n <div class=\"card-group interact-grid fit-h\">\n <div *ngFor=\"let link of quickLinks\" class=\"col-xs-4 no-gutter\">\n <button\n class=\"btn-clean card text-pre-normal\"\n [ngClass]=\"{ 'm-b-0': true }\"\n type=\"button\"\n [title]=\"link.label | translate\"\n (click)=\"link.click ? link.click() : false\"\n c8yProductExperience\n [actionName]=\"'welcomeWidgetClicked'\"\n [actionData]=\"{ link: link.label }\"\n >\n <c8y-quick-link [icon]=\"link.icon\" [label]=\"link.label\"></c8y-quick-link>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
90
|
+
args: [{ selector: 'c8y-welcome-to-devicemanagement', template: "<div class=\"welcome-widget\" tabindex=\"0\">\n <div class=\"p-16 text-center\" *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"d-flex fit-h\" *ngIf=\"!isLoading\">\n <div class=\"col-xs-12 a-s-stretch col-md-12\">\n <div class=\"card-group interact-grid fit-h\">\n <div *ngFor=\"let link of quickLinks\" class=\"col-xs-4 no-gutter\">\n <button\n class=\"btn-clean card text-pre-normal\"\n [ngClass]=\"{ 'm-b-0': true }\"\n type=\"button\"\n [title]=\"link.label | translate\"\n (click)=\"link.click ? link.click() : false\"\n c8yProductExperience\n [actionName]=\"'welcomeWidgetClicked'\"\n [actionData]=\"{ link: link.label }\"\n data-cy=\"devicemanagement-welcome--quick-link\"\n >\n <c8y-quick-link [icon]=\"link.icon\" [label]=\"link.label\"></c8y-quick-link>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
91
91
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.NavigatorService }]; } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsY29tZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9kZXZpY2UtbWFuYWdlbWVudC13ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvZGV2aWNlLW1hbmFnZW1lbnQtd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQVcsZ0JBQWdCLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVF6QyxNQUFNLE9BQU8sa0NBQWtDO0lBTzdDLFlBQW9CLE1BQWMsRUFBVSxTQUEyQjtRQUFuRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFOdkUsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFDN0IsY0FBUyxHQUFHLElBQUksQ0FBQztJQUt5RCxDQUFDO0lBRTNFLEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFD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QUFRLENBQUMsQ0FBQztTQUNyRTtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OytIQS9GVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyx1RUNWL0MsaWdDQTBCQTsyRkRoQmEsa0NBQWtDO2tCQUo5QyxTQUFTOytCQUNFLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQsIERvY0xpbmssIE5hdmlnYXRvclNlcnZpY2UsIE5hdmlnYXRvck5vZGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbnR5cGUgUXVpY2tMaW5rID0gUGljazxEb2NMaW5rLCAnbGFiZWwnIHwgJ2NsaWNrJyB8ICdpY29uJz47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS13ZWxjb21lLXRvLWRldmljZW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2VsY29tZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2VsY29tZVRvRGV2aWNlTWFuYWdlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcXVpY2tMaW5rczogUXVpY2tMaW5rW10gPSBbXTtcbiAgaXNMb2FkaW5nID0gdHJ1ZTtcblxuICBwcml2YXRlIG5hdk5vZGVzOiBOYXZpZ2F0b3JOb2RlW107XG4gIHByaXZhdGUgbmF2U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBuYXZpZ2F0b3I6IE5hdmlnYXRvclNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5uYXZTdWJzY3JpcHRpb24gPSB0aGlzLm5hdmlnYXRvci5pdGVtcyQuc3Vic2NyaWJlKG5vZGVzID0+IHtcbiAgICAgIHRoaXMubmF2Tm9kZXMgPSBub2RlcztcbiAgICAgIHRoaXMuY3JlYXRlQWxsRGV2aWNlc1F1aWNrTGluaygpO1xuICAgICAgdGhpcy5jcmVhdGVRdWlja2xpbmtSZWdpc3RlckRldmljZSgpO1xuICAgICAgdGhpcy5jcmVhdGVRdWlja2xpbmtBZGRHcm91cCgpO1xuICAgICAgdGhpcy5jcmVhdGVBZGREZXZpY2VQcm9maWxlUXVpY2tMaW5rKCk7XG4gICAgICB0aGlzLmNyZWF0ZUFkZFNvZnR3YXJlUXVpY2tMaW5rKCk7XG4gICAgICB0aGlzLmNyZWF0ZUFkZEZpcm13YXJlUXVpY2tMaW5rKCk7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMubmF2U3Vic2NyaXB0aW9uICYmICF0aGlzLm5hdlN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIHRoaXMubmF2U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbGxEZXZpY2VzUXVpY2tMaW5rKCkge1xuICAgIHRoaXMuY3JlYXRlUXVpY2tMaW5rVG9OYXZOb2RlKFsnRGV2aWNlcycsICdBbGwgZGV2aWNlcyddKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUXVpY2tsaW5rUmVnaXN0ZXJEZXZpY2UoKSB7XG4gICAgdGhpcy5jcmVhdGVRdWlja0xpbmtUb05hdk5vZGUoWydEZXZpY2VzJywgJ1JlZ2lzdHJhdGlvbiddLCB7XG4gICAgICBsYWJlbDogZ2V0dGV4dCgnUmVnaXN0ZXIgZGV2aWNlJylcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUXVpY2tsaW5rQWRkR3JvdXAoKSB7XG4gICAgdGhpcy5jcmVhdGVRdWlja0xpbmtUb05hdk5vZGUoWydHcm91cHMnXSwge1xuICAgICAgbGFiZWw6IGdldHRleHQoJ0FkZCBncm91cCcpLFxuICAgICAgaWNvbjogJ2M4eS1ncm91cC1hZGQnXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUFkZERldmljZVByb2ZpbGVRdWlja0xpbmsoKSB7XG4gICAgdGhpcy5jcmVhdGVRdWlja0xpbmtUb05hdk5vZGUoWydNYW5hZ2VtZW50JywgJ0RldmljZSBwcm9maWxlcyddLCB7XG4gICAgICBsYWJlbDogZ2V0dGV4dCgnQWRkIGRldmljZSBwcm9maWxlJylcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQWRkU29mdHdhcmVRdWlja0xpbmsoKSB7XG4gICAgdGhpcy5jcmVhdGVRdWlja0xpbmtUb05hdk5vZGUoWydNYW5hZ2VtZW50JywgJ1NvZnR3YXJlIHJlcG9zaXRvcnknXSwge1xuICAgICAgbGFiZWw6IGdldHRleHQoJ0FkZCBzb2Z0d2FyZScpXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUFkZEZpcm13YXJlUXVpY2tMaW5rKCkge1xuICAgIHRoaXMuY3JlYXRlUXVpY2tMaW5rVG9OYXZOb2RlKFsnTWFuYWdlbWVudCcsICdGaXJtd2FyZSByZXBvc2l0b3J5J10sIHtcbiAgICAgIGxhYmVsOiBnZXR0ZXh0KCdBZGQgZmlybXdhcmUnKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVRdWlja0xpbmtUb05hdk5vZGUoXG4gICAgbmF2Tm9kZVBhdGhMYWJlbHM6IHN0cmluZ1tdLFxuICAgIHF1aWNrTGlua092ZXJyaWRlczogUGFydGlhbDxEb2NMaW5rPiA9IHt9XG4gICkge1xuICAgIGNvbnN0IG5hdk5vZGUgPSB0aGlzLmZpbmRWaXNpYmxlTmF2Tm9kZShuYXZOb2RlUGF0aExhYmVscyk7XG5cbiAgICBpZiAoIW5hdk5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBxdWlja0xpbmsgPSB7XG4gICAgICBpY29uOiBuYXZOb2RlLmljb24sXG4gICAgICBsYWJlbDogbmF2Tm9kZS5sYWJlbCxcbiAgICAgIC4uLnF1aWNrTGlua092ZXJyaWRlcyxcbiAgICAgIGNsaWNrOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIG5hdk5vZGUucGFyZW50c1swXS5vcGVuID0gdHJ1ZTtcbiAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChuYXZOb2RlLnBhdGgpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5xdWlja0xpbmtzLnB1c2gocXVpY2tMaW5rKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFZpc2libGVOYXZOb2RlKFxuICAgIG5hdk5vZGVQYXRoTGFiZWxzOiBzdHJpbmdbXSxcbiAgICBuYXZOb2RlczogTmF2aWdhdG9yTm9kZVtdID0gdGhpcy5uYXZOb2Rlc1xuICApOiBOYXZpZ2F0b3JOb2RlIHtcbiAgICBjb25zdCBjdXJyZW50TGFiZWwgPSBuYXZOb2RlUGF0aExhYmVscy5zaGlmdCgpO1xuICAgIGNvbnN0IG5hdk5vZGUgPSBuYXZOb2Rlcy5maW5kKG5hdk5vZGUgPT4gIW5hdk5vZGUuaGlkZGVuICYmIG5hdk5vZGUubGFiZWwgPT09IGN1cnJlbnRMYWJlbCk7XG4gICAgaWYgKG5hdk5vZGUgJiYgbmF2Tm9kZVBhdGhMYWJlbHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZFZpc2libGVOYXZOb2RlKG5hdk5vZGVQYXRoTGFiZWxzLCBuYXZOb2RlLmNoaWxkcmVuKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hdk5vZGU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3ZWxjb21lLXdpZGdldFwiIHRhYmluZGV4PVwiMFwiPlxuICA8ZGl2IGNsYXNzPVwicC0xNiB0ZXh0LWNlbnRlclwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZpdC1oXCIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBhLXMtc3RyZXRjaCBjb2wtbWQtMTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyb3VwIGludGVyYWN0LWdyaWQgZml0LWhcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGluayBvZiBxdWlja0xpbmtzXCIgY2xhc3M9XCJjb2wteHMtNCBuby1ndXR0ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1jbGVhbiBjYXJkIHRleHQtcHJlLW5vcm1hbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdtLWItMCc6IHRydWUgfVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJsaW5rLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJsaW5rLmNsaWNrID8gbGluay5jbGljaygpIDogZmFsc2VcIlxuICAgICAgICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgICAgICAgIFthY3Rpb25OYW1lXT1cIid3ZWxjb21lV2lkZ2V0Q2xpY2tlZCdcIlxuICAgICAgICAgICAgW2FjdGlvbkRhdGFdPVwieyBsaW5rOiBsaW5rLmxhYmVsIH1cIlxuICAgICAgICAgICAgZGF0YS1jeT1cImRldmljZW1hbmFnZW1lbnQtd2VsY29tZS0tcXVpY2stbGlua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGM4eS1xdWljay1saW5rIFtpY29uXT1cImxpbmsuaWNvblwiIFtsYWJlbF09XCJsaW5rLmxhYmVsXCI+PC9jOHktcXVpY2stbGluaz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|