UNPKG

kepler.gl

Version:

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

113 lines (96 loc) 12.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _toolbarItem = _interopRequireDefault(require("../common/toolbar-item")); var _styledComponents = require("../common/styled-components"); var _mapControlTooltip = _interopRequireDefault(require("./map-control-tooltip")); var _mapControlToolbar = _interopRequireDefault(require("./map-control-toolbar")); // Copyright (c) 2021 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. LocalePanelFactory.deps = [_mapControlTooltip["default"], _mapControlToolbar["default"]]; function LocalePanelFactory(MapControlTooltip, MapControlToolbar) { /** @type {import('./locale-panel').LocalePanelComponent} */ var LocalePanel = /*#__PURE__*/_react["default"].memo(function (_ref) { var availableLocales = _ref.availableLocales, onToggleMapControl = _ref.onToggleMapControl, onSetLocale = _ref.onSetLocale, currentLocal = _ref.locale, mapControls = _ref.mapControls; var _ref2 = mapControls.mapLocale || {}, isActive = _ref2.active, disableClose = _ref2.disableClose, show = _ref2.show; var onClickItem = (0, _react.useCallback)(function (locale) { onSetLocale(locale); }, [onSetLocale]); var onClickButton = (0, _react.useCallback)(function (e) { e.preventDefault(); onToggleMapControl('mapLocale'); }, [onToggleMapControl]); var getLabel = (0, _react.useCallback)(function (locale) { return "toolbar.".concat(locale); }, []); if (!show) { return null; } return /*#__PURE__*/_react["default"].createElement("div", { className: "map-locale-controls", style: { position: 'relative' } }, isActive ? /*#__PURE__*/_react["default"].createElement(MapControlToolbar, { show: isActive }, availableLocales.map(function (locale) { return /*#__PURE__*/_react["default"].createElement(_toolbarItem["default"], { key: locale, onClick: function onClick() { return onClickItem(locale); }, label: getLabel(locale), active: currentLocal === locale }); })) : null, /*#__PURE__*/_react["default"].createElement(_styledComponents.MapControlButton, { onClick: onClickButton, className: (0, _classnames["default"])('map-control-button', 'map-locale', { isActive: isActive }), active: isActive, "data-tip": true, "data-for": "locale", disableClose: disableClose }, /*#__PURE__*/_react["default"].createElement("span", { className: "map-control-button__locale" }, currentLocal.toUpperCase()), /*#__PURE__*/_react["default"].createElement(MapControlTooltip, { id: "locale", message: "tooltip.selectLocale" }))); }); LocalePanel.displayName = 'LocalePanel'; return LocalePanel; } var _default = LocalePanelFactory; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21hcC9sb2NhbGUtcGFuZWwuanMiXSwibmFtZXMiOlsiTG9jYWxlUGFuZWxGYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sYmFyRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFRvb2xiYXIiLCJMb2NhbGVQYW5lbCIsIlJlYWN0IiwibWVtbyIsImF2YWlsYWJsZUxvY2FsZXMiLCJvblRvZ2dsZU1hcENvbnRyb2wiLCJvblNldExvY2FsZSIsImN1cnJlbnRMb2NhbCIsImxvY2FsZSIsIm1hcENvbnRyb2xzIiwibWFwTG9jYWxlIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJkaXNhYmxlQ2xvc2UiLCJzaG93Iiwib25DbGlja0l0ZW0iLCJvbkNsaWNrQnV0dG9uIiwiZSIsInByZXZlbnREZWZhdWx0IiwiZ2V0TGFiZWwiLCJwb3NpdGlvbiIsIm1hcCIsInRvVXBwZXJDYXNlIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQTFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBQSxrQkFBa0IsQ0FBQ0MsSUFBbkIsR0FBMEIsQ0FBQ0MsNkJBQUQsRUFBMkJDLDZCQUEzQixDQUExQjs7QUFFQSxTQUFTSCxrQkFBVCxDQUE0QkksaUJBQTVCLEVBQStDQyxpQkFBL0MsRUFBa0U7QUFDaEU7QUFDQSxNQUFNQyxXQUFXLGdCQUFHQyxrQkFBTUMsSUFBTixDQUNsQixnQkFBNEY7QUFBQSxRQUExRkMsZ0JBQTBGLFFBQTFGQSxnQkFBMEY7QUFBQSxRQUF4RUMsa0JBQXdFLFFBQXhFQSxrQkFBd0U7QUFBQSxRQUFwREMsV0FBb0QsUUFBcERBLFdBQW9EO0FBQUEsUUFBL0JDLFlBQStCLFFBQXZDQyxNQUF1QztBQUFBLFFBQWpCQyxXQUFpQixRQUFqQkEsV0FBaUI7O0FBQUEsZ0JBQzNDQSxXQUFXLENBQUNDLFNBQVosSUFBeUIsRUFEa0I7QUFBQSxRQUMzRUMsUUFEMkUsU0FDbkZDLE1BRG1GO0FBQUEsUUFDakVDLFlBRGlFLFNBQ2pFQSxZQURpRTtBQUFBLFFBQ25EQyxJQURtRCxTQUNuREEsSUFEbUQ7O0FBRzFGLFFBQU1DLFdBQVcsR0FBRyx3QkFDbEIsVUFBQVAsTUFBTSxFQUFJO0FBQ1JGLE1BQUFBLFdBQVcsQ0FBQ0UsTUFBRCxDQUFYO0FBQ0QsS0FIaUIsRUFJbEIsQ0FBQ0YsV0FBRCxDQUprQixDQUFwQjtBQU9BLFFBQU1VLGFBQWEsR0FBRyx3QkFDcEIsVUFBQUMsQ0FBQyxFQUFJO0FBQ0hBLE1BQUFBLENBQUMsQ0FBQ0MsY0FBRjtBQUNBYixNQUFBQSxrQkFBa0IsQ0FBQyxXQUFELENBQWxCO0FBQ0QsS0FKbUIsRUFLcEIsQ0FBQ0Esa0JBQUQsQ0FMb0IsQ0FBdEI7QUFPQSxRQUFNYyxRQUFRLEdBQUcsd0JBQVksVUFBQVgsTUFBTTtBQUFBLCtCQUFlQSxNQUFmO0FBQUEsS0FBbEIsRUFBMkMsRUFBM0MsQ0FBakI7O0FBRUEsUUFBSSxDQUFDTSxJQUFMLEVBQVc7QUFDVCxhQUFPLElBQVA7QUFDRDs7QUFDRCx3QkFDRTtBQUFLLE1BQUEsU0FBUyxFQUFDLHFCQUFmO0FBQXFDLE1BQUEsS0FBSyxFQUFFO0FBQUNNLFFBQUFBLFFBQVEsRUFBRTtBQUFYO0FBQTVDLE9BQ0dULFFBQVEsZ0JBQ1AsZ0NBQUMsaUJBQUQ7QUFBbUIsTUFBQSxJQUFJLEVBQUVBO0FBQXpCLE9BQ0dQLGdCQUFnQixDQUFDaUIsR0FBakIsQ0FBcUIsVUFBQWIsTUFBTTtBQUFBLDBCQUMxQixnQ0FBQyx1QkFBRDtBQUNFLFFBQUEsR0FBRyxFQUFFQSxNQURQO0FBRUUsUUFBQSxPQUFPLEVBQUU7QUFBQSxpQkFBTU8sV0FBVyxDQUFDUCxNQUFELENBQWpCO0FBQUEsU0FGWDtBQUdFLFFBQUEsS0FBSyxFQUFFVyxRQUFRLENBQUNYLE1BQUQsQ0FIakI7QUFJRSxRQUFBLE1BQU0sRUFBRUQsWUFBWSxLQUFLQztBQUozQixRQUQwQjtBQUFBLEtBQTNCLENBREgsQ0FETyxHQVdMLElBWk4sZUFhRSxnQ0FBQyxrQ0FBRDtBQUNFLE1BQUEsT0FBTyxFQUFFUSxhQURYO0FBRUUsTUFBQSxTQUFTLEVBQUUsNEJBQVcsb0JBQVgsRUFBaUMsWUFBakMsRUFBK0M7QUFBQ0wsUUFBQUEsUUFBUSxFQUFSQTtBQUFELE9BQS9DLENBRmI7QUFHRSxNQUFBLE1BQU0sRUFBRUEsUUFIVjtBQUlFLHNCQUpGO0FBS0Usa0JBQVMsUUFMWDtBQU1FLE1BQUEsWUFBWSxFQUFFRTtBQU5oQixvQkFRRTtBQUFNLE1BQUEsU0FBUyxFQUFDO0FBQWhCLE9BQThDTixZQUFZLENBQUNlLFdBQWIsRUFBOUMsQ0FSRixlQVNFLGdDQUFDLGlCQUFEO0FBQW1CLE1BQUEsRUFBRSxFQUFDLFFBQXRCO0FBQStCLE1BQUEsT0FBTyxFQUFDO0FBQXZDLE1BVEYsQ0FiRixDQURGO0FBMkJELEdBbERpQixDQUFwQjs7QUFxREFyQixFQUFBQSxXQUFXLENBQUNzQixXQUFaLEdBQTBCLGFBQTFCO0FBRUEsU0FBT3RCLFdBQVA7QUFDRDs7ZUFFY04sa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjEgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBUb29sYmFySXRlbSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi90b29sYmFyLWl0ZW0nO1xuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtdG9vbHRpcCc7XG5pbXBvcnQgTWFwQ29udHJvbFRvb2xiYXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtdG9vbGJhcic7XG5cbkxvY2FsZVBhbmVsRmFjdG9yeS5kZXBzID0gW01hcENvbnRyb2xUb29sdGlwRmFjdG9yeSwgTWFwQ29udHJvbFRvb2xiYXJGYWN0b3J5XTtcblxuZnVuY3Rpb24gTG9jYWxlUGFuZWxGYWN0b3J5KE1hcENvbnRyb2xUb29sdGlwLCBNYXBDb250cm9sVG9vbGJhcikge1xuICAvKiogQHR5cGUge2ltcG9ydCgnLi9sb2NhbGUtcGFuZWwnKS5Mb2NhbGVQYW5lbENvbXBvbmVudH0gKi9cbiAgY29uc3QgTG9jYWxlUGFuZWwgPSBSZWFjdC5tZW1vKFxuICAgICh7YXZhaWxhYmxlTG9jYWxlcywgb25Ub2dnbGVNYXBDb250cm9sLCBvblNldExvY2FsZSwgbG9jYWxlOiBjdXJyZW50TG9jYWwsIG1hcENvbnRyb2xzfSkgPT4ge1xuICAgICAgY29uc3Qge2FjdGl2ZTogaXNBY3RpdmUsIGRpc2FibGVDbG9zZSwgc2hvd30gPSBtYXBDb250cm9scy5tYXBMb2NhbGUgfHwge307XG5cbiAgICAgIGNvbnN0IG9uQ2xpY2tJdGVtID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIGxvY2FsZSA9PiB7XG4gICAgICAgICAgb25TZXRMb2NhbGUobG9jYWxlKTtcbiAgICAgICAgfSxcbiAgICAgICAgW29uU2V0TG9jYWxlXVxuICAgICAgKTtcblxuICAgICAgY29uc3Qgb25DbGlja0J1dHRvbiA9IHVzZUNhbGxiYWNrKFxuICAgICAgICBlID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sKCdtYXBMb2NhbGUnKTtcbiAgICAgICAgfSxcbiAgICAgICAgW29uVG9nZ2xlTWFwQ29udHJvbF1cbiAgICAgICk7XG4gICAgICBjb25zdCBnZXRMYWJlbCA9IHVzZUNhbGxiYWNrKGxvY2FsZSA9PiBgdG9vbGJhci4ke2xvY2FsZX1gLCBbXSk7XG5cbiAgICAgIGlmICghc2hvdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLWxvY2FsZS1jb250cm9sc1wiIHN0eWxlPXt7cG9zaXRpb246ICdyZWxhdGl2ZSd9fT5cbiAgICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgICA8TWFwQ29udHJvbFRvb2xiYXIgc2hvdz17aXNBY3RpdmV9PlxuICAgICAgICAgICAgICB7YXZhaWxhYmxlTG9jYWxlcy5tYXAobG9jYWxlID0+IChcbiAgICAgICAgICAgICAgICA8VG9vbGJhckl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGlja0l0ZW0obG9jYWxlKX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtnZXRMYWJlbChsb2NhbGUpfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlPXtjdXJyZW50TG9jYWwgPT09IGxvY2FsZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvTWFwQ29udHJvbFRvb2xiYXI+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPE1hcENvbnRyb2xCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2tCdXR0b259XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ21hcC1jb250cm9sLWJ1dHRvbicsICdtYXAtbG9jYWxlJywge2lzQWN0aXZlfSl9XG4gICAgICAgICAgICBhY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICAgICAgZGF0YS10aXBcbiAgICAgICAgICAgIGRhdGEtZm9yPVwibG9jYWxlXCJcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZT17ZGlzYWJsZUNsb3NlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1hcC1jb250cm9sLWJ1dHRvbl9fbG9jYWxlXCI+e2N1cnJlbnRMb2NhbC50b1VwcGVyQ2FzZSgpfTwvc3Bhbj5cbiAgICAgICAgICAgIDxNYXBDb250cm9sVG9vbHRpcCBpZD1cImxvY2FsZVwiIG1lc3NhZ2U9XCJ0b29sdGlwLnNlbGVjdExvY2FsZVwiIC8+XG4gICAgICAgICAgPC9NYXBDb250cm9sQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICApO1xuXG4gIExvY2FsZVBhbmVsLmRpc3BsYXlOYW1lID0gJ0xvY2FsZVBhbmVsJztcblxuICByZXR1cm4gTG9jYWxlUGFuZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvY2FsZVBhbmVsRmFjdG9yeTtcbiJdfQ==