mouseUp (evt, element, _mouseX, _mouseY) {
      const drawnPath = svgCanvas.getDrawnPath()
      // Create mode
      if (svgCanvas.getCurrentMode() === 'path') {
        newPoint = null
        if (!drawnPath) {
          element = getElement(svgCanvas.getId())
          svgCanvas.setStarted(false)
          firstCtrl = null
        }

        return {
          keep: true,
          element
        }
      }

      // Edit mode
      const rubberBox = svgCanvas.getRubberBox()
      if (path.dragging) {
        const lastPt = path.cur_pt

        path.dragging = false
        path.dragctrl = false
        path.update()

        if (hasMoved) {
          path.endChanges('Move path point(s)')
        }

        if (!evt.shiftKey && !hasMoved) {
          path.selectPt(lastPt)
        }
      } else if (rubberBox?.getAttribute('display') !== 'none') {
        // Done with multi-node-select
        rubberBox.setAttribute('display', 'none')

        if (rubberBox.getAttribute('width') <= 2 && rubberBox.getAttribute('height') <= 2) {
          pathActionsMethod.toSelectMode(evt.target)
        }

      // else, move back to select mode
      } else {
        pathActionsMethod.toSelectMode(evt.target)
      }
      hasMoved = false
      return undefined
    }
@param {Event} evt
@param {Element} element
@param {Float} _mouseX
@param {Float} _mouseY
@returns {module:path.keepElement|void}