UNPKG

kepler.gl

Version:

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

110 lines (96 loc) 15.4 kB
"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 _styledComponents = require("../../common/styled-components"); var _filterPanelHeader = _interopRequireDefault(require("../../side-panel/filter-panel/filter-panel-header")); var _panelHeaderAction = _interopRequireDefault(require("../../side-panel/panel-header-action")); var _sourceDataSelector = _interopRequireDefault(require("../../side-panel/common/source-data-selector")); var _fieldSelector = _interopRequireDefault(require("../../common/field-selector")); var _newFilterPanel = require("./new-filter-panel"); // 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. FieldPanelWithFieldSelectFactory.deps = [_filterPanelHeader["default"], _sourceDataSelector["default"], _fieldSelector["default"], _panelHeaderAction["default"]]; function FieldPanelWithFieldSelectFactory(FilterPanelHeader, SourceDataSelector, FieldSelector, PanelHeaderAction) { /** @type {import('./filter-panel-types').FilterPanelComponent} */ var FilterPanelWithFieldSelect = /*#__PURE__*/_react["default"].memo(function (_ref) { var allAvailableFields = _ref.allAvailableFields, children = _ref.children, datasets = _ref.datasets, filter = _ref.filter, idx = _ref.idx, removeFilter = _ref.removeFilter, setFilter = _ref.setFilter, _ref$panelActions = _ref.panelActions, panelActions = _ref$panelActions === void 0 ? [] : _ref$panelActions; var onFieldSelector = (0, _react.useCallback)(function (field) { return setFilter(idx, 'name', field.name); }, [idx, setFilter]); var onSourceDataSelector = (0, _react.useCallback)(function (value) { return setFilter(idx, 'dataId', [value]); }, [idx, setFilter]); var fieldValue = (0, _react.useMemo)(function () { return Array.isArray(filter.name) ? filter.name[0] : filter.name; }, [filter.name]); var dataset = datasets[filter.dataId[0]]; var supportedFields = (0, _react.useMemo)(function () { return (0, _newFilterPanel.getSupportedFilterFields)(dataset.supportedFilterTypes, allAvailableFields); }, [dataset.supportedFilterTypes, allAvailableFields]); return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FilterPanelHeader, { datasets: [dataset], allAvailableFields: supportedFields, idx: idx, filter: filter, removeFilter: removeFilter }, /*#__PURE__*/_react["default"].createElement(FieldSelector, { inputTheme: "secondary", fields: supportedFields, value: fieldValue, erasable: false, onSelect: onFieldSelector }), panelActions && panelActions.map(function (panelAction) { return /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, { id: panelAction.id, key: panelAction.id, onClick: panelAction.onClick, tooltip: panelAction.tooltip, IconComponent: panelAction.iconComponent, active: panelAction.active }); })), /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledFilterContent, { className: "filter-panel__content" }, Object.keys(datasets).length > 1 && /*#__PURE__*/_react["default"].createElement(SourceDataSelector, { inputTheme: "secondary", datasets: datasets, disabled: filter.freeze, dataId: filter.dataId, onSelect: onSourceDataSelector }), children)); }); FilterPanelWithFieldSelect.displayName = 'FilterPanelWithFieldSelect'; return FilterPanelWithFieldSelect; } var _default = FieldPanelWithFieldSelectFactory; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVyLXBhbmVscy9maWx0ZXItcGFuZWwtd2l0aC1maWVsZC1zZWxlY3QuanMiXSwibmFtZXMiOlsiRmllbGRQYW5lbFdpdGhGaWVsZFNlbGVjdEZhY3RvcnkiLCJkZXBzIiwiRmlsdGVyUGFuZWxIZWFkZXJGYWN0b3J5IiwiU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSIsIkZpZWxkU2VsZWN0b3JGYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IiwiRmlsdGVyUGFuZWxIZWFkZXIiLCJTb3VyY2VEYXRhU2VsZWN0b3IiLCJGaWVsZFNlbGVjdG9yIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJGaWx0ZXJQYW5lbFdpdGhGaWVsZFNlbGVjdCIsIlJlYWN0IiwibWVtbyIsImFsbEF2YWlsYWJsZUZpZWxkcyIsImNoaWxkcmVuIiwiZGF0YXNldHMiLCJmaWx0ZXIiLCJpZHgiLCJyZW1vdmVGaWx0ZXIiLCJzZXRGaWx0ZXIiLCJwYW5lbEFjdGlvbnMiLCJvbkZpZWxkU2VsZWN0b3IiLCJmaWVsZCIsIm5hbWUiLCJvblNvdXJjZURhdGFTZWxlY3RvciIsInZhbHVlIiwiZmllbGRWYWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImRhdGFzZXQiLCJkYXRhSWQiLCJzdXBwb3J0ZWRGaWVsZHMiLCJzdXBwb3J0ZWRGaWx0ZXJUeXBlcyIsIm1hcCIsInBhbmVsQWN0aW9uIiwiaWQiLCJvbkNsaWNrIiwidG9vbHRpcCIsImljb25Db21wb25lbnQiLCJhY3RpdmUiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZnJlZXplIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQTFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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UUFBQSxNQUFNLEVBQUVKLFdBQVcsQ0FBQ0s7QUFOdEIsUUFEMEI7QUFBQSxLQUE1QixDQWZKLENBREYsZUEyQkUsZ0NBQUMscUNBQUQ7QUFBcUIsTUFBQSxTQUFTLEVBQUM7QUFBL0IsT0FDR0MsTUFBTSxDQUFDQyxJQUFQLENBQVkxQixRQUFaLEVBQXNCMkIsTUFBdEIsR0FBK0IsQ0FBL0IsaUJBQ0MsZ0NBQUMsa0JBQUQ7QUFDRSxNQUFBLFVBQVUsRUFBQyxXQURiO0FBRUUsTUFBQSxRQUFRLEVBQUUzQixRQUZaO0FBR0UsTUFBQSxRQUFRLEVBQUVDLE1BQU0sQ0FBQzJCLE1BSG5CO0FBSUUsTUFBQSxNQUFNLEVBQUUzQixNQUFNLENBQUNjLE1BSmpCO0FBS0UsTUFBQSxRQUFRLEVBQUVOO0FBTFosTUFGSixFQVVHVixRQVZILENBM0JGLENBREY7QUEwQ0QsR0F6RWdDLENBQW5DOztBQTRFQUosRUFBQUEsMEJBQTBCLENBQUNrQyxXQUEzQixHQUF5Qyw0QkFBekM7QUFFQSxTQUFPbEMsMEJBQVA7QUFDRDs7ZUFFY1YsZ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjEgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtTdHlsZWRGaWx0ZXJDb250ZW50fSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgRmlsdGVyUGFuZWxIZWFkZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLWhlYWRlcic7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmltcG9ydCBTb3VyY2VEYXRhU2VsZWN0b3JGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9jb21tb24vc291cmNlLWRhdGEtc2VsZWN0b3InO1xuaW1wb3J0IEZpZWxkU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4uLy4uL2NvbW1vbi9maWVsZC1zZWxlY3Rvcic7XG5pbXBvcnQge2dldFN1cHBvcnRlZEZpbHRlckZpZWxkc30gZnJvbSAnLi9uZXctZmlsdGVyLXBhbmVsJztcblxuRmllbGRQYW5lbFdpdGhGaWVsZFNlbGVjdEZhY3RvcnkuZGVwcyA9IFtcbiAgRmlsdGVyUGFuZWxIZWFkZXJGYWN0b3J5LFxuICBTb3VyY2VEYXRhU2VsZWN0b3JGYWN0b3J5LFxuICBGaWVsZFNlbGVjdG9yRmFjdG9yeSxcbiAgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XG5dO1xuXG5mdW5jdGlvbiBGaWVsZFBhbmVsV2l0aEZpZWxkU2VsZWN0RmFjdG9yeShcbiAgRmlsdGVyUGFuZWxIZWFkZXIsXG4gIFNvdXJjZURhdGFTZWxlY3RvcixcbiAgRmllbGRTZWxlY3RvcixcbiAgUGFuZWxIZWFkZXJBY3Rpb25cbikge1xuICAvKiogQHR5cGUge2ltcG9ydCgnLi9maWx0ZXItcGFuZWwtdHlwZXMnKS5GaWx0ZXJQYW5lbENvbXBvbmVudH0gKi9cbiAgY29uc3QgRmlsdGVyUGFuZWxXaXRoRmllbGRTZWxlY3QgPSBSZWFjdC5tZW1vKFxuICAgICh7XG4gICAgICBhbGxBdmFpbGFibGVGaWVsZHMsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGRhdGFzZXRzLFxuICAgICAgZmlsdGVyLFxuICAgICAgaWR4LFxuICAgICAgcmVtb3ZlRmlsdGVyLFxuICAgICAgc2V0RmlsdGVyLFxuICAgICAgcGFuZWxBY3Rpb25zID0gW11cbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCBvbkZpZWxkU2VsZWN0b3IgPSB1c2VDYWxsYmFjayhmaWVsZCA9PiBzZXRGaWx0ZXIoaWR4LCAnbmFtZScsIGZpZWxkLm5hbWUpLCBbXG4gICAgICAgIGlkeCxcbiAgICAgICAgc2V0RmlsdGVyXG4gICAgICBdKTtcblxuICAgICAgY29uc3Qgb25Tb3VyY2VEYXRhU2VsZWN0b3IgPSB1c2VDYWxsYmFjayh2YWx1ZSA9PiBzZXRGaWx0ZXIoaWR4LCAnZGF0YUlkJywgW3ZhbHVlXSksIFtcbiAgICAgICAgaWR4LFxuICAgICAgICBzZXRGaWx0ZXJcbiAgICAgIF0pO1xuXG4gICAgICBjb25zdCBmaWVsZFZhbHVlID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKChBcnJheS5pc0FycmF5KGZpbHRlci5uYW1lKSA/IGZpbHRlci5uYW1lWzBdIDogZmlsdGVyLm5hbWUpKSxcbiAgICAgICAgW2ZpbHRlci5uYW1lXVxuICAgICAgKTtcblxuICAgICAgY29uc3QgZGF0YXNldCA9IGRhdGFzZXRzW2ZpbHRlci5kYXRhSWRbMF1dO1xuICAgICAgY29uc3Qgc3VwcG9ydGVkRmllbGRzID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gZ2V0U3VwcG9ydGVkRmlsdGVyRmllbGRzKGRhdGFzZXQuc3VwcG9ydGVkRmlsdGVyVHlwZXMsIGFsbEF2YWlsYWJsZUZpZWxkcyksXG4gICAgICAgIFtkYXRhc2V0LnN1cHBvcnRlZEZpbHRlclR5cGVzLCBhbGxBdmFpbGFibGVGaWVsZHNdXG4gICAgICApO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsdGVyUGFuZWxIZWFkZXJcbiAgICAgICAgICAgIGRhdGFzZXRzPXtbZGF0YXNldF19XG4gICAgICAgICAgICBhbGxBdmFpbGFibGVGaWVsZHM9e3N1cHBvcnRlZEZpZWxkc31cbiAgICAgICAgICAgIGlkeD17aWR4fVxuICAgICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgICByZW1vdmVGaWx0ZXI9e3JlbW92ZUZpbHRlcn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8RmllbGRTZWxlY3RvclxuICAgICAgICAgICAgICBpbnB1dFRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgZmllbGRzPXtzdXBwb3J0ZWRGaWVsZHN9XG4gICAgICAgICAgICAgIHZhbHVlPXtmaWVsZFZhbHVlfVxuICAgICAgICAgICAgICBlcmFzYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgIG9uU2VsZWN0PXtvbkZpZWxkU2VsZWN0b3J9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3BhbmVsQWN0aW9ucyAmJlxuICAgICAgICAgICAgICBwYW5lbEFjdGlvbnMubWFwKHBhbmVsQWN0aW9uID0+IChcbiAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgIGlkPXtwYW5lbEFjdGlvbi5pZH1cbiAgICAgICAgICAgICAgICAgIGtleT17cGFuZWxBY3Rpb24uaWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtwYW5lbEFjdGlvbi5vbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgdG9vbHRpcD17cGFuZWxBY3Rpb24udG9vbHRpcH1cbiAgICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e3BhbmVsQWN0aW9uLmljb25Db21wb25lbnR9XG4gICAgICAgICAgICAgICAgICBhY3RpdmU9e3BhbmVsQWN0aW9uLmFjdGl2ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICA8L0ZpbHRlclBhbmVsSGVhZGVyPlxuICAgICAgICAgIDxTdHlsZWRGaWx0ZXJDb250ZW50IGNsYXNzTmFtZT1cImZpbHRlci1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgICAge09iamVjdC5rZXlzKGRhdGFzZXRzKS5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICAgICAgPFNvdXJjZURhdGFTZWxlY3RvclxuICAgICAgICAgICAgICAgIGlucHV0VGhlbWU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZmlsdGVyLmZyZWV6ZX1cbiAgICAgICAgICAgICAgICBkYXRhSWQ9e2ZpbHRlci5kYXRhSWR9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e29uU291cmNlRGF0YVNlbGVjdG9yfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L1N0eWxlZEZpbHRlckNvbnRlbnQ+XG4gICAgICAgIDwvPlxuICAgICAgKTtcbiAgICB9XG4gICk7XG5cbiAgRmlsdGVyUGFuZWxXaXRoRmllbGRTZWxlY3QuZGlzcGxheU5hbWUgPSAnRmlsdGVyUGFuZWxXaXRoRmllbGRTZWxlY3QnO1xuXG4gIHJldHVybiBGaWx0ZXJQYW5lbFdpdGhGaWVsZFNlbGVjdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRmllbGRQYW5lbFdpdGhGaWVsZFNlbGVjdEZhY3Rvcnk7XG4iXX0=