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.28 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 _utils = require("@kepler.gl/utils"); var _dndLayerItems = require("../common/dnd-layer-items"); // 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 _dndLayerItems.SORTABLE_EFFECT_TYPE: dispatch((0, _actions.reorderEffect)((0, _utils.reorderEffectOrder)(effectOrder, activeEffectId, over.id))); break; // moving effects within side panel case _dndLayerItems.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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0UmVkdXgiLCJfYWN0aW9ucyIsIl91dGlscyIsIl9kbmRMYXllckl0ZW1zIiwidXNlRG5kRWZmZWN0cyIsImVmZmVjdHMiLCJlZmZlY3RPcmRlciIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJhY3RpdmVFZmZlY3QiLCJzZXRBY3RpdmVFZmZlY3QiLCJvbkVmZmVjdERyYWdTdGFydCIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJhY3RpdmUiLCJuZXdBY3RpdmVFZmZlY3QiLCJmaW5kIiwiZWZmZWN0IiwiaWQiLCJpc0NvbmZpZ0FjdGl2ZSIsInVwZGF0ZUVmZmVjdCIsIm9uRWZmZWN0RHJhZ0VuZCIsIl9vdmVyJGRhdGEiLCJvdmVyIiwiYWN0aXZlRWZmZWN0SWQiLCJvdmVyVHlwZSIsImRhdGEiLCJjdXJyZW50IiwidHlwZSIsInVuZGVmaW5lZCIsIlNPUlRBQkxFX0VGRkVDVF9UWVBFIiwicmVvcmRlckVmZmVjdCIsInJlb3JkZXJFZmZlY3RPcmRlciIsIlNPUlRBQkxFX0VGRkVDVF9QQU5FTF9UWVBFIiwibGVuZ3RoIiwib25EcmFnU3RhcnQiLCJvbkRyYWdFbmQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWRuZC1lZmZlY3RzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VEaXNwYXRjaH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtEcmFnRW5kRXZlbnQsIERyYWdTdGFydEV2ZW50fSBmcm9tICdAZG5kLWtpdC9jb3JlJztcblxuaW1wb3J0IHtyZW9yZGVyRWZmZWN0LCB1cGRhdGVFZmZlY3R9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge3Jlb3JkZXJFZmZlY3RPcmRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0VmZmVjdH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1NPUlRBQkxFX0VGRkVDVF9QQU5FTF9UWVBFLCBTT1JUQUJMRV9FRkZFQ1RfVFlQRX0gZnJvbSAnLi4vY29tbW9uL2RuZC1sYXllci1pdGVtcyc7XG5cbnR5cGUgRG5kRWZmZWN0c0hvb2sgPSB7XG4gIGFjdGl2ZUVmZmVjdDogRWZmZWN0IHwgdW5kZWZpbmVkO1xuICBvbkRyYWdTdGFydDogKGV2ZW50OiBEcmFnU3RhcnRFdmVudCkgPT4gdm9pZDtcbiAgb25EcmFnRW5kOiAoZXZlbnQ6IERyYWdFbmRFdmVudCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IHVzZURuZEVmZmVjdHM6IChlZmZlY3RzOiBFZmZlY3RbXSwgZWZmZWN0T3JkZXI6IHN0cmluZ1tdKSA9PiBEbmRFZmZlY3RzSG9vayA9IChcbiAgZWZmZWN0cyxcbiAgZWZmZWN0T3JkZXJcbikgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFthY3RpdmVFZmZlY3QsIHNldEFjdGl2ZUVmZmVjdF06IFtcbiAgICBFZmZlY3QgfCB1bmRlZmluZWQsXG4gICAgKGVmZmVjdDogRWZmZWN0IHwgdW5kZWZpbmVkKSA9PiB2b2lkXG4gIF0gPSB1c2VTdGF0ZSgpO1xuICBjb25zdCBvbkVmZmVjdERyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHthY3RpdmV9ID0gZXZlbnQ7XG4gICAgICBjb25zdCBuZXdBY3RpdmVFZmZlY3QgPSBlZmZlY3RzLmZpbmQoZWZmZWN0ID0+IGVmZmVjdC5pZCA9PT0gYWN0aXZlLmlkKTtcbiAgICAgIGlmIChuZXdBY3RpdmVFZmZlY3QpIHtcbiAgICAgICAgc2V0QWN0aXZlRWZmZWN0KG5ld0FjdGl2ZUVmZmVjdCk7XG4gICAgICAgIGlmIChuZXdBY3RpdmVFZmZlY3QuaXNDb25maWdBY3RpdmUpIHtcbiAgICAgICAgICBkaXNwYXRjaCh1cGRhdGVFZmZlY3QobmV3QWN0aXZlRWZmZWN0LmlkLCB7aXNDb25maWdBY3RpdmU6IGZhbHNlfSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbZGlzcGF0Y2gsIGVmZmVjdHNdXG4gICk7XG5cbiAgY29uc3Qgb25FZmZlY3REcmFnRW5kID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgY29uc3Qge2FjdGl2ZSwgb3Zlcn0gPSBldmVudDtcblxuICAgICAgY29uc3Qge2lkOiBhY3RpdmVFZmZlY3RJZH0gPSBhY3RpdmU7XG4gICAgICBjb25zdCBvdmVyVHlwZSA9IG92ZXI/LmRhdGE/LmN1cnJlbnQ/LnR5cGU7XG5cbiAgICAgIGlmICghb3ZlclR5cGUpIHtcbiAgICAgICAgc2V0QWN0aXZlRWZmZWN0KHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChvdmVyVHlwZSkge1xuICAgICAgICAvLyBzd2FwaW5nIGVmZmVjdHNcbiAgICAgICAgY2FzZSBTT1JUQUJMRV9FRkZFQ1RfVFlQRTpcbiAgICAgICAgICBkaXNwYXRjaChyZW9yZGVyRWZmZWN0KHJlb3JkZXJFZmZlY3RPcmRlcihlZmZlY3RPcmRlciwgYWN0aXZlRWZmZWN0SWQsIG92ZXIuaWQpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIC8vICBtb3ZpbmcgZWZmZWN0cyB3aXRoaW4gc2lkZSBwYW5lbFxuICAgICAgICBjYXNlIFNPUlRBQkxFX0VGRkVDVF9QQU5FTF9UWVBFOlxuICAgICAgICAgIC8vIG1vdmUgZWZmZWN0IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3RcbiAgICAgICAgICBkaXNwYXRjaChcbiAgICAgICAgICAgIHJlb3JkZXJFZmZlY3QoXG4gICAgICAgICAgICAgIHJlb3JkZXJFZmZlY3RPcmRlcihlZmZlY3RPcmRlciwgYWN0aXZlRWZmZWN0SWQsIGVmZmVjdE9yZGVyW2VmZmVjdE9yZGVyLmxlbmd0aCAtIDFdKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHNldEFjdGl2ZUVmZmVjdCh1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgW2Rpc3BhdGNoLCBlZmZlY3RPcmRlcl1cbiAgKTtcblxuICByZXR1cm4ge2FjdGl2ZUVmZmVjdCwgb25EcmFnU3RhcnQ6IG9uRWZmZWN0RHJhZ1N0YXJ0LCBvbkRyYWdFbmQ6IG9uRWZmZWN0RHJhZ0VuZH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1c2VEbmRFZmZlY3RzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQVZBO0FBQ0E7O0FBaUJBLElBQU1LLGFBQTJFLEdBQUcsU0FBOUVBLGFBQTJFQSxDQUMvRUMsT0FBTyxFQUNQQyxXQUFXLEVBQ1I7RUFDSCxJQUFNQyxRQUFRLEdBQUcsSUFBQUMsdUJBQVcsRUFBQyxDQUFDO0VBQzlCLElBQUFDLFNBQUEsR0FHSSxJQUFBQyxlQUFRLEVBQUMsQ0FBQztJQUFBQyxVQUFBLE9BQUFDLGVBQUEsYUFBQUgsU0FBQTtJQUhQSSxZQUFZLEdBQUFGLFVBQUE7SUFBRUcsZUFBZSxHQUFBSCxVQUFBO0VBSXBDLElBQU1JLGlCQUFpQixHQUFHLElBQUFDLGtCQUFXLEVBQ25DLFVBQUFDLEtBQUssRUFBSTtJQUNQLElBQU9DLE1BQU0sR0FBSUQsS0FBSyxDQUFmQyxNQUFNO0lBQ2IsSUFBTUMsZUFBZSxHQUFHZCxPQUFPLENBQUNlLElBQUksQ0FBQyxVQUFBQyxNQUFNO01BQUEsT0FBSUEsTUFBTSxDQUFDQyxFQUFFLEtBQUtKLE1BQU0sQ0FBQ0ksRUFBRTtJQUFBLEVBQUM7SUFDdkUsSUFBSUgsZUFBZSxFQUFFO01BQ25CTCxlQUFlLENBQUNLLGVBQWUsQ0FBQztNQUNoQyxJQUFJQSxlQUFlLENBQUNJLGNBQWMsRUFBRTtRQUNsQ2hCLFFBQVEsQ0FBQyxJQUFBaUIscUJBQVksRUFBQ0wsZUFBZSxDQUFDRyxFQUFFLEVBQUU7VUFBQ0MsY0FBYyxFQUFFO1FBQUssQ0FBQyxDQUFDLENBQUM7TUFDckU7SUFDRjtFQUNGLENBQUMsRUFDRCxDQUFDaEIsUUFBUSxFQUFFRixPQUFPLENBQ3BCLENBQUM7RUFFRCxJQUFNb0IsZUFBZSxHQUFHLElBQUFULGtCQUFXLEVBQ2pDLFVBQUFDLEtBQUssRUFBSTtJQUFBLElBQUFTLFVBQUE7SUFDUCxJQUFPUixNQUFNLEdBQVVELEtBQUssQ0FBckJDLE1BQU07TUFBRVMsSUFBSSxHQUFJVixLQUFLLENBQWJVLElBQUk7SUFFbkIsSUFBV0MsY0FBYyxHQUFJVixNQUFNLENBQTVCSSxFQUFFO0lBQ1QsSUFBTU8sUUFBUSxHQUFHRixJQUFJLGFBQUpBLElBQUksZ0JBQUFELFVBQUEsR0FBSkMsSUFBSSxDQUFFRyxJQUFJLGNBQUFKLFVBQUEsZ0JBQUFBLFVBQUEsR0FBVkEsVUFBQSxDQUFZSyxPQUFPLGNBQUFMLFVBQUEsdUJBQW5CQSxVQUFBLENBQXFCTSxJQUFJO0lBRTFDLElBQUksQ0FBQ0gsUUFBUSxFQUFFO01BQ2JmLGVBQWUsQ0FBQ21CLFNBQVMsQ0FBQztNQUMxQjtJQUNGO0lBRUEsUUFBUUosUUFBUTtNQUNkO01BQ0EsS0FBS0ssbUNBQW9CO1FBQ3ZCM0IsUUFBUSxDQUFDLElBQUE0QixzQkFBYSxFQUFDLElBQUFDLHlCQUFrQixFQUFDOUIsV0FBVyxFQUFFc0IsY0FBYyxFQUFFRCxJQUFJLENBQUNMLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakY7TUFDRjtNQUNBLEtBQUtlLHlDQUEwQjtRQUM3QjtRQUNBOUIsUUFBUSxDQUNOLElBQUE0QixzQkFBYSxFQUNYLElBQUFDLHlCQUFrQixFQUFDOUIsV0FBVyxFQUFFc0IsY0FBYyxFQUFFdEIsV0FBVyxDQUFDQSxXQUFXLENBQUNnQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ3JGLENBQ0YsQ0FBQztRQUNEO01BQ0Y7UUFDRTtJQUNKO0lBRUF4QixlQUFlLENBQUNtQixTQUFTLENBQUM7RUFDNUIsQ0FBQyxFQUNELENBQUMxQixRQUFRLEVBQUVELFdBQVcsQ0FDeEIsQ0FBQztFQUVELE9BQU87SUFBQ08sWUFBWSxFQUFaQSxZQUFZO0lBQUUwQixXQUFXLEVBQUV4QixpQkFBaUI7SUFBRXlCLFNBQVMsRUFBRWY7RUFBZSxDQUFDO0FBQ25GLENBQUM7QUFBQyxJQUFBZ0IsUUFBQSxHQUFBQyxPQUFBLGNBRWF0QyxhQUFhIiwiaWdub3JlTGlzdCI6W119