function keyUp (e) {
      if (e.target.value === '' && e.target !== hex &&
        ((bindedHex && e.target !== bindedHex) ||
        !bindedHex)) return undefined
      if (!validateKey(e)) return e
      switch (e.target) {
        case red:
          red.value = setValueInRange.call(that, red.value, 0, 255)
          color.val('r', red.value, e.target)
          break
        case green:
          green.value = setValueInRange.call(that, green.value, 0, 255)
          color.val('g', green.value, e.target)
          break
        case blue:
          blue.value = setValueInRange.call(that, blue.value, 0, 255)
          color.val('b', blue.value, e.target)
          break
        case alpha:
          alpha.value = setValueInRange.call(that, alpha.value, 0, 100)
          color.val('a', toFixedNumeric((alpha.value * 255) / 100, alphaPrecision), e.target)
          break
        case hue:
          hue.value = setValueInRange.call(that, hue.value, 0, 360)
          color.val('h', hue.value, e.target)
          break
        case saturation:
          saturation.value = setValueInRange.call(that, saturation.value, 0, 100)
          color.val('s', saturation.value, e.target)
          break
        case value:
          value.value = setValueInRange.call(that, value.value, 0, 100)
          color.val('v', value.value, e.target)
          break
        case hex:
          hex.value = hex.value.replace(/[^a-fA-F\d]/g, '').toLowerCase().substring(0, 6)
          bindedHex && bindedHex.val(hex.value)
          color.val('hex', hex.value !== '' ? hex.value : null, e.target)
          break
        case bindedHex:
          bindedHex.value = bindedHex.value.replace(/[^a-fA-F\d]/g, '').toLowerCase().substring(0, 6)
          hex.val(bindedHex.value)
          color.val('hex', bindedHex.value !== '' ? bindedHex.value : null, e.target)
          break
        case ahex:
          ahex.value = ahex.value.replace(/[^a-fA-F\d]/g, '').toLowerCase().substring(0, 2)
          color.val('a', ahex.value ? Number.parseInt(ahex.value, 16) : null, e.target)
          break
      }
      return undefined
    }
@param {Event} e
@returns {Event|void}
@todo Why is this returning an event?