Coverage Summary for Class: Event (kweb.html.events)
  | Class | Method, % | Branch, % | Line, % | Instruction, % | 
  | Event | 0%
  
  
    (0/1) |  | 0%
  
  
    (0/1) | 0%
  
  
    (0/5) | 
  
    | Event$$serializer | 100%
  
  
    (1/1) | 85.7%
  
  
    (6/7) | 100%
  
  
    (1/1) | 80.9%
  
  
    (114/141) | 
  
    | Event$Companion | 100%
  
  
    (1/1) |  | 100%
  
  
    (1/1) | 100%
  
  
    (4/4) | 
  | Total | 66.7%
  
  
    (2/3) | 85.7%
  
  
    (6/7) | 66.7%
  
  
    (2/3) | 78.7%
  
  
    (118/150) | 
 package kweb.html.events
 
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.json.JsonElement
 import kotlinx.serialization.json.JsonNull
 
 /**
  * Corresponds to a [JavaScript event](https://developer.mozilla.org/en-US/docs/Web/API/Event) object.
  */
 @Serializable
 data class Event(
     val type: String,
     /** @see kweb.Element.on **/
     val retrieved: JsonElement = JsonNull
 )
 
 /**
  * Corresponds to a [JavaScript event](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent) object.
  */
 @Serializable
 data class KeyboardEvent(
     val type: String,
     val detail: Long,
     val key: String,
     val altKey: Boolean,
     val ctrlKey: Boolean,
     val code: String,
     val location: Int,
     val metaKey: Boolean,
     val shiftKey: Boolean,
     val locale: String? = null,
     val isComposing: Boolean,
     /** @see kweb.Element.on **/
     val retrieved: JsonElement = JsonNull
 )
 
 /**
  * Corresponds to a [JavaScript event](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent) object.
  */
 @Serializable
 data class MouseEvent(
     val type: String,
     val detail: Long,
     val altKey: Boolean,
     val button: Int,
     val buttons: Int,
     val clientX: Float,
     val clientY: Float,
     val ctrlKey: Boolean,
     val metaKey: Boolean,
     val movementX: Int? = null,
     val movementY: Int? = null,
     val region: String? = null,
     val screenX: Int,
     val screenY: Int,
     val shiftKey: Boolean,
     val x: Float = clientX,
     val y: Float = clientY,
     /** If `elementX.on(retrieveJs = "...") was provided, this will contain the value returned by the
      * JavaScript expression.  If no `retrieveJs` was specified it will be JsonNull.
      **/
     val retrieved: JsonElement = JsonNull
 )