kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
119 lines (98 loc) • 11.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.updateProperty = exports.forwardTo = exports.actionFor = exports.unwrap = exports.isForwardAction = exports.wrapTo = exports.getActionForwardAddress = exports.ADDRESS_PREFIX = exports.FORWARD = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _lodash = _interopRequireDefault(require("lodash.curry"));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
// Copyright (c) 2019 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
var FORWARD = '@redux-forward/FORWARD';
exports.FORWARD = FORWARD;
var ADDRESS_PREFIX = '@@KG_';
exports.ADDRESS_PREFIX = ADDRESS_PREFIX;
/*
* wrap an action into a forward action
* A forward action looks like this:
*
* {
* type: "@@kepler.gl/LAYER_CONFIG_CHANGE",
* payload: {
* type: '@@kepler.gl/LAYER_CONFIG_CHANGE',
* payload: {},
* meta: {
* // other meta,
* _id_: id
* }
* },
* meta: {
* forward: '@redux-forward/FORWARD',
* id: '@@KG_id'
* }
* };
*/
var getActionForwardAddress = function getActionForwardAddress(id) {
return "".concat(ADDRESS_PREFIX).concat(id.toUpperCase());
};
exports.getActionForwardAddress = getActionForwardAddress;
var wrapTo = (0, _lodash["default"])(function (id, action) {
return {
// keep original action.type
type: action.type,
// actual action
payload: _objectSpread({}, action, {
meta: _objectSpread({}, action.meta, {
_id_: id
})
}),
// add forward signature to meta
meta: _objectSpread({}, action.meta || {}, {
_forward_: FORWARD,
_addr_: getActionForwardAddress(id)
})
};
});
exports.wrapTo = wrapTo;
var isForwardAction = function isForwardAction(action) {
return action && action.meta && action.meta._forward_ === FORWARD;
};
exports.isForwardAction = isForwardAction;
var unwrap = function unwrap(action) {
return isForwardAction(action) ? unwrap(action.payload) : action;
}; // given a id to forward to, returns the action for that id
exports.unwrap = unwrap;
var actionFor = function actionFor(id, action) {
return isForwardAction(action) ? action.meta._addr_ === getActionForwardAddress(id) ? action.payload : {} : action;
}; // returns a new dispatch that wraps and forwards the actions with the given id
exports.actionFor = actionFor;
var forwardTo = function forwardTo(id, dispatch) {
return function (action) {
return dispatch(wrapTo(id, action));
};
};
exports.forwardTo = forwardTo;
var updateProperty = function updateProperty(state, id, value) {
return state[id] === value ? state : _objectSpread({}, state, (0, _defineProperty2["default"])({}, id, value));
};
exports.updateProperty = updateProperty;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL2FjdGlvbi13cmFwcGVyLmpzIl0sIm5hbWVzIjpbIkZPUldBUkQiLCJBRERSRVNTX1BSRUZJWCIsImdldEFjdGlvbkZvcndhcmRBZGRyZXNzIiwiaWQiLCJ0b1VwcGVyQ2FzZSIsIndyYXBUbyIsImFjdGlvbiIsInR5cGUiLCJwYXlsb2FkIiwibWV0YSIsIl9pZF8iLCJfZm9yd2FyZF8iLCJfYWRkcl8iLCJpc0ZvcndhcmRBY3Rpb24iLCJ1bndyYXAiLCJhY3Rpb25Gb3IiLCJmb3J3YXJkVG8iLCJkaXNwYXRjaCIsInVwZGF0ZVByb3BlcnR5Iiwic3RhdGUiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUF1QkE7Ozs7OztBQXZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLElBQU1BLE9BQU8sR0FBRyx3QkFBaEI7O0FBQ0EsSUFBTUMsY0FBYyxHQUFHLE9BQXZCOzs7QUFJUDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQk8sSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUEwQixDQUFBQyxFQUFFO0FBQUEsbUJBQ3BDRixjQURvQyxTQUNuQkUsRUFBRSxDQUFDQyxXQUFILEVBRG1CO0FBQUEsQ0FBbEM7OztBQUdBLElBQU1DLE1BQU0sR0FBRyx3QkFBTSxVQUFDRixFQUFELEVBQUtHLE1BQUw7QUFBQSxTQUFpQjtBQUMzQztBQUNBQyxJQUFBQSxJQUFJLEVBQUVELE1BQU0sQ0FBQ0MsSUFGOEI7QUFJM0M7QUFDQUMsSUFBQUEsT0FBTyxvQkFDRkYsTUFERTtBQUVMRyxNQUFBQSxJQUFJLG9CQUNDSCxNQUFNLENBQUNHLElBRFI7QUFFRkMsUUFBQUEsSUFBSSxFQUFFUDtBQUZKO0FBRkMsTUFMb0M7QUFhM0M7QUFDQU0sSUFBQUEsSUFBSSxvQkFDRUgsTUFBTSxDQUFDRyxJQUFQLElBQWUsRUFEakI7QUFFRkUsTUFBQUEsU0FBUyxFQUFFWCxPQUZUO0FBR0ZZLE1BQUFBLE1BQU0sRUFBRVYsdUJBQXVCLENBQUNDLEVBQUQ7QUFIN0I7QUFkdUMsR0FBakI7QUFBQSxDQUFOLENBQWY7OztBQXFCQSxJQUFNVSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUFQLE1BQU0sRUFBSTtBQUN2QyxTQUFPQSxNQUFNLElBQUlBLE1BQU0sQ0FBQ0csSUFBakIsSUFBeUJILE1BQU0sQ0FBQ0csSUFBUCxDQUFZRSxTQUFaLEtBQTBCWCxPQUExRDtBQUNELENBRk07Ozs7QUFJQSxJQUFNYyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFBUixNQUFNO0FBQUEsU0FDMUJPLGVBQWUsQ0FBQ1AsTUFBRCxDQUFmLEdBQTBCUSxNQUFNLENBQUNSLE1BQU0sQ0FBQ0UsT0FBUixDQUFoQyxHQUFtREYsTUFEekI7QUFBQSxDQUFyQixDLENBR1A7Ozs7O0FBQ08sSUFBTVMsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ1osRUFBRCxFQUFLRyxNQUFMO0FBQUEsU0FDdkJPLGVBQWUsQ0FBQ1AsTUFBRCxDQUFmLEdBQ0lBLE1BQU0sQ0FBQ0csSUFBUCxDQUFZRyxNQUFaLEtBQXVCVix1QkFBdUIsQ0FBQ0MsRUFBRCxDQUE5QyxHQUFxREcsTUFBTSxDQUFDRSxPQUE1RCxHQUFzRSxFQUQxRSxHQUVJRixNQUhtQjtBQUFBLENBQWxCLEMsQ0FLUDs7Ozs7QUFDTyxJQUFNVSxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDYixFQUFELEVBQUtjLFFBQUw7QUFBQSxTQUFrQixVQUFBWCxNQUFNO0FBQUEsV0FDL0NXLFFBQVEsQ0FBQ1osTUFBTSxDQUFDRixFQUFELEVBQUtHLE1BQUwsQ0FBUCxDQUR1QztBQUFBLEdBQXhCO0FBQUEsQ0FBbEI7Ozs7QUFHQSxJQUFNWSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLEtBQUQsRUFBUWhCLEVBQVIsRUFBWWlCLEtBQVo7QUFBQSxTQUM1QkQsS0FBSyxDQUFDaEIsRUFBRCxDQUFMLEtBQWNpQixLQUFkLEdBQ0lELEtBREoscUJBR1NBLEtBSFQsdUNBSU9oQixFQUpQLEVBSVlpQixLQUpaLEVBRDRCO0FBQUEsQ0FBdkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTkgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5leHBvcnQgY29uc3QgRk9SV0FSRCA9ICdAcmVkdXgtZm9yd2FyZC9GT1JXQVJEJztcbmV4cG9ydCBjb25zdCBBRERSRVNTX1BSRUZJWCA9ICdAQEtHXyc7XG5cbmltcG9ydCBjdXJyeSBmcm9tICdsb2Rhc2guY3VycnknO1xuXG4vKlxuICogd3JhcCBhbiBhY3Rpb24gaW50byBhIGZvcndhcmQgYWN0aW9uXG4gKiAgQSBmb3J3YXJkIGFjdGlvbiBsb29rcyBsaWtlIHRoaXM6XG4gKlxuICogIHtcbiAqICAgIHR5cGU6IFwiQEBrZXBsZXIuZ2wvTEFZRVJfQ09ORklHX0NIQU5HRVwiLFxuICogICAgcGF5bG9hZDoge1xuICogICAgICB0eXBlOiAnQEBrZXBsZXIuZ2wvTEFZRVJfQ09ORklHX0NIQU5HRScsXG4gKiAgICAgIHBheWxvYWQ6IHt9LFxuICogICAgICBtZXRhOiB7XG4gKiAgICAgICAgLy8gb3RoZXIgbWV0YSxcbiAqICAgICAgICBfaWRfOiBpZFxuICogICAgICB9XG4gKiAgICB9LFxuICogICAgbWV0YToge1xuICogICAgICBmb3J3YXJkOiAnQHJlZHV4LWZvcndhcmQvRk9SV0FSRCcsXG4gKiAgICAgIGlkOiAnQEBLR19pZCdcbiAqICAgIH1cbiAqICB9O1xuICovXG5cbmV4cG9ydCBjb25zdCBnZXRBY3Rpb25Gb3J3YXJkQWRkcmVzcyA9IGlkID0+XG4gIGAke0FERFJFU1NfUFJFRklYfSR7aWQudG9VcHBlckNhc2UoKX1gO1xuXG5leHBvcnQgY29uc3Qgd3JhcFRvID0gY3VycnkoKGlkLCBhY3Rpb24pID0+ICh7XG4gIC8vIGtlZXAgb3JpZ2luYWwgYWN0aW9uLnR5cGVcbiAgdHlwZTogYWN0aW9uLnR5cGUsXG5cbiAgLy8gYWN0dWFsIGFjdGlvblxuICBwYXlsb2FkOiB7XG4gICAgLi4uYWN0aW9uLFxuICAgIG1ldGE6IHtcbiAgICAgIC4uLmFjdGlvbi5tZXRhLFxuICAgICAgX2lkXzogaWRcbiAgICB9XG4gIH0sXG5cbiAgLy8gYWRkIGZvcndhcmQgc2lnbmF0dXJlIHRvIG1ldGFcbiAgbWV0YToge1xuICAgIC4uLihhY3Rpb24ubWV0YSB8fCB7fSksXG4gICAgX2ZvcndhcmRfOiBGT1JXQVJELFxuICAgIF9hZGRyXzogZ2V0QWN0aW9uRm9yd2FyZEFkZHJlc3MoaWQpXG4gIH1cbn0pKTtcblxuZXhwb3J0IGNvbnN0IGlzRm9yd2FyZEFjdGlvbiA9IGFjdGlvbiA9PiB7XG4gIHJldHVybiBhY3Rpb24gJiYgYWN0aW9uLm1ldGEgJiYgYWN0aW9uLm1ldGEuX2ZvcndhcmRfID09PSBGT1JXQVJEO1xufTtcblxuZXhwb3J0IGNvbnN0IHVud3JhcCA9IGFjdGlvbiA9PlxuICBpc0ZvcndhcmRBY3Rpb24oYWN0aW9uKSA/IHVud3JhcChhY3Rpb24ucGF5bG9hZCkgOiBhY3Rpb247XG5cbi8vIGdpdmVuIGEgaWQgdG8gZm9yd2FyZCB0bywgcmV0dXJucyB0aGUgYWN0aW9uIGZvciB0aGF0IGlkXG5leHBvcnQgY29uc3QgYWN0aW9uRm9yID0gKGlkLCBhY3Rpb24pID0+XG4gIGlzRm9yd2FyZEFjdGlvbihhY3Rpb24pXG4gICAgPyBhY3Rpb24ubWV0YS5fYWRkcl8gPT09IGdldEFjdGlvbkZvcndhcmRBZGRyZXNzKGlkKSA/IGFjdGlvbi5wYXlsb2FkIDoge31cbiAgICA6IGFjdGlvbjtcblxuLy8gcmV0dXJucyBhIG5ldyBkaXNwYXRjaCB0aGF0IHdyYXBzIGFuZCBmb3J3YXJkcyB0aGUgYWN0aW9ucyB3aXRoIHRoZSBnaXZlbiBpZFxuZXhwb3J0IGNvbnN0IGZvcndhcmRUbyA9IChpZCwgZGlzcGF0Y2gpID0+IGFjdGlvbiA9PlxuICBkaXNwYXRjaCh3cmFwVG8oaWQsIGFjdGlvbikpO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUHJvcGVydHkgPSAoc3RhdGUsIGlkLCB2YWx1ZSkgPT5cbiAgc3RhdGVbaWRdID09PSB2YWx1ZVxuICAgID8gc3RhdGVcbiAgICA6IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFtpZF06IHZhbHVlXG4gICAgICB9O1xuIl19