UNPKG

kepler.gl

Version:

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

124 lines (103 loc) 12.9 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 _icons = require("../common/icons"); var _localization = require("../../localization"); var _styledComponents = require("../common/styled-components"); var _mapControlTooltip = _interopRequireDefault(require("./map-control-tooltip")); var _mapControlPanel = _interopRequireDefault(require("./map-control-panel")); var _mapLegend = _interopRequireDefault(require("./map-legend")); // 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. var MapLegendTooltip = function MapLegendTooltip(_ref) { var id = _ref.id, message = _ref.message; return /*#__PURE__*/_react["default"].createElement(_styledComponents.Tooltip, { id: id, place: "left", effect: "solid" }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: message }))); }; MapLegendPanelFactory.deps = [_mapControlTooltip["default"], _mapControlPanel["default"], _mapLegend["default"]]; function MapLegendPanelFactory(MapControlTooltip, MapControlPanel, MapLegend) { var defaultActionIcons = { legend: _icons.Legend }; /** @type {import('./map-legend-panel').MapLegendPanelComponent} */ var MapLegendPanel = function MapLegendPanel(_ref2) { var layers = _ref2.layers, mapControls = _ref2.mapControls, scale = _ref2.scale, onToggleMapControl = _ref2.onToggleMapControl, isExport = _ref2.isExport, logoComponent = _ref2.logoComponent, _ref2$actionIcons = _ref2.actionIcons, actionIcons = _ref2$actionIcons === void 0 ? defaultActionIcons : _ref2$actionIcons; var mapLegend = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.mapLegend) || {}; var _ref3 = mapLegend || {}, isActive = _ref3.active, disableClose = _ref3.disableClose; var onToggleMenuPanel = (0, _react.useCallback)(function () { return onToggleMapControl('mapLegend'); }, [onToggleMapControl]); var onClick = (0, _react.useCallback)(function (e) { e.preventDefault(); onToggleMenuPanel(); }, [onToggleMenuPanel]); if (!mapLegend.show) { return null; } return !isActive ? /*#__PURE__*/_react["default"].createElement(_styledComponents.MapControlButton, { "data-tip": true, "data-for": "show-legend", className: (0, _classnames["default"])('map-control-button', 'show-legend', { isActive: isActive }), onClick: onClick }, /*#__PURE__*/_react["default"].createElement(actionIcons.legend, { height: "22px" }), /*#__PURE__*/_react["default"].createElement(MapLegendTooltip, { id: "show-legend", message: 'tooltip.showLegend' })) : /*#__PURE__*/_react["default"].createElement(MapControlPanel, { scale: scale, header: 'header.layerLegend', onClick: onToggleMenuPanel, isExport: isExport, disableClose: disableClose, logoComponent: logoComponent }, /*#__PURE__*/_react["default"].createElement(MapLegend, { layers: layers })); }; MapLegendPanel.displayName = 'MapLegendPanel'; return MapLegendPanel; } var _default = MapLegendPanelFactory; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21hcC9tYXAtbGVnZW5kLXBhbmVsLmpzIl0sIm5hbWVzIjpbIk1hcExlZ2VuZFRvb2x0aXAiLCJpZCIsIm1lc3NhZ2UiLCJNYXBMZWdlbmRQYW5lbEZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcExlZ2VuZEZhY3RvcnkiLCJNYXBDb250cm9sVG9vbHRpcCIsIk1hcENvbnRyb2xQYW5lbCIsIk1hcExlZ2VuZCIsImRlZmF1bHRBY3Rpb25JY29ucyIsImxlZ2VuZCIsIkxlZ2VuZCIsIk1hcExlZ2VuZFBhbmVsIiwibGF5ZXJzIiwibWFwQ29udHJvbHMiLCJzY2FsZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImlzRXhwb3J0IiwibG9nb0NvbXBvbmVudCIsImFjdGlvbkljb25zIiwibWFwTGVnZW5kIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJkaXNhYmxlQ2xvc2UiLCJvblRvZ2dsZU1lbnVQYW5lbCIsIm9uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJzaG93IiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQTNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVdBLElBQU1BLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUI7QUFBQSxNQUFFQyxFQUFGLFFBQUVBLEVBQUY7QUFBQSxNQUFNQyxPQUFOLFFBQU1BLE9BQU47QUFBQSxzQkFDdkIsZ0NBQUMseUJBQUQ7QUFBUyxJQUFBLEVBQUUsRUFBRUQsRUFBYjtBQUFpQixJQUFBLEtBQUssRUFBQyxNQUF2QjtBQUE4QixJQUFBLE1BQU0sRUFBQztBQUFyQyxrQkFDRSwyREFDRSxnQ0FBQyw4QkFBRDtBQUFrQixJQUFBLEVBQUUsRUFBRUM7QUFBdEIsSUFERixDQURGLENBRHVCO0FBQUEsQ0FBekI7O0FBUUFDLHFCQUFxQixDQUFDQyxJQUF0QixHQUE2QixDQUFDQyw2QkFBRCxFQUEyQkMsMkJBQTNCLEVBQW1EQyxxQkFBbkQsQ0FBN0I7O0FBRUEsU0FBU0oscUJBQVQsQ0FBK0JLLGlCQUEvQixFQUFrREMsZUFBbEQsRUFBbUVDLFNBQW5FLEVBQThFO0FBQzVFLE1BQU1DLGtCQUFrQixHQUFHO0FBQ3pCQyxJQUFBQSxNQUFNLEVBQUVDO0FBRGlCLEdBQTNCO0FBSUE7O0FBQ0EsTUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixRQVFqQjtBQUFBLFFBUEpDLE1BT0ksU0FQSkEsTUFPSTtBQUFBLFFBTkpDLFdBTUksU0FOSkEsV0FNSTtBQUFBLFFBTEpDLEtBS0ksU0FMSkEsS0FLSTtBQUFBLFFBSkpDLGtCQUlJLFNBSkpBLGtCQUlJO0FBQUEsUUFISkMsUUFHSSxTQUhKQSxRQUdJO0FBQUEsUUFGSkMsYUFFSSxTQUZKQSxhQUVJO0FBQUEsa0NBREpDLFdBQ0k7QUFBQSxRQURKQSxXQUNJLGtDQURVVixrQkFDVjtBQUNKLFFBQU1XLFNBQVMsR0FBRyxDQUFBTixXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLFlBQUFBLFdBQVcsQ0FBRU0sU0FBYixLQUEwQixFQUE1Qzs7QUFESSxnQkFFcUNBLFNBQVMsSUFBSSxFQUZsRDtBQUFBLFFBRVdDLFFBRlgsU0FFR0MsTUFGSDtBQUFBLFFBRXFCQyxZQUZyQixTQUVxQkEsWUFGckI7O0FBR0osUUFBTUMsaUJBQWlCLEdBQUcsd0JBQVk7QUFBQSxhQUFNUixrQkFBa0IsQ0FBQyxXQUFELENBQXhCO0FBQUEsS0FBWixFQUFtRCxDQUMzRUEsa0JBRDJFLENBQW5ELENBQTFCO0FBSUEsUUFBTVMsT0FBTyxHQUFHLHdCQUNkLFVBQUFDLENBQUMsRUFBSTtBQUNIQSxNQUFBQSxDQUFDLENBQUNDLGNBQUY7QUFDQUgsTUFBQUEsaUJBQWlCO0FBQ2xCLEtBSmEsRUFLZCxDQUFDQSxpQkFBRCxDQUxjLENBQWhCOztBQVFBLFFBQUksQ0FBQ0osU0FBUyxDQUFDUSxJQUFmLEVBQXFCO0FBQ25CLGFBQU8sSUFBUDtBQUNEOztBQUNELFdBQU8sQ0FBQ1AsUUFBRCxnQkFDSixnQ0FBQyxrQ0FBRDtBQUNDLHNCQUREO0FBRUMsa0JBQVMsYUFGVjtBQUdDLE1BQUEsU0FBUyxFQUFFLDRCQUFXLG9CQUFYLEVBQWlDLGFBQWpDLEVBQWdEO0FBQUNBLFFBQUFBLFFBQVEsRUFBUkE7QUFBRCxPQUFoRCxDQUhaO0FBSUMsTUFBQSxPQUFPLEVBQUVJO0FBSlYsb0JBTUMsZ0NBQUMsV0FBRCxDQUFhLE1BQWI7QUFBb0IsTUFBQSxNQUFNLEVBQUM7QUFBM0IsTUFORCxlQU9DLGdDQUFDLGdCQUFEO0FBQWtCLE1BQUEsRUFBRSxFQUFDLGFBQXJCO0FBQW1DLE1BQUEsT0FBTyxFQUFFO0FBQTVDLE1BUEQsQ0FESSxnQkFXSixnQ0FBQyxlQUFEO0FBQ0MsTUFBQSxLQUFLLEVBQUVWLEtBRFI7QUFFQyxNQUFBLE1BQU0sRUFBRSxvQkFGVDtBQUdDLE1BQUEsT0FBTyxFQUFFUyxpQkFIVjtBQUlDLE1BQUEsUUFBUSxFQUFFUCxRQUpYO0FBS0MsTUFBQSxZQUFZLEVBQUVNLFlBTGY7QUFNQyxNQUFBLGFBQWEsRUFBRUw7QUFOaEIsb0JBUUMsZ0NBQUMsU0FBRDtBQUFXLE1BQUEsTUFBTSxFQUFFTDtBQUFuQixNQVJELENBWEg7QUFzQkQsR0FoREQ7O0FBa0RBRCxFQUFBQSxjQUFjLENBQUNpQixXQUFmLEdBQTZCLGdCQUE3QjtBQUNBLFNBQU9qQixjQUFQO0FBQ0Q7O2VBRWNYLHFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIxIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtMZWdlbmR9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnbG9jYWxpemF0aW9uJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbiwgVG9vbHRpcH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2x0aXAnO1xuaW1wb3J0IE1hcENvbnRyb2xQYW5lbEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC1wYW5lbCc7XG5pbXBvcnQgTWFwTGVnZW5kRmFjdG9yeSBmcm9tICcuL21hcC1sZWdlbmQnO1xuXG5jb25zdCBNYXBMZWdlbmRUb29sdGlwID0gKHtpZCwgbWVzc2FnZX0pID0+IChcbiAgPFRvb2x0aXAgaWQ9e2lkfSBwbGFjZT1cImxlZnRcIiBlZmZlY3Q9XCJzb2xpZFwiPlxuICAgIDxzcGFuPlxuICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e21lc3NhZ2V9IC8+XG4gICAgPC9zcGFuPlxuICA8L1Rvb2x0aXA+XG4pO1xuXG5NYXBMZWdlbmRQYW5lbEZhY3RvcnkuZGVwcyA9IFtNYXBDb250cm9sVG9vbHRpcEZhY3RvcnksIE1hcENvbnRyb2xQYW5lbEZhY3RvcnksIE1hcExlZ2VuZEZhY3RvcnldO1xuXG5mdW5jdGlvbiBNYXBMZWdlbmRQYW5lbEZhY3RvcnkoTWFwQ29udHJvbFRvb2x0aXAsIE1hcENvbnRyb2xQYW5lbCwgTWFwTGVnZW5kKSB7XG4gIGNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgICBsZWdlbmQ6IExlZ2VuZFxuICB9O1xuXG4gIC8qKiBAdHlwZSB7aW1wb3J0KCcuL21hcC1sZWdlbmQtcGFuZWwnKS5NYXBMZWdlbmRQYW5lbENvbXBvbmVudH0gKi9cbiAgY29uc3QgTWFwTGVnZW5kUGFuZWwgPSAoe1xuICAgIGxheWVycyxcbiAgICBtYXBDb250cm9scyxcbiAgICBzY2FsZSxcbiAgICBvblRvZ2dsZU1hcENvbnRyb2wsXG4gICAgaXNFeHBvcnQsXG4gICAgbG9nb0NvbXBvbmVudCxcbiAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29uc1xuICB9KSA9PiB7XG4gICAgY29uc3QgbWFwTGVnZW5kID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZCB8fCB7fTtcbiAgICBjb25zdCB7YWN0aXZlOiBpc0FjdGl2ZSwgZGlzYWJsZUNsb3NlfSA9IG1hcExlZ2VuZCB8fCB7fTtcbiAgICBjb25zdCBvblRvZ2dsZU1lbnVQYW5lbCA9IHVzZUNhbGxiYWNrKCgpID0+IG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwTGVnZW5kJyksIFtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbFxuICAgIF0pO1xuXG4gICAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKFxuICAgICAgZSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25Ub2dnbGVNZW51UGFuZWwoKTtcbiAgICAgIH0sXG4gICAgICBbb25Ub2dnbGVNZW51UGFuZWxdXG4gICAgKTtcblxuICAgIGlmICghbWFwTGVnZW5kLnNob3cpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gIWlzQWN0aXZlID8gKFxuICAgICAgKDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgIGRhdGEtdGlwXG4gICAgICAgIGRhdGEtZm9yPVwic2hvdy1sZWdlbmRcIlxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ21hcC1jb250cm9sLWJ1dHRvbicsICdzaG93LWxlZ2VuZCcsIHtpc0FjdGl2ZX0pfVxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgPlxuICAgICAgICA8YWN0aW9uSWNvbnMubGVnZW5kIGhlaWdodD1cIjIycHhcIiAvPlxuICAgICAgICA8TWFwTGVnZW5kVG9vbHRpcCBpZD1cInNob3ctbGVnZW5kXCIgbWVzc2FnZT17J3Rvb2x0aXAuc2hvd0xlZ2VuZCd9IC8+XG4gICAgICA8L01hcENvbnRyb2xCdXR0b24+KVxuICAgICkgOiAoXG4gICAgICAoPE1hcENvbnRyb2xQYW5lbFxuICAgICAgICBzY2FsZT17c2NhbGV9XG4gICAgICAgIGhlYWRlcj17J2hlYWRlci5sYXllckxlZ2VuZCd9XG4gICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlTWVudVBhbmVsfVxuICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgIGRpc2FibGVDbG9zZT17ZGlzYWJsZUNsb3NlfVxuICAgICAgICBsb2dvQ29tcG9uZW50PXtsb2dvQ29tcG9uZW50fVxuICAgICAgPlxuICAgICAgICA8TWFwTGVnZW5kIGxheWVycz17bGF5ZXJzfSAvPlxuICAgICAgPC9NYXBDb250cm9sUGFuZWw+KVxuICAgICk7XG4gIH07XG5cbiAgTWFwTGVnZW5kUGFuZWwuZGlzcGxheU5hbWUgPSAnTWFwTGVnZW5kUGFuZWwnO1xuICByZXR1cm4gTWFwTGVnZW5kUGFuZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcExlZ2VuZFBhbmVsRmFjdG9yeTtcbiJdfQ==