UNPKG

kepler.gl.geoiq

Version:

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

111 lines (95 loc) 11 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.BRUSH_CONFIG = void 0; exports.findFieldsToShow = findFieldsToShow; exports.getDefaultInteraction = getDefaultInteraction; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _defaultSettings = require("../constants/default-settings"); var _icons = require("../components/common/icons"); // 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. function getDefaultInteraction() { return { tooltip: { id: 'tooltip', enabled: true, iconComponent: _icons.Messages, config: { fieldsToShow: {} } }, brush: { id: 'brush', enabled: false, iconComponent: _icons.Crosshairs, config: { // size is in km size: 0.5 } }, coordinate: { id: 'coordinate', enabled: false, iconComponent: _icons.CursorClick, position: null } }; } var BRUSH_CONFIG = exports.BRUSH_CONFIG = { range: [0, 50] }; function findFieldsToShow(_ref) { var fields = _ref.fields, id = _ref.id; // first find default tooltip fields for trips var fieldsToShow = _defaultSettings.DEFAULT_TOOLTIP_FIELDS.reduce(function (prev, curr) { if (fields.find(function (_ref2) { var name = _ref2.name; return curr === name; })) { prev.push(curr); } return prev; }, []); return (0, _defineProperty2["default"])({}, id, fieldsToShow.length ? fieldsToShow : autoFindTooltipFields(fields)); } function autoFindTooltipFields(fields) { var ptFields = _mergeFieldPairs(_defaultSettings.TRIP_POINT_FIELDS); // filter out the default fields that contains lat and lng and any geometry var fieldsToShow = fields.filter(function (_ref4) { var name = _ref4.name, type = _ref4.type; return name.replace(/[_,.]+/g, ' ').trim().split(' ').every(function (seg) { return !ptFields.includes(seg); }) && type !== _defaultSettings.ALL_FIELD_TYPES.geojson && type !== 'object'; }); return fieldsToShow.slice(0, _defaultSettings.MAX_DEFAULT_TOOLTIPS).map(function (d) { return d.name; }); } function _mergeFieldPairs(pairs) { return pairs.reduce(function (prev, pair) { return [].concat((0, _toConsumableArray2["default"])(prev), (0, _toConsumableArray2["default"])(pair)); }, []); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbnRlcmFjdGlvbi11dGlscy5qcyJdLCJuYW1lcyI6WyJnZXREZWZhdWx0SW50ZXJhY3Rpb24iLCJ0b29sdGlwIiwiaWQiLCJlbmFibGVkIiwiaWNvbkNvbXBvbmVudCIsIk1lc3NhZ2VzIiwiY29uZmlnIiwiZmllbGRzVG9TaG93IiwiYnJ1c2giLCJDcm9zc2hhaXJzIiwic2l6ZSIsImNvb3JkaW5hdGUiLCJDdXJzb3JDbGljayIsInBvc2l0aW9uIiwiQlJVU0hfQ09ORklHIiwicmFuZ2UiLCJmaW5kRmllbGRzVG9TaG93IiwiZmllbGRzIiwiREVGQVVMVF9UT09MVElQX0ZJRUxEUyIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwiZmluZCIsIm5hbWUiLCJwdXNoIiwibGVuZ3RoIiwiYXV0b0ZpbmRUb29sdGlwRmllbGRzIiwicHRGaWVsZHMiLCJfbWVyZ2VGaWVsZFBhaXJzIiwiVFJJUF9QT0lOVF9GSUVMRFMiLCJmaWx0ZXIiLCJ0eXBlIiwicmVwbGFjZSIsInRyaW0iLCJzcGxpdCIsImV2ZXJ5Iiwic2VnIiwiaW5jbHVkZXMiLCJBTExfRklFTERfVFlQRVMiLCJnZW9qc29uIiwic2xpY2UiLCJNQVhfREVGQVVMVF9UT09MVElQUyIsIm1hcCIsImQiLCJwYWlycyIsInBhaXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFNQTs7QUExQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVTyxTQUFTQSxxQkFBVCxHQUFpQztBQUN0QyxTQUFPO0FBQ0xDLElBQUFBLE9BQU8sRUFBRTtBQUNQQyxNQUFBQSxFQUFFLEVBQUUsU0FERztBQUVQQyxNQUFBQSxPQUFPLEVBQUUsSUFGRjtBQUdQQyxNQUFBQSxhQUFhLEVBQUVDLGVBSFI7QUFJUEMsTUFBQUEsTUFBTSxFQUFFO0FBQ05DLFFBQUFBLFlBQVksRUFBRTtBQURSO0FBSkQsS0FESjtBQVNMQyxJQUFBQSxLQUFLLEVBQUU7QUFDTE4sTUFBQUEsRUFBRSxFQUFFLE9BREM7QUFFTEMsTUFBQUEsT0FBTyxFQUFFLEtBRko7QUFHTEMsTUFBQUEsYUFBYSxFQUFFSyxpQkFIVjtBQUlMSCxNQUFBQSxNQUFNLEVBQUU7QUFDTjtBQUNBSSxRQUFBQSxJQUFJLEVBQUU7QUFGQTtBQUpILEtBVEY7QUFrQkxDLElBQUFBLFVBQVUsRUFBRTtBQUNWVCxNQUFBQSxFQUFFLEVBQUUsWUFETTtBQUVWQyxNQUFBQSxPQUFPLEVBQUUsS0FGQztBQUdWQyxNQUFBQSxhQUFhLEVBQUVRLGtCQUhMO0FBSVZDLE1BQUFBLFFBQVEsRUFBRTtBQUpBO0FBbEJQLEdBQVA7QUF5QkQ7O0FBRU0sSUFBTUMsWUFBWSwwQkFBRztBQUMxQkMsRUFBQUEsS0FBSyxFQUFFLENBQUMsQ0FBRCxFQUFJLEVBQUo7QUFEbUIsQ0FBckI7O0FBSUEsU0FBU0MsZ0JBQVQsT0FBd0M7QUFBQSxNQUFiQyxNQUFhLFFBQWJBLE1BQWE7QUFBQSxNQUFMZixFQUFLLFFBQUxBLEVBQUs7O0FBQzdDO0FBQ0EsTUFBTUssWUFBWSxHQUFHVyx3Q0FBdUJDLE1BQXZCLENBQThCLFVBQUNDLElBQUQsRUFBT0MsSUFBUCxFQUFnQjtBQUNqRSxRQUFJSixNQUFNLENBQUNLLElBQVAsQ0FBWTtBQUFBLFVBQUVDLElBQUYsU0FBRUEsSUFBRjtBQUFBLGFBQVlGLElBQUksS0FBS0UsSUFBckI7QUFBQSxLQUFaLENBQUosRUFBNEM7QUFDMUNILE1BQUFBLElBQUksQ0FBQ0ksSUFBTCxDQUFVSCxJQUFWO0FBQ0Q7O0FBQ0QsV0FBT0QsSUFBUDtBQUNELEdBTG9CLEVBS2xCLEVBTGtCLENBQXJCOztBQU9BLDhDQUNHbEIsRUFESCxFQUNRSyxZQUFZLENBQUNrQixNQUFiLEdBQXNCbEIsWUFBdEIsR0FBcUNtQixxQkFBcUIsQ0FBQ1QsTUFBRCxDQURsRTtBQUdEOztBQUVELFNBQVNTLHFCQUFULENBQStCVCxNQUEvQixFQUF1QztBQUNyQyxNQUFNVSxRQUFRLEdBQUdDLGdCQUFnQixDQUFDQyxrQ0FBRCxDQUFqQyxDQURxQyxDQUVyQzs7O0FBQ0EsTUFBTXRCLFlBQVksR0FBR1UsTUFBTSxDQUFDYSxNQUFQLENBQ25CO0FBQUEsUUFBRVAsSUFBRixTQUFFQSxJQUFGO0FBQUEsUUFBUVEsSUFBUixTQUFRQSxJQUFSO0FBQUEsV0FDRVIsSUFBSSxDQUNEUyxPQURILENBQ1csU0FEWCxFQUNzQixHQUR0QixFQUVHQyxJQUZILEdBR0dDLEtBSEgsQ0FHUyxHQUhULEVBSUdDLEtBSkgsQ0FJUyxVQUFBQyxHQUFHO0FBQUEsYUFBSSxDQUFDVCxRQUFRLENBQUNVLFFBQVQsQ0FBa0JELEdBQWxCLENBQUw7QUFBQSxLQUpaLEtBS0FMLElBQUksS0FBS08saUNBQWdCQyxPQUx6QixJQU1BUixJQUFJLEtBQUssUUFQWDtBQUFBLEdBRG1CLENBQXJCO0FBV0EsU0FBT3hCLFlBQVksQ0FBQ2lDLEtBQWIsQ0FBbUIsQ0FBbkIsRUFBc0JDLHFDQUF0QixFQUE0Q0MsR0FBNUMsQ0FBZ0QsVUFBQUMsQ0FBQztBQUFBLFdBQUlBLENBQUMsQ0FBQ3BCLElBQU47QUFBQSxHQUFqRCxDQUFQO0FBQ0Q7O0FBRUQsU0FBU0ssZ0JBQVQsQ0FBMEJnQixLQUExQixFQUFpQztBQUMvQixTQUFPQSxLQUFLLENBQUN6QixNQUFOLENBQWEsVUFBQ0MsSUFBRCxFQUFPeUIsSUFBUDtBQUFBLHlEQUFvQnpCLElBQXBCLHVDQUE2QnlCLElBQTdCO0FBQUEsR0FBYixFQUFpRCxFQUFqRCxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1xuICBERUZBVUxUX1RPT0xUSVBfRklFTERTLFxuICBNQVhfREVGQVVMVF9UT09MVElQUyxcbiAgQUxMX0ZJRUxEX1RZUEVTLFxuICBUUklQX1BPSU5UX0ZJRUxEU1xufSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge01lc3NhZ2VzLCBDcm9zc2hhaXJzLCBDdXJzb3JDbGlja30gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMvaW5kZXgnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEludGVyYWN0aW9uKCkge1xuICByZXR1cm4ge1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIGlkOiAndG9vbHRpcCcsXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgaWNvbkNvbXBvbmVudDogTWVzc2FnZXMsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgZmllbGRzVG9TaG93OiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgYnJ1c2g6IHtcbiAgICAgIGlkOiAnYnJ1c2gnLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBpY29uQ29tcG9uZW50OiBDcm9zc2hhaXJzLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC8vIHNpemUgaXMgaW4ga21cbiAgICAgICAgc2l6ZTogMC41XG4gICAgICB9XG4gICAgfSxcbiAgICBjb29yZGluYXRlOiB7XG4gICAgICBpZDogJ2Nvb3JkaW5hdGUnLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBpY29uQ29tcG9uZW50OiBDdXJzb3JDbGljayxcbiAgICAgIHBvc2l0aW9uOiBudWxsXG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgQlJVU0hfQ09ORklHID0ge1xuICByYW5nZTogWzAsIDUwXVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGaWVsZHNUb1Nob3coe2ZpZWxkcywgaWR9KSB7XG4gIC8vIGZpcnN0IGZpbmQgZGVmYXVsdCB0b29sdGlwIGZpZWxkcyBmb3IgdHJpcHNcbiAgY29uc3QgZmllbGRzVG9TaG93ID0gREVGQVVMVF9UT09MVElQX0ZJRUxEUy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICBpZiAoZmllbGRzLmZpbmQoKHtuYW1lfSkgPT4gY3VyciA9PT0gbmFtZSkpIHtcbiAgICAgIHByZXYucHVzaChjdXJyKTtcbiAgICB9XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIFtdKTtcblxuICByZXR1cm4ge1xuICAgIFtpZF06IGZpZWxkc1RvU2hvdy5sZW5ndGggPyBmaWVsZHNUb1Nob3cgOiBhdXRvRmluZFRvb2x0aXBGaWVsZHMoZmllbGRzKVxuICB9O1xufVxuXG5mdW5jdGlvbiBhdXRvRmluZFRvb2x0aXBGaWVsZHMoZmllbGRzKSB7XG4gIGNvbnN0IHB0RmllbGRzID0gX21lcmdlRmllbGRQYWlycyhUUklQX1BPSU5UX0ZJRUxEUyk7XG4gIC8vIGZpbHRlciBvdXQgdGhlIGRlZmF1bHQgZmllbGRzIHRoYXQgY29udGFpbnMgbGF0IGFuZCBsbmcgYW5kIGFueSBnZW9tZXRyeVxuICBjb25zdCBmaWVsZHNUb1Nob3cgPSBmaWVsZHMuZmlsdGVyKFxuICAgICh7bmFtZSwgdHlwZX0pID0+XG4gICAgICBuYW1lXG4gICAgICAgIC5yZXBsYWNlKC9bXywuXSsvZywgJyAnKVxuICAgICAgICAudHJpbSgpXG4gICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgIC5ldmVyeShzZWcgPT4gIXB0RmllbGRzLmluY2x1ZGVzKHNlZykpICYmXG4gICAgICB0eXBlICE9PSBBTExfRklFTERfVFlQRVMuZ2VvanNvbiAmJlxuICAgICAgdHlwZSAhPT0gJ29iamVjdCdcbiAgKTtcblxuICByZXR1cm4gZmllbGRzVG9TaG93LnNsaWNlKDAsIE1BWF9ERUZBVUxUX1RPT0xUSVBTKS5tYXAoZCA9PiBkLm5hbWUpO1xufVxuXG5mdW5jdGlvbiBfbWVyZ2VGaWVsZFBhaXJzKHBhaXJzKSB7XG4gIHJldHVybiBwYWlycy5yZWR1Y2UoKHByZXYsIHBhaXIpID0+IFsuLi5wcmV2LCAuLi5wYWlyXSwgW10pO1xufVxuIl19