@c8y/ngx-components 1023.14.60 → 1023.14.68

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/index.d.ts.map +1 -1
  2. package/datapoint-explorer/view/index.d.ts +1 -1
  3. package/ecosystem/index.d.ts.map +1 -1
  4. package/ecosystem/shared/index.d.ts +1 -1
  5. package/ecosystem/shared/index.d.ts.map +1 -1
  6. package/fesm2022/c8y-ngx-components-asset-properties.mjs +5 -6
  7. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  8. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs → c8y-ngx-components-asset-property-grid.component-CfTLV3QX.mjs} +2 -2
  9. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs.map → c8y-ngx-components-asset-property-grid.component-CfTLV3QX.mjs.map} +1 -1
  10. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +1 -1
  11. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  12. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -5
  13. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  14. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +2 -2
  15. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  16. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +2 -1
  17. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  18. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +1 -1
  19. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  20. package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
  21. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  22. package/fesm2022/c8y-ngx-components-device-profile.mjs +1 -1
  23. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +1 -1
  25. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  26. package/fesm2022/c8y-ngx-components-echart.mjs +6 -3
  27. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +1 -1
  29. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  30. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-ecosystem.mjs +4 -4
  32. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-exports-list.mjs +1 -1
  34. package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-files-repository.mjs +1 -1
  36. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  37. package/fesm2022/c8y-ngx-components-messaging-management.mjs +2 -2
  38. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
  39. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +1 -1
  40. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  41. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +1 -1
  42. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
  43. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  44. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  45. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +1 -1
  46. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  47. package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
  48. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  49. package/fesm2022/c8y-ngx-components-search.mjs +1 -1
  50. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  51. package/fesm2022/c8y-ngx-components-services.mjs +1 -1
  52. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  53. package/fesm2022/c8y-ngx-components-sub-assets.mjs +1 -1
  54. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  55. package/fesm2022/c8y-ngx-components-tenants.mjs +7 -6
  56. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  57. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +1 -1
  58. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  59. package/fesm2022/c8y-ngx-components.mjs +8 -4
  60. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  61. package/index.d.ts +19 -1
  62. package/index.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/tenants/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';
@@ -640,6 +640,9 @@ class ContextDashboardService {
640
640
  this.navigator.add(node);
641
641
  }
642
642
  getContextForGS(mo) {
643
+ if (!mo) {
644
+ return null;
645
+ }
643
646
  if (this.groupService.isDevice(mo)) {
644
647
  return PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.DEVICE;
645
648
  }
@@ -1254,7 +1257,8 @@ class DashboardDetailComponent {
1254
1257
  };
1255
1258
  }
1256
1259
  async cancel() {
1257
- if (!this.isEdit && !this.isReport) {
1260
+ const isUnsavedDefaultDashboard = this.isNamedDashboard && !this.mo.id;
1261
+ if (!this.isEdit && !this.isReport && !isUnsavedDefaultDashboard) {
1258
1262
  // dashboard creation in it's own tab- confirm and cleanup triggered in canDeactivate during routing
1259
1263
  this.tabsService.items$.pipe(first()).subscribe((tabs) => {
1260
1264
  const tab = tabs.find(t => t.featureId !== newDashboardTab.featureId);
@@ -1344,11 +1348,17 @@ class DashboardDetailComponent {
1344
1348
  }
1345
1349
  }
1346
1350
  async createNewDashboard() {
1351
+ const isUnsavedDefaultDashboard = this.isNamedDashboard && !this.mo.id;
1347
1352
  const mo = await this.contextDashboardService.create(this.dashboard, this.currentContext, this.isNamedDashboard ? this.dashboard.name : undefined);
1348
1353
  await this.onCreateGSEvent(mo);
1349
1354
  await this.clearNamedOutletPath();
1350
1355
  this.cleanupAfterDetailsClose();
1351
- await this.contextDashboardService.navigateToDashboard(mo, true);
1356
+ if (!isUnsavedDefaultDashboard) {
1357
+ await this.contextDashboardService.navigateToDashboard(mo, true);
1358
+ }
1359
+ else {
1360
+ this.dashboardSaved.emit(mo);
1361
+ }
1352
1362
  }
1353
1363
  async onCreateGSEvent(mo) {
1354
1364
  const parentName = await this.convertStringToHash(this.context?.name);
@@ -1524,7 +1534,7 @@ class DashboardDetailComponent {
1524
1534
  this.tabs = this.dashboardDetailService.getTabs();
1525
1535
  }
1526
1536
  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 }); }
1527
- 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" }] }); }
1537
+ 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" }] }); }
1528
1538
  }
1529
1539
  __decorate([
1530
1540
  memoize(),
@@ -1534,7 +1544,7 @@ __decorate([
1534
1544
  ], DashboardDetailComponent.prototype, "convertStringToHash", null);
1535
1545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DashboardDetailComponent, decorators: [{
1536
1546
  type: Component,
1537
- 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" }]
1547
+ 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" }]
1538
1548
  }], 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: [{
1539
1549
  type: Input
1540
1550
  }], deviceType: [{