UNPKG

kepler.gl.geoiq

Version:

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

93 lines (70 loc) 10.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.toggleSplitMapUpdater = exports.receiveMapConfigUpdater = exports.togglePerspectiveUpdater = exports.fitBoundsUpdater = exports.updateMapUpdater = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _geoViewport = _interopRequireDefault(require("@mapbox/geo-viewport")); 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; } /* Updaters */ var updateMapUpdater = function updateMapUpdater(state, action) { return _objectSpread({}, state, {}, action.payload || {}); }; exports.updateMapUpdater = updateMapUpdater; var fitBoundsUpdater = function fitBoundsUpdater(state, action) { var bounds = action.payload; var _geoViewport$viewport = _geoViewport["default"].viewport(bounds, [state.width, state.height]), center = _geoViewport$viewport.center, zoom = _geoViewport$viewport.zoom; return _objectSpread({}, state, { latitude: center[1], longitude: center[0], zoom: zoom }); }; exports.fitBoundsUpdater = fitBoundsUpdater; var togglePerspectiveUpdater = function togglePerspectiveUpdater(state, action) { return _objectSpread({}, state, {}, { pitch: state.dragRotate ? 0 : 50, bearing: state.dragRotate ? 0 : 24 }, { dragRotate: !state.dragRotate }); }; // consider case where you have a split map and user wants to reset exports.togglePerspectiveUpdater = togglePerspectiveUpdater; var receiveMapConfigUpdater = function receiveMapConfigUpdater(state, action) { var _ref = action.payload.mapState || {}, _ref$isSplit = _ref.isSplit, isSplit = _ref$isSplit === void 0 ? false : _ref$isSplit; return _objectSpread({}, state, {}, action.payload.mapState || {}, { isSplit: isSplit }, getMapDimForSplitMap(isSplit, state)); }; exports.receiveMapConfigUpdater = receiveMapConfigUpdater; var toggleSplitMapUpdater = function toggleSplitMapUpdater(state, action) { return _objectSpread({}, state, { isSplit: !state.isSplit }, getMapDimForSplitMap(!state.isSplit, state)); }; // Helpers exports.toggleSplitMapUpdater = toggleSplitMapUpdater; function getMapDimForSplitMap(isSplit, state) { // cases: // 1. state split: true - isSplit: true // do nothing // 2. state split: false - isSplit: false // do nothing if (state.isSplit === isSplit) { return {}; } var width = state.isSplit && !isSplit ? // 3. state split: true - isSplit: false // double width state.width * 2 : // 4. state split: false - isSplit: true // split width state.width / 2; return { width: width }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy9tYXAtc3RhdGUtdXBkYXRlcnMuanMiXSwibmFtZXMiOlsidXBkYXRlTWFwVXBkYXRlciIsInN0YXRlIiwiYWN0aW9uIiwicGF5bG9hZCIsImZpdEJvdW5kc1VwZGF0ZXIiLCJib3VuZHMiLCJnZW9WaWV3cG9ydCIsInZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJjZW50ZXIiLCJ6b29tIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJ0b2dnbGVQZXJzcGVjdGl2ZVVwZGF0ZXIiLCJwaXRjaCIsImRyYWdSb3RhdGUiLCJiZWFyaW5nIiwicmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIiLCJtYXBTdGF0ZSIsImlzU3BsaXQiLCJnZXRNYXBEaW1Gb3JTcGxpdE1hcCIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7OztBQUVBO0FBQ08sSUFBTUEsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDQyxLQUFELEVBQVFDLE1BQVI7QUFBQSwyQkFDM0JELEtBRDJCLE1BRTFCQyxNQUFNLENBQUNDLE9BQVAsSUFBa0IsRUFGUTtBQUFBLENBQXpCOzs7O0FBS0EsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDSCxLQUFELEVBQVFDLE1BQVIsRUFBbUI7QUFDakQsTUFBTUcsTUFBTSxHQUFHSCxNQUFNLENBQUNDLE9BQXRCOztBQURpRCw4QkFFMUJHLHdCQUFZQyxRQUFaLENBQXFCRixNQUFyQixFQUE2QixDQUNsREosS0FBSyxDQUFDTyxLQUQ0QyxFQUVsRFAsS0FBSyxDQUFDUSxNQUY0QyxDQUE3QixDQUYwQjtBQUFBLE1BRTFDQyxNQUYwQyx5QkFFMUNBLE1BRjBDO0FBQUEsTUFFbENDLElBRmtDLHlCQUVsQ0EsSUFGa0M7O0FBT2pELDJCQUNLVixLQURMO0FBRUVXLElBQUFBLFFBQVEsRUFBRUYsTUFBTSxDQUFDLENBQUQsQ0FGbEI7QUFHRUcsSUFBQUEsU0FBUyxFQUFFSCxNQUFNLENBQUMsQ0FBRCxDQUhuQjtBQUlFQyxJQUFBQSxJQUFJLEVBQUpBO0FBSkY7QUFNRCxDQWJNOzs7O0FBZUEsSUFBTUcsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUEyQixDQUFDYixLQUFELEVBQVFDLE1BQVI7QUFBQSwyQkFDbkNELEtBRG1DLE1BRW5DO0FBQ0RjLElBQUFBLEtBQUssRUFBRWQsS0FBSyxDQUFDZSxVQUFOLEdBQW1CLENBQW5CLEdBQXVCLEVBRDdCO0FBRURDLElBQUFBLE9BQU8sRUFBRWhCLEtBQUssQ0FBQ2UsVUFBTixHQUFtQixDQUFuQixHQUF1QjtBQUYvQixHQUZtQztBQU10Q0EsSUFBQUEsVUFBVSxFQUFFLENBQUNmLEtBQUssQ0FBQ2U7QUFObUI7QUFBQSxDQUFqQyxDLENBU1A7Ozs7O0FBQ08sSUFBTUUsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUEwQixDQUFDakIsS0FBRCxFQUFRQyxNQUFSLEVBQW1CO0FBQUEsYUFDOUJBLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlZ0IsUUFBZixJQUEyQixFQURHO0FBQUEsMEJBQ2pEQyxPQURpRDtBQUFBLE1BQ2pEQSxPQURpRCw2QkFDdkMsS0FEdUM7O0FBR3hELDJCQUNLbkIsS0FETCxNQUVNQyxNQUFNLENBQUNDLE9BQVAsQ0FBZWdCLFFBQWYsSUFBMkIsRUFGakM7QUFHRUMsSUFBQUEsT0FBTyxFQUFQQTtBQUhGLEtBSUtDLG9CQUFvQixDQUFDRCxPQUFELEVBQVVuQixLQUFWLENBSnpCO0FBTUQsQ0FUTTs7OztBQVdBLElBQU1xQixxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXdCLENBQUNyQixLQUFELEVBQVFDLE1BQVI7QUFBQSwyQkFDaENELEtBRGdDO0FBRW5DbUIsSUFBQUEsT0FBTyxFQUFFLENBQUNuQixLQUFLLENBQUNtQjtBQUZtQixLQUdoQ0Msb0JBQW9CLENBQUMsQ0FBQ3BCLEtBQUssQ0FBQ21CLE9BQVIsRUFBaUJuQixLQUFqQixDQUhZO0FBQUEsQ0FBOUIsQyxDQU1QOzs7OztBQUNBLFNBQVNvQixvQkFBVCxDQUE4QkQsT0FBOUIsRUFBdUNuQixLQUF2QyxFQUE4QztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSUEsS0FBSyxDQUFDbUIsT0FBTixLQUFrQkEsT0FBdEIsRUFBK0I7QUFDN0IsV0FBTyxFQUFQO0FBQ0Q7O0FBRUQsTUFBTVosS0FBSyxHQUNUUCxLQUFLLENBQUNtQixPQUFOLElBQWlCLENBQUNBLE9BQWxCLEdBQ0k7QUFDQTtBQUNBbkIsRUFBQUEsS0FBSyxDQUFDTyxLQUFOLEdBQWMsQ0FIbEIsR0FJSTtBQUNBO0FBQ0FQLEVBQUFBLEtBQUssQ0FBQ08sS0FBTixHQUFjLENBUHBCO0FBU0EsU0FBTztBQUNMQSxJQUFBQSxLQUFLLEVBQUxBO0FBREssR0FBUDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE5IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGdlb1ZpZXdwb3J0IGZyb20gJ0BtYXBib3gvZ2VvLXZpZXdwb3J0JztcblxuLyogVXBkYXRlcnMgKi9cbmV4cG9ydCBjb25zdCB1cGRhdGVNYXBVcGRhdGVyID0gKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gIC4uLnN0YXRlLFxuICAuLi4oYWN0aW9uLnBheWxvYWQgfHwge30pXG59KTtcblxuZXhwb3J0IGNvbnN0IGZpdEJvdW5kc1VwZGF0ZXIgPSAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICBjb25zdCBib3VuZHMgPSBhY3Rpb24ucGF5bG9hZDtcbiAgY29uc3Qge2NlbnRlciwgem9vbX0gPSBnZW9WaWV3cG9ydC52aWV3cG9ydChib3VuZHMsIFtcbiAgICBzdGF0ZS53aWR0aCxcbiAgICBzdGF0ZS5oZWlnaHRcbiAgXSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsYXRpdHVkZTogY2VudGVyWzFdLFxuICAgIGxvbmdpdHVkZTogY2VudGVyWzBdLFxuICAgIHpvb21cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2dnbGVQZXJzcGVjdGl2ZVVwZGF0ZXIgPSAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIC4uLntcbiAgICBwaXRjaDogc3RhdGUuZHJhZ1JvdGF0ZSA/IDAgOiA1MCxcbiAgICBiZWFyaW5nOiBzdGF0ZS5kcmFnUm90YXRlID8gMCA6IDI0XG4gIH0sXG4gIGRyYWdSb3RhdGU6ICFzdGF0ZS5kcmFnUm90YXRlXG59KTtcblxuLy8gY29uc2lkZXIgY2FzZSB3aGVyZSB5b3UgaGF2ZSBhIHNwbGl0IG1hcCBhbmQgdXNlciB3YW50cyB0byByZXNldFxuZXhwb3J0IGNvbnN0IHJlY2VpdmVNYXBDb25maWdVcGRhdGVyID0gKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgY29uc3Qge2lzU3BsaXQgPSBmYWxzZX0gPSBhY3Rpb24ucGF5bG9hZC5tYXBTdGF0ZSB8fCB7fTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLihhY3Rpb24ucGF5bG9hZC5tYXBTdGF0ZSB8fCB7fSksXG4gICAgaXNTcGxpdCxcbiAgICAuLi5nZXRNYXBEaW1Gb3JTcGxpdE1hcChpc1NwbGl0LCBzdGF0ZSlcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgPSAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGlzU3BsaXQ6ICFzdGF0ZS5pc1NwbGl0LFxuICAuLi5nZXRNYXBEaW1Gb3JTcGxpdE1hcCghc3RhdGUuaXNTcGxpdCwgc3RhdGUpXG59KTtcblxuLy8gSGVscGVyc1xuZnVuY3Rpb24gZ2V0TWFwRGltRm9yU3BsaXRNYXAoaXNTcGxpdCwgc3RhdGUpIHtcbiAgLy8gY2FzZXM6XG4gIC8vIDEuIHN0YXRlIHNwbGl0OiB0cnVlIC0gaXNTcGxpdDogdHJ1ZVxuICAvLyBkbyBub3RoaW5nXG4gIC8vIDIuIHN0YXRlIHNwbGl0OiBmYWxzZSAtIGlzU3BsaXQ6IGZhbHNlXG4gIC8vIGRvIG5vdGhpbmdcbiAgaWYgKHN0YXRlLmlzU3BsaXQgPT09IGlzU3BsaXQpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCB3aWR0aCA9XG4gICAgc3RhdGUuaXNTcGxpdCAmJiAhaXNTcGxpdFxuICAgICAgPyAvLyAzLiBzdGF0ZSBzcGxpdDogdHJ1ZSAtIGlzU3BsaXQ6IGZhbHNlXG4gICAgICAgIC8vIGRvdWJsZSB3aWR0aFxuICAgICAgICBzdGF0ZS53aWR0aCAqIDJcbiAgICAgIDogLy8gNC4gc3RhdGUgc3BsaXQ6IGZhbHNlIC0gaXNTcGxpdDogdHJ1ZVxuICAgICAgICAvLyBzcGxpdCB3aWR0aFxuICAgICAgICBzdGF0ZS53aWR0aCAvIDI7XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aFxuICB9O1xufVxuIl19