@ngageoint/mage.arcgis.service
Version:
A mage service plugin that synchronizes mage observations to a configured ArcGIS feature layer.
57 lines • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LayerInfo = void 0;
/**
* Contains information about a specific arc feature layer.
*/
class LayerInfo {
/**
* Constructor.
* @param {string} url The url to the feature layer.
* @param {MageEventId[]} events The events that are synching to this layer.
* @param {LayerInfoResult} layerInfo The layer info.
*/
constructor(url, events, layerInfo) {
/**
* Mapping between field names and layer fields.
*/
this.layerFields = new Map();
/**
* The events that are synching to this layer.
*/
this.events = new Set();
this.url = url;
if (events && events.length > 0) {
for (const event of events) {
this.events.add(event);
}
}
this.geometryType = layerInfo.geometryType;
for (const field of layerInfo.fields) {
this.layerFields.set(field.name, field);
}
}
/**
* Determine if the field is editable.
* @param {string} field The field name.
* @returns {boolean} true if editable
*/
isEditable(field) {
let editable = false;
const layerField = this.layerFields.get(field);
if (layerField != null) {
editable = layerField.editable;
}
return editable;
}
/**
* Determine if the layer is enabled for the event.
* @param {MageEventId} eventId The event.
* @returns {boolean} true if enabled
*/
hasEvent(eventId) {
return this.events.size === 0 || this.events.has(eventId);
}
}
exports.LayerInfo = LayerInfo;
//# sourceMappingURL=LayerInfo.js.map