UNPKG

@crpt/react-operation

Version:

[![npm package][npm-badge]][npm]

69 lines (51 loc) 2.21 kB
'use strict'; 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;