@c8y/ngx-components 1023.14.57 → 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.
- package/context-dashboard/index.d.ts.map +1 -1
- package/datapoint-explorer/view/index.d.ts +1 -1
- package/device-provisioned-certificates/index.d.ts.map +1 -1
- package/ecosystem/index.d.ts.map +1 -1
- package/ecosystem/shared/index.d.ts +1 -1
- package/ecosystem/shared/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +5 -6
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs → c8y-ngx-components-asset-property-grid.component-CfTLV3QX.mjs} +2 -2
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs.map → c8y-ngx-components-asset-property-grid.component-CfTLV3QX.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs +67 -0
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +17 -7
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +2 -2
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +2 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +5 -6
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +6 -3
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +4 -4
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-exports-list.mjs +1 -1
- package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-messaging-management.mjs +2 -2
- package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +7 -6
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +10 -6
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/index.d.ts +20 -2
- package/index.d.ts.map +1 -1
- package/locales/de.po +17 -5
- package/locales/es.po +16 -4
- package/locales/fr.po +16 -4
- package/locales/ja_JP.po +16 -4
- package/locales/ko.po +16 -4
- package/locales/locales.pot +11 -2
- package/locales/nl.po +16 -4
- package/locales/pl.po +18 -6
- package/locales/pt_BR.po +16 -4
- package/locales/zh_CN.po +16 -4
- package/locales/zh_TW.po +16 -4
- package/package.json +1 -1
- package/tenants/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DM3hASUP.mjs +0 -60
- package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DM3hASUP.mjs.map +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { DASHBOARD_THEME_CLASSES, WIDGET_HEADER_CLASSES, ContextDashboardService, DashboardDetailService, AppearanceSettingsComponent } from './c8y-ngx-components-context-dashboard.mjs';
|
|
4
|
+
import * as i5 from '@angular/forms';
|
|
5
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import * as i2 from '@c8y/ngx-components';
|
|
7
|
+
import { CoreModule, C8yTranslatePipe } from '@c8y/ngx-components';
|
|
8
|
+
import { PopoverDirective } from 'ngx-bootstrap/popover';
|
|
9
|
+
|
|
10
|
+
class DashboardAppearanceSettingsComponent {
|
|
11
|
+
constructor(contextDashboardService, dashboardDetailService) {
|
|
12
|
+
this.contextDashboardService = contextDashboardService;
|
|
13
|
+
this.dashboardDetailService = dashboardDetailService;
|
|
14
|
+
this.styling = {
|
|
15
|
+
themeClass: 'dashboard-theme-light',
|
|
16
|
+
headerClass: 'panel-title-regular'
|
|
17
|
+
};
|
|
18
|
+
this.DEFAULT_DASHBOARD_MARGIN = 12;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.dashboard = this.dashboardDetailService.details.dashboard;
|
|
22
|
+
this.appearanceSettingsForm = this.dashboardDetailService.appearanceSettingsForm;
|
|
23
|
+
if (this.dashboard) {
|
|
24
|
+
this.setDashboardStyle();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
changeThemeClass(themeClass) {
|
|
28
|
+
this.styling.themeClass = themeClass;
|
|
29
|
+
this.appearanceSettingsForm.get('classes').setValue({ [this.styling.themeClass]: true });
|
|
30
|
+
this.dashboardDetailService.previewChangedFn({ classes: { [this.styling.themeClass]: true } });
|
|
31
|
+
this.appearanceSettingsForm.markAsDirty();
|
|
32
|
+
}
|
|
33
|
+
changeHeaderClass(headerClass) {
|
|
34
|
+
this.styling.headerClass = headerClass;
|
|
35
|
+
this.appearanceSettingsForm.get('widgetClasses').setValue({ [this.styling.headerClass]: true });
|
|
36
|
+
this.dashboardDetailService.previewChangedFn({
|
|
37
|
+
widgetClasses: { [this.styling.headerClass]: true }
|
|
38
|
+
});
|
|
39
|
+
this.appearanceSettingsForm.markAsDirty();
|
|
40
|
+
}
|
|
41
|
+
setDashboardStyle() {
|
|
42
|
+
const allClasses = {
|
|
43
|
+
...this.appearanceSettingsForm.get('classes').value,
|
|
44
|
+
...this.appearanceSettingsForm.get('widgetClasses').value
|
|
45
|
+
};
|
|
46
|
+
const styles = Object.keys(allClasses).map(c => c.split('-').pop());
|
|
47
|
+
styles.forEach(styleName => {
|
|
48
|
+
this.styling.themeClass = this.contextDashboardService.getStyling(DASHBOARD_THEME_CLASSES, styleName, this.styling.themeClass);
|
|
49
|
+
this.styling.headerClass = this.contextDashboardService.getStyling(WIDGET_HEADER_CLASSES, styleName, this.styling.headerClass);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DashboardAppearanceSettingsComponent, deps: [{ token: ContextDashboardService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DashboardAppearanceSettingsComponent, isStandalone: true, selector: "c8y-dashboard-appearance-settings", ngImport: i0, template: "<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label>\n {{ 'Translate if possible' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Translates dashboard or widget titles if they are written in English and their translations are available in the loaded standard or custom translation resources.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate dashboard title if possible' | translate }}\"\n >\n <input\n name=\"translateDashboardTitle\"\n type=\"checkbox\"\n formControlName=\"translateDashboardTitle\"\n />\n <span></span>\n <span>{{ 'Dashboard title' | translate }}</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate widget titles if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Widget titles' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.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: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: AppearanceSettingsComponent, selector: "c8y-appearance-settings", inputs: ["themeClass", "headerClass", "defaultThemeClass", "defaultHeaderClass", "dashboardSettings", "possibleStylingTheme", "possibleStylingHeader", "columns"], outputs: ["themeClassChange", "headerClassChange", "onChange"] }, { kind: "directive", type: 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: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DashboardAppearanceSettingsComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: 'c8y-dashboard-appearance-settings', standalone: true, imports: [
|
|
58
|
+
ReactiveFormsModule,
|
|
59
|
+
CoreModule,
|
|
60
|
+
AppearanceSettingsComponent,
|
|
61
|
+
C8yTranslatePipe,
|
|
62
|
+
PopoverDirective
|
|
63
|
+
], template: "<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label>\n {{ 'Translate if possible' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Translates dashboard or widget titles if they are written in English and their translations are available in the loaded standard or custom translation resources.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate dashboard title if possible' | translate }}\"\n >\n <input\n name=\"translateDashboardTitle\"\n type=\"checkbox\"\n formControlName=\"translateDashboardTitle\"\n />\n <span></span>\n <span>{{ 'Dashboard title' | translate }}</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate widget titles if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Widget titles' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n" }]
|
|
64
|
+
}], ctorParameters: () => [{ type: ContextDashboardService }, { type: DashboardDetailService }] });
|
|
65
|
+
|
|
66
|
+
export { DashboardAppearanceSettingsComponent };
|
|
67
|
+
//# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs","sources":["../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.ts","../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n ContextDashboard,\n DASHBOARD_THEME_CLASSES,\n WIDGET_HEADER_CLASSES\n} from '../context-dashboard.model';\nimport { ContextDashboardService } from '../context-dashboard.service';\nimport { DashboardDetailService } from '../dashboard-detail.service';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { C8yTranslatePipe, CoreModule } from '@c8y/ngx-components';\nimport { AppearanceSettingsComponent } from '../widget-config/appearance-settings.component';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\n\n@Component({\n selector: 'c8y-dashboard-appearance-settings',\n templateUrl: './dashboard-appearance-settings.component.html',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n CoreModule,\n AppearanceSettingsComponent,\n C8yTranslatePipe,\n PopoverDirective\n ]\n})\nexport class DashboardAppearanceSettingsComponent implements OnInit {\n dashboard: ContextDashboard;\n appearanceSettingsForm: DashboardDetailService['appearanceSettingsForm'];\n styling = {\n themeClass: 'dashboard-theme-light',\n headerClass: 'panel-title-regular'\n };\n\n readonly DEFAULT_DASHBOARD_MARGIN = 12;\n\n constructor(\n private contextDashboardService: ContextDashboardService,\n private dashboardDetailService: DashboardDetailService\n ) {}\n\n ngOnInit() {\n this.dashboard = this.dashboardDetailService.details.dashboard;\n this.appearanceSettingsForm = this.dashboardDetailService.appearanceSettingsForm;\n if (this.dashboard) {\n this.setDashboardStyle();\n }\n }\n\n changeThemeClass(themeClass: string) {\n this.styling.themeClass = themeClass;\n this.appearanceSettingsForm.get('classes').setValue({ [this.styling.themeClass]: true });\n this.dashboardDetailService.previewChangedFn({ classes: { [this.styling.themeClass]: true } });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n changeHeaderClass(headerClass: string) {\n this.styling.headerClass = headerClass;\n this.appearanceSettingsForm.get('widgetClasses').setValue({ [this.styling.headerClass]: true });\n this.dashboardDetailService.previewChangedFn({\n widgetClasses: { [this.styling.headerClass]: true }\n });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n private setDashboardStyle() {\n const allClasses = {\n ...this.appearanceSettingsForm.get('classes').value,\n ...this.appearanceSettingsForm.get('widgetClasses').value\n };\n\n const styles = Object.keys(allClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n this.styling.themeClass = this.contextDashboardService.getStyling(\n DASHBOARD_THEME_CLASSES,\n styleName,\n this.styling.themeClass\n );\n this.styling.headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n this.styling.headerClass\n );\n });\n }\n}\n","<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label>\n {{ 'Translate if possible' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Translates dashboard or widget titles if they are written in English and their translations are available in the loaded standard or custom translation resources.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate dashboard title if possible' | translate }}\"\n >\n <input\n name=\"translateDashboardTitle\"\n type=\"checkbox\"\n formControlName=\"translateDashboardTitle\"\n />\n <span></span>\n <span>{{ 'Dashboard title' | translate }}</span>\n </label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate widget titles if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Widget titles' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n"],"names":["i1.ContextDashboardService","i2.DashboardDetailService","i4"],"mappings":"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"}
|
|
@@ -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 {
|
|
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
|
-
|
|
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
|
-
|
|
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: "
|
|
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,
|
|
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: [{
|
|
@@ -3697,7 +3707,7 @@ class ContextDashboardModule {
|
|
|
3697
3707
|
},
|
|
3698
3708
|
{
|
|
3699
3709
|
path: DashboardDetailsTabId.APPEARANCE,
|
|
3700
|
-
loadComponent: () => import('./c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-
|
|
3710
|
+
loadComponent: () => import('./c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs').then(m => m.DashboardAppearanceSettingsComponent),
|
|
3701
3711
|
outlet: DASHBOARD_DETAILS_OUTLET,
|
|
3702
3712
|
context: ViewContext.Dashboard
|
|
3703
3713
|
},
|
|
@@ -3770,7 +3780,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
3770
3780
|
},
|
|
3771
3781
|
{
|
|
3772
3782
|
path: DashboardDetailsTabId.APPEARANCE,
|
|
3773
|
-
loadComponent: () => import('./c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-
|
|
3783
|
+
loadComponent: () => import('./c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs').then(m => m.DashboardAppearanceSettingsComponent),
|
|
3774
3784
|
outlet: DASHBOARD_DETAILS_OUTLET,
|
|
3775
3785
|
context: ViewContext.Dashboard
|
|
3776
3786
|
},
|