kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
181 lines (142 loc) • 16.7 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
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 = _interopRequireDefault(require("styled-components"));
var _fieldSelector = _interopRequireDefault(require("../../common/field-selector"));
var _styledComponents2 = require("../../common/styled-components");
function _templateObject4() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 70%;\n"]);
_templateObject4 = function _templateObject4() {
return data;
};
return data;
}
function _templateObject3() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 30%;\n"]);
_templateObject3 = function _templateObject3() {
return data;
};
return data;
}
function _templateObject2() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-bottom: 8px;\n align-items: center;\n"]);
_templateObject2 = function _templateObject2() {
return data;
};
return data;
}
function _templateObject() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var TopRow = _styledComponents["default"].div(_templateObject());
var WidgetColumnConfig =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(WidgetColumnConfig, _Component);
function WidgetColumnConfig() {
(0, _classCallCheck2["default"])(this, WidgetColumnConfig);
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(WidgetColumnConfig).apply(this, arguments));
}
(0, _createClass2["default"])(WidgetColumnConfig, [{
key: "_updateColumn",
value: function _updateColumn(key, value) {
var layer = this.props.layer;
var columns = value && value.pair && layer.columnPairs ? layer.assignColumnPairs(key, value.pair) : layer.assignColumn(key, value);
this.props.updateLayerConfig({
columns: columns
});
}
}, {
key: "render",
value: function render() {
var _this = this;
var _this$props = this.props,
layer = _this$props.layer,
fields = _this$props.fields,
fieldPairs = _this$props.fieldPairs; // console.log('widgetColumnConfig', layer);
return _react["default"].createElement("div", null, _react["default"].createElement(_styledComponents2.SidePanelSection, null, _react["default"].createElement("div", {
className: "layer-config__column"
}, _react["default"].createElement(TopRow, null, _react["default"].createElement(_styledComponents2.PanelLabel, null, "Column"), _react["default"].createElement(_styledComponents2.PanelLabel, null, "* Required")), Object.keys(layer.config.columns).map(function (key) {
return _react["default"].createElement(ColumnSelector, {
column: layer.config.columns[key],
label: key,
key: key,
allFields: fields,
fieldPairs: layer.columnPairs ? fieldPairs.map(function (fp) {
return {
name: fp.defaultName,
type: 'point',
pair: fp.pair
};
}) : null,
onSelect: function onSelect(val) {
return _this._updateColumn(key, val);
}
});
}))));
}
}]);
return WidgetColumnConfig;
}(_react.Component);
exports["default"] = WidgetColumnConfig;
(0, _defineProperty2["default"])(WidgetColumnConfig, "propTypes", {
layer: _propTypes["default"].object.isRequired,
fields: _propTypes["default"].arrayOf(_propTypes["default"].any).isRequired,
updateLayerConfig: _propTypes["default"].func.isRequired,
fieldPairs: _propTypes["default"].arrayOf(_propTypes["default"].any)
});
var ColumnRow = _styledComponents["default"].div(_templateObject2());
var ColumnName = _styledComponents["default"].div(_templateObject3());
var ColumnSelect = _styledComponents["default"].div(_templateObject4()); // const availableFieldsSelector = createSelector(
// this.fieldsSelector,
// this.filterSelector,
// this.nameSelector,
// this.dataIdSelector,
// (fields, filters, name, dataId) =>
// fields.filter(
// f =>
// f.type &&
// f.type !== ALL_FIELD_TYPES.geojson &&
// (f.name === name ||
// !filters.find(d => d.name === f.name && d.dataId === dataId))
// )
// );
var ColumnSelector = function ColumnSelector(_ref) {
var column = _ref.column,
label = _ref.label,
allFields = _ref.allFields,
onSelect = _ref.onSelect,
fieldPairs = _ref.fieldPairs;
return _react["default"].createElement(ColumnRow, {
className: "widget-config__column__selector"
}, _react["default"].createElement(ColumnName, {
className: "widget-config__column__name"
}, _react["default"].createElement(_styledComponents2.PanelLabel, null, label), !column.optional ? _react["default"].createElement(_styledComponents2.PanelLabel, null, " *") : null), _react["default"].createElement(ColumnSelect, {
className: "widget-config__column__select"
}, _react["default"].createElement(_fieldSelector["default"], {
suggested: fieldPairs,
error: !column.optional && !column.value,
fields: allFields,
value: column.value,
erasable: Boolean(column.optional),
onSelect: onSelect
})));
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvd2lkZ2V0LXBhbmVsL3dpZGdldC1jb2x1bW4tY29uZmlnLmpzIl0sIm5hbWVzIjpbIlRvcFJvdyIsInN0eWxlZCIsImRpdiIsIldpZGdldENvbHVtbkNvbmZpZyIsImtleSIsInZhbHVlIiwibGF5ZXIiLCJwcm9wcyIsImNvbHVtbnMiLCJwYWlyIiwiY29sdW1uUGFpcnMiLCJhc3NpZ25Db2x1bW5QYWlycyIsImFzc2lnbkNvbHVtbiIsInVwZGF0ZUxheWVyQ29uZmlnIiwiZmllbGRzIiwiZmllbGRQYWlycyIsIk9iamVjdCIsImtleXMiLCJjb25maWciLCJtYXAiLCJmcCIsIm5hbWUiLCJkZWZhdWx0TmFtZSIsInR5cGUiLCJ2YWwiLCJfdXBkYXRlQ29sdW1uIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImFycmF5T2YiLCJhbnkiLCJmdW5jIiwiQ29sdW1uUm93IiwiQ29sdW1uTmFtZSIsIkNvbHVtblNlbGVjdCIsIkNvbHVtblNlbGVjdG9yIiwiY29sdW1uIiwibGFiZWwiLCJhbGxGaWVsZHMiLCJvblNlbGVjdCIsIm9wdGlvbmFsIiwiQm9vbGVhbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsSUFBTUEsTUFBTSxHQUFHQyw2QkFBT0MsR0FBVixtQkFBWjs7SUFLcUJDLGtCOzs7Ozs7Ozs7Ozs7a0NBUUxDLEcsRUFBS0MsSyxFQUFPO0FBQUEsVUFDakJDLEtBRGlCLEdBQ1IsS0FBS0MsS0FERyxDQUNqQkQsS0FEaUI7QUFHeEIsVUFBTUUsT0FBTyxHQUNYSCxLQUFLLElBQUlBLEtBQUssQ0FBQ0ksSUFBZixJQUF1QkgsS0FBSyxDQUFDSSxXQUE3QixHQUNJSixLQUFLLENBQUNLLGlC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QUFELFFBQWF1QixLQUFiLENBREYsRUFFRyxDQUFDRCxNQUFNLENBQUNJLFFBQVIsR0FBbUIsZ0NBQUMsNkJBQUQsY0FBbkIsR0FBc0QsSUFGekQsQ0FERixFQUtFLGdDQUFDLFlBQUQ7QUFBYyxJQUFBLFNBQVMsRUFBQztBQUF4QixLQUNFLGdDQUFDLHlCQUFEO0FBQ0UsSUFBQSxTQUFTLEVBQUUxQixVQURiO0FBRUUsSUFBQSxLQUFLLEVBQUUsQ0FBQ3NCLE1BQU0sQ0FBQ0ksUUFBUixJQUFvQixDQUFDSixNQUFNLENBQUNoQyxLQUZyQztBQUdFLElBQUEsTUFBTSxFQUFFa0MsU0FIVjtBQUlFLElBQUEsS0FBSyxFQUFFRixNQUFNLENBQUNoQyxLQUpoQjtBQUtFLElBQUEsUUFBUSxFQUFFcUMsT0FBTyxDQUFDTCxNQUFNLENBQUNJLFFBQVIsQ0FMbkI7QUFNRSxJQUFBLFFBQVEsRUFBRUQ7QUFOWixJQURGLENBTEYsQ0FEcUI7QUFBQSxDQUF2QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEZpZWxkU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vZmllbGQtc2VsZWN0b3InO1xuXG5pbXBvcnQge1xuICBQYW5lbExhYmVsLFxuICBTaWRlUGFuZWxTZWN0aW9uXG59IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuY29uc3QgVG9wUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lkZ2V0Q29sdW1uQ29uZmlnIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBsYXllcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGZpZWxkczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcbiAgICB1cGRhdGVMYXllckNvbmZpZzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBmaWVsZFBhaXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KVxuICB9O1xuXG4gIF91cGRhdGVDb2x1bW4oa2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IHtsYXllcn0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgY29sdW1ucyA9XG4gICAgICB2YWx1ZSAmJiB2YWx1ZS5wYWlyICYmIGxheWVyLmNvbHVtblBhaXJzXG4gICAgICAgID8gbGF5ZXIuYXNzaWduQ29sdW1uUGFpcnMoa2V5LCB2YWx1ZS5wYWlyKVxuICAgICAgICA6IGxheWVyLmFzc2lnbkNvbHVtbihrZXksIHZhbHVlKTtcblxuICAgIHRoaXMucHJvcHMudXBkYXRlTGF5ZXJDb25maWcoe2NvbHVtbnN9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bGF5ZXIsIGZpZWxkcywgZmllbGRQYWlyc30gPSB0aGlzLnByb3BzO1xuICAgIC8vIGNvbnNvbGUubG9nKCd3aWRnZXRDb2x1bW5Db25maWcnLCBsYXllcik7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXItY29uZmlnX19jb2x1bW5cIj5cbiAgICAgICAgICAgIDxUb3BSb3c+XG4gICAgICAgICAgICAgIDxQYW5lbExhYmVsPkNvbHVtbjwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+KiBSZXF1aXJlZDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgIDwvVG9wUm93PlxuICAgICAgICAgICAge09iamVjdC5rZXlzKGxheWVyLmNvbmZpZy5jb2x1bW5zKS5tYXAoa2V5ID0+IChcbiAgICAgICAgICAgICAgPENvbHVtblNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY29sdW1uPXtsYXllci5jb25maWcuY29sdW1uc1trZXldfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtrZXl9XG4gICAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgICAgYWxsRmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRQYWlycz17XG4gICAgICAgICAgICAgICAgICBsYXllci5jb2x1bW5QYWlyc1xuICAgICAgICAgICAgICAgICAgICA/IGZpZWxkUGFpcnMubWFwKGZwID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmcC5kZWZhdWx0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdwb2ludCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWlyOiBmcC5wYWlyXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dmFsID0+IHRoaXMuX3VwZGF0ZUNvbHVtbihrZXksIHZhbCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBDb2x1bW5Sb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBDb2x1bW5OYW1lID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDMwJTtcbmA7XG5jb25zdCBDb2x1bW5TZWxlY3QgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogNzAlO1xuYDtcblxuLy8gY29uc3QgYXZhaWxhYmxlRmllbGRzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcihcbi8vICAgdGhpcy5maWVsZHNTZWxlY3Rvcixcbi8vICAgdGhpcy5maWx0ZXJTZWxlY3Rvcixcbi8vICAgdGhpcy5uYW1lU2VsZWN0b3IsXG4vLyAgIHRoaXMuZGF0YUlkU2VsZWN0b3IsXG4vLyAgIChmaWVsZHMsIGZpbHRlcnMsIG5hbWUsIGRhdGFJZCkgPT5cbi8vICAgICBmaWVsZHMuZmlsdGVyKFxuLy8gICAgICAgZiA9PlxuLy8gICAgICAgICBmLnR5cGUgJiZcbi8vICAgICAgICAgZi50eXBlICE9PSBBTExfRklFTERfVFlQRVMuZ2VvanNvbiAmJlxuLy8gICAgICAgICAoZi5uYW1lID09PSBuYW1lIHx8XG4vLyAgICAgICAgICAgIWZpbHRlcnMuZmluZChkID0+IGQubmFtZSA9PT0gZi5uYW1lICYmIGQuZGF0YUlkID09PSBkYXRhSWQpKVxuLy8gICAgIClcbi8vICk7XG5cbmNvbnN0IENvbHVtblNlbGVjdG9yID0gKHtjb2x1bW4sIGxhYmVsLCBhbGxGaWVsZHMsIG9uU2VsZWN0LCBmaWVsZFBhaXJzfSkgPT4gKFxuICA8Q29sdW1uUm93IGNsYXNzTmFtZT1cIndpZGdldC1jb25maWdfX2NvbHVtbl9fc2VsZWN0b3JcIj5cbiAgICA8Q29sdW1uTmFtZSBjbGFzc05hbWU9XCJ3aWRnZXQtY29uZmlnX19jb2x1bW5fX25hbWVcIj5cbiAgICAgIDxQYW5lbExhYmVsPntsYWJlbH08L1BhbmVsTGFiZWw+XG4gICAgICB7IWNvbHVtbi5vcHRpb25hbCA/IDxQYW5lbExhYmVsPntgICAqYH08L1BhbmVsTGFiZWw+IDogbnVsbH1cbiAgICA8L0NvbHVtbk5hbWU+XG4gICAgPENvbHVtblNlbGVjdCBjbGFzc05hbWU9XCJ3aWRnZXQtY29uZmlnX19jb2x1bW5fX3NlbGVjdFwiPlxuICAgICAgPEZpZWxkU2VsZWN0b3JcbiAgICAgICAgc3VnZ2VzdGVkPXtmaWVsZFBhaXJzfVxuICAgICAgICBlcnJvcj17IWNvbHVtbi5vcHRpb25hbCAmJiAhY29sdW1uLnZhbHVlfVxuICAgICAgICBmaWVsZHM9e2FsbEZpZWxkc31cbiAgICAgICAgdmFsdWU9e2NvbHVtbi52YWx1ZX1cbiAgICAgICAgZXJhc2FibGU9e0Jvb2xlYW4oY29sdW1uLm9wdGlvbmFsKX1cbiAgICAgICAgb25TZWxlY3Q9e29uU2VsZWN0fVxuICAgICAgLz5cbiAgICA8L0NvbHVtblNlbGVjdD5cbiAgPC9Db2x1bW5Sb3c+XG4pO1xuIl19