Source: vga.inputData.js

/**
 * Clase gestora de los controles de datos de entrada
 * @extends {ControlsContainer}
 */
class __InputData extends ControlsContainer {
  #divInputData;
  #divUpdateData;
  #onUpdateFunction;

  /**
   * Constructor por defecto
   * @constructor
   */
  constructor() {
    super();
    this.#divInputData = "datosEntrada";
    this.#divUpdateData = "datosEntradaUpdate";
  }

  /**
   * Añade un control a la entrada de datos
   * @param {ControlPrimitive} control Control a añadir
   */
  addControl(control) {
    super.addControl(control);
    $("#" + this.#divUpdateData).before(control.getHtmlCode());
  }

  /**
   * Actualiza los datos de los controles
   */
  updateData() {
    FlowManager.reset();
    for (var i = 0; i < this.getControls().length; i++) {
      this.getControls()[i].readControl();
    }
    if (this.#onUpdateFunction != undefined) {
      this.#onUpdateFunction.call();
    }
  }

  /**
   * Ejecuta una acción al evento de actualizar los datos
   * @param {function} func Función a ejecutar al actualizar
   */
  onUpdate(func) {
    this.#onUpdateFunction = func;
  }
}

/**
 * Instancia del gestor de los controles de entrada de datos
 * @constant
 * @type {__InputData}
 */
const InputData = new __InputData();