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