UNPKG

qtsd-fork

Version:

Do not use this please

93 lines (72 loc) 2.06 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = dirtyHandlerIds; exports.areDirty = areDirty; var _xor = require('lodash/xor'); var _xor2 = _interopRequireDefault(_xor); var _intersection = require('lodash/intersection'); var _intersection2 = _interopRequireDefault(_intersection); var _dragDrop = require('../actions/dragDrop'); var _registry = require('../actions/registry'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var NONE = []; var ALL = []; function dirtyHandlerIds() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE; var action = arguments[1]; var dragOperation = arguments[2]; switch (action.type) { case _dragDrop.HOVER: break; case _registry.ADD_SOURCE: case _registry.ADD_TARGET: case _registry.REMOVE_TARGET: case _registry.REMOVE_SOURCE: return NONE; case _dragDrop.BEGIN_DRAG: case _dragDrop.PUBLISH_DRAG_SOURCE: case _dragDrop.END_DRAG: case _dragDrop.DROP: default: return ALL; } var targetIds = action.targetIds; var prevTargetIds = dragOperation.targetIds; var result = (0, _xor2.default)(targetIds, prevTargetIds); var didChange = false; if (result.length === 0) { for (var i = 0; i < targetIds.length; i++) { if (targetIds[i] !== prevTargetIds[i]) { didChange = true; break; } } } else { didChange = true; } if (!didChange) { return NONE; } 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; } function areDirty(state, handlerIds) { if (state === NONE) { return false; } if (state === ALL || typeof handlerIds === 'undefined') { return true; } return (0, _intersection2.default)(handlerIds, state).length > 0; }