@c8y/ngx-components 1021.49.12 → 1021.50.0
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/i18n/pattern-messages.data.d.ts +18 -0
- package/core/i18n/pattern-messages.data.d.ts.map +1 -1
- package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
- package/esm2022/core/i18n/pattern-messages.data.mjs +19 -1
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.mjs +2 -2
- package/esm2022/device-list/add-smart-group.component.mjs +3 -3
- package/esm2022/operations/bulk-operation-list-item/bulk-operation-list-item.service.mjs +5 -4
- package/esm2022/operations/operation-details/operation-details.module.mjs +7 -7
- package/esm2022/operations/operations-list/device-control.feature.mjs +20 -0
- package/esm2022/operations/operations-list/index.mjs +4 -3
- package/esm2022/operations/operations-list/operations-list-item.component.mjs +11 -9
- package/esm2022/operations/operations-list/operations-list.component.mjs +15 -10
- package/esm2022/operations/operations-list/operations-list.module.mjs +16 -41
- package/esm2022/operations/operations-list/operations-list.service.mjs +4 -3
- package/esm2022/operations/operations.module.mjs +21 -14
- package/esm2022/operations/shared/operations.service.mjs +4 -3
- package/esm2022/services/index.mjs +14 -3
- package/esm2022/services/service-command-tab/c8y-ngx-components-services-service-command-tab.mjs +5 -0
- package/esm2022/services/service-command-tab/index.mjs +3 -0
- package/esm2022/services/service-command-tab/service-command-tab.component.mjs +33 -0
- package/esm2022/services/service-command-tab/service-command.feature.mjs +14 -0
- package/esm2022/services/services-device-tab/index.mjs +9 -3
- package/esm2022/services/services-device-tab/services-device-tab.component.mjs +3 -4
- package/esm2022/services/services-device-tab/services-device-tab.guard.mjs +2 -2
- package/esm2022/services/services-device-tab/services.breadcrumb-factory.mjs +13 -1
- package/esm2022/services/services.module.mjs +4 -2
- package/esm2022/services/shared/c8y-ngx-components-services-shared.mjs +5 -0
- package/esm2022/services/shared/index.mjs +3 -0
- package/esm2022/services/shared/service-command.service.mjs +118 -0
- package/esm2022/services/shared/services.model.mjs +23 -0
- package/fesm2022/c8y-ngx-components-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-list.mjs +2 -2
- package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +3 -2
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +5 -5
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +57 -52
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-shared.mjs +3 -2
- package/fesm2022/c8y-ngx-components-operations-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations.mjs +42 -35
- package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +49 -0
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-services-shared.mjs +145 -0
- package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-services.mjs +20 -113
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +18 -0
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +12 -14
- package/locales/es.po +12 -14
- package/locales/fr.po +11 -13
- package/locales/ja_JP.po +13 -17
- package/locales/ko.po +13 -10
- package/locales/locales.pot +19 -6
- package/locales/nl.po +12 -14
- package/locales/pl.po +12 -14
- package/locales/pt_BR.po +11 -13
- package/locales/zh_CN.po +12 -9
- package/locales/zh_TW.po +12 -9
- package/operations/bulk-operation-list-item/bulk-operation-list-item.service.d.ts +2 -2
- package/operations/bulk-operation-list-item/bulk-operation-list-item.service.d.ts.map +1 -1
- package/operations/operation-details/operation-details.module.d.ts +1 -1
- package/operations/operations-list/device-control.feature.d.ts +4 -0
- package/operations/operations-list/device-control.feature.d.ts.map +1 -0
- package/operations/operations-list/index.d.ts +3 -2
- package/operations/operations-list/index.d.ts.map +1 -1
- package/operations/operations-list/operations-list-item.component.d.ts +1 -1
- package/operations/operations-list/operations-list-item.component.d.ts.map +1 -1
- package/operations/operations-list/operations-list.component.d.ts +3 -1
- package/operations/operations-list/operations-list.component.d.ts.map +1 -1
- package/operations/operations-list/operations-list.module.d.ts +3 -9
- package/operations/operations-list/operations-list.module.d.ts.map +1 -1
- package/operations/operations.module.d.ts +1 -2
- package/operations/operations.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/services/index.d.ts +13 -2
- package/services/index.d.ts.map +1 -1
- package/services/service-command-tab/c8y-ngx-components-services-service-command-tab.d.ts.map +1 -0
- package/services/service-command-tab/index.d.ts +3 -0
- package/services/service-command-tab/index.d.ts.map +1 -0
- package/services/service-command-tab/service-command-tab.component.d.ts +12 -0
- package/services/service-command-tab/service-command-tab.component.d.ts.map +1 -0
- package/services/service-command-tab/service-command.feature.d.ts +3 -0
- package/services/service-command-tab/service-command.feature.d.ts.map +1 -0
- package/services/services-device-tab/index.d.ts +8 -2
- package/services/services-device-tab/index.d.ts.map +1 -1
- package/services/services-device-tab/services-device-tab.component.d.ts +2 -2
- package/services/services-device-tab/services-device-tab.component.d.ts.map +1 -1
- package/services/services-device-tab/services.breadcrumb-factory.d.ts.map +1 -1
- package/services/services.module.d.ts.map +1 -1
- package/services/shared/c8y-ngx-components-services-shared.d.ts.map +1 -0
- package/services/shared/index.d.ts +3 -0
- package/services/shared/index.d.ts.map +1 -0
- package/services/{services-device-tab → shared}/service-command.service.d.ts +10 -7
- package/services/shared/service-command.service.d.ts.map +1 -0
- package/services/shared/services.model.d.ts +31 -0
- package/services/shared/services.model.d.ts.map +1 -0
- package/esm2022/services/services-device-tab/service-command.service.mjs +0 -113
- package/esm2022/services/services-device-tab/service-device-tab.model.mjs +0 -2
- package/services/services-device-tab/service-command.service.d.ts.map +0 -1
- package/services/services-device-tab/service-device-tab.model.d.ts +0 -11
- package/services/services-device-tab/service-device-tab.model.d.ts.map +0 -1
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
export * from './columns';
|
|
1
|
+
export * from './columns/last-updated-date.cell-renderer.component';
|
|
2
|
+
export * from './columns/last-updated-date.device-grid-column';
|
|
3
|
+
export * from './columns/name.cell-renderer.component';
|
|
4
|
+
export * from './columns/name.grid-column';
|
|
5
|
+
export * from './columns/service-type.grid-column';
|
|
6
|
+
export * from './columns/status.cell-renderer.component';
|
|
7
|
+
export * from './columns/status.grid-column';
|
|
2
8
|
export * from './services-device-tab.component';
|
|
3
9
|
export * from './services-device-tab.guard';
|
|
4
10
|
export * from './services-device-tab.module';
|
|
5
|
-
export * from './
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
export * from './services.breadcrumb-factory';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zZXJ2aWNlcy1kZXZpY2UtdGFiL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy9sYXN0LXVwZGF0ZWQtZGF0ZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbnMvbGFzdC11cGRhdGVkLWRhdGUuZGV2aWNlLWdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy9uYW1lLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy9uYW1lLmdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy9zZXJ2aWNlLXR5cGUuZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL3N0YXR1cy5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbnMvc3RhdHVzLmdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMtZGV2aWNlLXRhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy1kZXZpY2UtdGFiLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMtZGV2aWNlLXRhYi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy5icmVhZGNydW1iLWZhY3RvcnknO1xuIl19
|
|
@@ -2,16 +2,15 @@ import { Component, EventEmitter } from '@angular/core';
|
|
|
2
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
3
|
import { InventoryService, QueriesUtil } from '@c8y/client';
|
|
4
4
|
import { DataGridService, gettext } from '@c8y/ngx-components';
|
|
5
|
+
import { SERVICE_FRAGMENT, ServiceCommandService } from '@c8y/ngx-components/services/shared';
|
|
5
6
|
import { StatusOptionsService } from '../status-options';
|
|
6
7
|
import { LastUpdatedDateGridColumn, ServiceNameGridColumn, ServiceTypeGridColumn, StatusGridColumn } from './columns';
|
|
7
|
-
import { SERVICE_FRAGMENT } from './service-device-tab.model';
|
|
8
|
-
import { ServiceCommandService } from './service-command.service';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
import * as i1 from "@angular/router";
|
|
11
10
|
import * as i2 from "@c8y/client";
|
|
12
11
|
import * as i3 from "@c8y/ngx-components";
|
|
13
12
|
import * as i4 from "../status-options";
|
|
14
|
-
import * as i5 from "
|
|
13
|
+
import * as i5 from "@c8y/ngx-components/services/shared";
|
|
15
14
|
import * as i6 from "@angular/common";
|
|
16
15
|
export class ServicesDeviceTabComponent {
|
|
17
16
|
constructor(route, inventoryService, gridService, statusOptionsService, serviceCommand) {
|
|
@@ -94,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
94
93
|
type: Component,
|
|
95
94
|
args: [{ selector: 'c8y-services-device-tab', template: "<div class=\"content-fullpage\">\n <c8y-data-grid\n [title]=\"'Services' | translate\"\n [refresh]=\"refresh$\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-tools'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : null\"\n *emptyStateContext=\"let stats; isLoading as isLoading\"\n [horizontal]=\"stats?.size > 0\"\n ></c8y-ui-empty-state>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n" }]
|
|
96
95
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.InventoryService }, { type: i3.DataGridService }, { type: i4.StatusOptionsService }, { type: i5.ServiceCommandService }] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMtZGV2aWNlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zZXJ2aWNlcy1kZXZpY2UtdGFiL3NlcnZpY2VzLWRldmljZS10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc2VydmljZXMvc2VydmljZXMtZGV2aWNlLXRhYi9zZXJ2aWNlcy1kZXZpY2UtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFlLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RixPQUFPLEVBRUwsZUFBZSxFQUdmLE9BQU8sRUFFUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDakIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFXLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBTWxFLE1BQU0sT0FBTywwQkFBMEI7SUE0QnJDLFlBQ1UsS0FBcUIsRUFDckIsZ0JBQWtDLEVBQ2xDLFdBQTRCLEVBQzVCLG9CQUEwQyxFQUMxQyxjQUFxQztRQUpyQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFD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UUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBNEIsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRSxNQUFNLG9CQUFvQixHQUF5QjtZQUNqRCxHQUFHO1lBQ0gsSUFBSTtZQUNKLE1BQU07WUFDTixZQUFZO1lBQ1osSUFBSTtTQUNMLENBQUM7UUFFRixPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQWM7UUFDaEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7OEdBakdVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLCtEQ3pCdkMsMjNCQXNCQTs7MkZER2EsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSwgSVJlc3VsdExpc3QsIFF1ZXJpZXNVdGlsIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQ29sdW1uLFxuICBEYXRhR3JpZFNlcnZpY2UsXG4gIERhdGFTb3VyY2VNb2RpZmllcixcbiAgQWN0aW9uQ29udHJvbCxcbiAgZ2V0dGV4dCxcbiAgU2VydmVyU2lkZURhdGFSZXN1bHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTdGF0dXNPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL3N0YXR1cy1vcHRpb25zJztcbmltcG9ydCB7XG4gIExhc3RVcGRhdGVkRGF0ZUdyaWRDb2x1bW4sXG4gIFNlcnZpY2VOYW1lR3JpZENvbHVtbixcbiAgU2VydmljZVR5cGVHcmlkQ29sdW1uLFxuICBTdGF0dXNHcmlkQ29sdW1uXG59IGZyb20gJy4vY29sdW1ucyc7XG5pbXBvcnQgeyBTZXJ2aWNlLCBTRVJWSUNFX0ZSQUdNRU5UIH0gZnJvbSAnLi9zZXJ2aWNlLWRldmljZS10YWIubW9kZWwnO1xuaW1wb3J0IHsgU2VydmljZUNvbW1hbmRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlLWNvbW1hbmQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zZXJ2aWNlcy1kZXZpY2UtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICdzZXJ2aWNlcy1kZXZpY2UtdGFiLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlc0RldmljZVRhYkNvbXBvbmVudCB7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhLmlkO1xuXG4gIHNpemVSZXF1ZXN0OiBQcm9taXNlPG51bWJlcj47XG4gIHNpemVSZXF1ZXN0RG9uZSA9IGZhbHNlO1xuXG4gIHJlZnJlc2gkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDUwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG5cbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IFtdO1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICBuZXcgU3RhdHVzR3JpZENvbHVtbih0aGlzLnN0YXR1c09wdGlvbnNTZXJ2aWNlKSxcbiAgICBuZXcgU2VydmljZU5hbWVHcmlkQ29sdW1uKCksXG4gICAgbmV3IFNlcnZpY2VUeXBlR3JpZENvbHVtbigpLFxuICAgIG5ldyBMYXN0VXBkYXRlZERhdGVHcmlkQ29sdW1uKClcbiAgXTtcblxuICBzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrOiBhbnk7XG5cbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIHJlc3VsdHMgdG8gZGlzcGxheS4nKTtcbiAgbm9EYXRhTWVzc2FnZSA9IGdldHRleHQoJ05vIHNlcnZpY2VzIHRvIGRpc3BsYXkuJyk7XG4gIG5vUmVzdWx0c1N1YnRpdGxlID0gZ2V0dGV4dCgnUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIG9yIGNoZWNrIHlvdXIgc3BlbGxpbmcuJyk7XG5cbiAgcHJpdmF0ZSBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWwgPSBuZXcgUXVlcmllc1V0aWwoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogRGF0YUdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RhdHVzT3B0aW9uc1NlcnZpY2U6IFN0YXR1c09wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VydmljZUNvbW1hbmQ6IFNlcnZpY2VDb21tYW5kU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zaXplUmVxdWVzdCA9IHRoaXMuaW52ZW50b3J5U2VydmljZVxuICAgICAgLmNoaWxkQWRkaXRpb25zTGlzdCh0aGlzLmRldmljZUlkLCB7XG4gICAgICAgIHF1ZXJ5OiBgdHlwZSBlcSAke1NFUlZJQ0VfRlJBR01FTlR9YCxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICAgIHBhZ2VTaXplOiAxXG4gICAgICB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICB0aGlzLnNpemVSZXF1ZXN0RG9uZSA9IHRydWU7XG4gICAgICAgIHJldHVybiByZXNwb25zZT8ucGFnaW5nPy50b3RhbFBhZ2VzO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBvbkRhdGFTb3VyY2VNb2RpZmllcihcbiAgICBkYXRhU291cmNlTW9kaWZpZXI6IERhdGFTb3VyY2VNb2RpZmllclxuICApOiBQcm9taXNlPFNlcnZlclNpZGVEYXRhUmVzdWx0PiB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkoXG4gICAgICB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcih0aGlzLmdyaWRTZXJ2aWNlLmdldFF1ZXJ5T2JqKGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKSwge1xuICAgICAgICB0eXBlOiBTRVJWSUNFX0ZSQUdNRU5UXG4gICAgICB9KVxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhUmVxdWVzdDogUHJvbWlzZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+ID1cbiAgICAgIHRoaXMuaW52ZW50b3J5U2VydmljZS5jaGlsZEFkZGl0aW9uc0xpc3QodGhpcy5kZXZpY2VJZCwge1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICAgIHBhZ2VTaXplOiBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbi5wYWdlU2l6ZSxcbiAgICAgICAgY3VycmVudFBhZ2U6IGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGZpbHRlcmVyZFNpemVSZXF1ZXN0OiBQcm9taXNlPG51bWJlcj4gPSB0aGlzLmludmVudG9yeVNlcnZpY2VcbiAgICAgIC5jaGlsZEFkZGl0aW9uc0xpc3QodGhpcy5kZXZpY2VJZCwge1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICAgIHBhZ2VTaXplOiAxXG4gICAgICB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2U/LnBhZ2luZz8udG90YWxQYWdlcyk7XG5cbiAgICBjb25zdCBbZGF0YVJlc3BvbnNlLCBzaXplLCBmaWx0ZXJlZFNpemVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgZGF0YVJlcXVlc3QsXG4gICAgICB0aGlzLnNpemVSZXF1ZXN0LFxuICAgICAgZmlsdGVyZXJkU2l6ZVJlcXVlc3RcbiAgICBdKTtcblxuICAgIGNvbnN0IHsgcmVzLCBkYXRhLCBwYWdpbmcgfSA9IGRhdGFSZXNwb25zZTtcblxuICAgIGNvbnN0IGNvbW1hbmRzID0gdGhpcy5zZXJ2aWNlQ29tbWFuZC5nZXRBbGxTdXBwb3J0ZWRDb21tYW5kcyhkYXRhIGFzIHVua25vd24gYXMgU2VydmljZVtdKTtcbiAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gdGhpcy5zZXJ2aWNlQ29tbWFuZC5nZW5lcmF0ZUFjdGlvbkNvbnRyb2xzKGNvbW1hbmRzKTtcblxuICAgIGNvbnN0IHNlcnZlclNpZGVEYXRhUmVzdWx0OiBTZXJ2ZXJTaWRlRGF0YVJlc3VsdCA9IHtcbiAgICAgIHJlcyxcbiAgICAgIGRhdGEsXG4gICAgICBwYWdpbmcsXG4gICAgICBmaWx0ZXJlZFNpemUsXG4gICAgICBzaXplXG4gICAgfTtcblxuICAgIHJldHVybiBzZXJ2ZXJTaWRlRGF0YVJlc3VsdDtcbiAgfVxuXG4gIHRyYWNrQnlOYW1lKF9pbmRleCwgY29sdW1uOiBDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2VcIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBbdGl0bGVdPVwiJ1NlcnZpY2VzJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3JlZnJlc2hdPVwicmVmcmVzaCRcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW2luZmluaXRlU2Nyb2xsXT1cIidhdXRvJ1wiXG4gICAgW3NlcnZlclNpZGVEYXRhQ2FsbGJhY2tdPVwic2VydmVyU2lkZURhdGFDYWxsYmFja1wiXG4gID5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICBbaWNvbl09XCJzdGF0cz8uc2l6ZSA+IDAgPyAnc2VhcmNoJyA6ICdjOHktdG9vbHMnXCJcbiAgICAgIFt0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzTWVzc2FnZSB8IHRyYW5zbGF0ZSkgOiAobm9EYXRhTWVzc2FnZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgW3N1YnRpdGxlXT1cInN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNTdWJ0aXRsZSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICplbXB0eVN0YXRlQ29udGV4dD1cImxldCBzdGF0czsgaXNMb2FkaW5nIGFzIGlzTG9hZGluZ1wiXG4gICAgICBbaG9yaXpvbnRhbF09XCJzdGF0cz8uc2l6ZSA+IDBcIlxuICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeU5hbWVcIj5cbiAgICAgIDxjOHktY29sdW1uIFtuYW1lXT1cImNvbHVtbi5uYW1lXCI+PC9jOHktY29sdW1uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2M4eS1kYXRhLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMtZGV2aWNlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zZXJ2aWNlcy1kZXZpY2UtdGFiL3NlcnZpY2VzLWRldmljZS10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc2VydmljZXMvc2VydmljZXMtZGV2aWNlLXRhYi9zZXJ2aWNlcy1kZXZpY2UtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFlLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RixPQUFPLEVBR0wsZUFBZSxFQUVmLE9BQU8sRUFFUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3RCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNqQixNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFNbkIsTUFBTSxPQUFPLDBCQUEwQjtJQTRCckMsWUFDVSxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsV0FBNEIsRUFDNUIsb0JBQTBDLEVBQzFDLGNBQXFDO1FBSnJDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBaEMvQyxh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QkFBdUIsQ0FBQyxJQUE0QixDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNFLE1BQU0sb0JBQW9CLEdBQXlCO1lBQ2pELEdBQUc7WUFDSCxJQUFJO1lBQ0osTUFBTTtZQUNOLFlBQVk7WUFDWixJQUFJO1NBQ0wsQ0FBQztRQUVGLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBYztRQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQzs4R0FqR1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsK0RDNUJ2QywyM0JBc0JBOzsyRkRNYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0UseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJUmVzdWx0TGlzdCwgUXVlcmllc1V0aWwgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkU2VydmljZSxcbiAgRGF0YVNvdXJjZU1vZGlmaWVyLFxuICBnZXR0ZXh0LFxuICBTZXJ2ZXJTaWRlRGF0YVJlc3VsdFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIFNlcnZpY2UsXG4gIFNFUlZJQ0VfRlJBR01FTlQsXG4gIFNlcnZpY2VDb21tYW5kU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3NlcnZpY2VzL3NoYXJlZCc7XG5pbXBvcnQgeyBTdGF0dXNPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL3N0YXR1cy1vcHRpb25zJztcbmltcG9ydCB7XG4gIExhc3RVcGRhdGVkRGF0ZUdyaWRDb2x1bW4sXG4gIFNlcnZpY2VOYW1lR3JpZENvbHVtbixcbiAgU2VydmljZVR5cGVHcmlkQ29sdW1uLFxuICBTdGF0dXNHcmlkQ29sdW1uXG59IGZyb20gJy4vY29sdW1ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zZXJ2aWNlcy1kZXZpY2UtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICdzZXJ2aWNlcy1kZXZpY2UtdGFiLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlc0RldmljZVRhYkNvbXBvbmVudCB7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhLmlkO1xuXG4gIHNpemVSZXF1ZXN0OiBQcm9taXNlPG51bWJlcj47XG4gIHNpemVSZXF1ZXN0RG9uZSA9IGZhbHNlO1xuXG4gIHJlZnJlc2gkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDUwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG5cbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IFtdO1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICBuZXcgU3RhdHVzR3JpZENvbHVtbih0aGlzLnN0YXR1c09wdGlvbnNTZXJ2aWNlKSxcbiAgICBuZXcgU2VydmljZU5hbWVHcmlkQ29sdW1uKCksXG4gICAgbmV3IFNlcnZpY2VUeXBlR3JpZENvbHVtbigpLFxuICAgIG5ldyBMYXN0VXBkYXRlZERhdGVHcmlkQ29sdW1uKClcbiAgXTtcblxuICBzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrOiBhbnk7XG5cbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIHJlc3VsdHMgdG8gZGlzcGxheS4nKTtcbiAgbm9EYXRhTWVzc2FnZSA9IGdldHRleHQoJ05vIHNlcnZpY2VzIHRvIGRpc3BsYXkuJyk7XG4gIG5vUmVzdWx0c1N1YnRpdGxlID0gZ2V0dGV4dCgnUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIG9yIGNoZWNrIHlvdXIgc3BlbGxpbmcuJyk7XG5cbiAgcHJpdmF0ZSBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWwgPSBuZXcgUXVlcmllc1V0aWwoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogRGF0YUdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RhdHVzT3B0aW9uc1NlcnZpY2U6IFN0YXR1c09wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VydmljZUNvbW1hbmQ6IFNlcnZpY2VDb21tYW5kU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zaXplUmVxdWVzdCA9IHRoaXMuaW52ZW50b3J5U2VydmljZVxuICAgICAgLmNoaWxkQWRkaXRpb25zTGlzdCh0aGlzLmRldmljZUlkLCB7XG4gICAgICAgIHF1ZXJ5OiBgdHlwZSBlcSAke1NFUlZJQ0VfRlJBR01FTlR9YCxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICAgIHBhZ2VTaXplOiAxXG4gICAgICB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICB0aGlzLnNpemVSZXF1ZXN0RG9uZSA9IHRydWU7XG4gICAgICAgIHJldHVybiByZXNwb25zZT8ucGFnaW5nPy50b3RhbFBhZ2VzO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBvbkRhdGFTb3VyY2VNb2RpZmllcihcbiAgICBkYXRhU291cmNlTW9kaWZpZXI6IERhdGFTb3VyY2VNb2RpZmllclxuICApOiBQcm9taXNlPFNlcnZlclNpZGVEYXRhUmVzdWx0PiB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkoXG4gICAgICB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcih0aGlzLmdyaWRTZXJ2aWNlLmdldFF1ZXJ5T2JqKGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKSwge1xuICAgICAgICB0eXBlOiBTRVJWSUNFX0ZSQUdNRU5UXG4gICAgICB9KVxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhUmVxdWVzdDogUHJvbWlzZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+ID1cbiAgICAgIHRoaXMuaW52ZW50b3J5U2VydmljZS5jaGlsZEFkZGl0aW9uc0xpc3QodGhpcy5kZXZpY2VJZCwge1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICAgIHBhZ2VTaXplOiBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbi5wYWdlU2l6ZSxcbiAgICAgICAgY3VycmVudFBhZ2U6IGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGZpbHRlcmVyZFNpemVSZXF1ZXN0OiBQcm9taXNlPG51bWJlcj4gPSB0aGlzLmludmVudG9yeVNlcnZpY2VcbiAgICAgIC5jaGlsZEFkZGl0aW9uc0xpc3QodGhpcy5kZXZpY2VJZCwge1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICAgIHBhZ2VTaXplOiAxXG4gICAgICB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2U/LnBhZ2luZz8udG90YWxQYWdlcyk7XG5cbiAgICBjb25zdCBbZGF0YVJlc3BvbnNlLCBzaXplLCBmaWx0ZXJlZFNpemVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgZGF0YVJlcXVlc3QsXG4gICAgICB0aGlzLnNpemVSZXF1ZXN0LFxuICAgICAgZmlsdGVyZXJkU2l6ZVJlcXVlc3RcbiAgICBdKTtcblxuICAgIGNvbnN0IHsgcmVzLCBkYXRhLCBwYWdpbmcgfSA9IGRhdGFSZXNwb25zZTtcblxuICAgIGNvbnN0IGNvbW1hbmRzID0gdGhpcy5zZXJ2aWNlQ29tbWFuZC5nZXRBbGxTdXBwb3J0ZWRDb21tYW5kcyhkYXRhIGFzIHVua25vd24gYXMgU2VydmljZVtdKTtcbiAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gdGhpcy5zZXJ2aWNlQ29tbWFuZC5nZW5lcmF0ZUFjdGlvbkNvbnRyb2xzKGNvbW1hbmRzKTtcblxuICAgIGNvbnN0IHNlcnZlclNpZGVEYXRhUmVzdWx0OiBTZXJ2ZXJTaWRlRGF0YVJlc3VsdCA9IHtcbiAgICAgIHJlcyxcbiAgICAgIGRhdGEsXG4gICAgICBwYWdpbmcsXG4gICAgICBmaWx0ZXJlZFNpemUsXG4gICAgICBzaXplXG4gICAgfTtcblxuICAgIHJldHVybiBzZXJ2ZXJTaWRlRGF0YVJlc3VsdDtcbiAgfVxuXG4gIHRyYWNrQnlOYW1lKF9pbmRleCwgY29sdW1uOiBDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2VcIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBbdGl0bGVdPVwiJ1NlcnZpY2VzJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3JlZnJlc2hdPVwicmVmcmVzaCRcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW2luZmluaXRlU2Nyb2xsXT1cIidhdXRvJ1wiXG4gICAgW3NlcnZlclNpZGVEYXRhQ2FsbGJhY2tdPVwic2VydmVyU2lkZURhdGFDYWxsYmFja1wiXG4gID5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICBbaWNvbl09XCJzdGF0cz8uc2l6ZSA+IDAgPyAnc2VhcmNoJyA6ICdjOHktdG9vbHMnXCJcbiAgICAgIFt0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzTWVzc2FnZSB8IHRyYW5zbGF0ZSkgOiAobm9EYXRhTWVzc2FnZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgW3N1YnRpdGxlXT1cInN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNTdWJ0aXRsZSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgICplbXB0eVN0YXRlQ29udGV4dD1cImxldCBzdGF0czsgaXNMb2FkaW5nIGFzIGlzTG9hZGluZ1wiXG4gICAgICBbaG9yaXpvbnRhbF09XCJzdGF0cz8uc2l6ZSA+IDBcIlxuICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeU5hbWVcIj5cbiAgICAgIDxjOHktY29sdW1uIFtuYW1lXT1cImNvbHVtbi5uYW1lXCI+PC9jOHktY29sdW1uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2M4eS1kYXRhLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { InventoryService } from '@c8y/client';
|
|
3
|
+
import { SERVICE_FRAGMENT } from '@c8y/ngx-components/services/shared';
|
|
3
4
|
import { get } from 'lodash-es';
|
|
4
|
-
import { SERVICE_FRAGMENT } from './service-device-tab.model';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@c8y/client";
|
|
7
7
|
export class ServicesDeviceTabGuard {
|
|
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
21
21
|
type: Injectable,
|
|
22
22
|
args: [{ providedIn: 'root' }]
|
|
23
23
|
}], ctorParameters: () => [{ type: i1.InventoryService }] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMtZGV2aWNlLXRhYi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3NlcnZpY2VzLWRldmljZS10YWIvc2VydmljZXMtZGV2aWNlLXRhYi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFHaEMsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQsV0FBVyxDQUFDLEtBQTZCO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN6QixrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDakYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs4R0FSVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQURULE1BQU07OzJGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU0VSVklDRV9GUkFHTUVOVCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc2VydmljZXMvc2hhcmVkJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2VydmljZXNEZXZpY2VUYWJHdWFyZCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW52ZW50b3J5U2VydmljZTogSW52ZW50b3J5U2VydmljZSkge31cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGlkID0gZ2V0KHJvdXRlLCAncGFyYW1zLmlkJykgfHwgZ2V0KHJvdXRlLCAncGFyZW50LnBhcmFtcy5pZCcpO1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2VcbiAgICAgIC5jaGlsZEFkZGl0aW9uc0xpc3QoeyBpZCB9LCB7IHF1ZXJ5OiBgdHlwZSBlcSAke1NFUlZJQ0VfRlJBR01FTlR9YCwgcGFnZVNpemU6IDEgfSlcbiAgICAgIC50aGVuKHJlc3VsdCA9PiAhIXJlc3VsdD8uZGF0YT8ubGVuZ3RoKTtcbiAgfVxufVxuIl19
|
|
@@ -18,6 +18,14 @@ export class ServicesBreadcrumbFactory {
|
|
|
18
18
|
const breadcrumbItems = [];
|
|
19
19
|
const device = serviceMO?.additionParents?.references[0]?.managedObject;
|
|
20
20
|
if (device) {
|
|
21
|
+
breadcrumbItems.push({
|
|
22
|
+
label: gettext('Devices'),
|
|
23
|
+
icon: 'exchange'
|
|
24
|
+
});
|
|
25
|
+
breadcrumbItems.push({
|
|
26
|
+
label: gettext('All devices'),
|
|
27
|
+
path: '/device'
|
|
28
|
+
});
|
|
21
29
|
breadcrumbItems.push({
|
|
22
30
|
label: device.name,
|
|
23
31
|
path: `/device/${device.id}`
|
|
@@ -29,6 +37,10 @@ export class ServicesBreadcrumbFactory {
|
|
|
29
37
|
breadcrumbItems.push({
|
|
30
38
|
label: serviceMO.name
|
|
31
39
|
});
|
|
40
|
+
const label = routeConfig?.label;
|
|
41
|
+
if (!!label) {
|
|
42
|
+
breadcrumbItems.push({ label });
|
|
43
|
+
}
|
|
32
44
|
}
|
|
33
45
|
breadcrumb.items = breadcrumbItems;
|
|
34
46
|
return breadcrumb;
|
|
@@ -40,4 +52,4 @@ export class ServicesBreadcrumbFactory {
|
|
|
40
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServicesBreadcrumbFactory, decorators: [{
|
|
41
53
|
type: Injectable
|
|
42
54
|
}], ctorParameters: () => [{ type: i1.InventoryService }] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuYnJlYWRjcnVtYi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc2VydmljZXMvc2VydmljZXMtZGV2aWNlLXRhYi9zZXJ2aWNlcy5icmVhZGNydW1iLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQVcsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUlMLE9BQU8sRUFDUCxXQUFXLEVBQ1osTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRzdCLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTFELEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBcUI7UUFDN0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNyRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUV2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRW5ELElBQ0UsQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLE9BQU8sSUFBSyxXQUFtQixFQUFFLE9BQU8sS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQzFGLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUNsQixDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsQ0FDaEIsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDNUUsRUFBRSxJQUFJLENBQUM7WUFDUixNQUFNLFVBQVUsR0FBZSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLGVBQWUsR0FBcUIsRUFBRSxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFZLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztZQUVqRixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUN6QixJQUFJLEVBQUUsVUFBVTtpQkFDQyxDQUFDLENBQUM7Z0JBRXJCLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDO29CQUM3QixJQUFJLEVBQUUsU0FBUztpQkFDaEIsQ0FBQyxDQUFDO2dCQUVILGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDbEIsSUFBSSxFQUFFLFdBQVcsTUFBTSxDQUFDLEVBQUUsRUFBRTtpQkFDN0IsQ0FBQyxDQUFDO2dCQUNILGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO29CQUMxQixJQUFJLEVBQUUsV0FBVyxNQUFNLENBQUMsRUFBRSxXQUFXO2lCQUN0QyxDQUFDLENBQUM7Z0JBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDbkIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJO2lCQUNKLENBQUMsQ0FBQztnQkFFckIsTUFBTSxLQUFLLEdBQUksV0FBaUMsRUFBRSxLQUFLLENBQUM7Z0JBRXhELElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNaLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQW9CLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztZQUNILENBQUM7WUFFRCxVQUFVLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztZQUNuQyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQzs4R0F2RFUseUJBQXlCO2tIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZXJ2aWNlLCBJU291cmNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQnJlYWRjcnVtYixcbiAgQnJlYWRjcnVtYkZhY3RvcnksXG4gIEJyZWFkY3J1bWJJdGVtLFxuICBnZXR0ZXh0LFxuICBWaWV3Q29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VzQnJlYWRjcnVtYkZhY3RvcnkgaW1wbGVtZW50cyBCcmVhZGNydW1iRmFjdG9yeSB7XG4gIHByaXZhdGUgY29udGV4dERhdGE7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGdldChyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBjb25zdCB7IGNvbnRleHQsIGNvbnRleHREYXRhIH0gPSByb3V0ZS5zbmFwc2hvdC5kYXRhO1xuICAgIGNvbnN0IHsgcm91dGVDb25maWcgfSA9IHJvdXRlLnNuYXBzaG90O1xuXG4gICAgdGhpcy5jb250ZXh0RGF0YSA9IGNvbnRleHREYXRhIHx8IHRoaXMuY29udGV4dERhdGE7XG5cbiAgICBpZiAoXG4gICAgICAoY29udGV4dCA9PT0gVmlld0NvbnRleHQuU2VydmljZSB8fCAocm91dGVDb25maWcgYXMgYW55KT8uY29udGV4dCA9PT0gVmlld0NvbnRleHQuU2VydmljZSkgJiZcbiAgICAgICEhdGhpcy5jb250ZXh0RGF0YVxuICAgICkge1xuICAgICAgY29uc3Qgc2VydmljZU1PID0gKFxuICAgICAgICBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKHRoaXMuY29udGV4dERhdGEsIHsgd2l0aFBhcmVudHM6IHRydWUgfSlcbiAgICAgICk/LmRhdGE7XG4gICAgICBjb25zdCBicmVhZGNydW1iOiBCcmVhZGNydW1iID0geyBpdGVtczogW10gfTtcbiAgICAgIGNvbnN0IGJyZWFkY3J1bWJJdGVtczogQnJlYWRjcnVtYkl0ZW1bXSA9IFtdO1xuICAgICAgY29uc3QgZGV2aWNlOiBJU291cmNlID0gc2VydmljZU1PPy5hZGRpdGlvblBhcmVudHM/LnJlZmVyZW5jZXNbMF0/Lm1hbmFnZWRPYmplY3Q7XG5cbiAgICAgIGlmIChkZXZpY2UpIHtcbiAgICAgICAgYnJlYWRjcnVtYkl0ZW1zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXZpY2VzJyksXG4gICAgICAgICAgaWNvbjogJ2V4Y2hhbmdlJ1xuICAgICAgICB9IGFzIEJyZWFkY3J1bWJJdGVtKTtcblxuICAgICAgICBicmVhZGNydW1iSXRlbXMucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0FsbCBkZXZpY2VzJyksXG4gICAgICAgICAgcGF0aDogJy9kZXZpY2UnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJyZWFkY3J1bWJJdGVtcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogZGV2aWNlLm5hbWUsXG4gICAgICAgICAgcGF0aDogYC9kZXZpY2UvJHtkZXZpY2UuaWR9YFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWRjcnVtYkl0ZW1zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2aWNlcycpLFxuICAgICAgICAgIHBhdGg6IGAvZGV2aWNlLyR7ZGV2aWNlLmlkfS9zZXJ2aWNlc2BcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFkY3J1bWJJdGVtcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogc2VydmljZU1PLm5hbWVcbiAgICAgICAgfSBhcyBCcmVhZGNydW1iSXRlbSk7XG5cbiAgICAgICAgY29uc3QgbGFiZWwgPSAocm91dGVDb25maWcgYXMgeyBsYWJlbDogc3RyaW5nIH0pPy5sYWJlbDtcblxuICAgICAgICBpZiAoISFsYWJlbCkge1xuICAgICAgICAgIGJyZWFkY3J1bWJJdGVtcy5wdXNoKHsgbGFiZWwgfSBhcyBCcmVhZGNydW1iSXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnJlYWRjcnVtYi5pdGVtcyA9IGJyZWFkY3J1bWJJdGVtcztcbiAgICAgIHJldHVybiBicmVhZGNydW1iO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CoreModule } from '@c8y/ngx-components';
|
|
3
|
+
import { serviceCommandTabFeatureProvider } from '@c8y/ngx-components/services/service-command-tab';
|
|
3
4
|
import { ServicesDeviceTabModule } from './services-device-tab';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class ServicesModule {
|
|
6
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
8
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: ServicesModule, imports: [CoreModule, ServicesDeviceTabModule] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServicesModule, imports: [CoreModule, ServicesDeviceTabModule] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServicesModule, providers: [serviceCommandTabFeatureProvider], imports: [CoreModule, ServicesDeviceTabModule] }); }
|
|
9
10
|
}
|
|
10
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServicesModule, decorators: [{
|
|
11
12
|
type: NgModule,
|
|
12
13
|
args: [{
|
|
14
|
+
providers: [serviceCommandTabFeatureProvider],
|
|
13
15
|
imports: [CoreModule, ServicesDeviceTabModule]
|
|
14
16
|
}]
|
|
15
17
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc2VydmljZXMvc2VydmljZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU1oRSxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsWUFGZixVQUFVLEVBQUUsdUJBQXVCOytHQUVsQyxjQUFjLGFBSGQsQ0FBQyxnQ0FBZ0MsQ0FBQyxZQUNuQyxVQUFVLEVBQUUsdUJBQXVCOzsyRkFFbEMsY0FBYztrQkFKMUIsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLHVCQUF1QixDQUFDO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBzZXJ2aWNlQ29tbWFuZFRhYkZlYXR1cmVQcm92aWRlciB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc2VydmljZXMvc2VydmljZS1jb21tYW5kLXRhYic7XG5pbXBvcnQgeyBTZXJ2aWNlc0RldmljZVRhYk1vZHVsZSB9IGZyb20gJy4vc2VydmljZXMtZGV2aWNlLXRhYic7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW3NlcnZpY2VDb21tYW5kVGFiRmVhdHVyZVByb3ZpZGVyXSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIFNlcnZpY2VzRGV2aWNlVGFiTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlc01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXNlcnZpY2VzLXNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3NoYXJlZC9jOHktbmd4LWNvbXBvbmVudHMtc2VydmljZXMtc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './service-command.service';
|
|
2
|
+
export * from './services.model';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLWNvbW1hbmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzLm1vZGVsJztcbiJdfQ==
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { OperationService } from '@c8y/client';
|
|
3
|
+
import { AlertService, gettext } from '@c8y/ngx-components';
|
|
4
|
+
import { map } from 'lodash-es';
|
|
5
|
+
import { SERVICE_COMMANDS_MAP } from './services.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@c8y/client";
|
|
8
|
+
import * as i2 from "@c8y/ngx-components";
|
|
9
|
+
export class ServiceCommandService {
|
|
10
|
+
constructor(operationService, alertService) {
|
|
11
|
+
this.operationService = operationService;
|
|
12
|
+
this.alertService = alertService;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Check if the service supports service commands.
|
|
16
|
+
* @param service The service object containing supported operations.
|
|
17
|
+
* @returns boolean indicating if the service supports service commands.
|
|
18
|
+
*/
|
|
19
|
+
isServiceCommandSupported(service) {
|
|
20
|
+
return service.c8y_SupportedOperations?.includes('c8y_ServiceCommand');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get the list of supported service commands for the given service object.
|
|
24
|
+
* @param service The service object containing the c8y_SupportedServiceCommands fragment.
|
|
25
|
+
* @returns Array of supported commands.
|
|
26
|
+
*/
|
|
27
|
+
getSupportedCommands(service) {
|
|
28
|
+
return service.c8y_SupportedServiceCommands || map(SERVICE_COMMANDS_MAP, 'command');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Check if a specific command is supported for the given service.
|
|
32
|
+
* @param service The service object.
|
|
33
|
+
* @param command The command to check (e.g., START, STOP).
|
|
34
|
+
* @returns boolean indicating if the command is supported.
|
|
35
|
+
*/
|
|
36
|
+
isCommandSupported(service, command) {
|
|
37
|
+
const supportedCommands = this.getSupportedCommands(service);
|
|
38
|
+
return supportedCommands.includes(command);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get all supported commands for a list of services.
|
|
42
|
+
* @param services The list of service objects to evaluate.
|
|
43
|
+
* @returns Array of all unique supported commands.
|
|
44
|
+
*/
|
|
45
|
+
getAllSupportedCommands(services) {
|
|
46
|
+
const allCommands = services
|
|
47
|
+
.filter(service => this.isServiceCommandSupported(service))
|
|
48
|
+
.flatMap(service => this.getSupportedCommands(service));
|
|
49
|
+
return Array.from(new Set(allCommands));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create an operation for the selected service command.
|
|
53
|
+
* @param service The service object the operation should target.
|
|
54
|
+
* @param command The command to execute (e.g., START, STOP).
|
|
55
|
+
* @returns Promise of the created operation.
|
|
56
|
+
*/
|
|
57
|
+
createOperation({ id, name, serviceType }, command) {
|
|
58
|
+
const operation = {
|
|
59
|
+
deviceId: id,
|
|
60
|
+
description: `${command} ${name}`,
|
|
61
|
+
c8y_ServiceCommand: {
|
|
62
|
+
command,
|
|
63
|
+
serviceName: name,
|
|
64
|
+
serviceType: serviceType
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
return this.operationService.create(operation);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Generate a static list of action controls.
|
|
71
|
+
* The specific logic for each service is handled dynamically in showIf and callback.
|
|
72
|
+
* @returns Array of ActionControl objects.
|
|
73
|
+
*/
|
|
74
|
+
generateActionControls(commands) {
|
|
75
|
+
return commands.map(command => ({
|
|
76
|
+
type: command.toLowerCase(),
|
|
77
|
+
icon: this.getCommandIcon(command),
|
|
78
|
+
iconClasses: this.getCommandIconClass(command),
|
|
79
|
+
text: command,
|
|
80
|
+
showIf: (service) => this.isServiceCommandSupported(service) && this.isCommandSupported(service, command),
|
|
81
|
+
callback: async (service) => {
|
|
82
|
+
try {
|
|
83
|
+
await this.createOperation(service, command);
|
|
84
|
+
this.alertService.success(gettext('Operation created.'));
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
const alertMessage = gettext('Could not create operation.');
|
|
88
|
+
this.alertService.danger(alertMessage, error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get the icon for a specific command.
|
|
95
|
+
* @param command The command name.
|
|
96
|
+
* @returns Icon string for the command.
|
|
97
|
+
*/
|
|
98
|
+
getCommandIcon(command) {
|
|
99
|
+
return SERVICE_COMMANDS_MAP[command]?.icon || 'console';
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the icon class for a specific command.
|
|
103
|
+
* @param command The command name.
|
|
104
|
+
* @returns Icon class string for the command.
|
|
105
|
+
*/
|
|
106
|
+
getCommandIconClass(command) {
|
|
107
|
+
return SERVICE_COMMANDS_MAP[command]?.styleClass;
|
|
108
|
+
}
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServiceCommandService, deps: [{ token: i1.OperationService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
110
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServiceCommandService, providedIn: 'root' }); }
|
|
111
|
+
}
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ServiceCommandService, decorators: [{
|
|
113
|
+
type: Injectable,
|
|
114
|
+
args: [{
|
|
115
|
+
providedIn: 'root'
|
|
116
|
+
}]
|
|
117
|
+
}], ctorParameters: () => [{ type: i1.OperationService }, { type: i2.AlertService }] });
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb21tYW5kLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zaGFyZWQvc2VydmljZS1jb21tYW5kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVCLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFXLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLakUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUNVLGdCQUFrQyxFQUNsQyxZQUEwQjtRQUQxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2pDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gseUJBQXlCLENBQUMsT0FBZ0I7UUFDeEMsT0FBTyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxPQUFnQjtRQUNuQyxPQUFPLE9BQU8sQ0FBQyw0QkFBNEIsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsT0FBZ0IsRUFBRSxPQUFlO1FBQ2xELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELE9BQU8saUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsdUJBQXVCLENBQUMsUUFBbUI7UUFDekMsTUFBTSxXQUFXLEdBQUcsUUFBUTthQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDMUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFMUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUNiLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQVcsRUFDbEMsT0FBZTtRQUVmLE1BQU0sU0FBUyxHQUFlO1lBQzVCLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLEdBQUcsT0FBTyxJQUFJLElBQUksRUFBRTtZQUNqQyxrQkFBa0IsRUFBRTtnQkFDbEIsT0FBTztnQkFDUCxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFdBQVc7YUFDekI7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsUUFBa0I7UUFDdkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUMzQixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDbEMsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7WUFDOUMsSUFBSSxFQUFFLE9BQU87WUFDYixNQUFNLEVBQUUsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FDM0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO1lBQ3RGLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUM7b0JBQ0gsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO29CQUM1RCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGNBQWMsQ0FBQyxPQUFlO1FBQ3BDLE9BQU8sb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLG1CQUFtQixDQUFDLE9BQWU7UUFDekMsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxVQUFVLENBQUM7SUFDbkQsQ0FBQzs4R0FoSFUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElPcGVyYXRpb24sIElSZXN1bHQsIE9wZXJhdGlvblNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBY3Rpb25Db250cm9sLCBBbGVydFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTZXJ2aWNlLCBTRVJWSUNFX0NPTU1BTkRTX01BUCB9IGZyb20gJy4vc2VydmljZXMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlQ29tbWFuZFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wZXJhdGlvblNlcnZpY2U6IE9wZXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBzZXJ2aWNlIHN1cHBvcnRzIHNlcnZpY2UgY29tbWFuZHMuXG4gICAqIEBwYXJhbSBzZXJ2aWNlIFRoZSBzZXJ2aWNlIG9iamVjdCBjb250YWluaW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLlxuICAgKiBAcmV0dXJucyBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHNlcnZpY2Ugc3VwcG9ydHMgc2VydmljZSBjb21tYW5kcy5cbiAgICovXG4gIGlzU2VydmljZUNvbW1hbmRTdXBwb3J0ZWQoc2VydmljZTogU2VydmljZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzZXJ2aWNlLmM4eV9TdXBwb3J0ZWRPcGVyYXRpb25zPy5pbmNsdWRlcygnYzh5X1NlcnZpY2VDb21tYW5kJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBzZXJ2aWNlIGNvbW1hbmRzIGZvciB0aGUgZ2l2ZW4gc2VydmljZSBvYmplY3QuXG4gICAqIEBwYXJhbSBzZXJ2aWNlIFRoZSBzZXJ2aWNlIG9iamVjdCBjb250YWluaW5nIHRoZSBjOHlfU3VwcG9ydGVkU2VydmljZUNvbW1hbmRzIGZyYWdtZW50LlxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzdXBwb3J0ZWQgY29tbWFuZHMuXG4gICAqL1xuICBnZXRTdXBwb3J0ZWRDb21tYW5kcyhzZXJ2aWNlOiBTZXJ2aWNlKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBzZXJ2aWNlLmM4eV9TdXBwb3J0ZWRTZXJ2aWNlQ29tbWFuZHMgfHwgbWFwKFNFUlZJQ0VfQ09NTUFORFNfTUFQLCAnY29tbWFuZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgc3BlY2lmaWMgY29tbWFuZCBpcyBzdXBwb3J0ZWQgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gc2VydmljZSBUaGUgc2VydmljZSBvYmplY3QuXG4gICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIHRvIGNoZWNrIChlLmcuLCBTVEFSVCwgU1RPUCkuXG4gICAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgY29tbWFuZCBpcyBzdXBwb3J0ZWQuXG4gICAqL1xuICBpc0NvbW1hbmRTdXBwb3J0ZWQoc2VydmljZTogU2VydmljZSwgY29tbWFuZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3VwcG9ydGVkQ29tbWFuZHMgPSB0aGlzLmdldFN1cHBvcnRlZENvbW1hbmRzKHNlcnZpY2UpO1xuICAgIHJldHVybiBzdXBwb3J0ZWRDb21tYW5kcy5pbmNsdWRlcyhjb21tYW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHN1cHBvcnRlZCBjb21tYW5kcyBmb3IgYSBsaXN0IG9mIHNlcnZpY2VzLlxuICAgKiBAcGFyYW0gc2VydmljZXMgVGhlIGxpc3Qgb2Ygc2VydmljZSBvYmplY3RzIHRvIGV2YWx1YXRlLlxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBhbGwgdW5pcXVlIHN1cHBvcnRlZCBjb21tYW5kcy5cbiAgICovXG4gIGdldEFsbFN1cHBvcnRlZENvbW1hbmRzKHNlcnZpY2VzOiBTZXJ2aWNlW10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYWxsQ29tbWFuZHMgPSBzZXJ2aWNlc1xuICAgICAgLmZpbHRlcihzZXJ2aWNlID0+IHRoaXMuaXNTZXJ2aWNlQ29tbWFuZFN1cHBvcnRlZChzZXJ2aWNlKSlcbiAgICAgIC5mbGF0TWFwKHNlcnZpY2UgPT4gdGhpcy5nZXRTdXBwb3J0ZWRDb21tYW5kcyhzZXJ2aWNlKSk7XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGFsbENvbW1hbmRzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZXJhdGlvbiBmb3IgdGhlIHNlbGVjdGVkIHNlcnZpY2UgY29tbWFuZC5cbiAgICogQHBhcmFtIHNlcnZpY2UgVGhlIHNlcnZpY2Ugb2JqZWN0IHRoZSBvcGVyYXRpb24gc2hvdWxkIHRhcmdldC5cbiAgICogQHBhcmFtIGNvbW1hbmQgVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZSAoZS5nLiwgU1RBUlQsIFNUT1ApLlxuICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIHRoZSBjcmVhdGVkIG9wZXJhdGlvbi5cbiAgICovXG4gIGNyZWF0ZU9wZXJhdGlvbihcbiAgICB7IGlkLCBuYW1lLCBzZXJ2aWNlVHlwZSB9OiBTZXJ2aWNlLFxuICAgIGNvbW1hbmQ6IHN0cmluZ1xuICApOiBQcm9taXNlPElSZXN1bHQ8SU9wZXJhdGlvbj4+IHtcbiAgICBjb25zdCBvcGVyYXRpb246IElPcGVyYXRpb24gPSB7XG4gICAgICBkZXZpY2VJZDogaWQsXG4gICAgICBkZXNjcmlwdGlvbjogYCR7Y29tbWFuZH0gJHtuYW1lfWAsXG4gICAgICBjOHlfU2VydmljZUNvbW1hbmQ6IHtcbiAgICAgICAgY29tbWFuZCxcbiAgICAgICAgc2VydmljZU5hbWU6IG5hbWUsXG4gICAgICAgIHNlcnZpY2VUeXBlOiBzZXJ2aWNlVHlwZVxuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25TZXJ2aWNlLmNyZWF0ZShvcGVyYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgc3RhdGljIGxpc3Qgb2YgYWN0aW9uIGNvbnRyb2xzLlxuICAgKiBUaGUgc3BlY2lmaWMgbG9naWMgZm9yIGVhY2ggc2VydmljZSBpcyBoYW5kbGVkIGR5bmFtaWNhbGx5IGluIHNob3dJZiBhbmQgY2FsbGJhY2suXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIEFjdGlvbkNvbnRyb2wgb2JqZWN0cy5cbiAgICovXG4gIGdlbmVyYXRlQWN0aW9uQ29udHJvbHMoY29tbWFuZHM6IHN0cmluZ1tdKTogQWN0aW9uQ29udHJvbFtdIHtcbiAgICByZXR1cm4gY29tbWFuZHMubWFwKGNvbW1hbmQgPT4gKHtcbiAgICAgIHR5cGU6IGNvbW1hbmQudG9Mb3dlckNhc2UoKSxcbiAgICAgIGljb246IHRoaXMuZ2V0Q29tbWFuZEljb24oY29tbWFuZCksXG4gICAgICBpY29uQ2xhc3NlczogdGhpcy5nZXRDb21tYW5kSWNvbkNsYXNzKGNvbW1hbmQpLFxuICAgICAgdGV4dDogY29tbWFuZCxcbiAgICAgIHNob3dJZjogKHNlcnZpY2U6IFNlcnZpY2UpID0+XG4gICAgICAgIHRoaXMuaXNTZXJ2aWNlQ29tbWFuZFN1cHBvcnRlZChzZXJ2aWNlKSAmJiB0aGlzLmlzQ29tbWFuZFN1cHBvcnRlZChzZXJ2aWNlLCBjb21tYW5kKSxcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoc2VydmljZTogU2VydmljZSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY3JlYXRlT3BlcmF0aW9uKHNlcnZpY2UsIGNvbW1hbmQpO1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnT3BlcmF0aW9uIGNyZWF0ZWQuJykpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnN0IGFsZXJ0TWVzc2FnZSA9IGdldHRleHQoJ0NvdWxkIG5vdCBjcmVhdGUgb3BlcmF0aW9uLicpO1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmRhbmdlcihhbGVydE1lc3NhZ2UsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGljb24gZm9yIGEgc3BlY2lmaWMgY29tbWFuZC5cbiAgICogQHBhcmFtIGNvbW1hbmQgVGhlIGNvbW1hbmQgbmFtZS5cbiAgICogQHJldHVybnMgSWNvbiBzdHJpbmcgZm9yIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb21tYW5kSWNvbihjb21tYW5kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBTRVJWSUNFX0NPTU1BTkRTX01BUFtjb21tYW5kXT8uaWNvbiB8fCAnY29uc29sZSc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBpY29uIGNsYXNzIGZvciBhIHNwZWNpZmljIGNvbW1hbmQuXG4gICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIG5hbWUuXG4gICAqIEByZXR1cm5zIEljb24gY2xhc3Mgc3RyaW5nIGZvciB0aGUgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgZ2V0Q29tbWFuZEljb25DbGFzcyhjb21tYW5kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBTRVJWSUNFX0NPTU1BTkRTX01BUFtjb21tYW5kXT8uc3R5bGVDbGFzcztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { gettext } from '@c8y/ngx-components';
|
|
2
|
+
export const SERVICE_FRAGMENT = 'c8y_Service';
|
|
3
|
+
export const SERVICE_COMMANDS_MAP = {
|
|
4
|
+
START: {
|
|
5
|
+
label: gettext('Start'),
|
|
6
|
+
command: 'START',
|
|
7
|
+
icon: 'play-circle',
|
|
8
|
+
styleClass: 'text-success'
|
|
9
|
+
},
|
|
10
|
+
STOP: {
|
|
11
|
+
label: gettext('Stop'),
|
|
12
|
+
command: 'STOP',
|
|
13
|
+
icon: 'stop-circle',
|
|
14
|
+
styleClass: 'text-danger'
|
|
15
|
+
},
|
|
16
|
+
RESTART: {
|
|
17
|
+
label: gettext('Restart'),
|
|
18
|
+
command: 'RESTART',
|
|
19
|
+
icon: 'refresh',
|
|
20
|
+
styleClass: 'text-info'
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zaGFyZWQvc2VydmljZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxLQUFLLEVBQUU7UUFDTCxLQUFLLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN2QixPQUFPLEVBQUUsT0FBTztRQUNoQixJQUFJLEVBQUUsYUFBYTtRQUNuQixVQUFVLEVBQUUsY0FBYztLQUMzQjtJQUNELElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNO1FBQ2YsSUFBSSxFQUFFLGFBQWE7UUFDbkIsVUFBVSxFQUFFLGFBQWE7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDUCxLQUFLLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN6QixPQUFPLEVBQUUsU0FBUztRQUNsQixJQUFJLEVBQUUsU0FBUztRQUNmLFVBQVUsRUFBRSxXQUFXO0tBQ3hCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuZXhwb3J0IGNvbnN0IFNFUlZJQ0VfRlJBR01FTlQgPSAnYzh5X1NlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgU0VSVklDRV9DT01NQU5EU19NQVAgPSB7XG4gIFNUQVJUOiB7XG4gICAgbGFiZWw6IGdldHRleHQoJ1N0YXJ0JyksXG4gICAgY29tbWFuZDogJ1NUQVJUJyxcbiAgICBpY29uOiAncGxheS1jaXJjbGUnLFxuICAgIHN0eWxlQ2xhc3M6ICd0ZXh0LXN1Y2Nlc3MnXG4gIH0sXG4gIFNUT1A6IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnU3RvcCcpLFxuICAgIGNvbW1hbmQ6ICdTVE9QJyxcbiAgICBpY29uOiAnc3RvcC1jaXJjbGUnLFxuICAgIHN0eWxlQ2xhc3M6ICd0ZXh0LWRhbmdlcidcbiAgfSxcbiAgUkVTVEFSVDoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdSZXN0YXJ0JyksXG4gICAgY29tbWFuZDogJ1JFU1RBUlQnLFxuICAgIGljb246ICdyZWZyZXNoJyxcbiAgICBzdHlsZUNsYXNzOiAndGV4dC1pbmZvJ1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2Uge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VUeXBlOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBjOHlfU3VwcG9ydGVkT3BlcmF0aW9ucz86IHN0cmluZ1tdO1xuICBjOHlfU3VwcG9ydGVkU2VydmljZUNvbW1hbmRzPzogc3RyaW5nW107XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG4iXX0=
|
|
@@ -1979,11 +1979,11 @@ class AlarmsTypeFilterComponent {
|
|
|
1979
1979
|
return activeFilters.map(filter => filter.filters.type).join(',');
|
|
1980
1980
|
}
|
|
1981
1981
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, deps: [{ token: i1$3.AlarmEventSelectorService }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i3.ColorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1982
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by
|
|
1982
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong tanslate>The list below may not be complete.</strong>\n </p>\n <p tanslate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i3.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i3.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: i5$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
1983
1983
|
}
|
|
1984
1984
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, decorators: [{
|
|
1985
1985
|
type: Component,
|
|
1986
|
-
args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by
|
|
1986
|
+
args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong tanslate>The list below may not be complete.</strong>\n </p>\n <p tanslate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n" }]
|
|
1987
1987
|
}], ctorParameters: () => [{ type: i1$3.AlarmEventSelectorService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i3.ColorService }], propDecorators: { alarms: [{
|
|
1988
1988
|
type: Input
|
|
1989
1989
|
}], possibleFilters: [{
|