{"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-B7m2lsIe.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';\n\n@Component({\n  selector: 'c8y-dashboard-appearance-settings',\n  templateUrl: './dashboard-appearance-settings.component.html',\n  standalone: true,\n  imports: [ReactiveFormsModule, CoreModule, AppearanceSettingsComponent, C8yTranslatePipe]\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 translate>Widget titles</label>\n          <label\n            class=\"c8y-checkbox\"\n            title=\"{{ 'Translate if possible' | translate }}\"\n          >\n            <input\n              name=\"translateWidgetTitle\"\n              type=\"checkbox\"\n              formControlName=\"translateWidgetTitle\"\n            />\n            <span></span>\n            <span>{{ 'Translate if possible' | translate }}</span>\n          </label>\n        </c8y-form-group>\n      </fieldset>\n    </div>\n  </c8y-appearance-settings>\n</div>\n"],"names":["i1.ContextDashboardService","i2.DashboardDetailService","i3"],"mappings":"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"}