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
JavaScript
;
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