UNPKG

kepler.gl.geoiq

Version:

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

97 lines (83 loc) 11.2 kB
"use strict"; 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 _itemSelector = _interopRequireDefault(require("../common/item-selector/item-selector")); var _components = require("./components"); var _constants = require("../../constants"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // Copyright (c) 2023 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 layerFilter = function layerFilter(layer) { return layer.type === _constants.LAYER_TYPES.point; }; var isAlreadySelected = function isAlreadySelected(selectedLayers, layerId) { return selectedLayers.findIndex(function (l) { return l.id === layerId; }) === -1; }; function PolygonFilterFactory() { var PolygonFilter = _react["default"].memo(function (_ref) { var filter = _ref.filter, layers = _ref.layers, setLayers = _ref.setLayers; var setNewLayers = (0, _react.useCallback)(function (newLayers) { return setLayers(newLayers.map(function (l) { return l.id; })); }, [layers, setLayers]); var selectedLayers = (0, _react.useMemo)(function () { return layers.filter(function (l) { return filter.layerId.includes(l.id); }); }, [filter, layers]); var availableLayers = (0, _react.useMemo)(function () { // remove already added layers and filter out non point layers return layers.filter(function (layer) { return layerFilter(layer) && isAlreadySelected(selectedLayers, layer.id); }); }, [layers, selectedLayers]); return (/*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_components.StyledFilterPanel, { htmlFor: "filter-".concat(filter.id) }, "Layers:"), /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], { options: availableLayers, selectedItems: selectedLayers, onChange: setNewLayers, searchable: false, multiSelect: true, getOptionValue: function getOptionValue(l) { return l.id; }, displayOption: function displayOption(l) { return l.config.label; } })) ); }); PolygonFilter.displayName = 'PolygonFilter'; return PolygonFilter; } var _default = exports["default"] = PolygonFilterFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvcG9seWdvbi1maWx0ZXIuanMiXSwibmFtZXMiOlsibGF5ZXJGaWx0ZXIiLCJsYXllciIsInR5cGUiLCJMQVlFUl9UWVBFUyIsInBvaW50IiwiaXNBbHJlYWR5U2VsZWN0ZWQiLCJzZWxlY3RlZExheWVycyIsImxheWVySWQiLCJmaW5kSW5kZXgiLCJsIiwiaWQiLCJQb2x5Z29uRmlsdGVyRmFjdG9yeSIsIlBvbHlnb25GaWx0ZXIiLCJSZWFjdCIsIm1lbW8iLCJmaWx0ZXIiLCJsYXllcnMiLCJzZXRMYXllcnMiLCJzZXROZXdMYXllcnMiLCJuZXdMYXllcnMiLCJtYXAiLCJpbmNsdWRlcyIsImF2YWlsYWJsZUxheWVycyIsImNvbmZpZyIsImxhYmVsIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQSxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxJQUFOLEtBQWVDLHVCQUFZQyxLQUEvQjtBQUFBLENBQXpCOztBQUNBLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsY0FBRCxFQUFpQkMsT0FBakI7QUFBQSxTQUE2QkQsY0FBYyxDQUFDRSxTQUFmLENBQXlCLFVBQUFDLENBQUM7QUFBQSxXQUFJQSxDQUFDLENBQUNDLEVBQUYsS0FBU0gsT0FBYjtBQUFBLEdBQTFCLE1BQW9ELENBQUMsQ0FBbEY7QUFBQSxDQUExQjs7QUFFQSxTQUFTSSxvQkFBVCxHQUFnQztBQUM5QixNQUFNQyxhQUFhLEdBQUdDLGtCQUFNQyxJQUFOLENBQVcsZ0JBQWlDO0FBQUEsUUFBL0JDLE1BQStCLFFBQS9CQSxNQUErQjtBQUFBLFFBQXZCQyxNQUF1QixRQUF2QkEsTUFBdUI7QUFBQSxRQUFmQyxTQUFlLFFBQWZBLFNBQWU7QUFFaEUsUUFBTUMsWUFBWSxHQUFHLHdCQUFZLFVBQUFDLFNBQVMsRUFBSTtBQUM1QyxhQUFPRixTQUFTLENBQUNFLFNBQVMsQ0FBQ0MsR0FBVixDQUFjLFVBQUFYLENBQUM7QUFBQSxlQUFJQSxDQUFDLENBQUNDLEVBQU47QUFBQSxPQUFmLENBQUQsQ0FBaEI7QUFDRCxLQUZvQixFQUVsQixDQUFDTSxNQUFELEVBQVNDLFNBQVQsQ0FGa0IsQ0FBckI7QUFJQSxRQUFNWCxjQUFjLEdBQUcsb0JBQVE7QUFBQSxhQUMzQlUsTUFBTSxDQUFDRCxNQUFQLENBQWMsVUFBQU4sQ0FBQztBQUFBLGVBQUlNLE1BQU0sQ0FBQ1IsT0FBUCxDQUFlYyxRQUFmLENBQXdCWixDQUFDLENBQUNDLEVBQTFCLENBQUo7QUFBQSxPQUFmLENBRDJCO0FBQUEsS0FBUixFQUVyQixDQUFDSyxNQUFELEVBQVNDLE1BQVQsQ0FGcUIsQ0FBdkI7QUFJQSxRQUFNTSxlQUFlLEdBQUcsb0JBQVEsWUFBTTtBQUNwQztBQUNBLGFBQU9OLE1BQU0sQ0FBQ0QsTUFBUCxDQUFjLFVBQUFkLEtBQUs7QUFBQSxlQUFJRCxXQUFXLENBQUNDLEtBQUQsQ0FBWCxJQUFzQkksaUJBQWlCLENBQUNDLGNBQUQsRUFBaUJMLEtBQUssQ0FBQ1MsRUFBdkIsQ0FBM0M7QUFBQSxPQUFuQixDQUFQO0FBQ0QsS0FIdUIsRUFHckIsQ0FBQ00sTUFBRCxFQUFTVixjQUFULENBSHFCLENBQXhCO0FBS0EseUJBQ0UsMERBQ0UsZ0NBQUMsNkJBQUQ7QUFBbUIsUUFBQSxPQUFPLG1CQUFZUyxNQUFNLENBQUNMLEVBQW5CO0FBQTFCLG1CQURGLGVBRUUsZ0NBQUMsd0JBQUQ7QUFDRSxRQUFBLE9BQU8sRUFBRVksZUFEWDtBQUVFLFFBQUEsYUFBYSxFQUFFaEIsY0FGakI7QUFHRSxRQUFBLFFBQVEsRUFBRVksWUFIWjtBQUlFLFFBQUEsVUFBVSxFQUFFLEtBSmQ7QUFLRSxRQUFBLFdBQVcsRUFBRSxJQUxmO0FBTUUsUUFBQSxjQUFjLEVBQUUsd0JBQUFULENBQUM7QUFBQSxpQkFBSUEsQ0FBQyxDQUFDQyxFQUFOO0FBQUEsU0FObkI7QUFPRSxRQUFBLGFBQWEsRUFBRSx1QkFBQUQsQ0FBQztBQUFBLGlCQUFJQSxDQUFDLENBQUNjLE1BQUYsQ0FBU0MsS0FBYjtBQUFBO0FBUGxCLFFBRkY7QUFERjtBQWNELEdBN0JxQixDQUF0Qjs7QUErQkFaLEVBQUFBLGFBQWEsQ0FBQ2EsV0FBZCxHQUE0QixlQUE1QjtBQUVBLFNBQU9iLGFBQVA7QUFDRDs7b0NBRWNELG9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtbywgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7U3R5bGVkRmlsdGVyUGFuZWx9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQge0xBWUVSX1RZUEVTfSBmcm9tICdjb25zdGFudHMnO1xuXG5jb25zdCBsYXllckZpbHRlciA9IGxheWVyID0+IGxheWVyLnR5cGUgPT09IExBWUVSX1RZUEVTLnBvaW50O1xuY29uc3QgaXNBbHJlYWR5U2VsZWN0ZWQgPSAoc2VsZWN0ZWRMYXllcnMsIGxheWVySWQpID0+IHNlbGVjdGVkTGF5ZXJzLmZpbmRJbmRleChsID0+IGwuaWQgPT09IGxheWVySWQpID09PSAtMTtcblxuZnVuY3Rpb24gUG9seWdvbkZpbHRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IFBvbHlnb25GaWx0ZXIgPSBSZWFjdC5tZW1vKCh7ZmlsdGVyLCBsYXllcnMsIHNldExheWVyc30pID0+IHtcblxuICAgIGNvbnN0IHNldE5ld0xheWVycyA9IHVzZUNhbGxiYWNrKG5ld0xheWVycyA9PiB7XG4gICAgICByZXR1cm4gc2V0TGF5ZXJzKG5ld0xheWVycy5tYXAobCA9PiBsLmlkKSk7XG4gICAgfSwgW2xheWVycywgc2V0TGF5ZXJzXSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZExheWVycyA9IHVzZU1lbW8oKCkgPT5cbiAgICAgICAgbGF5ZXJzLmZpbHRlcihsID0+IGZpbHRlci5sYXllcklkLmluY2x1ZGVzKGwuaWQpKSxcbiAgICAgIFtmaWx0ZXIsIGxheWVyc10pO1xuXG4gICAgY29uc3QgYXZhaWxhYmxlTGF5ZXJzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAvLyByZW1vdmUgYWxyZWFkeSBhZGRlZCBsYXllcnMgYW5kIGZpbHRlciBvdXQgbm9uIHBvaW50IGxheWVyc1xuICAgICAgcmV0dXJuIGxheWVycy5maWx0ZXIobGF5ZXIgPT4gbGF5ZXJGaWx0ZXIobGF5ZXIpICYmIGlzQWxyZWFkeVNlbGVjdGVkKHNlbGVjdGVkTGF5ZXJzLCBsYXllci5pZCkpO1xuICAgIH0sIFtsYXllcnMsIHNlbGVjdGVkTGF5ZXJzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPFN0eWxlZEZpbHRlclBhbmVsIGh0bWxGb3I9e2BmaWx0ZXItJHtmaWx0ZXIuaWR9YH0+TGF5ZXJzOjwvU3R5bGVkRmlsdGVyUGFuZWw+XG4gICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICBvcHRpb25zPXthdmFpbGFibGVMYXllcnN9XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17c2VsZWN0ZWRMYXllcnN9XG4gICAgICAgICAgb25DaGFuZ2U9e3NldE5ld0xheWVyc31cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17dHJ1ZX1cbiAgICAgICAgICBnZXRPcHRpb25WYWx1ZT17bCA9PiBsLmlkfVxuICAgICAgICAgIGRpc3BsYXlPcHRpb249e2wgPT4gbC5jb25maWcubGFiZWx9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH0pO1xuXG4gIFBvbHlnb25GaWx0ZXIuZGlzcGxheU5hbWUgPSAnUG9seWdvbkZpbHRlcic7XG5cbiAgcmV0dXJuIFBvbHlnb25GaWx0ZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBvbHlnb25GaWx0ZXJGYWN0b3J5XG4iXX0=