@c8y/ngx-components 1018.503.1 → 1018.503.23
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/core/common/ApplicationOptions.d.ts +4 -2
- package/core/common/files.service.d.ts +10 -2
- package/core/common/global-config.service.d.ts +1 -1
- package/core/common/permissions.service.d.ts +69 -2
- package/core/common/tenant-ui.service.d.ts +1 -1
- package/core/i18n/pattern-messages.data.d.ts +20 -20
- package/esm2020/assets-navigator/asset-node.service.mjs +11 -4
- package/esm2020/auth-configuration/auth-configuration.guard.mjs +5 -2
- package/esm2020/auth-configuration/factories/navigation.factory.mjs +3 -3
- package/esm2020/cockpit-config/cockpit-config.guard.mjs +2 -2
- package/esm2020/cockpit-config/cockpit-config.service.mjs +2 -2
- package/esm2020/context-dashboard/add-dashboard.factory.mjs +13 -3
- package/esm2020/context-dashboard/context-dashboard.component.mjs +2 -2
- package/esm2020/context-dashboard/context-dashboard.service.mjs +11 -3
- package/esm2020/context-dashboard/dashboard-detail.component.mjs +7 -2
- package/esm2020/context-dashboard/report-dashboard/report-dashboard-list.component.mjs +5 -3
- package/esm2020/core/bottom-drawer/bottom-drawer.service.mjs +1 -1
- package/esm2020/core/common/ApplicationOptions.mjs +1 -1
- package/esm2020/core/common/files.service.mjs +20 -4
- package/esm2020/core/common/global-config.service.mjs +7 -2
- package/esm2020/core/common/permissions.service.mjs +69 -2
- package/esm2020/core/common/tenant-ui.service.mjs +3 -2
- package/esm2020/core/common/user-preferences/user-preferences.service.mjs +10 -2
- package/esm2020/core/docs/support-outlet/support-outlet.component.mjs +3 -2
- package/esm2020/core/drop-area/drop-area.component.mjs +3 -1
- package/esm2020/core/i18n/pattern-messages.data.mjs +21 -21
- package/esm2020/core/setup/setup.service.mjs +2 -2
- package/esm2020/core/user/user-edit.component.mjs +1 -1
- package/esm2020/ecosystem/application-properties/application-properties.component.mjs +2 -2
- package/esm2020/ecosystem/application-properties/subscription-modal/subscription-modal.component.mjs +3 -3
- package/esm2020/ecosystem/ecosystem-navigation.factory.mjs +3 -3
- package/esm2020/ecosystem/packages/package-list/packages-list.component.mjs +2 -2
- package/esm2020/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.mjs +2 -2
- package/esm2020/files-repository/files-repository.guard.mjs +6 -3
- package/esm2020/location/location.component.mjs +20 -13
- package/esm2020/map/cluster-map.component.mjs +19 -11
- package/esm2020/map/cluster-map.mjs +8 -3
- package/esm2020/map/map-status.component.mjs +19 -5
- package/esm2020/map/map.component.mjs +10 -10
- package/esm2020/map/map.model.mjs +1 -19
- package/esm2020/map/map.service.mjs +24 -1
- package/esm2020/protocol-lwm2m/components/bootstrap-parameters/lwm2m-bootstrap-parameters.component.mjs +2 -2
- package/esm2020/protocol-lwm2m/components/configuration/typed-forms/form-wrapper-base.component.mjs +2 -2
- package/esm2020/register-device/register-device-navigation.factory.mjs +3 -3
- package/esm2020/replace-device/replace-device.service.mjs +15 -7
- package/esm2020/reports/export-schedules.component.mjs +3 -3
- package/esm2020/repository/configuration/device-tab/configuration-preview.component.mjs +14 -6
- package/esm2020/sms-gateway/sms-gateway.guard.mjs +2 -2
- package/esm2020/sms-gateway/sms-gateway.module.mjs +6 -6
- package/esm2020/sub-assets/add-group/add-group.component.mjs +7 -2
- package/esm2020/sub-assets/asset-properties-item.component.mjs +6 -6
- package/esm2020/sub-assets/groups.component.mjs +5 -2
- package/esm2020/sub-assets/sub-assets.component.mjs +7 -2
- package/esm2020/sub-assets/sub-assets.service.mjs +22 -10
- package/esm2020/tenants/tenant-list/tenant-list.component.mjs +12 -7
- package/esm2020/upgrade/ng1/downgraded.services.mjs +3 -2
- package/esm2020/upgrade/ng1/index.mjs +4 -3
- package/esm2020/widgets/cockpit/index.mjs +1 -1
- package/esm2020/widgets/device-management/index.mjs +1 -1
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs +10 -3
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-auth-configuration.mjs +7 -4
- package/fesm2015/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-cockpit-config.mjs +3 -3
- package/fesm2015/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +35 -10
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem.mjs +8 -8
- package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-files-repository.mjs +6 -3
- package/fesm2015/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-location.mjs +20 -13
- package/fesm2015/c8y-ngx-components-location.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-map.mjs +174 -142
- package/fesm2015/c8y-ngx-components-map.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs +2 -2
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-register-device.mjs +3 -3
- package/fesm2015/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-replace-device.mjs +16 -8
- package/fesm2015/c8y-ngx-components-replace-device.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-reports.mjs +2 -2
- package/fesm2015/c8y-ngx-components-reports.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-configuration.mjs +13 -5
- package/fesm2015/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-sms-gateway.mjs +6 -6
- package/fesm2015/c8y-ngx-components-sms-gateway.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-sub-assets.mjs +43 -18
- package/fesm2015/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-tenants.mjs +11 -6
- package/fesm2015/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-upgrade.mjs +4 -2
- package/fesm2015/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-device-management.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +126 -29
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs +10 -3
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-auth-configuration.mjs +7 -4
- package/fesm2020/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-cockpit-config.mjs +3 -3
- package/fesm2020/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +35 -10
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem.mjs +8 -8
- package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-files-repository.mjs +6 -3
- package/fesm2020/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-location.mjs +20 -13
- package/fesm2020/c8y-ngx-components-location.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-map.mjs +174 -142
- package/fesm2020/c8y-ngx-components-map.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs +2 -2
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-bootstrap-parameters.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
- package/fesm2020/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-register-device.mjs +3 -3
- package/fesm2020/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-replace-device.mjs +16 -8
- package/fesm2020/c8y-ngx-components-replace-device.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-reports.mjs +2 -2
- package/fesm2020/c8y-ngx-components-reports.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-configuration.mjs +13 -5
- package/fesm2020/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-sms-gateway.mjs +6 -6
- package/fesm2020/c8y-ngx-components-sms-gateway.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-sub-assets.mjs +43 -18
- package/fesm2020/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-tenants.mjs +11 -6
- package/fesm2020/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-upgrade.mjs +4 -2
- package/fesm2020/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-device-management.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +126 -29
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +3 -0
- package/location/location.component.d.ts +2 -2
- package/map/cluster-map.component.d.ts +3 -1
- package/map/map-status.component.d.ts +12 -1
- package/map/map.component.d.ts +1 -1
- package/map/map.model.d.ts +0 -1
- package/map/map.service.d.ts +6 -0
- package/package.json +1 -1
- package/replace-device/replace-device.service.d.ts +3 -1
- package/tenants/tenant-list/tenant-list.component.d.ts +4 -2
- package/upgrade/ng1/downgraded.services.d.ts +1 -0
- package/widgets/cockpit/index.d.ts +2 -1
- package/widgets/device-management/index.d.ts +2 -1
|
@@ -5,7 +5,7 @@ import { BehaviorSubject, from } from 'rxjs';
|
|
|
5
5
|
import { expand, reduce, shareReplay, takeWhile } from 'rxjs/operators';
|
|
6
6
|
import { saveAs } from 'file-saver';
|
|
7
7
|
import { TenantService, TenantStatus, UserService } from '@c8y/client';
|
|
8
|
-
import { AlertService, AppStateService, gettext, ModalService, Status, TenantUiService, PasswordService } from '@c8y/ngx-components';
|
|
8
|
+
import { AlertService, AppStateService, gettext, ModalService, Status, TenantUiService, PasswordService, Permissions } from '@c8y/ngx-components';
|
|
9
9
|
import { StatusFilteringFormRendererComponent } from './status.filtering-form-renderer.component';
|
|
10
10
|
import { CreationTimeFilteringFormRendererComponent } from './creation-time.filtering-form-renderer.component';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
@@ -15,7 +15,7 @@ import * as i3 from "@c8y/client";
|
|
|
15
15
|
import * as i4 from "@angular/common";
|
|
16
16
|
import * as i5 from "@angular/router";
|
|
17
17
|
export class TenantListComponent {
|
|
18
|
-
constructor(appState, alertService, modalService, translateService, tenantService, tenantUiService, location, passwordService, userService) {
|
|
18
|
+
constructor(appState, alertService, modalService, translateService, tenantService, tenantUiService, location, passwordService, userService, permissionsService) {
|
|
19
19
|
this.appState = appState;
|
|
20
20
|
this.alertService = alertService;
|
|
21
21
|
this.modalService = modalService;
|
|
@@ -25,7 +25,12 @@ export class TenantListComponent {
|
|
|
25
25
|
this.location = location;
|
|
26
26
|
this.passwordService = passwordService;
|
|
27
27
|
this.userService = userService;
|
|
28
|
+
this.permissionsService = permissionsService;
|
|
28
29
|
this.tenants$ = new BehaviorSubject(undefined);
|
|
30
|
+
this.isPermittedToCreateTenanant = this.permissionsService.hasAnyRole([
|
|
31
|
+
Permissions.ROLE_TENANT_MANAGEMENT_ADMIN,
|
|
32
|
+
Permissions.ROLE_TENANT_MANAGEMENT_CREATE
|
|
33
|
+
]);
|
|
29
34
|
this.TOP_TENANT_NAME = 'management';
|
|
30
35
|
this.title = null;
|
|
31
36
|
this.loadMoreItemsLabel = gettext('Load more tenants');
|
|
@@ -255,10 +260,10 @@ export class TenantListComponent {
|
|
|
255
260
|
saveAs(blob, filename);
|
|
256
261
|
}
|
|
257
262
|
}
|
|
258
|
-
TenantListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TenantListComponent, deps: [{ token: i1.AppStateService }, { token: i1.AlertService }, { token: i1.ModalService }, { token: i2.TranslateService }, { token: i3.TenantService }, { token: i1.TenantUiService }, { token: i4.Location }, { token: i1.PasswordService }, { token: i3.UserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
259
|
-
TenantListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TenantListComponent, selector: "c8y-tenant-list", ngImport: i0, template: "<c8y-title>\n {{ 'Subtenants' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-layers\"\n label=\"{{ 'Tenants' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-layers'\"\n [label]=\"'Subtenants' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"!!(appState.state$ | async).newsletter\"\n [placement]=\"'right'\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n 'Downloads the list of emails of users subscribed for newsletter on the current tenant and its subtenants.'\n | translate\n }}\"\n type=\"button\"\n (click)=\"downloadNewsletterEmails()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Email addresses' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Create tenant' | translate }}\"\n type=\"button\"\n (click)=\"createTenant()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Create tenant' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/enterprise-tenant/#managing-tenants\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"tenants$ | async\"\n [pagination]=\"pagination\"\n [showSearch]=\"showSearch\"\n [actionControls]=\"actionControls\"\n (onReload)=\"loadTenants()\"\n >\n <div class=\"c8y-empty-state j-c-center\">\n <ng-container *ngIf=\"!(tenants$ | async)\">\n <c8y-loading></c8y-loading>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length === 0\">\n <div class=\"text-center\">\n <h1 c8yIcon=\"c8y-layers\"></h1>\n <h3 translate>There are no tenants defined.</h3>\n <p translate>Create the first tenant.</p>\n <div>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create tenant' | translate }}\"\n (click)=\"createTenant()\"\n >\n {{ 'Create tenant' | translate }}\n </button>\n </div>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/enterprise-tenant/#managing-tenants\">\n User guide`KEEP_ORIGINAL`\n </a>\n .\n </small>\n </p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length > 0\">\n <div class=\"text-center\">\n <h1\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"search\"\n ></h1>\n <h3 translate>No tenants to display.</h3>\n <p translate>Refine your search terms or check your spelling.</p>\n </div>\n </ng-container>\n </div>\n\n <c8y-column name=\"company\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <a [routerLink]=\"['/tenants', context.item.id]\">{{ context.value }}</a>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"parent\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value || currentTenant.name }}\">\n {{ context.value || currentTenant.name }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"creationTime\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"status\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span\n title=\"{{ 'Active`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.ACTIVE\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n </span>\n <span\n title=\"{{ 'Suspended`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.SUSPENDED\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i1.CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: i1.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i1.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i1.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "c8yDate" }] });
|
|
263
|
+
TenantListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TenantListComponent, deps: [{ token: i1.AppStateService }, { token: i1.AlertService }, { token: i1.ModalService }, { token: i2.TranslateService }, { token: i3.TenantService }, { token: i1.TenantUiService }, { token: i4.Location }, { token: i1.PasswordService }, { token: i3.UserService }, { token: i1.Permissions }], target: i0.ɵɵFactoryTarget.Component });
|
|
264
|
+
TenantListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TenantListComponent, selector: "c8y-tenant-list", ngImport: i0, template: "<c8y-title>\n {{ 'Subtenants' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-layers\"\n label=\"{{ 'Tenants' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-layers'\"\n [label]=\"'Subtenants' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"!!(appState.state$ | async).newsletter\"\n [placement]=\"'right'\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n 'Downloads the list of emails of users subscribed for newsletter on the current tenant and its subtenants.'\n | translate\n }}\"\n type=\"button\"\n (click)=\"downloadNewsletterEmails()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Email addresses' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Create tenant' | translate }}\"\n type=\"button\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Create tenant' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/enterprise-tenant/#managing-tenants\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"tenants$ | async\"\n [pagination]=\"pagination\"\n [showSearch]=\"showSearch\"\n [actionControls]=\"actionControls\"\n (onReload)=\"loadTenants()\"\n >\n <div class=\"c8y-empty-state j-c-center\">\n <ng-container *ngIf=\"!(tenants$ | async)\">\n <c8y-loading></c8y-loading>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length === 0\">\n <div class=\"text-center\">\n <h1 c8yIcon=\"c8y-layers\"></h1>\n <h3 translate>There are no tenants defined.</h3>\n <p translate>Create the first tenant.</p>\n <div>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create tenant' | translate }}\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n {{ 'Create tenant' | translate }}\n </button>\n </div>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/enterprise-tenant/#managing-tenants\">\n User guide`KEEP_ORIGINAL`\n </a>\n .\n </small>\n </p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length > 0\">\n <div class=\"text-center\">\n <h1\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"search\"\n ></h1>\n <h3 translate>No tenants to display.</h3>\n <p translate>Refine your search terms or check your spelling.</p>\n </div>\n </ng-container>\n </div>\n\n <c8y-column name=\"company\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <a [routerLink]=\"['/tenants', context.item.id]\">{{ context.value }}</a>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"parent\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value || currentTenant.name }}\">\n {{ context.value || currentTenant.name }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"creationTime\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"status\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span\n title=\"{{ 'Active`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.ACTIVE\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n </span>\n <span\n title=\"{{ 'Suspended`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.SUSPENDED\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i1.CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: i1.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i1.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i1.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "c8yDate" }] });
|
|
260
265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TenantListComponent, decorators: [{
|
|
261
266
|
type: Component,
|
|
262
|
-
args: [{ selector: 'c8y-tenant-list', template: "<c8y-title>\n {{ 'Subtenants' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-layers\"\n label=\"{{ 'Tenants' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-layers'\"\n [label]=\"'Subtenants' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"!!(appState.state$ | async).newsletter\"\n [placement]=\"'right'\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n 'Downloads the list of emails of users subscribed for newsletter on the current tenant and its subtenants.'\n | translate\n }}\"\n type=\"button\"\n (click)=\"downloadNewsletterEmails()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Email addresses' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Create tenant' | translate }}\"\n type=\"button\"\n (click)=\"createTenant()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Create tenant' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/enterprise-tenant/#managing-tenants\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"tenants$ | async\"\n [pagination]=\"pagination\"\n [showSearch]=\"showSearch\"\n [actionControls]=\"actionControls\"\n (onReload)=\"loadTenants()\"\n >\n <div class=\"c8y-empty-state j-c-center\">\n <ng-container *ngIf=\"!(tenants$ | async)\">\n <c8y-loading></c8y-loading>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length === 0\">\n <div class=\"text-center\">\n <h1 c8yIcon=\"c8y-layers\"></h1>\n <h3 translate>There are no tenants defined.</h3>\n <p translate>Create the first tenant.</p>\n <div>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create tenant' | translate }}\"\n (click)=\"createTenant()\"\n >\n {{ 'Create tenant' | translate }}\n </button>\n </div>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/enterprise-tenant/#managing-tenants\">\n User guide`KEEP_ORIGINAL`\n </a>\n .\n </small>\n </p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length > 0\">\n <div class=\"text-center\">\n <h1\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"search\"\n ></h1>\n <h3 translate>No tenants to display.</h3>\n <p translate>Refine your search terms or check your spelling.</p>\n </div>\n </ng-container>\n </div>\n\n <c8y-column name=\"company\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <a [routerLink]=\"['/tenants', context.item.id]\">{{ context.value }}</a>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"parent\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value || currentTenant.name }}\">\n {{ context.value || currentTenant.name }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"creationTime\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"status\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span\n title=\"{{ 'Active`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.ACTIVE\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n </span>\n <span\n title=\"{{ 'Suspended`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.SUSPENDED\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n" }]
|
|
263
|
-
}], ctorParameters: function () { return [{ type: i1.AppStateService }, { type: i1.AlertService }, { type: i1.ModalService }, { type: i2.TranslateService }, { type: i3.TenantService }, { type: i1.TenantUiService }, { type: i4.Location }, { type: i1.PasswordService }, { type: i3.UserService }]; } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVuYW50cy90ZW5hbnQtbGlzdC90ZW5hbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi90ZW5hbnRzL3RlbmFudC1saXN0L3RlbmFudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE9BQU8sRUFJTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBRUwsWUFBWSxFQUNaLGVBQWUsRUFLZixPQUFPLEVBQ1AsWUFBWSxFQUVaLE1BQU0sRUFDTixlQUFlLEVBQ2YsZUFBZSxFQUNoQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7O0FBTS9HLE1BQU0sT0FBTyxtQkFBbUI7SUF3QjlCLFlBQ1MsUUFBeUIsRUFDeEIsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLGVBQWdDLEVBQ2hDLFFBQWtCLEVBQ2xCLGVBQWdDLEVBQ2hDLFdBQXdCO1FBUnpCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBaENsQyxhQUFRLEdBQStCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBR3RFLG9CQUFlLEdBQUcsWUFBWSxDQUFDO1FBRS9CLFVBQUssR0FBVyxJQUFJLENBQUM7UUFDckIsdUJBQWtCLEdBQVcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDMUQsc0JBQWlCLEdBQVcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFeEQsbUJBQWMsR0FBbUI7WUFDL0IsUUFBUSxFQUFFLEtBQUs7WUFDZixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxJQUFJO1lBQ1osVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQztRQUVGLFlBQU8sR0FBYSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEMsZUFBVSxHQUFlLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLG1CQUFjLEdBQW9CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRTNELGlCQUFZLEdBQUcsWUFBWSxDQUFDO0lBWXpCLENBQUM7SUFFSixLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDckYsSUFBSSxDQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQ3JGLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxJQUFJLENBQUMsRUFDbEUsTUFBTSxDQUNKLENBQUMsT0FBa0IsRUFBRSxVQUFnQyxFQUFFLEVBQUUsQ0FBQztZQUN4RCxHQUFHLE9BQU87WUFDVixHQUFHLFVBQVUsQ0FBQyxJQUFJO1NBQ25CLEVBQ0QsRUFBRSxDQUNILEVBQ0QsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmO2FBQ0EsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU87WUFDTDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDekIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFNBQVMsRUFBRSxLQUFrQjthQUM5QjtZQUNEO2dCQUNFLElBQUksRUFBRSxJQUFJO2dCQUNWLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNyQixJQUFJLEVBQUUsSUFBSTtnQkFDVixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLE1BQU0sRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO2dCQUNoQyxJQUFJLEVBQUUsUUFBUTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxhQUFhO2dCQUNuQixNQUFNLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQztnQkFDL0IsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUMxQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLDhCQUE4QixFQUFFLDBDQUEwQztnQkFDMUUsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLE1BQU0sRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3JDLElBQUksRUFBRSxvQ0FBb0M7Z0JBQzFDLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVBQUUsSUFBSTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRSxJQUFJO2dCQUNoQiw4QkFBOEIsRUFBRSxvQ0FBb0M7Z0JBQ3BFLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFNBQVMsRUFBRSxLQUFLO2FBQ2pCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTztZQUNMLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLENBQUM7U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU87WUFDTDtnQkFDRSxJQUFJLHFDQUF3QjtnQkFDNUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQzdCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2FBQzdDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxPQUFPLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pDLFFBQVEsRUFBRSxDQUFDLE1BQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7Z0JBQzFELE1BQU0sRUFBRSxDQUFDLE1BQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7YUFDdEQ7WUFDRDtnQkFDRSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEMsUUFBUSxFQUFFLENBQUMsTUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztnQkFDekQsTUFBTSxFQUFFLENBQUMsTUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUNuRDtZQUNEO2dCQUNFLElBQUkseUNBQTBCO2dCQUM5QixJQUFJLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO2dCQUMvQixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7YUFDdEM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWU7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNO1FBQ3pCLElBQUk7WUFDRixNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7Z0JBQzVELEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07YUFDNUIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztTQUN6RDtRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN4QztTQUNGO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTTtRQUN4QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FDOUIsa0VBQWtFLENBQ25FLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUksR0FBRztZQUNYLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzlDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2FBQ2QsQ0FBQztZQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ3ZDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1NBQy9CLENBQUM7UUFDRixJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEUsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNFLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtnQkFDdEIsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO29CQUM1RCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ2IsTUFBTSxFQUFFLFlBQVksQ0FBQyxTQUFTO2lCQUMvQixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7YUFDekQ7U0FDRjtRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN4QztTQUNGO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUNqQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQzlCLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUc7WUFDWCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUM5QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3ZCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUN2QyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNaLE1BQU0sTUFBTSxHQUFHO1lBQ2IsRUFBRSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztTQUM5QixDQUFDO1FBQ0YsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzRSxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FDdkIsT0FBTyxDQUFDLHFFQUFxRSxDQUFDLENBQy9FLENBQUM7YUFDSDtTQUNGO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWU7UUFDdEIsT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFlO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCO1FBQzVCLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbkUsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O2dIQTlRVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix1REN0Q2hDLGlrSkEwSkE7MkZEcEhhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBleHBhbmQsIHJlZHVjZSwgc2hhcmVSZXBsYXksIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xuXG5pbXBvcnQge1xuICBJQ3VycmVudFRlbmFudCxcbiAgSVJlc3VsdExpc3QsXG4gIElUZW5hbnQsXG4gIFRlbmFudFNlcnZpY2UsXG4gIFRlbmFudFN0YXR1cyxcbiAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBBcHBTdGF0ZVNlcnZpY2UsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBDb2x1bW4sXG4gIFNvcnRPcmRlcixcbiAgRGlzcGxheU9wdGlvbnMsXG4gIGdldHRleHQsXG4gIE1vZGFsU2VydmljZSxcbiAgUGFnaW5hdGlvbixcbiAgU3RhdHVzLFxuICBUZW5hbnRVaVNlcnZpY2UsXG4gIFBhc3N3b3JkU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgU3RhdHVzRmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0dXMuZmlsdGVyaW5nLWZvcm0tcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0aW9uVGltZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRpb24tdGltZS5maWx0ZXJpbmctZm9ybS1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdGVuYW50LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB0ZW5hbnRzJDogQmVoYXZpb3JTdWJqZWN0PElUZW5hbnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG4gIGN1cnJlbnRUZW5hbnQ6IElDdXJyZW50VGVuYW50O1xuICBpc01hbmFnZW1lbnRUZW5hbnQ6IGJvb2xlYW47XG4gIFRPUF9URU5BTlRfTkFNRSA9ICdtYW5hZ2VtZW50JztcblxuICB0aXRsZTogc3RyaW5nID0gbnVsbDtcbiAgbG9hZE1vcmVJdGVtc0xhYmVsOiBzdHJpbmcgPSBnZXR0ZXh0KCdMb2FkIG1vcmUgdGVuYW50cycpO1xuICBsb2FkaW5nSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZGluZyB0ZW5hbnRz4oCmJyk7XG5cbiAgZGlzcGxheU9wdGlvbnM6IERpc3BsYXlPcHRpb25zID0ge1xuICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICBzdHJpcGVkOiB0cnVlLFxuICAgIGZpbHRlcjogdHJ1ZSxcbiAgICBncmlkSGVhZGVyOiB0cnVlXG4gIH07XG5cbiAgY29sdW1uczogQ29sdW1uW10gPSB0aGlzLmdldENvbHVtbnMoKTtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHRoaXMuZ2V0UGFnaW5hdGlvbigpO1xuICBzaG93U2VhcmNoID0gdHJ1ZTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IHRoaXMuZ2V0QWN0aW9uQ29udHJvbHMoKTtcblxuICBUZW5hbnRTdGF0dXMgPSBUZW5hbnRTdGF0dXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRlbmFudFNlcnZpY2U6IFRlbmFudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW5hbnRVaVNlcnZpY2U6IFRlbmFudFVpU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHBhc3N3b3JkU2VydmljZTogUGFzc3dvcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmN1cnJlbnRUZW5hbnQgPSB0aGlzLmFwcFN0YXRlLmN1cnJlbnRUZW5hbnQudmFsdWU7XG4gICAgdGhpcy5pc01hbmFnZW1lbnRUZW5hbnQgPSBhd2FpdCB0aGlzLnRlbmFudFVpU2VydmljZS5pc01hbmFnZW1lbnRUZW5hbnQoKTtcbiAgICB0aGlzLmxvYWRUZW5hbnRzKCk7XG4gIH1cblxuICBsb2FkVGVuYW50cygpIHtcbiAgICB0aGlzLnRlbmFudHMkLm5leHQodW5kZWZpbmVkKTtcbiAgICBmcm9tKHRoaXMudGVuYW50U2VydmljZS5saXN0KHsgcGFnZVNpemU6IDIwMDAsIHdpdGhUb3RhbFBhZ2VzOiB0cnVlLCB3aXRoQXBwczogZmFsc2UgfSkpXG4gICAgICAucGlwZShcbiAgICAgICAgZXhwYW5kKHJlc3VsdExpc3QgPT4gcmVzdWx0TGlzdC5wYWdpbmcubmV4dFBhZ2UgIT09IG51bGwgJiYgcmVzdWx0TGlzdC5wYWdpbmcubmV4dCgpKSxcbiAgICAgICAgdGFrZVdoaWxlKHJlc3VsdExpc3QgPT4gcmVzdWx0TGlzdC5wYWdpbmcubmV4dFBhZ2UgIT09IG51bGwsIHRydWUpLFxuICAgICAgICByZWR1Y2UoXG4gICAgICAgICAgKHRlbmFudHM6IElUZW5hbnRbXSwgcmVzdWx0TGlzdDogSVJlc3VsdExpc3Q8SVRlbmFudD4pID0+IFtcbiAgICAgICAgICAgIC4uLnRlbmFudHMsXG4gICAgICAgICAgICAuLi5yZXN1bHRMaXN0LmRhdGFcbiAgICAgICAgICBdLFxuICAgICAgICAgIFtdXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRlbmFudHMgPT4gdGhpcy50ZW5hbnRzJC5uZXh0KHRlbmFudHMpKTtcbiAgfVxuXG4gIGdldENvbHVtbnMoKTogQ29sdW1uW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb21wYW55JyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdUZW5hbnQnKSxcbiAgICAgICAgcGF0aDogJ2NvbXBhbnknLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydE9yZGVyOiAnYXNjJyBhcyBTb3J0T3JkZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnSUQnKSxcbiAgICAgICAgcGF0aDogJ2lkJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkb21haW4nLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ0RvbWFpbicpLFxuICAgICAgICBwYXRoOiAnZG9tYWluJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwYXJlbnQnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ1BhcmVudCB0ZW5hbnQnKSxcbiAgICAgICAgcGF0aDogJ3BhcmVudCcsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29udGFjdE5hbWUnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ0NvbnRhY3QgbmFtZScpLFxuICAgICAgICBwYXRoOiAnY29udGFjdE5hbWUnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NyZWF0aW9uVGltZScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnQ3JlYXRlZCcpLFxuICAgICAgICBwYXRoOiAnY3JlYXRpb25UaW1lJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50OiBDcmVhdGlvblRpbWVGaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb21wb25lbnQsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnZXh0ZXJuYWxSZWZlcmVuY2UnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ0V4dGVybmFsIHJlZmVyZW5jZScpLFxuICAgICAgICBwYXRoOiAnY3VzdG9tUHJvcGVydGllcy5leHRlcm5hbFJlZmVyZW5jZScsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3RhdHVzJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdTdGF0dXMnKSxcbiAgICAgICAgcGF0aDogJ3N0YXR1cycsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIGZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudDogU3RhdHVzRmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50LFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgcmVzaXphYmxlOiBmYWxzZVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXRQYWdpbmF0aW9uKCk6IFBhZ2luYXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICBjdXJyZW50UGFnZTogMVxuICAgIH07XG4gIH1cblxuICBnZXRBY3Rpb25Db250cm9scygpOiBBY3Rpb25Db250cm9sW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkVkaXQsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ0VkaXRgdGVuYW50YCcpLFxuICAgICAgICBjYWxsYmFjazogdGVuYW50ID0+IHRoaXMuZ29Ub0RldGFpbHModGVuYW50KVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2FjdGl2YXRlVGVuYW50QWN0aW9uJyxcbiAgICAgICAgaWNvbjogJ3Bvd2VyLW9mZicsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ0FjdGl2YXRlYHRlbmFudGAnKSxcbiAgICAgICAgY2FsbGJhY2s6ICh0ZW5hbnQ6IElUZW5hbnQpID0+IHRoaXMuYWN0aXZhdGVUZW5hbnQodGVuYW50KSxcbiAgICAgICAgc2hvd0lmOiAodGVuYW50OiBJVGVuYW50KSA9PiB0aGlzLmlzU3VzcGVuZGVkKHRlbmFudClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdzdXNwZW5kVGVuYW50QWN0aW9uJyxcbiAgICAgICAgaWNvbjogJ3Bvd2VyLW9mZicsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ1N1c3BlbmRgdGVuYW50YCcpLFxuICAgICAgICBjYWxsYmFjazogKHRlbmFudDogSVRlbmFudCkgPT4gdGhpcy5zdXNwZW5kVGVuYW50KHRlbmFudCksXG4gICAgICAgIHNob3dJZjogKHRlbmFudDogSVRlbmFudCkgPT4gdGhpcy5pc0FjdGl2ZSh0ZW5hbnQpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ0RlbGV0ZWB0ZW5hbnRgJyksXG4gICAgICAgIGNhbGxiYWNrOiB0ZW5hbnQgPT4gdGhpcy5kZWxldGUodGVuYW50KSxcbiAgICAgICAgc2hvd0lmOiAoKSA9PiB0aGlzLmlzTWFuYWdlbWVudFRlbmFudFxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBjcmVhdGVUZW5hbnQoKSB7XG4gICAgdGhpcy5sb2NhdGlvbi5nbygnL3RlbmFudHMvbmV3Jyk7XG4gIH1cblxuICBnb1RvRGV0YWlscyh0ZW5hbnQ6IElUZW5hbnQpIHtcbiAgICB0aGlzLmxvY2F0aW9uLmdvKGAvdGVuYW50cy8ke3RlbmFudC5pZH1gKTtcbiAgfVxuXG4gIGFzeW5jIGFjdGl2YXRlVGVuYW50KHRlbmFudCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRhdGE6IHNhdmVkVGVuYW50IH0gPSBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UudXBkYXRlKHtcbiAgICAgICAgaWQ6IHRlbmFudC5pZCxcbiAgICAgICAgc3RhdHVzOiBUZW5hbnRTdGF0dXMuQUNUSVZFXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGVuYW50LCBzYXZlZFRlbmFudCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ1RlbmFudCBhY3RpdmF0ZWQuJykpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc3VzcGVuZFRlbmFudCh0ZW5hbnQpIHtcbiAgICBjb25zdCB0aXRsZSA9IGdldHRleHQoJ1N1c3BlbmQgdGVuYW50Jyk7XG4gICAgY29uc3QgY29uZmlybWF0aW9uVGV4dCA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBzdXNwZW5kIHRlbmFudCBcInt7IGNvbXBhbnkgfX1cIiAoSUQgXCJ7eyBpZCB9fVwiKS4nXG4gICAgKTtcbiAgICBjb25zdCBwcm9jZWVkID0gZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nKTtcbiAgICBjb25zdCBib2R5ID0gW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoY29uZmlybWF0aW9uVGV4dCwge1xuICAgICAgICBjb21wYW55OiB0ZW5hbnQuY29tcGFueSxcbiAgICAgICAgaWQ6IHRlbmFudC5pZFxuICAgICAgfSksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChwcm9jZWVkKVxuICAgIF0uam9pbignICcpO1xuICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgIG9rOiBnZXR0ZXh0KCdTdXNwZW5kYHRlbmFudGAnKVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0odGl0bGUsIGJvZHksIFN0YXR1cy5EQU5HRVIsIGxhYmVscyk7XG4gICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jb25maXJtUGFzc3dvcmQoKS50b1Byb21pc2UoKTtcbiAgICAgIGlmIChjb25maXJtZWQgPT09IHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhOiBzYXZlZFRlbmFudCB9ID0gYXdhaXQgdGhpcy50ZW5hbnRTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICAgICAgaWQ6IHRlbmFudC5pZCxcbiAgICAgICAgICBzdGF0dXM6IFRlbmFudFN0YXR1cy5TVVNQRU5ERURcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGVuYW50LCBzYXZlZFRlbmFudCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnVGVuYW50IHN1c3BlbmRlZC4nKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUodGVuYW50KSB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdEZWxldGUgdGVuYW50Jyk7XG4gICAgY29uc3QgY29uZmlybWF0aW9uVGV4dCA9IGdldHRleHQoXG4gICAgICAnWW91IGFyZSBhYm91dCB0byBkZWxldGUgdGVuYW50IFwie3sgY29tcGFueSB9fVwiIChJRCBcInt7IGlkIH19XCIpLidcbiAgICApO1xuICAgIGNvbnN0IGhpbnQgPSBnZXR0ZXh0KCdUaGlzIG9wZXJhdGlvbiBpcyBpcnJldmVyc2libGUuJyk7XG4gICAgY29uc3QgcHJvY2VlZCA9IGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/Jyk7XG4gICAgY29uc3QgYm9keSA9IFtcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGNvbmZpcm1hdGlvblRleHQsIHtcbiAgICAgICAgY29tcGFueTogdGVuYW50LmNvbXBhbnksXG4gICAgICAgIGlkOiB0ZW5hbnQuaWRcbiAgICAgIH0pLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoaGludCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChwcm9jZWVkKVxuICAgIF0uam9pbignICcpO1xuICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgIG9rOiBnZXR0ZXh0KCdEZWxldGVgdGVuYW50YCcpXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybSh0aXRsZSwgYm9keSwgU3RhdHVzLkRBTkdFUiwgbGFiZWxzKTtcbiAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IHRoaXMucGFzc3dvcmRTZXJ2aWNlLmNvbmZpcm1QYXNzd29yZCgpLnRvUHJvbWlzZSgpO1xuICAgICAgaWYgKGNvbmZpcm1lZCA9PT0gdHJ1ZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnRlbmFudFNlcnZpY2UuZGVsZXRlKHRlbmFudCk7XG4gICAgICAgIGNvbnN0IHRlbmFudHNXaXRob3V0UmVtb3ZlZE9uZSA9IHRoaXMudGVuYW50cyQudmFsdWUuZmlsdGVyKHQgPT4gdCAhPT0gdGVuYW50KTtcbiAgICAgICAgdGhpcy50ZW5hbnRzJC5uZXh0KHRlbmFudHNXaXRob3V0UmVtb3ZlZE9uZSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgZ2V0dGV4dCgnVGVuYW50IGlzIGJlaW5nIGRlbGV0ZWQgaW4gdGhlIGJhY2tncm91bmQuIFRoaXMgbWlnaHQgdGFrZSBhIHdoaWxl4oCmJylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzQWN0aXZlKHRlbmFudDogSVRlbmFudCkge1xuICAgIHJldHVybiB0ZW5hbnQuc3RhdHVzID09PSBUZW5hbnRTdGF0dXMuQUNUSVZFO1xuICB9XG5cbiAgaXNTdXNwZW5kZWQodGVuYW50OiBJVGVuYW50KSB7XG4gICAgcmV0dXJuIHRlbmFudC5zdGF0dXMgPT09IFRlbmFudFN0YXR1cy5TVVNQRU5ERUQ7XG4gIH1cblxuICBhc3luYyBkb3dubG9hZE5ld3NsZXR0ZXJFbWFpbHMoKSB7XG4gICAgY29uc3QgeyByZXMsIGRhdGEgfSA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuZ2V0TmV3c2xldHRlckVtYWlscygpO1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKTtcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb24gPSByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IC9maWxlbmFtZT1cIiguKilcIi8uZXhlYyhjb250ZW50RGlzcG9zaXRpb24pWzFdO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHsgdHlwZTogY29udGVudFR5cGUgfSk7XG4gICAgc2F2ZUFzKGJsb2IsIGZpbGVuYW1lKTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT5cbiAge3sgJ1N1YnRlbmFudHMnIHwgdHJhbnNsYXRlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIGljb249XCJjOHktbGF5ZXJzXCJcbiAgICBsYWJlbD1cInt7ICdUZW5hbnRzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1sYXllcnMnXCJcbiAgICBbbGFiZWxdPVwiJ1N1YnRlbmFudHMnIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gICpuZ0lmPVwiISEoYXBwU3RhdGUuc3RhdGUkIHwgYXN5bmMpLm5ld3NsZXR0ZXJcIlxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3tcbiAgICAgICdEb3dubG9hZHMgdGhlIGxpc3Qgb2YgZW1haWxzIG9mIHVzZXJzIHN1YnNjcmliZWQgZm9yIG5ld3NsZXR0ZXIgb24gdGhlIGN1cnJlbnQgdGVuYW50IGFuZCBpdHMgc3VidGVuYW50cy4nXG4gICAgICAgIHwgdHJhbnNsYXRlXG4gICAgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJkb3dubG9hZE5ld3NsZXR0ZXJFbWFpbHMoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwiZG93bmxvYWRcIj48L2k+XG4gICAge3sgJ0VtYWlsIGFkZHJlc3NlcycgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0NyZWF0ZSB0ZW5hbnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiY3JlYXRlVGVuYW50KClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdDcmVhdGUgdGVuYW50JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1oZWxwIHNyYz1cIi91c2Vycy1ndWlkZS9lbnRlcnByaXNlLXRlbmFudC8jbWFuYWdpbmctdGVuYW50c1wiPjwvYzh5LWhlbHA+XG5cbjxkaXYgY2xhc3M9XCJjb250ZW50LWZ1bGxwYWdlIGJvcmRlci10b3AgYm9yZGVyLWJvdHRvbVwiPlxuICA8Yzh5LWRhdGEtZ3JpZFxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW2xvYWRNb3JlSXRlbXNMYWJlbF09XCJsb2FkTW9yZUl0ZW1zTGFiZWxcIlxuICAgIFtsb2FkaW5nSXRlbXNMYWJlbF09XCJsb2FkaW5nSXRlbXNMYWJlbFwiXG4gICAgW2Rpc3BsYXlPcHRpb25zXT1cImRpc3BsYXlPcHRpb25zXCJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbcm93c109XCJ0ZW5hbnRzJCB8IGFzeW5jXCJcbiAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICBbc2hvd1NlYXJjaF09XCJzaG93U2VhcmNoXCJcbiAgICBbYWN0aW9uQ29udHJvbHNdPVwiYWN0aW9uQ29udHJvbHNcIlxuICAgIChvblJlbG9hZCk9XCJsb2FkVGVuYW50cygpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktZW1wdHktc3RhdGUgai1jLWNlbnRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEodGVuYW50cyQgfCBhc3luYylcIj5cbiAgICAgICAgPGM4eS1sb2FkaW5nPjwvYzh5LWxvYWRpbmc+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIih0ZW5hbnRzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxoMSBjOHlJY29uPVwiYzh5LWxheWVyc1wiPjwvaDE+XG4gICAgICAgICAgPGgzIHRyYW5zbGF0ZT5UaGVyZSBhcmUgbm8gdGVuYW50cyBkZWZpbmVkLjwvaDM+XG4gICAgICAgICAgPHAgdHJhbnNsYXRlPkNyZWF0ZSB0aGUgZmlyc3QgdGVuYW50LjwvcD5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0NyZWF0ZSB0ZW5hbnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZVRlbmFudCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0NyZWF0ZSB0ZW5hbnQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cCBjOHktZ3VpZGUtZG9jcz5cbiAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgbmdOb25CaW5kYWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBGaW5kIG91dCBtb3JlIGluIHRoZVxuICAgICAgICAgICAgICA8YSBjOHktZ3VpZGUtaHJlZj1cInVzZXJzLWd1aWRlL2VudGVycHJpc2UtdGVuYW50LyNtYW5hZ2luZy10ZW5hbnRzXCI+XG4gICAgICAgICAgICAgICAgVXNlciBndWlkZWBLRUVQX09SSUdJTkFMYFxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIC5cbiAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHRlbmFudHMkIHwgYXN5bmMpPy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxoMVxuICAgICAgICAgICAgY2xhc3M9XCJjOHktaWNvbi1kdW9jb2xvclwiXG4gICAgICAgICAgICBjOHlJY29uPVwic2VhcmNoXCJcbiAgICAgICAgICA+PC9oMT5cbiAgICAgICAgICA8aDMgdHJhbnNsYXRlPk5vIHRlbmFudHMgdG8gZGlzcGxheS48L2gzPlxuICAgICAgICAgIDxwIHRyYW5zbGF0ZT5SZWZpbmUgeW91ciBzZWFyY2ggdGVybXMgb3IgY2hlY2sgeW91ciBzcGVsbGluZy48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8Yzh5LWNvbHVtbiBuYW1lPVwiY29tcGFueVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqYzh5Q2VsbFJlbmRlcmVyRGVmPVwibGV0IGNvbnRleHRcIj5cbiAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBjb250ZXh0LnZhbHVlIH19XCI+XG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvdGVuYW50cycsIGNvbnRleHQuaXRlbS5pZF1cIj57eyBjb250ZXh0LnZhbHVlIH19PC9hPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2M4eS1jb2x1bW4+XG5cbiAgICA8Yzh5LWNvbHVtbiBuYW1lPVwicGFyZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpjOHlDZWxsUmVuZGVyZXJEZWY9XCJsZXQgY29udGV4dFwiPlxuICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGNvbnRleHQudmFsdWUgfHwgY3VycmVudFRlbmFudC5uYW1lIH19XCI+XG4gICAgICAgICAge3sgY29udGV4dC52YWx1ZSB8fCBjdXJyZW50VGVuYW50Lm5hbWUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jOHktY29sdW1uPlxuXG4gICAgPGM4eS1jb2x1bW4gbmFtZT1cImNyZWF0aW9uVGltZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqYzh5Q2VsbFJlbmRlcmVyRGVmPVwibGV0IGNvbnRleHRcIj5cbiAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBjb250ZXh0LnZhbHVlIHwgYzh5RGF0ZSB9fVwiPlxuICAgICAgICAgIHt7IGNvbnRleHQudmFsdWUgfCBjOHlEYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYzh5LWNvbHVtbj5cblxuICAgIDxjOHktY29sdW1uIG5hbWU9XCJzdGF0dXNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKmM4eUNlbGxSZW5kZXJlckRlZj1cImxldCBjb250ZXh0XCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgdGl0bGU9XCJ7eyAnQWN0aXZlYHRlbmFudGAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAqbmdJZj1cImNvbnRleHQuaXRlbS5zdGF0dXMgPT09IFRlbmFudFN0YXR1cy5BQ1RJVkVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zdWNjZXNzXCJcbiAgICAgICAgICAgIGM4eUljb249XCJjaGVjay1jaXJjbGVcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICB0aXRsZT1cInt7ICdTdXNwZW5kZWRgdGVuYW50YCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICpuZ0lmPVwiY29udGV4dC5pdGVtLnN0YXR1cyA9PT0gVGVuYW50U3RhdHVzLlNVU1BFTkRFRFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiXG4gICAgICAgICAgICBjOHlJY29uPVwiYmFuXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2M4eS1jb2x1bW4+XG4gIDwvYzh5LWRhdGEtZ3JpZD5cbjwvZGl2PlxuIl19
|
|
267
|
+
args: [{ selector: 'c8y-tenant-list', template: "<c8y-title>\n {{ 'Subtenants' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-layers\"\n label=\"{{ 'Tenants' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-layers'\"\n [label]=\"'Subtenants' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"!!(appState.state$ | async).newsletter\"\n [placement]=\"'right'\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n 'Downloads the list of emails of users subscribed for newsletter on the current tenant and its subtenants.'\n | translate\n }}\"\n type=\"button\"\n (click)=\"downloadNewsletterEmails()\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Email addresses' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Create tenant' | translate }}\"\n type=\"button\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Create tenant' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/enterprise-tenant/#managing-tenants\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [rows]=\"tenants$ | async\"\n [pagination]=\"pagination\"\n [showSearch]=\"showSearch\"\n [actionControls]=\"actionControls\"\n (onReload)=\"loadTenants()\"\n >\n <div class=\"c8y-empty-state j-c-center\">\n <ng-container *ngIf=\"!(tenants$ | async)\">\n <c8y-loading></c8y-loading>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length === 0\">\n <div class=\"text-center\">\n <h1 c8yIcon=\"c8y-layers\"></h1>\n <h3 translate>There are no tenants defined.</h3>\n <p translate>Create the first tenant.</p>\n <div>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Create tenant' | translate }}\"\n (click)=\"createTenant()\"\n [disabled]=\"!isPermittedToCreateTenanant\"\n >\n {{ 'Create tenant' | translate }}\n </button>\n </div>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/enterprise-tenant/#managing-tenants\">\n User guide`KEEP_ORIGINAL`\n </a>\n .\n </small>\n </p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(tenants$ | async)?.length > 0\">\n <div class=\"text-center\">\n <h1\n class=\"c8y-icon-duocolor\"\n c8yIcon=\"search\"\n ></h1>\n <h3 translate>No tenants to display.</h3>\n <p translate>Refine your search terms or check your spelling.</p>\n </div>\n </ng-container>\n </div>\n\n <c8y-column name=\"company\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <a [routerLink]=\"['/tenants', context.item.id]\">{{ context.value }}</a>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"parent\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value || currentTenant.name }}\">\n {{ context.value || currentTenant.name }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"creationTime\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"status\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span\n title=\"{{ 'Active`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.ACTIVE\"\n >\n <i\n class=\"text-success\"\n c8yIcon=\"check-circle\"\n ></i>\n </span>\n <span\n title=\"{{ 'Suspended`tenant`' | translate }}\"\n *ngIf=\"context.item.status === TenantStatus.SUSPENDED\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"ban\"\n ></i>\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n" }]
|
|
268
|
+
}], ctorParameters: function () { return [{ type: i1.AppStateService }, { type: i1.AlertService }, { type: i1.ModalService }, { type: i2.TranslateService }, { type: i3.TenantService }, { type: i1.TenantUiService }, { type: i4.Location }, { type: i1.PasswordService }, { type: i3.UserService }, { type: i1.Permissions }]; } });
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVuYW50cy90ZW5hbnQtbGlzdC90ZW5hbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi90ZW5hbnRzL3RlbmFudC1saXN0L3RlbmFudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE9BQU8sRUFJTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBRUwsWUFBWSxFQUNaLGVBQWUsRUFLZixPQUFPLEVBQ1AsWUFBWSxFQUVaLE1BQU0sRUFDTixlQUFlLEVBQ2YsZUFBZSxFQUNmLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7O0FBTS9HLE1BQU0sT0FBTyxtQkFBbUI7SUE0QjlCLFlBQ1MsUUFBeUIsRUFDeEIsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLGFBQTRCLEVBQzVCLGVBQWdDLEVBQ2hDLFFBQWtCLEVBQ2xC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QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7Z0hBblJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVEQ3ZDaEMsNnFKQTRKQTsyRkRySGEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGV4cGFuZCwgcmVkdWNlLCBzaGFyZVJlcGxheSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5cbmltcG9ydCB7XG4gIElDdXJyZW50VGVuYW50LFxuICBJUmVzdWx0TGlzdCxcbiAgSVRlbmFudCxcbiAgVGVuYW50U2VydmljZSxcbiAgVGVuYW50U3RhdHVzLFxuICBVc2VyU2VydmljZVxufSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIENvbHVtbixcbiAgU29ydE9yZGVyLFxuICBEaXNwbGF5T3B0aW9ucyxcbiAgZ2V0dGV4dCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBQYWdpbmF0aW9uLFxuICBTdGF0dXMsXG4gIFRlbmFudFVpU2VydmljZSxcbiAgUGFzc3dvcmRTZXJ2aWNlLFxuICBQZXJtaXNzaW9uc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgU3RhdHVzRmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0dXMuZmlsdGVyaW5nLWZvcm0tcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0aW9uVGltZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRpb24tdGltZS5maWx0ZXJpbmctZm9ybS1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdGVuYW50LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVuYW50LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRlbmFudExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB0ZW5hbnRzJDogQmVoYXZpb3JTdWJqZWN0PElUZW5hbnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG4gIGlzUGVybWl0dGVkVG9DcmVhdGVUZW5hbmFudCA9IHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmhhc0FueVJvbGUoW1xuICAgIFBlcm1pc3Npb25zLlJPTEVfVEVOQU5UX01BTkFHRU1FTlRfQURNSU4sXG4gICAgUGVybWlzc2lvbnMuUk9MRV9URU5BTlRfTUFOQUdFTUVOVF9DUkVBVEVcbiAgXSk7XG4gIGN1cnJlbnRUZW5hbnQ6IElDdXJyZW50VGVuYW50O1xuICBpc01hbmFnZW1lbnRUZW5hbnQ6IGJvb2xlYW47XG4gIFRPUF9URU5BTlRfTkFNRSA9ICdtYW5hZ2VtZW50JztcblxuICB0aXRsZTogc3RyaW5nID0gbnVsbDtcbiAgbG9hZE1vcmVJdGVtc0xhYmVsOiBzdHJpbmcgPSBnZXR0ZXh0KCdMb2FkIG1vcmUgdGVuYW50cycpO1xuICBsb2FkaW5nSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZGluZyB0ZW5hbnRz4oCmJyk7XG5cbiAgZGlzcGxheU9wdGlvbnM6IERpc3BsYXlPcHRpb25zID0ge1xuICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICBzdHJpcGVkOiB0cnVlLFxuICAgIGZpbHRlcjogdHJ1ZSxcbiAgICBncmlkSGVhZGVyOiB0cnVlXG4gIH07XG5cbiAgY29sdW1uczogQ29sdW1uW10gPSB0aGlzLmdldENvbHVtbnMoKTtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHRoaXMuZ2V0UGFnaW5hdGlvbigpO1xuICBzaG93U2VhcmNoID0gdHJ1ZTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IHRoaXMuZ2V0QWN0aW9uQ29udHJvbHMoKTtcblxuICBUZW5hbnRTdGF0dXMgPSBUZW5hbnRTdGF0dXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRlbmFudFNlcnZpY2U6IFRlbmFudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW5hbnRVaVNlcnZpY2U6IFRlbmFudFVpU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHBhc3N3b3JkU2VydmljZTogUGFzc3dvcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVybWlzc2lvbnNTZXJ2aWNlOiBQZXJtaXNzaW9uc1xuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jdXJyZW50VGVuYW50ID0gdGhpcy5hcHBTdGF0ZS5jdXJyZW50VGVuYW50LnZhbHVlO1xuICAgIHRoaXMuaXNNYW5hZ2VtZW50VGVuYW50ID0gYXdhaXQgdGhpcy50ZW5hbnRVaVNlcnZpY2UuaXNNYW5hZ2VtZW50VGVuYW50KCk7XG4gICAgdGhpcy5sb2FkVGVuYW50cygpO1xuICB9XG5cbiAgbG9hZFRlbmFudHMoKSB7XG4gICAgdGhpcy50ZW5hbnRzJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgZnJvbSh0aGlzLnRlbmFudFNlcnZpY2UubGlzdCh7IHBhZ2VTaXplOiAyMDAwLCB3aXRoVG90YWxQYWdlczogdHJ1ZSwgd2l0aEFwcHM6IGZhbHNlIH0pKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGV4cGFuZChyZXN1bHRMaXN0ID0+IHJlc3VsdExpc3QucGFnaW5nLm5leHRQYWdlICE9PSBudWxsICYmIHJlc3VsdExpc3QucGFnaW5nLm5leHQoKSksXG4gICAgICAgIHRha2VXaGlsZShyZXN1bHRMaXN0ID0+IHJlc3VsdExpc3QucGFnaW5nLm5leHRQYWdlICE9PSBudWxsLCB0cnVlKSxcbiAgICAgICAgcmVkdWNlKFxuICAgICAgICAgICh0ZW5hbnRzOiBJVGVuYW50W10sIHJlc3VsdExpc3Q6IElSZXN1bHRMaXN0PElUZW5hbnQ+KSA9PiBbXG4gICAgICAgICAgICAuLi50ZW5hbnRzLFxuICAgICAgICAgICAgLi4ucmVzdWx0TGlzdC5kYXRhXG4gICAgICAgICAgXSxcbiAgICAgICAgICBbXVxuICAgICAgICApLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0ZW5hbnRzID0+IHRoaXMudGVuYW50cyQubmV4dCh0ZW5hbnRzKSk7XG4gIH1cblxuICBnZXRDb2x1bW5zKCk6IENvbHVtbltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnY29tcGFueScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnVGVuYW50JyksXG4gICAgICAgIHBhdGg6ICdjb21wYW55JyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIHNvcnRPcmRlcjogJ2FzYycgYXMgU29ydE9yZGVyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ0lEJyksXG4gICAgICAgIHBhdGg6ICdpZCcsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnZG9tYWluJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdEb21haW4nKSxcbiAgICAgICAgcGF0aDogJ2RvbWFpbicsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAncGFyZW50JyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdQYXJlbnQgdGVuYW50JyksXG4gICAgICAgIHBhdGg6ICdwYXJlbnQnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvbnRhY3ROYW1lJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdDb250YWN0IG5hbWUnKSxcbiAgICAgICAgcGF0aDogJ2NvbnRhY3ROYW1lJyxcbiAgICAgICAgZmlsdGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjcmVhdGlvblRpbWUnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ0NyZWF0ZWQnKSxcbiAgICAgICAgcGF0aDogJ2NyZWF0aW9uVGltZScsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIGZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudDogQ3JlYXRpb25UaW1lRmlsdGVyaW5nRm9ybVJlbmRlcmVyQ29tcG9uZW50LFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4dGVybmFsUmVmZXJlbmNlJyxcbiAgICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdFeHRlcm5hbCByZWZlcmVuY2UnKSxcbiAgICAgICAgcGF0aDogJ2N1c3RvbVByb3BlcnRpZXMuZXh0ZXJuYWxSZWZlcmVuY2UnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3N0YXR1cycsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU3RhdHVzJyksXG4gICAgICAgIHBhdGg6ICdzdGF0dXMnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBmaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb21wb25lbnQ6IFN0YXR1c0ZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIHJlc2l6YWJsZTogZmFsc2VcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgZ2V0UGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZVNpemU6IDEwLFxuICAgICAgY3VycmVudFBhZ2U6IDFcbiAgICB9O1xuICB9XG5cbiAgZ2V0QWN0aW9uQ29udHJvbHMoKTogQWN0aW9uQ29udHJvbFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5FZGl0LFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdFZGl0YHRlbmFudGAnKSxcbiAgICAgICAgY2FsbGJhY2s6IHRlbmFudCA9PiB0aGlzLmdvVG9EZXRhaWxzKHRlbmFudClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdhY3RpdmF0ZVRlbmFudEFjdGlvbicsXG4gICAgICAgIGljb246ICdwb3dlci1vZmYnLFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdBY3RpdmF0ZWB0ZW5hbnRgJyksXG4gICAgICAgIGNhbGxiYWNrOiAodGVuYW50OiBJVGVuYW50KSA9PiB0aGlzLmFjdGl2YXRlVGVuYW50KHRlbmFudCksXG4gICAgICAgIHNob3dJZjogKHRlbmFudDogSVRlbmFudCkgPT4gdGhpcy5pc1N1c3BlbmRlZCh0ZW5hbnQpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnc3VzcGVuZFRlbmFudEFjdGlvbicsXG4gICAgICAgIGljb246ICdwb3dlci1vZmYnLFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdTdXNwZW5kYHRlbmFudGAnKSxcbiAgICAgICAgY2FsbGJhY2s6ICh0ZW5hbnQ6IElUZW5hbnQpID0+IHRoaXMuc3VzcGVuZFRlbmFudCh0ZW5hbnQpLFxuICAgICAgICBzaG93SWY6ICh0ZW5hbnQ6IElUZW5hbnQpID0+IHRoaXMuaXNBY3RpdmUodGVuYW50KVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdEZWxldGVgdGVuYW50YCcpLFxuICAgICAgICBjYWxsYmFjazogdGVuYW50ID0+IHRoaXMuZGVsZXRlKHRlbmFudCksXG4gICAgICAgIHNob3dJZjogKCkgPT4gdGhpcy5pc01hbmFnZW1lbnRUZW5hbnRcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgY3JlYXRlVGVuYW50KCkge1xuICAgIHRoaXMubG9jYXRpb24uZ28oJy90ZW5hbnRzL25ldycpO1xuICB9XG5cbiAgZ29Ub0RldGFpbHModGVuYW50OiBJVGVuYW50KSB7XG4gICAgdGhpcy5sb2NhdGlvbi5nbyhgL3RlbmFudHMvJHt0ZW5hbnQuaWR9YCk7XG4gIH1cblxuICBhc3luYyBhY3RpdmF0ZVRlbmFudCh0ZW5hbnQpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBkYXRhOiBzYXZlZFRlbmFudCB9ID0gYXdhaXQgdGhpcy50ZW5hbnRTZXJ2aWNlLnVwZGF0ZSh7XG4gICAgICAgIGlkOiB0ZW5hbnQuaWQsXG4gICAgICAgIHN0YXR1czogVGVuYW50U3RhdHVzLkFDVElWRVxuICAgICAgfSk7XG4gICAgICBPYmplY3QuYXNzaWduKHRlbmFudCwgc2F2ZWRUZW5hbnQpO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdUZW5hbnQgYWN0aXZhdGVkLicpKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN1c3BlbmRUZW5hbnQodGVuYW50KSB7XG4gICAgY29uc3QgdGl0bGUgPSBnZXR0ZXh0KCdTdXNwZW5kIHRlbmFudCcpO1xuICAgIGNvbnN0IGNvbmZpcm1hdGlvblRleHQgPSBnZXR0ZXh0KFxuICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gc3VzcGVuZCB0ZW5hbnQgXCJ7eyBjb21wYW55IH19XCIgKElEIFwie3sgaWQgfX1cIikuJ1xuICAgICk7XG4gICAgY29uc3QgcHJvY2VlZCA9IGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/Jyk7XG4gICAgY29uc3QgYm9keSA9IFtcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGNvbmZpcm1hdGlvblRleHQsIHtcbiAgICAgICAgY29tcGFueTogdGVuYW50LmNvbXBhbnksXG4gICAgICAgIGlkOiB0ZW5hbnQuaWRcbiAgICAgIH0pLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocHJvY2VlZClcbiAgICBdLmpvaW4oJyAnKTtcbiAgICBjb25zdCBsYWJlbHMgPSB7XG4gICAgICBvazogZ2V0dGV4dCgnU3VzcGVuZGB0ZW5hbnRgJylcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKHRpdGxlLCBib2R5LCBTdGF0dXMuREFOR0VSLCBsYWJlbHMpO1xuICAgICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgdGhpcy5wYXNzd29yZFNlcnZpY2UuY29uZmlybVBhc3N3b3JkKCkudG9Qcm9taXNlKCk7XG4gICAgICBpZiAoY29uZmlybWVkID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YTogc2F2ZWRUZW5hbnQgfSA9IGF3YWl0IHRoaXMudGVuYW50U2VydmljZS51cGRhdGUoe1xuICAgICAgICAgIGlkOiB0ZW5hbnQuaWQsXG4gICAgICAgICAgc3RhdHVzOiBUZW5hbnRTdGF0dXMuU1VTUEVOREVEXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuYXNzaWduKHRlbmFudCwgc2F2ZWRUZW5hbnQpO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ1RlbmFudCBzdXNwZW5kZWQuJykpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlKHRlbmFudCkge1xuICAgIGNvbnN0IHRpdGxlID0gZ2V0dGV4dCgnRGVsZXRlIHRlbmFudCcpO1xuICAgIGNvbnN0IGNvbmZpcm1hdGlvblRleHQgPSBnZXR0ZXh0KFxuICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIHRlbmFudCBcInt7IGNvbXBhbnkgfX1cIiAoSUQgXCJ7eyBpZCB9fVwiKS4nXG4gICAgKTtcbiAgICBjb25zdCBoaW50ID0gZ2V0dGV4dCgnVGhpcyBvcGVyYXRpb24gaXMgaXJyZXZlcnNpYmxlLicpO1xuICAgIGNvbnN0IHByb2NlZWQgPSBnZXR0ZXh0KCdEbyB5b3Ugd2FudCB0byBwcm9jZWVkPycpO1xuICAgIGNvbnN0IGJvZHkgPSBbXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChjb25maXJtYXRpb25UZXh0LCB7XG4gICAgICAgIGNvbXBhbnk6IHRlbmFudC5jb21wYW55LFxuICAgICAgICBpZDogdGVuYW50LmlkXG4gICAgICB9KSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGhpbnQpLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocHJvY2VlZClcbiAgICBdLmpvaW4oJyAnKTtcbiAgICBjb25zdCBsYWJlbHMgPSB7XG4gICAgICBvazogZ2V0dGV4dCgnRGVsZXRlYHRlbmFudGAnKVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0odGl0bGUsIGJvZHksIFN0YXR1cy5EQU5HRVIsIGxhYmVscyk7XG4gICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jb25maXJtUGFzc3dvcmQoKS50b1Byb21pc2UoKTtcbiAgICAgIGlmIChjb25maXJtZWQgPT09IHRydWUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy50ZW5hbnRTZXJ2aWNlLmRlbGV0ZSh0ZW5hbnQpO1xuICAgICAgICBjb25zdCB0ZW5hbnRzV2l0aG91dFJlbW92ZWRPbmUgPSB0aGlzLnRlbmFudHMkLnZhbHVlLmZpbHRlcih0ID0+IHQgIT09IHRlbmFudCk7XG4gICAgICAgIHRoaXMudGVuYW50cyQubmV4dCh0ZW5hbnRzV2l0aG91dFJlbW92ZWRPbmUpO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKFxuICAgICAgICAgIGdldHRleHQoJ1RlbmFudCBpcyBiZWluZyBkZWxldGVkIGluIHRoZSBiYWNrZ3JvdW5kLiBUaGlzIG1pZ2h0IHRha2UgYSB3aGlsZeKApicpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpc0FjdGl2ZSh0ZW5hbnQ6IElUZW5hbnQpIHtcbiAgICByZXR1cm4gdGVuYW50LnN0YXR1cyA9PT0gVGVuYW50U3RhdHVzLkFDVElWRTtcbiAgfVxuXG4gIGlzU3VzcGVuZGVkKHRlbmFudDogSVRlbmFudCkge1xuICAgIHJldHVybiB0ZW5hbnQuc3RhdHVzID09PSBUZW5hbnRTdGF0dXMuU1VTUEVOREVEO1xuICB9XG5cbiAgYXN5bmMgZG93bmxvYWROZXdzbGV0dGVyRW1haWxzKCkge1xuICAgIGNvbnN0IHsgcmVzLCBkYXRhIH0gPSBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmdldE5ld3NsZXR0ZXJFbWFpbHMoKTtcbiAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk7XG4gICAgY29uc3QgY29udGVudERpc3Bvc2l0aW9uID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LWRpc3Bvc2l0aW9uJyk7XG4gICAgY29uc3QgZmlsZW5hbWUgPSAvZmlsZW5hbWU9XCIoLiopXCIvLmV4ZWMoY29udGVudERpc3Bvc2l0aW9uKVsxXTtcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xuICAgIHNhdmVBcyhibG9iLCBmaWxlbmFtZSk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+XG4gIHt7ICdTdWJ0ZW5hbnRzJyB8IHRyYW5zbGF0ZSB9fVxuPC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiYzh5LWxheWVyc1wiXG4gICAgbGFiZWw9XCJ7eyAnVGVuYW50cycgfCB0cmFuc2xhdGUgfX1cIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktbGF5ZXJzJ1wiXG4gICAgW2xhYmVsXT1cIidTdWJ0ZW5hbnRzJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICAqbmdJZj1cIiEhKGFwcFN0YXRlLnN0YXRlJCB8IGFzeW5jKS5uZXdzbGV0dGVyXCJcbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7XG4gICAgICAnRG93bmxvYWRzIHRoZSBsaXN0IG9mIGVtYWlscyBvZiB1c2VycyBzdWJzY3JpYmVkIGZvciBuZXdzbGV0dGVyIG9uIHRoZSBjdXJyZW50IHRlbmFudCBhbmQgaXRzIHN1YnRlbmFudHMuJ1xuICAgICAgICB8IHRyYW5zbGF0ZVxuICAgIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiZG93bmxvYWROZXdzbGV0dGVyRW1haWxzKClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cImRvd25sb2FkXCI+PC9pPlxuICAgIHt7ICdFbWFpbCBhZGRyZXNzZXMnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdDcmVhdGUgdGVuYW50JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImNyZWF0ZVRlbmFudCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiIWlzUGVybWl0dGVkVG9DcmVhdGVUZW5hbmFudFwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAge3sgJ0NyZWF0ZSB0ZW5hbnQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWhlbHAgc3JjPVwiL3VzZXJzLWd1aWRlL2VudGVycHJpc2UtdGVuYW50LyNtYW5hZ2luZy10ZW5hbnRzXCI+PC9jOHktaGVscD5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgYm9yZGVyLXRvcCBib3JkZXItYm90dG9tXCI+XG4gIDxjOHktZGF0YS1ncmlkXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbbG9hZE1vcmVJdGVtc0xhYmVsXT1cImxvYWRNb3JlSXRlbXNMYWJlbFwiXG4gICAgW2xvYWRpbmdJdGVtc0xhYmVsXT1cImxvYWRpbmdJdGVtc0xhYmVsXCJcbiAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtyb3dzXT1cInRlbmFudHMkIHwgYXN5bmNcIlxuICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICAgIFtzaG93U2VhcmNoXT1cInNob3dTZWFyY2hcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgKG9uUmVsb2FkKT1cImxvYWRUZW5hbnRzKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImM4eS1lbXB0eS1zdGF0ZSBqLWMtY2VudGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISh0ZW5hbnRzJCB8IGFzeW5jKVwiPlxuICAgICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHRlbmFudHMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGgxIGM4eUljb249XCJjOHktbGF5ZXJzXCI+PC9oMT5cbiAgICAgICAgICA8aDMgdHJhbnNsYXRlPlRoZXJlIGFyZSBubyB0ZW5hbnRzIGRlZmluZWQuPC9oMz5cbiAgICAgICAgICA8cCB0cmFuc2xhdGU+Q3JlYXRlIHRoZSBmaXJzdCB0ZW5hbnQuPC9wPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQ3JlYXRlIHRlbmFudCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlVGVuYW50KClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUGVybWl0dGVkVG9DcmVhdGVUZW5hbmFudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdDcmVhdGUgdGVuYW50JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgYzh5LWd1aWRlLWRvY3M+XG4gICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgIG5nTm9uQmluZGFibGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgRmluZCBvdXQgbW9yZSBpbiB0aGVcbiAgICAgICAgICAgICAgPGEgYzh5LWd1aWRlLWhyZWY9XCJ1c2Vycy1ndWlkZS9lbnRlcnByaXNlLXRlbmFudC8jbWFuYWdpbmctdGVuYW50c1wiPlxuICAgICAgICAgICAgICAgIFVzZXIgZ3VpZGVgS0VFUF9PUklHSU5BTGBcbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAuXG4gICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIih0ZW5hbnRzJCB8IGFzeW5jKT8ubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8aDFcbiAgICAgICAgICAgIGNsYXNzPVwiYzh5LWljb24tZHVvY29sb3JcIlxuICAgICAgICAgICAgYzh5SWNvbj1cInNlYXJjaFwiXG4gICAgICAgICAgPjwvaDE+XG4gICAgICAgICAgPGgzIHRyYW5zbGF0ZT5ObyB0ZW5hbnRzIHRvIGRpc3BsYXkuPC9oMz5cbiAgICAgICAgICA8cCB0cmFuc2xhdGU+UmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIG9yIGNoZWNrIHlvdXIgc3BlbGxpbmcuPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGM4eS1jb2x1bW4gbmFtZT1cImNvbXBhbnlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKmM4eUNlbGxSZW5kZXJlckRlZj1cImxldCBjb250ZXh0XCI+XG4gICAgICAgIDxzcGFuIHRpdGxlPVwie3sgY29udGV4dC52YWx1ZSB9fVwiPlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3RlbmFudHMnLCBjb250ZXh0Lml0ZW0uaWRdXCI+e3sgY29udGV4dC52YWx1ZSB9fTwvYT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jOHktY29sdW1uPlxuXG4gICAgPGM4eS1jb2x1bW4gbmFtZT1cInBhcmVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqYzh5Q2VsbFJlbmRlcmVyRGVmPVwibGV0IGNvbnRleHRcIj5cbiAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBjb250ZXh0LnZhbHVlIHx8IGN1cnJlbnRUZW5hbnQubmFtZSB9fVwiPlxuICAgICAgICAgIHt7IGNvbnRleHQudmFsdWUgfHwgY3VycmVudFRlbmFudC5uYW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYzh5LWNvbHVtbj5cblxuICAgIDxjOHktY29sdW1uIG5hbWU9XCJjcmVhdGlvblRpbWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKmM4eUNlbGxSZW5kZXJlckRlZj1cImxldCBjb250ZXh0XCI+XG4gICAgICAgIDxzcGFuIHRpdGxlPVwie3sgY29udGV4dC52YWx1ZSB8IGM4eURhdGUgfX1cIj5cbiAgICAgICAgICB7eyBjb250ZXh0LnZhbHVlIHwgYzh5RGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2M4eS1jb2x1bW4+XG5cbiAgICA8Yzh5LWNvbHVtbiBuYW1lPVwic3RhdHVzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpjOHlDZWxsUmVuZGVyZXJEZWY9XCJsZXQgY29udGV4dFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHRpdGxlPVwie3sgJ0FjdGl2ZWB0ZW5hbnRgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgKm5nSWY9XCJjb250ZXh0Lml0ZW0uc3RhdHVzID09PSBUZW5hbnRTdGF0dXMuQUNUSVZFXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc3VjY2Vzc1wiXG4gICAgICAgICAgICBjOHlJY29uPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgdGl0bGU9XCJ7eyAnU3VzcGVuZGVkYHRlbmFudGAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAqbmdJZj1cImNvbnRleHQuaXRlbS5zdGF0dXMgPT09IFRlbmFudFN0YXR1cy5TVVNQRU5ERURcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgYzh5SWNvbj1cImJhblwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9jOHktY29sdW1uPlxuICA8L2M4eS1kYXRhLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { downgradeInjectable } from '@angular/upgrade/static';
|
|
2
|
-
import { AlertService, AppStateService, CachedLocaleDictionaryService, DocsService, FilesService, GainsightService, HeaderService, ModalService, PasswordService, UserMenuService } from '@c8y/ngx-components';
|
|
2
|
+
import { AlertService, AppStateService, CachedLocaleDictionaryService, DocsService, FilesService, GainsightService, GlobalConfigService, HeaderService, ModalService, PasswordService, UserMenuService } from '@c8y/ngx-components';
|
|
3
3
|
import { ApiService } from '@c8y/ngx-components/api';
|
|
4
4
|
import { DeviceGridService } from '@c8y/ngx-components/device-grid';
|
|
5
5
|
import { DeviceTypeDetailEditedService } from '@c8y/ngx-components/device-protocols';
|
|
@@ -24,8 +24,9 @@ export const cachedLocaleDictionaryService = downgradeInjectable(CachedLocaleDic
|
|
|
24
24
|
export const serverMessagesService = downgradeInjectable(ServerMessagesService);
|
|
25
25
|
export const modalService = downgradeInjectable(ModalService);
|
|
26
26
|
export const gainsightService = downgradeInjectable(GainsightService);
|
|
27
|
+
export const globalConfigService = downgradeInjectable(GlobalConfigService);
|
|
27
28
|
export const filesService = downgradeInjectable(FilesService);
|
|
28
29
|
export const deviceTypeDetailEditedService = downgradeInjectable(DeviceTypeDetailEditedService);
|
|
29
30
|
export const replaceDeviceService = downgradeInjectable(ReplaceDeviceService);
|
|
30
31
|
export const deviceGridService = downgradeInjectable(DeviceGridService);
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmdyYWRlZC5zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3VwZ3JhZGUvbmcxL2Rvd25ncmFkZWQuc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsNkJBQTZCLEVBQzdCLFdBQVcsRUFDWCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2hCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDaEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLG1CQUFtQixDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDaEcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQ2hHLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRvd25ncmFkZUluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci91cGdyYWRlL3N0YXRpYyc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQ2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsXG4gIERvY3NTZXJ2aWNlLFxuICBGaWxlc1NlcnZpY2UsXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIEdsb2JhbENvbmZpZ1NlcnZpY2UsXG4gIEhlYWRlclNlcnZpY2UsXG4gIE1vZGFsU2VydmljZSxcbiAgUGFzc3dvcmRTZXJ2aWNlLFxuICBVc2VyTWVudVNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hcGknO1xuaW1wb3J0IHsgRGV2aWNlR3JpZFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcbmltcG9ydCB7IERldmljZVR5cGVEZXRhaWxFZGl0ZWRTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtcHJvdG9jb2xzJztcbmltcG9ydCB7IFJlcGxhY2VEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBsYWNlLWRldmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBYnNvbHV0ZURhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vYWJzb2x1dGUtZGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhCcmlkZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC1icmlkZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBCcmlkZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vYnJpZGdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmVyTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2ZXJNZXNzYWdlcy5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGFic29sdXRlRGF0ZVNlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKEFic29sdXRlRGF0ZVNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGJyaWRnZVNlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKEJyaWRnZVNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGF1dGhCcmlkZ2VTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShBdXRoQnJpZGdlU2VydmljZSk7XG5leHBvcnQgY29uc3QgYXBwU3RhdGVTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShBcHBTdGF0ZVNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGhlYWRlclNlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKEhlYWRlclNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGFsZXJ0c1NlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKEFsZXJ0U2VydmljZSk7XG5leHBvcnQgY29uc3QgdXNlck1lbnVTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShVc2VyTWVudVNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGFwaVNlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKEFwaVNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGRvY3NTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShEb2NzU2VydmljZSk7XG5leHBvcnQgY29uc3QgcGFzc3dvcmRTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShQYXNzd29yZFNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZVNlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKFRyYW5zbGF0ZVNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGNhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShDYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZSk7XG5leHBvcnQgY29uc3Qgc2VydmVyTWVzc2FnZXNTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShTZXJ2ZXJNZXNzYWdlc1NlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IG1vZGFsU2VydmljZSA9IGRvd25ncmFkZUluamVjdGFibGUoTW9kYWxTZXJ2aWNlKTtcbmV4cG9ydCBjb25zdCBnYWluc2lnaHRTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShHYWluc2lnaHRTZXJ2aWNlKTtcbmV4cG9ydCBjb25zdCBnbG9iYWxDb25maWdTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShHbG9iYWxDb25maWdTZXJ2aWNlKTtcbmV4cG9ydCBjb25zdCBmaWxlc1NlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKEZpbGVzU2VydmljZSk7XG5leHBvcnQgY29uc3QgZGV2aWNlVHlwZURldGFpbEVkaXRlZFNlcnZpY2UgPSBkb3duZ3JhZGVJbmplY3RhYmxlKERldmljZVR5cGVEZXRhaWxFZGl0ZWRTZXJ2aWNlKTtcbmV4cG9ydCBjb25zdCByZXBsYWNlRGV2aWNlU2VydmljZSA9IGRvd25ncmFkZUluamVjdGFibGUoUmVwbGFjZURldmljZVNlcnZpY2UpO1xuZXhwb3J0IGNvbnN0IGRldmljZUdyaWRTZXJ2aWNlID0gZG93bmdyYWRlSW5qZWN0YWJsZShEZXZpY2VHcmlkU2VydmljZSk7XG4iXX0=
|
|
@@ -4,7 +4,7 @@ import { QueriesUtil } from '@c8y/client';
|
|
|
4
4
|
import * as angular from 'angular';
|
|
5
5
|
import { c8yAlertDecorator } from './alert.decorator';
|
|
6
6
|
import { appLogsAutoRefreshComponent, bootstrapComponent, dataGridComponent, datapointSelectionListComponent, emptyStateComponent, helpComponent, highlightComponent, loadingComponent, paginationComponent, passwordInputComponent, platformConfigurationForm, rangeDisplayComponent, rolesAssetTreeComponent, userTotpComponent } from './downgraded.components';
|
|
7
|
-
import { absoluteDateService, alertsService, apiService, appStateService, authBridgeService, bridgeService, cachedLocaleDictionaryService, deviceGridService, deviceTypeDetailEditedService, docsService, filesService, gainsightService, headerService, modalService, passwordService, replaceDeviceService, serverMessagesService, translateService, userMenuService } from './downgraded.services';
|
|
7
|
+
import { absoluteDateService, alertsService, apiService, appStateService, authBridgeService, bridgeService, cachedLocaleDictionaryService, deviceGridService, deviceTypeDetailEditedService, docsService, filesService, gainsightService, globalConfigService, headerService, modalService, passwordService, replaceDeviceService, serverMessagesService, translateService, userMenuService } from './downgraded.services';
|
|
8
8
|
import { gettextCatalogDecorator } from './gettextCatalog.decorator';
|
|
9
9
|
import { groupTypesHierarchyNavigatorDecorator } from './groupsHierarchyNavigator.decorator';
|
|
10
10
|
import { c8yNg1HttpInterceptor } from './http.interceptor';
|
|
@@ -45,7 +45,8 @@ angular
|
|
|
45
45
|
.service('c8yPasswordConfirm', passwordService)
|
|
46
46
|
.service('c8yModalService', modalService)
|
|
47
47
|
.service('c8yGainsightService', gainsightService)
|
|
48
|
-
.service('c8yFilesService', filesService)
|
|
48
|
+
.service('c8yFilesService', filesService)
|
|
49
|
+
.service('c8yGlobalConfigService', globalConfigService);
|
|
49
50
|
angular
|
|
50
51
|
.module('c8y.ui')
|
|
51
52
|
.filter('absoluteDate', absoluteDateService)
|
|
@@ -73,4 +74,4 @@ angular
|
|
|
73
74
|
.factory('c8yReplaceDeviceService', replaceDeviceService)
|
|
74
75
|
.factory('c8yDeviceGridService', deviceGridService);
|
|
75
76
|
export const ng1Modules = ['app', NAME];
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi91cGdyYWRlL25nMS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLCtCQUErQixFQUMvQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixVQUFVLEVBQ1YsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsNkJBQTZCLEVBQzdCLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDN0IsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLFlBQVksRUFDWixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxxQkFBcUIs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QkFBMkIsRUFBRSwrQkFBK0IsQ0FBQztLQUN2RSxTQUFTLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDO0tBQzdDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQztLQUNyRCxTQUFTLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO0tBQzVDLFNBQVMsQ0FBQyw2QkFBNkIsRUFBRSx1QkFBdUIsQ0FBQztLQUNqRSxTQUFTLENBQUMsOEJBQThCLEVBQUUseUJBQXlCLENBQUM7S0FDcEUsT0FBTyxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQztLQUN6QyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsNkJBQTZCLENBQUM7S0FDMUUsU0FBUyxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDO0tBQ3BELE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQztLQUNuRCxPQUFPLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzlDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSw2QkFBNkIsQ0FBQztLQUNuRSxPQUFPLENBQUMseUJBQXlCLEVBQUUsb0JBQW9CLENBQUM7S0FDeEQsT0FBTyxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkb3duZ3JhZGVJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvdXBncmFkZS9zdGF0aWMnO1xuaW1wb3J0IHsgUXVlcmllc1V0aWwgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgKiBhcyBhbmd1bGFyIGZyb20gJ2FuZ3VsYXInO1xuaW1wb3J0IHsgYzh5QWxlcnREZWNvcmF0b3IgfSBmcm9tICcuL2FsZXJ0LmRlY29yYXRvcic7XG5pbXBvcnQge1xuICBhcHBMb2dzQXV0b1JlZnJlc2hDb21wb25lbnQsXG4gIGJvb3RzdHJhcENvbXBvbmVudCxcbiAgZGF0YUdyaWRDb21wb25lbnQsXG4gIGRhdGFwb2ludFNlbGVjdGlvbkxpc3RDb21wb25lbnQsXG4gIGVtcHR5U3RhdGVDb21wb25lbnQsXG4gIGhlbHBDb21wb25lbnQsXG4gIGhpZ2hsaWdodENvbXBvbmVudCxcbiAgbG9hZGluZ0NvbXBvbmVudCxcbiAgcGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgcGFzc3dvcmRJbnB1dENvbXBvbmVudCxcbiAgcGxhdGZvcm1Db25maWd1cmF0aW9uRm9ybSxcbiAgcmFuZ2VEaXNwbGF5Q29tcG9uZW50LFxuICByb2xlc0Fzc2V0VHJlZUNvbXBvbmVudCxcbiAgdXNlclRvdHBDb21wb25lbnRcbn0gZnJvbSAnLi9kb3duZ3JhZGVkLmNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgYWJzb2x1dGVEYXRlU2VydmljZSxcbiAgYWxlcnRzU2VydmljZSxcbiAgYXBpU2VydmljZSxcbiAgYXBwU3RhdGVTZXJ2aWNlLFxuICBhdXRoQnJpZGdlU2VydmljZSxcbiAgYnJpZGdlU2VydmljZSxcbiAgY2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsXG4gIGRldmljZUdyaWRTZXJ2aWNlLFxuICBkZXZpY2VUeXBlRGV0YWlsRWRpdGVkU2VydmljZSxcbiAgZG9jc1NlcnZpY2UsXG4gIGZpbGVzU2VydmljZSxcbiAgZ2FpbnNpZ2h0U2VydmljZSxcbiAgaGVhZGVyU2VydmljZSxcbiAgbW9kYWxTZXJ2aWNlLFxuICBwYXNzd29yZFNlcnZpY2UsXG4gIHJlcGxhY2VEZXZpY2VTZXJ2aWNlLFxuICBzZXJ2ZXJNZXNzYWdlc1NlcnZpY2UsXG4gIHRyYW5zbGF0ZVNlcnZpY2UsXG4gIHVzZXJNZW51U2VydmljZVxufSBmcm9tICcuL2Rvd25ncmFkZWQuc2VydmljZXMnO1xuaW1wb3J0IHsgZ2V0dGV4dENhdGFsb2dEZWNvcmF0b3IgfSBmcm9tICcuL2dldHRleHRDYXRhbG9nLmRlY29yYXRvcic7XG5pbXBvcnQgeyBncm91cFR5cGVzSGllcmFyY2h5TmF2aWdhdG9yRGVjb3JhdG9yIH0gZnJvbSAnLi9ncm91cHNIaWVyYXJjaHlOYXZpZ2F0b3IuZGVjb3JhdG9yJztcbmltcG9ydCB7IGM4eU5nMUh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4vaHR0cC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBjOHlOYXZpZ2F0b3JQcm92aWRlciB9IGZyb20gJy4vbmF2aWdhdG9yLnByb3ZpZGVyJztcbmltcG9ydCB7IHJvb3RDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QuY29tcG9uZW50JztcbmltcG9ydCB7IGM4eVRpdGxlRGVjb3JhdG9yIH0gZnJvbSAnLi90aXRsZS5kZWNvcmF0b3InO1xuaW1wb3J0IHsgYzh5Vmlld3NQcm92aWRlciB9IGZyb20gJy4vdmlld3MucHJvdmlkZXInO1xuXG5jb25zdCBOQU1FID0gJ2M4eS51cGdyYWRlJztcbih3aW5kb3cgYXMgYW55KS5wcmV2ZW50TmcxQm9vdHN0cmFwID0gdHJ1ZTtcblxuYW5ndWxhclxuICAubW9kdWxlKE5BTUUsIFtdKVxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6b25seS1hcnJvdy1mdW5jdGlvbnNcbiAgLmNvbmZpZyhmdW5jdGlvbiAoJGh0dHBQcm92aWRlcikge1xuICAgICduZ0luamVjdCc7XG5cbiAgICBjb25zdCBuZzFJbnRlcmNlcHRvckluZGV4ID0gJGh0dHBQcm92aWRlci5pbnRlcmNlcHRvcnMuaW5kZXhPZignYzh5TG9hZGluZ0luZGljYXRvcicpO1xuICAgIGlmIChuZzFJbnRlcmNlcHRvckluZGV4ID4gLTEpIHtcbiAgICAgICRodHRwUHJvdmlkZXIuaW50ZXJjZXB0b3JzLnNwbGljZShuZzFJbnRlcmNlcHRvckluZGV4LCAxKTtcbiAgICB9XG4gICAgJGh0dHBQcm92aWRlci5pbnRlcmNlcHRvcnMucHVzaChjOHlOZzFIdHRwSW50ZXJjZXB0b3IpO1xuICB9KVxuICAuY29tcG9uZW50KCdjOHlVaVJvb3QnLCByb290Q29tcG9uZW50KVxuICAuZGlyZWN0aXZlKCdjOHlCb290c3RyYXAnLCBib290c3RyYXBDb21wb25lbnQpXG4gIC5mYWN0b3J5KCdjOHlCcmlkZ2VTZXJ2aWNlJywgYnJpZGdlU2VydmljZSlcbiAgLmZhY3RvcnkoJ2M4eUF1dGhCcmlkZ2VTZXJ2aWNlJywgYXV0aEJyaWRnZVNlcnZpY2UpXG4gIC5mYWN0b3J5KCdjOHlBcHBTdGF0ZVNlcnZpY2UnLCBhcHBTdGF0ZVNlcnZpY2UpXG4gIC5mYWN0b3J5KCdjOHlIZWFkZXJTZXJ2aWNlJywgaGVhZGVyU2VydmljZSlcbiAgLmZhY3RvcnkoJ2M4eVVzZXJNZW51U2VydmljZScsIHVzZXJNZW51U2VydmljZSlcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm9ubHktYXJyb3ctZnVuY3Rpb25zXG4gIC5zZXJ2aWNlKCdjOHlRdWVyaWVzVXRpbCcsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbmV3IFF1ZXJpZXNVdGlsKCk7XG4gIH0pXG4gIC5kZWNvcmF0b3IoJ2M4eVRpdGxlJywgYzh5VGl0bGVEZWNvcmF0b3IpXG4gIC5mYWN0b3J5KCdjOHlBbGVydCcsIGFsZXJ0c1NlcnZpY2UpXG4gIC5kZWNvcmF0b3IoJ2M4eUFsZXJ0JywgYzh5QWxlcnREZWNvcmF0b3IpXG4gIC5kZWNvcmF0b3IoJ2dyb3VwVHlwZXNIaWVyYXJjaHlOYXZpZ2F0b3InLCBncm91cFR5cGVzSGllcmFyY2h5TmF2aWdhdG9yRGVjb3JhdG9yKSAvLyBwcmV2ZW50cyBsb2FkaW5nIHRoZSBncm91cHNcbiAgLmZhY3RvcnkoJ2M4eUFwaVNlcnZpY2UnLCBhcGlTZXJ2aWNlKVxuICAuZmFjdG9yeSgnYzh5RG9jcycsIGRvY3NTZXJ2aWNlKVxuICAuc2VydmljZSgnYzh5UGFzc3dvcmRDb25maXJtJywgcGFzc3dvcmRTZXJ2aWNlKVxuICAuc2VydmljZSgnYzh5TW9kYWxTZXJ2aWNlJywgbW9kYWxTZXJ2aWNlKVxuICAuc2VydmljZSgnYzh5R2FpbnNpZ2h0U2VydmljZScsIGdhaW5zaWdodFNlcnZpY2UpXG4gIC5zZXJ2aWNlKCdjOHlGaWxlc1NlcnZpY2UnLCBmaWxlc1NlcnZpY2UpO1xuYW5ndWxhclxuICAubW9kdWxlKCdjOHkudWknKVxuICAuZmlsdGVyKCdhYnNvbHV0ZURhdGUnLCBhYnNvbHV0ZURhdGVTZXJ2aWNlKVxuICAuZGlyZWN0aXZlKCdjOHlMb2FkaW5nJywgbG9hZGluZ0NvbXBvbmVudClcbiAgLnByb3ZpZGVyKCdjOHlOYXZpZ2F0b3InLCBjOHlOYXZpZ2F0b3JQcm92aWRlcilcbiAgLnByb3ZpZGVyKCdjOHlWaWV3cycsIGM4eVZpZXdzUHJvdmlkZXIpXG4gIC5kaXJlY3RpdmUoJ2M4eVVzZXJUb3RwUmV2b2tlJywgdXNlclRvdHBDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eUFwcExvZ3NBdXRvUmVmcmVzaCcsIGFwcExvZ3NBdXRvUmVmcmVzaENvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5RGF0YUdyaWQnLCBkYXRhR3JpZENvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5UmFuZ2VEaXNwbGF5JywgcmFuZ2VEaXNwbGF5Q29tcG9uZW50KVxuICAuZGlyZWN0aXZlKCdjOHlIZWxwJywgaGVscENvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5VWlFbXB0eVN0YXRlJywgZW1wdHlTdGF0ZUNvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5RGF0YXBvaW50U2VsZWN0aW9uTGlzdCcsIGRhdGFwb2ludFNlbGVjdGlvbkxpc3RDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eUhpZ2hsaWdodCcsIGhpZ2hsaWdodENvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5UGFzc3dvcmRJbnB1dCcsIHBhc3N3b3JkSW5wdXRDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ3BhZ2luYXRpb24nLCBwYWdpbmF0aW9uQ29tcG9uZW50KVxuICAuZGlyZWN0aXZlKCdjOHlSb2xlc0Fzc2V0VHJlZURvd25ncmFkZWQnLCByb2xlc0Fzc2V0VHJlZUNvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5UGxhdGZvcm1Db25maWd1cmF0aW9uRm9ybScsIHBsYXRmb3JtQ29uZmlndXJhdGlvbkZvcm0pXG4gIC5mYWN0b3J5KCdjOHlUcmFuc2xhdGUnLCB0cmFuc2xhdGVTZXJ2aWNlKVxuICAuZmFjdG9yeSgnYzh5Q2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UnLCBjYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZSlcbiAgLmRlY29yYXRvcignZ2V0dGV4dENhdGFsb2cnLCBnZXR0ZXh0Q2F0YWxvZ0RlY29yYXRvcilcbiAgLmZhY3RvcnkoJ2M4eVNlcnZlck1lc3NhZ2VzJywgc2VydmVyTWVzc2FnZXNTZXJ2aWNlKVxuICAuZmFjdG9yeSgnbmdab25lJywgZG93bmdyYWRlSW5qZWN0YWJsZShOZ1pvbmUpKVxuICAuZmFjdG9yeSgnYzh5RGV2aWNlVHlwZURldGFpbEVkaXRlZCcsIGRldmljZVR5cGVEZXRhaWxFZGl0ZWRTZXJ2aWNlKVxuICAuZmFjdG9yeSgnYzh5UmVwbGFjZURldmljZVNlcnZpY2UnLCByZXBsYWNlRGV2aWNlU2VydmljZSlcbiAgLmZhY3RvcnkoJ2M4eURldmljZUdyaWRTZXJ2aWNlJywgZGV2aWNlR3JpZFNlcnZpY2UpO1xuXG5leHBvcnQgY29uc3QgbmcxTW9kdWxlcyA9IFsnYXBwJywgTkFNRV07XG4iXX0=
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi91cGdyYWRlL25nMS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLCtCQUErQixFQUMvQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixVQUFVLEVBQ1YsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsNkJBQTZCLEVBQzdCLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDN0IsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixZQUFZLEVBQ1osZUFBZSxFQUNmLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RixPQUFP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QyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUM7S0FDakQsU0FBUyxDQUFDLDJCQUEyQixFQUFFLCtCQUErQixDQUFDO0tBQ3ZFLFNBQVMsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUM7S0FDN0MsU0FBUyxDQUFDLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDO0tBQ3JELFNBQVMsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7S0FDNUMsU0FBUyxDQUFDLDZCQUE2QixFQUFFLHVCQUF1QixDQUFDO0tBQ2pFLFNBQVMsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztLQUNwRSxPQUFPLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDO0tBQ3pDLE9BQU8sQ0FBQyxrQ0FBa0MsRUFBRSw2QkFBNkIsQ0FBQztLQUMxRSxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsdUJBQXVCLENBQUM7S0FDcEQsT0FBTyxDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDO0tBQ25ELE9BQU8sQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDOUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLDZCQUE2QixDQUFDO0tBQ25FLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxvQkFBb0IsQ0FBQztLQUN4RCxPQUFPLENBQUMsc0JBQXNCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRvd25ncmFkZUluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci91cGdyYWRlL3N0YXRpYyc7XG5pbXBvcnQgeyBRdWVyaWVzVXRpbCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCAqIGFzIGFuZ3VsYXIgZnJvbSAnYW5ndWxhcic7XG5pbXBvcnQgeyBjOHlBbGVydERlY29yYXRvciB9IGZyb20gJy4vYWxlcnQuZGVjb3JhdG9yJztcbmltcG9ydCB7XG4gIGFwcExvZ3NBdXRvUmVmcmVzaENvbXBvbmVudCxcbiAgYm9vdHN0cmFwQ29tcG9uZW50LFxuICBkYXRhR3JpZENvbXBvbmVudCxcbiAgZGF0YXBvaW50U2VsZWN0aW9uTGlzdENvbXBvbmVudCxcbiAgZW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgaGVscENvbXBvbmVudCxcbiAgaGlnaGxpZ2h0Q29tcG9uZW50LFxuICBsb2FkaW5nQ29tcG9uZW50LFxuICBwYWdpbmF0aW9uQ29tcG9uZW50LFxuICBwYXNzd29yZElucHV0Q29tcG9uZW50LFxuICBwbGF0Zm9ybUNvbmZpZ3VyYXRpb25Gb3JtLFxuICByYW5nZURpc3BsYXlDb21wb25lbnQsXG4gIHJvbGVzQXNzZXRUcmVlQ29tcG9uZW50LFxuICB1c2VyVG90cENvbXBvbmVudFxufSBmcm9tICcuL2Rvd25ncmFkZWQuY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBhYnNvbHV0ZURhdGVTZXJ2aWNlLFxuICBhbGVydHNTZXJ2aWNlLFxuICBhcGlTZXJ2aWNlLFxuICBhcHBTdGF0ZVNlcnZpY2UsXG4gIGF1dGhCcmlkZ2VTZXJ2aWNlLFxuICBicmlkZ2VTZXJ2aWNlLFxuICBjYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZSxcbiAgZGV2aWNlR3JpZFNlcnZpY2UsXG4gIGRldmljZVR5cGVEZXRhaWxFZGl0ZWRTZXJ2aWNlLFxuICBkb2NzU2VydmljZSxcbiAgZmlsZXNTZXJ2aWNlLFxuICBnYWluc2lnaHRTZXJ2aWNlLFxuICBnbG9iYWxDb25maWdTZXJ2aWNlLFxuICBoZWFkZXJTZXJ2aWNlLFxuICBtb2RhbFNlcnZpY2UsXG4gIHBhc3N3b3JkU2VydmljZSxcbiAgcmVwbGFjZURldmljZVNlcnZpY2UsXG4gIHNlcnZlck1lc3NhZ2VzU2VydmljZSxcbiAgdHJhbnNsYXRlU2VydmljZSxcbiAgdXNlck1lbnVTZXJ2aWNlXG59IGZyb20gJy4vZG93bmdyYWRlZC5zZXJ2aWNlcyc7XG5pbXBvcnQgeyBnZXR0ZXh0Q2F0YWxvZ0RlY29yYXRvciB9IGZyb20gJy4vZ2V0dGV4dENhdGFsb2cuZGVjb3JhdG9yJztcbmltcG9ydCB7IGdyb3VwVHlwZXNIaWVyYXJjaHlOYXZpZ2F0b3JEZWNvcmF0b3IgfSBmcm9tICcuL2dyb3Vwc0hpZXJhcmNoeU5hdmlnYXRvci5kZWNvcmF0b3InO1xuaW1wb3J0IHsgYzh5TmcxSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnLi9odHRwLmludGVyY2VwdG9yJztcbmltcG9ydCB7IGM4eU5hdmlnYXRvclByb3ZpZGVyIH0gZnJvbSAnLi9uYXZpZ2F0b3IucHJvdmlkZXInO1xuaW1wb3J0IHsgcm9vdENvbXBvbmVudCB9IGZyb20gJy4vcm9vdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgYzh5VGl0bGVEZWNvcmF0b3IgfSBmcm9tICcuL3RpdGxlLmRlY29yYXRvcic7XG5pbXBvcnQgeyBjOHlWaWV3c1Byb3ZpZGVyIH0gZnJvbSAnLi92aWV3cy5wcm92aWRlcic7XG5cbmNvbnN0IE5BTUUgPSAnYzh5LnVwZ3JhZGUnO1xuKHdpbmRvdyBhcyBhbnkpLnByZXZlbnROZzFCb290c3RyYXAgPSB0cnVlO1xuXG5hbmd1bGFyXG4gIC5tb2R1bGUoTkFNRSwgW10pXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpvbmx5LWFycm93LWZ1bmN0aW9uc1xuICAuY29uZmlnKGZ1bmN0aW9uICgkaHR0cFByb3ZpZGVyKSB7XG4gICAgJ25nSW5qZWN0JztcblxuICAgIGNvbnN0IG5nMUludGVyY2VwdG9ySW5kZXggPSAkaHR0cFByb3ZpZGVyLmludGVyY2VwdG9ycy5pbmRleE9mKCdjOHlMb2FkaW5nSW5kaWNhdG9yJyk7XG4gICAgaWYgKG5nMUludGVyY2VwdG9ySW5kZXggPiAtMSkge1xuICAgICAgJGh0dHBQcm92aWRlci5pbnRlcmNlcHRvcnMuc3BsaWNlKG5nMUludGVyY2VwdG9ySW5kZXgsIDEpO1xuICAgIH1cbiAgICAkaHR0cFByb3ZpZGVyLmludGVyY2VwdG9ycy5wdXNoKGM4eU5nMUh0dHBJbnRlcmNlcHRvcik7XG4gIH0pXG4gIC5jb21wb25lbnQoJ2M4eVVpUm9vdCcsIHJvb3RDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eUJvb3RzdHJhcCcsIGJvb3RzdHJhcENvbXBvbmVudClcbiAgLmZhY3RvcnkoJ2M4eUJyaWRnZVNlcnZpY2UnLCBicmlkZ2VTZXJ2aWNlKVxuICAuZmFjdG9yeSgnYzh5QXV0aEJyaWRnZVNlcnZpY2UnLCBhdXRoQnJpZGdlU2VydmljZSlcbiAgLmZhY3RvcnkoJ2M4eUFwcFN0YXRlU2VydmljZScsIGFwcFN0YXRlU2VydmljZSlcbiAgLmZhY3RvcnkoJ2M4eUhlYWRlclNlcnZpY2UnLCBoZWFkZXJTZXJ2aWNlKVxuICAuZmFjdG9yeSgnYzh5VXNlck1lbnVTZXJ2aWNlJywgdXNlck1lbnVTZXJ2aWNlKVxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6b25seS1hcnJvdy1mdW5jdGlvbnNcbiAgLnNlcnZpY2UoJ2M4eVF1ZXJpZXNVdGlsJywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXcgUXVlcmllc1V0aWwoKTtcbiAgfSlcbiAgLmRlY29yYXRvcignYzh5VGl0bGUnLCBjOHlUaXRsZURlY29yYXRvcilcbiAgLmZhY3RvcnkoJ2M4eUFsZXJ0JywgYWxlcnRzU2VydmljZSlcbiAgLmRlY29yYXRvcignYzh5QWxlcnQnLCBjOHlBbGVydERlY29yYXRvcilcbiAgLmRlY29yYXRvcignZ3JvdXBUeXBlc0hpZXJhcmNoeU5hdmlnYXRvcicsIGdyb3VwVHlwZXNIaWVyYXJjaHlOYXZpZ2F0b3JEZWNvcmF0b3IpIC8vIHByZXZlbnRzIGxvYWRpbmcgdGhlIGdyb3Vwc1xuICAuZmFjdG9yeSgnYzh5QXBpU2VydmljZScsIGFwaVNlcnZpY2UpXG4gIC5mYWN0b3J5KCdjOHlEb2NzJywgZG9jc1NlcnZpY2UpXG4gIC5zZXJ2aWNlKCdjOHlQYXNzd29yZENvbmZpcm0nLCBwYXNzd29yZFNlcnZpY2UpXG4gIC5zZXJ2aWNlKCdjOHlNb2RhbFNlcnZpY2UnLCBtb2RhbFNlcnZpY2UpXG4gIC5zZXJ2aWNlKCdjOHlHYWluc2lnaHRTZXJ2aWNlJywgZ2FpbnNpZ2h0U2VydmljZSlcbiAgLnNlcnZpY2UoJ2M4eUZpbGVzU2VydmljZScsIGZpbGVzU2VydmljZSlcbiAgLnNlcnZpY2UoJ2M4eUdsb2JhbENvbmZpZ1NlcnZpY2UnLCBnbG9iYWxDb25maWdTZXJ2aWNlKTtcbmFuZ3VsYXJcbiAgLm1vZHVsZSgnYzh5LnVpJylcbiAgLmZpbHRlcignYWJzb2x1dGVEYXRlJywgYWJzb2x1dGVEYXRlU2VydmljZSlcbiAgLmRpcmVjdGl2ZSgnYzh5TG9hZGluZycsIGxvYWRpbmdDb21wb25lbnQpXG4gIC5wcm92aWRlcignYzh5TmF2aWdhdG9yJywgYzh5TmF2aWdhdG9yUHJvdmlkZXIpXG4gIC5wcm92aWRlcignYzh5Vmlld3MnLCBjOHlWaWV3c1Byb3ZpZGVyKVxuICAuZGlyZWN0aXZlKCdjOHlVc2VyVG90cFJldm9rZScsIHVzZXJUb3RwQ29tcG9uZW50KVxuICAuZGlyZWN0aXZlKCdjOHlBcHBMb2dzQXV0b1JlZnJlc2gnLCBhcHBMb2dzQXV0b1JlZnJlc2hDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eURhdGFHcmlkJywgZGF0YUdyaWRDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eVJhbmdlRGlzcGxheScsIHJhbmdlRGlzcGxheUNvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5SGVscCcsIGhlbHBDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eVVpRW1wdHlTdGF0ZScsIGVtcHR5U3RhdGVDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eURhdGFwb2ludFNlbGVjdGlvbkxpc3QnLCBkYXRhcG9pbnRTZWxlY3Rpb25MaXN0Q29tcG9uZW50KVxuICAuZGlyZWN0aXZlKCdjOHlIaWdobGlnaHQnLCBoaWdobGlnaHRDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eVBhc3N3b3JkSW5wdXQnLCBwYXNzd29yZElucHV0Q29tcG9uZW50KVxuICAuZGlyZWN0aXZlKCdwYWdpbmF0aW9uJywgcGFnaW5hdGlvbkNvbXBvbmVudClcbiAgLmRpcmVjdGl2ZSgnYzh5Um9sZXNBc3NldFRyZWVEb3duZ3JhZGVkJywgcm9sZXNBc3NldFRyZWVDb21wb25lbnQpXG4gIC5kaXJlY3RpdmUoJ2M4eVBsYXRmb3JtQ29uZmlndXJhdGlvbkZvcm0nLCBwbGF0Zm9ybUNvbmZpZ3VyYXRpb25Gb3JtKVxuICAuZmFjdG9yeSgnYzh5VHJhbnNsYXRlJywgdHJhbnNsYXRlU2VydmljZSlcbiAgLmZhY3RvcnkoJ2M4eUNhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlJywgY2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UpXG4gIC5kZWNvcmF0b3IoJ2dldHRleHRDYXRhbG9nJywgZ2V0dGV4dENhdGFsb2dEZWNvcmF0b3IpXG4gIC5mYWN0b3J5KCdjOHlTZXJ2ZXJNZXNzYWdlcycsIHNlcnZlck1lc3NhZ2VzU2VydmljZSlcbiAgLmZhY3RvcnkoJ25nWm9uZScsIGRvd25ncmFkZUluamVjdGFibGUoTmdab25lKSlcbiAgLmZhY3RvcnkoJ2M4eURldmljZVR5cGVEZXRhaWxFZGl0ZWQnLCBkZXZpY2VUeXBlRGV0YWlsRWRpdGVkU2VydmljZSlcbiAgLmZhY3RvcnkoJ2M4eVJlcGxhY2VEZXZpY2VTZXJ2aWNlJywgcmVwbGFjZURldmljZVNlcnZpY2UpXG4gIC5mYWN0b3J5KCdjOHlEZXZpY2VHcmlkU2VydmljZScsIGRldmljZUdyaWRTZXJ2aWNlKTtcblxuZXhwb3J0IGNvbnN0IG5nMU1vZHVsZXMgPSBbJ2FwcCcsIE5BTUVdO1xuIl19
|
|
@@ -35,4 +35,4 @@ export const cockpitDefaultWidgets = [
|
|
|
35
35
|
export function cockpitWidgets(excludeList) {
|
|
36
36
|
return WidgetsModule.config({ widgets: cockpitDefaultWidgets, excludeList });
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi93aWRnZXRzL2NvY2twaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3RILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3RILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtDQUNhLENBQUM7QUFFekM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLFdBQWlFO0lBRWpFLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBXaWRnZXRzTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy93aWRnZXRzJztcbmltcG9ydCB7IGxlZ2FjeUNvY2twaXRXZWxjb21lV2lkZ2V0RGVmaW5pdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9kZWZpbml0aW9ucy9jb2NrcGl0LWxlZ2FjeS13ZWxjb21lJztcbmltcG9ydCB7IGNvY2twaXRXZWxjb21lV2lkZ2V0RGVmaW5pdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9kZWZpbml0aW9ucy9jb2NrcGl0LXdlbGNvbWUnO1xuaW1wb3J0IHsga3BpV2lkZ2V0RGVmaW5pdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9kZWZpbml0aW9ucy9rcGknO1xuaW1wb3J0IHsgbWFya2Rvd25XaWRnZXREZWZpbml0aW9uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy93aWRnZXRzL2RlZmluaXRpb25zL21hcmtkb3duJztcbmltcG9ydCB7IGltYWdlV2lkZ2V0RGVmaW5pdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9kZWZpbml0aW9ucy9pbWFnZSc7XG5pbXBvcnQgeyBoZWxwQW5kU2VydmljZVdpZGdldERlZmluaXRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3dpZGdldHMvZGVmaW5pdGlvbnMvaGVscC1hbmQtc2VydmljZSc7XG5pbXBvcnQgeyB0aHJlZURSb3RhdGlvbldpZGdldERlZmluaXRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3dpZGdldHMvZGVmaW5pdGlvbnMvdGhyZWUtZC1yb3RhdGlvbic7XG5pbXBvcnQgeyBtYXBXaWRnZXREZWZpbml0aW9uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy93aWRnZXRzL2RlZmluaXRpb25zL21hcCc7XG5pbXBvcnQgeyBkZXZpY2VDb250cm9sTWVzc2FnZVdpZGdldERlZmluaXRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3dpZGdldHMvZGVmaW5pdGlvbnMvZGV2aWNlLWNvbnRyb2wtbWVzc2FnZSc7XG5pbXBvcnQgeyBpbmZvR2F1Z2VXaWRnZXREZWZpbml0aW9uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy93aWRnZXRzL2RlZmluaXRpb25zL2luZm8tZ2F1Z2UnO1xuXG5leHBvcnQgY29uc3QgY29ja3BpdERlZmF1bHRXaWRnZXRzID0gW1xuICBpbWFnZVdpZGdldERlZmluaXRpb24sXG4gIGtwaVdpZGdldERlZmluaXRpb24sXG4gIG1hcmtkb3duV2lkZ2V0RGVmaW5pdGlvbixcbiAgY29ja3BpdFdlbGNvbWVXaWRnZXREZWZpbml0aW9uLFxuICBsZWdhY3lDb2NrcGl0V2VsY29tZVdpZGdldERlZmluaXRpb24sXG4gIGhlbHBBbmRTZXJ2aWNlV2lkZ2V0RGVmaW5pdGlvbixcbiAgdGhyZWVEUm90YXRpb25XaWRnZXREZWZpbml0aW9uLFxuICBtYXBXaWRnZXREZWZpbml0aW9uLFxuICBkZXZpY2VDb250cm9sTWVzc2FnZVdpZGdldERlZmluaXRpb24sXG4gIGluZm9HYXVnZVdpZGdldERlZmluaXRpb25cbl0gc2F0aXNmaWVzIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uW107XG5cbi8qKlxuICogV2lkZ2V0cyBtb2R1bGUgdG8gYmUgaW1wb3J0ZWQgaW4geW91ciBhcHAgbW9kdWxlLiBUaGUgZXhjbHVkZSBsaXN0IGFsbG93cyB0byBleGNsdWRlIGNlcnRhaW4gd2lkZ2V0cy5cbiAqIENhbGxzIGBXaWRnZXRzTW9kdWxlLmNvbmZpZ2AgdW5kZXIgdGhlIGhvb2Qgd2l0aCB0aGUgYGNvY2twaXREZWZhdWx0V2lkZ2V0c2AuXG4gKiAqKipcbiAqIE5PVEU6XG4gKiBUaGUgZXhjbHVkZWQgd2lkZ2V0cyB3aWxsIHN0aWxsIGJlIHBhcnQgb2YgeW91ciBidW5kbGUuXG4gKiBCdXQgYXMgdGhleSBhcmUgbGF6eSBsb2FkZWQgc2hvdWxkIG5vdCBpbmNyZWFzZSBsb2FkaW5nIGR1cmF0aW9uLlxuICogKioqXG4gKiBAcGFyYW0gZXhjbHVkZUxpc3QgYWxsb3dzIHRvIGV4Y2x1ZGUgc3BlY2lmaWMgd2lkZ2V0cyBieSB0aGVpciBpZC5cbiAqIEByZXR1cm5zIEFuIGVtcHR5IG1vZHVsZSB3aXRoIHNvbWUgcHJvdmlkZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29ja3BpdFdpZGdldHMoXG4gIGV4Y2x1ZGVMaXN0PzogQXJyYXk8KHR5cGVvZiBjb2NrcGl0RGVmYXVsdFdpZGdldHMpW251bWJlcl1bJ2lkJ10+XG4pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFdpZGdldHNNb2R1bGU+IHtcbiAgcmV0dXJuIFdpZGdldHNNb2R1bGUuY29uZmlnKHsgd2lkZ2V0czogY29ja3BpdERlZmF1bHRXaWRnZXRzLCBleGNsdWRlTGlzdCB9KTtcbn1cbiJdfQ==
|
|
@@ -17,4 +17,4 @@ export const deviceManagementDefaultWidgets = [
|
|
|
17
17
|
export function deviceManagementWidgets(excludeList) {
|
|
18
18
|
return WidgetsModule.config({ widgets: deviceManagementDefaultWidgets, excludeList });
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi93aWRnZXRzL2RldmljZS1tYW5hZ2VtZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUU1SCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1Qyx1Q0FBdUM7Q0FDRCxDQUFDO0FBRXpDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFdBQTBFO0lBRTFFLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ3hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBXaWRnZXRzTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy93aWRnZXRzJztcbmltcG9ydCB7IGRldmljZU1hbmFnZW1lbnRXZWxjb21lV2lkZ2V0RGVmaW5pdGlvbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvd2lkZ2V0cy9kZWZpbml0aW9ucy9kZXZpY2UtbWFuYWdlbWVudC13ZWxjb21lJztcblxuZXhwb3J0IGNvbnN0IGRldmljZU1hbmFnZW1lbnREZWZhdWx0V2lkZ2V0cyA9IFtcbiAgZGV2aWNlTWFuYWdlbWVudFdlbGNvbWVXaWRnZXREZWZpbml0aW9uXG5dIHNhdGlzZmllcyBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbltdO1xuXG4vKipcbiAqIFdpZGdldHMgbW9kdWxlIHRvIGJlIGltcG9ydGVkIGluIHlvdXIgYXBwIG1vZHVsZS4gVGhlIGV4Y2x1ZGUgbGlzdCBhbGxvd3MgdG8gZXhjbHVkZSBjZXJ0YWluIHdpZGdldHMuXG4gKiBDYWxscyBgV2lkZ2V0c01vZHVsZS5jb25maWdgIHVuZGVyIHRoZSBob29kIHdpdGggdGhlIGBkZXZpY2VNYW5hZ2VtZW50RGVmYXVsdFdpZGdldHNgLlxuICogKioqXG4gKiBOT1RFOlxuICogVGhlIGV4Y2x1ZGVkIHdpZGdldHMgd2lsbCBzdGlsbCBiZSBwYXJ0IG9mIHlvdXIgYnVuZGxlLlxuICogQnV0IGFzIHRoZXkgYXJlIGxhenkgbG9hZGVkIHNob3VsZCBub3QgaW5jcmVhc2UgbG9hZGluZyBkdXJhdGlvbi5cbiAqICoqKlxuICogQHBhcmFtIGV4Y2x1ZGVMaXN0IGFsbG93cyB0byBleGNsdWRlIHNwZWNpZmljIHdpZGdldHMgYnkgdGhlaXIgaWQuXG4gKiBAcmV0dXJucyBBbiBlbXB0eSBtb2R1bGUgd2l0aCBzb21lIHByb3ZpZGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldmljZU1hbmFnZW1lbnRXaWRnZXRzKFxuICBleGNsdWRlTGlzdD86IEFycmF5PCh0eXBlb2YgZGV2aWNlTWFuYWdlbWVudERlZmF1bHRXaWRnZXRzKVtudW1iZXJdWydpZCddPlxuKTogTW9kdWxlV2l0aFByb3ZpZGVyczxXaWRnZXRzTW9kdWxlPiB7XG4gIHJldHVybiBXaWRnZXRzTW9kdWxlLmNvbmZpZyh7IHdpZGdldHM6IGRldmljZU1hbmFnZW1lbnREZWZhdWx0V2lkZ2V0cywgZXhjbHVkZUxpc3QgfSk7XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter, __rest } from 'tslib';
|
|
2
2
|
import * as i3 from '@c8y/ngx-components';
|
|
3
|
-
import { NavigatorNode, gettext, DeviceStatusComponent, GroupFragment, ViewContext, CoreModule, CommonModule, SearchModule, ModalModule, DeviceStatusModule, ModalService, hookNavigator } from '@c8y/ngx-components';
|
|
3
|
+
import { NavigatorNode, gettext, DeviceStatusComponent, GroupFragment, ViewContext, Permissions, CoreModule, CommonModule, SearchModule, ModalModule, DeviceStatusModule, ModalService, hookNavigator } from '@c8y/ngx-components';
|
|
4
4
|
import { debounce, get } from 'lodash-es';
|
|
5
5
|
import { BehaviorSubject, Subject, empty } from 'rxjs';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
@@ -569,7 +569,10 @@ class AssetNodeService {
|
|
|
569
569
|
};
|
|
570
570
|
const groupFilter = Object.assign(Object.assign({}, defaultFilter), customFilter);
|
|
571
571
|
// due to BE performance limitations we do not allow filtering and sorting for a user without inventory roles
|
|
572
|
-
if (!this.user.
|
|
572
|
+
if (!this.user.hasAnyRole(this.appState.currentUser.value, [
|
|
573
|
+
Permissions.ROLE_INVENTORY_READ,
|
|
574
|
+
Permissions.ROLE_MANAGED_OBJECT_READ
|
|
575
|
+
])) {
|
|
573
576
|
delete groupFilter.query;
|
|
574
577
|
Object.assign(groupFilter, {
|
|
575
578
|
fragmentType: GroupFragment.groupFragmentType,
|
|
@@ -702,7 +705,11 @@ class AssetNodeService {
|
|
|
702
705
|
* @param dropOnRoot Is the drop performed on the root node
|
|
703
706
|
*/
|
|
704
707
|
canDropNode(dropOnRoot) {
|
|
705
|
-
return (!dropOnRoot ||
|
|
708
|
+
return (!dropOnRoot ||
|
|
709
|
+
this.user.hasAnyRole(this.appState.currentUser.value, [
|
|
710
|
+
Permissions.ROLE_INVENTORY_ADMIN,
|
|
711
|
+
Permissions.ROLE_MANAGED_OBJECT_ADMIN
|
|
712
|
+
]));
|
|
706
713
|
}
|
|
707
714
|
/**
|
|
708
715
|
* There could be multiple breadcrumbs for devices,
|