UNPKG

kepler.gl

Version:

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

69 lines (67 loc) 9.25 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _reactRedux = require("react-redux"); var _actions = require("@kepler.gl/actions"); var _constants = require("@kepler.gl/constants"); var _utils = require("@kepler.gl/utils"); // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project var useDndEffects = function useDndEffects(effects, effectOrder) { var dispatch = (0, _reactRedux.useDispatch)(); var _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), activeEffect = _useState2[0], setActiveEffect = _useState2[1]; var onEffectDragStart = (0, _react.useCallback)(function (event) { var active = event.active; var newActiveEffect = effects.find(function (effect) { return effect.id === active.id; }); if (newActiveEffect) { setActiveEffect(newActiveEffect); if (newActiveEffect.isConfigActive) { dispatch((0, _actions.updateEffect)(newActiveEffect.id, { isConfigActive: false })); } } }, [dispatch, effects]); var onEffectDragEnd = (0, _react.useCallback)(function (event) { var _over$data; var active = event.active, over = event.over; var activeEffectId = active.id; var overType = over === null || over === void 0 || (_over$data = over.data) === null || _over$data === void 0 || (_over$data = _over$data.current) === null || _over$data === void 0 ? void 0 : _over$data.type; if (!overType) { setActiveEffect(undefined); return; } switch (overType) { // swaping effects case _constants.SORTABLE_EFFECT_TYPE: dispatch((0, _actions.reorderEffect)((0, _utils.reorderEffectOrder)(effectOrder, activeEffectId, over.id))); break; // moving effects within side panel case _constants.SORTABLE_EFFECT_PANEL_TYPE: // move effect to the end of the list dispatch((0, _actions.reorderEffect)((0, _utils.reorderEffectOrder)(effectOrder, activeEffectId, effectOrder[effectOrder.length - 1]))); break; default: break; } setActiveEffect(undefined); }, [dispatch, effectOrder]); return { activeEffect: activeEffect, onDragStart: onEffectDragStart, onDragEnd: onEffectDragEnd }; }; var _default = exports["default"] = useDndEffects; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0UmVkdXgiLCJfYWN0aW9ucyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJ1c2VEbmRFZmZlY3RzIiwiZWZmZWN0cyIsImVmZmVjdE9yZGVyIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImFjdGl2ZUVmZmVjdCIsInNldEFjdGl2ZUVmZmVjdCIsIm9uRWZmZWN0RHJhZ1N0YXJ0IiwidXNlQ2FsbGJhY2siLCJldmVudCIsImFjdGl2ZSIsIm5ld0FjdGl2ZUVmZmVjdCIsImZpbmQiLCJlZmZlY3QiLCJpZCIsImlzQ29uZmlnQWN0aXZlIiwidXBkYXRlRWZmZWN0Iiwib25FZmZlY3REcmFnRW5kIiwiX292ZXIkZGF0YSIsIm92ZXIiLCJhY3RpdmVFZmZlY3RJZCIsIm92ZXJUeXBlIiwiZGF0YSIsImN1cnJlbnQiLCJ0eXBlIiwidW5kZWZpbmVkIiwiU09SVEFCTEVfRUZGRUNUX1RZUEUiLCJyZW9yZGVyRWZmZWN0IiwicmVvcmRlckVmZmVjdE9yZGVyIiwiU09SVEFCTEVfRUZGRUNUX1BBTkVMX1RZUEUiLCJsZW5ndGgiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ0VuZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtZG5kLWVmZmVjdHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3VzZURpc3BhdGNofSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge0RyYWdFbmRFdmVudCwgRHJhZ1N0YXJ0RXZlbnR9IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuXG5pbXBvcnQge3Jlb3JkZXJFZmZlY3QsIHVwZGF0ZUVmZmVjdH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7U09SVEFCTEVfRUZGRUNUX1BBTkVMX1RZUEUsIFNPUlRBQkxFX0VGRkVDVF9UWVBFfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge3Jlb3JkZXJFZmZlY3RPcmRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0VmZmVjdH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgRG5kRWZmZWN0c0hvb2sgPSB7XG4gIGFjdGl2ZUVmZmVjdDogRWZmZWN0IHwgdW5kZWZpbmVkO1xuICBvbkRyYWdTdGFydDogKGV2ZW50OiBEcmFnU3RhcnRFdmVudCkgPT4gdm9pZDtcbiAgb25EcmFnRW5kOiAoZXZlbnQ6IERyYWdFbmRFdmVudCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IHVzZURuZEVmZmVjdHM6IChlZmZlY3RzOiBFZmZlY3RbXSwgZWZmZWN0T3JkZXI6IHN0cmluZ1tdKSA9PiBEbmRFZmZlY3RzSG9vayA9IChcbiAgZWZmZWN0cyxcbiAgZWZmZWN0T3JkZXJcbikgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFthY3RpdmVFZmZlY3QsIHNldEFjdGl2ZUVmZmVjdF06IFtcbiAgICBFZmZlY3QgfCB1bmRlZmluZWQsXG4gICAgKGVmZmVjdDogRWZmZWN0IHwgdW5kZWZpbmVkKSA9PiB2b2lkXG4gIF0gPSB1c2VTdGF0ZSgpO1xuICBjb25zdCBvbkVmZmVjdERyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHthY3RpdmV9ID0gZXZlbnQ7XG4gICAgICBjb25zdCBuZXdBY3RpdmVFZmZlY3QgPSBlZmZlY3RzLmZpbmQoZWZmZWN0ID0+IGVmZmVjdC5pZCA9PT0gYWN0aXZlLmlkKTtcbiAgICAgIGlmIChuZXdBY3RpdmVFZmZlY3QpIHtcbiAgICAgICAgc2V0QWN0aXZlRWZmZWN0KG5ld0FjdGl2ZUVmZmVjdCk7XG4gICAgICAgIGlmIChuZXdBY3RpdmVFZmZlY3QuaXNDb25maWdBY3RpdmUpIHtcbiAgICAgICAgICBkaXNwYXRjaCh1cGRhdGVFZmZlY3QobmV3QWN0aXZlRWZmZWN0LmlkLCB7aXNDb25maWdBY3RpdmU6IGZhbHNlfSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbZGlzcGF0Y2gsIGVmZmVjdHNdXG4gICk7XG5cbiAgY29uc3Qgb25FZmZlY3REcmFnRW5kID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgY29uc3Qge2FjdGl2ZSwgb3Zlcn0gPSBldmVudDtcblxuICAgICAgY29uc3Qge2lkOiBhY3RpdmVFZmZlY3RJZH0gPSBhY3RpdmU7XG4gICAgICBjb25zdCBvdmVyVHlwZSA9IG92ZXI/LmRhdGE/LmN1cnJlbnQ/LnR5cGU7XG5cbiAgICAgIGlmICghb3ZlclR5cGUpIHtcbiAgICAgICAgc2V0QWN0aXZlRWZmZWN0KHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChvdmVyVHlwZSkge1xuICAgICAgICAvLyBzd2FwaW5nIGVmZmVjdHNcbiAgICAgICAgY2FzZSBTT1JUQUJMRV9FRkZFQ1RfVFlQRTpcbiAgICAgICAgICBkaXNwYXRjaChyZW9yZGVyRWZmZWN0KHJlb3JkZXJFZmZlY3RPcmRlcihlZmZlY3RPcmRlciwgYWN0aXZlRWZmZWN0SWQsIG92ZXIuaWQpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIC8vICBtb3ZpbmcgZWZmZWN0cyB3aXRoaW4gc2lkZSBwYW5lbFxuICAgICAgICBjYXNlIFNPUlRBQkxFX0VGRkVDVF9QQU5FTF9UWVBFOlxuICAgICAgICAgIC8vIG1vdmUgZWZmZWN0IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3RcbiAgICAgICAgICBkaXNwYXRjaChcbiAgICAgICAgICAgIHJlb3JkZXJFZmZlY3QoXG4gICAgICAgICAgICAgIHJlb3JkZXJFZmZlY3RPcmRlcihlZmZlY3RPcmRlciwgYWN0aXZlRWZmZWN0SWQsIGVmZmVjdE9yZGVyW2VmZmVjdE9yZGVyLmxlbmd0aCAtIDFdKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHNldEFjdGl2ZUVmZmVjdCh1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgW2Rpc3BhdGNoLCBlZmZlY3RPcmRlcl1cbiAgKTtcblxuICByZXR1cm4ge2FjdGl2ZUVmZmVjdCwgb25EcmFnU3RhcnQ6IG9uRWZmZWN0RHJhZ1N0YXJ0LCBvbkRyYWdFbmQ6IG9uRWZmZWN0RHJhZ0VuZH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1c2VEbmRFZmZlY3RzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQVRBO0FBQ0E7O0FBaUJBLElBQU1LLGFBQTJFLEdBQUcsU0FBOUVBLGFBQTJFQSxDQUMvRUMsT0FBTyxFQUNQQyxXQUFXLEVBQ1I7RUFDSCxJQUFNQyxRQUFRLEdBQUcsSUFBQUMsdUJBQVcsRUFBQyxDQUFDO0VBQzlCLElBQUFDLFNBQUEsR0FHSSxJQUFBQyxlQUFRLEVBQUMsQ0FBQztJQUFBQyxVQUFBLE9BQUFDLGVBQUEsYUFBQUgsU0FBQTtJQUhQSSxZQUFZLEdBQUFGLFVBQUE7SUFBRUcsZUFBZSxHQUFBSCxVQUFBO0VBSXBDLElBQU1JLGlCQUFpQixHQUFHLElBQUFDLGtCQUFXLEVBQ25DLFVBQUFDLEtBQUssRUFBSTtJQUNQLElBQU9DLE1BQU0sR0FBSUQsS0FBSyxDQUFmQyxNQUFNO0lBQ2IsSUFBTUMsZUFBZSxHQUFHZCxPQUFPLENBQUNlLElBQUksQ0FBQyxVQUFBQyxNQUFNO01BQUEsT0FBSUEsTUFBTSxDQUFDQyxFQUFFLEtBQUtKLE1BQU0sQ0FBQ0ksRUFBRTtJQUFBLEVBQUM7SUFDdkUsSUFBSUgsZUFBZSxFQUFFO01BQ25CTCxlQUFlLENBQUNLLGVBQWUsQ0FBQztNQUNoQyxJQUFJQSxlQUFlLENBQUNJLGNBQWMsRUFBRTtRQUNsQ2hCLFFBQVEsQ0FBQyxJQUFBaUIscUJBQVksRUFBQ0wsZUFBZSxDQUFDRyxFQUFFLEVBQUU7VUFBQ0MsY0FBYyxFQUFFO1FBQUssQ0FBQyxDQUFDLENBQUM7TUFDckU7SUFDRjtFQUNGLENBQUMsRUFDRCxDQUFDaEIsUUFBUSxFQUFFRixPQUFPLENBQ3BCLENBQUM7RUFFRCxJQUFNb0IsZUFBZSxHQUFHLElBQUFULGtCQUFXLEVBQ2pDLFVBQUFDLEtBQUssRUFBSTtJQUFBLElBQUFTLFVBQUE7SUFDUCxJQUFPUixNQUFNLEdBQVVELEtBQUssQ0FBckJDLE1BQU07TUFBRVMsSUFBSSxHQUFJVixLQUFLLENBQWJVLElBQUk7SUFFbkIsSUFBV0MsY0FBYyxHQUFJVixNQUFNLENBQTVCSSxFQUFFO0lBQ1QsSUFBTU8sUUFBUSxHQUFHRixJQUFJLGFBQUpBLElBQUksZ0JBQUFELFVBQUEsR0FBSkMsSUFBSSxDQUFFRyxJQUFJLGNBQUFKLFVBQUEsZ0JBQUFBLFVBQUEsR0FBVkEsVUFBQSxDQUFZSyxPQUFPLGNBQUFMLFVBQUEsdUJBQW5CQSxVQUFBLENBQXFCTSxJQUFJO0lBRTFDLElBQUksQ0FBQ0gsUUFBUSxFQUFFO01BQ2JmLGVBQWUsQ0FBQ21CLFNBQVMsQ0FBQztNQUMxQjtJQUNGO0lBRUEsUUFBUUosUUFBUTtNQUNkO01BQ0EsS0FBS0ssK0JBQW9CO1FBQ3ZCM0IsUUFBUSxDQUFDLElBQUE0QixzQkFBYSxFQUFDLElBQUFDLHlCQUFrQixFQUFDOUIsV0FBVyxFQUFFc0IsY0FBYyxFQUFFRCxJQUFJLENBQUNMLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakY7TUFDRjtNQUNBLEtBQUtlLHFDQUEwQjtRQUM3QjtRQUNBOUIsUUFBUSxDQUNOLElBQUE0QixzQkFBYSxFQUNYLElBQUFDLHlCQUFrQixFQUFDOUIsV0FBVyxFQUFFc0IsY0FBYyxFQUFFdEIsV0FBVyxDQUFDQSxXQUFXLENBQUNnQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ3JGLENBQ0YsQ0FBQztRQUNEO01BQ0Y7UUFDRTtJQUNKO0lBRUF4QixlQUFlLENBQUNtQixTQUFTLENBQUM7RUFDNUIsQ0FBQyxFQUNELENBQUMxQixRQUFRLEVBQUVELFdBQVcsQ0FDeEIsQ0FBQztFQUVELE9BQU87SUFBQ08sWUFBWSxFQUFaQSxZQUFZO0lBQUUwQixXQUFXLEVBQUV4QixpQkFBaUI7SUFBRXlCLFNBQVMsRUFBRWY7RUFBZSxDQUFDO0FBQ25GLENBQUM7QUFBQyxJQUFBZ0IsUUFBQSxHQUFBQyxPQUFBLGNBRWF0QyxhQUFhIiwiaWdub3JlTGlzdCI6W119