kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
103 lines (91 loc) • 13.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _multiSelectFilter = _interopRequireDefault(require("../multi-select-filter"));
var _styledComponents = require("../../common/styled-components");
var _filterPanelHeader = _interopRequireDefault(require("../../side-panel/filter-panel/filter-panel-header"));
var _fieldSelector = _interopRequireDefault(require("../../common/field-selector"));
var _sourceDataSelector = _interopRequireDefault(require("../../side-panel/common/source-data-selector"));
// 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.
MultiSelectFilterPanelFactory.deps = [_filterPanelHeader["default"], _multiSelectFilter["default"], _sourceDataSelector["default"]];
function MultiSelectFilterPanelFactory(FilterPanelHeader, MultiSelectFilter, SourceDataSelector) {
var MultiSelectFilterPanel = _react["default"].memo(function (_ref) {
var idx = _ref.idx,
datasets = _ref.datasets,
allAvailableFields = _ref.allAvailableFields,
filter = _ref.filter,
isAnyFilterAnimating = _ref.isAnyFilterAnimating,
enlargeFilter = _ref.enlargeFilter,
_setFilter = _ref.setFilter,
removeFilter = _ref.removeFilter,
toggleAnimation = _ref.toggleAnimation,
dataId = _ref.dataId,
auth = _ref.auth,
project = _ref.project,
filterApi = _ref.filterApi,
setFilterAPI = _ref.setFilterAPI,
mapState = _ref.mapState;
return (/*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FilterPanelHeader, {
datasets: [datasets[filter.dataId[0]]],
allAvailableFields: allAvailableFields,
idx: idx,
filter: filter,
removeFilter: removeFilter
}, /*#__PURE__*/_react["default"].createElement(_fieldSelector["default"], {
inputTheme: "secondary",
fields: datasets[dataId].fields,
value: Array.isArray(filter.name) ? filter.name[0] : filter.name,
erasable: false,
onSelect: function onSelect(value) {
return filterApi(idx, value, dataId, datasets, auth, project, setFilterAPI);
}
})), /*#__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: function onSelect(value) {
return _setFilter(idx, 'dataId', value);
}
}), filter.type && !filter.enlarged && /*#__PURE__*/_react["default"].createElement("div", {
className: "filter-panel__filter"
}, /*#__PURE__*/_react["default"].createElement(MultiSelectFilter, {
filter: filter,
idx: idx,
isAnyFilterAnimating: isAnyFilterAnimating,
toggleAnimation: toggleAnimation,
setFilter: function setFilter(value) {
return _setFilter(idx, 'value', value, 0, mapState, auth, project);
}
}))))
);
});
MultiSelectFilterPanel.displayName = 'MultiSelectFilterPanel';
return MultiSelectFilterPanel;
}
var _default = exports["default"] = MultiSelectFilterPanelFactory;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVyLXBhbmVscy9tdWx0aS1zZWxlY3QtZmlsdGVyLXBhbmVsLmpzIl0sIm5hbWVzIjpbIk11bHRpU2VsZWN0RmlsdGVyUGFuZWxGYWN0b3J5IiwiZGVwcyIsIkZpbHRlclBhbmVsSGVhZGVyRmFjdG9yeSIsIk11bHRpU2VsZWN0RmlsdGVyRmFjdG9yeSIsIlNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnkiLCJGaWx0ZXJQYW5lbEhlYWRlciIsIk11bHRpU2VsZWN0RmlsdGVyIiwiU291cmNlRGF0YVNlbGVjdG9yIiwiTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbCIsIlJlYWN0IiwibWVtbyIsImlkeCIsImRhdGFzZXRzIiwiYWxsQXZhaWxhYmxlRmllbGRzIiwiZmlsdGVyIiwiaXNBbnlGaWx0ZXJBbmltYXRpbmciLCJlbmxhcmdlRmlsdGVyIiwic2V0RmlsdGVyIiwicmVtb3ZlRmlsdGVyIiwidG9nZ2xlQW5pbWF0aW9uIiwiZGF0YUlkIiwiYXV0aCIsInByb2plY3QiLCJmaWx0ZXJBcGkiLCJzZXRGaWx0ZXJBUEkiLCJtYXBTdGF0ZSIsImZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsIm5hbWUiLCJ2YWx1ZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJmcmVlemUiLCJ0eXBlIiwiZW5sYXJnZWQiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQXpCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBQSw2QkFBNkIsQ0FBQ0MsSUFBOUIsR0FBcUMsQ0FDbkNDLDZCQURtQyxFQUVuQ0MsNkJBRm1DLEVBR25DQyw4QkFIbUMsQ0FBckM7O0FBTUEsU0FBU0osNkJBQVQsQ0FDRUssaUJB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ekMsQ0FESztBQUFBO0FBTGxCLFFBREYsQ0FYSixDQTFCRjtBQWpCRjtBQUFBLEdBRDZCLENBQS9COztBQXdFQWQsRUFBQUEsc0JBQXNCLENBQUM2QixXQUF2QixHQUFxQyx3QkFBckM7QUFFQSxTQUFPN0Isc0JBQVA7QUFDRDs7b0NBRWNSLDZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBNdWx0aVNlbGVjdEZpbHRlckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9maWx0ZXJzL211bHRpLXNlbGVjdC1maWx0ZXInO1xuaW1wb3J0IHtTdHlsZWRGaWx0ZXJDb250ZW50fSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgRmlsdGVyUGFuZWxIZWFkZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLWhlYWRlcic7XG5pbXBvcnQgRmllbGRTZWxlY3RvciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9maWVsZC1zZWxlY3Rvcic7XG5pbXBvcnQgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL3NpZGUtcGFuZWwvY29tbW9uL3NvdXJjZS1kYXRhLXNlbGVjdG9yJztcblxuTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbEZhY3RvcnkuZGVwcyA9IFtcbiAgRmlsdGVyUGFuZWxIZWFkZXJGYWN0b3J5LFxuICBNdWx0aVNlbGVjdEZpbHRlckZhY3RvcnksXG4gIFNvdXJjZURhdGFTZWxlY3RvckZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIE11bHRpU2VsZWN0RmlsdGVyUGFuZWxGYWN0b3J5KFxuICBGaWx0ZXJQYW5lbEhlYWRlcixcbiAgTXVsdGlTZWxlY3RGaWx0ZXIsXG4gIFNvdXJjZURhdGFTZWxlY3RvclxuKSB7XG4gIGNvbnN0IE11bHRpU2VsZWN0RmlsdGVyUGFuZWwgPSBSZWFjdC5tZW1vKFxuICAgICh7XG4gICAgICBpZHgsXG4gICAgICBkYXRhc2V0cyxcbiAgICAgIGFsbEF2YWlsYWJsZUZpZWxkcyxcbiAgICAgIGZpbHRlcixcbiAgICAgIGlzQW55RmlsdGVyQW5pbWF0aW5nLFxuICAgICAgZW5sYXJnZUZpbHRlcixcbiAgICAgIHNldEZpbHRlcixcbiAgICAgIHJlbW92ZUZpbHRlcixcbiAgICAgIHRvZ2dsZUFuaW1hdGlvbixcbiAgICAgIGRhdGFJZCxcbiAgICAgIGF1dGgsXG4gICAgICBwcm9qZWN0LFxuICAgICAgZmlsdGVyQXBpLFxuICAgICAgc2V0RmlsdGVyQVBJLFxuICAgICAgbWFwU3RhdGVcbiAgICB9KSA9PiAoXG4gICAgICA8PlxuICAgICAgICA8RmlsdGVyUGFuZWxIZWFkZXJcbiAgICAgICAgICBkYXRhc2V0cz17W2RhdGFzZXRzW2ZpbHRlci5kYXRhSWRbMF1dXX1cbiAgICAgICAgICBhbGxBdmFpbGFibGVGaWVsZHM9e2FsbEF2YWlsYWJsZUZpZWxkc31cbiAgICAgICAgICBpZHg9e2lkeH1cbiAgICAgICAgICBmaWx0ZXI9e2ZpbHRlcn1cbiAgICAgICAgICByZW1vdmVGaWx0ZXI9e3JlbW92ZUZpbHRlcn1cbiAgICAgICAgPlxuICAgICAgICAgIDxGaWVsZFNlbGVjdG9yXG4gICAgICAgICAgICBpbnB1dFRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIGZpZWxkcz17ZGF0YXNldHNbZGF0YUlkXS5maWVsZHN9XG4gICAgICAgICAgICB2YWx1ZT17QXJyYXkuaXNBcnJheShmaWx0ZXIubmFtZSkgPyBmaWx0ZXIubmFtZVswXSA6IGZpbHRlci5uYW1lfVxuICAgICAgICAgICAgZXJhc2FibGU9e2ZhbHNlfVxuICAgICAgICAgICAgb25TZWxlY3Q9e3ZhbHVlID0+XG4gICAgICAgICAgICAgIGZpbHRlckFwaShcbiAgICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgZGF0YUlkLFxuICAgICAgICAgICAgICAgIGRhdGFzZXRzLFxuICAgICAgICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgICAgICAgcHJvamVjdCxcbiAgICAgICAgICAgICAgICBzZXRGaWx0ZXJBUElcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRmlsdGVyUGFuZWxIZWFkZXI+XG4gICAgICAgIDxTdHlsZWRGaWx0ZXJDb250ZW50IGNsYXNzTmFtZT1cImZpbHRlci1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgIHtPYmplY3Qua2V5cyhkYXRhc2V0cykubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICA8U291cmNlRGF0YVNlbGVjdG9yXG4gICAgICAgICAgICAgIGlucHV0VGhlbWU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtmaWx0ZXIuZnJlZXplfVxuICAgICAgICAgICAgICBkYXRhSWQ9e2ZpbHRlci5kYXRhSWR9XG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt2YWx1ZSA9PiBzZXRGaWx0ZXIoaWR4LCAnZGF0YUlkJywgdmFsdWUpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtmaWx0ZXIudHlwZSAmJiAhZmlsdGVyLmVubGFyZ2VkICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLXBhbmVsX19maWx0ZXJcIj5cbiAgICAgICAgICAgICAgPE11bHRpU2VsZWN0RmlsdGVyXG4gICAgICAgICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgICAgICAgaWR4PXtpZHh9XG4gICAgICAgICAgICAgICAgaXNBbnlGaWx0ZXJBbmltYXRpbmc9e2lzQW55RmlsdGVyQW5pbWF0aW5nfVxuICAgICAgICAgICAgICAgIHRvZ2dsZUFuaW1hdGlvbj17dG9nZ2xlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIHNldEZpbHRlcj17dmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgIHNldEZpbHRlcihpZHgsICd2YWx1ZScsIHZhbHVlLCAwLCBtYXBTdGF0ZSwgYXV0aCwgcHJvamVjdClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZEZpbHRlckNvbnRlbnQ+XG4gICAgICA8Lz5cbiAgICApXG4gICk7XG5cbiAgTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbC5kaXNwbGF5TmFtZSA9ICdNdWx0aVNlbGVjdEZpbHRlclBhbmVsJztcblxuICByZXR1cm4gTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlTZWxlY3RGaWx0ZXJQYW5lbEZhY3Rvcnk7XG4iXX0=