@c8y/ngx-components 1018.503.43 → 1018.503.49

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 (64) hide show
  1. package/context-dashboard/add-dashboard.factory.d.ts +3 -2
  2. package/context-dashboard/context-dashboard.model.d.ts +16 -1
  3. package/context-dashboard/context-dashboard.service.d.ts +4 -2
  4. package/context-dashboard/report-dashboard/report-dashboard-list.component.d.ts +3 -2
  5. package/core/common/ApplicationOptions.d.ts +2 -2
  6. package/core/login/credentials.component.d.ts +1 -3
  7. package/core/login/login.component.d.ts +3 -1
  8. package/esm2020/context-dashboard/add-dashboard.factory.mjs +17 -5
  9. package/esm2020/context-dashboard/context-dashboard.component.mjs +24 -4
  10. package/esm2020/context-dashboard/context-dashboard.model.mjs +19 -4
  11. package/esm2020/context-dashboard/context-dashboard.service.mjs +21 -6
  12. package/esm2020/context-dashboard/dashboard-availability.component.mjs +3 -3
  13. package/esm2020/context-dashboard/report-dashboard/report-dashboard-list.component.mjs +21 -6
  14. package/esm2020/core/common/ApplicationOptions.mjs +1 -1
  15. package/esm2020/core/data-grid/column/filtering-form-renderer.component.mjs +4 -1
  16. package/esm2020/core/login/credentials.component.mjs +15 -18
  17. package/esm2020/core/login/login.component.mjs +18 -15
  18. package/esm2020/widgets/implementations/device-control-message/device-control-message-widget-view/device-control-message-widget-view.component.mjs +17 -9
  19. package/esm2020/widgets/implementations/map/map-widget.component.mjs +26 -11
  20. package/esm2020/widgets/implementations/three-d-rotation/lazy-box-model/lazy-load-box-model.mjs +3 -3
  21. package/esm2020/widgets/implementations/three-d-rotation/lazy-phone-model/lazy-load-phone-model.mjs +3 -3
  22. package/fesm2015/c8y-ngx-components-context-dashboard.mjs +91 -15
  23. package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  24. package/fesm2015/c8y-ngx-components-widgets-implementations-device-control-message.mjs +19 -8
  25. package/fesm2015/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
  26. package/fesm2015/c8y-ngx-components-widgets-implementations-map.mjs +37 -20
  27. package/fesm2015/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  28. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs +2 -2
  29. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs.map +1 -1
  30. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs +2 -2
  31. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs.map +1 -1
  32. package/fesm2015/c8y-ngx-components.mjs +14 -11
  33. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  34. package/fesm2020/c8y-ngx-components-context-dashboard.mjs +91 -15
  35. package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  36. package/fesm2020/c8y-ngx-components-widgets-implementations-device-control-message.mjs +15 -8
  37. package/fesm2020/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
  38. package/fesm2020/c8y-ngx-components-widgets-implementations-map.mjs +25 -13
  39. package/fesm2020/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  40. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs +2 -2
  41. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-box-model.mjs.map +1 -1
  42. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs +2 -2
  43. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-lazy-phone-model.mjs.map +1 -1
  44. package/fesm2020/c8y-ngx-components.mjs +14 -11
  45. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  46. package/package.json +1 -1
  47. package/widgets/implementations/device-control-message/device-control-message-widget-view/device-control-message-widget-view.component.d.ts +4 -2
  48. package/widgets/implementations/map/map-widget.component.d.ts +7 -4
  49. package/widgets/implementations/three-d-rotation/lazy-box-model/lazy-load-box-model.d.ts +79 -1
  50. package/widgets/implementations/three-d-rotation/lazy-phone-model/lazy-load-phone-model.d.ts +76 -1
  51. package/esm2020/widgets/implementations/three-d-rotation/box-model/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs +0 -5
  52. package/esm2020/widgets/implementations/three-d-rotation/box-model/index.mjs +0 -4
  53. package/esm2020/widgets/implementations/three-d-rotation/phone-model/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs +0 -5
  54. package/esm2020/widgets/implementations/three-d-rotation/phone-model/index.mjs +0 -4
  55. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs +0 -10
  56. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs.map +0 -1
  57. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs +0 -10
  58. package/fesm2015/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs.map +0 -1
  59. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs +0 -10
  60. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-box-model.mjs.map +0 -1
  61. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs +0 -10
  62. package/fesm2020/c8y-ngx-components-widgets-implementations-three-d-rotation-phone-model.mjs.map +0 -1
  63. package/widgets/implementations/three-d-rotation/box-model/index.d.ts +0 -1
  64. package/widgets/implementations/three-d-rotation/phone-model/index.d.ts +0 -1
@@ -118,13 +118,28 @@ const ALL_GLOBAL_ROLES_SELECTED = 'all';
118
118
  const PRODUCT_EXPERIENCE = {
119
119
  DASHBOARD: {
120
120
  EVENTS: {
121
- DASHBOARD_AVAILABILITY: 'dashboardAvailability'
121
+ DASHBOARDS: 'dashboards',
122
+ REPORTS: 'reports'
122
123
  },
123
124
  COMPONENTS: {
124
- DASHBOARD_AVAILABILITY: 'dashboard-availability'
125
+ DASHBOARD_VIEW: 'context-dashboard',
126
+ DASHBOARD_AVAILABILITY: 'dashboard-availability',
127
+ REPORTS_LIST: 'report-dashboard-list',
128
+ ADD_REPORT: 'report-dashboard-list',
129
+ ADD_DASHBOARD: 'add-dashboard',
130
+ DELETE_DASHBOARD: 'context-dashboard'
131
+ },
132
+ CONTEXT: {
133
+ REPORT: 'report',
134
+ DEVICE: 'device',
135
+ ASSET: 'asset',
136
+ GROUP: 'group'
125
137
  },
126
138
  ACTIONS: {
127
- APPLY_GLOBAL_ROLES_CHANGES: 'applyGlobalRolesChanges'
139
+ APPLY_GLOBAL_ROLES_CHANGES: 'applyGlobalRolesChanges',
140
+ DELETE: 'delete',
141
+ LOAD: 'load',
142
+ CREATE: 'create'
128
143
  }
129
144
  }
130
145
  };
@@ -137,7 +152,7 @@ class ContextDashboardService {
137
152
  this._formDisabled = value;
138
153
  this.formDisabledSubject.next(value);
139
154
  }
140
- constructor(inventory, tabs, modal, translateService, router, navigator, permissions, alert, dynamicComponent) {
155
+ constructor(inventory, tabs, modal, translateService, router, navigator, permissions, alert, dynamicComponent, groupService) {
141
156
  this.inventory = inventory;
142
157
  this.tabs = tabs;
143
158
  this.modal = modal;
@@ -147,6 +162,7 @@ class ContextDashboardService {
147
162
  this.permissions = permissions;
148
163
  this.alert = alert;
149
164
  this.dynamicComponent = dynamicComponent;
165
+ this.groupService = groupService;
150
166
  this.REPORT_PARTIAL_NAME = 'report_';
151
167
  this.INVENTORY_ROLES = [
152
168
  Permissions.ROLE_INVENTORY_ADMIN,
@@ -353,6 +369,20 @@ class ContextDashboardService {
353
369
  }
354
370
  }
355
371
  }
372
+ getContextForGS(mo) {
373
+ if (this.groupService.isDevice(mo)) {
374
+ return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.DEVICE;
375
+ }
376
+ else if (this.groupService.isAsset(mo)) {
377
+ return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.ASSET;
378
+ }
379
+ else if (this.groupService.isGroup(mo)) {
380
+ return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.GROUP;
381
+ }
382
+ else {
383
+ return null;
384
+ }
385
+ }
356
386
  adjustDashboardFor24Columns(dashboards) {
357
387
  if (Array.isArray(dashboards)) {
358
388
  return dashboards.map(dashboard => this.adjustDashboardFor24Columns(dashboard));
@@ -552,14 +582,14 @@ class ContextDashboardService {
552
582
  return null;
553
583
  }
554
584
  }
555
- ContextDashboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, deps: [{ token: i1.InventoryService }, { token: i5.TabsService }, { token: i5.ModalService }, { token: i3.TranslateService }, { token: i1$1.Router }, { token: i5.NavigatorService }, { token: i5.Permissions }, { token: i5.AlertService }, { token: i5.DynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
585
+ ContextDashboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, deps: [{ token: i1.InventoryService }, { token: i5.TabsService }, { token: i5.ModalService }, { token: i3.TranslateService }, { token: i1$1.Router }, { token: i5.NavigatorService }, { token: i5.Permissions }, { token: i5.AlertService }, { token: i5.DynamicComponentService }, { token: i5.GroupService }], target: i0.ɵɵFactoryTarget.Injectable });
556
586
  ContextDashboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, providedIn: 'root' });
557
587
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ContextDashboardService, decorators: [{
558
588
  type: Injectable,
559
589
  args: [{
560
590
  providedIn: 'root'
561
591
  }]
562
- }], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: i5.TabsService }, { type: i5.ModalService }, { type: i3.TranslateService }, { type: i1$1.Router }, { type: i5.NavigatorService }, { type: i5.Permissions }, { type: i5.AlertService }, { type: i5.DynamicComponentService }]; } });
592
+ }], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: i5.TabsService }, { type: i5.ModalService }, { type: i3.TranslateService }, { type: i1$1.Router }, { type: i5.NavigatorService }, { type: i5.Permissions }, { type: i5.AlertService }, { type: i5.DynamicComponentService }, { type: i5.GroupService }]; } });
563
593
 
564
594
  class ReportDashboardService {
565
595
  constructor(inventoryService, navigatorService) {
@@ -757,7 +787,7 @@ class DashboardAvailabilityComponent {
757
787
  this.globalRolesItemsSelected = items;
758
788
  if (allItemsSelected) {
759
789
  this.globalRolesIdsChange.emit(ALL_GLOBAL_ROLES_SELECTED);
760
- this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARD_AVAILABILITY, {
790
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
761
791
  component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,
762
792
  action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,
763
793
  globalRoles: ALL_GLOBAL_ROLES_SELECTED
@@ -766,7 +796,7 @@ class DashboardAvailabilityComponent {
766
796
  else {
767
797
  const selectedGlobalRolesIds = items.map(i => i.id);
768
798
  this.globalRolesIdsChange.emit([...selectedGlobalRolesIds]);
769
- this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARD_AVAILABILITY, {
799
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
770
800
  component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,
771
801
  action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,
772
802
  globalRoles: selectedGlobalRolesIds?.sort()?.join()
@@ -929,11 +959,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
929
959
  }] } });
930
960
 
931
961
  class AddDashboardFactory {
932
- constructor(permissions, contextDashboardService, bsModal, contextRoute) {
962
+ constructor(permissions, contextDashboardService, bsModal, contextRoute, gainsightService) {
933
963
  this.permissions = permissions;
934
964
  this.contextDashboardService = contextDashboardService;
935
965
  this.bsModal = bsModal;
936
966
  this.contextRoute = contextRoute;
967
+ this.gainsightService = gainsightService;
937
968
  }
938
969
  async get(activatedRoute) {
939
970
  this.currentContext = this.contextRoute.getContextData(activatedRoute);
@@ -968,6 +999,16 @@ class AddDashboardFactory {
968
999
  const dashboardMO = await this.contextDashboardService.create(dashboardCfg, this.currentContext);
969
1000
  await this.contextDashboardService.navigateToDashboard(dashboardMO);
970
1001
  modal.close();
1002
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
1003
+ component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.ADD_DASHBOARD,
1004
+ action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.CREATE,
1005
+ name: dashboardCfg.name,
1006
+ id: dashboardMO.id,
1007
+ dashboardType: dashboardMO.c8y_Dashboard.deviceType
1008
+ ? dashboardMO.c8y_Dashboard.deviceTypeValue
1009
+ : null,
1010
+ context: this.contextDashboardService.getContextForGS(this.currentContext.contextData)
1011
+ });
971
1012
  }
972
1013
  catch (ex) {
973
1014
  // intended empty
@@ -990,14 +1031,14 @@ class AddDashboardFactory {
990
1031
  ]);
991
1032
  }
992
1033
  }
993
- AddDashboardFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, deps: [{ token: i5.Permissions }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i5.ContextRouteService }], target: i0.ɵɵFactoryTarget.Injectable });
1034
+ AddDashboardFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, deps: [{ token: i5.Permissions }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i5.ContextRouteService }, { token: i5.GainsightService }], target: i0.ɵɵFactoryTarget.Injectable });
994
1035
  AddDashboardFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, providedIn: 'root' });
995
1036
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AddDashboardFactory, decorators: [{
996
1037
  type: Injectable,
997
1038
  args: [{
998
1039
  providedIn: 'root'
999
1040
  }]
1000
- }], ctorParameters: function () { return [{ type: i5.Permissions }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i5.ContextRouteService }]; } });
1041
+ }], ctorParameters: function () { return [{ type: i5.Permissions }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i5.ContextRouteService }, { type: i5.GainsightService }]; } });
1001
1042
 
1002
1043
  class AddDashboardComponent {
1003
1044
  constructor(addDashboardFactory) {
@@ -1471,6 +1512,14 @@ class ContextDashboardComponent {
1471
1512
  const route = this.route.parent.snapshot.url.map(segment => segment.path).join('/');
1472
1513
  this.router.navigateByUrl(route);
1473
1514
  }
1515
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
1516
+ component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DELETE_DASHBOARD,
1517
+ action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DELETE,
1518
+ name: this.dashboard.name,
1519
+ id: this.mo.id,
1520
+ dashboardType: this.dashboard.deviceType ? this.dashboard.deviceTypeValue : null,
1521
+ context: this.contextDashboardService.getContextForGS(this.context)
1522
+ });
1474
1523
  }
1475
1524
  /**
1476
1525
  * Edits the current dashboard
@@ -1524,7 +1573,7 @@ class ContextDashboardComponent {
1524
1573
  }
1525
1574
  }
1526
1575
  get isDeviceTypeDashboard() {
1527
- return !!this.dashboard?.deviceType && !!this.dashboard.deviceTypeValue;
1576
+ return !!this.dashboard?.deviceType;
1528
1577
  }
1529
1578
  /**
1530
1579
  * Edits a widget on the dashboard.
@@ -1745,6 +1794,18 @@ class ContextDashboardComponent {
1745
1794
  this.addReportDashboardSettings();
1746
1795
  }
1747
1796
  this.isLoading = false;
1797
+ this.gainsightService.triggerEvent(isReport
1798
+ ? PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS
1799
+ : PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {
1800
+ component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_VIEW,
1801
+ action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.LOAD,
1802
+ name: this.dashboard.name,
1803
+ id: this.mo.id,
1804
+ dashboardType: this.dashboard.deviceType ? this.dashboard.deviceTypeValue : null,
1805
+ context: isReport
1806
+ ? PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
1807
+ : this.contextDashboardService.getContextForGS(this.context)
1808
+ });
1748
1809
  }
1749
1810
  mergeWidgetClasses(widget) {
1750
1811
  const hasHeaderClass = WIDGET_HEADER_CLASSES.find(el => widget.classes && widget.classes[el.class]);
@@ -2572,7 +2633,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2572
2633
  }] });
2573
2634
 
2574
2635
  class ReportDashboardListComponent {
2575
- constructor(inventoryService, contextDashboardService, bsModal, translateService, modal, alertService, reportDashboardService, permissions) {
2636
+ constructor(inventoryService, contextDashboardService, bsModal, translateService, modal, alertService, reportDashboardService, permissions, gainsightService) {
2576
2637
  this.inventoryService = inventoryService;
2577
2638
  this.contextDashboardService = contextDashboardService;
2578
2639
  this.bsModal = bsModal;
@@ -2581,6 +2642,7 @@ class ReportDashboardListComponent {
2581
2642
  this.alertService = alertService;
2582
2643
  this.reportDashboardService = reportDashboardService;
2583
2644
  this.permissions = permissions;
2645
+ this.gainsightService = gainsightService;
2584
2646
  this.textFilter$ = new BehaviorSubject('');
2585
2647
  this.reload$ = new BehaviorSubject(null);
2586
2648
  this.reloading = false;
@@ -2634,6 +2696,13 @@ class ReportDashboardListComponent {
2634
2696
  }
2635
2697
  this.reload$.next();
2636
2698
  modal.close();
2699
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS, {
2700
+ component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.ADD_REPORT,
2701
+ action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.CREATE,
2702
+ name: report.name,
2703
+ id: report.id,
2704
+ context: PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
2705
+ });
2637
2706
  }
2638
2707
  catch (ex) {
2639
2708
  if (ex) {
@@ -2663,6 +2732,13 @@ class ReportDashboardListComponent {
2663
2732
  this.reportDashboardService.removeNavigatorNode(report);
2664
2733
  }
2665
2734
  this.reload$.next();
2735
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS, {
2736
+ component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.REPORTS_LIST,
2737
+ action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DELETE,
2738
+ name: report.name,
2739
+ id: report.id,
2740
+ context: PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
2741
+ });
2666
2742
  }
2667
2743
  catch (ex) {
2668
2744
  if (ex) {
@@ -2678,12 +2754,12 @@ class ReportDashboardListComponent {
2678
2754
  : this.reportDashboardService.removeNavigatorNode(report);
2679
2755
  }
2680
2756
  }
2681
- ReportDashboardListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ReportDashboardListComponent, deps: [{ token: i1.InventoryService }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i3.TranslateService }, { token: i5.ModalService }, { token: i5.AlertService }, { token: ReportDashboardService }, { token: i5.Permissions }], target: i0.ɵɵFactoryTarget.Component });
2757
+ ReportDashboardListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ReportDashboardListComponent, deps: [{ token: i1.InventoryService }, { token: ContextDashboardService }, { token: i3$1.BsModalService }, { token: i3.TranslateService }, { token: i5.ModalService }, { token: i5.AlertService }, { token: ReportDashboardService }, { token: i5.Permissions }, { token: i5.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
2682
2758
  ReportDashboardListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ReportDashboardListComponent, selector: "c8y-report-dashboard-list", viewQueries: [{ propertyName: "filter", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<c8y-title>\n {{ 'Reports' | translate }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Filter' | translate\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n px-event=\"Clear filtering reports\"\n ></i>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-action-bar-button'\"\n (click)=\"add()\"\n [disabled]=\"!canAddReport\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add report' | translate }}\n </button>\n <button\n class=\"btn btn-dot m-r-16\"\n aria-label=\"{{ 'Info' | translate }}\"\n popover=\"{{ 'You don\\'t have permission to add reports' | translate }}\"\n placement=\"top\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"!canAddReport\"\n >\n <i\n class=\"text-primary\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"loadReports()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/cockpit/#reports\"></c8y-help>\n\n<c8y-list-group>\n <c8y-li\n class=\"page-sticky-header hidden-xs hidden-sm\"\n *ngIf=\"(reports$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n {{ 'Report' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Description' | translate }}\n </div>\n <div class=\"col-2\">\n {{ 'Show in navigator' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n\n <c8y-li *c8yFor=\"let report of reports$; let i = index; loadMore: 'auto'\">\n <c8y-li-icon [icon]=\"report.icon\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n <button\n class=\"btn-clean\"\n title=\"{{ report.name }}\"\n type=\"button\"\n routerLink=\"/reports/{{ report.id }}\"\n >\n <span class=\"text-truncate\">\n {{ report.name }}\n </span>\n </button>\n </div>\n <div class=\"col-6\">\n <p class=\"small text-truncate-wrap\">\n <em\n class=\"text-muted\"\n *ngIf=\"!report.description; else showDescription\"\n >\n {{ 'No description available' | translate }}\n </em>\n <ng-template #showDescription>\n {{ report.description }}\n </ng-template>\n </p>\n </div>\n <div class=\"col-2 fit-h-20 m-t-xs-8\">\n <label\n class=\"c8y-switch c8y-switch--inline\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"!!report.c8y_IsNavigatorNode\"\n (change)=\"update(report)\"\n />\n <span></span>\n <span class=\"visible-xs\">\n {{ 'Show in navigator' | translate }}\n </span>\n </label>\n </div>\n <div class=\"col-1 hidden-xs\">\n <button\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto d-flex\"\n [attr.aria-label]=\"'Remove report' | translate\"\n tooltip=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n <div class=\"visible-xs p-t-8 text-right\">\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Remove report' | translate }}\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n\n<c8y-ui-empty-state\n [icon]=\"'c8y-reports'\"\n [title]=\"'There are no reports defined.' | translate\"\n [subtitle]=\"'Add a report first.' | translate\"\n *ngIf=\"(reports$ | async)?.data.length === 0\"\n>\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-empty-state-button'\"\n [disabled]=\"!canAddReport\"\n (click)=\"add()\"\n >\n {{ 'Add report' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#reports\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n</c8y-ui-empty-state>\n", dependencies: [{ kind: "component", type: i5.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: i5.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i5.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i5.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i5.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i5.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i5.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i5.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i3$2.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5$1.AsyncPipe, name: "async" }] });
2683
2759
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ReportDashboardListComponent, decorators: [{
2684
2760
  type: Component,
2685
2761
  args: [{ selector: 'c8y-report-dashboard-list', template: "<c8y-title>\n {{ 'Reports' | translate }}\n</c8y-title>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Filter' | translate\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n px-event=\"Clear filtering reports\"\n ></i>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-action-bar-button'\"\n (click)=\"add()\"\n [disabled]=\"!canAddReport\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add report' | translate }}\n </button>\n <button\n class=\"btn btn-dot m-r-16\"\n aria-label=\"{{ 'Info' | translate }}\"\n popover=\"{{ 'You don\\'t have permission to add reports' | translate }}\"\n placement=\"top\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"!canAddReport\"\n >\n <i\n class=\"text-primary\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"loadReports()\"\n >\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': reloading }\"\n ></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/cockpit/#reports\"></c8y-help>\n\n<c8y-list-group>\n <c8y-li\n class=\"page-sticky-header hidden-xs hidden-sm\"\n *ngIf=\"(reports$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n {{ 'Report' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Description' | translate }}\n </div>\n <div class=\"col-2\">\n {{ 'Show in navigator' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n\n <c8y-li *c8yFor=\"let report of reports$; let i = index; loadMore: 'auto'\">\n <c8y-li-icon [icon]=\"report.icon\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n <button\n class=\"btn-clean\"\n title=\"{{ report.name }}\"\n type=\"button\"\n routerLink=\"/reports/{{ report.id }}\"\n >\n <span class=\"text-truncate\">\n {{ report.name }}\n </span>\n </button>\n </div>\n <div class=\"col-6\">\n <p class=\"small text-truncate-wrap\">\n <em\n class=\"text-muted\"\n *ngIf=\"!report.description; else showDescription\"\n >\n {{ 'No description available' | translate }}\n </em>\n <ng-template #showDescription>\n {{ report.description }}\n </ng-template>\n </p>\n </div>\n <div class=\"col-2 fit-h-20 m-t-xs-8\">\n <label\n class=\"c8y-switch c8y-switch--inline\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"!!report.c8y_IsNavigatorNode\"\n (change)=\"update(report)\"\n />\n <span></span>\n <span class=\"visible-xs\">\n {{ 'Show in navigator' | translate }}\n </span>\n </label>\n </div>\n <div class=\"col-1 hidden-xs\">\n <button\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto d-flex\"\n [attr.aria-label]=\"'Remove report' | translate\"\n tooltip=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n <div class=\"visible-xs p-t-8 text-right\">\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n (click)=\"delete(report)\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Remove report' | translate }}\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n\n<c8y-ui-empty-state\n [icon]=\"'c8y-reports'\"\n [title]=\"'There are no reports defined.' | translate\"\n [subtitle]=\"'Add a report first.' | translate\"\n *ngIf=\"(reports$ | async)?.data.length === 0\"\n>\n <p>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n [attr.data-cy]=\"'reports-add-report-empty-state-button'\"\n [disabled]=\"!canAddReport\"\n (click)=\"add()\"\n >\n {{ 'Add report' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#reports\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n</c8y-ui-empty-state>\n" }]
2686
- }], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i3.TranslateService }, { type: i5.ModalService }, { type: i5.AlertService }, { type: ReportDashboardService }, { type: i5.Permissions }]; }, propDecorators: { filter: [{
2762
+ }], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: ContextDashboardService }, { type: i3$1.BsModalService }, { type: i3.TranslateService }, { type: i5.ModalService }, { type: i5.AlertService }, { type: ReportDashboardService }, { type: i5.Permissions }, { type: i5.GainsightService }]; }, propDecorators: { filter: [{
2687
2763
  type: ViewChild,
2688
2764
  args: [FilterInputComponent, { static: false }]
2689
2765
  }] } });