UNPKG

kepler.gl.geoiq

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

106 lines (85 loc) 11.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.addNewLayersToSplitMap = addNewLayersToSplitMap; exports.computeSplitMapLayers = computeSplitMapLayers; exports.getInitialMapLayersForSplitMap = getInitialMapLayersForSplitMap; exports.removeLayerFromSplitMaps = removeLayerFromSplitMaps; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _lodash = _interopRequireDefault(require("lodash.clonedeep")); function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return (0, _typeof2["default"])(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if ((0, _typeof2["default"])(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if ((0, _typeof2["default"])(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** * Add new layers to both existing maps * @param {Object} splitMaps * @param {Object|Array<Object>} layers * @returns {Array<Object>} new splitMaps */ function addNewLayersToSplitMap(splitMaps, layers) { var newLayers = Array.isArray(layers) ? layers : [layers]; if (!splitMaps.length || !newLayers.length) { return splitMaps; } // add new layer to both maps, // don't override, if layer.id is already in splitMaps return splitMaps.map(function (settings) { return _objectSpread(_objectSpread({}, settings), {}, { layers: _objectSpread(_objectSpread({}, settings.layers), newLayers.reduce(function (accu, newLayer) { return [newLayer.id] in settings.layers || !newLayer.config.isVisible ? accu : _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, newLayer.id, newLayer.config.isVisible)); }, {})) }); }); } /** * Remove an existing layer from split map settings * @param {Object} splitMaps * @param {Object} layer * @returns {Object} Maps of custom layer objects */ function removeLayerFromSplitMaps(splitMaps, layer) { if (!splitMaps.length) { return splitMaps; } return splitMaps.map(function (settings) { // eslint-disable-next-line no-unused-vars var _settings$layers = settings.layers, _layer$id = layer.id, _ = _settings$layers[_layer$id], newLayers = (0, _objectWithoutProperties2["default"])(_settings$layers, [_layer$id].map(_toPropertyKey)); return _objectSpread(_objectSpread({}, settings), {}, { layers: newLayers }); }); } /** * This method will compute the default maps layer settings * based on the current layers visibility * @param {Array<Object>} layers * @returns {Array<Object>} layer visibility for each panel */ function getInitialMapLayersForSplitMap(layers) { return layers.filter(function (layer) { return layer.config.isVisible; }).reduce(function (newLayers, currentLayer) { return _objectSpread(_objectSpread({}, newLayers), {}, (0, _defineProperty2["default"])({}, currentLayer.id, currentLayer.config.isVisible)); }, {}); } /** * This method will get default splitMap settings based on existing layers * @param {Array<Object>} layers * @returns {Array<Object>} split map settings */ function computeSplitMapLayers(layers) { var mapLayers = getInitialMapLayersForSplitMap(layers); return [{ layers: mapLayers }, { layers: (0, _lodash["default"])(mapLayers) }]; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zcGxpdC1tYXAtdXRpbHMuanMiXSwibmFtZXMiOlsiYWRkTmV3TGF5ZXJzVG9TcGxpdE1hcCIsInNwbGl0TWFwcyIsImxheWVycyIsIm5ld0xheWVycyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIm1hcCIsInNldHRpbmdzIiwicmVkdWNlIiwiYWNjdSIsIm5ld0xheWVyIiwiaWQiLCJjb25maWciLCJpc1Zpc2libGUiLCJyZW1vdmVMYXllckZyb21TcGxpdE1hcHMiLCJsYXllciIsIl8iLCJnZXRJbml0aWFsTWFwTGF5ZXJzRm9yU3BsaXRNYXAiLCJmaWx0ZXIiLCJjdXJyZW50TGF5ZXIiLCJjb21wdXRlU3BsaXRNYXBMYXllcnMiLCJtYXBMYXllcnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7Ozs7Ozs7OztBQUVBOzs7Ozs7QUFNTyxTQUFTQSxzQkFBVCxDQUFnQ0MsU0FBaEMsRUFBMkNDLE1BQTNDLEVBQW1EO0FBQ3hELE1BQU1DLFNBQVMsR0FBR0MsS0FBSyxDQUFDQyxPQUFOLENBQWNILE1BQWQsSUFBd0JBLE1BQXhCLEdBQWlDLENBQUNBLE1BQUQsQ0FBbkQ7O0FBRUEsTUFBSSxDQUFDRCxTQUFTLENBQUNLLE1BQVgsSUFBcUIsQ0FBQ0gsU0FBUyxDQUFDRyxNQUFwQyxFQUE0QztBQUMxQyxXQUFPTCxTQUFQO0FBQ0QsR0FMdUQsQ0FPeEQ7QUFDQTs7O0FBQ0EsU0FBT0EsU0FBUyxDQUFDTSxHQUFWLENBQWMsVUFBQUMsUUFBUTtBQUFBLDJDQUN4QkEsUUFEd0I7QUFFM0JOLE1BQUFBLE1BQU0sa0NBQ0RNLFFBQVEsQ0FBQ04sTUFEUixHQUVEQyxTQUFTLENBQUNNLE1BQVYsQ0FDRCxVQUFDQyxJQUFELEVBQU9DLFFBQVA7QUFBQSxlQUNFLENBQUNBLFFBQVEsQ0FBQ0MsRUFBVixLQUFpQkosUUFBUSxDQUFDTixNQUExQixJQUFvQyxDQUFDUyxRQUFRLENBQUNFLE1BQVQsQ0FBZ0JDLFNBQXJELEdBQ0lKLElBREosbUNBR1NBLElBSFQsNENBSU9DLFFBQVEsQ0FBQ0MsRUFKaEIsRUFJcUJELFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkMsU0FKckMsRUFERjtBQUFBLE9BREMsRUFRRCxFQVJDLENBRkM7QUFGcUI7QUFBQSxHQUF0QixDQUFQO0FBZ0JEO0FBRUQ7Ozs7Ozs7O0FBTU8sU0FBU0Msd0JBQVQsQ0FBa0NkLFNBQWxDLEVBQTZDZSxLQUE3QyxFQUFvRDtBQUN6RCxNQUFJLENBQUNmLFNBQVMsQ0FBQ0ssTUFBZixFQUF1QjtBQUNyQixXQUFPTCxTQUFQO0FBQ0Q7O0FBQ0QsU0FBT0EsU0FBUyxDQUFDTSxHQUFWLENBQWMsVUFBQUMsUUFBUSxFQUFJO0FBQy9CO0FBQ0EsMkJBQXNDQSxRQUFRLENBQUNOLE1BQS9DO0FBQUEsb0JBQVFjLEtBQUssQ0FBQ0osRUFBZDtBQUFBLFFBQW1CSyxDQUFuQjtBQUFBLFFBQXlCZCxTQUF6QjtBQUNBLDJDQUNLSyxRQURMO0FBRUVOLE1BQUFBLE1BQU0sRUFBRUM7QUFGVjtBQUlELEdBUE0sQ0FBUDtBQVFEO0FBRUQ7Ozs7Ozs7O0FBTU8sU0FBU2UsOEJBQVQsQ0FBd0NoQixNQUF4QyxFQUFnRDtBQUNyRCxTQUFPQSxNQUFNLENBQ1ZpQixNQURJLENBQ0csVUFBQUgsS0FBSztBQUFBLFdBQUlBLEtBQUssQ0FBQ0gsTUFBTixDQUFhQyxTQUFqQjtBQUFBLEdBRFIsRUFFSkwsTUFGSSxDQUdILFVBQUNOLFNBQUQsRUFBWWlCLFlBQVo7QUFBQSwyQ0FDS2pCLFNBREwsNENBRUdpQixZQUFZLENBQUNSLEVBRmhCLEVBRXFCUSxZQUFZLENBQUNQLE1BQWIsQ0FBb0JDLFNBRnpDO0FBQUEsR0FIRyxFQU9ILEVBUEcsQ0FBUDtBQVNEO0FBRUQ7Ozs7Ozs7QUFLTyxTQUFTTyxxQkFBVCxDQUErQm5CLE1BQS9CLEVBQXVDO0FBQzVDLE1BQU1vQixTQUFTLEdBQUdKLDhCQUE4QixDQUFDaEIsTUFBRCxDQUFoRDtBQUVBLFNBQU8sQ0FBQztBQUFDQSxJQUFBQSxNQUFNLEVBQUVvQjtBQUFULEdBQUQsRUFBc0I7QUFBQ3BCLElBQUFBLE1BQU0sRUFBRSx3QkFBVW9CLFNBQVY7QUFBVCxHQUF0QixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC5jbG9uZWRlZXAnO1xuXG4vKipcbiAqIEFkZCBuZXcgbGF5ZXJzIHRvIGJvdGggZXhpc3RpbmcgbWFwc1xuICogQHBhcmFtIHtPYmplY3R9IHNwbGl0TWFwc1xuICogQHBhcmFtIHtPYmplY3R8QXJyYXk8T2JqZWN0Pn0gbGF5ZXJzXG4gKiBAcmV0dXJucyB7QXJyYXk8T2JqZWN0Pn0gbmV3IHNwbGl0TWFwc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTmV3TGF5ZXJzVG9TcGxpdE1hcChzcGxpdE1hcHMsIGxheWVycykge1xuICBjb25zdCBuZXdMYXllcnMgPSBBcnJheS5pc0FycmF5KGxheWVycykgPyBsYXllcnMgOiBbbGF5ZXJzXTtcblxuICBpZiAoIXNwbGl0TWFwcy5sZW5ndGggfHwgIW5ld0xheWVycy5sZW5ndGgpIHtcbiAgICByZXR1cm4gc3BsaXRNYXBzO1xuICB9XG5cbiAgLy8gYWRkIG5ldyBsYXllciB0byBib3RoIG1hcHMsXG4gIC8vIGRvbid0IG92ZXJyaWRlLCBpZiBsYXllci5pZCBpcyBhbHJlYWR5IGluIHNwbGl0TWFwc1xuICByZXR1cm4gc3BsaXRNYXBzLm1hcChzZXR0aW5ncyA9PiAoe1xuICAgIC4uLnNldHRpbmdzLFxuICAgIGxheWVyczoge1xuICAgICAgLi4uc2V0dGluZ3MubGF5ZXJzLFxuICAgICAgLi4ubmV3TGF5ZXJzLnJlZHVjZShcbiAgICAgICAgKGFjY3UsIG5ld0xheWVyKSA9PlxuICAgICAgICAgIFtuZXdMYXllci5pZF0gaW4gc2V0dGluZ3MubGF5ZXJzIHx8ICFuZXdMYXllci5jb25maWcuaXNWaXNpYmxlXG4gICAgICAgICAgICA/IGFjY3VcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgICAgICAgW25ld0xheWVyLmlkXTogbmV3TGF5ZXIuY29uZmlnLmlzVmlzaWJsZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH1cbiAgfSkpO1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbiBleGlzdGluZyBsYXllciBmcm9tIHNwbGl0IG1hcCBzZXR0aW5nc1xuICogQHBhcmFtIHtPYmplY3R9IHNwbGl0TWFwc1xuICogQHBhcmFtIHtPYmplY3R9IGxheWVyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBNYXBzIG9mIGN1c3RvbSBsYXllciBvYmplY3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVMYXllckZyb21TcGxpdE1hcHMoc3BsaXRNYXBzLCBsYXllcikge1xuICBpZiAoIXNwbGl0TWFwcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gc3BsaXRNYXBzO1xuICB9XG4gIHJldHVybiBzcGxpdE1hcHMubWFwKHNldHRpbmdzID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICBjb25zdCB7W2xheWVyLmlkXTogXywgLi4ubmV3TGF5ZXJzfSA9IHNldHRpbmdzLmxheWVycztcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2V0dGluZ3MsXG4gICAgICBsYXllcnM6IG5ld0xheWVyc1xuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIFRoaXMgbWV0aG9kIHdpbGwgY29tcHV0ZSB0aGUgZGVmYXVsdCBtYXBzIGxheWVyIHNldHRpbmdzXG4gKiBiYXNlZCBvbiB0aGUgY3VycmVudCBsYXllcnMgdmlzaWJpbGl0eVxuICogQHBhcmFtIHtBcnJheTxPYmplY3Q+fSBsYXllcnNcbiAqIEByZXR1cm5zIHtBcnJheTxPYmplY3Q+fSBsYXllciB2aXNpYmlsaXR5IGZvciBlYWNoIHBhbmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsTWFwTGF5ZXJzRm9yU3BsaXRNYXAobGF5ZXJzKSB7XG4gIHJldHVybiBsYXllcnNcbiAgICAuZmlsdGVyKGxheWVyID0+IGxheWVyLmNvbmZpZy5pc1Zpc2libGUpXG4gICAgLnJlZHVjZShcbiAgICAgIChuZXdMYXllcnMsIGN1cnJlbnRMYXllcikgPT4gKHtcbiAgICAgICAgLi4ubmV3TGF5ZXJzLFxuICAgICAgICBbY3VycmVudExheWVyLmlkXTogY3VycmVudExheWVyLmNvbmZpZy5pc1Zpc2libGVcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xufVxuXG4vKipcbiAqIFRoaXMgbWV0aG9kIHdpbGwgZ2V0IGRlZmF1bHQgc3BsaXRNYXAgc2V0dGluZ3MgYmFzZWQgb24gZXhpc3RpbmcgbGF5ZXJzXG4gKiBAcGFyYW0ge0FycmF5PE9iamVjdD59IGxheWVyc1xuICogQHJldHVybnMge0FycmF5PE9iamVjdD59IHNwbGl0IG1hcCBzZXR0aW5nc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVNwbGl0TWFwTGF5ZXJzKGxheWVycykge1xuICBjb25zdCBtYXBMYXllcnMgPSBnZXRJbml0aWFsTWFwTGF5ZXJzRm9yU3BsaXRNYXAobGF5ZXJzKTtcblxuICByZXR1cm4gW3tsYXllcnM6IG1hcExheWVyc30sIHtsYXllcnM6IGNsb25lRGVlcChtYXBMYXllcnMpfV07XG59XG4iXX0=