@c8y/ngx-components 1021.66.0 → 1021.70.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/core/common/bytes.pipe.d.ts +26 -10
- package/core/common/bytes.pipe.d.ts.map +1 -1
- package/echart/charts.component.d.ts +14 -3
- package/echart/charts.component.d.ts.map +1 -1
- package/esm2022/core/common/bytes.pipe.mjs +47 -18
- package/esm2022/core/data-grid/data-grid.component.mjs +3 -3
- package/esm2022/echart/charts.component.mjs +50 -3
- package/esm2022/messaging-management/api/model/backlogQuota.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespace.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceDetails.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceList.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespacePolicies.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespacePublishers.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceSubscribers.mjs +2 -0
- package/esm2022/messaging-management/api/model/namespaceTopics.mjs +2 -0
- package/esm2022/messaging-management/api/model/pageStatistics.mjs +2 -0
- package/esm2022/messaging-management/api/model/pageable.mjs +2 -0
- package/esm2022/messaging-management/api/model/sortable.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriber.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriberFilters.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriberList.mjs +2 -0
- package/esm2022/messaging-management/api/model/subscriberToDelete.mjs +2 -0
- package/esm2022/messaging-management/api/model/topic.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicDetailFilters.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicList.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicListFilters.mjs +2 -0
- package/esm2022/messaging-management/api/model/topicType.mjs +9 -0
- package/esm2022/messaging-management/api/services/messaging-namespaces.service.mjs +83 -0
- package/esm2022/messaging-management/api/services/messaging-subscribers.service.mjs +55 -0
- package/esm2022/messaging-management/api/services/messaging-topics.service.mjs +48 -0
- package/esm2022/messaging-management/c8y-ngx-components-messaging-management.mjs +5 -0
- package/esm2022/messaging-management/constants.mjs +4 -0
- package/esm2022/messaging-management/index.mjs +2 -0
- package/esm2022/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.mjs +43 -0
- package/esm2022/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.mjs +36 -0
- package/esm2022/messaging-management/messaging/namespace-list/namespace-list.component.mjs +51 -0
- package/esm2022/messaging-management/messaging/shared/usage/usage.component.mjs +68 -0
- package/esm2022/messaging-management/messaging/topic/topic-list-view.component.mjs +81 -0
- package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.mjs +220 -0
- package/esm2022/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.mjs +137 -0
- package/esm2022/messaging-management/messaging/topic/topics-data-grid.service.mjs +113 -0
- package/esm2022/messaging-management/messaging-management.guard.mjs +40 -0
- package/esm2022/messaging-management/messaging-management.module.mjs +72 -0
- package/esm2022/messaging-management/navigator/messaging-navigator-factory.mjs +55 -0
- package/esm2022/messaging-management/navigator/topic-details-tab.factory.mjs +33 -0
- package/esm2022/messaging-management/utils/backlog-quota-limit.pipe.mjs +32 -0
- package/esm2022/messaging-management/utils/namespace-props.mjs +23 -0
- package/esm2022/messaging-management/utils/time-to-live.pipe.mjs +122 -0
- package/esm2022/operations/device-selector/device-selector.component.mjs +5 -1
- package/esm2022/widgets/cockpit/index.mjs +3 -1
- package/esm2022/widgets/cockpit-exports/index.mjs +8 -1
- package/esm2022/widgets/definitions/index.mjs +2 -1
- package/esm2022/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +5 -0
- package/esm2022/widgets/definitions/radial-gauge/index.mjs +33 -0
- package/esm2022/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.mjs +18 -3
- package/esm2022/widgets/implementations/info-gauge/index.mjs +2 -2
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.mjs +295 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.mjs +141 -11
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.mjs +67 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.mjs +34 -6
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget.module.mjs +9 -4
- package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.mjs +97 -0
- package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.mjs +369 -0
- package/fesm2022/c8y-ngx-components-echart.mjs +49 -2
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-messaging-management.mjs +1225 -0
- package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +4 -0
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +7 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +2 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +40 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +17 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +991 -28
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +49 -22
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +272 -5
- package/locales/es.po +271 -4
- package/locales/fr.po +272 -5
- package/locales/ja_JP.po +272 -5
- package/locales/ko.po +271 -4
- package/locales/locales.pot +271 -4
- package/locales/nl.po +271 -4
- package/locales/pl.po +271 -4
- package/locales/pt_BR.po +272 -5
- package/locales/zh_CN.po +271 -4
- package/locales/zh_TW.po +272 -5
- package/messaging-management/api/model/backlogQuota.d.ts +14 -0
- package/messaging-management/api/model/backlogQuota.d.ts.map +1 -0
- package/messaging-management/api/model/namespace.d.ts +13 -0
- package/messaging-management/api/model/namespace.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceDetails.d.ts +8 -0
- package/messaging-management/api/model/namespaceDetails.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceList.d.ts +5 -0
- package/messaging-management/api/model/namespaceList.d.ts.map +1 -0
- package/messaging-management/api/model/namespacePolicies.d.ts +10 -0
- package/messaging-management/api/model/namespacePolicies.d.ts.map +1 -0
- package/messaging-management/api/model/namespacePublishers.d.ts +4 -0
- package/messaging-management/api/model/namespacePublishers.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceSubscribers.d.ts +4 -0
- package/messaging-management/api/model/namespaceSubscribers.d.ts.map +1 -0
- package/messaging-management/api/model/namespaceTopics.d.ts +5 -0
- package/messaging-management/api/model/namespaceTopics.d.ts.map +1 -0
- package/messaging-management/api/model/pageStatistics.d.ts +12 -0
- package/messaging-management/api/model/pageStatistics.d.ts.map +1 -0
- package/messaging-management/api/model/pageable.d.ts +8 -0
- package/messaging-management/api/model/pageable.d.ts.map +1 -0
- package/messaging-management/api/model/sortable.d.ts +6 -0
- package/messaging-management/api/model/sortable.d.ts.map +1 -0
- package/messaging-management/api/model/subscriber.d.ts +28 -0
- package/messaging-management/api/model/subscriber.d.ts.map +1 -0
- package/messaging-management/api/model/subscriberFilters.d.ts +13 -0
- package/messaging-management/api/model/subscriberFilters.d.ts.map +1 -0
- package/messaging-management/api/model/subscriberList.d.ts +7 -0
- package/messaging-management/api/model/subscriberList.d.ts.map +1 -0
- package/messaging-management/api/model/subscriberToDelete.d.ts +12 -0
- package/messaging-management/api/model/subscriberToDelete.d.ts.map +1 -0
- package/messaging-management/api/model/topic.d.ts +52 -0
- package/messaging-management/api/model/topic.d.ts.map +1 -0
- package/messaging-management/api/model/topicDetailFilters.d.ts +9 -0
- package/messaging-management/api/model/topicDetailFilters.d.ts.map +1 -0
- package/messaging-management/api/model/topicList.d.ts +7 -0
- package/messaging-management/api/model/topicList.d.ts.map +1 -0
- package/messaging-management/api/model/topicListFilters.d.ts +12 -0
- package/messaging-management/api/model/topicListFilters.d.ts.map +1 -0
- package/messaging-management/api/model/topicType.d.ts +8 -0
- package/messaging-management/api/model/topicType.d.ts.map +1 -0
- package/messaging-management/api/services/messaging-namespaces.service.d.ts +52 -0
- package/messaging-management/api/services/messaging-namespaces.service.d.ts.map +1 -0
- package/messaging-management/api/services/messaging-subscribers.service.d.ts +30 -0
- package/messaging-management/api/services/messaging-subscribers.service.d.ts.map +1 -0
- package/messaging-management/api/services/messaging-topics.service.d.ts +21 -0
- package/messaging-management/api/services/messaging-topics.service.d.ts.map +1 -0
- package/messaging-management/c8y-ngx-components-messaging-management.d.ts.map +1 -0
- package/messaging-management/constants.d.ts +4 -0
- package/messaging-management/constants.d.ts.map +1 -0
- package/messaging-management/index.d.ts +2 -0
- package/messaging-management/index.d.ts.map +1 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts +29 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts.map +1 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.d.ts +15 -0
- package/messaging-management/messaging/namespace-list/namespace-item/namespace-item.component.d.ts.map +1 -0
- package/messaging-management/messaging/namespace-list/namespace-list.component.d.ts +17 -0
- package/messaging-management/messaging/namespace-list/namespace-list.component.d.ts.map +1 -0
- package/messaging-management/messaging/shared/usage/usage.component.d.ts +40 -0
- package/messaging-management/messaging/shared/usage/usage.component.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topic-list-view.component.d.ts +38 -0
- package/messaging-management/messaging/topic/topic-list-view.component.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts +21 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts +52 -0
- package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts.map +1 -0
- package/messaging-management/messaging/topic/topics-data-grid.service.d.ts +13 -0
- package/messaging-management/messaging/topic/topics-data-grid.service.d.ts.map +1 -0
- package/messaging-management/messaging-management.guard.d.ts +12 -0
- package/messaging-management/messaging-management.guard.d.ts.map +1 -0
- package/messaging-management/messaging-management.module.d.ts +7 -0
- package/messaging-management/messaging-management.module.d.ts.map +1 -0
- package/messaging-management/navigator/messaging-navigator-factory.d.ts +18 -0
- package/messaging-management/navigator/messaging-navigator-factory.d.ts.map +1 -0
- package/messaging-management/navigator/topic-details-tab.factory.d.ts +15 -0
- package/messaging-management/navigator/topic-details-tab.factory.d.ts.map +1 -0
- package/messaging-management/utils/backlog-quota-limit.pipe.d.ts +13 -0
- package/messaging-management/utils/backlog-quota-limit.pipe.d.ts.map +1 -0
- package/messaging-management/utils/namespace-props.d.ts +10 -0
- package/messaging-management/utils/namespace-props.d.ts.map +1 -0
- package/messaging-management/utils/time-to-live.pipe.d.ts +16 -0
- package/messaging-management/utils/time-to-live.pipe.d.ts.map +1 -0
- package/operations/device-selector/device-selector.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/widgets/cockpit/index.d.ts +29 -0
- package/widgets/cockpit/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/definitions/index.d.ts +1 -0
- package/widgets/definitions/index.d.ts.map +1 -1
- package/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.d.ts.map +1 -0
- package/widgets/definitions/radial-gauge/index.d.ts +33 -0
- package/widgets/definitions/radial-gauge/index.d.ts.map +1 -0
- package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts +2 -0
- package/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/index.d.ts +1 -1
- package/widgets/implementations/info-gauge/index.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts +339 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts +27 -7
- package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts +33 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts +7 -3
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts +2 -1
- package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts +37 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts +146 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts.map +1 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge.model.mjs +0 -2
- package/widgets/implementations/info-gauge/info-gauge.model.d.ts +0 -7
- package/widgets/implementations/info-gauge/info-gauge.model.d.ts.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { BaseColumn, gettext } from '@c8y/ngx-components';
|
|
3
|
+
import { MessagingTopicsService } from '../../api/services/messaging-topics.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TopicsDataGridService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.topicsService = inject(MessagingTopicsService);
|
|
8
|
+
}
|
|
9
|
+
getColumns() {
|
|
10
|
+
return [
|
|
11
|
+
this.createColumn({
|
|
12
|
+
name: 'name',
|
|
13
|
+
header: gettext('Name'),
|
|
14
|
+
path: 'name',
|
|
15
|
+
filterable: true,
|
|
16
|
+
filteringConfig: {
|
|
17
|
+
fields: [
|
|
18
|
+
{
|
|
19
|
+
key: 'name',
|
|
20
|
+
type: 'input',
|
|
21
|
+
props: {
|
|
22
|
+
label: gettext('Filter topics by partial name'),
|
|
23
|
+
placeholder: 'myTopic',
|
|
24
|
+
required: true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
getFilter(model) {
|
|
29
|
+
return model.name;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
33
|
+
this.createColumn({
|
|
34
|
+
name: 'msgRateIn',
|
|
35
|
+
header: gettext('Message rate in (msg/s)'),
|
|
36
|
+
path: 'msgRateIn'
|
|
37
|
+
}),
|
|
38
|
+
this.createColumn({
|
|
39
|
+
name: 'msgRateOut',
|
|
40
|
+
header: gettext('Message rate out (msg/s)'),
|
|
41
|
+
path: 'msgRateOut'
|
|
42
|
+
}),
|
|
43
|
+
this.createColumn({
|
|
44
|
+
name: 'subscribers',
|
|
45
|
+
header: gettext('Subscribers'),
|
|
46
|
+
path: 'subscribers'
|
|
47
|
+
}),
|
|
48
|
+
this.createColumn({
|
|
49
|
+
name: 'backlogSize',
|
|
50
|
+
header: gettext('Message backlog'),
|
|
51
|
+
path: 'backlogSize'
|
|
52
|
+
}),
|
|
53
|
+
this.createColumn({
|
|
54
|
+
name: 'backlogUsagePercentage',
|
|
55
|
+
header: gettext('Used backlog'),
|
|
56
|
+
path: 'backlogUsagePercentage',
|
|
57
|
+
sortOrder: 'desc'
|
|
58
|
+
})
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
async getServerSideData(tenantId, namespaceId, dataSourceModifier) {
|
|
62
|
+
const topicFilters = this.getTopicFilters(tenantId, namespaceId, dataSourceModifier);
|
|
63
|
+
const { res, data, paging } = await this.topicsService.list(topicFilters);
|
|
64
|
+
const filteredSize = paging.totalElements;
|
|
65
|
+
const size = (await this.topicsService.list({
|
|
66
|
+
...topicFilters,
|
|
67
|
+
currentPage: 1,
|
|
68
|
+
pageSize: 1
|
|
69
|
+
})).paging.totalPages;
|
|
70
|
+
return {
|
|
71
|
+
res,
|
|
72
|
+
data,
|
|
73
|
+
paging,
|
|
74
|
+
size,
|
|
75
|
+
filteredSize
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
createColumn(columnProps) {
|
|
79
|
+
const column = new BaseColumn();
|
|
80
|
+
Object.assign(column, columnProps);
|
|
81
|
+
return column;
|
|
82
|
+
}
|
|
83
|
+
getTopicFilters(tenantId, namespaceId, dataSourceModifier) {
|
|
84
|
+
const topicFilters = {
|
|
85
|
+
tenant: tenantId,
|
|
86
|
+
namespace: namespaceId,
|
|
87
|
+
currentPage: dataSourceModifier.pagination.currentPage,
|
|
88
|
+
pageSize: dataSourceModifier.pagination.pageSize
|
|
89
|
+
};
|
|
90
|
+
return dataSourceModifier.columns.reduce((topicFilters, column) => {
|
|
91
|
+
if (column.filterable) {
|
|
92
|
+
if (column.filterPredicate) {
|
|
93
|
+
topicFilters[column.path] = column.filterPredicate;
|
|
94
|
+
}
|
|
95
|
+
if (column.externalFilterQuery) {
|
|
96
|
+
topicFilters[column.path] = column.filteringConfig.getFilter(column.externalFilterQuery);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (column.sortable && column.sortOrder) {
|
|
100
|
+
const sortPath = column.sortingConfig?.pathSortingConfigs?.[0]?.path || column.path;
|
|
101
|
+
topicFilters.sort = `${sortPath},${column.sortOrder}`;
|
|
102
|
+
}
|
|
103
|
+
return topicFilters;
|
|
104
|
+
}, topicFilters);
|
|
105
|
+
}
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopicsDataGridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
107
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopicsDataGridService, providedIn: 'root' }); }
|
|
108
|
+
}
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopicsDataGridService, decorators: [{
|
|
110
|
+
type: Injectable,
|
|
111
|
+
args: [{ providedIn: 'root' }]
|
|
112
|
+
}] });
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWNzLWRhdGEtZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvbWVzc2FnaW5nL3RvcGljL3RvcGljcy1kYXRhLWdyaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsVUFBVSxFQUdWLE9BQU8sRUFFUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUdyRixNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVksa0JBQWEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQXFIMUQ7SUFuSEMsVUFBVTtRQUNSLE9BQU87WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDdkIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGVBQWUsRUFBRTtvQkFDZixNQUFNLEVBQUU7d0JBQ047NEJBQ0UsR0FBRyxFQUFFLE1BQU07NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFO2dDQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsK0JBQStCLENBQUM7Z0NBQy9DLFdBQVcsRUFBRSxTQUFTO2dDQUN0QixRQUFRLEVBQUUsSUFBSTs2QkFDZjt5QkFDRjtxQkFDRjtvQkFDRCxTQUFTLENBQUMsS0FBdUI7d0JBQy9CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDcEIsQ0FBQztpQkFDRjthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsV0FBVztnQkFDakIsTUFBTSxFQUFF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Z0JBQzNGLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNwRixZQUFZLENBQUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4RCxDQUFDO1lBRUQsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ25CLENBQUM7K0dBckhVLHFCQUFxQjttSEFBckIscUJBQXFCLGNBRFIsTUFBTTs7NEZBQ25CLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhc2VDb2x1bW4sXG4gIENvbHVtbixcbiAgRGF0YVNvdXJjZU1vZGlmaWVyLFxuICBnZXR0ZXh0LFxuICBTZXJ2ZXJTaWRlRGF0YVJlc3VsdFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE1lc3NhZ2luZ1RvcGljTGlzdEZpbHRlcnMgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWwvdG9waWNMaXN0RmlsdGVycyc7XG5pbXBvcnQgeyBNZXNzYWdpbmdUb3BpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL21lc3NhZ2luZy10b3BpY3Muc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVG9waWNzRGF0YUdyaWRTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHRvcGljc1NlcnZpY2UgPSBpbmplY3QoTWVzc2FnaW5nVG9waWNzU2VydmljZSk7XG5cbiAgZ2V0Q29sdW1ucygpOiBDb2x1bW5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuY3JlYXRlQ29sdW1uKHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICBoZWFkZXI6IGdldHRleHQoJ05hbWUnKSxcbiAgICAgICAgcGF0aDogJ25hbWUnLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0cnVlLFxuICAgICAgICBmaWx0ZXJpbmdDb25maWc6IHtcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAga2V5OiAnbmFtZScsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0ZpbHRlciB0b3BpY3MgYnkgcGFydGlhbCBuYW1lJyksXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdteVRvcGljJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBnZXRGaWx0ZXIobW9kZWw6IHsgbmFtZTogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLm5hbWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMuY3JlYXRlQ29sdW1uKHtcbiAgICAgICAgbmFtZTogJ21zZ1JhdGVJbicsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnTWVzc2FnZSByYXRlIGluIChtc2cvcyknKSxcbiAgICAgICAgcGF0aDogJ21zZ1JhdGVJbidcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jcmVhdGVDb2x1bW4oe1xuICAgICAgICBuYW1lOiAnbXNnUmF0ZU91dCcsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnTWVzc2FnZSByYXRlIG91dCAobXNnL3MpJyksXG4gICAgICAgIHBhdGg6ICdtc2dSYXRlT3V0J1xuICAgICAgfSksXG4gICAgICB0aGlzLmNyZWF0ZUNvbHVtbih7XG4gICAgICAgIG5hbWU6ICdzdWJzY3JpYmVycycsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU3Vic2NyaWJlcnMnKSxcbiAgICAgICAgcGF0aDogJ3N1YnNjcmliZXJzJ1xuICAgICAgfSksXG4gICAgICB0aGlzLmNyZWF0ZUNvbHVtbih7XG4gICAgICAgIG5hbWU6ICdiYWNrbG9nU2l6ZScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnTWVzc2FnZSBiYWNrbG9nJyksXG4gICAgICAgIHBhdGg6ICdiYWNrbG9nU2l6ZSdcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jcmVhdGVDb2x1bW4oe1xuICAgICAgICBuYW1lOiAnYmFja2xvZ1VzYWdlUGVyY2VudGFnZScsXG4gICAgICAgIGhlYWRlcjogZ2V0dGV4dCgnVXNlZCBiYWNrbG9nJyksXG4gICAgICAgIHBhdGg6ICdiYWNrbG9nVXNhZ2VQZXJjZW50YWdlJyxcbiAgICAgICAgc29ydE9yZGVyOiAnZGVzYydcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIGFzeW5jIGdldFNlcnZlclNpZGVEYXRhKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlSWQ6IHN0cmluZyxcbiAgICBkYXRhU291cmNlTW9kaWZpZXI6IERhdGFTb3VyY2VNb2RpZmllclxuICApOiBQcm9taXNlPFNlcnZlclNpZGVEYXRhUmVzdWx0PiB7XG4gICAgY29uc3QgdG9waWNGaWx0ZXJzID0gdGhpcy5nZXRUb3BpY0ZpbHRlcnModGVuYW50SWQsIG5hbWVzcGFjZUlkLCBkYXRhU291cmNlTW9kaWZpZXIpO1xuICAgIGNvbnN0IHsgcmVzLCBkYXRhLCBwYWdpbmcgfSA9IGF3YWl0IHRoaXMudG9waWNzU2VydmljZS5saXN0KHRvcGljRmlsdGVycyk7XG4gICAgY29uc3QgZmlsdGVyZWRTaXplID0gcGFnaW5nLnRvdGFsRWxlbWVudHM7XG4gICAgY29uc3Qgc2l6ZSA9IChcbiAgICAgIGF3YWl0IHRoaXMudG9waWNzU2VydmljZS5saXN0KHtcbiAgICAgICAgLi4udG9waWNGaWx0ZXJzLFxuICAgICAgICBjdXJyZW50UGFnZTogMSxcbiAgICAgICAgcGFnZVNpemU6IDFcbiAgICAgIH0pXG4gICAgKS5wYWdpbmcudG90YWxQYWdlcztcblxuICAgIHJldHVybiB7XG4gICAgICByZXMsXG4gICAgICBkYXRhLFxuICAgICAgcGFnaW5nLFxuICAgICAgc2l6ZSxcbiAgICAgIGZpbHRlcmVkU2l6ZVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbHVtbihjb2x1bW5Qcm9wczogUGFydGlhbDxCYXNlQ29sdW1uPik6IEJhc2VDb2x1bW4ge1xuICAgIGNvbnN0IGNvbHVtbiA9IG5ldyBCYXNlQ29sdW1uKCk7XG4gICAgT2JqZWN0LmFzc2lnbihjb2x1bW4sIGNvbHVtblByb3BzKTtcbiAgICByZXR1cm4gY29sdW1uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb3BpY0ZpbHRlcnMoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBuYW1lc3BhY2VJZDogc3RyaW5nLFxuICAgIGRhdGFTb3VyY2VNb2RpZmllcjogRGF0YVNvdXJjZU1vZGlmaWVyXG4gICk6IE1lc3NhZ2luZ1RvcGljTGlzdEZpbHRlcnMge1xuICAgIGNvbnN0IHRvcGljRmlsdGVyczogTWVzc2FnaW5nVG9waWNMaXN0RmlsdGVycyA9IHtcbiAgICAgIHRlbmFudDogdGVuYW50SWQsXG4gICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZUlkLFxuICAgICAgY3VycmVudFBhZ2U6IGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlLFxuICAgICAgcGFnZVNpemU6IGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLnBhZ2VTaXplXG4gICAgfTtcblxuICAgIHJldHVybiBkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucy5yZWR1Y2UoKHRvcGljRmlsdGVycywgY29sdW1uKSA9PiB7XG4gICAgICBpZiAoY29sdW1uLmZpbHRlcmFibGUpIHtcbiAgICAgICAgaWYgKGNvbHVtbi5maWx0ZXJQcmVkaWNhdGUpIHtcbiAgICAgICAgICB0b3BpY0ZpbHRlcnNbY29sdW1uLnBhdGhdID0gY29sdW1uLmZpbHRlclByZWRpY2F0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2x1bW4uZXh0ZXJuYWxGaWx0ZXJRdWVyeSkge1xuICAgICAgICAgIHRvcGljRmlsdGVyc1tjb2x1bW4ucGF0aF0gPSBjb2x1bW4uZmlsdGVyaW5nQ29uZmlnLmdldEZpbHRlcihjb2x1bW4uZXh0ZXJuYWxGaWx0ZXJRdWVyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbHVtbi5zb3J0YWJsZSAmJiBjb2x1bW4uc29ydE9yZGVyKSB7XG4gICAgICAgIGNvbnN0IHNvcnRQYXRoID0gY29sdW1uLnNvcnRpbmdDb25maWc/LnBhdGhTb3J0aW5nQ29uZmlncz8uWzBdPy5wYXRoIHx8IGNvbHVtbi5wYXRoO1xuICAgICAgICB0b3BpY0ZpbHRlcnMuc29ydCA9IGAke3NvcnRQYXRofSwke2NvbHVtbi5zb3J0T3JkZXJ9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRvcGljRmlsdGVycztcbiAgICB9LCB0b3BpY0ZpbHRlcnMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Permissions } from '@c8y/ngx-components';
|
|
3
|
+
import { ApplicationService, FeatureService, UserService } from '@c8y/client';
|
|
4
|
+
import { MESSAGING_MANAGEMENT_FEATURE_KEY, MESSAGING_MANAGEMENT_MICROSERVICE_NAME } from './constants';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class MessagingManagementGuard {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.userService = inject(UserService);
|
|
9
|
+
this.featureService = inject(FeatureService);
|
|
10
|
+
this.applicationService = inject(ApplicationService);
|
|
11
|
+
this.cachedResult = null;
|
|
12
|
+
}
|
|
13
|
+
async canActivate() {
|
|
14
|
+
if (this.cachedResult !== null) {
|
|
15
|
+
return this.cachedResult;
|
|
16
|
+
}
|
|
17
|
+
const currentUser = (await this.userService.current()).data;
|
|
18
|
+
const hasRequiredRoles = this.userService.hasAnyRole(currentUser, [
|
|
19
|
+
Permissions.ROLE_TENANT_STATISTICS_READ,
|
|
20
|
+
Permissions.ROLE_TENANT_MANAGEMENT_ADMIN
|
|
21
|
+
]);
|
|
22
|
+
const featureEnabled = await this.featureService
|
|
23
|
+
.detail(MESSAGING_MANAGEMENT_FEATURE_KEY)
|
|
24
|
+
.then(({ data }) => data.active)
|
|
25
|
+
.catch(() => false);
|
|
26
|
+
const microserviceSubscribed = await this.applicationService
|
|
27
|
+
.isAvailable(MESSAGING_MANAGEMENT_MICROSERVICE_NAME)
|
|
28
|
+
.then(({ data: subscribed }) => subscribed)
|
|
29
|
+
.catch(() => false);
|
|
30
|
+
this.cachedResult = hasRequiredRoles && featureEnabled && microserviceSubscribed;
|
|
31
|
+
return this.cachedResult;
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingManagementGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingManagementGuard, providedIn: 'root' }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingManagementGuard, decorators: [{
|
|
37
|
+
type: Injectable,
|
|
38
|
+
args: [{ providedIn: 'root' }]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLW1hbmFnZW1lbnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tZXNzYWdpbmctbWFuYWdlbWVudC9tZXNzYWdpbmctbWFuYWdlbWVudC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUUsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyxzQ0FBc0MsRUFDdkMsTUFBTSxhQUFhLENBQUM7O0FBR3JCLE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFFVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4Qyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVoRCxpQkFBWSxHQUFtQixJQUFJLENBQUM7S0EyQjdDO0lBekJDLEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDaEUsV0FBVyxDQUFDLDJCQUEyQjtZQUN2QyxXQUFXLENBQUMsNEJBQTRCO1NBQ3pDLENBQUMsQ0FBQztRQUVILE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWM7YUFDN0MsTUFBTSxDQUFDLGdDQUFnQyxDQUFDO2FBQ3hDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDL0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCO2FBQ3pELFdBQVcsQ0FBQyxzQ0FBc0MsQ0FBQzthQUNuRCxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQzFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsWUFBWSxHQUFHLGdCQUFnQixJQUFJLGNBQWMsSUFBSSxzQkFBc0IsQ0FBQztRQUVqRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzsrR0EvQlUsd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzs0RkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSwgRmVhdHVyZVNlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgTUVTU0FHSU5HX01BTkFHRU1FTlRfRkVBVFVSRV9LRVksXG4gIE1FU1NBR0lOR19NQU5BR0VNRU5UX01JQ1JPU0VSVklDRV9OQU1FXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdpbmdNYW5hZ2VtZW50R3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIHByaXZhdGUgdXNlclNlcnZpY2UgPSBpbmplY3QoVXNlclNlcnZpY2UpO1xuICBwcml2YXRlIGZlYXR1cmVTZXJ2aWNlID0gaW5qZWN0KEZlYXR1cmVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXBwbGljYXRpb25TZXJ2aWNlKTtcblxuICBwcml2YXRlIGNhY2hlZFJlc3VsdDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gIGFzeW5jIGNhbkFjdGl2YXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLmNhY2hlZFJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkUmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gKGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3VycmVudCgpKS5kYXRhO1xuICAgIGNvbnN0IGhhc1JlcXVpcmVkUm9sZXMgPSB0aGlzLnVzZXJTZXJ2aWNlLmhhc0FueVJvbGUoY3VycmVudFVzZXIsIFtcbiAgICAgIFBlcm1pc3Npb25zLlJPTEVfVEVOQU5UX1NUQVRJU1RJQ1NfUkVBRCxcbiAgICAgIFBlcm1pc3Npb25zLlJPTEVfVEVOQU5UX01BTkFHRU1FTlRfQURNSU5cbiAgICBdKTtcblxuICAgIGNvbnN0IGZlYXR1cmVFbmFibGVkID0gYXdhaXQgdGhpcy5mZWF0dXJlU2VydmljZVxuICAgICAgLmRldGFpbChNRVNTQUdJTkdfTUFOQUdFTUVOVF9GRUFUVVJFX0tFWSlcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YS5hY3RpdmUpXG4gICAgICAuY2F0Y2goKCkgPT4gZmFsc2UpO1xuXG4gICAgY29uc3QgbWljcm9zZXJ2aWNlU3Vic2NyaWJlZCA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlXG4gICAgICAuaXNBdmFpbGFibGUoTUVTU0FHSU5HX01BTkFHRU1FTlRfTUlDUk9TRVJWSUNFX05BTUUpXG4gICAgICAudGhlbigoeyBkYXRhOiBzdWJzY3JpYmVkIH0pID0+IHN1YnNjcmliZWQpXG4gICAgICAuY2F0Y2goKCkgPT4gZmFsc2UpO1xuXG4gICAgdGhpcy5jYWNoZWRSZXN1bHQgPSBoYXNSZXF1aXJlZFJvbGVzICYmIGZlYXR1cmVFbmFibGVkICYmIG1pY3Jvc2VydmljZVN1YnNjcmliZWQ7XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZWRSZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { hookNavigator, hookRoute, hookTab } from '@c8y/ngx-components';
|
|
3
|
+
import { MessagingNavigatorNodeFactory } from './navigator/messaging-navigator-factory';
|
|
4
|
+
import { NamespaceListComponent } from './messaging/namespace-list/namespace-list.component';
|
|
5
|
+
import { TopicListViewComponent } from './messaging/topic/topic-list-view.component';
|
|
6
|
+
import { TopicSubscribersViewComponent } from './messaging/topic/topic-subscribers-view/topic-subscribers-view.component';
|
|
7
|
+
import { TopicDetailsTabFactory } from './navigator/topic-details-tab.factory';
|
|
8
|
+
import { basePath } from './constants';
|
|
9
|
+
import { MessagingManagementGuard } from './messaging-management.guard';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class MessagingManagementModule {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MessagingManagementModule }); }
|
|
14
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingManagementModule, providers: [
|
|
15
|
+
hookRoute([
|
|
16
|
+
{
|
|
17
|
+
path: basePath,
|
|
18
|
+
component: NamespaceListComponent,
|
|
19
|
+
canActivate: [MessagingManagementGuard]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
path: basePath + '/namespace/:namespace',
|
|
23
|
+
component: TopicListViewComponent,
|
|
24
|
+
canActivate: [MessagingManagementGuard]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
path: basePath + '/namespace/:namespace/topic/:topic',
|
|
28
|
+
redirectTo: basePath + '/namespace/:namespace/topic/:topic/subscribers',
|
|
29
|
+
pathMatch: 'full'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
path: basePath + '/namespace/:namespace/topic/:topic/subscribers',
|
|
33
|
+
component: TopicSubscribersViewComponent,
|
|
34
|
+
canActivate: [MessagingManagementGuard]
|
|
35
|
+
}
|
|
36
|
+
]),
|
|
37
|
+
hookTab(TopicDetailsTabFactory),
|
|
38
|
+
hookNavigator(MessagingNavigatorNodeFactory)
|
|
39
|
+
] }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingManagementModule, decorators: [{
|
|
42
|
+
type: NgModule,
|
|
43
|
+
args: [{
|
|
44
|
+
providers: [
|
|
45
|
+
hookRoute([
|
|
46
|
+
{
|
|
47
|
+
path: basePath,
|
|
48
|
+
component: NamespaceListComponent,
|
|
49
|
+
canActivate: [MessagingManagementGuard]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
path: basePath + '/namespace/:namespace',
|
|
53
|
+
component: TopicListViewComponent,
|
|
54
|
+
canActivate: [MessagingManagementGuard]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
path: basePath + '/namespace/:namespace/topic/:topic',
|
|
58
|
+
redirectTo: basePath + '/namespace/:namespace/topic/:topic/subscribers',
|
|
59
|
+
pathMatch: 'full'
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
path: basePath + '/namespace/:namespace/topic/:topic/subscribers',
|
|
63
|
+
component: TopicSubscribersViewComponent,
|
|
64
|
+
canActivate: [MessagingManagementGuard]
|
|
65
|
+
}
|
|
66
|
+
]),
|
|
67
|
+
hookTab(TopicDetailsTabFactory),
|
|
68
|
+
hookNavigator(MessagingNavigatorNodeFactory)
|
|
69
|
+
]
|
|
70
|
+
}]
|
|
71
|
+
}] });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvbWVzc2FnaW5nLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUFDMUgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUE4QnhFLE1BQU0sT0FBTyx5QkFBeUI7K0dBQXpCLHlCQUF5QjtnSEFBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsYUEzQnpCO1lBQ1QsU0FBUyxDQUFDO2dCQUNSO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLFNBQVMsRUFBRSxzQkFBc0I7b0JBQ2pDLFdBQVcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN4QztnQkFDRDtvQkFDRSxJQUFJLEVBQUUsUUFBUSxHQUFHLHVCQUF1QjtvQkFDeEMsU0FBUyxFQUFFLHNCQUFzQjtvQkFDakMsV0FBVyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ3hDO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRLEdBQUcsb0NBQW9DO29CQUNyRCxVQUFVLEVBQUUsUUFBUSxHQUFHLGdEQUFnRDtvQkFDdkUsU0FBUyxFQUFFLE1BQU07aUJBQ2xCO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRLEdBQUcsZ0RBQWdEO29CQUNqRSxTQUFTLEVBQUUsNkJBQTZCO29CQUN4QyxXQUFXLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDeEM7YUFDRixDQUFDO1lBQ0YsT0FBTyxDQUFDLHNCQUFzQixDQUFDO1lBQy9CLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQztTQUM3Qzs7NEZBRVUseUJBQXlCO2tCQTVCckMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1QsU0FBUyxDQUFDOzRCQUNSO2dDQUNFLElBQUksRUFBRSxRQUFRO2dDQUNkLFNBQVMsRUFBRSxzQkFBc0I7Z0NBQ2pDLFdBQVcsRUFBRSxDQUFDLHdCQUF3QixDQUFDOzZCQUN4Qzs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsUUFBUSxHQUFHLHVCQUF1QjtnQ0FDeEMsU0FBUyxFQUFFLHNCQUFzQjtnQ0FDakMsV0FBVyxFQUFFLENBQUMsd0JBQXdCLENBQUM7NkJBQ3hDOzRCQUNEO2dDQUNFLElBQUksRUFBRSxRQUFRLEdBQUcsb0NBQW9DO2dDQUNyRCxVQUFVLEVBQUUsUUFBUSxHQUFHLGdEQUFnRDtnQ0FDdkUsU0FBUyxFQUFFLE1BQU07NkJBQ2xCOzRCQUNEO2dDQUNFLElBQUksRUFBRSxRQUFRLEdBQUcsZ0RBQWdEO2dDQUNqRSxTQUFTLEVBQUUsNkJBQTZCO2dDQUN4QyxXQUFXLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzs2QkFDeEM7eUJBQ0YsQ0FBQzt3QkFDRixPQUFPLENBQUMsc0JBQXNCLENBQUM7d0JBQy9CLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQztxQkFDN0M7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaG9va05hdmlnYXRvciwgaG9va1JvdXRlLCBob29rVGFiIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNZXNzYWdpbmdOYXZpZ2F0b3JOb2RlRmFjdG9yeSB9IGZyb20gJy4vbmF2aWdhdG9yL21lc3NhZ2luZy1uYXZpZ2F0b3ItZmFjdG9yeSc7XG5pbXBvcnQgeyBOYW1lc3BhY2VMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdpbmcvbmFtZXNwYWNlLWxpc3QvbmFtZXNwYWNlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRvcGljTGlzdFZpZXdDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2luZy90b3BpYy90b3BpYy1saXN0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFRvcGljU3Vic2NyaWJlcnNWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdpbmcvdG9waWMvdG9waWMtc3Vic2NyaWJlcnMtdmlldy90b3BpYy1zdWJzY3JpYmVycy12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb3BpY0RldGFpbHNUYWJGYWN0b3J5IH0gZnJvbSAnLi9uYXZpZ2F0b3IvdG9waWMtZGV0YWlscy10YWIuZmFjdG9yeSc7XG5pbXBvcnQgeyBiYXNlUGF0aCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1lc3NhZ2luZ01hbmFnZW1lbnRHdWFyZCB9IGZyb20gJy4vbWVzc2FnaW5nLW1hbmFnZW1lbnQuZ3VhcmQnO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICBob29rUm91dGUoW1xuICAgICAge1xuICAgICAgICBwYXRoOiBiYXNlUGF0aCxcbiAgICAgICAgY29tcG9uZW50OiBOYW1lc3BhY2VMaXN0Q29tcG9uZW50LFxuICAgICAgICBjYW5BY3RpdmF0ZTogW01lc3NhZ2luZ01hbmFnZW1lbnRHdWFyZF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IGJhc2VQYXRoICsgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZScsXG4gICAgICAgIGNvbXBvbmVudDogVG9waWNMaXN0Vmlld0NvbXBvbmVudCxcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtNZXNzYWdpbmdNYW5hZ2VtZW50R3VhcmRdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiBiYXNlUGF0aCArICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvdG9waWMvOnRvcGljJyxcbiAgICAgICAgcmVkaXJlY3RUbzogYmFzZVBhdGggKyAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3RvcGljLzp0b3BpYy9zdWJzY3JpYmVycycsXG4gICAgICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiBiYXNlUGF0aCArICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvdG9waWMvOnRvcGljL3N1YnNjcmliZXJzJyxcbiAgICAgICAgY29tcG9uZW50OiBUb3BpY1N1YnNjcmliZXJzVmlld0NvbXBvbmVudCxcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtNZXNzYWdpbmdNYW5hZ2VtZW50R3VhcmRdXG4gICAgICB9XG4gICAgXSksXG4gICAgaG9va1RhYihUb3BpY0RldGFpbHNUYWJGYWN0b3J5KSxcbiAgICBob29rTmF2aWdhdG9yKE1lc3NhZ2luZ05hdmlnYXRvck5vZGVGYWN0b3J5KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2luZ01hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { AppStateService, gettext, NavigatorNode, NavigatorService } from '@c8y/ngx-components';
|
|
3
|
+
import { NAMESPACE_PROPS } from '../utils/namespace-props';
|
|
4
|
+
import { MessagingNamespacesService } from '../api/services/messaging-namespaces.service';
|
|
5
|
+
import { catchError, filter, map, shareReplay, switchMap, take } from 'rxjs/operators';
|
|
6
|
+
import { from } from 'rxjs';
|
|
7
|
+
import { MessagingManagementGuard } from '../messaging-management.guard';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const baseNode = new NavigatorNode({
|
|
10
|
+
label: gettext('Messaging service'),
|
|
11
|
+
icon: 'arrows-dotted-left-right',
|
|
12
|
+
path: 'monitoring/messaging-service',
|
|
13
|
+
priority: 100,
|
|
14
|
+
parent: {
|
|
15
|
+
label: gettext('Monitoring'),
|
|
16
|
+
icon: 'monitoring'
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
export class MessagingNavigatorNodeFactory {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.appState = inject(AppStateService);
|
|
22
|
+
this.navigatorService = inject(NavigatorService);
|
|
23
|
+
this.namespacesService = inject(MessagingNamespacesService);
|
|
24
|
+
this.guard = inject(MessagingManagementGuard);
|
|
25
|
+
this.currentTenantId = this.appState.currentTenant.pipe(filter(currentTenant => !!currentTenant), map(currentTenant => currentTenant.name), take(1));
|
|
26
|
+
this.navigatorNode$ = from(this.guard.canActivate()).pipe(filter(allowed => allowed), switchMap(() => this.currentTenantId), switchMap(currentTenantId => this.namespacesService.getNamespaces(currentTenantId)), map(({ namespaces }) => {
|
|
27
|
+
if (!namespaces?.length) {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
namespaces.forEach(namespace => {
|
|
31
|
+
const label = NAMESPACE_PROPS[namespace.name]?.label || namespace.name;
|
|
32
|
+
const childNode = new NavigatorNode({
|
|
33
|
+
label,
|
|
34
|
+
path: `monitoring/messaging-service/namespace/${namespace.name}`,
|
|
35
|
+
icon: NAMESPACE_PROPS[namespace.name]?.icon,
|
|
36
|
+
routerLinkExact: false
|
|
37
|
+
});
|
|
38
|
+
baseNode.add(childNode);
|
|
39
|
+
});
|
|
40
|
+
return baseNode;
|
|
41
|
+
}), catchError(() => {
|
|
42
|
+
return [];
|
|
43
|
+
}), shareReplay(1));
|
|
44
|
+
}
|
|
45
|
+
get() {
|
|
46
|
+
return this.navigatorNode$;
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingNavigatorNodeFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingNavigatorNodeFactory, providedIn: 'root' }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingNavigatorNodeFactory, decorators: [{
|
|
52
|
+
type: Injectable,
|
|
53
|
+
args: [{ providedIn: 'root' }]
|
|
54
|
+
}], ctorParameters: () => [] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLW5hdmlnYXRvci1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvbmF2aWdhdG9yL21lc3NhZ2luZy1uYXZpZ2F0b3ItZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsZUFBZSxFQUVmLE9BQU8sRUFDUCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRXpFLE1BQU0sUUFBUSxHQUFHLElBQUksYUFBYSxDQUFDO0lBQ2pDLEtBQUssRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUM7SUFDbkMsSUFBSSxFQUFFLDBCQUEwQjtJQUNoQyxJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLFFBQVEsRUFBRSxHQUFHO0lBQ2IsTUFBTSxFQUFFO1FBQ04sS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDNUIsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDLENBQUM7QUFHSCxNQUFNLE9BQU8sNkJBQTZCO0lBY3hDO1FBYkEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN2RCxVQUFLLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFekMsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ2hELE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDeEMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQztRQUtBLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3ZELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUNyQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQ25GLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUN2RSxNQUFNLFNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBQztvQkFDbEMsS0FBSztvQkFDTCxJQUFJLEVBQUUsMENBQTBDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7b0JBQ2hFLElBQUksRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUk7b0JBQzNDLGVBQWUsRUFBRSxLQUFLO2lCQUN2QixDQUFDLENBQUM7Z0JBQ0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQzsrR0E1Q1UsNkJBQTZCO21IQUE3Qiw2QkFBNkIsY0FEaEIsTUFBTTs7NEZBQ25CLDZCQUE2QjtrQkFEekMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwcFN0YXRlU2VydmljZSxcbiAgRXh0ZW5zaW9uRmFjdG9yeSxcbiAgZ2V0dGV4dCxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE5BTUVTUEFDRV9QUk9QUyB9IGZyb20gJy4uL3V0aWxzL25hbWVzcGFjZS1wcm9wcyc7XG5pbXBvcnQgeyBNZXNzYWdpbmdOYW1lc3BhY2VzU2VydmljZSB9IGZyb20gJy4uL2FwaS9zZXJ2aWNlcy9tZXNzYWdpbmctbmFtZXNwYWNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzc2FnaW5nTWFuYWdlbWVudEd1YXJkIH0gZnJvbSAnLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQuZ3VhcmQnO1xuXG5jb25zdCBiYXNlTm9kZSA9IG5ldyBOYXZpZ2F0b3JOb2RlKHtcbiAgbGFiZWw6IGdldHRleHQoJ01lc3NhZ2luZyBzZXJ2aWNlJyksXG4gIGljb246ICdhcnJvd3MtZG90dGVkLWxlZnQtcmlnaHQnLFxuICBwYXRoOiAnbW9uaXRvcmluZy9tZXNzYWdpbmctc2VydmljZScsXG4gIHByaW9yaXR5OiAxMDAsXG4gIHBhcmVudDoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdNb25pdG9yaW5nJyksXG4gICAgaWNvbjogJ21vbml0b3JpbmcnXG4gIH1cbn0pO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2luZ05hdmlnYXRvck5vZGVGYWN0b3J5IGltcGxlbWVudHMgRXh0ZW5zaW9uRmFjdG9yeTxOYXZpZ2F0b3JOb2RlPiB7XG4gIGFwcFN0YXRlID0gaW5qZWN0KEFwcFN0YXRlU2VydmljZSk7XG4gIG5hdmlnYXRvclNlcnZpY2UgPSBpbmplY3QoTmF2aWdhdG9yU2VydmljZSk7XG4gIG5hbWVzcGFjZXNTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2luZ05hbWVzcGFjZXNTZXJ2aWNlKTtcbiAgZ3VhcmQgPSBpbmplY3QoTWVzc2FnaW5nTWFuYWdlbWVudEd1YXJkKTtcblxuICBjdXJyZW50VGVuYW50SWQgPSB0aGlzLmFwcFN0YXRlLmN1cnJlbnRUZW5hbnQucGlwZShcbiAgICBmaWx0ZXIoY3VycmVudFRlbmFudCA9PiAhIWN1cnJlbnRUZW5hbnQpLFxuICAgIG1hcChjdXJyZW50VGVuYW50ID0+IGN1cnJlbnRUZW5hbnQubmFtZSksXG4gICAgdGFrZSgxKVxuICApO1xuXG4gIG5hdmlnYXRvck5vZGUkOiBPYnNlcnZhYmxlPE5hdmlnYXRvck5vZGUgfCBOYXZpZ2F0b3JOb2RlW10+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMubmF2aWdhdG9yTm9kZSQgPSBmcm9tKHRoaXMuZ3VhcmQuY2FuQWN0aXZhdGUoKSkucGlwZShcbiAgICAgIGZpbHRlcihhbGxvd2VkID0+IGFsbG93ZWQpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY3VycmVudFRlbmFudElkKSxcbiAgICAgIHN3aXRjaE1hcChjdXJyZW50VGVuYW50SWQgPT4gdGhpcy5uYW1lc3BhY2VzU2VydmljZS5nZXROYW1lc3BhY2VzKGN1cnJlbnRUZW5hbnRJZCkpLFxuICAgICAgbWFwKCh7IG5hbWVzcGFjZXMgfSkgPT4ge1xuICAgICAgICBpZiAoIW5hbWVzcGFjZXM/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBuYW1lc3BhY2VzLmZvckVhY2gobmFtZXNwYWNlID0+IHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IE5BTUVTUEFDRV9QUk9QU1tuYW1lc3BhY2UubmFtZV0/LmxhYmVsIHx8IG5hbWVzcGFjZS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZSA9IG5ldyBOYXZpZ2F0b3JOb2RlKHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgcGF0aDogYG1vbml0b3JpbmcvbWVzc2FnaW5nLXNlcnZpY2UvbmFtZXNwYWNlLyR7bmFtZXNwYWNlLm5hbWV9YCxcbiAgICAgICAgICAgIGljb246IE5BTUVTUEFDRV9QUk9QU1tuYW1lc3BhY2UubmFtZV0/Lmljb24sXG4gICAgICAgICAgICByb3V0ZXJMaW5rRXhhY3Q6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYmFzZU5vZGUuYWRkKGNoaWxkTm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYmFzZU5vZGU7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldCgpOiBPYnNlcnZhYmxlPE5hdmlnYXRvck5vZGUgfCBOYXZpZ2F0b3JOb2RlW10+IHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0b3JOb2RlJDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { gettext } from '@c8y/ngx-components';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { basePath } from '../constants';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
export class TopicDetailsTabFactory {
|
|
8
|
+
constructor(router) {
|
|
9
|
+
this.router = router;
|
|
10
|
+
}
|
|
11
|
+
get() {
|
|
12
|
+
const pattern = /\/namespace\/(.+)\/topic\/(.+)\/subscribers$/;
|
|
13
|
+
const matches = this.router.url.match(pattern);
|
|
14
|
+
if (matches) {
|
|
15
|
+
const namespace = matches[1];
|
|
16
|
+
const topic = matches[2];
|
|
17
|
+
return [
|
|
18
|
+
{
|
|
19
|
+
path: basePath + `/namespace/${namespace}/topic/${topic}/subscribers`,
|
|
20
|
+
priority: 500,
|
|
21
|
+
label: gettext('Subscribers')
|
|
22
|
+
}
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopicDetailsTabFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopicDetailsTabFactory }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopicDetailsTabFactory, decorators: [{
|
|
31
|
+
type: Injectable
|
|
32
|
+
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtZGV0YWlscy10YWIuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21lc3NhZ2luZy1tYW5hZ2VtZW50L25hdmlnYXRvci90b3BpYy1kZXRhaWxzLXRhYi5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHeEMsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFckMsR0FBRztRQUNELE1BQU0sT0FBTyxHQUFHLDhDQUE4QyxDQUFDO1FBQy9ELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixPQUFPO2dCQUNMO29CQUNFLElBQUksRUFBRSxRQUFRLEdBQUcsY0FBYyxTQUFTLFVBQVUsS0FBSyxjQUFjO29CQUNyRSxRQUFRLEVBQUUsR0FBRztvQkFDYixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztpQkFDOUI7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzsrR0FuQlUsc0JBQXNCO21IQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXR0ZXh0LCBUYWJGYWN0b3J5IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYmFzZVBhdGggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9waWNEZXRhaWxzVGFiRmFjdG9yeSBpbXBsZW1lbnRzIFRhYkZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgZ2V0KCkge1xuICAgIGNvbnN0IHBhdHRlcm4gPSAvXFwvbmFtZXNwYWNlXFwvKC4rKVxcL3RvcGljXFwvKC4rKVxcL3N1YnNjcmliZXJzJC87XG4gICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMucm91dGVyLnVybC5tYXRjaChwYXR0ZXJuKTtcblxuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBtYXRjaGVzWzFdO1xuICAgICAgY29uc3QgdG9waWMgPSBtYXRjaGVzWzJdO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHBhdGg6IGJhc2VQYXRoICsgYC9uYW1lc3BhY2UvJHtuYW1lc3BhY2V9L3RvcGljLyR7dG9waWN9L3N1YnNjcmliZXJzYCxcbiAgICAgICAgICBwcmlvcml0eTogNTAwLFxuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTdWJzY3JpYmVycycpXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { formatNumber } from '@angular/common';
|
|
2
|
+
import { inject, LOCALE_ID, Pipe } from '@angular/core';
|
|
3
|
+
import { gettext } from '@c8y/ngx-components';
|
|
4
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* In case of limits in Messaging management, value of '-1' means that there is no limit.
|
|
8
|
+
*/
|
|
9
|
+
export class BacklogQuotaLimitPipe {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.translateService = inject(TranslateService);
|
|
12
|
+
this.locale = inject(LOCALE_ID);
|
|
13
|
+
}
|
|
14
|
+
transform(value) {
|
|
15
|
+
if (value == null || isNaN(value)) {
|
|
16
|
+
return '-';
|
|
17
|
+
}
|
|
18
|
+
else if (value === -1) {
|
|
19
|
+
return this.translateService.instant(gettext('Unlimited` backlog quota`'));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return formatNumber(value, this.locale);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BacklogQuotaLimitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
26
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BacklogQuotaLimitPipe, isStandalone: true, name: "backlogQuotaLimit" }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BacklogQuotaLimitPipe, decorators: [{
|
|
29
|
+
type: Pipe,
|
|
30
|
+
args: [{ name: 'backlogQuotaLimit', standalone: true }]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2xvZy1xdW90YS1saW1pdC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvdXRpbHMvYmFja2xvZy1xdW90YS1saW1pdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFdkQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVUscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQVdwQztJQVRDLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7YUFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO1FBQzdFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQzsrR0FaVSxxQkFBcUI7NkdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgTE9DQUxFX0lELCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbi8qKlxuICogSW4gY2FzZSBvZiBsaW1pdHMgaW4gTWVzc2FnaW5nIG1hbmFnZW1lbnQsIHZhbHVlIG9mICctMScgbWVhbnMgdGhhdCB0aGVyZSBpcyBubyBsaW1pdC5cbiAqL1xuQFBpcGUoeyBuYW1lOiAnYmFja2xvZ1F1b3RhTGltaXQnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgQmFja2xvZ1F1b3RhTGltaXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2NhbGUgPSBpbmplY3QoTE9DQUxFX0lEKTtcblxuICB0cmFuc2Zvcm0odmFsdWU6IG51bWJlcik6IG51bWJlciB8IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICByZXR1cm4gJy0nO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnVW5saW1pdGVkYCBiYWNrbG9nIHF1b3RhYCcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZvcm1hdE51bWJlcih2YWx1ZSwgdGhpcy5sb2NhbGUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { gettext } from '@c8y/ngx-components';
|
|
2
|
+
/**
|
|
3
|
+
* Currently known namespaces and their properties.
|
|
4
|
+
*/
|
|
5
|
+
export const NAMESPACE_PROPS = {
|
|
6
|
+
mqtt: {
|
|
7
|
+
icon: 'c8y-device-protocols',
|
|
8
|
+
label: gettext('MQTT Service')
|
|
9
|
+
},
|
|
10
|
+
'data-broker-fwd': {
|
|
11
|
+
icon: 'c8y-data-broker',
|
|
12
|
+
label: gettext('Data Broker')
|
|
13
|
+
},
|
|
14
|
+
relnotif: {
|
|
15
|
+
icon: 'c8y-notification',
|
|
16
|
+
label: gettext('Notifications 2.0')
|
|
17
|
+
},
|
|
18
|
+
'streaming-analytics': {
|
|
19
|
+
icon: 'c8y-streaming-analytics',
|
|
20
|
+
label: gettext('Streaming Analytics')
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvdXRpbHMvbmFtZXNwYWNlLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU85Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBbUM7SUFDN0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixLQUFLLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQztLQUMvQjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUM7S0FDOUI7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLEtBQUssRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUM7S0FDcEM7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixJQUFJLEVBQUUseUJBQXlCO1FBQy9CLEtBQUssRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUM7S0FDdEM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG50eXBlIE5hbWVzcGFjZVByb3BzID0ge1xuICBpY29uOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEN1cnJlbnRseSBrbm93biBuYW1lc3BhY2VzIGFuZCB0aGVpciBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgY29uc3QgTkFNRVNQQUNFX1BST1BTOiBSZWNvcmQ8c3RyaW5nLCBOYW1lc3BhY2VQcm9wcz4gPSB7XG4gIG1xdHQ6IHtcbiAgICBpY29uOiAnYzh5LWRldmljZS1wcm90b2NvbHMnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdNUVRUIFNlcnZpY2UnKVxuICB9LFxuICAnZGF0YS1icm9rZXItZndkJzoge1xuICAgIGljb246ICdjOHktZGF0YS1icm9rZXInLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdEYXRhIEJyb2tlcicpXG4gIH0sXG4gIHJlbG5vdGlmOiB7XG4gICAgaWNvbjogJ2M4eS1ub3RpZmljYXRpb24nLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdOb3RpZmljYXRpb25zIDIuMCcpXG4gIH0sXG4gICdzdHJlYW1pbmctYW5hbHl0aWNzJzoge1xuICAgIGljb246ICdjOHktc3RyZWFtaW5nLWFuYWx5dGljcycsXG4gICAgbGFiZWw6IGdldHRleHQoJ1N0cmVhbWluZyBBbmFseXRpY3MnKVxuICB9XG59O1xuIl19
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { gettext } from '@c8y/ngx-components';
|
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ngx-translate/core";
|
|
6
|
+
export class TimeToLivePipe {
|
|
7
|
+
constructor(translateService) {
|
|
8
|
+
this.translateService = translateService;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Transform time in seconds to human readable format.
|
|
12
|
+
* @param seconds time in seconds
|
|
13
|
+
* @returns human readable time period
|
|
14
|
+
*/
|
|
15
|
+
transform(seconds) {
|
|
16
|
+
if (seconds == null || isNaN(seconds)) {
|
|
17
|
+
return '-';
|
|
18
|
+
}
|
|
19
|
+
if (seconds === -1) {
|
|
20
|
+
return this.translateService.instant(gettext('Unlimited` time-to-live period`'));
|
|
21
|
+
}
|
|
22
|
+
const minutes = Math.floor(seconds / 60);
|
|
23
|
+
const hours = Math.floor(minutes / 60);
|
|
24
|
+
const days = Math.floor(hours / 24);
|
|
25
|
+
if (days >= 1) {
|
|
26
|
+
const remainingHours = hours % 24;
|
|
27
|
+
if (days === 1) {
|
|
28
|
+
if (remainingHours === 0) {
|
|
29
|
+
return this.translateService.instant(gettext('1 day'));
|
|
30
|
+
}
|
|
31
|
+
if (remainingHours === 1) {
|
|
32
|
+
return this.translateService.instant(gettext('1 day 1 hour'));
|
|
33
|
+
}
|
|
34
|
+
return this.translateService.instant(gettext('1 day {{hours}} hours'), {
|
|
35
|
+
hours: remainingHours
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
if (remainingHours === 0) {
|
|
40
|
+
return this.translateService.instant(gettext('{{days}} days'), { days });
|
|
41
|
+
}
|
|
42
|
+
if (remainingHours === 1) {
|
|
43
|
+
return this.translateService.instant(gettext('{{days}} days 1 hour'), { days });
|
|
44
|
+
}
|
|
45
|
+
return this.translateService.instant(gettext('{{days}} days {{hours}} hours'), {
|
|
46
|
+
days,
|
|
47
|
+
hours: remainingHours
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (hours > 0) {
|
|
52
|
+
const remainingMinutes = minutes % 60;
|
|
53
|
+
if (hours === 1) {
|
|
54
|
+
if (remainingMinutes === 0) {
|
|
55
|
+
return this.translateService.instant(gettext('1 hour'));
|
|
56
|
+
}
|
|
57
|
+
if (remainingMinutes === 1) {
|
|
58
|
+
return this.translateService.instant(gettext('1 hour 1 minute'));
|
|
59
|
+
}
|
|
60
|
+
return this.translateService.instant(gettext('1 hour {{minutes}} minutes'), {
|
|
61
|
+
minutes: remainingMinutes
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (remainingMinutes === 0) {
|
|
66
|
+
return this.translateService.instant(gettext('{{hours}} hours'), { hours });
|
|
67
|
+
}
|
|
68
|
+
if (remainingMinutes === 1) {
|
|
69
|
+
return this.translateService.instant(gettext('{{hours}} hours 1 minute'), { hours });
|
|
70
|
+
}
|
|
71
|
+
return this.translateService.instant(gettext('{{hours}} hours {{minutes}} minutes'), {
|
|
72
|
+
hours,
|
|
73
|
+
minutes: remainingMinutes
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (minutes > 0) {
|
|
78
|
+
const remainingSeconds = seconds % 60;
|
|
79
|
+
if (minutes === 1) {
|
|
80
|
+
if (remainingSeconds === 0) {
|
|
81
|
+
return this.translateService.instant(gettext('1 minute'));
|
|
82
|
+
}
|
|
83
|
+
if (remainingSeconds === 1) {
|
|
84
|
+
return this.translateService.instant(gettext('1 minute 1 second'));
|
|
85
|
+
}
|
|
86
|
+
return this.translateService.instant(gettext('1 minute {{seconds}} seconds'), {
|
|
87
|
+
seconds: remainingSeconds
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
if (remainingSeconds === 0) {
|
|
92
|
+
return this.translateService.instant(gettext('{{minutes}} minutes'), { minutes });
|
|
93
|
+
}
|
|
94
|
+
if (remainingSeconds === 1) {
|
|
95
|
+
return this.translateService.instant(gettext('{{minutes}} minutes 1 second'), {
|
|
96
|
+
minutes
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return this.translateService.instant(gettext('{{minutes}} minutes {{seconds}} seconds'), {
|
|
100
|
+
minutes,
|
|
101
|
+
seconds: remainingSeconds
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (seconds === 1) {
|
|
106
|
+
return this.translateService.instant(gettext('1 second'));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
return this.translateService.instant(gettext('{{seconds}} seconds'), { seconds });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimeToLivePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
113
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimeToLivePipe, isStandalone: true, name: "timeToLive" }); }
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimeToLivePipe, decorators: [{
|
|
116
|
+
type: Pipe,
|
|
117
|
+
args: [{
|
|
118
|
+
name: 'timeToLive',
|
|
119
|
+
standalone: true
|
|
120
|
+
}]
|
|
121
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS10by1saXZlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tZXNzYWdpbmctbWFuYWdlbWVudC91dGlscy90aW1lLXRvLWxpdmUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU12RCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFcEMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZCxNQUFNLGNBQWMsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2xD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QUFJLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7SUFDSCxDQUFDOytHQXhHVSxjQUFjOzZHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSjFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAndGltZVRvTGl2ZScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGltZVRvTGl2ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGltZSBpbiBzZWNvbmRzIHRvIGh1bWFuIHJlYWRhYmxlIGZvcm1hdC5cbiAgICogQHBhcmFtIHNlY29uZHMgdGltZSBpbiBzZWNvbmRzXG4gICAqIEByZXR1cm5zIGh1bWFuIHJlYWRhYmxlIHRpbWUgcGVyaW9kXG4gICAqL1xuICB0cmFuc2Zvcm0oc2Vjb25kczogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKHNlY29uZHMgPT0gbnVsbCB8fCBpc05hTihzZWNvbmRzKSkge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgaWYgKHNlY29uZHMgPT09IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnVW5saW1pdGVkYCB0aW1lLXRvLWxpdmUgcGVyaW9kYCcpKTtcbiAgICB9XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IobWludXRlcyAvIDYwKTtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcblxuICAgIGlmIChkYXlzID49IDEpIHtcbiAgICAgIGNvbnN0IHJlbWFpbmluZ0hvdXJzID0gaG91cnMgJSAyNDtcbiAgICAgIGlmIChkYXlzID09PSAxKSB7XG4gICAgICAgIGlmIChyZW1haW5pbmdIb3VycyA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCcxIGRheScpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVtYWluaW5nSG91cnMgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnMSBkYXkgMSBob3VyJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCcxIGRheSB7e2hvdXJzfX0gaG91cnMnKSwge1xuICAgICAgICAgIGhvdXJzOiByZW1haW5pbmdIb3Vyc1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZW1haW5pbmdIb3VycyA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCd7e2RheXN9fSBkYXlzJyksIHsgZGF5cyB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVtYWluaW5nSG91cnMgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgne3tkYXlzfX0gZGF5cyAxIGhvdXInKSwgeyBkYXlzIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCd7e2RheXN9fSBkYXlzIHt7aG91cnN9fSBob3VycycpLCB7XG4gICAgICAgICAgZGF5cyxcbiAgICAgICAgICBob3VyczogcmVtYWluaW5nSG91cnNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhvdXJzID4gMCkge1xuICAgICAgY29uc3QgcmVtYWluaW5nTWludXRlcyA9IG1pbnV0ZXMgJSA2MDtcbiAgICAgIGlmIChob3VycyA9PT0gMSkge1xuICAgICAgICBpZiAocmVtYWluaW5nTWludXRlcyA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCcxIGhvdXInKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlbWFpbmluZ01pbnV0ZXMgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnMSBob3VyIDEgbWludXRlJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCcxIGhvdXIge3ttaW51dGVzfX0gbWludXRlcycpLCB7XG4gICAgICAgICAgbWludXRlczogcmVtYWluaW5nTWludXRlc1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZW1haW5pbmdNaW51dGVzID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ3t7aG91cnN9fSBob3VycycpLCB7IGhvdXJzIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZW1haW5pbmdNaW51dGVzID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ3t7aG91cnN9fSBob3VycyAxIG1pbnV0ZScpLCB7IGhvdXJzIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCd7e2hvdXJzfX0gaG91cnMge3ttaW51dGVzfX0gbWludXRlcycpLCB7XG4gICAgICAgICAgaG91cnMsXG4gICAgICAgICAgbWludXRlczogcmVtYWluaW5nTWludXRlc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWludXRlcyA+IDApIHtcbiAgICAgIGNvbnN0IHJlbWFpbmluZ1NlY29uZHMgPSBzZWNvbmRzICUgNjA7XG4gICAgICBpZiAobWludXRlcyA9PT0gMSkge1xuICAgICAgICBpZiAocmVtYWluaW5nU2Vjb25kcyA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCcxIG1pbnV0ZScpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVtYWluaW5nU2Vjb25kcyA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCcxIG1pbnV0ZSAxIHNlY29uZCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnMSBtaW51dGUge3tzZWNvbmRzfX0gc2Vjb25kcycpLCB7XG4gICAgICAgICAgc2Vjb25kczogcmVtYWluaW5nU2Vjb25kc1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZW1haW5pbmdTZWNvbmRzID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ3t7bWludXRlc319IG1pbnV0ZXMnKSwgeyBtaW51dGVzIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZW1haW5pbmdTZWNvbmRzID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ3t7bWludXRlc319IG1pbnV0ZXMgMSBzZWNvbmQnKSwge1xuICAgICAgICAgICAgbWludXRlc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCd7e21pbnV0ZXN9fSBtaW51dGVzIHt7c2Vjb25kc319IHNlY29uZHMnKSwge1xuICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgc2Vjb25kczogcmVtYWluaW5nU2Vjb25kc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2Vjb25kcyA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJzEgc2Vjb25kJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgne3tzZWNvbmRzfX0gc2Vjb25kcycpLCB7IHNlY29uZHMgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -33,6 +33,10 @@ export class DeviceSelectorComponent {
|
|
|
33
33
|
this.deviceTypes
|
|
34
34
|
.pipe(distinctUntilChanged(), takeUntil(this.unsubscribe$))
|
|
35
35
|
.subscribe((types) => {
|
|
36
|
+
// there is a concurrency issue when updateFiltering is called before the columns have actually been passed into the grid
|
|
37
|
+
// so we are already updating the typeColumn here additionally so in case updateFiltering has no affect, the type column is still correctly filtered
|
|
38
|
+
// "Dynamic group created for bulk operation should be invisible" cypress tests of configurationUpdateBulkOperation.cy.ts started failing otherwise
|
|
39
|
+
this.typeColumn.externalFilterQuery = { types };
|
|
36
40
|
this.deviceGrid.updateFiltering([this.typeColumn.name], {
|
|
37
41
|
type: types && types.length
|
|
38
42
|
? FilteringActionType.ApplyFilter
|
|
@@ -86,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
86
90
|
}], onDeviceQueryStringChange: [{
|
|
87
91
|
type: Output
|
|
88
92
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvZGV2aWNlLXNlbGVjdG9yL2RldmljZS1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2RldmljZS1zZWxlY3Rvci9kZXZpY2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsbUJBQW1CLEVBQ25CLG9DQUFvQyxFQUVyQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGdDQUFnQyxFQUNoQyxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRWpFLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDO0FBZTNDLE1BQU0sT0FBTyx1QkFBdUI7SUFkcEM7UUE0QkUsZUFBVSxHQUFXLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUdoRCw4QkFBeUIsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU3RSxZQUFPLEdBQWE7WUFDbEIsSUFBSSxzQkFBc0IsRUFBRTtZQUM1QixJQUFJLG9CQUFvQixFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxxQkFBcUIsRUFBRTtZQUMzQixJQUFJLHFCQUFxQixFQUFFO1lBQzNCLElBQUksZ0NBQWdDLEVBQUU7WUFDdEMsSUFBSSxzQkFBc0IsRUFBRTtTQUM3QixDQUFDO1FBRU0saUJBQVksR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQW1DeEQ7YUEvRGlCLHdCQUFtQixHQUFxQztRQUN0RSxHQUFHLEVBQUUsZUFBZTtRQUNwQixZQUFZLEVBQUU7WUFDWixNQUFNLEVBQUUsS0FBSztTQUNkO0tBQ0YsQUFMa0MsQ0FLakM7SUF5QkYsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXO2lCQUNiLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQzFELFNBQVMsQ0FBQyxDQUFDLEtBQWUsRUFBRSxFQUFFO2dCQUM3Qix5SEFBeUg7Z0JBQ3pILG9KQUFvSjtnQkFDcEosbUpBQW1KO2dCQUNuSixJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBRWhELElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdEQsSUFBSSxFQUNGLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTTt3QkFDbkIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFdBQVc7d0JBQ2pDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXO29CQUNyQyxPQUFPLEVBQUUsS0FBSzt3QkFDWixDQUFDLENBQUM7NEJBQ0UsaUJBQWlCLEVBQUU7Z0NBQ2pCLG1CQUFtQixFQUFFO29DQUNuQixLQUFLO2lDQUNOOzZCQUNGO3lCQUNGO3dCQUNILENBQUMsQ0FBQyxTQUFTO2lCQUNkLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQS9EVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwySkFYdkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsZ0NBQWdDO2dCQUN6QyxRQUFRLEVBQUUsb0NBQW9DO2FBQy9DO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLCtCQUErQjtnQkFDeEMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLG1CQUFtQjthQUN0RDtTQUNGLHNFQVVVLG1CQUFtQiw4RENyRGhDLDhTQVNBOzs0RkRvQ2EsdUJBQXVCO2tCQWRuQyxTQUFTOytCQUNFLHFCQUFxQixhQUVwQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsb0NBQW9DO3lCQUMvQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsK0JBQStCOzRCQUN4QyxRQUFRLEVBQUUsd0JBQXdCLG1CQUFtQjt5QkFDdEQ7cUJBQ0Y7OEJBV0QsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJaEQsV0FBVztzQkFEVixLQUFLO2dCQU1OLHlCQUF5QjtzQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29sdW1uLFxuICBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9DT05URVhULFxuICBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9TVFJBVEVHWSxcbiAgRmlsdGVyaW5nQWN0aW9uVHlwZSxcbiAgVXNlclByZWZlcmVuY2VzQ29uZmlndXJhdGlvblN0cmF0ZWd5LFxuICBVc2VyUHJlZmVyZW5jZXNHcmlkQ29uZmlnQ29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFsYXJtc0RldmljZUdyaWRDb2x1bW4sXG4gIERldmljZUdyaWRDb21wb25lbnQsXG4gIEdyb3VwRGV2aWNlR3JpZENvbHVtbixcbiAgTW9kZWxEZXZpY2VHcmlkQ29sdW1uLFxuICBOYW1lRGV2aWNlR3JpZENvbHVtbixcbiAgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4sXG4gIFN0YXR1c0RldmljZUdyaWRDb2x1bW4sXG4gIFR5cGVEZXZpY2VHcmlkQ29sdW1uXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGV2aWNlLWdyaWQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgR1JJRF9DT05GSUdfS0VZID0gJ2RldmljZS1ncmlkLWJ1bGsnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRldmljZS1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnZGV2aWNlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogREFUQV9HUklEX0NPTkZJR1VSQVRJT05fU1RSQVRFR1ksXG4gICAgICB1c2VDbGFzczogVXNlclByZWZlcmVuY2VzQ29uZmlndXJhdGlvblN0cmF0ZWd5XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9DT05URVhULFxuICAgICAgdXNlVmFsdWU6IERldmljZVNlbGVjdG9yQ29tcG9uZW50LkdSSURfQ09ORklHX0NPTlRFWFRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRpYyByZWFkb25seSBHUklEX0NPTkZJR19DT05URVhUOiBVc2VyUHJlZmVyZW5jZXNHcmlkQ29uZmlnQ29udGV4dCA9IHtcbiAgICBrZXk6IEdSSURfQ09ORklHX0tFWSxcbiAgICBjb25maWdGaWx0ZXI6IHtcbiAgICAgIGZpbHRlcjogZmFsc2VcbiAgICB9XG4gIH07XG5cbiAgQFZpZXdDaGlsZChEZXZpY2VHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkZXZpY2VHcmlkOiBEZXZpY2VHcmlkQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIGRldmljZVR5cGVzOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICB0eXBlQ29sdW1uOiBDb2x1bW4gPSBuZXcgVHlwZURldmljZUdyaWRDb2x1bW4oKTtcblxuICBAT3V0cHV0KClcbiAgb25EZXZpY2VRdWVyeVN0cmluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICBuZXcgU3RhdHVzRGV2aWNlR3JpZENvbHVtbigpLFxuICAgIG5ldyBOYW1lRGV2aWNlR3JpZENvbHVtbigpLFxuICAgIHRoaXMudHlwZUNvbHVtbixcbiAgICBuZXcgTW9kZWxEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgbmV3IEdyb3VwRGV2aWNlR3JpZENvbHVtbigpLFxuICAgIG5ldyBSZWdpc3RyYXRpb25EYXRlRGV2aWNlR3JpZENvbHVtbigpLFxuICAgIG5ldyBBbGFybXNEZXZpY2VHcmlkQ29sdW1uKClcbiAgXTtcblxuICBwcml2YXRlIHVuc3Vic2NyaWJlJDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGV2aWNlVHlwZXMpIHtcbiAgICAgIHRoaXMuZGV2aWNlVHlwZXNcbiAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgLnN1YnNjcmliZSgodHlwZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgLy8gdGhlcmUgaXMgYSBjb25jdXJyZW5jeSBpc3N1ZSB3aGVuIHVwZGF0ZUZpbHRlcmluZyBpcyBjYWxsZWQgYmVmb3JlIHRoZSBjb2x1bW5zIGhhdmUgYWN0dWFsbHkgYmVlbiBwYXNzZWQgaW50byB0aGUgZ3JpZFxuICAgICAgICAgIC8vIHNvIHdlIGFyZSBhbHJlYWR5IHVwZGF0aW5nIHRoZSB0eXBlQ29sdW1uIGhlcmUgYWRkaXRpb25hbGx5IHNvIGluIGNhc2UgdXBkYXRlRmlsdGVyaW5nIGhhcyBubyBhZmZlY3QsIHRoZSB0eXBlIGNvbHVtbiBpcyBzdGlsbCBjb3JyZWN0bHkgZmlsdGVyZWRcbiAgICAgICAgICAvLyBcIkR5bmFtaWMgZ3JvdXAgY3JlYXRlZCBmb3IgYnVsayBvcGVyYXRpb24gc2hvdWxkIGJlIGludmlzaWJsZVwiIGN5cHJlc3MgdGVzdHMgb2YgY29uZmlndXJhdGlvblVwZGF0ZUJ1bGtPcGVyYXRpb24uY3kudHMgc3RhcnRlZCBmYWlsaW5nIG90aGVyd2lzZVxuICAgICAgICAgIHRoaXMudHlwZUNvbHVtbi5leHRlcm5hbEZpbHRlclF1ZXJ5ID0geyB0eXBlcyB9O1xuXG4gICAgICAgICAgdGhpcy5kZXZpY2VHcmlkLnVwZGF0ZUZpbHRlcmluZyhbdGhpcy50eXBlQ29sdW1uLm5hbWVdLCB7XG4gICAgICAgICAgICB0eXBlOlxuICAgICAgICAgICAgICB0eXBlcyAmJiB0eXBlcy5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IEZpbHRlcmluZ0FjdGlvblR5cGUuQXBwbHlGaWx0ZXJcbiAgICAgICAgICAgICAgICA6IEZpbHRlcmluZ0FjdGlvblR5cGUuUmVzZXRGaWx0ZXIsXG4gICAgICAgICAgICBwYXlsb2FkOiB0eXBlc1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIGZpbHRlcmluZ01vZGlmaWVyOiB7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsRmlsdGVyUXVlcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlc1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KHRydWUpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxjOHktZGV2aWNlLWdyaWRcbiAgW3RpdGxlXT1cIidUYXJnZXQgZGV2aWNlcycgfCB0cmFuc2xhdGVcIlxuICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgW2luZmluaXRlU2Nyb2xsXT1cIidhdXRvJ1wiXG4gIFtzaG93U2VhcmNoXT1cImZhbHNlXCJcbiAgKG9uRGV2aWNlUXVlcnlTdHJpbmdDaGFuZ2UpPVwib25EZXZpY2VRdWVyeVN0cmluZ0NoYW5nZS5lbWl0KCRldmVudClcIlxuICBjOHlQcm9kdWN0RXhwZXJpZW5jZVxuICBbYWN0aW9uTmFtZV09XCInYnVsa09wZXJhdGlvbnMnXCJcbj48L2M4eS1kZXZpY2UtZ3JpZD5cbiJdfQ==
|