@c8y/ngx-components 1023.26.1 → 1023.30.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.
Files changed (86) hide show
  1. package/cockpit-config/index.d.ts.map +1 -1
  2. package/context-dashboard/index.d.ts.map +1 -1
  3. package/datapoint-explorer/view/index.d.ts +1 -1
  4. package/datapoint-selector/index.d.ts.map +1 -1
  5. package/ecosystem/application-plugins/index.d.ts.map +1 -1
  6. package/ecosystem/index.d.ts.map +1 -1
  7. package/ecosystem/shared/index.d.ts +1 -1
  8. package/ecosystem/shared/index.d.ts.map +1 -1
  9. package/fesm2022/c8y-ngx-components-asset-properties.mjs +5 -6
  10. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  11. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-QedBlFUH.mjs → c8y-ngx-components-asset-property-grid.component-B04ixTyA.mjs} +2 -2
  12. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-QedBlFUH.mjs.map → c8y-ngx-components-asset-property-grid.component-B04ixTyA.mjs.map} +1 -1
  13. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +1 -1
  14. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +7 -7
  16. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  17. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -5
  18. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +2 -2
  20. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  21. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +2 -1
  22. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  23. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +4 -12
  24. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  25. package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
  26. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  27. package/fesm2022/c8y-ngx-components-device-profile.mjs +1 -1
  28. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  29. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +1 -1
  30. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-echart.mjs +6 -3
  32. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +10 -7
  34. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  36. package/fesm2022/c8y-ngx-components-ecosystem.mjs +4 -4
  37. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  38. package/fesm2022/c8y-ngx-components-exports-list.mjs +1 -1
  39. package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
  40. package/fesm2022/c8y-ngx-components-files-repository.mjs +1 -1
  41. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  42. package/fesm2022/c8y-ngx-components-messaging-management.mjs +2 -2
  43. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +1 -1
  45. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +1 -1
  47. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
  48. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  49. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  50. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +1 -1
  51. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  52. package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
  53. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  54. package/fesm2022/c8y-ngx-components-search.mjs +1 -1
  55. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  56. package/fesm2022/c8y-ngx-components-services.mjs +1 -1
  57. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  58. package/fesm2022/c8y-ngx-components-sub-assets.mjs +1 -1
  59. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  60. package/fesm2022/c8y-ngx-components-tenants.mjs +7 -6
  61. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  62. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +1 -1
  63. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  64. package/fesm2022/c8y-ngx-components-widgets-exports.mjs +52 -50
  65. package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
  66. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +4 -0
  67. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
  68. package/fesm2022/c8y-ngx-components.mjs +33 -11
  69. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  70. package/index.d.ts +24 -3
  71. package/index.d.ts.map +1 -1
  72. package/locales/de.po +291 -3
  73. package/locales/es.po +291 -3
  74. package/locales/fr.po +291 -3
  75. package/locales/ja_JP.po +291 -3
  76. package/locales/ko.po +291 -3
  77. package/locales/locales.pot +291 -3
  78. package/locales/nl.po +291 -3
  79. package/locales/pl.po +291 -3
  80. package/locales/pt_BR.po +291 -3
  81. package/locales/zh_CN.po +291 -3
  82. package/locales/zh_TW.po +291 -3
  83. package/package.json +1 -1
  84. package/tenants/index.d.ts.map +1 -1
  85. package/widgets/exports/index.d.ts.map +1 -1
  86. package/widgets/implementations/three-d-rotation/index.d.ts.map +1 -1
@@ -8,7 +8,7 @@ import { of, Subject, from, combineLatest, map as map$1, BehaviorSubject, tap as
8
8
  import { gettext } from '@c8y/ngx-components/gettext';
9
9
  import { __decorate, __metadata } from 'tslib';
10
10
  import * as i3 from '@angular/common';
11
- import { NgIf, NgTemplateOutlet, CommonModule, NgClass, AsyncPipe, NgForOf, NgFor } from '@angular/common';
11
+ import { NgTemplateOutlet, CommonModule, NgClass, AsyncPipe, NgIf, NgForOf, NgFor } from '@angular/common';
12
12
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
13
13
  import * as i6 from '@c8y/ngx-components/context-dashboard-state';
14
14
  import * as i2$1 from '@ngx-translate/core';
@@ -641,6 +641,9 @@ class ContextDashboardService {
641
641
  this.navigator.add(node);
642
642
  }
643
643
  getContextForGS(mo) {
644
+ if (!mo) {
645
+ return null;
646
+ }
644
647
  if (this.groupService.isDevice(mo)) {
645
648
  return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.DEVICE;
646
649
  }
@@ -1255,7 +1258,8 @@ class DashboardDetailComponent {
1255
1258
  };
1256
1259
  }
1257
1260
  async cancel() {
1258
- if (!this.isEdit && !this.isReport) {
1261
+ const isUnsavedDefaultDashboard = this.isNamedDashboard && !this.mo.id;
1262
+ if (!this.isEdit && !this.isReport && !isUnsavedDefaultDashboard) {
1259
1263
  // dashboard creation in it's own tab- confirm and cleanup triggered in canDeactivate during routing
1260
1264
  this.tabsService.items$.pipe(first()).subscribe((tabs) => {
1261
1265
  const tab = tabs.find(t => t.featureId !== newDashboardTab.featureId);
@@ -1345,11 +1349,17 @@ class DashboardDetailComponent {
1345
1349
  }
1346
1350
  }
1347
1351
  async createNewDashboard() {
1352
+ const isUnsavedDefaultDashboard = this.isNamedDashboard && !this.mo.id;
1348
1353
  const mo = await this.contextDashboardService.create(this.dashboard, this.currentContext, this.isNamedDashboard ? this.dashboard.name : undefined);
1349
1354
  await this.onCreateGSEvent(mo);
1350
1355
  await this.clearNamedOutletPath();
1351
1356
  this.cleanupAfterDetailsClose();
1352
- await this.contextDashboardService.navigateToDashboard(mo, true);
1357
+ if (!isUnsavedDefaultDashboard) {
1358
+ await this.contextDashboardService.navigateToDashboard(mo, true);
1359
+ }
1360
+ else {
1361
+ this.dashboardSaved.emit(mo);
1362
+ }
1353
1363
  }
1354
1364
  async onCreateGSEvent(mo) {
1355
1365
  const parentName = await this.convertStringToHash(this.context?.name);
@@ -1525,7 +1535,7 @@ class DashboardDetailComponent {
1525
1535
  this.tabs = this.dashboardDetailService.getTabs();
1526
1536
  }
1527
1537
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DashboardDetailComponent, deps: [{ token: ContextDashboardService }, { token: i2$1.TranslateService }, { token: i2.ContextRouteService }, { token: i1.ActivatedRoute }, { token: i2.TabsService }, { token: i1.Router }, { token: i1$1.InventoryService }, { token: i1.ActivatedRoute }, { token: DashboardDetailService }, { token: i2.AppStateService }, { token: i2.GroupService }, { token: i2.ModalService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
1528
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DashboardDetailComponent, isStandalone: true, selector: "c8y-dashboard-detail", inputs: { isReport: "isReport", deviceType: "deviceType", context: "context", mo: "mo", dashboard: "dashboard", isNamedDashboard: "isNamedDashboard", hideAvailability: "hideAvailability" }, outputs: { dashboardSaved: "dashboardSaved", previewChanged: "previewChanged" }, providers: [DashboardDetailService], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"collapse c8y-top-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <div class=\"p-t-16 p-b-16 p-l-24 p-r-24 separator-bottom\">\n <span class=\"h4\">{{ 'Dashboard settings' | translate }}</span>\n </div>\n\n <div\n class=\"d-flex\"\n *ngIf=\"!isCollapsed\"\n >\n <c8y-tabs-outlet\n class=\"c8y-top-drawer--tabs\"\n [tabs]=\"tabs\"\n [outletName]=\"TABS_OUTLET_NAME\"\n [orientation]=\"'vertical'\"\n [openFirstTab]=\"true\"\n ></c8y-tabs-outlet>\n\n <div\n class=\"inner-scroll c8y-top-drawer__tabs-container flex-grow p-l-24 p-r-lg-32 p-r-xs-24 p-r-sm-24\"\n >\n <router-outlet name=\"dashboard-details\"></router-outlet>\n </div>\n </div>\n\n <div class=\"c8y-top-drawer--footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--cancel-dashboard\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--save-dashboard\"\n (click)=\"save()\"\n [disabled]=\"((dashboardDetailsForm?.invalid || dashboardDetailsForm?.pristine) && this.isEdit) || dashboardDetailService.saveButtonDisabled\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen", "outletName", "context", "openFirstTab", "hasHeader"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
1538
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DashboardDetailComponent, isStandalone: true, selector: "c8y-dashboard-detail", inputs: { isReport: "isReport", deviceType: "deviceType", context: "context", mo: "mo", dashboard: "dashboard", isNamedDashboard: "isNamedDashboard", hideAvailability: "hideAvailability" }, outputs: { dashboardSaved: "dashboardSaved", previewChanged: "previewChanged" }, providers: [DashboardDetailService], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"collapse c8y-top-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <div class=\"p-t-16 p-b-16 p-l-24 p-r-24 separator-bottom\">\n <span class=\"h4\">{{ 'Dashboard settings' | translate }}</span>\n </div>\n\n @if (!isCollapsed) {\n <div class=\"d-flex\">\n <c8y-tabs-outlet\n class=\"c8y-top-drawer--tabs\"\n [tabs]=\"tabs\"\n [outletName]=\"TABS_OUTLET_NAME\"\n [orientation]=\"'vertical'\"\n [openFirstTab]=\"true\"\n ></c8y-tabs-outlet>\n\n <div\n class=\"inner-scroll c8y-top-drawer__tabs-container flex-grow p-l-24 p-r-lg-32 p-r-xs-24 p-r-sm-24\"\n >\n <router-outlet name=\"dashboard-details\"></router-outlet>\n </div>\n </div>\n }\n\n <div class=\"c8y-top-drawer--footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--cancel-dashboard\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--save-dashboard\"\n (click)=\"save()\"\n [disabled]=\"\n ((dashboardDetailsForm?.invalid || dashboardDetailsForm?.pristine) && this.isEdit) ||\n dashboardDetailService.saveButtonDisabled\n \"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "component", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen", "outletName", "context", "openFirstTab", "hasHeader"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
1529
1539
  }
1530
1540
  __decorate([
1531
1541
  memoize(),
@@ -1535,7 +1545,7 @@ __decorate([
1535
1545
  ], DashboardDetailComponent.prototype, "convertStringToHash", null);
1536
1546
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DashboardDetailComponent, decorators: [{
1537
1547
  type: Component,
1538
- args: [{ selector: 'c8y-dashboard-detail', providers: [DashboardDetailService], imports: [CollapseDirective, NgIf, TabsOutletComponent, RouterOutlet, C8yTranslatePipe], template: "<div\n class=\"collapse c8y-top-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <div class=\"p-t-16 p-b-16 p-l-24 p-r-24 separator-bottom\">\n <span class=\"h4\">{{ 'Dashboard settings' | translate }}</span>\n </div>\n\n <div\n class=\"d-flex\"\n *ngIf=\"!isCollapsed\"\n >\n <c8y-tabs-outlet\n class=\"c8y-top-drawer--tabs\"\n [tabs]=\"tabs\"\n [outletName]=\"TABS_OUTLET_NAME\"\n [orientation]=\"'vertical'\"\n [openFirstTab]=\"true\"\n ></c8y-tabs-outlet>\n\n <div\n class=\"inner-scroll c8y-top-drawer__tabs-container flex-grow p-l-24 p-r-lg-32 p-r-xs-24 p-r-sm-24\"\n >\n <router-outlet name=\"dashboard-details\"></router-outlet>\n </div>\n </div>\n\n <div class=\"c8y-top-drawer--footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--cancel-dashboard\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--save-dashboard\"\n (click)=\"save()\"\n [disabled]=\"((dashboardDetailsForm?.invalid || dashboardDetailsForm?.pristine) && this.isEdit) || dashboardDetailService.saveButtonDisabled\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n" }]
1548
+ args: [{ selector: 'c8y-dashboard-detail', providers: [DashboardDetailService], imports: [CollapseDirective, TabsOutletComponent, RouterOutlet, C8yTranslatePipe], template: "<div\n class=\"collapse c8y-top-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n>\n <div class=\"p-t-16 p-b-16 p-l-24 p-r-24 separator-bottom\">\n <span class=\"h4\">{{ 'Dashboard settings' | translate }}</span>\n </div>\n\n @if (!isCollapsed) {\n <div class=\"d-flex\">\n <c8y-tabs-outlet\n class=\"c8y-top-drawer--tabs\"\n [tabs]=\"tabs\"\n [outletName]=\"TABS_OUTLET_NAME\"\n [orientation]=\"'vertical'\"\n [openFirstTab]=\"true\"\n ></c8y-tabs-outlet>\n\n <div\n class=\"inner-scroll c8y-top-drawer__tabs-container flex-grow p-l-24 p-r-lg-32 p-r-xs-24 p-r-sm-24\"\n >\n <router-outlet name=\"dashboard-details\"></router-outlet>\n </div>\n </div>\n }\n\n <div class=\"c8y-top-drawer--footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--cancel-dashboard\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n data-cy=\"dashboard-detail--save-dashboard\"\n (click)=\"save()\"\n [disabled]=\"\n ((dashboardDetailsForm?.invalid || dashboardDetailsForm?.pristine) && this.isEdit) ||\n dashboardDetailService.saveButtonDisabled\n \"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n" }]
1539
1549
  }], ctorParameters: () => [{ type: ContextDashboardService }, { type: i2$1.TranslateService }, { type: i2.ContextRouteService }, { type: i1.ActivatedRoute }, { type: i2.TabsService }, { type: i1.Router }, { type: i1$1.InventoryService }, { type: i1.ActivatedRoute }, { type: DashboardDetailService }, { type: i2.AppStateService }, { type: i2.GroupService }, { type: i2.ModalService }, { type: i2.GainsightService }], propDecorators: { isReport: [{
1540
1550
  type: Input
1541
1551
  }], deviceType: [{