@c8y/ngx-components 1022.44.7 → 1022.45.2

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.
Files changed (60) hide show
  1. package/asset-properties/asset-properties.model.d.ts +1 -1
  2. package/asset-properties/asset-properties.model.d.ts.map +1 -1
  3. package/asset-properties/asset-property-list/asset-property-value.pipe.d.ts.map +1 -1
  4. package/computed-asset-properties/last-measurement/last-measurement-value.d.ts +2 -1
  5. package/computed-asset-properties/last-measurement/last-measurement-value.d.ts.map +1 -1
  6. package/computed-asset-properties/strategies/last-measurement-strategy.d.ts +4 -3
  7. package/computed-asset-properties/strategies/last-measurement-strategy.d.ts.map +1 -1
  8. package/context-dashboard/context-dashboard.service.d.ts +20 -2
  9. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  10. package/context-dashboard/widget-config/widget-asset-selector.component.d.ts +8 -2
  11. package/context-dashboard/widget-config/widget-asset-selector.component.d.ts.map +1 -1
  12. package/context-dashboard/widget-config.component.d.ts.map +1 -1
  13. package/context-dashboard/widget-config.service.d.ts +7 -1
  14. package/context-dashboard/widget-config.service.d.ts.map +1 -1
  15. package/core/router/router.service.d.ts +1 -0
  16. package/core/router/router.service.d.ts.map +1 -1
  17. package/dashboard-manager/dashboard-manager.service.d.ts +5 -4
  18. package/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
  19. package/dashboard-manager/devicemanagement/dashboard-manager-navigation.factory.d.ts +10 -0
  20. package/dashboard-manager/devicemanagement/dashboard-manager-navigation.factory.d.ts.map +1 -0
  21. package/dashboard-manager/devicemanagement/dashboard-manager-tabs.factory.d.ts +11 -0
  22. package/dashboard-manager/devicemanagement/dashboard-manager-tabs.factory.d.ts.map +1 -0
  23. package/dashboard-manager/devicemanagement/index.d.ts +4 -0
  24. package/dashboard-manager/devicemanagement/index.d.ts.map +1 -1
  25. package/dashboard-manager/index.d.ts +2 -1
  26. package/dashboard-manager/index.d.ts.map +1 -1
  27. package/dashboard-manager/type-dashboards-list/index.d.ts +2 -0
  28. package/dashboard-manager/type-dashboards-list/index.d.ts.map +1 -0
  29. package/fesm2022/c8y-ngx-components-asset-properties.mjs +1 -1
  30. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
  32. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +54 -24
  34. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +81 -6
  36. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs.map +1 -1
  37. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +185 -166
  38. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  39. package/fesm2022/c8y-ngx-components-map.mjs +1 -1
  40. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  41. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +2 -2
  42. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
  43. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +12 -7
  44. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  45. package/fesm2022/c8y-ngx-components.mjs +14 -4
  46. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  47. package/locales/de.po +19 -0
  48. package/locales/es.po +19 -0
  49. package/locales/fr.po +19 -0
  50. package/locales/ja_JP.po +17 -0
  51. package/locales/ko.po +18 -0
  52. package/locales/locales.pot +18 -0
  53. package/locales/nl.po +19 -0
  54. package/locales/pl.po +19 -0
  55. package/locales/pt_BR.po +19 -0
  56. package/locales/zh_CN.po +18 -0
  57. package/locales/zh_TW.po +18 -0
  58. package/package.json +1 -1
  59. package/widgets/implementations/map/map-widget.component.d.ts +1 -0
  60. package/widgets/implementations/map/map-widget.component.d.ts.map +1 -1
@@ -1,13 +1,88 @@
1
- import { hookPreview } from '@c8y/ngx-components';
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { PreviewService, NavigatorNode, hookTab, hookRoute, hookNavigator, hookPreview } from '@c8y/ngx-components';
4
+ import { TypeDashboardsListComponent } from '@c8y/ngx-components/dashboard-manager';
5
+ import { map, first } from 'rxjs';
6
+ import { gettext } from '@c8y/ngx-components/gettext';
7
+ import * as i1 from '@angular/router';
2
8
 
9
+ class DashboardManagerNavigationFactory {
10
+ constructor() {
11
+ this.previewFeatureService = inject(PreviewService);
12
+ }
13
+ get() {
14
+ return this.previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(map(state => {
15
+ if (state) {
16
+ return [
17
+ new NavigatorNode({
18
+ parent: gettext('Management'),
19
+ path: DM_DASHBOARD_MANAGER_PATH,
20
+ label: gettext('Dashboard manager'),
21
+ icon: 'management1',
22
+ routerLinkExact: false,
23
+ preventDuplicates: true,
24
+ featureId: 'dashboardManager'
25
+ })
26
+ ];
27
+ }
28
+ return [];
29
+ }));
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerNavigationFactory }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerNavigationFactory, decorators: [{
35
+ type: Injectable
36
+ }] });
37
+
38
+ class DashboardManagerTabsFactory {
39
+ constructor(router) {
40
+ this.router = router;
41
+ }
42
+ get() {
43
+ const tabs = [];
44
+ if (this.router.url.match(/\/dashboard-manager/g)) {
45
+ tabs.push({
46
+ path: 'dashboard-manager/type-dashboards',
47
+ priority: 1000,
48
+ label: gettext('Type dashboards')
49
+ });
50
+ }
51
+ return tabs;
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
54
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerTabsFactory }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerTabsFactory, decorators: [{
57
+ type: Injectable
58
+ }], ctorParameters: () => [{ type: i1.Router }] });
59
+
60
+ const DM_DASHBOARD_MANAGER_PREVIEW_KEY = 'ui.dm-dashboard-manager';
61
+ const DM_DASHBOARD_MANAGER_PATH = 'dashboard-manager';
62
+ function canActivateDashboardManager() {
63
+ const previewFeatureService = inject(PreviewService);
64
+ return previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(first());
65
+ }
3
66
  const dashboardManagerFeatureProvider = [
67
+ hookTab(DashboardManagerTabsFactory),
68
+ hookRoute([
69
+ {
70
+ path: DM_DASHBOARD_MANAGER_PATH,
71
+ redirectTo: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,
72
+ pathMatch: 'full'
73
+ },
74
+ {
75
+ path: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,
76
+ component: TypeDashboardsListComponent,
77
+ canActivate: [canActivateDashboardManager]
78
+ }
79
+ ]),
80
+ hookNavigator(DashboardManagerNavigationFactory),
4
81
  hookPreview({
5
- key: 'ui.dm-dashboard-manager',
82
+ key: DM_DASHBOARD_MANAGER_PREVIEW_KEY,
6
83
  label: 'Dashboard manager',
7
84
  description: () => import('@c8y/style/markdown-files/dm-dashboard-manager-preview.md').then(m => m.default),
8
- settings: {
9
- reload: true
10
- }
85
+ settings: { reload: true }
11
86
  })
12
87
  ];
13
88
 
@@ -15,5 +90,5 @@ const dashboardManagerFeatureProvider = [
15
90
  * Generated bundle index. Do not edit.
16
91
  */
17
92
 
18
- export { dashboardManagerFeatureProvider };
93
+ export { DM_DASHBOARD_MANAGER_PATH, DM_DASHBOARD_MANAGER_PREVIEW_KEY, canActivateDashboardManager, dashboardManagerFeatureProvider };
19
94
  //# sourceMappingURL=c8y-ngx-components-dashboard-manager-devicemanagement.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-dashboard-manager-devicemanagement.mjs","sources":["../../dashboard-manager/devicemanagement/index.ts","../../dashboard-manager/devicemanagement/c8y-ngx-components-dashboard-manager-devicemanagement.ts"],"sourcesContent":["import { hookPreview } from '@c8y/ngx-components';\n\nexport const dashboardManagerFeatureProvider = [\n hookPreview({\n key: 'ui.dm-dashboard-manager',\n label: 'Dashboard manager',\n description: () =>\n import('@c8y/style/markdown-files/dm-dashboard-manager-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEO,MAAM,+BAA+B,GAAG;AAC7C,IAAA,WAAW,CAAC;AACV,QAAA,GAAG,EAAE,yBAAyB;AAC9B,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,WAAW,EAAE,MACX,OAAO,2DAA2D,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC1F,QAAA,QAAQ,EAAE;AACR,YAAA,MAAM,EAAE;AACT;KACF;;;ACXH;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-dashboard-manager-devicemanagement.mjs","sources":["../../dashboard-manager/devicemanagement/dashboard-manager-navigation.factory.ts","../../dashboard-manager/devicemanagement/dashboard-manager-tabs.factory.ts","../../dashboard-manager/devicemanagement/index.ts","../../dashboard-manager/devicemanagement/c8y-ngx-components-dashboard-manager-devicemanagement.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { NavigatorNode, NavigatorNodeFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { map, Observable } from 'rxjs';\nimport { DM_DASHBOARD_MANAGER_PATH, DM_DASHBOARD_MANAGER_PREVIEW_KEY } from './index';\n\n@Injectable()\nexport class DashboardManagerNavigationFactory implements NavigatorNodeFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n get(): Observable<NavigatorNode[]> {\n return this.previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(\n map(state => {\n if (state) {\n return [\n new NavigatorNode({\n parent: gettext('Management'),\n path: DM_DASHBOARD_MANAGER_PATH,\n label: gettext('Dashboard manager'),\n icon: 'management1',\n routerLinkExact: false,\n preventDuplicates: true,\n featureId: 'dashboardManager'\n })\n ];\n }\n return [];\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Tab, TabFactory } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Injectable()\nexport class DashboardManagerTabsFactory implements TabFactory {\n constructor(public router: Router) {}\n\n get() {\n const tabs: Tab[] = [];\n\n if (this.router.url.match(/\\/dashboard-manager/g)) {\n tabs.push({\n path: 'dashboard-manager/type-dashboards',\n priority: 1000,\n label: gettext('Type dashboards')\n } as Tab);\n }\n\n return tabs;\n }\n}\n","import { inject } from '@angular/core';\nimport {\n hookNavigator,\n hookPreview,\n hookRoute,\n hookTab,\n PreviewService\n} from '@c8y/ngx-components';\nimport { TypeDashboardsListComponent } from '@c8y/ngx-components/dashboard-manager';\nimport { first, Observable } from 'rxjs';\nimport { DashboardManagerNavigationFactory } from './dashboard-manager-navigation.factory';\nimport { DashboardManagerTabsFactory } from './dashboard-manager-tabs.factory';\n\nexport const DM_DASHBOARD_MANAGER_PREVIEW_KEY = 'ui.dm-dashboard-manager';\nexport const DM_DASHBOARD_MANAGER_PATH = 'dashboard-manager';\n\nexport function canActivateDashboardManager(): Observable<boolean> {\n const previewFeatureService = inject(PreviewService);\n return previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(first());\n}\n\nexport const dashboardManagerFeatureProvider = [\n hookTab(DashboardManagerTabsFactory),\n hookRoute([\n {\n path: DM_DASHBOARD_MANAGER_PATH,\n redirectTo: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,\n pathMatch: 'full'\n },\n {\n path: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,\n component: TypeDashboardsListComponent,\n canActivate: [canActivateDashboardManager]\n }\n ]),\n hookNavigator(DashboardManagerNavigationFactory),\n hookPreview({\n key: DM_DASHBOARD_MANAGER_PREVIEW_KEY,\n label: 'Dashboard manager',\n description: () =>\n import('@c8y/style/markdown-files/dm-dashboard-manager-preview.md').then(m => m.default),\n settings: { reload: true }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,33 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, EventEmitter, Output, Input, Component, HostListener, NgModule } from '@angular/core';
3
- import { gettext } from '@c8y/ngx-components/gettext';
4
3
  import * as i2 from '@c8y/ngx-components';
5
- import { BaseColumn, getBasicInputArrayFormFieldConfig, DataGridService, Status, alertOnError, DataGridComponent, EmptyStateComponent, ColumnDirective, C8yTranslatePipe, ModalComponent, BuiltInActionType, TitleComponent, ExpandableRowDirective, CellRendererDefDirective, IconDirective, CoreModule, ModalModule, hookTab, hookRoute, hookNavigator, NavigatorNode } from '@c8y/ngx-components';
6
- import { TooltipModule } from 'ngx-bootstrap/tooltip';
4
+ import { DataGridService, alertOnError, DataGridComponent, EmptyStateComponent, ColumnDirective, C8yTranslatePipe, ModalComponent, BaseColumn, getBasicInputArrayFormFieldConfig, Status, BuiltInActionType, TitleComponent, ExpandableRowDirective, CellRendererDefDirective, IconDirective, CoreModule, ModalModule, hookTab, hookRoute, hookNavigator, NavigatorNode } from '@c8y/ngx-components';
5
+ import * as i3 from '@c8y/ngx-components/context-dashboard';
6
+ import { TypeDashboardInfoComponent, ContextDashboardModule } from '@c8y/ngx-components/context-dashboard';
7
7
  import { NameDeviceGridColumn, TypeDeviceGridColumn, GroupDeviceGridColumn, RegistrationDateDeviceGridColumn, DeviceGridModule } from '@c8y/ngx-components/device-grid';
8
+ import { gettext } from '@c8y/ngx-components/gettext';
9
+ import { TooltipModule } from 'ngx-bootstrap/tooltip';
8
10
  import * as i1 from '@angular/router';
9
11
  import * as i1$1 from '@c8y/client';
10
- import * as i3 from '@ngx-translate/core';
11
- import * as i1$2 from 'ngx-bootstrap/modal';
12
- import * as i3$1 from '@c8y/ngx-components/context-dashboard';
13
- import { TypeDashboardInfoComponent, ContextDashboardModule } from '@c8y/ngx-components/context-dashboard';
12
+ import { QueriesUtil } from '@c8y/client';
14
13
  import { NgFor } from '@angular/common';
14
+ import * as i1$2 from 'ngx-bootstrap/modal';
15
+ import * as i3$1 from '@ngx-translate/core';
16
+
17
+ const DASHBOARD_MANAGER_PRODUCT_EXPERIENCE = {
18
+ EVENTS: {
19
+ DASHBOARD_TEMPLATE: 'dashboardTemplate'
20
+ },
21
+ COMPONENTS: {
22
+ TYPE_DASHBOARDS_LIST: 'type-dashboards-list',
23
+ TYPE_DASHBOARD_TARGET_ASSETS_GRID: 'type-dashboard-target-assets-grid'
24
+ },
25
+ ACTIONS: {
26
+ DELETE_TYPE_DASHBOARD: 'deleteTypeDashboard',
27
+ EDIT_TYPE_DASHBOARD: 'editTypeDashboard',
28
+ OPEN_DASHBOARD_INSTANCE_TO_EDIT: 'openDashboardInstanceToEdit'
29
+ }
30
+ };
15
31
 
16
32
  class DashboardManagerTabsFactory {
17
33
  constructor(router) {
@@ -35,162 +51,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
35
51
  type: Injectable
36
52
  }], ctorParameters: () => [{ type: i1.Router }] });
37
53
 
38
- class DeviceTypeValueGridColumn extends BaseColumn {
39
- constructor(initialColumnConfig) {
40
- super(initialColumnConfig);
41
- this.name = 'deviceTypeValue';
42
- this.path = 'c8y_Dashboard.deviceTypeValue';
43
- this.header = gettext('Target asset model');
44
- this.filterable = true;
45
- this.sortable = false;
46
- this.filteringConfig = {
47
- fields: getBasicInputArrayFormFieldConfig({
48
- key: 'deviceTypeValues',
49
- label: gettext('Filter dashboards by target asset model'),
50
- addText: gettext('Add next`target asset model`'),
51
- tooltip: gettext('Use * as a wildcard character'),
52
- placeholder: 'c8y_MQTTDevice'
53
- }),
54
- getFilter: (model) => {
55
- const filter = {};
56
- if (model.deviceTypeValues.length) {
57
- filter[this.path] = { __in: model.deviceTypeValues };
58
- }
59
- return filter;
60
- }
61
- };
62
- }
63
- }
64
-
65
- const DASHBOARD_MANAGER_PRODUCT_EXPERIENCE = {
66
- EVENTS: {
67
- DASHBOARD_TEMPLATE: 'dashboardTemplate'
68
- },
69
- COMPONENTS: {
70
- TYPE_DASHBOARDS_LIST: 'type-dashboards-list',
71
- TYPE_DASHBOARD_TARGET_ASSETS_GRID: 'type-dashboard-target-assets-grid'
72
- },
73
- ACTIONS: {
74
- DELETE_TYPE_DASHBOARD: 'deleteTypeDashboard',
75
- EDIT_TYPE_DASHBOARD: 'editTypeDashboard',
76
- OPEN_DASHBOARD_INSTANCE_TO_EDIT: 'openDashboardInstanceToEdit'
77
- }
78
- };
79
-
80
- class DashboardManagerService extends DataGridService {
81
- constructor(inventory, userPreferencesService, modal, translateService) {
82
- super(userPreferencesService);
83
- this.inventory = inventory;
84
- this.userPreferencesService = userPreferencesService;
85
- this.modal = modal;
86
- this.translateService = translateService;
87
- this.baseQuery = {
88
- __filter: {
89
- __and: [
90
- { 'c8y_Dashboard.deviceType': { __eq: true } },
91
- { __has: 'c8y_Dashboard.deviceTypeValue' }
92
- ]
93
- }
94
- };
95
- this.TYPE_DASHBOARDS_QUERY = '$filter=((c8y_Dashboard.deviceType eq true) and (has(c8y_Dashboard.deviceTypeValue)))';
96
- }
97
- getColumns() {
98
- return [
99
- {
100
- name: 'icon',
101
- header: gettext('Icon'),
102
- path: 'c8y_Dashboard.icon',
103
- sortable: false,
104
- gridTrackSize: '45px'
105
- },
106
- {
107
- name: 'name',
108
- header: gettext('Name'),
109
- path: 'name',
110
- sortable: false,
111
- gridTrackSize: '200px'
112
- },
113
- {
114
- name: 'description',
115
- header: gettext('Description'),
116
- path: 'c8y_Dashboard.description',
117
- sortable: false
118
- },
119
- new DeviceTypeValueGridColumn(),
120
- {
121
- name: 'lastUpdated',
122
- header: gettext('Last update'),
123
- path: 'lastUpdated',
124
- sortable: false,
125
- gridTrackSize: '200px'
126
- }
127
- ];
128
- }
129
- getDefaultPagination() {
130
- return {
131
- pageSize: 25,
132
- currentPage: 1
133
- };
134
- }
135
- async getData(columns, pagination, text) {
136
- const filters = this.getFilters(columns, pagination, text);
137
- return await this.inventory.list(filters);
138
- }
139
- async getTotal() {
140
- return (await this.inventory.list({
141
- query: this.TYPE_DASHBOARDS_QUERY,
142
- withTotalElements: true
143
- })).paging.totalElements;
144
- }
145
- async delete(dashboard, onSuccess) {
146
- try {
147
- const msg = gettext(`You are about to delete the dashboard "{{ dashboardName }}" from all devices of type "{{ deviceType }}".
148
- Do you want to proceed?`);
149
- await this.modal.confirm(gettext('Delete dashboard'), this.translateService.instant(msg, {
150
- dashboardName: dashboard.c8y_Dashboard.name,
151
- deviceType: dashboard.c8y_Dashboard.deviceTypeValue
152
- }), Status.DANGER, {
153
- ok: gettext('Delete'),
154
- cancel: gettext('Cancel')
155
- }, {}, {
156
- eventName: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,
157
- data: {
158
- action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.DELETE_TYPE_DASHBOARD,
159
- component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST
160
- }
161
- });
162
- await this.inventory.delete(dashboard);
163
- onSuccess();
164
- }
165
- catch (ex) {
166
- // intended empty
167
- }
168
- }
169
- getFilters(columns, pagination, text) {
170
- return {
171
- query: this.getQueryString(columns),
172
- ...(text && { text }),
173
- pageSize: pagination.pageSize,
174
- currentPage: pagination.currentPage,
175
- withTotalPages: true,
176
- withTotalElements: true
177
- };
178
- }
179
- getQueryString(columns) {
180
- const queryFromColumns = this.getQueryObj(columns);
181
- const fullQuery = this.queriesUtil.addAndFilter(queryFromColumns, this.baseQuery);
182
- return this.queriesUtil.buildQuery(fullQuery);
183
- }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerService, deps: [{ token: i1$1.InventoryService }, { token: i2.UserPreferencesService }, { token: i2.ModalService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
185
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerService, providedIn: 'root' }); }
186
- }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerService, decorators: [{
188
- type: Injectable,
189
- args: [{
190
- providedIn: 'root'
191
- }]
192
- }], ctorParameters: () => [{ type: i1$1.InventoryService }, { type: i2.UserPreferencesService }, { type: i2.ModalService }, { type: i3.TranslateService }] });
193
-
194
54
  class BasicNameDeviceGridColumn extends NameDeviceGridColumn {
195
55
  constructor(initialColumnConfig) {
196
56
  super(initialColumnConfig);
@@ -321,13 +181,13 @@ class TypeDashboardTargetAssetsGridComponent {
321
181
  action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.OPEN_DASHBOARD_INSTANCE_TO_EDIT
322
182
  });
323
183
  }
324
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, deps: [{ token: i1.Router }, { token: TypeDashboardAssetsGridService }, { token: i3$1.ContextDashboardService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, deps: [{ token: i1.Router }, { token: TypeDashboardAssetsGridService }, { token: i3.ContextDashboardService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
325
185
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TypeDashboardTargetAssetsGridComponent, isStandalone: true, selector: "c8y-type-dashboard-target-assets-grid", inputs: { dashboard: "dashboard" }, outputs: { onNavigateToAsset: "onNavigateToAsset" }, ngImport: i0, template: "<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n", dependencies: [{ kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
326
186
  }
327
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, decorators: [{
328
188
  type: Component,
329
189
  args: [{ selector: 'c8y-type-dashboard-target-assets-grid', imports: [DataGridComponent, EmptyStateComponent, NgFor, ColumnDirective, C8yTranslatePipe], template: "<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n" }]
330
- }], ctorParameters: () => [{ type: i1.Router }, { type: TypeDashboardAssetsGridService }, { type: i3$1.ContextDashboardService }, { type: i2.GainsightService }], propDecorators: { dashboard: [{
190
+ }], ctorParameters: () => [{ type: i1.Router }, { type: TypeDashboardAssetsGridService }, { type: i3.ContextDashboardService }, { type: i2.GainsightService }], propDecorators: { dashboard: [{
331
191
  type: Input
332
192
  }], onNavigateToAsset: [{
333
193
  type: Output
@@ -359,6 +219,165 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
359
219
  args: ['document:keydown', ['$event']]
360
220
  }] } });
361
221
 
222
+ class DeviceTypeValueGridColumn extends BaseColumn {
223
+ constructor(initialColumnConfig) {
224
+ super(initialColumnConfig);
225
+ this.name = 'deviceTypeValue';
226
+ this.path = 'c8y_Dashboard.deviceTypeValue';
227
+ this.header = gettext('Target asset model');
228
+ this.filterable = true;
229
+ this.sortable = false;
230
+ this.filteringConfig = {
231
+ fields: getBasicInputArrayFormFieldConfig({
232
+ key: 'deviceTypeValues',
233
+ label: gettext('Filter dashboards by target asset model'),
234
+ addText: gettext('Add next`target asset model`'),
235
+ tooltip: gettext('Use * as a wildcard character'),
236
+ placeholder: 'c8y_MQTTDevice'
237
+ }),
238
+ getFilter: (model) => {
239
+ const filter = {};
240
+ if (model.deviceTypeValues.length) {
241
+ filter[this.path] = { __in: model.deviceTypeValues };
242
+ }
243
+ return filter;
244
+ }
245
+ };
246
+ }
247
+ }
248
+
249
+ class DashboardManagerService extends DataGridService {
250
+ constructor(inventory, userPreferencesService, modal, translateService, contextDashboardService) {
251
+ super(userPreferencesService);
252
+ this.inventory = inventory;
253
+ this.userPreferencesService = userPreferencesService;
254
+ this.modal = modal;
255
+ this.translateService = translateService;
256
+ this.contextDashboardService = contextDashboardService;
257
+ this.baseQuery = {
258
+ __filter: {
259
+ __and: [
260
+ { 'c8y_Dashboard.deviceType': { __eq: true } },
261
+ { __has: 'c8y_Dashboard.deviceTypeValue' }
262
+ ]
263
+ }
264
+ };
265
+ this.baseTypeDashboardsFilter = {
266
+ __filter: {
267
+ __and: [
268
+ { 'c8y_Dashboard.deviceType': { __eq: true } },
269
+ { __has: 'c8y_Dashboard.deviceTypeValue' }
270
+ ]
271
+ }
272
+ };
273
+ this.queriesUtil = new QueriesUtil();
274
+ }
275
+ getColumns() {
276
+ return [
277
+ {
278
+ name: 'icon',
279
+ header: gettext('Icon'),
280
+ path: 'c8y_Dashboard.icon',
281
+ sortable: false,
282
+ gridTrackSize: '45px'
283
+ },
284
+ {
285
+ name: 'name',
286
+ header: gettext('Name'),
287
+ path: 'name',
288
+ sortable: false,
289
+ gridTrackSize: '200px'
290
+ },
291
+ {
292
+ name: 'description',
293
+ header: gettext('Description'),
294
+ path: 'c8y_Dashboard.description',
295
+ sortable: false
296
+ },
297
+ new DeviceTypeValueGridColumn(),
298
+ {
299
+ name: 'lastUpdated',
300
+ header: gettext('Last update'),
301
+ path: 'lastUpdated',
302
+ sortable: false,
303
+ gridTrackSize: '200px'
304
+ }
305
+ ];
306
+ }
307
+ getDefaultPagination() {
308
+ return {
309
+ pageSize: 25,
310
+ currentPage: 1
311
+ };
312
+ }
313
+ async getData(columns, pagination, text) {
314
+ const filters = this.getFilters(columns, pagination, text);
315
+ return await this.inventory.list(filters);
316
+ }
317
+ async getTotal() {
318
+ const query = this.queriesUtil.buildQuery({
319
+ __filter: {
320
+ __and: [
321
+ this.baseTypeDashboardsFilter.__filter,
322
+ this.contextDashboardService.appliedToFilter()
323
+ ]
324
+ }
325
+ });
326
+ const res = await this.inventory.list({ query, withTotalElements: true, pageSize: 1 });
327
+ return res.paging.totalElements;
328
+ }
329
+ async delete(dashboard, onSuccess) {
330
+ try {
331
+ const msg = gettext(`You are about to delete the dashboard "{{ dashboardName }}" from all devices of type "{{ deviceType }}".
332
+ Do you want to proceed?`);
333
+ await this.modal.confirm(gettext('Delete dashboard'), this.translateService.instant(msg, {
334
+ dashboardName: dashboard.c8y_Dashboard.name,
335
+ deviceType: dashboard.c8y_Dashboard.deviceTypeValue
336
+ }), Status.DANGER, {
337
+ ok: gettext('Delete'),
338
+ cancel: gettext('Cancel')
339
+ }, {}, {
340
+ eventName: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,
341
+ data: {
342
+ action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.DELETE_TYPE_DASHBOARD,
343
+ component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST
344
+ }
345
+ });
346
+ await this.inventory.delete(dashboard);
347
+ onSuccess();
348
+ }
349
+ catch (ex) {
350
+ // intended empty
351
+ }
352
+ }
353
+ getFilters(columns, pagination, text) {
354
+ return {
355
+ query: this.getQueryString(columns),
356
+ ...(text && { text }),
357
+ pageSize: pagination.pageSize,
358
+ currentPage: pagination.currentPage,
359
+ withTotalPages: true,
360
+ withTotalElements: true
361
+ };
362
+ }
363
+ getQueryString(columns) {
364
+ const queryFromColumns = this.getQueryObj(columns);
365
+ const base = this.queriesUtil.addAndFilter(queryFromColumns, this.baseTypeDashboardsFilter);
366
+ const withAppliedTo = this.queriesUtil.addAndFilter(base, {
367
+ __filter: this.contextDashboardService.appliedToFilter()
368
+ });
369
+ return this.queriesUtil.buildQuery(withAppliedTo);
370
+ }
371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerService, deps: [{ token: i1$1.InventoryService }, { token: i2.UserPreferencesService }, { token: i2.ModalService }, { token: i3$1.TranslateService }, { token: i3.ContextDashboardService }], target: i0.ɵɵFactoryTarget.Injectable }); }
372
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerService, providedIn: 'root' }); }
373
+ }
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardManagerService, decorators: [{
375
+ type: Injectable,
376
+ args: [{
377
+ providedIn: 'root'
378
+ }]
379
+ }], ctorParameters: () => [{ type: i1$1.InventoryService }, { type: i2.UserPreferencesService }, { type: i2.ModalService }, { type: i3$1.TranslateService }, { type: i3.ContextDashboardService }] });
380
+
362
381
  class TypeDashboardsListComponent {
363
382
  constructor(dashboardManagerService, bsModalService, gainsightService) {
364
383
  this.dashboardManagerService = dashboardManagerService;
@@ -528,5 +547,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
528
547
  * Generated bundle index. Do not edit.
529
548
  */
530
549
 
531
- export { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE, DashboardManagerModule };
550
+ export { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE, DashboardManagerModule, TypeDashboardsListComponent };
532
551
  //# sourceMappingURL=c8y-ngx-components-dashboard-manager.mjs.map