@crpt/react-operation
Version:
[![npm package][npm-badge]][npm]
69 lines (51 loc) • 2.21 kB
JavaScript
;
exports.__esModule = true;
exports.placemarksFromData = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _lodash = require('lodash');
var _dataUtils = require('../../dataUtils');
var _balloonUtils = require('./balloonUtils');
var _iconUtils = require('./iconUtils');
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var placemarksFromData = function placemarksFromData(data) {
var placemarksMap = (0, _lodash.reduce)(data, function (acc, curr) {
var lat = curr.lat,
lon = curr.lng;
if (!lat || !lon) return acc;
var key = lat + '|' + lon;
var placemark = acc.get(key);
if (placemark) {
var _placemark = placemark,
_placemark$properties = _placemark.properties,
properties = _placemark$properties === undefined ? {} : _placemark$properties,
params = _objectWithoutProperties(_placemark, ['properties']);
var _properties$data = properties.data,
_data = _properties$data === undefined ? [] : _properties$data;
placemark = _extends({}, params, {
properties: _extends({}, properties, {
data: (0, _dataUtils.sortByDate)([].concat(_data, [curr]), 'DESC')
})
});
} else {
placemark = {
geometry: {
coordinates: [lat, lon]
},
properties: {
data: [curr]
},
options: {
balloonLayout: _balloonUtils.balloonLayout,
balloonContentLayout: _balloonUtils.balloonContentLayout,
iconContentLayout: _iconUtils.iconContentLayout,
hideIconOnBalloonOpen: false
}
};
}
acc.set(key, placemark);
return acc;
}, new Map());
var placemarks = placemarksMap.values();
return Array.from(placemarks);
};
exports.placemarksFromData = placemarksFromData;