@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
97 lines • 13.2 kB
JavaScript
import { Injectable } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
import { gettext } from '@c8y/ngx-components';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "@ngx-translate/core";
export class DashboardDetailService {
constructor(fb, translateService) {
this.fb = fb;
this.translateService = translateService;
this.styling = {
themeClass: 'dashboard-theme-light',
headerClass: 'panel-title-regular'
};
this.DEFAULT_DASHBOARD_MARGIN = 12;
this.DEFAULT_DASHBOARD_ICON = 'th';
this.DEFAULT_DASHBOARD_PRIORITY = 5000;
}
/**
* Creates dashboard details form divided into two groups- general settings and appearance settings.
* @param dashboard Context dashboard object
* @param isReport True if its report dashboard
* @param allowTypeDashboard Allow to make dashboard type dashboard
* @returns Dashboard details form
*/
initForm(dashboard, isReport, allowTypeDashboard) {
return this.fb.group({
generalSettingsForm: this.initGeneralSettingsForm(dashboard, isReport, allowTypeDashboard),
appearanceSettingsForm: this.initAppearanceSettingsForm(dashboard)
});
}
/**
* Creates form group for general settings of dashboard.
* @param dashboard Context dashboard object
* @param isReport True if its report dashboard
* @param deviceTypeValue Value used for typed dashboard
* @returns Dashboard general settings form
*/
initGeneralSettingsForm(dashboard, isReport, allowTypeDashboard) {
const globalRolesIdsValue = !dashboard?.globalRolesIds
? null
: Array.isArray(dashboard.globalRolesIds)
? [...dashboard.globalRolesIds]
: dashboard.globalRolesIds;
return this.fb.group({
icon: [dashboard?.icon || this.DEFAULT_DASHBOARD_ICON, [Validators.minLength(1)]],
priority: [
dashboard?.priority || this.DEFAULT_DASHBOARD_PRIORITY,
[Validators.min(-10000), Validators.max(10000), Validators.required]
],
name: [
dashboard?.name ||
(isReport
? this.translateService.instant(gettext('Report'))
: this.translateService.instant(gettext('Dashboard'))),
[Validators.required, Validators.maxLength(512)]
],
description: [dashboard?.description || null, [Validators.maxLength(1_000)]],
globalRolesIds: [globalRolesIdsValue],
c8y_IsNavigatorNode: [!!dashboard?.c8y_IsNavigatorNode],
...(allowTypeDashboard !== 'disallow' && {
deviceType: [
{
value: dashboard?.deviceType ?? false,
disabled: allowTypeDashboard === 'allow_if_type_filled'
}
]
})
});
}
/**
* Creates form group for appearance settings of dashboard.
* @param dashboard Context dashboard object
* @returns Dashboard appearance settings form
*/
initAppearanceSettingsForm(dashboard) {
return this.fb.group({
widgetMargin: [
dashboard?.widgetMargin || this.DEFAULT_DASHBOARD_MARGIN,
[Validators.min(0), Validators.max(50)]
],
translateWidgetTitle: [!!dashboard?.translateWidgetTitle],
classes: [dashboard?.classes || { [this.styling.themeClass]: true }],
widgetClasses: [dashboard?.widgetClasses || { [this.styling.headerClass]: true }]
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardDetailService, deps: [{ token: i1.FormBuilder }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardDetailService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardDetailService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.TranslateService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWRldGFpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvZGFzaGJvYXJkLWRldGFpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFLOUMsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNVLEVBQWUsRUFDZixnQkFBa0M7UUFEbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYNUMsWUFBTyxHQUFHO1lBQ1IsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxXQUFXLEVBQUUscUJBQXFCO1NBQ25DLENBQUM7UUFFTyw2QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFDOUIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLCtCQUEwQixHQUFHLElBQUksQ0FBQztJQUt4QyxDQUFDO0lBQ0o7Ozs7OztPQU1HO0lBQ0gsUUFBUSxDQUNOLFNBQTJCLEVBQzNCLFFBQWlCLEVBQ2pCLGtCQUFzQztRQUV0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25CLG1CQUFtQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDO1lBQzFGLHNCQUFzQixFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUM7U0FDbkUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILHVCQUF1QixDQUNyQixTQUEyQixFQUMzQixRQUFpQixFQUNqQixrQkFBc0M7UUFFdEMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxjQUFjO1lBQ3BELENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO2dCQUMvQixDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25CLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLFFBQVEsRUFBRTtnQkFDUixTQUFTLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQywwQkFBMEI7Z0JBQ3RELENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUNyRTtZQUNELElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsSUFBSTtvQkFDYixDQUFDLFFBQVE7d0JBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUNsRCxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDMUQsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakQ7WUFDRCxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM1RSxjQUFjLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNyQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUM7WUFDdkQsR0FBRyxDQUFDLGtCQUFrQixLQUFLLFVBQVUsSUFBSTtnQkFDdkMsVUFBVSxFQUFFO29CQUNWO3dCQUNFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxJQUFJLEtBQUs7d0JBQ3JDLFFBQVEsRUFBRSxrQkFBa0IsS0FBSyxzQkFBc0I7cUJBQ3hEO2lCQUNGO2FBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsMEJBQTBCLENBQUMsU0FBMkI7UUFDcEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQixZQUFZLEVBQUU7Z0JBQ1osU0FBUyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsd0JBQXdCO2dCQUN4RCxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN4QztZQUNELG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQztZQUN6RCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3BFLGFBQWEsRUFBRSxDQUFDLFNBQVMsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDbEYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F6RlUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbGxvd1R5cGVEYXNoYm9hcmQsIENvbnRleHREYXNoYm9hcmQgfSBmcm9tICcuL2NvbnRleHQtZGFzaGJvYXJkLm1vZGVsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkRGV0YWlsU2VydmljZSB7XG4gIHN0eWxpbmcgPSB7XG4gICAgdGhlbWVDbGFzczogJ2Rhc2hib2FyZC10aGVtZS1saWdodCcsXG4gICAgaGVhZGVyQ2xhc3M6ICdwYW5lbC10aXRsZS1yZWd1bGFyJ1xuICB9O1xuXG4gIHJlYWRvbmx5IERFRkFVTFRfREFTSEJPQVJEX01BUkdJTiA9IDEyO1xuICByZWFkb25seSBERUZBVUxUX0RBU0hCT0FSRF9JQ09OID0gJ3RoJztcbiAgcmVhZG9ubHkgREVGQVVMVF9EQVNIQk9BUkRfUFJJT1JJVFkgPSA1MDAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGRhc2hib2FyZCBkZXRhaWxzIGZvcm0gZGl2aWRlZCBpbnRvIHR3byBncm91cHMtIGdlbmVyYWwgc2V0dGluZ3MgYW5kIGFwcGVhcmFuY2Ugc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBkYXNoYm9hcmQgQ29udGV4dCBkYXNoYm9hcmQgb2JqZWN0XG4gICAqIEBwYXJhbSBpc1JlcG9ydCBUcnVlIGlmIGl0cyByZXBvcnQgZGFzaGJvYXJkXG4gICAqIEBwYXJhbSBhbGxvd1R5cGVEYXNoYm9hcmQgQWxsb3cgdG8gbWFrZSBkYXNoYm9hcmQgdHlwZSBkYXNoYm9hcmRcbiAgICogQHJldHVybnMgRGFzaGJvYXJkIGRldGFpbHMgZm9ybVxuICAgKi9cbiAgaW5pdEZvcm0oXG4gICAgZGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkLFxuICAgIGlzUmVwb3J0OiBib29sZWFuLFxuICAgIGFsbG93VHlwZURhc2hib2FyZDogQWxsb3dUeXBlRGFzaGJvYXJkXG4gICk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZ2VuZXJhbFNldHRpbmdzRm9ybTogdGhpcy5pbml0R2VuZXJhbFNldHRpbmdzRm9ybShkYXNoYm9hcmQsIGlzUmVwb3J0LCBhbGxvd1R5cGVEYXNoYm9hcmQpLFxuICAgICAgYXBwZWFyYW5jZVNldHRpbmdzRm9ybTogdGhpcy5pbml0QXBwZWFyYW5jZVNldHRpbmdzRm9ybShkYXNoYm9hcmQpXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgZm9ybSBncm91cCBmb3IgZ2VuZXJhbCBzZXR0aW5ncyBvZiBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSBkYXNoYm9hcmQgQ29udGV4dCBkYXNoYm9hcmQgb2JqZWN0XG4gICAqIEBwYXJhbSBpc1JlcG9ydCBUcnVlIGlmIGl0cyByZXBvcnQgZGFzaGJvYXJkXG4gICAqIEBwYXJhbSBkZXZpY2VUeXBlVmFsdWUgVmFsdWUgdXNlZCBmb3IgdHlwZWQgZGFzaGJvYXJkXG4gICAqIEByZXR1cm5zIERhc2hib2FyZCBnZW5lcmFsIHNldHRpbmdzIGZvcm1cbiAgICovXG4gIGluaXRHZW5lcmFsU2V0dGluZ3NGb3JtKFxuICAgIGRhc2hib2FyZDogQ29udGV4dERhc2hib2FyZCxcbiAgICBpc1JlcG9ydDogYm9vbGVhbixcbiAgICBhbGxvd1R5cGVEYXNoYm9hcmQ6IEFsbG93VHlwZURhc2hib2FyZFxuICApOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGdsb2JhbFJvbGVzSWRzVmFsdWUgPSAhZGFzaGJvYXJkPy5nbG9iYWxSb2xlc0lkc1xuICAgICAgPyBudWxsXG4gICAgICA6IEFycmF5LmlzQXJyYXkoZGFzaGJvYXJkLmdsb2JhbFJvbGVzSWRzKVxuICAgICAgICA/IFsuLi5kYXNoYm9hcmQuZ2xvYmFsUm9sZXNJZHNdXG4gICAgICAgIDogZGFzaGJvYXJkLmdsb2JhbFJvbGVzSWRzO1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGljb246IFtkYXNoYm9hcmQ/Lmljb24gfHwgdGhpcy5ERUZBVUxUX0RBU0hCT0FSRF9JQ09OLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXSxcbiAgICAgIHByaW9yaXR5OiBbXG4gICAgICAgIGRhc2hib2FyZD8ucHJpb3JpdHkgfHwgdGhpcy5ERUZBVUxUX0RBU0hCT0FSRF9QUklPUklUWSxcbiAgICAgICAgW1ZhbGlkYXRvcnMubWluKC0xMDAwMCksIFZhbGlkYXRvcnMubWF4KDEwMDAwKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIF0sXG4gICAgICBuYW1lOiBbXG4gICAgICAgIGRhc2hib2FyZD8ubmFtZSB8fFxuICAgICAgICAgIChpc1JlcG9ydFxuICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdSZXBvcnQnKSlcbiAgICAgICAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnRGFzaGJvYXJkJykpKSxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUxMildXG4gICAgICBdLFxuICAgICAgZGVzY3JpcHRpb246IFtkYXNoYm9hcmQ/LmRlc2NyaXB0aW9uIHx8IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxXzAwMCldXSxcbiAgICAgIGdsb2JhbFJvbGVzSWRzOiBbZ2xvYmFsUm9sZXNJZHNWYWx1ZV0sXG4gICAgICBjOHlfSXNOYXZpZ2F0b3JOb2RlOiBbISFkYXNoYm9hcmQ/LmM4eV9Jc05hdmlnYXRvck5vZGVdLFxuICAgICAgLi4uKGFsbG93VHlwZURhc2hib2FyZCAhPT0gJ2Rpc2FsbG93JyAmJiB7XG4gICAgICAgIGRldmljZVR5cGU6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogZGFzaGJvYXJkPy5kZXZpY2VUeXBlID8/IGZhbHNlLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGFsbG93VHlwZURhc2hib2FyZCA9PT0gJ2FsbG93X2lmX3R5cGVfZmlsbGVkJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIGZvciBhcHBlYXJhbmNlIHNldHRpbmdzIG9mIGRhc2hib2FyZC5cbiAgICogQHBhcmFtIGRhc2hib2FyZCBDb250ZXh0IGRhc2hib2FyZCBvYmplY3RcbiAgICogQHJldHVybnMgRGFzaGJvYXJkIGFwcGVhcmFuY2Ugc2V0dGluZ3MgZm9ybVxuICAgKi9cbiAgaW5pdEFwcGVhcmFuY2VTZXR0aW5nc0Zvcm0oZGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICB3aWRnZXRNYXJnaW46IFtcbiAgICAgICAgZGFzaGJvYXJkPy53aWRnZXRNYXJnaW4gfHwgdGhpcy5ERUZBVUxUX0RBU0hCT0FSRF9NQVJHSU4sXG4gICAgICAgIFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoNTApXVxuICAgICAgXSxcbiAgICAgIHRyYW5zbGF0ZVdpZGdldFRpdGxlOiBbISFkYXNoYm9hcmQ/LnRyYW5zbGF0ZVdpZGdldFRpdGxlXSxcbiAgICAgIGNsYXNzZXM6IFtkYXNoYm9hcmQ/LmNsYXNzZXMgfHwgeyBbdGhpcy5zdHlsaW5nLnRoZW1lQ2xhc3NdOiB0cnVlIH1dLFxuICAgICAgd2lkZ2V0Q2xhc3NlczogW2Rhc2hib2FyZD8ud2lkZ2V0Q2xhc3NlcyB8fCB7IFt0aGlzLnN0eWxpbmcuaGVhZGVyQ2xhc3NdOiB0cnVlIH1dXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==