@c8y/ngx-components 1021.67.0 → 1021.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/branding/shared/lazy/branding-import-modal/branding-import-modal.component.d.ts.map +1 -1
- package/core/beta-feature/beta-feature-show-notification.service.d.ts +10 -0
- package/core/beta-feature/beta-feature-show-notification.service.d.ts.map +1 -0
- package/core/beta-feature/beta-feature.providers.d.ts +3 -0
- package/core/beta-feature/beta-feature.providers.d.ts.map +1 -0
- package/core/beta-feature/beta-preview-button.component.d.ts +17 -0
- package/core/beta-feature/beta-preview-button.component.d.ts.map +1 -0
- package/core/beta-feature/beta-preview-drawer.factory.d.ts +19 -0
- package/core/beta-feature/beta-preview-drawer.factory.d.ts.map +1 -0
- package/core/beta-feature/beta-preview.component.d.ts +25 -0
- package/core/beta-feature/beta-preview.component.d.ts.map +1 -0
- package/core/beta-feature/beta-preview.model.d.ts +24 -0
- package/core/beta-feature/beta-preview.model.d.ts.map +1 -0
- package/core/beta-feature/beta-preview.service.d.ts +47 -0
- package/core/beta-feature/beta-preview.service.d.ts.map +1 -0
- package/core/beta-feature/feature-cache.service.d.ts +26 -0
- package/core/beta-feature/feature-cache.service.d.ts.map +1 -0
- package/core/beta-feature/feature-state.pipe.d.ts +12 -0
- package/core/beta-feature/feature-state.pipe.d.ts.map +1 -0
- package/core/beta-feature/index.d.ts +7 -0
- package/core/beta-feature/index.d.ts.map +1 -0
- package/core/bottom-drawer/bottom-drawer-ref.d.ts.map +1 -1
- package/core/bottom-drawer/bottom-drawer.component.d.ts +1 -0
- package/core/bottom-drawer/bottom-drawer.component.d.ts.map +1 -1
- package/core/bottom-drawer/bottom-drawer.model.d.ts +4 -0
- package/core/bottom-drawer/bottom-drawer.model.d.ts.map +1 -1
- package/core/common/ApplicationOptions.d.ts +8 -0
- package/core/common/ApplicationOptions.d.ts.map +1 -1
- package/core/common/bytes.pipe.d.ts +26 -10
- package/core/common/bytes.pipe.d.ts.map +1 -1
- package/core/common/index.d.ts +1 -0
- package/core/common/index.d.ts.map +1 -1
- package/core/common/notification-display.service.d.ts +19 -0
- package/core/common/notification-display.service.d.ts.map +1 -0
- package/core/core.module.d.ts.map +1 -1
- package/core/header/header-bar/header-bar.component.d.ts +1 -0
- package/core/header/header-bar/header-bar.component.d.ts.map +1 -1
- package/core/header/header.service.d.ts +4 -1
- package/core/header/header.service.d.ts.map +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.d.ts.map +1 -1
- package/datapoint-explorer/datapoint-explorer-navigation-factory.d.ts +10 -0
- package/datapoint-explorer/datapoint-explorer-navigation-factory.d.ts.map +1 -0
- package/datapoint-explorer/datapoint-explorer-route-factory.d.ts +10 -0
- package/datapoint-explorer/datapoint-explorer-route-factory.d.ts.map +1 -0
- package/datapoint-explorer/datapoint-explorer.module.d.ts.map +1 -1
- package/echart/charts.component.d.ts +14 -3
- package/echart/charts.component.d.ts.map +1 -1
- package/esm2022/branding/shared/lazy/branding-import-modal/branding-import-modal.component.mjs +4 -7
- package/esm2022/core/beta-feature/beta-feature-show-notification.service.mjs +17 -0
- package/esm2022/core/beta-feature/beta-feature.providers.mjs +9 -0
- package/esm2022/core/beta-feature/beta-preview-button.component.mjs +53 -0
- package/esm2022/core/beta-feature/beta-preview-drawer.factory.mjs +52 -0
- package/esm2022/core/beta-feature/beta-preview.component.mjs +64 -0
- package/esm2022/core/beta-feature/beta-preview.model.mjs +2 -0
- package/esm2022/core/beta-feature/beta-preview.service.mjs +114 -0
- package/esm2022/core/beta-feature/feature-cache.service.mjs +48 -0
- package/esm2022/core/beta-feature/feature-state.pipe.mjs +22 -0
- package/esm2022/core/beta-feature/index.mjs +7 -0
- package/esm2022/core/bottom-drawer/bottom-drawer-ref.mjs +4 -1
- package/esm2022/core/bottom-drawer/bottom-drawer.component.mjs +4 -3
- package/esm2022/core/bottom-drawer/bottom-drawer.model.mjs +1 -1
- package/esm2022/core/common/ApplicationOptions.mjs +1 -1
- package/esm2022/core/common/bytes.pipe.mjs +47 -18
- package/esm2022/core/common/index.mjs +2 -1
- package/esm2022/core/common/notification-display.service.mjs +2 -0
- package/esm2022/core/core.module.mjs +4 -2
- package/esm2022/core/data-grid/data-grid.component.mjs +3 -3
- package/esm2022/core/docs/legal-notices-outlet/legal-notices-outlet.component.mjs +3 -3
- package/esm2022/core/header/header-bar/header-bar.component.mjs +4 -3
- package/esm2022/core/header/header.service.mjs +12 -6
- package/esm2022/core/index.mjs +2 -1
- package/esm2022/core/user/user-details-drawer/user-details-drawer.component.mjs +3 -3
- package/esm2022/core/version/version-list/version-list.component.mjs +3 -3
- package/esm2022/datapoint-explorer/datapoint-explorer-navigation-factory.mjs +31 -0
- package/esm2022/datapoint-explorer/datapoint-explorer-route-factory.mjs +37 -0
- package/esm2022/datapoint-explorer/datapoint-explorer.module.mjs +22 -48
- 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/register-device/bulk/bulk-device-registration-modal.component.mjs +8 -10
- package/esm2022/register-device/general/general-device-registration.component.mjs +8 -10
- package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +10 -12
- package/esm2022/upgrade/ng1/downgraded.services.mjs +3 -2
- package/esm2022/upgrade/ng1/index.mjs +3 -2
- package/esm2022/widgets/cockpit-exports/index.mjs +2 -2
- package/esm2022/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.mjs +56 -0
- package/esm2022/widgets/definitions/datapoints-graph/index.mjs +12 -29
- package/esm2022/widgets/definitions/index.mjs +3 -2
- package/esm2022/widgets/implementations/datapoints-graph/datapoints-graph-view/datapoints-graph-widget-view.component.mjs +18 -3
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +3 -6
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +81 -48
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
- 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-register-device.mjs +10 -14
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +18 -20
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +3 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +65 -28
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +2 -1
- 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.mjs +396 -39
- 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 -8
- 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/register-device/bulk/bulk-device-registration-modal.component.d.ts +5 -5
- package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
- package/register-device/general/general-device-registration.component.d.ts +5 -5
- package/register-device/general/general-device-registration.component.d.ts.map +1 -1
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts +4 -4
- package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
- package/upgrade/ng1/downgraded.services.d.ts +1 -0
- package/upgrade/ng1/downgraded.services.d.ts.map +1 -1
- package/upgrade/ng1/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +1 -1
- package/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.d.ts +11 -0
- package/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.d.ts.map +1 -0
- package/widgets/definitions/datapoints-graph/index.d.ts +0 -28
- package/widgets/definitions/datapoints-graph/index.d.ts.map +1 -1
- package/widgets/definitions/index.d.ts +2 -1
- package/widgets/definitions/index.d.ts.map +1 -1
- 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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { FetchClient, Service } from '@c8y/client';
|
|
3
|
+
import { AlertService } from '@c8y/ngx-components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@c8y/client";
|
|
6
|
+
export class MessagingNamespacesService extends Service {
|
|
7
|
+
constructor(client) {
|
|
8
|
+
super(client);
|
|
9
|
+
this.baseUrl = '/service/messaging-management';
|
|
10
|
+
this.listUrl = 'tenants';
|
|
11
|
+
this.alertService = inject(AlertService);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get namespace list for a tenant
|
|
15
|
+
*
|
|
16
|
+
* @param tenant Tenant id
|
|
17
|
+
* @return Namespaces list
|
|
18
|
+
*/
|
|
19
|
+
async getNamespaces(tenant) {
|
|
20
|
+
const namespacesUrl = `/${this.listUrl}/${tenant}/namespaces`;
|
|
21
|
+
return this.fetch(namespacesUrl).then(res => res.json());
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get namespace.
|
|
25
|
+
*
|
|
26
|
+
* @param tenant Tenant ID.
|
|
27
|
+
* @param namespace Name of namespace.
|
|
28
|
+
* @return Namespace.
|
|
29
|
+
*/
|
|
30
|
+
async getNamespace(tenant, namespace) {
|
|
31
|
+
const namespaceUrl = `/${this.listUrl}/${tenant}/namespaces/${namespace}`;
|
|
32
|
+
return this.fetch(namespaceUrl).then(res => res.json());
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get namespace policies
|
|
36
|
+
*
|
|
37
|
+
* @param tenant Tenant id
|
|
38
|
+
* @param namespace Name of namespace
|
|
39
|
+
* @return Namespaces policies
|
|
40
|
+
*/
|
|
41
|
+
async getNamespacePolicies(tenant, namespace) {
|
|
42
|
+
const policiesUrl = `/${this.listUrl}/${tenant}/namespaces/${namespace}/policies`;
|
|
43
|
+
return this.fetch(policiesUrl).then(res => res.json());
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get single namespace details
|
|
47
|
+
* @param tenant Tenant ID
|
|
48
|
+
* @param namespaceName Namespace name
|
|
49
|
+
* @return Namespace with details
|
|
50
|
+
*/
|
|
51
|
+
async getNamespaceDetails(tenant, namespaceName) {
|
|
52
|
+
const namespace = await this.getNamespace(tenant, namespaceName);
|
|
53
|
+
const policies = await this.getNamespacePolicies(tenant, namespaceName);
|
|
54
|
+
return {
|
|
55
|
+
id: namespaceName,
|
|
56
|
+
namespace,
|
|
57
|
+
policies
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get namespaces with details
|
|
62
|
+
*
|
|
63
|
+
* @param tenant Tenant ID
|
|
64
|
+
* @return Namespaces with details
|
|
65
|
+
*/
|
|
66
|
+
async getNamespacesDetails(tenant) {
|
|
67
|
+
try {
|
|
68
|
+
const { namespaces } = await this.getNamespaces(tenant);
|
|
69
|
+
return Promise.all(namespaces.map(async (namespace) => this.getNamespaceDetails(tenant, namespace.name)));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
this.alertService.addServerFailure(error);
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingNamespacesService, deps: [{ token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
77
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingNamespacesService, providedIn: 'root' }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingNamespacesService, decorators: [{
|
|
80
|
+
type: Injectable,
|
|
81
|
+
args: [{ providedIn: 'root' }]
|
|
82
|
+
}], ctorParameters: () => [{ type: i1.FetchClient }] });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLW5hbWVzcGFjZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21lc3NhZ2luZy1tYW5hZ2VtZW50L2FwaS9zZXJ2aWNlcy9tZXNzYWdpbmctbmFtZXNwYWNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR25ELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxPQUFZO0lBTTFELFlBQVksTUFBbUI7UUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBTk4sWUFBTyxHQUFHLCtCQUErQixDQUFDO1FBQzFDLFlBQU8sR0FBRyxTQUFTLENBQUM7UUFFdEIsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFJNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFjO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLFNBQWlCO1FBQ2xELE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLGVBQWUsU0FBUyxFQUFFLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLE1BQWMsRUFDZCxTQUFpQjtRQUVqQixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxlQUFlLFNBQVMsV0FBVyxDQUFDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLE1BQWMsRUFDZCxhQUFxQjtRQUVyQixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4RSxPQUFPO1lBQ0wsRUFBRSxFQUFFLGFBQWE7WUFDakIsU0FBUztZQUNULFFBQVE7U0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE1BQWM7UUFDdkMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDcEYsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDOytHQW5GVSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQURiLE1BQU07OzRGQUNuQiwwQkFBMEI7a0JBRHRDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdpbmdOYW1lc3BhY2VMaXN0IH0gZnJvbSAnLi4vbW9kZWwvbmFtZXNwYWNlTGlzdCc7XG5pbXBvcnQgeyBNZXNzYWdpbmdOYW1lc3BhY2VQb2xpY2llcyB9IGZyb20gJy4uL21vZGVsL25hbWVzcGFjZVBvbGljaWVzJztcbmltcG9ydCB7IE1lc3NhZ2luZ05hbWVzcGFjZSB9IGZyb20gJy4uL21vZGVsL25hbWVzcGFjZSc7XG5pbXBvcnQgeyBGZXRjaENsaWVudCwgU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IE1lc3NhZ2luZ05hbWVzcGFjZURldGFpbHMgfSBmcm9tICcuLi9tb2RlbC9uYW1lc3BhY2VEZXRhaWxzJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2luZ05hbWVzcGFjZXNTZXJ2aWNlIGV4dGVuZHMgU2VydmljZTxhbnk+IHtcbiAgcHJvdGVjdGVkIGJhc2VVcmwgPSAnL3NlcnZpY2UvbWVzc2FnaW5nLW1hbmFnZW1lbnQnO1xuICBwcm90ZWN0ZWQgbGlzdFVybCA9ICd0ZW5hbnRzJztcblxuICBwcml2YXRlIGFsZXJ0U2VydmljZSA9IGluamVjdChBbGVydFNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogRmV0Y2hDbGllbnQpIHtcbiAgICBzdXBlcihjbGllbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuYW1lc3BhY2UgbGlzdCBmb3IgYSB0ZW5hbnRcbiAgICpcbiAgICogQHBhcmFtIHRlbmFudCBUZW5hbnQgaWRcbiAgICogQHJldHVybiBOYW1lc3BhY2VzIGxpc3RcbiAgICovXG4gIGFzeW5jIGdldE5hbWVzcGFjZXModGVuYW50OiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2luZ05hbWVzcGFjZUxpc3Q+IHtcbiAgICBjb25zdCBuYW1lc3BhY2VzVXJsID0gYC8ke3RoaXMubGlzdFVybH0vJHt0ZW5hbnR9L25hbWVzcGFjZXNgO1xuICAgIHJldHVybiB0aGlzLmZldGNoKG5hbWVzcGFjZXNVcmwpLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuYW1lc3BhY2UuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW5hbnQgVGVuYW50IElELlxuICAgKiBAcGFyYW0gbmFtZXNwYWNlIE5hbWUgb2YgbmFtZXNwYWNlLlxuICAgKiBAcmV0dXJuIE5hbWVzcGFjZS5cbiAgICovXG4gIGFzeW5jIGdldE5hbWVzcGFjZSh0ZW5hbnQ6IHN0cmluZywgbmFtZXNwYWNlOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2luZ05hbWVzcGFjZT4ge1xuICAgIGNvbnN0IG5hbWVzcGFjZVVybCA9IGAvJHt0aGlzLmxpc3RVcmx9LyR7dGVuYW50fS9uYW1lc3BhY2VzLyR7bmFtZXNwYWNlfWA7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gobmFtZXNwYWNlVXJsKS50aGVuKHJlcyA9PiByZXMuanNvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmFtZXNwYWNlIHBvbGljaWVzXG4gICAqXG4gICAqIEBwYXJhbSB0ZW5hbnQgVGVuYW50IGlkXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgTmFtZSBvZiBuYW1lc3BhY2VcbiAgICogQHJldHVybiBOYW1lc3BhY2VzIHBvbGljaWVzXG4gICAqL1xuICBhc3luYyBnZXROYW1lc3BhY2VQb2xpY2llcyhcbiAgICB0ZW5hbnQ6IHN0cmluZyxcbiAgICBuYW1lc3BhY2U6IHN0cmluZ1xuICApOiBQcm9taXNlPE1lc3NhZ2luZ05hbWVzcGFjZVBvbGljaWVzPiB7XG4gICAgY29uc3QgcG9saWNpZXNVcmwgPSBgLyR7dGhpcy5saXN0VXJsfS8ke3RlbmFudH0vbmFtZXNwYWNlcy8ke25hbWVzcGFjZX0vcG9saWNpZXNgO1xuICAgIHJldHVybiB0aGlzLmZldGNoKHBvbGljaWVzVXJsKS50aGVuKHJlcyA9PiByZXMuanNvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2luZ2xlIG5hbWVzcGFjZSBkZXRhaWxzXG4gICAqIEBwYXJhbSB0ZW5hbnQgVGVuYW50IElEXG4gICAqIEBwYXJhbSBuYW1lc3BhY2VOYW1lIE5hbWVzcGFjZSBuYW1lXG4gICAqIEByZXR1cm4gTmFtZXNwYWNlIHdpdGggZGV0YWlsc1xuICAgKi9cbiAgYXN5bmMgZ2V0TmFtZXNwYWNlRGV0YWlscyhcbiAgICB0ZW5hbnQ6IHN0cmluZyxcbiAgICBuYW1lc3BhY2VOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxNZXNzYWdpbmdOYW1lc3BhY2VEZXRhaWxzPiB7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gYXdhaXQgdGhpcy5nZXROYW1lc3BhY2UodGVuYW50LCBuYW1lc3BhY2VOYW1lKTtcbiAgICBjb25zdCBwb2xpY2llcyA9IGF3YWl0IHRoaXMuZ2V0TmFtZXNwYWNlUG9saWNpZXModGVuYW50LCBuYW1lc3BhY2VOYW1lKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IG5hbWVzcGFjZU5hbWUsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBwb2xpY2llc1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5hbWVzcGFjZXMgd2l0aCBkZXRhaWxzXG4gICAqXG4gICAqIEBwYXJhbSB0ZW5hbnQgVGVuYW50IElEXG4gICAqIEByZXR1cm4gTmFtZXNwYWNlcyB3aXRoIGRldGFpbHNcbiAgICovXG4gIGFzeW5jIGdldE5hbWVzcGFjZXNEZXRhaWxzKHRlbmFudDogc3RyaW5nKTogUHJvbWlzZTxNZXNzYWdpbmdOYW1lc3BhY2VEZXRhaWxzW10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBuYW1lc3BhY2VzIH0gPSBhd2FpdCB0aGlzLmdldE5hbWVzcGFjZXModGVuYW50KTtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgICAgbmFtZXNwYWNlcy5tYXAoYXN5bmMgbmFtZXNwYWNlID0+IHRoaXMuZ2V0TmFtZXNwYWNlRGV0YWlscyh0ZW5hbnQsIG5hbWVzcGFjZS5uYW1lKSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FetchClient, Paging, Service } from '@c8y/client';
|
|
3
|
+
import { omit } from 'lodash-es';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@c8y/client";
|
|
6
|
+
export class MessagingSubscribersService extends Service {
|
|
7
|
+
constructor(client) {
|
|
8
|
+
super(client);
|
|
9
|
+
this.baseUrl = '/service/messaging-management';
|
|
10
|
+
this.listUrl = 'tenants';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get the list of subscribers for a topic.
|
|
14
|
+
*
|
|
15
|
+
* @param filter Subscriber filters.
|
|
16
|
+
*/
|
|
17
|
+
async list(filter) {
|
|
18
|
+
const headers = { accept: 'application/json' };
|
|
19
|
+
const params = omit(filter, ['tenant', 'namespace', 'topic', 'type']);
|
|
20
|
+
const url = this.getBaseUrl(filter);
|
|
21
|
+
const res = await this.fetch(url, this.changeFetchOptions({ headers, params }, url));
|
|
22
|
+
const subscriberList = (await res.json());
|
|
23
|
+
const data = subscriberList.subscribers;
|
|
24
|
+
const paging = this.getPaging(subscriberList, filter);
|
|
25
|
+
return { res, data, paging };
|
|
26
|
+
}
|
|
27
|
+
async delete(subscriberToDelete) {
|
|
28
|
+
const method = 'DELETE';
|
|
29
|
+
const url = this.getBaseUrl(subscriberToDelete) + `/${subscriberToDelete.name}`;
|
|
30
|
+
const res = await this.fetch(url, this.changeFetchOptions({ method }, url));
|
|
31
|
+
return { res, data: null };
|
|
32
|
+
}
|
|
33
|
+
getPaging(json, filter) {
|
|
34
|
+
if (json.pageStatistics) {
|
|
35
|
+
const { currentPage, totalPages } = json.pageStatistics;
|
|
36
|
+
const statistics = {
|
|
37
|
+
...json.pageStatistics,
|
|
38
|
+
nextPage: currentPage < totalPages ? currentPage + 1 : null,
|
|
39
|
+
prevPage: currentPage > 1 ? currentPage - 1 : null
|
|
40
|
+
};
|
|
41
|
+
return new Paging(this, statistics, filter);
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
getBaseUrl({ tenant, namespace, topic, type }) {
|
|
46
|
+
return `/${this.listUrl}/${tenant}/namespaces/${namespace}/topics/${topic}/types/${type}/subscribers`;
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingSubscribersService, deps: [{ token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingSubscribersService, providedIn: 'root' }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingSubscribersService, decorators: [{
|
|
52
|
+
type: Injectable,
|
|
53
|
+
args: [{ providedIn: 'root' }]
|
|
54
|
+
}], ctorParameters: () => [{ type: i1.FetchClient }] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLXN1YnNjcmliZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tZXNzYWdpbmctbWFuYWdlbWVudC9hcGkvc2VydmljZXMvbWVzc2FnaW5nLXN1YnNjcmliZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFPM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBR2pDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxPQUE0QjtJQUkzRSxZQUFZLE1BQW1CO1FBQzdCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUpOLFlBQU8sR0FBRywrQkFBK0IsQ0FBQztRQUMxQyxZQUFPLEdBQUcsU0FBUyxDQUFDO0lBSTlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFrQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRixNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUE0QixDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQStDO1FBQzFELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoRixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUE2QixFQUFFLE1BQWM7UUFDL0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3hELE1BQU0sVUFBVSxHQUFHO2dCQUNqQixHQUFHLElBQUksQ0FBQyxjQUFjO2dCQUN0QixRQUFRLEVBQUUsV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDM0QsUUFBUSxFQUFFLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDbkQsQ0FBQztZQUNGLE9BQU8sSUFBSSxNQUFNLENBQWlCLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFVBQVUsQ0FBQyxFQUNqQixNQUFNLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxJQUFJLEVBTUw7UUFDQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLGVBQWUsU0FBUyxXQUFXLEtBQUssVUFBVSxJQUFJLGNBQWMsQ0FBQztJQUN4RyxDQUFDOytHQXhEVSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQURkLE1BQU07OzRGQUNuQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmV0Y2hDbGllbnQsIFBhZ2luZywgU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IE1lc3NhZ2luZ1N1YnNjcmliZXJMaXN0IH0gZnJvbSAnLi4vbW9kZWwvc3Vic2NyaWJlckxpc3QnO1xuaW1wb3J0IHsgTWVzc2FnaW5nU3Vic2NyaWJlciB9IGZyb20gJy4uL21vZGVsL3N1YnNjcmliZXInO1xuaW1wb3J0IHsgTWVzc2FnaW5nVG9waWMgfSBmcm9tICcuLi9tb2RlbC90b3BpYyc7XG5pbXBvcnQgeyBNZXNzYWdpbmdTdWJzY3JpYmVyRmlsdGVycyB9IGZyb20gJy4uL21vZGVsL3N1YnNjcmliZXJGaWx0ZXJzJztcbmltcG9ydCB7IE1lc3NhZ2luZ1N1YnNjcmliZXJUb0RlbGV0ZSB9IGZyb20gJy4uL21vZGVsL3N1YnNjcmliZXJUb0RlbGV0ZSc7XG5pbXBvcnQgeyBNZXNzYWdpbmdUb3BpY1R5cGUgfSBmcm9tICcuLi9tb2RlbC90b3BpY1R5cGUnO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTWVzc2FnaW5nU3Vic2NyaWJlcnNTZXJ2aWNlIGV4dGVuZHMgU2VydmljZTxNZXNzYWdpbmdTdWJzY3JpYmVyPiB7XG4gIHByb3RlY3RlZCBiYXNlVXJsID0gJy9zZXJ2aWNlL21lc3NhZ2luZy1tYW5hZ2VtZW50JztcbiAgcHJvdGVjdGVkIGxpc3RVcmwgPSAndGVuYW50cyc7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50OiBGZXRjaENsaWVudCkge1xuICAgIHN1cGVyKGNsaWVudCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIHN1YnNjcmliZXJzIGZvciBhIHRvcGljLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsdGVyIFN1YnNjcmliZXIgZmlsdGVycy5cbiAgICovXG4gIGFzeW5jIGxpc3QoZmlsdGVyOiBNZXNzYWdpbmdTdWJzY3JpYmVyRmlsdGVycykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7IGFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nIH07XG4gICAgY29uc3QgcGFyYW1zID0gb21pdChmaWx0ZXIsIFsndGVuYW50JywgJ25hbWVzcGFjZScsICd0b3BpYycsICd0eXBlJ10pO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0QmFzZVVybChmaWx0ZXIpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZmV0Y2godXJsLCB0aGlzLmNoYW5nZUZldGNoT3B0aW9ucyh7IGhlYWRlcnMsIHBhcmFtcyB9LCB1cmwpKTtcbiAgICBjb25zdCBzdWJzY3JpYmVyTGlzdCA9IChhd2FpdCByZXMuanNvbigpKSBhcyBNZXNzYWdpbmdTdWJzY3JpYmVyTGlzdDtcbiAgICBjb25zdCBkYXRhID0gc3Vic2NyaWJlckxpc3Quc3Vic2NyaWJlcnM7XG4gICAgY29uc3QgcGFnaW5nID0gdGhpcy5nZXRQYWdpbmcoc3Vic2NyaWJlckxpc3QsIGZpbHRlcik7XG4gICAgcmV0dXJuIHsgcmVzLCBkYXRhLCBwYWdpbmcgfTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShzdWJzY3JpYmVyVG9EZWxldGU6IE1lc3NhZ2luZ1N1YnNjcmliZXJUb0RlbGV0ZSkge1xuICAgIGNvbnN0IG1ldGhvZCA9ICdERUxFVEUnO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0QmFzZVVybChzdWJzY3JpYmVyVG9EZWxldGUpICsgYC8ke3N1YnNjcmliZXJUb0RlbGV0ZS5uYW1lfWA7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5mZXRjaCh1cmwsIHRoaXMuY2hhbmdlRmV0Y2hPcHRpb25zKHsgbWV0aG9kIH0sIHVybCkpO1xuICAgIHJldHVybiB7IHJlcywgZGF0YTogbnVsbCB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2luZyhqc29uOiBNZXNzYWdpbmdTdWJzY3JpYmVyTGlzdCwgZmlsdGVyOiBvYmplY3QpOiBQYWdpbmc8TWVzc2FnaW5nU3Vic2NyaWJlcj4ge1xuICAgIGlmIChqc29uLnBhZ2VTdGF0aXN0aWNzKSB7XG4gICAgICBjb25zdCB7IGN1cnJlbnRQYWdlLCB0b3RhbFBhZ2VzIH0gPSBqc29uLnBhZ2VTdGF0aXN0aWNzO1xuICAgICAgY29uc3Qgc3RhdGlzdGljcyA9IHtcbiAgICAgICAgLi4uanNvbi5wYWdlU3RhdGlzdGljcyxcbiAgICAgICAgbmV4dFBhZ2U6IGN1cnJlbnRQYWdlIDwgdG90YWxQYWdlcyA/IGN1cnJlbnRQYWdlICsgMSA6IG51bGwsXG4gICAgICAgIHByZXZQYWdlOiBjdXJyZW50UGFnZSA+IDEgPyBjdXJyZW50UGFnZSAtIDEgOiBudWxsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIG5ldyBQYWdpbmc8TWVzc2FnaW5nVG9waWM+KHRoaXMsIHN0YXRpc3RpY3MsIGZpbHRlcik7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCYXNlVXJsKHtcbiAgICB0ZW5hbnQsXG4gICAgbmFtZXNwYWNlLFxuICAgIHRvcGljLFxuICAgIHR5cGVcbiAgfToge1xuICAgIHRlbmFudDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgIHRvcGljOiBzdHJpbmc7XG4gICAgdHlwZTogTWVzc2FnaW5nVG9waWNUeXBlO1xuICB9KSB7XG4gICAgcmV0dXJuIGAvJHt0aGlzLmxpc3RVcmx9LyR7dGVuYW50fS9uYW1lc3BhY2VzLyR7bmFtZXNwYWNlfS90b3BpY3MvJHt0b3BpY30vdHlwZXMvJHt0eXBlfS9zdWJzY3JpYmVyc2A7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FetchClient, Paging, Service } from '@c8y/client';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@c8y/client";
|
|
5
|
+
export class MessagingTopicsService extends Service {
|
|
6
|
+
constructor(client) {
|
|
7
|
+
super(client);
|
|
8
|
+
this.baseUrl = '/service/messaging-management';
|
|
9
|
+
this.listUrl = 'tenants';
|
|
10
|
+
}
|
|
11
|
+
async list(filter) {
|
|
12
|
+
const headers = { accept: 'application/json' };
|
|
13
|
+
const { tenant, namespace, ...params } = filter;
|
|
14
|
+
const url = `/${this.listUrl}/${tenant}/namespaces/${namespace}/topics`;
|
|
15
|
+
const res = await this.fetch(url, this.changeFetchOptions({ headers, params }, url));
|
|
16
|
+
const topicList = (await res.json());
|
|
17
|
+
const data = topicList.topics;
|
|
18
|
+
const paging = this.getPaging(topicList, filter);
|
|
19
|
+
return { res, data, paging };
|
|
20
|
+
}
|
|
21
|
+
async detail(filter) {
|
|
22
|
+
const headers = { accept: 'application/json' };
|
|
23
|
+
const { tenant, namespace, topic, type } = filter;
|
|
24
|
+
const url = `/${this.listUrl}/${tenant}/namespaces/${namespace}/topics/${topic}/types/${type}`;
|
|
25
|
+
const res = await this.fetch(url, this.changeFetchOptions({ headers }, url));
|
|
26
|
+
const data = await res.json();
|
|
27
|
+
return { res, data };
|
|
28
|
+
}
|
|
29
|
+
getPaging(topicList, filter) {
|
|
30
|
+
if (topicList.pageStatistics) {
|
|
31
|
+
const { currentPage, totalPages } = topicList.pageStatistics;
|
|
32
|
+
const statistics = {
|
|
33
|
+
...topicList.pageStatistics,
|
|
34
|
+
nextPage: currentPage < totalPages ? currentPage + 1 : null,
|
|
35
|
+
prevPage: currentPage > 1 ? currentPage - 1 : null
|
|
36
|
+
};
|
|
37
|
+
return new Paging(this, statistics, filter);
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingTopicsService, deps: [{ token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingTopicsService, providedIn: 'root' }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessagingTopicsService, decorators: [{
|
|
45
|
+
type: Injectable,
|
|
46
|
+
args: [{ providedIn: 'root' }]
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.FetchClient }] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLXRvcGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvYXBpL3NlcnZpY2VzL21lc3NhZ2luZy10b3BpY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBT3BFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxPQUF1QjtJQUlqRSxZQUFZLE1BQW1CO1FBQzdCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUpOLFlBQU8sR0FBRywrQkFBK0IsQ0FBQztRQUMxQyxZQUFPLEdBQUcsU0FBUyxDQUFDO0lBSTlCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQWlDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLENBQUM7UUFDL0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sZUFBZSxTQUFTLFNBQVMsQ0FBQztRQUN4RSxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQXVCLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFtQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDbEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sZUFBZSxTQUFTLFdBQVcsS0FBSyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQy9GLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxTQUFTLENBQ2pCLFNBQTZCLEVBQzdCLE1BQWlDO1FBRWpDLElBQUksU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQztZQUM3RCxNQUFNLFVBQVUsR0FBRztnQkFDakIsR0FBRyxTQUFTLENBQUMsY0FBYztnQkFDM0IsUUFBUSxFQUFFLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQzNELFFBQVEsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ25ELENBQUM7WUFDRixPQUFPLElBQUksTUFBTSxDQUFpQixJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBMUNVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZXRjaENsaWVudCwgSVJlc3VsdCwgUGFnaW5nLCBTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgTWVzc2FnaW5nVG9waWNMaXN0IH0gZnJvbSAnLi4vbW9kZWwvdG9waWNMaXN0JztcbmltcG9ydCB7IE1lc3NhZ2luZ1RvcGljTGlzdEZpbHRlcnMgfSBmcm9tICcuLi9tb2RlbC90b3BpY0xpc3RGaWx0ZXJzJztcbmltcG9ydCB7IE1lc3NhZ2luZ1RvcGljIH0gZnJvbSAnLi4vbW9kZWwvdG9waWMnO1xuaW1wb3J0IHsgTWVzc2FnaW5nVG9waWNEZXRhaWxGaWx0ZXJzIH0gZnJvbSAnLi4vbW9kZWwvdG9waWNEZXRhaWxGaWx0ZXJzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdpbmdUb3BpY3NTZXJ2aWNlIGV4dGVuZHMgU2VydmljZTxNZXNzYWdpbmdUb3BpYz4ge1xuICBwcm90ZWN0ZWQgYmFzZVVybCA9ICcvc2VydmljZS9tZXNzYWdpbmctbWFuYWdlbWVudCc7XG4gIHByb3RlY3RlZCBsaXN0VXJsID0gJ3RlbmFudHMnO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogRmV0Y2hDbGllbnQpIHtcbiAgICBzdXBlcihjbGllbnQpO1xuICB9XG5cbiAgYXN5bmMgbGlzdChmaWx0ZXI6IE1lc3NhZ2luZ1RvcGljTGlzdEZpbHRlcnMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0geyBhY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyB9O1xuICAgIGNvbnN0IHsgdGVuYW50LCBuYW1lc3BhY2UsIC4uLnBhcmFtcyB9ID0gZmlsdGVyO1xuICAgIGNvbnN0IHVybCA9IGAvJHt0aGlzLmxpc3RVcmx9LyR7dGVuYW50fS9uYW1lc3BhY2VzLyR7bmFtZXNwYWNlfS90b3BpY3NgO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZmV0Y2godXJsLCB0aGlzLmNoYW5nZUZldGNoT3B0aW9ucyh7IGhlYWRlcnMsIHBhcmFtcyB9LCB1cmwpKTtcbiAgICBjb25zdCB0b3BpY0xpc3QgPSAoYXdhaXQgcmVzLmpzb24oKSkgYXMgTWVzc2FnaW5nVG9waWNMaXN0O1xuICAgIGNvbnN0IGRhdGEgPSB0b3BpY0xpc3QudG9waWNzO1xuICAgIGNvbnN0IHBhZ2luZyA9IHRoaXMuZ2V0UGFnaW5nKHRvcGljTGlzdCwgZmlsdGVyKTtcbiAgICByZXR1cm4geyByZXMsIGRhdGEsIHBhZ2luZyB9O1xuICB9XG5cbiAgYXN5bmMgZGV0YWlsKGZpbHRlcjogTWVzc2FnaW5nVG9waWNEZXRhaWxGaWx0ZXJzKTogUHJvbWlzZTxJUmVzdWx0PE1lc3NhZ2luZ1RvcGljPj4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7IGFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nIH07XG4gICAgY29uc3QgeyB0ZW5hbnQsIG5hbWVzcGFjZSwgdG9waWMsIHR5cGUgfSA9IGZpbHRlcjtcbiAgICBjb25zdCB1cmwgPSBgLyR7dGhpcy5saXN0VXJsfS8ke3RlbmFudH0vbmFtZXNwYWNlcy8ke25hbWVzcGFjZX0vdG9waWNzLyR7dG9waWN9L3R5cGVzLyR7dHlwZX1gO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZmV0Y2godXJsLCB0aGlzLmNoYW5nZUZldGNoT3B0aW9ucyh7IGhlYWRlcnMgfSwgdXJsKSk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgcmV0dXJuIHsgcmVzLCBkYXRhIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UGFnaW5nKFxuICAgIHRvcGljTGlzdDogTWVzc2FnaW5nVG9waWNMaXN0LFxuICAgIGZpbHRlcjogTWVzc2FnaW5nVG9waWNMaXN0RmlsdGVyc1xuICApOiBQYWdpbmc8TWVzc2FnaW5nVG9waWM+IHtcbiAgICBpZiAodG9waWNMaXN0LnBhZ2VTdGF0aXN0aWNzKSB7XG4gICAgICBjb25zdCB7IGN1cnJlbnRQYWdlLCB0b3RhbFBhZ2VzIH0gPSB0b3BpY0xpc3QucGFnZVN0YXRpc3RpY3M7XG4gICAgICBjb25zdCBzdGF0aXN0aWNzID0ge1xuICAgICAgICAuLi50b3BpY0xpc3QucGFnZVN0YXRpc3RpY3MsXG4gICAgICAgIG5leHRQYWdlOiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMgPyBjdXJyZW50UGFnZSArIDEgOiBudWxsLFxuICAgICAgICBwcmV2UGFnZTogY3VycmVudFBhZ2UgPiAxID8gY3VycmVudFBhZ2UgLSAxIDogbnVsbFxuICAgICAgfTtcbiAgICAgIHJldHVybiBuZXcgUGFnaW5nPE1lc3NhZ2luZ1RvcGljPih0aGlzLCBzdGF0aXN0aWNzLCBmaWx0ZXIpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLW1lc3NhZ2luZy1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvYzh5LW5neC1jb21wb25lbnRzLW1lc3NhZ2luZy1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export const basePath = 'monitoring/messaging-service';
|
|
2
|
+
export const MESSAGING_MANAGEMENT_FEATURE_KEY = 'messaging-management.api';
|
|
3
|
+
export const MESSAGING_MANAGEMENT_MICROSERVICE_NAME = 'messaging-management';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQztBQUN2RCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRywwQkFBMEIsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBiYXNlUGF0aCA9ICdtb25pdG9yaW5nL21lc3NhZ2luZy1zZXJ2aWNlJztcbmV4cG9ydCBjb25zdCBNRVNTQUdJTkdfTUFOQUdFTUVOVF9GRUFUVVJFX0tFWSA9ICdtZXNzYWdpbmctbWFuYWdlbWVudC5hcGknO1xuZXhwb3J0IGNvbnN0IE1FU1NBR0lOR19NQU5BR0VNRU5UX01JQ1JPU0VSVklDRV9OQU1FID0gJ21lc3NhZ2luZy1tYW5hZ2VtZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './messaging-management.module';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tZXNzYWdpbmctbWFuYWdlbWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdpbmctbWFuYWdlbWVudC5tb2R1bGUnO1xuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { C8yTranslateModule, gettext, IconDirective } from '@c8y/ngx-components';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { BacklogQuotaLimitPipe } from '../../../../utils/backlog-quota-limit.pipe';
|
|
5
|
+
import { UsageComponent } from '../../../shared/usage/usage.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@c8y/ngx-components";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
const DataType = {
|
|
10
|
+
publishers: 'publishers',
|
|
11
|
+
subscribers: 'subscribers',
|
|
12
|
+
topics: 'topics'
|
|
13
|
+
};
|
|
14
|
+
export class NamespaceItemCardComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.DATA_TYPE = DataType;
|
|
17
|
+
this.ITEM_DETAILS = {
|
|
18
|
+
publishers: { icon: 'output', title: gettext('Publishers') },
|
|
19
|
+
subscribers: { icon: 'input', title: gettext('Subscribers') },
|
|
20
|
+
topics: { icon: 'day-view', title: gettext('Topics') }
|
|
21
|
+
};
|
|
22
|
+
this.topicsLimitLabel = gettext('Limit: {{ backlogQuotaLimit }}');
|
|
23
|
+
/**
|
|
24
|
+
* The label of the service (already translated).
|
|
25
|
+
*/
|
|
26
|
+
this.serviceLabel = '';
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NamespaceItemCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NamespaceItemCardComponent, isStandalone: true, selector: "app-namespace-item-card", inputs: { serviceLabel: "serviceLabel", limit: "limit", dataType: "dataType", value: "value" }, host: { classAttribute: "card m-b-0 fit-w" }, ngImport: i0, template: "<div class=\"card-block text-default visible-xs text-center p-b-0\">\n <span class=\"text-12 text-uppercase text-muted\">\n {{ serviceLabel | translate }}\n </span>\n</div>\n<div\n class=\"card-block text-default p-t-sm-48\"\n [ngClass]=\"{\n 'p-b-sm-48': limit === 0\n }\"\n>\n <div class=\"d-flex fit-w a-i-center gap-8 j-c-center\">\n <i\n class=\"icon-32 c8y-icon-duocolor\"\n [c8yIcon]=\"ITEM_DETAILS[dataType].icon\"\n ></i>\n <span class=\"h1\">\n {{ value | number }}\n </span>\n <span\n class=\"a-s-baseline text-14 text-medium text-truncate\"\n title=\"{{ ITEM_DETAILS[dataType].title | translate }}\"\n >\n {{ ITEM_DETAILS[dataType].title | translate }}\n </span>\n </div>\n</div>\n<div\n class=\"card-footer d-flex gap-16 j-c-center a-i-center\"\n *ngIf=\"dataType === DATA_TYPE.topics && limit !== 0\"\n>\n <span\n class=\"tag tag--default no-pointer\"\n data-cy=\"card-limit\"\n >\n {{ topicsLimitLabel | translate: { backlogQuotaLimit: limit | backlogQuotaLimit } }}\n </span>\n <app-usage\n [count]=\"value\"\n [limit]=\"limit\"\n ></app-usage>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: C8yTranslateModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: BacklogQuotaLimitPipe, name: "backlogQuotaLimit" }, { kind: "component", type: UsageComponent, selector: "app-usage", inputs: ["count", "limit", "percentage"] }] }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NamespaceItemCardComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'app-namespace-item-card', standalone: true, imports: [IconDirective, C8yTranslateModule, CommonModule, BacklogQuotaLimitPipe, UsageComponent], host: { class: 'card m-b-0 fit-w' }, template: "<div class=\"card-block text-default visible-xs text-center p-b-0\">\n <span class=\"text-12 text-uppercase text-muted\">\n {{ serviceLabel | translate }}\n </span>\n</div>\n<div\n class=\"card-block text-default p-t-sm-48\"\n [ngClass]=\"{\n 'p-b-sm-48': limit === 0\n }\"\n>\n <div class=\"d-flex fit-w a-i-center gap-8 j-c-center\">\n <i\n class=\"icon-32 c8y-icon-duocolor\"\n [c8yIcon]=\"ITEM_DETAILS[dataType].icon\"\n ></i>\n <span class=\"h1\">\n {{ value | number }}\n </span>\n <span\n class=\"a-s-baseline text-14 text-medium text-truncate\"\n title=\"{{ ITEM_DETAILS[dataType].title | translate }}\"\n >\n {{ ITEM_DETAILS[dataType].title | translate }}\n </span>\n </div>\n</div>\n<div\n class=\"card-footer d-flex gap-16 j-c-center a-i-center\"\n *ngIf=\"dataType === DATA_TYPE.topics && limit !== 0\"\n>\n <span\n class=\"tag tag--default no-pointer\"\n data-cy=\"card-limit\"\n >\n {{ topicsLimitLabel | translate: { backlogQuotaLimit: limit | backlogQuotaLimit } }}\n </span>\n <app-usage\n [count]=\"value\"\n [limit]=\"limit\"\n ></app-usage>\n</div>\n" }]
|
|
34
|
+
}], propDecorators: { serviceLabel: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], limit: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], dataType: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], value: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLWl0ZW0tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tZXNzYWdpbmctbWFuYWdlbWVudC9tZXNzYWdpbmcvbmFtZXNwYWNlLWxpc3QvbmFtZXNwYWNlLWl0ZW0vbmFtZXNwYWNlLWl0ZW0tY2FyZC9uYW1lc3BhY2UtaXRlbS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21lc3NhZ2luZy1tYW5hZ2VtZW50L21lc3NhZ2luZy9uYW1lc3BhY2UtbGlzdC9uYW1lc3BhY2UtaXRlbS9uYW1lc3BhY2UtaXRlbS1jYXJkL25hbWVzcGFjZS1pdGVtLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7O0FBRXZFLE1BQU0sUUFBUSxHQUFHO0lBQ2YsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsTUFBTSxFQUFFLFFBQVE7Q0FDUixDQUFDO0FBU1gsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQVFXLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsaUJBQVksR0FBbUU7WUFDdEYsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzVELFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUM3RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FDOUMsQ0FBQztRQUNYLHFCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTdEOztXQUVHO1FBQ00saUJBQVksR0FBRyxFQUFFLENBQUM7S0FJNUI7K0dBaEJZLDBCQUEwQjttR0FBMUIsMEJBQTBCLGlPQ25CdkMsc29DQTBDQSw0Q0QzQlksYUFBYSwwRUFBRSxrQkFBa0IsOEZBQUUsWUFBWSxvUkFBRSxxQkFBcUIsMERBQUUsY0FBYzs7NEZBSXJGLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxjQUFjLENBQUMsUUFFM0YsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7OEJBYzFCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQzh5VHJhbnNsYXRlTW9kdWxlLCBnZXR0ZXh0LCBJY29uRGlyZWN0aXZlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmFja2xvZ1F1b3RhTGltaXRQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvYmFja2xvZy1xdW90YS1saW1pdC5waXBlJztcbmltcG9ydCB7IFVzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3VzYWdlL3VzYWdlLmNvbXBvbmVudCc7XG5cbmNvbnN0IERhdGFUeXBlID0ge1xuICBwdWJsaXNoZXJzOiAncHVibGlzaGVycycsXG4gIHN1YnNjcmliZXJzOiAnc3Vic2NyaWJlcnMnLFxuICB0b3BpY3M6ICd0b3BpY3MnXG59IGFzIGNvbnN0O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbmFtZXNwYWNlLWl0ZW0tY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uRGlyZWN0aXZlLCBDOHlUcmFuc2xhdGVNb2R1bGUsIENvbW1vbk1vZHVsZSwgQmFja2xvZ1F1b3RhTGltaXRQaXBlLCBVc2FnZUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9uYW1lc3BhY2UtaXRlbS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2NhcmQgbS1iLTAgZml0LXcnIH1cbn0pXG5leHBvcnQgY2xhc3MgTmFtZXNwYWNlSXRlbUNhcmRDb21wb25lbnQge1xuICByZWFkb25seSBEQVRBX1RZUEUgPSBEYXRhVHlwZTtcbiAgcmVhZG9ubHkgSVRFTV9ERVRBSUxTOiBSZWNvcmQ8a2V5b2YgdHlwZW9mIERhdGFUeXBlLCB7IGljb246IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9PiA9IHtcbiAgICBwdWJsaXNoZXJzOiB7IGljb246ICdvdXRwdXQnLCB0aXRsZTogZ2V0dGV4dCgnUHVibGlzaGVycycpIH0sXG4gICAgc3Vic2NyaWJlcnM6IHsgaWNvbjogJ2lucHV0JywgdGl0bGU6IGdldHRleHQoJ1N1YnNjcmliZXJzJykgfSxcbiAgICB0b3BpY3M6IHsgaWNvbjogJ2RheS12aWV3JywgdGl0bGU6IGdldHRleHQoJ1RvcGljcycpIH1cbiAgfSBhcyBjb25zdDtcbiAgdG9waWNzTGltaXRMYWJlbCA9IGdldHRleHQoJ0xpbWl0OiB7eyBiYWNrbG9nUXVvdGFMaW1pdCB9fScpO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIHNlcnZpY2UgKGFscmVhZHkgdHJhbnNsYXRlZCkuXG4gICAqL1xuICBASW5wdXQoKSBzZXJ2aWNlTGFiZWwgPSAnJztcbiAgQElucHV0KCkgbGltaXQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGRhdGFUeXBlOiBrZXlvZiB0eXBlb2YgRGF0YVR5cGU7XG4gIEBJbnB1dCgpIHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayB0ZXh0LWRlZmF1bHQgdmlzaWJsZS14cyB0ZXh0LWNlbnRlciBwLWItMFwiPlxuICA8c3BhbiBjbGFzcz1cInRleHQtMTIgdGV4dC11cHBlcmNhc2UgdGV4dC1tdXRlZFwiPlxuICAgIHt7IHNlcnZpY2VMYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICA8L3NwYW4+XG48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJjYXJkLWJsb2NrIHRleHQtZGVmYXVsdCBwLXQtc20tNDhcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3AtYi1zbS00OCc6IGxpbWl0ID09PSAwXG4gIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZpdC13IGEtaS1jZW50ZXIgZ2FwLTggai1jLWNlbnRlclwiPlxuICAgIDxpXG4gICAgICBjbGFzcz1cImljb24tMzIgYzh5LWljb24tZHVvY29sb3JcIlxuICAgICAgW2M4eUljb25dPVwiSVRFTV9ERVRBSUxTW2RhdGFUeXBlXS5pY29uXCJcbiAgICA+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwiaDFcIj5cbiAgICAgIHt7IHZhbHVlIHwgbnVtYmVyIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImEtcy1iYXNlbGluZSB0ZXh0LTE0IHRleHQtbWVkaXVtIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgdGl0bGU9XCJ7eyBJVEVNX0RFVEFJTFNbZGF0YVR5cGVdLnRpdGxlIHwgdHJhbnNsYXRlIH19XCJcbiAgICA+XG4gICAgICB7eyBJVEVNX0RFVEFJTFNbZGF0YVR5cGVdLnRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cImNhcmQtZm9vdGVyIGQtZmxleCBnYXAtMTYgai1jLWNlbnRlciBhLWktY2VudGVyXCJcbiAgKm5nSWY9XCJkYXRhVHlwZSA9PT0gREFUQV9UWVBFLnRvcGljcyAmJiBsaW1pdCAhPT0gMFwiXG4+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJ0YWcgdGFnLS1kZWZhdWx0IG5vLXBvaW50ZXJcIlxuICAgIGRhdGEtY3k9XCJjYXJkLWxpbWl0XCJcbiAgPlxuICAgIHt7IHRvcGljc0xpbWl0TGFiZWwgfCB0cmFuc2xhdGU6IHsgYmFja2xvZ1F1b3RhTGltaXQ6IGxpbWl0IHwgYmFja2xvZ1F1b3RhTGltaXQgfSB9fVxuICA8L3NwYW4+XG4gIDxhcHAtdXNhZ2VcbiAgICBbY291bnRdPVwidmFsdWVcIlxuICAgIFtsaW1pdF09XCJsaW1pdFwiXG4gID48L2FwcC11c2FnZT5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, inject, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { C8yTranslatePipe, IconDirective } from '@c8y/ngx-components';
|
|
4
|
+
import { NamespaceItemCardComponent } from './namespace-item-card/namespace-item-card.component';
|
|
5
|
+
import { NAMESPACE_PROPS } from '../../../utils/namespace-props';
|
|
6
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class NamespaceItemComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.translateService = inject(TranslateService);
|
|
11
|
+
this.namespaceName = '';
|
|
12
|
+
this.namespaceLabel = '';
|
|
13
|
+
this.icon = '';
|
|
14
|
+
this.namespace = {};
|
|
15
|
+
this.policies = {};
|
|
16
|
+
}
|
|
17
|
+
set _namespaceName(name) {
|
|
18
|
+
this.namespaceName = name;
|
|
19
|
+
this.icon = NAMESPACE_PROPS[name]?.icon;
|
|
20
|
+
this.namespaceLabel = this.translateService.instant(NAMESPACE_PROPS[name]?.label) || name;
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NamespaceItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NamespaceItemComponent, isStandalone: true, selector: "app-namespace-item", inputs: { _namespaceName: ["namespaceName", "_namespaceName"], namespace: "namespace", policies: "policies" }, ngImport: i0, template: "<div class=\"d-flex-sm d-col-xs p-t-24 p-l-16 p-r-16 m-0 bg-level-1\">\n <div\n class=\"col-sm-3 m-b-24 col-xs-12 d-flex gap-16 text-default a-i-center j-c-center a-s-stretch\"\n >\n <div class=\"text-center d-col\">\n <i\n class=\"m-b-8 icon-40 c8y-icon-duocolor\"\n [c8yIcon]=\"icon\"\n ></i>\n <span class=\"tag tag--info\">{{ 'Service' | translate }}</span>\n </div>\n <span class=\"h4\">{{ namespaceLabel }}</span>\n </div>\n <div class=\"col-sm-3 m-b-24 col-xs-12 a-i-stretch d-flex\">\n <app-namespace-item-card\n [serviceLabel]=\"namespaceLabel\"\n [dataType]=\"'topics'\"\n [limit]=\"namespace?.topics?.limit\"\n [value]=\"namespace?.topics?.count\"\n ></app-namespace-item-card>\n </div>\n <div class=\"col-sm-3 m-b-24 col-xs-12 a-i-stretch d-flex\">\n <app-namespace-item-card\n [serviceLabel]=\"namespaceLabel\"\n [dataType]=\"'publishers'\"\n [value]=\"namespace?.publishers?.count\"\n ></app-namespace-item-card>\n </div>\n <div class=\"col-sm-3 m-b-24 col-xs-12 a-i-stretch d-flex\">\n <app-namespace-item-card\n [serviceLabel]=\"namespaceLabel\"\n [dataType]=\"'subscribers'\"\n [value]=\"namespace?.subscribers?.count\"\n ></app-namespace-item-card>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: NamespaceItemCardComponent, selector: "app-namespace-item-card", inputs: ["serviceLabel", "limit", "dataType", "value"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NamespaceItemComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'app-namespace-item', standalone: true, imports: [CommonModule, IconDirective, NamespaceItemCardComponent, C8yTranslatePipe], template: "<div class=\"d-flex-sm d-col-xs p-t-24 p-l-16 p-r-16 m-0 bg-level-1\">\n <div\n class=\"col-sm-3 m-b-24 col-xs-12 d-flex gap-16 text-default a-i-center j-c-center a-s-stretch\"\n >\n <div class=\"text-center d-col\">\n <i\n class=\"m-b-8 icon-40 c8y-icon-duocolor\"\n [c8yIcon]=\"icon\"\n ></i>\n <span class=\"tag tag--info\">{{ 'Service' | translate }}</span>\n </div>\n <span class=\"h4\">{{ namespaceLabel }}</span>\n </div>\n <div class=\"col-sm-3 m-b-24 col-xs-12 a-i-stretch d-flex\">\n <app-namespace-item-card\n [serviceLabel]=\"namespaceLabel\"\n [dataType]=\"'topics'\"\n [limit]=\"namespace?.topics?.limit\"\n [value]=\"namespace?.topics?.count\"\n ></app-namespace-item-card>\n </div>\n <div class=\"col-sm-3 m-b-24 col-xs-12 a-i-stretch d-flex\">\n <app-namespace-item-card\n [serviceLabel]=\"namespaceLabel\"\n [dataType]=\"'publishers'\"\n [value]=\"namespace?.publishers?.count\"\n ></app-namespace-item-card>\n </div>\n <div class=\"col-sm-3 m-b-24 col-xs-12 a-i-stretch d-flex\">\n <app-namespace-item-card\n [serviceLabel]=\"namespaceLabel\"\n [dataType]=\"'subscribers'\"\n [value]=\"namespace?.subscribers?.count\"\n ></app-namespace-item-card>\n </div>\n</div>\n" }]
|
|
28
|
+
}], propDecorators: { _namespaceName: [{
|
|
29
|
+
type: Input,
|
|
30
|
+
args: ['namespaceName']
|
|
31
|
+
}], namespace: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], policies: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvbWVzc2FnaW5nL25hbWVzcGFjZS1saXN0L25hbWVzcGFjZS1pdGVtL25hbWVzcGFjZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL21lc3NhZ2luZy1tYW5hZ2VtZW50L21lc3NhZ2luZy9uYW1lc3BhY2UtbGlzdC9uYW1lc3BhY2UtaXRlbS9uYW1lc3BhY2UtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBUXZELE1BQU0sT0FBTyxzQkFBc0I7SUFObkM7UUFPVSxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVFwRCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRUQsY0FBUyxHQUF1QixFQUFFLENBQUM7UUFDbkMsYUFBUSxHQUErQixFQUFFLENBQUM7S0FDcEQ7SUFaQyxJQUNJLGNBQWMsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztJQUM1RixDQUFDOytHQVJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDZMQ2ZuQyx5eENBb0NBLDJDRHhCWSxZQUFZLCtCQUFFLGFBQWEsMkVBQUUsMEJBQTBCLHVIQUFFLGdCQUFnQjs7NEZBR3hFLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsQ0FBQzs4QkFPaEYsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxlQUFlO2dCQVViLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEM4eVRyYW5zbGF0ZVBpcGUsIEljb25EaXJlY3RpdmUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE5hbWVzcGFjZUl0ZW1DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9uYW1lc3BhY2UtaXRlbS1jYXJkL25hbWVzcGFjZS1pdGVtLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IE5BTUVTUEFDRV9QUk9QUyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL25hbWVzcGFjZS1wcm9wcyc7XG5pbXBvcnQgeyBNZXNzYWdpbmdOYW1lc3BhY2UgfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWwvbmFtZXNwYWNlJztcbmltcG9ydCB7IE1lc3NhZ2luZ05hbWVzcGFjZVBvbGljaWVzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVsL25hbWVzcGFjZVBvbGljaWVzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hbWVzcGFjZS1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkRpcmVjdGl2ZSwgTmFtZXNwYWNlSXRlbUNhcmRDb21wb25lbnQsIEM4eVRyYW5zbGF0ZVBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmFtZXNwYWNlLWl0ZW0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVzcGFjZUl0ZW1Db21wb25lbnQge1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCduYW1lc3BhY2VOYW1lJylcbiAgc2V0IF9uYW1lc3BhY2VOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMubmFtZXNwYWNlTmFtZSA9IG5hbWU7XG4gICAgdGhpcy5pY29uID0gTkFNRVNQQUNFX1BST1BTW25hbWVdPy5pY29uO1xuICAgIHRoaXMubmFtZXNwYWNlTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChOQU1FU1BBQ0VfUFJPUFNbbmFtZV0/LmxhYmVsKSB8fCBuYW1lO1xuICB9XG4gIG5hbWVzcGFjZU5hbWUgPSAnJztcbiAgbmFtZXNwYWNlTGFiZWwgPSAnJztcbiAgaWNvbiA9ICcnO1xuXG4gIEBJbnB1dCgpIG5hbWVzcGFjZTogTWVzc2FnaW5nTmFtZXNwYWNlID0ge307XG4gIEBJbnB1dCgpIHBvbGljaWVzOiBNZXNzYWdpbmdOYW1lc3BhY2VQb2xpY2llcyA9IHt9O1xufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleC1zbSBkLWNvbC14cyBwLXQtMjQgcC1sLTE2IHAtci0xNiBtLTAgYmctbGV2ZWwtMVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb2wtc20tMyBtLWItMjQgY29sLXhzLTEyIGQtZmxleCBnYXAtMTYgdGV4dC1kZWZhdWx0IGEtaS1jZW50ZXIgai1jLWNlbnRlciBhLXMtc3RyZXRjaFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgZC1jb2xcIj5cbiAgICAgIDxpXG4gICAgICAgIGNsYXNzPVwibS1iLTggaWNvbi00MCBjOHktaWNvbi1kdW9jb2xvclwiXG4gICAgICAgIFtjOHlJY29uXT1cImljb25cIlxuICAgICAgPjwvaT5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGFnIHRhZy0taW5mb1wiPnt7ICdTZXJ2aWNlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImg0XCI+e3sgbmFtZXNwYWNlTGFiZWwgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTMgbS1iLTI0IGNvbC14cy0xMiBhLWktc3RyZXRjaCBkLWZsZXhcIj5cbiAgICA8YXBwLW5hbWVzcGFjZS1pdGVtLWNhcmRcbiAgICAgIFtzZXJ2aWNlTGFiZWxdPVwibmFtZXNwYWNlTGFiZWxcIlxuICAgICAgW2RhdGFUeXBlXT1cIid0b3BpY3MnXCJcbiAgICAgIFtsaW1pdF09XCJuYW1lc3BhY2U/LnRvcGljcz8ubGltaXRcIlxuICAgICAgW3ZhbHVlXT1cIm5hbWVzcGFjZT8udG9waWNzPy5jb3VudFwiXG4gICAgPjwvYXBwLW5hbWVzcGFjZS1pdGVtLWNhcmQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTMgbS1iLTI0IGNvbC14cy0xMiBhLWktc3RyZXRjaCBkLWZsZXhcIj5cbiAgICA8YXBwLW5hbWVzcGFjZS1pdGVtLWNhcmRcbiAgICAgIFtzZXJ2aWNlTGFiZWxdPVwibmFtZXNwYWNlTGFiZWxcIlxuICAgICAgW2RhdGFUeXBlXT1cIidwdWJsaXNoZXJzJ1wiXG4gICAgICBbdmFsdWVdPVwibmFtZXNwYWNlPy5wdWJsaXNoZXJzPy5jb3VudFwiXG4gICAgPjwvYXBwLW5hbWVzcGFjZS1pdGVtLWNhcmQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTMgbS1iLTI0IGNvbC14cy0xMiBhLWktc3RyZXRjaCBkLWZsZXhcIj5cbiAgICA8YXBwLW5hbWVzcGFjZS1pdGVtLWNhcmRcbiAgICAgIFtzZXJ2aWNlTGFiZWxdPVwibmFtZXNwYWNlTGFiZWxcIlxuICAgICAgW2RhdGFUeXBlXT1cIidzdWJzY3JpYmVycydcIlxuICAgICAgW3ZhbHVlXT1cIm5hbWVzcGFjZT8uc3Vic2NyaWJlcnM/LmNvdW50XCJcbiAgICA+PC9hcHAtbmFtZXNwYWNlLWl0ZW0tY2FyZD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { ActionBarItemComponent, AlertService, AppStateService, BreadcrumbModule, C8yTranslateModule, HeaderModule, HelpModule, IconDirective, LoadingComponent } from '@c8y/ngx-components';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { RouterLink } from '@angular/router';
|
|
5
|
+
import { NamespaceItemComponent } from './namespace-item/namespace-item.component';
|
|
6
|
+
import { MessagingNamespacesService } from '../../api/services/messaging-namespaces.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@c8y/ngx-components";
|
|
10
|
+
export class NamespaceListComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.alertService = inject(AlertService);
|
|
13
|
+
this.appState = inject(AppStateService);
|
|
14
|
+
this.namespacesService = inject(MessagingNamespacesService);
|
|
15
|
+
this.loading = true;
|
|
16
|
+
}
|
|
17
|
+
async ngOnInit() {
|
|
18
|
+
await this.reload();
|
|
19
|
+
}
|
|
20
|
+
async reload() {
|
|
21
|
+
this.loading = true;
|
|
22
|
+
try {
|
|
23
|
+
const currentTenantId = this.appState.currentTenant.value.name;
|
|
24
|
+
this.namespacesDetails = await this.namespacesService.getNamespacesDetails(currentTenantId);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
this.alertService.addServerFailure(e);
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
this.loading = false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NamespaceListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NamespaceListComponent, isStandalone: true, selector: "app-namespace-list", ngImport: i0, template: "<c8y-title>{{ 'Messaging service' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'monitoring'\"\n [label]=\"'Monitoring' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Messaging service' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <li>\n <a\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': loading }\"\n ></i>\n {{ 'Reload' | translate }}\n </a>\n </li>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/standard-tenant/monitoring/#messaging-service\"></c8y-help>\n\n<div\n class=\"interact-grid\"\n *ngIf=\"!loading; else loadingTemplate\"\n>\n <a\n class=\"card\"\n *ngFor=\"let namespace of namespacesDetails\"\n [routerLink]=\"['namespace', namespace.id]\"\n >\n <app-namespace-item\n [namespaceName]=\"namespace.id\"\n [namespace]=\"namespace.namespace\"\n ></app-namespace-item>\n </a>\n</div>\n\n<ng-template #loadingTemplate>\n <c8y-loading></c8y-loading>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: HeaderModule }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: HelpModule }, { kind: "component", type: i2.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "ngmodule", type: C8yTranslateModule }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "component", type: NamespaceItemComponent, selector: "app-namespace-item", inputs: ["namespaceName", "namespace", "policies"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: BreadcrumbModule }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }] }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NamespaceListComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'app-namespace-list', imports: [
|
|
39
|
+
CommonModule,
|
|
40
|
+
HeaderModule,
|
|
41
|
+
HelpModule,
|
|
42
|
+
C8yTranslateModule,
|
|
43
|
+
NamespaceItemComponent,
|
|
44
|
+
RouterLink,
|
|
45
|
+
BreadcrumbModule,
|
|
46
|
+
ActionBarItemComponent,
|
|
47
|
+
IconDirective,
|
|
48
|
+
LoadingComponent
|
|
49
|
+
], standalone: true, template: "<c8y-title>{{ 'Messaging service' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'monitoring'\"\n [label]=\"'Monitoring' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"'Messaging service' | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <li>\n <a\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': loading }\"\n ></i>\n {{ 'Reload' | translate }}\n </a>\n </li>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/standard-tenant/monitoring/#messaging-service\"></c8y-help>\n\n<div\n class=\"interact-grid\"\n *ngIf=\"!loading; else loadingTemplate\"\n>\n <a\n class=\"card\"\n *ngFor=\"let namespace of namespacesDetails\"\n [routerLink]=\"['namespace', namespace.id]\"\n >\n <app-namespace-item\n [namespaceName]=\"namespace.id\"\n [namespace]=\"namespace.namespace\"\n ></app-namespace-item>\n </a>\n</div>\n\n<ng-template #loadingTemplate>\n <c8y-loading></c8y-loading>\n</ng-template>\n" }]
|
|
50
|
+
}] });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvbWVzc2FnaW5nL25hbWVzcGFjZS1saXN0L25hbWVzcGFjZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL21lc3NhZ2luZy1tYW5hZ2VtZW50L21lc3NhZ2luZy9uYW1lc3BhY2UtbGlzdC9uYW1lc3BhY2UtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osVUFBVSxFQUNWLGFBQWEsRUFDYixnQkFBZ0IsRUFDakIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7O0FBb0I3RixNQUFNLE9BQU8sc0JBQXNCO0lBakJuQztRQWtCRSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLHNCQUFpQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBR3ZELFlBQU8sR0FBRyxJQUFJLENBQUM7S0FpQmhCO0lBZkMsS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQy9ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7K0dBdEJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhFQ25DbkMsK3FDQStDQSwyQ0R6QkksWUFBWSw2VkFDWixZQUFZLGtJQUNaLFVBQVUsdUpBQ1Ysa0JBQWtCLCtGQUNsQixzQkFBc0IsbUhBQ3RCLFVBQVUsbU9BQ1YsZ0JBQWdCLHNRQUNoQixzQkFBc0IsMEpBQ3RCLGFBQWEsMkVBQ2IsZ0JBQWdCOzs0RkFJUCxzQkFBc0I7a0JBakJsQyxTQUFTOytCQUNFLG9CQUFvQixXQUVyQjt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCLGNBQ1csSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGlvbkJhckl0ZW1Db21wb25lbnQsXG4gIEFsZXJ0U2VydmljZSxcbiAgQXBwU3RhdGVTZXJ2aWNlLFxuICBCcmVhZGNydW1iTW9kdWxlLFxuICBDOHlUcmFuc2xhdGVNb2R1bGUsXG4gIEhlYWRlck1vZHVsZSxcbiAgSGVscE1vZHVsZSxcbiAgSWNvbkRpcmVjdGl2ZSxcbiAgTG9hZGluZ0NvbXBvbmVudFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5hbWVzcGFjZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL25hbWVzcGFjZS1pdGVtL25hbWVzcGFjZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdpbmdOYW1lc3BhY2VzU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9tZXNzYWdpbmctbmFtZXNwYWNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE1lc3NhZ2luZ05hbWVzcGFjZURldGFpbHMgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWwvbmFtZXNwYWNlRGV0YWlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1uYW1lc3BhY2UtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYW1lc3BhY2UtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSGVhZGVyTW9kdWxlLFxuICAgIEhlbHBNb2R1bGUsXG4gICAgQzh5VHJhbnNsYXRlTW9kdWxlLFxuICAgIE5hbWVzcGFjZUl0ZW1Db21wb25lbnQsXG4gICAgUm91dGVyTGluayxcbiAgICBCcmVhZGNydW1iTW9kdWxlLFxuICAgIEFjdGlvbkJhckl0ZW1Db21wb25lbnQsXG4gICAgSWNvbkRpcmVjdGl2ZSxcbiAgICBMb2FkaW5nQ29tcG9uZW50XG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmFtZXNwYWNlTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGFsZXJ0U2VydmljZSA9IGluamVjdChBbGVydFNlcnZpY2UpO1xuICBhcHBTdGF0ZSA9IGluamVjdChBcHBTdGF0ZVNlcnZpY2UpO1xuICBuYW1lc3BhY2VzU2VydmljZSA9IGluamVjdChNZXNzYWdpbmdOYW1lc3BhY2VzU2VydmljZSk7XG5cbiAgbmFtZXNwYWNlc0RldGFpbHM6IE1lc3NhZ2luZ05hbWVzcGFjZURldGFpbHNbXTtcbiAgbG9hZGluZyA9IHRydWU7XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgfVxuXG4gIGFzeW5jIHJlbG9hZCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VGVuYW50SWQgPSB0aGlzLmFwcFN0YXRlLmN1cnJlbnRUZW5hbnQudmFsdWUubmFtZTtcbiAgICAgIHRoaXMubmFtZXNwYWNlc0RldGFpbHMgPSBhd2FpdCB0aGlzLm5hbWVzcGFjZXNTZXJ2aWNlLmdldE5hbWVzcGFjZXNEZXRhaWxzKGN1cnJlbnRUZW5hbnRJZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7ICdNZXNzYWdpbmcgc2VydmljZScgfCB0cmFuc2xhdGUgfX08L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidtb25pdG9yaW5nJ1wiXG4gICAgW2xhYmVsXT1cIidNb25pdG9yaW5nJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtIFtsYWJlbF09XCInTWVzc2FnaW5nIHNlcnZpY2UnIHwgdHJhbnNsYXRlXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxsaT5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgdGl0bGU9XCJ7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAoY2xpY2spPVwicmVsb2FkKClcIlxuICAgID5cbiAgICAgIDxpXG4gICAgICAgIGM4eUljb249XCJyZWZyZXNoXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogbG9hZGluZyB9XCJcbiAgICAgID48L2k+XG4gICAgICB7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYT5cbiAgPC9saT5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1oZWxwIHNyYz1cIi9kb2NzL3N0YW5kYXJkLXRlbmFudC9tb25pdG9yaW5nLyNtZXNzYWdpbmctc2VydmljZVwiPjwvYzh5LWhlbHA+XG5cbjxkaXZcbiAgY2xhc3M9XCJpbnRlcmFjdC1ncmlkXCJcbiAgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBsb2FkaW5nVGVtcGxhdGVcIlxuPlxuICA8YVxuICAgIGNsYXNzPVwiY2FyZFwiXG4gICAgKm5nRm9yPVwibGV0IG5hbWVzcGFjZSBvZiBuYW1lc3BhY2VzRGV0YWlsc1wiXG4gICAgW3JvdXRlckxpbmtdPVwiWyduYW1lc3BhY2UnLCBuYW1lc3BhY2UuaWRdXCJcbiAgPlxuICAgIDxhcHAtbmFtZXNwYWNlLWl0ZW1cbiAgICAgIFtuYW1lc3BhY2VOYW1lXT1cIm5hbWVzcGFjZS5pZFwiXG4gICAgICBbbmFtZXNwYWNlXT1cIm5hbWVzcGFjZS5uYW1lc3BhY2VcIlxuICAgID48L2FwcC1uYW1lc3BhY2UtaXRlbT5cbiAgPC9hPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RlbXBsYXRlPlxuICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Component, computed, input } from '@angular/core';
|
|
2
|
+
import { C8yTranslatePipe, gettext, IconDirective } from '@c8y/ngx-components';
|
|
3
|
+
import { NgClass, NgIf, PercentPipe } from '@angular/common';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Usage component displays usage information in a form of e.g. "51% used".
|
|
7
|
+
* It can be used in two ways:
|
|
8
|
+
* 1. By providing `count` and `limit` inputs, it will calculate the usage percentage.
|
|
9
|
+
* 2. By providing `percentage` input, it will use the provided percentage value.
|
|
10
|
+
* Note: `percentage` input takes precedence over `count` and `limit` inputs.
|
|
11
|
+
*/
|
|
12
|
+
export class UsageComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.count = input(null);
|
|
15
|
+
this.limit = input(null);
|
|
16
|
+
/**
|
|
17
|
+
* Percentage of usage. Value range is from 0 to 100 (or more).
|
|
18
|
+
* For example, if 10% is used, this value should be provided as 10 (not 0.1).
|
|
19
|
+
*/
|
|
20
|
+
this.percentage = input(null);
|
|
21
|
+
/**
|
|
22
|
+
* Usage as a fraction (e.g. if 50% is used, usage value will be 0.5)
|
|
23
|
+
*/
|
|
24
|
+
this.usage = computed(() => this.percentage() != null ? this.percentage() / 100 : this.getUsage(this.count(), this.limit()));
|
|
25
|
+
this.status = computed(() => this.getStatus(this.usage()));
|
|
26
|
+
this.usageToDisplay = gettext('{{ percentageOfQuota }} used');
|
|
27
|
+
this.statusMap = {
|
|
28
|
+
danger: ['tag--danger'],
|
|
29
|
+
warning: ['tag--warning'],
|
|
30
|
+
success: ['tag--success']
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get usage as fraction of count and limit.
|
|
35
|
+
* E.g. if count is 5 and limit is 10, returned usage will be 0.5
|
|
36
|
+
* @param count Usage count
|
|
37
|
+
* @param limit Usage limit
|
|
38
|
+
* @returns Count divided by limit or null if count or limit is null or limit is -1 (indicates no limit)
|
|
39
|
+
*/
|
|
40
|
+
getUsage(count, limit) {
|
|
41
|
+
if (count == null || limit == null || limit === -1) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
return count / limit;
|
|
45
|
+
}
|
|
46
|
+
getStatus(usage) {
|
|
47
|
+
if (usage == null) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const percentage = usage * 100;
|
|
51
|
+
if (percentage >= 80) {
|
|
52
|
+
return 'danger';
|
|
53
|
+
}
|
|
54
|
+
else if (percentage >= 50) {
|
|
55
|
+
return 'warning';
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return 'success';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UsageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: UsageComponent, isStandalone: true, selector: "app-usage", inputs: { count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, limit: { classPropertyName: "limit", publicName: "limit", isSignal: true, isRequired: false, transformFunction: null }, percentage: { classPropertyName: "percentage", publicName: "percentage", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div\n class=\"tag no-pointer\"\n [ngClass]=\"statusMap[status()]\"\n *ngIf=\"usage() !== null\"\n>\n <i\n class=\"text-danger m-r-4 text-12\"\n c8yIcon=\"exclamation-circle\"\n *ngIf=\"status() === 'danger'\"\n ></i>\n <span>\n {{ usageToDisplay | translate: { percentageOfQuota: (usage() | percent: '1.0-2') } }}\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: PercentPipe, name: "percent" }] }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UsageComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'app-usage', standalone: true, imports: [IconDirective, NgIf, NgClass, IconDirective, C8yTranslatePipe, PercentPipe], host: { class: 'd-contents' }, template: "<div\n class=\"tag no-pointer\"\n [ngClass]=\"statusMap[status()]\"\n *ngIf=\"usage() !== null\"\n>\n <i\n class=\"text-danger m-r-4 text-12\"\n c8yIcon=\"exclamation-circle\"\n *ngIf=\"status() === 'danger'\"\n ></i>\n <span>\n {{ usageToDisplay | translate: { percentageOfQuota: (usage() | percent: '1.0-2') } }}\n </span>\n</div>\n" }]
|
|
67
|
+
}] });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbWVzc2FnaW5nLW1hbmFnZW1lbnQvbWVzc2FnaW5nL3NoYXJlZC91c2FnZS91c2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9tZXNzYWdpbmctbWFuYWdlbWVudC9tZXNzYWdpbmcvc2hhcmVkL3VzYWdlL3VzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUU3RDs7Ozs7O0dBTUc7QUFRSCxNQUFNLE9BQU8sY0FBYztJQVAzQjtRQVFFLFVBQUssR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ25DLFVBQUssR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ25DOzs7V0FHRztRQUNILGVBQVUsR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBRXhDOztXQUVHO1FBQ0gsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ2hHLENBQUM7UUFDRixXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RCxtQkFBYyxHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXpELGNBQVMsR0FBRztZQUNWLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUN2QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDekIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQzFCLENBQUM7S0E4Qkg7SUE1QkM7Ozs7OztPQU1HO0lBQ0ssUUFBUSxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQzNDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25ELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQW9CO1FBQ3BDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7UUFFL0IsSUFBSSxVQUFVLElBQUksRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQzthQUFNLElBQUksVUFBVSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzVCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7K0dBbkRVLGNBQWM7bUdBQWQsY0FBYyxnZkNsQjNCLG1XQWNBLDRDREFZLGFBQWEsMkVBQUUsSUFBSSw2RkFBRSxPQUFPLCtFQUFpQixnQkFBZ0IsNkNBQUUsV0FBVzs7NEZBSXpFLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsUUFFL0UsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEM4eVRyYW5zbGF0ZVBpcGUsIGdldHRleHQsIEljb25EaXJlY3RpdmUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIFBlcmNlbnRQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBVc2FnZSBjb21wb25lbnQgZGlzcGxheXMgdXNhZ2UgaW5mb3JtYXRpb24gaW4gYSBmb3JtIG9mIGUuZy4gXCI1MSUgdXNlZFwiLlxuICogSXQgY2FuIGJlIHVzZWQgaW4gdHdvIHdheXM6XG4gKiAxLiBCeSBwcm92aWRpbmcgYGNvdW50YCBhbmQgYGxpbWl0YCBpbnB1dHMsIGl0IHdpbGwgY2FsY3VsYXRlIHRoZSB1c2FnZSBwZXJjZW50YWdlLlxuICogMi4gQnkgcHJvdmlkaW5nIGBwZXJjZW50YWdlYCBpbnB1dCwgaXQgd2lsbCB1c2UgdGhlIHByb3ZpZGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG4gKiBOb3RlOiBgcGVyY2VudGFnZWAgaW5wdXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBjb3VudGAgYW5kIGBsaW1pdGAgaW5wdXRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNhZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSWNvbkRpcmVjdGl2ZSwgTmdJZiwgTmdDbGFzcywgSWNvbkRpcmVjdGl2ZSwgQzh5VHJhbnNsYXRlUGlwZSwgUGVyY2VudFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfVxufSlcbmV4cG9ydCBjbGFzcyBVc2FnZUNvbXBvbmVudCB7XG4gIGNvdW50ID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIGxpbWl0ID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIC8qKlxuICAgKiBQZXJjZW50YWdlIG9mIHVzYWdlLiBWYWx1ZSByYW5nZSBpcyBmcm9tIDAgdG8gMTAwIChvciBtb3JlKS5cbiAgICogRm9yIGV4YW1wbGUsIGlmIDEwJSBpcyB1c2VkLCB0aGlzIHZhbHVlIHNob3VsZCBiZSBwcm92aWRlZCBhcyAxMCAobm90IDAuMSkuXG4gICAqL1xuICBwZXJjZW50YWdlID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFVzYWdlIGFzIGEgZnJhY3Rpb24gKGUuZy4gaWYgNTAlIGlzIHVzZWQsIHVzYWdlIHZhbHVlIHdpbGwgYmUgMC41KVxuICAgKi9cbiAgdXNhZ2UgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMucGVyY2VudGFnZSgpICE9IG51bGwgPyB0aGlzLnBlcmNlbnRhZ2UoKSAvIDEwMCA6IHRoaXMuZ2V0VXNhZ2UodGhpcy5jb3VudCgpLCB0aGlzLmxpbWl0KCkpXG4gICk7XG4gIHN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2V0U3RhdHVzKHRoaXMudXNhZ2UoKSkpO1xuICB1c2FnZVRvRGlzcGxheSA9IGdldHRleHQoJ3t7IHBlcmNlbnRhZ2VPZlF1b3RhIH19IHVzZWQnKTtcblxuICBzdGF0dXNNYXAgPSB7XG4gICAgZGFuZ2VyOiBbJ3RhZy0tZGFuZ2VyJ10sXG4gICAgd2FybmluZzogWyd0YWctLXdhcm5pbmcnXSxcbiAgICBzdWNjZXNzOiBbJ3RhZy0tc3VjY2VzcyddXG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCB1c2FnZSBhcyBmcmFjdGlvbiBvZiBjb3VudCBhbmQgbGltaXQuXG4gICAqIEUuZy4gaWYgY291bnQgaXMgNSBhbmQgbGltaXQgaXMgMTAsIHJldHVybmVkIHVzYWdlIHdpbGwgYmUgMC41XG4gICAqIEBwYXJhbSBjb3VudCBVc2FnZSBjb3VudFxuICAgKiBAcGFyYW0gbGltaXQgVXNhZ2UgbGltaXRcbiAgICogQHJldHVybnMgQ291bnQgZGl2aWRlZCBieSBsaW1pdCBvciBudWxsIGlmIGNvdW50IG9yIGxpbWl0IGlzIG51bGwgb3IgbGltaXQgaXMgLTEgKGluZGljYXRlcyBubyBsaW1pdClcbiAgICovXG4gIHByaXZhdGUgZ2V0VXNhZ2UoY291bnQ6IG51bWJlciwgbGltaXQ6IG51bWJlcik6IG51bWJlciB8IG51bGwge1xuICAgIGlmIChjb3VudCA9PSBudWxsIHx8IGxpbWl0ID09IG51bGwgfHwgbGltaXQgPT09IC0xKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50IC8gbGltaXQ7XG4gIH1cblxuICBwcml2YXRlIGdldFN0YXR1cyh1c2FnZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh1c2FnZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcGVyY2VudGFnZSA9IHVzYWdlICogMTAwO1xuXG4gICAgaWYgKHBlcmNlbnRhZ2UgPj0gODApIHtcbiAgICAgIHJldHVybiAnZGFuZ2VyJztcbiAgICB9IGVsc2UgaWYgKHBlcmNlbnRhZ2UgPj0gNTApIHtcbiAgICAgIHJldHVybiAnd2FybmluZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwidGFnIG5vLXBvaW50ZXJcIlxuICBbbmdDbGFzc109XCJzdGF0dXNNYXBbc3RhdHVzKCldXCJcbiAgKm5nSWY9XCJ1c2FnZSgpICE9PSBudWxsXCJcbj5cbiAgPGlcbiAgICBjbGFzcz1cInRleHQtZGFuZ2VyIG0tci00IHRleHQtMTJcIlxuICAgIGM4eUljb249XCJleGNsYW1hdGlvbi1jaXJjbGVcIlxuICAgICpuZ0lmPVwic3RhdHVzKCkgPT09ICdkYW5nZXInXCJcbiAgPjwvaT5cbiAgPHNwYW4+XG4gICAge3sgdXNhZ2VUb0Rpc3BsYXkgfCB0cmFuc2xhdGU6IHsgcGVyY2VudGFnZU9mUXVvdGE6ICh1c2FnZSgpIHwgcGVyY2VudDogJzEuMC0yJykgfSB9fVxuICA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==
|