{"version":3,"file":"c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs","sources":["../../computed-asset-properties/configuration-snapshot/configuration-snapshot-config.component.ts","../../computed-asset-properties/configuration-snapshot/configuration-snapshot-config.component.html"],"sourcesContent":["import { Component, DestroyRef, inject, Input, OnInit } from '@angular/core';\nimport {\n  ControlContainer,\n  FormBuilder,\n  NgForm,\n  ReactiveFormsModule,\n  Validators\n} from '@angular/forms';\nimport { C8yTranslatePipe, CommonModule, CoreModule } from '@c8y/ngx-components';\nimport { Observable, startWith } from 'rxjs';\nimport { ConfigurationSnapshotConfig } from './configuration-snapshot.model';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n  selector: 'c8y-configuration-snapshot-config',\n  templateUrl: './configuration-snapshot-config.component.html',\n  imports: [CoreModule, CommonModule, C8yTranslatePipe, ReactiveFormsModule],\n  viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class ConfigurationSnapshotConfigComponent implements OnInit {\n  @Input() config?: ConfigurationSnapshotConfig;\n  formGroup: ReturnType<ConfigurationSnapshotConfigComponent['createForm']>;\n\n  private formBuilder = inject(FormBuilder);\n  private form = inject(NgForm);\n  private destroyRef = inject(DestroyRef);\n\n  ngOnInit() {\n    this.initForm();\n    this.setupLegacyToggle();\n  }\n\n  onBeforeSave(\n    config?: ConfigurationSnapshotConfig\n  ): boolean | Promise<boolean> | Observable<boolean> {\n    if (this.formGroup.valid) {\n      Object.assign(config, this.formGroup.value);\n      return true;\n    }\n    return false;\n  }\n\n  private initForm(): void {\n    this.formGroup = this.createForm();\n    this.form.form.addControl('config', this.formGroup);\n    this.formGroup.patchValue(this.config);\n  }\n\n  private createForm() {\n    return this.formBuilder.group({\n      legacy: [true, [Validators.required]],\n      type: ['', []]\n    });\n  }\n\n  private setupLegacyToggle(): void {\n    this.formGroup\n      .get('legacy')\n      ?.valueChanges.pipe(startWith(this.isLegacy), takeUntilDestroyed(this.destroyRef))\n      .subscribe(isLegacy => {\n        this.updateTypeControlBasedOnLegacy(isLegacy);\n      });\n  }\n\n  private updateTypeControlBasedOnLegacy(isLegacy: boolean): void {\n    const typeControl = this.formGroup.get('type');\n\n    if (isLegacy) {\n      typeControl?.setValue(null);\n      typeControl?.clearValidators();\n      typeControl?.setErrors(null);\n    } else {\n      typeControl?.setValidators([Validators.required]);\n    }\n\n    typeControl?.updateValueAndValidity();\n  }\n\n  get isLegacy(): boolean {\n    return this.formGroup.get('legacy')?.value;\n  }\n}\n","<form [formGroup]=\"formGroup\">\n  <c8y-form-group class=\"m-b-8\">\n    <label\n      class=\"c8y-switch\"\n      [title]=\"'Legacy configuration' | translate\"\n    >\n      <input\n        type=\"checkbox\"\n        formControlName=\"legacy\"\n      />\n      <span></span>\n      <span>{{ 'Legacy configuration' | translate }}</span>\n      <span class=\"sr-only\">{{ 'Legacy configuration' | translate }}</span>\n    </label>\n  </c8y-form-group>\n\n  <c8y-form-group\n    class=\"form-group-sm m-b-16\"\n    *ngIf=\"!isLegacy\"\n  >\n    <label\n      [title]=\"'Configuration type' | translate\"\n      translate\n    >\n      Configuration type\n    </label>\n    <input\n      class=\"form-control\"\n      name=\"type\"\n      type=\"text\"\n      formControlName=\"type\"\n    />\n    <c8y-messages\n      [show]=\"formGroup.controls?.type?.touched && formGroup?.controls?.type?.errors\"\n    ></c8y-messages>\n  </c8y-form-group>\n</form>\n"],"names":[],"mappings":"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"}