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
JavaScript
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
;