UNPKG

kepler.gl

Version:

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

111 lines (110 loc) 19.7 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"] = exports.StyledPanelDropdown = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react")); var _styledComponents = _interopRequireDefault(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/styled-components")); var _src = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/utils/src"); var _styledComponents2 = require("../common/styled-components"); var _portaled = _interopRequireDefault(require("../common/portaled")); var _singleColorPalette = _interopRequireDefault(require("../side-panel/layer-panel/single-color-palette")); var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project 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; } var StyledPanelDropdown = exports.StyledPanelDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n background-color: ", ";\n box-shadow: ", ";\n border-radius: ", ";\n overflow-y: auto;\n max-height: 500px;\n position: relative;\n z-index: 999;\n width: 220px;\n"])), function (props) { return props.theme.panelDropdownScrollBar; }, function (props) { return props.theme.panelBackground; }, function (props) { return props.theme.panelBoxShadow; }, function (props) { return props.theme.panelBorderRadius; }); var StyledConfigSection = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n"]))); var SectionTitle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n color: ", ";\n margin-bottom: 8px;\n"])), function (props) { return props.theme.inputFontSize; }, function (props) { return props.theme.effectPanelTextSecondary2; }); var StyledDropdownButtonWrapper = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n align-self: flex-start;\n .button {\n color: ", ";\n display: flex;\n gap: 5px;\n border: none;\n transition: background 0.2s;\n background-color: ", ";\n padding: 8px 5px 8px 10px;\n &:active {\n color: ", ";\n background-color: ", ";\n }\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n & > svg {\n margin-right: 0;\n }\n }\n"])), function (props) { return props.theme.effectPanelTextSecondary2; }, function (props) { return props.theme.inputBgd; }, function (props) { return props.theme.effectPanelTextMain; }, function (props) { return props.theme.inputBgdHover; }, function (props) { return props.theme.effectPanelTextMain; }, function (props) { return props.theme.inputBgdHover; }); var DEFAULT_OFFSET = { top: 0, left: 0 }; var SingleColorPickerDropdown = function SingleColorPickerDropdown(_ref) { var isOpened = _ref.isOpened, onClose = _ref.onClose, selectedColor = _ref.selectedColor, onSelectColor = _ref.onSelectColor, _ref$offset = _ref.offset, offset = _ref$offset === void 0 ? DEFAULT_OFFSET : _ref$offset; var onSelectColorCb = (0, _react.useCallback)(function (v) { onSelectColor(v); }, [onSelectColor]); return /*#__PURE__*/_react["default"].createElement(_portaled["default"], { top: offset.top, left: offset.left, isOpened: isOpened, onClose: onClose }, /*#__PURE__*/_react["default"].createElement(StyledPanelDropdown, null, /*#__PURE__*/_react["default"].createElement(_singleColorPalette["default"], { selectedColor: selectedColor, onSelectColor: onSelectColorCb }))); }; var CompactColorPicker = function CompactColorPicker(_ref2) { var color = _ref2.color, onSetColor = _ref2.onSetColor, Icon = _ref2.Icon, label = _ref2.label; var _React$useState = _react["default"].useState(false), _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2), isColorPickerOpened = _React$useState2[0], setIsColorPickerOpened = _React$useState2[1]; var hexColor = (0, _react.useMemo)(function () { return (0, _src.rgbToHex)(color); }, [color]); var colorBlockStyle = (0, _react.useMemo)(function () { return { width: 16, height: 16, backgroundColor: hexColor, borderRadius: 2 }; }, [hexColor]); var toggleDropdown = (0, _react.useCallback)(function () { setIsColorPickerOpened(!isColorPickerOpened); }, [isColorPickerOpened, setIsColorPickerOpened]); var closeDropdown = (0, _react.useCallback)(function () { setIsColorPickerOpened(false); }, [setIsColorPickerOpened]); return /*#__PURE__*/_react["default"].createElement(StyledConfigSection, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, label), /*#__PURE__*/_react["default"].createElement(StyledDropdownButtonWrapper, null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.Button, { onClick: toggleDropdown }, /*#__PURE__*/_react["default"].createElement("div", { style: colorBlockStyle }), /*#__PURE__*/_react["default"].createElement(Icon, null))), /*#__PURE__*/_react["default"].createElement(SingleColorPickerDropdown, { isOpened: isColorPickerOpened, onClose: closeDropdown, selectedColor: hexColor, onSelectColor: onSetColor })); }; var _default = exports["default"] = CompactColorPicker; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3JjIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3BvcnRhbGVkIiwiX3NpbmdsZUNvbG9yUGFsZXR0ZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN0eWxlZFBhbmVsRHJvcGRvd24iLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwicGFuZWxEcm9wZG93blNjcm9sbEJhciIsInBhbmVsQmFja2dyb3VuZCIsInBhbmVsQm94U2hhZG93IiwicGFuZWxCb3JkZXJSYWRpdXMiLCJTdHlsZWRDb25maWdTZWN0aW9uIiwiU2VjdGlvblRpdGxlIiwiaW5wdXRGb250U2l6ZSIsImVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTIiLCJTdHlsZWREcm9wZG93bkJ1dHRvbldyYXBwZXIiLCJpbnB1dEJnZCIsImVmZmVjdFBhbmVsVGV4dE1haW4iLCJpbnB1dEJnZEhvdmVyIiwiREVGQVVMVF9PRkZTRVQiLCJ0b3AiLCJsZWZ0IiwiU2luZ2xlQ29sb3JQaWNrZXJEcm9wZG93biIsIl9yZWYiLCJpc09wZW5lZCIsIm9uQ2xvc2UiLCJzZWxlY3RlZENvbG9yIiwib25TZWxlY3RDb2xvciIsIl9yZWYkb2Zmc2V0Iiwib2Zmc2V0Iiwib25TZWxlY3RDb2xvckNiIiwidXNlQ2FsbGJhY2siLCJ2IiwiY3JlYXRlRWxlbWVudCIsIkNvbXBhY3RDb2xvclBpY2tlciIsIl9yZWYyIiwiY29sb3IiLCJvblNldENvbG9yIiwiSWNvbiIsImxhYmVsIiwiX1JlYWN0JHVzZVN0YXRlIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpc0NvbG9yUGlja2VyT3BlbmVkIiwic2V0SXNDb2xvclBpY2tlck9wZW5lZCIsImhleENvbG9yIiwidXNlTWVtbyIsInJnYlRvSGV4IiwiY29sb3JCbG9ja1N0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJ0b2dnbGVEcm9wZG93biIsImNsb3NlRHJvcGRvd24iLCJCdXR0b24iLCJvbkNsaWNrIiwic3R5bGUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NyYy9lZmZlY3RzL2NvbXBhY3QtY29sb3ItcGlja2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7cmdiVG9IZXh9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBQb3J0YWxlZCBmcm9tICcuLi9jb21tb24vcG9ydGFsZWQnO1xuaW1wb3J0IFNpbmdsZUNvbG9yUGFsZXR0ZSBmcm9tICcuLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL3NpbmdsZS1jb2xvci1wYWxldHRlJztcblxuZXhwb3J0IHR5cGUgU2luZ2xlQ29sb3JQaWNrZXJQcm9wcyA9IHtcbiAgY29sb3I6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgb25TZXRDb2xvcjogKHZhbHVlOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pID0+IHZvaWQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIEljb246IFJlYWN0LkVsZW1lbnRUeXBlO1xufTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBhbmVsRHJvcGRvd24gPSBzdHlsZWQuZGl2YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsRHJvcGRvd25TY3JvbGxCYXJ9XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJveFNoYWRvd307XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCb3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk7XG4gIHdpZHRoOiAyMjBweDtcbmA7XG5cbmNvbnN0IFN0eWxlZENvbmZpZ1NlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYDtcblxuY29uc3QgU2VjdGlvblRpdGxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkyfTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuYDtcblxuY29uc3QgU3R5bGVkRHJvcGRvd25CdXR0b25XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgLmJ1dHRvbiB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5Mn07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDVweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRCZ2R9O1xuICAgIHBhZGRpbmc6IDhweCA1cHggOHB4IDEwcHg7XG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0TWFpbn07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0QmdkSG92ZXJ9O1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dE1haW59O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEJnZEhvdmVyfTtcbiAgICB9XG4gICAgJiA+IHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBERUZBVUxUX09GRlNFVCA9IHtcbiAgdG9wOiAwLFxuICBsZWZ0OiAwXG59O1xuXG5jb25zdCBTaW5nbGVDb2xvclBpY2tlckRyb3Bkb3duID0gKHtcbiAgaXNPcGVuZWQsXG4gIG9uQ2xvc2UsXG4gIHNlbGVjdGVkQ29sb3IsXG4gIG9uU2VsZWN0Q29sb3IsXG4gIG9mZnNldCA9IERFRkFVTFRfT0ZGU0VUXG59KSA9PiB7XG4gIGNvbnN0IG9uU2VsZWN0Q29sb3JDYiA9IHVzZUNhbGxiYWNrKFxuICAgIHYgPT4ge1xuICAgICAgb25TZWxlY3RDb2xvcih2KTtcbiAgICB9LFxuICAgIFtvblNlbGVjdENvbG9yXVxuICApO1xuICByZXR1cm4gKFxuICAgIDxQb3J0YWxlZCB0b3A9e29mZnNldC50b3B9IGxlZnQ9e29mZnNldC5sZWZ0fSBpc09wZW5lZD17aXNPcGVuZWR9IG9uQ2xvc2U9e29uQ2xvc2V9PlxuICAgICAgPFN0eWxlZFBhbmVsRHJvcGRvd24+XG4gICAgICAgIDxTaW5nbGVDb2xvclBhbGV0dGUgc2VsZWN0ZWRDb2xvcj17c2VsZWN0ZWRDb2xvcn0gb25TZWxlY3RDb2xvcj17b25TZWxlY3RDb2xvckNifSAvPlxuICAgICAgPC9TdHlsZWRQYW5lbERyb3Bkb3duPlxuICAgIDwvUG9ydGFsZWQ+XG4gICk7XG59O1xuXG5jb25zdCBDb21wYWN0Q29sb3JQaWNrZXI6IFJlYWN0LkZDPFNpbmdsZUNvbG9yUGlja2VyUHJvcHM+ID0gKHtcbiAgY29sb3IsXG4gIG9uU2V0Q29sb3IsXG4gIEljb24sXG4gIGxhYmVsXG59OiBTaW5nbGVDb2xvclBpY2tlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0NvbG9yUGlja2VyT3BlbmVkLCBzZXRJc0NvbG9yUGlja2VyT3BlbmVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBoZXhDb2xvciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiByZ2JUb0hleChjb2xvcik7XG4gIH0sIFtjb2xvcl0pO1xuXG4gIGNvbnN0IGNvbG9yQmxvY2tTdHlsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIHdpZHRoOiAxNixcbiAgICAgIGhlaWdodDogMTYsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhleENvbG9yLFxuICAgICAgYm9yZGVyUmFkaXVzOiAyXG4gICAgfSksXG4gICAgW2hleENvbG9yXVxuICApO1xuXG4gIGNvbnN0IHRvZ2dsZURyb3Bkb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzQ29sb3JQaWNrZXJPcGVuZWQoIWlzQ29sb3JQaWNrZXJPcGVuZWQpO1xuICB9LCBbaXNDb2xvclBpY2tlck9wZW5lZCwgc2V0SXNDb2xvclBpY2tlck9wZW5lZF0pO1xuXG4gIGNvbnN0IGNsb3NlRHJvcGRvd24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNDb2xvclBpY2tlck9wZW5lZChmYWxzZSk7XG4gIH0sIFtzZXRJc0NvbG9yUGlja2VyT3BlbmVkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgICAgIDxTZWN0aW9uVGl0bGU+e2xhYmVsfTwvU2VjdGlvblRpdGxlPlxuICAgICAgPFN0eWxlZERyb3Bkb3duQnV0dG9uV3JhcHBlcj5cbiAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXt0b2dnbGVEcm9wZG93bn0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17Y29sb3JCbG9ja1N0eWxlfSAvPlxuICAgICAgICAgIDxJY29uIC8+XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgPC9TdHlsZWREcm9wZG93bkJ1dHRvbldyYXBwZXI+XG4gICAgICA8U2luZ2xlQ29sb3JQaWNrZXJEcm9wZG93blxuICAgICAgICBpc09wZW5lZD17aXNDb2xvclBpY2tlck9wZW5lZH1cbiAgICAgICAgb25DbG9zZT17Y2xvc2VEcm9wZG93bn1cbiAgICAgICAgc2VsZWN0ZWRDb2xvcj17aGV4Q29sb3J9XG4gICAgICAgIG9uU2VsZWN0Q29sb3I9e29uU2V0Q29sb3J9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBhY3RDb2xvclBpY2tlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxrQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxH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