kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
85 lines (83 loc) • 14.7 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _styledComponents = require("../common/styled-components");
var _icons = require("../common/icons");
var _mapLayerSelector = _interopRequireDefault(require("../common/map-layer-selector"));
var _mapControlTooltip = _interopRequireDefault(require("./map-control-tooltip"));
var _mapControlPanel = _interopRequireDefault(require("./map-control-panel"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
// SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
LayerSelectorPanelFactory.deps = [_mapControlTooltip["default"], _mapControlPanel["default"]];
function LayerSelectorPanelFactory(MapControlTooltip, MapControlPanel) {
/** @type {import('./layer-selector-panel').LayerSelectorPanelComponent} */
var LayerSelectorPanel = function LayerSelectorPanel(_ref) {
var onMapToggleLayer = _ref.onMapToggleLayer,
onToggleMapControl = _ref.onToggleMapControl,
layers = _ref.layers,
layersToRender = _ref.layersToRender,
isSplit = _ref.isSplit,
mapControls = _ref.mapControls,
readOnly = _ref.readOnly;
var visibleLayers = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.visibleLayers) || {};
var _ref2 = visibleLayers || {},
isActive = _ref2.active,
show = _ref2.show,
disableClose = _ref2.disableClose;
var legendLayers = (0, _react.useMemo)(function () {
return layers.filter(function (_ref3) {
var config = _ref3.config;
return config.isVisible;
}).map(function (_ref4) {
var id = _ref4.id,
config = _ref4.config;
return {
id: id,
name: config.label,
// layer
isVisible: layersToRender[id]
};
});
}, [layers, layersToRender]);
var isVisible = (0, _react.useMemo)(function () {
return isSplit && show && readOnly !== true;
}, [isSplit, show, readOnly]);
var onToggleMenuPanel = (0, _react.useCallback)(function (event) {
event.preventDefault();
onToggleMapControl('visibleLayers');
}, [onToggleMapControl]);
return isVisible ? !isActive ? /*#__PURE__*/_react["default"].createElement(_styledComponents.MapControlButton, {
key: 1,
onClick: onToggleMenuPanel,
className: (0, _classnames["default"])('map-control-button', 'toggle-layer', {
isActive: isActive
}),
"data-tip": true,
"data-for": "toggle-layer"
}, /*#__PURE__*/_react["default"].createElement(_icons.Layers, {
height: "22px"
}), /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
id: "toggle-layer",
message: isActive ? 'tooltip.hideLayerPanel' : 'tooltip.showLayerPanel'
})) : /*#__PURE__*/_react["default"].createElement(MapControlPanel, {
header: "header.visibleLayers",
onClick: onToggleMenuPanel,
disableClose: disableClose
}, /*#__PURE__*/_react["default"].createElement(_mapLayerSelector["default"], {
layers: legendLayers,
onMapToggleLayer: onMapToggleLayer
})) : null;
};
LayerSelectorPanel.displayName = 'LayerSelectorPanel';
return /*#__PURE__*/_react["default"].memo(LayerSelectorPanel);
}
var _default = exports["default"] = LayerSelectorPanelFactory;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl9tYXBMYXllclNlbGVjdG9yIiwiX21hcENvbnRyb2xUb29sdGlwIiwiX21hcENvbnRyb2xQYW5lbCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkxheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTGF5ZXJTZWxlY3RvclBhbmVsIiwiX3JlZiIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJvblRvZ2dsZU1hcENvbnRyb2wiLCJsYXllcnMiLCJsYXllcnNUb1JlbmRlciIsImlzU3BsaXQiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwidmlzaWJsZUxheWVycyIsIl9yZWYyIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJzaG93IiwiZGlzYWJsZUNsb3NlIiwibGVnZW5kTGF5ZXJzIiwidXNlTWVtbyIsImZpbHRlciIsIl9yZWYzIiwiY29uZmlnIiwiaXNWaXNpYmxlIiwibWFwIiwiX3JlZjQiLCJpZCIsIm5hbWUiLCJsYWJlbCIsIm9uVG9nZ2xlTWVudVBhbmVsIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIk1hcENvbnRyb2xCdXR0b24iLCJrZXkiLCJvbkNsaWNrIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsIkxheWVycyIsImhlaWdodCIsIm1lc3NhZ2UiLCJoZWFkZXIiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF5ZXItc2VsZWN0b3ItcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtMYXllcnN9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgTWFwTGF5ZXJTZWxlY3RvciBmcm9tICcuLi9jb21tb24vbWFwLWxheWVyLXNlbGVjdG9yJztcbmltcG9ydCBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sdGlwJztcbmltcG9ydCBNYXBDb250cm9sUGFuZWxGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtcGFuZWwnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtNYXBDb250cm9sSXRlbSwgTWFwQ29udHJvbHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5MYXllclNlbGVjdG9yUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5XTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJTZWxlY3RvclBhbmVsUHJvcHMgPSB7XG4gIG9uTWFwVG9nZ2xlTGF5ZXI6IChsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJzVG9SZW5kZXI6IHtba2V5OiBzdHJpbmddOiBib29sZWFufTtcbiAgaXNTcGxpdDogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIExheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkoXG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+LFxuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+XG4pIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItc2VsZWN0b3ItcGFuZWwnKS5MYXllclNlbGVjdG9yUGFuZWxDb21wb25lbnR9ICovXG4gIGNvbnN0IExheWVyU2VsZWN0b3JQYW5lbDogUmVhY3QuRkM8TGF5ZXJTZWxlY3RvclBhbmVsUHJvcHM+ID0gKHtcbiAgICBvbk1hcFRvZ2dsZUxheWVyLFxuICAgIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgICBsYXllcnMsXG4gICAgbGF5ZXJzVG9SZW5kZXIsXG4gICAgaXNTcGxpdCxcbiAgICBtYXBDb250cm9scyxcbiAgICByZWFkT25seVxuICB9KSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxheWVycyA9IG1hcENvbnRyb2xzPy52aXNpYmxlTGF5ZXJzIHx8ICh7fSBhcyBNYXBDb250cm9sSXRlbSk7XG4gICAgY29uc3Qge2FjdGl2ZTogaXNBY3RpdmUsIHNob3csIGRpc2FibGVDbG9zZX0gPSB2aXNpYmxlTGF5ZXJzIHx8IHt9O1xuXG4gICAgY29uc3QgbGVnZW5kTGF5ZXJzID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGxheWVyc1xuICAgICAgICAgIC5maWx0ZXIoKHtjb25maWd9KSA9PiBjb25maWcuaXNWaXNpYmxlKVxuICAgICAgICAgIC5tYXAoKHtpZCwgY29uZmlnfSkgPT4gKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZTogY29uZmlnLmxhYmVsLFxuICAgICAgICAgICAgLy8gbGF5ZXJcbiAgICAgICAgICAgIGlzVmlzaWJsZTogbGF5ZXJzVG9SZW5kZXJbaWRdXG4gICAgICAgICAgfSkpLFxuICAgICAgW2xheWVycywgbGF5ZXJzVG9SZW5kZXJdXG4gICAgKTtcblxuICAgIGNvbnN0IGlzVmlzaWJsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBpc1NwbGl0ICYmIHNob3cgJiYgcmVhZE9ubHkgIT09IHRydWUsXG4gICAgICBbaXNTcGxpdCwgc2hvdywgcmVhZE9ubHldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uVG9nZ2xlTWVudVBhbmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgndmlzaWJsZUxheWVycycpO1xuICAgICAgfSxcbiAgICAgIFtvblRvZ2dsZU1hcENvbnRyb2xdXG4gICAgKTtcblxuICAgIHJldHVybiBpc1Zpc2libGUgPyAoXG4gICAgICAhaXNBY3RpdmUgPyAoXG4gICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAga2V5PXsxfVxuICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlTWVudVBhbmVsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbWFwLWNvbnRyb2wtYnV0dG9uJywgJ3RvZ2dsZS1sYXllcicsIHtpc0FjdGl2ZX0pfVxuICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgZGF0YS1mb3I9XCJ0b2dnbGUtbGF5ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPExheWVycyBoZWlnaHQ9XCIyMnB4XCIgLz5cbiAgICAgICAgICA8TWFwQ29udHJvbFRvb2x0aXBcbiAgICAgICAgICAgIGlkPVwidG9nZ2xlLWxheWVyXCJcbiAgICAgICAgICAgIG1lc3NhZ2U9e2lzQWN0aXZlID8gJ3Rvb2x0aXAuaGlkZUxheWVyUGFuZWwnIDogJ3Rvb2x0aXAuc2hvd0xheWVyUGFuZWwnfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxNYXBDb250cm9sUGFuZWxcbiAgICAgICAgICBoZWFkZXI9XCJoZWFkZXIudmlzaWJsZUxheWVyc1wiXG4gICAgICAgICAgb25DbGljaz17b25Ub2dnbGVNZW51UGFuZWx9XG4gICAgICAgICAgZGlzYWJsZUNsb3NlPXtkaXNhYmxlQ2xvc2V9XG4gICAgICAgID5cbiAgICAgICAgICA8TWFwTGF5ZXJTZWxlY3RvciBsYXllcnM9e2xlZ2VuZExheWVyc30gb25NYXBUb2dnbGVMYXllcj17b25NYXBUb2dnbGVMYXllcn0gLz5cbiAgICAgICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICAgICApXG4gICAgKSA6IG51bGw7XG4gIH07XG5cbiAgTGF5ZXJTZWxlY3RvclBhbmVsLmRpc3BsYXlOYW1lID0gJ0xheWVyU2VsZWN0b3JQYW5lbCc7XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTGF5ZXJTZWxlY3RvclBhbmVsKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJTZWxlY3RvclBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxpQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElB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
;