kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
96 lines (73 loc) • 12 kB
JavaScript
;
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _styledComponents = _interopRequireWildcard(require("styled-components"));
var _layerTypeDropdownList = _interopRequireDefault(require("./layer-type-dropdown-list"));
var _layerTypeListItem = _interopRequireDefault(require("./layer-type-list-item"));
var _itemSelector = _interopRequireDefault(require("../../common/item-selector/item-selector"));
var _styledComponents2 = require("../../common/styled-components");
var _templateObject;
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var propTypes = {
layer: _propTypes["default"].object.isRequired,
onSelect: _propTypes["default"].func.isRequired
};
var StyledLayerTypeSelector = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .item-selector .item-selector__dropdown {\n padding: 4px 10px 4px 2px;\n }\n"])));
LayerTypeSelectorFactory.deps = [_layerTypeListItem["default"], _layerTypeDropdownList["default"]];
var getDisplayOption = function getDisplayOption(op) {
return op.label;
};
var getOptionValue = function getOptionValue(op) {
return op.id;
};
function LayerTypeSelectorFactory(LayerTypeListItem, LayerTypeDropdownList) {
var LayerTypeSelector = function LayerTypeSelector(_ref) {
var layer = _ref.layer,
layerTypeOptions = _ref.layerTypeOptions,
onSelect = _ref.onSelect,
datasets = _ref.datasets;
var hasData = (0, _react.useMemo)(function () {
return Boolean(Object.keys(datasets).length);
}, [datasets]);
var typeOptions = (0, _react.useMemo)(function () {
return layerTypeOptions.map(function (op) {
return _objectSpread(_objectSpread({}, op), {}, {
disabled: !hasData && op.requireData !== false
});
});
}, [hasData, layerTypeOptions]);
var selectedItems = (0, _react.useMemo)(function () {
return typeOptions.find(function (op) {
return op.id === layer.type;
});
}, [typeOptions, layer.type]);
return /*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(StyledLayerTypeSelector, {
className: "layer-config__type"
}, /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], {
selectedItems: selectedItems,
options: typeOptions,
multiSelect: false,
placeholder: "placeholder.selectType",
onChange: onSelect,
getOptionValue: getOptionValue,
filterOption: "label",
displayOption: getDisplayOption,
DropDownLineItemRenderComponent: LayerTypeListItem,
DropDownRenderComponent: LayerTypeDropdownList
})));
};
LayerTypeSelector.propTypes = propTypes;
return (0, _styledComponents.withTheme)(LayerTypeSelector);
}
var _default = LayerTypeSelectorFactory;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdHlwZS1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJwcm9wVHlwZXMiLCJsYXllciIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJvblNlbGVjdCIsImZ1bmMiLCJTdHlsZWRMYXllclR5cGVTZWxlY3RvciIsInN0eWxlZCIsImRpdiIsIkxheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSIsImRlcHMiLCJMYXllclR5cGVMaXN0SXRlbUZhY3RvcnkiLCJMYXllclR5cGVEcm9wZG93bkxpc3RGYWN0b3J5IiwiZ2V0RGlzcGxheU9wdGlvbiIsIm9wIiwibGFiZWwiLCJnZXRPcHRpb25WYWx1ZSIsImlkIiwiTGF5ZXJUeXBlTGlzdEl0ZW0iLCJMYXllclR5cGVEcm9wZG93bkxpc3QiLCJMYXllclR5cGVTZWxlY3RvciIsImxheWVyVHlwZU9wdGlvbnMiLCJkYXRhc2V0cyIsImhhc0RhdGEiLCJCb29sZWFuIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInR5cGVPcHRpb25zIiwibWFwIiwiZGlzYWJsZWQiLCJyZXF1aXJlRGF0YSIsInNlbGVjdGVkSXRlbXMiLCJmaW5kIiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7OztBQUVBLElBQU1BLFNBQVMsR0FBRztBQUNoQkMsRUFBQUEsS0FBSyxFQUFFQyxzQkFBVUMsTUFBVixDQUFpQkMsVUFEUjtBQUVoQkMsRUFBQUEsUUFBUSxFQUFFSCxzQkFBVUksSUFBVixDQUFlRjtBQUZULENBQWxCOztBQUtBLElBQU1HLHVCQUF1QixHQUFHQyw2QkFBT0MsR0FBViwwS0FBN0I7O0FBTUFDLHdCQUF3QixDQUFDQyxJQUF6QixHQUFnQyxDQUFDQyw2QkFBRCxFQUEyQkMsaUNBQTNCLENBQWhDOztBQUVBLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQUMsRUFBRTtBQUFBLFNBQUlBLEVBQUUsQ0FBQ0MsS0FBUDtBQUFBLENBQTNCOztBQUNBLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQUYsRUFBRTtBQUFBLFNBQUlBLEVBQUUsQ0FBQ0csRUFBUDtBQUFBLENBQXpCOztBQUVBLFNBQVNSLHdCQUFULENBQWtDUyxpQkFBbEMsRUFBcURDLHFCQUFyRCxFQUE0RTtBQUMxRSxNQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLE9BQW1EO0FBQUEsUUFBakRwQixLQUFpRCxRQUFqREEsS0FBaUQ7QUFBQSxRQUExQ3FCLGdCQUEwQyxRQUExQ0EsZ0JBQTBDO0FBQUEsUUFBeEJqQixRQUF3QixRQUF4QkEsUUFBd0I7QUFBQSxRQUFka0IsUUFBYyxRQUFkQSxRQUFjO0FBQzNFLFFBQU1DLE9BQU8sR0FBRyxvQkFBUTtBQUFBLGFBQU1DLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxJQUFQLENBQVlKLFFBQVosRUFBc0JLLE1BQXZCLENBQWI7QUFBQSxLQUFSLEVBQXFELENBQUNMLFFBQUQsQ0FBckQsQ0FBaEI7QUFDQSxRQUFNTSxXQUFXLEdBQUcsb0JBQ2xCO0FBQUEsYUFDRVAsZ0JBQWdCLENBQUNRLEdBQWpCLENBQXFCLFVBQUFmLEVBQUU7QUFBQSwrQ0FDbEJBLEVBRGtCO0FBRXJCZ0IsVUFBQUEsUUFBUSxFQUFFLENBQUNQLE9BQUQsSUFBWVQsRUFBRSxDQUFDaUIsV0FBSCxLQUFtQjtBQUZwQjtBQUFBLE9BQXZCLENBREY7QUFBQSxLQURrQixFQU1sQixDQUFDUixPQUFELEVBQVVGLGdCQUFWLENBTmtCLENBQXBCO0FBU0EsUUFBTVcsYUFBYSxHQUFHLG9CQUFRO0FBQUEsYUFBTUosV0FBVyxDQUFDSyxJQUFaLENBQWlCLFVBQUFuQixFQUFFO0FBQUEsZUFBSUEsRUFBRSxDQUFDRyxFQUFILEtBQVVqQixLQUFLLENBQUNrQyxJQUFwQjtBQUFBLE9BQW5CLENBQU47QUFBQSxLQUFSLEVBQTRELENBQ2hGTixXQURnRixFQUVoRjVCLEtBQUssQ0FBQ2tDLElBRjBFLENBQTVELENBQXRCO0FBS0Esd0JBQ0UsZ0NBQUMsbUNBQUQscUJBQ0UsZ0NBQUMsdUJBQUQ7QUFBeUIsTUFBQSxTQUFTLEVBQUM7QUFBbkMsb0JBQ0UsZ0NBQUMsd0JBQUQ7QUFDRSxNQUFBLGFBQWEsRUFBRUYsYUFEakI7QUFFRSxNQUFBLE9BQU8sRUFBRUosV0FGWDtBQUdFLE1BQUEsV0FBVyxFQUFFLEtBSGY7QUFJRSxNQUFBLFdBQVcsRUFBQyx3QkFKZDtBQUtFLE1BQUEsUUFBUSxFQUFFeEIsUUFMWjtBQU1FLE1BQUEsY0FBYyxFQUFFWSxjQU5sQjtBQU9FLE1BQUEsWUFBWSxFQUFDLE9BUGY7QUFRRSxNQUFBLGFBQWEsRUFBRUgsZ0JBUmpCO0FBU0UsTUFBQSwrQkFBK0IsRUFBRUssaUJBVG5DO0FBVUUsTUFBQSx1QkFBdUIsRUFBRUM7QUFWM0IsTUFERixDQURGLENBREY7QUFrQkQsR0FsQ0Q7O0FBb0NBQyxFQUFBQSxpQkFBaUIsQ0FBQ3JCLFNBQWxCLEdBQThCQSxTQUE5QjtBQUVBLFNBQU8saUNBQVVxQixpQkFBVixDQUFQO0FBQ0Q7O2VBRWNYLHdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIxIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IExheWVyVHlwZURyb3Bkb3duTGlzdEZhY3RvcnkgZnJvbSAnLi9sYXllci10eXBlLWRyb3Bkb3duLWxpc3QnO1xuaW1wb3J0IExheWVyVHlwZUxpc3RJdGVtRmFjdG9yeSBmcm9tICcuL2xheWVyLXR5cGUtbGlzdC1pdGVtJztcbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcblxuaW1wb3J0IHtTaWRlUGFuZWxTZWN0aW9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IHByb3BUeXBlcyA9IHtcbiAgbGF5ZXI6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn07XG5cbmNvbnN0IFN0eWxlZExheWVyVHlwZVNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgLml0ZW0tc2VsZWN0b3IgLml0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duIHtcbiAgICBwYWRkaW5nOiA0cHggMTBweCA0cHggMnB4O1xuICB9XG5gO1xuXG5MYXllclR5cGVTZWxlY3RvckZhY3RvcnkuZGVwcyA9IFtMYXllclR5cGVMaXN0SXRlbUZhY3RvcnksIExheWVyVHlwZURyb3Bkb3duTGlzdEZhY3RvcnldO1xuXG5jb25zdCBnZXREaXNwbGF5T3B0aW9uID0gb3AgPT4gb3AubGFiZWw7XG5jb25zdCBnZXRPcHRpb25WYWx1ZSA9IG9wID0+IG9wLmlkO1xuXG5mdW5jdGlvbiBMYXllclR5cGVTZWxlY3RvckZhY3RvcnkoTGF5ZXJUeXBlTGlzdEl0ZW0sIExheWVyVHlwZURyb3Bkb3duTGlzdCkge1xuICBjb25zdCBMYXllclR5cGVTZWxlY3RvciA9ICh7bGF5ZXIsIGxheWVyVHlwZU9wdGlvbnMsIG9uU2VsZWN0LCBkYXRhc2V0c30pID0+IHtcbiAgICBjb25zdCBoYXNEYXRhID0gdXNlTWVtbygoKSA9PiBCb29sZWFuKE9iamVjdC5rZXlzKGRhdGFzZXRzKS5sZW5ndGgpLCBbZGF0YXNldHNdKTtcbiAgICBjb25zdCB0eXBlT3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBsYXllclR5cGVPcHRpb25zLm1hcChvcCA9PiAoe1xuICAgICAgICAgIC4uLm9wLFxuICAgICAgICAgIGRpc2FibGVkOiAhaGFzRGF0YSAmJiBvcC5yZXF1aXJlRGF0YSAhPT0gZmFsc2VcbiAgICAgICAgfSkpLFxuICAgICAgW2hhc0RhdGEsIGxheWVyVHlwZU9wdGlvbnNdXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB1c2VNZW1vKCgpID0+IHR5cGVPcHRpb25zLmZpbmQob3AgPT4gb3AuaWQgPT09IGxheWVyLnR5cGUpLCBbXG4gICAgICB0eXBlT3B0aW9ucyxcbiAgICAgIGxheWVyLnR5cGVcbiAgICBdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPFN0eWxlZExheWVyVHlwZVNlbGVjdG9yIGNsYXNzTmFtZT1cImxheWVyLWNvbmZpZ19fdHlwZVwiPlxuICAgICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3NlbGVjdGVkSXRlbXN9XG4gICAgICAgICAgICBvcHRpb25zPXt0eXBlT3B0aW9uc31cbiAgICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXIuc2VsZWN0VHlwZVwiXG4gICAgICAgICAgICBvbkNoYW5nZT17b25TZWxlY3R9XG4gICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT17Z2V0T3B0aW9uVmFsdWV9XG4gICAgICAgICAgICBmaWx0ZXJPcHRpb249XCJsYWJlbFwiXG4gICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtnZXREaXNwbGF5T3B0aW9ufVxuICAgICAgICAgICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudD17TGF5ZXJUeXBlTGlzdEl0ZW19XG4gICAgICAgICAgICBEcm9wRG93blJlbmRlckNvbXBvbmVudD17TGF5ZXJUeXBlRHJvcGRvd25MaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJUeXBlU2VsZWN0b3I+XG4gICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgKTtcbiAgfTtcblxuICBMYXllclR5cGVTZWxlY3Rvci5wcm9wVHlwZXMgPSBwcm9wVHlwZXM7XG5cbiAgcmV0dXJuIHdpdGhUaGVtZShMYXllclR5cGVTZWxlY3Rvcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExheWVyVHlwZVNlbGVjdG9yRmFjdG9yeTtcbiJdfQ==