Skip to content
Snippets Groups Projects
parameter-value-input.component.ts 1.18 KiB
Newer Older
lotte's avatar
lotte committed
import { Component, EventEmitter, Input, OnChanges, OnInit, Optional, Output } from '@angular/core';
lotte's avatar
lotte committed
import { ScriptParameterType } from '../../../scripts/script-parameter-type.model';
import { ScriptParameter } from '../../../scripts/script-parameter.model';
lotte's avatar
lotte committed
import { ControlContainer, NgForm } from '@angular/forms';
lotte's avatar
lotte committed
import { controlContainerFactory } from '../../process-form.component';
lotte's avatar
lotte committed
/**
 * Component that renders the correct parameter value input based the script parameter's type
 */
lotte's avatar
lotte committed
@Component({
  selector: 'ds-parameter-value-input',
  templateUrl: './parameter-value-input.component.html',
lotte's avatar
lotte committed
  styleUrls: ['./parameter-value-input.component.scss'],
  viewProviders: [ { provide: ControlContainer,
    useFactory: controlContainerFactory,
    deps: [[new Optional(), NgForm]] } ]
lotte's avatar
lotte committed
})
export class ParameterValueInputComponent {
lotte's avatar
lotte committed
  @Input() index: number;

lotte's avatar
lotte committed
  /**
   * The current script parameter
   */
lotte's avatar
lotte committed
  @Input() parameter: ScriptParameter;
lotte's avatar
lotte committed

lotte's avatar
lotte committed

  @Input() initialValue: any;
lotte's avatar
lotte committed
  /**
   * Emits the value of the input when its updated
   */
  @Output() updateValue: EventEmitter<any> = new EventEmitter();
lotte's avatar
lotte committed

  /**
   * The available script parameter types
   */
lotte's avatar
lotte committed
  parameterTypes = ScriptParameterType;
}