@c8y/ngx-components 1020.28.11 → 1020.33.1
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/bookmarks/bookmarks.service.d.ts +3 -2
- package/bookmarks/bookmarks.service.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
- package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts.map +1 -1
- package/core/common/common.module.d.ts +2 -2
- package/core/common/humanize-app-name.model.d.ts +2 -2
- package/core/common/humanize-app-name.pipe.d.ts.map +1 -1
- package/core/dashboard/dashboard.model.d.ts +1 -0
- package/core/dashboard/dashboard.model.d.ts.map +1 -1
- package/core/dashboard/widgets-dashboard.component.d.ts +1 -0
- package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
- package/core/data-grid/data-grid.model.d.ts +1 -1
- package/core/data-grid/data-grid.model.d.ts.map +1 -1
- package/core/data-grid/visible-controls.pipe.d.ts +3 -2
- package/core/data-grid/visible-controls.pipe.d.ts.map +1 -1
- package/esm2022/bookmarks/bookmarks.service.mjs +9 -7
- package/esm2022/context-dashboard/context-dashboard.service.mjs +6 -3
- package/esm2022/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +39 -3
- package/esm2022/core/common/common.module.mjs +3 -3
- package/esm2022/core/common/humanize-app-name.model.mjs +3 -3
- package/esm2022/core/common/humanize-app-name.pipe.mjs +6 -5
- package/esm2022/core/dashboard/dashboard.model.mjs +2 -2
- package/esm2022/core/dashboard/widgets-dashboard.component.mjs +12 -3
- package/esm2022/core/data-grid/data-grid.component.mjs +3 -3
- package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
- package/esm2022/core/data-grid/visible-controls.pipe.mjs +5 -4
- package/esm2022/core/docs/defaults.items.mjs +2 -2
- package/esm2022/protocol-opcua/opcua-device-protocol-data-reporting.component.mjs +3 -3
- package/esm2022/repository/configuration/list/configuration-list.component.mjs +107 -60
- package/esm2022/repository/shared/columns/device-type.cell-renderer.component.mjs +7 -3
- package/esm2022/repository/shared/columns/device-type.grid-column.mjs +2 -2
- package/esm2022/repository/shared/columns/file.cell-renderer.component.mjs +39 -0
- package/esm2022/repository/shared/columns/file.grid-column.mjs +13 -0
- package/esm2022/repository/shared/columns/name.cell-renderer.component.mjs +26 -5
- package/esm2022/repository/shared/columns/name.grid-column.mjs +1 -1
- package/esm2022/repository/shared/columns/type.cell-renderer.component.mjs +18 -0
- package/esm2022/repository/shared/columns/type.filtering-form-renderer.component.mjs +115 -0
- package/esm2022/repository/shared/columns/type.grid-column.mjs +29 -0
- package/esm2022/repository/shared/index.mjs +10 -1
- package/esm2022/repository/software/list/software-list.component.mjs +9 -4
- package/esm2022/repository/software/list/software-repository-list.module.mjs +3 -15
- package/esm2022/widgets/definitions/device-management-welcome/index.mjs +2 -2
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.mjs +22 -5
- package/fesm2022/c8y-ngx-components-bookmarks.mjs +7 -5
- package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +43 -4
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +2 -2
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +118 -68
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +283 -81
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +31 -154
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +24 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +27 -17
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +6 -0
- package/locales/es.po +6 -0
- package/locales/fr.po +6 -0
- package/locales/ja_JP.po +6 -0
- package/locales/locales.pot +38 -23
- package/locales/nl.po +6 -0
- package/locales/pl.po +6 -0
- package/locales/pt_BR.po +6 -0
- package/package.json +1 -1
- package/repository/configuration/list/configuration-list.component.d.ts +21 -17
- package/repository/configuration/list/configuration-list.component.d.ts.map +1 -1
- package/repository/shared/columns/device-type.cell-renderer.component.d.ts +4 -1
- package/repository/shared/columns/device-type.cell-renderer.component.d.ts.map +1 -1
- package/repository/shared/columns/device-type.grid-column.d.ts +1 -0
- package/repository/shared/columns/device-type.grid-column.d.ts.map +1 -1
- package/repository/shared/columns/file.cell-renderer.component.d.ts +15 -0
- package/repository/shared/columns/file.cell-renderer.component.d.ts.map +1 -0
- package/repository/shared/columns/file.grid-column.d.ts +8 -0
- package/repository/shared/columns/file.grid-column.d.ts.map +1 -0
- package/repository/shared/columns/name.cell-renderer.component.d.ts.map +1 -1
- package/repository/shared/columns/name.grid-column.d.ts +3 -1
- package/repository/shared/columns/name.grid-column.d.ts.map +1 -1
- package/repository/shared/columns/type.cell-renderer.component.d.ts +9 -0
- package/repository/shared/columns/type.cell-renderer.component.d.ts.map +1 -0
- package/repository/{software/list/columns/software-type.filtering-form-renderer.component.d.ts → shared/columns/type.filtering-form-renderer.component.d.ts} +9 -8
- package/repository/shared/columns/type.filtering-form-renderer.component.d.ts.map +1 -0
- package/repository/shared/columns/type.grid-column.d.ts +20 -0
- package/repository/shared/columns/type.grid-column.d.ts.map +1 -0
- package/repository/shared/index.d.ts +9 -0
- package/repository/shared/index.d.ts.map +1 -1
- package/repository/software/list/software-list.component.d.ts.map +1 -1
- package/repository/software/list/software-repository-list.module.d.ts +8 -10
- package/repository/software/list/software-repository-list.module.d.ts.map +1 -1
- package/widgets/definitions/device-management-welcome/index.d.ts +1 -1
- package/widgets/definitions/device-management-welcome/index.d.ts.map +1 -1
- package/widgets/device-management/index.d.ts +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts +5 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts.map +1 -1
- package/esm2022/repository/software/list/columns/software-type.cell-renderer.component.mjs +0 -17
- package/esm2022/repository/software/list/columns/software-type.filtering-form-renderer.component.mjs +0 -93
- package/esm2022/repository/software/list/columns/software-type.grid-column.mjs +0 -28
- package/repository/software/list/columns/software-type.cell-renderer.component.d.ts +0 -9
- package/repository/software/list/columns/software-type.cell-renderer.component.d.ts.map +0 -1
- package/repository/software/list/columns/software-type.filtering-form-renderer.component.d.ts.map +0 -1
- package/repository/software/list/columns/software-type.grid-column.d.ts +0 -5
- package/repository/software/list/columns/software-type.grid-column.d.ts.map +0 -1
|
@@ -5,29 +5,50 @@ import { DeviceGridModule } from '@c8y/ngx-components/device-grid';
|
|
|
5
5
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@c8y/ngx-components";
|
|
8
|
-
import * as i2 from "@angular/
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "@angular/router";
|
|
9
10
|
export class RepositoryItemNameCellRendererComponent {
|
|
10
11
|
constructor(context) {
|
|
11
12
|
this.context = context;
|
|
12
13
|
}
|
|
13
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositoryItemNameCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
15
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: RepositoryItemNameCellRendererComponent, isStandalone: true, selector: "c8y-repository-item-name-cell-renderer", ngImport: i0, template: `
|
|
15
|
-
<a
|
|
16
|
+
<a
|
|
17
|
+
class="interact"
|
|
18
|
+
[title]="context.item.name"
|
|
19
|
+
*ngIf="context?.property?.callback; else router"
|
|
20
|
+
(click)="context.property.callback(context.item)"
|
|
21
|
+
>
|
|
16
22
|
{{ context.item.name }}
|
|
17
23
|
</a>
|
|
18
|
-
|
|
24
|
+
<ng-template #router>
|
|
25
|
+
<a class="interact" [title]="context.item.name" [routerLink]="[context.item.id]">
|
|
26
|
+
{{ context.item.name }}
|
|
27
|
+
</a>
|
|
28
|
+
</ng-template>
|
|
29
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DeviceGridModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
19
30
|
}
|
|
20
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RepositoryItemNameCellRendererComponent, decorators: [{
|
|
21
32
|
type: Component,
|
|
22
33
|
args: [{
|
|
23
34
|
template: `
|
|
24
|
-
<a
|
|
35
|
+
<a
|
|
36
|
+
class="interact"
|
|
37
|
+
[title]="context.item.name"
|
|
38
|
+
*ngIf="context?.property?.callback; else router"
|
|
39
|
+
(click)="context.property.callback(context.item)"
|
|
40
|
+
>
|
|
25
41
|
{{ context.item.name }}
|
|
26
42
|
</a>
|
|
43
|
+
<ng-template #router>
|
|
44
|
+
<a class="interact" [title]="context.item.name" [routerLink]="[context.item.id]">
|
|
45
|
+
{{ context.item.name }}
|
|
46
|
+
</a>
|
|
47
|
+
</ng-template>
|
|
27
48
|
`,
|
|
28
49
|
selector: 'c8y-repository-item-name-cell-renderer',
|
|
29
50
|
standalone: true,
|
|
30
51
|
imports: [CommonModule, DeviceGridModule, TooltipModule, RouterModule]
|
|
31
52
|
}]
|
|
32
53
|
}], ctorParameters: () => [{ type: i1.CellRendererContext }] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL2NvbHVtbnMvbmFtZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQXNCdEQsTUFBTSxPQUFPLHVDQUF1QztJQUNsRCxZQUFtQixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7OEdBRHhDLHVDQUF1QztrR0FBdkMsdUNBQXVDLGtHQW5CeEM7Ozs7Ozs7Ozs7Ozs7O0dBY1QsMkRBR1MsWUFBWSxrSUFBRSxnQkFBZ0IsOEJBQUUsYUFBYSw4QkFBRSxZQUFZOzsyRkFFMUQsdUNBQXVDO2tCQXBCbkQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7b0JBQ0QsUUFBUSxFQUFFLHdDQUF3QztvQkFDbEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDO2lCQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENlbGxSZW5kZXJlckNvbnRleHQsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGV2aWNlR3JpZE1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGV2aWNlLWdyaWQnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxhXG4gICAgICBjbGFzcz1cImludGVyYWN0XCJcbiAgICAgIFt0aXRsZV09XCJjb250ZXh0Lml0ZW0ubmFtZVwiXG4gICAgICAqbmdJZj1cImNvbnRleHQ/LnByb3BlcnR5Py5jYWxsYmFjazsgZWxzZSByb3V0ZXJcIlxuICAgICAgKGNsaWNrKT1cImNvbnRleHQucHJvcGVydHkuY2FsbGJhY2soY29udGV4dC5pdGVtKVwiXG4gICAgPlxuICAgICAge3sgY29udGV4dC5pdGVtLm5hbWUgfX1cbiAgICA8L2E+XG4gICAgPG5nLXRlbXBsYXRlICNyb3V0ZXI+XG4gICAgICA8YSBjbGFzcz1cImludGVyYWN0XCIgW3RpdGxlXT1cImNvbnRleHQuaXRlbS5uYW1lXCIgW3JvdXRlckxpbmtdPVwiW2NvbnRleHQuaXRlbS5pZF1cIj5cbiAgICAgICAge3sgY29udGV4dC5pdGVtLm5hbWUgfX1cbiAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzZWxlY3RvcjogJ2M4eS1yZXBvc2l0b3J5LWl0ZW0tbmFtZS1jZWxsLXJlbmRlcmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGV2aWNlR3JpZE1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBSZXBvc2l0b3J5SXRlbU5hbWVDZWxsUmVuZGVyZXJDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udGV4dDogQ2VsbFJlbmRlcmVyQ29udGV4dCkge31cbn1cbiJdfQ==
|
|
@@ -30,4 +30,4 @@ export class RepositoryItemNameGridColumn extends BaseColumn {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS5ncmlkLWNvbHVtbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL2NvbHVtbnMvbmFtZS5ncmlkLWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLGlDQUFpQyxFQUNqQyxPQUFPLEVBRVIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsVUFBVTtJQUcxRCxZQUNFLG1CQUlDO1FBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHVDQUF1QyxDQUFDO1FBRXJFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsTUFBTSxFQUFFLGlDQUFpQyxDQUFDO2dCQUN4QyxHQUFHLEVBQUUsT0FBTztnQkFDWixLQUFLLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztnQkFDekUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbEMsT0FBTyxFQUFFLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztnQkFDakQsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUM7YUFDL0UsQ0FBQztZQUNGLFNBQVMsQ0FBQyxLQUFVO2dCQUNsQixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdkIsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3RDLENBQUM7Z0JBQ0QsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLGtCQUFrQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlQ29sdW1uLFxuICBDb2x1bW5Db25maWcsXG4gIGdldEJhc2ljSW5wdXRBcnJheUZvcm1GaWVsZENvbmZpZyxcbiAgZ2V0dGV4dCxcbiAgUm93XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeUl0ZW1OYW1lQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9uYW1lLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIFJlcG9zaXRvcnlJdGVtTmFtZUdyaWRDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgY2FsbGJhY2s6IChyb3c6IFJvdykgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbml0aWFsQ29sdW1uQ29uZmlnPzogQ29sdW1uQ29uZmlnICYge1xuICAgICAgZmlsdGVyTGFiZWw/OiBzdHJpbmc7XG4gICAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAgIGNhbGxiYWNrPzogKHJvdzogUm93KSA9PiB2b2lkO1xuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIoaW5pdGlhbENvbHVtbkNvbmZpZyk7XG4gICAgdGhpcy5uYW1lID0gJ25hbWUnO1xuICAgIHRoaXMucGF0aCA9ICduYW1lJztcbiAgICB0aGlzLmhlYWRlciA9IGdldHRleHQoJ05hbWUnKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlckNvbXBvbmVudCA9IFJlcG9zaXRvcnlJdGVtTmFtZUNlbGxSZW5kZXJlckNvbXBvbmVudDtcblxuICAgIHRoaXMuZmlsdGVyYWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWx0ZXJpbmdDb25maWcgPSB7XG4gICAgICBmaWVsZHM6IGdldEJhc2ljSW5wdXRBcnJheUZvcm1GaWVsZENvbmZpZyh7XG4gICAgICAgIGtleTogJ25hbWVzJyxcbiAgICAgICAgbGFiZWw6IGluaXRpYWxDb2x1bW5Db25maWc/LmZpbHRlckxhYmVsID8/IGdldHRleHQoJ0ZpbHRlciBpdGVtIGJ5IG5hbWUnKSxcbiAgICAgICAgYWRkVGV4dDogZ2V0dGV4dCgnQWRkIG5leHRgbmFtZWAnKSxcbiAgICAgICAgdG9vbHRpcDogZ2V0dGV4dCgnVXNlICogYXMgYSB3aWxkY2FyZCBjaGFyYWN0ZXInKSxcbiAgICAgICAgcGxhY2Vob2xkZXI6IGluaXRpYWxDb2x1bW5Db25maWc/LnBsYWNlaG9sZGVyID8/IGdldHRleHQoJ0Nsb3VkIGNvbm5lY3Rpdml0eScpXG4gICAgICB9KSxcbiAgICAgIGdldEZpbHRlcihtb2RlbDogYW55KTogYW55IHtcbiAgICAgICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7fTtcbiAgICAgICAgaWYgKG1vZGVsLm5hbWVzLmxlbmd0aCkge1xuICAgICAgICAgIGZpbHRlci5uYW1lID0geyBfX2luOiBtb2RlbC5uYW1lcyB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuc29ydGFibGUgPSB0cnVlO1xuICAgIHRoaXMuc29ydGluZ0NvbmZpZyA9IHtcbiAgICAgIHBhdGhTb3J0aW5nQ29uZmlnczogW3sgcGF0aDogdGhpcy5wYXRoIH1dXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { CellRendererContext } from '@c8y/ngx-components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@c8y/ngx-components";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class TypeCellRendererComponent {
|
|
8
|
+
constructor(context) {
|
|
9
|
+
this.context = context;
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeCellRendererComponent, deps: [{ token: i1.CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: TypeCellRendererComponent, isStandalone: true, selector: "c8y-type-cell-renderer", ngImport: i0, template: "<span\n class=\"label label-info\"\n *ngIf=\"!!context?.item?.[context?.property?.path]; else emptyText\"\n>\n {{ context.item[context.property.path] }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`type`</em>\n </small>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeCellRendererComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ standalone: true, selector: 'c8y-type-cell-renderer', imports: [CommonModule], template: "<span\n class=\"label label-info\"\n *ngIf=\"!!context?.item?.[context?.property?.path]; else emptyText\"\n>\n {{ context.item[context.property.path] }}\n</span>\n<ng-template #emptyText>\n <small class=\"text-muted\">\n <em translate>Undefined`type`</em>\n </small>\n</ng-template>\n" }]
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.CellRendererContext }] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL2NvbHVtbnMvdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL2NvbHVtbnMvdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBUTFELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsWUFBbUIsT0FBNEI7UUFBNUIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7SUFBRyxDQUFDOzhHQUR4Qyx5QkFBeUI7a0dBQXpCLHlCQUF5QixrRkNWdEMsc1NBV0EsMkNESFksWUFBWTs7MkZBRVgseUJBQXlCO2tCQU5yQyxTQUFTO2lDQUNJLElBQUksWUFFTix3QkFBd0IsV0FDekIsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZWxsUmVuZGVyZXJDb250ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc2VsZWN0b3I6ICdjOHktdHlwZS1jZWxsLXJlbmRlcmVyJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVHlwZUNlbGxSZW5kZXJlckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZXh0OiBDZWxsUmVuZGVyZXJDb250ZXh0KSB7fVxufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJsYWJlbCBsYWJlbC1pbmZvXCJcbiAgKm5nSWY9XCIhIWNvbnRleHQ/Lml0ZW0/Lltjb250ZXh0Py5wcm9wZXJ0eT8ucGF0aF07IGVsc2UgZW1wdHlUZXh0XCJcbj5cbiAge3sgY29udGV4dC5pdGVtW2NvbnRleHQucHJvcGVydHkucGF0aF0gfX1cbjwvc3Bhbj5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlUZXh0PlxuICA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XG4gICAgPGVtIHRyYW5zbGF0ZT5VbmRlZmluZWRgdHlwZWA8L2VtPlxuICA8L3NtYWxsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, ViewChild } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { QueriesUtil } from '@c8y/client';
|
|
5
|
+
import { CommonModule as C8yCommonModule, C8yTranslatePipe, CoreModule, FilteringFormRendererContext, gettext, TypeaheadComponent } from '@c8y/ngx-components';
|
|
6
|
+
import { cloneDeep, uniqBy } from 'lodash-es';
|
|
7
|
+
import { BehaviorSubject, NEVER, pipe } from 'rxjs';
|
|
8
|
+
import { debounceTime, map, switchMap, tap } from 'rxjs/operators';
|
|
9
|
+
import { RepositoryService } from '../repository.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@c8y/ngx-components";
|
|
12
|
+
import * as i2 from "../repository.service";
|
|
13
|
+
import * as i3 from "@angular/forms";
|
|
14
|
+
export class TypeFilteringFormRendererComponent {
|
|
15
|
+
constructor(context, changeDetectorRef, repositoryService, elementRef) {
|
|
16
|
+
this.context = context;
|
|
17
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
18
|
+
this.repositoryService = repositoryService;
|
|
19
|
+
this.elementRef = elementRef;
|
|
20
|
+
this.types$ = NEVER;
|
|
21
|
+
this.search$ = new BehaviorSubject(null);
|
|
22
|
+
this.filterPipe = pipe(tap());
|
|
23
|
+
this.typeaheadPlaceholder = gettext('Start typing to search, for example, {{ example }}');
|
|
24
|
+
this.queriesUtil = new QueriesUtil();
|
|
25
|
+
this.types = new Set();
|
|
26
|
+
this.path = context.property.path;
|
|
27
|
+
this.types$ = this.search$.pipe(debounceTime(300), tap(() => this.types.clear()), switchMap((searchString) => {
|
|
28
|
+
let query = this.queriesUtil.prependOrderbys({}, [{ [this.path]: 1 }]);
|
|
29
|
+
const filter = !!searchString
|
|
30
|
+
? {
|
|
31
|
+
[this.path]: {
|
|
32
|
+
__eq: `*${searchString}*`
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
: {
|
|
36
|
+
__has: this.path
|
|
37
|
+
};
|
|
38
|
+
query = this.queriesUtil.addAndFilter(query, filter);
|
|
39
|
+
return this.repositoryService.listRepositoryEntries(this.context.property.repositoryType, {
|
|
40
|
+
skipDefaultOrder: true,
|
|
41
|
+
query,
|
|
42
|
+
params: {
|
|
43
|
+
pageSize: 200
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}));
|
|
47
|
+
this.filterPipe = pipe(map(this.removeDuplicatesType.bind(this)), tap(() => setTimeout(() => this.changeDetectorRef.detectChanges(), 0)));
|
|
48
|
+
}
|
|
49
|
+
onEnterKeyUp(event) {
|
|
50
|
+
event.stopPropagation();
|
|
51
|
+
this.applyFilter();
|
|
52
|
+
}
|
|
53
|
+
onEscapeKeyDown(event) {
|
|
54
|
+
event.stopPropagation();
|
|
55
|
+
this.context.resetFilter();
|
|
56
|
+
}
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
const column = this.context.property;
|
|
59
|
+
this.selectedType = cloneDeep(column.externalFilterQuery || {});
|
|
60
|
+
}
|
|
61
|
+
ngAfterViewInit() {
|
|
62
|
+
this.typeahead?.searchControl?.nativeElement?.focus();
|
|
63
|
+
try {
|
|
64
|
+
this.elementRef.nativeElement.parentElement.parentElement.style.overflow = 'visible';
|
|
65
|
+
}
|
|
66
|
+
catch (ex) {
|
|
67
|
+
// intentionally empty
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
applyFilter() {
|
|
71
|
+
this.context.applyFilter({
|
|
72
|
+
externalFilterQuery: {
|
|
73
|
+
model: this.selectedType,
|
|
74
|
+
chips: [
|
|
75
|
+
{
|
|
76
|
+
value: this.selectedType,
|
|
77
|
+
displayValue: this.selectedType?.[this.path],
|
|
78
|
+
path: [this.path],
|
|
79
|
+
columnName: this.context.property.name,
|
|
80
|
+
remove: () => {
|
|
81
|
+
return {
|
|
82
|
+
columnName: this.context.property.name,
|
|
83
|
+
externalFilterQuery: {
|
|
84
|
+
model: null,
|
|
85
|
+
chips: []
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
removeDuplicatesType(list) {
|
|
95
|
+
const uniqueByType = uniqBy(list, this.path).filter((mo) => !this.types.has(mo[this.path]));
|
|
96
|
+
uniqueByType.forEach((mo) => this.types.add(mo[this.path]));
|
|
97
|
+
return uniqueByType;
|
|
98
|
+
}
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeFilteringFormRendererComponent, deps: [{ token: i1.FilteringFormRendererContext }, { token: i0.ChangeDetectorRef }, { token: i2.RepositoryService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: TypeFilteringFormRendererComponent, isStandalone: true, selector: "c8y-type-filtering-form-renderer", host: { listeners: { "keyup.enter": "onEnterKeyUp($event)", "keydown.escape": "onEscapeKeyDown($event)" } }, viewQueries: [{ propertyName: "typeahead", first: true, predicate: TypeaheadComponent, descendants: true }], ngImport: i0, template: "<c8y-form-group>\n <label>\n {{ context?.property?.filterLabel | translate }}\n </label>\n <c8y-typeahead\n placeholder=\"{{ typeaheadPlaceholder | translate: { example: context?.property?.example } }}\"\n [name]=\"path\"\n [(ngModel)]=\"selectedType\"\n [displayProperty]=\"path\"\n (onSearch)=\"search$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let type of types$; pipe: filterPipe; loadMore: 'auto'\"\n (click)=\"$event.stopPropagation(); selectedType = type; typeahead.dropdown.hide()\"\n [active]=\"selectedType?.[path] === type?.[path]\"\n >\n <c8y-highlight\n [text]=\"type?.[path] || '--'\"\n [pattern]=\"search$.value\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n</c8y-form-group>\n\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"context.resetFilter()\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyFilter()\"\n translate\n >\n Apply\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: C8yCommonModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i1.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
101
|
+
}
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TypeFilteringFormRendererComponent, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.Default, selector: 'c8y-type-filtering-form-renderer', imports: [CommonModule, C8yTranslatePipe, C8yCommonModule, FormsModule, CoreModule], template: "<c8y-form-group>\n <label>\n {{ context?.property?.filterLabel | translate }}\n </label>\n <c8y-typeahead\n placeholder=\"{{ typeaheadPlaceholder | translate: { example: context?.property?.example } }}\"\n [name]=\"path\"\n [(ngModel)]=\"selectedType\"\n [displayProperty]=\"path\"\n (onSearch)=\"search$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *c8yFor=\"let type of types$; pipe: filterPipe; loadMore: 'auto'\"\n (click)=\"$event.stopPropagation(); selectedType = type; typeahead.dropdown.hide()\"\n [active]=\"selectedType?.[path] === type?.[path]\"\n >\n <c8y-highlight\n [text]=\"type?.[path] || '--'\"\n [pattern]=\"search$.value\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n</c8y-form-group>\n\n<div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"context.resetFilter()\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyFilter()\"\n translate\n >\n Apply\n </button>\n</div>\n" }]
|
|
105
|
+
}], ctorParameters: () => [{ type: i1.FilteringFormRendererContext }, { type: i0.ChangeDetectorRef }, { type: i2.RepositoryService }, { type: i0.ElementRef }], propDecorators: { typeahead: [{
|
|
106
|
+
type: ViewChild,
|
|
107
|
+
args: [TypeaheadComponent, { static: false }]
|
|
108
|
+
}], onEnterKeyUp: [{
|
|
109
|
+
type: HostListener,
|
|
110
|
+
args: ['keyup.enter', ['$event']]
|
|
111
|
+
}], onEscapeKeyDown: [{
|
|
112
|
+
type: HostListener,
|
|
113
|
+
args: ['keydown.escape', ['$event']]
|
|
114
|
+
}] } });
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5maWx0ZXJpbmctZm9ybS1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NoYXJlZC9jb2x1bW5zL3R5cGUuZmlsdGVyaW5nLWZvcm0tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9zaGFyZWQvY29sdW1ucy90eXBlLmZpbHRlcmluZy1mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFFWixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBK0IsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxZQUFZLElBQUksZUFBZSxFQUMvQixnQkFBZ0IsRUFFaEIsVUFBVSxFQUNWLDRCQUE0QixFQUU1QixPQUFPLEVBQ1Asa0JBQWtCLEVBQ25CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFVMUQsTUFBTSxPQUFPLGtDQUFrQztJQVc3QyxZQUNTLE9BQXFDLEVB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S0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs4R0EvR1Usa0NBQWtDO2tHQUFsQyxrQ0FBa0Msb1BBT2xDLGtCQUFrQixnREMzQy9CLGd2Q0E0Q0EsMkNEVlksWUFBWSwwQkFBRSxnQkFBZ0IsaURBQUUsZUFBZSxpbkJBQUUsV0FBVyw4VkFBRSxVQUFVOzsyRkFFdkUsa0NBQWtDO2tCQVA5QyxTQUFTO2lDQUNJLElBQUksbUJBRUMsdUJBQXVCLENBQUMsT0FBTyxZQUN0QyxrQ0FBa0MsV0FDbkMsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7MExBU2pDLFNBQVM7c0JBQTFELFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWtEUCxZQUFZO3NCQUFwRCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJSyxlQUFlO3NCQUExRCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSVJlc3VsdExpc3QsIFF1ZXJpZXNVdGlsIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQ29tbW9uTW9kdWxlIGFzIEM4eUNvbW1vbk1vZHVsZSxcbiAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgQ29sdW1uLFxuICBDb3JlTW9kdWxlLFxuICBGaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb250ZXh0LFxuICBGb3JPZkZpbHRlclBpcGUsXG4gIGdldHRleHQsXG4gIFR5cGVhaGVhZENvbXBvbmVudFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgdW5pcUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgTkVWRVIsIE9ic2VydmFibGUsIHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFR5cGVHcmlkQ29sdW1uIH0gZnJvbSAnLi90eXBlLmdyaWQtY29sdW1uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi90eXBlLmZpbHRlcmluZy1mb3JtLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBzZWxlY3RvcjogJ2M4eS10eXBlLWZpbHRlcmluZy1mb3JtLXJlbmRlcmVyJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQzh5VHJhbnNsYXRlUGlwZSwgQzh5Q29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQ29yZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVHlwZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHBhdGg6IHN0cmluZztcbiAgc2VsZWN0ZWRUeXBlOiBJTWFuYWdlZE9iamVjdDtcbiAgdHlwZXMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPSBORVZFUjtcbiAgc2VhcmNoJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBmaWx0ZXJQaXBlOiBGb3JPZkZpbHRlclBpcGU8SU1hbmFnZWRPYmplY3Q+ID0gcGlwZSh0YXAoKSk7XG4gIHR5cGVhaGVhZFBsYWNlaG9sZGVyID0gZ2V0dGV4dCgnU3RhcnQgdHlwaW5nIHRvIHNlYXJjaCwgZm9yIGV4YW1wbGUsIHt7IGV4YW1wbGUgfX0nKTtcbiAgQFZpZXdDaGlsZChUeXBlYWhlYWRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSB0eXBlYWhlYWQ6IFR5cGVhaGVhZENvbXBvbmVudDtcbiAgcHJpdmF0ZSBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWwgPSBuZXcgUXVlcmllc1V0aWwoKTtcbiAgcHJpdmF0ZSB0eXBlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRleHQ6IEZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbnRleHQsXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlcG9zaXRvcnlTZXJ2aWNlOiBSZXBvc2l0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgdGhpcy5wYXRoID0gY29udGV4dC5wcm9wZXJ0eS5wYXRoO1xuICAgIHRoaXMudHlwZXMkID0gdGhpcy5zZWFyY2gkLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnR5cGVzLmNsZWFyKCkpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hTdHJpbmc6IHN0cmluZykgPT4ge1xuICAgICAgICBsZXQgcXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLnByZXBlbmRPcmRlcmJ5cyh7fSwgW3sgW3RoaXMucGF0aF06IDEgfV0pO1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSAhIXNlYXJjaFN0cmluZ1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBbdGhpcy5wYXRoXToge1xuICAgICAgICAgICAgICAgIF9fZXE6IGAqJHtzZWFyY2hTdHJpbmd9KmBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBfX2hhczogdGhpcy5wYXRoXG4gICAgICAgICAgICB9O1xuICAgICAgICBxdWVyeSA9IHRoaXMucXVlcmllc1V0aWwuYWRkQW5kRmlsdGVyKHF1ZXJ5LCBmaWx0ZXIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlLmxpc3RSZXBvc2l0b3J5RW50cmllcyhcbiAgICAgICAgICAodGhpcy5jb250ZXh0LnByb3BlcnR5IGFzIFR5cGVHcmlkQ29sdW1uKS5yZXBvc2l0b3J5VHlwZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBza2lwRGVmYXVsdE9yZGVyOiB0cnVlLFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgcGFnZVNpemU6IDIwMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlc1R5cGUuYmluZChcbiAgICAgICAgICB0aGlzXG4gICAgICAgICkgYXMgVHlwZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudFsncmVtb3ZlRHVwbGljYXRlc1R5cGUnXVxuICAgICAgKSxcbiAgICAgIHRhcCgoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpLCAwKSlcbiAgICApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAuZW50ZXInLCBbJyRldmVudCddKSBvbkVudGVyS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFwcGx5RmlsdGVyKCk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKSBvbkVzY2FwZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmNvbnRleHQucmVzZXRGaWx0ZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtbjogQ29sdW1uID0gdGhpcy5jb250ZXh0LnByb3BlcnR5O1xuICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gY2xvbmVEZWVwKGNvbHVtbi5leHRlcm5hbEZpbHRlclF1ZXJ5IHx8IHt9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnR5cGVhaGVhZD8uc2VhcmNoQ29udHJvbD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ3Zpc2libGUnO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBpbnRlbnRpb25hbGx5IGVtcHR5XG4gICAgfVxuICB9XG5cbiAgYXBwbHlGaWx0ZXIoKSB7XG4gICAgdGhpcy5jb250ZXh0LmFwcGx5RmlsdGVyKHtcbiAgICAgIGV4dGVybmFsRmlsdGVyUXVlcnk6IHtcbiAgICAgICAgbW9kZWw6IHRoaXMuc2VsZWN0ZWRUeXBlLFxuICAgICAgICBjaGlwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNlbGVjdGVkVHlwZSxcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogdGhpcy5zZWxlY3RlZFR5cGU/Llt0aGlzLnBhdGhdLFxuICAgICAgICAgICAgcGF0aDogW3RoaXMucGF0aF0sXG4gICAgICAgICAgICBjb2x1bW5OYW1lOiB0aGlzLmNvbnRleHQucHJvcGVydHkubmFtZSxcbiAgICAgICAgICAgIHJlbW92ZTogKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IHRoaXMuY29udGV4dC5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgICAgICAgIGV4dGVybmFsRmlsdGVyUXVlcnk6IHtcbiAgICAgICAgICAgICAgICAgIG1vZGVsOiBudWxsLFxuICAgICAgICAgICAgICAgICAgY2hpcHM6IFtdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEdXBsaWNhdGVzVHlwZShsaXN0OiBJTWFuYWdlZE9iamVjdFtdKTogSU1hbmFnZWRPYmplY3RbXSB7XG4gICAgY29uc3QgdW5pcXVlQnlUeXBlOiBJTWFuYWdlZE9iamVjdFtdID0gdW5pcUJ5KGxpc3QsIHRoaXMucGF0aCkuZmlsdGVyKFxuICAgICAgKG1vOiBJTWFuYWdlZE9iamVjdCkgPT4gIXRoaXMudHlwZXMuaGFzKG1vW3RoaXMucGF0aF0pXG4gICAgKTtcbiAgICB1bmlxdWVCeVR5cGUuZm9yRWFjaCgobW86IElNYW5hZ2VkT2JqZWN0KSA9PiB0aGlzLnR5cGVzLmFkZChtb1t0aGlzLnBhdGhdKSk7XG4gICAgcmV0dXJuIHVuaXF1ZUJ5VHlwZTtcbiAgfVxufVxuIiwiPGM4eS1mb3JtLWdyb3VwPlxuICA8bGFiZWw+XG4gICAge3sgY29udGV4dD8ucHJvcGVydHk/LmZpbHRlckxhYmVsIHwgdHJhbnNsYXRlIH19XG4gIDwvbGFiZWw+XG4gIDxjOHktdHlwZWFoZWFkXG4gICAgcGxhY2Vob2xkZXI9XCJ7eyB0eXBlYWhlYWRQbGFjZWhvbGRlciB8IHRyYW5zbGF0ZTogeyBleGFtcGxlOiBjb250ZXh0Py5wcm9wZXJ0eT8uZXhhbXBsZSB9IH19XCJcbiAgICBbbmFtZV09XCJwYXRoXCJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVHlwZVwiXG4gICAgW2Rpc3BsYXlQcm9wZXJ0eV09XCJwYXRoXCJcbiAgICAob25TZWFyY2gpPVwic2VhcmNoJC5uZXh0KCRldmVudClcIlxuICA+XG4gICAgPGM4eS1saVxuICAgICAgY2xhc3M9XCJwLWwtOCBwLXItOCBjOHktbGlzdF9faXRlbS0tbGlua1wiXG4gICAgICAqYzh5Rm9yPVwibGV0IHR5cGUgb2YgdHlwZXMkOyBwaXBlOiBmaWx0ZXJQaXBlOyBsb2FkTW9yZTogJ2F1dG8nXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHNlbGVjdGVkVHlwZSA9IHR5cGU7IHR5cGVhaGVhZC5kcm9wZG93bi5oaWRlKClcIlxuICAgICAgW2FjdGl2ZV09XCJzZWxlY3RlZFR5cGU/LltwYXRoXSA9PT0gdHlwZT8uW3BhdGhdXCJcbiAgICA+XG4gICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICBbdGV4dF09XCJ0eXBlPy5bcGF0aF0gfHwgJy0tJ1wiXG4gICAgICAgIFtwYXR0ZXJuXT1cInNlYXJjaCQudmFsdWVcIlxuICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICA8L2M4eS1saT5cbiAgPC9jOHktdHlwZWFoZWFkPlxuPC9jOHktZm9ybS1ncm91cD5cblxuPGRpdiBjbGFzcz1cImRhdGEtZ3JpZF9fZHJvcGRvd25fX2Zvb3RlciBkLWZsZXggc2VwYXJhdG9yLXRvcFwiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtIG0tci04IGZsZXgtZ3Jvd1wiXG4gICAgdGl0bGU9XCJ7eyAnUmVzZXQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwiY29udGV4dC5yZXNldEZpbHRlcigpXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIFJlc2V0XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZmxleC1ncm93XCJcbiAgICB0aXRsZT1cInt7ICdBcHBseScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJhcHBseUZpbHRlcigpXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIEFwcGx5XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseColumn, gettext } from '@c8y/ngx-components';
|
|
2
|
+
import { TypeCellRendererComponent } from './type.cell-renderer.component';
|
|
3
|
+
import { TypeFilteringFormRendererComponent } from './type.filtering-form-renderer.component';
|
|
4
|
+
export class TypeGridColumn extends BaseColumn {
|
|
5
|
+
constructor(initialColumnConfig) {
|
|
6
|
+
super(initialColumnConfig);
|
|
7
|
+
this.name = 'type';
|
|
8
|
+
this.path = initialColumnConfig?.path ?? 'type';
|
|
9
|
+
this.header = initialColumnConfig?.header ?? gettext('Type');
|
|
10
|
+
this.repositoryType = initialColumnConfig?.repositoryType;
|
|
11
|
+
this.cellRendererComponent = TypeCellRendererComponent;
|
|
12
|
+
this.filterable = true;
|
|
13
|
+
this.filteringFormRendererComponent = TypeFilteringFormRendererComponent;
|
|
14
|
+
this.filteringConfig = {
|
|
15
|
+
getFilter: query => {
|
|
16
|
+
const filter = {};
|
|
17
|
+
if (query.model[this.path]) {
|
|
18
|
+
filter[this.path] = { __eq: query.model[this.path] };
|
|
19
|
+
}
|
|
20
|
+
return filter;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
this.sortable = true;
|
|
24
|
+
this.sortingConfig = {
|
|
25
|
+
pathSortingConfigs: [{ path: this.path }]
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5ncmlkLWNvbHVtbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc2hhcmVkL2NvbHVtbnMvdHlwZS5ncmlkLWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQixPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU5RixNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQVU7SUFHNUMsWUFDRSxtQkFhQztRQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsRUFBRSxjQUFjLENBQUM7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHlCQUF5QixDQUFDO1FBRXZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxrQ0FBa0MsQ0FBQztRQUN6RSxJQUFJLENBQUMsZUFBZSxHQUFHO1lBQ3JCLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDakIsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO2dCQUN2QixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsQ0FBQztnQkFDRCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2x1bW4sIENvbHVtbkNvbmZpZywgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeVR5cGUgfSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IFR5cGVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3R5cGUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHlwZUZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vdHlwZS5maWx0ZXJpbmctZm9ybS1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgVHlwZUdyaWRDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgcmVwb3NpdG9yeVR5cGU6IFJlcG9zaXRvcnlUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluaXRpYWxDb2x1bW5Db25maWc/OiBDb2x1bW5Db25maWcgJiB7XG4gICAgICAvKiogQ29sdW1uIGhlYWRlciAqL1xuICAgICAgaGVhZGVyPzogc3RyaW5nO1xuICAgICAgLyoqIFNlYXJjaCBmaWVsZCBsYWJlbCAqL1xuICAgICAgZmlsdGVyTGFiZWw/OiBzdHJpbmc7XG4gICAgICAvKiogU2VhcmNoIGZpZWxkIHBsYWNlaG9sZGVyICovXG4gICAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAgIC8qKiBNTyBwcm9wZXJ0eSBwYXRoIHRvIGJlIHVzZWQgZm9yIHF1ZXJpbmcgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgICAvKiogUmVwb3NpdG9yeSB0eXBlICovXG4gICAgICByZXBvc2l0b3J5VHlwZT86IFJlcG9zaXRvcnlUeXBlO1xuICAgICAgLyoqIFR5cGVhaGVhZCBpbnB1dCBwbGFjZWhvbGRlciBleGFtcGxlIHZhbHVlICovXG4gICAgICBleGFtcGxlPzogc3RyaW5nO1xuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIoaW5pdGlhbENvbHVtbkNvbmZpZyk7XG4gICAgdGhpcy5uYW1lID0gJ3R5cGUnO1xuICAgIHRoaXMucGF0aCA9IGluaXRpYWxDb2x1bW5Db25maWc/LnBhdGggPz8gJ3R5cGUnO1xuICAgIHRoaXMuaGVhZGVyID0gaW5pdGlhbENvbHVtbkNvbmZpZz8uaGVhZGVyID8/IGdldHRleHQoJ1R5cGUnKTtcbiAgICB0aGlzLnJlcG9zaXRvcnlUeXBlID0gaW5pdGlhbENvbHVtbkNvbmZpZz8ucmVwb3NpdG9yeVR5cGU7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXJDb21wb25lbnQgPSBUeXBlQ2VsbFJlbmRlcmVyQ29tcG9uZW50O1xuXG4gICAgdGhpcy5maWx0ZXJhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlcmluZ0Zvcm1SZW5kZXJlckNvbXBvbmVudCA9IFR5cGVGaWx0ZXJpbmdGb3JtUmVuZGVyZXJDb21wb25lbnQ7XG4gICAgdGhpcy5maWx0ZXJpbmdDb25maWcgPSB7XG4gICAgICBnZXRGaWx0ZXI6IHF1ZXJ5ID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyOiBhbnkgPSB7fTtcbiAgICAgICAgaWYgKHF1ZXJ5Lm1vZGVsW3RoaXMucGF0aF0pIHtcbiAgICAgICAgICBmaWx0ZXJbdGhpcy5wYXRoXSA9IHsgX19lcTogcXVlcnkubW9kZWxbdGhpcy5wYXRoXSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuc29ydGFibGUgPSB0cnVlO1xuICAgIHRoaXMuc29ydGluZ0NvbmZpZyA9IHtcbiAgICAgIHBhdGhTb3J0aW5nQ29uZmlnczogW3sgcGF0aDogdGhpcy5wYXRoIH1dXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
export * from './advanced-software-management.model';
|
|
2
2
|
export * from './columns/description.grid-column';
|
|
3
|
+
export * from './columns/device-type.cell-renderer.component';
|
|
3
4
|
export * from './columns/device-type.grid-column';
|
|
5
|
+
export * from './columns/file.cell-renderer.component';
|
|
6
|
+
export * from './columns/file.grid-column';
|
|
7
|
+
export * from './columns/name.cell-renderer.component';
|
|
4
8
|
export * from './columns/name.grid-column';
|
|
9
|
+
export * from './columns/type.cell-renderer.component';
|
|
10
|
+
export * from './columns/type.filtering-form-renderer.component';
|
|
11
|
+
export * from './columns/type.grid-column';
|
|
12
|
+
export * from './columns/versions.cell-renderer.component';
|
|
5
13
|
export * from './columns/versions.grid-column';
|
|
6
14
|
export * from './file-download/file-download.component';
|
|
15
|
+
export * from './file-download/link-render-type.enum';
|
|
7
16
|
export * from './repository.model';
|
|
8
17
|
export * from './repository.service';
|
|
9
18
|
export * from './select-modal/repository-select-modal.component';
|
|
10
19
|
export * from './shared-repository.module';
|
|
11
20
|
export * from './software-type/software-type.component';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkdmFuY2VkLXNvZnR3YXJlLW1hbmFnZW1lbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL2Rlc2NyaXB0aW9uLmdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy9kZXZpY2UtdHlwZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbnMvZGV2aWNlLXR5cGUuZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL2ZpbGUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL2ZpbGUuZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL25hbWUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL25hbWUuZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL3R5cGUuY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zL3R5cGUuZmlsdGVyaW5nLWZvcm0tcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy90eXBlLmdyaWQtY29sdW1uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy92ZXJzaW9ucy5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbnMvdmVyc2lvbnMuZ3JpZC1jb2x1bW4nO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1kb3dubG9hZC9saW5rLXJlbmRlci10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LW1vZGFsL3JlcG9zaXRvcnktc2VsZWN0LW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC1yZXBvc2l0b3J5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NvZnR3YXJlLXR5cGUvc29mdHdhcmUtdHlwZS5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Component, EventEmitter } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
3
|
import { AlertService, DataGridService, ModalService, Status, gettext } from '@c8y/ngx-components';
|
|
4
|
-
import { DescriptionGridColumn, DeviceTypeGridColumn, PRODUCT_EXPERIENCE_REPOSITORY_SHARED, RepositoryItemNameGridColumn, RepositoryService, RepositoryType, VersionsGridColumn } from '@c8y/ngx-components/repository/shared';
|
|
4
|
+
import { DescriptionGridColumn, DeviceTypeGridColumn, PRODUCT_EXPERIENCE_REPOSITORY_SHARED, RepositoryItemNameGridColumn, RepositoryService, RepositoryType, TypeGridColumn, VersionsGridColumn } from '@c8y/ngx-components/repository/shared';
|
|
5
5
|
import { TranslateService } from '@ngx-translate/core';
|
|
6
6
|
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
7
7
|
import { AddSoftwareModalComponent } from './add-software-modal.component';
|
|
8
|
-
import { SoftwareTypeGridColumn } from './columns/software-type.grid-column';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
import * as i1 from "@c8y/ngx-components/repository/shared";
|
|
11
10
|
import * as i2 from "@c8y/ngx-components";
|
|
@@ -34,7 +33,13 @@ export class SoftwareListComponent {
|
|
|
34
33
|
placeholder: gettext('Cloud connectivity software')
|
|
35
34
|
}),
|
|
36
35
|
new DeviceTypeGridColumn({ filterLabel: gettext('Filter software by device type') }),
|
|
37
|
-
new
|
|
36
|
+
new TypeGridColumn({
|
|
37
|
+
header: gettext('Software type'),
|
|
38
|
+
filterLabel: gettext('Filter by software type'),
|
|
39
|
+
example: 'yum',
|
|
40
|
+
path: 'softwareType',
|
|
41
|
+
repositoryType: RepositoryType.SOFTWARE
|
|
42
|
+
}),
|
|
38
43
|
new VersionsGridColumn()
|
|
39
44
|
];
|
|
40
45
|
this.actionControls = [];
|
|
@@ -145,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
|
|
|
145
150
|
type: Component,
|
|
146
151
|
args: [{ selector: 'c8y-software-list', template: "<c8y-title>\n {{ 'Software repository' | translate }}\n</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-tools\"\n label=\"{{ 'Software repository' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add software' | translate }}\"\n type=\"button\"\n (click)=\"addSoftware()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add software' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/managing-device-data/#managing-software\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"'Software' | translate\"\n [refresh]=\"refresh$\"\n [pagination]=\"pagination\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\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) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n [title]=\"'Add software' | translate\"\n type=\"button\"\n (click)=\"addSoftware()\"\n >\n {{ 'Add software' | translate }}\n </button>\n </p>\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" }]
|
|
147
152
|
}], ctorParameters: () => [{ type: i1.RepositoryService }, { type: i2.DataGridService }, { type: i2.ModalService }, { type: i3.BsModalService }, { type: i4.TranslateService }, { type: i2.AlertService }, { type: i5.Router }, { type: i5.ActivatedRoute }] });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NvZnR3YXJlL2xpc3Qvc29mdHdhcmUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NvZnR3YXJlL2xpc3Qvc29mdHdhcmUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFFTCxZQUFZLEVBR1osZUFBZSxFQUVmLFlBQVksRUFHWixNQUFNLEVBQ04sT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGtCQUFrQixFQUNuQixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7O0FBTTdFLE1BQU0sT0FBTyxxQkFBcUI7SUE2QmhDLFlBQ1UsaUJBQW9DLEVBQ3BDLFdBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixNQUFjLEVBQ2QsY0FBOEI7UUFQOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxnQkFB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Q0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNaLGdDQUFnQztZQUNoQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFjO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOzhHQXpKVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix5RENsQ2xDLCs4REErREE7OzJGRDdCYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkU2VydmljZSxcbiAgRGF0YVNvdXJjZU1vZGlmaWVyLFxuICBNb2RhbFNlcnZpY2UsXG4gIFNlcnZlclNpZGVEYXRhQ2FsbGJhY2ssXG4gIFNlcnZlclNpZGVEYXRhUmVzdWx0LFxuICBTdGF0dXMsXG4gIGdldHRleHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBEZXNjcmlwdGlvbkdyaWRDb2x1bW4sXG4gIERldmljZVR5cGVHcmlkQ29sdW1uLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0VfUkVQT1NJVE9SWV9TSEFSRUQsXG4gIFJlcG9zaXRvcnlJdGVtTmFtZUdyaWRDb2x1bW4sXG4gIFJlcG9zaXRvcnlTZXJ2aWNlLFxuICBSZXBvc2l0b3J5VHlwZSxcbiAgVmVyc2lvbnNHcmlkQ29sdW1uXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVwb3NpdG9yeS9zaGFyZWQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UsIE1vZGFsT3B0aW9ucyB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQWRkU29mdHdhcmVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vYWRkLXNvZnR3YXJlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTb2Z0d2FyZVR5cGVHcmlkQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL3NvZnR3YXJlLXR5cGUuZ3JpZC1jb2x1bW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc29mdHdhcmUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnc29mdHdhcmUtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU29mdHdhcmVMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2l6ZVJlcXVlc3Q6IFByb21pc2U8bnVtYmVyPjtcbiAgc2l6ZVJlcXVlc3REb25lID0gZmFsc2U7XG4gIHJlZnJlc2gkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29sdW1uczogQ29sdW1uW10gPSBbXG4gICAgbmV3IFJlcG9zaXRvcnlJdGVtTmFtZUdyaWRDb2x1bW4oe1xuICAgICAgZmlsdGVyTGFiZWw6IGdldHRleHQoJ0ZpbHRlciBzb2Z0d2FyZSBieSBuYW1lJylcbiAgICB9KSxcbiAgICBuZXcgRGVzY3JpcHRpb25HcmlkQ29sdW1uKHtcbiAgICAgIGZpbHRlckxhYmVsOiBnZXR0ZXh0KCdGaWx0ZXIgc29mdHdhcmUgYnkgZGVzY3JpcHRpb24nKSxcbiAgICAgIHBsYWNlaG9sZGVyOiBnZXR0ZXh0KCdDbG91ZCBjb25uZWN0aXZpdHkgc29mdHdhcmUnKVxuICAgIH0pLFxuICAgIG5ldyBEZXZpY2VUeXBlR3JpZENvbHVtbih7IGZpbHRlckxhYmVsOiBnZXR0ZXh0KCdGaWx0ZXIgc29mdHdhcmUgYnkgZGV2aWNlIHR5cGUnKSB9KSxcbiAgICBuZXcgU29mdHdhcmVUeXBlR3JpZENvbHVtbigpLFxuICAgIG5ldyBWZXJzaW9uc0dyaWRDb2x1bW4oKVxuICBdO1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG4gIHNlcnZlclNpZGVEYXRhQ2FsbGJhY2s6IFNlcnZlclNpZGVEYXRhQ2FsbGJhY2s7XG4gIHBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDUwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG5cbiAgbm9SZXN1bHRzTWVzc2FnZSA9IGdldHRleHQoJ05vIHJlc3VsdHMgdG8gZGlzcGxheS4nKTtcbiAgbm9EYXRhTWVzc2FnZSA9IGdldHRleHQoJ05vIHNvZnR3YXJlIHRvIGRpc3BsYXkuJyk7XG4gIG5vUmVzdWx0c1N1YnRpdGxlID0gZ2V0dGV4dCgnUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIG9yIGNoZWNrIHlvdXIgc3BlbGxpbmcuJyk7XG4gIG5vRGF0YVN1YnRpdGxlID0gZ2V0dGV4dCgnQWRkIGEgbmV3IHNvZnR3YXJlIGJ5IGNsaWNraW5nIGJlbG93LicpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3NpdG9yeVNlcnZpY2U6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IERhdGFHcmlkU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7XG4gICAgdGhpcy5zZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrID0gdGhpcy5vbkRhdGFTb3VyY2VNb2RpZmllci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2l6ZVJlcXVlc3QgPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlXG4gICAgICAubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFLCB7XG4gICAgICAgIHNraXBEZWZhdWx0T3JkZXI6IHRydWUsXG4gICAgICAgIHBhcmFtczogeyBwYWdlU2l6ZTogMSB9XG4gICAgICB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICB0aGlzLnNpemVSZXF1ZXN0RG9uZSA9IHRydWU7XG4gICAgICAgIHJldHVybiByZXNwb25zZT8ucGFnaW5nPy50b3RhbFBhZ2VzO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbkNvbnRyb2xzLnB1c2goe1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRWRpdCxcbiAgICAgIGNhbGxiYWNrOiB0aGlzLmVkaXRTb2Z0d2FyZS5iaW5kKHRoaXMpXG4gICAgfSk7XG4gICAgdGhpcy5hY3Rpb25Db250cm9scy5wdXNoKHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgIGNhbGxiYWNrOiB0aGlzLmRlbGV0ZVNvZnR3YXJlLmJpbmQodGhpcylcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uRGF0YVNvdXJjZU1vZGlmaWVyKFxuICAgIGRhdGFTb3VyY2VNb2RpZmllcjogRGF0YVNvdXJjZU1vZGlmaWVyXG4gICk6IFByb21pc2U8U2VydmVyU2lkZURhdGFSZXN1bHQ+IHtcbiAgICBjb25zdCBkYXRhUmVxdWVzdDogUHJvbWlzZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+ID1cbiAgICAgIHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFLCB7XG4gICAgICAgIHF1ZXJ5OiB0aGlzLmdyaWRTZXJ2aWNlLmdldFF1ZXJ5T2JqKGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKSxcbiAgICAgICAgc2tpcERlZmF1bHRPcmRlcjogdHJ1ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgcGFnZVNpemU6IGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgICAgIGN1cnJlbnRQYWdlOiBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbi5jdXJyZW50UGFnZVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGZpbHRlcmVyZFNpemVSZXF1ZXN0OiBQcm9taXNlPG51bWJlcj4gPSB0aGlzLnJlcG9zaXRvcnlTZXJ2aWNlXG4gICAgICAubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFLCB7XG4gICAgICAgIHNraXBEZWZhdWx0T3JkZXI6IHRydWUsXG4gICAgICAgIHF1ZXJ5OiB0aGlzLmdyaWRTZXJ2aWNlLmdldFF1ZXJ5T2JqKGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKSxcbiAgICAgICAgcGFyYW1zOiB7IHBhZ2VTaXplOiAxIH1cbiAgICAgIH0pXG4gICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZT8ucGFnaW5nPy50b3RhbFBhZ2VzKTtcblxuICAgIGNvbnN0IFtkYXRhUmVzcG9uc2UsIHNpemUsIGZpbHRlcmVkU2l6ZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBkYXRhUmVxdWVzdCxcbiAgICAgIHRoaXMuc2l6ZVJlcXVlc3QsXG4gICAgICBmaWx0ZXJlcmRTaXplUmVxdWVzdFxuICAgIF0pO1xuXG4gICAgY29uc3QgeyByZXMsIGRhdGEsIHBhZ2luZyB9ID0gZGF0YVJlc3BvbnNlO1xuXG4gICAgY29uc3Qgc2VydmVyU2lkZURhdGFSZXN1bHQ6IFNlcnZlclNpZGVEYXRhUmVzdWx0ID0ge1xuICAgICAgcmVzLFxuICAgICAgZGF0YSxcbiAgICAgIHBhZ2luZyxcbiAgICAgIGZpbHRlcmVkU2l6ZSxcbiAgICAgIHNpemVcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNlcnZlclNpZGVEYXRhUmVzdWx0O1xuICB9XG5cbiAgYWRkU29mdHdhcmUoKSB7XG4gICAgY29uc3QgY29uZmlnOiBNb2RhbE9wdGlvbnM8QWRkU29mdHdhcmVNb2RhbENvbXBvbmVudD4gPSB7XG4gICAgICBjbGFzczogJ21vZGFsLXNtJyxcbiAgICAgIGFyaWFEZXNjcmliZWRieTogJ2FkZFNvZnR3YXJlTW9kYWxEZXNjcmlwdGlvbicsXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ2FkZFNvZnR3YXJlTW9kYWxUaXRsZScsXG4gICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlLFxuICAgICAga2V5Ym9hcmQ6IGZhbHNlXG4gICAgfTtcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhBZGRTb2Z0d2FyZU1vZGFsQ29tcG9uZW50LCBjb25maWcpO1xuICAgIG1vZGFsUmVmLmNvbnRlbnQuc2F2ZWQuc3Vic2NyaWJlKHNhdmVkU29mdHdhcmUgPT4gdGhpcy5lZGl0U29mdHdhcmUoc2F2ZWRTb2Z0d2FyZSkpO1xuICB9XG5cbiAgZWRpdFNvZnR3YXJlKHNvZnR3YXJlOiBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0Pikge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtzb2Z0d2FyZS5pZF0sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVNvZnR3YXJlKHNvZnR3YXJlOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGdldHRleHQoJ0RlbGV0ZSBzb2Z0d2FyZScpO1xuICAgICAgY29uc3QgYm9keSA9IGBcbiAgICAgICAgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICBnZXR0ZXh0KCdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSBzb2Z0d2FyZSBcInt7IG5hbWUgfX1cIiB3aXRoIGFsbCBpdHMgdmVyc2lvbnMuJyksXG4gICAgICAgICAgeyBuYW1lOiBzb2Z0d2FyZS5uYW1lIH1cbiAgICAgICAgKX1cbiAgICAgICAgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdUaGlzIG9wZXJhdGlvbiBpcyBpcnJldmVyc2libGUuJykpfVxuICAgICAgICAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/JykpfVxuICAgICAgYDtcbiAgICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgICAgb2s6IGdldHRleHQoJ0RlbGV0ZScpXG4gICAgICB9O1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybShcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIGJvZHksXG4gICAgICAgIFN0YXR1cy5EQU5HRVIsXG4gICAgICAgIGxhYmVscyxcbiAgICAgICAge30sXG4gICAgICAgIHsgZXZlbnROYW1lOiBQUk9EVUNUX0VYUEVSSUVOQ0VfUkVQT1NJVE9SWV9TSEFSRUQuU09GVFdBUkUuRVZFTlRTLlJFUE9TSVRPUlkgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UuZGVsZXRlKHNvZnR3YXJlKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnU29mdHdhcmUgZGVsZXRlZC4nKSk7XG4gICAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gb25seSBpZiBub3QgY2FuY2VsIGZyb20gbW9kYWxcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmFja0J5TmFtZShfaW5kZXgsIGNvbHVtbjogQ29sdW1uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29sdW1uLm5hbWU7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+XG4gIHt7ICdTb2Z0d2FyZSByZXBvc2l0b3J5JyB8IHRyYW5zbGF0ZSB9fVxuPC9jOHktdGl0bGU+XG48Yzh5LWJyZWFkY3J1bWI+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgaWNvbj1cImM4eS1tYW5hZ2VtZW50XCJcbiAgICBsYWJlbD1cInt7ICdNYW5hZ2VtZW50JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgaWNvbj1cImM4eS10b29sc1wiXG4gICAgbGFiZWw9XCJ7eyAnU29mdHdhcmUgcmVwb3NpdG9yeScgfCB0cmFuc2xhdGUgfX1cIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQWRkIHNvZnR3YXJlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImFkZFNvZnR3YXJlKClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdBZGQgc29mdHdhcmUnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWhlbHBcbiAgc3JjPVwiL2RvY3MvZGV2aWNlLW1hbmFnZW1lbnQtYXBwbGljYXRpb24vbWFuYWdpbmctZGV2aWNlLWRhdGEvI21hbmFnaW5nLXNvZnR3YXJlXCJcbj48L2M4eS1oZWxwPlxuXG48ZGl2IGNsYXNzPVwiY29udGVudC1mdWxscGFnZSBib3JkZXItdG9wIGJvcmRlci1ib3R0b21cIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBbdGl0bGVdPVwiJ1NvZnR3YXJlJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3JlZnJlc2hdPVwicmVmcmVzaCRcIlxuICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgW2luZmluaXRlU2Nyb2xsXT1cIidhdXRvJ1wiXG4gICAgW3NlcnZlclNpZGVEYXRhQ2FsbGJhY2tdPVwic2VydmVyU2lkZURhdGFDYWxsYmFja1wiXG4gID5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICBbaWNvbl09XCJzdGF0cz8uc2l6ZSA+IDAgPyAnc2VhcmNoJyA6ICdjOHktdG9vbHMnXCJcbiAgICAgIFt0aXRsZV09XCJzdGF0cz8uc2l6ZSA+IDAgPyAobm9SZXN1bHRzTWVzc2FnZSB8IHRyYW5zbGF0ZSkgOiAobm9EYXRhTWVzc2FnZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgW3N1YnRpdGxlXT1cInN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNTdWJ0aXRsZSB8IHRyYW5zbGF0ZSkgOiAobm9EYXRhU3VidGl0bGUgfCB0cmFuc2xhdGUpXCJcbiAgICAgICplbXB0eVN0YXRlQ29udGV4dD1cImxldCBzdGF0c1wiXG4gICAgICBbaG9yaXpvbnRhbF09XCJzdGF0cz8uc2l6ZSA+IDBcIlxuICAgID5cbiAgICAgIDxwICpuZ0lmPVwic3RhdHM/LnNpemUgPT09IDBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0FkZCBzb2Z0d2FyZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJhZGRTb2Z0d2FyZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdBZGQgc29mdHdhcmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9wPlxuICAgIDwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5TmFtZVwiPlxuICAgICAgPGM4eS1jb2x1bW4gW25hbWVdPVwiY29sdW1uLm5hbWVcIj48L2M4eS1jb2x1bW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYzh5LWRhdGEtZ3JpZD5cbjwvZGl2PlxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NvZnR3YXJlL2xpc3Qvc29mdHdhcmUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9yZXBvc2l0b3J5L3NvZnR3YXJlL2xpc3Qvc29mdHdhcmUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFFTCxZQUFZLEVBR1osZUFBZSxFQUVmLFlBQVksRUFHWixNQUFNLEVBQ04sT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGNBQWMsRUFDZCxrQkFBa0IsRUFDbkIsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztBQU0zRSxNQUFNLE9BQU8scUJBQXFCO0lBbUNoQyxZQUNVLGlCQUFvQyxFQUNwQyxXQUE0QixFQUM1QixZQUEwQixFQUMxQixjQUE4QixFQUM5QixnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLGNBQThCO1FBUDlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF6Q3hDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRCxZQUFPLEdBQWE7WUFDbEIsSUFBSSw0QkFBNEIsQ0FBQztnQkFDL0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQzthQUNoRCxDQUFDO1lBQ0YsSUFBSSxxQkFBcUIsQ0FBQztnQkFDeEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztnQkFDdEQsV0FBVyxFQUFFLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQzthQUNwRCxDQUFDO1lBQ0YsSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDO1lBQ3BGLElBQUksY0FBYyxDQUFDO2dCQUNqQixNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDaEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztnQkFDL0MsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLGNBQWMsRUFBRSxjQUFjLENBQUMsUUFBUTthQUN4QyxDQUFDO1lBQ0YsSUFBSSxrQkFBa0IsRUFBRTtTQUN6QixDQUFDO1FBQ0YsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBRXJDLGVBQVUsR0FBRztZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLENBQUM7U0FDZixDQUFDO1FBRUYscUJBQWdCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDckQsa0JBQWEsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNuRCxzQkFBaUIsR0FBRyxPQUFPLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUNoRixtQkFBYyxHQUFHLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBWWhFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjthQUN0QyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO1lBQzlDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRTtTQUN4QixDQUFDO2FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTyxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsSUFBSSxxQ0FBd0I7WUFDNUIsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUN2QixJQUFJLHlDQUEwQjtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLGtCQUFzQztRQUV0QyxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRTtZQUNwRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQy9ELGdCQUFnQixFQUFFLElBQUk7WUFDdEIsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsUUFBUTtnQkFDaEQsV0FBVyxFQUFFLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxXQUFXO2FBQ3ZEO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsTUFBTSxvQkFBb0IsR0FBb0IsSUFBSSxDQUFDLGlCQUFpQjthQUNqRSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO1lBQzlDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztZQUMvRCxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFO1NBQ3hCLENBQUM7YUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWxELE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUMzRCxXQUFXO1lBQ1gsSUFBSSxDQUFDLFdBQVc7WUFDaEIsb0JBQW9CO1NBQ3JCLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQztRQUUzQyxNQUFNLG9CQUFvQixHQUF5QjtZQUNqRCxHQUFHO1lBQ0gsSUFBSTtZQUNKLE1BQU07WUFDTixZQUFZO1lBQ1osSUFBSTtTQUNMLENBQUM7UUFFRixPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxNQUFNLEdBQTRDO1lBQ3RELEtBQUssRUFBRSxVQUFVO1lBQ2pCLGVBQWUsRUFBRSw2QkFBNkI7WUFDOUMsY0FBYyxFQUFFLHVCQUF1QjtZQUN2QyxtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RSxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFpQztRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUF3QjtRQUMzQyxJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN6QyxNQUFNLElBQUksR0FBRztVQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQzdCLE9BQU8sQ0FBQyxzRUFBc0UsQ0FBQyxFQUMvRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ3hCO1VBQ0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztVQUN6RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO09BQ3BFLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRztnQkFDYixFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUN0QixDQUFDO1lBQ0YsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FDN0IsS0FBSyxFQUNMLElBQUksRUFDSixNQUFNLENBQUMsTUFBTSxFQUNiLE1BQU0sRUFDTixFQUFFLEVBQ0YsRUFBRSxTQUFTLEVBQUUsb0NBQW9DLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FDL0UsQ0FBQztZQUNGLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDWixnQ0FBZ0M7WUFDaEMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBYztRQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQzs4R0EvSlUscUJBQXFCO2tHQUFyQixxQkFBcUIseURDbENsQywrOERBK0RBOzsyRkQ3QmEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBCdWlsdEluQWN0aW9uVHlwZSxcbiAgQ29sdW1uLFxuICBEYXRhR3JpZFNlcnZpY2UsXG4gIERhdGFTb3VyY2VNb2RpZmllcixcbiAgTW9kYWxTZXJ2aWNlLFxuICBTZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrLFxuICBTZXJ2ZXJTaWRlRGF0YVJlc3VsdCxcbiAgU3RhdHVzLFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRGVzY3JpcHRpb25HcmlkQ29sdW1uLFxuICBEZXZpY2VUeXBlR3JpZENvbHVtbixcbiAgUFJPRFVDVF9FWFBFUklFTkNFX1JFUE9TSVRPUllfU0hBUkVELFxuICBSZXBvc2l0b3J5SXRlbU5hbWVHcmlkQ29sdW1uLFxuICBSZXBvc2l0b3J5U2VydmljZSxcbiAgUmVwb3NpdG9yeVR5cGUsXG4gIFR5cGVHcmlkQ29sdW1uLFxuICBWZXJzaW9uc0dyaWRDb2x1bW5cbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBvc2l0b3J5L3NoYXJlZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSwgTW9kYWxPcHRpb25zIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBBZGRTb2Z0d2FyZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtc29mdHdhcmUtbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNvZnR3YXJlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJ3NvZnR3YXJlLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNvZnR3YXJlTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNpemVSZXF1ZXN0OiBQcm9taXNlPG51bWJlcj47XG4gIHNpemVSZXF1ZXN0RG9uZSA9IGZhbHNlO1xuICByZWZyZXNoJDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbHVtbnM6IENvbHVtbltdID0gW1xuICAgIG5ldyBSZXBvc2l0b3J5SXRlbU5hbWVHcmlkQ29sdW1uKHtcbiAgICAgIGZpbHRlckxhYmVsOiBnZXR0ZXh0KCdGaWx0ZXIgc29mdHdhcmUgYnkgbmFtZScpXG4gICAgfSksXG4gICAgbmV3IERlc2NyaXB0aW9uR3JpZENvbHVtbih7XG4gICAgICBmaWx0ZXJMYWJlbDogZ2V0dGV4dCgnRmlsdGVyIHNvZnR3YXJlIGJ5IGRlc2NyaXB0aW9uJyksXG4gICAgICBwbGFjZWhvbGRlcjogZ2V0dGV4dCgnQ2xvdWQgY29ubmVjdGl2aXR5IHNvZnR3YXJlJylcbiAgICB9KSxcbiAgICBuZXcgRGV2aWNlVHlwZUdyaWRDb2x1bW4oeyBmaWx0ZXJMYWJlbDogZ2V0dGV4dCgnRmlsdGVyIHNvZnR3YXJlIGJ5IGRldmljZSB0eXBlJykgfSksXG4gICAgbmV3IFR5cGVHcmlkQ29sdW1uKHtcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU29mdHdhcmUgdHlwZScpLFxuICAgICAgZmlsdGVyTGFiZWw6IGdldHRleHQoJ0ZpbHRlciBieSBzb2Z0d2FyZSB0eXBlJyksXG4gICAgICBleGFtcGxlOiAneXVtJyxcbiAgICAgIHBhdGg6ICdzb2Z0d2FyZVR5cGUnLFxuICAgICAgcmVwb3NpdG9yeVR5cGU6IFJlcG9zaXRvcnlUeXBlLlNPRlRXQVJFXG4gICAgfSksXG4gICAgbmV3IFZlcnNpb25zR3JpZENvbHVtbigpXG4gIF07XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogU2VydmVyU2lkZURhdGFDYWxsYmFjaztcbiAgcGFnaW5hdGlvbiA9IHtcbiAgICBwYWdlU2l6ZTogNTAsXG4gICAgY3VycmVudFBhZ2U6IDFcbiAgfTtcblxuICBub1Jlc3VsdHNNZXNzYWdlID0gZ2V0dGV4dCgnTm8gcmVzdWx0cyB0byBkaXNwbGF5LicpO1xuICBub0RhdGFNZXNzYWdlID0gZ2V0dGV4dCgnTm8gc29mdHdhcmUgdG8gZGlzcGxheS4nKTtcbiAgbm9SZXN1bHRzU3VidGl0bGUgPSBnZXR0ZXh0KCdSZWZpbmUgeW91ciBzZWFyY2ggdGVybXMgb3IgY2hlY2sgeW91ciBzcGVsbGluZy4nKTtcbiAgbm9EYXRhU3VidGl0bGUgPSBnZXR0ZXh0KCdBZGQgYSBuZXcgc29mdHdhcmUgYnkgY2xpY2tpbmcgYmVsb3cuJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXBvc2l0b3J5U2VydmljZTogUmVwb3NpdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogRGF0YUdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zaXplUmVxdWVzdCA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2VcbiAgICAgIC5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsIHtcbiAgICAgICAgc2tpcERlZmF1bHRPcmRlcjogdHJ1ZSxcbiAgICAgICAgcGFyYW1zOiB7IHBhZ2VTaXplOiAxIH1cbiAgICAgIH0pXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuc2l6ZVJlcXVlc3REb25lID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlPy5wYWdpbmc/LnRvdGFsUGFnZXM7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQ29udHJvbHMucHVzaCh7XG4gICAgICB0eXBlOiBCdWlsdEluQWN0aW9uVHlwZS5FZGl0LFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZWRpdFNvZnR3YXJlLmJpbmQodGhpcylcbiAgICB9KTtcbiAgICB0aGlzLmFjdGlvbkNvbnRyb2xzLnB1c2goe1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZGVsZXRlU29mdHdhcmUuYmluZCh0aGlzKVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25EYXRhU291cmNlTW9kaWZpZXIoXG4gICAgZGF0YVNvdXJjZU1vZGlmaWVyOiBEYXRhU291cmNlTW9kaWZpZXJcbiAgKTogUHJvbWlzZTxTZXJ2ZXJTaWRlRGF0YVJlc3VsdD4ge1xuICAgIGNvbnN0IGRhdGFSZXF1ZXN0OiBQcm9taXNlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPVxuICAgICAgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsIHtcbiAgICAgICAgcXVlcnk6IHRoaXMuZ3JpZFNlcnZpY2UuZ2V0UXVlcnlPYmooZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMpLFxuICAgICAgICBza2lwRGVmYXVsdE9yZGVyOiB0cnVlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBwYWdlU2l6ZTogZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24ucGFnZVNpemUsXG4gICAgICAgICAgY3VycmVudFBhZ2U6IGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZmlsdGVyZXJkU2l6ZVJlcXVlc3Q6IFByb21pc2U8bnVtYmVyPiA9IHRoaXMucmVwb3NpdG9yeVNlcnZpY2VcbiAgICAgIC5saXN0UmVwb3NpdG9yeUVudHJpZXMoUmVwb3NpdG9yeVR5cGUuU09GVFdBUkUsIHtcbiAgICAgICAgc2tpcERlZmF1bHRPcmRlcjogdHJ1ZSxcbiAgICAgICAgcXVlcnk6IHRoaXMuZ3JpZFNlcnZpY2UuZ2V0UXVlcnlPYmooZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMpLFxuICAgICAgICBwYXJhbXM6IHsgcGFnZVNpemU6IDEgfVxuICAgICAgfSlcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5wYWdpbmc/LnRvdGFsUGFnZXMpO1xuXG4gICAgY29uc3QgW2RhdGFSZXNwb25zZSwgc2l6ZSwgZmlsdGVyZWRTaXplXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGRhdGFSZXF1ZXN0LFxuICAgICAgdGhpcy5zaXplUmVxdWVzdCxcbiAgICAgIGZpbHRlcmVyZFNpemVSZXF1ZXN0XG4gICAgXSk7XG5cbiAgICBjb25zdCB7IHJlcywgZGF0YSwgcGFnaW5nIH0gPSBkYXRhUmVzcG9uc2U7XG5cbiAgICBjb25zdCBzZXJ2ZXJTaWRlRGF0YVJlc3VsdDogU2VydmVyU2lkZURhdGFSZXN1bHQgPSB7XG4gICAgICByZXMsXG4gICAgICBkYXRhLFxuICAgICAgcGFnaW5nLFxuICAgICAgZmlsdGVyZWRTaXplLFxuICAgICAgc2l6ZVxuICAgIH07XG5cbiAgICByZXR1cm4gc2VydmVyU2lkZURhdGFSZXN1bHQ7XG4gIH1cblxuICBhZGRTb2Z0d2FyZSgpIHtcbiAgICBjb25zdCBjb25maWc6IE1vZGFsT3B0aW9uczxBZGRTb2Z0d2FyZU1vZGFsQ29tcG9uZW50PiA9IHtcbiAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnYWRkU29mdHdhcmVNb2RhbERlc2NyaXB0aW9uJyxcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnYWRkU29mdHdhcmVNb2RhbFRpdGxlJyxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBrZXlib2FyZDogZmFsc2VcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5ic01vZGFsU2VydmljZS5zaG93KEFkZFNvZnR3YXJlTW9kYWxDb21wb25lbnQsIGNvbmZpZyk7XG4gICAgbW9kYWxSZWYuY29udGVudC5zYXZlZC5zdWJzY3JpYmUoc2F2ZWRTb2Z0d2FyZSA9PiB0aGlzLmVkaXRTb2Z0d2FyZShzYXZlZFNvZnR3YXJlKSk7XG4gIH1cblxuICBlZGl0U29mdHdhcmUoc29mdHdhcmU6IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3NvZnR3YXJlLmlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU29mdHdhcmUoc29mdHdhcmU6IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gZ2V0dGV4dCgnRGVsZXRlIHNvZnR3YXJlJyk7XG4gICAgICBjb25zdCBib2R5ID0gYFxuICAgICAgICAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgIGdldHRleHQoJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIHNvZnR3YXJlIFwie3sgbmFtZSB9fVwiIHdpdGggYWxsIGl0cyB2ZXJzaW9ucy4nKSxcbiAgICAgICAgICB7IG5hbWU6IHNvZnR3YXJlLm5hbWUgfVxuICAgICAgICApfVxuICAgICAgICAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ1RoaXMgb3BlcmF0aW9uIGlzIGlycmV2ZXJzaWJsZS4nKSl9XG4gICAgICAgICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nKSl9XG4gICAgICBgO1xuICAgICAgY29uc3QgbGFiZWxzID0ge1xuICAgICAgICBvazogZ2V0dGV4dCgnRGVsZXRlJylcbiAgICAgIH07XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgYm9keSxcbiAgICAgICAgU3RhdHVzLkRBTkdFUixcbiAgICAgICAgbGFiZWxzLFxuICAgICAgICB7fSxcbiAgICAgICAgeyBldmVudE5hbWU6IFBST0RVQ1RfRVhQRVJJRU5DRV9SRVBPU0lUT1JZX1NIQVJFRC5TT0ZUV0FSRS5FVkVOVFMuUkVQT1NJVE9SWSB9XG4gICAgICApO1xuICAgICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5kZWxldGUoc29mdHdhcmUpO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdTb2Z0d2FyZSBkZWxldGVkLicpKTtcbiAgICAgIHRoaXMucmVmcmVzaCQubmV4dCgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBvbmx5IGlmIG5vdCBjYW5jZWwgZnJvbSBtb2RhbFxuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlOYW1lKF9pbmRleCwgY29sdW1uOiBDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT5cbiAge3sgJ1NvZnR3YXJlIHJlcG9zaXRvcnknIHwgdHJhbnNsYXRlIH19XG48L2M4eS10aXRsZT5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiYzh5LW1hbmFnZW1lbnRcIlxuICAgIGxhYmVsPVwie3sgJ01hbmFnZW1lbnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiYzh5LXRvb2xzXCJcbiAgICBsYWJlbD1cInt7ICdTb2Z0d2FyZSByZXBvc2l0b3J5JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdBZGQgc29mdHdhcmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiYWRkU29mdHdhcmUoKVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAge3sgJ0FkZCBzb2Z0d2FyZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktaGVscFxuICBzcmM9XCIvZG9jcy9kZXZpY2UtbWFuYWdlbWVudC1hcHBsaWNhdGlvbi9tYW5hZ2luZy1kZXZpY2UtZGF0YS8jbWFuYWdpbmctc29mdHdhcmVcIlxuPjwvYzh5LWhlbHA+XG5cbjxkaXYgY2xhc3M9XCJjb250ZW50LWZ1bGxwYWdlIGJvcmRlci10b3AgYm9yZGVyLWJvdHRvbVwiPlxuICA8Yzh5LWRhdGEtZ3JpZFxuICAgIFt0aXRsZV09XCInU29mdHdhcmUnIHwgdHJhbnNsYXRlXCJcbiAgICBbcmVmcmVzaF09XCJyZWZyZXNoJFwiXG4gICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgICBbaW5maW5pdGVTY3JvbGxdPVwiJ2F1dG8nXCJcbiAgICBbc2VydmVyU2lkZURhdGFDYWxsYmFja109XCJzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrXCJcbiAgPlxuICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgIFtpY29uXT1cInN0YXRzPy5zaXplID4gMCA/ICdzZWFyY2gnIDogJ2M4eS10b29scydcIlxuICAgICAgW3RpdGxlXT1cInN0YXRzPy5zaXplID4gMCA/IChub1Jlc3VsdHNNZXNzYWdlIHwgdHJhbnNsYXRlKSA6IChub0RhdGFNZXNzYWdlIHwgdHJhbnNsYXRlKVwiXG4gICAgICBbc3VidGl0bGVdPVwic3RhdHM/LnNpemUgPiAwID8gKG5vUmVzdWx0c1N1YnRpdGxlIHwgdHJhbnNsYXRlKSA6IChub0RhdGFTdWJ0aXRsZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgKmVtcHR5U3RhdGVDb250ZXh0PVwibGV0IHN0YXRzXCJcbiAgICAgIFtob3Jpem9udGFsXT1cInN0YXRzPy5zaXplID4gMFwiXG4gICAgPlxuICAgICAgPHAgKm5nSWY9XCJzdGF0cz8uc2l6ZSA9PT0gMFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgIFt0aXRsZV09XCInQWRkIHNvZnR3YXJlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cImFkZFNvZnR3YXJlKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0FkZCBzb2Z0d2FyZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3A+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlOYW1lXCI+XG4gICAgICA8Yzh5LWNvbHVtbiBbbmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvYzh5LWNvbHVtbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9jOHktZGF0YS1ncmlkPlxuPC9kaXY+XG4iXX0=
|
|
@@ -7,8 +7,6 @@ import { SharedRepositoryModule } from '@c8y/ngx-components/repository/shared';
|
|
|
7
7
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
8
8
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
9
9
|
import { AddSoftwareModalComponent } from './add-software-modal.component';
|
|
10
|
-
import { SoftwareTypeCellRendererComponent } from './columns/software-type.cell-renderer.component';
|
|
11
|
-
import { SoftwareTypeFilteringFormRendererComponent } from './columns/software-type.filtering-form-renderer.component';
|
|
12
10
|
import { SoftwareDetailsComponent } from './software-details.component';
|
|
13
11
|
import { SoftwareListComponent } from './software-list.component';
|
|
14
12
|
import { SoftwareRepositoryNavigationFactory } from './software-repository-navigation-factory';
|
|
@@ -33,11 +31,7 @@ export class SoftwareRepositoryListModule {
|
|
|
33
31
|
};
|
|
34
32
|
}
|
|
35
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: SoftwareRepositoryListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
36
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: SoftwareRepositoryListModule, declarations: [SoftwareListComponent,
|
|
37
|
-
SoftwareDetailsComponent,
|
|
38
|
-
AddSoftwareModalComponent,
|
|
39
|
-
SoftwareTypeCellRendererComponent,
|
|
40
|
-
SoftwareTypeFilteringFormRendererComponent], imports: [CommonModule,
|
|
34
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: SoftwareRepositoryListModule, declarations: [SoftwareListComponent, SoftwareDetailsComponent, AddSoftwareModalComponent], imports: [CommonModule,
|
|
41
35
|
CoreModule,
|
|
42
36
|
FormsModule,
|
|
43
37
|
DeviceGridModule,
|
|
@@ -67,13 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
|
|
|
67
61
|
RouterModule,
|
|
68
62
|
SharedRepositoryModule
|
|
69
63
|
],
|
|
70
|
-
declarations: [
|
|
71
|
-
SoftwareListComponent,
|
|
72
|
-
SoftwareDetailsComponent,
|
|
73
|
-
AddSoftwareModalComponent,
|
|
74
|
-
SoftwareTypeCellRendererComponent,
|
|
75
|
-
SoftwareTypeFilteringFormRendererComponent
|
|
76
|
-
]
|
|
64
|
+
declarations: [SoftwareListComponent, SoftwareDetailsComponent, AddSoftwareModalComponent]
|
|
77
65
|
}]
|
|
78
66
|
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmUtcmVwb3NpdG9yeS1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3JlcG9zaXRvcnkvc29mdHdhcmUvbGlzdC9zb2Z0d2FyZS1yZXBvc2l0b3J5LWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBZS9GLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLDRCQUE0QjtZQUN0QyxTQUFTLEVBQUU7Z0JBQ1QsYUFBYSxDQUFDLG1DQUFtQyxDQUFDO2dCQUNsRCxTQUFTLENBQUM7b0JBQ1I7d0JBQ0UsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLFNBQVMsRUFBRSxxQkFBcUI7cUJBQ2pDO29CQUNEO3dCQUNFLElBQUksRUFBRSxjQUFjO3dCQUNwQixTQUFTLEVBQUUsd0JBQXdCO3FCQUNwQztpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0FsQlUsNEJBQTRCOytHQUE1Qiw0QkFBNEIsaUJBRnhCLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixhQVR2RixZQUFZO1lBQ1osVUFBVTtZQUNWLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGFBQWE7WUFDYixZQUFZO1lBQ1osc0JBQXNCOytHQUliLDRCQUE0QixZQVhyQyxZQUFZO1lBQ1osVUFBVTtZQUNWLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGFBQWE7WUFDYixZQUFZO1lBQ1osc0JBQXNCOzsyRkFJYiw0QkFBNEI7a0JBYnhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsQ0FBQztpQkFDM0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBGb3Jtc01vZHVsZSwgaG9va05hdmlnYXRvciwgaG9va1JvdXRlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXZpY2VHcmlkTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtZ3JpZCc7XG5pbXBvcnQgeyBTaGFyZWRSZXBvc2l0b3J5TW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZXBvc2l0b3J5L3NoYXJlZCc7XG5pbXBvcnQgeyBQb3BvdmVyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3BvdmVyJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQWRkU29mdHdhcmVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vYWRkLXNvZnR3YXJlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTb2Z0d2FyZURldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL3NvZnR3YXJlLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFNvZnR3YXJlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vc29mdHdhcmUtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU29mdHdhcmVSZXBvc2l0b3J5TmF2aWdhdGlvbkZhY3RvcnkgfSBmcm9tICcuL3NvZnR3YXJlLXJlcG9zaXRvcnktbmF2aWdhdGlvbi1mYWN0b3J5JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIERldmljZUdyaWRNb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBTaGFyZWRSZXBvc2l0b3J5TW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1NvZnR3YXJlTGlzdENvbXBvbmVudCwgU29mdHdhcmVEZXRhaWxzQ29tcG9uZW50LCBBZGRTb2Z0d2FyZU1vZGFsQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTb2Z0d2FyZVJlcG9zaXRvcnlMaXN0TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTb2Z0d2FyZVJlcG9zaXRvcnlMaXN0TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBTb2Z0d2FyZVJlcG9zaXRvcnlMaXN0TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGhvb2tOYXZpZ2F0b3IoU29mdHdhcmVSZXBvc2l0b3J5TmF2aWdhdGlvbkZhY3RvcnkpLFxuICAgICAgICBob29rUm91dGUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhdGg6ICdzb2Z0d2FyZScsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFNvZnR3YXJlTGlzdENvbXBvbmVudFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGF0aDogJ3NvZnR3YXJlLzppZCcsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFNvZnR3YXJlRGV0YWlsc0NvbXBvbmVudFxuICAgICAgICAgIH1cbiAgICAgICAgXSlcbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';
|
|
|
3
3
|
export const deviceManagementWelcomeWidgetDefinition = {
|
|
4
4
|
id: defaultWidgetIds.DEVICE_MANAGEMENT_WELCOME,
|
|
5
5
|
label: gettext('Quick links'),
|
|
6
|
-
description: gettext('Displays quick links for Device
|
|
6
|
+
description: gettext('Displays quick links for Device Management'),
|
|
7
7
|
loadComponent: () => import('@c8y/ngx-components/widgets/implementations/device-management-welcome').then(m => m.WelcomeToDeviceManagementComponent),
|
|
8
8
|
previewImage: 'c8y-style-assets/dm-welcome-widget-pr.png',
|
|
9
9
|
data: {
|
|
@@ -22,4 +22,4 @@ export const deviceManagementWelcomeWidgetDefinition = {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi93aWRnZXRzL2RlZmluaXRpb25zL2RldmljZS1tYW5hZ2VtZW50LXdlbGNvbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHO0lBQ3JELEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyx5QkFBeUI7SUFDOUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyw0Q0FBNEMsQ0FBQztJQUNsRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDLElBQUksQ0FDbEYsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQzFDO0lBQ0gsWUFBWSxFQUFFLDJDQUEyQztJQUN6RCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUU7WUFDUixZQUFZLEVBQUUsS0FBSztZQUNuQixjQUFjLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUNELEdBQUcsRUFBRTtnQkFDSCxPQUFPLEVBQUU7b0JBQ1AsY0FBYyxFQUFFLElBQUk7b0JBQ3BCLGdCQUFnQixFQUFFLEtBQUs7aUJBQ3hCO2FBQ0Y7U0FDRjtLQUNxQjtDQUNZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRXaWRnZXRDb25maWcgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2NvbnRleHQtZGFzaGJvYXJkJztcbmltcG9ydCB7IGRlZmF1bHRXaWRnZXRJZHMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3dpZGdldHMvZGVmaW5pdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZGV2aWNlTWFuYWdlbWVudFdlbGNvbWVXaWRnZXREZWZpbml0aW9uID0ge1xuICBpZDogZGVmYXVsdFdpZGdldElkcy5ERVZJQ0VfTUFOQUdFTUVOVF9XRUxDT01FLFxuICBsYWJlbDogZ2V0dGV4dCgnUXVpY2sgbGlua3MnKSxcbiAgZGVzY3JpcHRpb246IGdldHRleHQoJ0Rpc3BsYXlzIHF1aWNrIGxpbmtzIGZvciBEZXZpY2UgTWFuYWdlbWVudCcpLFxuICBsb2FkQ29tcG9uZW50OiAoKSA9PlxuICAgIGltcG9ydCgnQGM4eS9uZ3gtY29tcG9uZW50cy93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9kZXZpY2UtbWFuYWdlbWVudC13ZWxjb21lJykudGhlbihcbiAgICAgIG0gPT4gbS5XZWxjb21lVG9EZXZpY2VNYW5hZ2VtZW50Q29tcG9uZW50XG4gICAgKSxcbiAgcHJldmlld0ltYWdlOiAnYzh5LXN0eWxlLWFzc2V0cy9kbS13ZWxjb21lLXdpZGdldC1wci5wbmcnLFxuICBkYXRhOiB7XG4gICAgc2V0dGluZ3M6IHtcbiAgICAgIG5vTmV3V2lkZ2V0czogZmFsc2UsXG4gICAgICB3aWRnZXREZWZhdWx0czoge1xuICAgICAgICBfd2lkdGg6IDEyLFxuICAgICAgICBfaGVpZ2h0OiA0XG4gICAgICB9LFxuICAgICAgbmcxOiB7XG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBub0RldmljZVRhcmdldDogdHJ1ZSxcbiAgICAgICAgICBncm91cHNTZWxlY3RhYmxlOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGFzIENvbnRleHRXaWRnZXRDb25maWdcbn0gc2F0aXNmaWVzIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uO1xuIl19
|