kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
131 lines (112 loc) • 17.4 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.ActionPanelItem = void 0;
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireDefault(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _icons = require("./icons");
var _switch = _interopRequireDefault(require("./switch"));
var _templateObject, _templateObject2, _templateObject3;
var StyledItem = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n font-size: 12px;\n line-height: 14px;\n padding: 8px;\n min-height: ", "px;\n text-transform: capitalize;\n background-color: ", ";\n width: ", "px;\n position: relative;\n ", "\n\n :hover {\n cursor: pointer;\n color: ", ";\n .nested-group {\n display: block;\n }\n }\n\n .label {\n margin-left: 8px;\n }\n\n .label-icon {\n margin-left: auto;\n }\n\n .nested-group {\n width: 110px;\n display: none;\n color: ", ";\n position: absolute;\n left: 110px;\n top: 0px;\n padding-left: 4px;\n }\n"])), function (props) {
return props.theme.actionPanelHeight;
}, function (props) {
return props.theme.dropdownListBgd;
}, function (props) {
return props.theme.actionPanelWidth;
}, function (props) {
return props.color ? "border-left: 3px solid rgb(".concat(props.color, ");") : '';
}, function (props) {
return props.theme.textColorHl;
}, function (props) {
return props.theme.textColor;
});
var StyledCheckedbox = (0, _styledComponents["default"])(_switch["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n label {\n margin-bottom: 0;\n color: ", ";\n padding-left: 20px;\n line-height: 12px;\n\n &:before {\n width: 12px;\n height: 12px;\n background-color: ", ";\n }\n &:hover {\n color: #6a7485;\n }\n }\n"])), function (props) {
return props.theme.textColor;
}, function (props) {
return props.theme.dropdownListBgd;
});
var renderChildren = function renderChildren(child, index) {
return _react["default"].cloneElement(child, {
onClick: function onClick() {
if (_react["default"].isValidElement(child)) {
if (child.props.onClick) {
child.props.onClick(index);
}
}
},
className: 'action-panel-item'
});
};
var ActionPanelItem = exports.ActionPanelItem = _react["default"].memo(function (_ref) {
var children = _ref.children,
color = _ref.color,
className = _ref.className,
Icon = _ref.Icon,
label = _ref.label,
_onClick = _ref.onClick,
isSelection = _ref.isSelection,
isActive = _ref.isActive,
style = _ref.style;
return (/*#__PURE__*/_react["default"].createElement(StyledItem, {
className: className,
onClick: function onClick(event) {
event.preventDefault();
event.stopPropagation();
_onClick();
},
color: color,
style: style
}, Icon ? /*#__PURE__*/_react["default"].createElement("div", {
className: "icon"
}, /*#__PURE__*/_react["default"].createElement(Icon, {
height: "16px"
})) : null, isSelection ? /*#__PURE__*/_react["default"].createElement(StyledCheckedbox, {
type: "checkbox",
checked: Boolean(isActive),
id: "switch-".concat(label),
secondary: true,
label: label
}) : /*#__PURE__*/_react["default"].createElement("span", {
className: "label"
}, label), children && children.length ? /*#__PURE__*/_react["default"].createElement("div", {
className: "label-icon"
}, /*#__PURE__*/_react["default"].createElement(_icons.ArrowRight, {
style: {
fill: '#6a7485'
},
height: "16px"
})) : null, children && children.length ? /*#__PURE__*/_react["default"].createElement("div", {
className: "nested-group"
}, _react["default"].Children.map(children, renderChildren)) : null)
);
});
ActionPanelItem.displayName = 'ActionPanelItem';
var StyledActionPanel = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n box-shadow: ", ";\n transition: ", ";\n color: ", ";\n\n .action-panel-item {\n ", "\n }\n"])), function (props) {
return props.direction;
}, function (props) {
return props.theme.dropdownListShadow;
}, function (props) {
return props.theme.transitionSlow;
}, function (props) {
return props.theme.textColor;
}, function (props) {
return props.direction === 'column' ? "border-bottom: 1px solid ".concat(props.theme.panelHeaderIcon) : "border-right: 1px solid ".concat(props.theme.panelHeaderIcon);
}); // React compound element https://medium.com/@Dane_s/react-js-compound-components-a6e54b5c9992
var ActionPanel = function ActionPanel(_ref2) {
var children = _ref2.children,
className = _ref2.className,
_ref2$direction = _ref2.direction,
direction = _ref2$direction === void 0 ? 'column' : _ref2$direction,
onClick = _ref2.onClick;
return (/*#__PURE__*/_react["default"].createElement(StyledActionPanel, {
className: className,
direction: direction
}, _react["default"].Children.map(children, renderChildren))
);
};
ActionPanel.displayName = 'ActionPanel';
var _default = exports["default"] = ActionPanel;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9hY3Rpb24tcGFuZWwuanMiXSwibmFtZXMiOlsiU3R5bGVkSXRlbSIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJhY3Rpb25QYW5lbEhlaWdodCIsImRyb3Bkb3duTGlzdEJnZCIsImFjdGlvblBhbmVsV2lkdGgiLCJjb2xvciIsInRleHRDb2xvckhsIiwidGV4dENvbG9yIiwiU3R5bGVkQ2hlY2tlZGJveCIsIkNoZWNrYm94IiwicmVuZGVyQ2hpbGRyZW4iLCJjaGlsZCIsImluZGV4IiwiUmVhY3QiLCJjbG9uZUVsZW1lbnQiLCJvbkNsaWNrIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc05hbWUiLCJBY3Rpb25QYW5lbEl0ZW0iLCJtZW1vIiwiY2hpbGRyZW4iLCJJY29uIiwibGFiZWwiLCJpc1NlbGVjdGlvbiIsImlzQWN0aXZlIiwic3R5bGUiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiQm9vbGVhbiIsImxlbmd0aCIsImZpbGwiLCJDaGlsZHJlbiIsIm1hcCIsImRpc3BsYXlOYW1lIiwiU3R5bGVkQWN0aW9uUGFuZWwiLCJkaXJlY3Rpb24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJ0cmFuc2l0aW9uU2xvdyIsInBhbmVsSGVhZGVySWNvbiIsIkFjdGlvblBhbmVsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLElBQU1BLFVBQVUsR0FBR0MsNkJBQU9DLEdBQVYscXNCQU9BLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsaUJBQWhCO0FBQUEsQ0FQTCxFQVNNLFVBQUFGLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUUsZUFBaEI7QUFBQSxDQVRYLEVBVUwsVUFBQUgsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZRyxnQkFB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QUFFbUI7QUFBcEQsT0FDR3ZCLGtCQUFNbUIsUUFBTixDQUFlQyxHQUFmLENBQW1CYixRQUFuQixFQUE2QlYsY0FBN0IsQ0FESDtBQURrQjtBQUFBLENBQXBCOztBQU1BOEIsV0FBVyxDQUFDTixXQUFaLEdBQTBCLGFBQTFCOztvQ0FFZU0sVyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7QXJyb3dSaWdodH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuaW1wb3J0IENoZWNrYm94IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N3aXRjaCc7XG5cbmNvbnN0IFN0eWxlZEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIG1pbi1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aW9uUGFuZWxIZWlnaHR9cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGlvblBhbmVsV2lkdGh9cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJHtwcm9wcyA9PiAocHJvcHMuY29sb3IgPyBgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCByZ2IoJHtwcm9wcy5jb2xvcn0pO2AgOiAnJyl9XG5cbiAgOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIC5uZXN0ZWQtZ3JvdXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICB9XG5cbiAgLmxhYmVsLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLm5lc3RlZC1ncm91cCB7XG4gICAgd2lkdGg6IDExMHB4O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTEwcHg7XG4gICAgdG9wOiAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZENoZWNrZWRib3ggPSBzdHlsZWQoQ2hlY2tib3gpYFxuICBsYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTJweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2R9O1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNmE3NDg1O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSAoY2hpbGQsIGluZGV4KSA9PlxuICBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgIGlmIChjaGlsZC5wcm9wcy5vbkNsaWNrKSB7XG4gICAgICAgICAgY2hpbGQucHJvcHMub25DbGljayhpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGNsYXNzTmFtZTogJ2FjdGlvbi1wYW5lbC1pdGVtJ1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IEFjdGlvblBhbmVsSXRlbSA9IFJlYWN0Lm1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY29sb3IsXG4gICAgY2xhc3NOYW1lLFxuICAgIEljb24sXG4gICAgbGFiZWwsXG4gICAgb25DbGljayxcbiAgICBpc1NlbGVjdGlvbixcbiAgICBpc0FjdGl2ZSxcbiAgICBzdHlsZVxuICB9KSA9PiAoXG4gICAgPFN0eWxlZEl0ZW1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgb25DbGljaygpO1xuICAgICAgfX1cbiAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICA+XG4gICAgICB7SWNvbiA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpY29uXCI+XG4gICAgICAgICAgPEljb24gaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7aXNTZWxlY3Rpb24gPyAoXG4gICAgICAgIDxTdHlsZWRDaGVja2VkYm94XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBjaGVja2VkPXtCb29sZWFuKGlzQWN0aXZlKX1cbiAgICAgICAgICBpZD17YHN3aXRjaC0ke2xhYmVsfWB9XG4gICAgICAgICAgc2Vjb25kYXJ5XG4gICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGFiZWxcIj57bGFiZWx9PC9zcGFuPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWwtaWNvblwiPlxuICAgICAgICAgIDxBcnJvd1JpZ2h0IHN0eWxlPXt7ZmlsbDogJyM2YTc0ODUnfX0gaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5lc3RlZC1ncm91cFwiPlxuICAgICAgICAgIHtSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIHJlbmRlckNoaWxkcmVuKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1N0eWxlZEl0ZW0+XG4gIClcbik7XG5cbkFjdGlvblBhbmVsSXRlbS5kaXNwbGF5TmFtZSA9ICdBY3Rpb25QYW5lbEl0ZW0nO1xuXG5jb25zdCBTdHlsZWRBY3Rpb25QYW5lbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IHByb3BzLmRpcmVjdGlvbn07XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0U2hhZG93fTtcbiAgdHJhbnNpdGlvbjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50cmFuc2l0aW9uU2xvd307XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG5cbiAgLmFjdGlvbi1wYW5lbC1pdGVtIHtcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5kaXJlY3Rpb24gPT09ICdjb2x1bW4nXG4gICAgICAgID8gYGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzLnRoZW1lLnBhbmVsSGVhZGVySWNvbn1gXG4gICAgICAgIDogYGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cHJvcHMudGhlbWUucGFuZWxIZWFkZXJJY29ufWB9XG4gIH1cbmA7XG5cbi8vIFJlYWN0IGNvbXBvdW5kIGVsZW1lbnQgaHR0cHM6Ly9tZWRpdW0uY29tL0BEYW5lX3MvcmVhY3QtanMtY29tcG91bmQtY29tcG9uZW50cy1hNmU1NGI1Yzk5OTJcbmNvbnN0IEFjdGlvblBhbmVsID0gKHtjaGlsZHJlbiwgY2xhc3NOYW1lLCBkaXJlY3Rpb24gPSAnY29sdW1uJywgb25DbGlja30pID0+IChcbiAgPFN0eWxlZEFjdGlvblBhbmVsIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBkaXJlY3Rpb249e2RpcmVjdGlvbn0+XG4gICAge1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgcmVuZGVyQ2hpbGRyZW4pfVxuICA8L1N0eWxlZEFjdGlvblBhbmVsPlxuKTtcblxuQWN0aW9uUGFuZWwuZGlzcGxheU5hbWUgPSAnQWN0aW9uUGFuZWwnO1xuXG5leHBvcnQgZGVmYXVsdCBBY3Rpb25QYW5lbDtcbiJdfQ==