| Current Path : /home/emeraadmin/www/node_modules/dnd-core/dist/esm/reducers/ |
| Current File : /home/emeraadmin/www/node_modules/dnd-core/dist/esm/reducers/dirtyHandlerIds.js |
import { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';
import { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';
import { areArraysEqual } from '../utils/equality';
import { NONE, ALL } from '../utils/dirtiness';
import { xor } from '../utils/js_utils';
export function reduce() {
var _state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case HOVER:
break;
case ADD_SOURCE:
case ADD_TARGET:
case REMOVE_TARGET:
case REMOVE_SOURCE:
return NONE;
case BEGIN_DRAG:
case PUBLISH_DRAG_SOURCE:
case END_DRAG:
case DROP:
default:
return ALL;
}
var _action$payload = action.payload,
_action$payload$targe = _action$payload.targetIds,
targetIds = _action$payload$targe === void 0 ? [] : _action$payload$targe,
_action$payload$prevT = _action$payload.prevTargetIds,
prevTargetIds = _action$payload$prevT === void 0 ? [] : _action$payload$prevT;
var result = xor(targetIds, prevTargetIds);
var didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);
if (!didChange) {
return NONE;
} // Check the target ids at the innermost position. If they are valid, add them
// to the result
var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];
var innermostTargetId = targetIds[targetIds.length - 1];
if (prevInnermostTargetId !== innermostTargetId) {
if (prevInnermostTargetId) {
result.push(prevInnermostTargetId);
}
if (innermostTargetId) {
result.push(innermostTargetId);
}
}
return result;
}