UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

97 lines 13.2 kB
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWRldGFpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvZGFzaGJvYXJkLWRldGFpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFLOUMsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNVLEVBQWUsRUFDZixnQkFBa0M7UUFEbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYNUMsWUFBTyxHQUFHO1lBQ1IsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxXQUFXLEVBQUUscUJBQXFCO1NBQ25DLENBQUM7UUFFTyw2QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFDOUIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLCtCQUEwQixHQUFHLElBQUksQ0FBQztJQUt4QyxDQUFDO0lBQ0o7Ozs7OztPQU1HO0lBQ0gsUUFBUSxDQUNOLFNBQTJCLEVBQzNCLFFBQWlCLEVBQ2pCLGtCQUFzQztRQUV0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25CLG1CQUFtQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDO1lBQzFGLHNCQUFzQixFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUM7U0FDbkUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILHVCQUF1QixDQUNyQixT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QUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbGxvd1R5cGVEYXNoYm9hcmQsIENvbnRleHREYXNoYm9hcmQgfSBmcm9tICcuL2NvbnRleHQtZGFzaGJvYXJkLm1vZGVsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkRGV0YWlsU2VydmljZSB7XG4gIHN0eWxpbmcgPSB7XG4gICAgdGhlbWVDbGFzczogJ2Rhc2hib2FyZC10aGVtZS1saWdodCcsXG4gICAgaGVhZGVyQ2xhc3M6ICdwYW5lbC10aXRsZS1yZWd1bGFyJ1xuICB9O1xuXG4gIHJlYWRvbmx5IERFRkFVTFRfREFTSEJPQVJEX01BUkdJTiA9IDEyO1xuICByZWFkb25seSBERUZBVUxUX0RBU0hCT0FSRF9JQ09OID0gJ3RoJztcbiAgcmVhZG9ubHkgREVGQVVMVF9EQVNIQk9BUkRfUFJJT1JJVFkgPSA1MDAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGRhc2hib2FyZCBkZXRhaWxzIGZvcm0gZGl2aWRlZCBpbnRvIHR3byBncm91cHMtIGdlbmVyYWwgc2V0dGluZ3MgYW5kIGFwcGVhcmFuY2Ugc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBkYXNoYm9hcmQgQ29udGV4dCBkYXNoYm9hcmQgb2JqZWN0XG4gICAqIEBwYXJhbSBpc1JlcG9ydCBUcnVlIGlmIGl0cyByZXBvcnQgZGFzaGJvYXJkXG4gICAqIEBwYXJhbSBhbGxvd1R5cGVEYXNoYm9hcmQgQWxsb3cgdG8gbWFrZSBkYXNoYm9hcmQgdHlwZSBkYXNoYm9hcmRcbiAgICogQHJldHVybnMgRGFzaGJvYXJkIGRldGFpbHMgZm9ybVxuICAgKi9cbiAgaW5pdEZvcm0oXG4gICAgZGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkLFxuICAgIGlzUmVwb3J0OiBib29sZWFuLFxuICAgIGFsbG93VHlwZURhc2hib2FyZDogQWxsb3dUeXBlRGFzaGJvYXJkXG4gICk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZ2VuZXJhbFNldHRpbmdzRm9ybTogdGhpcy5pbml0R2VuZXJhbFNldHRpbmdzRm9ybShkYXNoYm9hcmQsIGlzUmVwb3J0LCBhbGxvd1R5cGVEYXNoYm9hcmQpLFxuICAgICAgYXBwZWFyYW5jZVNldHRpbmdzRm9ybTogdGhpcy5pbml0QXBwZWFyYW5jZVNldHRpbmdzRm9ybShkYXNoYm9hcmQpXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgZm9ybSBncm91cCBmb3IgZ2VuZXJhbCBzZXR0aW5ncyBvZiBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSBkYXNoYm9hcmQgQ29udGV4dCBkYXNoYm9hcmQgb2JqZWN0XG4gICAqIEBwYXJhbSBpc1JlcG9ydCBUcnVlIGlmIGl0cyByZXBvcnQgZGFzaGJvYXJkXG4gICAqIEBwYXJhbSBkZXZpY2VUeXBlVmFsdWUgVmFsdWUgdXNlZCBmb3IgdHlwZWQgZGFzaGJvYXJkXG4gICAqIEByZXR1cm5zIERhc2hib2FyZCBnZW5lcmFsIHNldHRpbmdzIGZvcm1cbiAgICovXG4gIGluaXRHZW5lcmFsU2V0dGluZ3NGb3JtKFxuICAgIGRhc2hib2FyZDogQ29udGV4dERhc2hib2FyZCxcbiAgICBpc1JlcG9ydDogYm9vbGVhbixcbiAgICBhbGxvd1R5cGVEYXNoYm9hcmQ6IEFsbG93VHlwZURhc2hib2FyZFxuICApOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGdsb2JhbFJvbGVzSWRzVmFsdWUgPSAhZGFzaGJvYXJkPy5nbG9iYWxSb2xlc0lkc1xuICAgICAgPyBudWxsXG4gICAgICA6IEFycmF5LmlzQXJyYXkoZGFzaGJvYXJkLmdsb2JhbFJvbGVzSWRzKVxuICAgICAgICA/IFsuLi5kYXNoYm9hcmQuZ2xvYmFsUm9sZXNJZHNdXG4gICAgICAgIDogZGFzaGJvYXJkLmdsb2JhbFJvbGVzSWRzO1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGljb246IFtkYXNoYm9hcmQ/Lmljb24gfHwgdGhpcy5ERUZBVUxUX0RBU0hCT0FSRF9JQ09OLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXSxcbiAgICAgIHByaW9yaXR5OiBbXG4gICAgICAgIGRhc2hib2FyZD8ucHJpb3JpdHkgfHwgdGhpcy5ERUZBVUxUX0RBU0hCT0FSRF9QUklPUklUWSxcbiAgICAgICAgW1ZhbGlkYXRvcnMubWluKC0xMDAwMCksIFZhbGlkYXRvcnMubWF4KDEwMDAwKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIF0sXG4gICAgICBuYW1lOiBbXG4gICAgICAgIGRhc2hib2FyZD8ubmFtZSB8fFxuICAgICAgICAgIChpc1JlcG9ydFxuICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdSZXBvcnQnKSlcbiAgICAgICAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnRGFzaGJvYXJkJykpKSxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUxMildXG4gICAgICBdLFxuICAgICAgZGVzY3JpcHRpb246IFtkYXNoYm9hcmQ/LmRlc2NyaXB0aW9uIHx8IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxXzAwMCldXSxcbiAgICAgIGdsb2JhbFJvbGVzSWRzOiBbZ2xvYmFsUm9sZXNJZHNWYWx1ZV0sXG4gICAgICBjOHlfSXNOYXZpZ2F0b3JOb2RlOiBbISFkYXNoYm9hcmQ/LmM4eV9Jc05hdmlnYXRvck5vZGVdLFxuICAgICAgLi4uKGFsbG93VHlwZURhc2hib2FyZCAhPT0gJ2Rpc2FsbG93JyAmJiB7XG4gICAgICAgIGRldmljZVR5cGU6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogZGFzaGJvYXJkPy5kZXZpY2VUeXBlID8/IGZhbHNlLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGFsbG93VHlwZURhc2hib2FyZCA9PT0gJ2FsbG93X2lmX3R5cGVfZmlsbGVkJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBmb3JtIGdyb3VwIGZvciBhcHBlYXJhbmNlIHNldHRpbmdzIG9mIGRhc2hib2FyZC5cbiAgICogQHBhcmFtIGRhc2hib2FyZCBDb250ZXh0IGRhc2hib2FyZCBvYmplY3RcbiAgICogQHJldHVybnMgRGFzaGJvYXJkIGFwcGVhcmFuY2Ugc2V0dGluZ3MgZm9ybVxuICAgKi9cbiAgaW5pdEFwcGVhcmFuY2VTZXR0aW5nc0Zvcm0oZGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICB3aWRnZXRNYXJnaW46IFtcbiAgICAgICAgZGFzaGJvYXJkPy53aWRnZXRNYXJnaW4gfHwgdGhpcy5ERUZBVUxUX0RBU0hCT0FSRF9NQVJHSU4sXG4gICAgICAgIFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoNTApXVxuICAgICAgXSxcbiAgICAgIHRyYW5zbGF0ZVdpZGdldFRpdGxlOiBbISFkYXNoYm9hcmQ/LnRyYW5zbGF0ZVdpZGdldFRpdGxlXSxcbiAgICAgIGNsYXNzZXM6IFtkYXNoYm9hcmQ/LmNsYXNzZXMgfHwgeyBbdGhpcy5zdHlsaW5nLnRoZW1lQ2xhc3NdOiB0cnVlIH1dLFxuICAgICAgd2lkZ2V0Q2xhc3NlczogW2Rhc2hib2FyZD8ud2lkZ2V0Q2xhc3NlcyB8fCB7IFt0aGlzLnN0eWxpbmcuaGVhZGVyQ2xhc3NdOiB0cnVlIH1dXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==