{"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DsCDppJx.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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"}