{"version":3,"file":"c8y-ngx-components-branding-plain-branding-editor-lazy.mjs","sources":["../../branding/plain-branding-editor/lazy/advanced-edit-branding.component.ts","../../branding/plain-branding-editor/lazy/advanced-edit-branding.component.html","../../branding/plain-branding-editor/lazy/c8y-ngx-components-branding-plain-branding-editor-lazy.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { Component, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { EditorComponent, MonacoEditorMarkerValidatorDirective } from '@c8y/ngx-components/editor';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { BehaviorSubject } from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\nimport type * as Monaco from 'monaco-editor';\n\n@Component({\n  selector: 'c8y-advanced-edit-branding',\n  templateUrl: './advanced-edit-branding.component.html',\n  host: { class: 'd-contents' },\n  standalone: true,\n  imports: [\n    EditorComponent,\n    AsyncPipe,\n    FormsModule,\n    MonacoEditorMarkerValidatorDirective,\n    CoreModule\n  ]\n})\nexport class AdvancedEditBrandingComponent implements ControlValueAccessor {\n  optionsJsonString = new BehaviorSubject<string>('');\n  valueString = new BehaviorSubject<string>('');\n  editorOptions: EditorComponent['editorOptions'] = {};\n  infoText = '';\n  JSONSchema: any;\n  @ViewChild(EditorComponent) editorComponent!: EditorComponent;\n\n  private onChange: (value: string) => void;\n  private onTouched: () => void;\n  private onValidatorChange: () => void;\n\n  private attributeToEdit = '';\n\n  constructor(private activatedRoute: ActivatedRoute) {\n    const data = this.activatedRoute.snapshot.data;\n    if (data && data.attributeToEdit) {\n      this.attributeToEdit = data.attributeToEdit;\n    }\n    if (data && data.language) {\n      this.editorOptions.language = data.language;\n    }\n    if (data && data.infoText) {\n      this.infoText = data.infoText;\n    }\n    if (data && data.editorSchema) {\n      this.JSONSchema = data.editorSchema;\n    }\n  }\n\n  onEditorInit(_data: Monaco.editor.IStandaloneCodeEditor) {\n    if (!this.JSONSchema) {\n      return;\n    }\n    this.editorComponent.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n      validate: true,\n      schemas: [{ schema: this.JSONSchema, fileMatch: ['*'], uri: 'branding' }],\n      enableSchemaRequest: false,\n      allowComments: false\n    });\n  }\n\n  writeValue(obj: string): void {\n    this.optionsJsonString.next(obj);\n    if (this.attributeToEdit) {\n      obj = obj ? obj : '{}';\n      const parsed = JSON.parse(obj);\n      if (!parsed[this.attributeToEdit] || typeof parsed[this.attributeToEdit] !== 'string') {\n        obj = '';\n      } else {\n        obj = parsed[this.attributeToEdit];\n      }\n    }\n    this.valueString.next(obj);\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  onValueChange(value: string) {\n    if (value === this.valueString.value) {\n      return;\n    }\n    this.valueString.next(value);\n    if (this.attributeToEdit) {\n      const parsed = JSON.parse(this.optionsJsonString.value);\n      parsed[this.attributeToEdit] = value;\n      value = JSON.stringify(parsed, null, 2);\n    }\n    this.optionsJsonString.next(value);\n    if (this.onChange) {\n      this.onChange(value);\n    }\n    if (this.onTouched) {\n      this.onTouched();\n    }\n    if (this.onValidatorChange) {\n      this.onValidatorChange();\n    }\n  }\n}\n","@if (infoText) {\n  <div class=\"card-block separator-bottom m-b-16\">\n    <p class=\"icon-flex\">\n      <i\n        class=\"text-info m-r-4 icon-16\"\n        c8yIcon=\"info-circle\"\n      ></i>\n      <span>\n        {{ infoText | translate }}\n      </span>\n    </p>\n  </div>\n}\n\n<c8y-editor\n  class=\"flex-grow\"\n  [editorOptions]=\"editorOptions\"\n  [ngModel]=\"valueString | async\"\n  (ngModelChange)=\"onValueChange($event)\"\n  (editorInit)=\"onEditorInit($event)\"\n  monacoEditorMarkerValidator\n></c8y-editor>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}