UNPKG

kepler.gl

Version:

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

86 lines (84 loc) 16.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react")); var _src = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/common-utils/src"); var _columnSelector = _interopRequireDefault(require("./column-selector")); var _styledComponents = require("../../common/styled-components"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project /** * only provide suggested field pairs if there is a match, * otherwise the user can select a suggested field pair that will create invalid columns and a hard crash */ function getValidFieldPairsSuggestionsForColumn(enhancedFieldPairs, columnPairs, columnKey) { if (enhancedFieldPairs && columnPairs !== null && columnPairs !== void 0 && columnPairs[columnKey]) { var columnPair = columnPairs[columnKey]; var matchingFieldPairs = enhancedFieldPairs.filter(function (_ref) { var pair = _ref.pair; return (0, _src.toArray)(columnPair.fieldPairKey).some(function (fieldPairKey) { return Object.prototype.hasOwnProperty.call(pair, fieldPairKey); }); }); return matchingFieldPairs.length > 0 ? matchingFieldPairs : null; } return null; } LayerColumnConfigFactory.deps = [_columnSelector["default"]]; function LayerColumnConfigFactory(ColumnSelector) { var LayerColumnConfig = function LayerColumnConfig(_ref2) { var columnPairs = _ref2.columnPairs, fieldPairs = _ref2.fieldPairs, columns = _ref2.columns, columnLabels = _ref2.columnLabels, fields = _ref2.fields, updateLayerConfig = _ref2.updateLayerConfig, assignColumn = _ref2.assignColumn, assignColumnPairs = _ref2.assignColumnPairs, isActive = _ref2.isActive; var enhancedFieldPairs = (0, _react.useMemo)(function () { return columnPairs && fieldPairs ? fieldPairs.map(function (fp) { return { name: fp.defaultName, type: 'point', pair: fp.pair }; }) : null; }, [columnPairs, fieldPairs]); var onUpdateColumn = (0, _react.useCallback)(function (key, value) { var assignedColumns = value && value.pair && columnPairs ? assignColumnPairs(key, value.pair) : assignColumn(key, value); updateLayerConfig({ columns: assignedColumns }); }, [updateLayerConfig, columnPairs, assignColumnPairs, assignColumn]); if (!Object.keys(columns).length) { // don't render if columns is empty return /*#__PURE__*/_react["default"].createElement("div", null); } return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement("div", { className: "layer-config__column" }, Object.keys(columns).map(function (key) { return /*#__PURE__*/_react["default"].createElement(ColumnSelector, { column: columns[key], columns: columns, label: columnLabels && columnLabels[key] || key, key: key, allFields: fields, fieldPairs: getValidFieldPairsSuggestionsForColumn(enhancedFieldPairs, columnPairs, key), onSelect: function onSelect(val) { return onUpdateColumn(key, val); }, isActive: isActive }); })))); }; return LayerColumnConfig; } var _default = exports["default"] = LayerColumnConfigFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3JjIiwiX2NvbHVtblNlbGVjdG9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiZ2V0VmFsaWRGaWVsZFBhaXJzU3VnZ2VzdGlvbnNGb3JDb2x1bW4iLCJlbmhhbmNlZEZpZWxkUGFpcnMiLCJjb2x1bW5QYWlycyIsImNvbHVtbktleSIsImNvbHVtblBhaXIiLCJtYXRjaGluZ0ZpZWxkUGFpcnMiLCJmaWx0ZXIiLCJfcmVmIiwicGFpciIsInRvQXJyYXkiLCJmaWVsZFBhaXJLZXkiLCJzb21lIiwicHJvdG90eXBlIiwibGVuZ3RoIiwiTGF5ZXJDb2x1bW5Db25maWdGYWN0b3J5IiwiZGVwcyIsIkNvbHVtblNlbGVjdG9yRmFjdG9yeSIsIkNvbHVtblNlbGVjdG9yIiwiTGF5ZXJDb2x1bW5Db25maWciLCJfcmVmMiIsImZpZWxkUGFpcnMiLCJjb2x1bW5zIiwiY29sdW1uTGFiZWxzIiwiZmllbGRzIiwidXBkYXRlTGF5ZXJDb25maWciLCJhc3NpZ25Db2x1bW4iLCJhc3NpZ25Db2x1bW5QYWlycyIsImlzQWN0aXZlIiwidXNlTWVtbyIsIm1hcCIsImZwIiwibmFtZSIsImRlZmF1bHROYW1lIiwidHlwZSIsIm9uVXBkYXRlQ29sdW1uIiwidXNlQ2FsbGJhY2siLCJrZXkiLCJ2YWx1ZSIsImFzc2lnbmVkQ29sdW1ucyIsImtleXMiLCJjcmVhdGVFbGVtZW50IiwiU2lkZVBhbmVsU2VjdGlvbiIsImNsYXNzTmFtZSIsImNvbHVtbiIsImxhYmVsIiwiYWxsRmllbGRzIiwib25TZWxlY3QiLCJ2YWwiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb2x1bW4tY29uZmlnLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge0xheWVyQmFzZUNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtcbiAgRmllbGRQYWlyLFxuICBDb2x1bW5QYWlycyxcbiAgTGF5ZXJDb2x1bW5zLFxuICBDb2x1bW5MYWJlbHMsXG4gIEVuaGFuY2VkRmllbGRQYWlyXG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHt0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5cbmltcG9ydCBDb2x1bW5TZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9jb2x1bW4tc2VsZWN0b3InO1xuaW1wb3J0IHtNaW5pbWFsRmllbGR9IGZyb20gJy4uLy4uL2NvbW1vbi9maWVsZC1zZWxlY3Rvcic7XG5pbXBvcnQge1NpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCB0eXBlIExheWVyQ29sdW1uQ29uZmlnUHJvcHM8RmllbGRPcHRpb24gZXh0ZW5kcyBNaW5pbWFsRmllbGQ+ID0ge1xuICBjb2x1bW5zOiBMYXllckNvbHVtbnM7XG4gIGZpZWxkczogRmllbGRPcHRpb25bXTtcbiAgYXNzaWduQ29sdW1uUGFpcnM6IChrZXk6IHN0cmluZywgcGFpcjogRmllbGRQYWlyKSA9PiBMYXllckNvbHVtbnM7XG4gIGFzc2lnbkNvbHVtbjogKGtleTogc3RyaW5nLCBmaWVsZDogRmllbGRPcHRpb24pID0+IExheWVyQ29sdW1ucztcbiAgdXBkYXRlTGF5ZXJDb25maWc6IChuZXdDb25maWc6IFBhcnRpYWw8TGF5ZXJCYXNlQ29uZmlnPikgPT4gdm9pZDtcbiAgdXBkYXRlTGF5ZXJUeXBlPzogKG5ld1R5cGU6IHN0cmluZykgPT4gdm9pZDtcbiAgY29sdW1uUGFpcnM/OiBDb2x1bW5QYWlycyB8IG51bGw7XG4gIGZpZWxkUGFpcnM/OiBGaWVsZFBhaXJbXTtcbiAgY29sdW1uTGFiZWxzOiBDb2x1bW5MYWJlbHMgfCBudWxsO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogb25seSBwcm92aWRlIHN1Z2dlc3RlZCBmaWVsZCBwYWlycyBpZiB0aGVyZSBpcyBhIG1hdGNoLFxuICogb3RoZXJ3aXNlIHRoZSB1c2VyIGNhbiBzZWxlY3QgYSBzdWdnZXN0ZWQgZmllbGQgcGFpciB0aGF0IHdpbGwgY3JlYXRlIGludmFsaWQgY29sdW1ucyBhbmQgYSBoYXJkIGNyYXNoXG4gKi9cbmZ1bmN0aW9uIGdldFZhbGlkRmllbGRQYWlyc1N1Z2dlc3Rpb25zRm9yQ29sdW1uKFxuICBlbmhhbmNlZEZpZWxkUGFpcnM6IEVuaGFuY2VkRmllbGRQYWlyW10gfCBudWxsLFxuICBjb2x1bW5QYWlyczogQ29sdW1uUGFpcnMgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBjb2x1bW5LZXk6IHN0cmluZ1xuKTogRW5oYW5jZWRGaWVsZFBhaXJbXSB8IG51bGwge1xuICBpZiAoZW5oYW5jZWRGaWVsZFBhaXJzICYmIGNvbHVtblBhaXJzPy5bY29sdW1uS2V5XSkge1xuICAgIGNvbnN0IGNvbHVtblBhaXIgPSBjb2x1bW5QYWlyc1tjb2x1bW5LZXldO1xuICAgIGNvbnN0IG1hdGNoaW5nRmllbGRQYWlycyA9IGVuaGFuY2VkRmllbGRQYWlycy5maWx0ZXIoKHtwYWlyfSkgPT4ge1xuICAgICAgcmV0dXJuIHRvQXJyYXkoY29sdW1uUGFpci5maWVsZFBhaXJLZXkpLnNvbWUoZmllbGRQYWlyS2V5ID0+XG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYWlyLCBmaWVsZFBhaXJLZXkpXG4gICAgICApO1xuICAgIH0pO1xuICAgIHJldHVybiBtYXRjaGluZ0ZpZWxkUGFpcnMubGVuZ3RoID4gMCA/IG1hdGNoaW5nRmllbGRQYWlycyA6IG51bGw7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbkxheWVyQ29sdW1uQ29uZmlnRmFjdG9yeS5kZXBzID0gW0NvbHVtblNlbGVjdG9yRmFjdG9yeV07XG5cbmZ1bmN0aW9uIExheWVyQ29sdW1uQ29uZmlnRmFjdG9yeShDb2x1bW5TZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgQ29sdW1uU2VsZWN0b3JGYWN0b3J5Pikge1xuICBjb25zdCBMYXllckNvbHVtbkNvbmZpZzogUmVhY3QuRkM8TGF5ZXJDb2x1bW5Db25maWdQcm9wczxNaW5pbWFsRmllbGQgJiB7ZmllbGRJZHg6IG51bWJlcn0+PiA9ICh7XG4gICAgY29sdW1uUGFpcnMsXG4gICAgZmllbGRQYWlycyxcbiAgICBjb2x1bW5zLFxuICAgIGNvbHVtbkxhYmVscyxcbiAgICBmaWVsZHMsXG4gICAgdXBkYXRlTGF5ZXJDb25maWcsXG4gICAgYXNzaWduQ29sdW1uLFxuICAgIGFzc2lnbkNvbHVtblBhaXJzLFxuICAgIGlzQWN0aXZlXG4gIH0pID0+IHtcbiAgICBjb25zdCBlbmhhbmNlZEZpZWxkUGFpcnM6IEVuaGFuY2VkRmllbGRQYWlyW10gfCBudWxsID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGNvbHVtblBhaXJzICYmIGZpZWxkUGFpcnNcbiAgICAgICAgICA/IGZpZWxkUGFpcnMubWFwKGZwID0+ICh7XG4gICAgICAgICAgICAgIG5hbWU6IGZwLmRlZmF1bHROYW1lLFxuICAgICAgICAgICAgICB0eXBlOiAncG9pbnQnLFxuICAgICAgICAgICAgICBwYWlyOiBmcC5wYWlyXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6IG51bGwsXG4gICAgICBbY29sdW1uUGFpcnMsIGZpZWxkUGFpcnNdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uVXBkYXRlQ29sdW1uID0gdXNlQ2FsbGJhY2soXG4gICAgICAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBhc3NpZ25lZENvbHVtbnMgPVxuICAgICAgICAgIHZhbHVlICYmIHZhbHVlLnBhaXIgJiYgY29sdW1uUGFpcnNcbiAgICAgICAgICAgID8gYXNzaWduQ29sdW1uUGFpcnMoa2V5LCB2YWx1ZS5wYWlyKVxuICAgICAgICAgICAgOiBhc3NpZ25Db2x1bW4oa2V5LCB2YWx1ZSk7XG5cbiAgICAgICAgdXBkYXRlTGF5ZXJDb25maWcoe2NvbHVtbnM6IGFzc2lnbmVkQ29sdW1uc30pO1xuICAgICAgfSxcbiAgICAgIFt1cGRhdGVMYXllckNvbmZpZywgY29sdW1uUGFpcnMsIGFzc2lnbkNvbHVtblBhaXJzLCBhc3NpZ25Db2x1bW5dXG4gICAgKTtcblxuICAgIGlmICghT2JqZWN0LmtleXMoY29sdW1ucykubGVuZ3RoKSB7XG4gICAgICAvLyBkb24ndCByZW5kZXIgaWYgY29sdW1ucyBpcyBlbXB0eVxuICAgICAgcmV0dXJuIDxkaXYgLz47XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXItY29uZmlnX19jb2x1bW5cIj5cbiAgICAgICAgICAgIHtPYmplY3Qua2V5cyhjb2x1bW5zKS5tYXAoa2V5ID0+IChcbiAgICAgICAgICAgICAgPENvbHVtblNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY29sdW1uPXtjb2x1bW5zW2tleV19XG4gICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgICAgICBsYWJlbD17KGNvbHVtbkxhYmVscyAmJiBjb2x1bW5MYWJlbHNba2V5XSkgfHwga2V5fVxuICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgIGFsbEZpZWxkcz17ZmllbGRzfVxuICAgICAgICAgICAgICAgIGZpZWxkUGFpcnM9e2dldFZhbGlkRmllbGRQYWlyc1N1Z2dlc3Rpb25zRm9yQ29sdW1uKFxuICAgICAgICAgICAgICAgICAgZW5oYW5jZWRGaWVsZFBhaXJzLFxuICAgICAgICAgICAgICAgICAgY29sdW1uUGFpcnMsXG4gICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt2YWwgPT4gb25VcGRhdGVDb2x1bW4oa2V5LCB2YWwpfVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBMYXllckNvbHVtbkNvbmZpZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJDb2x1bW5Db25maWdGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQVVBLElBQUFDLElBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFJLGlCQUFBLEdBQUFKLE9BQUE7QUFBZ0UsU0FBQUsseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNB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