UNPKG

kepler.gl

Version:

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

101 lines (100 loc) 18.5 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"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _constants = require("@kepler.gl/constants"); var _styledComponents2 = require("../common/styled-components"); var _timeRangeSlider = _interopRequireDefault(require("../common/time-range-slider")); var _floatingTimeDisplay = _interopRequireDefault(require("../common/animation-control/floating-time-display")); var _timeRangeFilter = require("./time-range-filter"); var _timeWidgetTop = _interopRequireDefault(require("./time-widget-top")); var _templateObject; // 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 TimeBottomWidgetInner = (0, _styledComponents["default"])(_styledComponents2.BottomWidgetInner)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 6px 32px 24px 32px;\n"]))); TimeWidgetFactory.deps = [_timeRangeSlider["default"], _floatingTimeDisplay["default"], _timeWidgetTop["default"]]; function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop) { var TimeWidget = function TimeWidget(_ref) { var datasets = _ref.datasets, filter = _ref.filter, layers = _ref.layers, index = _ref.index, readOnly = _ref.readOnly, showTimeDisplay = _ref.showTimeDisplay, setFilterAnimationTime = _ref.setFilterAnimationTime, onClose = _ref.onClose, onToggleMinify = _ref.onToggleMinify, resetAnimation = _ref.resetAnimation, isAnimatable = _ref.isAnimatable, updateAnimationSpeed = _ref.updateAnimationSpeed, toggleAnimation = _ref.toggleAnimation, setFilterPlot = _ref.setFilterPlot, setFilterAnimationWindow = _ref.setFilterAnimationWindow, animationConfig = _ref.animationConfig, timeline = _ref.timeline; var _updateAnimationSpeed = (0, _react.useCallback)(function (speed) { return updateAnimationSpeed(index, speed); }, [updateAnimationSpeed, index]); var _toggleAnimation = (0, _react.useCallback)(function () { return toggleAnimation(index); }, [toggleAnimation, index]); var isMinified = (0, _react.useMemo)(function () { return filter.view === _constants.FILTER_VIEW_TYPES.minified; }, [filter]); var _setFilterAnimationWindow = (0, _react.useCallback)(function (animationWindow) { return setFilterAnimationWindow({ id: filter.id, animationWindow: animationWindow }); }, [setFilterAnimationWindow, filter.id]); var timeSliderOnChange = (0, _react.useCallback)(function (value) { return setFilterAnimationTime(index, 'value', value); }, [setFilterAnimationTime, index]); var _setFilterPlot = (0, _react.useCallback)(function (newProp, valueIndex) { return setFilterPlot(index, newProp, valueIndex); }, [index, setFilterPlot]); var timeRangeSlideProps = (0, _react.useMemo)(function () { return (0, _timeRangeFilter.timeRangeSliderFieldsSelector)(filter, datasets, layers); }, [filter, datasets, layers]); return /*#__PURE__*/_react["default"].createElement(TimeBottomWidgetInner, { className: "bottom-widget--inner" }, /*#__PURE__*/_react["default"].createElement(TimeWidgetTop, { filter: filter, readOnly: readOnly, datasets: datasets, setFilterPlot: _setFilterPlot, index: index, onClose: onClose, onToggleMinify: onToggleMinify, isMinified: isMinified }), /*#__PURE__*/_react["default"].createElement(TimeRangeSlider, (0, _extends2["default"])({}, timeRangeSlideProps, { onChange: timeSliderOnChange, toggleAnimation: _toggleAnimation, updateAnimationSpeed: _updateAnimationSpeed, setFilterAnimationWindow: _setFilterAnimationWindow, hideTimeTitle: showTimeDisplay, resetAnimation: resetAnimation, isAnimatable: isAnimatable, setFilterPlot: _setFilterPlot, animationConfig: animationConfig, isMinified: isMinified, timeline: timeline })), showTimeDisplay ? /*#__PURE__*/_react["default"].createElement(FloatingTimeDisplay, { currentTime: filter.value, defaultTimeFormat: filter.defaultTimeFormat, timeFormat: filter.timeFormat, timezone: filter.timezone }) : null); }; return /*#__PURE__*/_react["default"].memo(TimeWidget); } var _default = exports["default"] = TimeWidgetFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3RpbWVSYW5nZVNsaWRlciIsIl9mbG9hdGluZ1RpbWVEaXNwbGF5IiwiX3RpbWVSYW5nZUZpbHRlciIsIl90aW1lV2lkZ2V0VG9wIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVGltZUJvdHRvbVdpZGdldElubmVyIiwic3R5bGVkIiwiQm90dG9tV2lkZ2V0SW5uZXIiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlRpbWVXaWRnZXRGYWN0b3J5IiwiZGVwcyIsIlRpbWVSYW5nZVNsaWRlckZhY3RvcnkiLCJGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeSIsIlRpbWVXaWRnZXRUb3BGYWN0b3J5IiwiVGltZVJhbmdlU2xpZGVyIiwiRmxvYXRpbmdUaW1lRGlzcGxheSIsIlRpbWVXaWRnZXRUb3AiLCJUaW1lV2lkZ2V0IiwiX3JlZiIsImRhdGFzZXRzIiwiZmlsdGVyIiwibGF5ZXJzIiwiaW5kZXgiLCJyZWFkT25seSIsInNob3dUaW1lRGlzcGxheSIsInNldEZpbHRlckFuaW1hdGlvblRpbWUiLCJvbkNsb3NlIiwib25Ub2dnbGVNaW5pZnkiLCJyZXNldEFuaW1hdGlvbiIsImlzQW5pbWF0YWJsZSIsInVwZGF0ZUFuaW1hdGlvblNwZWVkIiwidG9nZ2xlQW5pbWF0aW9uIiwic2V0RmlsdGVyUGxvdCIsInNldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsImFuaW1hdGlvbkNvbmZpZyIsInRpbWVsaW5lIiwiX3VwZGF0ZUFuaW1hdGlvblNwZWVkIiwidXNlQ2FsbGJhY2siLCJzcGVlZCIsIl90b2dnbGVBbmltYXRpb24iLCJpc01pbmlmaWVkIiwidXNlTWVtbyIsInZpZXciLCJGSUxURVJfVklFV19UWVBFUyIsIm1pbmlmaWVkIiwiX3NldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsImFuaW1hdGlvbldpbmRvdyIsImlkIiwidGltZVNsaWRlck9uQ2hhbmdlIiwidmFsdWUiLCJfc2V0RmlsdGVyUGxvdCIsIm5ld1Byb3AiLCJ2YWx1ZUluZGV4IiwidGltZVJhbmdlU2xpZGVQcm9wcyIsInRpbWVSYW5nZVNsaWRlckZpZWxkc1NlbGVjdG9yIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl9leHRlbmRzMiIsIm9uQ2hhbmdlIiwiaGlkZVRpbWVUaXRsZSIsImN1cnJlbnRUaW1lIiwiZGVmYXVsdFRpbWVGb3JtYXQiLCJ0aW1lRm9ybWF0IiwidGltZXpvbmUiLCJSZWFjdCIsIm1lbW8iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVycy90aW1lLXdpZGdldC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtGSUxURVJfVklFV19UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtCb3R0b21XaWRnZXRJbm5lcn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBUaW1lUmFuZ2VTbGlkZXJGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi90aW1lLXJhbmdlLXNsaWRlcic7XG5pbXBvcnQgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2Zsb2F0aW5nLXRpbWUtZGlzcGxheSc7XG5pbXBvcnQge3RpbWVSYW5nZVNsaWRlckZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL3RpbWUtcmFuZ2UtZmlsdGVyJztcbmltcG9ydCB7VGltZVdpZGdldFByb3BzfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBUaW1lV2lkZ2V0VG9wRmFjdG9yeSBmcm9tICcuL3RpbWUtd2lkZ2V0LXRvcCc7XG5cbmNvbnN0IFRpbWVCb3R0b21XaWRnZXRJbm5lciA9IHN0eWxlZChCb3R0b21XaWRnZXRJbm5lcilgXG4gIHBhZGRpbmc6IDZweCAzMnB4IDI0cHggMzJweDtcbmA7XG5cblRpbWVXaWRnZXRGYWN0b3J5LmRlcHMgPSBbVGltZVJhbmdlU2xpZGVyRmFjdG9yeSwgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3RvcnksIFRpbWVXaWRnZXRUb3BGYWN0b3J5XTtcblxuZnVuY3Rpb24gVGltZVdpZGdldEZhY3RvcnkoXG4gIFRpbWVSYW5nZVNsaWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVGltZVJhbmdlU2xpZGVyRmFjdG9yeT4sXG4gIEZsb2F0aW5nVGltZURpc3BsYXk6IFJldHVyblR5cGU8dHlwZW9mIEZsb2F0aW5nVGltZURpc3BsYXlGYWN0b3J5PixcbiAgVGltZVdpZGdldFRvcDogUmV0dXJuVHlwZTx0eXBlb2YgVGltZVdpZGdldFRvcEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgVGltZVdpZGdldDogUmVhY3QuRkM8VGltZVdpZGdldFByb3BzPiA9ICh7XG4gICAgZGF0YXNldHMsXG4gICAgZmlsdGVyLFxuICAgIGxheWVycyxcbiAgICBpbmRleCxcbiAgICByZWFkT25seSxcbiAgICBzaG93VGltZURpc3BsYXksXG4gICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZSxcbiAgICBvbkNsb3NlLFxuICAgIG9uVG9nZ2xlTWluaWZ5LFxuICAgIHJlc2V0QW5pbWF0aW9uLFxuICAgIGlzQW5pbWF0YWJsZSxcbiAgICB1cGRhdGVBbmltYXRpb25TcGVlZCxcbiAgICB0b2dnbGVBbmltYXRpb24sXG4gICAgc2V0RmlsdGVyUGxvdCxcbiAgICBzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3csXG4gICAgYW5pbWF0aW9uQ29uZmlnLFxuICAgIHRpbWVsaW5lXG4gIH06IFRpbWVXaWRnZXRQcm9wcykgPT4ge1xuICAgIGNvbnN0IF91cGRhdGVBbmltYXRpb25TcGVlZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgc3BlZWQgPT4gdXBkYXRlQW5pbWF0aW9uU3BlZWQoaW5kZXgsIHNwZWVkKSxcbiAgICAgIFt1cGRhdGVBbmltYXRpb25TcGVlZCwgaW5kZXhdXG4gICAgKTtcblxuICAgIGNvbnN0IF90b2dnbGVBbmltYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB0b2dnbGVBbmltYXRpb24oaW5kZXgpLCBbdG9nZ2xlQW5pbWF0aW9uLCBpbmRleF0pO1xuXG4gICAgY29uc3QgaXNNaW5pZmllZCA9IHVzZU1lbW8oKCkgPT4gZmlsdGVyLnZpZXcgPT09IEZJTFRFUl9WSUVXX1RZUEVTLm1pbmlmaWVkLCBbZmlsdGVyXSk7XG5cbiAgICBjb25zdCBfc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93ID0gdXNlQ2FsbGJhY2soXG4gICAgICBhbmltYXRpb25XaW5kb3cgPT4gc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93KHtpZDogZmlsdGVyLmlkLCBhbmltYXRpb25XaW5kb3d9KSxcbiAgICAgIFtzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3csIGZpbHRlci5pZF1cbiAgICApO1xuXG4gICAgY29uc3QgdGltZVNsaWRlck9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICB2YWx1ZSA9PiBzZXRGaWx0ZXJBbmltYXRpb25UaW1lKGluZGV4LCAndmFsdWUnLCB2YWx1ZSksXG4gICAgICBbc2V0RmlsdGVyQW5pbWF0aW9uVGltZSwgaW5kZXhdXG4gICAgKTtcblxuICAgIGNvbnN0IF9zZXRGaWx0ZXJQbG90ID0gdXNlQ2FsbGJhY2soXG4gICAgICAobmV3UHJvcCwgdmFsdWVJbmRleCkgPT4gc2V0RmlsdGVyUGxvdChpbmRleCwgbmV3UHJvcCwgdmFsdWVJbmRleCksXG4gICAgICBbaW5kZXgsIHNldEZpbHRlclBsb3RdXG4gICAgKTtcblxuICAgIGNvbnN0IHRpbWVSYW5nZVNsaWRlUHJvcHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gdGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3IoZmlsdGVyLCBkYXRhc2V0cywgbGF5ZXJzKSxcbiAgICAgIFtmaWx0ZXIsIGRhdGFzZXRzLCBsYXllcnNdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8VGltZUJvdHRvbVdpZGdldElubmVyIGNsYXNzTmFtZT1cImJvdHRvbS13aWRnZXQtLWlubmVyXCI+XG4gICAgICAgIDxUaW1lV2lkZ2V0VG9wXG4gICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICBzZXRGaWx0ZXJQbG90PXtfc2V0RmlsdGVyUGxvdH1cbiAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgICAgICBvblRvZ2dsZU1pbmlmeT17b25Ub2dnbGVNaW5pZnl9XG4gICAgICAgICAgaXNNaW5pZmllZD17aXNNaW5pZmllZH1cbiAgICAgICAgLz5cbiAgICAgICAgey8qIE9uY2UgQW5pbWF0aW9uQ29udHJvbCBpcyBhYmxlIHRvIGRpc3BsYXkgbGFyZ2UgdGltZWxpbmUqL31cbiAgICAgICAgey8qIHdlIGNhbiByZXBsYWNlIFRpbWVSYW5nZVNsaWRlciB3aXRoIEFuaW1hdGlvbkNvbnRyb2wqL31cbiAgICAgICAgPFRpbWVSYW5nZVNsaWRlclxuICAgICAgICAgIHsuLi50aW1lUmFuZ2VTbGlkZVByb3BzfVxuICAgICAgICAgIG9uQ2hhbmdlPXt0aW1lU2xpZGVyT25DaGFuZ2V9XG4gICAgICAgICAgdG9nZ2xlQW5pbWF0aW9uPXtfdG9nZ2xlQW5pbWF0aW9ufVxuICAgICAgICAgIHVwZGF0ZUFuaW1hdGlvblNwZWVkPXtfdXBkYXRlQW5pbWF0aW9uU3BlZWR9XG4gICAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93PXtfc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93fVxuICAgICAgICAgIGhpZGVUaW1lVGl0bGU9e3Nob3dUaW1lRGlzcGxheX1cbiAgICAgICAgICByZXNldEFuaW1hdGlvbj17cmVzZXRBbmltYXRpb259XG4gICAgICAgICAgaXNBbmltYXRhYmxlPXtpc0FuaW1hdGFibGV9XG4gICAgICAgICAgc2V0RmlsdGVyUGxvdD17X3NldEZpbHRlclBsb3R9XG4gICAgICAgICAgYW5pbWF0aW9uQ29uZmlnPXthbmltYXRpb25Db25maWd9XG4gICAgICAgICAgaXNNaW5pZmllZD17aXNNaW5pZmllZH1cbiAgICAgICAgICB0aW1lbGluZT17dGltZWxpbmV9XG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93VGltZURpc3BsYXkgPyAoXG4gICAgICAgICAgPEZsb2F0aW5nVGltZURpc3BsYXlcbiAgICAgICAgICAgIGN1cnJlbnRUaW1lPXtmaWx0ZXIudmFsdWV9XG4gICAgICAgICAgICBkZWZhdWx0VGltZUZvcm1hdD17ZmlsdGVyLmRlZmF1bHRUaW1lRm9ybWF0fVxuICAgICAgICAgICAgdGltZUZvcm1hdD17ZmlsdGVyLnRpbWVGb3JtYXR9XG4gICAgICAgICAgICB0aW1lem9uZT17ZmlsdGVyLnRpbWV6b25lfVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9UaW1lQm90dG9tV2lkZ2V0SW5uZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUmVhY3QubWVtbyhUaW1lV2lkZ2V0KTtcbn1cblxu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