diff --git a/js/js.libraries/src/core/dom.kt b/js/js.libraries/src/core/dom.kt index 2d910cb32af..0a71b6c55b8 100644 --- a/js/js.libraries/src/core/dom.kt +++ b/js/js.libraries/src/core/dom.kt @@ -10,7 +10,7 @@ package org.w3c.dom // Contains stub APIs for the W3C DOM API so we can delegate to the platform DOM instead - +deprecated("Use org.w3c.dom3 instead") native public trait Attr: Node { public val name: String public val ownerElement: Element @@ -20,9 +20,11 @@ native public trait Attr: Node { public fun isId(): Boolean = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait CDATASection: Text { } +deprecated("Use org.w3c.dom3 instead") native public trait CharacterData: Node { public var data: String public val length: Int @@ -33,9 +35,11 @@ native public trait CharacterData: Node { public fun substringData(arg1: Int, arg2: Int): String = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait Comment: CharacterData { } +deprecated("Use org.w3c.dom3 instead") native public trait Document: Node { public val doctype: DocumentType public val documentElement: Element @@ -66,9 +70,11 @@ native public trait Document: Node { public fun renameNode(arg1: Node, arg2: String?, arg3: String?): Node = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait DocumentFragment: Node { } +deprecated("Use org.w3c.dom3 instead") native public trait DocumentType: Node { public val entities: NamedNodeMap public val internalSubset: String @@ -78,6 +84,7 @@ native public trait DocumentType: Node { public val systemId: String } +deprecated("Use org.w3c.dom3 instead") native public trait DOMConfiguration { public val parameterNames: DOMStringList public fun canSetParameter(arg1: String?, arg2: Any): Boolean = noImpl @@ -85,6 +92,7 @@ native public trait DOMConfiguration { public fun setParameter(arg1: String?, arg2: Any): Unit = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait DOMError { public val location: DOMLocator public val message: String @@ -100,10 +108,12 @@ native public trait DOMError { } } +deprecated("Use org.w3c.dom3 instead") native public trait DOMErrorHandler { public fun handleError(arg1: DOMError): Boolean = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait DOMImplementation { public fun createDocument(arg1: String?, arg2: String?, arg3: DocumentType?): Document = noImpl public fun createDocumentType(arg1: String?, arg2: String?, arg3: String?): DocumentType = noImpl @@ -111,11 +121,13 @@ native public trait DOMImplementation { public fun hasFeature(arg1: String?, arg2: String?): Boolean = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait DOMImplementationList { public val length: Int public fun item(arg1: Int): DOMImplementation = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait DOMLocator { public val byteOffset: Int public val columnNumber: Int @@ -125,12 +137,14 @@ native public trait DOMLocator { public val utf16Offset: Int } +deprecated("Use org.w3c.dom3 instead") native public trait DOMStringList { public val length: Int public fun contains(arg1: String?): Boolean = noImpl public fun item(arg1: Int): String = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait Element: Node { public val schemaTypeInfo: TypeInfo public val tagName: String @@ -154,6 +168,7 @@ native public trait Element: Node { public fun setAttributeNodeNS(arg1: Attr): Attr = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait Entity: Node { public val inputEncoding: String public val notationName: String @@ -163,9 +178,11 @@ native public trait Entity: Node { public val xmlVersion: String } +deprecated("Use org.w3c.dom3 instead") native public trait EntityReference: Node { } +deprecated("Use org.w3c.dom3 instead") native public trait NameList { public val length: Int public fun contains(arg1: String?): Boolean = noImpl @@ -174,6 +191,7 @@ native public trait NameList { public fun getNamespaceURI(arg1: Int): String = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait NamedNodeMap { public val length: Int public fun getNamedItem(arg1: String?): Node = noImpl @@ -185,6 +203,7 @@ native public trait NamedNodeMap { public fun setNamedItemNS(arg1: Node): Node = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait Node { public val attributes: NamedNodeMap public val baseURI: String @@ -243,21 +262,25 @@ native public trait Node { } } +deprecated("Use org.w3c.dom3 instead") native public trait NodeList { public val length: Int public fun item(arg1: Int): Node = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait Notation: Node { public val publicId: String public val systemId: String } +deprecated("Use org.w3c.dom3 instead") native public trait ProcessingInstruction: Node { public var data: String public val target: String } +deprecated("Use org.w3c.dom3 instead") native public trait Text: CharacterData { public val wholeText: String public fun isElementContentWhitespace(): Boolean = noImpl @@ -265,6 +288,7 @@ native public trait Text: CharacterData { public fun splitText(arg1: Int): Text = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait TypeInfo { public val typeName: String public val typeNamespace: String @@ -278,6 +302,7 @@ native public trait TypeInfo { } } +deprecated("Use org.w3c.dom3 instead") native public trait UserDataHandler { public fun handle(arg1: Short, arg2: String?, arg3: Any, arg4: Node, arg5: Node): Unit = noImpl diff --git a/js/js.libraries/src/core/dom3.kt b/js/js.libraries/src/core/dom3.kt new file mode 100644 index 00000000000..6ffa0e0ff5d --- /dev/null +++ b/js/js.libraries/src/core/dom3.kt @@ -0,0 +1,5511 @@ +/* + * Generated file + * DO NOT EDIT + * + * See libraries/tools/idl2k for details + */ + +package org.w3c.dom3 + +native trait HTMLAllCollection : HTMLCollection { + fun item(name : String) : dynamic = noImpl + override fun namedItem(name : String) : dynamic = noImpl + nativeGetter override fun get(name : String) : dynamic = noImpl +} +native trait HTMLFormControlsCollection : HTMLCollection { + override fun namedItem(name : String) : dynamic = noImpl + nativeGetter override fun get(name : String) : dynamic = noImpl +} +native trait RadioNodeList : NodeList { + var value : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLOptionsCollection : HTMLCollection { + var selectedIndex : Int + get() = noImpl + set(value) = noImpl + fun set(index : Int, option : HTMLOptionElement?) : Unit? = noImpl + fun add(element : UnionHTMLOptGroupElementOrHTMLOptionElement, before : dynamic = null) : Unit = noImpl + fun remove(index : Int) : Unit = noImpl +} +native trait HTMLPropertiesCollection : HTMLCollection { + var names : dynamic + get() = noImpl + set(value) = noImpl +// override fun namedItem(name : String) : PropertyNodeList? = noImpl +// nativeGetter override fun get(name : String) : PropertyNodeList? = noImpl +} +native trait PropertyNodeList : NodeList { + fun getValues() : dynamic = noImpl +} +native trait DOMStringMap { + nativeGetter fun get(name : String) : String? = noImpl + fun set(name : String, value : String) : Unit? = noImpl +} +native trait DOMElementMap { + nativeGetter fun get(name : String) : Element? = noImpl + fun set(name : String, value : Element) : Unit? = noImpl +} +native open class Document : Node { + var location : Location? + get() = noImpl + set(value) = noImpl + var domain : String + get() = noImpl + set(value) = noImpl + var referrer : String + get() = noImpl + set(value) = noImpl + var cookie : String + get() = noImpl + set(value) = noImpl + var lastModified : String + get() = noImpl + set(value) = noImpl + var readyState : String + get() = noImpl + set(value) = noImpl + var title : String + get() = noImpl + set(value) = noImpl + var dir : String + get() = noImpl + set(value) = noImpl + var body : HTMLElement? + get() = noImpl + set(value) = noImpl + var head : HTMLHeadElement? + get() = noImpl + set(value) = noImpl + var images : HTMLCollection + get() = noImpl + set(value) = noImpl + var embeds : HTMLCollection + get() = noImpl + set(value) = noImpl + var plugins : HTMLCollection + get() = noImpl + set(value) = noImpl + var links : HTMLCollection + get() = noImpl + set(value) = noImpl + var forms : HTMLCollection + get() = noImpl + set(value) = noImpl + var scripts : HTMLCollection + get() = noImpl + set(value) = noImpl + var cssElementMap : DOMElementMap + get() = noImpl + set(value) = noImpl + var currentScript : HTMLScriptElement? + get() = noImpl + set(value) = noImpl + var defaultView : Window? + get() = noImpl + set(value) = noImpl + var activeElement : Element? + get() = noImpl + set(value) = noImpl + var designMode : String + get() = noImpl + set(value) = noImpl + var commands : HTMLCollection + get() = noImpl + set(value) = noImpl + var onreadystatechange : () -> Unit + get() = noImpl + set(value) = noImpl + var fgColor : String + get() = noImpl + set(value) = noImpl + var linkColor : String + get() = noImpl + set(value) = noImpl + var vlinkColor : String + get() = noImpl + set(value) = noImpl + var alinkColor : String + get() = noImpl + set(value) = noImpl + var bgColor : String + get() = noImpl + set(value) = noImpl + var anchors : HTMLCollection + get() = noImpl + set(value) = noImpl + var applets : HTMLCollection + get() = noImpl + set(value) = noImpl + var all : HTMLAllCollection + get() = noImpl + set(value) = noImpl + var implementation : DOMImplementation + get() = noImpl + set(value) = noImpl + var URL : String + get() = noImpl + set(value) = noImpl + var documentURI : String + get() = noImpl + set(value) = noImpl + var origin : String + get() = noImpl + set(value) = noImpl + var compatMode : String + get() = noImpl + set(value) = noImpl + var characterSet : String + get() = noImpl + set(value) = noImpl + var inputEncoding : String + get() = noImpl + set(value) = noImpl + var contentType : String + get() = noImpl + set(value) = noImpl + var doctype : DocumentType? + get() = noImpl + set(value) = noImpl + var documentElement : Element? + get() = noImpl + set(value) = noImpl + var fullscreenEnabled : Boolean + get() = noImpl + set(value) = noImpl + var fullscreenElement : Element? + get() = noImpl + set(value) = noImpl + var onfullscreenchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onfullscreenerror : () -> Unit + get() = noImpl + set(value) = noImpl + var styleSheets : StyleSheetList + get() = noImpl + set(value) = noImpl + var selectedStyleSheetSet : String? + get() = noImpl + set(value) = noImpl + var lastStyleSheetSet : String? + get() = noImpl + set(value) = noImpl + var preferredStyleSheetSet : String? + get() = noImpl + set(value) = noImpl + var styleSheetSets : dynamic + get() = noImpl + set(value) = noImpl + var onabort : () -> Unit + get() = noImpl + set(value) = noImpl + var onautocomplete : () -> Unit + get() = noImpl + set(value) = noImpl + var onautocompleteerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onblur : () -> Unit + get() = noImpl + set(value) = noImpl + var oncancel : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplay : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplaythrough : () -> Unit + get() = noImpl + set(value) = noImpl + var onchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onclick : () -> Unit + get() = noImpl + set(value) = noImpl + var onclose : () -> Unit + get() = noImpl + set(value) = noImpl + var oncontextmenu : () -> Unit + get() = noImpl + set(value) = noImpl + var oncuechange : () -> Unit + get() = noImpl + set(value) = noImpl + var ondblclick : () -> Unit + get() = noImpl + set(value) = noImpl + var ondrag : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragend : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragenter : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragexit : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragleave : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragover : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragstart : () -> Unit + get() = noImpl + set(value) = noImpl + var ondrop : () -> Unit + get() = noImpl + set(value) = noImpl + var ondurationchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onemptied : () -> Unit + get() = noImpl + set(value) = noImpl + var onended : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : dynamic + get() = noImpl + set(value) = noImpl + var onfocus : () -> Unit + get() = noImpl + set(value) = noImpl + var oninput : () -> Unit + get() = noImpl + set(value) = noImpl + var oninvalid : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeydown : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeypress : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeyup : () -> Unit + get() = noImpl + set(value) = noImpl + var onload : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadeddata : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadedmetadata : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadstart : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousedown : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseenter : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseleave : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousemove : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseout : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseover : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseup : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousewheel : () -> Unit + get() = noImpl + set(value) = noImpl + var onpause : () -> Unit + get() = noImpl + set(value) = noImpl + var onplay : () -> Unit + get() = noImpl + set(value) = noImpl + var onplaying : () -> Unit + get() = noImpl + set(value) = noImpl + var onprogress : () -> Unit + get() = noImpl + set(value) = noImpl + var onratechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onreset : () -> Unit + get() = noImpl + set(value) = noImpl + var onresize : () -> Unit + get() = noImpl + set(value) = noImpl + var onscroll : () -> Unit + get() = noImpl + set(value) = noImpl + var onseeked : () -> Unit + get() = noImpl + set(value) = noImpl + var onseeking : () -> Unit + get() = noImpl + set(value) = noImpl + var onselect : () -> Unit + get() = noImpl + set(value) = noImpl + var onshow : () -> Unit + get() = noImpl + set(value) = noImpl + var onsort : () -> Unit + get() = noImpl + set(value) = noImpl + var onstalled : () -> Unit + get() = noImpl + set(value) = noImpl + var onsubmit : () -> Unit + get() = noImpl + set(value) = noImpl + var onsuspend : () -> Unit + get() = noImpl + set(value) = noImpl + var ontimeupdate : () -> Unit + get() = noImpl + set(value) = noImpl + var ontoggle : () -> Unit + get() = noImpl + set(value) = noImpl + var onvolumechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onwaiting : () -> Unit + get() = noImpl + set(value) = noImpl + var children : HTMLCollection + get() = noImpl + set(value) = noImpl + var firstElementChild : Element? + get() = noImpl + set(value) = noImpl + var lastElementChild : Element? + get() = noImpl + set(value) = noImpl + var childElementCount : Int + get() = noImpl + set(value) = noImpl + nativeGetter fun get(name : String) : dynamic = noImpl + fun getElementsByName(elementName : String) : NodeList = noImpl + fun getItems(typeNames : String = "") : NodeList = noImpl + fun open(type : String = "text/html", replace : String = "") : Document = noImpl + fun open(url : String, name : String, features : String, replace : Boolean = false) : Window = noImpl + fun close() : Unit = noImpl + fun write(vararg text : String) : Unit = noImpl + fun writeln(vararg text : String) : Unit = noImpl + fun hasFocus() : Boolean = noImpl + fun execCommand(commandId : String, showUI : Boolean = false, value : String = "") : Boolean = noImpl + fun queryCommandEnabled(commandId : String) : Boolean = noImpl + fun queryCommandIndeterm(commandId : String) : Boolean = noImpl + fun queryCommandState(commandId : String) : Boolean = noImpl + fun queryCommandSupported(commandId : String) : Boolean = noImpl + fun queryCommandValue(commandId : String) : String = noImpl + fun clear() : Unit = noImpl + fun captureEvents() : Unit = noImpl + fun releaseEvents() : Unit = noImpl + fun getElementsByTagName(localName : String) : HTMLCollection = noImpl + fun getElementsByTagNameNS(namespace : String?, localName : String) : HTMLCollection = noImpl + fun getElementsByClassName(classNames : String) : HTMLCollection = noImpl + fun createElement(localName : String) : Element = noImpl + fun createElementNS(namespace : String?, qualifiedName : String) : Element = noImpl + fun createDocumentFragment() : DocumentFragment = noImpl + fun createTextNode(data : String) : Text = noImpl + fun createComment(data : String) : Comment = noImpl + fun createProcessingInstruction(target : String, data : String) : ProcessingInstruction = noImpl + fun importNode(node : Node, deep : Boolean = false) : Node = noImpl + fun adoptNode(node : Node) : Node = noImpl + fun createAttribute(localName : String) : Attr = noImpl + fun createAttributeNS(namespace : String?, name : String) : Attr = noImpl + fun createEvent(interface_ : String) : Event = noImpl + fun createRange() : Range = noImpl + fun createNodeIterator(root : Node, whatToShow : Int = noImpl, filter : NodeFilter? = null) : NodeIterator = noImpl + fun createTreeWalker(root : Node, whatToShow : Int = noImpl, filter : NodeFilter? = null) : TreeWalker = noImpl + fun getSelection() : Selection = noImpl + fun exitFullscreen() : Unit = noImpl + fun enableStyleSheetsForSet(name : String?) : Unit = noImpl + fun getElementById(elementId : String) : Element? = noImpl + fun prepend(vararg nodes : dynamic) : Unit = noImpl + fun append(vararg nodes : dynamic) : Unit = noImpl + fun query(relativeSelectors : String) : Element? = noImpl + fun queryAll(relativeSelectors : String) : dynamic = noImpl + fun querySelector(selectors : String) : Element? = noImpl + fun querySelectorAll(selectors : String) : NodeList = noImpl +} +native open class XMLDocument : Document() { + fun load(url : String) : Boolean = noImpl +} +native trait HTMLElement : Element { + var title : String + get() = noImpl + set(value) = noImpl + var lang : String + get() = noImpl + set(value) = noImpl + var translate : Boolean + get() = noImpl + set(value) = noImpl + var dir : String + get() = noImpl + set(value) = noImpl + var dataset : DOMStringMap + get() = noImpl + set(value) = noImpl + var itemScope : Boolean + get() = noImpl + set(value) = noImpl + var itemType : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var itemId : String + get() = noImpl + set(value) = noImpl + var itemRef : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var itemProp : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var properties : HTMLPropertiesCollection + get() = noImpl + set(value) = noImpl + var itemValue : Any + get() = noImpl + set(value) = noImpl + var hidden : Boolean + get() = noImpl + set(value) = noImpl + var tabIndex : Int + get() = noImpl + set(value) = noImpl + var accessKey : String + get() = noImpl + set(value) = noImpl + var accessKeyLabel : String + get() = noImpl + set(value) = noImpl + var draggable : Boolean + get() = noImpl + set(value) = noImpl + var dropzone : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var contextMenu : HTMLMenuElement? + get() = noImpl + set(value) = noImpl + var spellcheck : Boolean + get() = noImpl + set(value) = noImpl + var commandType : String? + get() = noImpl + set(value) = noImpl + var commandLabel : String? + get() = noImpl + set(value) = noImpl + var commandIcon : String? + get() = noImpl + set(value) = noImpl + var commandHidden : Boolean? + get() = noImpl + set(value) = noImpl + var commandDisabled : Boolean? + get() = noImpl + set(value) = noImpl + var commandChecked : Boolean? + get() = noImpl + set(value) = noImpl + var onabort : () -> Unit + get() = noImpl + set(value) = noImpl + var onautocomplete : () -> Unit + get() = noImpl + set(value) = noImpl + var onautocompleteerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onblur : () -> Unit + get() = noImpl + set(value) = noImpl + var oncancel : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplay : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplaythrough : () -> Unit + get() = noImpl + set(value) = noImpl + var onchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onclick : () -> Unit + get() = noImpl + set(value) = noImpl + var onclose : () -> Unit + get() = noImpl + set(value) = noImpl + var oncontextmenu : () -> Unit + get() = noImpl + set(value) = noImpl + var oncuechange : () -> Unit + get() = noImpl + set(value) = noImpl + var ondblclick : () -> Unit + get() = noImpl + set(value) = noImpl + var ondrag : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragend : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragenter : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragexit : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragleave : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragover : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragstart : () -> Unit + get() = noImpl + set(value) = noImpl + var ondrop : () -> Unit + get() = noImpl + set(value) = noImpl + var ondurationchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onemptied : () -> Unit + get() = noImpl + set(value) = noImpl + var onended : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : dynamic + get() = noImpl + set(value) = noImpl + var onfocus : () -> Unit + get() = noImpl + set(value) = noImpl + var oninput : () -> Unit + get() = noImpl + set(value) = noImpl + var oninvalid : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeydown : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeypress : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeyup : () -> Unit + get() = noImpl + set(value) = noImpl + var onload : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadeddata : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadedmetadata : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadstart : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousedown : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseenter : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseleave : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousemove : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseout : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseover : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseup : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousewheel : () -> Unit + get() = noImpl + set(value) = noImpl + var onpause : () -> Unit + get() = noImpl + set(value) = noImpl + var onplay : () -> Unit + get() = noImpl + set(value) = noImpl + var onplaying : () -> Unit + get() = noImpl + set(value) = noImpl + var onprogress : () -> Unit + get() = noImpl + set(value) = noImpl + var onratechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onreset : () -> Unit + get() = noImpl + set(value) = noImpl + var onresize : () -> Unit + get() = noImpl + set(value) = noImpl + var onscroll : () -> Unit + get() = noImpl + set(value) = noImpl + var onseeked : () -> Unit + get() = noImpl + set(value) = noImpl + var onseeking : () -> Unit + get() = noImpl + set(value) = noImpl + var onselect : () -> Unit + get() = noImpl + set(value) = noImpl + var onshow : () -> Unit + get() = noImpl + set(value) = noImpl + var onsort : () -> Unit + get() = noImpl + set(value) = noImpl + var onstalled : () -> Unit + get() = noImpl + set(value) = noImpl + var onsubmit : () -> Unit + get() = noImpl + set(value) = noImpl + var onsuspend : () -> Unit + get() = noImpl + set(value) = noImpl + var ontimeupdate : () -> Unit + get() = noImpl + set(value) = noImpl + var ontoggle : () -> Unit + get() = noImpl + set(value) = noImpl + var onvolumechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onwaiting : () -> Unit + get() = noImpl + set(value) = noImpl + var contentEditable : String + get() = noImpl + set(value) = noImpl + var isContentEditable : Boolean + get() = noImpl + set(value) = noImpl + var style : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + fun click() : Unit = noImpl + fun focus() : Unit = noImpl + fun blur() : Unit = noImpl + fun forceSpellCheck() : Unit = noImpl +} +native trait HTMLUnknownElement : HTMLElement { +} +native trait HTMLHtmlElement : HTMLElement { + var version : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLHeadElement : HTMLElement { +} +native trait HTMLTitleElement : HTMLElement { + var text : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLBaseElement : HTMLElement { + var href : String + get() = noImpl + set(value) = noImpl + var target : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLLinkElement : HTMLElement { + var href : String + get() = noImpl + set(value) = noImpl + var crossOrigin : String? + get() = noImpl + set(value) = noImpl + var rel : String + get() = noImpl + set(value) = noImpl + var relList : DOMTokenList + get() = noImpl + set(value) = noImpl + var media : String + get() = noImpl + set(value) = noImpl + var hreflang : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var sizes : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var charset : String + get() = noImpl + set(value) = noImpl + var rev : String + get() = noImpl + set(value) = noImpl + var target : String + get() = noImpl + set(value) = noImpl + var sheet : StyleSheet? + get() = noImpl + set(value) = noImpl +} +native trait HTMLMetaElement : HTMLElement { + var name : String + get() = noImpl + set(value) = noImpl + var httpEquiv : String + get() = noImpl + set(value) = noImpl + var content : String + get() = noImpl + set(value) = noImpl + var scheme : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLStyleElement : HTMLElement { + var media : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var scoped : Boolean + get() = noImpl + set(value) = noImpl + var sheet : StyleSheet? + get() = noImpl + set(value) = noImpl +} +native trait HTMLBodyElement : HTMLElement { + var text : String + get() = noImpl + set(value) = noImpl + var link : String + get() = noImpl + set(value) = noImpl + var vLink : String + get() = noImpl + set(value) = noImpl + var aLink : String + get() = noImpl + set(value) = noImpl + var bgColor : String + get() = noImpl + set(value) = noImpl + var background : String + get() = noImpl + set(value) = noImpl + var onafterprint : () -> Unit + get() = noImpl + set(value) = noImpl + var onbeforeprint : () -> Unit + get() = noImpl + set(value) = noImpl + var onbeforeunload : dynamic + get() = noImpl + set(value) = noImpl + var onhashchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onlanguagechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + var onoffline : () -> Unit + get() = noImpl + set(value) = noImpl + var ononline : () -> Unit + get() = noImpl + set(value) = noImpl + var onpagehide : () -> Unit + get() = noImpl + set(value) = noImpl + var onpageshow : () -> Unit + get() = noImpl + set(value) = noImpl + var onpopstate : () -> Unit + get() = noImpl + set(value) = noImpl + var onstorage : () -> Unit + get() = noImpl + set(value) = noImpl + var onunload : () -> Unit + get() = noImpl + set(value) = noImpl +} +native trait HTMLHeadingElement : HTMLElement { + var align : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLParagraphElement : HTMLElement { + var align : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLHRElement : HTMLElement { + var align : String + get() = noImpl + set(value) = noImpl + var color : String + get() = noImpl + set(value) = noImpl + var noShade : Boolean + get() = noImpl + set(value) = noImpl + var size : String + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLPreElement : HTMLElement { + var width : Int + get() = noImpl + set(value) = noImpl +} +native trait HTMLQuoteElement : HTMLElement { + var cite : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLOListElement : HTMLElement { + var reversed : Boolean + get() = noImpl + set(value) = noImpl + var start : Int + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var compact : Boolean + get() = noImpl + set(value) = noImpl +} +native trait HTMLUListElement : HTMLElement { + var compact : Boolean + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLLIElement : HTMLElement { + var value : Int + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLDListElement : HTMLElement { + var compact : Boolean + get() = noImpl + set(value) = noImpl +} +native trait HTMLDivElement : HTMLElement { + var align : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLAnchorElement : HTMLElement { + var target : String + get() = noImpl + set(value) = noImpl + var download : String + get() = noImpl + set(value) = noImpl + var ping : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var rel : String + get() = noImpl + set(value) = noImpl + var relList : DOMTokenList + get() = noImpl + set(value) = noImpl + var hreflang : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var text : String + get() = noImpl + set(value) = noImpl + var coords : String + get() = noImpl + set(value) = noImpl + var charset : String + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var rev : String + get() = noImpl + set(value) = noImpl + var shape : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLDataElement : HTMLElement { + var value : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLTimeElement : HTMLElement { + var dateTime : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLSpanElement : HTMLElement { +} +native trait HTMLBRElement : HTMLElement { + var clear : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLModElement : HTMLElement { + var cite : String + get() = noImpl + set(value) = noImpl + var dateTime : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLIFrameElement : HTMLElement { + var src : String + get() = noImpl + set(value) = noImpl + var srcdoc : String + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var sandbox : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var seamless : Boolean + get() = noImpl + set(value) = noImpl + var allowFullscreen : Boolean + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl + var height : String + get() = noImpl + set(value) = noImpl + var contentDocument : Document? + get() = noImpl + set(value) = noImpl + var contentWindow : Window? + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var scrolling : String + get() = noImpl + set(value) = noImpl + var frameBorder : String + get() = noImpl + set(value) = noImpl + var longDesc : String + get() = noImpl + set(value) = noImpl + var marginHeight : String + get() = noImpl + set(value) = noImpl + var marginWidth : String + get() = noImpl + set(value) = noImpl + fun getSVGDocument() : Document? = noImpl +} +native trait HTMLEmbedElement : HTMLElement { + var src : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl + var height : String + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + fun getSVGDocument() : Document? = noImpl +} +native trait HTMLObjectElement : HTMLElement { + var data : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var typeMustMatch : Boolean + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var useMap : String + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl + var height : String + get() = noImpl + set(value) = noImpl + var contentDocument : Document? + get() = noImpl + set(value) = noImpl + var contentWindow : Window? + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var archive : String + get() = noImpl + set(value) = noImpl + var code : String + get() = noImpl + set(value) = noImpl + var declare : Boolean + get() = noImpl + set(value) = noImpl + var hspace : Int + get() = noImpl + set(value) = noImpl + var standby : String + get() = noImpl + set(value) = noImpl + var vspace : Int + get() = noImpl + set(value) = noImpl + var codeBase : String + get() = noImpl + set(value) = noImpl + var codeType : String + get() = noImpl + set(value) = noImpl + var border : String + get() = noImpl + set(value) = noImpl + fun getSVGDocument() : Document? = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl +} +native trait HTMLParamElement : HTMLElement { + var name : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var valueType : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLVideoElement : HTMLMediaElement { + var width : Int + get() = noImpl + set(value) = noImpl + var height : Int + get() = noImpl + set(value) = noImpl + var videoWidth : Int + get() = noImpl + set(value) = noImpl + var videoHeight : Int + get() = noImpl + set(value) = noImpl + var poster : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLAudioElement : HTMLMediaElement { +} +native trait HTMLSourceElement : HTMLElement { + var src : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var srcset : String + get() = noImpl + set(value) = noImpl + var sizes : String + get() = noImpl + set(value) = noImpl + var media : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLTrackElement : HTMLElement { + var kind : String + get() = noImpl + set(value) = noImpl + var src : String + get() = noImpl + set(value) = noImpl + var srclang : String + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl + var default : Boolean + get() = noImpl + set(value) = noImpl + var readyState : Short + get() = noImpl + set(value) = noImpl + var track : TextTrack + get() = noImpl + set(value) = noImpl +companion object { + val NONE : Short = 0 + val LOADING : Short = 1 + val LOADED : Short = 2 + val ERROR : Short = 3 +} +} +native trait HTMLMediaElement : HTMLElement { + var error : MediaError? + get() = noImpl + set(value) = noImpl + var src : String + get() = noImpl + set(value) = noImpl + var srcObject : dynamic + get() = noImpl + set(value) = noImpl + var currentSrc : String + get() = noImpl + set(value) = noImpl + var crossOrigin : String? + get() = noImpl + set(value) = noImpl + var networkState : Short + get() = noImpl + set(value) = noImpl + var preload : String + get() = noImpl + set(value) = noImpl + var buffered : TimeRanges + get() = noImpl + set(value) = noImpl + var readyState : Short + get() = noImpl + set(value) = noImpl + var seeking : Boolean + get() = noImpl + set(value) = noImpl + var currentTime : Double + get() = noImpl + set(value) = noImpl + var duration : Double + get() = noImpl + set(value) = noImpl + var paused : Boolean + get() = noImpl + set(value) = noImpl + var defaultPlaybackRate : Double + get() = noImpl + set(value) = noImpl + var playbackRate : Double + get() = noImpl + set(value) = noImpl + var played : TimeRanges + get() = noImpl + set(value) = noImpl + var seekable : TimeRanges + get() = noImpl + set(value) = noImpl + var ended : Boolean + get() = noImpl + set(value) = noImpl + var autoplay : Boolean + get() = noImpl + set(value) = noImpl + var loop : Boolean + get() = noImpl + set(value) = noImpl + var mediaGroup : String + get() = noImpl + set(value) = noImpl + var controller : MediaController? + get() = noImpl + set(value) = noImpl + var controls : Boolean + get() = noImpl + set(value) = noImpl + var volume : Double + get() = noImpl + set(value) = noImpl + var muted : Boolean + get() = noImpl + set(value) = noImpl + var defaultMuted : Boolean + get() = noImpl + set(value) = noImpl + var audioTracks : AudioTrackList + get() = noImpl + set(value) = noImpl + var videoTracks : VideoTrackList + get() = noImpl + set(value) = noImpl + var textTracks : TextTrackList + get() = noImpl + set(value) = noImpl + fun load() : Unit = noImpl + fun canPlayType(type : String) : String = noImpl + fun fastSeek(time : Double) : Unit = noImpl + fun getStartDate() : dynamic = noImpl + fun play() : Unit = noImpl + fun pause() : Unit = noImpl + fun addTextTrack(kind : String, label : String = "", language : String = "") : TextTrack = noImpl +companion object { + val NETWORK_EMPTY : Short = 0 + val NETWORK_IDLE : Short = 1 + val NETWORK_LOADING : Short = 2 + val NETWORK_NO_SOURCE : Short = 3 + val HAVE_NOTHING : Short = 0 + val HAVE_METADATA : Short = 1 + val HAVE_CURRENT_DATA : Short = 2 + val HAVE_FUTURE_DATA : Short = 3 + val HAVE_ENOUGH_DATA : Short = 4 +} +} +native trait MediaError { + var code : Short + get() = noImpl + set(value) = noImpl +companion object { + val MEDIA_ERR_ABORTED : Short = 1 + val MEDIA_ERR_NETWORK : Short = 2 + val MEDIA_ERR_DECODE : Short = 3 + val MEDIA_ERR_SRC_NOT_SUPPORTED : Short = 4 +} +} +native trait AudioTrackList : EventTarget { + var length : Int + get() = noImpl + set(value) = noImpl + var onchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onaddtrack : () -> Unit + get() = noImpl + set(value) = noImpl + var onremovetrack : () -> Unit + get() = noImpl + set(value) = noImpl + nativeGetter fun get(index : Int) : AudioTrack? = noImpl + fun getTrackById(id : String) : AudioTrack? = noImpl +} +native trait AudioTrack { + var id : String + get() = noImpl + set(value) = noImpl + var kind : String + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl + var language : String + get() = noImpl + set(value) = noImpl + var enabled : Boolean + get() = noImpl + set(value) = noImpl +} +native trait VideoTrackList : EventTarget { + var length : Int + get() = noImpl + set(value) = noImpl + var selectedIndex : Int + get() = noImpl + set(value) = noImpl + var onchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onaddtrack : () -> Unit + get() = noImpl + set(value) = noImpl + var onremovetrack : () -> Unit + get() = noImpl + set(value) = noImpl + nativeGetter fun get(index : Int) : VideoTrack? = noImpl + fun getTrackById(id : String) : VideoTrack? = noImpl +} +native trait VideoTrack { + var id : String + get() = noImpl + set(value) = noImpl + var kind : String + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl + var language : String + get() = noImpl + set(value) = noImpl + var selected : Boolean + get() = noImpl + set(value) = noImpl +} +native open class MediaController : EventTarget { + var readyState : Short + get() = noImpl + set(value) = noImpl + var buffered : TimeRanges + get() = noImpl + set(value) = noImpl + var seekable : TimeRanges + get() = noImpl + set(value) = noImpl + var duration : Double + get() = noImpl + set(value) = noImpl + var currentTime : Double + get() = noImpl + set(value) = noImpl + var paused : Boolean + get() = noImpl + set(value) = noImpl + var playbackState : String + get() = noImpl + set(value) = noImpl + var played : TimeRanges + get() = noImpl + set(value) = noImpl + var defaultPlaybackRate : Double + get() = noImpl + set(value) = noImpl + var playbackRate : Double + get() = noImpl + set(value) = noImpl + var volume : Double + get() = noImpl + set(value) = noImpl + var muted : Boolean + get() = noImpl + set(value) = noImpl + var onemptied : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadedmetadata : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadeddata : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplay : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplaythrough : () -> Unit + get() = noImpl + set(value) = noImpl + var onplaying : () -> Unit + get() = noImpl + set(value) = noImpl + var onended : () -> Unit + get() = noImpl + set(value) = noImpl + var onwaiting : () -> Unit + get() = noImpl + set(value) = noImpl + var ondurationchange : () -> Unit + get() = noImpl + set(value) = noImpl + var ontimeupdate : () -> Unit + get() = noImpl + set(value) = noImpl + var onplay : () -> Unit + get() = noImpl + set(value) = noImpl + var onpause : () -> Unit + get() = noImpl + set(value) = noImpl + var onratechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onvolumechange : () -> Unit + get() = noImpl + set(value) = noImpl + fun pause() : Unit = noImpl + fun unpause() : Unit = noImpl + fun play() : Unit = noImpl +} +native trait TextTrackList : EventTarget { + var length : Int + get() = noImpl + set(value) = noImpl + var onchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onaddtrack : () -> Unit + get() = noImpl + set(value) = noImpl + var onremovetrack : () -> Unit + get() = noImpl + set(value) = noImpl + nativeGetter fun get(index : Int) : TextTrack? = noImpl + fun getTrackById(id : String) : TextTrack? = noImpl +} +native trait TextTrack : EventTarget { + var kind : String + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl + var language : String + get() = noImpl + set(value) = noImpl + var id : String + get() = noImpl + set(value) = noImpl + var inBandMetadataTrackDispatchType : String + get() = noImpl + set(value) = noImpl + var mode : String + get() = noImpl + set(value) = noImpl + var cues : TextTrackCueList? + get() = noImpl + set(value) = noImpl + var activeCues : TextTrackCueList? + get() = noImpl + set(value) = noImpl + var oncuechange : () -> Unit + get() = noImpl + set(value) = noImpl + fun addCue(cue : TextTrackCue) : Unit = noImpl + fun removeCue(cue : TextTrackCue) : Unit = noImpl +} +native trait TextTrackCueList { + var length : Int + get() = noImpl + set(value) = noImpl + nativeGetter fun get(index : Int) : TextTrackCue? = noImpl + fun getCueById(id : String) : TextTrackCue? = noImpl +} +native trait TextTrackCue : EventTarget { + var track : TextTrack? + get() = noImpl + set(value) = noImpl + var id : String + get() = noImpl + set(value) = noImpl + var startTime : Double + get() = noImpl + set(value) = noImpl + var endTime : Double + get() = noImpl + set(value) = noImpl + var pauseOnExit : Boolean + get() = noImpl + set(value) = noImpl + var onenter : () -> Unit + get() = noImpl + set(value) = noImpl + var onexit : () -> Unit + get() = noImpl + set(value) = noImpl +} +native trait TimeRanges { + var length : Int + get() = noImpl + set(value) = noImpl + fun start(index : Int) : Double = noImpl + fun end(index : Int) : Double = noImpl +} +native open class TrackEvent(type : String, eventInitDict : TrackEventInit = noImpl) : Event(type, eventInitDict) { + var track : dynamic + get() = noImpl + set(value) = noImpl +} +native open class TrackEventInit : EventInit() { + var track : dynamic +} +native trait HTMLMapElement : HTMLElement { + var name : String + get() = noImpl + set(value) = noImpl + var areas : HTMLCollection + get() = noImpl + set(value) = noImpl + var images : HTMLCollection + get() = noImpl + set(value) = noImpl +} +native trait HTMLAreaElement : HTMLElement { + var alt : String + get() = noImpl + set(value) = noImpl + var coords : String + get() = noImpl + set(value) = noImpl + var shape : String + get() = noImpl + set(value) = noImpl + var target : String + get() = noImpl + set(value) = noImpl + var download : String + get() = noImpl + set(value) = noImpl + var ping : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var rel : String + get() = noImpl + set(value) = noImpl + var relList : DOMTokenList + get() = noImpl + set(value) = noImpl + var hreflang : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var noHref : Boolean + get() = noImpl + set(value) = noImpl +} +native trait HTMLTableElement : HTMLElement { + var caption : HTMLTableCaptionElement? + get() = noImpl + set(value) = noImpl + var tHead : HTMLTableSectionElement? + get() = noImpl + set(value) = noImpl + var tFoot : HTMLTableSectionElement? + get() = noImpl + set(value) = noImpl + var tBodies : HTMLCollection + get() = noImpl + set(value) = noImpl + var rows : HTMLCollection + get() = noImpl + set(value) = noImpl + var sortable : Boolean + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var border : String + get() = noImpl + set(value) = noImpl + var frame : String + get() = noImpl + set(value) = noImpl + var rules : String + get() = noImpl + set(value) = noImpl + var summary : String + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl + var bgColor : String + get() = noImpl + set(value) = noImpl + var cellPadding : String + get() = noImpl + set(value) = noImpl + var cellSpacing : String + get() = noImpl + set(value) = noImpl + fun createCaption() : HTMLElement = noImpl + fun deleteCaption() : Unit = noImpl + fun createTHead() : HTMLElement = noImpl + fun deleteTHead() : Unit = noImpl + fun createTFoot() : HTMLElement = noImpl + fun deleteTFoot() : Unit = noImpl + fun createTBody() : HTMLElement = noImpl + fun insertRow(index : Int = -1) : HTMLElement = noImpl + fun deleteRow(index : Int) : Unit = noImpl + fun stopSorting() : Unit = noImpl +} +native trait HTMLTableCaptionElement : HTMLElement { + var align : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLTableColElement : HTMLElement { + var span : Int + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var ch : String + get() = noImpl + set(value) = noImpl + var chOff : String + get() = noImpl + set(value) = noImpl + var vAlign : String + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLTableSectionElement : HTMLElement { + var rows : HTMLCollection + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var ch : String + get() = noImpl + set(value) = noImpl + var chOff : String + get() = noImpl + set(value) = noImpl + var vAlign : String + get() = noImpl + set(value) = noImpl + fun insertRow(index : Int = -1) : HTMLElement = noImpl + fun deleteRow(index : Int) : Unit = noImpl +} +native trait HTMLTableRowElement : HTMLElement { + var rowIndex : Int + get() = noImpl + set(value) = noImpl + var sectionRowIndex : Int + get() = noImpl + set(value) = noImpl + var cells : HTMLCollection + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var ch : String + get() = noImpl + set(value) = noImpl + var chOff : String + get() = noImpl + set(value) = noImpl + var vAlign : String + get() = noImpl + set(value) = noImpl + var bgColor : String + get() = noImpl + set(value) = noImpl + fun insertCell(index : Int = -1) : HTMLElement = noImpl + fun deleteCell(index : Int) : Unit = noImpl +} +native trait HTMLTableDataCellElement : HTMLTableCellElement { + var abbr : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLTableHeaderCellElement : HTMLTableCellElement { + var scope : String + get() = noImpl + set(value) = noImpl + var abbr : String + get() = noImpl + set(value) = noImpl + var sorted : String + get() = noImpl + set(value) = noImpl + fun sort() : Unit = noImpl +} +native trait HTMLTableCellElement : HTMLElement { + var colSpan : Int + get() = noImpl + set(value) = noImpl + var rowSpan : Int + get() = noImpl + set(value) = noImpl + var headers : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var cellIndex : Int + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var axis : String + get() = noImpl + set(value) = noImpl + var height : String + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl + var ch : String + get() = noImpl + set(value) = noImpl + var chOff : String + get() = noImpl + set(value) = noImpl + var noWrap : Boolean + get() = noImpl + set(value) = noImpl + var vAlign : String + get() = noImpl + set(value) = noImpl + var bgColor : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLFormElement : HTMLElement { + var acceptCharset : String + get() = noImpl + set(value) = noImpl + var action : String + get() = noImpl + set(value) = noImpl + var autocomplete : String + get() = noImpl + set(value) = noImpl + var enctype : String + get() = noImpl + set(value) = noImpl + var encoding : String + get() = noImpl + set(value) = noImpl + var method : String + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var noValidate : Boolean + get() = noImpl + set(value) = noImpl + var target : String + get() = noImpl + set(value) = noImpl + var elements : HTMLFormControlsCollection + get() = noImpl + set(value) = noImpl + var length : Int + get() = noImpl + set(value) = noImpl + nativeGetter fun get(index : Int) : Element? = noImpl + nativeGetter fun get(name : String) : dynamic = noImpl + fun submit() : Unit = noImpl + fun reset() : Unit = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun requestAutocomplete() : Unit = noImpl +} +native trait HTMLLabelElement : HTMLElement { + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var htmlFor : String + get() = noImpl + set(value) = noImpl + var control : HTMLElement? + get() = noImpl + set(value) = noImpl +} +native trait HTMLInputElement : HTMLElement { + var accept : String + get() = noImpl + set(value) = noImpl + var alt : String + get() = noImpl + set(value) = noImpl + var autocomplete : String + get() = noImpl + set(value) = noImpl + var autofocus : Boolean + get() = noImpl + set(value) = noImpl + var defaultChecked : Boolean + get() = noImpl + set(value) = noImpl + var checked : Boolean + get() = noImpl + set(value) = noImpl + var dirName : String + get() = noImpl + set(value) = noImpl + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var files : FileList? + get() = noImpl + set(value) = noImpl + var formAction : String + get() = noImpl + set(value) = noImpl + var formEnctype : String + get() = noImpl + set(value) = noImpl + var formMethod : String + get() = noImpl + set(value) = noImpl + var formNoValidate : Boolean + get() = noImpl + set(value) = noImpl + var formTarget : String + get() = noImpl + set(value) = noImpl + var height : Int + get() = noImpl + set(value) = noImpl + var indeterminate : Boolean + get() = noImpl + set(value) = noImpl + var inputMode : String + get() = noImpl + set(value) = noImpl + var list : HTMLElement? + get() = noImpl + set(value) = noImpl + var max : String + get() = noImpl + set(value) = noImpl + var maxLength : Int + get() = noImpl + set(value) = noImpl + var min : String + get() = noImpl + set(value) = noImpl + var minLength : Int + get() = noImpl + set(value) = noImpl + var multiple : Boolean + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var pattern : String + get() = noImpl + set(value) = noImpl + var placeholder : String + get() = noImpl + set(value) = noImpl + var readOnly : Boolean + get() = noImpl + set(value) = noImpl + var required : Boolean + get() = noImpl + set(value) = noImpl + var size : Int + get() = noImpl + set(value) = noImpl + var src : String + get() = noImpl + set(value) = noImpl + var step : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var defaultValue : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var valueAsDate : dynamic + get() = noImpl + set(value) = noImpl + var valueAsNumber : Double + get() = noImpl + set(value) = noImpl + var valueLow : Double + get() = noImpl + set(value) = noImpl + var valueHigh : Double + get() = noImpl + set(value) = noImpl + var width : Int + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl + var selectionStart : Int + get() = noImpl + set(value) = noImpl + var selectionEnd : Int + get() = noImpl + set(value) = noImpl + var selectionDirection : String + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var useMap : String + get() = noImpl + set(value) = noImpl + fun stepUp(n : Int = 1) : Unit = noImpl + fun stepDown(n : Int = 1) : Unit = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl + fun select() : Unit = noImpl + fun setRangeText(replacement : String) : Unit = noImpl + fun setRangeText(replacement : String, start : Int, end : Int, selectionMode : String = "preserve") : Unit = noImpl + fun setSelectionRange(start : Int, end : Int, direction : String = noImpl) : Unit = noImpl +} +native trait HTMLButtonElement : HTMLElement { + var autofocus : Boolean + get() = noImpl + set(value) = noImpl + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var formAction : String + get() = noImpl + set(value) = noImpl + var formEnctype : String + get() = noImpl + set(value) = noImpl + var formMethod : String + get() = noImpl + set(value) = noImpl + var formNoValidate : Boolean + get() = noImpl + set(value) = noImpl + var formTarget : String + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var menu : HTMLMenuElement? + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl +} +native trait HTMLSelectElement : HTMLElement { + var autocomplete : String + get() = noImpl + set(value) = noImpl + var autofocus : Boolean + get() = noImpl + set(value) = noImpl + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var multiple : Boolean + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var required : Boolean + get() = noImpl + set(value) = noImpl + var size : Int + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var options : HTMLOptionsCollection + get() = noImpl + set(value) = noImpl + var length : Int + get() = noImpl + set(value) = noImpl + var selectedOptions : HTMLCollection + get() = noImpl + set(value) = noImpl + var selectedIndex : Int + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl + fun item(index : Int) : Element? = noImpl + nativeGetter fun get(index : Int) : Element? = noImpl + fun namedItem(name : String) : HTMLOptionElement? = noImpl + fun add(element : UnionHTMLOptGroupElementOrHTMLOptionElement, before : dynamic = null) : Unit = noImpl + fun remove(index : Int) : Unit = noImpl + fun set(index : Int, option : HTMLOptionElement?) : Unit? = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl +} +native trait HTMLDataListElement : HTMLElement { + var options : HTMLCollection + get() = noImpl + set(value) = noImpl +} +native trait HTMLOptGroupElement : HTMLElement, UnionHTMLOptGroupElementOrHTMLOptionElement { + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLOptionElement : HTMLElement, UnionHTMLOptGroupElementOrHTMLOptionElement { + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl + var defaultSelected : Boolean + get() = noImpl + set(value) = noImpl + var selected : Boolean + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var text : String + get() = noImpl + set(value) = noImpl + var index : Int + get() = noImpl + set(value) = noImpl +} +native trait HTMLTextAreaElement : HTMLElement { + var autocomplete : String + get() = noImpl + set(value) = noImpl + var autofocus : Boolean + get() = noImpl + set(value) = noImpl + var cols : Int + get() = noImpl + set(value) = noImpl + var dirName : String + get() = noImpl + set(value) = noImpl + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var inputMode : String + get() = noImpl + set(value) = noImpl + var maxLength : Int + get() = noImpl + set(value) = noImpl + var minLength : Int + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var placeholder : String + get() = noImpl + set(value) = noImpl + var readOnly : Boolean + get() = noImpl + set(value) = noImpl + var required : Boolean + get() = noImpl + set(value) = noImpl + var rows : Int + get() = noImpl + set(value) = noImpl + var wrap : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var defaultValue : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var textLength : Int + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl + var selectionStart : Int + get() = noImpl + set(value) = noImpl + var selectionEnd : Int + get() = noImpl + set(value) = noImpl + var selectionDirection : String + get() = noImpl + set(value) = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl + fun select() : Unit = noImpl + fun setRangeText(replacement : String) : Unit = noImpl + fun setRangeText(replacement : String, start : Int, end : Int, selectionMode : String = "preserve") : Unit = noImpl + fun setSelectionRange(start : Int, end : Int, direction : String = noImpl) : Unit = noImpl +} +native trait HTMLKeygenElement : HTMLElement { + var autofocus : Boolean + get() = noImpl + set(value) = noImpl + var challenge : String + get() = noImpl + set(value) = noImpl + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var keytype : String + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl +} +native trait HTMLOutputElement : HTMLElement { + var htmlFor : DOMSettableTokenList + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var defaultValue : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl +} +native trait HTMLProgressElement : HTMLElement { + var value : Double + get() = noImpl + set(value) = noImpl + var max : Double + get() = noImpl + set(value) = noImpl + var position : Double + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl +} +native trait HTMLMeterElement : HTMLElement { + var value : Double + get() = noImpl + set(value) = noImpl + var min : Double + get() = noImpl + set(value) = noImpl + var max : Double + get() = noImpl + set(value) = noImpl + var low : Double + get() = noImpl + set(value) = noImpl + var high : Double + get() = noImpl + set(value) = noImpl + var optimum : Double + get() = noImpl + set(value) = noImpl + var labels : NodeList + get() = noImpl + set(value) = noImpl +} +native trait HTMLFieldSetElement : HTMLElement { + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var elements : HTMLFormControlsCollection + get() = noImpl + set(value) = noImpl + var willValidate : Boolean + get() = noImpl + set(value) = noImpl + var validity : ValidityState + get() = noImpl + set(value) = noImpl + var validationMessage : String + get() = noImpl + set(value) = noImpl + fun checkValidity() : Boolean = noImpl + fun reportValidity() : Boolean = noImpl + fun setCustomValidity(error : String) : Unit = noImpl +} +native trait HTMLLegendElement : HTMLElement { + var form : HTMLFormElement? + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl +} +native open class AutocompleteErrorEvent(type : String, eventInitDict : AutocompleteErrorEventInit = noImpl) : Event(type, eventInitDict) { + var reason : String + get() = noImpl + set(value) = noImpl +} +native open class AutocompleteErrorEventInit : EventInit() { + var reason : dynamic +} +native trait ValidityState { + var valueMissing : Boolean + get() = noImpl + set(value) = noImpl + var typeMismatch : Boolean + get() = noImpl + set(value) = noImpl + var patternMismatch : Boolean + get() = noImpl + set(value) = noImpl + var tooLong : Boolean + get() = noImpl + set(value) = noImpl + var tooShort : Boolean + get() = noImpl + set(value) = noImpl + var rangeUnderflow : Boolean + get() = noImpl + set(value) = noImpl + var rangeOverflow : Boolean + get() = noImpl + set(value) = noImpl + var stepMismatch : Boolean + get() = noImpl + set(value) = noImpl + var badInput : Boolean + get() = noImpl + set(value) = noImpl + var customError : Boolean + get() = noImpl + set(value) = noImpl + var valid : Boolean + get() = noImpl + set(value) = noImpl +} +native trait HTMLDetailsElement : HTMLElement { + var open : Boolean + get() = noImpl + set(value) = noImpl +} +native trait HTMLMenuElement : HTMLElement { + var type : String + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl + var compact : Boolean + get() = noImpl + set(value) = noImpl +} +native trait HTMLMenuItemElement : HTMLElement { + var type : String + get() = noImpl + set(value) = noImpl + var label : String + get() = noImpl + set(value) = noImpl + var icon : String + get() = noImpl + set(value) = noImpl + var disabled : Boolean + get() = noImpl + set(value) = noImpl + var checked : Boolean + get() = noImpl + set(value) = noImpl + var radiogroup : String + get() = noImpl + set(value) = noImpl + var default : Boolean + get() = noImpl + set(value) = noImpl + var command : HTMLElement? + get() = noImpl + set(value) = noImpl +} +native open class RelatedEvent(type : String, eventInitDict : RelatedEventInit = noImpl) : Event(type, eventInitDict) { + var relatedTarget : EventTarget? + get() = noImpl + set(value) = noImpl +} +native open class RelatedEventInit : EventInit() { + var relatedTarget : dynamic +} +native trait HTMLDialogElement : HTMLElement { + var open : Boolean + get() = noImpl + set(value) = noImpl + var returnValue : String + get() = noImpl + set(value) = noImpl + fun show(anchor : UnionElementOrMouseEvent = noImpl) : Unit = noImpl + fun showModal(anchor : UnionElementOrMouseEvent = noImpl) : Unit = noImpl + fun close(returnValue : String = noImpl) : Unit = noImpl +} +native trait HTMLScriptElement : HTMLElement { + var src : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var charset : String + get() = noImpl + set(value) = noImpl + var async : Boolean + get() = noImpl + set(value) = noImpl + var defer : Boolean + get() = noImpl + set(value) = noImpl + var crossOrigin : String? + get() = noImpl + set(value) = noImpl + var text : String + get() = noImpl + set(value) = noImpl + var event : String + get() = noImpl + set(value) = noImpl + var htmlFor : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLTemplateElement : HTMLElement { + var content : DocumentFragment + get() = noImpl + set(value) = noImpl +} +native trait HTMLCanvasElement : HTMLElement { + var width : Int + get() = noImpl + set(value) = noImpl + var height : Int + get() = noImpl + set(value) = noImpl + fun getContext(contextId : String, vararg arguments : Any) : dynamic = noImpl + fun probablySupportsContext(contextId : String, vararg arguments : Any) : Boolean = noImpl + fun setContext(context : dynamic) : Unit = noImpl + fun transferControlToProxy() : CanvasProxy = noImpl + fun toDataURL(type : String = noImpl, vararg arguments : Any) : String = noImpl + fun toBlob(_callback : () -> Unit?, type : String = noImpl, vararg arguments : Any) : Unit = noImpl +} +native trait CanvasProxy { + fun setContext(context : dynamic) : Unit = noImpl +} +native open class CanvasRenderingContext2DSettings { + var alpha : dynamic = true +} +native open class CanvasRenderingContext2D { + var canvas : HTMLCanvasElement + get() = noImpl + set(value) = noImpl + var width : Int + get() = noImpl + set(value) = noImpl + var height : Int + get() = noImpl + set(value) = noImpl + var currentTransform : dynamic + get() = noImpl + set(value) = noImpl + var globalAlpha : Double + get() = noImpl + set(value) = noImpl + var globalCompositeOperation : String + get() = noImpl + set(value) = noImpl + var imageSmoothingEnabled : Boolean + get() = noImpl + set(value) = noImpl + var strokeStyle : dynamic + get() = noImpl + set(value) = noImpl + var fillStyle : dynamic + get() = noImpl + set(value) = noImpl + var shadowOffsetX : Double + get() = noImpl + set(value) = noImpl + var shadowOffsetY : Double + get() = noImpl + set(value) = noImpl + var shadowBlur : Double + get() = noImpl + set(value) = noImpl + var shadowColor : String + get() = noImpl + set(value) = noImpl + var lineWidth : Double + get() = noImpl + set(value) = noImpl + var lineCap : String + get() = noImpl + set(value) = noImpl + var lineJoin : String + get() = noImpl + set(value) = noImpl + var miterLimit : Double + get() = noImpl + set(value) = noImpl + var lineDashOffset : Double + get() = noImpl + set(value) = noImpl + var font : String + get() = noImpl + set(value) = noImpl + var textAlign : String + get() = noImpl + set(value) = noImpl + var textBaseline : String + get() = noImpl + set(value) = noImpl + var direction : String + get() = noImpl + set(value) = noImpl + fun commit() : Unit = noImpl + fun save() : Unit = noImpl + fun restore() : Unit = noImpl + fun scale(x : Double, y : Double) : Unit = noImpl + fun rotate(angle : Double) : Unit = noImpl + fun translate(x : Double, y : Double) : Unit = noImpl + fun transform(a : Double, b : Double, c : Double, d : Double, e : Double, f : Double) : Unit = noImpl + fun setTransform(a : Double, b : Double, c : Double, d : Double, e : Double, f : Double) : Unit = noImpl + fun resetTransform() : Unit = noImpl + fun createLinearGradient(x0 : Double, y0 : Double, x1 : Double, y1 : Double) : CanvasGradient = noImpl + fun createRadialGradient(x0 : Double, y0 : Double, r0 : Double, x1 : Double, y1 : Double, r1 : Double) : CanvasGradient = noImpl + fun createPattern(image : dynamic, repetition : String) : CanvasPattern = noImpl + fun clearRect(x : Double, y : Double, w : Double, h : Double) : Unit = noImpl + fun fillRect(x : Double, y : Double, w : Double, h : Double) : Unit = noImpl + fun strokeRect(x : Double, y : Double, w : Double, h : Double) : Unit = noImpl + fun beginPath() : Unit = noImpl + fun fill(fillRule : String = "nonzero") : Unit = noImpl + fun fill(path : Path2D, fillRule : String = "nonzero") : Unit = noImpl + fun stroke() : Unit = noImpl + fun stroke(path : Path2D) : Unit = noImpl + fun drawFocusIfNeeded(element : Element) : Unit = noImpl + fun drawFocusIfNeeded(path : Path2D, element : Element) : Unit = noImpl + fun scrollPathIntoView() : Unit = noImpl + fun scrollPathIntoView(path : Path2D) : Unit = noImpl + fun clip(fillRule : String = "nonzero") : Unit = noImpl + fun clip(path : Path2D, fillRule : String = "nonzero") : Unit = noImpl + fun resetClip() : Unit = noImpl + fun isPointInPath(x : Double, y : Double, fillRule : String = "nonzero") : Boolean = noImpl + fun isPointInPath(path : Path2D, x : Double, y : Double, fillRule : String = "nonzero") : Boolean = noImpl + fun isPointInStroke(x : Double, y : Double) : Boolean = noImpl + fun isPointInStroke(path : Path2D, x : Double, y : Double) : Boolean = noImpl + fun fillText(text : String, x : Double, y : Double, maxWidth : Double = noImpl) : Unit = noImpl + fun strokeText(text : String, x : Double, y : Double, maxWidth : Double = noImpl) : Unit = noImpl + fun measureText(text : String) : TextMetrics = noImpl + fun drawImage(image : dynamic, dx : Double, dy : Double) : Unit = noImpl + fun drawImage(image : dynamic, dx : Double, dy : Double, dw : Double, dh : Double) : Unit = noImpl + fun drawImage(image : dynamic, sx : Double, sy : Double, sw : Double, sh : Double, dx : Double, dy : Double, dw : Double, dh : Double) : Unit = noImpl + fun addHitRegion(options : HitRegionOptions = noImpl) : Unit = noImpl + fun removeHitRegion(id : String) : Unit = noImpl + fun clearHitRegions() : Unit = noImpl + fun createImageData(sw : Double, sh : Double) : ImageData = noImpl + fun createImageData(imagedata : ImageData) : ImageData = noImpl + fun getImageData(sx : Double, sy : Double, sw : Double, sh : Double) : ImageData = noImpl + fun putImageData(imagedata : ImageData, dx : Double, dy : Double) : Unit = noImpl + fun putImageData(imagedata : ImageData, dx : Double, dy : Double, dirtyX : Double, dirtyY : Double, dirtyWidth : Double, dirtyHeight : Double) : Unit = noImpl + fun setLineDash(segments : Any) : Unit = noImpl + fun getLineDash() : Any = noImpl + fun closePath() : Unit = noImpl + fun moveTo(x : Double, y : Double) : Unit = noImpl + fun lineTo(x : Double, y : Double) : Unit = noImpl + fun quadraticCurveTo(cpx : Double, cpy : Double, x : Double, y : Double) : Unit = noImpl + fun bezierCurveTo(cp1x : Double, cp1y : Double, cp2x : Double, cp2y : Double, x : Double, y : Double) : Unit = noImpl + fun arcTo(x1 : Double, y1 : Double, x2 : Double, y2 : Double, radius : Double) : Unit = noImpl + fun arcTo(x1 : Double, y1 : Double, x2 : Double, y2 : Double, radiusX : Double, radiusY : Double, rotation : Double) : Unit = noImpl + fun rect(x : Double, y : Double, w : Double, h : Double) : Unit = noImpl + fun arc(x : Double, y : Double, radius : Double, startAngle : Double, endAngle : Double, anticlockwise : Boolean = false) : Unit = noImpl + fun ellipse(x : Double, y : Double, radiusX : Double, radiusY : Double, rotation : Double, startAngle : Double, endAngle : Double, anticlockwise : Boolean = false) : Unit = noImpl +} +native trait CanvasGradient { + fun addColorStop(offset : Double, color : String) : Unit = noImpl +} +native trait CanvasPattern { + fun setTransform(transform : dynamic) : Unit = noImpl +} +native trait TextMetrics { + var width : Double + get() = noImpl + set(value) = noImpl + var actualBoundingBoxLeft : Double + get() = noImpl + set(value) = noImpl + var actualBoundingBoxRight : Double + get() = noImpl + set(value) = noImpl + var fontBoundingBoxAscent : Double + get() = noImpl + set(value) = noImpl + var fontBoundingBoxDescent : Double + get() = noImpl + set(value) = noImpl + var actualBoundingBoxAscent : Double + get() = noImpl + set(value) = noImpl + var actualBoundingBoxDescent : Double + get() = noImpl + set(value) = noImpl + var emHeightAscent : Double + get() = noImpl + set(value) = noImpl + var emHeightDescent : Double + get() = noImpl + set(value) = noImpl + var hangingBaseline : Double + get() = noImpl + set(value) = noImpl + var alphabeticBaseline : Double + get() = noImpl + set(value) = noImpl + var ideographicBaseline : Double + get() = noImpl + set(value) = noImpl +} +native open class HitRegionOptions { + var path : dynamic = null + var fillRule : dynamic = "nonzero" + var id : dynamic = "" + var parentID : dynamic = null + var cursor : dynamic = "inherit" + var control : dynamic = null + var label : dynamic = null + var role : dynamic = null +} +native open class ImageData(sw : Int, sh : Int) { + var width : Int + get() = noImpl + set(value) = noImpl + var height : Int + get() = noImpl + set(value) = noImpl + var data : dynamic + get() = noImpl + set(value) = noImpl +} +native open class DrawingStyle(scope : Element = noImpl) { + var lineWidth : Double + get() = noImpl + set(value) = noImpl + var lineCap : String + get() = noImpl + set(value) = noImpl + var lineJoin : String + get() = noImpl + set(value) = noImpl + var miterLimit : Double + get() = noImpl + set(value) = noImpl + var lineDashOffset : Double + get() = noImpl + set(value) = noImpl + var font : String + get() = noImpl + set(value) = noImpl + var textAlign : String + get() = noImpl + set(value) = noImpl + var textBaseline : String + get() = noImpl + set(value) = noImpl + var direction : String + get() = noImpl + set(value) = noImpl + fun setLineDash(segments : Any) : Unit = noImpl + fun getLineDash() : Any = noImpl +} +native open class Path2D { + fun addPath(path : Path2D, transformation : dynamic = null) : Unit = noImpl + fun addPathByStrokingPath(path : Path2D, styles : dynamic, transformation : dynamic = null) : Unit = noImpl + fun addText(text : String, styles : dynamic, transformation : dynamic, x : Double, y : Double, maxWidth : Double = noImpl) : Unit = noImpl + fun addPathByStrokingText(text : String, styles : dynamic, transformation : dynamic, x : Double, y : Double, maxWidth : Double = noImpl) : Unit = noImpl + fun addText(text : String, styles : dynamic, transformation : dynamic, path : Path2D, maxWidth : Double = noImpl) : Unit = noImpl + fun addPathByStrokingText(text : String, styles : dynamic, transformation : dynamic, path : Path2D, maxWidth : Double = noImpl) : Unit = noImpl + fun closePath() : Unit = noImpl + fun moveTo(x : Double, y : Double) : Unit = noImpl + fun lineTo(x : Double, y : Double) : Unit = noImpl + fun quadraticCurveTo(cpx : Double, cpy : Double, x : Double, y : Double) : Unit = noImpl + fun bezierCurveTo(cp1x : Double, cp1y : Double, cp2x : Double, cp2y : Double, x : Double, y : Double) : Unit = noImpl + fun arcTo(x1 : Double, y1 : Double, x2 : Double, y2 : Double, radius : Double) : Unit = noImpl + fun arcTo(x1 : Double, y1 : Double, x2 : Double, y2 : Double, radiusX : Double, radiusY : Double, rotation : Double) : Unit = noImpl + fun rect(x : Double, y : Double, w : Double, h : Double) : Unit = noImpl + fun arc(x : Double, y : Double, radius : Double, startAngle : Double, endAngle : Double, anticlockwise : Boolean = false) : Unit = noImpl + fun ellipse(x : Double, y : Double, radiusX : Double, radiusY : Double, rotation : Double, startAngle : Double, endAngle : Double, anticlockwise : Boolean = false) : Unit = noImpl +} +native open class MouseEvent(typeArg : String, mouseEventInitDict : MouseEventInit = noImpl) : UIEvent(noImpl, noImpl), UnionElementOrMouseEvent { + var region : String? + get() = noImpl + set(value) = noImpl + var screenX : Int + get() = noImpl + set(value) = noImpl + var screenY : Int + get() = noImpl + set(value) = noImpl + var clientX : Int + get() = noImpl + set(value) = noImpl + var clientY : Int + get() = noImpl + set(value) = noImpl + var ctrlKey : Boolean + get() = noImpl + set(value) = noImpl + var shiftKey : Boolean + get() = noImpl + set(value) = noImpl + var altKey : Boolean + get() = noImpl + set(value) = noImpl + var metaKey : Boolean + get() = noImpl + set(value) = noImpl + var button : Short + get() = noImpl + set(value) = noImpl + var relatedTarget : EventTarget? + get() = noImpl + set(value) = noImpl + var buttons : Short + get() = noImpl + set(value) = noImpl + fun getModifierState(keyArg : String) : Boolean = noImpl + fun initMouseEvent(typeArg : String, bubblesArg : Boolean, cancelableArg : Boolean, viewArg : Window?, detailArg : Int, screenXArg : Int, screenYArg : Int, clientXArg : Int, clientYArg : Int, ctrlKeyArg : Boolean, altKeyArg : Boolean, shiftKeyArg : Boolean, metaKeyArg : Boolean, buttonArg : Short, relatedTargetArg : EventTarget?) : Unit = noImpl +} +native trait Touch { + var region : String? + get() = noImpl + set(value) = noImpl +} +native trait DataTransfer { + var dropEffect : String + get() = noImpl + set(value) = noImpl + var effectAllowed : String + get() = noImpl + set(value) = noImpl + var items : DataTransferItemList + get() = noImpl + set(value) = noImpl + var types : dynamic + get() = noImpl + set(value) = noImpl + var files : FileList + get() = noImpl + set(value) = noImpl + fun setDragImage(image : Element, x : Int, y : Int) : Unit = noImpl + fun getData(format : String) : String = noImpl + fun setData(format : String, data : String) : Unit = noImpl + fun clearData(format : String = noImpl) : Unit = noImpl +} +native trait DataTransferItemList { + var length : Int + get() = noImpl + set(value) = noImpl + nativeGetter fun get(index : Int) : DataTransferItem? = noImpl + fun add(data : String, type : String) : DataTransferItem? = noImpl + fun add(data : File) : DataTransferItem? = noImpl + fun remove(index : Int) : Unit = noImpl + fun clear() : Unit = noImpl +} +native trait DataTransferItem { + var kind : String + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + fun getAsString(_callback : () -> Unit?) : Unit = noImpl + fun getAsFile() : File? = noImpl +} +native open class DragEvent(type : String, eventInitDict : DragEventInit = noImpl) : MouseEvent(noImpl, noImpl) { + var dataTransfer : DataTransfer? + get() = noImpl + set(value) = noImpl +} +native open class DragEventInit : MouseEventInit() { + var dataTransfer : dynamic +} +native trait Window : EventTarget { + var window : Window + get() = noImpl + set(value) = noImpl + var self : Window + get() = noImpl + set(value) = noImpl + var document : Document + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var location : Location + get() = noImpl + set(value) = noImpl + var history : History + get() = noImpl + set(value) = noImpl + var locationbar : BarProp + get() = noImpl + set(value) = noImpl + var menubar : BarProp + get() = noImpl + set(value) = noImpl + var personalbar : BarProp + get() = noImpl + set(value) = noImpl + var scrollbars : BarProp + get() = noImpl + set(value) = noImpl + var statusbar : BarProp + get() = noImpl + set(value) = noImpl + var toolbar : BarProp + get() = noImpl + set(value) = noImpl + var status : String + get() = noImpl + set(value) = noImpl + var closed : Boolean + get() = noImpl + set(value) = noImpl + var frames : Window + get() = noImpl + set(value) = noImpl + var length : Int + get() = noImpl + set(value) = noImpl + var top : Window + get() = noImpl + set(value) = noImpl + var opener : Any + get() = noImpl + set(value) = noImpl + var parent : Window + get() = noImpl + set(value) = noImpl + var frameElement : Element? + get() = noImpl + set(value) = noImpl + var navigator : Navigator + get() = noImpl + set(value) = noImpl + var external : External + get() = noImpl + set(value) = noImpl + var applicationCache : ApplicationCache + get() = noImpl + set(value) = noImpl + var caches : CacheStorage + get() = noImpl + set(value) = noImpl + var onabort : () -> Unit + get() = noImpl + set(value) = noImpl + var onautocomplete : () -> Unit + get() = noImpl + set(value) = noImpl + var onautocompleteerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onblur : () -> Unit + get() = noImpl + set(value) = noImpl + var oncancel : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplay : () -> Unit + get() = noImpl + set(value) = noImpl + var oncanplaythrough : () -> Unit + get() = noImpl + set(value) = noImpl + var onchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onclick : () -> Unit + get() = noImpl + set(value) = noImpl + var onclose : () -> Unit + get() = noImpl + set(value) = noImpl + var oncontextmenu : () -> Unit + get() = noImpl + set(value) = noImpl + var oncuechange : () -> Unit + get() = noImpl + set(value) = noImpl + var ondblclick : () -> Unit + get() = noImpl + set(value) = noImpl + var ondrag : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragend : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragenter : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragexit : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragleave : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragover : () -> Unit + get() = noImpl + set(value) = noImpl + var ondragstart : () -> Unit + get() = noImpl + set(value) = noImpl + var ondrop : () -> Unit + get() = noImpl + set(value) = noImpl + var ondurationchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onemptied : () -> Unit + get() = noImpl + set(value) = noImpl + var onended : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : dynamic + get() = noImpl + set(value) = noImpl + var onfocus : () -> Unit + get() = noImpl + set(value) = noImpl + var oninput : () -> Unit + get() = noImpl + set(value) = noImpl + var oninvalid : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeydown : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeypress : () -> Unit + get() = noImpl + set(value) = noImpl + var onkeyup : () -> Unit + get() = noImpl + set(value) = noImpl + var onload : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadeddata : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadedmetadata : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadstart : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousedown : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseenter : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseleave : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousemove : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseout : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseover : () -> Unit + get() = noImpl + set(value) = noImpl + var onmouseup : () -> Unit + get() = noImpl + set(value) = noImpl + var onmousewheel : () -> Unit + get() = noImpl + set(value) = noImpl + var onpause : () -> Unit + get() = noImpl + set(value) = noImpl + var onplay : () -> Unit + get() = noImpl + set(value) = noImpl + var onplaying : () -> Unit + get() = noImpl + set(value) = noImpl + var onprogress : () -> Unit + get() = noImpl + set(value) = noImpl + var onratechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onreset : () -> Unit + get() = noImpl + set(value) = noImpl + var onresize : () -> Unit + get() = noImpl + set(value) = noImpl + var onscroll : () -> Unit + get() = noImpl + set(value) = noImpl + var onseeked : () -> Unit + get() = noImpl + set(value) = noImpl + var onseeking : () -> Unit + get() = noImpl + set(value) = noImpl + var onselect : () -> Unit + get() = noImpl + set(value) = noImpl + var onshow : () -> Unit + get() = noImpl + set(value) = noImpl + var onsort : () -> Unit + get() = noImpl + set(value) = noImpl + var onstalled : () -> Unit + get() = noImpl + set(value) = noImpl + var onsubmit : () -> Unit + get() = noImpl + set(value) = noImpl + var onsuspend : () -> Unit + get() = noImpl + set(value) = noImpl + var ontimeupdate : () -> Unit + get() = noImpl + set(value) = noImpl + var ontoggle : () -> Unit + get() = noImpl + set(value) = noImpl + var onvolumechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onwaiting : () -> Unit + get() = noImpl + set(value) = noImpl + var onafterprint : () -> Unit + get() = noImpl + set(value) = noImpl + var onbeforeprint : () -> Unit + get() = noImpl + set(value) = noImpl + var onbeforeunload : dynamic + get() = noImpl + set(value) = noImpl + var onhashchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onlanguagechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + var onoffline : () -> Unit + get() = noImpl + set(value) = noImpl + var ononline : () -> Unit + get() = noImpl + set(value) = noImpl + var onpagehide : () -> Unit + get() = noImpl + set(value) = noImpl + var onpageshow : () -> Unit + get() = noImpl + set(value) = noImpl + var onpopstate : () -> Unit + get() = noImpl + set(value) = noImpl + var onstorage : () -> Unit + get() = noImpl + set(value) = noImpl + var onunload : () -> Unit + get() = noImpl + set(value) = noImpl + var sessionStorage : Storage + get() = noImpl + set(value) = noImpl + var localStorage : Storage + get() = noImpl + set(value) = noImpl + fun close() : Unit = noImpl + fun stop() : Unit = noImpl + fun focus() : Unit = noImpl + fun blur() : Unit = noImpl + fun open(url : String = "about:blank", target : String = "_blank", features : String = "", replace : Boolean = false) : Window = noImpl + nativeGetter fun get(index : Int) : Window? = noImpl + nativeGetter fun get(name : String) : dynamic = noImpl + fun alert() : Unit = noImpl + fun alert(message : String) : Unit = noImpl + fun confirm(message : String = "") : Boolean = noImpl + fun prompt(message : String = "", default : String = "") : String? = noImpl + fun print() : Unit = noImpl + fun showModalDialog(url : String, argument : Any = noImpl) : Any = noImpl + fun requestAnimationFrame(callback : () -> Unit) : Int = noImpl + fun cancelAnimationFrame(handle : Int) : Unit = noImpl + fun postMessage(message : Any, targetOrigin : String, transfer : Any = noImpl) : Unit = noImpl + fun captureEvents() : Unit = noImpl + fun releaseEvents() : Unit = noImpl + fun getSelection() : Selection = noImpl + fun getComputedStyle(elt : Element, pseudoElt : String? = noImpl) : CSSStyleDeclaration = noImpl + fun btoa(btoa : String) : String = noImpl + fun atob(atob : String) : String = noImpl + fun setTimeout(handler : () -> dynamic, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun setTimeout(handler : String, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun clearTimeout(handle : Int = 0) : Unit = noImpl + fun setInterval(handler : () -> dynamic, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun setInterval(handler : String, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun clearInterval(handle : Int = 0) : Unit = noImpl + fun createImageBitmap(image : dynamic) : dynamic = noImpl + fun createImageBitmap(image : dynamic, sx : Int, sy : Int, sw : Int, sh : Int) : dynamic = noImpl + fun fetch(input : dynamic, init : RequestInit = noImpl) : dynamic = noImpl +} +native trait BarProp { + var visible : Boolean + get() = noImpl + set(value) = noImpl +} +native trait History { + var length : Int + get() = noImpl + set(value) = noImpl + var state : Any + get() = noImpl + set(value) = noImpl + fun go(delta : Int = noImpl) : Unit = noImpl + fun back() : Unit = noImpl + fun forward() : Unit = noImpl + fun pushState(data : Any, title : String, url : String? = null) : Unit = noImpl + fun replaceState(data : Any, title : String, url : String? = null) : Unit = noImpl +} +native trait Location { + var ancestorOrigins : dynamic + get() = noImpl + set(value) = noImpl + fun assign(url : String) : Unit = noImpl + fun replace(url : String) : Unit = noImpl + fun reload() : Unit = noImpl +} +native open class PopStateEvent(type : String, eventInitDict : PopStateEventInit = noImpl) : Event(type, eventInitDict) { + var state : Any + get() = noImpl + set(value) = noImpl +} +native open class PopStateEventInit : EventInit() { + var state : dynamic +} +native open class HashChangeEvent(type : String, eventInitDict : HashChangeEventInit = noImpl) : Event(type, eventInitDict) { + var oldURL : String + get() = noImpl + set(value) = noImpl + var newURL : String + get() = noImpl + set(value) = noImpl +} +native open class HashChangeEventInit : EventInit() { + var oldURL : dynamic + var newURL : dynamic +} +native open class PageTransitionEvent(type : String, eventInitDict : PageTransitionEventInit = noImpl) : Event(type, eventInitDict) { + var persisted : Boolean + get() = noImpl + set(value) = noImpl +} +native open class PageTransitionEventInit : EventInit() { + var persisted : dynamic +} +native open class BeforeUnloadEvent : Event(noImpl, noImpl) { + var returnValue : String + get() = noImpl + set(value) = noImpl +} +native trait ApplicationCache : EventTarget { + var status : Short + get() = noImpl + set(value) = noImpl + var onchecking : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onnoupdate : () -> Unit + get() = noImpl + set(value) = noImpl + var ondownloading : () -> Unit + get() = noImpl + set(value) = noImpl + var onprogress : () -> Unit + get() = noImpl + set(value) = noImpl + var onupdateready : () -> Unit + get() = noImpl + set(value) = noImpl + var oncached : () -> Unit + get() = noImpl + set(value) = noImpl + var onobsolete : () -> Unit + get() = noImpl + set(value) = noImpl + fun update() : Unit = noImpl + fun abort() : Unit = noImpl + fun swapCache() : Unit = noImpl +companion object { + val UNCACHED : Short = 0 + val IDLE : Short = 1 + val CHECKING : Short = 2 + val DOWNLOADING : Short = 3 + val UPDATEREADY : Short = 4 + val OBSOLETE : Short = 5 +} +} +native open class ErrorEvent(type : String, eventInitDict : ErrorEventInit = noImpl) : Event(type, eventInitDict) { + var message : String + get() = noImpl + set(value) = noImpl + var filename : String + get() = noImpl + set(value) = noImpl + var lineno : Int + get() = noImpl + set(value) = noImpl + var colno : Int + get() = noImpl + set(value) = noImpl + var error : Any + get() = noImpl + set(value) = noImpl +} +native open class ErrorEventInit : EventInit() { + var message : dynamic + var filename : dynamic + var lineno : dynamic + var colno : dynamic + var error : dynamic +} +native trait Navigator { + var serviceWorker : ServiceWorkerContainer + get() = noImpl + set(value) = noImpl + var appCodeName : String + get() = noImpl + set(value) = noImpl + var appName : String + get() = noImpl + set(value) = noImpl + var appVersion : String + get() = noImpl + set(value) = noImpl + var platform : String + get() = noImpl + set(value) = noImpl + var product : String + get() = noImpl + set(value) = noImpl + var userAgent : String + get() = noImpl + set(value) = noImpl + var vendorSub : String + get() = noImpl + set(value) = noImpl + var language : String? + get() = noImpl + set(value) = noImpl + var languages : dynamic + get() = noImpl + set(value) = noImpl + var onLine : Boolean + get() = noImpl + set(value) = noImpl + var cookieEnabled : Boolean + get() = noImpl + set(value) = noImpl + var plugins : PluginArray + get() = noImpl + set(value) = noImpl + var mimeTypes : MimeTypeArray + get() = noImpl + set(value) = noImpl + var javaEnabled : Boolean + get() = noImpl + set(value) = noImpl + fun vibrate(pattern : dynamic) : Boolean = noImpl + fun taintEnabled() : Boolean = noImpl + fun registerProtocolHandler(scheme : String, url : String, title : String) : Unit = noImpl + fun registerContentHandler(mimeType : String, url : String, title : String) : Unit = noImpl + fun isProtocolHandlerRegistered(scheme : String, url : String) : String = noImpl + fun isContentHandlerRegistered(mimeType : String, url : String) : String = noImpl + fun unregisterProtocolHandler(scheme : String, url : String) : Unit = noImpl + fun unregisterContentHandler(mimeType : String, url : String) : Unit = noImpl + fun yieldForStorageUpdates() : Unit = noImpl +} +native trait PluginArray { + var length : Int + get() = noImpl + set(value) = noImpl + fun refresh(reload : Boolean = false) : Unit = noImpl + fun item(index : Int) : Plugin? = noImpl + nativeGetter fun get(index : Int) : Plugin? = noImpl + fun namedItem(name : String) : Plugin? = noImpl + nativeGetter fun get(name : String) : Plugin? = noImpl +} +native trait MimeTypeArray { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : MimeType? = noImpl + nativeGetter fun get(index : Int) : MimeType? = noImpl + fun namedItem(name : String) : MimeType? = noImpl + nativeGetter fun get(name : String) : MimeType? = noImpl +} +native trait Plugin { + var name : String + get() = noImpl + set(value) = noImpl + var description : String + get() = noImpl + set(value) = noImpl + var filename : String + get() = noImpl + set(value) = noImpl + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : MimeType? = noImpl + nativeGetter fun get(index : Int) : MimeType? = noImpl + fun namedItem(name : String) : MimeType? = noImpl + nativeGetter fun get(name : String) : MimeType? = noImpl +} +native trait MimeType { + var type : String + get() = noImpl + set(value) = noImpl + var description : String + get() = noImpl + set(value) = noImpl + var suffixes : String + get() = noImpl + set(value) = noImpl + var enabledPlugin : Plugin + get() = noImpl + set(value) = noImpl +} +native trait External { + fun AddSearchProvider(engineURL : String) : Unit = noImpl + fun IsSearchProviderInstalled(engineURL : String) : Int = noImpl +} +native trait ImageBitmap { + var width : Int + get() = noImpl + set(value) = noImpl + var height : Int + get() = noImpl + set(value) = noImpl +} +native open class MessageEvent(type : String, eventInitDict : MessageEventInit = noImpl) : Event(type, eventInitDict) { + var data : Any + get() = noImpl + set(value) = noImpl + var origin : String + get() = noImpl + set(value) = noImpl + var lastEventId : String + get() = noImpl + set(value) = noImpl + var source : dynamic + get() = noImpl + set(value) = noImpl + var ports : dynamic + get() = noImpl + set(value) = noImpl + fun initMessageEvent(typeArg : String, canBubbleArg : Boolean, cancelableArg : Boolean, dataArg : Any, originArg : String, lastEventIdArg : String, sourceArg : dynamic, portsArg : Any?) : Unit = noImpl +} +native open class MessageEventInit : EventInit() { + var data : dynamic + var origin : dynamic + var lastEventId : dynamic + var source : dynamic + var ports : dynamic +} +native open class EventSource(url : String, eventSourceInitDict : EventSourceInit = noImpl) : EventTarget { + var url : String + get() = noImpl + set(value) = noImpl + var withCredentials : Boolean + get() = noImpl + set(value) = noImpl + var readyState : Short + get() = noImpl + set(value) = noImpl + var onopen : () -> Unit + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + fun close() : Unit = noImpl +companion object { + val CONNECTING : Short = 0 + val OPEN : Short = 1 + val CLOSED : Short = 2 +} +} +native open class EventSourceInit { + var withCredentials : dynamic = false +} +native open class WebSocket(url : String, protocols : dynamic = noImpl) : EventTarget { + var url : String + get() = noImpl + set(value) = noImpl + var readyState : Short + get() = noImpl + set(value) = noImpl + var bufferedAmount : Int + get() = noImpl + set(value) = noImpl + var onopen : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onclose : () -> Unit + get() = noImpl + set(value) = noImpl + var extensions : String + get() = noImpl + set(value) = noImpl + var protocol : String + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + var binaryType : String + get() = noImpl + set(value) = noImpl + fun close(code : Short = noImpl, reason : String = noImpl) : Unit = noImpl + fun send(data : String) : Unit = noImpl + fun send(data : Blob) : Unit = noImpl + fun send(data : dynamic) : Unit = noImpl +companion object { + val CONNECTING : Short = 0 + val OPEN : Short = 1 + val CLOSING : Short = 2 + val CLOSED : Short = 3 +} +} +native open class CloseEvent(type : String, eventInitDict : CloseEventInit = noImpl) : Event(type, eventInitDict) { + var wasClean : Boolean + get() = noImpl + set(value) = noImpl + var code : Short + get() = noImpl + set(value) = noImpl + var reason : String + get() = noImpl + set(value) = noImpl +} +native open class CloseEventInit : EventInit() { + var wasClean : dynamic + var code : dynamic + var reason : dynamic +} +native open class MessageChannel { + var port1 : MessagePort + get() = noImpl + set(value) = noImpl + var port2 : MessagePort + get() = noImpl + set(value) = noImpl +} +native trait MessagePort : EventTarget { + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + fun postMessage(message : Any, transfer : Any = noImpl) : Unit = noImpl + fun start() : Unit = noImpl + fun close() : Unit = noImpl +} +native open class PortCollection { + fun add(port : MessagePort) : Unit = noImpl + fun remove(port : MessagePort) : Unit = noImpl + fun clear() : Unit = noImpl + fun iterate(callback : () -> Unit) : Unit = noImpl +} +native open class BroadcastChannel(channel : String) : EventTarget { + var name : String + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + fun postMessage(message : Any) : Unit = noImpl + fun close() : Unit = noImpl +} +native trait WorkerGlobalScope : EventTarget { + var self : WorkerGlobalScope + get() = noImpl + set(value) = noImpl + var location : WorkerLocation + get() = noImpl + set(value) = noImpl + var onerror : dynamic + get() = noImpl + set(value) = noImpl + var onlanguagechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onoffline : () -> Unit + get() = noImpl + set(value) = noImpl + var ononline : () -> Unit + get() = noImpl + set(value) = noImpl + var navigator : WorkerNavigator + get() = noImpl + set(value) = noImpl + var caches : CacheStorage + get() = noImpl + set(value) = noImpl + fun close() : Unit = noImpl + fun importScripts(vararg urls : String) : Unit = noImpl + fun createImageBitmap(image : dynamic) : dynamic = noImpl + fun createImageBitmap(image : dynamic, sx : Int, sy : Int, sw : Int, sh : Int) : dynamic = noImpl + fun setTimeout(handler : () -> dynamic, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun setTimeout(handler : String, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun clearTimeout(handle : Int = 0) : Unit = noImpl + fun setInterval(handler : () -> dynamic, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun setInterval(handler : String, timeout : Int = 0, vararg arguments : Any) : Int = noImpl + fun clearInterval(handle : Int = 0) : Unit = noImpl + fun btoa(btoa : String) : String = noImpl + fun atob(atob : String) : String = noImpl + fun fetch(input : dynamic, init : RequestInit = noImpl) : dynamic = noImpl +} +native trait DedicatedWorkerGlobalScope : WorkerGlobalScope { + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + fun postMessage(message : Any, transfer : Any = noImpl) : Unit = noImpl +} +native trait SharedWorkerGlobalScope : WorkerGlobalScope { + var name : String + get() = noImpl + set(value) = noImpl + var applicationCache : ApplicationCache + get() = noImpl + set(value) = noImpl + var onconnect : () -> Unit + get() = noImpl + set(value) = noImpl +} +native open class Worker(scriptURL : String) : EventTarget { + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + fun terminate() : Unit = noImpl + fun postMessage(message : Any, transfer : Any = noImpl) : Unit = noImpl +} +native open class SharedWorker(scriptURL : String, name : String = noImpl) : EventTarget { + var port : MessagePort + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl +} +native trait WorkerNavigator { + var serviceWorker : ServiceWorkerContainer + get() = noImpl + set(value) = noImpl + var appCodeName : String + get() = noImpl + set(value) = noImpl + var appName : String + get() = noImpl + set(value) = noImpl + var appVersion : String + get() = noImpl + set(value) = noImpl + var platform : String + get() = noImpl + set(value) = noImpl + var product : String + get() = noImpl + set(value) = noImpl + var userAgent : String + get() = noImpl + set(value) = noImpl + var vendorSub : String + get() = noImpl + set(value) = noImpl + var language : String? + get() = noImpl + set(value) = noImpl + var languages : dynamic + get() = noImpl + set(value) = noImpl + var onLine : Boolean + get() = noImpl + set(value) = noImpl + fun taintEnabled() : Boolean = noImpl +} +native trait WorkerLocation { +} +native trait Storage { + var length : Int + get() = noImpl + set(value) = noImpl + fun key(index : Int) : String? = noImpl + fun getItem(key : String) : String? = noImpl + nativeGetter fun get(key : String) : String? = noImpl + fun setItem(key : String, value : String) : Unit = noImpl + fun set(key : String, value : String) : Unit? = noImpl + fun removeItem(key : String) : Unit = noImpl + fun clear() : Unit = noImpl +} +native open class StorageEvent(type : String, eventInitDict : StorageEventInit = noImpl) : Event(type, eventInitDict) { + var key : String? + get() = noImpl + set(value) = noImpl + var oldValue : String? + get() = noImpl + set(value) = noImpl + var newValue : String? + get() = noImpl + set(value) = noImpl + var url : String + get() = noImpl + set(value) = noImpl + var storageArea : Storage? + get() = noImpl + set(value) = noImpl +} +native open class StorageEventInit : EventInit() { + var key : dynamic + var oldValue : dynamic + var newValue : dynamic + var url : dynamic + var storageArea : dynamic +} +native trait HTMLAppletElement : HTMLElement { + var align : String + get() = noImpl + set(value) = noImpl + var alt : String + get() = noImpl + set(value) = noImpl + var archive : String + get() = noImpl + set(value) = noImpl + var code : String + get() = noImpl + set(value) = noImpl + var codeBase : String + get() = noImpl + set(value) = noImpl + var height : String + get() = noImpl + set(value) = noImpl + var hspace : Int + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var _object : String + get() = noImpl + set(value) = noImpl + var vspace : Int + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLMarqueeElement : HTMLElement { + var behavior : String + get() = noImpl + set(value) = noImpl + var bgColor : String + get() = noImpl + set(value) = noImpl + var direction : String + get() = noImpl + set(value) = noImpl + var height : String + get() = noImpl + set(value) = noImpl + var hspace : Int + get() = noImpl + set(value) = noImpl + var loop : Int + get() = noImpl + set(value) = noImpl + var scrollAmount : Int + get() = noImpl + set(value) = noImpl + var scrollDelay : Int + get() = noImpl + set(value) = noImpl + var trueSpeed : Boolean + get() = noImpl + set(value) = noImpl + var vspace : Int + get() = noImpl + set(value) = noImpl + var width : String + get() = noImpl + set(value) = noImpl + var onbounce : () -> Unit + get() = noImpl + set(value) = noImpl + var onfinish : () -> Unit + get() = noImpl + set(value) = noImpl + var onstart : () -> Unit + get() = noImpl + set(value) = noImpl + fun start() : Unit = noImpl + fun stop() : Unit = noImpl +} +native trait HTMLFrameSetElement : HTMLElement { + var cols : String + get() = noImpl + set(value) = noImpl + var rows : String + get() = noImpl + set(value) = noImpl + var onafterprint : () -> Unit + get() = noImpl + set(value) = noImpl + var onbeforeprint : () -> Unit + get() = noImpl + set(value) = noImpl + var onbeforeunload : dynamic + get() = noImpl + set(value) = noImpl + var onhashchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onlanguagechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + var onoffline : () -> Unit + get() = noImpl + set(value) = noImpl + var ononline : () -> Unit + get() = noImpl + set(value) = noImpl + var onpagehide : () -> Unit + get() = noImpl + set(value) = noImpl + var onpageshow : () -> Unit + get() = noImpl + set(value) = noImpl + var onpopstate : () -> Unit + get() = noImpl + set(value) = noImpl + var onstorage : () -> Unit + get() = noImpl + set(value) = noImpl + var onunload : () -> Unit + get() = noImpl + set(value) = noImpl +} +native trait HTMLFrameElement : HTMLElement { + var name : String + get() = noImpl + set(value) = noImpl + var scrolling : String + get() = noImpl + set(value) = noImpl + var src : String + get() = noImpl + set(value) = noImpl + var frameBorder : String + get() = noImpl + set(value) = noImpl + var longDesc : String + get() = noImpl + set(value) = noImpl + var noResize : Boolean + get() = noImpl + set(value) = noImpl + var contentDocument : Document? + get() = noImpl + set(value) = noImpl + var contentWindow : Window? + get() = noImpl + set(value) = noImpl + var marginHeight : String + get() = noImpl + set(value) = noImpl + var marginWidth : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLDirectoryElement : HTMLElement { + var compact : Boolean + get() = noImpl + set(value) = noImpl +} +native trait HTMLFontElement : HTMLElement { + var color : String + get() = noImpl + set(value) = noImpl + var face : String + get() = noImpl + set(value) = noImpl + var size : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLImageElement : HTMLElement { + var name : String + get() = noImpl + set(value) = noImpl + var lowsrc : String + get() = noImpl + set(value) = noImpl + var align : String + get() = noImpl + set(value) = noImpl + var hspace : Int + get() = noImpl + set(value) = noImpl + var vspace : Int + get() = noImpl + set(value) = noImpl + var longDesc : String + get() = noImpl + set(value) = noImpl + var border : String + get() = noImpl + set(value) = noImpl + var alt : String + get() = noImpl + set(value) = noImpl + var src : String + get() = noImpl + set(value) = noImpl + var srcset : String + get() = noImpl + set(value) = noImpl + var sizes : String + get() = noImpl + set(value) = noImpl + var crossOrigin : String? + get() = noImpl + set(value) = noImpl + var useMap : String + get() = noImpl + set(value) = noImpl + var isMap : Boolean + get() = noImpl + set(value) = noImpl + var width : Int + get() = noImpl + set(value) = noImpl + var height : Int + get() = noImpl + set(value) = noImpl + var naturalWidth : Int + get() = noImpl + set(value) = noImpl + var naturalHeight : Int + get() = noImpl + set(value) = noImpl + var complete : Boolean + get() = noImpl + set(value) = noImpl + var currentSrc : String + get() = noImpl + set(value) = noImpl +} +native trait HTMLPictureElement : HTMLElement { +} +native open class Event(type : String, eventInitDict : EventInit = noImpl) { + var type : String + get() = noImpl + set(value) = noImpl + var target : EventTarget? + get() = noImpl + set(value) = noImpl + var currentTarget : EventTarget? + get() = noImpl + set(value) = noImpl + var eventPhase : Short + get() = noImpl + set(value) = noImpl + var bubbles : Boolean + get() = noImpl + set(value) = noImpl + var cancelable : Boolean + get() = noImpl + set(value) = noImpl + var defaultPrevented : Boolean + get() = noImpl + set(value) = noImpl + var isTrusted : Boolean + get() = noImpl + set(value) = noImpl + var timeStamp : Number + get() = noImpl + set(value) = noImpl + fun stopPropagation() : Unit = noImpl + fun stopImmediatePropagation() : Unit = noImpl + fun preventDefault() : Unit = noImpl + fun initEvent(type : String, bubbles : Boolean, cancelable : Boolean) : Unit = noImpl +companion object { + val NONE : Short = 0 + val CAPTURING_PHASE : Short = 1 + val AT_TARGET : Short = 2 + val BUBBLING_PHASE : Short = 3 +} +} +native open class EventInit { + var bubbles : dynamic = false + var cancelable : dynamic = false +} +native open class CustomEvent(type : String, eventInitDict : CustomEventInit = noImpl) : Event(type, eventInitDict) { + var detail : Any + get() = noImpl + set(value) = noImpl + fun initCustomEvent(type : String, bubbles : Boolean, cancelable : Boolean, detail : Any) : Unit = noImpl +} +native open class CustomEventInit : EventInit() { + var detail : dynamic = null +} +native trait EventTarget { + fun addEventListener(type : String, callback : EventListener?, capture : Boolean = false) : Unit = noImpl + fun removeEventListener(type : String, callback : EventListener?, capture : Boolean = false) : Unit = noImpl + fun dispatchEvent(event : Event) : Boolean = noImpl +} +native trait EventListener { + fun handleEvent(event : Event) : Unit = noImpl +} +native trait NodeList { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : Node? = noImpl + nativeGetter fun get(index : Int) : Node? = noImpl +} +native trait HTMLCollection { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : Element? = noImpl + nativeGetter fun get(index : Int) : Element? = noImpl + fun namedItem(name : String) : Element? = noImpl + nativeGetter fun get(name : String) : Element? = noImpl +} +native open class MutationObserver(callback : () -> Unit) { + fun observe(target : Node, options : MutationObserverInit) : Unit = noImpl + fun disconnect() : Unit = noImpl + fun takeRecords() : Any = noImpl +} +native open class MutationObserverInit { + var childList : dynamic = false + var attributes : dynamic + var characterData : dynamic + var subtree : dynamic = false + var attributeOldValue : dynamic + var characterDataOldValue : dynamic + var attributeFilter : dynamic +} +native trait MutationRecord { + var type : String + get() = noImpl + set(value) = noImpl + var target : Node + get() = noImpl + set(value) = noImpl + var addedNodes : NodeList + get() = noImpl + set(value) = noImpl + var removedNodes : NodeList + get() = noImpl + set(value) = noImpl + var previousSibling : Node? + get() = noImpl + set(value) = noImpl + var nextSibling : Node? + get() = noImpl + set(value) = noImpl + var attributeName : String? + get() = noImpl + set(value) = noImpl + var attributeNamespace : String? + get() = noImpl + set(value) = noImpl + var oldValue : String? + get() = noImpl + set(value) = noImpl +} +native trait Node : EventTarget { + var nodeType : Short + get() = noImpl + set(value) = noImpl + var nodeName : String + get() = noImpl + set(value) = noImpl + var baseURI : String? + get() = noImpl + set(value) = noImpl + var ownerDocument : Document? + get() = noImpl + set(value) = noImpl + var parentNode : Node? + get() = noImpl + set(value) = noImpl + var parentElement : Element? + get() = noImpl + set(value) = noImpl + var childNodes : NodeList + get() = noImpl + set(value) = noImpl + var firstChild : Node? + get() = noImpl + set(value) = noImpl + var lastChild : Node? + get() = noImpl + set(value) = noImpl + var previousSibling : Node? + get() = noImpl + set(value) = noImpl + var nextSibling : Node? + get() = noImpl + set(value) = noImpl + var nodeValue : String? + get() = noImpl + set(value) = noImpl + var textContent : String? + get() = noImpl + set(value) = noImpl + fun hasChildNodes() : Boolean = noImpl + fun normalize() : Unit = noImpl + fun cloneNode(deep : Boolean = false) : Node = noImpl + fun isEqualNode(otherNode : Node?) : Boolean = noImpl + fun compareDocumentPosition(other : Node) : Short = noImpl + fun contains(other : Node?) : Boolean = noImpl + fun lookupPrefix(namespace : String?) : String? = noImpl + fun lookupNamespaceURI(prefix : String?) : String? = noImpl + fun isDefaultNamespace(namespace : String?) : Boolean = noImpl + fun insertBefore(node : Node, child : Node?) : Node = noImpl + fun appendChild(node : Node) : Node = noImpl + fun replaceChild(node : Node, child : Node) : Node = noImpl + fun removeChild(child : Node) : Node = noImpl +companion object { + val ELEMENT_NODE : Short = 1 + val ATTRIBUTE_NODE : Short = 2 + val TEXT_NODE : Short = 3 + val CDATA_SECTION_NODE : Short = 4 + val ENTITY_REFERENCE_NODE : Short = 5 + val ENTITY_NODE : Short = 6 + val PROCESSING_INSTRUCTION_NODE : Short = 7 + val COMMENT_NODE : Short = 8 + val DOCUMENT_NODE : Short = 9 + val DOCUMENT_TYPE_NODE : Short = 10 + val DOCUMENT_FRAGMENT_NODE : Short = 11 + val NOTATION_NODE : Short = 12 + val DOCUMENT_POSITION_DISCONNECTED : Short = 0x01 + val DOCUMENT_POSITION_PRECEDING : Short = 0x02 + val DOCUMENT_POSITION_FOLLOWING : Short = 0x04 + val DOCUMENT_POSITION_CONTAINS : Short = 0x08 + val DOCUMENT_POSITION_CONTAINED_BY : Short = 0x10 + val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC : Short = 0x20 +} +} +native trait DOMImplementation { + fun createDocumentType(qualifiedName : String, publicId : String, systemId : String) : DocumentType = noImpl + fun createDocument(namespace : String?, qualifiedName : String, doctype : DocumentType? = null) : XMLDocument = noImpl + fun createHTMLDocument(title : String = noImpl) : Document = noImpl + fun hasFeature() : Boolean = noImpl +} +native open class DocumentFragment : Node { + var children : HTMLCollection + get() = noImpl + set(value) = noImpl + var firstElementChild : Element? + get() = noImpl + set(value) = noImpl + var lastElementChild : Element? + get() = noImpl + set(value) = noImpl + var childElementCount : Int + get() = noImpl + set(value) = noImpl + fun getElementById(elementId : String) : Element? = noImpl + fun prepend(vararg nodes : dynamic) : Unit = noImpl + fun append(vararg nodes : dynamic) : Unit = noImpl + fun query(relativeSelectors : String) : Element? = noImpl + fun queryAll(relativeSelectors : String) : dynamic = noImpl + fun querySelector(selectors : String) : Element? = noImpl + fun querySelectorAll(selectors : String) : NodeList = noImpl +} +native trait DocumentType : Node { + var name : String + get() = noImpl + set(value) = noImpl + var publicId : String + get() = noImpl + set(value) = noImpl + var systemId : String + get() = noImpl + set(value) = noImpl + fun before(vararg nodes : dynamic) : Unit = noImpl + fun after(vararg nodes : dynamic) : Unit = noImpl + fun replaceWith(vararg nodes : dynamic) : Unit = noImpl + fun remove() : Unit = noImpl +} +native trait Element : Node, UnionElementOrMouseEvent { + var namespaceURI : String? + get() = noImpl + set(value) = noImpl + var prefix : String? + get() = noImpl + set(value) = noImpl + var localName : String + get() = noImpl + set(value) = noImpl + var tagName : String + get() = noImpl + set(value) = noImpl + var id : String + get() = noImpl + set(value) = noImpl + var className : String + get() = noImpl + set(value) = noImpl + var classList : DOMTokenList + get() = noImpl + set(value) = noImpl + var attributes : NamedNodeMap + get() = noImpl + set(value) = noImpl + var innerHTML : String + get() = noImpl + set(value) = noImpl + var outerHTML : String + get() = noImpl + set(value) = noImpl + var children : HTMLCollection + get() = noImpl + set(value) = noImpl + var firstElementChild : Element? + get() = noImpl + set(value) = noImpl + var lastElementChild : Element? + get() = noImpl + set(value) = noImpl + var childElementCount : Int + get() = noImpl + set(value) = noImpl + var previousElementSibling : Element? + get() = noImpl + set(value) = noImpl + var nextElementSibling : Element? + get() = noImpl + set(value) = noImpl + var cascadedStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + var defaultStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + var rawComputedStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + var usedStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + fun hasAttributes() : Boolean = noImpl + fun getAttribute(name : String) : String? = noImpl + fun getAttributeNS(namespace : String?, localName : String) : String? = noImpl + fun setAttribute(name : String, value : String) : Unit = noImpl + fun setAttributeNS(namespace : String?, name : String, value : String) : Unit = noImpl + fun removeAttribute(name : String) : Unit = noImpl + fun removeAttributeNS(namespace : String?, localName : String) : Unit = noImpl + fun hasAttribute(name : String) : Boolean = noImpl + fun hasAttributeNS(namespace : String?, localName : String) : Boolean = noImpl + fun getAttributeNode(name : String) : Attr? = noImpl + fun getAttributeNodeNS(namespace : String?, localName : String) : Attr? = noImpl + fun setAttributeNode(attr : Attr) : Attr? = noImpl + fun setAttributeNodeNS(attr : Attr) : Attr? = noImpl + fun removeAttributeNode(attr : Attr) : Attr = noImpl + fun closest(selectors : String) : Element? = noImpl + fun matches(selectors : String) : Boolean = noImpl + fun getElementsByTagName(localName : String) : HTMLCollection = noImpl + fun getElementsByTagNameNS(namespace : String?, localName : String) : HTMLCollection = noImpl + fun getElementsByClassName(classNames : String) : HTMLCollection = noImpl + fun requestFullscreen() : Unit = noImpl + fun insertAdjacentHTML(position : String, text : String) : Unit = noImpl + fun pseudo(pseudoElt : String) : PseudoElement? = noImpl + fun prepend(vararg nodes : dynamic) : Unit = noImpl + fun append(vararg nodes : dynamic) : Unit = noImpl + fun query(relativeSelectors : String) : Element? = noImpl + fun queryAll(relativeSelectors : String) : dynamic = noImpl + fun querySelector(selectors : String) : Element? = noImpl + fun querySelectorAll(selectors : String) : NodeList = noImpl + fun before(vararg nodes : dynamic) : Unit = noImpl + fun after(vararg nodes : dynamic) : Unit = noImpl + fun replaceWith(vararg nodes : dynamic) : Unit = noImpl + fun remove() : Unit = noImpl +} +native trait NamedNodeMap { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : Attr? = noImpl + nativeGetter fun get(index : Int) : Attr? = noImpl + fun getNamedItem(name : String) : Attr? = noImpl + nativeGetter fun get(name : String) : Attr? = noImpl + fun getNamedItemNS(namespace : String?, localName : String) : Attr? = noImpl + fun setNamedItem(attr : Attr) : Attr? = noImpl + fun setNamedItemNS(attr : Attr) : Attr? = noImpl + fun removeNamedItem(name : String) : Attr = noImpl + fun removeNamedItemNS(namespace : String?, localName : String) : Attr = noImpl +} +native trait Attr { + var namespaceURI : String? + get() = noImpl + set(value) = noImpl + var prefix : String? + get() = noImpl + set(value) = noImpl + var localName : String + get() = noImpl + set(value) = noImpl + var name : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl + var nodeValue : String + get() = noImpl + set(value) = noImpl + var textContent : String + get() = noImpl + set(value) = noImpl + var ownerElement : Element? + get() = noImpl + set(value) = noImpl + var specified : Boolean + get() = noImpl + set(value) = noImpl +} +native trait CharacterData : Node { + var data : String + get() = noImpl + set(value) = noImpl + var length : Int + get() = noImpl + set(value) = noImpl + var previousElementSibling : Element? + get() = noImpl + set(value) = noImpl + var nextElementSibling : Element? + get() = noImpl + set(value) = noImpl + fun substringData(offset : Int, count : Int) : String = noImpl + fun appendData(data : String) : Unit = noImpl + fun insertData(offset : Int, data : String) : Unit = noImpl + fun deleteData(offset : Int, count : Int) : Unit = noImpl + fun replaceData(offset : Int, count : Int, data : String) : Unit = noImpl + fun before(vararg nodes : dynamic) : Unit = noImpl + fun after(vararg nodes : dynamic) : Unit = noImpl + fun replaceWith(vararg nodes : dynamic) : Unit = noImpl + fun remove() : Unit = noImpl +} +native open class Text(data : String = "") : CharacterData { + var wholeText : String + get() = noImpl + set(value) = noImpl + fun splitText(offset : Int) : Text = noImpl +} +native trait ProcessingInstruction : CharacterData { + var target : String + get() = noImpl + set(value) = noImpl + var sheet : StyleSheet? + get() = noImpl + set(value) = noImpl +} +native open class Comment(data : String = "") : CharacterData { +} +native open class Range { + var startContainer : Node + get() = noImpl + set(value) = noImpl + var startOffset : Int + get() = noImpl + set(value) = noImpl + var endContainer : Node + get() = noImpl + set(value) = noImpl + var endOffset : Int + get() = noImpl + set(value) = noImpl + var collapsed : Boolean + get() = noImpl + set(value) = noImpl + var commonAncestorContainer : Node + get() = noImpl + set(value) = noImpl + fun setStart(node : Node, offset : Int) : Unit = noImpl + fun setEnd(node : Node, offset : Int) : Unit = noImpl + fun setStartBefore(node : Node) : Unit = noImpl + fun setStartAfter(node : Node) : Unit = noImpl + fun setEndBefore(node : Node) : Unit = noImpl + fun setEndAfter(node : Node) : Unit = noImpl + fun collapse(toStart : Boolean = false) : Unit = noImpl + fun selectNode(node : Node) : Unit = noImpl + fun selectNodeContents(node : Node) : Unit = noImpl + fun compareBoundaryPoints(how : Short, sourceRange : Range) : Short = noImpl + fun deleteContents() : Unit = noImpl + fun extractContents() : DocumentFragment = noImpl + fun cloneContents() : DocumentFragment = noImpl + fun insertNode(node : Node) : Unit = noImpl + fun surroundContents(newParent : Node) : Unit = noImpl + fun cloneRange() : Range = noImpl + fun detach() : Unit = noImpl + fun isPointInRange(node : Node, offset : Int) : Boolean = noImpl + fun comparePoint(node : Node, offset : Int) : Short = noImpl + fun intersectsNode(node : Node) : Boolean = noImpl + fun createContextualFragment(fragment : String) : DocumentFragment = noImpl +companion object { + val START_TO_START : Short = 0 + val START_TO_END : Short = 1 + val END_TO_END : Short = 2 + val END_TO_START : Short = 3 +} +} +native trait NodeIterator { + var root : Node + get() = noImpl + set(value) = noImpl + var referenceNode : Node + get() = noImpl + set(value) = noImpl + var pointerBeforeReferenceNode : Boolean + get() = noImpl + set(value) = noImpl + var whatToShow : Int + get() = noImpl + set(value) = noImpl + var filter : NodeFilter? + get() = noImpl + set(value) = noImpl + fun nextNode() : Node? = noImpl + fun previousNode() : Node? = noImpl + fun detach() : Unit = noImpl +} +native trait TreeWalker { + var root : Node + get() = noImpl + set(value) = noImpl + var whatToShow : Int + get() = noImpl + set(value) = noImpl + var filter : NodeFilter? + get() = noImpl + set(value) = noImpl + var currentNode : Node + get() = noImpl + set(value) = noImpl + fun parentNode() : Node? = noImpl + fun firstChild() : Node? = noImpl + fun lastChild() : Node? = noImpl + fun previousSibling() : Node? = noImpl + fun nextSibling() : Node? = noImpl + fun previousNode() : Node? = noImpl + fun nextNode() : Node? = noImpl +} +native trait NodeFilter { + fun acceptNode(node : Node) : Short = noImpl +companion object { + val FILTER_ACCEPT : Short = 1 + val FILTER_REJECT : Short = 2 + val FILTER_SKIP : Short = 3 + val SHOW_ALL : Int = 0xFFFFFFFF + val SHOW_ELEMENT : Int = 0x1 + val SHOW_ATTRIBUTE : Int = 0x2 + val SHOW_TEXT : Int = 0x4 + val SHOW_CDATA_SECTION : Int = 0x8 + val SHOW_ENTITY_REFERENCE : Int = 0x10 + val SHOW_ENTITY : Int = 0x20 + val SHOW_PROCESSING_INSTRUCTION : Int = 0x40 + val SHOW_COMMENT : Int = 0x80 + val SHOW_DOCUMENT : Int = 0x100 + val SHOW_DOCUMENT_TYPE : Int = 0x200 + val SHOW_DOCUMENT_FRAGMENT : Int = 0x400 + val SHOW_NOTATION : Int = 0x800 +} +} +native trait DOMTokenList { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : String? = noImpl + nativeGetter fun get(index : Int) : String? = noImpl + fun contains(token : String) : Boolean = noImpl + fun add(vararg tokens : String) : Unit = noImpl + fun remove(vararg tokens : String) : Unit = noImpl + fun toggle(token : String, force : Boolean = noImpl) : Boolean = noImpl +} +native trait DOMSettableTokenList : DOMTokenList { + var value : String + get() = noImpl + set(value) = noImpl +} +native open class UIEvent(type : String, eventInitDict : UIEventInit = noImpl) : Event(type, eventInitDict) { + var view : Window? + get() = noImpl + set(value) = noImpl + var detail : Int + get() = noImpl + set(value) = noImpl + fun initUIEvent(typeArg : String, bubblesArg : Boolean, cancelableArg : Boolean, viewArg : Window?, detailArg : Int) : Unit = noImpl +} +native open class UIEventInit : EventInit() { + var view : dynamic = null + var detail : dynamic = 0 +} +native open class FocusEvent(typeArg : String, focusEventInitDict : FocusEventInit = noImpl) : UIEvent(noImpl, noImpl) { + var relatedTarget : EventTarget? + get() = noImpl + set(value) = noImpl + fun initFocusEvent(typeArg : String, bubblesArg : Boolean, cancelableArg : Boolean, viewArg : Window?, detailArg : Int, relatedTargetArg : EventTarget?) : Unit = noImpl +} +native open class FocusEventInit : UIEventInit() { + var relatedTarget : dynamic = null +} +native open class MouseEventInit : EventModifierInit() { + var screenX : dynamic = 0 + var screenY : dynamic = 0 + var clientX : dynamic = 0 + var clientY : dynamic = 0 + var button : dynamic = 0 + var buttons : dynamic = 0 + var relatedTarget : dynamic = null +} +native open class EventModifierInit : UIEventInit() { + var ctrlKey : dynamic = false + var shiftKey : dynamic = false + var altKey : dynamic = false + var metaKey : dynamic = false + var modifierAltGraph : dynamic = false + var modifierCapsLock : dynamic = false + var modifierFn : dynamic = false + var modifierFnLock : dynamic = false + var modifierHyper : dynamic = false + var modifierNumLock : dynamic = false + var modifierOS : dynamic = false + var modifierScrollLock : dynamic = false + var modifierSuper : dynamic = false + var modifierSymbol : dynamic = false + var modifierSymbolLock : dynamic = false +} +native open class WheelEvent(typeArg : String, wheelEventInitDict : WheelEventInit = noImpl) : MouseEvent(typeArg, noImpl) { + var deltaX : Double + get() = noImpl + set(value) = noImpl + var deltaY : Double + get() = noImpl + set(value) = noImpl + var deltaZ : Double + get() = noImpl + set(value) = noImpl + var deltaMode : Int + get() = noImpl + set(value) = noImpl + fun initWheelEvent(typeArg : String, bubblesArg : Boolean, cancelableArg : Boolean, viewArg : Window?, detailArg : Int, screenXArg : Int, screenYArg : Int, clientXArg : Int, clientYArg : Int, buttonArg : Short, relatedTargetArg : EventTarget?, modifiersListArg : String, deltaXArg : Double, deltaYArg : Double, deltaZArg : Double, deltaMode : Int) : Unit = noImpl +companion object { + val DOM_DELTA_PIXEL : Int = 0x00 + val DOM_DELTA_LINE : Int = 0x01 + val DOM_DELTA_PAGE : Int = 0x02 +} +} +native open class WheelEventInit : MouseEventInit() { + var deltaX : dynamic = 0.0 + var deltaY : dynamic = 0.0 + var deltaZ : dynamic = 0.0 + var deltaMode : dynamic = 0 +} +native open class KeyboardEvent(typeArg : String, keyboardEventInitDict : KeyboardEventInit = noImpl) : UIEvent(noImpl, noImpl) { + var key : String + get() = noImpl + set(value) = noImpl + var code : String + get() = noImpl + set(value) = noImpl + var location : Int + get() = noImpl + set(value) = noImpl + var ctrlKey : Boolean + get() = noImpl + set(value) = noImpl + var shiftKey : Boolean + get() = noImpl + set(value) = noImpl + var altKey : Boolean + get() = noImpl + set(value) = noImpl + var metaKey : Boolean + get() = noImpl + set(value) = noImpl + var repeat : Boolean + get() = noImpl + set(value) = noImpl + var isComposing : Boolean + get() = noImpl + set(value) = noImpl + var charCode : Int + get() = noImpl + set(value) = noImpl + var keyCode : Int + get() = noImpl + set(value) = noImpl + var which : Int + get() = noImpl + set(value) = noImpl + fun getModifierState(keyArg : String) : Boolean = noImpl + fun initKeyboardEvent(typeArg : String, bubblesArg : Boolean, cancelableArg : Boolean, viewArg : Window?, keyArg : String, locationArg : Int, modifiersListArg : String, repeat : Boolean, locale : String) : Unit = noImpl +companion object { + val DOM_KEY_LOCATION_STANDARD : Int = 0x00 + val DOM_KEY_LOCATION_LEFT : Int = 0x01 + val DOM_KEY_LOCATION_RIGHT : Int = 0x02 + val DOM_KEY_LOCATION_NUMPAD : Int = 0x03 +} +} +native open class KeyboardEventInit : EventModifierInit() { + var key : dynamic = "" + var code : dynamic = "" + var location : dynamic = 0 + var repeat : dynamic = false + var isComposing : dynamic = false +} +native open class CompositionEvent(typeArg : String, compositionEventInitDict : CompositionEventInit = noImpl) : UIEvent(noImpl, noImpl) { + var data : String + get() = noImpl + set(value) = noImpl + fun initCompositionEvent(typeArg : String, bubblesArg : Boolean, cancelableArg : Boolean, viewArg : Window?, dataArg : String, locale : String) : Unit = noImpl +} +native open class CompositionEventInit : UIEventInit() { + var data : dynamic = "" +} +native open class MutationEvent : Event(noImpl, noImpl) { + var relatedNode : Node? + get() = noImpl + set(value) = noImpl + var prevValue : String + get() = noImpl + set(value) = noImpl + var newValue : String + get() = noImpl + set(value) = noImpl + var attrName : String + get() = noImpl + set(value) = noImpl + var attrChange : Short + get() = noImpl + set(value) = noImpl + fun initMutationEvent(typeArg : String, bubblesArg : Boolean, cancelableArg : Boolean, relatedNodeArg : Node?, prevValueArg : String, newValueArg : String, attrNameArg : String, attrChangeArg : Short) : Unit = noImpl +companion object { + val MODIFICATION : Short = 1 + val ADDITION : Short = 2 + val REMOVAL : Short = 3 +} +} +native trait Selection { + var anchorNode : Node? + get() = noImpl + set(value) = noImpl + var anchorOffset : Int + get() = noImpl + set(value) = noImpl + var focusNode : Node? + get() = noImpl + set(value) = noImpl + var focusOffset : Int + get() = noImpl + set(value) = noImpl + var isCollapsed : Boolean + get() = noImpl + set(value) = noImpl + var rangeCount : Int + get() = noImpl + set(value) = noImpl + fun collapse(node : Node, offset : Int) : Unit = noImpl + fun collapseToStart() : Unit = noImpl + fun collapseToEnd() : Unit = noImpl + fun extend(node : Node, offset : Int) : Unit = noImpl + fun selectAllChildren(node : Node) : Unit = noImpl + fun deleteFromDocument() : Unit = noImpl + fun getRangeAt(index : Int) : Range = noImpl + fun addRange(range : Range) : Unit = noImpl + fun removeRange(range : Range) : Unit = noImpl + fun removeAllRanges() : Unit = noImpl +} +native open class EditingBeforeInputEvent(type : String, eventInitDict : EditingBeforeInputEventInit = noImpl) : Event(type, eventInitDict) { + var command : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl +} +native open class EditingBeforeInputEventInit : EventInit() { + var command : dynamic + var value : dynamic +} +native open class EditingInputEvent(type : String, eventInitDict : EditingInputEventInit = noImpl) : Event(type, eventInitDict) { + var command : String + get() = noImpl + set(value) = noImpl + var value : String + get() = noImpl + set(value) = noImpl +} +native open class EditingInputEventInit : EventInit() { + var command : dynamic + var value : dynamic +} +native trait XMLHttpRequestEventTarget : EventTarget { + var onloadstart : () -> Unit + get() = noImpl + set(value) = noImpl + var onprogress : () -> Unit + get() = noImpl + set(value) = noImpl + var onabort : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onload : () -> Unit + get() = noImpl + set(value) = noImpl + var ontimeout : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadend : () -> Unit + get() = noImpl + set(value) = noImpl +} +native trait XMLHttpRequestUpload : XMLHttpRequestEventTarget { +} +native open class XMLHttpRequest : XMLHttpRequestEventTarget { + var onreadystatechange : () -> Unit + get() = noImpl + set(value) = noImpl + var readyState : Short + get() = noImpl + set(value) = noImpl + var timeout : Int + get() = noImpl + set(value) = noImpl + var withCredentials : Boolean + get() = noImpl + set(value) = noImpl + var upload : XMLHttpRequestUpload + get() = noImpl + set(value) = noImpl + var responseURL : String + get() = noImpl + set(value) = noImpl + var status : Short + get() = noImpl + set(value) = noImpl + var statusText : String + get() = noImpl + set(value) = noImpl + var responseType : String + get() = noImpl + set(value) = noImpl + var response : Any + get() = noImpl + set(value) = noImpl + var responseText : String + get() = noImpl + set(value) = noImpl + var responseXML : Document? + get() = noImpl + set(value) = noImpl + fun open(method : String, url : String) : Unit = noImpl + fun open(method : String, url : String, async : Boolean, username : String? = null, password : String? = null) : Unit = noImpl + fun setRequestHeader(name : String, value : String) : Unit = noImpl + fun send(body : dynamic = null) : Unit = noImpl + fun abort() : Unit = noImpl + fun getResponseHeader(name : String) : String? = noImpl + fun getAllResponseHeaders() : String = noImpl + fun overrideMimeType(mime : String) : Unit = noImpl +companion object { + val UNSENT : Short = 0 + val OPENED : Short = 1 + val HEADERS_RECEIVED : Short = 2 + val LOADING : Short = 3 + val DONE : Short = 4 +} +} +native open class FormData(form : HTMLFormElement = noImpl) { + fun append(name : String, value : Blob, filename : String = noImpl) : Unit = noImpl + fun append(name : String, value : String) : Unit = noImpl + fun delete(name : String) : Unit = noImpl + fun get(name : String) : dynamic = noImpl + fun getAll(name : String) : Any = noImpl + fun has(name : String) : Boolean = noImpl + fun set(name : String, value : Blob, filename : String = noImpl) : Unit = noImpl + fun set(name : String, value : String) : Unit = noImpl +} +native open class ProgressEvent(type : String, eventInitDict : ProgressEventInit = noImpl) : Event(type, eventInitDict) { + var lengthComputable : Boolean + get() = noImpl + set(value) = noImpl + var loaded : Long + get() = noImpl + set(value) = noImpl + var total : Long + get() = noImpl + set(value) = noImpl +} +native open class ProgressEventInit : EventInit() { + var lengthComputable : dynamic = false + var loaded : dynamic = 0 + var total : dynamic = 0 +} +native open class Blob { + var size : Long + get() = noImpl + set(value) = noImpl + var type : String + get() = noImpl + set(value) = noImpl + var isClosed : Boolean + get() = noImpl + set(value) = noImpl + fun slice(start : Long = noImpl, end : Long = noImpl, contentType : String = noImpl) : Blob = noImpl + fun close() : Unit = noImpl +} +native open class BlobPropertyBag { + var type : dynamic = "" +} +native open class File(fileBits : Any, fileName : String, options : FilePropertyBag = noImpl) : Blob() { + var name : String + get() = noImpl + set(value) = noImpl + var lastModified : Long + get() = noImpl + set(value) = noImpl +} +native open class FilePropertyBag { + var type : dynamic = "" + var lastModified : dynamic +} +native trait FileList { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : File? = noImpl + nativeGetter fun get(index : Int) : File? = noImpl +} +native open class FileReader : EventTarget { + var readyState : Short + get() = noImpl + set(value) = noImpl + var result : dynamic + get() = noImpl + set(value) = noImpl + var error : dynamic + get() = noImpl + set(value) = noImpl + var onloadstart : () -> Unit + get() = noImpl + set(value) = noImpl + var onprogress : () -> Unit + get() = noImpl + set(value) = noImpl + var onload : () -> Unit + get() = noImpl + set(value) = noImpl + var onabort : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onloadend : () -> Unit + get() = noImpl + set(value) = noImpl + fun readAsArrayBuffer(blob : Blob) : Unit = noImpl + fun readAsText(blob : Blob, label : String = noImpl) : Unit = noImpl + fun readAsDataURL(blob : Blob) : Unit = noImpl + fun abort() : Unit = noImpl +companion object { + val EMPTY : Short = 0 + val LOADING : Short = 1 + val DONE : Short = 2 +} +} +native open class FileReaderSync { + fun readAsArrayBuffer(blob : Blob) : dynamic = noImpl + fun readAsText(blob : Blob, label : String = noImpl) : String = noImpl + fun readAsDataURL(blob : Blob) : String = noImpl +} +native trait URL { +} +native open class Notification(title : String, options : NotificationOptions = noImpl) : EventTarget { + var permission : String + get() = noImpl + set(value) = noImpl + var onclick : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + var title : String + get() = noImpl + set(value) = noImpl + var dir : String + get() = noImpl + set(value) = noImpl + var lang : String + get() = noImpl + set(value) = noImpl + var body : String + get() = noImpl + set(value) = noImpl + var tag : String + get() = noImpl + set(value) = noImpl + var icon : String + get() = noImpl + set(value) = noImpl + var sound : String + get() = noImpl + set(value) = noImpl + var renotify : Boolean + get() = noImpl + set(value) = noImpl + var silent : Boolean + get() = noImpl + set(value) = noImpl + var noscreen : Boolean + get() = noImpl + set(value) = noImpl + var sticky : Boolean + get() = noImpl + set(value) = noImpl + var data : Any + get() = noImpl + set(value) = noImpl + fun close() : Unit = noImpl +} +native open class NotificationOptions { + var dir : dynamic = "auto" + var lang : dynamic = "" + var body : dynamic = "" + var tag : dynamic = "" + var icon : dynamic + var sound : dynamic + var vibrate : dynamic + var renotify : dynamic = false + var silent : dynamic = false + var noscreen : dynamic = false + var sticky : dynamic = false + var data : dynamic = null +} +native open class GetNotificationOptions { + var tag : dynamic = "" +} +native trait ServiceWorkerRegistration : EventTarget { + var installing : ServiceWorker? + get() = noImpl + set(value) = noImpl + var waiting : ServiceWorker? + get() = noImpl + set(value) = noImpl + var active : ServiceWorker? + get() = noImpl + set(value) = noImpl + var scope : String + get() = noImpl + set(value) = noImpl + var onupdatefound : () -> Unit + get() = noImpl + set(value) = noImpl + var APISpace : dynamic + get() = noImpl + set(value) = noImpl + fun showNotification(title : String, options : NotificationOptions = noImpl) : dynamic = noImpl + fun getNotifications(filter : GetNotificationOptions = noImpl) : dynamic = noImpl + fun update() : Unit = noImpl + fun unregister() : dynamic = noImpl + fun methodName(of : dynamic) : dynamic = noImpl +} +native open class NotificationEvent(type : String, eventInitDict : NotificationEventInit = noImpl) : ExtendableEvent(type, eventInitDict) { + var notification : Notification + get() = noImpl + set(value) = noImpl +} +native open class NotificationEventInit : ExtendableEventInit() { + var notification : dynamic +} +native trait ServiceWorkerGlobalScope : WorkerGlobalScope { + var onnotificationclick : () -> Unit + get() = noImpl + set(value) = noImpl + var clients : Clients + get() = noImpl + set(value) = noImpl + var registration : ServiceWorkerRegistration + get() = noImpl + set(value) = noImpl + var oninstall : () -> Unit + get() = noImpl + set(value) = noImpl + var onactivate : () -> Unit + get() = noImpl + set(value) = noImpl + var onfetch : () -> Unit + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + var onfunctionalevent : () -> Unit + get() = noImpl + set(value) = noImpl + fun skipWaiting() : dynamic = noImpl +} +native open class DOMParser { + fun parseFromString(str : String, type : dynamic) : Document = noImpl +} +native open class XMLSerializer { + fun serializeToString(root : Node) : String = noImpl +} +native trait ServiceWorker : EventTarget { + var scriptURL : String + get() = noImpl + set(value) = noImpl + var state : String + get() = noImpl + set(value) = noImpl + var id : String + get() = noImpl + set(value) = noImpl + var onstatechange : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + fun postMessage(message : Any, transfer : Any = noImpl) : Unit = noImpl +} +native trait ServiceWorkerContainer : EventTarget { + var controller : ServiceWorker? + get() = noImpl + set(value) = noImpl + var ready : dynamic + get() = noImpl + set(value) = noImpl + var oncontrollerchange : () -> Unit + get() = noImpl + set(value) = noImpl + var onerror : () -> Unit + get() = noImpl + set(value) = noImpl + var onmessage : () -> Unit + get() = noImpl + set(value) = noImpl + fun register(scriptURL : String, options : RegistrationOptions = noImpl) : dynamic = noImpl + fun getRegistration(clientURL : String = "") : dynamic = noImpl + fun getRegistrations() : dynamic = noImpl +} +native open class RegistrationOptions { + var scope : dynamic +} +native trait Client { + var url : String + get() = noImpl + set(value) = noImpl + var frameType : String + get() = noImpl + set(value) = noImpl + var id : String + get() = noImpl + set(value) = noImpl + fun postMessage(message : Any, transfer : Any = noImpl) : Unit = noImpl +} +native trait WindowClient : Client { + var visibilityState : dynamic + get() = noImpl + set(value) = noImpl + var focused : Boolean + get() = noImpl + set(value) = noImpl + fun focus() : dynamic = noImpl +} +native trait Clients { + fun matchAll(options : ClientQueryOptions = noImpl) : dynamic = noImpl + fun openWindow(url : String) : dynamic = noImpl + fun claim() : dynamic = noImpl +} +native open class ClientQueryOptions { + var includeUncontrolled : dynamic = false + var type : dynamic = "window" +} +native open class ExtendableEvent(type : String, eventInitDict : ExtendableEventInit = noImpl) : Event(type, eventInitDict) { + fun waitUntil(f : dynamic) : Unit = noImpl +} +native open class ExtendableEventInit : EventInit() { +} +native open class FetchEvent(type : String, eventInitDict : FetchEventInit = noImpl) : ExtendableEvent(type, eventInitDict) { + var request : Request + get() = noImpl + set(value) = noImpl + var client : Client + get() = noImpl + set(value) = noImpl + var isReload : Boolean + get() = noImpl + set(value) = noImpl + fun respondWith(r : dynamic) : Unit = noImpl +} +native open class FetchEventInit : ExtendableEventInit() { + var request : dynamic + var client : dynamic + var isReload : dynamic = false +} +native trait Cache { + fun match(request : dynamic, options : CacheQueryOptions = noImpl) : dynamic = noImpl + fun matchAll(request : dynamic = noImpl, options : CacheQueryOptions = noImpl) : dynamic = noImpl + fun add(request : dynamic) : dynamic = noImpl + fun addAll(requests : Any) : dynamic = noImpl + fun put(request : dynamic, response : Response) : dynamic = noImpl + fun delete(request : dynamic, options : CacheQueryOptions = noImpl) : dynamic = noImpl + fun keys(request : dynamic = noImpl, options : CacheQueryOptions = noImpl) : dynamic = noImpl +} +native open class CacheQueryOptions { + var ignoreSearch : dynamic = false + var ignoreMethod : dynamic = false + var ignoreVary : dynamic = false + var cacheName : dynamic +} +native open class CacheBatchOperation { + var type : dynamic + var request : dynamic + var response : dynamic + var options : dynamic +} +native trait CacheStorage { + fun match(request : dynamic, options : CacheQueryOptions = noImpl) : dynamic = noImpl + fun has(cacheName : String) : dynamic = noImpl + fun open(cacheName : String) : dynamic = noImpl + fun delete(cacheName : String) : dynamic = noImpl + fun keys() : dynamic = noImpl +} +native open class FunctionalEvent : ExtendableEvent(noImpl, noImpl) { +} +native open class Headers(init : dynamic = noImpl) { + fun append(name : String, value : String) : Unit = noImpl + fun delete(name : String) : Unit = noImpl + fun get(name : String) : String? = noImpl + fun getAll(name : String) : Any = noImpl + fun has(name : String) : Boolean = noImpl + fun set(name : String, value : String) : Unit = noImpl +} +native open class Request(input : dynamic, init : RequestInit = noImpl) { + var method : String + get() = noImpl + set(value) = noImpl + var url : String + get() = noImpl + set(value) = noImpl + var headers : Headers + get() = noImpl + set(value) = noImpl + var context : String + get() = noImpl + set(value) = noImpl + var referrer : String + get() = noImpl + set(value) = noImpl + var mode : String + get() = noImpl + set(value) = noImpl + var credentials : String + get() = noImpl + set(value) = noImpl + var cache : String + get() = noImpl + set(value) = noImpl + var redirect : String + get() = noImpl + set(value) = noImpl + var bodyUsed : Boolean + get() = noImpl + set(value) = noImpl + fun clone() : Request = noImpl + fun arrayBuffer() : dynamic = noImpl + fun blob() : dynamic = noImpl + fun formData() : dynamic = noImpl + fun json() : dynamic = noImpl + fun text() : dynamic = noImpl +} +native open class RequestInit { + var method : dynamic + var headers : dynamic + var body : dynamic + var mode : dynamic + var credentials : dynamic + var cache : dynamic + var redirect : dynamic +} +native open class Response(body : dynamic = noImpl, init : ResponseInit = noImpl) { + var type : String + get() = noImpl + set(value) = noImpl + var url : String + get() = noImpl + set(value) = noImpl + var status : Short + get() = noImpl + set(value) = noImpl + var ok : Boolean + get() = noImpl + set(value) = noImpl + var statusText : String + get() = noImpl + set(value) = noImpl + var headers : Headers + get() = noImpl + set(value) = noImpl + var bodyUsed : Boolean + get() = noImpl + set(value) = noImpl + fun clone() : Response = noImpl + fun arrayBuffer() : dynamic = noImpl + fun blob() : dynamic = noImpl + fun formData() : dynamic = noImpl + fun json() : dynamic = noImpl + fun text() : dynamic = noImpl +} +native open class ResponseInit { + var status : dynamic = 200 + var statusText : dynamic = "OK" + var headers : dynamic +} +native trait MediaList { + var mediaText : String + get() = noImpl + set(value) = noImpl + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : String? = noImpl + nativeGetter fun get(index : Int) : String? = noImpl + fun appendMedium(medium : String) : Unit = noImpl + fun deleteMedium(medium : String) : Unit = noImpl +} +native trait StyleSheet { + var type : String + get() = noImpl + set(value) = noImpl + var href : String? + get() = noImpl + set(value) = noImpl + var ownerNode : dynamic + get() = noImpl + set(value) = noImpl + var parentStyleSheet : StyleSheet? + get() = noImpl + set(value) = noImpl + var title : String? + get() = noImpl + set(value) = noImpl + var media : MediaList + get() = noImpl + set(value) = noImpl + var disabled : Boolean + get() = noImpl + set(value) = noImpl +} +native trait CSSStyleSheet : StyleSheet { + var ownerRule : CSSRule? + get() = noImpl + set(value) = noImpl + var cssRules : CSSRuleList + get() = noImpl + set(value) = noImpl + fun insertRule(rule : String, index : Int) : Int = noImpl + fun deleteRule(index : Int) : Unit = noImpl +} +native trait StyleSheetList { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : StyleSheet? = noImpl + nativeGetter fun get(index : Int) : StyleSheet? = noImpl +} +native trait CSSRuleList { + var length : Int + get() = noImpl + set(value) = noImpl + fun item(index : Int) : CSSRule? = noImpl + nativeGetter fun get(index : Int) : CSSRule? = noImpl +} +native trait CSSRule { + var type : Short + get() = noImpl + set(value) = noImpl + var cssText : String + get() = noImpl + set(value) = noImpl + var parentRule : CSSRule? + get() = noImpl + set(value) = noImpl + var parentStyleSheet : CSSStyleSheet? + get() = noImpl + set(value) = noImpl +companion object { + val STYLE_RULE : Short = 1 + val CHARSET_RULE : Short = 2 + val IMPORT_RULE : Short = 3 + val MEDIA_RULE : Short = 4 + val FONT_FACE_RULE : Short = 5 + val PAGE_RULE : Short = 6 + val MARGIN_RULE : Short = 9 + val NAMESPACE_RULE : Short = 10 +} +} +native trait CSSStyleRule : CSSRule { + var selectorText : String + get() = noImpl + set(value) = noImpl + var style : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl +} +native trait CSSImportRule : CSSRule { + var href : String + get() = noImpl + set(value) = noImpl + var media : MediaList + get() = noImpl + set(value) = noImpl + var styleSheet : CSSStyleSheet + get() = noImpl + set(value) = noImpl +} +native trait CSSGroupingRule : CSSRule { + var cssRules : CSSRuleList + get() = noImpl + set(value) = noImpl + fun insertRule(rule : String, index : Int) : Int = noImpl + fun deleteRule(index : Int) : Unit = noImpl +} +native trait CSSMediaRule : CSSGroupingRule { + var media : MediaList + get() = noImpl + set(value) = noImpl +} +native trait CSSPageRule : CSSGroupingRule { + var selectorText : String + get() = noImpl + set(value) = noImpl + var style : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl +} +native trait CSSMarginRule : CSSRule { + var name : String + get() = noImpl + set(value) = noImpl + var style : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl +} +native trait CSSNamespaceRule : CSSRule { + var namespaceURI : String + get() = noImpl + set(value) = noImpl + var prefix : String + get() = noImpl + set(value) = noImpl +} +native trait CSSStyleDeclaration { + var cssText : String + get() = noImpl + set(value) = noImpl + var length : Int + get() = noImpl + set(value) = noImpl + var parentRule : CSSRule? + get() = noImpl + set(value) = noImpl + var cssFloat : String + get() = noImpl + set(value) = noImpl + var _dashed_attribute : String + get() = noImpl + set(value) = noImpl + var _camel_cased_attribute : String + get() = noImpl + set(value) = noImpl + fun item(index : Int) : String = noImpl + nativeGetter fun get(index : Int) : String? = noImpl + fun getPropertyValue(property : String) : String = noImpl + fun getPropertyPriority(property : String) : String = noImpl + fun setProperty(property : String, value : String, priority : String = "") : Unit = noImpl + fun setPropertyValue(property : String, value : String) : Unit = noImpl + fun setPropertyPriority(property : String, priority : String) : Unit = noImpl + fun removeProperty(property : String) : String = noImpl +} +native trait PseudoElement { + var cascadedStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + var defaultStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + var rawComputedStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl + var usedStyle : CSSStyleDeclaration + get() = noImpl + set(value) = noImpl +} +native trait CSS { +} +native trait UnionHTMLOptGroupElementOrHTMLOptionElement { +} +native trait UnionElementOrMouseEvent { +} diff --git a/js/js.libraries/src/core/domEvents.kt b/js/js.libraries/src/core/domEvents.kt index 6228909626a..878160497cd 100644 --- a/js/js.libraries/src/core/domEvents.kt +++ b/js/js.libraries/src/core/domEvents.kt @@ -12,11 +12,12 @@ import org.w3c.dom.views.* // Contains stub APIs for the W3C DOM API so we can delegate to the platform DOM instead - +deprecated("Use org.w3c.dom3 instead") native public trait DocumentEvent { public fun createEvent(arg1: String?): Event = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait Event { public val bubbles: Boolean public val cancelable: Boolean @@ -36,12 +37,14 @@ native public trait Event { } } +deprecated("Use org.w3c.dom3 instead") native public trait EventTarget { public fun addEventListener(arg1: String?, arg2: EventListener, arg3: Boolean): Unit = noImpl public fun dispatchEvent(arg1: Event?): Boolean = noImpl public fun removeEventListener(arg1: String?, arg2: EventListener, arg3: Boolean): Unit = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait MouseEvent: UIEvent { public val altKey: Boolean public val button: Short @@ -56,6 +59,7 @@ native public trait MouseEvent: UIEvent { public fun initMouseEvent(arg1: String?, arg2: Boolean, arg3: Boolean, arg4: AbstractView, arg5: Int, arg6: Int, arg7: Int, arg8: Int, arg9: Int, arg10: Boolean, arg11: Boolean, arg12: Boolean, arg13: Boolean, arg14: Short, arg15: EventTarget): Unit = noImpl } +deprecated("Use org.w3c.dom3 instead") native public trait MutationEvent: Event { public val attrChange: Short public val attrName: String @@ -71,6 +75,7 @@ native public trait MutationEvent: Event { } } +deprecated("Use org.w3c.dom3 instead") native public trait UIEvent: Event { public val detail: Int public val view: AbstractView diff --git a/js/js.libraries/src/core/domEventsCode.kt b/js/js.libraries/src/core/domEventsCode.kt index 21dd77f628d..2abbd1d98f0 100644 --- a/js/js.libraries/src/core/domEventsCode.kt +++ b/js/js.libraries/src/core/domEventsCode.kt @@ -10,6 +10,7 @@ import org.w3c.dom.views.* See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib */ +deprecated("Use org.w3c.dom3 instead") public trait EventListener { public fun handleEvent(arg1: Event): Unit } diff --git a/js/js.libraries/src/core/domViews.kt b/js/js.libraries/src/core/domViews.kt index 646fcd48c50..5eeb100c13f 100644 --- a/js/js.libraries/src/core/domViews.kt +++ b/js/js.libraries/src/core/domViews.kt @@ -1,5 +1,6 @@ package org.w3c.dom.views +deprecated("Use org.w3c.dom3 instead") native public trait AbstractView { } diff --git a/js/js.libraries/src/core/htmlDom.kt b/js/js.libraries/src/core/htmlDom.kt index 7e0fb033fec..69f934a6ef4 100644 --- a/js/js.libraries/src/core/htmlDom.kt +++ b/js/js.libraries/src/core/htmlDom.kt @@ -3,17 +3,22 @@ package kotlin.js.dom.html import org.w3c.dom.* native +deprecated("Use org.w3c.dom3 instead") public val window: Window = noImpl native +deprecated("Use org.w3c.dom3 instead") public var document: HTMLDocument = noImpl +deprecated("Use org.w3c.dom3 instead") public native trait Object { } +deprecated("Use org.w3c.dom3 instead") public native trait Image : HTMLImageElement { } +deprecated("Use org.w3c.dom3 instead") public native trait Navigator { public native var userAgent: String public native var product: String @@ -39,6 +44,7 @@ public native trait Screen { public native var colorDepth: Double } +deprecated("Use org.w3c.dom3 instead") public native trait Option { public native var defaultSelected: Boolean public native var selected: Boolean @@ -46,6 +52,7 @@ public native trait Option { public native var value: String } +deprecated("Use org.w3c.dom3 instead") public native trait Location { public native var href: String public native var hash: String @@ -60,6 +67,7 @@ public native trait Location { public native fun replace(url: String): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait Event { public native var data: Array public native var height: Double @@ -80,17 +88,20 @@ public native trait Event { public native var button: Boolean } +deprecated("Use org.w3c.dom3 instead") public native trait Selection { } - +deprecated("Use org.w3c.dom3 instead") public native trait CSSRule { public native var selectorText: String } +deprecated("Use org.w3c.dom3 instead") public native trait Stylesheet { } +deprecated("Use org.w3c.dom3 instead") public native trait History { public native fun back(): Unit public native fun forward(): Unit @@ -101,6 +112,7 @@ public native trait Console { public native fun log(message: Any): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait Window { public native val document: HTMLDocument public native val event: Event @@ -160,18 +172,21 @@ public native trait Global { public native fun unescape(): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLCollection { public native val length: Double public native fun item(index: Number): Node? public native fun namedItem(name: String): Node? } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLOptionsCollection { public native val length: Double public native fun item(index: Number): Node? public native fun namedItem(name: String): Node? } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLDocument : Document { public native var title: String public native val referrer: String @@ -194,6 +209,7 @@ public native trait HTMLDocument : Document { public native var onunload: () -> Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLElement : Element { public native var id: String public native var title: String @@ -230,6 +246,7 @@ public native trait HTMLElement : Element { public native var onresize: () -> Unit } +deprecated("Use org.w3c.dom3 instead") public native trait CSSStyleDeclaration { public native var cssText: String public native var length: Double @@ -241,14 +258,17 @@ public native trait CSSStyleDeclaration { public native fun setProperty(propertyName: String, value: String, priority: String): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLHtmlElement : HTMLElement { public native var version: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLHeadElement : HTMLElement { public native var profile: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLLinkElement : HTMLElement { public native var disabled: Boolean public native var charset: String @@ -261,10 +281,12 @@ public native trait HTMLLinkElement : HTMLElement { public native var type: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTitleElement : HTMLElement { public native var text: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLMetaElement : HTMLElement { public native var content: String public native var httpEquiv: String @@ -272,22 +294,26 @@ public native trait HTMLMetaElement : HTMLElement { public native var scheme: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLBaseElement : HTMLElement { public native var href: String public native var target: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLIsIndexElement : HTMLElement { public native val form: HTMLFormElement public native var prompt: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLStyleElement : HTMLElement { public native var disabled: Boolean public native var media: String public native var type: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLBodyElement : HTMLElement { public native var aLink: String public native var background: String @@ -299,6 +325,7 @@ public native trait HTMLBodyElement : HTMLElement { public native var onunload: () -> Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLFormElement { public native val elements: HTMLCollection public native val length: Double @@ -312,6 +339,7 @@ public native trait HTMLFormElement { public native fun reset(): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLSelectElement : HTMLElement { public native val type: String public native var selectedIndex: Double @@ -330,11 +358,13 @@ public native trait HTMLSelectElement : HTMLElement { public native fun focus(): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLOptGroupElement : HTMLElement { public native var disabled: Boolean public native var label: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLOptionElement : HTMLElement { public native val form: HTMLFormElement public native var defaultSelected: Boolean @@ -346,6 +376,7 @@ public native trait HTMLOptionElement : HTMLElement { public native var value: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLInputElement : HTMLElement { public native var defaultValue: String public native var defaultChecked: Boolean @@ -373,6 +404,7 @@ public native trait HTMLInputElement : HTMLElement { public native var selectionEnd: Double } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTextAreaElement : HTMLElement { public native var defaultValue: String public native val form: HTMLFormElement @@ -390,6 +422,7 @@ public native trait HTMLTextAreaElement : HTMLElement { public native fun select(): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLButtonElement : HTMLElement { public native val form: HTMLFormElement public native var accessKey: String @@ -400,86 +433,104 @@ public native trait HTMLButtonElement : HTMLElement { public native var value: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLLabelElement : HTMLElement { public native val form: HTMLFormElement public native var accessKey: String public native var htmlFor: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLFieldSetElement : HTMLElement { public native val form: HTMLFormElement } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLLegendElement : HTMLElement { public native val form: HTMLFormElement public native var accessKey: String public native var align: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLUListElement : HTMLElement { public native var compact: Boolean public native var type: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLOListElement : HTMLElement { public native var compact: Boolean public native var start: Double public native var type: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLDListElement : HTMLElement { public native var compact: Boolean } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLDirectoryElement : HTMLElement { public native var compact: Boolean } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLMenuElement : HTMLElement { public native var compact: Boolean } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLLIElement : HTMLElement { public native var type: String public native var value: Double } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLDivElement : HTMLElement { public native var align: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLParagraphElement : HTMLElement { public native var align: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLHeadingElement : HTMLElement { public native var align: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLQuoteElement : HTMLElement { public native var cite: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLPreElement : HTMLElement { public native var width: Double } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLBRElement : HTMLElement { public native var clear: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLBaseFontElement : HTMLElement { public native var color: String public native var face: String public native var size: Double } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLFontElement : HTMLElement { public native var color: String public native var face: String public native var size: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLHRElement : HTMLElement { public native var align: String public native var noShade: Boolean @@ -487,11 +538,13 @@ public native trait HTMLHRElement : HTMLElement { public native var width: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLModElement : HTMLElement { public native var cite: String public native var dateTime: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLAnchorElement : HTMLElement { public native var accessKey: String public native var charset: String @@ -509,6 +562,7 @@ public native trait HTMLAnchorElement : HTMLElement { public native fun focus(): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLImageElement : HTMLElement { public native var name: String public native var align: String @@ -526,6 +580,7 @@ public native trait HTMLImageElement : HTMLElement { public native var width: Double } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLObjectElement : HTMLElement { public native val form: HTMLFormElement public native var code: String @@ -548,6 +603,7 @@ public native trait HTMLObjectElement : HTMLElement { public native val contentDocument: Document } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLParamElement : HTMLElement { public native var name: String public native var type: String @@ -555,6 +611,7 @@ public native trait HTMLParamElement : HTMLElement { public native var valueType: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLAppletElement : HTMLElement { public native var align: String public native var alt: String @@ -569,11 +626,13 @@ public native trait HTMLAppletElement : HTMLElement { public native var width: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLMapElement : HTMLElement { public native val areas: HTMLCollection public native var name: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLAreaElement : HTMLElement { public native var accessKey: String public native var alt: String @@ -585,6 +644,7 @@ public native trait HTMLAreaElement : HTMLElement { public native var target: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLScriptElement : HTMLElement { public native var text: String public native var htmlFor: String @@ -595,6 +655,7 @@ public native trait HTMLScriptElement : HTMLElement { public native var type: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTableElement : HTMLElement { public native var caption: HTMLTableCaptionElement public native var tHead: HTMLTableSectionElement @@ -620,10 +681,12 @@ public native trait HTMLTableElement : HTMLElement { public native fun deleteRow(index: Number): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTableCaptionElement : HTMLElement { public native var align: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTableColElement : HTMLElement { public native var align: String public native var ch: String @@ -633,6 +696,7 @@ public native trait HTMLTableColElement : HTMLElement { public native var width: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTableSectionElement : HTMLElement { public native var align: String public native var ch: String @@ -643,6 +707,7 @@ public native trait HTMLTableSectionElement : HTMLElement { public native fun deleteRow(index: Number): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTableRowElement : HTMLElement { public native val rowIndex: Double public native val sectionRowIndex: Double @@ -656,6 +721,7 @@ public native trait HTMLTableRowElement : HTMLElement { public native fun deleteCell(index: Number): Unit } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLTableCellElement : HTMLElement { public native val cellIndex: Double public native var abbr: String @@ -674,11 +740,13 @@ public native trait HTMLTableCellElement : HTMLElement { public native var width: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLFrameSetElement : HTMLElement { public native var cols: String public native var rows: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLFrameElement : HTMLElement { public native var frameBorder: String public native var longDesc: String @@ -690,6 +758,7 @@ public native trait HTMLFrameElement : HTMLElement { public native var src: String } +deprecated("Use org.w3c.dom3 instead") public native trait HTMLIFrameElement : HTMLElement { public native var align: String public native var frameBorder: String diff --git a/libraries/tools/idl2k/pom.xml b/libraries/tools/idl2k/pom.xml new file mode 100644 index 00000000000..1cc8254c7fb --- /dev/null +++ b/libraries/tools/idl2k/pom.xml @@ -0,0 +1,133 @@ + + + 4.0.0 + + org.jetbrains.kotlin + idl2k + 1.0-SNAPSHOT + + + 0.1-SNAPSHOT + 4.5 + + + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + org.antlr + antlr4-runtime + ${antlr.version} + + + + org.jsoup + jsoup + 1.8.2 + + + + + ${project.basedir}/src/main/kotlin + + + + + org.antlr + antlr4-maven-plugin + ${antlr.version} + + + + antlr4 + + + true + + + + + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + + + + compile + compile + + compile + + + + + test-compile + test-compile + + test-compile + + + + + + + org.codehaus.mojo + exec-maven-plugin + + + + java + + + + + org.jetbrains.idl2k.Idl2kPackage + compile + ${project.basedir} + + + + + maven-deploy-plugin + + true + + + + + + + + sonatype.oss.snapshots + Sonatype OSS Snapshot Repository + http://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + + sonatype.oss.snapshots + Sonatype OSS Snapshot Repository + http://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + diff --git a/libraries/tools/idl2k/src/main/antlr4/org/antlr/webidl/WebIDL.g4 b/libraries/tools/idl2k/src/main/antlr4/org/antlr/webidl/WebIDL.g4 new file mode 100644 index 00000000000..d3e4b1e0f11 --- /dev/null +++ b/libraries/tools/idl2k/src/main/antlr4/org/antlr/webidl/WebIDL.g4 @@ -0,0 +1,591 @@ +/* +BSD License + +Copyright (c) 2013, Rainer Schuster +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of Rainer Schuster nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Web IDL grammar derived from: + + http://heycam.github.io/webidl/ + + Web IDL (Second Edition) + W3C Editor's Draft 13 November 2014 + */ +grammar WebIDL; + +// Note: Replaced keywords: const, default, enum, interface, null. +// Note: Added "wrapper" rule webIDL with EOF token. + +webIDL + : definitions EOF +; + + +definitions + : extendedAttributeList definition definitions + | /* empty */ +; + +definition + : callbackOrInterface + | partial + | dictionary + | enum_ + | typedef + | implementsStatement +; + +callbackOrInterface + : 'callback' callbackRestOrInterface + | interface_ +; + +callbackRestOrInterface + : callbackRest + | interface_ +; + +interface_ + : 'interface' IDENTIFIER_WEBIDL inheritance '{' interfaceMembers '}' ';' +; + +partial + : 'partial' partialDefinition +; + +partialDefinition + : partialInterface + | partialDictionary +; + +partialInterface + : 'interface' IDENTIFIER_WEBIDL '{' interfaceMembers '}' ';' +; + +interfaceMembers + : extendedAttributeList interfaceMember interfaceMembers + | /* empty */ +; + +interfaceMember + : const_ + | operation + | serializer + | stringifier + | staticMember + | iterable + | readonlyMember + | readWriteAttribute + | readWriteMaplike + | readWriteSetlike +; + +dictionary + : 'dictionary' IDENTIFIER_WEBIDL inheritance '{' dictionaryMembers '}' ';' +; + +dictionaryMembers + : extendedAttributeList dictionaryMember dictionaryMembers + | /* empty */ +; + +dictionaryMember + : required type IDENTIFIER_WEBIDL default_ ';' +; + +required + : 'required' + | /* empty */ +; + +partialDictionary + : 'dictionary' IDENTIFIER_WEBIDL '{' dictionaryMembers '}' ';' +; + +default_ + : '=' defaultValue + | /* empty */ +; + +defaultValue + : constValue + | STRING_WEBIDL + | '[' ']' +; + +inheritance + : ':' IDENTIFIER_WEBIDL + | /* empty */ +; + +enum_ + : 'enum' IDENTIFIER_WEBIDL '{' enumValueList '}' ';' +; + +enumValueList + : STRING_WEBIDL enumValueListComma +; + +enumValueListComma + : ',' enumValueListString + | /* empty */ +; + +enumValueListString + : STRING_WEBIDL enumValueListComma + | /* empty */ +; + +callbackRest + : IDENTIFIER_WEBIDL '=' returnType '(' argumentList ')' ';' +; + +typedef + : 'typedef' type IDENTIFIER_WEBIDL ';' +; + +implementsStatement + : IDENTIFIER_WEBIDL 'implements' IDENTIFIER_WEBIDL ';' +; + +const_ + : 'const' constType IDENTIFIER_WEBIDL '=' constValue ';' +; + +constValue + : booleanLiteral + | floatLiteral + | INTEGER_WEBIDL + | 'null' +; + +booleanLiteral + : 'true' + | 'false' +; + +floatLiteral + : FLOAT_WEBIDL + | '-Infinity' + | 'Infinity' + | 'NaN' +; + +serializer + : 'serializer' serializerRest +; + +serializerRest + : operationRest + | '=' serializationPattern + | /* empty */ +; + +serializationPattern + : '{' serializationPatternMap '}' + | '[' serializationPatternList ']' + | IDENTIFIER_WEBIDL +; + +serializationPatternMap + : 'getter' + | 'inherit' identifiers + | IDENTIFIER_WEBIDL identifiers + | /* empty */ +; + +serializationPatternList + : 'getter' + | IDENTIFIER_WEBIDL identifiers + | /* empty */ +; + +stringifier + : 'stringifier' stringifierRest +; + +stringifierRest + : readOnly attributeRest + | returnType operationRest + | ';' +; + +staticMember + : 'static' staticMemberRest +; + +staticMemberRest + : readOnly attributeRest + | returnType operationRest +; + +readonlyMember + : 'readonly' readonlyMemberRest +; + +readonlyMemberRest + : attributeRest + | maplikeRest + | setlikeRest +; + +readWriteAttribute + : 'inherit' readOnly attributeRest + | attributeRest +; + +attributeRest + : 'attribute' type (IDENTIFIER_WEBIDL | 'required') ';' +; + +attributeName + : attributeNameKeyword + | IDENTIFIER_WEBIDL +; + +attributeNameKeyword + : 'required' +; + +inherit + : 'inherit' + | /* empty */ +; + +readOnly + : 'readonly' + | /* empty */ +; + +operation + : returnType operationRest + | specialOperation +; + +specialOperation + : special specials returnType operationRest +; + +specials + : special specials + | /* empty */ +; + +special + : 'getter' + | 'setter' + | 'creator' + | 'deleter' + | 'legacycaller' +; + +operationRest + : optionalIdentifier '(' argumentList ')' ';' +; + +optionalIdentifier + : IDENTIFIER_WEBIDL + | /* empty */ +; + +argumentList + : argument arguments + | /* empty */ +; + +arguments + : ',' argument arguments + | /* empty */ +; + +argument + : extendedAttributeList optionalOrRequiredArgument +; + +optionalOrRequiredArgument + : 'optional'? type ellipsis argumentName default_ +; + +argumentName + : argumentNameKeyword + | IDENTIFIER_WEBIDL +; + +ellipsis + : '...' + | /* empty */ +; + +iterable + : 'iterable' '<' type optionalType '>' ';' + | 'legacyiterable' '<' type '>' ';' +; + +optionalType + : ',' type + | /* empty */ +; + +readWriteMaplike + : maplikeRest +; + +readWriteSetlike + : setlikeRest +; + +maplikeRest + : 'maplike' '<' type ',' type '>' ';' +; + +setlikeRest + : 'setlike' '<' type '>' ';' +; + +extendedAttributeList + : '[' extendedAttribute extendedAttributes ']' + | /* empty */ +; + +extendedAttributes + : ',' extendedAttribute extendedAttributes + | /* empty */ +; + +extendedAttribute + : extendedAttributeNamePart? IDENTIFIER_WEBIDL ('(' argumentList ')')? + | extendedAttributeNamePart? IDENTIFIER_WEBIDL? '(' argumentList ')' + | extendedAttributeNamePart? IDENTIFIER_WEBIDL? '(' identifierList ')' + | /* empty */ +; + +extendedAttributeNamePart + : IDENTIFIER_WEBIDL '=' +; + +argumentNameKeyword + : 'attribute' + | 'callback' + | 'const' + | 'creator' + | 'deleter' + | 'dictionary' + | 'enum' + | 'getter' + | 'implements' + | 'inherit' + | 'interface' + | 'iterable' + | 'legacycaller' + | 'legacyiterable' + | 'maplike' + | 'partial' + | 'required' + | 'serializer' + | 'setlike' + | 'setter' + | 'static' + | 'stringifier' + | 'typedef' + | 'unrestricted' +; + +type + : singleType + | unionType typeSuffix +; + +singleType + : nonAnyType + | 'any' typeSuffixStartingWithArray +; + +unionType + : '(' unionMemberType 'or' unionMemberType unionMemberTypes ')' +; + +unionMemberType + : nonAnyType + | unionType typeSuffix + | 'any' '[' ']' typeSuffix +; + +unionMemberTypes + : 'or' unionMemberType unionMemberTypes + | /* empty */ +; + +nonAnyType + : primitiveType typeSuffix + | promiseType null_ + | 'ByteString' typeSuffix + | 'DOMString' typeSuffix + | 'USVString' typeSuffix + | IDENTIFIER_WEBIDL typeSuffix + | 'sequence' '<' type '>' null_ + | 'object' typeSuffix + | 'Date' typeSuffix + | 'RegExp' typeSuffix + | 'DOMException' typeSuffix + | bufferRelatedType typeSuffix +; + +bufferRelatedType + : 'ArrayBuffer' + | 'DataView' + | 'Int8Array' + | 'Int16Array' + | 'Int32Array' + | 'Uint8Array' + | 'Uint16Array' + | 'Uint32Array' + | 'Uint8ClampedArray' + | 'Float32Array' + | 'Float64Array' +; + +constType + : primitiveType null_ + | IDENTIFIER_WEBIDL null_ +; + +primitiveType + : unsignedIntegerType + | unrestrictedFloatType + | 'boolean' + | 'byte' + | 'octet' +; + +unrestrictedFloatType + : 'unrestricted' floatType + | floatType +; + +floatType + : 'float' + | 'double' +; + +unsignedIntegerType + : 'unsigned' integerType + | integerType +; + +integerType + : 'short' + | 'long' optionalLong +; + +optionalLong + : 'long' + | /* empty */ +; + +promiseType + : 'Promise' '<' returnType '>' +; + +typeSuffix + : '[' ']' typeSuffix + | '?' typeSuffixStartingWithArray + | /* empty */ +; + +typeSuffixStartingWithArray + : '[' ']' typeSuffix + | /* empty */ +; + +null_ + : '?' + | /* empty */ +; + +returnType + : type + | 'void' +; + +identifierList + : IDENTIFIER_WEBIDL identifiers +; + +identifiers + : ',' IDENTIFIER_WEBIDL identifiers + | /* empty */ +; + +extendedAttributeNoArgs + : IDENTIFIER_WEBIDL +; + +extendedAttributeArgList + : IDENTIFIER_WEBIDL '(' argumentList ')' +; + +extendedAttributeIdent + : IDENTIFIER_WEBIDL '=' IDENTIFIER_WEBIDL +; + +extendedAttributeIdentList + : IDENTIFIER_WEBIDL '=' '(' identifierList ')' +; + +extendedAttributeNamedArgList + : IDENTIFIER_WEBIDL '=' IDENTIFIER_WEBIDL '(' argumentList ')' +; + + +INTEGER_WEBIDL + : '-'?('0'([Xx][0-9A-Fa-f]+|[0-7]*)|[1-9][0-9]*) +; + +FLOAT_WEBIDL + : '-'?(([0-9]+'.'[0-9]*|[0-9]*'.'[0-9]+)([Ee][\+\-]?[0-9]+)?|[0-9]+[Ee][\+\-]?[0-9]+) +; + +IDENTIFIER_WEBIDL + : [A-Z_a-z][0-9A-Z_a-z]* +; + +STRING_WEBIDL + : '"'~['"']*'"' +; + +WHITESPACE_WEBIDL + : [\t\n\r ]+ -> channel(HIDDEN) +; + +COMMENT_WEBIDL + : ('//'~[\n\r]*|'/*'(.|'\n')*?'*/')+ -> channel(HIDDEN) +; // Note: '/''/'~[\n\r]* instead of '/''/'.* (non-greedy because of wildcard). + +OTHER_WEBIDL + : ~[\t\n\r 0-9A-Z_a-z] +; diff --git a/libraries/tools/idl2k/src/main/kotlin/gen.kt b/libraries/tools/idl2k/src/main/kotlin/gen.kt new file mode 100644 index 00000000000..7463e6ebfbd --- /dev/null +++ b/libraries/tools/idl2k/src/main/kotlin/gen.kt @@ -0,0 +1,80 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.idl2k + +import java.util.* + +private val typeMapper = mapOf( + "unsignedlong" to "Int", + "unsignedlonglong" to "Long", + "longlong" to "Long", + "unsignedshort" to "Short", + "void" to "Unit", + "DOMString" to "String", + "boolean" to "Boolean", + "short" to "Short", + "long" to "Int", + "double" to "Double", + "any" to "Any", + "" to "dynamic", + "DOMTimeStamp" to "Number", + "EventHandler" to "() -> Unit", + "object" to "dynamic", + "WindowProxy" to "Window", + "Uint8ClampedArray" to "dynamic", // TODO think of native arrays, + "Function" to "() -> dynamic", + "USVString" to "String", + "ByteString" to "String", + "DOMError" to "dynamic", + "SVGMatrix" to "dynamic", + "ArrayBuffer" to "dynamic", + "Elements" to "dynamic" +) + +private fun fixDynamic(type : String) = if (type == "dynamic?") "dynamic" else type + +private fun mapType(repository: Repository, type: String) = fixDynamic(handleSpecialTypes(repository, typeMapper[type] ?: type)) + +private fun handleSpecialTypes(repository: Repository, type: String): String { + if (type.endsWith("?")) { + return mapType(repository, type.substring(0, type.length() - 1)) + "?" + } else if (type.endsWith("...")) { + return mapType(repository, type.substring(0, type.length() - 3)) + } else if (type.endsWith("[]")) { + return "Array<${mapType(repository, type.substring(0, type.length() - 2))}>" + } else if (type.startsWith("unrestricted")) { + return mapType(repository, type.substring(12)) + } else if (type.startsWith("sequence")) { + return "Any" // TODO how do we handle sequences? + } else if (type in repository.typeDefs) { + return "dynamic" + } else if (type in repository.enums) { + return "String" + } else if (type.endsWith("Callback")) { + return "() -> Unit" +// } else if (type.startsWith("Union<")) { +// return "dynamic" + } else if (type.startsWith("Promise<")) { + return "dynamic" + } else if ("NoInterfaceObject" in repository.interfaces[type]?.extendedAttributes?.map {it.call} ?: emptyList()) { + return "dynamic" + } + + return type +} + +private fun findConstructorAttribute(iface: InterfaceDefinition) = iface.extendedAttributes.firstOrNull { it.call == "Constructor" } diff --git a/libraries/tools/idl2k/src/main/kotlin/gen2.kt b/libraries/tools/idl2k/src/main/kotlin/gen2.kt new file mode 100644 index 00000000000..b39cf2bdabe --- /dev/null +++ b/libraries/tools/idl2k/src/main/kotlin/gen2.kt @@ -0,0 +1,272 @@ +package org.jetbrains.idl2k + +import java.math.BigInteger +import java.util.* +import kotlin.support.AbstractIterator + +private fun Operation.getterOrSetter() = this.attributes.map { it.call }.toSet().let { attributes -> + when { + "getter" in attributes -> NativeGetterOrSetter.GETTER + "setter" in attributes -> NativeGetterOrSetter.SETTER + else -> NativeGetterOrSetter.NONE + } +} + +private fun String.ensureNullable() = if (this.endsWith("?") || this == "dynamic") this else this + "?" + +fun generateFunction1(repository: Repository, function: Operation, functionName: String, nativeGetterOrSetter: Boolean): GenerateFunction = + function.attributes.map { it.call }.toSet().let { attributes -> + GenerateFunction( + name = functionName, + returnType = mapType(repository, function.returnType).let { mapped -> if (nativeGetterOrSetter) mapped.ensureNullable() else mapped }, + arguments = function.parameters.map { + GenerateAttribute( + name = it.name, + type = mapType(repository, it.type), + initializer = it.defaultValue, + getterSetterNoImpl = false, + override = false, + readOnly = true, + vararg = it.vararg + ) + }, + native = if (nativeGetterOrSetter) function.getterOrSetter() else NativeGetterOrSetter.NONE + ) + } + +fun generateFunction(repository: Repository, function: Operation): List { + val realFunction = if (function.name == "") null else generateFunction1(repository, function, function.name, false) + val getterOrSetterFunction = when (function.getterOrSetter()) { + NativeGetterOrSetter.NONE -> null + NativeGetterOrSetter.GETTER -> generateFunction1(repository, function, "get", true) + NativeGetterOrSetter.SETTER -> generateFunction1(repository, function, "set", true) + } + + return listOf(realFunction, getterOrSetterFunction).filterNotNull() +} + +fun generateAttribute(putNoImpl: Boolean, repository: Repository, attribute: Attribute): GenerateAttribute = + GenerateAttribute(attribute.name, + type = mapType(repository, attribute.type), + initializer = attribute.defaultValue, + getterSetterNoImpl = putNoImpl, + readOnly = attribute.readOnly, + override = false, + vararg = attribute.vararg + ) + +private fun InterfaceDefinition.findConstructor() = extendedAttributes.firstOrNull { it.call == "Constructor" } + +private fun InterfaceDefinition.superTypes(repository: Repository) = superTypes.map { repository.interfaces[it] }.filterNotNull() +private fun resolveDefinitionType(repository: Repository, iface: InterfaceDefinition, constructor: ExtendedAttribute? = findConstructorAttribute(iface)): GenerateDefinitionType = + if (iface.dictionary || constructor != null || iface.superTypes(repository).any { resolveDefinitionType(repository, it) == GenerateDefinitionType.CLASS }) GenerateDefinitionType.CLASS + else GenerateDefinitionType.TRAIT + +private fun InterfaceDefinition.mapAttributes(repository: Repository) = attributes.map { generateAttribute(!dictionary, repository, it) } +private fun InterfaceDefinition.mapOperations(repository: Repository) = operations.flatMap { generateFunction(repository, it) } +private fun Constant.mapConstant(repository : Repository) = GenerateAttribute(name, mapType(repository, type), value, false, true, false, false) + +fun generateTrait(repository: Repository, iface: InterfaceDefinition): GenerateTraitOrClass { + val constructor = iface.findConstructor() + val parentTypes = iface.superTypes.map { repository.interfaces[it] }.filterNotNull().map { it to resolveDefinitionType(repository, it) } + val constructorFunction = generateFunction1(repository, Operation("", "Unit", constructor?.arguments ?: emptyList(), emptyList()), "", false) + val constructorArgumentNames = constructorFunction.arguments.map { it.name }.toSet() + + val constructorSuperCalls = parentTypes.filter { it.second == GenerateDefinitionType.CLASS }.map { it.first }.map { + val superConstructor = it.findConstructor() + GenerateFunctionCall(name = it.name, + arguments = if (superConstructor == null) emptyList() else + superConstructor.arguments.map { arg -> + if (arg.name in constructorArgumentNames) arg.name + else "noImpl" + } + ) + } + + val entityType = resolveDefinitionType(repository, iface, constructor) + val extensions = repository.externals[iface.name]?.map { repository.interfaces[it] }?.filterNotNull() ?: emptyList() + + return GenerateTraitOrClass(iface.name, entityType, iface.superTypes, + memberAttributes = (iface.mapAttributes(repository) + extensions.flatMap { it.mapAttributes(repository) }).distinct().toList(), + memberFunctions = (iface.mapOperations(repository) + extensions.flatMap { it.mapOperations(repository) }).distinct().toList(), + constnats = iface.constants.map {it.mapConstant(repository)}, + constructor = constructorFunction, + superConstructorCalls = constructorSuperCalls + ) +} + +private fun splitUnionType(unionType: String) = + unionType.split("[>]*,(Union<)*".toRegex()).toList().filter { it != "" }.map { it.removePrefix("Union<").replaceAll(">*$", "") }.distinct() + +private fun GenerateFunction?.allTypes() = if (this != null) sequenceOf(returnType) + arguments.asSequence().map { it.type } else emptySequence() + +class UnionType(types : Collection) { + val types = HashSet(types) + val name = "Union${this.types.sort().joinToString("Or")}" + + fun contains(type : String) = type in types + + override fun equals(other: Any?): Boolean = other is UnionType && name == other.name + override fun hashCode(): Int = name.hashCode() + override fun toString(): String = name +} + +private fun collectUnionTypes(allTypes: Map) = + allTypes.values().asSequence() + .flatMap { + it.constructor.allTypes() + + it.memberAttributes.asSequence().map { it.type } + + it.memberFunctions.asSequence().flatMap { it.allTypes() } + } + .filter { it.startsWith("Union<") } + .map { splitUnionType(it) } + .filter { it.all { unionMember -> unionMember in allTypes } } + .toSet() + .map { UnionType(it) } + +fun generateUnionTypeTraits(allUnionTypes : Iterable): List = + allUnionTypes.map { GenerateTraitOrClass( + name = it.name, + type = GenerateDefinitionType.TRAIT, + superTypes = emptyList(), + memberAttributes = emptyList(), + memberFunctions = emptyList(), + constnats = emptyList(), + constructor = null, + superConstructorCalls = emptyList() + ) } + +fun mapDefinitions(repository: Repository, definitions: Iterable) = + definitions.filter { "NoInterfaceObject" !in it.extendedAttributes.map { it.call } }.map { generateTrait(repository, it) } + +private fun O.renderAttributeDeclaration(allTypes: Set, arg: GenerateAttribute, override: Boolean) { + append(" ") + + if (override) { + append("override ") + } + + append(if (arg.readOnly) "val" else "var") + append(" ") + append(arg.name) + append(" : ") + append(arg.type.mapUnknownType(allTypes)) + if (arg.initializer != null) { + append(" = ") + append(arg.initializer) + } + + appendln() + if (arg.getterNoImpl) { + appendln(" get() = noImpl") + } + if (arg.setterNoImpl) { + appendln(" set(value) = noImpl") + } +} + + +fun GenerateTraitOrClass.allSuperTypes(all: Map) = HashSet().let { result -> allSuperTypesImpl(listOf(this), all, result); result.toList() } + +tailRecursive +private fun allSuperTypesImpl(roots: List, all: Map, result: HashSet) { + if (roots.isNotEmpty()) { + allSuperTypesImpl(roots.flatMap { it.superTypes }.map { all[it] }.filterNotNull().filter { result.add(it) }, all, result) + } +} + +private fun String.mapUnknownType(allTypes: Set, standardTypes: Set = typeMapper.values().toSet()): String = + if (this.endsWith("?")) (this.substring(0, length() - 1).mapUnknownType(allTypes, standardTypes) + "?").replace("dynamic?", "dynamic") + else if (this.startsWith("Union<")) UnionType(splitUnionType(this)).name.mapUnknownType(allTypes, standardTypes) + else if (this in allTypes || this in standardTypes) this else "dynamic" + +private fun String.parse() = if (this.startsWith("0x")) BigInteger(this.substring(2), 16) else BigInteger(this) +private fun String.replaceInitializer(type: String) = if (this == "noImpl" || type == "Int" && parse() > BigInteger.valueOf(Int.MAX_VALUE.toLong())) "noImpl" else this + +private fun O.renderArgumentsDeclaration(allTypes: Set, args: List, omitDefaults: Boolean) = + args.map { "${if (it.vararg) "vararg " else ""}${it.name} : ${it.type.mapUnknownType(allTypes)}${if (omitDefaults || it.initializer == null) "" else " = ${it.initializer.replaceInitializer(it.type)}"}" }.joinTo(this, ", ") + +private fun renderCall(call: GenerateFunctionCall) = "${call.name}(${call.arguments.join(", ")})" + +private fun O.renderFunction(allTypes: Set, f: GenerateFunction, override: Boolean) { + append(" ") + + when (f.native) { + NativeGetterOrSetter.GETTER -> append("nativeGetter ") + NativeGetterOrSetter.GETTER -> append("nativeSetter ") + } + + if (override) { + append("override ") + } + + append("fun ${f.name}(") + renderArgumentsDeclaration(allTypes, f.arguments, override) + appendln(") : ${f.returnType.mapUnknownType(allTypes)} = noImpl") +} + +fun O.render(allTypes: Map, classesToUnions : Map>, iface: GenerateTraitOrClass) { + val superTypes = iface.allSuperTypes(allTypes).filter { it.name != "" } + val superTypesNames = superTypes.map { it.name }.toSet() + + append("native ") + when (iface.type) { + GenerateDefinitionType.CLASS -> append("open class ") + GenerateDefinitionType.TRAIT -> append("trait ") + } + + append(iface.name) + if (iface.constructor != null && iface.constructor.arguments.isNotEmpty()) { + append("(") + renderArgumentsDeclaration(allTypes.keySet(), iface.constructor.arguments, false) + append(")") + } + + val superCalls = iface.superConstructorCalls.map { it.name }.toSet() + val superTypesWithCalls = + iface.superConstructorCalls.filter { it.name in superTypesNames }.map { renderCall(it) } + + iface.superTypes.filter { it !in superCalls && it in superTypesNames } + + (classesToUnions[iface.name]?.map {it.name} ?: emptyList()) + + if (superTypesWithCalls.isNotEmpty()) { + superTypesWithCalls.joinTo(this, ", ", " : ") + } + + appendln (" {") + + val superAttributes = superTypes.flatMap { it.memberAttributes }.distinct() + val superFunctions = superTypes.flatMap { it.memberFunctions }.distinct() + val superProtos = superAttributes.map { it.proto } merge superFunctions.map { it.proto } + + iface.memberAttributes.filter { it !in superAttributes }.forEach { arg -> + renderAttributeDeclaration(allTypes.keySet(), arg, arg.proto in superProtos) + } + iface.memberFunctions.filter { it !in superFunctions }.forEach { + renderFunction(allTypes.keySet(), it, it.proto in superProtos) + } + if (iface.constnats.isNotEmpty()) { + appendln("companion object {") + iface.constnats.forEach { + renderAttributeDeclaration(allTypes.keySet(), it, false) + } + appendln("}") + } + + appendln("}") +} + +fun O.render(ifaces: List) { + val all = ifaces.groupBy { it.name }.mapValues { it.getValue().single() } + val unionTypes = collectUnionTypes(all) + val unionTypeTraits = generateUnionTypeTraits(unionTypes) + val allUnions = unionTypeTraits.groupBy { it.name }.mapValues { it.getValue().single() } + val classesToUnions = unionTypes.flatMap { unionType -> unionType.types.map { it to unionType } }.groupBy { it.first }.mapValues { it.getValue().map { it.second } } + + ifaces.forEach { + render(all + allUnions, classesToUnions, it) + } + + unionTypeTraits.forEach { + render(all, emptyMap(), it) + } +} \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/kotlin/htmls.kt b/libraries/tools/idl2k/src/main/kotlin/htmls.kt new file mode 100644 index 00000000000..e28dcb9f459 --- /dev/null +++ b/libraries/tools/idl2k/src/main/kotlin/htmls.kt @@ -0,0 +1,53 @@ +package org.jetbrains.idl2k + +import org.jsoup.Jsoup +import org.jsoup.nodes.Element +import org.jsoup.parser.Tag +import java.net.URL + +val urls = listOf( + "https://raw.githubusercontent.com/whatwg/html-mirror/master/source", + "https://html.spec.whatwg.org/", + "https://raw.githubusercontent.com/whatwg/dom/master/dom.html", + "http://www.w3.org/TR/uievents/", + "https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html", + "https://raw.githubusercontent.com/whatwg/xhr/master/Overview.src.html", + "https://raw.githubusercontent.com/w3c/FileAPI/gh-pages/index.html", + "https://raw.githubusercontent.com/whatwg/notifications/master/notifications.html", + "https://raw.githubusercontent.com/whatwg/fullscreen/master/Overview.src.html", + "http://www.w3.org/TR/DOM-Parsing/", + "http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html", + "https://raw.githubusercontent.com/whatwg/fetch/master/Overview.src.html", + "http://www.w3.org/TR/vibration/", + "http://dev.w3.org/csswg/cssom/" +) + +private fun extractIDLText(url: String, out: StringBuilder) { +// val soup = Jsoup.connect(url).validateTLSCertificates(false).ignoreHttpErrors(true).get() + val soup = Jsoup.parse(URL(url).readText()) + fun append(it : Element) { + if (!it.tag().preserveWhitespace()) { + return append(Element(Tag.valueOf("pre"), it.baseUri()).appendChild(it)) + } + + val text = it.text() + out.appendln(text) + if (!text.trimEnd().endsWith(";")) { + out.appendln(";") + } + } + + soup.select("pre.idl").filter {!it.hasClass("extract")}.forEach(::append) + soup.select("code.idl-code").forEach(::append) + soup.select("spec-idl").forEach(::append) +} + +fun getAllIDLs(): String = + StringBuilder { + urls.forEach { + extractIDLText(it, this) + } + +// appendln(constantPart) + }.toString() + diff --git a/libraries/tools/idl2k/src/main/kotlin/idl.kt b/libraries/tools/idl2k/src/main/kotlin/idl.kt new file mode 100644 index 00000000000..fbf8287c795 --- /dev/null +++ b/libraries/tools/idl2k/src/main/kotlin/idl.kt @@ -0,0 +1,445 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.idl2k + +import org.antlr.webidl.WebIDLBaseListener +import org.antlr.webidl.WebIDLLexer +import org.antlr.webidl.WebIDLParser +import org.antlr.webidl.WebIDLParser.* +import org.antlr.v4.runtime.ANTLRInputStream +import org.antlr.v4.runtime.BufferedTokenStream +import org.antlr.v4.runtime.CommonTokenStream +import org.antlr.v4.runtime.ParserRuleContext +import org.antlr.v4.runtime.tree.TerminalNode +import org.antlr.webidl.WebIDLBaseVisitor +import org.jsoup.Jsoup +import java.io.File +import java.io.Reader +import java.io.StringReader +import java.net.URL +import java.util.* + +data class ExtendedAttribute(val name : String?, val call : String, val arguments : List) +data class Operation(val name : String, val returnType : String, val parameters : List, val attributes : List) +data class Attribute(val name : String, val type : String, val readOnly : Boolean, val defaultValue : String? = null, val vararg : Boolean) +data class Constant(val name : String, val type : String, val value : String?) + +enum class DefinitionType { + INTERFACE + TYPEDEF + EXTENSION_INTERFACE + ENUM + DICTIONARY +} +trait Definition +data class TypedefDefinition(val from : String, val to : String) : Definition +data class InterfaceDefinition(val name : String, val extendedAttributes: List, val operations : List, val attributes : List, val superTypes : List, val constants : List, val dictionary : Boolean = false) : Definition +data class ExtensionInterfaceDefinition(val name : String, val implements : String) : Definition +data class EnumDefinition(val name : String) : Definition + +class ExtendedAttributeArgumentsParser : WebIDLBaseVisitor>() { + private val arguments = ArrayList() + + override fun defaultResult(): List = arguments + + override fun visitOptionalOrRequiredArgument(ctx: WebIDLParser.OptionalOrRequiredArgumentContext): List { + val attributeVisitor = AttributeVisitor(false) + attributeVisitor.visit(ctx) + val parameter = attributeVisitor.visitChildren(ctx) + + arguments.add(parameter) + + visitChildren(ctx) + return defaultResult() + } +} + +class ExtendedAttributeParser : WebIDLBaseVisitor() { + private var name : String? = null + private var call : String = "" + private val arguments = ArrayList() + + override fun defaultResult(): ExtendedAttribute = ExtendedAttribute(name, call, arguments) + + override fun visitExtendedAttribute(ctx: WebIDLParser.ExtendedAttributeContext): ExtendedAttribute { + call = ctx.children?.filter {it is TerminalNode && it.getSymbol().getType() == WebIDLLexer.IDENTIFIER_WEBIDL}?.firstOrNull()?.getText() ?: "" + + visitChildren(ctx) + return defaultResult() + } + + override fun visitArgumentList(ctx: WebIDLParser.ArgumentListContext): ExtendedAttribute { + arguments.addAll(ExtendedAttributeArgumentsParser().visitChildren(ctx)) + return defaultResult() + } + + override fun visitIdentifierList(ctx : IdentifierListContext) : ExtendedAttribute { + object : WebIDLBaseVisitor() { + override fun visitTerminal(node : TerminalNode) { + if (node.getSymbol().getType() == WebIDLLexer.IDENTIFIER_WEBIDL) { + arguments.add(Attribute(node.getText(), "any", true, vararg = false)) + } + } + }.visitChildren(ctx) + + return defaultResult() + } + + override fun visitExtendedAttributeNamePart(ctx: WebIDLParser.ExtendedAttributeNamePartContext): ExtendedAttribute { + name = getName(ctx) + return defaultResult() + } +} + +class UnionTypeVisitor : WebIDLBaseVisitor>() { + val list = ArrayList() + + override fun defaultResult() = list + + override fun visitUnionMemberType(ctx: WebIDLParser.UnionMemberTypeContext): List { + list.add(TypeVisitor().visitChildren(ctx)) + + return list + } +} + +class TypeVisitor : WebIDLBaseVisitor() { + private var type = "" + + override fun defaultResult() = type + + override fun visitNonAnyType(ctx: WebIDLParser.NonAnyTypeContext): String { + type = ctx.getText() + return type + } + + override fun visitUnionType(ctx: WebIDLParser.UnionTypeContext): String { + type = "Union<" + UnionTypeVisitor().visitChildren(ctx).joinToString(",") + ">" + return type + } + + override fun visitTerminal(node: TerminalNode): String { + type = node.getText() + return type + } +} + +class OperationVisitor(val attributes : List) : WebIDLBaseVisitor() { + private var name : String = "" + private var returnType : String = "" + private val parameters = ArrayList() + private val exts = ArrayList() + + override fun defaultResult() = Operation(name, returnType, parameters, attributes + exts) + + override fun visitOptionalIdentifier(ctx: OptionalIdentifierContext): Operation { + name = ctx.getText() + return defaultResult() + } + + override fun visitSpecial(ctx: WebIDLParser.SpecialContext): Operation { + if (ctx.children != null) { + exts.add(ExtendedAttribute(call = ctx.getText(), name = null, arguments = emptyList())) + } + + return defaultResult() + } + + override fun visitReturnType(ctx: ReturnTypeContext): Operation { + returnType = TypeVisitor().visit(ctx) + return defaultResult() + } + + override fun visitOptionalOrRequiredArgument(ctx: WebIDLParser.OptionalOrRequiredArgumentContext): Operation { + val attributeVisitor = AttributeVisitor(false) + attributeVisitor.visit(ctx) + val parameter = attributeVisitor.visitChildren(ctx) + + parameters.add(parameter) + + return defaultResult() + } +} + +class AttributeVisitor(val readOnly : Boolean) : WebIDLBaseVisitor() { + var type : String = "" + var name : String = "" + var defaultValue : String? = null + var vararg : Boolean = false + + override fun defaultResult() : Attribute = Attribute(name, type, readOnly, defaultValue, vararg) + + override fun visitType(ctx: WebIDLParser.TypeContext): Attribute { + type = TypeVisitor().visit(ctx) + return defaultResult() + } + + override fun visitOptionalOrRequiredArgument(ctx: WebIDLParser.OptionalOrRequiredArgumentContext): Attribute { + if (ctx.children?.any {it is TerminalNode && it.getText() == "optional"} ?: false) { + defaultValue = "noImpl" + } + return visitChildren(ctx) + } + + override fun visitAttributeRest(ctx: WebIDLParser.AttributeRestContext): Attribute { + try { + name = getName(ctx) + } catch (ignore : Throwable) { + name = ctx.children.filter { it is TerminalNode}.filter {it.getText() != ";"}.last().getText() + } + return defaultResult() + } + + override fun visitArgumentName(ctx: WebIDLParser.ArgumentNameContext): Attribute { + try { + name = getName(ctx) + } catch (ignore : Throwable) { + name = ctx.getText() + } + return defaultResult() + } + + override fun visitDefaultValue(ctx: WebIDLParser.DefaultValueContext): Attribute { + defaultValue = ctx.getText() + return defaultResult() + } + + override fun visitEllipsis(ctx: WebIDLParser.EllipsisContext): Attribute { + vararg = vararg || "..." in ctx.getText() + return defaultResult() + } +} + +class ConstantVisitor(val attributes : List) : WebIDLBaseVisitor() { + var type : String = "" + var name : String = "" + var value : String? = null + + override fun defaultResult() : Constant = Constant(name, type, value) + + override fun visitConst_(ctx: WebIDLParser.Const_Context): Constant { + name = getName(ctx) + + return visitChildren(ctx) + } + + override fun visitConstType(ctx: WebIDLParser.ConstTypeContext): Constant { + type = ctx.getText() + return defaultResult() + } + + override fun visitConstValue(ctx: WebIDLParser.ConstValueContext): Constant { + value = ctx.getText() + return defaultResult() + } +} + +class DefinitionVisitor(val extendedAttributes: List) : WebIDLBaseVisitor() { + private var type : DefinitionType = DefinitionType.INTERFACE + private var name = "" + private val memberAttributes = ArrayList() + private val operations = ArrayList() + private val attributes = ArrayList() + private var readOnly : Boolean = false + private val inherited = ArrayList() + private var singleType : String? = null + private var implements : String? = null + private val constants = ArrayList() + + override fun defaultResult(): Definition = when(type) { + DefinitionType.INTERFACE -> InterfaceDefinition(name, extendedAttributes, operations, attributes, inherited, constants) + DefinitionType.DICTIONARY -> InterfaceDefinition(name, extendedAttributes, operations, attributes, inherited, constants, true) + DefinitionType.EXTENSION_INTERFACE -> ExtensionInterfaceDefinition(name, implements ?: "") + DefinitionType.TYPEDEF -> TypedefDefinition(singleType ?: "", name) + DefinitionType.ENUM -> EnumDefinition(name) + } + + override fun visitInterface_(ctx: Interface_Context) : Definition { + name = getName(ctx) + visitChildren(ctx) + return defaultResult() + } + + override fun visitPartialInterface(ctx: WebIDLParser.PartialInterfaceContext): Definition { + name = getName(ctx) + visitChildren(ctx) + return defaultResult() + } + + override fun visitTypedef(ctx: WebIDLParser.TypedefContext): Definition { + type = DefinitionType.TYPEDEF + name = getName(ctx) + visitChildren(ctx) + + return defaultResult() + } + + override fun visitEnum_(ctx: Enum_Context): Definition { + type = DefinitionType.ENUM + name = getName(ctx) + + return defaultResult() + } + + override fun visitDictionary(ctx: DictionaryContext): Definition { + type = DefinitionType.DICTIONARY + name = getName(ctx) + + return visitChildren(ctx) + } + + override fun visitDictionaryMember(ctx: DictionaryMemberContext): Definition { + val name = ctx.children + ?.filter {it is TerminalNode && it.getSymbol().getType() == WebIDLLexer.IDENTIFIER_WEBIDL} + ?.first { it.getText() != "" } + ?.getText() + + val type = TypeVisitor().visit(ctx) + val defaultValue = object : WebIDLBaseVisitor() { + private var value : String? = null + + override fun defaultResult() = value + + override fun visitDefaultValue(ctx2: DefaultValueContext) : String? { + value = ctx2.getText() + return value + } + }.visit(ctx) + + attributes.add(Attribute(name ?: "", type, false, defaultValue, false)) + + return defaultResult() + } + + override fun visitImplementsStatement(ctx: ImplementsStatementContext): Definition { + val identifiers = ctx.children.filter {it is TerminalNode && it.getSymbol().getType() == WebIDLLexer.IDENTIFIER_WEBIDL}.map {it.getText()} + + if (identifiers.size() >= 2) { + type = DefinitionType.EXTENSION_INTERFACE + name = identifiers[0] + implements = identifiers[1] + visitChildren(ctx) + } + + return defaultResult() + } + + override fun visitSingleType(ctx: SingleTypeContext): Definition { + singleType = ctx.getText() + return defaultResult() + } + + override fun visitOperation(ctx: OperationContext) : Definition { + with(OperationVisitor(memberAttributes.toList())) { + operations.add(visit(ctx)) + } + memberAttributes.clear() + return defaultResult() + } + + override fun visitInheritance(ctx: WebIDLParser.InheritanceContext): Definition { + if (ctx.children != null && ctx.isEmpty().not()) { + inherited.add(getName(ctx)) + } + return defaultResult() + } + + override fun visitReadOnly(ctx: WebIDLParser.ReadOnlyContext): Definition { + readOnly = true + visitChildren(ctx) + readOnly = false + + return defaultResult() + } + + override fun visitAttributeRest(ctx: WebIDLParser.AttributeRestContext): Definition { + with(AttributeVisitor(readOnly)) { + visit(ctx) + this@DefinitionVisitor.attributes.add(visitChildren(ctx)) + } + + return defaultResult() + } + + override fun visitConst_(ctx: WebIDLParser.Const_Context): Definition { + constants.add(ConstantVisitor(memberAttributes.toList()).visit(ctx)) + memberAttributes.clear() + + return defaultResult() + } + + override fun visitExtendedAttribute(ctx: ExtendedAttributeContext) : Definition { + val att = with(ExtendedAttributeParser()) { + visit(ctx) + } + + memberAttributes.add(att) + return defaultResult() + } + +} + +private fun getName(ctx: ParserRuleContext) = ctx.children.first {it is TerminalNode && it.getSymbol().getType() == WebIDLLexer.IDENTIFIER_WEBIDL}.getText() + +fun parseIDL(reader : Reader) : Repository { + val ll = WebIDLLexer(ANTLRInputStream(reader)) + val pp = WebIDLParser(CommonTokenStream(ll)) + + val idl = pp.webIDL() + + val declarations = ArrayList() + + idl.accept(object : WebIDLBaseVisitor() { + val extendedAttributes = ArrayList() + + override fun visitDefinition(ctx: WebIDLParser.DefinitionContext) { + val declaration = DefinitionVisitor(extendedAttributes.toList()).visitChildren(ctx) + extendedAttributes.clear() + declarations.add(declaration) + } + + override fun visitExtendedAttribute(ctx: ExtendedAttributeContext?) { + val att = with(ExtendedAttributeParser()) { + visit(ctx) + } + + extendedAttributes.add(att) + } + }) + + return Repository( + declarations.filterIsInstance().filter {it.name.isEmpty().not()}.groupBy { it.name }.mapValues { it.getValue().reduce(::merge) }, + declarations.filterIsInstance().groupBy { it.to }.mapValues { it.getValue().first() }, + declarations.filterIsInstance().groupBy { it.name }.mapValues { it.getValue().map {it.implements} }, + declarations.filterIsInstance().groupBy { it.name }.mapValues { it.getValue().reduce {a, b -> a} } + ) +} + +fun merge(i1 : InterfaceDefinition, i2 : InterfaceDefinition) : InterfaceDefinition { + require(i1.name == i2.name) + + return InterfaceDefinition(i1.name, + extendedAttributes = i1.extendedAttributes merge i2.extendedAttributes, + operations = i1.operations merge i2.operations, + attributes = i1.attributes merge i2.attributes, + superTypes = i1.superTypes merge i2.superTypes, + constants = i1.constants merge i2.constants, + dictionary = i1.dictionary || i2.dictionary + ) +} + +fun List.merge(other : List) = (this + other).distinct().toList() diff --git a/libraries/tools/idl2k/src/main/kotlin/main.kt b/libraries/tools/idl2k/src/main/kotlin/main.kt new file mode 100644 index 00000000000..d4b72941a73 --- /dev/null +++ b/libraries/tools/idl2k/src/main/kotlin/main.kt @@ -0,0 +1,32 @@ +package org.jetbrains.idl2k + +import java.io.File +import java.io.StringReader + +fun main(args: Array) { + val idl = getAllIDLs() + val defs = parseIDL(StringReader(idl)) + + println("IDL dump:") + idl.lineSequence().forEachIndexed { i, line -> + println("${i.toString().padStart(4, ' ')}: ${line}") + } + println() + + val definitions = mapDefinitions(defs, defs.interfaces.values()) + + File("../../../js/js.libraries/src/core/dom3.kt").writer().use { w -> + w.appendln("/*") + w.appendln(" * Generated file") + w.appendln(" * DO NOT EDIT") + w.appendln(" * ") + w.appendln(" * See libraries/tools/idl2k for details") + w.appendln(" */") + + w.appendln() + w.appendln("package org.w3c.dom3") + w.appendln() + + w.render(definitions) + } +} diff --git a/libraries/tools/idl2k/src/main/kotlin/model.kt b/libraries/tools/idl2k/src/main/kotlin/model.kt new file mode 100644 index 00000000000..62cb837fb57 --- /dev/null +++ b/libraries/tools/idl2k/src/main/kotlin/model.kt @@ -0,0 +1,58 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.idl2k + +data class Repository( + val interfaces: Map, + val typeDefs: Map, + val externals: Map>, + val enums: Map +) + +data class GenerateAttribute(val name: String, val type: String, val initializer: String?, val getterSetterNoImpl: Boolean, val readOnly: Boolean, val override: Boolean, var vararg : Boolean) { + val getterNoImpl: Boolean + get() = getterSetterNoImpl + val setterNoImpl: Boolean + get() = getterSetterNoImpl && !readOnly +} + +val GenerateAttribute.proto : String + get() = "$name:$type" + +enum class NativeGetterOrSetter { + NONE + GETTER + SETTER +} + +enum class GenerateDefinitionType { + TRAIT + CLASS +} + +data class GenerateFunction(val name: String, val returnType: String, val arguments: List, val native : NativeGetterOrSetter) +data class GenerateFunctionCall(val name: String, val arguments: List) +class GenerateTraitOrClass(val name: String, + val type : GenerateDefinitionType, + val superTypes: List, + val memberAttributes: List, + val memberFunctions: List, + val constnats : List, + val constructor: GenerateFunction?, + val superConstructorCalls: List) +val GenerateFunction.proto : String + get() = arguments.map {it.type}.joinToString(", ", "$name(", ")") \ No newline at end of file diff --git a/libraries/tools/idl2k/src/main/shell/import-certs.sh b/libraries/tools/idl2k/src/main/shell/import-certs.sh new file mode 100755 index 00000000000..5060c56d104 --- /dev/null +++ b/libraries/tools/idl2k/src/main/shell/import-certs.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +mkdir -p ~/tmp/ca +cd ~/tmp/ca + +curl http://www.startssl.com/certs/ca.crt -O +curl http://www.startssl.com/certs/sub.class1.server.ca.crt -O +curl http://www.startssl.com/certs/sub.class2.server.ca.crt -O +curl http://www.startssl.com/certs/sub.class3.server.ca.crt -O +curl http://www.startssl.com/certs/sub.class4.server.ca.crt -O + +for crt in *.crt; do + keytool -import -trustcacerts -keystore ${JAVA_HOME}/jre/lib/security/cacerts -storepass changeit -noprompt -alias ${crt} -file ${crt}; +done + diff --git a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateJavaScriptStubs.kt b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateJavaScriptStubs.kt index 3791a285b5c..60b85699d74 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateJavaScriptStubs.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateJavaScriptStubs.kt @@ -14,6 +14,7 @@ import org.w3c.dom.events.* * This tool generates JavaScript stubs for classes available in the JDK which are already available in the browser environment * such as the W3C DOM */ +deprecated("You shouldn't use it anymore as there is idl2k tool and DOM3 specification") fun generateDomAPI(file: File): Unit { val packageName = "org.w3c.dom" val imports = "" @@ -87,6 +88,7 @@ $imports val interfaces = klass.getInterfaces() val extends = if (interfaces != null && interfaces.size == 1) ": ${interfaces[0]?.getSimpleName()}" else "" + println("deprecated(\"Use org.w3c.dom3 instead\")") println("native public interface ${klass.getSimpleName()}$extends {") val methods = klass.getDeclaredMethods().sortBy { it.getName()!! } @@ -133,6 +135,7 @@ $imports if (typeName == null) { validMethods.add(pk.method) } else { + println(" deprecated(\"Use org.w3c.dom3 instead\")") println(" public ${pk.kind} ${pk.name}: ${typeName}") } } @@ -143,6 +146,7 @@ $imports var counter = 0 val parameters = parameterTypes.map{ "arg${++counter}: ${parameterTypeName(it)}" }.makeString(", ") val returnType = simpleTypeName(method.getReturnType()) + println(" deprecated(\"Use org.w3c.dom3 instead\")") println(" public fun ${method.getName()}($parameters): $returnType = noImpl") } } @@ -160,6 +164,7 @@ $imports val value = field.get(null) if (value != null) { val fieldType = simpleTypeName(field.getType()) + println(" deprecated(\"Use org.w3c.dom3 instead\")") println(" public val ${field.getName()}: $fieldType = $value") } } catch (e: Exception) {