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
JavaScript
;
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==