kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
105 lines (100 loc) • 14.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.visStateLens = exports.uiStateLens = exports.providerStateLens = exports.mapStyleLens = exports.mapStateLens = exports["default"] = exports.coreReducerFactory = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _redux = require("redux");
var _visState = require("./vis-state");
var _mapState = require("./map-state");
var _mapStyle = require("./map-style");
var _uiState = require("./ui-state");
var _providerState = require("./provider-state");
var _composers = _interopRequireDefault(require("./composers"));
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; } // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
var combined = function combined() {
var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var extraReducers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return (0, _redux.combineReducers)(_objectSpread({
visState: (0, _visState.visStateReducerFactory)(initialState.visState),
mapState: (0, _mapState.mapStateReducerFactory)(initialState.mapState),
mapStyle: (0, _mapStyle.mapStyleReducerFactory)(initialState.mapStyle),
uiState: (0, _uiState.uiStateReducerFactory)(initialState.uiState),
providerState: (0, _providerState.providerStateReducerFactory)(initialState.providerState)
}, extraReducers));
};
var coreReducerFactory = exports.coreReducerFactory = function coreReducerFactory() {
var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var extraReducers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return function (state, action) {
if (_composers["default"][action.type]) {
return _composers["default"][action.type](state, action);
}
return combined(initialState, extraReducers)(state, action);
};
};
var _default = exports["default"] = coreReducerFactory();
/**
* Connect subreducer `mapState`, used with `injectComponents`. Learn more at
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
*
* @param {*} reduxState
* @public
*/
var mapStateLens = exports.mapStateLens = function mapStateLens(reduxState) {
return {
mapState: reduxState.mapState
};
};
/**
* Connect subreducer `mapStyle`, used with `injectComponents`. Learn more at
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
*
* @param {*} reduxState
* @public
*/
var mapStyleLens = exports.mapStyleLens = function mapStyleLens(reduxState) {
return {
mapStyle: reduxState.mapStyle
};
};
/**
* Connect subreducer `visState`, used with `injectComponents`. Learn more at
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
*
* @param {*} reduxState
* @public
*/
var visStateLens = exports.visStateLens = function visStateLens(reduxState) {
return {
visState: reduxState.visState
};
};
/**
* Connect subreducer `uiState`, used with `injectComponents`. Learn more at
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
*
* @param {*} reduxState
* @public
*/
var uiStateLens = exports.uiStateLens = function uiStateLens(reduxState) {
return {
uiState: reduxState.uiState
};
};
/**
* Connect subreducer `providerState`, used with `injectComponents`. Learn more at
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
*
* @param {*} reduxState
* @public
*/
var providerStateLens = exports.providerStateLens = function providerStateLens(reduxState) {
return {
providerState: reduxState.providerState
};
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdXgiLCJyZXF1aXJlIiwiX3Zpc1N0YXRlIiwiX21hcFN0YXRlIiwiX21hcFN0eWxlIiwiX3VpU3RhdGUiLCJfcHJvdmlkZXJTdGF0ZSIsIl9jb21wb3NlcnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJjb21iaW5lZCIsImluaXRpYWxTdGF0ZSIsInVuZGVmaW5lZCIsImV4dHJhUmVkdWNlcnMiLCJjb21iaW5lUmVkdWNlcnMiLCJ2aXNTdGF0ZSIsInZpc1N0YXRlUmVkdWNlckZhY3RvcnkiLCJtYXBTdGF0ZSIsIm1hcFN0YXRlUmVkdWNlckZhY3RvcnkiLCJtYXBTdHlsZSIsIm1hcFN0eWxlUmVkdWNlckZhY3RvcnkiLCJ1aVN0YXRlIiwidWlTdGF0ZVJlZHVjZXJGYWN0b3J5IiwicHJvdmlkZXJTdGF0ZSIsInByb3ZpZGVyU3RhdGVSZWR1Y2VyRmFjdG9yeSIsImNvcmVSZWR1Y2VyRmFjdG9yeSIsImV4cG9ydHMiLCJzdGF0ZSIsImFjdGlvbiIsImNvbXBvc2VycyIsInR5cGUiLCJfZGVmYXVsdCIsIm1hcFN0YXRlTGVucyIsInJlZHV4U3RhdGUiLCJtYXBTdHlsZUxlbnMiLCJ2aXNTdGF0ZUxlbnMiLCJ1aVN0YXRlTGVucyIsInByb3ZpZGVyU3RhdGVMZW5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlZHVjZXJzL3NyYy9jb3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Y29tYmluZVJlZHVjZXJzfSBmcm9tICdyZWR1eCc7XG5cbmltcG9ydCB7dmlzU3RhdGVSZWR1Y2VyRmFjdG9yeX0gZnJvbSAnLi92aXMtc3RhdGUnO1xuaW1wb3J0IHttYXBTdGF0ZVJlZHVjZXJGYWN0b3J5fSBmcm9tICcuL21hcC1zdGF0ZSc7XG5pbXBvcnQge21hcFN0eWxlUmVkdWNlckZhY3Rvcnl9IGZyb20gJy4vbWFwLXN0eWxlJztcbmltcG9ydCB7dWlTdGF0ZVJlZHVjZXJGYWN0b3J5fSBmcm9tICcuL3VpLXN0YXRlJztcbmltcG9ydCB7cHJvdmlkZXJTdGF0ZVJlZHVjZXJGYWN0b3J5fSBmcm9tICcuL3Byb3ZpZGVyLXN0YXRlJztcblxuaW1wb3J0IGNvbXBvc2VycyBmcm9tICcuL2NvbXBvc2Vycyc7XG5cbmltcG9ydCB7VmlzU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvc2NoZW1hcyc7XG5pbXBvcnQge01hcFN0YXRlLCBVaVN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7TWFwU3R5bGV9IGZyb20gJy4vbWFwLXN0eWxlLXVwZGF0ZXJzJztcbmltcG9ydCB7UHJvdmlkZXJTdGF0ZX0gZnJvbSAnLi9wcm92aWRlci1zdGF0ZS11cGRhdGVycyc7XG5cbmV4cG9ydCB0eXBlIEtlcGxlckdsU3RhdGUgPSB7XG4gIHZpc1N0YXRlOiBWaXNTdGF0ZTtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBtYXBTdHlsZTogTWFwU3R5bGU7XG4gIHVpU3RhdGU6IFVpU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG59O1xuXG5jb25zdCBjb21iaW5lZCA9IChcbiAgaW5pdGlhbFN0YXRlOiBQYXJ0aWFsPEtlcGxlckdsU3RhdGU+ID0ge30sXG4gIGV4dHJhUmVkdWNlcnM6IHtbeDogc3RyaW5nXTogdW5rbm93bn0gPSB7fVxuKSA9PiB7XG4gIHJldHVybiBjb21iaW5lUmVkdWNlcnMoe1xuICAgIHZpc1N0YXRlOiB2aXNTdGF0ZVJlZHVjZXJGYWN0b3J5KGluaXRpYWxTdGF0ZS52aXNTdGF0ZSksXG4gICAgbWFwU3RhdGU6IG1hcFN0YXRlUmVkdWNlckZhY3RvcnkoaW5pdGlhbFN0YXRlLm1hcFN0YXRlKSxcbiAgICBtYXBTdHlsZTogbWFwU3R5bGVSZWR1Y2VyRmFjdG9yeShpbml0aWFsU3RhdGUubWFwU3R5bGUpLFxuICAgIHVpU3RhdGU6IHVpU3RhdGVSZWR1Y2VyRmFjdG9yeShpbml0aWFsU3RhdGUudWlTdGF0ZSksXG4gICAgcHJvdmlkZXJTdGF0ZTogcHJvdmlkZXJTdGF0ZVJlZHVjZXJGYWN0b3J5KGluaXRpYWxTdGF0ZS5wcm92aWRlclN0YXRlKSxcbiAgICAuLi5leHRyYVJlZHVjZXJzXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcmVSZWR1Y2VyRmFjdG9yeSA9XG4gIChpbml0aWFsU3RhdGU6IFBhcnRpYWw8S2VwbGVyR2xTdGF0ZT4gPSB7fSwgZXh0cmFSZWR1Y2VycyA9IHt9KSA9PlxuICAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGlmIChjb21wb3NlcnNbYWN0aW9uLnR5cGVdKSB7XG4gICAgICByZXR1cm4gY29tcG9zZXJzW2FjdGlvbi50eXBlXShzdGF0ZSwgYWN0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbWJpbmVkKGluaXRpYWxTdGF0ZSwgZXh0cmFSZWR1Y2Vycykoc3RhdGUsIGFjdGlvbik7XG4gIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNvcmVSZWR1Y2VyRmFjdG9yeSgpO1xuXG4vKipcbiAqIENvbm5lY3Qgc3VicmVkdWNlciBgbWFwU3RhdGVgLCB1c2VkIHdpdGggYGluamVjdENvbXBvbmVudHNgLiBMZWFybiBtb3JlIGF0XG4gKiBbUmVwbGFjZSBVSSBDb21wb25lbnRdKC4uL2FkdmFuY2VkLXVzYWdlcy9yZXBsYWNlLXVpLWNvbXBvbmVudC5tZCNwYXNzLWN1c3RvbS1jb21wb25lbnQtcHJvcHMpXG4gKlxuICogQHBhcmFtIHsqfSByZWR1eFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBtYXBTdGF0ZUxlbnMgPSAocmVkdXhTdGF0ZTogS2VwbGVyR2xTdGF0ZSkgPT4gKHttYXBTdGF0ZTogcmVkdXhTdGF0ZS5tYXBTdGF0ZX0pO1xuXG4vKipcbiAqIENvbm5lY3Qgc3VicmVkdWNlciBgbWFwU3R5bGVgLCB1c2VkIHdpdGggYGluamVjdENvbXBvbmVudHNgLiBMZWFybiBtb3JlIGF0XG4gKiBbUmVwbGFjZSBVSSBDb21wb25lbnRdKC4uL2FkdmFuY2VkLXVzYWdlcy9yZXBsYWNlLXVpLWNvbXBvbmVudC5tZCNwYXNzLWN1c3RvbS1jb21wb25lbnQtcHJvcHMpXG4gKlxuICogQHBhcmFtIHsqfSByZWR1eFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBtYXBTdHlsZUxlbnMgPSAocmVkdXhTdGF0ZTogS2VwbGVyR2xTdGF0ZSkgPT4gKHttYXBTdHlsZTogcmVkdXhTdGF0ZS5tYXBTdHlsZX0pO1xuXG4vKipcbiAqIENvbm5lY3Qgc3VicmVkdWNlciBgdmlzU3RhdGVgLCB1c2VkIHdpdGggYGluamVjdENvbXBvbmVudHNgLiBMZWFybiBtb3JlIGF0XG4gKiBbUmVwbGFjZSBVSSBDb21wb25lbnRdKC4uL2FkdmFuY2VkLXVzYWdlcy9yZXBsYWNlLXVpLWNvbXBvbmVudC5tZCNwYXNzLWN1c3RvbS1jb21wb25lbnQtcHJvcHMpXG4gKlxuICogQHBhcmFtIHsqfSByZWR1eFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB2aXNTdGF0ZUxlbnMgPSAocmVkdXhTdGF0ZTogS2VwbGVyR2xTdGF0ZSkgPT4gKHt2aXNTdGF0ZTogcmVkdXhTdGF0ZS52aXNTdGF0ZX0pO1xuXG4vKipcbiAqIENvbm5lY3Qgc3VicmVkdWNlciBgdWlTdGF0ZWAsIHVzZWQgd2l0aCBgaW5qZWN0Q29tcG9uZW50c2AuIExlYXJuIG1vcmUgYXRcbiAqIFtSZXBsYWNlIFVJIENvbXBvbmVudF0oLi4vYWR2YW5jZWQtdXNhZ2VzL3JlcGxhY2UtdWktY29tcG9uZW50Lm1kI3Bhc3MtY3VzdG9tLWNvbXBvbmVudC1wcm9wcylcbiAqXG4gKiBAcGFyYW0geyp9IHJlZHV4U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHVpU3RhdGVMZW5zID0gKHJlZHV4U3RhdGU6IEtlcGxlckdsU3RhdGUpID0+ICh7dWlTdGF0ZTogcmVkdXhTdGF0ZS51aVN0YXRlfSk7XG5cbi8qKlxuICogQ29ubmVjdCBzdWJyZWR1Y2VyIGBwcm92aWRlclN0YXRlYCwgdXNlZCB3aXRoIGBpbmplY3RDb21wb25lbnRzYC4gTGVhcm4gbW9yZSBhdFxuICogW1JlcGxhY2UgVUkgQ29tcG9uZW50XSguLi9hZHZhbmNlZC11c2FnZXMvcmVwbGFjZS11aS1jb21wb25lbnQubWQjcGFzcy1jdXN0b20tY29tcG9uZW50LXByb3BzKVxuICpcbiAqIEBwYXJhbSB7Kn0gcmVkdXhTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZXJTdGF0ZUxlbnMgPSAocmVkdXhTdGF0ZTogS2VwbGVyR2xTdGF0ZSkgPT4gKHtcbiAgcHJvdmlkZXJTdGF0ZTogcmVkdXhTdGF0ZS5wcm92aWRlclN0YXRlXG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFMLE9BQUE7QUFFQSxJQUFBTSxVQUFBLEdBQUFDLHNCQUFBLENBQUFQLE9BQUE7QUFBb0MsU0FBQVEsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENB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