Source: interactions/selectResult.js

let Guid = require('./../math/guid');

/**
 * Класс SelectResult предназначен для унифицированного вывода результатов селектирования объектов
 * @class SelectResult
 * @param {object} params - опции конструктора
 * @param params.layerId {string} - идентификатор слоя
 * @param params.layerName {string} - имя слоя (для удобства)
 * @param params.queryGeometry {ol.geom.Geometry} - геометрия запроса (точка клика, область)
 * @param params.dirtyData {ol.Feature} - ответ от взаимодействия
 * @param params.feature {ol.Feature} - графический объект
 * @param params.attributes {object} - атрибуты (без геометрии)
 * @param params.preparedAttributes {array} - атрибуты объекта в виде массива
 * @param params.__SAVED__ {boolean} - признак сохранения объекта (true - объект сохранен, false - временный объект на слое)
 */
class SelectResult {
  constructor(params) {
    this.layerId = params.layerId;
    this.layerName = params.layerName;
    this.queryGeometry = params.queryGeometry;
    this.dirtyData = params.dirtyData;
    this.feature = params.dirtyData;
    this.attributes = params.attributes;
    this.title = params.title;

    this.geometry = params.geometry;
    this.__SAVED__ = this.feature.getId() !== undefined;

    let fields = {};
    try {
      fields = params.layer.getFields().getObject();
    }
    catch (e) {

    }

    let preparedAttributes = [];
    for (let key in params.attributes) {
      preparedAttributes.push({
        name: key,
        alias: key,
        group: "common",
        value: params.attributes[key],
        validatedText: "",
        fieldInfo: fields[key]
      })
    }
    this.preparedAttributes = preparedAttributes;
  }
}

module.exports = SelectResult;