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;