UNPKG

kepler.gl

Version:

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

71 lines (70 loc) 16.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireDefault(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _logo = _interopRequireDefault(require("../common/logo")); var _splitMapButton = _interopRequireDefault(require("./split-map-button")); var _toggle3dButton = _interopRequireDefault(require("./toggle-3d-button")); var _layerSelectorPanel = _interopRequireDefault(require("./layer-selector-panel")); var _mapLegendPanel = _interopRequireDefault(require("./map-legend-panel")); var _mapDrawPanel = _interopRequireDefault(require("./map-draw-panel")); var _localePanel = _interopRequireDefault(require("./locale-panel")); var _excluded = ["actionComponents", "isSplit", "top", "mapIndex", "logoComponent"]; var _templateObject; // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project // factories 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; } var StyledMapControl = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n right: 0;\n padding: ", "px;\n z-index: 10;\n margin-top: ", "px;\n position: absolute;\n display: grid;\n row-gap: 8px;\n justify-items: end;\n pointer-events: none; /* prevent padding from blocking input */\n & > * {\n /* all children should allow input */\n pointer-events: all;\n }\n"])), function (props) { return props.theme.mapControl.padding; }, function (props) { return props.$top || 0; }); var LegendLogo = /*#__PURE__*/_react["default"].createElement(_logo["default"], { version: false, appName: "kepler.gl" }); MapControlFactory.deps = [_splitMapButton["default"], _toggle3dButton["default"], _layerSelectorPanel["default"], _mapLegendPanel["default"], _mapDrawPanel["default"], _localePanel["default"]]; function MapControlFactory(SplitMapButton, Toggle3dButton, LayerSelectorPanel, MapLegendPanel, MapDrawPanel, LocalePanel) { var DEFAULT_ACTIONS = [SplitMapButton, LayerSelectorPanel, Toggle3dButton, MapDrawPanel, LocalePanel, MapLegendPanel]; var MapControl = function MapControl(_ref) { var _ref$actionComponents = _ref.actionComponents, actionComponents = _ref$actionComponents === void 0 ? DEFAULT_ACTIONS : _ref$actionComponents, _ref$isSplit = _ref.isSplit, isSplit = _ref$isSplit === void 0 ? false : _ref$isSplit, _ref$top = _ref.top, top = _ref$top === void 0 ? 0 : _ref$top, _ref$mapIndex = _ref.mapIndex, mapIndex = _ref$mapIndex === void 0 ? 0 : _ref$mapIndex, _ref$logoComponent = _ref.logoComponent, logoComponent = _ref$logoComponent === void 0 ? LegendLogo : _ref$logoComponent, restProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded); var actionComponentProps = _objectSpread({ isSplit: isSplit, mapIndex: mapIndex, logoComponent: logoComponent }, restProps); return /*#__PURE__*/_react["default"].createElement(StyledMapControl, { className: "map-control", $top: top }, actionComponents.map(function (ActionComponent, index) { return /*#__PURE__*/_react["default"].createElement(ActionComponent, (0, _extends2["default"])({ key: index, className: "map-control-action" }, actionComponentProps)); })); }; MapControl.defaultActionComponents = DEFAULT_ACTIONS; MapControl.displayName = 'MapControl'; return MapControl; } var _default = exports["default"] = MapControlFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2xvZ28iLCJfc3BsaXRNYXBCdXR0b24iLCJfdG9nZ2xlM2RCdXR0b24iLCJfbGF5ZXJTZWxlY3RvclBhbmVsIiwiX21hcExlZ2VuZFBhbmVsIiwiX21hcERyYXdQYW5lbCIsIl9sb2NhbGVQYW5lbCIsIl9leGNsdWRlZCIsIl90ZW1wbGF0ZU9iamVjdCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiU3R5bGVkTWFwQ29udHJvbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcENvbnRyb2wiLCJwYWRkaW5nIiwiJHRvcCIsIkxlZ2VuZExvZ28iLCJjcmVhdGVFbGVtZW50IiwidmVyc2lvbiIsImFwcE5hbWUiLCJNYXBDb250cm9sRmFjdG9yeSIsImRlcHMiLCJTcGxpdE1hcEJ1dHRvbkZhY3RvcnkiLCJUb2dnbGUzZEJ1dHRvbkZhY3RvcnkiLCJMYXllclNlbGVjdG9yUGFuZWxGYWN0b3J5IiwiTWFwTGVnZW5kUGFuZWxGYWN0b3J5IiwiTWFwRHJhd1BhbmVsRmFjdG9yeSIsIkxvY2FsZVBhbmVsRmFjdG9yeSIsIlNwbGl0TWFwQnV0dG9uIiwiVG9nZ2xlM2RCdXR0b24iLCJMYXllclNlbGVjdG9yUGFuZWwiLCJNYXBMZWdlbmRQYW5lbCIsIk1hcERyYXdQYW5lbCIsIkxvY2FsZVBhbmVsIiwiREVGQVVMVF9BQ1RJT05TIiwiTWFwQ29udHJvbCIsIl9yZWYiLCJfcmVmJGFjdGlvbkNvbXBvbmVudHMiLCJhY3Rpb25Db21wb25lbnRzIiwiX3JlZiRpc1NwbGl0IiwiaXNTcGxpdCIsIl9yZWYkdG9wIiwidG9wIiwiX3JlZiRtYXBJbmRleCIsIm1hcEluZGV4IiwiX3JlZiRsb2dvQ29tcG9uZW50IiwibG9nb0NvbXBvbmVudCIsInJlc3RQcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJhY3Rpb25Db21wb25lbnRQcm9wcyIsImNsYXNzTmFtZSIsIm1hcCIsIkFjdGlvbkNvbXBvbmVudCIsImluZGV4IiwiX2V4dGVuZHMyIiwia2V5IiwiZGVmYXVsdEFjdGlvbkNvbXBvbmVudHMiLCJkaXNwbGF5TmFtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWNvbnRyb2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBLZXBsZXJHbExvZ28gZnJvbSAnLi4vY29tbW9uL2xvZ28nO1xuXG4vLyBmYWN0b3JpZXNcbmltcG9ydCBTcGxpdE1hcEJ1dHRvbkZhY3RvcnkgZnJvbSAnLi9zcGxpdC1tYXAtYnV0dG9uJztcbmltcG9ydCBUb2dnbGUzZEJ1dHRvbkZhY3RvcnkgZnJvbSAnLi90b2dnbGUtM2QtYnV0dG9uJztcbmltcG9ydCBMYXllclNlbGVjdG9yUGFuZWxGYWN0b3J5IGZyb20gJy4vbGF5ZXItc2VsZWN0b3ItcGFuZWwnO1xuaW1wb3J0IE1hcExlZ2VuZFBhbmVsRmFjdG9yeSBmcm9tICcuL21hcC1sZWdlbmQtcGFuZWwnO1xuaW1wb3J0IE1hcERyYXdQYW5lbEZhY3RvcnkgZnJvbSAnLi9tYXAtZHJhdy1wYW5lbCc7XG5pbXBvcnQgTG9jYWxlUGFuZWxGYWN0b3J5IGZyb20gJy4vbG9jYWxlLXBhbmVsJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7RWRpdG9yLCBMYXllclZpc0NvbmZpZywgTWFwQ29udHJvbHMsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtNYXBTdGF0ZUFjdGlvbnMsIFVJU3RhdGVBY3Rpb25zfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkTWFwQ29udHJvbFByb3BzIHtcbiAgJHRvcD86IG51bWJlcjtcbn1cblxuY29uc3QgU3R5bGVkTWFwQ29udHJvbCA9IHN0eWxlZC5kaXY8U3R5bGVkTWFwQ29udHJvbFByb3BzPmBcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICB6LWluZGV4OiAxMDtcbiAgbWFyZ2luLXRvcDogJHtwcm9wcyA9PiBwcm9wcy4kdG9wIHx8IDB9cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcm93LWdhcDogOHB4O1xuICBqdXN0aWZ5LWl0ZW1zOiBlbmQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBwcmV2ZW50IHBhZGRpbmcgZnJvbSBibG9ja2luZyBpbnB1dCAqL1xuICAmID4gKiB7XG4gICAgLyogYWxsIGNoaWxkcmVuIHNob3VsZCBhbGxvdyBpbnB1dCAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIH1cbmA7XG5cbmNvbnN0IExlZ2VuZExvZ28gPSA8S2VwbGVyR2xMb2dvIHZlcnNpb249e2ZhbHNlfSBhcHBOYW1lPVwia2VwbGVyLmdsXCIgLz47XG5cbmV4cG9ydCB0eXBlIE1hcENvbnRyb2xQcm9wcyA9IHtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBkcmFnUm90YXRlOiBib29sZWFuO1xuICBpc1NwbGl0OiBib29sZWFuO1xuICBwcmltYXJ5OiBib29sZWFuO1xuICBsYXllcnM6IExheWVyW107XG4gIGxheWVyc1RvUmVuZGVyOiB7W2tleTogc3RyaW5nXTogYm9vbGVhbn07XG4gIG1hcEluZGV4OiBudW1iZXI7XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbiAgb25Ub2dnbGVQZXJzcGVjdGl2ZTogKCkgPT4gdm9pZDtcbiAgb25Ub2dnbGVTcGxpdE1hcDogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucy50b2dnbGVTcGxpdE1hcDtcbiAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0OiAoe1xuICAgIGlzVmlld3BvcnRTeW5jZWQsXG4gICAgaXNab29tTG9ja2VkXG4gIH06IHtcbiAgICBpc1ZpZXdwb3J0U3luY2VkOiBib29sZWFuO1xuICAgIGlzWm9vbUxvY2tlZDogYm9vbGVhbjtcbiAgfSkgPT4gdm9pZDtcbiAgb25NYXBUb2dnbGVMYXllcjogKGxheWVySWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25Ub2dnbGVNYXBDb250cm9sOiAoY29udHJvbDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblNldEVkaXRvck1vZGU6IChtb2RlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eTogKCkgPT4gdm9pZDtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZTogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgdG9wOiBudW1iZXI7XG4gIG9uU2V0TG9jYWxlOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnMuc2V0TG9jYWxlO1xuICBhdmFpbGFibGVMb2NhbGVzOiBzdHJpbmdbXTtcbiAgbG9jYWxlOiBzdHJpbmc7XG4gIGxvZ29Db21wb25lbnQ/OiBSZWFjdC5GQyB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuXG4gIHNldE1hcENvbnRyb2xTZXR0aW5nczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zLnNldE1hcENvbnRyb2xTZXR0aW5ncztcbiAgYWN0aXZlU2lkZVBhbmVsOiBzdHJpbmcgfCBudWxsO1xuXG4gIC8vIG9wdGlvbmFsXG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgc2NhbGU/OiBudW1iZXI7XG4gIG1hcExheWVycz86IHtba2V5OiBzdHJpbmddOiBib29sZWFufTtcbiAgZWRpdG9yOiBFZGl0b3I7XG4gIGFjdGlvbkNvbXBvbmVudHM/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXTtcbiAgbWFwSGVpZ2h0PzogbnVtYmVyO1xufTtcblxuTWFwQ29udHJvbEZhY3RvcnkuZGVwcyA9IFtcbiAgU3BsaXRNYXBCdXR0b25GYWN0b3J5LFxuICBUb2dnbGUzZEJ1dHRvbkZhY3RvcnksXG4gIExheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnksXG4gIE1hcExlZ2VuZFBhbmVsRmFjdG9yeSxcbiAgTWFwRHJhd1BhbmVsRmFjdG9yeSxcbiAgTG9jYWxlUGFuZWxGYWN0b3J5XG5dO1xuXG5mdW5jdGlvbiBNYXBDb250cm9sRmFjdG9yeShcbiAgU3BsaXRNYXBCdXR0b246IFJldHVyblR5cGU8dHlwZW9mIFNwbGl0TWFwQnV0dG9uRmFjdG9yeT4sXG4gIFRvZ2dsZTNkQnV0dG9uOiBSZXR1cm5UeXBlPHR5cGVvZiBUb2dnbGUzZEJ1dHRvbkZhY3Rvcnk+LFxuICBMYXllclNlbGVjdG9yUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIExheWVyU2VsZWN0b3JQYW5lbEZhY3Rvcnk+LFxuICBNYXBMZWdlbmRQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwTGVnZW5kUGFuZWxGYWN0b3J5PixcbiAgTWFwRHJhd1BhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBEcmF3UGFuZWxGYWN0b3J5PixcbiAgTG9jYWxlUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIExvY2FsZVBhbmVsRmFjdG9yeT5cbikge1xuICBjb25zdCBERUZBVUxUX0FDVElPTlMgPSBbXG4gICAgU3BsaXRNYXBCdXR0b24sXG4gICAgTGF5ZXJTZWxlY3RvclBhbmVsLFxuICAgIFRvZ2dsZTNkQnV0dG9uLFxuICAgIE1hcERyYXdQYW5lbCxcbiAgICBMb2NhbGVQYW5lbCxcbiAgICBNYXBMZWdlbmRQYW5lbFxuICBdO1xuXG4gIGNvbnN0IE1hcENvbnRyb2w6IFJlYWN0LkZDPE1hcENvbnRyb2xQcm9wcz4gJiB7XG4gICAgZGVmYXVsdEFjdGlvbkNvbXBvbmVudHM6IE1hcENvbnRyb2xQcm9wc1snYWN0aW9uQ29tcG9uZW50cyddO1xuICB9ID0gKHtcbiAgICBhY3Rpb25Db21wb25lbnRzID0gREVGQVVMVF9BQ1RJT05TLFxuICAgIGlzU3BsaXQgPSBmYWxzZSxcbiAgICB0b3AgPSAwLFxuICAgIG1hcEluZGV4ID0gMCxcbiAgICBsb2dvQ29tcG9uZW50ID0gTGVnZW5kTG9nbyxcbiAgICAuLi5yZXN0UHJvcHNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGFjdGlvbkNvbXBvbmVudFByb3BzID0ge1xuICAgICAgaXNTcGxpdCxcbiAgICAgIG1hcEluZGV4LFxuICAgICAgbG9nb0NvbXBvbmVudCxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH07XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNYXBDb250cm9sIGNsYXNzTmFtZT1cIm1hcC1jb250cm9sXCIgJHRvcD17dG9wfT5cbiAgICAgICAge2FjdGlvbkNvbXBvbmVudHMubWFwKChBY3Rpb25Db21wb25lbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgPEFjdGlvbkNvbXBvbmVudCBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJtYXAtY29udHJvbC1hY3Rpb25cIiB7Li4uYWN0aW9uQ29tcG9uZW50UHJvcHN9IC8+XG4gICAgICAgICkpfVxuICAgICAgPC9TdHlsZWRNYXBDb250cm9sPlxuICAgICk7XG4gIH07XG5cbiAgTWFwQ29udHJvbC5kZWZhdWx0QWN0aW9uQ29tcG9uZW50cyA9IERFRkFVTFRfQUNUSU9OUztcblxuICBNYXBDb250cm9sLmRpc3BsYXlOYW1lID0gJ01hcENvbnRyb2wnO1xuXG4gIHJldHVybiBNYXBDb250cm9sO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBDb250cm9sRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUcsZUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssbUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFlBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUFnRCxJQUFBUyxTQUFBO0FBQUEsSUFBQUMsZUFBQSxFQWJoRDtBQUNBO0FBTUE7QUFBQSxTQUFBQyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENB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