UNPKG

kepler.gl.geoiq

Version:

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

129 lines (102 loc) 13.1 kB
"use strict"; 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _document = _interopRequireDefault(require("global/document")); // Copyright (c) 2023 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. function nope() {} var MouseEventHandler = exports["default"] = /*#__PURE__*/function () { function MouseEventHandler(_ref) { var _this = this; var _ref$vertical = _ref.vertical, vertical = _ref$vertical === void 0 ? false : _ref$vertical, _ref$valueListener = _ref.valueListener, valueListener = _ref$valueListener === void 0 ? nope : _ref$valueListener, _ref$toggleMouseOver = _ref.toggleMouseOver, toggleMouseOver = _ref$toggleMouseOver === void 0 ? nope : _ref$toggleMouseOver; (0, _classCallCheck2["default"])(this, MouseEventHandler); (0, _defineProperty2["default"])(this, "handleMouseDown", function (e) { _document["default"].addEventListener('mouseup', _this._mouseup); _document["default"].addEventListener('mousemove', _this._mousemove); _this._prev = _this._getMousePos(e); _this._toggleMouseOver(); }); (0, _defineProperty2["default"])(this, "_mouseup", function () { _document["default"].removeEventListener('mouseup', _this._mouseup); _document["default"].removeEventListener('mousemove', _this._mousemove); _this._toggleMouseOver(); }); (0, _defineProperty2["default"])(this, "_mousemove", function (e) { e.preventDefault(); var delta = _this._getMouseDelta(e); _this._prev = _this._getMousePos(e); _this._valueListener(delta); }); (0, _defineProperty2["default"])(this, "handleTouchStart", function (e) { _document["default"].addEventListener('touchend', _this._touchend); _document["default"].addEventListener('touchmove', _this._touchmove); _this._prev = _this._getTouchPosition(e); _this._toggleMouseOver(); }); (0, _defineProperty2["default"])(this, "_touchmove", function (e) { var delta = _this._getTouchPosition(e) - _this._prev; _this._prev = _this._getTouchPosition(e); _this.props._valueListener(delta); }); (0, _defineProperty2["default"])(this, "_touchend", function () { _document["default"].removeEventListener('touchend', _this._touchend); _document["default"].removeEventListener('touchmove', _this._touchmove); _this._toggleMouseOver(); }); this._vertical = vertical; this._valueListener = valueListener; this._toggleMouseOver = toggleMouseOver; this._prev = 0; } (0, _createClass2["default"])(MouseEventHandler, [{ key: "_getMousePos", value: function _getMousePos(e) { return this._vertical ? e.clientY : e.pageX; } }, { key: "_getTouchPosition", value: function _getTouchPosition(e) { return this._vertical ? e.touches[0].clientY : e.touches[0].pageX; } }, { key: "_getMouseDelta", value: function _getMouseDelta(e) { // movementX might not be supported in some browser // https://stackoverflow.com/questions/41774726/mouseevent-movementx-property-apparently-not-supported-in-internet-explorer var mouseCoord = this._vertical ? e.movementY : e.movementX; var clientCoord = this._getMousePos(e); var delta = mouseCoord === 0 ? clientCoord - this._prev : mouseCoord; return delta; } }]); return MouseEventHandler; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9zbGlkZXIvbW91c2UtZXZlbnQuanMiXSwibmFtZXMiOlsibm9wZSIsIk1vdXNlRXZlbnRIYW5kbGVyIiwidmVydGljYWwiLCJ2YWx1ZUxpc3RlbmVyIiwidG9nZ2xlTW91c2VPdmVyIiwiZSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9tb3VzZXVwIiwiX21vdXNlbW92ZSIsIl9wcmV2IiwiX2dldE1vdXNlUG9zIiwiX3RvZ2dsZU1vdXNlT3ZlciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJwcmV2ZW50RGVmYXVsdCIsImRlbHRhIiwiX2dldE1vdXNlRGVsdGEiLCJfdmFsdWVMaXN0ZW5lciIsIl90b3VjaGVuZCIsIl90b3VjaG1vdmUiLCJfZ2V0VG91Y2hQb3NpdGlvbiIsInByb3BzIiwiX3ZlcnRpY2FsIiwiY2xpZW50WSIsInBhZ2VYIiwidG91Y2hlcyIsIm1vdXNlQ29vcmQiLCJtb3ZlbWVudFkiLCJtb3ZlbWVudFgiLCJjbGllbnRDb29yZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBLFNBQVNBLElBQVQsR0FBZ0IsQ0FBRTs7SUFFR0MsaUI7QUFDbkIsbUNBSUc7QUFBQTs7QUFBQSw2QkFIREMsUUFHQztBQUFBLFFBSERBLFFBR0MsOEJBSFUsS0FHVjtBQUFBLGtDQUZEQyxhQUVDO0FBQUEsUUFGREEsYUFFQyxtQ0FGZUgsSUFFZjtBQUFBLG9DQURESSxlQUNDO0FBQUEsUUFEREEsZUFDQyxxQ0FEaUJKLElBQ2pCO0FBQUE7QUFBQSw4REFRZSxVQUFDSyxDQUFELEVBQU87QUFDdkJDLDJCQUFTQyxnQkFBVCxDQUEwQixTQUExQixFQUFxQyxLQUFJLENBQUNDLFFBQTFDOztB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LEtBQUtuQixLQUF0QyxHQUE4Q2dCLFVBQTVEO0FBRUEsYUFBT1gsS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGRvY3VtZW50IGZyb20gJ2dsb2JhbC9kb2N1bWVudCc7XG5cbmZ1bmN0aW9uIG5vcGUoKSB7fVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb3VzZUV2ZW50SGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHtcbiAgICB2ZXJ0aWNhbCA9IGZhbHNlLFxuICAgIHZhbHVlTGlzdGVuZXIgPSBub3BlLFxuICAgIHRvZ2dsZU1vdXNlT3ZlciA9IG5vcGVcbiAgfSkge1xuICAgIHRoaXMuX3ZlcnRpY2FsID0gdmVydGljYWw7XG4gICAgdGhpcy5fdmFsdWVMaXN0ZW5lciA9IHZhbHVlTGlzdGVuZXI7XG4gICAgdGhpcy5fdG9nZ2xlTW91c2VPdmVyID0gdG9nZ2xlTW91c2VPdmVyO1xuXG4gICAgdGhpcy5fcHJldiA9IDA7XG4gIH1cblxuICBoYW5kbGVNb3VzZURvd24gPSAoZSkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLl9tb3VzZXVwKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLl9tb3VzZW1vdmUpO1xuICAgIHRoaXMuX3ByZXYgPSB0aGlzLl9nZXRNb3VzZVBvcyhlKTtcbiAgICB0aGlzLl90b2dnbGVNb3VzZU92ZXIoKTtcbiAgfTtcblxuICBfZ2V0TW91c2VQb3MoZSkge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbCA/IGUuY2xpZW50WSA6IGUucGFnZVg7XG4gIH1cbiAgX2dldFRvdWNoUG9zaXRpb24oZSkge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbCA/IGUudG91Y2hlc1swXS5jbGllbnRZIDogZS50b3VjaGVzWzBdLnBhZ2VYO1xuICB9XG5cbiAgX2dldE1vdXNlRGVsdGEoZSkge1xuXG4gICAgLy8gbW92ZW1lbnRYIG1pZ2h0IG5vdCBiZSBzdXBwb3J0ZWQgaW4gc29tZSBicm93c2VyXG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDE3NzQ3MjYvbW91c2VldmVudC1tb3ZlbWVudHgtcHJvcGVydHktYXBwYXJlbnRseS1ub3Qtc3VwcG9ydGVkLWluLWludGVybmV0LWV4cGxvcmVyXG4gICAgY29uc3QgbW91c2VDb29yZCA9IHRoaXMuX3ZlcnRpY2FsID8gZS5tb3ZlbWVudFkgOiBlLm1vdmVtZW50WDtcbiAgICBjb25zdCBjbGllbnRDb29yZCA9IHRoaXMuX2dldE1vdXNlUG9zKGUpXG5cbiAgICBjb25zdCBkZWx0YSA9IG1vdXNlQ29vcmQgPT09IDAgPyBjbGllbnRDb29yZCAtIHRoaXMuX3ByZXYgOiBtb3VzZUNvb3JkO1xuXG4gICAgcmV0dXJuIGRlbHRhO1xuICB9O1xuXG4gIF9tb3VzZXVwID0gKCkgPT4ge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLl9tb3VzZXVwKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLl9tb3VzZW1vdmUpO1xuICAgIHRoaXMuX3RvZ2dsZU1vdXNlT3ZlcigpO1xuICB9O1xuXG4gIF9tb3VzZW1vdmUgPSBlID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBkZWx0YSA9IHRoaXMuX2dldE1vdXNlRGVsdGEoZSk7XG4gICAgdGhpcy5fcHJldiA9IHRoaXMuX2dldE1vdXNlUG9zKGUpO1xuXG4gICAgdGhpcy5fdmFsdWVMaXN0ZW5lcihkZWx0YSk7XG4gIH07XG5cbiAgaGFuZGxlVG91Y2hTdGFydCA9IGUgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5fdG91Y2hlbmQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuX3RvdWNobW92ZSk7XG4gICAgdGhpcy5fcHJldiA9IHRoaXMuX2dldFRvdWNoUG9zaXRpb24oZSk7XG4gICAgdGhpcy5fdG9nZ2xlTW91c2VPdmVyKCk7XG4gIH07XG5cbiAgX3RvdWNobW92ZSA9IGUgPT4ge1xuICAgIGNvbnN0IGRlbHRhID0gdGhpcy5fZ2V0VG91Y2hQb3NpdGlvbihlKSAtIHRoaXMuX3ByZXY7XG4gICAgdGhpcy5fcHJldiA9IHRoaXMuX2dldFRvdWNoUG9zaXRpb24oZSk7XG4gICAgdGhpcy5wcm9wcy5fdmFsdWVMaXN0ZW5lcihkZWx0YSk7XG4gIH07XG5cbiAgX3RvdWNoZW5kID0gKCkgPT4ge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5fdG91Y2hlbmQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuX3RvdWNobW92ZSk7XG4gICAgdGhpcy5fdG9nZ2xlTW91c2VPdmVyKCk7XG4gIH07XG59XG4iXX0=