kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
200 lines (156 loc) • 18.2 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 _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
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 _document = _interopRequireDefault(require("global/document"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
function _templateObject2() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n background-color: ", ";\n height: ", ";\n border-radius: ", ";\n"]);
_templateObject2 = function _templateObject2() {
return data;
};
return data;
}
function _templateObject() {
var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n background-color: ", ";\n height: ", ";\n border-radius: ", ";\n\n :hover {\n cursor: pointer;\n }\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var StyledSlider = _styledComponents["default"].div(_templateObject(), function (props) {
return props.active ? props.theme.sliderBarHoverColor : props.theme.sliderBarColor;
}, function (props) {
return props.theme.sliderBarHeight;
}, function (props) {
return props.theme.sliderBarRadius;
});
var StyledSliderCategoryWidget = _styledComponents["default"].div(_templateObject2(), function (props) {
return props.active ? props.theme.sliderBarHoverColor : props.theme.sliderBarColor;
}, function (props) {
return props.theme.sliderBarHeight;
}, function (props) {
return props.theme.sliderBarRadius;
});
/**
*
* props:
* width : default 23
* height : default 23
* left
* onMove
* sliderBarListener
*/
var SliderHandle =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(SliderHandle, _Component);
function SliderHandle() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2["default"])(this, SliderHandle);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(SliderHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
mouseOver: false
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "prevX", 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseDown", function () {
_document["default"].addEventListener('mouseup', _this.mouseup);
_document["default"].addEventListener('mousemove', _this.mousemove);
_this.setState({
mouseOver: true
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mouseup", function () {
_document["default"].removeEventListener('mouseup', _this.mouseup);
_document["default"].removeEventListener('mousemove', _this.mousemove);
_this.setState({
mouseOver: false
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mousemove", function (e) {
e.preventDefault();
_this.props.sliderBarListener(e.movementX);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleTouchStart", function (e) {
_document["default"].addEventListener('touchend', _this.touchend);
_document["default"].addEventListener('touchmove', _this.touchmove);
_this.prevX = e.touches[0].clientX;
_this.setState({
mouseOver: true
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "touchmove", function (e) {
var deltaX = e.touches[0].clientX - _this.prevX;
_this.prevX = e.touches[0].clientX;
_this.props.sliderBarListener(deltaX);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "touchend", function () {
_document["default"].removeEventListener('touchend', _this.touchend);
_document["default"].removeEventListener('touchmove', _this.touchmove);
_this.setState({
mouseOver: false
});
});
return _this;
}
(0, _createClass2["default"])(SliderHandle, [{
key: "render",
value: function render() {
12;
return this.props.type ? _react["default"].createElement(StyledSliderCategoryWidget, {
active: this.state.mouseOver,
className: (0, _classnames["default"])('kg-range-slider__bar', {
'kg-range-slider__bar--active': this.state.mouseOver
}),
style: {
width: "".concat(this.props.width, "%"),
left: "".concat(this.props.v0Left, "%")
},
onMouseDown: this.props.enableBarDrag && this.handleMouseDown,
onTouchStart: this.props.enableBarDrag && this.handleTouchStart
}) : _react["default"].createElement(StyledSlider, {
active: this.state.mouseOver,
className: (0, _classnames["default"])('kg-range-slider__bar', {
'kg-range-slider__bar--active': this.state.mouseOver
}),
style: {
width: "".concat(this.props.width, "%"),
left: "".concat(this.props.v0Left, "%")
},
onMouseDown: this.props.enableBarDrag && this.handleMouseDown,
onTouchStart: this.props.enableBarDrag && this.handleTouchStart
});
}
}]);
return SliderHandle;
}(_react.Component);
exports["default"] = SliderHandle;
(0, _defineProperty2["default"])(SliderHandle, "propTypes", {
width: _propTypes["default"].number,
left: _propTypes["default"].string,
sliderBarListener: _propTypes["default"].func,
enableBarDrag: _propTypes["default"].bool
});
(0, _defineProperty2["default"])(SliderHandle, "defaultProps", {
sliderBarListener: function sliderBarListenerTn() {},
enableBarDrag: false
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9zbGlkZXIvc2xpZGVyLWJhci1oYW5kbGUuanMiXSwibmFtZXMiOlsiU3R5bGVkU2xpZGVyIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJhY3RpdmUiLCJ0aGVtZSIsInNsaWRlckJhckhvdmVyQ29sb3IiLCJzbGlkZXJCYXJDb2xvciIsInNsaWRlckJhckhlaWdodCIsInNsaWRlckJhclJhZGl1cyIsIlN0eWxlZFNsaWRlckNhdGVnb3J5V2lkZ2V0IiwiU2xpZGVySGFuZGxlIiwibW91c2VPdmVyIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwibW91c2V1cCIsIm1vdXNlbW92ZSIsInNldFN0YXRlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInNsaWRlckJhckxpc3RlbmVyIiwibW92ZW1lbnRYIiwidG91Y2hlbmQiLCJ0b3VjaG1vdmUiLCJwcmV2WCIsInRvdWNoZXMiLCJjbGllbnRYIiwiZGVsdGFYIiwidHlwZSIsInN0YXRlIiwid2lkdGgiLCJsZWZ0IiwidjBMZWZ0IiwiZW5hYmxlQmFyRHJhZyIsImhhbmRsZU1vdXNlRG93biIsImhhbmRsZVRvdWNoU3RhcnQiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJzdHJpbmciLCJmdW5jIiwiYm9vbCIsInNsaWRlckJhckxpc3RlbmVyVG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLFlBQVksR0FBR0MsNkJBQU9DLEdBQVYsb0JBRUksVUFBQUMsS0FBSztBQUFBLFNBQ3ZCQSxLQUFLLENBQUNDLE1BQU4sR0FDSUQsS0FBSyxDQUFDRSxLQUFOLENBQVlDLG1CQURoQixHQUVJSCxLQUFLLENBQUNFLEtBQU4sQ0FBWUUsY0FITztBQUFBLENBRlQs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QUErQixDQUFFLENBRGhDO0FBRXBCVCxFQUFBQSxhQUFhLEVBQUU7QUFGSyxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE5IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGRvY3VtZW50IGZyb20gJ2dsb2JhbC9kb2N1bWVudCc7XG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5jb25zdCBTdHlsZWRTbGlkZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5hY3RpdmVcbiAgICAgID8gcHJvcHMudGhlbWUuc2xpZGVyQmFySG92ZXJDb2xvclxuICAgICAgOiBwcm9wcy50aGVtZS5zbGlkZXJCYXJDb2xvcn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zbGlkZXJCYXJIZWlnaHR9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNsaWRlckJhclJhZGl1c307XG5cbiAgOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5jb25zdCBTdHlsZWRTbGlkZXJDYXRlZ29yeVdpZGdldCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmFjdGl2ZVxuICAgICAgPyBwcm9wcy50aGVtZS5zbGlkZXJCYXJIb3ZlckNvbG9yXG4gICAgICA6IHByb3BzLnRoZW1lLnNsaWRlckJhckNvbG9yfTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNsaWRlckJhckhlaWdodH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2xpZGVyQmFyUmFkaXVzfTtcbmA7XG4vKipcbiAqXG4gKiBwcm9wczpcbiAqICB3aWR0aCA6IGRlZmF1bHQgMjNcbiAqICBoZWlnaHQgOiBkZWZhdWx0IDIzXG4gKiAgbGVmdFxuICogIG9uTW92ZVxuICogIHNsaWRlckJhckxpc3RlbmVyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNsaWRlckhhbmRsZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgbGVmdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzbGlkZXJCYXJMaXN0ZW5lcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZW5hYmxlQmFyRHJhZzogUHJvcFR5cGVzLmJvb2xcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHNsaWRlckJhckxpc3RlbmVyOiBmdW5jdGlvbiBzbGlkZXJCYXJMaXN0ZW5lclRuKCkge30sXG4gICAgZW5hYmxlQmFyRHJhZzogZmFsc2VcbiAgfTtcblxuICBzdGF0ZSA9IHttb3VzZU92ZXI6IGZhbHNlfTtcbiAgcHJldlggPSAwO1xuXG4gIGhhbmRsZU1vdXNlRG93biA9ICgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZXVwKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlbW92ZSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7bW91c2VPdmVyOiB0cnVlfSk7XG4gIH07XG5cbiAgbW91c2V1cCA9ICgpID0+IHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZXVwKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlbW92ZSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7bW91c2VPdmVyOiBmYWxzZX0pO1xuICB9O1xuXG4gIG1vdXNlbW92ZSA9IGUgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnByb3BzLnNsaWRlckJhckxpc3RlbmVyKGUubW92ZW1lbnRYKTtcbiAgfTtcblxuICBoYW5kbGVUb3VjaFN0YXJ0ID0gZSA9PiB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLnRvdWNoZW5kKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLnRvdWNobW92ZSk7XG4gICAgdGhpcy5wcmV2WCA9IGUudG91Y2hlc1swXS5jbGllbnRYO1xuICAgIHRoaXMuc2V0U3RhdGUoe21vdXNlT3ZlcjogdHJ1ZX0pO1xuICB9O1xuXG4gIHRvdWNobW92ZSA9IGUgPT4ge1xuICAgIGNvbnN0IGRlbHRhWCA9IGUudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5wcmV2WDtcbiAgICB0aGlzLnByZXZYID0gZS50b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgdGhpcy5wcm9wcy5zbGlkZXJCYXJMaXN0ZW5lcihkZWx0YVgpO1xuICB9O1xuXG4gIHRvdWNoZW5kID0gKCkgPT4ge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy50b3VjaGVuZCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy50b3VjaG1vdmUpO1xuICAgIHRoaXMuc2V0U3RhdGUoe21vdXNlT3ZlcjogZmFsc2V9KTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgMTI7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudHlwZSA/IChcbiAgICAgIDxTdHlsZWRTbGlkZXJDYXRlZ29yeVdpZGdldFxuICAgICAgICBhY3RpdmU9e3RoaXMuc3RhdGUubW91c2VPdmVyfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2tnLXJhbmdlLXNsaWRlcl9fYmFyJywge1xuICAgICAgICAgICdrZy1yYW5nZS1zbGlkZXJfX2Jhci0tYWN0aXZlJzogdGhpcy5zdGF0ZS5tb3VzZU92ZXJcbiAgICAgICAgfSl9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgd2lkdGg6IGAke3RoaXMucHJvcHMud2lkdGh9JWAsXG4gICAgICAgICAgbGVmdDogYCR7dGhpcy5wcm9wcy52MExlZnR9JWBcbiAgICAgICAgfX1cbiAgICAgICAgb25Nb3VzZURvd249e3RoaXMucHJvcHMuZW5hYmxlQmFyRHJhZyAmJiB0aGlzLmhhbmRsZU1vdXNlRG93bn1cbiAgICAgICAgb25Ub3VjaFN0YXJ0PXt0aGlzLnByb3BzLmVuYWJsZUJhckRyYWcgJiYgdGhpcy5oYW5kbGVUb3VjaFN0YXJ0fVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgPFN0eWxlZFNsaWRlclxuICAgICAgICBhY3RpdmU9e3RoaXMuc3RhdGUubW91c2VPdmVyfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2tnLXJhbmdlLXNsaWRlcl9fYmFyJywge1xuICAgICAgICAgICdrZy1yYW5nZS1zbGlkZXJfX2Jhci0tYWN0aXZlJzogdGhpcy5zdGF0ZS5tb3VzZU92ZXJcbiAgICAgICAgfSl9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgd2lkdGg6IGAke3RoaXMucHJvcHMud2lkdGh9JWAsXG4gICAgICAgICAgbGVmdDogYCR7dGhpcy5wcm9wcy52MExlZnR9JWBcbiAgICAgICAgfX1cbiAgICAgICAgb25Nb3VzZURvd249e3RoaXMucHJvcHMuZW5hYmxlQmFyRHJhZyAmJiB0aGlzLmhhbmRsZU1vdXNlRG93bn1cbiAgICAgICAgb25Ub3VjaFN0YXJ0PXt0aGlzLnByb3BzLmVuYWJsZUJhckRyYWcgJiYgdGhpcy5oYW5kbGVUb3VjaFN0YXJ0fVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXX0=