function calcRelativePoint (currentNode, targetId, currentX, currentY) {
  if (currentNode.id === targetId) return {left: currentX, top: currentY}

  if (currentNode.left && currentNode.top) {
    currentX -= currentNode.left
    currentY -= currentNode.top
  }
  for (let child of currentNode.children) {
    if (targetId.indexOf(child.id) !== -1) {
      return calcRelativePoint(child, targetId, currentX, currentY)
    }
  }
}
Returns the element --identified by targetId-- relative position,
based on its parent (and full family depth) position
and the current mouse left/top position.

This method gives positioning support for elements changing "family".

@param {object} currentNode : The element being inspected
@param {string} targetId : The id of the element expected
@param {number} currentX : Current relative left position
@param {number} currentY : Current relative top position

@return {object} : Relative point obtained from the currentX, currentY